summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-06-05LibWeb: Start adding support for the <iframe> element! :^)Andreas Kling
This patch introduces a bunch of things: - Subframes (Web::Frame::create_subframe()) - HTMLIFrameElement (loads and owns the hosted Web::Frame) - LayoutFrame (layout and rendering of the hosted frame) There's still a huge number of things missing, like scrolling, overflow handling, event handling, scripting, etc. But we can make a little iframe in a document and it actually renders another document there. I think that's pretty cool! :^)
2020-06-05LibWeb: Assert that we don't reuse cached resources with wrong typeAndreas Kling
2020-06-05LibWeb: Fix mismatching Resource subclass typesAndreas Kling
This was a confusing bug: ImageStyleValue loaded its image resource as a Generic resource, while HTMLImageElement loaded as Image. This patch fixes the issue and adds an assertion to verify that we only share resources that have the same C++ client class type.
2020-06-05LibWeb: Parse param/source/track start tags during "in body" insertionAndreas Kling
2020-06-05LibWeb: Simplify LayoutWidget layoutAndreas Kling
Set the intrinsic size up front and let LayoutReplaced do the work.
2020-06-05LibWeb: Don't assign style to LayoutWidgetsAndreas Kling
The only CSS property we care about for widgets is "display:none". For everything else, we ignore it and use a native look & feel. :^)
2020-06-05LibWeb: Make <canvas> use the generic replaced layout algorithmAndreas Kling
LayoutCanvas now communicates intrinsic size to LayoutReplaced so it can use the normal replaced algorithm.
2020-06-05LibWeb: Start implementing proper layout of replaced elementsAndreas Kling
LayoutReplaced now has intrinsic width, height and ratio. Only some of the values may be present. The layout algorithm takes the various configurations into account per the CSS specification. This is still pretty immature but at least we're moving forward. :^)
2020-06-05LibWeb: Improve computation of a layout node's containing blockAndreas Kling
In particular, we now compute the containing block of boxes with position:absolute and position:fixed (more) correctly.
2020-06-05LibWeb: Don't create a layout node for <noscript> when scripting enabledAndreas Kling
This makes stuff inside <noscript> correctly not show up since we run with scripting enabled. In the future, we can add a way to disable scripting, but for now, Document::is_scripting_enabled() just returns true.
2020-06-05LibCrypto: Add a simple SignedBigIntegerAnotherTest
This patchset adds a simple SignedBigInteger that is entirely defined in terms of UnsignedBigInteger. It also adds a NumberTheory::Power function, which is terribly inefficient, but since the use of exponentiation is very much discouraged for large inputs, no particular attempts were made to make it more performant.
2020-06-05LibWeb: Fix parsing of "<textarea></textarea>"Andreas Kling
When handling a "textarea" start tag, we have to ignore the next token if it's an LF ('\n'). However, we were not switching the tokenizer state before fetching the lookahead token, and this caused us to force the tokenizer into the RCDATA state too late, effectively getting it stuck in that state for way longer than it should be. Fixes #2508.
2020-06-05LibWeb: Fix missing tokenizer state change in RCDATALessThanSignAndreas Kling
We can't RECONSUME_IN after we've used EMIT_CHARACTER since we'll have returned from the function.
2020-06-05Toolchain: Support building the toolchain with Ninja (#2504)Paul Redmond
This change allows users to use CMAKE_GENERATOR=Ninja ./BuildIt.sh BuildIt.sh assumes the default cmake generator is Make. However, the user may specify CMAKE_GENERATOR=Ninja, for example, to set the default generator. Therefore, instead of calling make to build the LibC target we should call cmake --build to use the correct generated files.
2020-06-05build-root-filesystem: Explicitly add +rX for group and others to copied files.Nico Weber
This lets Serenity boot even when the repository is cloned with a umask of 027.
2020-06-05build-root-filesystem: Move "cp -R" block up.Nico Weber
I want to add a "chmod -R" right after the cp command. This needs to happen before all the other chmods, to not undo their effect.
2020-06-05WindowServer: Make perror() strings slightly more detailed.Nico Weber
If one fails, it's now easier to see which one it is.
2020-06-05run.sh: Pass -drive instead of -hda to qemu.Nico Weber
run.sh currently makes qemu print this as the very first output: WARNING: Image format was not specified for '_disk_image' and probing guessed raw. Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted. Specify the 'raw' format explicitly to remove the restrictions. This is scary for people who don't know that this is normal, and write operations to block 0 being restricted could be confusing for some operations happening from within serenity too at some point. So specify the 'raw' format explicitly, like the warning suggests. Requires using -drive instead of -hda. From `man qemu-system`: Instead of -hda, -hdb, -hdc, -hdd, you can use: qemu-system-x86_64 -drive file=file,index=0,media=disk So use that, and also pass format=raw.
2020-06-04TextEditor: Allow "TextEditor foo.txt" to create a new fileAndreas Kling
Attempting to open a non-existent file from the command line should not fail, it should just open a new text document with that name. Note that the file is not created until you actually save it.
2020-06-04LibWeb: Unbreak character reference and DOCTYPE parsing post-UTF-8Andreas Kling
Oops, these were still using the byte-offset cursor. My goodness is it unergonomic to index into UTF-8 strings, but Dr. Bugaev says it's good. There is lots of room for improvement here. Just like the rest of the tokenizer and parser. We'll have to do a few optimization passes over them once they mature.
2020-06-04LibWeb: Make the new HTML parser parse input as UTF-8Andreas Kling
We already convert the input to UTF-8 before starting the tokenizer, so all this patch had to do was switch the tokenizer to use an Utf8View for its input (and to emit 32-bit codepoints.)
2020-06-04AK: Allow default-constructing Utf8View and Utf8CodepointIteratorAndreas Kling
2020-06-04AK: Add StringBuilder::append_codepoint(u32)Andreas Kling
Also, implement append(Utf32View) using it.
2020-06-04Kernel: Detect APs and boot them into protected modeTom
This isn't fully working, the APs pretend like they're fully initialized and are just halted permanently for now.
2020-06-04AK: Add atomic free functionsTom
This allows for using atomic operations on any variables, not only those wrapped in AK::Atomic<T>
2020-06-04Kernel: Add mechanism to identity map the lowest 2MBTom
2020-06-04LibWeb: Fix incorrectly consumed characters after reference tokensAndreas Kling
The NumericCharacterReferenceEnd tokenizer state should not advance the input stream.
2020-06-04LibWeb: Process style sheets in document orderAndreas Kling
Until now we would simply apply stylesheets in the order they finished loading. This patch adds a StyleSheetList object that hangs off of each Document and contains all the style sheets in document order. There's still a lot of work to do for a proper cascade, but at least this makes us consistently wrong every time. :^)
2020-06-04LibWeb: Fix <body> and <img> elements not parsing their class attributeAndreas Kling
Subclasses that override Element::parse_attribute() must always call to base class since otherwise we might forget to parse some attributes. This makes class selectors work on <body> and <img> elements. :^)
2020-06-04LibGUI: Fix bad KeyEvent::m_key initializer to unbreak SDL2 portAndreas Kling
2020-06-04LibTLS: Simplify record padding logic and ASSERT more assumptionsAnotherTest
2020-06-04LibCrypto: Correctly pad blocks with FinalBlockSize < size < BlockSizeAnotherTest
This fixes #2488
2020-06-04test-crypto: Add a test for #2488AnotherTest
2020-06-04LibM: Add exp2() and exp2f()Linus Groh
2020-06-04LibM: Add INFINITY macroLinus Groh
2020-06-04LibM: Add NAN macroLinus Groh
2020-06-04PixelPaint: Use new app-pixel-paint.png for app iconHüseyin ASLITÜRK
2020-06-04Base: Use new app-pixel-paint.png for app icon in system menuHüseyin ASLITÜRK
2020-06-04Base: Rename app-paintbrush.png to app-pixel-paint.pngHüseyin ASLITÜRK
2020-06-04LibWeb: Fix tokenization of attributes with empty attributesAndreas Kling
We were neglecting to emit start tags for tags where the last attribute had no value. Also fix a parse error TODO that I hit while looking at this.
2020-06-04LibWeb: Handle "html" end tag during "in body"Kyle McLean
2020-06-04LibWeb: Handle "xmp" start tag during "in body"Kyle McLean
2020-06-04LibWeb: Handle "nobr" start tag during "in body"Kyle McLean
2020-06-04LibWeb: Handle "form" end tag during "in body" if stack of open elements ↵Kyle McLean
does not contain "template"
2020-06-04LibWeb: Handle NULL character during "in body"Kyle McLean
2020-06-04LibWeb: Parse "body" end tags during "in body"Kyle McLean
2020-06-04LibWeb: Parse "br" end tags during "in body"Kyle McLean
2020-06-04LibWeb: Parse end tags for "applet", "marquee", and "object" during "in body"Kyle McLean
2020-06-04LibJS: Fix Parser.parse_template_literal looping foreverMatthew Olsson
parse_template_literal now breaks out of the loop if it sees something it doesn't expect. Additionally, it now checks for EOFs.
2020-06-03LibC: Make sure that ioctl() requests are #defined as macrosAndreas Kling
This fixes terminal UI resizing in the vim port. The problem was that vim had "#ifdef TIOCGWINSZ" around the code that figures out the size of the terminal. Since all of our ioctl() requests were enum values, this code was not compiled into vim at all. This patch fixes that. :^)