Module: wine Branch: master Commit: 595fb40efcfe1d49747ef63e823f9e6171e2d193 URL: http://source.winehq.org/git/wine.git/?a=commit;h=595fb40efcfe1d49747ef63e82...
Author: Jacek Caban jacek@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)