1. ia2AccessibleApplication is instantiated for ApplicationAccessible, so it now inherits from MsaaAccessible.
2. ia2AccessibleHypertext is instantiated for HyperTextAccessible, so it now inherits from MsaaAccessible.
3. ia2AccessibleImage is instantiated for ImageAccessible, so it inherits from MsaaAccessible.
4. ia2AccessibleTable is instantiated for TableAccessible, so it inherits from ia2AccessibleHypertext (since most TableAccessible implementations implement HyperTextAccessible).
5. ia2AccessibleTableCell is instantiated for TableCellAccessible, so it inherits from ia2AccessibleHypertext (since most TableCellAccessible implementations implement HyperTextAccessible).
6. All of the above override QueryInterface as appropriate, replacing the QueryInterface implementations from all *AccessibleWrap classes.
7. The ARIAGridAccessibleWrap, HTMLTableAccessibleWrap, ImageAccessibleWrap, XULListboxAccessibleWrap and XULTreeGridAccessibleWrap classes previously served only to host ia2AccessibleImage, ia2AccessibleTable, etc. Since these ia2 classes are now instantiated via MsaaAccessible, these Wrap classes have been removed and replaced with aliases.
8. The QueryInterface handling for ISimpleDOMText has been moved into MsaaAccessible. Since this was the only purpose of TextLeafAccessibleWrap, this too has been removed and replaced with an alias.
9. AccessibleWrap now holds a strong reference to MsaaAccessible and MsaaAccessible holds a weak reference to AccessibleWrap.
10. An MsaaAccessible (or derived class) is instantiated by MsaaAccessible::Create.
11. MsaaAccessible now implements its own COM reference counting using DECL_IUNKNOWN, since it does not need nsISupports (XPCOM).
Differential Revision: https://phabricator.services.mozilla.com/D112956
WebRender internally reverses gradient stops when they are ordered from right to left. This is done while building the GPU data and the gradient cache key stored the reversed stops without sepcifying if they were revered or originally in that order. This meant that if a page had two similar gradients with the only difference being that on was reversed but not the other, they could end up using the same cache key and one of the two would not be rendered properly.
This patch includes a boolean in the cache key to make sure reversed gradients don't accidentally use the same key as similar non-reversed gradients.
Differential Revision: https://phabricator.services.mozilla.com/D113975
Large segment bounds trip an assertion when casting coordinates to integers. Clipping early also reduces the amount of cached pixels.
Differential Revision: https://phabricator.services.mozilla.com/D113819
Large gradients are cached scaled down and stretched back by the image brush. Because the scaling factor is non-uniform the shader has to take it into account. The previous implementation was incorrectly accounting for the scale.
Differential Revision: https://phabricator.services.mozilla.com/D113753
This is needed because TRRService is a friend class of TRRService
(needed to provide access to private constructor). If we find a way to
have a friend destructor method then we would not need the wrapper.
Differential Revision: https://phabricator.services.mozilla.com/D113312
We should be holding the lock when comparing the timer pointers otherwise
we have a race where the timer is replaced and cancelled under the lock
but we either still call the handler or simply crash.
Differential Revision: https://phabricator.services.mozilla.com/D113311
The previous assumption was that mType would be updated before AfterSetAttr(), but that assumption is invalidated by bug 1347640. This patch moves the radio group addition part to the position after HandleTypeChange() is called.
Differential Revision: https://phabricator.services.mozilla.com/D114038
- Use `wipeEngine("tabs")` instead of `wipeAll()` as a test command in test_clients_engine.js
- Made the `engines` param required in `wipeRemote()`
Differential Revision: https://phabricator.services.mozilla.com/D113159
This patch also changes the only consumer to not depend on the lock passed to
OpenDirectoryListener::DirectoryLockAcquired because it uses the base type (
unsafe static_cast would have to be used).
Differential Revision: https://phabricator.services.mozilla.com/D104804
Until now, our a11y COM implementation has relied on AddRef and Release from nsISupports, but this soon won't be possible.
Instead, MsaaAccessible will implement its own reference counting using DECL_IUNKNOWN.
DECL_IUNKNOWN previously declared AddRef and Release as final.
This doesn't work for MsaaAccessible because there is an aggregatable subclass (MsaaRootAccessible) and because some subclasses will inherit additional interfaces (ia2AccessibleApplication, etc.).
When subclasses inherit additional interfaces, they inherit an additional IUnknown, so the compiler doesn't know which AddRef/Release to call.
To support this, IMPL_IUNKNOWN_REFCOUNTING_INHERITED HAS BEEN ADDED to specify which base class implements reference counting.
Differential Revision: https://phabricator.services.mozilla.com/D112954
These objects need to aggregate the primary COM object (MsaaAccessible).
Once the IUnknown implementation moves out of AccessibleWrap, it won't be possible to aggregate *AccessibleWrap any more.
Differential Revision: https://phabricator.services.mozilla.com/D112949
The original implementation concept of Opaque Response Blocking is trying to recognize the blocked or allowed content type in nsHttpChannel::CallOnStartRequest. However, the data could be not available at the moment for type sniffing. And nsUnknownDecoder could be used for type sniffing when OnDataAvailable is called.
So this patch targets this case and applying Opaque Response Blocking after the type is recognized by nsUnknownDecoder.
Differential Revision: https://phabricator.services.mozilla.com/D110901
The ORB spec mentions in step 5 that
Wait for 1024 bytes of response or end-of-file, whichever comes first and let bytes be those bytes.
However, this is not guaranteed.
Type sniffing could get fail if the data is not available at the moment, and the response would be reported as Allowed_FailtoGetMIMEType. But in some cases, it should be reported as Allowed_SniffAsImageOrAudioOrVideo.
This patch tries to reproduce the situation above with a browser mochitest by using a compressed(gzip) image file to trigger nsUnknownDecoder.
Differential Revision: https://phabricator.services.mozilla.com/D112698
Similar to bug 1707182 (browser_autoSubmitRequest.js) tests using the
crashreporter on Apple Silicon fail to execute properly.
Differential Revision: https://phabricator.services.mozilla.com/D113928