Commit Graph

184 Commits

Author SHA1 Message Date
Mirko Brodesser
2a72b3ab97 Bug 1865610: part 1) Add partial support for the "fetchpriority" attribute for loading style sheets from <link> elements or Link header fields. r=smaug,emilio,valentin
Includes only support for dynamically loading style sheets from `<link>`
elements and `Link` header fields.
The remaining support, including preloading, is completed in part 3.

Differential Revision: https://phabricator.services.mozilla.com/D191745
2023-11-23 14:36:11 +00:00
Jonathan Watt
efb5a74fbc Bug 1865480. Rename nsIContentViewer to nsIDocumentViewer. r=layout-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D193987
2023-11-21 12:45:59 +00:00
Dave Townsend
6ba6028340 Bug 1855427: The DOMLinkRemoved chrome event is not used anywhere. r=emilio
The event isn't dispatched correctly for DOM manipulations anymore. It is
dispatched when swapping docshells but we don't actually use this event anywhere
except tests so we might as well just remove it entirely.

Differential Revision: https://phabricator.services.mozilla.com/D192333
2023-10-31 15:10:43 +00:00
Mirko Brodesser
c9f82f9c46 Bug 1839315: part 6) Lift code for fetchpriority attribute from nsGenericHTMLElementWithFetchPriorityAttribute to nsGenericHTMLElement. r=smaug
As requested in the review of part 1.

Differential Revision: https://phabricator.services.mozilla.com/D191274
2023-10-23 08:14:51 +00:00
Mirko Brodesser
5aea9e3cf1 Bug 1839315: part 2) Add fetchPriority attribute to HTMLLinkElement's DOM interface. r=necko-reviewers,webidl,saschanaz,valentin
Setting the internal priority depending on the `fetchPriority` will be
implemented in a following part.

Differential Revision: https://phabricator.services.mozilla.com/D189936
2023-10-23 08:14:50 +00:00
Dave Townsend
d289faf722 Bug 1843267: Don't dispatch DOMLinkAdded and DOMLinkRemoved for elements disconnected from the DOM. r=emilio
This change makes these events behave the same as DOMLinkChanged which was changed
in bug 1083895.

Differential Revision: https://phabricator.services.mozilla.com/D189365
2023-09-28 09:07:18 +00:00
Emilio Cobos Álvarez
621bca86ce Bug 1847811 - Remove network.preload pref. r=necko-reviewers,anti-tracking-reviewers,pbz,kershaw
Having it disabled is not web compatible, and there's no strong reason
to keep it, IMO.

If we want another pref to determine whether preloads are actually
triggered we can add it in the future.

Differential Revision: https://phabricator.services.mozilla.com/D186014
2023-08-14 10:46:03 +00:00
Emilio Cobos Álvarez
83f6ffef76 Bug 1847546 - Don't do duplicate work on style elements from the innerHTML setter. r=smaug
Right now, when binding to the tree we queue a runnable to update the
stylesheet, even though mEnableUpdates is false.

Even though the redundant update is nowadays always cached, it's just
wasted work, and the code is simpler without it.

This will be tested by bug 1771113, which is what made me look at this.

We need to tweak a bit the dispatch of applicable state change events
for DevTools, because for a case like:

  div.attachShadow({ mode: "open" }).innerHTML = `<style>...</style>`;

Before we'd go through the stylesheet cache here due to the redundant
update:

  https://searchfox.org/mozilla-central/rev/fb43eb3bdf5b51000bc7dfe3474cbe56ca2ab63c/layout/style/SharedStyleSheetCache.cpp#161-165

But now we won't, and the code in StyleSheet.cpp wasn't quite correct /
didn't dispatch the event.

Nobody listens to style-sheet-applicable-state-changed, so remove that
code while at it.

Differential Revision: https://phabricator.services.mozilla.com/D185559
2023-08-07 20:21:34 +00:00
Emilio Cobos Álvarez
529c9ee321 Bug 1839922 - Remove usage of {Has,Get}Attr(kNameSpaceID_None, ..). r=edgar
We have more readable and faster versions (that just omit the namespace
arg).

Mostly done via sed, with a couple helpers to use the faster lookups
where possible.

Differential Revision: https://phabricator.services.mozilla.com/D181795
2023-06-23 10:01:32 +00:00
Em Zhan
2b573653be Bug 1425310 - Implement modulepreload for link rel. r=yulia,smaug,jonco
Does perform the optional step of fetching descendants and linking:
https://html.spec.whatwg.org/multipage/webappapis.html#fetching-scripts:fetch-the-descendants-of-and-link-a-module-script-2

Partially implements some new destinations ("as" attribute values) for
modulepreload only (not for preload or link attribute reflection)

Differential Revision: https://phabricator.services.mozilla.com/D172368
2023-05-14 10:49:46 +00:00
Natalia Csoregi
b58e292db2 Backed out changeset 3bb8a8b46f3c (bug 1425310) for causing failures on /preload/modulepreload.html. CLOSED TREE 2023-05-13 21:02:02 +03:00
Em Zhan
d6891e6ffe Bug 1425310 - Implement modulepreload for link rel. r=yulia,smaug,jonco
Does perform the optional step of fetching descendants and linking:
https://html.spec.whatwg.org/multipage/webappapis.html#fetching-scripts:fetch-the-descendants-of-and-link-a-module-script-2

Partially implements some new destinations ("as" attribute values) for
modulepreload only (not for preload or link attribute reflection)

Differential Revision: https://phabricator.services.mozilla.com/D172368
2023-05-13 16:09:03 +00:00
Cristian Tuns
ec72119001 Backed out changeset 0054de12b39c (bug 1425310) while the issue is being investigated(Bug 1832361) CLOSED TREE 2023-05-10 14:49:41 -04:00
Em Zhan
baf4b8cfd8 Bug 1425310 - Implement modulepreload for link rel. r=yulia,smaug,jonco
Does perform the optional step of fetching descendants and linking:
https://html.spec.whatwg.org/multipage/webappapis.html#fetching-scripts:fetch-the-descendants-of-and-link-a-module-script-2

Partially implements some new destinations ("as" attribute values) for
modulepreload only (not for preload or link attribute reflection)

Differential Revision: https://phabricator.services.mozilla.com/D172368
2023-05-09 12:35:52 +00:00
Noemi Erli
4df690a5fe Backed out changeset 1ef27d4a851e (bug 1425310) for causing build bustages in nsHtml5TreeBuilderCppSupplement.h 2023-05-08 18:08:45 +03:00
Em Zhan
79dd8b0679 Bug 1425310 - Implement modulepreload for link rel. r=yulia,smaug,jonco
Does perform the optional step of fetching descendants and linking:
https://html.spec.whatwg.org/multipage/webappapis.html#fetching-scripts:fetch-the-descendants-of-and-link-a-module-script-2

Partially implements some new destinations ("as" attribute values) for
modulepreload only (not for preload or link attribute reflection)

Differential Revision: https://phabricator.services.mozilla.com/D172368
2023-05-08 13:12:30 +00:00
Cristina Horotan
dd34759a5e Backed out changeset b288a387f790 (bug 1425310) for causing Reflection related failures. CLOSED TREE 2023-04-21 18:37:11 +03:00
Em Zhan
f2b0b368b5 Bug 1425310 - Implement modulepreload for link rel. r=yulia,smaug,jonco
Does perform the optional step of fetching descendants and linking:
https://html.spec.whatwg.org/multipage/webappapis.html#fetching-scripts:fetch-the-descendants-of-and-link-a-module-script-2

Differential Revision: https://phabricator.services.mozilla.com/D172368
2023-04-21 14:32:30 +00:00
Emilio Cobos Álvarez
c1c1e7460b Bug 1829225 - Make BeforeSetAttr take the parsed nsAttrValue. r=smaug
ParseAttribute ideally would be const (see bug 1829138), but the SVG and
SMIL code is rather messy. Still, now that BeforeSetAttr can't really
fail, swapping the order of ParseAttribute and BeforeSetAttr shouldn't
really change behavior.

Sorry for the extra `virtual` keyword removal and such. I had to do this
one by hand unlike the dependent bugs, and I went a bit drive-by, lmk if
you want me to split those changes.

Differential Revision: https://phabricator.services.mozilla.com/D176086
2023-04-21 09:25:17 +00:00
Emilio Cobos Álvarez
ded1458b5b Bug 1829189 - Make OnAttrSetButNotChanged and AfterSetAttr infallible. r=smaug
Same rg + sed shenanigans as the first patch.

There were two that could fail, both due to OOM:

 * HTMLInputElement::AfterSetAttr: If we fail (only in the type=range
   case) we end up with an old value without it being clamped by
   min/max/step.

 * HTMLBodyElement::AfterSetAttr: If we fail we won't peek up the
   DocShell's frame margins and styling could be incorrect.

That seems better than having to deal with broken states after we've
already set the attribute.

Depends on D176069

Differential Revision: https://phabricator.services.mozilla.com/D176070
2023-04-21 08:56:27 +00:00
Emilio Cobos Álvarez
c881eb2941 Bug 1829189 - Make BeforeSetAttr infallible. r=smaug
rg BeforeSetAttr -l | xargs sed -i 's/nsresult BeforeSetAttr/void BeforeSetAttr/g'
  rg ::BeforeSetAttr -l | xargs sed -i 's/nsresult \(.*\)::BeforeSetAttr/void \1::BeforeSetAttr/g'

Plus trivial fixes, plus clang-format.

The only meaningful changes are in nsXULElement::BeforeSetAttr. Two
things could fail:

chromemargin: I removed it because we don't use the parsed attribute any
other place than here:

  https://searchfox.org/mozilla-central/rev/31f5847a4494b3646edabbdd7ea39cb88509afe2/dom/xul/ChromeObserver.cpp#136

And that deals just fine with it not being parsed.

usercontextid: We have a debug assertion that we don't dynamically change it.
I kept it but I don't think it's worth failing to set the attribute on release for that

Differential Revision: https://phabricator.services.mozilla.com/D176069
2023-04-21 08:56:27 +00:00
Cosmin Sabou
b5ca03ae2b Backed out changeset be054669251a (bug 1425310) for causing browser-chrome leaks on nsStringBuffer. 2023-04-14 13:26:56 +03:00
Em Zhan
f27f99384d Bug 1425310 - Implement modulepreload for link rel. r=yulia,smaug,jonco
Does perform the optional step of fetching descendants and linking:
https://html.spec.whatwg.org/multipage/webappapis.html#fetching-scripts:fetch-the-descendants-of-and-link-a-module-script-2

Differential Revision: https://phabricator.services.mozilla.com/D172368
2023-04-14 08:09:49 +00:00
Emilio Cobos Álvarez
8dabbf6590 Bug 1823686 - Share URLExtraData between SVG attribute mapping and style attribute. r=smaug
I don't think there's ever a way these should differ.

Got some include hell from removing ReferrerInfo.h from Document.h but
hopefully should be straight-forward to review.

Depends on D173154

Differential Revision: https://phabricator.services.mozilla.com/D173155
2023-03-22 14:54:43 +00:00
Adam Vandolder
88882be017 Bug 1665151 - Part 2: Expose custom element default accessibility attributes. r=edgar,Jamie,credential-management-reviewers,sgalich
Differential Revision: https://phabricator.services.mozilla.com/D159237
2022-11-02 14:50:56 +00:00
Yoshi Cheng-Hao Huang
6d98cdb61b Bug 1778289 - Part 12: Update spec links as the PR is merged. r=jonco,yulia
The PR has been merged.
See https://html.spec.whatwg.org/multipage/webappapis.html#import-maps

Differential Revision: https://phabricator.services.mozilla.com/D158828
2022-10-07 13:56:27 +00:00
Yoshi Cheng-Hao Huang
9129165da5 Bug 1778289 - Part 2: Rename to 'import maps allowed' and add 'disallow import maps'. r=jonco,yulia
Rename 'acquiring import maps' to 'import maps allowed'.

Old:
https://wicg.github.io/import-maps/#document-acquiring-import-maps

New:
https://whatpr.org/html/8075/webappapis.html#import-maps-allowed

And add 'disallow further import maps':
https://whatpr.org/html/8075/webappapis.html#disallow-further-import-maps

Differential Revision: https://phabricator.services.mozilla.com/D152869
2022-10-07 13:56:23 +00:00
Yoshi Cheng-Hao Huang
aad3de8bd2 Bug 1777496 - Check if ModuleLoader exists before calling SetAcquiringImportMaps. r=smaug
For the print preview documents, they are cloned from the original document in
Document::CreateStaticClone[1]. But the cloned document isn't attched to any
nsIContentViewer yet so it won't have any global object. The document is
attached to the nsIContentViewer later when the cloning is done[2].

Also, the script elements from the cloned document are also cloned from
the original document, so they won't be processed in the cloned document.

Therefore we simply bail out if the module loader isn't initialized yet.

[1]: https://searchfox.org/mozilla-central/rev/3e1a721bce1da3ae04675539b39a4e95b25a046d/dom/base/Document.cpp#13240
[2]: https://searchfox.org/mozilla-central/rev/3e1a721bce1da3ae04675539b39a4e95b25a046d/dom/base/Document.cpp#13295

Differential Revision: https://phabricator.services.mozilla.com/D151105
2022-07-11 09:38:55 +00:00
Yoshi Cheng-Hao Huang
587f520466 Bug 1774175 - Call SetAcquiringImportMaps(false) when processing modulepreload. r=yulia,smaug
Differential Revision: https://phabricator.services.mozilla.com/D149371
2022-06-27 21:20:48 +00:00
Emilio Cobos Álvarez
1c58e2a928 Bug 1773070 - Unify Gecko and Servo EventState/ElementState bits. r=smaug
Add a dom/base/rust crate called just "dom" where we can share these.

Most of the changes are automatic:

  s/mozilla::EventStates/mozilla::dom::ElementState/
  s/EventStates/ElementState/
  s/NS_EVENT_STATE_/ElementState::/
  s/NS_DOCUMENT_STATE_/DocumentState::/

And so on. This requires a new cbindgen version to avoid ugly casts for
large shifts.

Differential Revision: https://phabricator.services.mozilla.com/D148537
2022-06-07 23:09:52 +00:00
Manuel Bucher
1b60ffbc06 Bug 1761242 - Make link asset parsing accessible in nsNetUtils.h r=necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D142053
2022-04-01 13:45:20 +00:00
Cristian Tuns
a89b74b0b2 Backed out 2 changesets (bug 1737694) for causing web platform tests failures on autocapitalize.html CLOSED TREE
Backed out changeset cbfc81505f1a (bug 1737694)
Backed out changeset c2f44297bd03 (bug 1737694)
2021-10-27 10:50:15 -04:00
Edgar Chen
95d6401c9e Bug 1737694 - Part 2: Replace nsContentUtils::HasNonEmptyAttr usage with Element::HasNonEmptyAttr; r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D129449
2021-10-27 09:59:06 +00:00
Emilio Cobos Álvarez
a992ae68b9 Bug 1695404 - follow-up: Avoid redundant string copy in Gecko_IsSupportedImageMimeType. r=tnikkel
There's no reason to require a null-terminated string in imgLoader.

Differential Revision: https://phabricator.services.mozilla.com/D112478
2021-04-17 22:21:19 +00:00
Emilio Cobos Álvarez
05c4bbb4fc Bug 1598613 - Remove some useless kNamespaceID_Nones in HTMLLinkElement. r=edgar
Just drive-by clean-up, no behavior change.

Differential Revision: https://phabricator.services.mozilla.com/D103562
2021-01-31 21:17:18 +00:00
Emilio Cobos Álvarez
4649a08e2c Bug 1687538 - Make HTMLLinkElement not inherit from Link. r=smaug
As per https://github.com/whatwg/html/pull/6269

Differential Revision: https://phabricator.services.mozilla.com/D103088
2021-01-28 05:35:05 +00:00
Butkovits Atila
ae5357f2c3 Backed out changeset 0927366150b7 (bug 1687538) for failures on link.html. CLOSED TREE 2021-01-28 07:01:27 +02:00
Emilio Cobos Álvarez
b543053411 Bug 1687538 - Make HTMLLinkElement not inherit from Link. r=smaug
As per https://github.com/whatwg/html/pull/6269

Differential Revision: https://phabricator.services.mozilla.com/D103088
2021-01-26 23:47:56 +00:00
Emilio Cobos Álvarez
5e5a457390 Bug 1688925 - Move DNS prefetch state out of Link into its own super-class. r=smaug,edgar
I made sure that this didn't grow HTMLAnchorElement, though if we don't
care too much (sizeof(HTMLAnchorElement) is 176 right now) we might want
to remove ToSupportsDNSPrefetch and such.

This fixes a subtle bug where OnDNSPrefetchRequested wasn't being called
when IsNeckoChild was true.

Differential Revision: https://phabricator.services.mozilla.com/D103062
2021-01-27 22:38:13 +00:00
Emilio Cobos Álvarez
6b3c4265a2 Bug 1688925 - Move nsHTMLDNSPrefetch to the mozilla::dom namespace. r=smaug,edgar
Differential Revision: https://phabricator.services.mozilla.com/D103060
2021-01-27 04:37:58 +00:00
Emilio Cobos Álvarez
95b89229c7 Bug 1687587 - Cleanup a bit the nsHTMLDNSPrefetch code. r=smaug
Introduce a Priority parameter that we use rather than duplicating functions.

Depends on D102366

Differential Revision: https://phabricator.services.mozilla.com/D102367
2021-01-20 09:34:27 +00:00
Emilio Cobos Álvarez
38b0295a00 Bug 1687587 - Cleanup a bit Link.h. r=smaug
Depends on D102365

Differential Revision: https://phabricator.services.mozilla.com/D102366
2021-01-20 09:24:10 +00:00
Emilio Cobos Álvarez
2b54be07bd Bug 1685830 - Remove spurious check that prevents preload from working in non-http(s) sites. r=smaug
As it doesn't match other implementations, and it's confusing.

Differential Revision: https://phabricator.services.mozilla.com/D101248
2021-01-11 02:37:15 +00:00
Emilio Cobos Álvarez
77afb7d93f Bug 1685816 - Don't fire rel=preload error events for invalid type/media/as attributes. r=smaug
This matches other browsers, https://github.com/w3c/preload/issues/155
is the spec issue. There was a test for invalid as values.

Differential Revision: https://phabricator.services.mozilla.com/D101243
2021-01-10 20:50:02 +00:00
Emilio Cobos Álvarez
fe2b95e111 Bug 1682003 - Avoid UTF-8 -> UTF-16 conversion during CSSOM serialization. r=heycam
This lifts a bunch of string conversions higher up the stack, but allows
us to make the servo code use utf-8 unconditionally, and seemed faster
in my benchmarking (see comment 0).

It should also make a bunch of attribute setters faster too (like
setting .cssText), now that we use UTF8String for them (we couldn't
because we couldn't specify different string types for the getter and
setters).

Differential Revision: https://phabricator.services.mozilla.com/D99590
2020-12-17 14:04:35 +00:00
Sylvestre Ledru
68b806d604 Bug 1674637 - Use nested namespaces in dom/ r=sg,andi
Also add some missing namespace qualifications

Done with:
./mach static-analysis check --checks="-*,modernize-concat-nested-namespaces" --fix dom/
./mach clang-format -p $(hg status dom/|grep ^M|awk '{print $2}')

Differential Revision: https://phabricator.services.mozilla.com/D95456
2020-11-04 17:04:01 +00:00
Butkovits Atila
a6e7dcc53f Backed out changeset c0adbf7522dc (bug 1674637) for bustage on GMPParent.cpp. CLOSED TREE 2020-11-04 10:54:36 +02:00
Sylvestre Ledru
8f709b39e8 Bug 1674637 - Use nested namespaces in dom/ r=sg,andi
Also add some missing namespace qualifications

Done with:
./mach static-analysis check --checks="-*,modernize-concat-nested-namespaces" --fix dom/
./mach clang-format -p $(hg status dom/|grep ^M|awk '{print $2}')

Differential Revision: https://phabricator.services.mozilla.com/D95456
2020-11-04 08:29:00 +00:00
Simon Giesecke
ab6f0a7137 Bug 1650145 - Replace all value uses of Empty[C]String by 0-length _ns literals. r=froydnj,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D82325
2020-09-23 15:17:15 +00:00
Frederik Braun
55eae542f0 Bug 1655716 - Introduce TYPE_INTERNAL_FETCH_PRELOAD and use in HTMLLinkElement::AsValueToContentPolicy() - r=emilio,mayhemer,ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D85980
2020-08-11 12:33:14 +00:00