We encounter frequent crashes in glLinkProgram on some Adreno
devices. This is likely due to a driver bug, but we have been unable
to figure out the exact cause and work around it.
According to the crash data, this bug appears to affect Adreno 505 and
506 devices running Android 9 only. Disable webrender on these devices
in order to avoid the crash.
Depends on D114949
Differential Revision: https://phabricator.services.mozilla.com/D114950
On Adreno 505 and 506 devices we encounter frequent crashes when
compiling shaders. We previously attempted to work around this by
ensuring that the source strings were always unique, as we believed it
may be due to buggy caching internally in the driver. This did not
have any effect, however, so this patch reverts the attempted
workaround.
Differential Revision: https://phabricator.services.mozilla.com/D114949
- Remove reference to ConnecionEntry from DnsAndConnectSocket. If ConnecionEntry is needed it is obtain from nsHttpConnectionMgr. It is only needed when a final connection is being set up.
- Put all functions that add and remove a DnsAndConnectSocket from the list in ConnecionEntry into one place (InsertIntoDnsAndConnectSockets, RemoveDnsAndConnectSocket, CloseAllDnsAndConnectSockets). Only these connection should remove/add DnsAndConnectSocket to ensure proper counting.
- Access DnsAndConnectSocket mostly from ConnecionEntry (e.g. refactor TryClaimingDnsAndConnectSocket).
- Remove some dead code (e.g. IsInDnsAndConnectSockets)
- Move some function into ConnecionEntry for a better code factoring (CreateDnsAndConnectSocket, MaybeProcessCoalescingKeys)
- Remove code that sets DNS flags in TransportSetup::SetupStreams because nsISocketTransport is not responsible for DNS lookups any more.
Differential Revision: https://phabricator.services.mozilla.com/D113119
When taking focus on <input> element that has large text such as 1MB, we
cannot pass current text to InputConnection.
Since we use binder call to set initial text to InputConnection, large text
causes TransactionTooLargeException exception. So we use small chunked data
(64K length) instead.
Differential Revision: https://phabricator.services.mozilla.com/D114710
XPCOMUtils._scriptloader is a read-only getter if it's never been called. Assigning a value to it throws an exception and breaks Thunderbird Mochitest.
Differential Revision: https://phabricator.services.mozilla.com/D114802
When not profiling, ShutdownProfilerChild should be quick, so it's safe to run synchronously.
In this case, we don't need to manually shutdown the thread (to wait for the previously-async task).
This removes the risky thread-shutdown with its inner event-handling loop, where all crashes in bug 1613798 happen.
Differential Revision: https://phabricator.services.mozilla.com/D114845
SprintfLiteral doesn't support "%#llx" anymore.
So this patch switches to an explicit "0x%llx" to output addresses as the symbolicator expects.
Differential Revision: https://phabricator.services.mozilla.com/D114914
This fixes an issue we had with pretty printing scripts
containing private fields.
A test case is added in browser_dbg-pretty-print.js to
ensure it stays this way.
Differential Revision: https://phabricator.services.mozilla.com/D114816
Most of the time, all shapes in the shape lineage will have the same BaseShape,
so we only need to trace its children once.
Differential Revision: https://phabricator.services.mozilla.com/D114851
We'd like to know if there are any problems with starving content processes
of cleaning up memory in a timely way. Add some telemetry to get a sense of
this.
Differential Revision: https://phabricator.services.mozilla.com/D113275
When `aGridFrame.mFrame` is a scroll frame, the inner scrolled frame
`subgridFrame` only has padding, but no margin nor border. We should add
margin and border from the outer scroll frame to `mMarginBorderPadding`
so that the grid area of the subgrid is computed correctly.
Differential Revision: https://phabricator.services.mozilla.com/D114546
SizeComputationInput's logical margin and border&padding getters accept
arbitrary writing mode, so we can operate on `cbWM` directly without
using physical coordinates.
This patch is a preparation of the next part, and it shouldn't change
the behavior.
Differential Revision: https://phabricator.services.mozilla.com/D114545
The helper is going to be used in a later part.
I don't add the physical version ComputedPhysicalBorder() deliberately
because I don't want to promote the usage of physical coordinate.
Differential Revision: https://phabricator.services.mozilla.com/D114544
This moves the pcOffset field from ICEntry to ICFallbackStub, and removes the
ICEntry* pointer from ICFallbackStub. Both of these classes are now one word smaller.
Because ICEntry and ICFallbackStubs are now both stored as ICScript arrays, we can
go from one to the other with some pointer arithmetic. This is pretty fast and
only has to happen on slower paths.
Another option would be to merge ICEntry and ICFallbackStub, but that complicates
the Baseline Interpreter code, especially on 32-bit platforms where the combined
size is not a nice power-of-two. With this patch we can use BaseIndex there.
Differential Revision: https://phabricator.services.mozilla.com/D114723
These iterators are fairly complicated (the patch deletes > 130 lines of code) and
they were only used in a few places.
This simplifies the next patch a bit.
Depends on D114721
Differential Revision: https://phabricator.services.mozilla.com/D114722
There was just one caller left, the CacheIR health report code, and it can be
changed to iterate over the JitScript's ICEntries instead.
Differential Revision: https://phabricator.services.mozilla.com/D114721
An OuterDoc RemoteAccessible can have no child document for a short time if the embedded doc is changed.
As part of this, get rid of the mOuterDoc variable, since it is now redundant and somewhat misleading.
Instead, use IsOuterDoc(), since RemoteAccessible now has acc types.
Differential Revision: https://phabricator.services.mozilla.com/D114431
This affects both native context menus and menubar menus.
Doing a flush here is fine, the nsMenuX constructor already flushes via SetupIcon()
(which also uses nsComputedDOMStyle, in nsMenuItemIconX::GetIconURI).
Differential Revision: https://phabricator.services.mozilla.com/D114785