summaryrefslogtreecommitdiffstats
path: root/chrome_frame
diff options
context:
space:
mode:
Diffstat (limited to 'chrome_frame')
-rw-r--r--chrome_frame/chrome_active_document.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/chrome_frame/chrome_active_document.cc b/chrome_frame/chrome_active_document.cc
index 40137e9..64cd750 100644
--- a/chrome_frame/chrome_active_document.cc
+++ b/chrome_frame/chrome_active_document.cc
@@ -598,8 +598,15 @@ void ChromeActiveDocument::UpdateNavigationState(
if (is_internal_navigation) {
ScopedComPtr<IDocObjectService> doc_object_svc;
ScopedComPtr<IWebBrowserEventsService> web_browser_events_svc;
+
DoQueryService(__uuidof(web_browser_events_svc), m_spClientSite,
web_browser_events_svc.Receive());
+
+ if (!web_browser_events_svc.get()) {
+ DoQueryService(SID_SShellBrowser, m_spClientSite,
+ doc_object_svc.Receive());
+ }
+
// web_browser_events_svc can be NULL on IE6.
if (web_browser_events_svc) {
VARIANT_BOOL should_cancel = VARIANT_FALSE;