without this, permissions set in the main process that are site-scoped on origins with non-null ports are not pushed out to the content process.
Differential Revision: https://phabricator.services.mozilla.com/D186984
Also, remove a too-early check for third-partyness from StorageAccessAPIHelper::CheckBrowserSettingsDecidesStorageAccessAPI- that gets checked later anyway and should not override an inactive document
Differential Revision: https://phabricator.services.mozilla.com/D186983
- run action in the context of the target repo, rather than the fork
- use a cleaner way to obtain the pull request number
- utilise a sparse checkout to avoid unnecessary I/O
Differential Revision: https://phabricator.services.mozilla.com/D188430
Add a limits.js test for all the new impl defined limits.
Fix off by one error in max types.
Add array.new_fixed restriction.
Differential Revision: https://phabricator.services.mozilla.com/D188646
- Error on bits set in flags that we don't recognize
- Fallback to immediate source type for source type when in unreachable code
Differential Revision: https://phabricator.services.mozilla.com/D188645
We store a *typedef -> u32 map on TypeContext which we can use to get the type index
for a type definition. When a module has multiple types that canonicalize to the
same value, we only store the first index in the map.
We use this map when serializing the type section. We currently serialize every
recursion group (even if it was already serialized). When deserializing we re-run
canonicalization which will de-duplicate this.
These two combined can cause a module with types:
0: (type (struct (field 0)))
1: (type (struct (field 1))) ;; identical to 0
To be serialized as:
0: (type (struct (field 0)))
1: (type (struct (field 0))) ;; not identical to 0!
The solution is to only encode the first recursion group and then
re-use it for the second recursion group.
Differential Revision: https://phabricator.services.mozilla.com/D188644
The subtyping depth field on STV is 32-bits, we should use load32.
The hardcoded subtyping depth limit and LEB byte order currently
save us here, but we shouldn't rely on that.
Differential Revision: https://phabricator.services.mozilla.com/D188643
`mach test` was unconditionally calling `shutdown()` on the logger,
which doesn't work if the harness (reasonably) already shut down the
logger itself. Add a new property to check if the logger has been shut
down, and check it before calling shutdown.
Differential Revision: https://phabricator.services.mozilla.com/D188447
Unfortunately `mach test` makes unverified assumptions about the top
level kwargs of all test suites. This broke wpt because it was passing
around a `subsuite` argument that was previously ignored, but recently
caused a conflict in functions with signatures like
function(subsuite, **kwargs).
Fow now just remove the argument in the part of the wpt frontend that
handles data expected to be from `mach test`.
Differential Revision: https://phabricator.services.mozilla.com/D188446
* Modify panel-list and panel-item to support submenu list items
* Add submenu items for Move Tabs and Send Tabs to Devices to open tabs
* Add test coverage for submenu items in open tabs
Differential Revision: https://phabricator.services.mozilla.com/D186471
Implemented support for fallback values in CSS attr():
`attr(<attr-name>, <attr-fallback>)`
Full syntax supported as of this rev:
`[namespace? `|`]? ident [`,` fallback]?`
Spec: https://drafts.csswg.org/css-values-5/#attr-notation
Also added a new WPT reftest for attr fallback without a type,
and some new attr serialization WPTs (namespace and fallback).
Differential Revision: https://phabricator.services.mozilla.com/D176801
The goal to call QuotaManager::EnsureStorageIsInitializedInternal only from
InitOp has been achieved. It's now easy to change the method to be a private
method.
Changes done in this patch
- moved InitOp to the mozilla::dom::quota namespace
- added InitOp as a friend to QuotaManager
- changed QuotaManager::EnsureStorageIsInitializedInternal to be a private
method
Differential Revision: https://phabricator.services.mozilla.com/D186208
TestFileOutputStream currently doesn't create any client directory lock and
just directly bounces to the QuotaManager I/O thread where it ensures that
storage is initialized. This should be now replaced by calling
QuotaManager::OpenClientDirectory on the PBackground thread.
Changes done in this patch:
- added a PBackground task which is executed first
- added QuotaManager::OpenClientDirectory call on the PBackground thread
- removed QuotaManager::EnsureStorageIsInitializedInternal call on the IO
thread
Differential Revision: https://phabricator.services.mozilla.com/D186207
Origin operations which require storage initialization currently create a
universal directory lock first and then when the universal directorylock is
acquired, they bounce to the QuotaManager I/O thread where they ensure that
storage is initialized. This can be now replaced by just calling
QuotaManager::OpenStorageDirectory.
Changes done in this patch:
- replaced QuotaManager::CreateDirectoryLockInternal call with
QuotaManager::OpenStorageDirectory in corresponding OpenDirectory
implementations
- removed QuotaManager::EnsureStorageIsInitializedInternal call from
corresponding DoDirectoryWork implementations
- added QuotaManager::AssertStorageIsInitializedInternal to corresponding
DoDirectoryWork implementations
Differential Revision: https://phabricator.services.mozilla.com/D186206
SaveOriginAccessTimeOp::DoDirectoryWork currently doesn't call
QuotaManager::EnsureStorageIsInitializedInternal and just expects that
something else initialized storage previously. This seems to work, but it would
be cleaner to always make sure that storage is initialized. However, adding
QuotaManager::EnsureStorageIsInitializedInternal revealed another problem.
Storage shudown or storage clearing acquires an exlusive lock over entire
storage area which essentially forces that all existing directory locks are
released first. When the last directory lock for an origin is released, saving
of origin access time is scheduled. The problem is that it's scheduled after
the exclusive lock for storage shutdown or storage clearing, so storage would
be initialized again in the end or access time wouldn't be saved at all due
to quota manager shutdown being already in progress.
Changes done in this patch:
- added QuotaManager::EnsureStorageIsInitializedInternal call to
SaveOriginAccessTimeOp::DoDirectoryWork
- changed QuotaManager::UnregisterDirectoryLock to work with already cleared
directory lock tables
- added a new QuotaManager::ClearDirectoryLockTables method
- added QuotaManager::ClearDirectoryLockTables call to
ShutdownStorageOp::OpenDirectory and ClearStorageOp::OpenDirectory
- made ClearStorageOp and ShutdownStorageOp friend classes of QuotaManager
Differential Revision: https://phabricator.services.mozilla.com/D187877