Commit Graph

541 Commits

Author SHA1 Message Date
Dzmitry Malyshau
3d97c29cf1 Bug 1575008 - WebGPU implementation basis r=webidl,baku
This change vendors `wgpu` library in-tree and hooks up the initialization bits. It implements adapter and device initialization and adds a simple test.

Current status:
  - [x] Architecture
    - [x] figure out the IPC story
    - [ ] move wgpu crates into a dedicated folder (let's follow up with this)
  - [x] Review
    - [x] WebIDL changes by DOM peers
  - [x] Linux
    - [x] avoid depending on spirv_cross - https://github.com/gfx-rs/wgpu/pull/371
  - [x] macOS
    - [x] due to cross-compiling shaders - https://github.com/gfx-rs/gfx/pull/3047
    - [x] need the dependency update
    - [x] stop using gcc - https://github.com/SSheldon/rust-objc-exception/pull/5
    - [x] unexpected SSL header collision - https://phabricator.services.mozilla.com/D51148
    - [x] undefined Metal symbols
    - [x] missing webrtc headers for IPDL magic - https://phabricator.services.mozilla.com/D51558
  - [x] Windows
    - [x] due to "ipc-channel" not supporting Windows yet - https://github.com/servo/ipc-channel/pull/233~~
    - [x] due to some exceptional stuff - https://github.com/grovesNL/spirv_cross/issues/121
    - [x] undefined symbol: `D3D12CreateDevice`
    - [x] d3d12.dll is not found, dxgi1_4 doesn't present
    - [x] d3d11.dll and dxgi.dll need to be explicitly loaded on win32 mingw - https://github.com/gfx-rs/gfx/pull/3076
    - [x] libbacktrace fails to link on win32 mingw
    - [x] cc mislinking C++ standard library - https://github.com/alexcrichton/cc-rs/pull/455
  - [x] Android
    - [x] spirv-cross fails to build - https://github.com/KhronosGroup/SPIRV-Cross/pull/1193

Update-1:
We decided to go with IPDL mechanism instead of Rust based ipc-channel (or any alternatives), which unblocks Windows build.

Update-2:
It appears that WebGPUThreading isn't needed any more as the child thread (and its event loop) is now managed by IPDL infrastructure. This PR removes it 🎉 .

Update-3:
InstanceProvider is also removed.

Update-4:
All set, the try is green, waiting for dependent changes to go in.

Differential Revision: https://phabricator.services.mozilla.com/D49458
2019-11-05 19:51:15 +00:00
Brendan Dahl
ef30c33394 Bug 1470510 - Rename nsXULWindow and nsIXULWindow to AppWindow and nsIAppWindow. r=smaug
nsXULWindow is no longer XUL specific and is somewhat confusing name.

Differential Revision: https://phabricator.services.mozilla.com/D51486
2019-11-05 17:56:28 +00:00
Mihai Alexandru Michis
5803a050c4 Backed out 2 changesets (bug 1470510) for causing bustages in widget/cocoa/nsChildView.mm CLOSED TREE
Backed out changeset a343f30c34a3 (bug 1470510)
Backed out changeset 4da64790094d (bug 1470510)
2019-11-05 09:24:26 +02:00
Brendan Dahl
b484de8fe7 Bug 1470510 - Rename nsXULWindow and nsIXULWindow to AppWindow and nsIAppWindow. r=smaug
nsXULWindow is no longer XUL specific and is somewhat confusing name.

Differential Revision: https://phabricator.services.mozilla.com/D51486
2019-11-04 23:37:31 +00:00
Noemi Erli
1c12fbfe17 Backed out changeset ef59d327a1a4 (bug 1575008) for causing build bustages CLOSED TREE 2019-11-05 08:19:10 +02:00
Dzmitry Malyshau
83f9191f07 Bug 1575008 - WebGPU implementation basis r=webidl,baku
This change vendors `wgpu` library in-tree and hooks up the initialization bits. It implements adapter and device initialization and adds a simple test.

Current status:
  - [x] Architecture
    - [x] figure out the IPC story
    - [ ] move wgpu crates into a dedicated folder (let's follow up with this)
  - [x] Review
    - [x] WebIDL changes by DOM peers
  - [x] Linux
    - [x] avoid depending on spirv_cross - https://github.com/gfx-rs/wgpu/pull/371
  - [x] macOS
    - [x] due to cross-compiling shaders - https://github.com/gfx-rs/gfx/pull/3047
    - [x] need the dependency update
    - [x] stop using gcc - https://github.com/SSheldon/rust-objc-exception/pull/5
    - [x] unexpected SSL header collision - https://bugzilla.mozilla.org/show_bug.cgi?id=1592398
    - [x] undefined Metal symbols
  - [x] Windows
    - [x] due to "ipc-channel" not supporting Windows yet - https://github.com/servo/ipc-channel/pull/233~~
    - [x] due to some exceptional stuff - https://github.com/grovesNL/spirv_cross/issues/121
    - [x] undefined symbol: `D3D12CreateDevice`
    - [x] d3d12.dll is not found, dxgi1_4 doesn't present
    - [x] d3d11.dll and dxgi.dll need to be explicitly loaded on win32 mingw - https://github.com/gfx-rs/gfx/pull/3076
    - [x] libbacktrace fails to link on win32 mingw
  - [x] Android
    - [x] spirv-cross fails to build - https://github.com/KhronosGroup/SPIRV-Cross/pull/1193

Update-1:
We decided to go with IPDL mechanism instead of Rust based ipc-channel (or any alternatives), which unblocks Windows build.

Update-2:
It appears that WebGPUThreading isn't needed any more as the child thread (and its event loop) is now managed by IPDL infrastructure. This PR removes it 🎉 .

Update-3:
InstanceProvider is also removed.

Update-4:
All set, the try is green, waiting for dependent changes to go in.

Differential Revision: https://phabricator.services.mozilla.com/D49458
2019-11-05 05:08:13 +00:00
Csoregi Natalia
efc16a25a7 Backed out changeset 9c05fa3c0fcc (bug 1575008) for bustages on WebrtcIPCTraits.h. CLOSED TREE 2019-11-05 06:44:15 +02:00
Dzmitry Malyshau
e6a9a2fd37 Bug 1575008 - WebGPU implementation basis r=webidl,baku
This change vendors `wgpu` library in-tree and hooks up the initialization bits. It implements adapter and device initialization and adds a simple test.

Current status:
  - [x] Architecture
    - [x] figure out the IPC story
    - [ ] move wgpu crates into a dedicated folder (let's follow up with this)
  - [x] Review
    - [x] WebIDL changes by DOM peers
  - [x] Linux
    - [x] avoid depending on spirv_cross - https://github.com/gfx-rs/wgpu/pull/371
  - [x] macOS
    - [x] due to cross-compiling shaders - https://github.com/gfx-rs/gfx/pull/3047
    - [x] need the dependency update
    - [x] stop using gcc - https://github.com/SSheldon/rust-objc-exception/pull/5
    - [x] unexpected SSL header collision - https://bugzilla.mozilla.org/show_bug.cgi?id=1592398
    - [x] undefined Metal symbols
  - [x] Windows
    - [x] due to "ipc-channel" not supporting Windows yet - https://github.com/servo/ipc-channel/pull/233~~
    - [x] due to some exceptional stuff - https://github.com/grovesNL/spirv_cross/issues/121
    - [x] undefined symbol: `D3D12CreateDevice`
    - [x] d3d12.dll is not found, dxgi1_4 doesn't present
    - [x] d3d11.dll and dxgi.dll need to be explicitly loaded on win32 mingw - https://github.com/gfx-rs/gfx/pull/3076
    - [x] libbacktrace fails to link on win32 mingw
  - [x] Android
    - [x] spirv-cross fails to build - https://github.com/KhronosGroup/SPIRV-Cross/pull/1193

Update-1:
We decided to go with IPDL mechanism instead of Rust based ipc-channel (or any alternatives), which unblocks Windows build.

Update-2:
It appears that WebGPUThreading isn't needed any more as the child thread (and its event loop) is now managed by IPDL infrastructure. This PR removes it 🎉 .

Update-3:
InstanceProvider is also removed.

Update-4:
All set, the try is green, waiting for dependent changes to go in.

Differential Revision: https://phabricator.services.mozilla.com/D49458
2019-11-05 04:09:23 +00:00
Dorel Luca
bcbec745b9 Backed out 2 changesets (bug 1470510) for build bustage on /build/src/widget/cocoa/nsChildView.mm. CLOSED TREE
Backed out changeset 5967bf633574 (bug 1470510)
Backed out changeset 067a556bb614 (bug 1470510)
2019-11-04 19:18:56 +02:00
Brendan Dahl
4f87b88cc6 Bug 1470510 - Rename nsXULWindow and nsIXULWindow to AppWindow and nsIAppWindow. r=smaug
nsXULWindow is no longer XUL specific and is somewhat confusing name.

Differential Revision: https://phabricator.services.mozilla.com/D51486
2019-11-04 16:52:35 +00:00
Nihanth Subramanya
edbf406048 Bug 1584479 - Part 1: Add flag for blocked social cookies in the content blocking log. r=Ehsan,droeh
Differential Revision: https://phabricator.services.mozilla.com/D47427
2019-11-01 23:24:25 +00:00
Dorel Luca
2060c2bf48 Backed out 4 changesets (bug 1584479) for Browser-chrome failures in toolkit/components/antitracking/test/browser/browser_socialtracking.js
Backed out changeset b0d9877bd8b0 (bug 1584479)
Backed out changeset d2c56bd61b08 (bug 1584479)
Backed out changeset 0edb22786545 (bug 1584479)
Backed out changeset 7e03b392edb3 (bug 1584479)
2019-11-02 01:18:42 +02:00
Nihanth Subramanya
fcb3e38904 Bug 1584479 - Part 1: Add flag for blocked social cookies in the content blocking log. r=Ehsan,droeh
Differential Revision: https://phabricator.services.mozilla.com/D47427
2019-11-01 21:02:09 +00:00
Tom Tung
d3c2fd9001 Bug 1562667 - P3 - Check remoteType in IsCrossOriginIsolated; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D51083
2019-11-01 08:30:41 +00:00
Cosmin Sabou
40b045555d Backed out changeset 36a8c8887629 (bug 1588220) for causing a spike in browser chrome failures (eg: Bug 1592741). 2019-10-31 14:53:40 +02:00
Kris Maglione
7aedcd09ad Bug 1588220: Keep track of last active inner window when BrowsingContext is discarded. r=bzbarsky
Any number of outer windows may be attached to a BrowsingContext over its
lifetime. While the BrowsingContext is alive, it's easy to keep track of which
of these is active, and therefore which of its inner windows is active. After
it has been discarded, though, it discards its docShell reference, so all we
can tell about an inner window is whether it is active for its own outer
window, but not whether it should be considered active for its
BrowsingContext.

This patch updates the BrowsingContext detach logic to store a flag on the
current inner window recording that it was active when its BrowsingContext was
detached, and then later checks that flag to determine if it is the current
window for a detached BrowsingContext.

Differential Revision: https://phabricator.services.mozilla.com/D49032
2019-10-30 17:22:37 +00:00
Tom Tung
8529e49161 Bug 1562667 - P1 - Refine isCrossOriginIsolated check and agentcluster check for postmessage; r=nika
This patch does:
- Rename CanShareMemory to IsCrossOriginIsolated
- Only check COOP and COEP on the serializing side
- Check if the caller AgentClusterId is same as target on the deserializng side

Note that this patch assumes that it's safe to not throw for the case that the
target window is navigated to another origin but in the same agent cluster while
the MessageEvent is in-flight.

Differential Revision: https://phabricator.services.mozilla.com/D50198
2019-10-30 11:01:42 +00:00
Rob Wu
b04d276514 Bug 1589754 - Rename nsGlobalWindowInner::GetTopLevelPrincipal r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D50068
2019-10-24 12:57:21 +00:00
Narcis Beleuzu
6a73a8e993 Backed out 2 changesets (bug 1589754) for mochitest failures on test_notification_permissions.html CLOSED TREE
Backed out changeset 120203cf34b0 (bug 1589754)
Backed out changeset 49e887cef91d (bug 1589754)
2019-10-24 15:51:34 +03:00
Rob Wu
f9de7aa235 Bug 1589754 - Rename nsGlobalWindowInner::GetTopLevelPrincipal r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D50068
2019-10-23 18:14:44 +00:00
Jonathan Kingston
6712edf12b Bug 1585582 - Simplify exposure of AppCache interface for SecureContext r=baku
Differential Revision: https://phabricator.services.mozilla.com/D47959
2019-10-21 09:35:19 +00:00
Tom Tung
edd6b0880e Bug 1587394 - Provide a pref to bypass postMessage COOP and COEP check on Nightly and Dev; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D48713
2019-10-21 14:47:52 +00:00
Ehsan Akhgari
62c3a5ca03 Bug 1588614 - Cache the document's effective storage principal to avoid running excessive anti-tracking checks; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D49791
2019-10-21 12:53:38 +00:00
Razvan Maries
47fa86cc7a Backed out 3 changesets (bug 1585582) for perma fails on appcache.tentative.https.sub.html.
Backed out changeset a55fbe377803 (bug 1585582)
Backed out changeset 0bd7ff0df367 (bug 1585582)
Backed out changeset 78a947a05f08 (bug 1585582)
2019-10-20 21:15:17 +03:00
Jonathan Kingston
e599bc68f6 Bug 1585582 - Simplify exposure of AppCache interface for SecureContext r=baku
Differential Revision: https://phabricator.services.mozilla.com/D47959
2019-10-18 16:05:28 +00:00
Oana Pop Rus
617ecf362e Backed out 3 changesets (bug 1585582) for bc failures browser/base/content/test/sanitize/browser.ini on a CLOSED TREE
Backed out changeset 98d7a4f4388f (bug 1585582)
Backed out changeset c13ec2bbc0a7 (bug 1585582)
Backed out changeset 8015660b170f (bug 1585582)
2019-10-18 18:42:49 +03:00
Jonathan Kingston
ec78640bc0 Bug 1585582 - Simplify exposure of AppCache interface for SecureContext r=baku
Differential Revision: https://phabricator.services.mozilla.com/D47959
2019-10-16 15:36:51 +00:00
Bogdan Tara
652a856e6e Backed out changeset 667e16c6814c (bug 1587394) for pref lint failure CLOSED TREE 2019-10-17 18:55:15 +03:00
Tom Tung
42ae358112 Bug 1587394 - Provide a pref to bypass postMessage COOP and COEP check on Nightly and Dev; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D48713
2019-10-17 14:15:58 +00:00
Edgar Chen
4271d56f86 Bug 1588208 - Don't need to traverse to TimeoutHandler; r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D49282
2019-10-15 20:53:00 +00:00
Kris Maglione
30ea2a7cb7 Bug 1583400: Follow-up: Fix cycle collector assertion.
Differential Revision: https://phabricator.services.mozilla.com/D49034
2019-10-11 23:22:52 +00:00
Kris Maglione
ec15a55217 Bug 1583400: Make IsCurrentInnerWindow Fission-compatible. r=bzbarsky
IsCurrentInnerWindow() should only return true when we are the current inner
of our BrowsingContext, which has a longer lifetime than individual
GlobalWindowOuter instances. In particular, if our BrowsingContext has no
GlobalWindowOuter hanging off it, that means that currently it's hosting an
inner window from some other process and we are not the current inner. If it
_does_ have a GlobalWindowOuter hanging off it, it's possible that this is not
the same as our mOuterWindow, if the BrowsingContext navigated to a different
site and then navigated back to our site.

Therefore, we need to check that we are the current inner of whatever the
BrowsingContext's current GlobalWindowOuter is, if it has one at all.

Differential Revision: https://phabricator.services.mozilla.com/D48595
2019-10-11 21:53:22 +00:00
Kris Maglione
3678333d88 Bug 1586887: Return WindowProxyHolder rather than BrowsingContext from Window WebIDL getters. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D48429
2019-10-11 19:32:09 +00:00
Imanol Fernandez
a8f6f291f6 Bug 1587366 - Fix VRManagerParent::GetVRActiveStatus race condition: Notify VRActiveStatus after a the VREventObserver is created. r=rbarker,daoshengmu
Notify VRActiveStatus after a the VREventObserver is created to prevent the VRManagerParent::GetVRActiveStatus race condition.
Call VRManager::Shutdown() when the app goes to background instead of calling it in the foreground event due to the inactivity timer.

Differential Revision: https://phabricator.services.mozilla.com/D48678
2019-10-11 15:58:39 +00:00
Brendan Dahl
bf272a3bca Bug 1510785 - Only build XBL related code when MOZ_XBL is defined. r=bzbarsky
When XBL is disabled, no code in dom/xbl will be built. Also, adds ifdefs
to remove any of the XBL related code elsewhere. There's definitely more
that can be done here, but I think it's better to wait to do the rest of
the cleanup when we actually remove the code.

Depends on D45612

Differential Revision: https://phabricator.services.mozilla.com/D45613
2019-10-08 23:52:14 +00:00
Brindusan Cristian
dc5f656d75 Backed out changeset 41c6b7e917fd (bug 1367251) for mochitest failures at test_conformance__textures__image_bitmap_from_blob__tex-2d-luminance-luminance-unsigned_byte.html. CLOSED TREE 2019-10-07 04:46:13 +03:00
aardgoose
61cc1c9044 Bug 1367251 - add bindings for options to createImageBitmap and support flipY r=bzbarsky,aosmond
implementation of imageOrientation: none|flipY.

Differential Revision: https://phabricator.services.mozilla.com/D29562
2019-10-04 15:20:53 +00:00
Jonathan Kingston
70ec17fad1 Bug 1237782 - Remove http override and add appcache pref r=baku
Differential Revision: https://phabricator.services.mozilla.com/D44472
2019-09-30 00:55:02 +00:00
Ehsan Akhgari
772d7644fd Bug 1577298 - Do not stop at the current document when computing the top-level principal for storage partitioning; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D47339
2019-09-27 14:05:13 +00:00
Coroiu Cristina
92b7c5ae5c Backed out changeset f3c1becf9396 (bug 1237782) for browser-chrome failures at dom/tests/mochitest/ajax/offline/browser_disableAppcache.js on a CLOSED TREE 2019-09-26 23:05:07 +03:00
Jonathan Kingston
26c75555dc Bug 1237782 - Remove http override and add appcache pref r=baku
Differential Revision: https://phabricator.services.mozilla.com/D44472
2019-09-26 19:03:04 +00:00
Tom Tung
e675497e60 Bug 1562663 - P4b - Enable SAB for window.postMessage and worker.postMessage; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D43243
2019-09-23 09:57:24 +00:00
Tom Tung
92842590ab Bug 1562663 - P2 - Pass the agent cluster id to the ClientInfo so that we can check whether two clients are in the same agent cluster; r=nika
The agent cluster id is set when the EnsureClientSource is executed;

Differential Revision: https://phabricator.services.mozilla.com/D43240
2019-09-23 09:57:23 +00:00
Jonathan Watt
c25ce80903 Bug 1559841. Make the 'load' event wait for OOP-iframes to load. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D41953
2019-09-19 00:00:44 +00:00
Mihai Alexandru Michis
fd2045760a Merge inbound to mozilla-central. a=merge 2019-09-18 12:58:15 +03:00
Kris Maglione
3988b93f74 Bug 1577723: Store BrowsingContext ID in dom::Location rather than DocShell weak reference. r=farre
Storing a DocShell rather than a BrowsingContext causes a number of problems
when dealing with cross-process navigations. The most immediate in this case
is that some cross-origin-allowed operations only work after a local-to-remote
navigation only until the original DocShell is destroyed, which causes
intermittent test failures.

It also means, though, that after a local-to-remote navigation, where the
DocShell has not been destroyed, attempts to read same-origin properties still
end up at the old DocShell, and as a result, lie about the current state of
the BrowsingContext.

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

MANUAL PUSH: Cannot update re-opened Phabricator revisions.
2019-09-16 18:17:17 -07:00
Daniel Varga
4c8e3ceace Backed out 2 changesets (bug 1577723) for wpt failure at /html/browsers/history/the-location-interface/no-browsing-context.window.html
Backed out changeset 8bf308d3b614 (bug 1577723)
Backed out changeset 6ba3bcede28a (bug 1577723)
2019-09-18 01:50:35 +03:00
Kris Maglione
356a2e4c8d Bug 1577723: Store BrowsingContext ID in dom::Location rather than DocShell weak reference. r=farre
Storing a DocShell rather than a BrowsingContext causes a number of problems
when dealing with cross-process navigations. The most immediate in this case
is that some cross-origin-allowed operations only work after a local-to-remote
navigation only until the original DocShell is destroyed, which causes
intermittent test failures.

It also means, though, that after a local-to-remote navigation, where the
DocShell has not been destroyed, attempts to read same-origin properties still
end up at the old DocShell, and as a result, lie about the current state of
the BrowsingContext.

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

MANUAL PUSH: Cannot update re-opened Phabricator revisions.
2019-09-16 18:17:17 -07:00
Bogdan Tara
bd7e7b3afb Backed out 21 changesets (bug 1578327, bug 1575448, bug 1580091, bug 1576554, bug 1581049, bug 1576551, bug 1578329, bug 1576555) for platform.cpp related bustage CLOSED TREE
Backed out changeset 27afea20c396 (bug 1581049)
Backed out changeset be1ec4577d37 (bug 1581049)
Backed out changeset b4b6bbb18cc1 (bug 1581049)
Backed out changeset b30942f9db54 (bug 1581049)
Backed out changeset 473c431866f7 (bug 1578329)
Backed out changeset ac492dc3df20 (bug 1578329)
Backed out changeset f51875652f6f (bug 1578327)
Backed out changeset 512b7cbd18f6 (bug 1576555)
Backed out changeset 2d63a9934c00 (bug 1576555)
Backed out changeset ff73f648ab6c (bug 1576555)
Backed out changeset 49f49079bbb5 (bug 1576555)
Backed out changeset e8323157c6f3 (bug 1575448)
Backed out changeset 3b0d726f2dd6 (bug 1575448)
Backed out changeset 5924790abc4b (bug 1576554)
Backed out changeset a14ac9bb5338 (bug 1576554)
Backed out changeset b6d73f5042a7 (bug 1576551)
Backed out changeset 366030bd2d84 (bug 1576551)
Backed out changeset d7ee4148aad9 (bug 1576551)
Backed out changeset ec72dfc7301e (bug 1576551)
Backed out changeset 79b29286f906 (bug 1580091)
Backed out changeset 6f34c2e57ccf (bug 1580091)
2019-09-17 10:16:14 +03:00
Gerald Squelart
fdb31cc298 Bug 1578329 - Use profiler_can_accept_markers() where appropriate - r=gregtatum
In places where profiler_is_active() was used around a profiler_add_marker() (or
similar) call, replace it with profiler_can_accept_markers().

Differential Revision: https://phabricator.services.mozilla.com/D44435
2019-09-17 01:53:56 +00:00