101 Commits
Author SHA1 Message Date
serge-sans-paille 53e5242f30 Bug 2041298 - Comply with clang-tidy's modernize-use-nullptr check for parser/ r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D301771
2026-06-10 07:08:36 +00:00
Henri Sivonen 9986518e26 Bug 2037935 - Special-case the most common element and attribute names in Speedometer3 innerHTML/DOMParser parsing. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D302275
2026-05-27 06:30:15 +00:00
Jan-Niklas Jaeschke 10781ef5fa Bug 1974276 - Customizable Select: Implement stub for the selectedcontent element. r=keithamus,emilio,dom-core,webidl,hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D290553
2026-05-11 12:31:16 +00:00
Keith Cirkel decc227363 Bug 1933591 - Implement new (pref gated) parser rules for <select> r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D285503
2026-03-18 14:37:56 +00:00
Serban Stanca e61df9cc1f Revert "Bug 1933591 - Implement new (pref gated) parser rules for <select> r=hsivonen" for causing bp-nu bustages in nsHtml5Parser.cpp.
This reverts commit 9d54a37f98.
2026-03-17 17:41:56 +00:00
Keith Cirkel 9d54a37f98 Bug 1933591 - Implement new (pref gated) parser rules for <select> r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D285503
2026-03-17 15:46:18 +00:00
Serban Stanca 4ec02d27d3 Revert "Bug 1933591 - Implement new (pref gated) parser rules for <select> r=hsivonen" for causing wpt failures in select-inside-top-layer.html.
This reverts commit a5d02e457e.
2026-03-17 11:39:40 +00:00
Keith Cirkel a5d02e457e Bug 1933591 - Implement new (pref gated) parser rules for <select> r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D285503
2026-03-17 09:51:15 +00:00
Daniel Holbert 50ca364f39 Bug 1958839: Remove implementation of SVG <discard> element. r=firefox-svg-reviewers,layout-reviewers,webidl,saschanaz,longsonr,emilio
We recently added experimental support for this element only recently, and it
was never enabled by default on release.

Our implementation has been preffed-off on all branches for a little while via
bug 1954608; and this patch removes the implementation entirely, for reasons
discussed in https://bugzilla.mozilla.org/show_bug.cgi?id=1958839#c0

This patch is a squashed backout of the following 6 changesets, listed in
reverse chronological order:

https://hg.mozilla.org/mozilla-central/rev/efb626444437
https://hg.mozilla.org/mozilla-central/rev/ae8af0edf737
https://hg.mozilla.org/mozilla-central/rev/dd3fac9da2c1
https://hg.mozilla.org/mozilla-central/rev/d5e958d3caae
https://hg.mozilla.org/mozilla-central/rev/acdd71cd851b
https://hg.mozilla.org/mozilla-central/rev/86f62a648ef0

Fortunately none of the backouts needed manual merge-conflict-resolution,
so this is an entirely mechanical backout patch.

Differential Revision: https://phabricator.services.mozilla.com/D247668
2025-05-05 11:54:02 +00:00
Tom Schuster 4027a199b5 Bug 1951893 - Update the HTML5 parser. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D240597
2025-03-11 11:36:09 +00:00
longsonr 37efd4ba6f Bug 1951895 - Update the HTML5 parser to properly include the discard element. r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D240473
2025-03-11 09:33:38 +00:00
longsonr 8b87e03e18 Bug 1069931 - Implement 'discard' element from SVG Animations r=emilio,hsivonen,dholbert,frontend-codestyle-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D173833
2025-01-10 15:58:43 +00:00
serge-sans-paille 262f78c07f Bug 1922838 - Replace ArrayLength, ArrayEnd and MOZ_ARRAY_LENGTH by standard alternative r=glandium,necko-reviewers,jgilbert,application-update-reviewers,media-playback-reviewers,credential-management-reviewers,anti-tracking-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,bytesized,janv,dimi,daisuke,karlt,gstoll,canaltinova,timhuang
Namely std::size, std::end and std::size. This drops C support for
MOZ_ARRAY_LENGTH but it wasn't used anyway.

Differential Revision: https://phabricator.services.mozilla.com/D224611
2024-10-28 08:21:19 +00:00
Alexandru Marc a5eb905bf4 Backed out changeset d92f391b3b0c (bug 1922838) for backing out bug 1915351 2024-10-25 16:42:33 +03:00
serge-sans-paille 07101ac24d Bug 1922838 - Replace ArrayLength, ArrayEnd and MOZ_ARRAY_LENGTH by standard alternative r=glandium,necko-reviewers,jgilbert,application-update-reviewers,media-playback-reviewers,credential-management-reviewers,anti-tracking-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,bytesized,janv,dimi,daisuke,karlt,gstoll,canaltinova,timhuang
Namely std::size, std::end and std::size. This drops C support for
MOZ_ARRAY_LENGTH but it wasn't used anyway.

Differential Revision: https://phabricator.services.mozilla.com/D224611
2024-10-24 09:06:01 +00:00
Alexandru Marc 004e704b22 Backed out changeset 448597bce69d (bug 1922838) for causing build bustages. CLOSED TREE 2024-10-24 11:37:49 +03:00
serge-sans-paille 2c916d4973 Bug 1922838 - Replace ArrayLength, ArrayEnd and MOZ_ARRAY_LENGTH by standard alternative r=glandium,necko-reviewers,jgilbert,application-update-reviewers,media-playback-reviewers,credential-management-reviewers,anti-tracking-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,bytesized,janv,dimi,daisuke,karlt,gstoll,canaltinova,timhuang
Namely std::size, std::end and std::size. This drops C support for
MOZ_ARRAY_LENGTH but it wasn't used anyway.

Differential Revision: https://phabricator.services.mozilla.com/D224611
2024-10-24 07:38:30 +00:00
Henri Sivonen aeec0d45b1 Bug 1859527 - Update the generated includes in the HTML parser. r=edgar
Differential Revision: https://phabricator.services.mozilla.com/D191186
2023-10-18 08:40:49 +00:00
CanadaHonkandHenri Sivonen 5cb777c583 Bug 1824121 - Implement the <search> element r=hsivonen,Jamie,emilio
Implemented the new <search> HTML element.
All WPT tests for it now pass (except one for iso-8859-8, not done generally).

A11y role uses just landmark as recommended instead of a new search role (for now).

Co-authored-by: Henri Sivonen <[email protected]>

Differential Revision: https://phabricator.services.mozilla.com/D176967
2023-08-07 22:11:05 +00:00
Stanca Serban 923687f881 Backed out 3 changesets (bug 1824121) for causing wpt failures in html5lib_search-element.html. CLOSED TREE
Backed out changeset e3aec91d79e4 (bug 1824121)
Backed out changeset e3a3324b1732 (bug 1824121)
Backed out changeset 6ff5c272ab8e (bug 1824121)
2023-08-07 21:20:18 +03:00
CanadaHonkandHenri Sivonen 656774ad42 Bug 1824121 - Implement the <search> element r=hsivonen,Jamie,emilio
Implemented the new <search> HTML element.
All WPT tests for it now pass (except one for iso-8859-8, not done generally).

A11y role uses just landmark as recommended instead of a new search role (for now).

Co-authored-by: Henri Sivonen <[email protected]>

Differential Revision: https://phabricator.services.mozilla.com/D176967
2023-08-07 14:05:32 +00:00
Cosmin Sabou 9b0941d691 Backed out changeset c309e9b48aec (bug 1824121) for causing element related mochitest failures. CLOSED TREE 2023-08-07 16:05:13 +03:00
CanadaHonkandHenri Sivonen 7063dd9162 Bug 1824121 - Implement the <search> element r=hsivonen,Jamie,emilio
Implemented the new <search> HTML element.
All WPT tests for it now pass (except one for iso-8859-8, not done generally).

A11y role uses just landmark as recommended instead of a new search role (for now).

Co-authored-by: Henri Sivonen <[email protected]>

Differential Revision: https://phabricator.services.mozilla.com/D176967
2023-08-07 12:30:50 +00:00
Emilio Cobos Álvarez d32f7c15f8 Bug 1775477 - Fix interface for parser-created <keygen> elements. r=saschanaz
Differential Revision: https://phabricator.services.mozilla.com/D149999
2022-06-23 10:34:44 +00:00
Emilio Cobos Álvarez 9f2d5720b9 Bug 1372276 - Remove HTML menuitem. r=smaug,mconley,agi
This removes HTMLMenuItemElement and all the code and tests preffed off
by dom.menuitem.enabled.

The HTML parser changes are the result of applying the previous patch.

Differential Revision: https://phabricator.services.mozilla.com/D149979
2022-06-22 22:31:42 +00:00
Henri Sivonen a8ed2707bb Bug 1701828 - meta charset rewrite. r=smaug
Implements https://github.com/whatwg/html/issues/6962 . Improves performance
when <meta charset> occurs in head but after the first kilobyte and aligns
behavior better with WebKit and Blink.

The main change is to avoid reloads when meta appears within head but
after the first kilobyte. Prior to this change, Gecko reloaded in that
case (in compliance with the spec!) even though WebKit and Blink did not.

Differences from WebKit and Blink:

* WebKit and Blink honor <meta charset> in <noscript>. This implementation
  does not.
* WebKit and Blink look for meta as if the tree builder was unaware of
  foreign content. This implementation is foreign content-aware. This
  makes a difference for CDATA sections that contain a > before the meta
  as well as style and script elements within foreign content. This could
  happen if the CDATA section that has mysteriously been introduced around
  a what looks like a meta tag also contains another prior tag-looking
  run of text.
* This implementation processes rel=preload and speculative loads that are
  seen before <meta charset> has been seen. WebKit and Blink instead first
  look for the meta and rewind before starting speculative parsing.
* Unlike WebKit, if there is neither an honored meta nor syntax resembling
  an XML declaration, detection from content takes place (as in Blink).
* Unlike Blink, if there is neither an honored meta nor syntax resembling
  an XML declaration, the detection from content is not dependent of network
  buffer boundaries.
* Unlike Blink, detection from content can trigger a reload at the end of
  the stream if the guess made at that point differs from the first guess.
  (See below for the definition of the input to the first guess.)

Differences from the old spec and Gecko previously:

* Meta inside script and RCDATA elements is no longer honored.
* Late meta is now ignored and no longer triggers a reload.
* Later meta counts as early enough meta: In addition to the previous
  meta within the first 1024 bytes, now a meta that started within the first
  1024 bytes counts as early enough. Additionally, if by then there hasn't
  been a template start tag and head hasn't ended, meta occurring before the
  earlier of the end of the head or a template start tag counts as early
  enough.
* Meta now counts as not-late even if the encoding label has numeric
  character reference escapes.
* Syntax resembling an XML declaration longer than a kilobyte is honored if
  there is no honored meta.
* If there is neither an honored meta nor syntax resembling an XML declaration,
  the initial chardetng scan is potentially longer than before: the first 1024
  bytes, the token spanning the 1024-byte boundary if there is such a token,
  and, if by then head hasn't ended and there hasn't been a template start tag
  until the end of the template start tag or the end of the token that causes
  head to end, ever comes first. However, if the token implying the end of the
  head is a text token, bytes only to the end of the previous non-text token is
  considered. (This definition avoids depending on network buffer boundaries.)
* XML View Source now uses the code for syntax resembling an XML declaration
  instead of expat for extracting the internal encoding label.

Reftest are added as both WPT and Gecko reftests in order to test both http:
and file: URL scenarios. The Gecko tests retain the WPT <link> tags in order
to use the exact same bytes.

An encoding declaration has been added to a number of old tests that didn't
intend to test the new speculation behavior especially in the context of
https://bugzilla.mozilla.org/show_bug.cgi?id=1727750 .

Differential Revision: https://phabricator.services.mozilla.com/D125808
2021-12-08 11:34:20 +00:00
Norisz Fay e844dde8a6 Backed out changeset 3dfd3c94a105 (bug 1701828) for causing mochitest failures on browser_hsts_host.js CLOSED TREE 2021-12-07 12:05:44 +02:00
Henri Sivonen 37fade70f0 Bug 1701828 - meta charset rewrite. r=smaug
Implements https://github.com/whatwg/html/issues/6962 . Improves performance
when <meta charset> occurs in head but after the first kilobyte and aligns
behavior better with WebKit and Blink.

The main change is to avoid reloads when meta appears within head but
after the first kilobyte. Prior to this change, Gecko reloaded in that
case (in compliance with the spec!) even though WebKit and Blink did not.

Differences from WebKit and Blink:

* WebKit and Blink honor <meta charset> in <noscript>. This implementation
  does not.
* WebKit and Blink look for meta as if the tree builder was unaware of
  foreign content. This implementation is foreign content-aware. This
  makes a difference for CDATA sections that contain a > before the meta
  as well as style and script elements within foreign content. This could
  happen if the CDATA section that has mysteriously been introduced around
  a what looks like a meta tag also contains another prior tag-looking
  run of text.
* This implementation processes rel=preload and speculative loads that are
  seen before <meta charset> has been seen. WebKit and Blink instead first
  look for the meta and rewind before starting speculative parsing.
* Unlike WebKit, if there is neither an honored meta nor syntax resembling
  an XML declaration, detection from content takes place (as in Blink).
* Unlike Blink, if there is neither an honored meta nor syntax resembling
  an XML declaration, the detection from content is not dependent of network
  buffer boundaries.
* Unlike Blink, detection from content can trigger a reload at the end of
  the stream if the guess made at that point differs from the first guess.
  (See below for the definition of the input to the first guess.)

Differences from the old spec and Gecko previously:

* Meta inside script and RCDATA elements is no longer honored.
* Late meta is now ignored and no longer triggers a reload.
* Later meta counts as early enough meta: In addition to the previous
  meta within the first 1024 bytes, now a meta that started within the first
  1024 bytes counts as early enough. Additionally, if by then there hasn't
  been a template start tag and head hasn't ended, meta occurring before the
  earlier of the end of the head or a template start tag counts as early
  enough.
* Meta now counts as not-late even if the encoding label has numeric
  character reference escapes.
* Syntax resembling an XML declaration longer than a kilobyte is honored if
  there is no honored meta.
* If there is neither an honored meta nor syntax resembling an XML declaration,
  the initial chardetng scan is potentially longer than before: the first 1024
  bytes, the token spanning the 1024-byte boundary if there is such a token,
  and, if by then head hasn't ended and there hasn't been a template start tag
  until the end of the template start tag or the end of the token that causes
  head to end, ever comes first. However, if the token implying the end of the
  head is a text token, bytes only to the end of the previous non-text token is
  considered. (This definition avoids depending on network buffer boundaries.)
* XML View Source now uses the code for syntax resembling an XML declaration
  instead of expat for extracting the internal encoding label.

Reftest are added as both WPT and Gecko reftests in order to test both http:
and file: URL scenarios. The Gecko tests retain the WPT <link> tags in order
to use the exact same bytes.

An encoding declaration has been added to a number of old tests that didn't
intend to test the new speculation behavior especially in the context of
https://bugzilla.mozilla.org/show_bug.cgi?id=1727750 .

Differential Revision: https://phabricator.services.mozilla.com/D125808
2021-12-07 07:35:32 +00:00
Jonathan Kingston 2ccad0abed Bug 1315460 - Removal of keygen element r=keeler,baku,jld,hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D22810
2019-06-13 08:58:07 +00: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
Brian Grinstead 0d3ea34bc7 Bug 1425874 - Implement HTMLMarqueeElement r=bzbarsky
This adds a new class for the marquee tag, instead of overloading HTMLDivElement.
It removes some of the XBL that was used to expose properties to web content.

Differential Revision: https://phabricator.services.mozilla.com/D3824
2018-11-14 05:29:11 +00:00
Boris Zbarsky dba6013b27 Bug 1445983. <bdi> should be an HTMLElement, not HTMLUnknownElement. r=hsivonen
MozReview-Commit-ID: 9eJ45uXRDfR
2018-03-16 11:26:09 -04:00
Boris Zbarsky 051041fc49 Bug 1446097. Switch to "set" as the canonical nsGkAtoms name of the string "set", so it matches the actual tag name "set" in SVG. r=hsivonen,njn
Most of the noise is from the fact that clang-format on parser/html/*.{h,cpp}
reformatted all sorts of stuff.  Not running it caused lots of format changes
from the generator... I guess we changed the format rules since the last time
this got run?

MozReview-Commit-ID: IA2G87zUIKN
2018-03-16 11:26:06 -04:00
Chris Peterson f3d0ca9013 Bug 1424548 - Part 9a: clang-format generated HTML parser code. r=hsivonen 2017-12-21 00:02:43 -08:00
Olli Pettay 9ca325753f Bug 1418002 - Remove HTMLContentElement, r=jessica 2017-11-30 10:57:15 +02:00
Nicholas Nethercote 7dbfdaf890 Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP
2017-10-03 09:05:19 +11:00
Olli Pettay 9428b4f885 Bug 1402941 - Add HTMLSlotElement (disabled for now), r=hsivonen 2017-10-02 13:22:12 +03:00
Olli Pettay 98580ecdff Bug 1396584 - Remove support for multiple ShadowRoots, r=mrbkap 2017-09-25 18:09:26 +03:00
Henri Sivonen 3b532a7391 Bug 483155 - Put content creator function pointers onto nsHtml5ElementName. r=smaug
MozReview-Commit-ID: E2AAx7Zz2UF
2017-07-04 11:00:03 +03:00
Sebastian Hengst b20f04d43a Backed out changeset 5b706cd241cb (bug 483155) for Valgrind failure on Linux x64 opt. r=backout 2017-08-11 10:48:10 +02:00
Henri Sivonen b2625c0d7e Bug 483155 - Put content creator function pointers onto nsHtml5ElementName. r=smaug
MozReview-Commit-ID: E2AAx7Zz2UF
2017-07-04 11:00:03 +03:00
Henri Sivonen cc83c1cd0f Bug 1266495 - Remove <isindex>. r=wchen
MozReview-Commit-ID: KM0sTMM1GaD
2017-07-05 11:42:04 +03:00
William Chen 9399923726 Bug 1366241 - Change memory layout of element name and attribute name hashes in HTML parser from sorted to level order BST in order to take advantage of cache during lookup. r=hsivonen 2017-06-27 13:48:25 -07:00
Henri Sivonen 7af0452b6b Bug 1261841 part 2 - Use encoding_rs instead of uconv. r=emk,mystor.
MozReview-Commit-ID: 15Y5GTX98bv
2017-06-13 13:23:23 +03:00
William Chen 4a319f4238 Bug 1355441 - Reuse StackNode in TreeBuilder to avoid malloc. r=hsivonen.
MozReview-Commit-ID: 4QwQwISCKPk
2017-05-15 17:18:20 +03:00
Henri Sivonen 43720a8e05 Bug 1269490 - Merge nsHtml5Atoms into nsGkAtoms. r=wchen
MozReview-Commit-ID: EcfnXkFuJy3
2017-04-20 11:47:02 +03:00
Henri Sivonen 3b050334d4 Bug 1358037 - Inline the methods of nsHtml5ElementName and nsHtml5AttributeName. r=wchen
Moving methods that refer to constant to the header that defines the
constants makes it infeasible to #define the constants at the end
of the header. To avoid introducing a new pass over the Java AST,
this patch turns the primitive constants that were
previously #defined into C++ contants, which, according to
Stroustrup 3rd ed., are handled at compile-time and don't consume
storage.

MozReview-Commit-ID: JnaDgW2OM7t
2017-04-20 10:34:32 +03:00
Henri Sivonen 759c770926 Bug 1355479 - Flatten attribute storage in the HTML parser to AutoTArray to avoid malloc. r=wchen
MozReview-Commit-ID: 77Hqo24F2nB
2017-04-13 11:14:48 +03:00
Henri Sivonen 89dc7f5ddb Bug 1355779 - Skip interned nsHtml5ElementName lookup for Custom Elements (ones with hyphen). r=wchen
MozReview-Commit-ID: 4xQlhExyo7d
2017-04-12 14:28:49 +03:00
Henri Sivonen 6274301b73 Bug 1355769 - Avoid malloc for nsHtml5ElementName when processing a non-interned element name. r=wchen
MozReview-Commit-ID: 4In5wo0flOB
2017-04-12 13:21:03 +03:00