These services had their name added to components.conf:
* GfxInfo
* ThirdPartyUtil
* History
* HttpActivityDistributor
* UUIDGenerator
* ServiceWorkerManager
* PermissionManager
These services were added to componenets.conf under a different name:
* DirectoryService => Directory
* IOService => IO
* StringBundleService => StringBundle
* CacheStorageService => CacheStorage
* StreamTransportService => StreamTransport
* SocketTransportService => SocketTransport
These services weren't migrated to components.conf because only Rust
code uses them:
* RemoteAgent
* XULRuntime
* PrefService
These services weren't migrated to components.conf because they're unused:
* ToolkitChromeRegistry (used as ChromeRegistry)
* XULChromeRegistry (used as ChromeRegistry)
* Bits (completely unused)
These services were already available in components.conf but are still
used by rust code:
* URIFixup
These services weren't migrated because they will be handled in
subsequent patchsets:
* ObserverService
For the record, the following Services are being used by Rust code
and must remain until a Rust version of Components.h is written:
* RemoteAgent
* XULRuntime
* PrefService
* URIFixup
* ObserverService
* DirectoryService
* ThirdPartyUtil
Also the cocoa GfxInfo service was changed to use components.conf instead
of registering it at runtime, as all the other widgets were already doing
it this way.
Differential Revision: https://phabricator.services.mozilla.com/D105521
The pref gfx.webrender.software.unaccelerated-widget.allow may be used
to allow software WebRender to be used with new windows/popups that have
transparency on Windows. Otherwise they would fallback to basic layers.
Similarly, the pref gfx.webrender.software.unaccelerated-widget.force
may be used to force software WebRender for all windows that would
fallback to basic layers.
Differential Revision: https://phabricator.services.mozilla.com/D104855
The ChromeWindowTargetActor was not exposed to end users and doesn't support descriptors which will make it a blocker for fission refactors.
So we remove it for now.
Differential Revision: https://phabricator.services.mozilla.com/D105452
Enable three now passing tests which were fixed upstream.
Disable two tests which require the changes from part 3.
Depends on D105458
Differential Revision: https://phabricator.services.mozilla.com/D105459
- Make sure we set the restart reason before calling Restart().
- Extend TRANSACTION_RESTART_REASON to also record the case for fast fallback.
Differential Revision: https://phabricator.services.mozilla.com/D105212
We introduced MOZ_LOW_PARALLELISM_BUILD as a workaround when we migrated to gcp for some gcc builds. Since we switched to clang 11 for some of them, it can be removed.
Differential Revision: https://phabricator.services.mozilla.com/D105598
JS files in packed webextensions (XPIs) are loaded via `nsJARChannel`,
which checks the content type of a file based on the extension by
calling `nsIMIMEService::GetTypeFromExtension()`.
We might not be able to guarantee the exact set of JS file extensions
because this method also asks the OS but it should still be reliable.
We allow `.js`, `.jsm` and `.mjs` (defined in `defaultMimeEntries` and
`extraMimeEntries`).
Differential Revision: https://phabricator.services.mozilla.com/D104450
The waitForScroll argument to promiseMoveMouseAndScrollWheelOver determines if we wait for a scroll event (if waitForScroll is true) or a wheel event (if waitForScroll is false). That might not be clear just from looking at it (where one might assume waitForScroll = false means no waiting at all).
In all cases but one in this test we wait for the scroll event.
When activateAllScrollFrames = false I guess this is enough to guarantee that any new metrics have been sent in a transaction. But it is not with activateAllScrollFrames = true for two reasons.
The first is that apz can handle the wheel event for any scroll frame immediately, it will send a repaint request to content which will scroll and send a scroll event. Content can then handle that scroll event without even sending it's current metrics in a transaction. So we need to wait for paints to be flushed.
But even that is not enough because we can wait for a paint but in several cases we need a minimal display port to be cleared to be full display port and that happens in PrepareForSetTargetAPZCNotification, which only happens after content gets the wheel event, which can happen after apz gets the wheel event, and after content gets the scroll event, and after content gets the scroll event and paints.
So we need to wait for the wheel event to rearch content and then wait for paints.
Differential Revision: https://phabricator.services.mozilla.com/D105407
This will reduce the false-positive rate that sometimes causes devs to
ignore other important warnings because they expect to see these
warnings because of module/legacy code styles.
```
if (foo) return; // no longer warns
if (bar)
return; // still warns
```
clang-format will sometimes turn long-line versions of the former into
the latter, and this warning will pick those as readability warnings.
NB: This is Chromium style for same-line conditional statements.
Another test result json has its EOL-newline removed too, since that's
what the script does and I'm just committing its results.
Differential Revision: https://phabricator.services.mozilla.com/D105497
IOUtils now provides a shutdown client for clients to register IO jobs with
that need to run before shutdown finishes. This allows IO jobs to run during
the profileBeforeChange phase.
IOUtils' event queuing has been refactored into a singleton EventQueue class,
which is responsible for running tasks and setting up shutdown blockers. It is
now guarded behind a StaticDataMutex so that is more explicitly clear what is
and is not re-entrant. (The atomic sShutdownFinished cannot be placed behind
the mutex because we need to keep track of that state even when we do not have
an EventQueue.)
Differential Revision: https://phabricator.services.mozilla.com/D103973
With this patch series, firefox now renders
flexbox-table-flex-items-1.html the same as Google Chrome. Hence the
modification to flexbox-table-flex-items-1-ref.html.
Both table-as-item-flex-cross-size.html and
table-as-item-stretch-cross-size.html contain multiple captions. We still
don't support multiple caption (bug 144517), but passing them means we
correctly subtract caption's block-size when overriding table flex
item's block-size.
We also don't have enough test coverage for table flex items in column
flex container. Add some reftests adapted from existing ones that tests
table flex items in a row flex containers
Differential Revision: https://phabricator.services.mozilla.com/D103440
This is the main patch of this bug.
When a flex container provides size overrides for a table flex item,
there are two use cases.
(1) When resolving flex base size, we want to use `flex-basis` to
replace the preferred main size on the *inner table frame* directly.
This is how `height` works on a table element. That is, it sets the
height of the inner table frame, not the table wrapper. This patch
invents `mApplyOverridesVerbatim` flag to tell table wrapper frame don't
do any modification.
(2) When overriding main-size/cross-size for a table flex item, the size
is for *table wrapper frame*. To apply the size to inner table frame,
the table wrapper frame needs adjust the size by subtracting the area
occupied by caption, border, and padding (depending on the box-sizing).
This patch fixes the flex base resolution, and implements the logic for
(2).
We use nsLayoutUtils::GetStyleFrame() to dig into inner table's sizing
properties when resolving flex base size, so we can stop inheriting flex
properties to table wrapper frame in ua.css.
We also need to check style frame's StylePosition() in IsCrossSizeAuto()
so that non-'auto' sizes can prevent tables from being stretched in the
cross axis, just as happens with other flex items. Otherwise with this
patch, the table flex item with fixed height in
dom/flex/test/chrome/test_flex_item_rect.html will be wrongly stretched.
Differential Revision: https://phabricator.services.mozilla.com/D103437
`UseAutoISize` flag is buggy when used on table flex items because it
never propagates to inner table frame.
Luckily, we can fix it by replacing the flag with StyleSizeOverrides
emplacing an 'auto' mStyleISize, because when computing the size, the
size overrides already propagates from table wrapper to inner table via
the following path:
`nsTableWrapperFrame::ComputeSize()` [1] ->
`nsTableWrapperFrame::ComputeAutoSize()` ->
`nsTableWrapperFrame::InnerTableShrinkWrapISize()` ->
`nsTableFrame::ComputeSize()`.
Part 3 is going to propagate the size overrides to inner table in
`nsTableWrapperFrame::CreateReflowInputForInnerTable()` during reflow.
This patch fixes the content size suggestion for table flex items.
Combining this patch with Part 3, we can fix those reftests in Part 4.
[1] In this patch, the table wrapper is still using nsContainerFrame's
ComputeSize(), but Part 3 is going to override it.
Differential Revision: https://phabricator.services.mozilla.com/D103438