Commit Graph
131 Commits
Author SHA1 Message Date
Valentin Gosu f618d10405 Bug 2020765 - Make nsIURI.rs usable in rust r=necko-reviewers,kershaw
- Moves URIParams Serialization to a different interface
- Moves SizeOfIncludingThis to a different interface

Differential Revision: https://phabricator.services.mozilla.com/D285809
2026-05-12 07:55:54 +00:00
Frédéric Wang Nélar 1e371482e5 Bug 2026848 - Add preference to disable MathML href on all but <a> elements, with deprecation and use counters. r=emilio,flod
Differential Revision: https://phabricator.services.mozilla.com/D290362
2026-04-01 11:20:49 +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
Andrew McCreight 951b693098 Bug 2003652, part 2 - Add comments explaining why this nsIURI memory reporting doesn't cause double counting. r=emilio,jwatt
Differential Revision: https://phabricator.services.mozilla.com/D274857
2025-12-08 15:50:28 +00:00
Andrew McCreight bc71be21ec Bug 2003652, part 1 - Move the one nsISizeOf method into nsIURI. r=xpcom-reviewers,necko-reviewers,firefox-svg-reviewers,emilio,jesup,dholbert
Moving SizeOfIncludingThis from nsISizeOf to nsIURI makes using and
reasoning about this much easier.

When this nsIURI reporting was added in bug 682431, it was deliberately
added as a separate interface rather than on nsIURI. There's no explanation,
but that was in 2011 when compatibility for addons or whatever may have
been something they had to maintain. nsIURI has been changed a number of
times since 2015 without changing the UUID so I expect that isn't a
concern any more.

A few nsIURI subclasses get new SizeOfIncludingThis methods that don't
do anything, but we can fill these in if they show up on DMD reports.

Differential Revision: https://phabricator.services.mozilla.com/D274856
2025-12-08 15:50:25 +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
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
Valentin Gosu 14f44a1a25 Bug 1851414 - <a> and <area>'s search setter should use the UTF-8 URL encoding r=necko-reviewers,kershaw
Differential Revision: https://phabricator.services.mozilla.com/D199766
2024-02-08 13:16:16 +00:00
edgul b3ab9b1204 Bug 1851426 - Relanding URL: protocol setter needs to be more restrictive around file (bug 1347459). r=kershaw,twisniewski,necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D188518
2023-10-12 14:33:41 +00:00
Narcis Beleuzu a637cfc4ec Backed out 2 changesets (bug 1851426) for bc failure on browser_misused_characters_in_strings.js . CLOSED TREE
Backed out changeset 0f0a9e88f81a (bug 1851426)
Backed out changeset da824de73805 (bug 1851426)
2023-10-07 02:50:09 +03:00
edgul caa1ac43ea Bug 1851426 - Relanding URL: protocol setter needs to be more restrictive around file (bug 1347459). r=kershaw,twisniewski,necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D188518
2023-10-06 16:04:31 +00:00
Thomas Wisniewski 250f13a6a0 Bug 1850954 - Back out URL protocol spec-compliant restrictions added in bug 1347459 for causing webcompat issues; r=valentin,necko-reviewers,kershaw
Differential Revision: https://phabricator.services.mozilla.com/D187221
2023-09-01 12:20:46 +00:00
Emilio Cobos Álvarez 72f00fc947 Bug 1850293 - Make validity states non-intrinsic. r=smaug
Add a RAII helper to notify of multiple state changes together for
these.

The UpdateState CustomElementInternals calls that are getting removed
are unnecessary (the state should be up-to-date by then, there's nothing
changing there particularly).

Same for the call in nsGenericHTMLFormElement::UnbindFromTree. ClearForm
already does an state update.

Differential Revision: https://phabricator.services.mozilla.com/D187033
2023-08-30 09:18:32 +00:00
Emilio Cobos Álvarez 18854ff8b5 Bug 1850238 - Make Link states not intrinsic. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D186877
2023-08-30 09:18:32 +00:00
Thomas Wisniewski 56bf28cdc4 Bug 1347459 - make the link and URL protocol setters adhere to the URL spec text validating changes of protocol between file and/or special schemes; r=kershaw,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D182850
2023-07-06 15:40:31 +00:00
Nika Layzell 30c48eac49 Bug 1839920 - Rename Get{ASCII,UTF}Origin to GetWebExposedOriginSerialization, r=smaug,necko-reviewers,anti-tracking-reviewers,bvandersloot,jesup
This should make uses of the type more clearly indicating where the
origin came from, and should help avoid potential confusion between this
origin and nsIPrincipal::origin in new code.

This new name is long, but explicit. The string returned from this
function corresponds to the "serialization of an origin" from the WHATWG
html spec:
https://html.spec.whatwg.org/multipage/browsers.html#ascii-serialisation-of-an-origin

Differential Revision: https://phabricator.services.mozilla.com/D181794
2023-06-27 19:59:15 +00:00
Daniel Holbert f05bfd236f Bug 1834133 part 1: Remove about:config prefs layout.css.notify-of-unvisited and layout.css.always-repaint-on-unvisited. r=emilio
Update all of their usages to assume that they're true (which they have been, by-default, for several years).

Differential Revision: https://phabricator.services.mozilla.com/D178569
2023-05-20 06:07:48 +00:00
cybai 076bb6b9bc Bug 1819323 - Avoid casting nsIURI to nsIURL in Link. r=emilio
`nsIURI` fails to cast to `nsIURL` so we used to get a nil url and
return empty string (e.g. for pathname). As we're able to get the
pathname information from URI, I wonder we can just use it directly
without casting to `nsIURL`. With doing so, we can fix the issue.

Differential Revision: https://phabricator.services.mozilla.com/D171233
2023-03-01 17:59:03 +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
Emilio Cobos Álvarez eaa554e95f Bug 1762109 - Make the XLink setup a bit saner. r=smaug
Make Link and SVGAElement agree on XLink handling, and make it more
explicit that SVGAElement needs to be a bit more special for SMIL.

Remove dead MathML XLink code.

Differential Revision: https://phabricator.services.mozilla.com/D142546
2022-03-31 14:33:57 +00:00
Emilio Cobos Álvarez 17ebd805d1 Bug 1760674. r=mak
Differential Revision: https://phabricator.services.mozilla.com/D141958
2022-03-29 12:15:52 +00:00
Cristian Tuns f3979ba261 Backed out changeset ddf7a48e3bf1 (bug 1760674) for causing mochitest failures on Link.cpp CLOSED TREE 2022-03-29 07:39:21 -04:00
Emilio Cobos Álvarez cc01425709 Bug 1760674. r=mak
Differential Revision: https://phabricator.services.mozilla.com/D141958
2022-03-29 10:56:50 +00:00
Valentin Gosu 1eed4f3b76 Bug 1497557 - <a> "protocol" should be ":" for data-relative paths, instead of "http:" r=baku
Differential Revision: https://phabricator.services.mozilla.com/D106260
2021-03-02 08:29:29 +00:00
Butkovits Atila 13c92a3763 Backed out changeset af234fcd4e15 (bug 1497557) for causing failureS at a-element-xhtml.xhtml. CLOSED TREE 2021-03-01 10:40:15 +02:00
Valentin Gosu 44eed88384 Bug 1497557 - <a> "protocol" should be ":" for data-relative paths, instead of "http:" r=baku
Differential Revision: https://phabricator.services.mozilla.com/D106260
2021-03-01 07:53:35 +00:00
Alexis Beingessner 06a6ca2291 Bug 1686616 - make History use Components instead of Services. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D105524
2021-02-18 13:26:30 +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 4112a05961 Bug 1688925 - Make nsLinkState an enum class, and make it smaller. r=edgar
Differential Revision: https://phabricator.services.mozilla.com/D103061
2021-01-27 04:48:51 +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
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
Nicholas Nethercote a2ef9fa679 Bug 1645982 - Rename some service getters in Services.py to better match the types. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79791
2020-06-16 23:32:21 +00:00
Emilio Cobos Álvarez 8688ceb28a Bug 1639392 - Merge nsIStyleSheetLinkingElement and nsStyleLinkElement, and call it LinkStyle. r=jwatt
Which is the spec term. nsIStyleSheetLinkingElement is even more
confusing since it may not be an element at all (see: processing
instructions).

Differential Revision: https://phabricator.services.mozilla.com/D76071
2020-05-21 03:07:16 +00:00
Emilio Cobos Álvarez f27d39b31e Bug 1626586 - Make history notifications do a bit less work. r=mak,lina,agi,snorp
And batch them when notifying child processes.

This makes RegisterVisitedQuery potentially notify synchronously, but changes
the code to deal with it properly.

Differential Revision: https://phabricator.services.mozilla.com/D69187
2020-04-15 21:19:41 +00:00
Gabriele Svelto eb403b8785 Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442
2019-12-06 09:24:56 +00:00
Dorel Luca 67889e1013 Backed out changeset f6e53d1c6518 (bug 1600545) for Android build bustage. CLOSED TREE 2019-12-04 17:32:27 +02:00
Gabriele Svelto dc6fa2e86c Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442
2019-12-04 15:01:19 +00:00
Emilio Cobos Álvarez e89f332c21 Bug 1506842 - Always restyle / repaint when a visited query finishes. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D50810
2019-11-04 16:55:33 +00:00
Emilio Cobos Álvarez 39e8cb3e01 Bug 1591717 - Add a pref to notify of unvisited uris in the history service. r=mak,lina
Behind a pref to ensure that we can turn this off pretty easily if it has perf
impact.

I want to leave the repainting stuff to another bug to land separately, to track
potential (though I hope not!) perf regressions more easily.

Differential Revision: https://phabricator.services.mozilla.com/D50704
2019-11-04 13:28:58 +00:00
Emilio Cobos Álvarez 2a6a2744e0 Bug 1590816 - Cleanup some link coloring APIs to make them infallible when appropriate. r=mak
GeckoView does this link clearing stuff (which is somewhat dubious), but always
used to return NS_OK.

The error handling case in Link.cpp was pretty broken anyway (it'd leave the
link marked as registered), so make that infallible, given we fatally assert in
the non-android case.

NotifyVisited is also infallible so make that infallible too.

There's no need to use NS_IMETHOD gunk when not using scriptable XPCOM, and
these functions are not called from script, so make them regular pure-virtual
functions.

Depends on D50478.

Differential Revision: https://phabricator.services.mozilla.com/D50480
2019-10-25 13:02:25 +00:00
Emilio Cobos Álvarez 3a89ed740d Bug 1590816 - Simplify a rather weird ifdef set. r=mak
GetHistoryService should work everywhere.

Differential Revision: https://phabricator.services.mozilla.com/D50261
2019-10-25 13:02:06 +00:00
Emilio Cobos Álvarez eb9ef93279 Bug 1572526 - Move a bunch of code that's only called by HTMLLinkElement out of Link.cpp. r=bzbarsky
Seems like a more logical place for it to live.

Differential Revision: https://phabricator.services.mozilla.com/D41270
2019-08-15 14:10:08 +00:00
Emilio Cobos Álvarez 2fa56a6f71 Bug 1572246 - Make <link> always unvisited. r=bzbarsky
Intent email: https://groups.google.com/d/msg/mozilla.dev.platform/1NP6oJzK6zg/ftAz_TajAAAJ

For now do the obvious check rather than bigger refactorings, since we keep them
matching :link or not depending on whether they have an href.

I'll file an HTML spec issue about not making them traversable, and a MathML
issue about the craziness that it is that almost all MathML elements can be
links.

Differential Revision: https://phabricator.services.mozilla.com/D41269
2019-08-15 14:10:07 +00:00
Thomas Nguyen fc848a1f27 Bug 1566417 - Update to use ReferrerInfo in prefetch and preload URI r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D38323
2019-07-19 11:42:09 +00:00