Commit graph

1,070 commits

Author SHA1 Message Date
FranklinDM
518c41fd7a Issue #1592 - Part 4: Walk ::slotted()-containing rules for slottables
- Check against all selector parts and not the leftmost selector only for ::slotted()
- Walk rules for ::slotted() regardless if the shadow root is opened/closed
- Ensure that ::slotted() rules are walked in the right order
- Fix ::slotted inheritance from topmost shadow root
2023-03-24 09:11:07 +08:00
Moonchild
f09d2bba0f Issue #2171 - Skip over shadow nodes that don't have an owning node.
Resolves #2171
2023-03-23 09:03:06 +08:00
FranklinDM
18e693464d Issue #2135 - Destroy the host frame and restyle when there are content changes
This is likely inefficient, but I haven't found a way other than this to ensure that the host frame is updated if the inserted/removed content isn't slotted. I'm assuming that Firefox is handling this somewhere else (and may have been even moved to Stylo), but was mentioned in an m-c bug we haven't seen yet. In fact, this is actually similar to how we handled elements passed to ContentInserted before landing e31ed5b07466d4a579fe4b025f97c971003fbc3f.
2023-03-12 07:10:24 +08:00
FranklinDM
cfef3fa487 Issue #2135 - Follow-up: Ensure document is not null in nsImageLoadingContent::BindToTree 2023-03-09 14:26:54 +08:00
FranklinDM
ad929c5dd5 Issue #2135 - Follow-up: Fix potential crash if shadow root is null 2023-03-06 16:27:34 +08:00
FranklinDM
9cb33ab843 Issue #2135 - Follow-up: Fix typo 2023-03-06 16:26:20 +08:00
FranklinDM
c194fbf6a8 Issue #2135 - Follow-up: Fix crash for passing nullptr as an argument to the aNodesWithProperties parameter 2023-03-06 16:25:56 +08:00
FranklinDM
4d778226ed Issue #2135 - Bug 1433669/Part 2: Flush the document instead of the shell in ContentEventHandler
* Unlike the original patch, I went with just getting a reference to the document rather than replacing mPresShell with mDocument.
2023-03-06 16:25:38 +08:00
FranklinDM
2f9186959c Issue #2135 - Bug 1433669/Part 1: Remove dead function 2023-03-06 16:25:21 +08:00
FranklinDM
70d493586d Issue #2135 - Bug 1419803: Use GetComposedDoc instead of GetUncomposedDoc in ContentEventHandler 2023-03-06 16:25:04 +08:00
FranklinDM
015148fcc3 Issue #2135 - Bug 1425864: Ensure printing documents which have shadow DOM works 2023-03-06 16:24:46 +08:00
FranklinDM
9f0fb9c16e Issue #2135 - Bug 1393806/Part 3: Change dom::ReparentWrapper to take an ErrorResult
* Bug 1393806 (Part 4) landed as part of Issue #1118.
* Account for ReparentWrappersInSubtree, introduced in 1466991
2023-03-06 16:24:26 +08:00
FranklinDM
3062964d28 Issue #2135 - Bug 1393806/Part 2: Modify AdoptNodeIntoOwnerDoc to use the non-XPCOM version of document.AdoptNode
* Unlike the original patch, this does not remove the XPCOM version of Document.adoptNode/importNode to avoid breaking other applications that might be using those functions.
2023-03-06 16:24:10 +08:00
FranklinDM
e65a864a3e Issue #2135 - Bug 1393806/Part 1: Change nsNodeUtils cloning/adopting stuff to use an ErrorResult for errors
This will allow us to propagate out more informative errors in some cases.
2023-03-06 16:23:51 +08:00
FranklinDM
b72ddcf657 Issue #2135 - Bug 1414692: Adopt shadow roots when adopting a shadow host across documents 2023-03-06 16:20:46 +08:00
FranklinDM
7b395189ac Issue #2135 - Bug 1518795: Properly track responsive content in a connected ShadowRoot 2023-03-06 16:17:59 +08:00
FranklinDM
56193120c5 Issue #2135 - Implement sequential focus navigation for shadow DOM
This covers the following:
Bug 1413834	Implement sequential focus navigation regarding shadow DOM
> Bug 1430020	Let sequential focus navigation in shadow DOM enter iframes
> Bug 1430701	Handle focus navigation on frameless shadow hosts in light DOM
> Bug 1430692	Handle focus navigation on NAC in shadow DOM
> Bug 1453693	Ensure sequential focus navigation works in Shadow DOM and add some tests
> Bug 1466581	Handle sequential focus also in nested shadow DOM
> Bug 1481079	Shadow DOM hosts should be focusable
> Bug 1507101	Use StyleChildrenIterator instead of custom frame tree walking code to handle NAC inside shadow dom
> Bug 1512043	Ensure traverse all nodes owned by the top level shadow host
> Bug 1512457	Fix various cases that focus navigation doesn't work well with frameless shadow host
> Bug 1513141	Really minor nsFocusManager cleanup
> Bug 1519090	Keyboard focus is trapped inside <slot>
> Bug 1528034	Make IsHostOrSlot null-safe
> Bug 1544826	Wrong focus navigation behavior when the root element is a shadow root
>> Bug 1500273	Ensure backward focus navigation works in Shadow DOM
2023-03-06 16:17:39 +08:00
FranklinDM
263b719ef8 Issue #2135 - Bug 1455891/Part 1: Improve StyleChildrenIterator 2023-03-06 16:17:21 +08:00
FranklinDM
588c2154a5 Issue #2135 - Bug 1410578: Make <link rel="stylesheet"> work in shadow trees 2023-03-06 16:17:01 +08:00
FranklinDM
45c179d01b Issue #2135 - Bug 1453789: Remove Element.createShadowRoot 2023-03-06 16:16:40 +08:00
FranklinDM
010db07bf3 Issue #2135 - Bug 1066965: Make contentEditable and spellchecking to work in Shadow DOM 2023-03-06 16:16:21 +08:00
FranklinDM
e64aeea52d Issue #2135 - Bug 1430301: Implement ShadowRoot.elementFromPoint/elementsFromPoint 2023-03-06 16:15:38 +08:00
FranklinDM
3350af82c2 Issue #2135 - Bug 1438129: Remove ShadowRoot.applyAuthorStyles. 2023-03-06 16:15:24 +08:00
FranklinDM
1185cfe3f0 Issue #2135 - Bug 1323815: FocusEvent.relatedTarget should work consistently with MouseEvent.relatedTarget
* This incorporates changes from Bug 1413102.
2023-03-06 16:15:09 +08:00
FranklinDM
1bb2009f61 Issue #2135 - Bug 1413102 (Follow-up): Ignore current target because of shadow DOM retargeting
Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1466581
2023-03-06 16:14:50 +08:00
FranklinDM
24572438a0 Issue #2135 - Bug 1413102: Ensure Shadow DOM boundaries are dealt properly in event handling
* RE: BasicEvents.h - our WidgetEvent is not movable (yet), so the change that requires that wasn't included.
* Parts of this use code that was introduced in bug 1427511. For now, they were replaced with their equivalents.
2023-03-06 16:14:31 +08:00
FranklinDM
e286eb8adb Issue #2135 - Bug 1430305: Implement ShadowRoot.fullscreenElement 2023-03-06 16:14:14 +08:00
FranklinDM
3dfffeaeca Issue #2135 - Bug 1430303: Implement ShadowRoot.pointerLockElement 2023-03-06 16:13:59 +08:00
Job Bautista
c920f32df3 Issue #1693 - Use scoped enums for IDBTransaction.
Based on a patch from Mozilla bug 1598164.
Needed due to identifier collision between NSS and IDBTransaction.

Co-authored by: Simon Giesecke <simon.giesecke@gmail.com>
Co-authored by: Matt A. Tobin <email@mattatobin.com>
2023-03-06 16:10:42 +08:00
FranklinDM
6781f5b6c5 Issue #1375 - Part 2: customElements.define must upgrade custom element in shadow-including tree order
Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1326028
2023-03-02 14:28:30 +08:00
u3shit
2b88f2c9ac Issue #2101 - Part 6: Plumbing of ColorRange between video decoders and YUV convert 2023-02-27 12:11:30 +08:00
u3shit
e59e8c3b2c Issue #2101 - Part 5: Add ColorRange support to video decoders 2023-02-27 12:10:57 +08:00
u3shit
42f3296899 Issue #2101 - Part 2: Use stdint.h types instead of uint8 and friends
Required for upcoming libyuv update
2023-02-27 12:06:38 +08:00
u3shit
c0c76cd455 Issue #2101 - Part 1: Add mColorRange info to YCbCrBuffer
https://hg.mozilla.org/integration/autoland/rev/6f4c7904cda8
2023-02-27 12:02:53 +08:00
u3shit
3e62b1fc9f Issue #2118 - Part 2: Add support for Identity YUVColorSpace
https://hg.mozilla.org/mozilla-central/rev/be342c90755d11551623362f2058c0326f63bbb3
2023-02-27 11:08:35 +08:00
Moonchild
0b9698c80a [DOM] WebCrypto: Check decoded key type before using it.
Just in case someone forces the wrong key type and misuses WebCrypto.
It won't be usable anyway so better to throw.
2023-02-22 07:08:44 +08:00
FranklinDM
14e8922dca Issue #2078 - Part 3: Rename nsCSSRuleProcessor::SelectorListMatches to RestrictedSelectorListMatches
This is in preparation for merging the logic of RestrictedSelectorListMatches and AnySelectorInArgListMatches.
2023-02-22 07:05:25 +08:00
Moonchild
bc50a7d3c6 [DOM] Check whether module load request was already cancelled when a load fails 2023-02-20 12:01:36 +08:00
Moonchild
1644bf94f0 No issue - Accept also video/vp8 as MIME type 2023-02-08 16:57:28 +08:00
FranklinDM
4c9665a4ae Issue #2104 - Part 2: Indicate if a label was cropped via the "_is_cropped" attribute 2023-02-08 16:57:11 +08:00
Martok
6b50dd5d06 Issue #2089 - Use JS engine stack if necessary when reporting errors
Based-on: m-c 996060
2023-01-26 11:39:57 +08:00
Moonchild
f080f2e978 [DOM] Make nsHTMLContentSerializer handle noscript depending on the scripting enabled state of the document. 2023-01-19 09:42:47 +08:00
Moonchild
d8756a58db [DOM] Add some null checks for PerformanceWorkers 2023-01-19 09:41:54 +08:00
Moonchild
efeb0e3e97 Issue #2087 - Don't throw on lacking PresShell in SetFontInternal
In CanvasRenderingContext2D::SetFontInternal, we should not throw if
there is no PresShell due to (sandboxed/hidden) iframe use that has not
initialized its presentation yet at the time of property manipulation.
This removes the throwing of the error and just silently fails.

Resolves #2087
2023-01-10 07:42:08 +08:00
Martok
a6a420259c Issue #2073 - m-c 1546500: Avoid dispatching synchronous thread shutdown runnables 2023-01-10 07:31:26 +08:00
Job Bautista
ba1887ff4c Issue #80 - Fix deprot in dom/base.
This regression was introduced by my PR #2015.
Found while building dom/base de-unified.
2022-12-30 09:22:21 +08:00
Martok
b4dd106262 Issue #2030 - Dispatch click on common interactive ancestor if mousdown/up are not on the same element
For example, if the mouse is dragged from one element to another while
staying inside the same button, dispatch from their common ancestor
2022-12-02 23:56:40 +08:00
Martok
4354c7a1bc Issue #2030 - Allow child nodes of button to participate in mouse hit tests
This is needed for web compatibility, even if standards compliance is debatable.
2022-12-02 23:55:57 +08:00
Martok
4d310562d9 Issue #2030 - (chore) refactor event dispatch functions
Based on selected bits of M-C 1461708:
- EventStateManager::CheckForAndDispatchClick() to early-return style
- split EventStateManager::CheckForAndDispatchClick() into:
  EventCausesClickEvents, PostHandleMouseUp, DispatchClickEvents
- Move implementation of UIEvent::GetRangeParent() and UIEvent::RangeOffset() to nsLayoutUtils
2022-12-02 23:55:37 +08:00
Moonchild
f35ae1ce7b Issue #2019 - Follow-up: Make nsPluginInstanceOwner also listen to keypress events in the system event group.
nsPluginInstanceOwner only listens to keypress events in the default event group.
However, in our changed operating mode, keypress events are not fired in the
default event group if the key does not result in something printable.
This means that nsPluginInstanceOwner should also listen to keypress events
in the system event group and should handle each keypress that way, but
only once. I.e., if a printable keypress event is received in the system event
group, it should be ignored, since it would've already been handled in the
default event group in that case.
2022-11-25 11:45:41 +08:00