mshtml: Use document.defaultView to get iframe contentWindow.
This commit is contained in:
parent
d3a3af755b
commit
b1a9b4fd2d
@ -43,6 +43,40 @@ typedef struct {
|
||||
|
||||
#define HTMLFRAMEBASE2(x) (&(x)->lpIHTMLFrameBase2Vtbl)
|
||||
|
||||
static HRESULT create_content_window(HTMLIFrame *This, nsIDOMHTMLDocument *nsdoc, HTMLWindow **ret)
|
||||
{
|
||||
nsIDOMDocumentView *nsdocview;
|
||||
nsIDOMAbstractView *nsview;
|
||||
nsIDOMWindow *nswindow;
|
||||
nsresult nsres;
|
||||
HRESULT hres;
|
||||
|
||||
nsres = nsIDOMHTMLDocument_QueryInterface(nsdoc, &IID_nsIDOMDocumentView, (void**)&nsdocview);
|
||||
if(NS_FAILED(nsres)) {
|
||||
ERR("Could not get nsIDOMDocumentView: %08x\n", nsres);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
nsres = nsIDOMDocumentView_GetDefaultView(nsdocview, &nsview);
|
||||
nsIDOMDocumentView_Release(nsdocview);
|
||||
if(NS_FAILED(nsres)) {
|
||||
ERR("GetDefaultView failed: %08x\n", nsres);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
nsres = nsIDOMAbstractView_QueryInterface(nsview, &IID_nsIDOMWindow, (void**)&nswindow);
|
||||
nsIDOMAbstractView_Release(nsview);
|
||||
if(NS_FAILED(nsres)) {
|
||||
ERR("Coult not get nsIDOMWindow iface: %08x\n", nsres);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
hres = HTMLWindow_Create(This->element.node.doc->basedoc.doc_obj, nswindow, ret);
|
||||
|
||||
nsIDOMWindow_Release(nswindow);
|
||||
return hres;
|
||||
}
|
||||
|
||||
#define HTMLFRAMEBASE2_THIS(iface) DEFINE_THIS(HTMLIFrame, IHTMLFrameBase2, iface)
|
||||
|
||||
static HRESULT WINAPI HTMLIFrameBase2_QueryInterface(IHTMLFrameBase2 *iface, REFIID riid, void **ppv)
|
||||
@ -130,10 +164,10 @@ static HRESULT WINAPI HTMLIFrameBase2_get_contentWindow(IHTMLFrameBase2 *iface,
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
hres = HTMLWindow_Create(This->element.node.doc->basedoc.doc_obj, NULL, &window);
|
||||
hres = create_content_window(This, nshtmldoc, &window);
|
||||
if(FAILED(hres)) {
|
||||
nsIDOMDocument_Release(nsdoc);
|
||||
return hres;
|
||||
nsIDOMHTMLDocument_Release(nshtmldoc);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
hres = create_doc_from_nsdoc(nshtmldoc, This->element.node.doc->basedoc.doc_obj, window, &content_doc);
|
||||
|
Loading…
x
Reference in New Issue
Block a user