Closed
Bug 1325676
Opened 9 years ago
Closed 9 years ago
Prevent touchscreens on Windows 8.x from instantiating accessibility
Categories
(Core :: Widget: Win32, defect)
Tracking
()
VERIFIED
FIXED
mozilla53
People
(Reporter: bugzilla, Assigned: bugzilla)
References
Details
(Whiteboard: aes+)
Attachments
(1 file, 1 obsolete file)
8.09 KB,
patch
|
bugzilla
:
review+
jcristau
:
approval-mozilla-aurora+
|
Details | Diff | Splinter Review |
The patch in bug 1323521 doesn't work on Windows 8.x due to implementation differences.
We'll have to see what we can do about this case.
Assignee | ||
Comment 1•9 years ago
|
||
It turns out that the a11y hook function in tiptsf.dll is exported, so we can intercept it. \o/
Assignee: nobody → aklotz
Status: NEW → ASSIGNED
Comment hidden (mozreview-request) |
![]() |
||
Comment 3•9 years ago
|
||
mozreview-review |
Comment on attachment 8822561 [details]
Bug 1325676: Prevent Windows 8 touchscreen support from instantiating a11y;
https://reviewboard.mozilla.org/r/101426/#review102016
sweet, thansk for working on this.
Attachment #8822561 -
Flags: review?(jmathies) → review+
Comment hidden (mozreview-request) |
Assignee | ||
Updated•9 years ago
|
Pushed by aklotz@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e3e129629026
Prevent Windows 8 touchscreen support from instantiating a11y; r=jimm
![]() |
||
Comment 6•9 years ago
|
||
Backed out for asserting in nsWindow.cpp on Windows 8 x64 debug:
https://hg.mozilla.org/integration/autoland/rev/63e9089ecf8b8e5e05a83864c365e96b56c3f1ad
Push showing failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=ddb344719745ea1785d86b468a1eca344373aa31
Failure log example: https://treeherder.mozilla.org/logviewer.html#?job_id=65931649&repo=autoland
12:10:30 INFO - TEST-INFO | started process Main app process
12:10:30 INFO - ### XPCOM_MEM_BLOAT_LOG defined -- logging bloat/leaks to c:\users\cltbld~1.t-w\appdata\local\temp\tmphq6yaz.mozrunner\runtests_leaks.log
12:10:30 INFO - [3148] WARNING: Failed to load startupcache file correctly, removing!: file c:/builds/moz2_slave/autoland-w64-d-000000000000000/build/src/startupcache/StartupCache.cpp, line 218
12:10:30 INFO - [3148] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005: file c:/builds/moz2_slave/autoland-w64-d-000000000000000/build/src/xpcom/base/nsSystemInfo.cpp, line 116
12:10:30 INFO - [3148] WARNING: This method is lossy. Use GetCanonicalPath !: file c:/builds/moz2_slave/autoland-w64-d-000000000000000/build/src/xpcom/io/nsLocalFileWin.cpp, line 3576
12:10:33 INFO - 1483474233535 addons.xpi WARN Exception running bootstrap method install on shield-recipe-client@mozilla.org: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPrefBranch.getBoolPref]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///C:/slave/test/build/application/firefox/browser/features/shield-recipe-client@mozilla.org.xpi!/bootstrap.js :: this.install :: line 38" data: no] Stack trace: this.install()@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///C:/slave/test/build/application/firefox/browser/features/shield-recipe-client@mozilla.org.xpi!/bootstrap.js:38 < callBootstrapMethod()@resource://gre/modules/addons/XPIProvider.jsm:4901 < processFileChanges()@resource://gre/modules/addons/XPIProvider.jsm -> resource://gre/modules/addons/XPIProviderUtils.js:2060 < checkForChanges()@resource://gre/modules/addons/XPIProvider.jsm:3756 < startup()@resource://gre/modules/addons/XPIProvider.jsm:2789 < callProvider()@resource://gre/modules/AddonManager.jsm:260 < _startProvider()@resource://gre/modules/AddonManager.jsm:755 < startup()@resource://gre/modules/AddonManager.jsm:937 < startup()@resource://gre/modules/AddonManager.jsm:2886 < observe()@resource://gre/components/addonManager.js:65
12:10:34 INFO - Assertion failure: ok, at c:/builds/moz2_slave/autoland-w64-d-000000000000000/build/src/widget/windows/nsWindow.cpp:409
12:10:46 INFO - #01: mozilla::TIPMessageHandler::Initialize() [widget/windows/nsWindow.cpp:370]
12:10:46 INFO -
12:10:46 INFO - #02: nsWindow::nsWindow() [widget/windows/nsWindow.cpp:611]
12:10:46 INFO -
12:10:46 INFO - #03: WindowConstructor [widget/windows/nsWidgetFactory.cpp:66]
12:10:46 INFO -
12:10:46 INFO - #04: nsComponentManagerImpl::CreateInstance(nsID const &,nsISupports *,nsID const &,void * *) [xpcom/components/nsComponentManager.cpp:1058]
12:10:46 INFO -
12:10:46 INFO - #05: CallCreateInstance(nsID const &,nsISupports *,nsID const &,void * *) [xpcom/glue/nsComponentManagerUtils.cpp:137]
12:10:46 INFO -
12:10:46 INFO - #06: nsCreateInstanceByCID::operator()(nsID const &,void * *) [xpcom/glue/nsComponentManagerUtils.cpp:184]
12:10:46 INFO -
12:10:46 INFO - #07: nsCOMPtr<nsIWidget>::assign_from_helper(nsCOMPtr_helper const &,nsID const &) [obj-firefox/dist/include/nsCOMPtr.h:1191]
12:10:46 INFO -
12:10:46 INFO - #08: nsWebShellWindow::Initialize(nsIXULWindow *,nsIXULWindow *,nsIURI *,int,int,bool,nsITabParent *,mozIDOMWindowProxy *,nsWidgetInitData &) [xpfe/appshell/nsWebShellWindow.cpp:152]
12:10:46 INFO -
12:10:46 INFO - #09: nsAppShellService::JustCreateTopWindow(nsIXULWindow *,nsIURI *,unsigned int,int,int,bool,nsITabParent *,mozIDOMWindowProxy *,nsWebShellWindow * *) [xpfe/appshell/nsAppShellService.cpp:747]
12:10:46 INFO -
12:10:46 INFO - #10: nsAppShellService::CreateTopLevelWindow(nsIXULWindow *,nsIURI *,unsigned int,int,int,nsITabParent *,mozIDOMWindowProxy *,nsIXULWindow * *) [xpfe/appshell/nsAppShellService.cpp:206]
12:10:46 INFO -
12:10:46 INFO - #11: nsAppStartup::CreateChromeWindow2(nsIWebBrowserChrome *,unsigned int,nsITabParent *,mozIDOMWindowProxy *,bool *,nsIWebBrowserChrome * *) [toolkit/components/startup/nsAppStartup.cpp:671]
12:10:46 INFO -
12:10:46 INFO - #12: nsWindowWatcher::CreateChromeWindow(nsACString_internal const &,nsIWebBrowserChrome *,unsigned int,nsITabParent *,mozIDOMWindowProxy *,nsIWebBrowserChrome * *) [embedding/components/windowwatcher/nsWindowWatcher.cpp:506]
12:10:46 INFO -
12:10:46 INFO - #13: nsWindowWatcher::OpenWindowInternal(mozIDOMWindowProxy *,char const *,char const *,char const *,bool,bool,bool,nsIArray *,bool,bool,nsIDocShellLoadInfo *,mozIDOMWindowProxy * *) [embedding/components/windowwatcher/nsWindowWatcher.cpp:994]
12:10:46 INFO -
12:10:46 INFO - #14: nsWindowWatcher::OpenWindow(mozIDOMWindowProxy *,char const *,char const *,char const *,nsISupports *,mozIDOMWindowProxy * *) [embedding/components/windowwatcher/nsWindowWatcher.cpp:353]
12:10:46 INFO -
12:10:46 INFO - #15: XPTC__InvokebyIndex
12:10:46 INFO -
12:10:46 INFO - #16: CallMethodHelper::Call() [js/xpconnect/src/XPCWrappedNative.cpp:1379]
12:10:46 INFO -
12:10:46 INFO - #17: XPCWrappedNative::CallMethod(XPCCallContext &,XPCWrappedNative::CallMode) [js/xpconnect/src/XPCWrappedNative.cpp:1344]
12:10:46 INFO -
12:10:46 INFO - #18: XPC_WN_CallMethod(JSContext *,unsigned int,JS::Value *) [js/xpconnect/src/XPCWrappedNativeJSOps.cpp:999]
12:10:46 INFO -
12:10:46 INFO - #19: js::CallJSNative(JSContext *,bool (*)(JSContext *,unsigned int,JS::Value *),JS::CallArgs const &) [js/src/jscntxtinlines.h:239]
12:10:46 INFO -
12:10:46 INFO - #20: js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct) [js/src/vm/Interpreter.cpp:457]
12:10:46 INFO -
12:10:46 INFO - #21: Interpret [js/src/vm/Interpreter.cpp:2928]
12:10:46 INFO -
12:10:46 INFO - #22: js::RunScript(JSContext *,js::RunState &) [js/src/vm/Interpreter.cpp:403]
12:10:46 INFO -
12:10:46 INFO - #23: js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct) [js/src/vm/Interpreter.cpp:475]
12:10:46 INFO -
12:10:46 INFO - #24: js::Call(JSContext *,JS::Handle<JS::Value>,JS::Handle<JS::Value>,js::AnyInvokeArgs const &,JS::MutableHandle<JS::Value>) [js/src/vm/Interpreter.cpp:521]
12:10:46 INFO -
12:10:46 INFO - #25: JS_CallFunctionValue(JSContext *,JS::Handle<JSObject *>,JS::Handle<JS::Value>,JS::HandleValueArray const &,JS::MutableHandle<JS::Value>) [js/src/jsapi.cpp:2803]
12:10:46 INFO -
12:10:46 INFO - #26: nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS *,unsigned short,XPTMethodDescriptor const *,nsXPTCMiniVariant *) [js/xpconnect/src/XPCWrappedJSClass.cpp:1214]
12:10:46 INFO -
12:10:46 INFO - #27: nsXPCWrappedJS::CallMethod(unsigned short,XPTMethodDescriptor const *,nsXPTCMiniVariant *) [js/xpconnect/src/XPCWrappedJS.cpp:614]
12:10:46 INFO -
12:10:46 INFO - #28: PrepareAndDispatch [xpcom/reflect/xptcall/md/win32/xptcstubs_x86_64.cpp:174]
12:10:46 INFO -
12:10:46 INFO - #29: SharedStub
12:10:46 INFO -
12:10:46 INFO - #30: NS_CreateServicesFromCategory(char const *,nsISupports *,char const *,char16_t const *) [xpcom/components/nsCategoryManager.cpp:823]
12:10:46 INFO -
12:10:46 INFO - #31: nsXREDirProvider::DoStartup() [toolkit/xre/nsXREDirProvider.cpp:1174]
12:10:46 INFO -
12:10:46 INFO - #32: XREMain::XRE_mainRun() [toolkit/xre/nsAppRunner.cpp:4318]
12:10:46 INFO -
12:10:46 INFO - #33: XREMain::XRE_main(int,char * * const,mozilla::XREAppData const &) [toolkit/xre/nsAppRunner.cpp:4623]
12:10:46 INFO -
12:10:46 INFO - #34: XRE_main [toolkit/xre/nsAppRunner.cpp:4714]
12:10:46 INFO -
12:10:46 INFO - #35: do_main [browser/app/nsBrowserApp.cpp:319]
12:10:46 INFO -
12:10:46 INFO - #36: NS_internal_main(int,char * *,char * *) [browser/app/nsBrowserApp.cpp:454]
12:10:46 INFO -
12:10:46 INFO - #37: wmain [toolkit/xre/nsWindowsWMain.cpp:118]
12:10:46 INFO -
12:10:46 INFO - #38: __scrt_common_main_seh [f:/dd/vctools/crt/vcstartup/src/startup/exe_common.inl:253]
12:10:46 INFO -
12:10:46 INFO - #39: KERNEL32.DLL + 0x167e
12:10:46 INFO -
12:10:46 INFO - #40: ntdll.dll + 0x1c3f1
12:10:46 INFO -
12:12:31 INFO - Traceback (most recent call last):
12:12:31 INFO - File "C:\slave\test\build\tests\mochitest\runtests.py", line 2425, in doTests
12:12:31 INFO - marionette_args=marionette_args,
12:12:31 INFO - File "C:\slave\test\build\tests\mochitest\runtests.py", line 2008, in runApp
12:12:31 INFO - self.marionette.start_session(timeout=port_timeout)
12:12:31 INFO - File "C:\slave\test\build\venv\lib\site-packages\marionette_driver\decorators.py", line 28, in _
12:12:31 INFO - m._handle_socket_failure()
12:12:31 INFO - File "C:\slave\test\build\venv\lib\site-packages\marionette_driver\decorators.py", line 23, in _
12:12:31 INFO - return func(*args, **kwargs)
12:12:31 INFO - File "C:\slave\test\build\venv\lib\site-packages\marionette_driver\marionette.py", line 1280, in start_session
12:12:31 INFO - self.protocol, _ = self.client.connect()
12:12:31 INFO - File "C:\slave\test\build\venv\lib\site-packages\marionette_driver\transport.py", line 223, in connect
12:12:31 INFO - self.sock.connect((self.addr, self.port))
12:12:31 INFO - File "c:\mozilla-build\python27\Lib\socket.py", line 224, in meth
12:12:31 INFO - return getattr(self._sock,name)(*args)
12:12:31 INFO - error: [Errno 10061] No connection could be made because the target machine actively refused it
12:12:31 ERROR - Automation Error: Received unexpected exception while running application
Flags: needinfo?(aklotz)
Assignee | ||
Comment 7•9 years ago
|
||
Crap, I thought this had tested cleanly!
Anyway, this isn't landable at the moment because 64-bit tiptsf!ProcessCaretEvents contains an instruction with a RIP-relative displacement, which we do not currently support in the DLL interceptor.
Adding support for that is not a trivial patch.
Flags: needinfo?(aklotz)
![]() |
||
Comment 8•9 years ago
|
||
Fx50 release stats for touch capable devices
--------------------------------------------
Windows 8.0 ADI 6day moving average = 1,540,953
Windows 8.1 ADI 6day moving average = 7,189,523
Total = 8,730,476
% of Windows 8.0 users with touch capable devices = 5.49%
% of Windows 8.1 users with touch capable devices = 8.61%
Touch devices on Windows 8.0: 1,540,953 * .0549 = 84,598
Touch devices on Windows 8.1: 7,189,523 * .0861 = 619,017
Total: 703K
Based on these stats I'd argue that this bug isn't a high priority compared to core aes+ work we have. We'll get e10s running for this batch of users once we have a11y stability and perf work complete.
Whiteboard: aes+
Assignee | ||
Comment 9•9 years ago
|
||
Assignee | ||
Comment 10•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/6e6cb36f0e9bb299a68ed000b8e67fa868247599
Bug 1325676: Prevent Windows 8 touchscreen support from instantiating a11y; r=jimm
Assignee | ||
Comment 11•9 years ago
|
||
I have re-landed this as a 32-bit only patch. I'll file another bug for enabling on 64-bits.
Comment 12•9 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla53
Assignee | ||
Comment 13•9 years ago
|
||
This is the patch as landed on central.
Attachment #8822561 -
Attachment is obsolete: true
Attachment #8826362 -
Flags: review+
Assignee | ||
Comment 14•9 years ago
|
||
Comment on attachment 8826362 [details] [diff] [review]
Patch (as landed)
Approval Request Comment
[Feature/Bug causing the regression]: Windows touchscreens on e10s
[User impact if declined]: No e10s touchscreens in 52
[Is this code covered by automated tests?]: Yes
[Has the fix been verified in Nightly?]: Yes
[Needs manual test from QE? If yes, steps to reproduce]: No
[List of other uplifts needed for the feature/fix]: None
[Is the change risky?]: No
[Why is the change risky/not risky?]: Simple patch
[String changes made/needed]: None
Attachment #8826362 -
Flags: approval-mozilla-aurora?
Comment 15•9 years ago
|
||
Comment on attachment 8826362 [details] [diff] [review]
Patch (as landed)
avoid enabling a11y with touchscreens on 32bit win8, aurora52+
Attachment #8826362 -
Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Comment 16•9 years ago
|
||
bugherder uplift |
Updated•9 years ago
|
Flags: qe-verify?
Comment 17•9 years ago
|
||
Per Comment 14, it was noted there are no steps to reproduce to be able to verify. Yet a flag is saying to do such.
Aaron, are there any preferences we would need to set or any way to see in about:support whether or not we know a11y is working [or prevented in this case] as intended? Or do we just go over the touch screen functionality and ensure that's working at all? Thanks.
Flags: needinfo?(aklotz)
Assignee | ||
Comment 18•9 years ago
|
||
Probably the best thing to do is to go through the touch screen functionality, make sure it is working, as you said. But then after doing all of that touchscreen stuff, go to about:support and check the Accessibility section. "Activated" should be false.
Flags: needinfo?(aklotz)
Comment 19•9 years ago
|
||
Working as intended with the following user agent:
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Status: RESOLVED → VERIFIED
Updated•9 years ago
|
Flags: qe-verify?
You need to log in
before you can comment on or make changes to this bug.
Description
•