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

4894 Коммитов

Автор SHA1 Сообщение Дата
arthur.iakab c0b26c4076 Merge inbound to mozilla-central a=merge 2018-11-15 11:54:15 +02: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
Andrea Marchesini d9e70a0be6 Bug 1492036 - Reporting API - part 4 - Reporting, r=smaug 2018-11-14 20:02:33 +01:00
Andrea Marchesini db43f2464c Bug 1492036 - Reporting API - part 3 - Deprecate reports, r=smaug 2018-11-14 20:02:33 +01:00
Boris Zbarsky ab67fedabb Bug 1505504. Improve the error message when two WebIDL callbacks are defined with the same name. r=qdot 2018-11-07 14:06:05 -05:00
Boris Zbarsky 39b5c78c43 Bug 1505468. Add more ClearDocumentDependentSlots instrumentation to see why Document.prototype creation fails. r=mccr8 2018-11-07 14:06:05 -05:00
Markus Stange b2c3ca5adb Bug 1499507 - Use AUTO_PROFILER_LABEL_DYNAMIC_FAST for WebIDL APIs. r=bzbarsky
This means that our binary does not need to include concatenated strings such
as "set CanvasRenderingContext2D.fillStyle". It only needs to contain the
individual strings "CanvasRenderingContext2D" and "fillStyle" which are most
likely already present in the binary.

This change reduces the binary size on macOS x64 by around 200KB.

Here's a diff of the impact on the code generated for Attr_Binding::get_specified
in the Mac build. This change makes us generate slightly more code, which is
very much offset by the reduction in the amount of strings we ship.

@@ -15,22 +15,23 @@

    movl       0x10(%rbx), %r12d
    cmpl       (%rbx), %r12d
    jae        loc_xxxxx

    movq       0x8(%rbx), %rax
    movq       %r12, %rcx
    shlq       $0x5, %rcx
-   leaq       aGetAttrspecifi, %rdx                       ; "get Attr.specified"
+   leaq       aAttr, %rdx                                 ; "Attr"
    movq       %rdx, (%rax,%rcx)
-   movq       $0x0, 0x8(%rax,%rcx)
+   leaq       aSpecified, %rdx                            ; "specified"
+   movq       %rdx, 0x8(%rax,%rcx)
    leaq       -40(%rbp), %rdx
    movq       %rdx, 0x10(%rax,%rcx)
-   movl       $0x71, 0x1c(%rax,%rcx)
+   movl       $0x3a1, 0x1c(%rax,%rcx)
    leal       0x1(%r12), %eax
    movl       %eax, 0x10(%rbx)

    movq       %r15, %rdi
    call       __ZNK7mozilla3dom4Attr9SpecifiedEv          ; mozilla::dom::Attr::Specified() const
    movzxl     %al, %eax
    movabsq    $0xfff9000000000000, %rcx
    orq        %rax, %rcx

Depends on D9204

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

--HG--
extra : moz-landing-system : lando
2018-11-06 04:34:58 +00:00
Brindusan Cristian ab89743379 Backed out 9 changesets (bug 1499507) for build bustages on /profiler/core/platform.cpp. CLOSED TREE
Backed out changeset 4c79a5557d7b (bug 1499507)
Backed out changeset 35d05a53e0a9 (bug 1499507)
Backed out changeset 9254e6c721b3 (bug 1499507)
Backed out changeset cf40b044af3f (bug 1499507)
Backed out changeset 76dd85b9aaf7 (bug 1499507)
Backed out changeset 6256446f16c4 (bug 1499507)
Backed out changeset 41cede6bc7d2 (bug 1499507)
Backed out changeset 30476b824eb4 (bug 1499507)
Backed out changeset 24a9494155fe (bug 1499507)
2018-11-05 23:24:49 +02:00
Markus Stange 42d8bddb50 Bug 1499507 - Use AUTO_PROFILER_LABEL_DYNAMIC_FAST for WebIDL APIs. r=bzbarsky
This means that our binary does not need to include concatenated strings such
as "set CanvasRenderingContext2D.fillStyle". It only needs to contain the
individual strings "CanvasRenderingContext2D" and "fillStyle" which are most
likely already present in the binary.

This change reduces the binary size on macOS x64 by around 200KB.

Here's a diff of the impact on the code generated for Attr_Binding::get_specified
in the Mac build. This change makes us generate slightly more code, which is
very much offset by the reduction in the amount of strings we ship.

@@ -15,22 +15,23 @@

    movl       0x10(%rbx), %r12d
    cmpl       (%rbx), %r12d
    jae        loc_xxxxx

    movq       0x8(%rbx), %rax
    movq       %r12, %rcx
    shlq       $0x5, %rcx
-   leaq       aGetAttrspecifi, %rdx                       ; "get Attr.specified"
+   leaq       aAttr, %rdx                                 ; "Attr"
    movq       %rdx, (%rax,%rcx)
-   movq       $0x0, 0x8(%rax,%rcx)
+   leaq       aSpecified, %rdx                            ; "specified"
+   movq       %rdx, 0x8(%rax,%rcx)
    leaq       -40(%rbp), %rdx
    movq       %rdx, 0x10(%rax,%rcx)
-   movl       $0x71, 0x1c(%rax,%rcx)
+   movl       $0x3a1, 0x1c(%rax,%rcx)
    leal       0x1(%r12), %eax
    movl       %eax, 0x10(%rbx)

    movq       %r15, %rdi
    call       __ZNK7mozilla3dom4Attr9SpecifiedEv          ; mozilla::dom::Attr::Specified() const
    movzxl     %al, %eax
    movabsq    $0xfff9000000000000, %rcx
    orq        %rax, %rcx

Depends on D9204

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

--HG--
extra : moz-landing-system : lando
2018-11-05 21:00:01 +00:00
Narcis Beleuzu 2c6edfdde8 Backed out 9 changesets (bug 1499507) for bustages on ProfileBuffer.cpp . CLOSED TREE
Backed out changeset 541186291b88 (bug 1499507)
Backed out changeset 8a3f4acbad3b (bug 1499507)
Backed out changeset f427afc392b0 (bug 1499507)
Backed out changeset 58dc19fb2b76 (bug 1499507)
Backed out changeset 9225e9aea377 (bug 1499507)
Backed out changeset ca23a517da63 (bug 1499507)
Backed out changeset 16d6c90333de (bug 1499507)
Backed out changeset bc134fe1722a (bug 1499507)
Backed out changeset 4a9c9a91182c (bug 1499507)
2018-11-05 21:48:11 +02:00
Markus Stange 5701f220f1 Bug 1499507 - Use AUTO_PROFILER_DYNAMIC_FAST for WebIDL APIs. r=bzbarsky
This means that our binary does not need to include concatenated strings such
as "set CanvasRenderingContext2D.fillStyle". It only needs to contain the
individual strings "CanvasRenderingContext2D" and "fillStyle" which are most
likely already present in the binary.

This change reduces the binary size on macOS x64 by around 200KB.

Here's a diff of the impact on the code generated for Attr_Binding::get_specified
in the Mac build. This change makes us generate slightly more code, which is
very much offset by the reduction in the amount of strings we ship.

@@ -15,22 +15,23 @@

    movl       0x10(%rbx), %r12d
    cmpl       (%rbx), %r12d
    jae        loc_xxxxx

    movq       0x8(%rbx), %rax
    movq       %r12, %rcx
    shlq       $0x5, %rcx
-   leaq       aGetAttrspecifi, %rdx                       ; "get Attr.specified"
+   leaq       aAttr, %rdx                                 ; "Attr"
    movq       %rdx, (%rax,%rcx)
-   movq       $0x0, 0x8(%rax,%rcx)
+   leaq       aSpecified, %rdx                            ; "specified"
+   movq       %rdx, 0x8(%rax,%rcx)
    leaq       -40(%rbp), %rdx
    movq       %rdx, 0x10(%rax,%rcx)
-   movl       $0x71, 0x1c(%rax,%rcx)
+   movl       $0x3a1, 0x1c(%rax,%rcx)
    leal       0x1(%r12), %eax
    movl       %eax, 0x10(%rbx)

    movq       %r15, %rdi
    call       __ZNK7mozilla3dom4Attr9SpecifiedEv          ; mozilla::dom::Attr::Specified() const
    movzxl     %al, %eax
    movabsq    $0xfff9000000000000, %rcx
    orq        %rax, %rcx

Depends on D9204

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

--HG--
extra : moz-landing-system : lando
2018-11-05 19:11:46 +00:00
Kris Maglione 288ea557d8 Bug 1482091: Part 1 - Add native TelemetryStopwatch implementation. r=chutten,mccr8
This implementation is considerably more memory efficient than the existing JS
implementation. Migrating to it fully saves us about 28K per base content
process.

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

--HG--
extra : source : a19c6b3e0402d16a77185f82d9fedab83a7ca52e
extra : intermediate-source : 28a19b7290ab288a1cb2cbf6d49f905cecc9682b
2018-10-26 13:17:55 -07:00
arthur.iakab 0c81738411 Backed out 2 changesets (bug 1482091) for bc failures on browser_domFullscreen_fullscreenMode.js
Backed out changeset bc03f101937e (bug 1482091)
Backed out changeset 28a19b7290ab (bug 1482091)
2018-11-03 01:08:36 +02:00
Kris Maglione bee3f68fdc Bug 1482091: Part 1 - Add native TelemetryStopwatch implementation. r=chutten,mccr8
This implementation is considerably more memory efficient than the existing JS
implementation. Migrating to it fully saves us about 28K per base content
process.

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

--HG--
extra : source : a19c6b3e0402d16a77185f82d9fedab83a7ca52e
2018-10-26 13:17:55 -07:00
arthur.iakab cf2aa54f83 Backed out 2 changesets (bug 1482091)for failing browser chrome failures on browser_panelUINotifications_fullscreen_noAutoHideToolbar.js
Backed out changeset afd0a13bcfff (bug 1482091)
Backed out changeset a19c6b3e0402 (bug 1482091)
2018-11-02 23:01:15 +02:00
Kris Maglione 4bd1fb01dd Bug 1482091: Part 1 - Add native TelemetryStopwatch implementation. r=chutten,mccr8
This implementation is considerably more memory efficient than the existing JS
implementation. Migrating to it fully saves us about 28K per base content
process.

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

--HG--
extra : rebase_source : f358f1f7097eaa8cd62ae916d048a58489e9f5ff
extra : histedit_source : c44c42de02750d71e23e70fdf22d3c3a40b91d3d
2018-10-26 13:17:55 -07:00
Boris Zbarsky 006e812485 Bug 1503664. Keep trying to pin down why ClearDocumentDependentSlots is crashing. r=mccr8 2018-10-31 20:25:35 -04:00
Andrew McCreight 137838b760 Bug 1500200 - Add non-default implementations of various ways to construct NonRefcountedDOMObject r=peterv
The Rule of Three means that a class with a non-default dtor should
also have a non-default copy constructor and copy assignment operator.
If the default versions of any of these constructors are used, then
you end up with negative leaks.

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

--HG--
extra : moz-landing-system : lando
2018-10-31 10:45:15 +00:00
Nika Layzell 84828b5af3 Bug 1501124 - Switch BackstagePass to use WebIDLGlobalNameHash, r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D9736
2018-10-25 10:24:36 -04:00
Nika Layzell 1ec79f98ec Bug 1500926 - Part 3: Remove unused WebIDL Codegen items, r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D9465
2018-10-24 20:11:01 -04:00
Nika Layzell 65b231b95c Bug 1500926 - Part 2: Support a test-only edgecase in Codegen.py, r=bzbarsky
When running tests, we can build a WebIDL environment with no interfaces
exposed on the primary global. Unfortunately, due to the perfecthash.py logic
not handling empty tables, this causes an assertion to be raised. 

We can work around this by generating some dummy code for that situation, as we
will never try to build it.

Differential Revision: https://phabricator.services.mozilla.com/D9407
2018-10-24 20:11:01 -04:00
Nika Layzell 23c990d165 Bug 1500926 - Part 1: Use a statically generated perfect hash in WebIDLGlobalNameHash, r=bzbarsky
This strategy allows us to dodge dynamic allocations in WebIDLGlobalNameHash.
This removes the Init() and Shutdown() methods, as well as Register. The
RegisterBindings.cpp file now only contains static data and one method
declaration for the WebIDLGlobalNameHash class.

This should also be faster by making the hashtable lookup infallible.

Differential Revision: https://phabricator.services.mozilla.com/D9406
2018-10-24 20:11:01 -04:00
Mark Banner a26105ff45 Bug 1501662 - Add more .eslintrc.js files for test directories (dom, modules, netwerk and parser). r=mossop
Differential Revision: https://phabricator.services.mozilla.com/D9661

--HG--
extra : moz-landing-system : lando
2018-10-24 19:11:17 +00:00
Boris Zbarsky e8f0c35cc3 Bug 1501479. Add instrumentation to figure out why Document.prototype creation is failing. r=mccr8 2018-10-24 02:00:49 +02:00
Andrea Marchesini 39a76c5462 Bug 1500733 - Remove ImageBitmap.mapDataInto, r=aosmond 2018-10-23 23:35:44 +02:00
Nika Layzell 4bf2b2ecb0 Bug 1489301 - Part 6: Remove references to 'System' from WebIDL.py, r=bzbarsky
'Exposed=System' is no longer used in any webidl files, so we can kill it.

Differential Revision: https://phabricator.services.mozilla.com/D9401
2018-10-23 16:03:52 -04:00
Nika Layzell 91ec325721 Bug 1489301 - Part 1: Expose Window interfaces on System by default, r=bzbarsky
This is done by adding BackstagePass the exposure set of Window.

Differential Revision: https://phabricator.services.mozilla.com/D9398
2018-10-23 16:03:50 -04:00
Daniel Varga 5255e1718f Backed out 6 changesets (bug 1489301) for Linting opt failure at /builds/worker/checkouts/gecko/dom/bindings/parser/WebIDL.py
Backed out changeset 1c0823540b44 (bug 1489301)
Backed out changeset 529524df76a6 (bug 1489301)
Backed out changeset f34bc8a40bec (bug 1489301)
Backed out changeset 168cf9cea716 (bug 1489301)
Backed out changeset 19ca10fa3772 (bug 1489301)
Backed out changeset ff8fb091198e (bug 1489301)
2018-10-23 03:49:00 +03:00
Nika Layzell b4cc020355 Bug 1489301 - Part 6: Remove references to 'System' from WebIDL.py, r=bzbarsky
'Exposed=System' is no longer used in any webidl files, so we can kill it.

Differential Revision: https://phabricator.services.mozilla.com/D9401
2018-10-22 20:17:14 -04:00
Nika Layzell cc852930f1 Bug 1489301 - Part 1: Expose Window interfaces on System by default, r=bzbarsky
This is done by adding BackstagePass the exposure set of Window.

Differential Revision: https://phabricator.services.mozilla.com/D9398
2018-10-22 20:12:55 -04:00
Boris Zbarsky 5a0e236dba Bug 1497301 part 4. Simplify Location::CheckURL. r=bholley
The main change is to just use the principal bindings pass us to do our
CheckLoadURI check.  If we do that, we don't have to care about the current
JSContext.
2018-10-12 11:07:18 -04:00
Noemi Erli a52231df87 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-10-16 01:22:27 +03:00
Bogdan Tara 48993ddce1 Backed out 2 changesets (bug 1497301) for /url/failure.html failures CLOSED TREE
Backed out changeset 45ba0943d666 (bug 1497301)
Backed out changeset 0bd7470927d2 (bug 1497301)
2018-10-16 00:30:00 +03:00
Andreas Pehrson 7561a1fdef Bug 1258143 - Remove LocalMediaStream. r=jib,smaug
Differential Revision: https://phabricator.services.mozilla.com/D8064

--HG--
extra : moz-landing-system : lando
2018-10-15 08:17:07 +00:00
Boris Zbarsky bf4550903b Bug 1499150. Add some more ClearDocumentDependentSlots crash instrumentation. r=mccr8 2018-10-15 14:40:14 -04:00
Boris Zbarsky 6071f7bc07 Bug 1497301 part 4. Simplify Location::CheckURL. r=bholley
The main change is to just use the principal bindings pass us to do our
CheckLoadURI check.  If we do that, we don't have to care about the current
JSContext.
2018-10-12 11:07:18 -04:00
Bogdan Tara db185e5d31 Backed out 2 changesets (bug 1258143) for dom/media/tests/crashtests/791330.html failures CLOSED TREE
Backed out changeset 514420f15a67 (bug 1258143)
Backed out changeset 905c871bcf03 (bug 1258143)
2018-10-12 17:42:26 +03:00
Andreas Pehrson ecdb48777f Bug 1258143 - Remove LocalMediaStream. r=jib,smaug
Differential Revision: https://phabricator.services.mozilla.com/D8064

--HG--
extra : moz-landing-system : lando
2018-10-11 12:43:34 +00:00
Andreas Pehrson f5f6f6fdb4 Bug 1377146 - Remove AudioStreamTrack and VideoStreamTrack from js. r=jib,smaug
Differential Revision: https://phabricator.services.mozilla.com/D8063

--HG--
extra : moz-landing-system : lando
2018-10-11 15:36:11 +00:00
Andrew McCreight 53217795fe Bug 1493237 - Use a test-only non-nsISupports wrapper cached WebIDL class in a weak map test r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D8134

--HG--
extra : moz-landing-system : lando
2018-10-11 23:02:10 +00:00
Jeff Gilbert dd4766f2a3 Bug 1494809 - Remove WebGL ATC support. - r=kvark,qdot
The WG rejected this extension.


--HG--
rename : dom/canvas/test/webgl-mochitest/ensure-exts/test_WEBGL_compressed_texture_es3.html => dom/canvas/test/webgl-mochitest/ensure-exts/test_WEBGL_compressed_texture_etc.html
2018-10-10 18:13:14 -07:00
Jeff Gilbert f7941731a5 Bug 1494809 - Support WebGL exts for BPTC and RGTC. - r=kvark,qdot 2018-10-10 18:13:11 -07:00
Coroiu Cristina 9a1a60c7fb Backed out 7 changesets (bug 1494809) for build bustage at build/src/dom/canvas/WebGLTextureUpload.cpp on a CLOSED TREE
Backed out changeset 89e092c992ae (bug 1494809)
Backed out changeset 076aed819da6 (bug 1494809)
Backed out changeset 101b4c98aad8 (bug 1494809)
Backed out changeset a2612f006753 (bug 1494809)
Backed out changeset be2ec3c05d10 (bug 1494809)
Backed out changeset 6106836daf58 (bug 1494809)
Backed out changeset e98c2a51aa8f (bug 1494809)

--HG--
rename : dom/canvas/test/webgl-mochitest/ensure-exts/test_WEBGL_compressed_texture_etc.html => dom/canvas/test/webgl-mochitest/ensure-exts/test_WEBGL_compressed_texture_es3.html
2018-10-10 08:15:09 +03:00
Jeff Gilbert 1e459429ff Bug 1494809 - Remove WebGL ATC support. - r=kvark,qdot
The WG rejected this extension.


--HG--
rename : dom/canvas/test/webgl-mochitest/ensure-exts/test_WEBGL_compressed_texture_es3.html => dom/canvas/test/webgl-mochitest/ensure-exts/test_WEBGL_compressed_texture_etc.html
2018-10-09 21:39:17 -07:00
Jeff Gilbert 3cbaf8002c Bug 1494809 - Support WebGL exts for BPTC and RGTC. - r=kvark,qdot 2018-10-09 21:39:14 -07:00
Masayuki Nakano 06267cb849 Bug 1479964 - Set KeyboardEvent.keyCode and KeyboardEvent.charCode to same value if the event is "keypress" event r=smaug
Chrome sets both KeyboardEvent.keyCode and KeyboardEvent.charCode of "keypress"
event to same value.  On the other hand, our traditional behavior is, sets
one of them to 0.

Therefore, we need to set keyCode value to charCode value if the keypress
event is caused by a non-function key, i.e., it may be a printable key with
specific modifier state and/or different keyboard layout for compatibility
with Chrome.  Similarly, we need to set charCode value to keyCode value if
the keypress event is caused by a function key which is not mapped to producing
a character.

Note that this hack is for compatibility with Chrome.  So, for now, it's enough
to change the behavior only for "keypress" event handlers in web content.  If
we completely change the behavior, we need to fix a lot of default handlers
and mochitests too.  However, it's really difficult because default handlers
check whether keypress events are printable or not with following code:

> if (event.charCode &&
>     !event.altKey && !event.ctrlKey && !event.metaKey) {

or

> if (!event.keyCode &&
>     !event.altKey && !event.ctrlKey && !event.metaKey) {

So, until we stop dispatching "keypress" events for non-printable keys,
we need complicated check in each of them.

And also note that this patch changes the behavior of KeyboardEvent::KeyCode()
when spoofing is enabled and the instance is initialized by initKeyEvent() or
initKeyboardEvent().  That was changed by bug 1222285 unexpectedly and keeping
the behavior makes patched code really ugly.  Therefore, this takes back the
old behavior even if spoofing is enabled.

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

--HG--
extra : moz-landing-system : lando
2018-10-09 04:43:37 +00:00
Arnaud Bienner bb6b29da9d Bug 1473467: implement AudioWorkletGlobalScope::RegisterProcessor(). r=baku,karlt
Differential Revision: https://phabricator.services.mozilla.com/D6368

--HG--
extra : moz-landing-system : lando
2018-10-08 19:15:13 +00:00
Boris Zbarsky c7f7303059 Bug 1496805. Add some more instrumentation to try to pin down why ClearDocumentDependentSlots crashes. r=mccr8 2018-10-05 15:59:43 -04:00
Brian Hackett faaf9d447d Bug 1495272 Part 1 - Don't register deferred finalizer in BindingJSObjectCreator until initialization succeeds, r=bz.
--HG--
extra : rebase_source : 9824eee43c6c4b1949c2e2ad2168262bc4342b45
2018-10-03 15:03:02 -10:00
Jon Coppeard a9899af8b1 Bug 1490009 - Clear CallbackObject fields after use for promise job to avoid tenuring objects unnecessarily r=bz 2018-09-20 13:28:59 +01:00
Andrea Marchesini 4be054a731 Bug 1390801 - FeaturePolicy - part 2 - WebIDL + DOM integration, r=ckerschb 2018-10-01 08:09:44 +02:00
Alexander Surkov bdd3f4e880 Bug 1494230 - replace #text-base binding by webidl control, r=smaug 2018-10-01 11:37:39 +08:00
arthur.iakab f0410f8d4b Merge mozilla-central to mozilla-inbound 2018-09-29 01:00:35 +03:00
Boris Zbarsky 7d6b9e16ef Bug 1396482 part 2. Enumerate JS standard classes on Window Xrays, just like we enumerateWebIDL interfaces. r=bholley 2018-09-28 10:49:44 -04:00
Andreea Pavel b49640be9b Backed out 2 changesets (bug 1396482) for failing dom/tests/mochitest/general/test_interfaces.html on a CLOSED TREE
Backed out changeset 8c9b27320d6e (bug 1396482)
Backed out changeset c23086c12393 (bug 1396482)
2018-09-28 19:45:27 +03:00
Boris Zbarsky 918ee28a32 Bug 1396482 part 2. Enumerate JS standard classes on Window Xrays, just like we enumerateWebIDL interfaces. r=bholley 2018-09-28 10:49:44 -04:00
Andrew McCreight 2fb1f43e47 Bug 1491122 - Fix GetCCParticipant comment r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D5889

--HG--
extra : moz-landing-system : lando
2018-09-28 09:28:02 +00:00
Coroiu Cristina 8f256026f1 Merge mozilla-central to autoland a=merge ona CLOSED TREE 2018-09-28 00:41:04 +03:00
Emilio Cobos Álvarez d8c0080a10 Bug 1493222 - Expose InspectorUtils to fuzzers. r=bzbarsky
I can be more granular if we want, by adding more ChromeOnly annotations for the
functions that we don't want to expose.

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

--HG--
extra : moz-landing-system : lando
2018-09-27 19:00:33 +00:00
Boris Zbarsky 17e28d0bbc Bug 1368949. Stop automatically giving dictionary-typed members of dictionaries a default value of null. r=qdot 2018-09-25 18:09:30 -04:00
Boris Zbarsky 4cdbc6f15a Backed out changeset 1b9fcdd5dd97 (bug 1368949) because more code got added that doesn't build with it. 2018-09-25 18:14:39 -04:00
Boris Zbarsky eac9eeafe2 Bug 1368949. Stop automatically giving dictionary-typed members of dictionaries a default value of null. r=qdot 2018-09-25 18:09:30 -04:00
Ciure Andrei ce57be88b8 Merge inbound to mozilla-central. a=merge 2018-09-26 00:49:06 +03:00
Boris Zbarsky a6e3c61c96 Bug 1493849 part 2. Add instrumentation to nsIDocument::WrapObject to figure out why it fails sometimes. r=mccr8 2018-09-25 13:35:07 -04:00
Boris Zbarsky f1812532b6 Bug 1493849 part 1. Back out the instrumentation added in bug 1491313. r=mccr8 2018-09-25 13:34:59 -04:00
Jason Orendorff aaf539046b Bug 1491939 - Part 3: Centralize configuration of JS realm options from prefs. r=baku
Depends on D6554

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

--HG--
extra : moz-landing-system : lando
2018-09-25 14:11:13 +00:00
Mike Hommey b487ebbc58 Bug 1493093 - Allow to relax MOZ_NON_TEMPORARY_CLASS for some specific constructors r=andi
Differential Revision: https://phabricator.services.mozilla.com/D6566

--HG--
extra : moz-landing-system : lando
2018-09-24 22:47:12 +00:00
shindli 87009004b2 Backed out changeset 58f0722012cd (bug 1475415) for force-cargo-library-build bustages CLOSED TREE 2018-09-24 19:37:49 +03:00
Tristan Bourvon 4db0a2f5a0 Bug 1475415 - Add first version of IPDL-JS API r=mrbkap,mccr8
Add the first version of the IPDL-JS API, which allow chrome JS to load IPDL files and use them to communicate accross Content processes.
See IPDLProtocol.h for more information regarding how to use the API.

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

--HG--
rename : ipc/moz.build => ipc/ipdl_new/moz.build
extra : moz-landing-system : lando
2018-09-24 14:13:20 +00:00
Bogdan Tara 374dd2c7c2 Merge autoland to mozilla-central. a=merge 2018-09-22 00:58:22 +03:00
Ryan VanderMeulen 84601ca6bf Backed out changeset c173cb530f63 (bug 1490009) for violating invariants. 2018-09-21 15:08:40 -04:00
Andrew McCreight fee317ab0d Bug 1351501, part 2 - Preserve wrappers for non-nsISupports cycle collected weak map keys r=bzbarsky
A C++ object that is exposed to JS can have its reflector used as a
key in a weak map. Because a weak map does not keep its keys alive,
this means that the reflector can be discarded if it has no other
references aside from the C++ object, which will in turn remove its
weak map entry. If the C++ object can be accessed again later from JS,
it will get a new reflector which will have no weak map entry. This is
bad because it means some internal implementation detail has resulted
in data loss that is visible to JS. (Side note: this is also an issue
for cross compartment wrappers, which is handled by another
mechanism.)

To fix this, we can preserve the wrapper of any DOM reflector used as
a weak map key. This ensures that the reflector and its C++ object
have the same lifetime. If a WebIDL object is not wrapper cached, that
means that it cannot be accessed via C++, so we don't need to preserve
the wrapper. This is currently implemented for nsISupports classes,
but not other classes. For non-nsISupports classes, it would throw an
error rather than silently fail.

My patch adds support for non-nsISupports cycle collected objects. It
turns out that the existing addProperty hook just does wrapper
preservation, so we just call it for cycle collected classes. This
does mean that if addProperty changes in the future to do something
else, this code will need to be changed.

I verified that this test fails if TryPreserveWrapper is changed to do
nothing besides return true in the non-nsISuports case.

Depends on D6197

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

--HG--
extra : moz-landing-system : lando
2018-09-21 18:20:35 +00:00
Andrew McCreight 2abe1a8480 Bug 1351501, part 1 - Handlify TryPreserveWrapper r=bzbarsky
The patch in the next part will need a handle to the object in
TryPreserveWrapper.

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

--HG--
extra : moz-landing-system : lando
2018-09-21 18:20:33 +00:00
Boris Zbarsky 5ef7ee022c Bug 1132934. Make Web IDL bindings enforce that void methods they call (including setters) actually have void as a return type. r=smaug
MozReview-Commit-ID: 7kJ3CqB9fCN
2018-09-27 13:46:26 -04:00
Steve Fink 1554c31d8c Bug 1487167 - Various DOM rooting issues. r=bz
--HG--
extra : amend_source : dc5bf09193860ac7a3f01071132284ed10423e97
2018-08-28 21:26:50 -07:00
Jon Coppeard 27f15e7950 Bug 1490009 - Clear CallbackObject fields after use for promise job to avoid tenuring objects unnecessarily r=mccr8 2018-09-20 13:28:59 +01:00
Emma Malysz 696ceb303f Bug 1465219, use XULMenuElement, a subclass of nsXULElement, instead of MenuBoxObject for menu and menulist elements, r=paolo,bz
MozReview-Commit-ID: 5253hAlxbhw

--HG--
rename : dom/webidl/MenuBoxObject.webidl => dom/chrome-webidl/XULMenuElement.webidl
rename : layout/xul/MenuBoxObject.cpp => dom/xul/XULMenuElement.cpp
rename : layout/xul/MenuBoxObject.h => dom/xul/XULMenuElement.h
2018-07-31 12:30:17 -07:00
Boris Zbarsky 8e04fc97a0 Bug 1491313. Add some MOZ_CRASH instrumentation to help figure out why ClearDocumentDependentSlots hits its MOZ_CRASH case. r=mccr8
We need the isDOMClass() checks in the Compartment code to pass tests, because
some of the jsapi tests explicitly test those failure codepaths.  But not with
DOM objects, which is what we're interested in here.

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

--HG--
extra : moz-landing-system : lando
2018-09-18 02:31:03 +00:00
Dorel Luca 0939a6b3fa Backed out changeset 9205d38f866c (bug 1491313) for causing crashtests to fail. CLOSED TREE 2018-09-17 23:19:52 +03:00
Boris Zbarsky 86444e4616 Bug 1491313. Add some MOZ_CRASH instrumentation to help figure out why ClearDocumentDependentSlots hits its MOZ_CRASH case. r=jandem,mccr8
We need the isDOMClass() checks in the Compartment code to pass tests, because
some of the jsapi tests explicitly test those failure codepaths.  But not with
DOM objects, which is what we're interested in here.

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

--HG--
extra : moz-landing-system : lando
2018-09-17 18:57:08 +00:00
Jan de Mooij cb90b553cd Bug 1487032 - Store origin/site info in CompartmentPrivate. r=bholley
This will let us answer the following questions (in a performant way):

1) What's the compartment's origin? Necessary to implement compartment-per-origin.
2) What's the origin's site? Necessary for the new Wrap() algorithm.
3) Has any realm in the compartment set document.domain? Necessary for the new Wrap() algorithm.

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

--HG--
extra : moz-landing-system : lando
2018-09-11 09:01:14 +00:00
Cosmin Sabou 679b5e2db1 Backed out 5 changesets (bug 1485040) for causing build bustages on test_mozwebidlcodegen. CLOSED TREE
Backed out changeset b417c2d937e8 (bug 1485040)
Backed out changeset c567c4c7438f (bug 1485040)
Backed out changeset 806c36cb2c4c (bug 1485040)
Backed out changeset 0fbb490ffc7f (bug 1485040)
Backed out changeset a9622e7761eb (bug 1485040)
2018-09-13 23:04:55 +03:00
Andrew McCreight 93b3b0138c Bug 1485040, part 5 - Automatically fix mode lines in WebIDL files r=qdot
This patch was generated by my modeline.py script.

MozReview-Commit-ID: EbVjPLwiUAT

Depends on D4159

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

--HG--
extra : moz-landing-system : lando
2018-09-13 19:30:51 +00:00
Andrew McCreight a67f84df8d Bug 1485040, part 4 - Add mode lines, but not the MPL, to some test files r=qdot
MozReview-Commit-ID: 8X4XDj3JOpe

Depends on D4158

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

--HG--
extra : moz-landing-system : lando
2018-09-13 19:30:49 +00:00
Sylvestre Ledru aa37bde79b Bug 1489454 - Remove all trailing whitespaces (again) r=Ehsan
This also includes moving some files to the regular format.

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

--HG--
extra : moz-landing-system : lando
2018-09-07 14:47:51 +00:00
Nicholas Nethercote 563171857f Bug 1488628 - Change nsIConsoleMessage.message to an AString. r=erahm
--HG--
extra : rebase_source : e43aec79e309936e17d475b8c50559767538c18d
2018-09-05 13:31:42 +10:00
André Bargull ed962c63e5 Bug 1485066 - Part 8: Rename JS_EncodeString to JS_EncodeStringToLatin1. r=Waldo 2018-09-05 06:05:03 -07:00
André Bargull e4d1d98f88 Bug 1485066 - Part 1: Remove JSAutoByteString. r=Waldo 2018-09-05 02:25:42 -07:00
Manish Goregaokar 840d8ad007 Bug 1487963 - Throw when setting PannerNode parameters out of limits; r=padenot,baku
Differential Revision: https://phabricator.services.mozilla.com/D4817

--HG--
extra : moz-landing-system : lando
2018-09-05 12:30:28 +00:00
Bogdan Tara f302cbb0b3 Merge inbound to mozilla-central. a=merge 2018-09-05 02:24:27 +03:00
Paul Adenot 8c1deadfbf Bug 1488242 - Throw the correct error type in {ConstantSourceNode,AudioBufferSourceNode}.{Start,Stop}. r=karlt
Differential Revision: https://phabricator.services.mozilla.com/D4881

--HG--
extra : moz-landing-system : lando
2018-09-04 13:50:15 +00:00
Edgar Chen 0773815846 Bug 1487343 - Correct set the prefix for an autonomous custom element; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D4871

--HG--
extra : moz-landing-system : lando
2018-09-03 22:13:35 +00:00
Jon Coppeard 2b37d7089c Bug 1481844 - Clear expando for objects with an ExpandoAndGeneration before wrapping r=bz a=abillings 2018-09-03 10:46:39 +01:00
Paul Adenot c9104891cb Bug 1308436 - Rework the AudioParam event insertion algorithm to be spec compliant, and fix the exception types and values. r=karlt
--HG--
extra : rebase_source : 48227c953316a45c81be3ed39366133096de43a9
2018-09-04 14:44:03 +02:00
Paul Adenot 952bbf4613 Backout all patches of bug 1308436, wrong patches have landed.
--HG--
extra : rebase_source : 0ad64a5fbbeeedc1015218c6a27a03cfaf972aa7
2018-09-04 14:42:34 +02:00
Paul Adenot 83a34955ff Bug 1308436 - Rework the AudioParam event insertion algorithm to be spec compliant, and fix the exception types and values. r=karlt
Differential Revision: https://phabricator.services.mozilla.com/D4099

--HG--
extra : rebase_source : 544851135e077877e17361d8ea849090793c6509
extra : histedit_source : 94ab8b3f17f3cf38c8eca897b436e9172977ac66
2018-08-22 18:46:50 +02:00
Boris Zbarsky 4c0adfa061 Bug 1481927. Always pass an object from the "relevant global" to Web IDL APIs that have a non-wrapper-cached "this". r=bholley
Differential Revision: https://phabricator.services.mozilla.com/D4491

--HG--
extra : moz-landing-system : lando
2018-08-29 03:03:46 +00:00
Robert Helmer 10b80b68fe bug 1485946 - skip building libprio on MSVC r=froydnj
libprio does not currently build with MSVC (since it only supports
C90 as a compiler), this is being worked on upstream at https://github.com/mozilla/libprio/issues/17

As we are almost certainly not going to ship Firefox build with MSVC anymore,
let's disable this to get it working on this Tier-2 platform.

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

--HG--
extra : moz-landing-system : lando
2018-08-27 20:07:51 +00:00
Narcis Beleuzu eec002c6df Backed out changeset df602a252b66 (bug 1485946) for Linting failure. CLOSED TREE 2018-08-27 21:41:38 +03:00
Robert Helmer 70e2c73f5a bug 1485946 - skip building libprio on MSVC r=froydnj
libprio does not currently build with MSVC (since it only supports
C90 as a compiler), this is being worked on upstream at https://github.com/mozilla/libprio/issues/17

As we are almost certainly not going to ship Firefox build with MSVC anymore,
let's disable this to get it working on this Tier-2 platform.

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

--HG--
extra : moz-landing-system : lando
2018-08-27 15:39:46 +00:00
Robert Helmer 3091853572 Bug 1421501 - WebIDL and DOM for PrioEncoder r=edgar,hsivonen
MozReview-Commit-ID: L8htRm3J1mZ

--HG--
extra : rebase_source : bba7f747583412677db1811400b86f1a335ef688
2018-06-20 17:21:17 -07:00
Cosmin Sabou 0bd06ad763 Backed out 7 changesets (bug 1421501) for causing build bustages. CLOSED TREE
Backed out changeset 492f05d220b1 (bug 1421501)
Backed out changeset 844232d77d0d (bug 1421501)
Backed out changeset 3affc66728b0 (bug 1421501)
Backed out changeset 4d7c3c02ce8d (bug 1421501)
Backed out changeset e27d93ac79a0 (bug 1421501)
Backed out changeset a6c9888b5179 (bug 1421501)
Backed out changeset f7f9e47f0608 (bug 1421501)
2018-08-23 22:46:07 +03:00
Robert Helmer fff0e34b0f Bug 1421501 - WebIDL and DOM for PrioEncoder r=edgar,hsivonen
MozReview-Commit-ID: L8htRm3J1mZ

--HG--
extra : rebase_source : 5fd5317ef8891f1f7659161904e53d2e085d5c5b
2018-06-20 17:21:17 -07:00
Gurzau Raul ac1914ecba Backed out 6 changesets (bug 1421501) for bustages on security/nss/lib/freebl/mpi/mp_comba.c on a CLOSED TREE
Backed out changeset cae4910806c7 (bug 1421501)
Backed out changeset 600a005d3613 (bug 1421501)
Backed out changeset 7381597721d2 (bug 1421501)
Backed out changeset 1ee0d35a041f (bug 1421501)
Backed out changeset 772dea1abb7f (bug 1421501)
Backed out changeset c119767aec7b (bug 1421501)
2018-08-23 17:13:42 +03:00
Robert Helmer b8233d3ae3 Bug 1421501 - WebIDL and DOM for PrioEncoder r=edgar,hsivonen
MozReview-Commit-ID: L8htRm3J1mZ

--HG--
extra : rebase_source : ca9ccac75cd575be12d18c71ae60dbffb7c529fa
2018-06-20 17:21:17 -07:00
Jeff Walden e4f79e2a19 Bug 1484421 - Move JSON-related functionality into js/public/JSON.h that isn't #include'd in jsapi.h. r=jandem 2018-08-20 07:54:45 -07:00
Jeff Walden ffd93ba761 Bug 1033916 - Move JSAutoByteString out of jsapi.h into js/public/AutoByteString.h, incidentally breaking the jsfriendapi.h -> jsapi.h dependency. r=jandem
--HG--
extra : rebase_source : d85baf9b28e632db5669aa3d056cc9744686f5c8
2018-08-20 07:46:08 -07:00
Jeff Walden 3e90595274 Bug 1484389 - Move various SavedFrame-related functions and data types into js/public/SavedFrameAPI.h so that users aren't forced to depend on jsapi.h or jsfriendapi.h for them. r=jandem
--HG--
extra : rebase_source : d891f81cb0827d3c03971f71ba95a014d1e35379
2018-08-20 07:45:44 -07:00
Jeff Walden cd10720691 Bug 1040316 - Move AutoStableStringChars out of friendapi into public API. r=jandem
--HG--
extra : rebase_source : 3f66710e9517aba203a3d5365f6c3f0102c7baf8
2018-08-20 07:44:44 -07:00
Tanushree Podder efd8c4f4fb Bug 1357785 - Expose the Visual Viewport API to web content. r=botond, r=nika
--HG--
extra : amend_source : 8e5fe3e3195dd82aef19a4c79df31e2048024c99
2018-08-20 16:28:42 -04:00
Jon Coppeard 06575221db Bug 1483487 - Fix static analysis bustage and add missing comments on a CLOSED TREE r=me 2018-08-20 11:13:33 +01:00
Jon Coppeard 9005410bc5 Bug 1483487 - Add asertions around creating and retrieving DOM proxy expando objects r=peterv 2018-08-20 10:12:35 +01:00
Henri Sivonen 3a52652295 Bug 1349528 - Use encoding_rs for normalizing USVString. r=smaug
MozReview-Commit-ID: 9uG6j8UdfKR

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

--HG--
extra : moz-landing-system : lando
2018-08-16 10:15:07 +00:00
Timothy Guan-tin Chien dab48182aa Bug 1431255 - Part V, Set the reflectors of the UA Widget DOM to UA Widget Scope r=bholley
The DOM elements within the UA Widget Shadow DOM should have its reflectors in
the UA Widget Scope. This is done by calling nsINode::IsInUAWidget() which
would check its containing shadow and its UA Widget bit.

To prevent JS access of the DOM element before it is in the
UA Widget Shadom DOM tree, various DOM methods are set to inaccessible to
UA Widget script. It would need to use the two special methods in ShadowRoot
instead to insert the DOM directly into the shadow tree.

MozReview-Commit-ID: Jz9iCaVIoij

--HG--
extra : rebase_source : b7b17be68dcde00cfeb207cb39cf16b486f2ab02
2018-06-29 13:39:46 -07:00
Dave Townsend fd8d6b1590 Bug 1480465: Infer the namespace for custom elements at definition time by following the class hierarchy. r=smaug
When a custom element is defined we can check whether its class is an instance
of XULElement or HTMLElement and tag the defintion with a namespace accordingly.
This allows us to know the correct namespace for the custom element when
created.

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

--HG--
extra : moz-landing-system : lando
2018-08-15 10:31:16 +00:00
Kris Maglione 6b594aefe4 Bug 1480244: Part 1b - Rename nsInProcessTabChildGlobal to InProcessTabChildMessageManager. r=bz
MozReview-Commit-ID: GgleVt1tXTG

--HG--
rename : dom/base/nsInProcessTabChildGlobal.cpp => dom/base/InProcessTabChildMessageManager.cpp
rename : dom/base/nsInProcessTabChildGlobal.h => dom/base/InProcessTabChildMessageManager.h
extra : rebase_source : c0a595cb31c98952e9586830c8d1cee9f9d4c62b
2018-08-10 14:08:07 -07:00
Kris Maglione ee36f9afd8 Bug 1480244: Part 1a - Rename ProcessGlobal to ContentProcessMessageManager. r=bz
After these patches, these objects will no longer be globals, which would make
their current names misleading. Parts 1a-1c give more appropriate names to the
bindings which will cease to be globals.

MozReview-Commit-ID: L8GolQaHnO5

--HG--
rename : dom/base/ProcessGlobal.cpp => dom/base/ContentProcessMessageManager.cpp
rename : dom/base/ProcessGlobal.h => dom/base/ContentProcessMessageManager.h
extra : rebase_source : c5db43ff4f56bc27c869a8051c8d2c000b3fe287
2018-08-02 15:03:50 -07:00
Kris Maglione 672f5e6524 Bug 1472491: Part 2b - Add MozDocumentObserver class to notify on new pattern-matched documents. r=zombie
MozReview-Commit-ID: 29CsJ2mya36

--HG--
extra : rebase_source : 08d419d7ba9516c0c1831c53ec1fa23b738eb777
extra : source : 52562e8d57a8d2973cfaca9c350b6727996df39f
2018-07-31 21:50:34 -07:00
Kris Maglione cdd41d5705 Bug 1472491: Part 2a - Split matching logic for content scripts into MozDocumentMatcher base class. r=zombie
MozReview-Commit-ID: JAOWZcB4hZW

--HG--
extra : rebase_source : 35847d616bd2f04f1d82788f76649b8acb5c1090
extra : source : 466c39fc8af5170ea39d19d6d7aa13b8fe5cd838
2018-04-18 14:02:15 -07:00
Boris Zbarsky 4af64d8709 Bug 1479793. Throw when someone tries to define an accessor property with an integer name on a DOM proxy with an indexed setter. r=qdot,jorendorff
Differential Revision: https://phabricator.services.mozilla.com/D2571

--HG--
extra : moz-landing-system : lando
2018-08-10 17:04:58 +00:00
Himanshu Teli aaafbca72c Bug 1462537. Add WebIDL parser tests for the concept of JSON type. r=bzbarsky 2018-08-09 18:41:55 +05:30
Jan de Mooij 2c9cefda61 Bug 1480678 part 11 - Wrap the typed array in the current compartment instead of entering its realm in WriteStructuredCloneImageData. r=bz
This is also better security-wise: if we're writing the structured clone in some compartment that shouldn't have access to the underlying data of the ImageData, we shouldn't be giving that access here.
2018-08-09 10:48:29 +02:00
Neil Deakin 752b1696e5 Bug 1473026, remove the now unused selectionRegion from TreeBoxObject, r=paolo,bz 2018-08-07 09:32:07 -04:00
Olli Pettay b89a51dc36 Bug 1451172, fallback to current global in FindAssociatedGlobal when nsIGlobalObject doesn't have JS object anymore, r=bz
--HG--
extra : rebase_source : f5c520bd4019e6a8b940307355c68135e7e0cb9c
2018-08-08 09:07:47 +03:00
Jan de Mooij 4af62d6c9e Bug 1480678 part 7 - Use CallbackObject's callback global for realm entering in more places. r=bz 2018-08-07 14:06:44 +02:00
Jan de Mooij 5824a03a39 Bug 1478359 - Store a global object in nsXPCWrappedJS and use it for realm-entering. r=mccr8
The problem we're solving here: getting/entering the realm/global of a cross-compartment wrapper doesn't make sense once there are multiple realms in a compartment and the CCW will be shared by all of them. Because nsXPCWrappedJS can store a CCW, we will no longer be able to use this JSObject to enter the target realm.

What this patch does: we pass a JSContext* to nsXPCWrappedJS::GetNewOrUsed and we use this to store a global object in nsXPCWrappedJS (with the invariant that the object and global stored in nsXPCWrappedJS are same-compartment). Then when we want to enter the nsXPCWrappedJS's target realm, we use this global object instead of the maybe-CCW object. Because we currently still have one realm per compartment and the objects are same-compartment, this is guaranteed to preserve behavior for now.

nsXPCWrappedJS has some code to deal with weak pointers. Fortunately this applies only to root wrappers and root wrappers always store an unwrapped JSObject, so the extra global we store is guaranteed to be marked by the GC in that case (a global object is never collected when there are live JSObjects belonging to the same realm).
2018-08-07 11:57:41 +02:00
Brian Hackett 8eb62dd065 Bug 1479058 Part 8 - Store time warp target on nsIScriptError, r=smaug.
--HG--
extra : rebase_source : 1faf5a0c0ead57f5dfb24c7450873977bf41a022
2018-08-02 23:31:29 +00:00
Jan de Mooij e4ef338836 Bug 1480678 part 5 - Use nsScriptErrorWithStack's stack global in ConsoleListener::Observe. r=bz 2018-08-04 15:30:40 +02:00
Jan de Mooij ff502e7cc6 Bug 1480678 part 4 - Use current global as conversion scope in the Xray case when wrapping the return value in generated bindings. r=bz 2018-08-04 15:30:40 +02:00
Boris Zbarsky f771d7e529 Bug 1477923. Make WebIDL callbacks store a global in addition to the object that's used as a callback. r=mccr8
We want to be able to enter the Realm we were in when the callback was created
before calling it, but if the callback stores a cross-compartment wrapper we
don't really have a good way to find that Realm.  So we store it explicitly by
storing a global when the callback is created.

The changes to the constructor signatures to use JSObject* instead of
JS::Handle<JSObject*> are so we can avoid having to root the global for these
calls.  These changes make two of the constructors ambiguous when nullptr is
being passed for the first arg; this patch adds casts to disambiguate.
2018-08-03 17:11:39 -04:00
Narcis Beleuzu 4684ccf98e Merge inbound to mozilla-central. a=merge 2018-08-03 01:28:14 +03:00
Brian Hackett 9c328e6212 Bug 1479644 - Don't clear wrapper cache during finalization when replaying, r=bz.
--HG--
extra : rebase_source : 1669ac527632cb282f7fba4db76572a5c1c166c7
2018-07-31 19:28:39 +00:00
Dave Townsend 0f27a04f08 Bug 1480195: Allow writing custom element definitions for the special XUL elements. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D2430

--HG--
extra : moz-landing-system : lando
2018-08-02 14:49:04 +00:00
Jan de Mooij b79494e142 Bug 1479363 part 2 - Use JSAutoRealm instead of JSAutoRealmAllowCCW in dom/bindings. r=bz 2018-08-02 08:48:50 +02:00
Jan de Mooij 84036b8de4 Bug 1474272 part 4 - Stop using js::GetGlobalForObjectCrossCompartment in xpc::NativeGlobal. r=bholley 2018-08-01 11:25:50 +02:00
Jan de Mooij 47c842b8ff Bug 1474272 part 1 - Remove unused WrappedJSToDictionary. r=bz 2018-08-01 11:25:49 +02:00
Anny Gakhokidze 469c8c4a94 Bug 1461465 - Implement async Clipboard APIs, r=nika,r=enndeakin
MozReview-Commit-ID: 3vCxbaGZtiv
2018-07-31 13:13:02 -04:00
Jan de Mooij 6e34ef61c4 Bug 1478955 part 4 - Use JSAutoRealm in Codegen.py in a few places. r=bz 2018-07-28 12:16:12 +02:00
Jan de Mooij 80adc67aba Bug 1478955 part 1 - Rename JSAutoRealm to JSAutoRealmAllowCCW. r=luke 2018-07-28 12:12:26 +02:00
Boris Zbarsky 057c310979 Bug 1478890. Stop using ToXPCOMCallback in GetUserMedia code. r=jib
We don't want to expose nsXPCWrappedJS to the web, and this code is doing that.
2018-07-28 00:40:26 -04:00
Jeff Gilbert 0e128a3868 Bug 1470985 - s/PodEqual/ArrayEqual/ from ArrayUtils.h. - r=waldo
We can't use memcmp to compare PODs, largely because of undefined
padding. The rest of the Pod* functions are fine though, since we're
replicating or zeroing PODs.

MozReview-Commit-ID: LSspAi8qCWw
2018-07-27 14:11:18 -07:00
Boris Zbarsky 575eb424f0 Bug 1476145 part 1. Add a getter to get the nsIDOMWindowUtils from a window. r=nika
The new attribute is not [Cached] because we would need to bump
JSCLASS_GLOBAL_APPLICATION_SLOTS for that and it's not obvious that we should do
that.
2018-07-24 19:47:40 -04:00
Brian Hackett 52b33afe4e Bug 1207696 Part 7 - Ensure deterministic interaction of GC with CC and object references, r=smaug.
--HG--
extra : rebase_source : 5d9e7ebd1dc242ca648193ed1f27ae91d19006de
2018-07-23 14:46:37 +00:00
Boris Zbarsky 558221f121 Bug 1476136. "JSON type" determination for IDL dictionaries should look at inherited dictionary members too. r=qdot 2018-07-23 16:33:31 -04:00
Brindusan Cristian dcbbf37b84 Backed out changeset 7b42110e827b (bug 1461465) for android mochitest failures on test_ext_async_clipboard.html. CLOSED TREE 2018-07-23 22:11:26 +03:00
Anny Gakhokidze 05520e664b Bug 1461465 - Implement async Clipboard APIs, r=nika,enndeakin
MozReview-Commit-ID: 3vCxbaGZtiv
2018-07-23 13:41:07 -04:00
Cosmin Sabou 3144e04a98 Backed out changeset 86bce8df5152 (bug 1461465) for build bustages on dom/Clipboard.h. CLOSED TREE 2018-07-23 19:16:37 +03:00
Anny Gakhokidze 2e0358b999 Bug 1461465 - Part 1: Implement async Clipboard APIs, r=nika,enndeakin
MozReview-Commit-ID: 3vCxbaGZtiv
2018-07-23 11:59:13 -04:00
Jan de Mooij 30d5135f62 Bug 1475559 part 6 - Add principals argument to SavedFrame APIs and do frame filtering based on it. r=bz
This removes AutoMaybeEnterFrameRealm. Most places pass cx->realm->principals: it preserves behavior when the (possibly wrapped) SavedFrame and cx are same-compartment. The main exception is the JSStackFrame DOM bindings code where we have to be a bit smarter about which principals to use.
2018-07-21 14:34:58 +02:00
Jan de Mooij 8c93c6e9e8 Bug 1475559 part 5 - Pass a global object to nsScriptErrorWithStack. r=bz
The stack object might be a CCW and we want to make it impossible to get a CCW's global. Now the caller has to supply a same-compartment global object, so we no longer rely on getting the CCW's global.
2018-07-21 14:34:37 +02:00
Jan de Mooij 3536a9cbcb Bug 1475559 part 3 - Add JS::IsUnwrappedSavedFrame and assert this in JSStackFrame's constructor. r=bz 2018-07-21 14:33:22 +02:00
Kris Maglione 72ae1375d1 Bug 1472342: Part 1 - Properly support iterator getters which need JSContexts. r=bz
The IterableIterator helper currently only supports iterator methods which
return types which are supported by ToJSValue, but do not need a JSContext* to
construct them. That means that getters which need to return native JS objects
or values can't do so safely, or without resorting to hacks.

This patch adds templated helpers which will call a JSContext-accepting,
JS::Value-returning version of the getter methods if they exist, and fall back
to the simpler versions if they don't.

MozReview-Commit-ID: hedZOc3lqR

--HG--
extra : rebase_source : b92cdc3900b3c9bee41836af4d4b9f4e65f3d5f6
2018-07-18 13:09:04 -07:00
Andrea Marchesini a053cf1c15 Bug 1476306 - Moving NullPrincipal/ContentPrincipal/SystemPrincipal under mozilla namespace - part 1 - NullPrincipal, r=ckerschb 2018-07-17 21:37:48 +02:00
Csoregi Natalia b220f0c0d3 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-07-14 12:45:25 +03:00
Andi-Bogdan Postelnicu 6ab86028d3 Bug 1475515 - Remove member initialization for union Extra::mMessage. r=bz
MozReview-Commit-ID: GgJyXg5KxQm

--HG--
extra : rebase_source : 4a0e0137c1545b96aab9c436c42274db1c393a0a
2018-07-13 14:39:12 +03:00
Margareta Eliza Balazs 448f792f96 Merge inbound to mozilla-central. a=merge 2018-07-13 11:52:00 +03:00
Andreea Pavel 10f6df7c1f Merge mozilla-central to autoland. a=merge on a CLOSED TREE
--HG--
rename : dom/webidl/ScrollBoxObject.webidl => dom/chrome-webidl/XULScrollElement.webidl
rename : layout/xul/ScrollBoxObject.cpp => dom/xul/XULScrollElement.cpp
rename : layout/xul/ScrollBoxObject.h => dom/xul/XULScrollElement.h
2018-07-13 00:53:43 +03:00
Emma Malysz ce8c74748f Bug 1454358, removes unneccessary implementation of ScrollBoxObject rr?enndeakin+6102 r=bz,enndeakin+6102
MozReview-Commit-ID: LBQ0RoS0ZVc

--HG--
rename : dom/webidl/ScrollBoxObject.webidl => dom/chrome-webidl/XULScrollElement.webidl
rename : layout/xul/ScrollBoxObject.cpp => dom/xul/XULScrollElement.cpp
rename : layout/xul/ScrollBoxObject.h => dom/xul/XULScrollElement.h
extra : rebase_source : 6a0de76dfdacbc29d261a4aea703a44f87ad7e12
2018-06-25 10:11:31 -07:00
Kris Maglione 8316d5a0c0 Bug 1463587: Part 3 - Add bindings for SharedMap, and expose it via process message managers. r=erahm,baku,bz
This is the first basic implementation of a shared-memory key-value store for
JS message managers. It has one read-write endpoint in the parent process, and
separate read-only endpoints for each child-process message manager.

Changes to the parent endpoint are broadcast to the children as snapshots.
Each snapshot triggers a "change" event with a list of changed keys.

It currently has the following limitations:

- It only supports basic structured clone data. There's no support for blobs,
  input streams, message ports... Blob support will be added in a follow-up
  patch.

- Changes are currently only broadcast to child endpoints when flush() is
  explicitly called in the parent, or when new child processes are launched.
  In a follow-up, this will be changed to automatically flush after changes
  when the event loop is idle.

- All set operations clone their inputs synchronously, which means that
  there's no trivial way for callers to batch multiple changes to a single key
  without some additional effort. It might be useful to add a
  delayed-serialization option to the .set() call in a follow-up, for callers
  who are sure they know what they're doing.

MozReview-Commit-ID: IM8a3UgejXU

--HG--
extra : rebase_source : 66c92d538a5485349bc789028fdc3a6806bc5d5a
extra : source : 2ebaf5f8c6055b11b11d7ec334d54ee941115d48
2018-06-29 14:55:27 -07:00
Boris Zbarsky c360173249 Bug 1475065 part 12. Stop using nsIDOMOfflineResourceList in bindings. r=nika 2018-07-13 15:42:07 -07:00
Bogdan Tara 6dbc2726d8 Backed out changeset b099e7e0b264 (bug 1454358) for build bustages on Element.h CLOSED TREE
--HG--
rename : dom/chrome-webidl/XULScrollElement.webidl => dom/webidl/ScrollBoxObject.webidl
rename : dom/xul/XULScrollElement.cpp => layout/xul/ScrollBoxObject.cpp
rename : dom/xul/XULScrollElement.h => layout/xul/ScrollBoxObject.h
2018-07-12 01:50:53 +03:00
Emma Malysz c28a132d13 Bug 1454358, removes unneccessary implementation of ScrollBoxObject rr?enndeakin+6102 r=bz,enndeakin+6102
MozReview-Commit-ID: LBQ0RoS0ZVc

--HG--
rename : dom/webidl/ScrollBoxObject.webidl => dom/chrome-webidl/XULScrollElement.webidl
rename : layout/xul/ScrollBoxObject.cpp => dom/xul/XULScrollElement.cpp
rename : layout/xul/ScrollBoxObject.h => dom/xul/XULScrollElement.h
extra : rebase_source : ad00e7030e50229975b0bc0d3c622af4fe244a79
2018-06-25 10:11:31 -07:00
Boris Zbarsky 8f7c90d6be Bug 1473149. Add an external string variant that keeps a DynamicAtom alive. r=njn,rwood
The change to call AsStatic() in SetKnownLiveAtom is drive-by performance cleanup.
2018-07-10 11:21:42 -07:00
Andi-Bogdan Postelnicu 88cc63910d Bug 1453795 - DOM - Initialize member fields in classes/ structures. r=peterv
--HG--
extra : rebase_source : 249fc26e50bded4e94f5effa4308af0f1e54b908
2018-06-16 17:21:46 +03:00
Jan de Mooij d11d85a23c Bug 1472973 part 13 - Use JS::GetNonCCWObjectGlobal in BindingUtils. r=bz 2018-07-12 12:14:38 +02:00
Margareta Eliza Balazs 7b416abaf1 Backed out 10 changesets (bug 1470783, bug 1463587) for causing multiple leakcheck failures on a CLOSED TREE
Backed out changeset cd2080bd727a (bug 1463587)
Backed out changeset 5866137afd9a (bug 1463587)
Backed out changeset d64e1c150db2 (bug 1463587)
Backed out changeset 669f084e8914 (bug 1463587)
Backed out changeset 8074c985095c (bug 1470783)
Backed out changeset 49ed13196e9f (bug 1463587)
Backed out changeset c052042a66cf (bug 1463587)
Backed out changeset cebf1f055d1d (bug 1463587)
Backed out changeset 2ebaf5f8c605 (bug 1463587)
Backed out changeset c27295337b4c (bug 1463587)
2018-07-12 11:27:45 +03:00
Kris Maglione 47c200749a Bug 1463587: Part 3 - Add bindings for SharedMap, and expose it via process message managers. r=erahm,baku,bz
This is the first basic implementation of a shared-memory key-value store for
JS message managers. It has one read-write endpoint in the parent process, and
separate read-only endpoints for each child-process message manager.

Changes to the parent endpoint are broadcast to the children as snapshots.
Each snapshot triggers a "change" event with a list of changed keys.

It currently has the following limitations:

- It only supports basic structured clone data. There's no support for blobs,
  input streams, message ports... Blob support will be added in a follow-up
  patch.

- Changes are currently only broadcast to child endpoints when flush() is
  explicitly called in the parent, or when new child processes are launched.
  In a follow-up, this will be changed to automatically flush after changes
  when the event loop is idle.

- All set operations clone their inputs synchronously, which means that
  there's no trivial way for callers to batch multiple changes to a single key
  without some additional effort. It might be useful to add a
  delayed-serialization option to the .set() call in a follow-up, for callers
  who are sure they know what they're doing.

MozReview-Commit-ID: IM8a3UgejXU

--HG--
extra : rebase_source : 8e8b7891ca48e61b2d6ba3c05912064a909d9698
2018-06-29 14:55:27 -07:00
Boris Zbarsky c4723dda1b Bug 1473492 part 3. Make the getThisObj argument of CGAbstractBindingMethod required. r=mccr8 2018-07-06 11:43:12 -07:00
Boris Zbarsky 56cf508c19 Bug 1473492 part 2. Disallow [Cached] on JS-implemented interfaces. r=mccr8 2018-07-06 11:43:12 -07:00
Boris Zbarsky ba8705c5c6 Bug 1473492 part 1. Remove support for clearing cached attributes on JS-implemented webidl object. r=mccr8
This more or less backs out bug 963382.
2018-07-06 11:43:12 -07:00
Jan de Mooij 81ec9d746f Bug 1472973 part 4 - Use JS::GetNonCCWObjectGlobal in PrefableDisablers::isEnabled. r=bz 2018-07-06 18:16:23 +02:00
Jan de Mooij 09149a5c4a Bug 1472973 part 3 - Remove some GetGlobalForObjectCrossCompartment calls on globals/WindowProxy. r=bz 2018-07-06 18:16:23 +02:00
Jan de Mooij a51f9bdda9 Bug 1472973 part 2 - Use JS::GetNonCCWObjectGlobal in some functions where we unwrapped the object. r=bz 2018-07-06 18:16:23 +02:00
Jan de Mooij 423f3c1384 Bug 1472973 part 1 - Use JS::GetNonCCWObjectGlobal in Codegen.py. r=bz 2018-07-06 18:16:23 +02:00
Neil Deakin f08f9ce4af Bug 1437638, move frame, browser and editor to be based on XULFrameElement, a new subclass of XULElement, r=paolo,bz 2018-07-05 20:14:18 -04:00
Jeff Gilbert a574f2ae1f Bug 1469376 - Initial stubs for WebGPU sketch API. - r=kvark,qdot
MozReview-Commit-ID: 3MZLQDNpHBk

--HG--
extra : rebase_source : 4495aae52f283286ecafcc3217811d306097b9b6
2018-06-13 10:43:48 -07:00
Jean-Yves Avenard 24fc82476b Bug 1409664 - P4. Provide basic MediaCapabilities support. r=bryce
Summary:
The information returned is identical to
1- canPlayType() for file
2- MediaSource.isTypeSupported for media-source
3- MediaRecorder.isTypeRecorder() for recordings.

Depends on D1616

Tags: #secure-revision

Bug #: 1409664

Differential Revision: https://phabricator.services.mozilla.com/D1617
2018-07-03 11:45:16 -07:00
Jean-Yves Avenard 83a8e7725c Bug 1409664 - P1. Add MediaCapabilities skeleton IDL. r=bz
Summary:
As per https://wicg.github.io/media-capabilities/#idl-index

Placed behind user pref media.mediacapabilities.enabled that is disabled by default

Tags: #secure-revision

Bug #: 1409664

Differential Revision: https://phabricator.services.mozilla.com/D1613
2018-07-03 11:45:15 -07:00
Arnaud Bienner e89bd4b6e5 Bug 1470856 - Add AudioWorklet definition. r=baku,karlt
MozReview-Commit-ID: 39eqjisGNTE

--HG--
extra : rebase_source : 97c18e1125c490f3e9aa3b9d5c864f99da6fd265
2018-06-27 11:31:02 +02:00
Arnaud Bienner bd000427cf Bug 1466182 - Add AudioWorkletProcessor definitions. r=baku,karlt
MozReview-Commit-ID: 1KKrUqRY2qf

--HG--
extra : rebase_source : c287e1c4952f0f9a28dd39879d35bf37d6ce50d2
2018-06-24 20:02:47 +02:00
André Bargull 781fc92292 Bug 1471900: Change return type of JS_EncodeStringToBuffer to bool. r=jandem 2018-06-28 07:35:20 -07:00
Andrew Halberstadt 9435736ade Bug 1471620 - Skip python-tests locally that don't run with python 3 in CI r=davehunt
This will make sure that when running |mach python-test --python 3| locally,
we only run the tests that also run in CI with python 3 (and therefore pass
presumably).

MozReview-Commit-ID: 3OBr9yLSlSq

--HG--
extra : rebase_source : 456340d0ecdddf1078f2b5b4ebb1eddf3813b26a
2018-06-27 11:10:02 -04:00
Ben Kelly 818897b5a1 Bug 1471303 Fix CopyableErrorResult::operator==() to actually compile with ipdl types. r=bz 2018-06-27 06:51:24 -07:00
Dorel Luca f51c4fa5d9 Merge mozilla-inbound to mozilla-central. a=merge 2018-06-27 13:26:49 +03:00
Xidorn Quan d1caa962ed Bug 1471114 part 1 - Move CSSPropFlags prefix generation into GenerateServoCSSPropList.py. r=emilio
MozReview-Commit-ID: E5dl9V2B2dq

--HG--
extra : source : 6e2448ce3f4d9965749298a575795dfab926b9cb
2018-06-27 15:34:29 +10:00
Jean-Yves Avenard f6a7d4ea1a Bug 1471214 - Ensure that DictionaryBase copy constructor is called. r=bzbarsky
Such that a call to dictionary.IsAnyMemberPresent() will return the correct value.

Differential Revision: https://phabricator.services.mozilla.com/D1829
2018-06-26 21:56:45 +00:00
Jeff Gilbert 5b753da289 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Jeff Gilbert 15f1932c0f Bug 1470325 - Update Codegen.py to emit Foo_Binding instead of FooBinding. - r=bz,qdot
MozReview-Commit-ID: CFIQpIRsXIU
2018-06-26 17:05:01 -07:00
Nicholas Nethercote 60b1f563cb Bug 1447951 - Store nsDynamicAtom's chars after the end of the object. r=froydnj
This reduces memory usage because we only need one allocation instead of two
for the dynamic atom and its chars, and because we don't need to store a
refcount and a size. It precludes sharing of chars between dynamic atoms, but
we weren't benefiting much from that anyway.

This reduces per-process memory usage by up to several hundred KiB on my
Linux64 box.

One consequence of this change is that we need to allocate + copy in
DOMString::SetKnownLiveAtom(), which could make some things slower.

--HG--
extra : rebase_source : ba4065ea31e509dd985c003614199f73def0596c
2018-06-22 09:38:42 +10:00
Robin Templeton 1267288171 bug 1441098 - Part 4: Enable BigInt wrapping from DOM bindings. r=bz 2018-06-20 19:11:00 +03:00
Andrea Marchesini 037d3a703f Bug 1455256 - Port more components to WorkerRef - part 1 - WorkerProxyToMainThreadRunnable, r=asuth 2018-06-18 16:37:21 -04:00
Steve Fink 70f3630002 Bug 1343620 - Use JS_HAZ_ROOTED everywhere instead of programmatic annotations, r=pbone
--HG--
extra : topic : haz.rooted
extra : rebase_source : 69a2c810ccfecdf7c59fe030a83aad9cb6d5f8ad
2018-06-06 16:28:38 -07:00
Boris Zbarsky 9b13c30592 Bug 1467870. When cloning Xray expando chains for an adopt into the Xray compartment, don't lose expandos. r=mrbkap
This does mean that if the node is adopted back into the original document the
expandos would end up on the reflector at that point.  I think that's OK;
people shouldn't be adopting things in that direction.  Futhermore, if they
adopt, then set expandos, then adopt back they already get this behaviorl

So if we decide we don't want that, we should probably just avoid copying own
props when reparenting into a global whose principals don't subsume the old
global.
2018-06-14 19:06:43 -04:00
Csoregi Natalia 42930ab963 Merge inbound to mozilla-central. a=merge 2018-06-14 12:44:32 +03:00
Nazım Can Altınova 7849dbc1a0 Bug 1451289 - Part 6: Rename ServoCounterStyleRule to CSSCounterStyleRule r=emilio
MozReview-Commit-ID: 4T4FMJAp9WV

--HG--
rename : layout/style/ServoCounterStyleRule.cpp => layout/style/CSSCounterStyleRule.cpp
rename : layout/style/ServoCounterStyleRule.h => layout/style/CSSCounterStyleRule.h
extra : rebase_source : d007c517b93c7feef2a1afd0a6c9e77ff856dfc4
2018-06-05 02:07:25 +02:00
Nazım Can Altınova be5df6059a Bug 1451289 - Part 5: Rename ServoFontFaceRule to CSSFontFaceRule r=emilio
MozReview-Commit-ID: 9S7aW0373NL

--HG--
rename : layout/style/ServoFontFaceRule.cpp => layout/style/CSSFontFaceRule.cpp
rename : layout/style/ServoFontFaceRule.h => layout/style/CSSFontFaceRule.h
extra : rebase_source : 60bafd052315c4a9764c6ccc408868b0b840d504
2018-06-05 01:55:11 +02:00
Jan de Mooij 2b3ff5c90a Bug 1468219 - Rename JS_InitStandardClasses to JS::InitRealmStandardClasses, remove obj argument. r=anba
--HG--
extra : rebase_source : 5c092c37298e89096b85524e92d143ff2447f31f
2018-06-13 12:47:47 -07:00
Joel Maher 50b91c0a14 Bug 1405428 - skip-if = verify on mochitests which do not pass test-verify. r=gbrown 2018-06-10 05:01:47 -04:00
Boris Zbarsky 4a41216e51 Bug 1466255. Allow interfaces only exposed to chrome-or-XBL to be in chrome-webidl. r=kmag 2018-06-09 01:03:26 -04:00
Boris Zbarsky 8dfa5a596c Bug 1466221. Implement ToJSValue variants for non-refcounted (so owned) DOM objects. r=peterv 2018-06-09 01:03:15 -04:00
Ciure Andrei 05605d68c4 Merge inbound to mozilla-central. a=merge 2018-06-08 00:50:18 +03:00
Boris Zbarsky ddfb1afd8e Bug 1186265 - Check the current interface's members. r=bz
MozReview-Commit-ID: JJC82zi33YS

--HG--
extra : rebase_source : 06ccab0bdacd5a4ff669915a1d18c1506c0ec532
2018-05-23 13:56:20 -07:00
Blake Kaplan 2390d89fa5 Bug 1186265 - Partially update DOMPoint, DOMQuad, DOMRect, DOMMatrix. r=bz
Some notes: this does not fully bring us to compliance to the current spec.
Instead, these are the fixes that I needed to make in order to make
css/geometry/interfaces.html pass with the DOMPoint changes in the previous
patches. I don't fully understand why that patch caused the test to fail the
way it did, but it ended up being easier to fix our code than understand why
the harness was falling over.

The DOMQuad::QuadBounds class was the source of some confusion for me. Now
that DOMRectReadOnly is a concrete class with members, I wanted to avoid
wasting them. However, the spec is unclear as to whether a DOMQuad's bound's
should be live -- that is because DOMQuad exposes DOMPoint, we can set its
points after retrieving a QuadBounds object. Our current code is live, setting
the points changes the QuadBounds. Chromium's current behavior is to never
update the QuadBounds object. I've left our behavior untouched in this patch
(and waste 4 doubles per QuadBounds object), but I am intending to file a bug
to understand what the intent of the spec is. I wonder if the author intended
the points to be DOMPointReadOnly instead. If so, we could simplify the
DOMRectReadOnly code and get rid of the virtual getters, which would be nice.

I also wasn't thrilled to put the DOMMatrix setters on the DOMMatrixReadOnly
class, but for brevity and simplicity of implementation, I've made them
public. I briefly considered making the setters protected on the ReadOnly
version of the class, but I'm not convinced that having to explicitly make
them public on the derived class is worth the extra copies of the names.

MozReview-Commit-ID: CjdW4Nbnc6A

--HG--
extra : rebase_source : 44489693afebff571a415b487e29fa6153288421
2018-03-29 16:19:31 -07:00
Jan de Mooij f7fb3be6ec Bug 1466121 part 1 - Rename JSCompartment to JS::Compartment. r=luke
--HG--
extra : rebase_source : cd7140ecda54f0caa02a96f562167b3c9a107450
2018-06-07 16:44:40 +02:00
Jan de Mooij 56ca3c9524 Bug 1466501 part 1 - Refactor ZoneSpecifier and add a sameCompartmentAs option to newGlobal in the shell. r=luke 2018-06-07 10:02:10 +02:00
Narcis Beleuzu cf464eabfe Merge inbound to mozilla-central. a=merge 2018-06-06 20:00:09 +03:00
Karl Tomlinson 9e0c1c7c2b bug 1442776 make CycleCollectedJSContext accessible from JSContext private r=peterv
Inheriting PerThreadAtomCache on CycleCollectedJSContext permits use of
static_cast, avoiding one level of indirection compared to adding a
CycleCollectedJSContext* to PerThreadAtomCache.

PerThreadAtomCache is over 18kB, and so WorkerJSContext and WorkletJSContext
are moved from the stack to the heap.

MozReview-Commit-ID: 6jdJeZcviK4

--HG--
extra : rebase_source : 3c2accb71faf3f017a44c405ae0484e57aaf039c
2018-05-10 17:04:12 +12:00
Karl Tomlinson c0f5d29413 bug 1442776 treat PinnedStringId as rooted GC pointer in hazard analysis r=sfink
MozReview-Commit-ID: GFPSwczIZxV

--HG--
extra : rebase_source : 522ccf7dbf28bbfb881a4c13dfb62f369d7791d7
2018-06-05 16:51:10 +12:00
Jan de Mooij bcadbf2ad9 Bug 1464772 part 5 - Use GetIsSecureContext instead of RealmCreationOptionsRef in IsSecureContextOrObjectIsFromSecureContext. r=bz
Also changes RealmCreationOptionsRef to take a realm instead of compartment (this function is now unused but still potentially useful).
2018-06-06 11:44:17 +02:00
Anny Gakhokidze 8dc3a15a90 Bug 1351193 - Part 3: Update status of affected Web-Platform tests, r=nika
Because of modifications to the DataTransfer constructors, the status of the tests that use DataTransfer objects had to be changed to reflect the fact that those tests now pass. Additionally, a test had to be deleted because it tested an obscure situation using the old Chrome only constructor.

MozReview-Commit-ID: LOWuPwh0NeW
2018-06-04 15:09:22 -04:00
Andreea Pavel 4ced6e8b2d Merge mozilla-central to autoland. a=merge 2018-06-03 07:27:01 +03:00
Emilio Cobos Álvarez 1e9c395548 Bug 1466168: Remove mozilla::Forward in favor of std::forward. r=froydnj
Same approach as the other bug, mostly replacing automatically by removing
'using mozilla::Forward;' and then:

  s/mozilla::Forward/std::forward/
  s/Forward</std::forward</

The only file that required manual fixup was TestTreeTraversal.cpp, which had
a class called TestNodeForward with template parameters :)

MozReview-Commit-ID: A88qFG5AccP
2018-06-02 09:33:26 +02:00
Boris Zbarsky 01f73b98d9 Bug 1466213 part 1. Move PositionError out into a separate file. r=qdot
--HG--
rename : dom/geolocation/nsGeolocation.cpp => dom/geolocation/PositionError.cpp
rename : dom/geolocation/nsGeolocation.h => dom/geolocation/PositionError.h
2018-06-01 22:35:42 -04:00
Boris Zbarsky 15b087c696 Bug 1465875 part 4. Eliminate random mentions of nsIDOMNSEditableElement. r=qdot 2018-06-01 22:35:23 -04:00
Boris Zbarsky a0ebf6e398 Bug 1465602 part 2. Fix the interaction of default toJSON with Func-controlled exposure that examines the object's global. r=qdot 2018-06-01 12:17:10 -04:00
Boris Zbarsky 19aa8a3bac Bug 1465602 part 1. Enforce that the default toJSON can only return 'object'. r=qdot
The spec says:

  The return type of the default toJSON operation must be object.
2018-06-01 12:17:10 -04:00
Emilio Cobos Álvarez fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Jan de Mooij b1ff59e919 Bug 1464374 part 3 - Use GetRealmPrincipals in generated bindings to get subject principal. r=bz 2018-05-31 11:28:49 +02:00
Jan de Mooij ce3eb7d5c0 Bug 1464374 part 2 - Pass JS::Realm* instead of JSCompartment* to CallSetup. r=bz,luke
The principals are on the realm so we need a realm instead of a compartment. Also adds js::GetNonCCWObjectRealm to get the realm of a non-CCW object.
2018-05-31 11:28:48 +02:00
Jan de Mooij 09c4068fa0 Bug 1464134 part 1 - Fix various places to use Realm instead of JSCompartment. r=luke 2018-05-31 11:28:48 +02:00
Jan de Mooij 7148cd7d35 Bug 1464036 - Remove PropertyInfo constructor to keep MSVC from generating static initializers. r=bz
--HG--
extra : rebase_source : c59d1878615029c7c8b075f4ec288daef77414c6
2018-05-26 14:14:10 +02:00
Peter Van der Beken 0a2e4b8cb7 Bug 1146316 - Remove nsWrapperCache::SetIsNotDOMBinding and IsDOMBinding(). r=bz.
--HG--
extra : rebase_source : cd36e7afb4f6ebcd042ea40d9403546a683375ad
2018-04-05 17:22:41 +02:00
Narcis Beleuzu 8bfcff6f8c Backed out 3 changesets (bug 1186265) for devtools chrome failures on browser_webconsole_visibility_messages.js. CLOSED TREE
Backed out changeset 4a9965aeeef3 (bug 1186265)
Backed out changeset 55bd80764231 (bug 1186265)
Backed out changeset 00fefd3eb634 (bug 1186265)
2018-05-25 05:36:52 +03:00
Boris Zbarsky 8601802fff Bug 1186265 - Check the current interface's members. r=bz
MozReview-Commit-ID: Hfh0yyNBGE4

--HG--
extra : rebase_source : ed9544d4a8d02aaa69ecf5c364517bca584cf04f
2018-05-23 13:56:20 -07:00
Blake Kaplan aec5df4e02 Bug 1186265 - Partially update DOMPoint, DOMQuad, DOMRect, DOMMatrix. r=bz
Some notes: this does not fully bring us to compliance to the current spec.
Instead, these are the fixes that I needed to make in order to make
css/geometry/interfaces.html pass with the DOMPoint changes in the previous
patches. I don't fully understand why that patch caused the test to fail the
way it did, but it ended up being easier to fix our code than understand why
the harness was falling over.

The DOMQuad::QuadBounds class was the source of some confusion for me. Now
that DOMRectReadOnly is a concrete class with members, I wanted to avoid
wasting them. However, the spec is unclear as to whether a DOMQuad's bound's
should be live -- that is because DOMQuad exposes DOMPoint, we can set its
points after retrieving a QuadBounds object. Our current code is live, setting
the points changes the QuadBounds. Chromium's current behavior is to never
update the QuadBounds object. I've left our behavior untouched in this patch
(and waste 4 doubles per QuadBounds object), but I am intending to file a bug
to understand what the intent of the spec is. I wonder if the author intended
the points to be DOMPointReadOnly instead. If so, we could simplify the
DOMRectReadOnly code and get rid of the virtual getters, which would be nice.

I also wasn't thrilled to put the DOMMatrix setters on the DOMMatrixReadOnly
class, but for brevity and simplicity of implementation, I've made them
public. I briefly considered making the setters protected on the ReadOnly
version of the class, but I'm not convinced that having to explicitly make
them public on the derived class is worth the extra copies of the names.

MozReview-Commit-ID: CjdW4Nbnc6A

--HG--
extra : rebase_source : 97e9386cfb17319242913d28117c8b1b8b6fbbbe
2018-03-29 16:19:31 -07:00
Dorel Luca 018394b03f Backed out 3 changesets (bug 1351193) for landing with the wrong reviewer name
Backed out changeset cc8d55217398 (bug 1351193)
Backed out changeset b05e943f8d2c (bug 1351193)
Backed out changeset 94ffa7844ae7 (bug 1351193)
2018-06-02 17:51:30 +03:00
Csoregi Natalia 2f779be8d9 Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-06-02 01:03:45 +03:00
Markus Stange f49c17a909 Bug 1462784 - Add a DOM category and use it for the WebIDL binding stack labels. r=njn
MozReview-Commit-ID: AevGMqeBvXO

--HG--
extra : rebase_source : 001056270d8b2df8a7e88e523d1a9612913e27a8
2018-05-18 17:49:55 -04:00
Csoregi Natalia fc2ed6e92a Backed out 18 changesets (bug 1462784) for ESlint failure on FlameGraph.js:1297. CLOSED TREE
Backed out changeset 79556798ff9f (bug 1462784)
Backed out changeset 88321efb673b (bug 1462784)
Backed out changeset 7880f9dc7023 (bug 1462784)
Backed out changeset 71fe35fd1f7e (bug 1462784)
Backed out changeset a543b94b049a (bug 1462784)
Backed out changeset d1ca8b0f2221 (bug 1462784)
Backed out changeset 68eabfbf3c16 (bug 1462784)
Backed out changeset 34e71c789903 (bug 1462784)
Backed out changeset 6fe79d1ca1bd (bug 1462784)
Backed out changeset e5ad2e525ea9 (bug 1462784)
Backed out changeset 329645ff1e23 (bug 1462784)
Backed out changeset e09c38853172 (bug 1462784)
Backed out changeset 0663d1a6d2da (bug 1462784)
Backed out changeset 106967fc29d2 (bug 1462784)
Backed out changeset 99b4a433a8e5 (bug 1462784)
Backed out changeset 1d38a4cf5a4a (bug 1462784)
Backed out changeset 692017229de6 (bug 1462784)
Backed out changeset c2911a626671 (bug 1462784)
2018-06-01 23:42:00 +03:00
Markus Stange 1da5dfa148 Bug 1462784 - Add a DOM category and use it for the WebIDL binding stack labels. r=njn
MozReview-Commit-ID: AevGMqeBvXO

--HG--
extra : rebase_source : 463fd96712fb5b389fd67ce97a3de19f86d37558
2018-05-18 17:49:55 -04:00
Anny Gakhokidze 905d2e81e3 Bug 1351193 - Part 3: Update status of affected Web-Platform tests, r=Nika
Because of modifications to the DataTransfer constructors, the status of the tests that use DataTransfer objects had to be changed to reflect the fact that those tests now pass. Additionally, a test had to be deleted because it tested an obscure situation using the old Chrome only constructor.

MozReview-Commit-ID: LOWuPwh0NeW

--HG--
extra : rebase_source : bdfb4509b54925a27fb3fe7b83cb97ed4ea6d877
2018-05-25 13:59:56 -04:00
Noemi Erli 1fd69fa2bc Backed out 18 changesets (bug 1462784) for failures in devtools/client/performance/test/unit/test_tree-model-08.js on a CLOSED TREE
Backed out changeset a74d36598442 (bug 1462784)
Backed out changeset c8192175f360 (bug 1462784)
Backed out changeset cde492240e99 (bug 1462784)
Backed out changeset 8c8d30fa406c (bug 1462784)
Backed out changeset ad3802ffb780 (bug 1462784)
Backed out changeset 2fe10732076c (bug 1462784)
Backed out changeset 268a72b7c3c4 (bug 1462784)
Backed out changeset 4055eb6c3bc6 (bug 1462784)
Backed out changeset 3901070e2e60 (bug 1462784)
Backed out changeset 2faf787fbbdf (bug 1462784)
Backed out changeset 8f06963c7c6f (bug 1462784)
Backed out changeset 036e6f64e224 (bug 1462784)
Backed out changeset e670f156a603 (bug 1462784)
Backed out changeset cd39588aece4 (bug 1462784)
Backed out changeset 2ac65d100fa2 (bug 1462784)
Backed out changeset ea05ff70a51d (bug 1462784)
Backed out changeset 8a06c0ba42f7 (bug 1462784)
Backed out changeset 52ed9a039ad2 (bug 1462784)
2018-06-01 01:06:29 +03:00
Noemi Erli 614b78ae36 Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-06-01 00:58:09 +03:00
Markus Stange 916fd5a90a Bug 1462784 - Add a DOM category and use it for the WebIDL binding stack labels. r=njn
MozReview-Commit-ID: AevGMqeBvXO

--HG--
extra : rebase_source : 4a1bd948e65cbbd890ba53c363248c1ce69774a3
2018-05-18 17:49:55 -04:00
Andrea Marchesini 0519d22370 Bug 1459279 - Console API: Implement console.countReset(), r=bgrins 2018-05-22 11:34:41 +02:00
Margareta Eliza Balazs 0bb5e5ba36 Merge inbound to mozilla-central. a=merge 2018-05-19 12:39:28 +03:00
Boris Zbarsky 9f24750878 Bug 1461711 part 1. Change CustomElementRegistry::Define to just take a JSContext from the caller instead of setting up an AutoJSAPI itself. r=smaug
This more closely matches what should happen with entry/incumbent globals in
the spec.
2018-05-18 16:18:19 -04:00
Boris Zbarsky 453d037a95 Bug 1424160 part 3. Set up @@toStringTag on our synthesized iterator interfaces. r=qdot 2018-05-17 23:45:45 -04:00
Boris Zbarsky fd520f957c Bug 1424160 part 2. Add infrastructure for defining @@toStringTag on Web IDL prototypes. r=qdot 2018-05-17 23:45:35 -04:00
Boris Zbarsky 1fb670215a Bug 1424160 part 1. Allow interfaces the have a different name for SpiderMonkey class name purposes. r=qdot
We want to have some class names with spaces in them, but everything assumes
that an interface identifier is in fact an identifier (e.g. uses it in C++
identifiers like namespace names).
2018-05-17 23:45:26 -04:00
Boris Zbarsky bbb35f3bbb Bug 1375829 part 5. Switch from using "jsonifier" syntax to the spec's "[Default] toJSON" syntax. r=qdot 2018-05-17 23:43:59 -04:00
Boris Zbarsky 5d1de86578 Bug 1375829 part 4. Enforce the spec restrictions on methods named toJSON(). r=qdot
There are two restrictions: such methods must take no arguments and must return a JSON type.
2018-05-17 23:43:55 -04:00
Boris Zbarsky aae7b887d6 Bug 1375829 part 3. Align our definition of "JSON type" with the spec. r=qdot
Compared to the spec, we had the following differences:

* Date was a JSON type in our implementation.  It doesn't even exist as a type
  in the spec.  It stops being a JSON type.
* Annotated types are not supported yet.  Nothing changes here.
* Typedef types were not JSON types in our implementation.  They become JSON
  types if the type it's a typedef for is one.
* Frozen arrays are not supported yet.  nothing changes here.
* Records were not JSON types in our implementation.  They become JSON types
  when the value type is a JSON type.
* Object was not a JSON type in our implementation.  It becomes a JSON type.
* Interface types were only JSON types in our implementation if they had a
  jsonifier.  We change to treating them as JSON types if there is a jsonifier
  anywhere on the inheritance chain.

In terms of observable behavior, the following properties now get included by
toJSON methods that didn't use to be included:

  PaymentResponse.details
  Performance.mozMemory

both because they're of type "object".
2018-05-17 23:39:52 -04:00
Boris Zbarsky 85cfd5fbdf Bug 1375829 part 2. The default binding toJSON should skip over attributes that are not exposed in the current global. r=qdot
Without this, we will start including mozMemory in performance.toJSON() even if
the pref for it is not set, once 'object' becomes a JSON type.

This changes behavior in the following observable ways:

1) We stop exposing PerformanceResourceTiming's .serverTiming in the JSON
serialization in insecure contexts.

2) We stop exposing PerformanceTiming's timeToNonBlankPaint and
timeToDOMContentFlushed in the JSON serialization unless the relevant
preferences are turned on.
2018-05-17 23:39:52 -04:00
Boris Zbarsky 0e86edbbdf Bug 1375829 part 1. Rename isSerializable() to isJSONType(). r=qdot
The spec calls these types "JSON types".
2018-05-17 23:39:52 -04:00
Timothy Guan-tin Chien 08741f30ed Bug 1460962 - Support customized built-in element in XUL r=smaug
This patch enables us to specify a custom element type with |is| attribute
or property when creating a XUL element. Because non-dashed names are valid
custom element names in XUL (bug 1446247), other checks has to modified
accordingly.

The checks I am settling with are
1) Forbids the custom built-in element names to be a non-dashed name.
2) Forbids the custom built-in element to extend a dashed built-in element name.

This also ensures the custom built-in element types don't take on the same
name as the element name it extends.

MozReview-Commit-ID: GCQ9RnfvvrC

--HG--
extra : rebase_source : 2fa13742525d2107580d50872ff5b0fc42539498
extra : source : 2dc5513660d78a4de4801109140743ffc9297f71
2018-05-11 12:44:46 -07:00
Jan de Mooij 17f3983d0f Bug 1461605 part 1 - Rename CompartmentOptions to RealmOptions. r=luke,bz 2018-05-17 10:59:45 +02:00