Commit Graph
74 Commits
Author SHA1 Message Date
agoloman c75e2e420f Revert "Bug 2020707, Bug 2020704 - Part 6: Update test expectations now that speculationrules scripts are supported. r=dom-core-reviewers,jjaschke" for causing bc failures @browser_misused_characters_in_strings.js.
This reverts commit 524a1fc191.

Revert "Bug 2020707 - Part 5: Gate speculation rules script support behind a pref. r=dom-core-reviewers,jjaschke"

This reverts commit 11741d18ad.

Revert "Bug 2020707 - Part 4: Unregister speculation rules when their script element is removed. r=dom-core-reviewers,hsivonen"

This reverts commit 5202943dc9.

Revert "Bug 2020707 - Part 3: Report an exception if speculation rules parsing fails. r=dom-core-reviewers,jjaschke"

This reverts commit 70c5aa5425.

Revert "Bug 2020707 - Part 2: Add support for speculationrules script type. r=dom-core-reviewers,jjaschke"

This reverts commit 65b30a350b.

Revert "Bug 2020707 - Part 1: Allow speculation rules to be registered to the document from scripts. r=hsivonen,jjaschke"

This reverts commit 28c7050de9.

Revert "Bug 2020704 - Part 2: Add parser for speculation rule sets. r=hsivonen,jjaschke"

This reverts commit eabb8c6eb3.

Revert "Bug 2020704 - Part 1: Add speculation rules crate. r=dom-core-reviewers,jjaschke"

This reverts commit cd65bed005.
2026-06-12 06:28:05 +00:00
Adam Vandolder 5202943dc9 Bug 2020707 - Part 4: Unregister speculation rules when their script element is removed. r=dom-core-reviewers,hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D303212
2026-06-12 04:48:32 +00:00
Daniel Holbert 648f3a95c5 Bug 2044510: Pass already_AddRefed types by-value instead of by rvalue reference, in dom/html. r=dom-core-reviewers,smaug
Differential Revision: https://phabricator.services.mozilla.com/D304360
2026-06-05 21:06:40 +00:00
Sylvestre Ledru 9eb1a31a98 Bug 2023419 - Remove Emacs/Vim modelines from dom/ r=emilio,media-playback-reviewers,webidl,padenot
replaced by .editorconfig
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D287843
2026-03-16 21:02:32 +00:00
Jan-Niklas Jaeschke cb161a6f96 Bug 1949053, part 3 - Rename nsIContent::GetText() to GetCharacterDataBuffer(). r=masayuki,layout-reviewers,emilio
This patch renames the `nsIContent` interface that returns a `CharacterDataBuffer`
and also renames the variables its result is assigned to at the call sites.

Differential Revision: https://phabricator.services.mozilla.com/D259934
2025-08-06 08:48:05 +00:00
Emilio Cobos Álvarez 791917d8af Bug 1976665 - Sort headers in dom/. r=dom-core,media-playback-reviewers,webrtc-reviewers,dom-storage-reviewers,padenot,janv,smaug,jesup,jib
Most changes are automated. Relevant bit is dom/.clang-format. I had to
manually disable clang-format in a few places where importing external
files and so on that aren't self-contained, and fix a couple includes /
forward declarations.

Differential Revision: https://phabricator.services.mozilla.com/D256800
2025-08-05 11:47:34 +00:00
Frédéric Wang 5b2f8ce346 Bug 1972280 - Test whether script's text is non-empty in ScriptElement::MaybeProcessScript. r=smaug
Currently logic is duplicated in HTMLScriptElement and SVGScriptElement's
HasScriptContent() implementations. Rename these methods to only check
hether we have external script content, and move the check for inline
script content directly in ScriptElement::MaybeProcessScript.

Differential Revision: https://phabricator.services.mozilla.com/D253789
2025-06-17 09:36:12 +00:00
Nazım Can Altınova be9cba47b7 Bug 1905855 - Use USVString instead of DOMString for HTMLScriptElement's src attribute r=smaug
Type of src attribute is USVString in the spec:
https://html.spec.whatwg.org/multipage/scripting.html#the-script-element:dom-script-src
And USVString is usually the required type for src and url attributes.

Differential Revision: https://phabricator.services.mozilla.com/D251774
2025-05-30 20:45:44 +00:00
Tom Schuster edaa914b45 Bug 1947732 - Provide nsIPrincipal to GetTrustedTypesCompliantString. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D246424
2025-04-30 11:09:07 +00:00
Frédéric Wang fd4d501294 Bug 1944511 Implement remaining Trusted Type support for attribute changes. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D236107
2025-02-14 06:49:12 +00:00
Frédéric Wang 3638510837 Bug 1905706 - Trusted Types support for the src/innerText/textContent/text IDL attributes of HTMLScriptElement. r=smaug
This only does the minimal change to handle trusted types as arguments
of attribute setter/getter. See bug 1928932 for follow-up checks.

Differential Revision: https://phabricator.services.mozilla.com/D227513
2024-11-27 05:06:17 +00:00
Mirko Brodesser 86af414bcd Bug 1914372: part 2) Add TrustedHTML to the interface of Element.innerHTML. r=smaug,peterv,farre
Differential Revision: https://phabricator.services.mozilla.com/D219876
2024-10-16 10:32:37 +00:00
Cathie Chen 7859d6112f Bug 1879340 - Add potentially render blocking, r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D201095
2024-02-24 18:12:35 +00:00
Cathie Chen d8224880f1 Bug 1878888 - Add the runtime flag and parsing for the blocking attribute, r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D200810
2024-02-07 17:06:56 +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 510fb3abb6 Bug 1839315: part 1) Lift code for fetchpriority attribute from HTMLScriptElement to nsGenericHTMLElementWithFetchPriorityAttribute. r=smaug
Since the HTMLLinkElement requires it too, see part 2.

Differential Revision: https://phabricator.services.mozilla.com/D189935
2023-10-23 08:14:49 +00:00
Mirko Brodesser 3de23172d3 Bug 1839316: part 4) Add RequestPriority to ScriptFetchOptions and ScriptLoadRequest. r=smaug
The request priority isn't propagated from `ScriptFetchOptions`, so
setting it has no effect for end-users. That will be implemented in a
following part.

Differential Revision: https://phabricator.services.mozilla.com/D183483
2023-08-28 11:56:34 +00:00
Mirko Brodesser ff739cbbd7 Bug 1839316: part 2) Implement getting and setting "fetchpriority" content attribute of <script> element. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D181752
2023-08-28 11:56:33 +00:00
Mirko Brodesser 75bccc6dd6 Bug 1839316: part 1) Add fetchPriority idl attribute to HTMLScriptElement's interface. r=webidl,smaug
For context about the `CEReactions` extended attribute see
<https://bugzilla.mozilla.org/show_bug.cgi?id=1839316#c4>.

Differential Revision: https://phabricator.services.mozilla.com/D181751
2023-08-28 11:56:33 +00:00
Cosmin Sabou 70b514ed8e Backed out 5 changesets (bug 1839316) for causing bustages on ScriptLoader.cpp. CLOSED TREE
Backed out changeset 85f107e082ee (bug 1839316)
Backed out changeset 8c1e22518c3a (bug 1839316)
Backed out changeset a4c3dec0f34c (bug 1839316)
Backed out changeset 313ff15742dd (bug 1839316)
Backed out changeset fa200e26bbb1 (bug 1839316)
2023-08-09 20:16:06 +03:00
Mirko Brodesser fcb70e3246 Bug 1839316: part 4) Add RequestPriority to ScriptFetchOptions and ScriptLoadRequest. r=smaug
The request priority isn't propagated from `ScriptFetchOptions`, so
setting it has no effect for end-users. That will be implemented in a
following part.

Differential Revision: https://phabricator.services.mozilla.com/D183483
2023-08-09 13:50:28 +00:00
Mirko Brodesser 27bbf8ed44 Bug 1839316: part 2) Implement getting and setting "fetchpriority" content attribute of <script> element. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D181752
2023-08-09 13:50:28 +00:00
Mirko Brodesser 9141207815 Bug 1839316: part 1) Add fetchPriority idl attribute to HTMLScriptElement's interface. r=webidl,smaug
For context about the `CEReactions` extended attribute see
<https://bugzilla.mozilla.org/show_bug.cgi?id=1839316#c4>.

Differential Revision: https://phabricator.services.mozilla.com/D181751
2023-08-09 13:50:27 +00:00
Cosmin Sabou 1ea8eb8868 Backed out 5 changesets (bug 1839316) for causing leaks. CLOSED TREE
Backed out changeset 75edff380fee (bug 1839316)
Backed out changeset 6a622fd5cd91 (bug 1839316)
Backed out changeset 60908cc7c586 (bug 1839316)
Backed out changeset 7b9dd8875a9e (bug 1839316)
Backed out changeset b586915187c2 (bug 1839316)
2023-08-07 16:43:03 +03:00
Mirko Brodesser e0b84f81a4 Bug 1839316: part 4) Add RequestPriority to ScriptFetchOptions and ScriptLoadRequest. r=smaug
The request priority isn't propagated from `ScriptFetchOptions`, so
setting it has no effect for end-users. That will be implemented in a
following part.

Differential Revision: https://phabricator.services.mozilla.com/D183483
2023-08-07 11:46:19 +00:00
Mirko Brodesser 82184f5a89 Bug 1839316: part 2) Implement getting and setting "fetchpriority" content attribute of <script> element. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D181752
2023-08-07 11:46:18 +00:00
Mirko Brodesser 47664f9034 Bug 1839316: part 1) Add fetchPriority idl attribute to HTMLScriptElement's interface. r=webidl,smaug
For context about the `CEReactions` extended attribute see
<https://bugzilla.mozilla.org/show_bug.cgi?id=1839316#c4>.

Differential Revision: https://phabricator.services.mozilla.com/D181751
2023-08-07 11:46:17 +00:00
Robert Longson 75934e48ba Bug 1839954 - support async defer and module scripts r=emilio
https://www.w3.org/2012/01/05-svg-irc#T21-07-03 says that async and defer should be supported as does the specification https://www.w3.org/TR/SVG2/interact.html#ScriptElement

https://github.com/w3c/svgwg/issues/918 tracks getting the SVGScriptElement webidl updated.

Differential Revision: https://phabricator.services.mozilla.com/D181936
2023-07-06 18:51:54 +00:00
CanadaHonk 23e171e2af Bug 1834134 - Create base ScriptElement GetScriptType method r=peterv
SVG and HTML ScriptElements now use a new base GetScriptType common
method instead of an individual duplicate implementation.

Make a big (unimportant) meta bug to do more of this later?
(avoids code duplication between SVG and HTML, updates old SVG code).

160 WPT subtests newly pass (100% in this test file) 🎉

Differential Revision: https://phabricator.services.mozilla.com/D180200
2023-06-22 19:42:30 +00:00
Adam Vandolder bec905b437 Bug 1827512 - Properly handle type and src attribute changes on script tags. r=smaug
Modifies the preparation of script tags in order to better follow the
specification. Now, scripts are only considered to have already started
if they have a valid type when being prepared, and only changes to the
src attribute trigger script preparation, instead of for all attributes.
This allows script tags to be re-run after their type and src are
modified, if they haven't run already.

Differential Revision: https://phabricator.services.mozilla.com/D175795
2023-06-14 04:00:09 +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
Masayuki Nakano 5dfd7f8719 Bug 1800553 - part 2: Change HTMLAnchorElement::GetText to a const method r=smaug
This needs to change `nsContentUtils` methods because of used by the method.
Then, we can make some there callers are also `const` methods.

Depends on D162065

Differential Revision: https://phabricator.services.mozilla.com/D162066
2022-11-16 00:21:30 +00:00
Kagami Sascha Rosylight ece003e2d3 Bug 1768189 - Part 13: Apply modernize-concat-nested-namespaces to dom/html/HTMLIFrameElement.h ... r=andi
Depends on D145746

Differential Revision: https://phabricator.services.mozilla.com/D145747
2022-05-09 20:41:08 +00:00
Tom Schuster 9a42f3df12 Bug 1729239 - Implement HTMLScriptElement.supports(type) method. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D124900
2021-09-27 12:49:51 +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
Thomas Nguyen a688b675a4 Bug 1528697 - Expose ReferrerPolicy.webidl and use referrerpolicy enum r=smaug
ReferrerPolicy gets tossed back and forth as a uint32_t and
ReferrerPolicy enum in header file. Expose ReferrerPolicyValues from
webidl file and use consistently in native code.

Differential Revision: https://phabricator.services.mozilla.com/D41954
2019-08-21 13:24:45 +00:00
Emilio Cobos Álvarez a3b32df884 Bug 1555216 - Change the signature of BindToTree to be (BindContext&, nsINode& aParentNode). r=bzbarsky
BindContext was going to have way more information at first, but then I realized
that most of the things I wanted to know were basically a flag away using the
parent node.

Still I think it's worth it, now experimenting with BindToTree will only mean
adding a field to a struct that's included from a couple cpp files, instead of a
massive pain.

I also think this is clearer, and doing this highlights quite a few
inconsistencies in our code which I've left untouched, but commented with
FIXMEs.

Steps are:

$ for file in $(rg 'nsresult BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#nsresult BindToTree(Document\* aDocument, nsIContent\* aParent,#nsresult BindToTree(BindContext\&, nsINode\& aParent)#g' $file; done
$ for file in $(rg 'nsresult BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#                      nsIContent\* aBindingParent) override#override#g' $file; done
$ for file in $(rg '::BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#::BindToTree(Document\* aDocument, nsIContent\* aParent,#::BindToTree(BindContext\& aContext, nsINode\& aParent)#g' $file; done
$ for file in $(rg '::BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#nsIContent\* aBindingParent)##g' $file; done
$ for file in $(rg '::BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#::BindToTree(aDocument, aParent, aBindingParent)#::BindToTree(aContext, aParent)#g' $file; done
$ ./mach clang-format

Then manual fixups.

Depends on D32948

Differential Revision: https://phabricator.services.mozilla.com/D32949
2019-05-31 23:31:52 +02:00
Emilio Cobos Álvarez dc336a73ba Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Sylvestre Ledru e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Thomas Nguyen 60ca74e33c Bug 1460920 - Part 2 : Support referrerpolicy attribute in script HTMLScriptElement r=hsivonen
The patch adds the support of referrerpolicy attribute in script element
and take the attribute into account when loading script.

Differential Revision: https://phabricator.services.mozilla.com/D11637
2018-11-13 14:33:02 +00:00
Nathan Froyd f93834868a Bug 1492894 - part 1 - make the node hierarchy consistently constructed with NodeInfo&&; r=mccr8
Various places in dom/ use the pattern:

  already_AddRefed<NodeInfo> ni = ...;

which is supposed to be disallowed by our static analysis code, but
isn't, for whatever reason.  To fix our static analysis code, we need to
eliminate instances of the above pattern.

Unfortunately, eliminating this pattern requires restructuring how Nodes
are created.  Most Node subclasses take `already_AddRefed<NodeInfo>&` in
their constructors, and a few accept `already_AddRefed<NodeInfo>&&`.  We
need to enforce the latter pattern consistently, which requires changing
dozens of source files.
2018-09-21 16:45:49 -04:00
Emilio Cobos Álvarez 693b3d3877 Bug 1481601 - Remove now-useless aPreallocateChildren from nsINode::Clone() and friends. r=bzbarsky
Since sed on multiple lines ended up being such a pain and I didn't end up
writing a script for this because I didn't think it'd end up being so boring, I
may have made a couple cleanups here and there as well...

Differential Revision: https://phabricator.services.mozilla.com/D2887
2018-08-08 23:58:44 +00:00
Emilio Cobos Álvarez bc847c0eef Bug 1479860: Remove unused aCompileEventHandlers argument from BindToTree. r=bz
Mostly automatic via sed. Only parts which I touched manually (apart from a
couple ones where I fixed indentation or which had mispelled arguments) are the
callers. I may have removed a couple redundant `virtual` keywords as well when
I started to do it manually, I can revert those if wanted.

Most of them are just removing the argument, but in Element.cpp I also added an
assertion for GetBindingParent when binding the ShadowRoot's kids (the binding
parent is set from the ShadowRoot constructor, and I don't think we bind a
shadow tree during unlink or what not which could cause a behavior difference).

Differential Revision: https://phabricator.services.mozilla.com/D2574

MozReview-Commit-ID: 2oIgatty2HU
2018-08-01 10:42:54 +02:00
Boris Zbarsky da3d4d37a5 Bug 1449404 part 1. Get rid of nsIContent::SetText. r=mccr8 2018-03-28 18:01:46 -04:00
Boris Zbarsky 868eaca19e Bug 1449019. Actually propagate out exceptions from the innerHTML getter. r=smaug
I moved the IgnoreErrors decl so it would come after the OOMReporter decl and I
could add the new conversion operator.

MozReview-Commit-ID: B1S6DXmZfvE
2018-03-26 16:41:43 -04:00
Boris Zbarsky df75c1fa27 Backed out changeset 1023e033bfa6 (bug 1132934) because it hasn't been reviewed yet.
MozReview-Commit-ID: LXefIp2OG6Q
2018-03-26 16:47:31 -04:00
Boris Zbarsky 29302e62f2 Bug 1132934 part 1. Actually propagate out exceptions from the innerHTML getter. r=smaug
MozReview-Commit-ID: KEqsx836qQn
2018-03-26 16:41:43 -04:00
Jon Coppeard 69ebe1854a Bug 1361369 - Allow async attribute on inline module scripts r=smaug 2018-01-08 15:17:34 +00:00
Boris Zbarsky ca91e3b7b4 Bug 1424474 part 3. Make sure that we only pass non-system subject principals to setters/methods that later use that principal for loading security checks. r=kmag
MozReview-Commit-ID: IjUEG5xwn5
2017-12-20 17:43:18 -05:00
Narcis Beleuzu d9519f9913 Backed out 2 changesets (bug 1424474) for mochitest failures on test_bug494328.html r=backout on a CLOSED TREE
Backed out changeset 39d5991f02ba (bug 1424474)
Backed out changeset da3dec2fce06 (bug 1424474)
2017-12-21 02:55:27 +02:00