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

4429 Коммитов

Автор SHA1 Сообщение Дата
Boris Zbarsky 8baa26a2af Bug 1457051. The WebIDL isInstance should be a pure brand check, not an instanceof-like check. r=qdot 2018-04-26 01:38:07 -04:00
Boris Zbarsky 6072982c14 Bug 1456887 part 2. Remove ArrayClass support. r=qdot 2018-04-26 01:38:07 -04:00
Jeff Walden 04d21ccac0 Bug 1451248. r=jorendorff, r=bz
--HG--
extra : rebase_source : e26439a5954162bdaf332fbd63d623a3810e19e0
2018-04-25 19:40:09 -07:00
Kris Maglione dc8ba3688b Bug 1456035: Part 1 - Add helper to generate native QueryInterface callbacks. r=bz
MozReview-Commit-ID: JpV6zYOdvHu

--HG--
extra : rebase_source : 4aeda7c2c612dd9c7dbb7b6f4fdd33b8b289b702
2018-04-22 20:32:11 -07:00
Boris Zbarsky 4b6ed4c011 Bug 1456261. Add cycle collection bits for WebIDL dictionaries. r=smaug 2018-04-24 11:57:40 -04:00
Boris Zbarsky 1ee25c8f50 Bug 1455805. Make CSS a namespace, not interface. r=heycam
MozReview-Commit-ID: LTYBNyGm1JS
2018-04-23 12:36:10 -04:00
Xidorn Quan a8cc0738f6 Bug 1452542 part 6 - Replace uses of PythonCSSProps.h with the data file generated from Servo. r=froydnj
Some content in Makefile.in is removed because after this change, the
scripts no longer invoke the preprocessor and thus don't have unknown
dependencies anymore outside what is provided in their inputs array.

The order of exports.PREFERENCES in properties-db changes because the
data file has shorthands placed after longhands. The only usage of it
is in test_css-properties-db.js which doesn't care about the order.

MozReview-Commit-ID: AMjzTRf2HYN

--HG--
extra : rebase_source : 7976e48e7c7bba467d77a34ab0d7709cde1ecdf4
2018-04-17 14:40:12 +10:00
Andreea Pavel 1b610a02c9 Backed out 7 changesets (bug 1452542) for failing toolkit/content/tests/chrome/test_arrowpanel.xul on a CLOSED TREE
Backed out changeset f206acff283f (bug 1452542)
Backed out changeset be97e652391f (bug 1452542)
Backed out changeset 4d3a028edaed (bug 1452542)
Backed out changeset 5619bba37cdd (bug 1452542)
Backed out changeset e83a797bdc61 (bug 1452542)
Backed out changeset 255e2feff19f (bug 1452542)
Backed out changeset fac55b1a0706 (bug 1452542)
2018-04-18 20:10:35 +03:00
Xidorn Quan ddcc60ec27 Bug 1452542 part 6 - Replace uses of PythonCSSProps.h with the data file generated from Servo. r=froydnj
Some content in Makefile.in is removed because after this change, the
scripts no longer invoke the preprocessor and thus don't have unknown
dependencies anymore outside what is provided in their inputs array.

The order of exports.PREFERENCES in properties-db changes because the
data file has shorthands placed after longhands. The only usage of it
is in test_css-properties-db.js which doesn't care about the order.

MozReview-Commit-ID: AMjzTRf2HYN

--HG--
extra : rebase_source : f9db0659a81bea28b335806ac70e23dc0d36e493
2018-04-17 14:40:12 +10:00
shindli f7d6e8df78 Backed out 3 changesets (bug 1186265) for wpt8 failures in /css/geometry/interfaces.html on a CLOSED TREE
Backed out changeset d8986aead3e0 (bug 1186265)
Backed out changeset 2ba85ec7c9da (bug 1186265)
Backed out changeset f3a0b2686f45 (bug 1186265)
2018-04-16 21:57:47 +03:00
Blake Kaplan 1a094acd60 Bug 1186265 - Update DOMPointReadOnly to the most recent spec. r=bz
The most recent specification gives DOMPointReadOnly a constructor as well as
a static fromPoint method.

This fixes several failing wpt tests.

MozReview-Commit-ID: 4mPhMm5yhJA

--HG--
extra : rebase_source : d8159b38330c990672f99dbc748a739eced5e6a2
2018-03-30 10:55:40 -07:00
Boris Zbarsky da28b690f0 Bug 1453868. Remove redunant setting of globalObj in binding to-promise conversions. r=qdot
MozReview-Commit-ID: BuykeYqTEoF
2018-04-13 19:31:45 -04:00
Sebastian Hengst 0819f35e51 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
Margareta Eliza Balazs 1c0306e497 Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-04-12 12:45:41 +03:00
Boris Zbarsky ed3406b369 Bug 1452786 part 2. Stop using a generated chromeonly isInstance method. r=qdot
This changes semantics in all sorts of ways (e.g. now we get the right proto
from our |this| value instead of it being baked into the function).  But if all
our chrome callers are well-behaved this should be ok.

We _could_ bake the proto id and depth into the function itself by using
js::NewFunctionWithReserved if it were not for Xrays.  Those already need the
reserved slots on functions we Xray.

MozReview-Commit-ID: 1bYrKWWIc1P
2018-04-12 00:06:07 -04:00
Boris Zbarsky e94c1c593e Bug 1452786 part 1. Move the "is chrome" check for installing [ChromeOnly] stuff into the shared CreateInterfaceObjects method. r=qdot
Right now we do this check pretty much always anyway for isInstance... we do it
twice for anything that actually has [ChromeOnly] bits.

MozReview-Commit-ID: FHbYED4FPJe
2018-04-12 00:06:05 -04:00
Tristan Bourvon a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Nika Layzell c3cbd8710f Bug 1434768 - Part 1: Add Child/ParentSHistory classes which wrap nsISHistory, r=bz 2018-04-10 17:49:44 -04:00
Karl Tomlinson 2405fe930c bug 1328964 use nsContentUtils::GetCurrentJSContext() on all threads r=smaug
nsContentUtils::GetCurrentJSContextForThread() originally needed to use
workers::GetCurrentThreadJSContext() in
https://hg.mozilla.org/mozilla-central/rev/366a45b41539#l2.18
because CycleCollectedJS*()->Context() did not exist until
https://hg.mozilla.org/mozilla-central/rev/1a0cd542e1e9#l7.12

nsContentUtils::GetCurrentJSContext() is thread-safe since these changes:
https://hg.mozilla.org/mozilla-central/rev/e636c7186286#l3.12
https://hg.mozilla.org/mozilla-central/rev/c8029c072776#l2.12

MozReview-Commit-ID: 2f1eGS9uBBO

--HG--
extra : rebase_source : dad1d2084a63413c3975f9e7c66c6b06857c9f23
2018-04-09 12:11:18 +12:00
Boris Zbarsky 1c287692f6 Bug 1452235 part 5. Stop inheriting nsISupports for nsDOMSerializer. r=qdot
MozReview-Commit-ID: 89iyRqKcAl0
2018-04-09 16:30:33 -04:00
Adrian Wielgosik 2837c659de Bug 1170771 - Remove now-empty nsDOMClassInfo. r=bz
MozReview-Commit-ID: 7XsiPD1kTt9

--HG--
extra : rebase_source : 2935c0fe1a51083f37e113c3e0599760f40829e2
2018-04-05 14:20:44 +02:00
Boris Zbarsky 7842086412 Bug 1451516 part 9. Remove the now-unused needsSpecialGenericOps method. r=qdot 2018-04-05 20:29:42 -04:00
Boris Zbarsky 1e83f6e69e Bug 1451516 part 8. Remove now-dead handling for cross-origin objects in CastableObjectUnwrapper. r=qdot 2018-04-05 20:29:41 -04:00
Boris Zbarsky 024f4366e8 Bug 1451516 part 7. Stop code-generating generic methods. r=qdot 2018-04-05 20:29:41 -04:00
Boris Zbarsky e3323859c6 Bug 1451516 part 6. Stop code-generating generic setters. r=qdot 2018-04-05 20:29:41 -04:00
Boris Zbarsky 0fc236f464 Bug 1451516 part 5. Stop code-generating generic cross-origin getters. r=qdot 2018-04-05 20:29:41 -04:00
Boris Zbarsky 96880eb840 Bug 1451516 part 4. Stop code-generating generic lenient getters. r=qdot 2018-04-05 20:29:41 -04:00
Boris Zbarsky d6f68586ee Bug 1451516 part 3. Stop code-generating generic getters for maybe-global objects. r=qdot 2018-04-05 20:29:40 -04:00
Boris Zbarsky e5888e7298 Bug 1451516 part 2. Refactor GenericBindingGetter to make it easier to use in more cases. r=qdot 2018-04-05 20:29:40 -04:00
Boris Zbarsky 2aaacc9bf8 Bug 1451516 part 1. Make it possible to use binding_detail in generated binding code without too much verbosity. r=qdot 2018-04-05 20:29:40 -04:00
Noemi Erli ff466e94c1 Merge inbound to mozilla-central. a=merge 2018-04-05 13:02:11 +03:00
Nils Ohlmeier [:drno] 05732f56d8 Bug 1446880: updated exception test to new setIdentityProvider API. r=jib
MozReview-Commit-ID: 8gYEUiL1xvd

--HG--
extra : rebase_source : 84f63a03e84fd8cb620c606b2eede78db187ce2d
2018-04-04 20:47:46 -07:00
Boris Zbarsky 764cd472b6 Bug 1445710. Reduce codesize a bit by removing DOM DefineInterfaceObject methods. r=peterv
MozReview-Commit-ID: 6JRYz4FV9vP
2018-04-04 15:32:19 -04:00
Boris Zbarsky b808305604 Bug 1450182. Remove the EventListenerWasAdded/Removed hooks from DOMEventTargetHelper. r=smaug
MozReview-Commit-ID: GWnAvK61hVT
2018-04-04 15:32:19 -04:00
Boris Zbarsky 2c63cffb46 Bug 1447454. Stop allowing implicit downcasts in StrongOrRawPtr. r=peterv
MozReview-Commit-ID: BSXp3ThY1dC
2018-04-04 15:32:19 -04:00
Boris Zbarsky aa63116f80 Bug 1085062 followup. Actually address the review comments. r=peterv 2018-04-04 14:43:41 -04:00
Boris Zbarsky fe15e92e6b Bug 1085062. Remove hasXPConnectImpls support from bindings codegen. r=peterv 2018-04-04 14:39:52 -04:00
Boris Zbarsky 419465b581 Bug 1085061. Remove the hasXPConnectImpls flag from EventTarget. r=peterv
This is the behavior change.  The cleanup will be in bug 1085062.
2018-04-04 14:39:48 -04:00
Xidorn Quan d7f3530f07 Bug 1449068 part 2 - Use Servo data to back @counter-style rule. r=emilio
This patch basically does:
* Add descriptor setters and generation count to CounterStyleRule in
  Servo. (This code is mostly based on the old code inside
  nsCSSCounterStyleRule for handling mutation.)
* Use RawServoCounterStyleRule in CounterStyleManager.
* Add ServoCounterStyleRule and remove nsCSSCounterStyleRule.

Test change:
* "fixed" was parsed as and thus serialized to "fixed 1", but Servo
  doesn't do so. It preserves whether the number presents. Either way
  is probably fine.

MozReview-Commit-ID: EtKTeu32isi

--HG--
extra : rebase_source : ec44f01c581003ce4b6ef69435a05de7f3da5469
2018-04-05 08:41:28 +10:00
Xidorn Quan 67fd806b66 Bug 1449087 part 2 - Use Servo data to back @font-face rule. r=emilio
This patch does the following things:
* Create a new class ServoFontFaceRule for CSSOM of @font-face rule
  which mostly follows how nsCSSFontFaceRule was implemented.
* Remove the old nsCSSFontFaceRule and binding code to create it.
* Have FontFace backed by Servo data via making mRule and mDescriptors
  of the class hold RawServoFontFaceRule like ServoFontFaceRule.

To keep this patch small, it effectively just delays the conversion
from Servo data to nsCSSValue from parsing to using. This may cause
worse performance if the font set is flushed repeatedly. Supposing we
don't flush font set very frequently, it may not be a big deal.

We may still want to remove the intermediate nsCSSValue conversion at
some point, and have everything converted to their final form directly
when used, but that can happen in followups.

There are some unfortunate bits from this change:
* We lose style sheet for logging in FontFaceSet. This is probably not
  all that worse, because we wouldn't have that before either if the
  page doesn't use CSSOM to visit it. But we should figure out some
  approach to fix it anyway.
* InspectorFontFace no longer shares the same rule object as CSSOM.
  This isn't really a problem if the @font-face rule isn't very mutable.
  Unless we want to make the rule returned from InspectorFontFace to be
  mutable (i.e. via inspector), not using the same object probably isn't
  too bad.

This patch switches the code we use to serialize stuff in FontFace and
CSSFontFaceRule, which leads to some failures in tests. Specifically,
the expected changes including:
* Value of font-family now can be serialized to identifier sequence like
  font-family property. The old code always serializes it to string,
  but it doesn't seem to have different requirement than the property.
  Blink can serialize to identifier as well.
* Family name inside local() is also changed to use the same way as
  family names elsewhere (i.e. can be identifier sequence). Blink has
  the same behavior as the old code, but I don't think it's a big deal.
* The order of descriptors serialized gets changed. I don't think it
  matters at all.
* Empty string as font-family via using string syntax is no longer
  considered invalid for FontFace. I don't find it is mentioned anywhere
  that it should be specifically treated invalid.


MozReview-Commit-ID: 32Fk3Fi9uTs

--HG--
extra : rebase_source : 6221ec8fc56de357b06dd27e770fb175348a2f77
2018-04-04 08:42:10 +10:00
Boris Zbarsky 1ce7e994ba Bug 1450149. Mark Prefable arrays const in bindings codegen. r=qdot 2018-04-03 00:42:40 -04:00
Tom Ritter 449237fc51 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
Boris Zbarsky 4373a04574 Bug 1446246 part 2. Combine HTMLConstructor and CreateXULOrHTMLElement into a single function. r=peterv
This fixes an observable bug we had due to doing the steps in a different order
from the spec: the 'prototype' get can have side-effects so needs to happen
after some of the other sanity checks.

MozReview-Commit-ID: 83zNhqfqFRu
2018-03-27 15:49:02 -04:00
Boris Zbarsky 753e5af2f1 Bug 1446246 part 1. Use a single handwritten HTMLConstructor implementation, instead of code-generating lots of very similar implementations. r=peterv
The codegen changes are mostly a backout of the changes made in bug 1274159.

The HTMLConstructor implementation is mostly copied from one of the
code-generated ones, with a few modifications:

* Derive the interface name from the proto id instead of hardcoding it.
* Use the proto/constructor ids to get constructor and prototype objects.
* Use ErrorResult instead of FastErrorResult; we don't want the precedent of
  using FastErrorResult in non-generated code.

There will be further changes to combine HTMLConstructor and
CreateXULOrHTMLElement, in a separate changeset.

MozReview-Commit-ID: 44D0qw23ioP
2018-03-27 15:49:02 -04:00
Tom Schuster 2bf6212869 Bug 1255800 - Remove JS_THIS_OBJECT from dom/xpconnect. r=bz
--HG--
extra : rebase_source : dcaa891010e25e10079db853fe4eb1a7fe261e47
2018-03-07 14:35:22 +01:00
Boris Zbarsky 17509bc9da Bug 1449019. Actually propagate out exceptions from the innerHTML getter. r=smaug
I moved the IgnoreErrors decl so it would come after the OOMReporter decl and I
could add the new conversion operator.

MozReview-Commit-ID: B1S6DXmZfvE
2018-03-26 16:41:43 -04:00
Coroiu Cristina f7507f7dd5 Merge mozilla-central to inbound a=merge on a CLOSED TREE 2018-03-27 01:33:50 +03:00
Nicholas Nethercote bac452f9ad Bug 1411469 - Statically allocate static atoms. r=froydnj
Currently static atoms are stored on the heap, but their char buffers are
stored in read-only static memory.

This patch changes the representation of nsStaticAtom (thus making it a
non-trivial subclass of nsAtom). Instead of a pointer to the string, it now has
an mStringOffset field which is a 32-bit offset to the string. (This requires
placement of the string and the atom within the same object so that the offset
is known to be small. The docs and macros in nsStaticAtom.h handle that.)

Static and dynamic atoms now store their chars in different ways: nsStaticAtom
stores them inline, nsDynamicAtom has a pointer to separate storage. So
`mString` and GetStringBuffer() move from nsAtom to nsDynamicAtom.

The change to static atoms means they can be made constexpr and stored in
read-only memory instead of on the heap. On 64-bit this reduces the per-process
overhead by 16 bytes; on 32-bit the saving is 12 bytes. (Further reductions
will be possible in follow-up patches.)

The increased use of constexpr required multiple workarounds for MSVC.
- Multiple uses of MOZ_{PUSH,POP}_DISABLE_INTEGRAL_CONSTANT_OVERFLOW_WARNING to
  disable warnings about (well-defined!) overflow of unsigned integer
  arithmetic.
- The use of -Zc:externConstexpr on all files defining static atoms, to make
  MSVC follow the C++ standard(!) and let constexpr variables have external
  linkage.
- The use of -constexpr:steps300000 to increase the number of operations
  allowed in a constexpr value, in order to handle gGkAtoms, which requires
  hashing ~2,500 atom strings.

The patch also changes how HTML5 atoms are handled. They are now treated as
dynamic atoms, i.e. we have "dynamic normal" atoms and "dynamic HTML5 atoms",
and "dynamic atoms" covers both cases, and both are represented via
nsDynamicAtom. The main difference between the two kinds is that dynamic HTML5
atoms still aren't allowed to be used in various operations, most notably
AddRef()/Release(). All this also required moving nsDynamicAtom into the header
file.

There is a slight performance cost to all these changes: now that nsStaticAtom
and nsDynamicAtom store their chars in different ways, a conditional branch is
required in the following functions: Equals(), GetUTF16String(),
WeakAtom::as_slice().

Finally, in about:memory the "explicit/atoms/static/atom-objects" value is no
longer needed, because that memory is static instead of heap-allocated.

MozReview-Commit-ID: 4AxPv05ngZy
2018-03-26 11:18:31 +02:00
L. David Baron 1da1c4f2be Bug 1448138 - Rename string DataFlags::SHARED to REFCOUNTED to make it clearer to those reading the code. r=erahm
MozReview-Commit-ID: 1mJuwY5dQkj

--HG--
extra : transplant_source : %B8%97%C2%AAa%A6%3D%E3%AC%9C%C1%15%99%FE%94%1A%E2K%81%F1
2018-03-23 17:31:37 -07:00
Margareta Eliza Balazs 190225b29c Backed out changeset 794ee6857d83 (bug 1421070) for 15 failures in toolkit/components/payments/test/mochitest/test_ObservedPropertiesMixin.html on a CLOSED TREE
--HG--
extra : amend_source : 0574ce1b5b6a6e8735245684eb8e9ec7b0ac2647
2018-03-23 03:42:25 +02:00