This is a null pointer dereference because TlsContext is null on helper
threads.
We don't support adding profiler entries like this on helper threads at the
moment, but it's possible and we should maybe do this in the future.
Differential Revision: https://phabricator.services.mozilla.com/D140819
This patch modifies condprof to accept an optional `remote_test_root` argument so that we can change where the profile gets created and pulled from. Then we pass the external test root through this parameter from raptor to condprof. This fixes an issue on the Samsung A51 device as it can't store the profiles in the default location.
Differential Revision: https://phabricator.services.mozilla.com/D139517
We don't currently check whether the geometry has markers, nor do we try to render them properly with WebRender display items.
This is caught by the reftest paint-order-001.svg when active SVG images and rects are enabled.
Differential Revision: https://phabricator.services.mozilla.com/D140808
- We make some changes to heuristicsRegexp.js to improve accuracy. (Nothing else uses these regexps, so they're safe to change.) The commenting out of some languages in the expiration fields are because they caused a lot of false positives, according to Daniel Hertenstein's recollection. In any case, we've never preffed CC autofill on for those languages.
Depends on D137271
Differential Revision: https://phabricator.services.mozilla.com/D137270
This helps working on debugger performance as source objects are now immutable
and so won't trigger selector updates.
This also stop updating the object/map that contains all the text contents.
Differential Revision: https://phabricator.services.mozilla.com/D138261
This replaces the sharing of SharedFontInstanceMap with a new structure
SharedFontResources that can be used to trade a mechanism between threads
of a single Renderer instance for de-duplicating fonts and font instances.
SharedFontResources stores maps of FontTemplates and FontInstances as well
as a new FontKeyMap and FontInstanceKeyMap which handles the mapping of
namespace-local font keys to a shared key. The shared key then maps to
the real, de-duplicated resource (template or instance) which has a lifetime
beyond that of any individual namespace that may refer to it. Reference
counting is used to track the lifetime of the shared key so that when no key
map entries refer to the shared key any longer, it will then expire and
be cleaned up. This does cause some complications with clearing a namespace
in that rather than simply crawling through a table looking for resources
with a given IdNamespace, we have to check for shared keys that have expired
when clearing a namespace caused the last references to their mappings
to be removed.
Given that ApiResources handles the up-front addition of font templates
and instances, while ResourceCache within the RenderBackend handles deletion,
most of these mappings have to be shared between threads, which is why they
live within SharedFontResources. When resource updates are processed by
either ApiResources or ResourceCache, we create a shared key as necessary to
add the font resource, and then delete the shared font resource when a resource
update caused the last reference to the resource's shared key to expire.
This only tries to de-duplicate fonts within a single Renderer (window). Since
each Renderer has its own texture cache and dependent glyph cache, sharing
across multiple windows would require extra complication with storing font
bitmaps outside of the texture cache and outside the Renderer instance itself.
For the sake of simplicity and to better understand how de-duplication impacts
performance, this patch only tries to address sharing within a single window.
Differential Revision: https://phabricator.services.mozilla.com/D140561
As per bug 1757647 comment 4, the main thread already initializes COM
early, and we should be able to rely on it in OSPreferences.
Differential Revision: https://phabricator.services.mozilla.com/D140745
DrawSurfaceWithShadow is supposed to ignore transforms but still support clipping.
It appears that DrawTargetD2D1 for some reason never actually implemented clipping.
The DrawImage calls on the DC just need to happen within the bounds of PrepareForDrawing
and FinalizeDrawing. Since PrepareForDrawing handles the overriding of the blend mode
via SetPrimitiveBlend, we need to use DrawImage with D2D1_COMPOSITE_MODE_SOURCE_OVER
so that it will blend appropriately.
Differential Revision: https://phabricator.services.mozilla.com/D140798
Depends on D140686
Not directly related to backward compat cleanup, but I spotted this unused code.
No trace of any test checking isOOP in the codebase, so I think it's safe to remove.
Differential Revision: https://phabricator.services.mozilla.com/D140687
For avoiding simple back-out of the patches when we get serious regression
reports, we should have a pref to disable the new pref.
Differential Revision: https://phabricator.services.mozilla.com/D140475