Commit 155969dc authored by Gabriel Ivăncescu's avatar Gabriel Ivăncescu Committed by Alexandre Julliard

mshtml: Get rid of the outer window in basedoc.

parent 46d4d263
...@@ -133,7 +133,7 @@ static nsresult get_ns_command_state(GeckoBrowser *This, const char *cmd, nsICom ...@@ -133,7 +133,7 @@ static nsresult get_ns_command_state(GeckoBrowser *This, const char *cmd, nsICom
return nsres; return nsres;
} }
nsres = nsICommandManager_GetCommandState(cmdmgr, cmd, This->doc->basedoc.window->window_proxy, nsparam); nsres = nsICommandManager_GetCommandState(cmdmgr, cmd, This->doc->window->window_proxy, nsparam);
if(NS_FAILED(nsres)) if(NS_FAILED(nsres))
ERR("GetCommandState(%s) failed: %08lx\n", debugstr_a(cmd), nsres); ERR("GetCommandState(%s) failed: %08lx\n", debugstr_a(cmd), nsres);
...@@ -146,7 +146,7 @@ static DWORD query_ns_edit_status(HTMLDocumentNode *doc, const char *nscmd) ...@@ -146,7 +146,7 @@ static DWORD query_ns_edit_status(HTMLDocumentNode *doc, const char *nscmd)
nsICommandParams *nsparam; nsICommandParams *nsparam;
cpp_bool b = FALSE; cpp_bool b = FALSE;
if(doc->browser->usermode != EDITMODE || doc->basedoc.window->readystate < READYSTATE_INTERACTIVE) if(doc->browser->usermode != EDITMODE || doc->outer_window->readystate < READYSTATE_INTERACTIVE)
return OLECMDF_SUPPORTED; return OLECMDF_SUPPORTED;
if(nscmd) { if(nscmd) {
...@@ -180,7 +180,7 @@ static DWORD query_align_status(HTMLDocumentNode *doc, const WCHAR *align) ...@@ -180,7 +180,7 @@ static DWORD query_align_status(HTMLDocumentNode *doc, const WCHAR *align)
cpp_bool b; cpp_bool b;
nsresult nsres; nsresult nsres;
if(doc->browser->usermode != EDITMODE || doc->basedoc.window->readystate < READYSTATE_INTERACTIVE) if(doc->browser->usermode != EDITMODE || doc->outer_window->readystate < READYSTATE_INTERACTIVE)
return OLECMDF_SUPPORTED; return OLECMDF_SUPPORTED;
nsAString_Init(&justify_str, align); nsAString_Init(&justify_str, align);
...@@ -198,7 +198,7 @@ static nsISelection *get_ns_selection(HTMLDocumentNode *doc) ...@@ -198,7 +198,7 @@ static nsISelection *get_ns_selection(HTMLDocumentNode *doc)
nsISelection *nsselection = NULL; nsISelection *nsselection = NULL;
nsresult nsres; nsresult nsres;
nsres = nsIDOMWindow_GetSelection(doc->basedoc.window->nswindow, &nsselection); nsres = nsIDOMWindow_GetSelection(doc->outer_window->nswindow, &nsselection);
if(NS_FAILED(nsres)) if(NS_FAILED(nsres))
ERR("GetSelection failed %08lx\n", nsres); ERR("GetSelection failed %08lx\n", nsres);
...@@ -661,7 +661,7 @@ static HRESULT query_justify(HTMLDocumentNode *doc, OLECMD *cmd) ...@@ -661,7 +661,7 @@ static HRESULT query_justify(HTMLDocumentNode *doc, OLECMD *cmd)
case IDM_JUSTIFYLEFT: case IDM_JUSTIFYLEFT:
TRACE("(%p) IDM_JUSTIFYLEFT\n", doc); TRACE("(%p) IDM_JUSTIFYLEFT\n", doc);
/* FIXME: We should set OLECMDF_LATCHED only if it's set explicitly. */ /* FIXME: We should set OLECMDF_LATCHED only if it's set explicitly. */
if(doc->browser->usermode != EDITMODE || doc->basedoc.window->readystate < READYSTATE_INTERACTIVE) if(doc->browser->usermode != EDITMODE || doc->outer_window->readystate < READYSTATE_INTERACTIVE)
cmd->cmdf = OLECMDF_SUPPORTED; cmd->cmdf = OLECMDF_SUPPORTED;
else else
cmd->cmdf = OLECMDF_SUPPORTED | OLECMDF_ENABLED; cmd->cmdf = OLECMDF_SUPPORTED | OLECMDF_ENABLED;
...@@ -1191,9 +1191,9 @@ HRESULT setup_edit_mode(HTMLDocumentObj *doc) ...@@ -1191,9 +1191,9 @@ HRESULT setup_edit_mode(HTMLDocumentObj *doc)
doc->nscontainer->usermode = EDITMODE; doc->nscontainer->usermode = EDITMODE;
if(doc->basedoc.window->mon) { if(doc->window->mon) {
CLSID clsid = IID_NULL; CLSID clsid = IID_NULL;
hres = IMoniker_GetClassID(doc->basedoc.window->mon, &clsid); hres = IMoniker_GetClassID(doc->window->mon, &clsid);
if(SUCCEEDED(hres)) { if(SUCCEEDED(hres)) {
/* We should use IMoniker::Save here */ /* We should use IMoniker::Save here */
FIXME("Use CLSID %s\n", debugstr_guid(&clsid)); FIXME("Use CLSID %s\n", debugstr_guid(&clsid));
...@@ -1203,7 +1203,7 @@ HRESULT setup_edit_mode(HTMLDocumentObj *doc) ...@@ -1203,7 +1203,7 @@ HRESULT setup_edit_mode(HTMLDocumentObj *doc)
if(doc->frame) if(doc->frame)
IOleInPlaceFrame_SetStatusText(doc->frame, NULL); IOleInPlaceFrame_SetStatusText(doc->frame, NULL);
doc->basedoc.window->readystate = READYSTATE_UNINITIALIZED; doc->window->readystate = READYSTATE_UNINITIALIZED;
if(doc->client) { if(doc->client) {
IOleCommandTarget *cmdtrg; IOleCommandTarget *cmdtrg;
...@@ -1235,11 +1235,11 @@ HRESULT setup_edit_mode(HTMLDocumentObj *doc) ...@@ -1235,11 +1235,11 @@ HRESULT setup_edit_mode(HTMLDocumentObj *doc)
update_doc(doc, UPDATE_UI); update_doc(doc, UPDATE_UI);
if(doc->basedoc.window->mon) { if(doc->window->mon) {
/* FIXME: We should find nicer way to do this */ /* FIXME: We should find nicer way to do this */
remove_target_tasks(doc->task_magic); remove_target_tasks(doc->task_magic);
mon = doc->basedoc.window->mon; mon = doc->window->mon;
IMoniker_AddRef(mon); IMoniker_AddRef(mon);
}else { }else {
hres = CreateURLMoniker(NULL, L"about:blank", &mon); hres = CreateURLMoniker(NULL, L"about:blank", &mon);
......
...@@ -49,11 +49,11 @@ static HRESULT navigate_href_new_window(HTMLElement *element, nsAString *href_st ...@@ -49,11 +49,11 @@ static HRESULT navigate_href_new_window(HTMLElement *element, nsAString *href_st
HRESULT hres; HRESULT hres;
nsAString_GetData(href_str, &href); nsAString_GetData(href_str, &href);
hres = create_relative_uri(element->node.doc->basedoc.window, href, &uri); hres = create_relative_uri(element->node.doc->outer_window, href, &uri);
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
hres = navigate_new_window(element->node.doc->basedoc.window, uri, target, NULL, NULL); hres = navigate_new_window(element->node.doc->outer_window, uri, target, NULL, NULL);
IUri_Release(uri); IUri_Release(uri);
return hres; return hres;
} }
...@@ -110,7 +110,7 @@ static HRESULT navigate_href(HTMLElement *element, nsAString *href_str, nsAStrin ...@@ -110,7 +110,7 @@ static HRESULT navigate_href(HTMLElement *element, nsAString *href_str, nsAStrin
const PRUnichar *href; const PRUnichar *href;
HRESULT hres; HRESULT hres;
window = get_target_window(element->node.doc->basedoc.window, target_str, &use_new_window); window = get_target_window(element->node.doc->outer_window, target_str, &use_new_window);
if(!window) { if(!window) {
if(use_new_window) { if(use_new_window) {
const PRUnichar *target; const PRUnichar *target;
......
...@@ -893,7 +893,7 @@ static HRESULT WINAPI HTMLDocument_get_readyState(IHTMLDocument2 *iface, BSTR *p ...@@ -893,7 +893,7 @@ static HRESULT WINAPI HTMLDocument_get_readyState(IHTMLDocument2 *iface, BSTR *p
if(!p) if(!p)
return E_POINTER; return E_POINTER;
return get_readystate_string(This->basedoc.window ? This->basedoc.window->readystate : 0, p); return get_readystate_string(This->outer_window ? This->outer_window->readystate : 0, p);
} }
static HRESULT WINAPI HTMLDocument_get_frames(IHTMLDocument2 *iface, IHTMLFramesCollection2 **p) static HRESULT WINAPI HTMLDocument_get_frames(IHTMLDocument2 *iface, IHTMLFramesCollection2 **p)
...@@ -902,11 +902,11 @@ static HRESULT WINAPI HTMLDocument_get_frames(IHTMLDocument2 *iface, IHTMLFrames ...@@ -902,11 +902,11 @@ static HRESULT WINAPI HTMLDocument_get_frames(IHTMLDocument2 *iface, IHTMLFrames
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
if(!This->basedoc.window) { if(!This->outer_window) {
/* Not implemented by IE */ /* Not implemented by IE */
return E_NOTIMPL; return E_NOTIMPL;
} }
return IHTMLWindow2_get_frames(&This->basedoc.window->base.IHTMLWindow2_iface, p); return IHTMLWindow2_get_frames(&This->outer_window->base.IHTMLWindow2_iface, p);
} }
static HRESULT WINAPI HTMLDocument_get_embeds(IHTMLDocument2 *iface, IHTMLElementCollection **p) static HRESULT WINAPI HTMLDocument_get_embeds(IHTMLDocument2 *iface, IHTMLElementCollection **p)
...@@ -1074,12 +1074,12 @@ static HRESULT WINAPI HTMLDocument_put_URL(IHTMLDocument2 *iface, BSTR v) ...@@ -1074,12 +1074,12 @@ static HRESULT WINAPI HTMLDocument_put_URL(IHTMLDocument2 *iface, BSTR v)
TRACE("(%p)->(%s)\n", This, debugstr_w(v)); TRACE("(%p)->(%s)\n", This, debugstr_w(v));
if(!This->basedoc.window) { if(!This->outer_window) {
FIXME("No window available\n"); FIXME("No window available\n");
return E_FAIL; return E_FAIL;
} }
return navigate_url(This->basedoc.window, v, This->basedoc.window->uri, BINDING_NAVIGATED); return navigate_url(This->outer_window, v, This->outer_window->uri, BINDING_NAVIGATED);
} }
static HRESULT WINAPI HTMLDocument_get_URL(IHTMLDocument2 *iface, BSTR *p) static HRESULT WINAPI HTMLDocument_get_URL(IHTMLDocument2 *iface, BSTR *p)
...@@ -1088,7 +1088,7 @@ static HRESULT WINAPI HTMLDocument_get_URL(IHTMLDocument2 *iface, BSTR *p) ...@@ -1088,7 +1088,7 @@ static HRESULT WINAPI HTMLDocument_get_URL(IHTMLDocument2 *iface, BSTR *p)
TRACE("(%p)->(%p)\n", iface, p); TRACE("(%p)->(%p)\n", iface, p);
*p = SysAllocString(This->basedoc.window && This->basedoc.window->url ? This->basedoc.window->url : L"about:blank"); *p = SysAllocString(This->outer_window && This->outer_window->url ? This->outer_window->url : L"about:blank");
return *p ? S_OK : E_OUTOFMEMORY; return *p ? S_OK : E_OUTOFMEMORY;
} }
...@@ -1121,7 +1121,7 @@ static HRESULT WINAPI HTMLDocument_get_domain(IHTMLDocument2 *iface, BSTR *p) ...@@ -1121,7 +1121,7 @@ static HRESULT WINAPI HTMLDocument_get_domain(IHTMLDocument2 *iface, BSTR *p)
nsAString_Init(&nsstr, NULL); nsAString_Init(&nsstr, NULL);
nsres = nsIDOMHTMLDocument_GetDomain(This->nsdoc, &nsstr); nsres = nsIDOMHTMLDocument_GetDomain(This->nsdoc, &nsstr);
if(NS_SUCCEEDED(nsres) && This->basedoc.window && This->basedoc.window->uri) { if(NS_SUCCEEDED(nsres) && This->outer_window && This->outer_window->uri) {
const PRUnichar *str; const PRUnichar *str;
HRESULT hres; HRESULT hres;
...@@ -1129,7 +1129,7 @@ static HRESULT WINAPI HTMLDocument_get_domain(IHTMLDocument2 *iface, BSTR *p) ...@@ -1129,7 +1129,7 @@ static HRESULT WINAPI HTMLDocument_get_domain(IHTMLDocument2 *iface, BSTR *p)
if(!*str) { if(!*str) {
TRACE("Gecko returned empty string, fallback to loaded URL.\n"); TRACE("Gecko returned empty string, fallback to loaded URL.\n");
nsAString_Finish(&nsstr); nsAString_Finish(&nsstr);
hres = IUri_GetHost(This->basedoc.window->uri, p); hres = IUri_GetHost(This->outer_window->uri, p);
return FAILED(hres) ? hres : S_OK; return FAILED(hres) ? hres : S_OK;
} }
} }
...@@ -1144,10 +1144,10 @@ static HRESULT WINAPI HTMLDocument_put_cookie(IHTMLDocument2 *iface, BSTR v) ...@@ -1144,10 +1144,10 @@ static HRESULT WINAPI HTMLDocument_put_cookie(IHTMLDocument2 *iface, BSTR v)
TRACE("(%p)->(%s)\n", This, debugstr_w(v)); TRACE("(%p)->(%s)\n", This, debugstr_w(v));
if(!This->basedoc.window) if(!This->outer_window)
return S_OK; return S_OK;
bret = InternetSetCookieExW(This->basedoc.window->url, NULL, v, 0, 0); bret = InternetSetCookieExW(This->outer_window->url, NULL, v, 0, 0);
if(!bret) { if(!bret) {
FIXME("InternetSetCookieExW failed: %lu\n", GetLastError()); FIXME("InternetSetCookieExW failed: %lu\n", GetLastError());
return HRESULT_FROM_WIN32(GetLastError()); return HRESULT_FROM_WIN32(GetLastError());
...@@ -1164,13 +1164,13 @@ static HRESULT WINAPI HTMLDocument_get_cookie(IHTMLDocument2 *iface, BSTR *p) ...@@ -1164,13 +1164,13 @@ static HRESULT WINAPI HTMLDocument_get_cookie(IHTMLDocument2 *iface, BSTR *p)
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
if(!This->basedoc.window) { if(!This->outer_window) {
*p = NULL; *p = NULL;
return S_OK; return S_OK;
} }
size = 0; size = 0;
bret = InternetGetCookieExW(This->basedoc.window->url, NULL, NULL, &size, 0, NULL); bret = InternetGetCookieExW(This->outer_window->url, NULL, NULL, &size, 0, NULL);
if(!bret && GetLastError() != ERROR_INSUFFICIENT_BUFFER) { if(!bret && GetLastError() != ERROR_INSUFFICIENT_BUFFER) {
WARN("InternetGetCookieExW failed: %lu\n", GetLastError()); WARN("InternetGetCookieExW failed: %lu\n", GetLastError());
*p = NULL; *p = NULL;
...@@ -1186,7 +1186,7 @@ static HRESULT WINAPI HTMLDocument_get_cookie(IHTMLDocument2 *iface, BSTR *p) ...@@ -1186,7 +1186,7 @@ static HRESULT WINAPI HTMLDocument_get_cookie(IHTMLDocument2 *iface, BSTR *p)
if(!*p) if(!*p)
return E_OUTOFMEMORY; return E_OUTOFMEMORY;
bret = InternetGetCookieExW(This->basedoc.window->url, NULL, *p, &size, 0, NULL); bret = InternetGetCookieExW(This->outer_window->url, NULL, *p, &size, 0, NULL);
if(!bret) { if(!bret) {
ERR("InternetGetCookieExW failed: %lu\n", GetLastError()); ERR("InternetGetCookieExW failed: %lu\n", GetLastError());
return E_FAIL; return E_FAIL;
...@@ -1391,7 +1391,7 @@ static HRESULT WINAPI HTMLDocument_open(IHTMLDocument2 *iface, BSTR url, VARIANT ...@@ -1391,7 +1391,7 @@ static HRESULT WINAPI HTMLDocument_open(IHTMLDocument2 *iface, BSTR url, VARIANT
*pomWindowResult = NULL; *pomWindowResult = NULL;
if(!This->basedoc.window) if(!This->outer_window)
return E_FAIL; return E_FAIL;
if(!This->nsdoc) { if(!This->nsdoc) {
...@@ -1413,8 +1413,8 @@ static HRESULT WINAPI HTMLDocument_open(IHTMLDocument2 *iface, BSTR url, VARIANT ...@@ -1413,8 +1413,8 @@ static HRESULT WINAPI HTMLDocument_open(IHTMLDocument2 *iface, BSTR url, VARIANT
if(tmp) if(tmp)
nsISupports_Release(tmp); nsISupports_Release(tmp);
*pomWindowResult = (IDispatch*)&This->basedoc.window->base.IHTMLWindow2_iface; *pomWindowResult = (IDispatch*)&This->outer_window->base.IHTMLWindow2_iface;
IHTMLWindow2_AddRef(&This->basedoc.window->base.IHTMLWindow2_iface); IHTMLWindow2_AddRef(&This->outer_window->base.IHTMLWindow2_iface);
return S_OK; return S_OK;
} }
...@@ -2272,7 +2272,7 @@ static HRESULT WINAPI HTMLDocument3_get_documentElement(IHTMLDocument3 *iface, I ...@@ -2272,7 +2272,7 @@ static HRESULT WINAPI HTMLDocument3_get_documentElement(IHTMLDocument3 *iface, I
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
if(This->basedoc.window && This->basedoc.window->readystate == READYSTATE_UNINITIALIZED) { if(This->outer_window && This->outer_window->readystate == READYSTATE_UNINITIALIZED) {
*p = NULL; *p = NULL;
return S_OK; return S_OK;
} }
...@@ -4728,7 +4728,7 @@ static void HTMLDocumentNode_on_advise(IUnknown *iface, cp_static_data_t *cp) ...@@ -4728,7 +4728,7 @@ static void HTMLDocumentNode_on_advise(IUnknown *iface, cp_static_data_t *cp)
{ {
HTMLDocumentNode *This = CONTAINING_RECORD((IHTMLDocument2*)iface, HTMLDocumentNode, IHTMLDocument2_iface); HTMLDocumentNode *This = CONTAINING_RECORD((IHTMLDocument2*)iface, HTMLDocumentNode, IHTMLDocument2_iface);
if(This->basedoc.window) if(This->outer_window)
update_doc_cp_events(This, cp); update_doc_cp_events(This, cp);
} }
...@@ -5956,10 +5956,10 @@ static HRESULT HTMLDocumentNode_location_hook(DispatchEx *dispex, WORD flags, DI ...@@ -5956,10 +5956,10 @@ static HRESULT HTMLDocumentNode_location_hook(DispatchEx *dispex, WORD flags, DI
{ {
HTMLDocumentNode *This = impl_from_DispatchEx(dispex); HTMLDocumentNode *This = impl_from_DispatchEx(dispex);
if(!(flags & DISPATCH_PROPERTYPUT) || !This->basedoc.window) if(!(flags & DISPATCH_PROPERTYPUT) || !This->outer_window)
return S_FALSE; return S_FALSE;
return IDispatchEx_InvokeEx(&This->basedoc.window->base.IDispatchEx_iface, DISPID_IHTMLWINDOW2_LOCATION, return IDispatchEx_InvokeEx(&This->outer_window->base.IDispatchEx_iface, DISPID_IHTMLWINDOW2_LOCATION,
0, flags, dp, res, ei, caller); 0, flags, dp, res, ei, caller);
} }
...@@ -6065,7 +6065,7 @@ static HTMLDocumentNode *alloc_doc_node(HTMLDocumentObj *doc_obj, HTMLInnerWindo ...@@ -6065,7 +6065,7 @@ static HTMLDocumentNode *alloc_doc_node(HTMLDocumentObj *doc_obj, HTMLInnerWindo
doc->basedoc.doc_node = doc; doc->basedoc.doc_node = doc;
doc->basedoc.doc_obj = doc_obj; doc->basedoc.doc_obj = doc_obj;
doc->basedoc.window = window ? window->base.outer_window : NULL; doc->outer_window = window ? window->base.outer_window : NULL;
doc->window = window; doc->window = window;
ConnectionPointContainer_Init(&doc->cp_container, (IUnknown*)&doc->IHTMLDocument2_iface, HTMLDocumentNode_cpc); ConnectionPointContainer_Init(&doc->cp_container, (IUnknown*)&doc->IHTMLDocument2_iface, HTMLDocumentNode_cpc);
...@@ -6098,7 +6098,7 @@ HRESULT create_document_node(nsIDOMHTMLDocument *nsdoc, GeckoBrowser *browser, H ...@@ -6098,7 +6098,7 @@ HRESULT create_document_node(nsIDOMHTMLDocument *nsdoc, GeckoBrowser *browser, H
lock_document_mode(doc); lock_document_mode(doc);
} }
if(!doc_obj->basedoc.window || (window && is_main_content_window(window->base.outer_window))) if(!doc_obj->window || (window && is_main_content_window(window->base.outer_window)))
doc->cp_container.forward_container = &doc_obj->cp_container; doc->cp_container.forward_container = &doc_obj->cp_container;
HTMLDOMNode_Init(doc, &doc->node, (nsIDOMNode*)nsdoc, &HTMLDocumentNode_dispex); HTMLDOMNode_Init(doc, &doc->node, (nsIDOMNode*)nsdoc, &HTMLDocumentNode_dispex);
......
...@@ -50,7 +50,7 @@ static HRESULT set_frame_doc(HTMLFrameBase *frame, nsIDOMDocument *nsdoc) ...@@ -50,7 +50,7 @@ static HRESULT set_frame_doc(HTMLFrameBase *frame, nsIDOMDocument *nsdoc)
window = mozwindow_to_window(mozwindow); window = mozwindow_to_window(mozwindow);
if(!window && frame->element.node.doc->browser) if(!window && frame->element.node.doc->browser)
hres = create_outer_window(frame->element.node.doc->browser, mozwindow, hres = create_outer_window(frame->element.node.doc->browser, mozwindow,
frame->element.node.doc->basedoc.window, &window); frame->element.node.doc->outer_window, &window);
mozIDOMWindowProxy_Release(mozwindow); mozIDOMWindowProxy_Release(mozwindow);
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
...@@ -127,7 +127,7 @@ static HRESULT WINAPI HTMLFrameBase_put_src(IHTMLFrameBase *iface, BSTR v) ...@@ -127,7 +127,7 @@ static HRESULT WINAPI HTMLFrameBase_put_src(IHTMLFrameBase *iface, BSTR v)
TRACE("(%p)->(%s)\n", This, debugstr_w(v)); TRACE("(%p)->(%s)\n", This, debugstr_w(v));
if(!This->content_window || !This->element.node.doc || !This->element.node.doc->basedoc.window) { if(!This->content_window || !This->element.node.doc || !This->element.node.doc->outer_window) {
nsAString nsstr; nsAString nsstr;
nsresult nsres; nsresult nsres;
...@@ -145,7 +145,7 @@ static HRESULT WINAPI HTMLFrameBase_put_src(IHTMLFrameBase *iface, BSTR v) ...@@ -145,7 +145,7 @@ static HRESULT WINAPI HTMLFrameBase_put_src(IHTMLFrameBase *iface, BSTR v)
return S_OK; return S_OK;
} }
return navigate_url(This->content_window, v, This->element.node.doc->basedoc.window->uri, BINDING_NAVIGATED); return navigate_url(This->content_window, v, This->element.node.doc->outer_window->uri, BINDING_NAVIGATED);
} }
static HRESULT WINAPI HTMLFrameBase_get_src(IHTMLFrameBase *iface, BSTR *p) static HRESULT WINAPI HTMLFrameBase_get_src(IHTMLFrameBase *iface, BSTR *p)
......
...@@ -642,8 +642,6 @@ struct ConnectionPoint { ...@@ -642,8 +642,6 @@ struct ConnectionPoint {
struct HTMLDocument { struct HTMLDocument {
HTMLDocumentObj *doc_obj; HTMLDocumentObj *doc_obj;
HTMLDocumentNode *doc_node; HTMLDocumentNode *doc_node;
HTMLOuterWindow *window;
}; };
struct HTMLDocumentObj { struct HTMLDocumentObj {
...@@ -691,6 +689,7 @@ struct HTMLDocumentObj { ...@@ -691,6 +689,7 @@ struct HTMLDocumentObj {
LONG ref; LONG ref;
IUnknown *outer_unk; IUnknown *outer_unk;
HTMLOuterWindow *window;
GeckoBrowser *nscontainer; GeckoBrowser *nscontainer;
IOleClientSite *client; IOleClientSite *client;
...@@ -916,6 +915,7 @@ struct HTMLDocumentNode { ...@@ -916,6 +915,7 @@ struct HTMLDocumentNode {
LONG ref; LONG ref;
ConnectionPointContainer cp_container; ConnectionPointContainer cp_container;
HTMLOuterWindow *outer_window;
HTMLInnerWindow *window; HTMLInnerWindow *window;
GeckoBrowser *browser; GeckoBrowser *browser;
......
...@@ -283,8 +283,8 @@ static void parse_complete(HTMLDocumentObj *doc) ...@@ -283,8 +283,8 @@ static void parse_complete(HTMLDocumentObj *doc)
call_property_onchanged(&doc->cp_container, 1005); call_property_onchanged(&doc->cp_container, 1005);
call_explorer_69(doc); call_explorer_69(doc);
if(doc->webbrowser && doc->nscontainer->usermode != EDITMODE && !(doc->basedoc.window->load_flags & BINDING_REFRESH)) if(doc->webbrowser && doc->nscontainer->usermode != EDITMODE && !(doc->window->load_flags & BINDING_REFRESH))
IDocObjectService_FireNavigateComplete2(doc->doc_object_service, &doc->basedoc.window->base.IHTMLWindow2_iface, 0); IDocObjectService_FireNavigateComplete2(doc->doc_object_service, &doc->window->base.IHTMLWindow2_iface, 0);
/* FIXME: IE7 calls EnableModelless(TRUE), EnableModelless(FALSE) and sets interactive state here */ /* FIXME: IE7 calls EnableModelless(TRUE), EnableModelless(FALSE) and sets interactive state here */
} }
...@@ -305,7 +305,7 @@ static nsresult run_end_load(HTMLDocumentNode *This, nsISupports *arg1, nsISuppo ...@@ -305,7 +305,7 @@ static nsresult run_end_load(HTMLDocumentNode *This, nsISupports *arg1, nsISuppo
} }
bind_event_scripts(This); bind_event_scripts(This);
set_ready_state(This->basedoc.window, READYSTATE_INTERACTIVE); set_ready_state(This->outer_window, READYSTATE_INTERACTIVE);
return NS_OK; return NS_OK;
} }
......
...@@ -1228,7 +1228,7 @@ void setup_editor_controller(GeckoBrowser *This) ...@@ -1228,7 +1228,7 @@ void setup_editor_controller(GeckoBrowser *This)
} }
nsres = nsIEditingSession_GetEditorForWindow(editing_session, nsres = nsIEditingSession_GetEditorForWindow(editing_session,
This->doc->basedoc.window->window_proxy, &This->editor); This->doc->window->window_proxy, &This->editor);
nsIEditingSession_Release(editing_session); nsIEditingSession_Release(editing_session);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("Could not get editor: %08lx\n", nsres); ERR("Could not get editor: %08lx\n", nsres);
......
...@@ -230,7 +230,7 @@ static nsresult NSAPI handle_load(nsIDOMEventListener *iface, nsIDOMEvent *event ...@@ -230,7 +230,7 @@ static nsresult NSAPI handle_load(nsIDOMEventListener *iface, nsIDOMEvent *event
TRACE("(%p)\n", doc); TRACE("(%p)\n", doc);
if(!doc || !doc->basedoc.window) if(!doc || !doc->outer_window)
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
if(doc->basedoc.doc_obj && doc->basedoc.doc_obj->basedoc.doc_node == doc) if(doc->basedoc.doc_obj && doc->basedoc.doc_obj->basedoc.doc_node == doc)
doc_obj = doc->basedoc.doc_obj; doc_obj = doc->basedoc.doc_obj;
...@@ -242,7 +242,7 @@ static nsresult NSAPI handle_load(nsIDOMEventListener *iface, nsIDOMEvent *event ...@@ -242,7 +242,7 @@ static nsresult NSAPI handle_load(nsIDOMEventListener *iface, nsIDOMEvent *event
if(doc_obj) if(doc_obj)
handle_docobj_load(doc_obj); handle_docobj_load(doc_obj);
set_ready_state(doc->basedoc.window, READYSTATE_COMPLETE); set_ready_state(doc->outer_window, READYSTATE_COMPLETE);
if(doc_obj) { if(doc_obj) {
if(doc_obj->view_sink) if(doc_obj->view_sink)
...@@ -254,9 +254,9 @@ static nsresult NSAPI handle_load(nsIDOMEventListener *iface, nsIDOMEvent *event ...@@ -254,9 +254,9 @@ static nsresult NSAPI handle_load(nsIDOMEventListener *iface, nsIDOMEvent *event
} }
if(doc_obj && doc_obj->nscontainer->usermode != EDITMODE && doc_obj->doc_object_service if(doc_obj && doc_obj->nscontainer->usermode != EDITMODE && doc_obj->doc_object_service
&& !(doc->basedoc.window->load_flags & BINDING_REFRESH)) && !(doc->outer_window->load_flags & BINDING_REFRESH))
IDocObjectService_FireDocumentComplete(doc_obj->doc_object_service, IDocObjectService_FireDocumentComplete(doc_obj->doc_object_service,
&doc->basedoc.window->base.IHTMLWindow2_iface, 0); &doc->outer_window->base.IHTMLWindow2_iface, 0);
if(doc->nsdoc) { if(doc->nsdoc) {
hres = create_document_event(doc, EVENTID_LOAD, &load_event); hres = create_document_event(doc, EVENTID_LOAD, &load_event);
...@@ -383,7 +383,7 @@ static nsIDOMEventTarget *get_default_document_target(HTMLDocumentNode *doc) ...@@ -383,7 +383,7 @@ static nsIDOMEventTarget *get_default_document_target(HTMLDocumentNode *doc)
nsISupports *target_iface; nsISupports *target_iface;
nsresult nsres; nsresult nsres;
target_iface = doc->window ? (nsISupports*)doc->basedoc.window->nswindow : (nsISupports*)doc->nsdoc; target_iface = doc->window ? (nsISupports*)doc->outer_window->nswindow : (nsISupports*)doc->nsdoc;
nsres = nsISupports_QueryInterface(target_iface, &IID_nsIDOMEventTarget, (void**)&target); nsres = nsISupports_QueryInterface(target_iface, &IID_nsIDOMEventTarget, (void**)&target);
return NS_SUCCEEDED(nsres) ? target : NULL; return NS_SUCCEEDED(nsres) ? target : NULL;
} }
......
...@@ -69,7 +69,7 @@ static nsIClipboardCommands *get_clipboard_commands(HTMLDocumentNode *doc) ...@@ -69,7 +69,7 @@ static nsIClipboardCommands *get_clipboard_commands(HTMLDocumentNode *doc)
nsIDocShell *doc_shell; nsIDocShell *doc_shell;
nsresult nsres; nsresult nsres;
nsres = get_nsinterface((nsISupports*)doc->basedoc.window->nswindow, &IID_nsIDocShell, (void**)&doc_shell); nsres = get_nsinterface((nsISupports*)doc->outer_window->nswindow, &IID_nsIDocShell, (void**)&doc_shell);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("Could not get nsIDocShell interface\n"); ERR("Could not get nsIDocShell interface\n");
return NULL; return NULL;
...@@ -475,17 +475,17 @@ static HRESULT exec_refresh(HTMLDocumentNode *doc, DWORD nCmdexecopt, VARIANT *p ...@@ -475,17 +475,17 @@ static HRESULT exec_refresh(HTMLDocumentNode *doc, DWORD nCmdexecopt, VARIANT *p
} }
} }
if(!doc->basedoc.window) if(!doc->outer_window)
return E_UNEXPECTED; return E_UNEXPECTED;
task = heap_alloc(sizeof(*task)); task = heap_alloc(sizeof(*task));
if(!task) if(!task)
return E_OUTOFMEMORY; return E_OUTOFMEMORY;
IHTMLWindow2_AddRef(&doc->basedoc.window->base.IHTMLWindow2_iface); IHTMLWindow2_AddRef(&doc->outer_window->base.IHTMLWindow2_iface);
task->window = doc->basedoc.window; task->window = doc->outer_window;
return push_task(&task->header, refresh_proc, refresh_destr, doc->basedoc.window->task_magic); return push_task(&task->header, refresh_proc, refresh_destr, doc->outer_window->task_magic);
} }
static HRESULT exec_stop(HTMLDocumentNode *doc, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut) static HRESULT exec_stop(HTMLDocumentNode *doc, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
......
...@@ -407,7 +407,7 @@ void set_document_navigation(HTMLDocumentObj *doc, BOOL doc_can_navigate) ...@@ -407,7 +407,7 @@ void set_document_navigation(HTMLDocumentObj *doc, BOOL doc_can_navigate)
if(doc_can_navigate) { if(doc_can_navigate) {
V_VT(&var) = VT_UNKNOWN; V_VT(&var) = VT_UNKNOWN;
V_UNKNOWN(&var) = (IUnknown*)&doc->basedoc.window->base.IHTMLWindow2_iface; V_UNKNOWN(&var) = (IUnknown*)&doc->window->base.IHTMLWindow2_iface;
} }
IOleCommandTarget_Exec(doc->client_cmdtrg, &CGID_DocHostCmdPriv, DOCHOST_DOCCANNAVIGATE, 0, IOleCommandTarget_Exec(doc->client_cmdtrg, &CGID_DocHostCmdPriv, DOCHOST_DOCCANNAVIGATE, 0,
...@@ -2276,11 +2276,11 @@ static HRESULT WINAPI DocObjHTMLDocument2_get_frames(IHTMLDocument2 *iface, IHTM ...@@ -2276,11 +2276,11 @@ static HRESULT WINAPI DocObjHTMLDocument2_get_frames(IHTMLDocument2 *iface, IHTM
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
if(!This->basedoc.window) { if(!This->window) {
/* Not implemented by IE */ /* Not implemented by IE */
return E_NOTIMPL; return E_NOTIMPL;
} }
return IHTMLWindow2_get_frames(&This->basedoc.window->base.IHTMLWindow2_iface, p); return IHTMLWindow2_get_frames(&This->window->base.IHTMLWindow2_iface, p);
} }
HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument2, get_embeds, IHTMLElementCollection**) HTMLDOCUMENTOBJ_FWD_TO_NODE_1(HTMLDocument2, get_embeds, IHTMLElementCollection**)
...@@ -2767,8 +2767,8 @@ static HRESULT WINAPI DocObjHTMLDocument7_get_defaultView(IHTMLDocument7 *iface, ...@@ -2767,8 +2767,8 @@ static HRESULT WINAPI DocObjHTMLDocument7_get_defaultView(IHTMLDocument7 *iface,
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
if(This->basedoc.window) { if(This->window) {
*p = &This->basedoc.window->base.IHTMLWindow2_iface; *p = &This->window->base.IHTMLWindow2_iface;
IHTMLWindow2_AddRef(*p); IHTMLWindow2_AddRef(*p);
}else { }else {
*p = NULL; *p = NULL;
...@@ -3393,8 +3393,8 @@ static ULONG WINAPI HTMLDocumentObj_Release(IUnknown *iface) ...@@ -3393,8 +3393,8 @@ static ULONG WINAPI HTMLDocumentObj_Release(IUnknown *iface)
This->basedoc.doc_node->basedoc.doc_obj = NULL; This->basedoc.doc_node->basedoc.doc_obj = NULL;
IHTMLDOMNode_Release(&This->basedoc.doc_node->node.IHTMLDOMNode_iface); IHTMLDOMNode_Release(&This->basedoc.doc_node->node.IHTMLDOMNode_iface);
} }
if(This->basedoc.window) if(This->window)
IHTMLWindow2_Release(&This->basedoc.window->base.IHTMLWindow2_iface); IHTMLWindow2_Release(&This->window->base.IHTMLWindow2_iface);
if(This->advise_holder) if(This->advise_holder)
IOleAdviseHolder_Release(This->advise_holder); IOleAdviseHolder_Release(This->advise_holder);
...@@ -3502,7 +3502,7 @@ static HRESULT WINAPI DocObjDispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, L ...@@ -3502,7 +3502,7 @@ static HRESULT WINAPI DocObjDispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, L
{ {
HTMLDocumentObj *This = impl_from_IDispatchEx(iface); HTMLDocumentObj *This = impl_from_IDispatchEx(iface);
if(This->basedoc.window) { if(This->window) {
switch(id) { switch(id) {
case DISPID_READYSTATE: case DISPID_READYSTATE:
TRACE("DISPID_READYSTATE\n"); TRACE("DISPID_READYSTATE\n");
...@@ -3511,7 +3511,7 @@ static HRESULT WINAPI DocObjDispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, L ...@@ -3511,7 +3511,7 @@ static HRESULT WINAPI DocObjDispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, L
return E_INVALIDARG; return E_INVALIDARG;
V_VT(pvarRes) = VT_I4; V_VT(pvarRes) = VT_I4;
V_I4(pvarRes) = This->basedoc.window->readystate; V_I4(pvarRes) = This->window->readystate;
return S_OK; return S_OK;
default: default:
break; break;
...@@ -3646,7 +3646,7 @@ static void HTMLDocumentObj_on_advise(IUnknown *iface, cp_static_data_t *cp) ...@@ -3646,7 +3646,7 @@ static void HTMLDocumentObj_on_advise(IUnknown *iface, cp_static_data_t *cp)
{ {
HTMLDocumentObj *This = impl_from_IUnknown(iface); HTMLDocumentObj *This = impl_from_IUnknown(iface);
if(This->basedoc.window && This->basedoc.doc_node) if(This->window && This->basedoc.doc_node)
update_doc_cp_events(This->basedoc.doc_node, cp); update_doc_cp_events(This->basedoc.doc_node, cp);
} }
...@@ -3666,10 +3666,10 @@ static HRESULT HTMLDocumentObj_location_hook(DispatchEx *dispex, WORD flags, DIS ...@@ -3666,10 +3666,10 @@ static HRESULT HTMLDocumentObj_location_hook(DispatchEx *dispex, WORD flags, DIS
{ {
HTMLDocumentObj *This = CONTAINING_RECORD(dispex, HTMLDocumentObj, dispex); HTMLDocumentObj *This = CONTAINING_RECORD(dispex, HTMLDocumentObj, dispex);
if(!(flags & DISPATCH_PROPERTYPUT) || !This->basedoc.window) if(!(flags & DISPATCH_PROPERTYPUT) || !This->window)
return S_FALSE; return S_FALSE;
return IDispatchEx_InvokeEx(&This->basedoc.window->base.IDispatchEx_iface, DISPID_IHTMLWINDOW2_LOCATION, return IDispatchEx_InvokeEx(&This->window->base.IDispatchEx_iface, DISPID_IHTMLWINDOW2_LOCATION,
0, flags, dp, res, ei, caller); 0, flags, dp, res, ei, caller);
} }
...@@ -3767,11 +3767,11 @@ static HRESULT create_document_object(BOOL is_mhtml, IUnknown *outer, REFIID rii ...@@ -3767,11 +3767,11 @@ static HRESULT create_document_object(BOOL is_mhtml, IUnknown *outer, REFIID rii
return hres; return hres;
} }
doc->basedoc.window = doc->nscontainer->content_window; doc->window = doc->nscontainer->content_window;
IHTMLWindow2_AddRef(&doc->basedoc.window->base.IHTMLWindow2_iface); IHTMLWindow2_AddRef(&doc->window->base.IHTMLWindow2_iface);
if(!doc->basedoc.doc_node && doc->basedoc.window->base.inner_window->doc) { if(!doc->basedoc.doc_node && doc->window->base.inner_window->doc) {
doc->basedoc.doc_node = doc->basedoc.window->base.inner_window->doc; doc->basedoc.doc_node = doc->window->base.inner_window->doc;
IHTMLDOMNode_AddRef(&doc->basedoc.doc_node->node.IHTMLDOMNode_iface); IHTMLDOMNode_AddRef(&doc->basedoc.doc_node->node.IHTMLDOMNode_iface);
} }
......
...@@ -302,11 +302,11 @@ void prepare_for_binding(HTMLDocumentObj *This, IMoniker *mon, DWORD flags) ...@@ -302,11 +302,11 @@ void prepare_for_binding(HTMLDocumentObj *This, IMoniker *mon, DWORD flags)
} }
} }
if(This->basedoc.window->mon) { if(This->window->mon) {
update_doc(This, UPDATE_TITLE|UPDATE_UI); update_doc(This, UPDATE_TITLE|UPDATE_UI);
}else { }else {
update_doc(This, UPDATE_TITLE); update_doc(This, UPDATE_TITLE);
set_current_mon(This->basedoc.window, mon, flags); set_current_mon(This->window, mon, flags);
} }
if(This->client) { if(This->client) {
...@@ -318,7 +318,7 @@ void prepare_for_binding(HTMLDocumentObj *This, IMoniker *mon, DWORD flags) ...@@ -318,7 +318,7 @@ void prepare_for_binding(HTMLDocumentObj *This, IMoniker *mon, DWORD flags)
if(flags & BINDING_NAVIGATED) { if(flags & BINDING_NAVIGATED) {
V_VT(&var) = VT_UNKNOWN; V_VT(&var) = VT_UNKNOWN;
V_UNKNOWN(&var) = (IUnknown*)&This->basedoc.window->base.IHTMLWindow2_iface; V_UNKNOWN(&var) = (IUnknown*)&This->window->base.IHTMLWindow2_iface;
V_VT(&out) = VT_EMPTY; V_VT(&out) = VT_EMPTY;
hres = IOleCommandTarget_Exec(cmdtrg, &CGID_ShellDocView, 63, 0, &var, &out); hres = IOleCommandTarget_Exec(cmdtrg, &CGID_ShellDocView, 63, 0, &var, &out);
if(SUCCEEDED(hres)) if(SUCCEEDED(hres))
...@@ -707,12 +707,12 @@ static HRESULT WINAPI DocObjPersistMoniker_Load(IPersistMoniker *iface, BOOL fFu ...@@ -707,12 +707,12 @@ static HRESULT WINAPI DocObjPersistMoniker_Load(IPersistMoniker *iface, BOOL fFu
prepare_for_binding(This, mon, FALSE); prepare_for_binding(This, mon, FALSE);
call_docview_84(This); call_docview_84(This);
hres = set_moniker(This->basedoc.window, mon, NULL, pibc, NULL, TRUE); hres = set_moniker(This->window, mon, NULL, pibc, NULL, TRUE);
IMoniker_Release(mon); IMoniker_Release(mon);
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
return start_binding(This->basedoc.window->pending_window, (BSCallback*)This->basedoc.window->pending_window->bscallback, pibc); return start_binding(This->window->pending_window, (BSCallback*)This->window->pending_window->bscallback, pibc);
} }
static HRESULT WINAPI DocObjPersistMoniker_Save(IPersistMoniker *iface, IMoniker *pimkName, static HRESULT WINAPI DocObjPersistMoniker_Save(IPersistMoniker *iface, IMoniker *pimkName,
...@@ -736,11 +736,11 @@ static HRESULT WINAPI DocObjPersistMoniker_GetCurMoniker(IPersistMoniker *iface, ...@@ -736,11 +736,11 @@ static HRESULT WINAPI DocObjPersistMoniker_GetCurMoniker(IPersistMoniker *iface,
TRACE("(%p)->(%p)\n", This, ppimkName); TRACE("(%p)->(%p)\n", This, ppimkName);
if(!This->basedoc.window || !This->basedoc.window->mon) if(!This->window || !This->window->mon)
return E_UNEXPECTED; return E_UNEXPECTED;
IMoniker_AddRef(This->basedoc.window->mon); IMoniker_AddRef(This->window->mon);
*ppimkName = This->basedoc.window->mon; *ppimkName = This->window->mon;
return S_OK; return S_OK;
} }
...@@ -1186,9 +1186,9 @@ static HRESULT WINAPI DocObjPersistStreamInit_Load(IPersistStreamInit *iface, IS ...@@ -1186,9 +1186,9 @@ static HRESULT WINAPI DocObjPersistStreamInit_Load(IPersistStreamInit *iface, IS
} }
prepare_for_binding(This, mon, FALSE); prepare_for_binding(This, mon, FALSE);
hres = set_moniker(This->basedoc.window, mon, NULL, NULL, NULL, TRUE); hres = set_moniker(This->window, mon, NULL, NULL, NULL, TRUE);
if(SUCCEEDED(hres)) if(SUCCEEDED(hres))
hres = channelbsc_load_stream(This->basedoc.window->pending_window, mon, pStm); hres = channelbsc_load_stream(This->window->pending_window, mon, pStm);
IMoniker_Release(mon); IMoniker_Release(mon);
return hres; return hres;
...@@ -1229,9 +1229,9 @@ static HRESULT WINAPI DocObjPersistStreamInit_InitNew(IPersistStreamInit *iface) ...@@ -1229,9 +1229,9 @@ static HRESULT WINAPI DocObjPersistStreamInit_InitNew(IPersistStreamInit *iface)
} }
prepare_for_binding(This, mon, FALSE); prepare_for_binding(This, mon, FALSE);
hres = set_moniker(This->basedoc.window, mon, NULL, NULL, NULL, FALSE); hres = set_moniker(This->window, mon, NULL, NULL, NULL, FALSE);
if(SUCCEEDED(hres)) if(SUCCEEDED(hres))
hres = channelbsc_load_stream(This->basedoc.window->pending_window, mon, NULL); hres = channelbsc_load_stream(This->window->pending_window, mon, NULL);
IMoniker_Release(mon); IMoniker_Release(mon);
return hres; return hres;
...@@ -1358,7 +1358,7 @@ static HRESULT WINAPI DocObjPersistHistory_LoadHistory(IPersistHistory *iface, I ...@@ -1358,7 +1358,7 @@ static HRESULT WINAPI DocObjPersistHistory_LoadHistory(IPersistHistory *iface, I
TRACE("(%p)->(%p %p)\n", This, pStream, pbc); TRACE("(%p)->(%p %p)\n", This, pStream, pbc);
if(!This->basedoc.window) { if(!This->window) {
FIXME("No current window\n"); FIXME("No current window\n");
return E_UNEXPECTED; return E_UNEXPECTED;
} }
...@@ -1397,7 +1397,7 @@ static HRESULT WINAPI DocObjPersistHistory_LoadHistory(IPersistHistory *iface, I ...@@ -1397,7 +1397,7 @@ static HRESULT WINAPI DocObjPersistHistory_LoadHistory(IPersistHistory *iface, I
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
hres = load_uri(This->basedoc.window, uri, BINDING_FROMHIST); hres = load_uri(This->window, uri, BINDING_FROMHIST);
IUri_Release(uri); IUri_Release(uri);
return hres; return hres;
} }
...@@ -1411,14 +1411,14 @@ static HRESULT WINAPI DocObjPersistHistory_SaveHistory(IPersistHistory *iface, I ...@@ -1411,14 +1411,14 @@ static HRESULT WINAPI DocObjPersistHistory_SaveHistory(IPersistHistory *iface, I
TRACE("(%p)->(%p)\n", This, pStream); TRACE("(%p)->(%p)\n", This, pStream);
if(!This->basedoc.window || !This->basedoc.window->uri) { if(!This->window || !This->window->uri) {
FIXME("No current URI\n"); FIXME("No current URI\n");
return E_FAIL; return E_FAIL;
} }
/* NOTE: The format we store is *not* compatible with native MSHTML. We currently /* NOTE: The format we store is *not* compatible with native MSHTML. We currently
* store only URI of the page (as a length followed by a string) */ * store only URI of the page (as a length followed by a string) */
hres = IUri_GetDisplayUri(This->basedoc.window->uri, &display_uri); hres = IUri_GetDisplayUri(This->window->uri, &display_uri);
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
...@@ -1592,7 +1592,7 @@ static HRESULT WINAPI DocObjHlinkTarget_Navigate(IHlinkTarget *iface, DWORD grfH ...@@ -1592,7 +1592,7 @@ static HRESULT WINAPI DocObjHlinkTarget_Navigate(IHlinkTarget *iface, DWORD grfH
HRESULT hres; HRESULT hres;
BSTR uri; BSTR uri;
hres = IUri_GetAbsoluteUri(This->basedoc.window->uri, &uri); hres = IUri_GetAbsoluteUri(This->window->uri, &uri);
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
......
...@@ -2238,12 +2238,12 @@ static HRESULT WINAPI PHServiceProvider_QueryService(IServiceProvider *iface, RE ...@@ -2238,12 +2238,12 @@ static HRESULT WINAPI PHServiceProvider_QueryService(IServiceProvider *iface, RE
TRACE("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv); TRACE("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv);
if(!This->doc || !This->doc->basedoc.window) { if(!This->doc || !This->doc->outer_window) {
*ppv = NULL; *ppv = NULL;
return E_NOINTERFACE; return E_NOINTERFACE;
} }
return IServiceProvider_QueryService(&This->doc->basedoc.window->base.IServiceProvider_iface, return IServiceProvider_QueryService(&This->doc->outer_window->base.IServiceProvider_iface,
guidService, riid, ppv); guidService, riid, ppv);
} }
......
...@@ -1318,7 +1318,7 @@ static HRESULT WINAPI HTMLTxtRange_select(IHTMLTxtRange *iface) ...@@ -1318,7 +1318,7 @@ static HRESULT WINAPI HTMLTxtRange_select(IHTMLTxtRange *iface)
TRACE("(%p)\n", This); TRACE("(%p)\n", This);
nsres = nsIDOMWindow_GetSelection(This->doc->basedoc.window->nswindow, &nsselection); nsres = nsIDOMWindow_GetSelection(This->doc->outer_window->nswindow, &nsselection);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("GetSelection failed: %08lx\n", nsres); ERR("GetSelection failed: %08lx\n", nsres);
return E_FAIL; return E_FAIL;
......
...@@ -76,10 +76,10 @@ static HRESULT WINAPI InternetHostSecurityManager_ProcessUrlAction(IInternetHost ...@@ -76,10 +76,10 @@ static HRESULT WINAPI InternetHostSecurityManager_ProcessUrlAction(IInternetHost
TRACE("(%p)->(%ld %p %ld %p %ld %lx %lx)\n", This, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved); TRACE("(%p)->(%ld %p %ld %p %ld %lx %lx)\n", This, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved);
if(!This->basedoc.window) if(!This->outer_window)
return E_UNEXPECTED; return E_UNEXPECTED;
url = This->basedoc.window->url ? This->basedoc.window->url : L"about:blank"; url = This->outer_window->url ? This->outer_window->url : L"about:blank";
return IInternetSecurityManager_ProcessUrlAction(get_security_manager(), url, dwAction, pPolicy, cbPolicy, return IInternetSecurityManager_ProcessUrlAction(get_security_manager(), url, dwAction, pPolicy, cbPolicy,
pContext, cbContext, dwFlags, dwReserved); pContext, cbContext, dwFlags, dwReserved);
...@@ -181,10 +181,10 @@ static HRESULT WINAPI InternetHostSecurityManager_QueryCustomPolicy(IInternetHos ...@@ -181,10 +181,10 @@ static HRESULT WINAPI InternetHostSecurityManager_QueryCustomPolicy(IInternetHos
TRACE("(%p)->(%s %p %p %p %ld %lx)\n", This, debugstr_guid(guidKey), ppPolicy, pcbPolicy, pContext, cbContext, dwReserved); TRACE("(%p)->(%s %p %p %p %ld %lx)\n", This, debugstr_guid(guidKey), ppPolicy, pcbPolicy, pContext, cbContext, dwReserved);
if(!This->basedoc.window) if(!This->outer_window)
return E_UNEXPECTED; return E_UNEXPECTED;
url = This->basedoc.window->url ? This->basedoc.window->url : L"about:blank"; url = This->outer_window->url ? This->outer_window->url : L"about:blank";
hres = IInternetSecurityManager_QueryCustomPolicy(get_security_manager(), url, guidKey, ppPolicy, pcbPolicy, hres = IInternetSecurityManager_QueryCustomPolicy(get_security_manager(), url, guidKey, ppPolicy, pcbPolicy,
pContext, cbContext, dwReserved); pContext, cbContext, dwReserved);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment