Commit Graph

977 Commits

Author SHA1 Message Date
Cristian Tuns
ce526f805f Backed out changeset 9b708a1dc402 (bug 1890748) for causing bc failures in browser_permission_delegate_geo.js CLOSED TREE 2024-05-27 12:25:10 -04:00
Andreas Farre
b66f6322f2 Bug 1890748 - Move responsibility of FeaturePolicy initialization to nsILoadInfo. r=freddyb,necko-reviewers,jesup,dom-core,sefeng
Differential Revision: https://phabricator.services.mozilla.com/D207140
2024-05-27 10:06:58 +00:00
Butkovits Atila
bd73be20f9 Backed out changeset a710fd347db2 (bug 1890748) for causing bustages at Document.cpp. CLOSED TREE 2024-05-24 18:06:30 +03:00
Andreas Farre
bcf940af03 Bug 1890748 - Move responsibility of FeaturePolicy initialization to nsILoadInfo. r=freddyb,necko-reviewers,jesup,dom-core,sefeng
Differential Revision: https://phabricator.services.mozilla.com/D207140
2024-05-24 14:28:47 +00:00
Emilio Cobos Álvarez
46a31e3de5 Bug 1891597 - Simplify IntersectionObserver notifications. r=smaug
DOMIntersectionObserver::Update doesn't run script, so we can write this
code in a more straight-forward way.

Differential Revision: https://phabricator.services.mozilla.com/D207478
2024-04-16 02:58:10 +00:00
keithamus
e59fd12d73 Bug 1888088 - Allow nested fullscreen elements r=edgar
Differential Revision: https://phabricator.services.mozilla.com/D205802
2024-04-09 21:08:20 +00:00
Jan-Niklas Jaeschke
1edea30ba5 Bug 1867939, part 1: Add FragmentDirective webidl and pref. r=dom-core,webidl,emilio,hsivonen
This patch also adds the empty shell of the `FragmentDirective` class to the `Document`.

Differential Revision: https://phabricator.services.mozilla.com/D195684
2024-04-04 14:39:31 +00:00
Emilio Cobos Álvarez
de09ab0dd6 Bug 1887719 - More consistently use UTF8String/nsCString for URLs. r=necko-reviewers,webidl,anti-tracking-reviewers,places-reviewers,jari,kershaw,janv,smaug,hsivonen
Sorry for the massive patch but I found it hard to split without
introducing a bunch of copies around...

This mostly makes necko and DOM agree on which strings to use, which
should result on less copies and conversions.

Differential Revision: https://phabricator.services.mozilla.com/D205601
2024-04-04 11:49:57 +00:00
Stanca Serban
ce5dc60809 Backed out 6 changesets (bug 1867939) for causing wpt failures in target-text-010.html. CLOSED TREE
Backed out changeset 44101c258e52 (bug 1867939)
Backed out changeset c53267e1b460 (bug 1867939)
Backed out changeset 0748839408e5 (bug 1867939)
Backed out changeset 38631fbd2f2f (bug 1867939)
Backed out changeset d77b9257c842 (bug 1867939)
Backed out changeset 0d269b891421 (bug 1867939)
2024-04-04 00:50:50 +03:00
Jan-Niklas Jaeschke
26e6e2df74 Bug 1867939, part 1: Add FragmentDirective webidl and pref. r=dom-core,webidl,emilio,hsivonen
This patch also adds the empty shell of the `FragmentDirective` class to the `Document`.

Differential Revision: https://phabricator.services.mozilla.com/D195684
2024-04-03 15:23:00 +00:00
Sandor Molnar
7a867184d3 Backed out 6 changesets (bug 1867939) for causing a top crash in nightly Bug 1889393 CLOSED TREE
Backed out changeset 2110f57e928c (bug 1867939)
Backed out changeset 51890598ecb4 (bug 1867939)
Backed out changeset 839bc1b11a2c (bug 1867939)
Backed out changeset bb88c4d09e82 (bug 1867939)
Backed out changeset 27c76e65cf58 (bug 1867939)
Backed out changeset c3e3c81f9ceb (bug 1867939)
2024-04-03 17:31:56 +03:00
Emilio Cobos Álvarez
dadf0fbdef Bug 1888242 - Simplify viewport handling in RDM. r=bradwerth,devtools-reviewers,ochameau
In particular:

 * Always handle meta viewport in RDM. This fixes bug 1625999 too by
   making touch simulation enabled and disabled consistent.

 * Restore the resolution to 1 when toggling RDM. This is just simpler,
   and we're not keeping around the visual viewport offsets anyways
   so...

 * Deal with the change more easily, at the same point we switch
   scrollbars etc.

Differential Revision: https://phabricator.services.mozilla.com/D206266
2024-04-02 15:21:04 +00:00
Jan-Niklas Jaeschke
536f0daa27 Bug 1867939, part 1: Add FragmentDirective webidl and pref. r=dom-core,webidl,emilio,hsivonen
This patch also adds the empty shell of the `FragmentDirective` class to the `Document`.

Differential Revision: https://phabricator.services.mozilla.com/D195684
2024-04-02 13:44:24 +00:00
Cristian Tuns
9a4d6d56af Backed out 6 changesets (bug 1867939) for causing build bustages in Document.h CLOSED TREE
Backed out changeset 0853f9a7a06c (bug 1867939)
Backed out changeset 2279e6577c13 (bug 1867939)
Backed out changeset 1b3af4b6a27b (bug 1867939)
Backed out changeset 2fbe643ca483 (bug 1867939)
Backed out changeset 575873406614 (bug 1867939)
Backed out changeset 82f99c0210b0 (bug 1867939)
2024-04-02 09:15:46 -04:00
Jan-Niklas Jaeschke
079d4bc60c Bug 1867939, part 1: Add FragmentDirective webidl and pref. r=dom-core,webidl,emilio,hsivonen
This patch also adds the empty shell of the `FragmentDirective` class to the `Document`.

Differential Revision: https://phabricator.services.mozilla.com/D195684
2024-04-02 11:43:20 +00:00
Emilio Cobos Álvarez
782cce08a3 Bug 1884792 - Remove chrome-only :-moz-lwtheme pseudo-class. r=desktop-theme-reviewers,dao
Behavior is effectively :root[lwtheme="true"]. Use the attribute
selector instead.

Differential Revision: https://phabricator.services.mozilla.com/D204315
2024-03-18 10:18:25 +00:00
Olli Pettay
47a7be66d9 Bug 1883138 - Ensure HasParserNotified returns true only when parser has actually notified, r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D203324
2024-03-07 12:52:30 +00:00
Emilio Cobos Álvarez
5b62de6483 Bug 1883435 - Don't include GleanMetrics.h from Document.h. r=chutten,necko-reviewers,valentin
In bug 1883435 comment 2 chutten mentions that including
nsGlobalWindowInner.h from GleanMetrics.h causes a stylo build failure.

This is because nsGlobalWindowInner.h itself brings a bunch of DOM
bindings template soup that bindgen isn't great at dealing with.

That can be fixed in various ways. However, there is a simpler fix,
which is not including GleanMetrics at all.

It's trivial to do, and given it's a massive autogenerated file, and
Document.h is a very common header, it's worth doing this if only for
build times.

Fix a bunch of unused includes while at it.

Differential Revision: https://phabricator.services.mozilla.com/D203625
2024-03-05 17:54:14 +00:00
Olli Pettay
d62c05df29 Bug 1882417 - Suspend DOM notifications while parsing innerHTML, r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D202891
2024-03-01 13:14:34 +00:00
Frédéric Wang
ea8819b5ee Bug 1880928 - Remove last remembered size observer, handle it in Document::DetermineProximityToViewportAndNotifyResizeObservers. r=emilio,layout-reviewers
The CSS Box Sizing specification indicates that last remembered sizes
are recorded "at the time that ResizeObserver events are determined and
delivered" [1].

In bug 1807253, we changed the implementation of when proximity to the
viewport of `content-visibility: auto` nodes are determined and of when
resize observations are broadcast, in order to align with the latest
version of the HTML specification [2]. We continue to use an internal
`Document::mLastRememberedSizeObserver` to update last remembered sizes
but it has been causing issues (e.g. bug 1867090 and bug 1880928) and
could be replaced by a direct update before broadcasting resize
observations.

This is what the current patch is doing. The elements currently observed
by `Document::mLastRememberedSizeObserver` are now stored on a
`Document::mElementsWithLastRememberedSize` hashset and a new function
`Document::UpdateLastRememberedSizes` is called before broadcasting
resize observations, and peforms the work of `LastRememberedSizeCallback`
and of `CalculateBoxSize` (with `aBox=Content_box`).

The only behavior change is in the `while(true)` loop from
`DetermineProximityToViewportAndNotifyResizeObservers`: at each step
we update the last remember sizes for elements of arbitrary depth, and
don't use these depths for calculating `shallowestTargetDepth`. This is
fine, since our `LastRememberedSizeCallback` only records current box
sizes without causing significant side effects (e.g. execution of
JavaScript code) that may require a relayout.

[1] https://drafts.csswg.org/css-sizing-4/#last-remembered
[2] https://html.spec.whatwg.org/#update-the-rendering

Differential Revision: https://phabricator.services.mozilla.com/D202571
2024-02-29 08:50:55 +00:00
Daniel Holbert
60f872aa72 Bug 1882425: Use a UniquePtr to manage Document::mSubDocuments. r=dom-core,edgar
This patch doesn't change behavior.

As noted in the code-comment: ideally we should fully-modernize to nsTHashMap
or similar, but that's a larger project and will require a bit of care to be
sure we're preserving the semantics that this struct imposes on itself right
now (e.g. subdocuments clearing their parent-document pointer, as part of
removal from the map). For now, I'm just taking the incremental/trivial win of
using UniquePtr to remove explicit `new`/`delete` statements.

Differential Revision: https://phabricator.services.mozilla.com/D202904
2024-02-28 20:35:54 +00:00
Frédéric Wang
ae0b7271b8 Bug 1872657 - Add fetchpriority support for <link rel=preload as=image>. r=valentin,smaug,manuel
This patch adds fetchpriority support for `<link rel=preload as=image>`
and equivalent HTTP Link header. The fetchpriority value is passed from
where the link is parsed down to `NewImageChannel` where the priority
is initially set. Currently, the default equals PRIORITY_LOW, but is
decreased a bit if LOAD_BACKGROUND flag is set (this is always the case
for link preload images, see `imgLoader::LoadImage`). Later, the
priority can be increased again depending on the category (see
`imgRequest::BoostPriority`).

In order to minimize the changes, the new calculation is to keep the
initial setting to PRIORITY_LOW, adjust it using a new
`network.fetchpriority.adjustments.*` preference depending on the
fetchpriority attributes, and then preserve further adjustments for
LOAD_BACKGROUND and `BoostPriority`.

For the default value `fetchpriority=auto`, there is no adjustment
i.e. we continue to start with PRIORITY_LOW. `fetchpriority=low/high`
are respectively mapped to PRIORITY_LOW/PRIORITY_HIGH which is simple
and consistent with the "Image" cases from Google's web.dev article
https://web.dev/articles/fetch-priority. These values could of course
be revised in the future after more experiments.

This change is covered by the following tests below. The expectations
is modified to match what is described above (i.e. map to PRIORITY_LOW
or PRIORITY_HIGH with adjustment due to LOAD_BACKGROUND):
- `link-initial-preload-image.h2.html`
- `link-dynamic-preload-image.h2.html`
- `kPipeHeaderPreloadImageLinks`

Based on a patch by Mirko Brodesser (mbrodesser@igalia.com)

Differential Revision: https://phabricator.services.mozilla.com/D197493
2024-02-27 06:33:48 +00:00
Stanca Serban
08a6b4e21b Backed out changeset 621c8480cd35 (bug 1872657) for causing FetchPriority related bp-nu bustages in IconLoader.cpp. CLOSED TREE 2024-02-26 18:15:18 +02:00
Frédéric Wang
b4d37da144 Bug 1872657 - Add fetchpriority support for <link rel=preload as=image>. r=valentin,smaug,manuel
This patch adds fetchpriority support for `<link rel=preload as=image>`
and equivalent HTTP Link header. The fetchpriority value is passed from
where the link is parsed down to `NewImageChannel` where the priority
is initially set. Currently, the default equals PRIORITY_LOW, but is
decreased a bit if LOAD_BACKGROUND flag is set (this is always the case
for link preload images, see `imgLoader::LoadImage`). Later, the
priority can be increased again depending on the category (see
`imgRequest::BoostPriority`).

In order to minimize the changes, the new calculation is to keep the
initial setting to PRIORITY_LOW, adjust it using a new
`network.fetchpriority.adjustments.*` preference depending on the
fetchpriority attributes, and then preserve further adjustments for
LOAD_BACKGROUND and `BoostPriority`.

For the default value `fetchpriority=auto`, there is no adjustment
i.e. we continue to start with PRIORITY_LOW. `fetchpriority=low/high`
are respectively mapped to PRIORITY_LOW/PRIORITY_HIGH which is simple
and consistent with the "Image" cases from Google's web.dev article
https://web.dev/articles/fetch-priority. These values could of course
be revised in the future after more experiments.

This change is covered by the following tests below. The expectations
is modified to match what is described above (i.e. map to PRIORITY_LOW
or PRIORITY_HIGH with adjustment due to LOAD_BACKGROUND):
- `link-initial-preload-image.h2.html`
- `link-dynamic-preload-image.h2.html`
- `kPipeHeaderPreloadImageLinks`

Based on a patch by Mirko Brodesser (mbrodesser@igalia.com)

Differential Revision: https://phabricator.services.mozilla.com/D197493
2024-02-26 15:03:58 +00:00
Emilio Cobos Álvarez
1df8c0453d Bug 1879579 - Clean up CompareTreePosition and related code. r=smaug
Make TreeOrderedArray support what the form controls stuff needs, and
use it instead of custom nsContentUtils stuff.

Differential Revision: https://phabricator.services.mozilla.com/D201261
2024-02-12 20:01:36 +00:00
Noemi Erli
1637a997a2 Backed out changeset 1acc95286189 (bug 1879579) for causing mass failures CLOSED TREE 2024-02-12 17:25:21 +02:00
Emilio Cobos Álvarez
97dc4d46da Bug 1879579 - Clean up CompareTreePosition and related code. r=smaug
Make TreeOrderedArray support what the form controls stuff needs, and
use it instead of custom nsContentUtils stuff.

Differential Revision: https://phabricator.services.mozilla.com/D201261
2024-02-12 00:01:23 +00:00
Gregory Pappas
d3e6179e5a Bug 1873137 - Remove dom.animations-api.getAnimations.enabled pref r=webidl,emilio,firefox-animation-reviewers,devtools-reviewers,nchevobbe,boris
Differential Revision: https://phabricator.services.mozilla.com/D201162
2024-02-09 22:00:23 +00:00
Cristian Tuns
2510756258 Backed out changeset ccc6ced28d4d (bug 1873137) for causing reftest failures in crashtests.list CLOSED TREE 2024-02-09 13:43:10 -05:00
Gregory Pappas
eb2fefb256 Bug 1873137 - Remove dom.animations-api.getAnimations.enabled pref r=webidl,emilio,firefox-animation-reviewers,devtools-reviewers,nchevobbe,boris
Differential Revision: https://phabricator.services.mozilla.com/D201162
2024-02-09 17:57:16 +00:00
Tom Schuster
2b5651c78d Bug 1876276 - Remove dead nsIDocShell allowPlugins code. r=emilio,sessionstore-reviewers,dao
Differential Revision: https://phabricator.services.mozilla.com/D199491
2024-01-31 13:23:52 +00:00
Iulian Moraru
8caca1df07 Backed out changeset 4871c819b21e (bug 1876276) for causing multiple bc failures. CLOSED TREE 2024-01-31 14:25:42 +02:00
Tom Schuster
00fcd6f011 Bug 1876276 - Remove dead nsIDocShell allowPlugins code. r=emilio,sessionstore-reviewers,dao
Differential Revision: https://phabricator.services.mozilla.com/D199491
2024-01-31 09:36:36 +00:00
Emilio Cobos Álvarez
18a29a0e52 Bug 1874766 - Make title change events block onload in chrome docshells. r=smaug
See the comment as for why.

Differential Revision: https://phabricator.services.mozilla.com/D198684
2024-01-18 13:11:53 +00:00
Nicolas Chevobbe
8385ae28f0 Bug 1857523 - Pass PropertyDefinition in csscustompropertyregistered event. r=emilio.
Differential Revision: https://phabricator.services.mozilla.com/D196828
2024-01-16 19:31:05 +00:00
Nicolas Chevobbe
aa46055693 Bug 1857523 - Add ChromeOnly csscustompropertyregistered event. r=emilio.
The event is emitted when a property is registered via `CSS.registerProperty`.
This will be used by DevTools so we can update the Rules view when a property
is registered.

Differential Revision: https://phabricator.services.mozilla.com/D196204
2024-01-16 19:31:04 +00:00
Cosmin Sabou
45679835e9 Backed out 4 changesets (bug 1874766) for causing frequent crashes @nsBaseWidget::UpdateZoomConstraints. CLOSED TREE
Backed out changeset b6caaf7b98e6 (bug 1874766)
Backed out changeset ab8632fd1236 (bug 1874766)
Backed out changeset f2bfe7d3bd10 (bug 1874766)
Backed out changeset 830a664759c7 (bug 1874766)
2024-01-16 21:52:28 +02:00
Emilio Cobos Álvarez
b65538912f Bug 1874776 - Ignore all extension pages from use counters. r=smaug
It seems the discussion in the bug goes in this direction, and I think
it's the right call as described there.

Depends on D198630

Differential Revision: https://phabricator.services.mozilla.com/D198669
2024-01-16 18:41:58 +00:00
Emilio Cobos Álvarez
336c3bcf83 Bug 1874766 - Make title change events block onload in chrome docshells. r=smaug
See the comment as for why.

Differential Revision: https://phabricator.services.mozilla.com/D198684
2024-01-16 14:30:12 +00:00
Masayuki Nakano
ec47e76714 Bug 1871987 - Make Document::ExecCommand treat first call by addon as a user input r=smaug
`beforeinput` event shouldn't be fired if it's caused by JS.  However, we
dispatch it when the call is by chrome script or an addon because there is
no user input emulation API for WebExtension and builtin editors make the
change undoable only when JS changes the editor value with
`Document.execCommand`.  Therefore, addons may want to use
`Document.execCommand` for making the change undoable.

On the other hand, nested calls of `Document.execCommand` makes the error
handlings in editor classes too complicated.  Therefore, we don't allow that.
However, this causes that if web apps intercept `beforeinput` events and
prevents the default and calls `document.execCommand`, the first call of
web apps may be first nested call if the `beforeinput` event is caused by
a call of `Document.execCommand` in addon.

Therefore, this patch makes `Document` stores whether `ExecCommand` is called
by content or chrome/addon.  And if the call is improperly nested, keep stopping
handling the command, but allows if and only if the first call is by
chrome/addon.

Differential Revision: https://phabricator.services.mozilla.com/D198357
2024-01-14 03:06:25 +00:00
Tooru Fujisawa
95bdb671e8 Bug 1873330 - Part 4: Add UserActivation::Modifiers getters. r=smaug
In order to use the modifiers in nsGlobalWindowOuter::OpenInternal, add accessor
methods to BrowsingContext, Document, and WindowContext.
Those accessors behave in the same way as ConsumeTransientUserGestureActivation
and RevisePopupAbuseLevel, except for checking the PopupBlocker state.

Differential Revision: https://phabricator.services.mozilla.com/D197862
2024-01-11 17:24:02 +00:00
Tooru Fujisawa
293b0ae3cb Bug 1873330 - Part 3: Store modifiers for user activation with input event. r=smaug
Depends on D197860

Differential Revision: https://phabricator.services.mozilla.com/D197861
2024-01-11 17:24:02 +00:00
Gregory Pappas
eb2242368d Bug 1853547 - Remove dom.importMaps.enabled pref r=allstarschh
Differential Revision: https://phabricator.services.mozilla.com/D197751
2024-01-06 01:53:19 +00:00
Tom Ritter
6fb74fab49 Bug 1851816: Pass PBM Status into RFPIsEnabledFor r=timhuang
Differential Revision: https://phabricator.services.mozilla.com/D192501
2023-12-18 18:39:33 +00:00
Sean Feng
02aed49dba Bug 1867152 - Fix the assertion in nsPresContext::UserInputEventsAllowed r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D196106
2023-12-12 22:49:38 +00:00
Cosmin Sabou
522da0fe26 Backed out changeset 496886cb30a5 (bug 1867152) for bc failures on browser_user_input_handling_delay.js. CLOSED TREE 2023-12-12 21:48:27 +02:00
Sean Feng
ee1d6bccd1 Bug 1867152 - Fix the assertion in nsPresContext::UserInputEventsAllowed r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D196106
2023-12-12 15:17:53 +00:00
Adam Vandolder
9175984175 Bug 1712140 - Part 4: Add parseHTMLUnsafe and setHTMLUnsafe methods. r=dom-core,webidl,hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D193676
2023-12-07 21:27:10 +00:00
Adam Vandolder
b9bbd3c2cc Bug 1712140 - Part 3: Add support for parsing and building Declarative ShadowDOMs. r=dom-core,webidl,saschanaz,hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D193675
2023-12-07 21:27:10 +00:00
Olli Pettay
e8eceb76ea Bug 1868746 - Drop styleset from Document sooner, r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D195771
2023-12-07 20:50:14 +00:00