Open
Bug 1343525
Opened 6 years ago
Updated 8 months ago
QueryService() with IID_ISimpleDOMNode failed on non e10s ( single process mode on Windows7)
Categories
(Core :: Disability Access APIs, defect, P5)
Tracking
()
UNCONFIRMED
People
(Reporter: robinson, Unassigned)
Details
User Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 Steps to reproduce: We are trying to find the URL from Mozilla window using VC++ project. For doing this, I used QueryService() API with parameter IID_ISimpleDOMNode". But the API fails on single process ( non e10s) FireFox - Windows 7 machines (both 32 bit and 64 bit) with Mozilla Version- 51.0.1. SampleCode ========== // header files #include "ISimpleDOMNode.h" #include "ISimpleDOMText.h" #include "ISimpleDOMDocument.h" // GUIDs const GUID refguid = {0x0c539790, 0x12e4, 0x11cf, 0xb6, 0x61, 0x00, 0xaa, 0x00, 0x4c, 0xd6, 0xd8}; const IID IID_ISimpleDOMNode= {0x1814ceeb,0x49e2,0x407f,0xaf,0x99,0xfa,0x75,0x5a,0x7d,0x26,0x07}; const IID IID_ISimpleDOMText= {0x4e747be5,0x2052,0x4265,0x8a,0xf0,0x8e,0xca,0xd7,0xaa,0xd1,0xc0}; const IID IID_ISimpleDOMDocument= {0x0D68D6D0,0xD93D,0x4d08,0xA3,0x0D,0xF0,0x0D,0xD1,0xF4,0x5B,0x24}; Void FindURLfromWindow(HWND hwnd) { try { if(hwnd) { IAccessible *pAccBrowser = NULL; HRESULT hr = AccessibleObjectFromWindow(hwnd, OBJID_CLIENT, IID_IAccessible, (void**)&pAccBrowser); if(SUCCEEDED(hr) && (pAccBrowser)) { VARIANT vtStart; VARIANT vtResult; vtStart.vt = VT_I4; vtStart.lVal = CHILDID_SELF; ///////////////////////////// hr = pAccBrowser->accNavigate(NAVRELATION_EMBEDS,vtStart,&vtResult); if(SUCCEEDED(hr)) { IDispatch *pDisp = vtResult.pdispVal; IAccessible *pAccDoc = NULL; hr = pDisp->QueryInterface(IID_IAccessible,(void **)&pAccDoc); if(SUCCEEDED(hr) && (pAccDoc)) { hr = pAccDoc->QueryInterface(IID_IServiceProvider, (void **)&pServProv); if(SUCCEEDED(hr) && (pServProv)) { ISimpleDOMNode *pNode = NULL; hr = pServProv->QueryService(refguid, IID_ISimpleDOMNode,(void **)&pNode); //failed in Windows 7 if(SUCCEEDED(hr) && (pNode)) { ISimpleDOMDocument *pDoc = NULL; hr = pNode->QueryInterface(IID_ISimpleDOMDocument, (void **)&pDoc); if(SUCCEEDED(hr) && (pDoc)) { BSTR bstrUrl = NULL; hr = pDoc->get_URL(&bstrUrl); if(SUCCEEDED(hr) && (bstrUrl)) { //success } } } } } } } } } catch(...) { } } Actual results: QueryService() API with parameter IID_ISimpleDOMNode failed. Expected results: QueryService() API with parameter IID_ISimpleDOMNode should be success
Severity: normal → critical
Component: Untriaged → Disability Access
OS: Unspecified → Windows 7
Hardware: Unspecified → x86_64
Component: Disability Access → Disability Access APIs
Product: Firefox → Core
As I said in the previous bug report, it fails in FF51 and older versions of Firefox. Do you have a link to test application to test again?
Loic, Please download the test applications and code from https://www.dropbox.com/s/zwbv0lu4ltutkwu/MozillaTestApp.zip?dl=0 Steps to reproduce the problem. 1) Install Chrom 51.0.1 on Windows 7. Check whether e10s is enabled. if e10s is enabled, change it to non-e10s mode. Make sure that accessibility has been enabled from about:support. 2) Sometimes it pops up a window saying "Accessibility support is temporarily disabled due to compatibility issues." , Just close the pop up by clicking the close button. 3) Run Dbgview as administrator (please check the options as mentioned in Screenshot folder dbg-options.jpg) 4) Run the test application. (MozillaTest.exe) 5) Browse any URL. 6) In the DbgView you can see the error message "QueryService(IID_ISimpleDOMNode) failed" Please let me know if you need any help with this.
Correction on comment #2 above. Step1 . Instead of Chrome, please read it as FireFox 51.0.1.
The testcase doesn't work with FF51 and e10s disabled, even with old versions like FF33.
Comment 6•6 years ago
|
||
It seems the described issue is about that ISimpleDOMNode is not implemented on a document accessible. If this is correct, then this was likely regressed in bug 767756, which was 5 years ago. I don't see any reasoning behind, why a document accessible shouldn't implement ISimpleDOMNode interface, so this may be considered as a bug. Also, I was told that this issue may cause JAWS instability.
Comment 7•6 years ago
|
||
Just to follow up, this is both a multi and single process issue.
yzen, For the multi-process mode, fix is expected in FF54 (https://bugzilla.mozilla.org/show_bug.cgi?id=1310166 ). Can you let us know when the fix will be available for single process mode?
Reporter | ||
Comment 10•6 years ago
|
||
Loic, Do we have any update on this?
Comment 11•6 years ago
|
||
Please note single process mode is expected to be de-supported in Firefox 57 or 58. We would like to move monitoring software off of accessibility API. Please email me if you can help us understand requirements.
Priority: -- → P5
Comment 12•8 months ago
|
||
In the process of migrating remaining bugs to the new severity system, the severity for this bug cannot be automatically determined. Please retriage this bug using the new severity system.
Severity: critical → --
You need to log in
before you can comment on or make changes to this bug.
Description
•