Jacek Caban : mshtml: Don' t use fragment navigation for SuperNavigate calls.
Alexandre Julliard
julliard at winehq.org
Tue Mar 4 14:08:51 CST 2014
Module: wine
Branch: master
Commit: 595fb40efcfe1d49747ef63e823f9e6171e2d193
URL: http://source.winehq.org/git/wine.git/?a=commit;h=595fb40efcfe1d49747ef63e823f9e6171e2d193
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Mar 4 16:48:31 2014 +0100
mshtml: Don't use fragment navigation for SuperNavigate calls.
---
dlls/ieframe/tests/webbrowser.c | 4 ++++
dlls/mshtml/binding.h | 1 +
dlls/mshtml/htmlwindow.c | 2 +-
dlls/mshtml/navigate.c | 2 +-
dlls/mshtml/olecmd.c | 2 +-
5 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/dlls/ieframe/tests/webbrowser.c b/dlls/ieframe/tests/webbrowser.c
index 776e2bc..ce96edf 100644
--- a/dlls/ieframe/tests/webbrowser.c
+++ b/dlls/ieframe/tests/webbrowser.c
@@ -3424,6 +3424,10 @@ static void test_WebBrowser(BOOL do_download, BOOL do_close)
trace("GoForward...\n");
test_go_forward(webbrowser, "http://test.winehq.org/tests/winehq_snapshot/");
test_download(DWL_FROM_GOFORWARD|DWL_HTTP);
+ }else {
+ trace("Navigate2 repeated with the same URL...\n");
+ test_Navigate2(webbrowser, "about:blank");
+ test_download(DWL_EXPECT_BEFORE_NAVIGATE);
}
test_EnumVerbs(webbrowser);
diff --git a/dlls/mshtml/binding.h b/dlls/mshtml/binding.h
index d990750..63ac882 100644
--- a/dlls/mshtml/binding.h
+++ b/dlls/mshtml/binding.h
@@ -107,6 +107,7 @@ typedef struct {
#define BINDING_FROMHIST 0x0004
#define BINDING_REFRESH 0x0008
#define BINDING_SUBMIT 0x0010
+#define BINDING_NOFRAG 0x0020
HRESULT set_http_header(struct list*,const WCHAR*,int,const WCHAR*,int) DECLSPEC_HIDDEN;
HRESULT create_redirect_nschannel(const WCHAR*,nsChannel*,nsChannel**) DECLSPEC_HIDDEN;
diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c
index 65161fd..45bcd43 100644
--- a/dlls/mshtml/htmlwindow.c
+++ b/dlls/mshtml/htmlwindow.c
@@ -2184,7 +2184,7 @@ static HRESULT WINAPI HTMLPrivateWindow_SuperNavigate(IHTMLPrivateWindow *iface,
headers = V_BSTR(headers_var);
}
- hres = super_navigate(window, uri, BINDING_NAVIGATED, headers, post_data, post_data_size);
+ hres = super_navigate(window, uri, BINDING_NAVIGATED|BINDING_NOFRAG, headers, post_data, post_data_size);
IUri_Release(uri);
if(post_data)
SafeArrayUnaccessData(V_ARRAY(post_data_var));
diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index 3ef255a..b8cdf6c 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -2210,7 +2210,7 @@ HRESULT super_navigate(HTMLOuterWindow *window, IUri *uri, DWORD flags, const WC
}
}
- if(!(flags & BINDING_REFRESH) && window->uri_nofrag && !post_data_size) {
+ if(!(flags & BINDING_NOFRAG) && window->uri_nofrag && !post_data_size) {
BOOL eq;
hres = IUri_IsEqual(uri_nofrag, window->uri_nofrag, &eq);
diff --git a/dlls/mshtml/olecmd.c b/dlls/mshtml/olecmd.c
index 8d94209..082777c 100644
--- a/dlls/mshtml/olecmd.c
+++ b/dlls/mshtml/olecmd.c
@@ -407,7 +407,7 @@ static void refresh_proc(task_t *_task)
IOleCommandTarget_Exec(window->doc_obj->client_cmdtrg, &CGID_ShellDocView, 37, 0, &var, NULL);
}
- load_uri(task->window, task->window->uri, BINDING_REFRESH);
+ load_uri(task->window, task->window->uri, BINDING_REFRESH|BINDING_NOFRAG);
}
static void refresh_destr(task_t *_task)
More information about the wine-cvs
mailing list