fune/parser/html
Markus Stange 943e3c05a7 Bug 1843946 - Use an atom for the full class attribute value, to reduce string hash key cost during the AtomArrayCache lookup. r=emilio
This generalizes the previous "set single class from parser" fast-path to
also apply when there are multiple classes in the class attribute.

The main benefit is the cheaper cache lookup.
Another benefit is that this avoids a string copy (the same copy that the original
"set single class from parser" optimization avoided).

We now always atomize the full class attribute value before parsing it,
e.g. when somebody uses setAttribute. In the common case of a single class,
this atomization cost would have been paid anyway.

Before: https://share.firefox.dev/4576ulw
After: https://share.firefox.dev/3rNGBsH (though this is not the full story
because the atomization work is moved outside of nsHtml5TreeOperation::SetHTMLElementAttributes)

Differential Revision: https://phabricator.services.mozilla.com/D183813
2023-08-17 19:02:40 +00:00
..
java [Bug 1845094] Change HTML parser's README to reflect that comments with "Uncomment" (case-sensitive) have to be changed too. r=edgar DONTBUILD 2023-07-31 08:02:15 +00:00
javasrc Bug 1824121 - Implement the <search> element r=hsivonen,Jamie,emilio 2023-08-07 22:11:05 +00:00
jArray.h
moz.build
nsAHtml5TreeBuilderState.h
nsAHtml5TreeOpSink.h
nsHtml5ArrayCopy.h
nsHtml5AtomTable.cpp
nsHtml5AtomTable.h
nsHtml5AttributeEntry.h
nsHtml5AttributeName.cpp Bug 1845073: add "fetchpriority" attribute to HTML parser. r=edgar 2023-08-01 06:47:51 +00:00
nsHtml5AttributeName.h Bug 1845073: add "fetchpriority" attribute to HTML parser. r=edgar 2023-08-01 06:47:51 +00:00
nsHtml5AutoPauseUpdate.h
nsHtml5ByteReadable.h
nsHtml5ContentCreatorFunction.h
nsHtml5DependentUTF16Buffer.cpp
nsHtml5DependentUTF16Buffer.h
nsHtml5DocumentBuilder.cpp Bug 1847546 - Don't do duplicate work on style elements from the innerHTML setter. r=smaug 2023-08-07 20:21:34 +00:00
nsHtml5DocumentBuilder.h
nsHtml5DocumentMode.h
nsHtml5ElementName.cpp Bug 1824121 - Implement the <search> element r=hsivonen,Jamie,emilio 2023-08-07 22:11:05 +00:00
nsHtml5ElementName.h Bug 1824121 - Implement the <search> element r=hsivonen,Jamie,emilio 2023-08-07 22:11:05 +00:00
nsHtml5Highlighter.cpp
nsHtml5Highlighter.h
nsHtml5HtmlAttributes.cpp Bug 1848714 - Use unsafe methods in hot code paths to access and remove elements from nsTArray when it is guaranteed to be safe, r=emilio 2023-08-15 14:24:19 +00:00
nsHtml5HtmlAttributes.h
nsHtml5Macros.h
nsHtml5Module.cpp
nsHtml5Module.h
nsHtml5NamedCharacters.cpp
nsHtml5NamedCharacters.h
nsHtml5NamedCharactersAccel.cpp
nsHtml5NamedCharactersAccel.h
nsHtml5NamedCharactersInclude.h
nsHtml5OplessBuilder.cpp
nsHtml5OplessBuilder.h
nsHtml5OwningUTF16Buffer.cpp Bug 1842658 - Part 2: Use refcounting macros for nsHtml5OwningUTF16Buffer, r=mccr8 2023-07-14 16:20:54 +00:00
nsHtml5OwningUTF16Buffer.h Bug 1842658 - Part 2: Use refcounting macros for nsHtml5OwningUTF16Buffer, r=mccr8 2023-07-14 16:20:54 +00:00
nsHtml5Parser.cpp Bug 1840191 - Fix a crash where nsContentSink::DidBuildModelImpl gets called with incorrect state r=hsivonen,dom-core 2023-08-17 18:22:57 +00:00
nsHtml5Parser.h Bug 1840191 - Fix a crash where nsContentSink::DidBuildModelImpl gets called with incorrect state r=hsivonen,dom-core 2023-08-17 18:22:57 +00:00
nsHtml5PlainTextUtils.cpp
nsHtml5PlainTextUtils.h
nsHtml5Portability.cpp Bug 1843946 - Use an atom for the full class attribute value, to reduce string hash key cost during the AtomArrayCache lookup. r=emilio 2023-08-17 19:02:40 +00:00
nsHtml5Portability.h
nsHtml5Speculation.cpp
nsHtml5Speculation.h
nsHtml5SpeculativeLoad.cpp Backed out 5 changesets (bug 1839316) for causing bustages on ScriptLoader.cpp. CLOSED TREE 2023-08-09 20:16:06 +03:00
nsHtml5SpeculativeLoad.h Backed out 5 changesets (bug 1839316) for causing bustages on ScriptLoader.cpp. CLOSED TREE 2023-08-09 20:16:06 +03:00
nsHtml5StackNode.cpp
nsHtml5StackNode.h Bug 1824121 - Include nsHtml5HtmlAttributes.h to fix Bp-nu build bustages. a=bustage-fix CLOSED TREE 2023-08-07 18:35:00 +03:00
nsHtml5StateSnapshot.cpp
nsHtml5StateSnapshot.h
nsHtml5StreamListener.cpp
nsHtml5StreamListener.h
nsHtml5StreamParser.cpp Bug 1836191 - remove PerformanceCounter that was only used by ChromeUtils.requestPerformanceMetrics, r=smaug. 2023-06-08 21:53:18 +00:00
nsHtml5StreamParser.h
nsHtml5StreamParserPtr.h
nsHtml5StreamParserReleaser.h
nsHtml5String.cpp
nsHtml5String.h
nsHtml5StringParser.cpp
nsHtml5StringParser.h
nsHtml5SVGLoadDispatcher.cpp
nsHtml5SVGLoadDispatcher.h
nsHtml5Tokenizer.cpp
nsHtml5Tokenizer.h
nsHtml5TokenizerCppSupplement.h
nsHtml5TokenizerHSupplement.h
nsHtml5TokenizerLoopPolicies.h
nsHtml5TreeBuilder.cpp Bug 1824121 - Implement the <search> element r=hsivonen,Jamie,emilio 2023-08-07 22:11:05 +00:00
nsHtml5TreeBuilder.h Bug 1824121 - Implement the <search> element r=hsivonen,Jamie,emilio 2023-08-07 22:11:05 +00:00
nsHtml5TreeBuilderCppSupplement.h Bug 1847811 - Remove network.preload pref. r=necko-reviewers,anti-tracking-reviewers,pbz,kershaw 2023-08-14 10:46:03 +00:00
nsHtml5TreeBuilderHSupplement.h Bug 1842792, disable speculative load of modulepreload if parser has seen importmap, r=jonco,allstarschh,peterv 2023-07-13 16:27:23 +00:00
nsHtml5TreeOperation.cpp Bug 1843946 - Use an atom for the full class attribute value, to reduce string hash key cost during the AtomArrayCache lookup. r=emilio 2023-08-17 19:02:40 +00:00
nsHtml5TreeOperation.h
nsHtml5TreeOpExecutor.cpp Backed out 5 changesets (bug 1839316) for causing bustages on ScriptLoader.cpp. CLOSED TREE 2023-08-09 20:16:06 +03:00
nsHtml5TreeOpExecutor.h Backed out 5 changesets (bug 1839316) for causing bustages on ScriptLoader.cpp. CLOSED TREE 2023-08-09 20:16:06 +03:00
nsHtml5TreeOpStage.cpp
nsHtml5TreeOpStage.h
nsHtml5UTF16Buffer.cpp
nsHtml5UTF16Buffer.h
nsHtml5UTF16BufferCppSupplement.h
nsHtml5UTF16BufferHSupplement.h
nsHtml5ViewSourceUtils.cpp
nsHtml5ViewSourceUtils.h
nsIContentHandle.h
nsIParserUtils.idl
nsParserUtils.cpp
nsParserUtils.h