Граф коммитов

3147 Коммитов

Автор SHA1 Сообщение Дата
Joel Maher 0daa567ffa Bug 1385288 - Disable parser/htmlparser/tests/reftest/bug582940-1.html on osx for frequent failures. r=me, a=testonly 2017-11-02 13:15:06 -04:00
Joel Maher c101ca4540 Bug 1385288 - Disable parser/htmlparser/tests/reftest/bug582940-1.html on osx debug for frequent failures. r=me, a=testonly 2017-10-31 08:45:45 -04:00
Nicholas Nethercote 8ad99dd7fa Bug 1411893 - Introduce nsStaticAtom. r=emilio,froydnj.
It's a sub-class of nsAtom, useful for cases where you know you are dealing
exclusively with static atoms. The nice thing about it is that you can use
raw nsStaticAtom pointers instead of RefPtr<>. (In fact, the AddRef/Release
implementations ensure that we'll crash if we use RefPtr<nsStaticAtom>.)

MozReview-Commit-ID: 4Q6QHX5h44V

--HG--
extra : rebase_source : e4237f85b4821b684db0ef84d1f9c5e17cdee428
2017-10-27 10:31:13 +11:00
Andi-Bogdan Postelnicu 2a15cd5990 Bug 1411615 - make nsScannerIterator a trivial type in order to use memset. r=hsivonen
MozReview-Commit-ID: 2YpZE8Rryyl

--HG--
extra : rebase_source : 2f8beb81d40d73caaf70f935cbbcb1fbfb2da535
2017-10-26 17:50:26 +03:00
Nicholas Nethercote 21e7dce1a2 Bug 1410294 (part 3) - Overhaul static atom macros. r=froydnj.
There are four things that must be provided for every static atom, two of which
have a macro:
- the atom pointer declaration (no macro);
- the atom pointer definition (no macro);
- the atom char buffer (NS_STATIC_ATOM_BUFFER);
- the StaticAtomSetup struct (NS_STATIC_ATOM_SETUP).

This patch introduces new macros for the first two things: NS_STATIC_ATOM_DECL
and NS_STATIC_ATOM_DEFN, and changes the arguments of the existing two macros
to make them easier to use (e.g. all the '##' concatenation now happens within
the macros).

One consequence of the change is that all static atoms must be within a class,
so the patch adds a couple of classes where necessary (DefaultAtoms, TSAtoms).

The patch also adds a big comment explaining how the macros are used, and what
their expansion looks like. This makes it a lot easier to understand how static
atoms work. Correspondingly, the patch removes some small comments scattered
around the macro use points.

MozReview-Commit-ID: wpRyrEOTHE

--HG--
extra : rebase_source : 9f85d477b4d06c9a9e710c757de1f1476edb6efe
2017-10-22 08:50:25 +11:00
Nicholas Nethercote 074a872086 Bug 1410294 (part 1) - Rename nsStaticAtom as nsStaticAtomSetup. r=froydnj.
Because it's the type we use to set up static atoms at startup, not the static
atom itself.

The patch accordingly renames some parameters, variables, and NS_STATIC_ATOM,
for consistency.

MozReview-Commit-ID: 1a0KvhYNNw2

--HG--
extra : rebase_source : 5c66e5b2dfe053a368bf3584d957198aec4cce91
2017-10-20 14:04:47 +11:00
Nicholas Nethercote f2d1f3b005 Bug 1407117 - Simplify static atom representation. r=froydnj,bz.
Currently nsAtom::mString points to the interior of an nsStringBuffer. For
static atoms this requires the use of nsFakeStringBuffer, which is pretty
gross.

This patch changes things so that nsAtom::mString points to a static char
buffer for static atoms. This simplifies a number of things:

- nsFakeStringBuffer and CheckStaticAtomSizes are no longer needed.

- FakeBufferRefCountHelper is no longer needed.

- nsAtom's constructor for static atoms is simpler.

- RegisterStaticAtoms() is simpler.

On the flip-side, a couple of things get more complicated.

- nsAtom::ToString() treats static and dynamic atoms differently.

- nsAtom::GetStringBuffer() is now only valid for dynamic atoms. This
  function is only used in two places, both involving DOMString, so those
  locations are updated appropriately. This also requires updating some other
  code assigning nsStrings to DOMStrings, because we can't assume that
  nsStrings are shared.

On Linux64 this change reduces the size of the binary by 8752 B, and moves
81968 B from the .data to the .rodata section, where it can be shared between
processes.

--HG--
extra : rebase_source : 0f6fcdec1c525aa66222e208b66a9f9026f69bcb
2017-10-12 10:52:17 +11:00
Nicholas Nethercote d225f7151b 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

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
Olli Pettay 657d54de19 Bug 1402941 - Add HTMLSlotElement (disabled for now), r=hsivonen
--HG--
extra : rebase_source : ced3d844425bee6fddd22641646a7366ffd5d69e
2017-10-02 13:22:12 +03:00
Nicholas Nethercote dfd3b7e7aa Bug 1400459 (part 2) - Devirtualize nsIAtom. r=heycam.
This patch merges nsAtom into nsIAtom. For the moment, both names can be used
interchangeably due to a typedef. The patch also devirtualizes nsIAtom, by
making it not inherit from nsISupports, removing NS_DECL_NSIATOM, and dropping
the use of NS_IMETHOD_. It also removes nsIAtom's IIDs.

These changes trigger knock-on changes throughout the codebase, changing the
types of lots of things as follows.

- nsCOMPtr<nsIAtom> --> RefPtr<nsIAtom>

- nsCOMArray<nsIAtom> --> nsTArray<RefPtr<nsIAtom>>
  - Count() --> Length()
  - ObjectAt() --> ElementAt()
  - AppendObject() --> AppendElement()
  - RemoveObjectAt() --> RemoveElementAt()

- ns*Hashtable<nsISupportsHashKey, ...> -->
  ns*Hashtable<nsRefPtrHashKey<nsIAtom>, ...>

- nsInterfaceHashtable<T, nsIAtom> --> nsRefPtrHashtable<T, nsIAtom>
  - This requires adding a Get() method to nsRefPtrHashtable that it lacks but
    nsInterfaceHashtable has.

- nsCOMPtr<nsIMutableArray> --> nsTArray<RefPtr<nsIAtom>>
  - nsArrayBase::Create() --> nsTArray()
  - GetLength() --> Length()
  - do_QueryElementAt() --> operator[]

The patch also has some changes to Rust code that manipulates nsIAtom.

MozReview-Commit-ID: DykOl8aEnUJ

--HG--
extra : rebase_source : 254404e318e94b4c93ec8d4081ff0f0fda8aa7d1
2017-09-26 08:33:21 +10:00
Sylvestre Ledru f1576f5bdf Bug 1403150 - Ignore the formatting on gHTMLElements r=smaug
MozReview-Commit-ID: FKHbmNBJjia

--HG--
extra : rebase_source : ce90332472e52e3719936b9142eaa7dfbb4c8379
2017-09-26 14:40:06 +02:00
Nicholas Nethercote 1c520e8c6f Bug 1402769 - Remove unused stuff in and around nsParserModule.cpp. r=mrbkap.
None of these things are used in mozilla-central or comm-central.

--HG--
extra : rebase_source : 470eeca24dda8a3d475208d0c7dd22d5280bb904
2017-09-05 20:43:30 +10:00
Olli Pettay c80e124562 Bug 1396584 - Remove support for multiple ShadowRoots, r=mrbkap
--HG--
extra : rebase_source : 2bb600ed1ffd35c195617a7eb70d0ba847a46898
2017-09-25 18:09:26 +03:00
Nicholas Nethercote c07fbf3cf6 Bug 1401097 (part 1) - Simplify gHTMLElements. r=mrbkap.
The HTML group constants in nsElementTable.cpp are only used for
nsHTMLElement::IsBlock(). This patch removes them and replaces
HTMLElement::mParentBits with a bool, mIsBlock.

The patch also inverts the sense of HTMLElement::mLeaf and renames it
mIsContainer, to match the sense of IsContainer().

Finally, the patch uses the pre-processor to use '____' instead of 'false' in
gHTMLElements. This makes it easier to read.

Note that IsBlock() has numerous disagreements with
https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements about
what constitutes a block element, but I have preserved the existing behaviour.

--HG--
extra : rebase_source : ff5ab71fdb2665fda296c0fbb712641151a7b003
2017-09-22 08:14:03 +10:00
Nicholas Nethercote b1f7b4c0f3 Bug 1400777 (part 5) - Clean up nsElementTable.{cpp,h}. r=mrbkap.
This patch makes some style fixes and other minor improvements.

--HG--
extra : rebase_source : 72f7e07d8b661050cd90b4ef6758a95f7a1e60c3
2017-09-20 08:32:51 +10:00
Nicholas Nethercote e177354f97 Bug 1400777 (part 4) - Split nsHTMLElement. r=mrbkap.
This patch splits out most of nsHTMLElement into a new type HTMLElement within
nsElementTable.cpp. Only the static methods IsContainer() and IsBlock() need to
remain exposed via nsHTMLElement. The patch moves TestBits() into
nsElementTable.cpp as well.

--HG--
extra : rebase_source : ca19d9e3af1f4b1f352af82f985190744c4b715b
2017-09-19 11:11:24 +10:00
Nicholas Nethercote be426ece44 Bug 1400777 (part 3) - De-expose gHTMLElements[]. r=mrbkap.
--HG--
extra : rebase_source : 93925428f74e6178efb9635f256b0e28e18cb09e
2017-09-19 11:09:30 +10:00
Nicholas Nethercote dfca4325ac Bug 1400777 (part 2) - De-expose HTML group constants[]. r=mrbkap.
The patch also removes some low-value comments.

--HG--
extra : rebase_source : 7331510a00e5a1d0ca33b1be3b61e6b59b58062f
2017-09-19 11:08:39 +10:00
Nicholas Nethercote cea0a3af5d Bug 1400777 (part 1) - Remove eHTMLTags. r=mrbkap.
It's just a too-cute-by-half typedef for nsHTMLTag.

--HG--
extra : rebase_source : 142128de90c3bed06648db445ca0159c23ea6ff3
2017-09-19 11:07:49 +10:00
Nicholas Nethercote 2ef37710e7 Bug 1395828 (part 4) - Remove nsIParserService/nsParserService. r=mrbkap.
It a stateless wrapper around static methods in nsHTMLTags and nsHTMLElement,
and hence an unnecessary layer of indirection that just adds complexity and
slowness. This patch removes it, cutting almost 300 lines of code.

This requires making nsElementTable.h an exported header, to expose the
nsHTMLElement methods.

--HG--
extra : rebase_source : abbcb8e5001389affbf717092213b898673db07f
2017-09-05 20:19:06 +10:00
Nicholas Nethercote 1e3e28cf8e Bug 1395828 (part 2) - Rename nsHTMLTags methods. r=mrbkap.
The patch uses the nsParserService method names (minus the "HTML" prefix)
because they are more descriptive. This will make it easier to replace
nsParserService method calls with nsHTMLTags method calls.

The patch also adds nsHTMLTags::AtomTagToId(), to match up with
nsParserService::HTMLAtomTagToId().

--HG--
extra : rebase_source : 278c53a0787a928de9477dd30a5fd037791d7990
2017-09-01 19:42:42 +10:00
Nicholas Nethercote 5954b79cd8 Bug 1395828 (part 1) - Add nsHTMLElement::IsBlock(). r=mrbkap.
This mirrors the existing nsHTMLElement::IsContainer() function.

--HG--
extra : rebase_source : ae511983f799a971981b81ad4df8557a185d281b
2017-09-01 19:38:09 +10:00
Nicholas Nethercote 29df718c19 Bug 1394300 - Streamline nsElementTable.cpp. r=mrbkap.
This patch does the following.

- Uses a macro to make gHTMLElements[] much more concise.

- Makes nsHTMLElement::mTagID a debug-only field, because it's only used in
  assertions.

--HG--
extra : rebase_source : 8f3acb2d95820cd55e2e6d44f84fca689f468430
2017-08-29 08:05:23 +10:00
Nicholas Nethercote a6e214098c Bug 1394256 - Remove nsIParserService::HTMLIdTo{Atom,String}Tag(). r=mrbkap.
They're unused. This also means nsHTMLTags::Get{Atom,StringValue}() can be
removed.

--HG--
extra : rebase_source : f6538fe409c1a3bb22e5bc901c2ead37dd4f7eb0
2017-08-29 08:05:23 +10:00
Chung-Sheng Fu 90189a558c Bug 863246 - Fix test failures r=Gijs
MozReview-Commit-ID: 8tUr27zvs8z

--HG--
extra : rebase_source : 997ace66c37098701d433508c682ed7621a78479
2017-07-19 17:30:01 +08:00
Nicholas Nethercote f582d96b98 Bug 1390428 (part 9) - Remove nsXPIDLCString. r=erahm.
This is straightforward, with only two notable things.

- `#include "nsXPIDLString.h" is replaced with `#include "nsString.h"`
  throughout, because all nsXPIDLString.h did was include nsString.h. The
  exception is for files which already include nsString.h, in which case the
  patch just removes the nsXPIDLString.h inclusion.

- The patch removes the |xpidl_string| gtest, but improves the |voided| test to
  cover some of its ground, e.g. testing Adopt(nullptr).

--HG--
extra : rebase_source : 452cc4a08046a1adb1a8099a7e85a1917de5add8
2017-08-17 15:29:03 +10:00
Eric Rahm a33f11e0f5 Bug 1391803 - Use nsStringFwd.h for forward declaring string classes. r=froydnj
We should not be declaring forward declarations for nsString classes directly,
instead we should use nsStringFwd.h. This will make changing the underlying
types easier.

--HG--
extra : rebase_source : b2c7554e8632f078167ff2f609392e63a136c299
2017-08-16 16:48:52 -07:00
Henri Sivonen 3d387ac082 Bug 483155 - Put content creator function pointers onto nsHtml5ElementName. r=smaug
MozReview-Commit-ID: E2AAx7Zz2UF

--HG--
extra : rebase_source : 1b85ba3b1c699e71e6ecacf4d1dc4271f3416b08
2017-07-04 11:00:03 +03:00
Sebastian Hengst 56587adeab 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 dacb0e05f1 Bug 483155 - Put content creator function pointers onto nsHtml5ElementName. r=smaug
MozReview-Commit-ID: E2AAx7Zz2UF

--HG--
extra : rebase_source : 989c11459e16076a043aa7311c95941686e86ef7
2017-07-04 11:00:03 +03:00
Nicholas Nethercote d4e19d954a Bug 1388253 - Convert nsTextFormatter:[v]smprintf() use to [v]ssprintf(). r=erahm.
[v]ssprintf() is just a better way of doing things.

--HG--
extra : rebase_source : 25337787b9557f8a7080a67645dba70609a8f646
2017-08-09 10:41:14 +10:00
Nicholas Nethercote f941156987 Bug 1386600 - Change nsIStringBundle methods to return |AString| instead of |wstring|. r=emk,sr=dbaron.
This removes about 2/3 of the occurrences of nsXPIDLString in the tree. The
places where nsXPIDLStrings are null-checked are replaced with |rv| checks.

The patch also removes a couple of unused declarations from
nsIStringBundle.idl.

Note that nsStringBundle::GetStringFromNameHelper() was merged into
GetStringFromName(), because they both would have had the same signature.

--HG--
extra : rebase_source : ac40bc31c2a4997f2db0bd5069cc008757a2df6d
2017-08-04 14:40:52 +10:00
Henri Sivonen 41573b4bfd Bug 1048191 - Remove capability to generate entities other than quot, amp, gt, lt and nbsp. r=emk.
MozReview-Commit-ID: CHQQzPHxrus

--HG--
extra : rebase_source : 0fad8c86a374c29ab9f691b53f6495aa8287cb65
2017-08-04 12:37:53 +03:00
Christoph Kerschbaumer a229e88d11 Bug 1337271 - Convert tests within parser/ to comply with new data: URI inheritance model. r=hsivonen 2017-08-04 09:59:26 +02:00
Kyle Machulis 2533883d04 Bug 1279218 - Rename HTMLSharedObjectElement to HTMLEmbedElement; r=bz
MozReview-Commit-ID: KkvRkFXAX30

--HG--
rename : dom/html/HTMLSharedObjectElement.cpp => dom/html/HTMLEmbedElement.cpp
rename : dom/html/HTMLSharedObjectElement.h => dom/html/HTMLEmbedElement.h
extra : rebase_source : 460c2a018e2a737b6397e8306127d73bc017d8da
2017-07-28 21:35:43 -07:00
Kyle Machulis ffa9be1bed Bug 1279218 - Remove Applet tag; r=bz
Removes applet tag interfaces, and changes HTML5 parser to output
HTMLUnknownElement when tag is found. Removes tag process from various
places in the browser.

MozReview-Commit-ID: 2zHhK2U2esX

--HG--
extra : rebase_source : d06ecaffd1cb656301e29b900bafde4c68a4606e
2017-07-10 16:00:30 -07:00
Carsten "Tomcat" Book d360d49d2a merge mozilla-inbound to mozilla-central a=merge 2017-07-27 10:57:25 +02:00
Kartikaya Gupta ba4b3b9101 Bug 1384233 - Remove SizePrintfMacros.h. r=froydnj
We have a minimum requirement of VS 2015 for Windows builds, which supports
the z length modifier for format specifiers. So we don't need SizePrintfMacros.h
any more, and can just use %zu and friends directly everywhere.

MozReview-Commit-ID: 6s78RvPFMzv

--HG--
extra : rebase_source : 009ea39eb4dac1c927aa03e4f97d8ab673de8a0e
2017-07-26 16:03:57 -04:00
Nicholas Nethercote d97f8b05ed Bug 1381726 - Remove nsTextFormatter::smprintf_free(). r=erahm.
We can just use free() instead.

--HG--
extra : rebase_source : d1fa65550f22d0531ec4cc3b173fb2de36dee6e6
2017-07-25 09:09:27 +10:00
Yoshi Huang 7036b3761f Bug 1382531 - Part 1: rewrite crashtest for data: URI is unique opaque origin. r=smaug 2017-07-25 09:56:02 +08:00
Ehsan Akhgari 74ead075de Bug 1379354 - Improve the UnicodeToEntity hashtable hash routine; r=wchen 2017-07-19 12:53:36 -04:00
Ryan VanderMeulen 019bd042fc Merge autoland to m-c. a=merge 2017-07-14 09:16:03 -04:00
Henri Sivonen 217ac88f04 Bug 1266495 - Remove <isindex>. r=wchen
MozReview-Commit-ID: KM0sTMM1GaD

--HG--
extra : rebase_source : 013069be4191e2ad50b5af879b690a6760e8429a
2017-07-05 11:42:04 +03:00
Nicholas Nethercote c86dc10505 Bug 1380227 - Avoid many UTF16toUTF8 and UTF8toUTF16 conversions in nsStringBundle. r=emk.
Most of the names passed to nsIStringBundle::{Get,Format}StringFromUTF8Name
have one of the two following forms:

- a 16-bit C string literal, which is then converted to an 8-bit string in
  order for the lookup to occur;

- an 8-bit C string literal converted to a 16-bit string, which is then
  converted back to an 8-bit string in order for the lookup to occur.

This patch introduces and uses alternative methods that can take an 8-bit C
string literal, which requires changing some signatures in other methods and
functions. It replaces all C++ uses of the old methods.

The patch also changes the existing {Get,Format}StringFromName() methods so
they take an AUTF8String argument for the name instead of a wstring, because
that's nicer for JS code.

Even though there is a method for C++ code and a different one for JS code,
|binaryname| is used so that the existing method names can be used for the
common case in both languages.

The change reduces the number of NS_ConvertUTF8toUTF16 and
NS_ConvertUTF16toUTF8 conversions while running Speedometer v2 from ~270,000 to
~160,000. (Most of these conversions involved the string
"deprecatedReferrerDirective" in nsCSPParser.cpp.)

--HG--
extra : rebase_source : 3bee57a501035f76a81230d95186f8c3f460ff8e
2017-07-12 15:13:37 +10:00
Christoph Kerschbaumer 98f251e3f3 Bug 1384500 - Update test_compatmode.html to comply with new data: URI inheritance model. r=smaug 2017-07-26 12:04:20 +02:00
Nicholas Nethercote 77757143fb Bug 1378011 (part 2) - Remove the Legacy HTML Parser's EntityToUnicode conversions. r=mrbkap.
It's unused except in test code (nsTestEntityTable). The patch removes that
test code, which also removes testing for UnicodeToEntity conversion, but the
test code wasn't being run anyway so it's no great loss.

(UnicodeToEntity conversion is still used by
nsHTMLContentSerializer::AppendAndTranslateEntities().)
2017-07-04 16:00:55 +10:00
Nicholas Nethercote 1c45fc829f Bug 1378011 (part 1) - Remove nsToken.h, because it is unused. r=mrbkap. 2017-07-04 11:25:09 +10:00
Christoph Kerschbaumer b95da3262e Bug 1377176 - Use SpecialPowers to test href of data: iframe for parser/ tests. r=smaug 2017-06-29 11:20:54 -07:00
Nicholas Nethercote 3e439bb4f8 Bug 1376638 - Minimize uses of prmem.h. r=glandium.
It's silly to use prmem.h within Firefox code given that in our configuration
its functions are just wrappers for malloc() et al. (Indeed, in some places we
mix PR_Malloc() with free(), or malloc() with PR_Free().)

This patch removes all uses, except for the places where we need to use
PR_Free() to free something allocated by another NSPR function; in those cases
I've added a comment explaining which function did the allocation.

--HG--
extra : rebase_source : 0f781bca68b5bf3c4c191e09e277dfc8becffa09
2017-06-30 19:05:41 -07:00
Carsten "Tomcat" Book 4e00eff077 merge mozilla-inbound to mozilla-central a=merge 2017-06-27 10:56:41 +02:00