summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-12 23:52:40 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-12 23:52:40 +0000
commitafdc4c11bd73b73b0d03c6bf1e192d33d1af61f2 (patch)
tree431c0ca0303d8bf1af3da84a85ce6783762fb188
parent5763e6a22b0a1b33a78bd60db4b58e6c01e201fa (diff)
downloadchromium_src-afdc4c11bd73b73b0d03c6bf1e192d33d1af61f2.zip
chromium_src-afdc4c11bd73b73b0d03c6bf1e192d33d1af61f2.tar.gz
chromium_src-afdc4c11bd73b73b0d03c6bf1e192d33d1af61f2.tar.bz2
Merge 47086 - 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 TBR=ananta@chromium.org Review URL: http://codereview.chromium.org/2048014 git-svn-id: svn://svn.chromium.org/chrome/branches/375/src@47095 0039d316-1c4b-4281-b951-d872f2087c98
-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 4a42951..aff075c 100644
--- a/chrome_frame/chrome_active_document.cc
+++ b/chrome_frame/chrome_active_document.cc
@@ -680,15 +680,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 ec3d1f6..8fe4743 100644
--- a/chrome_frame/chrome_frame_automation.cc
+++ b/chrome_frame/chrome_frame_automation.cc
@@ -69,8 +69,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 cc9d6a8..ac072f6 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;
}