summaryrefslogtreecommitdiffstats
path: root/chrome_frame
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-12 22:52:58 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-12 22:52:58 +0000
commit410426f7ac5d9d8dfea3c96b7ccf1c082a8218cb (patch)
tree7dac59c7049ccffe3357fdaeecdcb7acd7b95f56 /chrome_frame
parent7057f4f61731dc8373897957c821bffc6f99082c (diff)
downloadchromium_src-410426f7ac5d9d8dfea3c96b7ccf1c082a8218cb.zip
chromium_src-410426f7ac5d9d8dfea3c96b7ccf1c082a8218cb.tar.gz
chromium_src-410426f7ac5d9d8dfea3c96b7ccf1c082a8218cb.tar.bz2
ChromeFrame would not switch to Chrome at times. The navigation manager in ChromeFrame maintains the current top level URL
which is used by the moniker patch to decide whether to wrap the callback. This url is typically set in the Bho in the BeforeNavigate callback. We also had code to update this url when we receive a navigation update from Chrome. The reason we would not switch is because of a race condition between receiving a top level navigation request from chrome and receiving a navigation update for the previous operation which caused us to not wrap the bind status callback. Fix is to not update the url in the callback when we receive a navigation status update. In any case it is Chrome's responsibility to inform ChromeFrame about top level url navigations. We should fix the bug if any in Chrome which caused this hack to go in. Fixes bug http://code.google.com/p/chromium/issues/detail?id=43922 Other changes are to replace the NOTREACHED in the chrome frame automation proxy code with a DLOG as this fires during chrome frame test runs. Bug=43922 Review URL: http://codereview.chromium.org/1991008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47086 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame')
-rw-r--r--chrome_frame/chrome_active_document.cc9
-rw-r--r--chrome_frame/chrome_frame_automation.cc3
-rw-r--r--chrome_frame/urlmon_moniker.cc2
3 files changed, 2 insertions, 12 deletions
diff --git a/chrome_frame/chrome_active_document.cc b/chrome_frame/chrome_active_document.cc
index 7bc6fc3..1ef46e4 100644
--- a/chrome_frame/chrome_active_document.cc
+++ b/chrome_frame/chrome_active_document.cc
@@ -685,15 +685,6 @@ void ChromeActiveDocument::UpdateNavigationState(
StartsWith(static_cast<BSTR>(url_), kChromeAttachExternalTabPrefix,
false);
- if (new_navigation_info.url.is_valid()) {
- url_.Allocate(UTF8ToWide(new_navigation_info.url.spec()).c_str());
- NavigationManager* mgr = NavigationManager::GetThreadInstance();
- DCHECK(mgr);
- if (mgr) {
- mgr->set_url(url_);
- }
- }
-
if (is_internal_navigation) {
ScopedComPtr<IDocObjectService> doc_object_svc;
ScopedComPtr<IWebBrowserEventsService> web_browser_events_svc;
diff --git a/chrome_frame/chrome_frame_automation.cc b/chrome_frame/chrome_frame_automation.cc
index 49971d8..8d89cbd 100644
--- a/chrome_frame/chrome_frame_automation.cc
+++ b/chrome_frame/chrome_frame_automation.cc
@@ -70,8 +70,7 @@ class ChromeFrameAutomationProxyImpl::TabProxyNotificationMessageFilter
tab->OnMessageReceived(message);
tab->Release();
} else {
- NOTREACHED() << "Failed to find TabProxy for tab:" << tab_handle;
- return false;
+ DLOG(ERROR) << "Failed to find TabProxy for tab:" << tab_handle;
}
return true;
}
diff --git a/chrome_frame/urlmon_moniker.cc b/chrome_frame/urlmon_moniker.cc
index 6a3910b..44decb3 100644
--- a/chrome_frame/urlmon_moniker.cc
+++ b/chrome_frame/urlmon_moniker.cc
@@ -142,7 +142,7 @@ bool ShouldWrapCallback(IMoniker* moniker, REFIID iid, IBindCtx* bind_context) {
NavigationManager* mgr = NavigationManager::GetThreadInstance();
if (!mgr) {
DLOG(INFO) << __FUNCTION__ << " Url: " << url <<
- " No navitagion manager to wrap";
+ " No navigation manager to wrap";
return false;
}