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

1733 Коммитов

Автор SHA1 Сообщение Дата
Karl Tomlinson 26e9ce40c3 bug 1542932 Add code generation for callback constructors r=bzbarsky
TreatNonObjectAsNull is rejected in the parser because / so that there is no
need to implement the equivalent of CallCallback.getCallGuard().

Differential Revision: https://phabricator.services.mozilla.com/D26865

--HG--
extra : moz-landing-system : lando
2019-04-11 20:54:17 +00:00
Boris Zbarsky 423697c891 Bug 1543461. Add the missing newline after a static assert in Web IDL codegen. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D26960

--HG--
extra : moz-landing-system : lando
2019-04-10 19:05:15 +00:00
Yoshi Cheng-Hao Huang 222255214e Bug 1534967 - Part 1: use RootedIdVector. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D25042
2019-04-08 10:46:53 +08:00
Yoshi Cheng-Hao Huang edbc333422 Bug 1521732 - Part 3: Use RootedValueVector instead. r=sfink,jonco
s/AutoValueVector/RootedValueVector/g

Depends on D23183

Differential Revision: https://phabricator.services.mozilla.com/D23184

--HG--
extra : moz-landing-system : lando
2019-03-26 13:58:20 +00:00
Boris Zbarsky 93d6619a30 Bug 1539204 part 2. Mark subject principal args in bindings as known-live. r=qdot
Differential Revision: https://phabricator.services.mozilla.com/D24927

--HG--
extra : moz-landing-system : lando
2019-03-26 21:57:12 +00:00
Boris Zbarsky 52085cda31 Bug 1539204 part 1. Wrap NonNullHelper() around subject principal args when the stack value is NonNull. r=qdot
This is legwork for adding MOZ_KNOWN_LIVE, because it puts the conversion to
nsIPrincipal& inside the future MOZ_KnownLive.  Most of the changes are just
moving code around a bit and switching prepend() calls for append() calls as a
result.

I have verified that the only change in the generated code is the
addition of NonNullHelper() calls.  A diff of the generated code is available
at <https://phabricator.services.mozilla.com/F1241622>.

Differential Revision: https://phabricator.services.mozilla.com/D24926

--HG--
extra : moz-landing-system : lando
2019-03-26 21:56:32 +00:00
Jeff Walden c40e81a2e9 Bug 1537536 - Move JS::ForOfIterator to its own header. r=arai,bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D24257

--HG--
rename : js/src/jsapi.h => js/public/ForOfIterator.h
extra : moz-landing-system : lando
2019-03-26 17:10:44 +00:00
Boris Zbarsky a998830a71 Bug 1535124 part 2. Mark Web IDL callbacks MOZ_CAN_RUN_SCRIPT by default. r=qdot
We add a [MOZ_CAN_RUN_SCRIPT_BOUNDARY] opt-out for now to keep the tree
compiling.  The naming purposefully matches the C++ annotation that has a
similar effect, top make it easy to search for.

Differential Revision: https://phabricator.services.mozilla.com/D23520

--HG--
extra : moz-landing-system : lando
2019-03-19 12:59:54 +00:00
Boris Zbarsky 5c13f9c06d Bug 1535124 part 1. Add a MOZ_KnownLive() around callback-typed arguments in bindings. r=qdot
This allows calling a C++ MOZ_CAN_RUN_SCRIPT method that takes a callback argument.

The changes to TestCanRunScript.cpp are there to catch an incorrect change I was
going to make to the analysis to make this work, until I figured out that
RootedCallback should be MOZ_IS_SMARTPTR_TO_REFCOUNTED.

Differential Revision: https://phabricator.services.mozilla.com/D23519

--HG--
extra : moz-landing-system : lando
2019-03-19 12:59:53 +00:00
Boris Zbarsky 870c830c5a Bug 1535135. Annotate static binding methods/getters/setters as MOZ_CAN_RUN_SCRIPT. r=qdot
We do this for non-static ones already; we should do it for static ones too.

Differential Revision: https://phabricator.services.mozilla.com/D23390

--HG--
extra : moz-landing-system : lando
2019-03-13 20:50:36 +00:00
Manish Goregaokar 8d9735ff94 Bug 1359269 - Part 10: Make it a hard error to apply TreatNullAs on non-types; r=bzbarsky
Depends on D20060

Differential Revision: https://phabricator.services.mozilla.com/D20061

--HG--
extra : moz-landing-system : lando
2019-03-02 04:22:05 +00:00
Manish Goregaokar ab4f69e7a5 Bug 1359269 - Part 9: Clean up codegen now that Clamp/EnforceRange can only be applied to types; r=bzbarsky
Depends on D20059

Differential Revision: https://phabricator.services.mozilla.com/D20060

--HG--
extra : moz-landing-system : lando
2019-03-02 04:21:58 +00:00
Manish Goregaokar a3792c37f5 Bug 1359269 - Part 2: Add codegen support for attributes on types in WebIDL; r=bzbarsky
Depends on D19733

Differential Revision: https://phabricator.services.mozilla.com/D19734

--HG--
extra : moz-landing-system : lando
2019-03-02 04:21:22 +00:00
Dorel Luca d66ca2b25b Backed out 11 changesets (bug 1359269) for Linting failure. CLOSED TREE
Backed out changeset 00461a29f650 (bug 1359269)
Backed out changeset 6c09eccc4bd1 (bug 1359269)
Backed out changeset ae30401e7988 (bug 1359269)
Backed out changeset 8f9509e82439 (bug 1359269)
Backed out changeset bfb153c7f9c3 (bug 1359269)
Backed out changeset 1430913c5e9e (bug 1359269)
Backed out changeset 4bb00dc53459 (bug 1359269)
Backed out changeset 7705b1ebb154 (bug 1359269)
Backed out changeset 7fd8a3c1f827 (bug 1359269)
Backed out changeset c3f37539cb31 (bug 1359269)
Backed out changeset bb694b612b1b (bug 1359269)
2019-03-02 04:07:00 +02:00
Manish Goregaokar e8ca5270f2 Bug 1359269 - Part 10: Make it a hard error to apply TreatNullAs on non-types; r=bzbarsky
Depends on D20060

Differential Revision: https://phabricator.services.mozilla.com/D20061

--HG--
extra : moz-landing-system : lando
2019-03-02 01:23:32 +00:00
Manish Goregaokar 8f2ed901bf Bug 1359269 - Part 9: Clean up codegen now that Clamp/EnforceRange can only be applied to types; r=bzbarsky
Depends on D20059

Differential Revision: https://phabricator.services.mozilla.com/D20060

--HG--
extra : moz-landing-system : lando
2019-03-02 01:23:30 +00:00
Manish Goregaokar e3c91847dd Bug 1359269 - Part 2: Add codegen support for attributes on types in WebIDL; r=bzbarsky
Depends on D19733

Differential Revision: https://phabricator.services.mozilla.com/D19734

--HG--
extra : moz-landing-system : lando
2019-03-02 01:23:10 +00:00
Peter Van der Beken 41fde75dc8 Bug 1518202 - Add cross-process proxies for Location. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D15848

--HG--
extra : moz-landing-system : lando
2019-02-28 18:23:15 +00:00
Boris Zbarsky 8c2602c9e5 Bug 1520831. Fix handling of Symbol-named properties on objects with named setters. r=qdot
Per spec these should just go directly to the expando object; we were ignoring them instead.

Differential Revision: https://phabricator.services.mozilla.com/D16930

--HG--
extra : moz-landing-system : lando
2019-02-19 19:08:32 +00:00
Tom Schuster 4d90baf832 Bug 1529939 - Remove JSVAL_TYPE_MISSING. r=bzbarsky,jandem
Differential Revision: https://phabricator.services.mozilla.com/D20936

--HG--
extra : moz-landing-system : lando
2019-02-26 08:48:01 +00:00
Nika Layzell 54709dbdd6 Bug 1523631 - Part 5: Avoid GCC warning when including dictionary types in WebIDL, r=bzbarsky
This warning (as an error) is showing up with this patch due to the new
use of AddEventListenerOptions in ChromeUtilsBinding.h. That header is
included in some codegen units which have this warning enabled, which
revealed the issue.

I believe the warning is spurious in this case, but fixing it doesn't
seem like a big deal. Requesting review from Boris, as he added the
comment 6 years ago.

Depends on D20015

Differential Revision: https://phabricator.services.mozilla.com/D20824

--HG--
extra : moz-landing-system : lando
2019-02-22 15:48:44 +00:00
Boris Zbarsky c898179a08 Bug 1528286. Remove bogus comment. r=froydnj
There are no relocations needed for string constants.

Differential Revision: https://phabricator.services.mozilla.com/D19956

--HG--
extra : moz-landing-system : lando
2019-02-15 16:25:06 +00:00
Boris Zbarsky 7e5a37a024 Bug 1521907 part 3. Start using CheckedUnwrapStatic/Dynamic in bindings. r=peterv
The basic idea for the changes around UnwrapObjectInternal and its callers
(UnwrapObject, UNWRAP_OBJECT, etc) is to add a parameter to the guts of the
object-unwrapping code in bindings which can be either a JSContext* or nullptr
(statically typed).  Then we test which type it is and do either a
CheckedUnwrapDynamic or CheckedUnwrapStatic.  Since the type is known at
compile time, there is no actual runtime check; the compiler just emits a call
to the right thing directly (verified by examining the assembly output on
Linux).

The rest of the changes are mostly propagating through that template parameter,
adding static asserts to make sure people don't accidentally pass nullptr while
trying to unwrap to a type that might be a WindowProxy or Location, etc.

There are also some changes to places that were calling CheckedUnwrap directly
to use either the static or dynamic version, as needed.

Differential Revision: https://phabricator.services.mozilla.com/D17883

--HG--
extra : moz-landing-system : lando
2019-02-02 03:23:49 +00:00
Gurzau Raul 44e4d42e8a Backed out 7 changesets (bug 1521907) for failing at unit/test_bug1151385.js on a CLOSED TREE.
Backed out changeset ef04359ccf0d (bug 1521907)
Backed out changeset ac1c61bf61e9 (bug 1521907)
Backed out changeset df09b7be63c5 (bug 1521907)
Backed out changeset 585fa0024d46 (bug 1521907)
Backed out changeset e593c29aaff4 (bug 1521907)
Backed out changeset ac2e180a35b6 (bug 1521907)
Backed out changeset 270b1db9ea81 (bug 1521907)
2019-02-02 00:58:16 +02:00
Boris Zbarsky d061930645 Bug 1521907 part 3. Start using CheckedUnwrapStatic/Dynamic in bindings. r=peterv
The basic idea for the changes around UnwrapObjectInternal and its callers
(UnwrapObject, UNWRAP_OBJECT, etc) is to add a parameter to the guts of the
object-unwrapping code in bindings which can be either a JSContext* or nullptr
(statically typed).  Then we test which type it is and do either a
CheckedUnwrapDynamic or CheckedUnwrapStatic.  Since the type is known at
compile time, there is no actual runtime check; the compiler just emits a call
to the right thing directly (verified by examining the assembly output on
Linux).

The rest of the changes are mostly propagating through that template parameter,
adding static asserts to make sure people don't accidentally pass nullptr while
trying to unwrap to a type that might be a WindowProxy or Location, etc.

There are also some changes to places that were calling CheckedUnwrap directly
to use either the static or dynamic version, as needed.

Differential Revision: https://phabricator.services.mozilla.com/D17883

--HG--
extra : moz-landing-system : lando
2019-02-01 18:48:13 +00:00
Ciure Andrei 63b0f3f854 Backed out 7 changesets (bug 1521907) for JSObject Wrapper.cpp bustages and failures CLOSED TREE
Backed out changeset ce3108090e77 (bug 1521907)
Backed out changeset efd05f4979f1 (bug 1521907)
Backed out changeset 2d0895148907 (bug 1521907)
Backed out changeset 192152fe986a (bug 1521907)
Backed out changeset ca65b46b0d37 (bug 1521907)
Backed out changeset b3daf5ca3d11 (bug 1521907)
Backed out changeset 1b0a09a46c70 (bug 1521907)
2019-02-01 19:38:25 +02:00
Boris Zbarsky a3784f4489 Bug 1521907 part 3. Start using CheckedUnwrapStatic/Dynamic in bindings. r=peterv
The basic idea for the changes around UnwrapObjectInternal and its callers
(UnwrapObject, UNWRAP_OBJECT, etc) is to add a parameter to the guts of the
object-unwrapping code in bindings which can be either a JSContext* or nullptr
(statically typed).  Then we test which type it is and do either a
CheckedUnwrapDynamic or CheckedUnwrapStatic.  Since the type is known at
compile time, there is no actual runtime check; the compiler just emits a call
to the right thing directly (verified by examining the assembly output on
Linux).

The rest of the changes are mostly propagating through that template parameter,
adding static asserts to make sure people don't accidentally pass nullptr while
trying to unwrap to a type that might be a WindowProxy or Location, etc.

There are also some changes to places that were calling CheckedUnwrap directly
to use either the static or dynamic version, as needed.

Differential Revision: https://phabricator.services.mozilla.com/D17883

--HG--
extra : moz-landing-system : lando
2019-01-31 15:50:06 +00:00
Boris Zbarsky 5f472025a2 Bug 1520509. Remove the unused support for CrossOriginWritable=InterfaceName in Web IDL. r=qdot
Differential Revision: https://phabricator.services.mozilla.com/D16712

--HG--
extra : moz-landing-system : lando
2019-01-18 22:11:04 +00:00
Boris Zbarsky e5c8ead70a Bug 1363208 part 9. Remove now-unused cross-origin Xray infrastructure. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D15433

--HG--
extra : moz-landing-system : lando
2019-01-21 03:33:55 +00:00
Boris Zbarsky 46d5d31b59 Bug 1363208 part 7. Change the Location binding to inherit from MaybeCrossOriginObject. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D15431

--HG--
extra : moz-landing-system : lando
2019-01-21 04:26:13 +00:00
Boris Zbarsky 4dffd37187 Bug 1363208 part 6. Remove the NonOrdinaryGetPrototypeOf annotation. r=peterv
We can just check for a non-global object (so excluding Window) with cross-origin properties.

Differential Revision: https://phabricator.services.mozilla.com/D15430

--HG--
extra : moz-landing-system : lando
2019-01-21 03:33:16 +00:00
Neil Deakin cdf4a288ec Bug 1482389, remove tree box object special case in Codegen.py, r=bz 2019-01-14 20:59:34 -05:00
Jeff Walden 7883beee5b Bug 1517674 - Rename JS_NewDateObject and JS_ObjectIsDate to JS:: versions of the same, and move their declarations to js/public/Date.h and their implementations to js/src/jsdate.cpp. r=arai
--HG--
extra : rebase_source : 581fa2b7831ab09c33801f8e9a52a78566973ff4
2019-01-04 11:43:31 -06:00
Emilio Cobos Álvarez d2ed260822 Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Peter Van der Beken 066d891adb Bug 1353867 - Add cross-process proxies for WindowProxy. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D12656

--HG--
extra : moz-landing-system : lando
2019-01-02 13:29:18 +00:00
Peter Van der Beken b816d68b07 Bug 1353867 - Add code generation for array of cross origin properties. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D12654

--HG--
extra : moz-landing-system : lando
2019-01-02 13:28:06 +00:00
Peter Van der Beken a17049feac Bug 1353867 - Change WindowProxy type. r=bzbarsky
Add a WindowProxyHolder type and generate binding code that takes or returns it whenever
the WebIDL refers to the WindowProxy type. This patch just makes the WindowProxyHolder
hold a strong reference to a nsPIDOMWindowOuter.

Differential Revision: https://phabricator.services.mozilla.com/D12650

--HG--
extra : moz-landing-system : lando
2019-01-02 13:26:56 +00:00
Boris Zbarsky d6876ebbfa Bug 1515999. Remove the unused JSContext argument from GetArrayIndexFromId. r=peterv 2018-12-26 13:45:15 -08:00
Peter Van der Beken 9ae4291779 Bug 1515319 - Allow record<DOMString, object> member in dictionary. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D14968

--HG--
extra : moz-landing-system : lando
2018-12-19 19:29:48 +00:00
Steve Fink 10953d54c2 Bug 1513108 - Remove the separate class extension hook for getting a weakmap key delegate, r=jonco
Replace with just unwrapping the key, since there are no users that return anything else for a delegate.

--HG--
extra : rebase_source : e72b825121ca3493364c9347f65e5dddd1ef53e0
2018-12-07 14:38:01 -08:00
Jon Coppeard 6f81506124 Bug 1463462 - Make gray marking assertions call a JSAPI function r=sfink 2018-12-06 16:28:10 -05:00
Boris Zbarsky c734e83c48 Bug 1511401 part 4. Use CallArgs::requireAtLeast in the DOM. r=nbp,qdot 2018-12-10 14:13:06 -05:00
Diego Pino Garcia fb55ca75b7 Bug 1249606 - Automatically generate operator== for WebIDL dictionaries. r=bzbarsky 2018-11-29 17:07:30 -05:00
Boris Zbarsky 4297d8370d Bug 1491925. Remove the various instrumentation we added to pin down InnerSetNewDocument failures. r=mccr8.
This is a straight backout of (in that order) bug 1505468, bug 1503664, bug
1501479, bug 1499150, bug 1496805, and the second part of bug 1493849.  The
first part of bug 1493849 was a backout of earlier instrumentation, and that
should stay.

At this point we know we're hitting OOM inside the JS engine while trying to
define properties on Document.prototype, so all this MOZ_CRASH instrumentation
is no longer needed.
2018-11-28 18:24:53 -05:00
Jeff Walden 3093d025b8 Bug 1510012 - Move Symbol-related APIs out of jsapi.h into js/public/Symbol.h. r=sfink, r=mccr8 for the bindings change
--HG--
extra : rebase_source : 3a8d2d694052435fbc47b9131a521e31e9b0ea6f
2018-11-24 12:21:40 -08:00
Nika Layzell d036b747e7 Bug 1477432 - Part 6: Stop using nsIJSID inside of WebIDL bindings, r=mccr8
Rather than adding a native type for nsID objects in WebIDL, this patch just
takes the approach of switching consumers over to using 'any' and calling the
APIs defined in Part 1.

Differential Revision: https://phabricator.services.mozilla.com/D2283
2018-11-16 17:27:39 -05:00
Timothy Guan-tin Chien af2973ef61 Bug 1503019 - Part II, Remove dom.webcomponents.customelements.enabled pref r=smaug
This patch removes the following functions:

* nsContentUtils::IsCustomElementsEnabled()
* CustomElementRegistry::IsCustomElementEnabled(JSContext* aCx, JSObject* aObject)
* CustomElementRegistry::IsCustomElementEnabled(nsIDocument* aDoc)

and all references of the pref.

Depends on D11183

Differential Revision: https://phabricator.services.mozilla.com/D11249

--HG--
extra : moz-landing-system : lando
2018-11-15 06:52:01 +00:00
Andreea Pavel d51566f085 Backed out 2 changesets (bug 1503019) for failing crashtests at dom/base/crashtests/1505811.html on a CLOSED TREE
Backed out changeset 06b12fd41ff1 (bug 1503019)
Backed out changeset 7b845eac9dd7 (bug 1503019)
2018-11-15 01:52:30 +02:00
Markus Stange 43b6fb5988 Bug 1500467 - Mark WebIDL profiler label frames as RELEVANT_FOR_JS. r=njn
Depends on D9300

Differential Revision: https://phabricator.services.mozilla.com/D9301

--HG--
extra : moz-landing-system : lando
2018-11-14 18:54:59 +00:00
Timothy Guan-tin Chien c69315234b Bug 1503019 - Part II, Remove dom.webcomponents.customelements.enabled pref r=smaug
This patch removes the following functions:

* nsContentUtils::IsCustomElementsEnabled()
* CustomElementRegistry::IsCustomElementEnabled(JSContext* aCx, JSObject* aObject)
* CustomElementRegistry::IsCustomElementEnabled(nsIDocument* aDoc)

and all references of the pref.

Depends on D11183

Differential Revision: https://phabricator.services.mozilla.com/D11249

--HG--
extra : moz-landing-system : lando
2018-11-14 19:37:42 +00:00