Jacek Caban : mshtml: Moved EvaluateNewWindow call to navigate_new_window.
Alexandre Julliard
julliard at winehq.org
Wed Jun 21 16:43:44 CDT 2017
Module: wine
Branch: master
Commit: 63205bf01d6c1ecb87f7a5b8100ad23d80b45585
URL: http://source.winehq.org/git/wine.git/?a=commit;h=63205bf01d6c1ecb87f7a5b8100ad23d80b45585
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Jun 21 17:05:31 2017 +0200
mshtml: Moved EvaluateNewWindow call to navigate_new_window.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/mshtml/htmlwindow.c | 26 ++++----------------------
dlls/mshtml/navigate.c | 32 ++++++++++++++++++++++++++++++++
2 files changed, 36 insertions(+), 22 deletions(-)
diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c
index 2914073..5853220 100644
--- a/dlls/mshtml/htmlwindow.c
+++ b/dlls/mshtml/htmlwindow.c
@@ -971,8 +971,6 @@ static HRESULT WINAPI HTMLWindow2_open(IHTMLWindow2 *iface, BSTR url, BSTR name,
{
HTMLWindow *This = impl_from_IHTMLWindow2(iface);
HTMLOuterWindow *window = This->outer_window;
- INewWindowManager *new_window_mgr;
- BSTR uri_str;
IUri *uri;
HRESULT hres;
@@ -980,6 +978,10 @@ static HRESULT WINAPI HTMLWindow2_open(IHTMLWindow2 *iface, BSTR url, BSTR name,
TRACE("(%p)->(%s %s %s %x %p)\n", This, debugstr_w(url), debugstr_w(name),
debugstr_w(features), replace, pomWindowResult);
+ if(features)
+ FIXME("unsupported features argument %s\n", debugstr_w(features));
+ if(replace)
+ FIXME("unsupported relace argument\n");
if(!window->doc_obj || !window->uri_nofrag)
return E_UNEXPECTED;
@@ -1006,26 +1008,6 @@ static HRESULT WINAPI HTMLWindow2_open(IHTMLWindow2 *iface, BSTR url, BSTR name,
return E_NOTIMPL;
}
- hres = do_query_service((IUnknown*)window->doc_obj->client, &SID_SNewWindowManager, &IID_INewWindowManager,
- (void**)&new_window_mgr);
- if(FAILED(hres)) {
- FIXME("No INewWindowManager\n");
- return E_NOTIMPL;
- }
-
- hres = IUri_GetDisplayUri(window->uri_nofrag, &uri_str);
- if(SUCCEEDED(hres)) {
- hres = INewWindowManager_EvaluateNewWindow(new_window_mgr, url, name, uri_str,
- features, !!replace, window->doc_obj->has_popup ? 0 : NWMF_FIRST, 0);
- window->doc_obj->has_popup = TRUE;
- SysFreeString(uri_str);
- }
- INewWindowManager_Release(new_window_mgr);
- if(FAILED(hres)) {
- *pomWindowResult = NULL;
- return S_OK;
- }
-
hres = create_relative_uri(window, url, &uri);
if(FAILED(hres))
return hres;
diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index 9dec64d..423d650 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -2238,12 +2238,44 @@ HRESULT super_navigate(HTMLOuterWindow *window, IUri *uri, DWORD flags, const WC
HRESULT navigate_new_window(HTMLOuterWindow *window, IUri *uri, const WCHAR *name, request_data_t *request_data, IHTMLWindow2 **ret)
{
+ INewWindowManager *new_window_mgr;
+ BSTR display_uri, context_url;
IWebBrowser2 *web_browser;
IHTMLWindow2 *new_window;
IBindCtx *bind_ctx;
nsChannelBSC *bsc;
HRESULT hres;
+ hres = do_query_service((IUnknown*)window->doc_obj->client, &SID_SNewWindowManager, &IID_INewWindowManager,
+ (void**)&new_window_mgr);
+ if(SUCCEEDED(hres)) {
+ hres = IUri_GetDisplayUri(window->uri_nofrag, &context_url);
+ if(FAILED(hres))
+ return hres;
+
+ hres = IUri_GetDisplayUri(uri, &display_uri);
+ if(FAILED(hres)) {
+ SysFreeString(context_url);
+ return hres;
+ }
+
+ hres = INewWindowManager_EvaluateNewWindow(new_window_mgr, display_uri, name, context_url,
+ NULL, FALSE, window->doc_obj->has_popup ? 0 : NWMF_FIRST, 0);
+ window->doc_obj->has_popup = TRUE;
+ SysFreeString(display_uri);
+ SysFreeString(context_url);
+ INewWindowManager_Release(new_window_mgr);
+ if(FAILED(hres)) {
+ if(ret)
+ *ret = NULL;
+ return S_OK;
+ }
+ }else {
+ FIXME("No INewWindowManager\n");
+ return E_NOTIMPL;
+ }
+
+
if(request_data)
hres = create_channelbsc(NULL, request_data->headers,
request_data->post_data, request_data->post_data_len, FALSE,
More information about the wine-cvs
mailing list