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

777088 Коммитов

Автор SHA1 Сообщение Дата
Narcis Beleuzu ce6ad351e2 Backed out changeset 12736f9bf7b5 (bug 1741784) for compositor leakchecks. CLOSED TREE 2021-11-18 18:07:09 +02:00
Gijs Kruitbosch b11c3672e8 Bug 1738264 - don't show session restore infobar for private browsing windows, r=sfoster
This is a test.

Differential Revision: https://phabricator.services.mozilla.com/D129971
2021-11-18 15:00:44 +00:00
Ben Hearsum 22abdf8e0c Bug 1733284: Part 2: Re-launch Firefox with an App path when running in a package context r=mhowell,tkikuchi
Differential Revision: https://phabricator.services.mozilla.com/D131382
2021-11-18 14:37:36 +00:00
Nick Alexander bf47ece634 Bug 1733284: Part 1: Expose Windows packaged app utilities to code outside of XUL. r=mhowell
This re-arranges some deckchairs, allowing to have the launcher
process query the Windows packaged app environment.

Depends on D129882

Differential Revision: https://phabricator.services.mozilla.com/D130187
2021-11-18 14:37:36 +00:00
Sebastian Hengst 465d2a9aa3 Bug 1741848 - update in-tree Bugzilla component for Picture-in-Picture files. r=mconley DONTBUILD
The component got added in bug 1741657.

Differential Revision: https://phabricator.services.mozilla.com/D131488
2021-11-18 14:28:51 +00:00
sotaro 79ce913ffa Bug 1741799 - Remove SupportsThreadSafeWeakPtr from WinWindowOcclusionTracker r=nical,gfx-reviewers
SupportsThreadSafeWeakPtr is not necessary for current WinWindowOcclusionTracker.

Differential Revision: https://phabricator.services.mozilla.com/D131469
2021-11-18 14:19:59 +00:00
sotaro 2dc3b69cde Bug 1741784 - Remove unused code around CompositableHost r=gfx-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D131466
2021-11-18 14:16:35 +00:00
sotaro f0775d8818 Bug 1741783 - Rename PuppetWidget::HasLayerManager() to HasWindowRenderer() r=gfx-reviewers,nical
PuppetWidget already renamed GetLayerManager() to GetWindowRenderer().

Differential Revision: https://phabricator.services.mozilla.com/D131465
2021-11-18 14:16:00 +00:00
Bryce Seager van Dyk 3288f5d095 Bug 1741677 - Make media.flac.enabled pref into a RelaxedAtomicBool. r=alwu
Depends on D131431

Differential Revision: https://phabricator.services.mozilla.com/D131432
2021-11-18 14:05:23 +00:00
Bryce Seager van Dyk d6fa8ae9e5 Bug 1741677 - Add crash test. r=alwu
Differential Revision: https://phabricator.services.mozilla.com/D131431
2021-11-18 14:05:22 +00:00
stransky d1cc9bb7d1 Bug 1741837 [Linux] Check mShell instead of mContainer for cross application D&D, r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D131486
2021-11-18 13:42:10 +00:00
André Bargull e9f5ae4e4f Bug 1741411 - Part 2: Emit JSOp::OptimizeSpreadCall for all calls with a single spread argument. r=iain
After part 1 we can lift the single name operand restriction and emit
`JSOp::OptimizeSpreadCall` for all calls with a single spread argument.

Differential Revision: https://phabricator.services.mozilla.com/D131243
2021-11-18 13:35:25 +00:00
André Bargull e465bccb21 Bug 1741411 - Part 1: Only emit argument operand once for optimised spread calls. r=iain
This commit changes the byte code for optimised spread calls to emit the spread
operand only once.

The new `BytecodeEmitter::emitSpreadIntoArray()` method was added to spread an
on-stack value into an array. This method is needed to avoid emitting the spread
operand another time in 'BytecodeEmitter::emitArray()`.

Differential Revision: https://phabricator.services.mozilla.com/D131242
2021-11-18 13:35:24 +00:00
André Bargull 584f51e83f Bug 1740737 - Part 4: Scalar replace MArrayFromArgumentsObject. r=iain
`...arguments` can be seen as if a rest array object had been created for a
function without additional formals:
```js
// |f| and |g| have identical semantics when all iteration related functions
// are still in their initial state.
function f() { h(...arguments); }
function g(...rest) { h(...rest); }
```

The idea when replacing `MArrayFromArgumentsObject` is now as follows:
We replace `MArrayFromArgumentsObject` with the identical instructions we use
when creating a rest array (cf. `WarpBuilder::build_Rest()`), except that we set
the number of formals to zero. So inlined arguments are replaced with either
`MNewArrayObject` or `MNewArray` and non-inlined arguments are replaced with
`MRest`.
We then rely on scalar replacement for these replacements, so that we eventually
end up with all instructions replaced. This works because scalar replacement
processes the graph in reverse post-order and because the new instructions are
placed after `MCreate{Inlined}ArgumentsObject`.

The `ArrayFromArgumentsObjectResult` CacheIR op is changed to hold the shape of
the default array shape. This change is needed so that scalar replacement can
replace `MArrayFromArgumentsObject` with `MNewArrayObject` for the case of
inlined arguments.

Differential Revision: https://phabricator.services.mozilla.com/D130989
2021-11-18 13:35:24 +00:00
André Bargull 9ecd3741a2 Bug 1740737 - Part 3: Transpile ArrayFromArgumentsObjectResult. r=iain
The transpiled code simply calls a VM function and performs no further
optimisations.

Differential Revision: https://phabricator.services.mozilla.com/D130988
2021-11-18 13:35:23 +00:00
André Bargull 3010b4c76f Bug 1740737 - Part 2: Handle arguments in optimised spread calls. r=iain
When the `arguments` object is still in its initial state (no overridden
elements, length, or iterator), `...arguments` can be optimised to directly
create the spread array from the arguments' content instead of going through
the iterator code.

The CacheIR code additionally disallows overridden or forwarded arguments in
order to further optimise this operation during scalar replacement. See part 4.

Differential Revision: https://phabricator.services.mozilla.com/D130987
2021-11-18 13:35:23 +00:00
André Bargull 6c359070d8 Bug 1740737 - Part 1: Change OptimizeSpreadCall to return the optimised array or undefined. r=iain
The current `JSOp::OptimizeSpreadCall` optimisation only works when the input
is already a packed array. So it won't help to optimise code like
`super(...arguments)`, which is emitted by the TypeScript compiler when
creating default derived class constructors.

For example:
```ts
class Example extends Object {
  public name = "field";
}
```

Is compiled to:
```js
class Example extends Object {
  constructor() {
    super(...arguments);
    this.name = "field";
  }
}
```

To support this pattern, `JSOp::OptimizeSpreadCall` is changed to return a
packed array instead of returning `true` when the optimisation can be applied.
When the optimisation can't be used, `undefined` is returned instead of `false`.

The emitted byte code looks roughly like:
```
array_or_undef = optimiseSpreadCall(value);
if (array_or_undef === undefined) {
  // Emit iterator protocol code.
}
spreadCall(array_or_undef);
```

The additional comparison `array_or_undef === undefined` needs to be handled
during scalar replacement, so we can still scalar replace arrays in optimised
spread calls.

Parts 2-4 will add `arguments` support to `JSOp::OptimizeSpreadCall`.

Differential Revision: https://phabricator.services.mozilla.com/D130986
2021-11-18 13:35:23 +00:00
ffxbld a7ed70886d No Bug, mozilla-central repo-update HSTS HPKP remote-settings - a=repo-update r=RyanVM
Differential Revision: https://phabricator.services.mozilla.com/D131481
2021-11-18 13:33:04 +00:00
Hannah Peuckmann 6cbbfed92e Bug 1681494 - Switched network.cookie.lifetimePolicy scalar to opt-out. r=pbz
Differential Revision: https://phabricator.services.mozilla.com/D130994
2021-11-18 13:24:21 +00:00
Nicolas Chevobbe b3f55dd1b1 Bug 1741808 - [devtools] Fix increased failures on browser_toolbox_backward_forward_navigation.js when EFT is enabled. r=ochameau.
Differential Revision: https://phabricator.services.mozilla.com/D131475
2021-11-18 13:22:35 +00:00
Nicolas Chevobbe 11bef8cace Bug 1741803 - [devtools] Fix browser_inspector_iframe-picker-bfcache-navigation with EFT. r=ochameau.
This required 2 changes:
- fixing WatcherActor notifyTargetAvailable so we get notified about the iframe
  target when doing a bfcache navigation (a test case is added in browser_target_command_bfcache.js as well)
- Checking is the target isn't destroyed in inspector onTargetSelected

Differential Revision: https://phabricator.services.mozilla.com/D131471
2021-11-18 13:22:35 +00:00
Nicolas Chevobbe 149cd3677e Bug 1740453 - [devtools] Handle onTargetSelected in accessibility panel. r=ochameau.
A couple tests are added to check that the panel works fine when using the iframe picker.

Differential Revision: https://phabricator.services.mozilla.com/D130611
2021-11-18 13:22:34 +00:00
Julian Seward 0e3ed22e10 Bug 1713092 - Remove redundant bitwise {and/or/xor}{32,64} for wasm-via-Ion. r=lth.
This patch performs MIR-level folding of bitwise {and/or/xor}{32,64} arising
from wasm inputs.  JS handling of and/or/xor is unchanged -- this patch adds a
new path (MIR node) for the wasm/machine-level-semantics versions of these
operations, which then participates in constant folding (via GVN) in the
"normal" way.  Changes:

jit-test/tests/wasm/binop-x64-ion-folding.js:
* new file with test cases

jit/MIR.h:
* new node kind MWasmBinaryBitwise for wasm-only {and/or/xor}{32,64}

jit/MIR.cpp:
* new method MWasmBinaryBitwise::foldsTo to handle all folding cases
* added a few small helper functions for ::foldsTo

jit/Lowering.cpp:
* LIRGenerator::visitTest: also accept MWasmBinaryBitwise with subopcode And
  when creating LBitAndBranch instructions.
* LIRGenerator::lowerBitOp: change arg type from MBinaryBitwiseInstruction to
  MBinaryInstruction so as to also accept MWasmBinaryBitwise.
* LIRGenerator::visitWasmBinaryBitwise: new function.  Generate LIR using
  scheme identical to that of MBinaryBitwiseInstruction.

wasm/WasmIonCompile.cpp
* a new overload for MDefinition* binary(..), taking a
  MWasmBinaryBitwise::SubOpcode value
* generate MWasmBinaryBitwise as appropriate, via function
  EmitBitwiseAndOrXor
* remaining uses of EmitBitwise renamed to EmitShift

Differential Revision: https://phabricator.services.mozilla.com/D130038
2021-11-18 13:00:14 +00:00
Raphael Ferrand 702f0ad086 Bug 1498224 - [devtools] Apply new classnames as you type in the .cls section of the rule-view r=jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D129515
2021-11-18 12:52:22 +00:00
Andrew Creskey cdd275e25c Bug 1741163 - Add the option to collect overlapping snapshots r=mossop
Added api to collect overlapping snapshots (i.e. those from urls that the user interacted with within an hour of the context url).
This will allow for more relevant snapshot selection.

Differential Revision: https://phabricator.services.mozilla.com/D131132
2021-11-18 12:35:17 +00:00
Frederik Braun ff85ee61be Bug 1738418 - set sandboxflags for object/embed loads correctly r=ckerschb,smaug,necko-reviewers
Depends on D130958

Differential Revision: https://phabricator.services.mozilla.com/D130959
2021-11-18 12:21:07 +00:00
Marian-Vasile Laza 475ae37175 Backed out 6 changesets (bug 1741411, bug 1740737) for causing build bustages on CacheIR.cpp. CLOSED TREE
Backed out changeset 7f550858162e (bug 1741411)
Backed out changeset f87b1d574cbc (bug 1741411)
Backed out changeset 6ee89e252b76 (bug 1740737)
Backed out changeset 51f6dd19dc14 (bug 1740737)
Backed out changeset b89529d42aad (bug 1740737)
Backed out changeset 1b951bd25193 (bug 1740737)
2021-11-18 14:19:37 +02:00
André Bargull 57dbf05fa9 Bug 1741411 - Part 2: Emit JSOp::OptimizeSpreadCall for all calls with a single spread argument. r=iain
After part 1 we can lift the single name operand restriction and emit
`JSOp::OptimizeSpreadCall` for all calls with a single spread argument.

Differential Revision: https://phabricator.services.mozilla.com/D131243
2021-11-18 11:37:30 +00:00
André Bargull 7090317ef2 Bug 1741411 - Part 1: Only emit argument operand once for optimised spread calls. r=iain
This commit changes the byte code for optimised spread calls to emit the spread
operand only once.

The new `BytecodeEmitter::emitSpreadIntoArray()` method was added to spread an
on-stack value into an array. This method is needed to avoid emitting the spread
operand another time in 'BytecodeEmitter::emitArray()`.

Differential Revision: https://phabricator.services.mozilla.com/D131242
2021-11-18 11:37:30 +00:00
André Bargull 5a34a4a95c Bug 1740737 - Part 4: Scalar replace MArrayFromArgumentsObject. r=iain
`...arguments` can be seen as if a rest array object had been created for a
function without additional formals:
```js
// |f| and |g| have identical semantics when all iteration related functions
// are still in their initial state.
function f() { h(...arguments); }
function g(...rest) { h(...rest); }
```

The idea when replacing `MArrayFromArgumentsObject` is now as follows:
We replace `MArrayFromArgumentsObject` with the identical instructions we use
when creating a rest array (cf. `WarpBuilder::build_Rest()`), except that we set
the number of formals to zero. So inlined arguments are replaced with either
`MNewArrayObject` or `MNewArray` and non-inlined arguments are replaced with
`MRest`.
We then rely on scalar replacement for these replacements, so that we eventually
end up with all instructions replaced. This works because scalar replacement
processes the graph in reverse post-order and because the new instructions are
placed after `MCreate{Inlined}ArgumentsObject`.

The `ArrayFromArgumentsObjectResult` CacheIR op is changed to hold the shape of
the default array shape. This change is needed so that scalar replacement can
replace `MArrayFromArgumentsObject` with `MNewArrayObject` for the case of
inlined arguments.

Differential Revision: https://phabricator.services.mozilla.com/D130989
2021-11-18 11:37:30 +00:00
André Bargull 4a701b65c8 Bug 1740737 - Part 3: Transpile ArrayFromArgumentsObjectResult. r=iain
The transpiled code simply calls a VM function and performs no further
optimisations.

Differential Revision: https://phabricator.services.mozilla.com/D130988
2021-11-18 11:37:29 +00:00
André Bargull 109673303b Bug 1740737 - Part 2: Handle arguments in optimised spread calls. r=iain
When the `arguments` object is still in its initial state (no overridden
elements, length, or iterator), `...arguments` can be optimised to directly
create the spread array from the arguments' content instead of going through
the iterator code.

The CacheIR code additionally disallows overridden or forwarded arguments in
order to further optimise this operation during scalar replacement. See part 4.

Differential Revision: https://phabricator.services.mozilla.com/D130987
2021-11-18 11:37:29 +00:00
André Bargull 1375b8c104 Bug 1740737 - Part 1: Change OptimizeSpreadCall to return the optimised array or undefined. r=iain
The current `JSOp::OptimizeSpreadCall` optimisation only works when the input
is already a packed array. So it won't help to optimise code like
`super(...arguments)`, which is emitted by the TypeScript compiler when
creating default derived class constructors.

For example:
```ts
class Example extends Object {
  public name = "field";
}
```

Is compiled to:
```js
class Example extends Object {
  constructor() {
    super(...arguments);
    this.name = "field";
  }
}
```

To support this pattern, `JSOp::OptimizeSpreadCall` is changed to return a
packed array instead of returning `true` when the optimisation can be applied.
When the optimisation can't be used, `undefined` is returned instead of `false`.

The emitted byte code looks roughly like:
```
array_or_undef = optimiseSpreadCall(value);
if (array_or_undef === undefined) {
  // Emit iterator protocol code.
}
spreadCall(array_or_undef);
```

The additional comparison `array_or_undef === undefined` needs to be handled
during scalar replacement, so we can still scalar replace arrays in optimised
spread calls.

Parts 2-4 will add `arguments` support to `JSOp::OptimizeSpreadCall`.

Differential Revision: https://phabricator.services.mozilla.com/D130986
2021-11-18 11:37:28 +00:00
amy churchwell ef30fc70a2 Bug 1738855 - restore light theme active tab styles. r=dao
Differential Revision: https://phabricator.services.mozilla.com/D130401
2021-11-18 11:28:55 +00:00
Alexandre Poirot 8ed2c76f1f Bug 1740292 - [devtools] Remove target actor's _detach method. r=nchevobbe
Well, the RDP method "detach" still exists, but is now destroying the target actor.
There is no more intermediate state where the actor is "detached" but not destroyed,
which is confusing and no longer useful now that we can longer attach again.

Differential Revision: https://phabricator.services.mozilla.com/D130916
2021-11-18 10:57:02 +00:00
Alexandre Poirot 71f51e2a2f Bug 1740292 - [devtools] Remove all notion of "attached" in target actors. r=nchevobbe
This might make the leftover "detach" method a bit more special.
But ideally we would get rid of it and convert it to a call to target actor's destroy method.

Differential Revision: https://phabricator.services.mozilla.com/D130915
2021-11-18 10:57:02 +00:00
Alexandre Poirot 841b8e961c Bug 1740292 - [devtools] Remove target actor's attach method entirely. r=nchevobbe,devtools-backward-compat-reviewers
(except for the special edgecase of worker's hybrid descriptor/target)

Differential Revision: https://phabricator.services.mozilla.com/D130914
2021-11-18 10:57:01 +00:00
Alexandre Poirot 487d9677f3 Bug 1740292 - [devtools] Stop calling target front attach method. r=nchevobbe
Previous patches made attach method become a no-op, so all these callsites can be removed.

Differential Revision: https://phabricator.services.mozilla.com/D130913
2021-11-18 10:57:01 +00:00
Alexandre Poirot 5aea7b3306 Bug 1740292 - [devtools] Merge target actor's `attach` methods into their constructors. r=nchevobbe
By doing that, we no longer have to ensure calling attach here and there.
Some followups will be helpful to get rid of detach and all mentions of attach/detach/attached.
Some code, like descriptors and tests are still calling attach, which is now a no-op.
Gettind rid of detach might be slightly more complicated.

Differential Revision: https://phabricator.services.mozilla.com/D130843
2021-11-18 10:57:01 +00:00
Alexandre Poirot 95bb482288 Bug 1740292 - [devtools] Stop calling Target actor's `attach` method from the frontend. r=nchevobbe,devtools-backward-compat-reviewers
Calling attach was important to bootstrap the thread actor and retrieve its actorID.
But now with server target this is done early on and we already retrieve the actorID
via form(). Except for workers, but I fixed that.

The next patch will ensure that, on the server side we fully initialize the target actors
as soon as they are created.

Differential Revision: https://phabricator.services.mozilla.com/D130842
2021-11-18 10:57:00 +00:00
Alexandre Poirot 19f5a90b8b Bug 1740292 - [devtools] Avoid exception in DOCUMENT_EVENT listener when running xpcshell tests. r=nchevobbe
Note that these exception doesn't seem to make the test fail (for ex in test_nesting-03.js).

Differential Revision: https://phabricator.services.mozilla.com/D130841
2021-11-18 10:56:59 +00:00
Alexandre Poirot 572abaa684 Bug 1740292 - [devtools] Use a single method to create xpcshell target globals. r=nchevobbe
testGlobal and createTestGlobal were redundant.

Differential Revision: https://phabricator.services.mozilla.com/D130840
2021-11-18 10:56:59 +00:00
Henrik Skupin d3c1ad40a8 Bug 1734354 - [puppeteer] Bump Puppeteer (Fission job) to Tier 1. r=webdriver-reviewers,jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D131479
2021-11-18 10:39:18 +00:00
Kershaw Chang 14db165b22 Bug 1734609 - Fix the test:testAllRecordsInHttp3ExcludedList, r=necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D130637
2021-11-18 10:22:15 +00:00
Kershaw Chang 743032056b Bug 1734609 - Make sure we don't dispatch a transaction more than once, r=necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D130250
2021-11-18 10:22:15 +00:00
Gecko c622466e6d Bug 836789 - changed to using weak references to observers in the _init function and deleted unnessesary removeObserver calls in the _dispose function. r=emilio,mak Cobos Álvarez
Differential Revision: https://phabricator.services.mozilla.com/D131042
2021-11-18 09:55:06 +00:00
stransky 664251da5a Bug 1740897 [X11] Make parent container of D&D popup transparent to avoid flickering, r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D131252
2021-11-18 09:44:10 +00:00
Andreas Pehrson a1427f1f0b Bug 1738931 - Make the TaskQueueWrapper's shutdown mutex recursive. r=bwc
Differential Revision: https://phabricator.services.mozilla.com/D131445
2021-11-18 09:32:34 +00:00
Andreas Pehrson 3068d523b2 Bug 1738931 - Unset remote SSRC in a direct task (stable state) to avoid re-entrancy. r=bwc
...rather than by unsetting the old remote ssrc on all other conduits that
already have it set.

With this patch we don't risk re-entrancy into UnsetRemoteSSRC (CallWrapper,
VideoConduit) or SetRemoteSSRCConfig (VideoConduit).

Differential Revision: https://phabricator.services.mozilla.com/D130270
2021-11-18 09:32:33 +00:00
Christoph Kerschbaumer d6e438a50f Bug 1741585: Update more tests within toolkit/components/antitracking/test/ to work with https-first enabled r=timhuang
Differential Revision: https://phabricator.services.mozilla.com/D131332
2021-11-18 09:20:02 +00:00