Linus Groh
340e1f4b28
LibWeb: Implement the Screen interface
...
https://drafts.csswg.org/cssom-view/#the-screen-interface
2021-04-04 00:37:54 +02:00
Andreas Kling
136d774885
LibWeb: CSSImportRule::set_style_sheet() should take a CSSStyleSheet
...
Spotted by @tomuta in #6086 .
2021-04-03 11:57:32 +02:00
Timothy Flynn
bd5a91269f
LibWeb: Store computed CSS value of background-repeat
2021-04-03 11:24:33 +02:00
Andreas Kling
21bc5fdec3
LibWeb: Don't interpreter invalid CSS pseudo-classes as '*' selector
...
Bogus pseudo-classes like ":bogus" would actually match every element.
2021-04-02 11:48:00 +02:00
Andreas Kling
036b5c2804
LibWeb: Import new CSS parser
...
It's not finished or hooked up to anything yet, but let's get it into
the tree so we can continue working on it.
Original work by @stelar7.
2021-03-22 18:40:08 +01:00
Andreas Kling
0d8c9024ee
LibWeb: Add fast_is<T> for CSSRule subclasses
...
Since we already have a type enum for these, let's use it to make
is<T> bypass dynamic_cast for CSS rules.
These were often near the top of random browser profiles.
2021-03-18 21:53:05 +01:00
Andreas Kling
cad4cc9a2a
LibWeb: Invalidate element style after setting Element.style.foo
...
This makes us recompute style for the element so the change actually
takes effect. :^)
2021-03-16 19:00:42 +01:00
Andreas Kling
4559faf8d8
LibWeb: Support named CSS properties on CSSStyleDeclaration wrapper
...
Use the new CustomGet/CustomPut wrapper mechansim to intercept gets and
puts on CSSStyleDeclaration objects. This allows content to get and set
individual CSS properties from JavaScript. :^)
2021-03-15 21:20:33 +01:00
Andreas Kling
c7d1f73990
LibWeb: Make <option> elements display:none in the default CSS for now
2021-03-15 21:20:33 +01:00
Andreas Kling
33e3f0c71f
LibWeb: Expose barebones CSSStyleDeclaration to JavaScript
...
You can now access an element's inline style via Element.style.
The interface is not very capable yet though. :^)
2021-03-13 22:41:32 +01:00
Andreas Kling
0759f54bd3
LibWeb: Rename StyleDeclaration => CSSStyleDeclaration to match CSSOM
2021-03-13 22:41:32 +01:00
Andreas Kling
ef1e5db1d0
Everywhere: Remove klog(), dbg() and purge all LogStream usage :^)
...
Good-bye LogStream. Long live AK::Format!
2021-03-12 17:29:37 +01:00
Andreas Kling
df621b9415
LibWeb: Run clang-format on CSS/Parser/StyleComponentValueRule.h
2021-03-09 20:06:52 +01:00
Andreas Kling
7c222d1bdf
LibWeb: Run clang-format on CSS/Parser/Token.h
2021-03-09 20:06:23 +01:00
Andreas Kling
ad152bfa59
LibWeb: Add a whole bunch of rule classes for the new CSS parser
...
Original work by @stelar7.
2021-03-09 17:36:21 +01:00
Andreas Kling
16cde3f14a
LibWeb: Rename CSSParser => DeprecatedCSSParser
2021-03-09 17:35:57 +01:00
Andreas Kling
078f0a5c67
LibWeb: Add specification-based CSS tokenizer
...
Original work by @stelar7 for #2628 .
2021-03-09 17:35:38 +01:00
Andreas Kling
dda6eb0f1f
LibWeb: Implement StyleSheet.type
...
This just returns "text/css" on CSSStyleSheet, nothing exciting.
2021-03-08 16:16:28 +01:00
Andreas Kling
d07fcba69b
LibWeb: Implement StyleSheet.ownerNode :^)
2021-03-08 16:03:14 +01:00
Andreas Kling
a9830d9a55
LibWeb: Start exposing CSS style sheets to JavaScript :^)
...
This patch adds bindings for the following objects:
- StyleSheet
- StyleSheetList
- CSSStyleSheet
You can get to a document's style sheets via Document.styleSheets
and iterate through them using StyleSheetList's item() and length().
That's it in terms of functionality at this point, but still neat. :^)
2021-03-08 11:50:36 +01:00
Andreas Kling
e6f886677e
LibWeb: Fix clang-format issue in CSS/StyleResolver.cpp
2021-03-07 17:53:20 +01:00
Andreas Kling
fefb05f6f3
LibWeb: Split CSS::StyleSheet into StyleSheet and CSSStyleSheet
...
This is a little convoluted but matches the CSSOM specification.
2021-03-07 17:45:15 +01:00
Andreas Kling
0af4762662
LibWeb: Rename StyleRule => CSSStyleRule
...
This matches the CSSOM specification.
2021-03-07 17:45:15 +01:00
Adam Hodgen
53c4be926b
LibWeb: Set link cursor via the default CSS
...
This removes the custom handling of cursor for the link element, which
also allows overriding the cursor on a link element via CSS
2021-02-28 18:19:52 +01:00
Adam Hodgen
e169e24104
LibWeb: Parese the CSS "cursor" property
2021-02-28 18:19:52 +01:00
Sviatoslav Peleshko
183ebaee91
LibWeb: Add actual document loading for the CSS (at)import rule
2021-02-28 10:27:32 +01:00
Sviatoslav Peleshko
54617e1a91
LibWeb: Added simple parsing for (at)import rules
...
For now, the parsing is very crude, and parses only the document url.
The meta queries for the import are ignored.
2021-02-28 10:27:32 +01:00
Sviatoslav Peleshko
04d67d0239
LibWeb: Create base class CSSRule for all CSS rules
...
This is a foundation for handling other ("at") CSS rules.
2021-02-28 10:27:32 +01:00
Andreas Kling
5d180d1f99
Everywhere: Rename ASSERT => VERIFY
...
(...and ASSERT_NOT_REACHED => VERIFY_NOT_REACHED)
Since all of these checks are done in release builds as well,
let's rename them to VERIFY to prevent confusion, as everyone is
used to assertions being compiled out in release.
We can introduce a new ASSERT macro that is specifically for debug
checks, but I'm doing this wholesale conversion first since we've
accumulated thousands of these already, and it's not immediately
obvious which ones are suitable for ASSERT.
2021-02-23 20:56:54 +01:00
Andreas Kling
21371bf6ee
LibWeb: Add parsing and application of CSS "overflow" property
...
We don't actually do anything with the values yet, but now they are
available for layout nodes once we are ready to implement them.
2021-02-22 15:21:42 +01:00
Andreas Kling
29a2aac89a
LibWeb: Start implementing <input type=text> using a shadow DOM
...
Text <input> fields will now generate a basic shadow DOM and attach it
to the input element.
The shadow DOM contains a <div> with some inline style, and an always-
editable text node inside it. Accessing the "value" attribute on such
an input element will get/set the value from that text node.
This is really cool, although not super stable since HTML editing is
not super stable. But it's a start! :^)
2021-02-10 19:06:20 +01:00
Andreas Kling
9de1253f44
LibWeb: Remove a whole bunch of unnecessary #includes
2021-02-10 09:13:29 +01:00
Andreas Kling
0c66e53544
LibWeb: Honor font sizes specified by CSS
...
Instead of trying to coerce them into some font size we think we might
have, let's just honor the request and do our best to find a font.
2021-02-07 10:57:07 +01:00
Andreas Kling
149f10b0b9
LibWeb: Parse the CSS "flex-direction" property
2021-01-18 20:20:16 +01:00
Andreas Kling
140463e833
LibWeb: Parse "display: flex" and create BlockBox layout nodes for them
...
I'm not 100% sure that BlockBox is the right layout node for flex
containers, but it's the most obviously fitting one we already have.
2021-01-18 20:20:00 +01:00
asynts
adbb8d62d1
Everywhere: Replace a bundle of dbg with dbgln.
...
These changes are arbitrarily divided into multiple commits to make it
easier to find potentially introduced bugs with git bisect.
2021-01-16 11:54:35 +01:00
Andreas Kling
13d7c09125
Libraries: Move to Userland/Libraries/
2021-01-12 12:17:46 +01:00