Closed
Bug 1343525
Opened 9 years ago
Closed 2 years ago
QueryService() with IID_ISimpleDOMNode failed on non e10s ( single process mode on Windows7)
Categories
(Core :: Disability Access APIs, defect, P5)
Tracking
()
RESOLVED
INVALID
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•9 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•9 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•8 years ago
|
||
Loic, Do we have any update on this?
Comment 11•8 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•3 years 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 → --
Comment 13•2 years ago
|
||
The severity field is not set for this bug.
:Jamie, could you have a look please?
For more information, please visit BugBot documentation.
Flags: needinfo?(jteh)
Comment 14•2 years ago
|
||
Single process mode no longer exists for users.
Status: UNCONFIRMED → RESOLVED
Closed: 2 years ago
Flags: needinfo?(jteh)
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•