Module: wine Branch: master Commit: 9e2a446fad0b2cd78c4efacb3ee77a3fd925c0b2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9e2a446fad0b2cd78c4efacb3e...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Feb 11 13:06:04 2015 +0100
mshtml: Call FireBeforeNavigate2 for navigation in frames and iframes.
---
dlls/mshtml/navigate.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c index 878e582..c2d4603 100644 --- a/dlls/mshtml/navigate.c +++ b/dlls/mshtml/navigate.c @@ -2245,23 +2245,32 @@ static HRESULT navigate_uri(HTMLOuterWindow *window, IUri *uri, const WCHAR *dis
TRACE("%s\n", debugstr_w(display_uri));
- if(window->doc_obj && window->doc_obj->webbrowser && window == window->doc_obj->basedoc.window) { + if(window->doc_obj && window->doc_obj->webbrowser) { DWORD post_data_len = request_data ? request_data->post_data_len : 0; void *post_data = post_data_len ? request_data->post_data : NULL; const WCHAR *headers = request_data ? request_data->headers : NULL;
if(!(flags & BINDING_REFRESH)) { + BSTR frame_name = NULL; BOOL cancel = FALSE;
+ if(window != window->doc_obj->basedoc.window) { + hres = IHTMLWindow2_get_name(&window->base.IHTMLWindow2_iface, &frame_name); + if(FAILED(hres)) + return hres; + } + hres = IDocObjectService_FireBeforeNavigate2(window->doc_obj->doc_object_service, NULL, display_uri, 0x40, - NULL, post_data, post_data_len ? post_data_len+1 : 0, headers, TRUE, &cancel); + frame_name, post_data, post_data_len ? post_data_len+1 : 0, headers, TRUE, &cancel); + SysFreeString(frame_name); if(SUCCEEDED(hres) && cancel) { TRACE("Navigation canceled\n"); return S_OK; } }
- return super_navigate(window, uri, flags, headers, post_data, post_data_len); + if(window == window->doc_obj->basedoc.window) + return super_navigate(window, uri, flags, headers, post_data, post_data_len); }
if(window->doc_obj && window == window->doc_obj->basedoc.window) {