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
Rather than static_casting `this`, there is now an ImageAcc/TextAcc() method which in turn calls MsaaAccessible::LocalAcc().
Since MsaaAccessible::LocalAcc() returns null if defunct, defunct checks have been adjusted accordingly.
For LocalAccessibles other than `this`, rather than direct static_casting, MsaaAccessible::GetFrom is used.
ia2AccessibleText was calling AccessibleWrap::ConvertToIA2Attributes, but this is actually declared in ia2Accessible, so we just add the necessary include and change the call.
Finally, calls to HyperTextProxyFor() in ia2AccessibleEditableText/Hypertext/Text assertions were replaced with calls to LocalAccessible::IsProxy(), since HyperTextProxyFor statically asserts the inheritance we're removing and isn't otherwise useful.
Differential Revision: https://phabricator.services.mozilla.com/D112942
This is necessary to enable COM objects which aggregate AccessibleWrap/DocAccessibleWrap to aggregate MsaaAccessible/MsaaDocAccessible instead.
Ultimately, the IUnknown implementation will be moved out of AccessibleWrap altogether and into MsaaAccessible, but we can't do that yet.
Even though MsaaDocAccessible indirectly inherits from MsaaAccessible, we have to override QueryInterface due to the naming conflict with nsISupports.
Differential Revision: https://phabricator.services.mozilla.com/D112948
For now, XULMenuitemAccessibleWrap inherits from MsaaXULMenuitemAccessible and MsaaXULMenuitemAccessible inherits from XULMenuitemAccessible.
Accessible calls are made via MsaaAccessible::LocalAcc().
Since MsaaAccessible::LocalAcc() returns null if defunct, defunct checks have been adjusted accordingly.
Differential Revision: https://phabricator.services.mozilla.com/D112947
For now, RootAccessibleWrap inherits from MsaaRootAccessible and MsaaRootAccessible inherits from RootAccessible.
RootAccessible calls are made via a RootAcc() method which in turn calls MsaaAccessible::LocalAcc().
Since MsaaAccessible::LocalAcc() returns null if defunct, defunct checks have been adjusted accordingly.
Differential Revision: https://phabricator.services.mozilla.com/D112946
For now, DocAccessibleWrap inherits from MsaaDocAccessible and MsaaDocAccessible inherits from DocAccessible.
DocAccessible calls are made via a DocAcc() method which in turn calls MsaaAccessible::LocalAcc().
Since MsaaAccessible::LocalAcc() returns null if defunct, defunct checks have been adjusted accordingly.
Differential Revision: https://phabricator.services.mozilla.com/D112945
NPAPI plugins are no longer supported. MozPaintWait and MozPaintWaitFinished events are no longer sent -- they came exclusively from nsPluginInstanceOwner, which was removed in bug 1682030.
Differential Revision: https://phabricator.services.mozilla.com/D114021
* Replace the many-shapes icon with a new simple download icon svg and update its consumers
* New start and finish animations using svg filmstrip images
* Toolbarbutton progress "bar" is a pie-chart, using a conic-gradient and a variable updated from js
* Show toolbarbutton animations even when download panel is open
Differential Revision: https://phabricator.services.mozilla.com/D113204
HangData is the only member left in the union and SLOW_SCRIPT is the only member left in the enum.
This patch also migrates the one remaining (invalid) use of PLUGIN_HANG in testing to work as a SLOW_SCRIPT instead.
Differential Revision: https://phabricator.services.mozilla.com/D113885
irrespective of the optimization level. The code was previously using
the optimization level as a proxy for whether --enable-release is
enabled or not, which was invalidated by bug 1689284.
Differential Revision: https://phabricator.services.mozilla.com/D113730
This will tie the version used for CI lints to the version of rust used
for builds on CI.
Bonus point: we can now have rustfmt and clippy on Windows and mac,
which allows to run the corresponding mozlint unit tests on those
platforms.
Differential Revision: https://phabricator.services.mozilla.com/D113905
While here, remove the unused clippyProcess.config. And because we need
to manipulate `$PATH` before running `cargo`, use the same wrapping
function in `get_clippy_version`.
Differential Revision: https://phabricator.services.mozilla.com/D113902
Marionette enables itself only when --marionette is passed in. Given that
command line arguments can only be passed in using the debug configuration, it
is safe to send this event all the time.
Differential Revision: https://phabricator.services.mozilla.com/D113829