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