Index: chrome/browser/external_tab_container_win.cc |
=================================================================== |
--- chrome/browser/external_tab_container_win.cc (revision 107766) |
+++ chrome/browser/external_tab_container_win.cc (working copy) |
@@ -219,6 +219,8 @@ |
content::Source<TabContents>(tab_contents_->tab_contents())); |
registrar_.Add(this, content::NOTIFICATION_RENDER_VIEW_HOST_DELETED, |
content::NotificationService::AllSources()); |
+ registrar_.Add(this, content::NOTIFICATION_RENDER_VIEW_HOST_CREATED, |
+ content::NotificationService::AllSources()); |
TabContentsObserver::Observe(tab_contents_->tab_contents()); |
@@ -838,33 +840,33 @@ |
break; |
} |
case content::NOTIFICATION_NAV_ENTRY_COMMITTED: { |
- if (ignore_next_load_notification_) { |
- ignore_next_load_notification_ = false; |
- return; |
- } |
+ if (ignore_next_load_notification_) { |
+ ignore_next_load_notification_ = false; |
+ return; |
+ } |
- const content::LoadCommittedDetails* commit = |
- content::Details<content::LoadCommittedDetails>(details).ptr(); |
+ const content::LoadCommittedDetails* commit = |
+ content::Details<content::LoadCommittedDetails>(details).ptr(); |
- if (commit->http_status_code >= kHttpClientErrorStart && |
- commit->http_status_code <= kHttpServerErrorEnd) { |
- automation_->Send(new AutomationMsg_NavigationFailed( |
- tab_handle_, commit->http_status_code, commit->entry->url())); |
+ if (commit->http_status_code >= kHttpClientErrorStart && |
+ commit->http_status_code <= kHttpServerErrorEnd) { |
+ automation_->Send(new AutomationMsg_NavigationFailed( |
+ tab_handle_, commit->http_status_code, commit->entry->url())); |
- ignore_next_load_notification_ = true; |
- } else { |
- NavigationInfo navigation_info; |
- // When the previous entry index is invalid, it will be -1, which |
- // will still make the computation come out right (navigating to the |
- // 0th entry will be +1). |
- if (InitNavigationInfo(&navigation_info, commit->type, |
- commit->previous_entry_index - |
- tab_contents_->controller().last_committed_entry_index())) |
- automation_->Send(new AutomationMsg_DidNavigate(tab_handle_, |
- navigation_info)); |
- } |
- break; |
+ ignore_next_load_notification_ = true; |
+ } else { |
+ NavigationInfo navigation_info; |
+ // When the previous entry index is invalid, it will be -1, which |
+ // will still make the computation come out right (navigating to the |
+ // 0th entry will be +1). |
+ if (InitNavigationInfo(&navigation_info, commit->type, |
+ commit->previous_entry_index - |
+ tab_contents_->controller().last_committed_entry_index())) |
+ automation_->Send(new AutomationMsg_DidNavigate(tab_handle_, |
+ navigation_info)); |
} |
+ break; |
+ } |
case content::NOTIFICATION_FAIL_PROVISIONAL_LOAD_WITH_ERROR: { |
const ProvisionalLoadDetails* load_details = |
content::Details<ProvisionalLoadDetails>(details).ptr(); |
@@ -888,6 +890,13 @@ |
} |
break; |
} |
+ case content::NOTIFICATION_RENDER_VIEW_HOST_CREATED: { |
+ if (load_requests_via_automation_) { |
+ RenderViewHost* rvh = content::Source<RenderViewHost>(source).ptr(); |
+ RegisterRenderViewHostForAutomation(rvh, false); |
+ } |
+ break; |
+ } |
default: |
NOTREACHED(); |
} |