Commit Graph
40 Commits
Author SHA1 Message Date
Markus Stange 8f723e6f67 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
Henri Sivonen e8bf7114c7 Bug 786797 - Check for integer overflow when computing new buffer sizes. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D102592
2021-01-21 17:02:58 +00:00
Simon Giesecke 39124586b5 Bug 1653335 - Replace MakeSpan uses by constructor calls. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D83817
2020-08-07 07:49:47 +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
Emilio Cobos Álvarez 4d343d7da2 Bug 1506133 - More HTML parser cleanup post bug 1392185. r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D11480
2018-11-12 14:37:09 +00:00
Emilio Cobos ÁlvarezandNicholas Nethercote 29483dd4e0 Bug 1392185 - Remove dynamic HTML5 atoms. r=njn,hsivonen
This is a rebase + manual refcounting on some places, + cleanup of the original
patch in the bug.

Co-authored-by: Nicholas Nethercote <[email protected]>

Differential Revision: https://phabricator.services.mozilla.com/D11035
2018-11-09 14:45:30 +01:00
Chris Peterson 5d6b16ea3b Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj
s/NS_PRECONDITION/MOZ_ASSERT/ and reindent

MozReview-Commit-ID: KuUsnVe2h8L
2018-04-28 12:50:58 -07: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
Nicholas Nethercote c01fb5ef82 Bug 1444031 - Rename Is{Static,Dynamic,HTML5}Atom. r=froydnj
By removing the "Atom" suffix, which is redundant.

MozReview-Commit-ID: 4MCX9Icfjrw
2018-03-07 15:17:34 +11:00
Alphan Chen ab20180bfb Bug 500617 - Remove always-zero offsets from HTML5 parser. r=hsivonen
MozReview-Commit-ID: DT8oWxbbYNy
2017-10-23 14:42:21 +03: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
Henri Sivonen fa792cb56c Bug 1375701 - Atomize class attribute value in the parser in the innerHTML case. r=Ehsan
MozReview-Commit-ID: CKyGlzYS15e
2017-08-11 09:22:57 +03:00
Sebastian Hengst 7e433bbe75 Backed out changeset fabf345eec6e (bug 1375701) for bustage at parser/html/nsHtml5String.h:143:3: bad implicit conversion constructor for 'nsHtml5String'. r=backout on a CLOSED TREE 2017-08-15 16:28:10 +02:00
Henri Sivonen 8d12eac1f2 Bug 1375701 - Atomize class attribute value in the parser in the innerHTML case. r=Ehsan
MozReview-Commit-ID: CKyGlzYS15e
2017-08-11 09:22:57 +03:00
Henri Sivonen cb263a268d Bug 1347737 - Introduce a new non-heap-allocated type for holding nsStringBuffer* in the HTML parser. r=wchen.
MozReview-Commit-ID: Gn9fXroxQhY
2017-03-20 14:45:15 +02:00
Olli Pettay 6a1acb22b7 Bug 1352734, use memcmp for nsIAtom Equals to improve performance, r=hsivonen 2017-04-02 22:40:06 +03:00
Henri Sivonen 4d0b61f3f6 Bug 1176698 - Use fallible allocator for attribute values in the HTML parser. r=wchen. 2015-08-25 18:05:46 +03:00
Ehsan Akhgari 68bfe70f09 Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc
This patch was automatically generated by the following script:

#!/bin/bash
# Command to convert PRUnichar to char16_t

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*modules/libmar*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name prtypes.h \
       ! -name Char16.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRUnichar char16_t
2014-01-04 10:02:17 -05:00
Ehsan Akhgari 5ca3cefda6 Bug 928049 - Remove some prtypes.h inclusions from parser/; rs=bsmedberg 2013-10-18 20:34:58 -04:00
Ehsan Akhgari 243c878d26 Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
This patch was generated by a script.  Here's the source of the script for
future reference:

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t

convert PRIntn int
convert PRUintn unsigned

convert PRSize size_t

convert PROffset32 int32_t
convert PROffset64 int64_t

convert PRPtrdiff ptrdiff_t

convert PRFloat64 double
2012-08-22 11:56:38 -04:00
Gervase Markham d697fdc8ec Bug 759095 - upgrade license to MPL 2, and other licensing cleanups. 2012-05-29 16:52:43 +01:00
Ehsan Akhgari 478ad1a412 Bug 690892 - Replace PR_TRUE/PR_FALSE with true/false on mozilla-central; rs=dbaron
Landing on a CLOSED TREE
2011-10-17 10:59:28 -04:00
Michael Wu 0fe7772ece Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones 2011-09-28 23:19:26 -07:00
Henri Sivonen d3fc35ebd5 Bug 612529 part 2 - Rework how scopingness and specialness is handled in stack nodes; refresh the set of scoping elements to spec. rs=jonas, a=blocking2.0-betaN. 2010-12-09 11:27:58 +02:00
Henri Sivonen 738dc53862 Bug 605466 - Implement new spec-based limits for formatting element proliferation in the HTML5 parsing algorithm. rs=jonas, a=blocking2.0-betaN. 2010-10-15 12:23:42 +03:00
Henri Sivonen a00ca20e07 Bug 502176 - Replace static use of jArray with a plain old data staticJArray, introduce an autoJArray for nicer memory management. r=tglek, a=jst. 2010-09-28 10:32:31 +03:00
Henri Sivonen ba3526f337 Bug 570898 - Defer isindex prompt reading until after startup. r=jonas. 2010-06-11 18:08:13 +03:00
Henri Sivonen 38060a4d7e Bug 559819 - Change the string id for the isindex prompt. r=l10n. 2010-04-20 17:19:30 +03:00
Henri Sivonen dc22fc775f Bug 500631 part 1 - Make the default isindex prompt use a localized string in the HTML5 parser. r=bnewman. 2010-03-17 10:26:17 +02:00
Henri Sivonen 9f780eb112 Bug 549591 - Atom staticness checks lack a negation in the HTML5 parser. r=jonas. 2010-02-26 11:18:35 +02:00
Henri Sivonen 2cf48a3ad5 Bug 516406 - Make document.write() parser and stream parser have distinct tokenizers in the HTML5 parser. r=bnewman. 2009-09-21 16:18:20 +03:00
Henri Sivonen 4384f2fdf0 Bug 515338 - Make HTML5 parser internals not hold nsIContent or regular dynamic atoms. r=bnewman. 2009-09-21 14:43:43 +03:00
Henri Sivonen 78b7b31988 Bug 515142 - Make HTML5 parser never clone nodes. WHATWG spec SVN rev 2947. rs=sicking. 2009-09-21 10:00:10 +03:00
Henri Sivonen d4ca3c01dd Bug 503067 - New warnings from HTML5 parser: suggest parentheses around assignment used as truth value. r=benjamin 2009-07-15 14:32:58 +03:00
Henri Sivonen 3cb3b0a9bc Bug 501015 - Address code style comments from timeless. r+sr=mrbkap 2009-07-15 14:30:33 +03:00
Henri Sivonen 39474984c2 Bug 502600 - Make quirky doctype list comparisons work. r+sr=mrbkap 2009-07-08 09:40:21 +03:00
Johnny Stenback 23765fdfed Fixing bug 501725. Use nsDependentSubstring() on strings that are not null terminated. [email protected] 2009-07-06 14:00:23 -07:00
Henri Sivonen 2f19c38b3b Bug 487949 - Land HTML5 parser on trunk preffed off r=mrbkap, sr=jonas 2009-06-29 00:44:22 +02:00
Johnny Stenback 64cf7ea628 Backed out changeset 168dd0eb7283 2009-06-28 11:47:11 -07:00
Jonas Sicking 6a0cbe0e68 Move files to better location 2009-06-26 17:12:29 -07:00