Commit Graph

3172 Commits

Author SHA1 Message Date
Andrea Marchesini
e4ccc82e67 Bug 1418246 - Return valid columnNumber value in CSP violation events, r=ckerschb 2018-07-05 08:21:04 +02:00
Andi-Bogdan Postelnicu
2edb17d6aa Bug 1453795 - Parser/HTML Parser - Initialize member fields in classes/ structures. r=mrbkap 2018-06-14 00:08:27 +03:00
Joel Maher
d0823df1ef Bug 1405428 - skip-if = verify on mochitests which do not pass test-verify. r=gbrown 2018-06-10 05:01:47 -04:00
Joel Maher
2031cc9e06 Bug 1392106 - random-if more win7 tests for missing letters. r=RyanVM 2018-06-01 09:29:35 -04:00
Joel Maher
b938b8ec15 Bug 1392106 - random-if many more win7 tests. r=RyanVM 2018-05-29 13:50:33 -04:00
Joel Maher
2b3fd7e97f Bug 1392106 - random-if many more tests on win7. r=RyanVM 2018-05-25 13:03:59 -04: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
9205e0eec3 Bug 1452183 part 1. Stop using nsIDOMDocumentFragment in IDL files. r=mccr8 2018-04-17 21:13:03 -04:00
Sebastian Hengst
d91e9954eb Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
Tristan Bourvon
6095241db8 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Nicholas Nethercote
0a04c1aaff Bug 1449395 - Remove unnecessary nsStaticAtom.h includes. r=froydnj
For nsCSSAnonBoxes.cpp, nsCSSPseudoElements.cpp, nsDirectoryService.cpp, the
corresponding .h file includes nsStaticAtom.h. For the other files in this
patch, nsStaticAtom.h is not needed at all.

MozReview-Commit-ID: IpMmbXwZHhu
2018-03-29 09:08:54 +11:00
Boris Zbarsky
9321f7b0d9 Bug 1444872. Remove support for the 'type' parameter to document.open. r=qdot 2018-03-28 18:01:46 -04:00
Tom Ritter
d44ebbd80e Bug 1378552 - Reduce the liklihood of inadvertently misusing NullPrincipal::Create(). r=ckerschb
NullPrincipal::Create() (will null OA) may cause an OriginAttributes bypass.
We change Create() so OriginAttributes is no longer optional, and rename
Create() with no arguments to make it more explicit about what the caller is doing.

MozReview-Commit-ID: 7DQGlgh1tgJ
2018-03-22 13:36:20 -05:00
Tooru Fujisawa
f415c74b57 Bug 1442465 - Part 4.2: Stop unnecessarily awaiting on BrowserTestUtils.removeTab (simple part). r=dao 2018-03-19 11:16:45 +09: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
Nicholas Nethercote
b01aed9acd Bug 1445079 - Remove nsHTMLTags::sTagAtomTable[]. r=froydnj
The atoms in nsHTMLTags are a subset of nsGkAtoms, which means that
sTagAtomTable[] currently ends up holding duplicate pointers to the same static
atoms.

This patch removes sTagAtomTable[]. The only place that used sTagAtomTable[]
was nsHTMLTags::AddRefTable(). It now instead calls NS_GetStaticAtom() to get
the static atoms registered by nsGkAtoms.

The patch also moves some checking of sTagNames from RegisterAtoms() (which is
removed) to AddRefTable().

All this reduces the number of duplicate static atoms from 148 to 12.

MozReview-Commit-ID: 14qXYeoorFr
* * *
[mq]: foo

MozReview-Commit-ID: AgQbXlcvWrt
2018-03-14 09:56:14 +11:00
Nicholas Nethercote
70767e791f Bug 1445079 - Rename nsHTMLTags::sTagUnicodeTable[] as sTagNames[]. r=froydnj
It's just an array of names, not a hash table.

MozReview-Commit-ID: 3rWNNec64UJ
2018-03-14 09:54:43 +11:00
Eric Rahm
5e235f5613 Bug 1442760 - Switch nsHTMLTags hashtables to nsDataHashtable. r=hsivonen
This converts nsHTMLTags hashtables from PLHash to nsDataHashtable which
gives us both type safety and simpler code. Addtionally `gTagTable` now holds
a nsString instead of a raw char16_t pointer, this has the benefit of the
strings knowing their sizes allowing for more efficient comparisons. We avoid
heap allocations in the nsString by using `AssignLiteral` with the string from
the static string array.
2018-03-06 17:27:17 -08:00
Sylvestre Ledru
37064ac043 Bug 1394734 - Replace CONFIG['GNU_C*'] by CONFIG['CC_TYPE'] r=glandium
MozReview-Commit-ID: 7duJk2gSd4m
2017-12-07 22:09:15 +01:00
Jesse Ruderman
281fc4913c Bug 762726 - Add crashtest. 2017-12-05 11:02:58 -05:00
Jesse Ruderman
6babeb8519 Bug 662185 - Add crashtest. 2017-12-05 11:02:58 -05:00
Jesse Ruderman
229455778a Bug 616027 - Add crashtest. 2017-12-05 11:02:58 -05:00
Olli Pettay
9ca325753f Bug 1418002 - Remove HTMLContentElement, r=jessica 2017-11-30 10:57:15 +02:00
Nicholas Nethercote
eec2ed294a Bug 1416980 - Remove nsIExtendedExpatSink. r=erahm.
Because none of the expat users need it.
2017-11-14 17:22:49 +11:00
Joel Maher
25508501e6 Bug 1385288 - Disable parser/htmlparser/tests/reftest/bug582940-1.html on osx for frequent failures. r=me, a=testonly 2017-11-13 12:20:03 -05:00
Joel Maher
9d58213a5d 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
f13dcb92b7 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
465f16fc67 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
2017-10-27 10:31:13 +11:00
Andi-Bogdan Postelnicu
2766d99311 Bug 1411615 - make nsScannerIterator a trivial type in order to use memset. r=hsivonen
MozReview-Commit-ID: 2YpZE8Rryyl
2017-10-26 17:50:26 +03:00
Nicholas Nethercote
60f7cb29e3 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
2017-10-22 08:50:25 +11:00
Nicholas Nethercote
e0e86b7660 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
2017-10-20 14:04:47 +11:00
Nicholas Nethercote
404fadf89b 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.
2017-10-12 10:52:17 +11: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
Nicholas Nethercote
9fda5528d2 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
2017-09-26 08:33:21 +10:00
Sylvestre Ledru
29ad0802e0 Bug 1403150 - Ignore the formatting on gHTMLElements r=smaug
MozReview-Commit-ID: FKHbmNBJjia
2017-09-26 14:40:06 +02:00
Nicholas Nethercote
fa82d7347e Bug 1402769 - Remove unused stuff in and around nsParserModule.cpp. r=mrbkap.
None of these things are used in mozilla-central or comm-central.
2017-09-05 20:43:30 +10:00
Olli Pettay
98580ecdff Bug 1396584 - Remove support for multiple ShadowRoots, r=mrbkap 2017-09-25 18:09:26 +03:00
Nicholas Nethercote
6b88a1af42 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.
2017-09-22 08:14:03 +10:00
Nicholas Nethercote
6fabd55805 Bug 1400777 (part 5) - Clean up nsElementTable.{cpp,h}. r=mrbkap.
This patch makes some style fixes and other minor improvements.
2017-09-20 08:32:51 +10:00
Nicholas Nethercote
76aafce23b 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.
2017-09-19 11:11:24 +10:00
Nicholas Nethercote
174f2ee505 Bug 1400777 (part 3) - De-expose gHTMLElements[]. r=mrbkap. 2017-09-19 11:09:30 +10:00
Nicholas Nethercote
013af55153 Bug 1400777 (part 2) - De-expose HTML group constants[]. r=mrbkap.
The patch also removes some low-value comments.
2017-09-19 11:08:39 +10:00
Nicholas Nethercote
7959e1d513 Bug 1400777 (part 1) - Remove eHTMLTags. r=mrbkap.
It's just a too-cute-by-half typedef for nsHTMLTag.
2017-09-19 11:07:49 +10:00
Nicholas Nethercote
038eda3f17 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.
2017-09-05 20:19:06 +10:00
Nicholas Nethercote
d14e1f2735 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().
2017-09-01 19:42:42 +10:00
Nicholas Nethercote
ec86006dad Bug 1395828 (part 1) - Add nsHTMLElement::IsBlock(). r=mrbkap.
This mirrors the existing nsHTMLElement::IsContainer() function.
2017-09-01 19:38:09 +10:00
Nicholas Nethercote
20964b29ed 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.
2017-08-29 08:05:23 +10:00
Nicholas Nethercote
28721fc5d7 Bug 1394256 - Remove nsIParserService::HTMLIdTo{Atom,String}Tag(). r=mrbkap.
They're unused. This also means nsHTMLTags::Get{Atom,StringValue}() can be
removed.
2017-08-29 08:05:23 +10:00
Chung-Sheng Fu
3360252b7e Bug 863246 - Fix test failures r=Gijs
MozReview-Commit-ID: 8tUr27zvs8z
2017-07-19 17:30:01 +08:00