Commit Graph

4680 Commits

Author SHA1 Message Date
Boris Zbarsky
033a03eb89 Bug 1591491. Add more use of FakeString::ShareOrDependUpon. r=froydnj
If someone then saves the resulting string, this will let us avoid a copy.

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

--HG--
extra : moz-landing-system : lando
2019-10-28 20:41:59 +00:00
Cosmin Sabou
208a0cc372 Bug 1564700 - Disable test_bug949946.html on win32 and linux64. r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D50415

--HG--
extra : moz-landing-system : lando
2019-10-25 18:20:07 +00:00
Csoregi Natalia
0e8b885146 Backed out 3 changesets (bug 1575090) for web platform failures on e.g. nested-sharedworker-success.https.html. CLOSED TREE
Backed out changeset 3791b3afbb44 (bug 1575090)
Backed out changeset 224ad4adb49e (bug 1575090)
Backed out changeset efb654c201a3 (bug 1575090)
2019-10-24 21:52:16 +03:00
Perry Jiang
9fe3c257a0 Bug 1575090 - add NS_GetCrossOriginEmbedderPolicyFromHeader r=JuniorHsu
Differential Revision: https://phabricator.services.mozilla.com/D46178

--HG--
extra : moz-landing-system : lando
2019-10-24 15:48:57 +00:00
Perry Jiang
8140fd1dc1 Bug 1575090 - set COEP for all workers and enforce it when loading Dedicated Workers r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D46177

--HG--
extra : moz-landing-system : lando
2019-10-24 15:48:50 +00:00
Tom Tung
5a885c18a1 Bug 1583251 - P4 - Allow deserialize shared memory for Workers; r=nika,perry
Differential Revision: https://phabricator.services.mozilla.com/D48560

--HG--
extra : moz-landing-system : lando
2019-10-23 07:20:35 +00:00
Tom Tung
adbf55ab7b 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

--HG--
extra : moz-landing-system : lando
2019-10-21 14:47:52 +00:00
Razvan Maries
f9d8db28af Backed out 5 changesets (bug 1583251) for rust build bustages. CLOSED TREE
Backed out changeset bfe390ad771b (bug 1583251)
Backed out changeset 0113c698b44d (bug 1583251)
Backed out changeset 248ad59168dd (bug 1583251)
Backed out changeset 5d5e3dc17118 (bug 1583251)
Backed out changeset 9e9eaa78c436 (bug 1583251)
2019-10-18 17:59:20 +03:00
Geoff Brown
32490358c2 Bug 1585119 - Re-enable many more mochitests on Android; r=geckoview-reviewers,snorp
Most of these tests have been disabled for a long time; they run well
in the current test environment.
I intend to enable still more mochitests in a future patch.

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

--HG--
extra : moz-landing-system : lando
2019-10-18 14:35:20 +00:00
Tom Tung
b9dbb55e08 Bug 1583251 - P4 - Allow deserialize shared memory for Workers; r=nika,perry
Differential Revision: https://phabricator.services.mozilla.com/D48560

--HG--
extra : moz-landing-system : lando
2019-10-17 18:52:53 +00:00
Bogdan Tara
74f9b0c67c Backed out changeset 667e16c6814c (bug 1587394) for pref lint failure CLOSED TREE 2019-10-17 18:55:15 +03:00
Tom Tung
48bfc7dee9 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

--HG--
extra : moz-landing-system : lando
2019-10-17 14:15:58 +00:00
Jan de Mooij
026691dc76 Bug 1588810 - Fix ctypes UnicodeToNative callback to not assume null-terminated strings. r=bzbarsky
Bug 1586683 replaced the JS_FlattenString in the caller with JS_EnsureLinearString but
I wasn't aware of the nsDependentString vs nsDependentSubstring distinction.

This fixes assertion failures when starting the browser with non-null-terminated
JS strings.

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

--HG--
extra : moz-landing-system : lando
2019-10-16 06:13:07 +00:00
Perry Jiang
87c3eb5a96 Bug 1575185 - Subscribe content processes spawning Service Workers to permission updates r=asuth
Previously, Service Workers could spawn in a process that isn't subscribed
to permission updates, which could happen if that process hadn't loaded any
same-origin documents. To address this, parent-process logic for spawning
Service Workers would snapshot the permissions state to be sent to a content
process.

Unfortunately, this approach could lead to outdated, unsynchronized permissions.
Note that nsIPermissionManager::SetPermissionsWithKey is only used to initialize
permissions for a given key and is a no-op if already called with the same key
in a given process. As a result, the following sequence of events could happen:

Assume a content process CP that isn't subscribed to permission changes for an
origin A:

1) Parent process decides to spawn an origin A Service Worker in CP,
snapshotting a value V for permission P.
2) The Service Worker is spawned in CP, setting CP's permission manager's
permission P to value V (for origin A).
3) Parent process updates its permission P to a value A', which is not
broadcasted to CP (because it's not subscribed).
4) By now, the initial Service Worker has been terminated, and the parent
process decides once again to spawn an origin A Service Worker in CP.
5) The Service Worker is spawned in CP, but the call to SetPermissionsWithKey
is a no-op, leaving CP1 with a mismatched value for permission P.

An additional scenario is if the parent process updates a permission during a
remote Service Worker's lifetime.

This patch, which would subscribe CP1 to permission updates when the parent
process knows a Service Worker would be spawned in CP1, prevents these problems.

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

--HG--
extra : moz-landing-system : lando
2019-10-09 02:23:41 +00:00
Tom Ritter
23ba7b6fe3 Bug 1583949 - Add a check for IsEvalAllowed to the worker callpath for eval() r=ckerschb,baku
This patch does several things.  Because Workers aren't on the main thread,
many of the things done are in the name of off main thread access.

1) Changes a parameter in IsEvalAllowed from a nsIPrincipal to a bool.
   We only used the principal to determined if it was the System Principal.
   Principals aren't thread safe and can only be accessed on Main Thread, so
   if we passed a Principal in, we would be in error. Instead only pass in
   the bool which - for workers - comes from a thread-safe location.

2) Separates out the Telemetry Event Recording and sending a message to the
   console into a new function nsContentSecurityUtils::NotifyEvalUsage. (And
   creates a runnable that calls it.)

   We do this because we will need to only call this method on the main thread.

   Telemetry Event Recording has only ever been called on the Main Thread.
   While I possibly-successfully cut it over to happen Off Main Thread (OMT)
   by porting preferences to StaticPrefs, I don't know if there were other
   threading assumptions in the Telemetry Code. So it would be much safer to
   just continue recording Event Telemetry on the main thread.

   Sending a message to the console requires calling GetStringBundleService()
   which requires main thread. I didn't investigate if this could be made
   thread-safe, I just threw it onto the main thread too.

   If, in IsEvalAllowed, we are on the main thread - we call NotifyEvalUsage
   directly. If we are not, we create a runnable which will then call
   NotifyEvalUsage for us on the main thread.

3) Ports allow_eval_with_system_principal and allow_eval_in_parent_process
   from bools to RelaxedAtomicBool - because we now check these prefs OMT.

4) In RuntimeService.cpp, adds the call to IsEvalAllowed.

5) Add resource://gre/modules/workers/require.js to the allowlist of eval
   usage. This was the script that identified this gap in the first place.
   It uses eval (twice) for structural reasons (scope and line number
   massaging.)  The contents of the eval are the result of a request to a
   uri (which may be internal, like resource://). The whole point of this
   is to implement a CommonJS require() api.

   This usage of eval is safe because the only way an attacker can inject
   into it is by either controlling the response of the uri request or
   controlling (or appending to) the argument. If they can do that, they
   are able to inject script into Firefox even if we cut this usage of eval
   over to some other type of safe(r) script loader.

   Bug 1584564 tracks making sure calls to require.js are safe.

6) Adds cld-worker.js to the allowlist. Bug 1584605 is for refactoring that
   eval usage, which is decidedly non-trivial.

7) Does _not_ enforce the eval restrictions for workers. While I've gotten
   try to be green and not throw up any instances of eval-usage by workers,
   it is much safer to deploy this is Telemetry-only mode for Workers for
   a little bit to see if anything pops up from the Nightly population.

   Bug 1584602 is for enforcing the checks.

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

--HG--
extra : moz-landing-system : lando
2019-10-08 17:31:35 +00:00
Brindusan Cristian
bb90c3cbf6 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
730d95aa10 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

--HG--
extra : moz-landing-system : lando
2019-10-04 15:20:53 +00:00
Tom Ritter
cdd2029b79 Bug 1576254 - Cut WorkerPrincipal over to a real object and implement isSystemOrAddonPrincipal r=baku
Unlike WorkletPrincipal, a WorkerPrincipal had been a simple static object shared by
all Workers. We never needed to consult it about an individual Worker before. Now we
do. So we cut it over from a static object to individual objects for each Worker.

We have an off main thread access problem for the Principal however, WorkerPrivate
has a method UsesSystemPrincipal that returns a bool that was initialized from the
Principal on the main thread. We copy that pattern and add a
UsesAddonOrExpandedAddonPrincipal method that will be called by the
isSystemOrAddonPrincipal method we must implement so we can inheirt from JSPrincipal.

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

--HG--
extra : moz-landing-system : lando
2019-10-04 17:37:09 +00:00
Tom Ritter
cac810aea7 Bug 1576254 - Update wasmForTrustedPrinciples to use a separate pref r=luke
Differential Revision: https://phabricator.services.mozilla.com/D47474

--HG--
extra : moz-landing-system : lando
2019-10-04 17:36:08 +00:00
Tom Ritter
754ebbc4d7 Bug 1576254 - Add a wasmForTrustedPrinciples bool onto ContextOptions that (currently) behaves the exact same as the wasm bool r=luke
In a future commit we will tie this boolean to its own preference value, but here we
initialize it with the same value as the wasm boolean.

We also update wasm::HasSupport to check the to-be-added isSystemOrAddonPrincipal()
method on JSPrincipals to determine which member (wasm or wasmForTrustedPrinciples)
to consult.

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

--HG--
extra : moz-landing-system : lando
2019-10-04 17:35:46 +00:00
Tom Ritter
206eea6eb4 Bug 1576254 - Move Clamping and Jittering from RealmCreationOptions to Behaviors r=luke
CreationOptions are intended to be immutable and not change during realm operation.
Behaviors change, and clamping/jittering should reside on behaviors.

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

--HG--
extra : moz-landing-system : lando
2019-10-04 17:35:26 +00:00
Dzmitry Malyshau
b91906eeac Bug 1581710 - Update WebGPU IDL bindings r=jgilbert,bzbarsky
This mostly updates the bindings to the current state.
No actual logic backing them yet.

*Note*: the IDL does *not* need to be checked for matching the upstream spec precisely at this stage. The upstream is evolving, we just need to update in order to start integrating the implementation. What needs to be checked is - how C++ represents the IDL, esp with regards to derived classes, events, and hierarchies.

The trickiest points, arguably, are:
  - WebGPU -> GPU prefix change
  - the goop for interfaces that are not final

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

--HG--
rename : dom/webgpu/InputState.cpp => dom/webgpu/DeviceLostInfo.cpp
rename : dom/webgpu/Fence.h => dom/webgpu/DeviceLostInfo.h
rename : dom/webgpu/BlendState.cpp => dom/webgpu/OutOfMemoryError.cpp
rename : dom/webgpu/LogEntry.h => dom/webgpu/OutOfMemoryError.h
rename : dom/webgpu/BindGroup.h => dom/webgpu/ProgrammablePassEncoder.cpp
rename : dom/webgpu/BlendState.cpp => dom/webgpu/RenderBundle.cpp
rename : dom/webgpu/BlendState.h => dom/webgpu/RenderBundle.h
rename : dom/webgpu/AttachmentState.cpp => dom/webgpu/ValidationError.cpp
rename : dom/webgpu/AttachmentState.h => dom/webgpu/ValidationError.h
extra : moz-landing-system : lando
2019-10-02 16:46:03 +00:00
Steve Fink
91b1ffaac3 Bug 1560667 - Collection of fixes for things uncovered by improvements to the hazard analysis. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D46534

--HG--
extra : moz-landing-system : lando
2019-10-02 03:20:33 +00:00
Brindusan Cristian
8416452282 Backed out changeset 1ca9b7056c58 (bug 1581710) for mochitest failures at test_enabled.html. CLOSED TREE
--HG--
rename : dom/webgpu/ValidationError.cpp => dom/webgpu/AttachmentState.cpp
rename : dom/webgpu/ValidationError.h => dom/webgpu/AttachmentState.h
rename : dom/webgpu/RenderBundle.cpp => dom/webgpu/BlendState.cpp
rename : dom/webgpu/RenderBundle.h => dom/webgpu/BlendState.h
rename : dom/webgpu/DeviceLostInfo.cpp => dom/webgpu/InputState.cpp
rename : dom/webgpu/OutOfMemoryError.h => dom/webgpu/LogEntry.h
2019-10-02 06:04:25 +03:00
Dzmitry Malyshau
068927599a Bug 1581710 - Update WebGPU IDL bindings r=jgilbert,bzbarsky
This mostly updates the bindings to the current state.
No actual logic backing them yet.

*Note*: the IDL does *not* need to be checked for matching the upstream spec precisely at this stage. The upstream is evolving, we just need to update in order to start integrating the implementation. What needs to be checked is - how C++ represents the IDL, esp with regards to derived classes, events, and hierarchies.

The trickiest points, arguably, are:
  - WebGPU -> GPU prefix change
  - the goop for interfaces that are not final

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

--HG--
rename : dom/webgpu/InputState.cpp => dom/webgpu/DeviceLostInfo.cpp
rename : dom/webgpu/Fence.h => dom/webgpu/DeviceLostInfo.h
rename : dom/webgpu/BlendState.cpp => dom/webgpu/OutOfMemoryError.cpp
rename : dom/webgpu/LogEntry.h => dom/webgpu/OutOfMemoryError.h
rename : dom/webgpu/BindGroup.h => dom/webgpu/ProgrammablePassEncoder.cpp
rename : dom/webgpu/BlendState.cpp => dom/webgpu/RenderBundle.cpp
rename : dom/webgpu/BlendState.h => dom/webgpu/RenderBundle.h
rename : dom/webgpu/AttachmentState.cpp => dom/webgpu/ValidationError.cpp
rename : dom/webgpu/AttachmentState.h => dom/webgpu/ValidationError.h
extra : moz-landing-system : lando
2019-10-02 01:42:07 +00:00
Andrew McCreight
dca80bb570 Bug 1579835, part 5 - Fix remote type matching in SelectTargetActorForServiceWorker. r=asuth
With Fission, the remote type can have the form webIsolated= in
addition to web. IsWebRemoteType() handles both of these cases.

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

--HG--
extra : moz-landing-system : lando
2019-09-25 22:40:49 +00:00
Anny Gakhokidze
f1c694e18f Bug 1582531 - Update fission annotations for skipped tests that are now passing succesfully, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D47347

--HG--
extra : moz-landing-system : lando
2019-09-27 14:25:10 +00:00
Tom Tung
27676f6b0d Bug 1562663 - P4b - Enable SAB for window.postMessage and worker.postMessage; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D43243

--HG--
extra : moz-landing-system : lando
2019-09-23 09:57:24 +00:00
Tom Tung
be1286818d Bug 1562663 - P4a - Deny sharing memery by default for DataClonePolicy; r=nika,lth
Differential Revision: https://phabricator.services.mozilla.com/D45187

--HG--
extra : moz-landing-system : lando
2019-09-26 13:27:25 +00:00
Tom Tung
699c7a419a Bug 1562663 - P3 - Have agent cluster Ids for workers; r=perry,nika
Dedicated workers should be in the same  agent cluster with its parent/creator.
The other workers (ShareWorker/ServiceWorker/ChromeWorker) create another agent
cluster when they are created from the creator.

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

--HG--
extra : moz-landing-system : lando
2019-09-23 09:57:23 +00:00
Boris Zbarsky
fa0ce4b209 Bug 1581315 part 1. Adjust MOZ_MUST_RETURN_FROM_CALLER to only apply to method calls on arguments. r=nika
It doesn't really make sense to enforce this behavior for calls on stack
variables (which presumably we then want to do something with) and doesn't
necessarily make sense to enforce it for member variables either.

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

--HG--
extra : moz-landing-system : lando
2019-09-20 02:17:01 +00:00
Boris Zbarsky
14c30e58d6 Bug 1578173 part 4. Switch event subclasses to constructor operations. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D45391

--HG--
extra : moz-landing-system : lando
2019-09-11 14:35:28 +00:00
James Willcox
ea5c701029 Bug 1343678 - Enable web push pref for GeckoView r=geckoview-reviewers,droeh,smaug,jgraham
Differential Revision: https://phabricator.services.mozilla.com/D41288

--HG--
extra : moz-landing-system : lando
2019-09-05 13:59:32 +00:00
Jean-Yves Avenard
5749840f21 Bug 1556489 - P23 - Only create new ClientSource objects in the content, but use the recreated info from redirects in the parent. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D42260
2019-09-03 10:19:53 +10:00
Mark Banner
709c7ccf0c Bug 1577746 - Automatically enable more ESLint rules for dom/. r=baku
This enables:
- mozilla/no-useless-parameters
- mozilla/no-useless-run-test
- no-extra-boolean-cast
- no-unneeded-ternary

Depends on D44150

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

--HG--
extra : moz-landing-system : lando
2019-09-02 11:23:26 +00:00
Mark Banner
acd70816c6 Bug 1577746 - Enable ESLint rule dot-notation for dom/. r=baku
Depends on D44149

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

--HG--
extra : moz-landing-system : lando
2019-09-02 11:23:05 +00:00
Mark Banner
351d147e2f Bug 1577746 - Enable ESLint rule object-shorthand for dom/. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D44149

--HG--
extra : moz-landing-system : lando
2019-09-02 11:22:27 +00:00
Noemi Erli
478b1751c7 Backed out 5 changesets (bug 1343678) for causing multiple web-platform failures CLOSED TREE
Backed out changeset 4b77646bc788 (bug 1343678)
Backed out changeset 7396789341b1 (bug 1343678)
Backed out changeset 85526faefe6d (bug 1343678)
Backed out changeset 07b757a21222 (bug 1343678)
Backed out changeset 3551cc55620d (bug 1343678)
2019-08-30 00:36:40 +03:00
James Willcox
7586331427 Bug 1343678 - Enable web push pref for GeckoView r=geckoview-reviewers,droeh,smaug
Differential Revision: https://phabricator.services.mozilla.com/D41288

--HG--
extra : moz-landing-system : lando
2019-08-29 18:59:28 +00:00
Boris Zbarsky
dd6deca547 Bug 1575204. Fix crash when trying to run worker runnables on a not-ready-for-it worker thread. r=baku
We're getting crashes because either there's no CycleCollectedJSContext or it
has a null JSContext.  Hard to tell which, and whether this is happening
because our runnable comes really early in thread setup or really late in
thread teardown.  In either case, this is restoring the null-check that used to
be there in this code.

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

--HG--
extra : moz-landing-system : lando
2019-08-29 07:40:58 +00:00
Dorel Luca
547786f1cd Backed out 3 changesets (bug 1343678) for WPT failures on Android. CLOSED TREE
Backed out changeset 619e7838ebfd (bug 1343678)
Backed out changeset 5010684cdca4 (bug 1343678)
Backed out changeset b01343e4c2eb (bug 1343678)
2019-08-28 23:09:08 +03:00
James Willcox
3c29fb1982 Bug 1343678 - Enable web push pref for GeckoView r=geckoview-reviewers,droeh,smaug
Differential Revision: https://phabricator.services.mozilla.com/D41288

--HG--
extra : moz-landing-system : lando
2019-08-28 16:06:39 +00:00
Paul Bone
08bc01ab37 Bug 1576814 - Skip tests that timeout r=kmag
Depends on D43572

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

--HG--
extra : moz-landing-system : lando
2019-08-27 19:07:43 +00:00
Cosmin Sabou
8a4a4f0f3a Bug 1564700 - Disable test_bug949946.html for causing crashes on Android. r=intermittent-reviewers,gbrown
Differential Revision: https://phabricator.services.mozilla.com/D43345

--HG--
extra : moz-landing-system : lando
2019-08-24 23:04:49 +00:00
Kashav Madan
508a24d1a6 Bug 1562264 - Update skip-if annotations, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D41763

--HG--
extra : moz-landing-system : lando
2019-08-23 16:05:08 +00:00
Andrew McCreight
0d718ad91f Bug 1575343, part 3 - Avoid copies in workers and service workers when getting calling location. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D42729

--HG--
extra : moz-landing-system : lando
2019-08-21 14:25:53 +00:00
Thomas Nguyen
cf20303f06 Bug 1528697 - Remove ReferrerPolicy.h and add utils to ReferrerInfo r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D41956

--HG--
extra : moz-landing-system : lando
2019-08-21 12:09:06 +00:00
Thomas Nguyen
32ab8293ff Bug 1528697 - Expose ReferrerPolicy.webidl and use referrerpolicy enum r=smaug
ReferrerPolicy gets tossed back and forth as a uint32_t and
ReferrerPolicy enum in header file. Expose ReferrerPolicyValues from
webidl file and use consistently in native code.

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

--HG--
extra : moz-landing-system : lando
2019-08-21 13:24:45 +00:00
Perry Jiang
a7ce0c3b9e Bug 1552945 - Allow a WorkerPrivate's creator to set its ID. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D31903

--HG--
extra : moz-landing-system : lando
2019-08-20 15:20:40 +00:00
Razvan Maries
595de881b0 Backed out 2 changesets (bug 1562264) for causing Android perma fails. CLOSED TREE
Backed out changeset b66eec7d2e55 (bug 1562264)
Backed out changeset 445eadfd8ce3 (bug 1562264)
2019-08-17 02:24:40 +03:00