Index: content/browser/web_contents/interstitial_page_impl.cc |
diff --git a/content/browser/web_contents/interstitial_page_impl.cc b/content/browser/web_contents/interstitial_page_impl.cc |
index 5df8063526f18f1cc1ccd404f6604a76a2863bd1..b4ca0c9b603ded539d54d87a157d05882f1e91fa 100644 |
--- a/content/browser/web_contents/interstitial_page_impl.cc |
+++ b/content/browser/web_contents/interstitial_page_impl.cc |
@@ -127,13 +127,13 @@ class InterstitialPageImpl::InterstitialPageRVHViewDelegate |
// We keep a map of the various blocking pages shown as the UI tests need to |
// be able to retrieve them. |
typedef std::map<WebContents*, InterstitialPageImpl*> InterstitialPageMap; |
-static InterstitialPageMap* g_tab_to_interstitial_page; |
+static InterstitialPageMap* g_contents_to_interstitial_page; |
jam
2012/04/13 18:23:21
ditto
|
-// Initializes g_tab_to_interstitial_page in a thread-safe manner. |
-// Should be called before accessing g_tab_to_interstitial_page. |
+// Initializes g_contents_to_interstitial_page in a thread-safe manner. |
+// Should be called before accessing g_contents_to_interstitial_page. |
static void InitInterstitialPageMap() { |
- if (!g_tab_to_interstitial_page) |
- g_tab_to_interstitial_page = new InterstitialPageMap; |
+ if (!g_contents_to_interstitial_page) |
+ g_contents_to_interstitial_page = new InterstitialPageMap; |
} |
namespace content { |
@@ -149,8 +149,8 @@ InterstitialPage* InterstitialPage::GetInterstitialPage( |
WebContents* web_contents) { |
InitInterstitialPageMap(); |
InterstitialPageMap::const_iterator iter = |
- g_tab_to_interstitial_page->find(web_contents); |
- if (iter == g_tab_to_interstitial_page->end()) |
+ g_contents_to_interstitial_page->find(web_contents); |
+ if (iter == g_contents_to_interstitial_page->end()) |
return NULL; |
return iter->second; |
@@ -158,11 +158,11 @@ InterstitialPage* InterstitialPage::GetInterstitialPage( |
} // namespace content |
-InterstitialPageImpl::InterstitialPageImpl(WebContents* tab, |
+InterstitialPageImpl::InterstitialPageImpl(WebContents* web_contents, |
bool new_navigation, |
const GURL& url, |
InterstitialPageDelegate* delegate) |
- : tab_(static_cast<TabContents*>(tab)), |
+ : web_contents_(static_cast<WebContentsImpl*>(web_contents)), |
url_(url), |
new_navigation_(new_navigation), |
should_discard_pending_nav_entry_(new_navigation), |
@@ -170,10 +170,10 @@ InterstitialPageImpl::InterstitialPageImpl(WebContents* tab, |
enabled_(true), |
action_taken_(NO_ACTION), |
render_view_host_(NULL), |
- original_child_id_(tab->GetRenderProcessHost()->GetID()), |
- original_rvh_id_(tab->GetRenderViewHost()->GetRoutingID()), |
- should_revert_tab_title_(false), |
- tab_was_loading_(false), |
+ original_child_id_(web_contents->GetRenderProcessHost()->GetID()), |
+ original_rvh_id_(web_contents->GetRenderViewHost()->GetRoutingID()), |
+ should_revert_contents_title_(false), |
+ contents_was_loading_(false), |
resource_dispatcher_host_notified_(false), |
ALLOW_THIS_IN_INITIALIZER_LIST(rvh_view_delegate_( |
new InterstitialPageRVHViewDelegate(this))), |
@@ -184,7 +184,7 @@ InterstitialPageImpl::InterstitialPageImpl(WebContents* tab, |
// (which is the case when the interstitial was triggered by a sub-resource on |
// a page) when we have a pending entry (in the process of loading a new top |
// frame). |
- DCHECK(new_navigation || !tab->GetController().GetPendingEntry()); |
+ DCHECK(new_navigation || !web_contents->GetController().GetPendingEntry()); |
} |
InterstitialPageImpl::~InterstitialPageImpl() { |
@@ -195,8 +195,8 @@ void InterstitialPageImpl::Show() { |
// showing the new one. |
// Be careful not to take an action on the old interstitial more than once. |
InterstitialPageMap::const_iterator iter = |
- g_tab_to_interstitial_page->find(tab_); |
- if (iter != g_tab_to_interstitial_page->end()) { |
+ g_contents_to_interstitial_page->find(web_contents_); |
+ if (iter != g_contents_to_interstitial_page->end()) { |
InterstitialPageImpl* interstitial = iter->second; |
if (interstitial->action_taken_ != NO_ACTION) { |
interstitial->Hide(); |
@@ -218,16 +218,16 @@ void InterstitialPageImpl::Show() { |
TakeActionOnResourceDispatcher(BLOCK); |
// We need to be notified when the RenderViewHost is destroyed so we can |
// cancel the blocked requests. We cannot do that on |
- // NOTIFY_TAB_CONTENTS_DESTROYED as at that point the RenderViewHost has |
+ // NOTIFY_WEB_CONTENTS_DESTROYED as at that point the RenderViewHost has |
// already been destroyed. |
notification_registrar_.Add( |
this, content::NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED, |
- content::Source<RenderWidgetHost>(tab_->GetRenderViewHost())); |
+ content::Source<RenderWidgetHost>(web_contents_->GetRenderViewHost())); |
- // Update the g_tab_to_interstitial_page map. |
- iter = g_tab_to_interstitial_page->find(tab_); |
- DCHECK(iter == g_tab_to_interstitial_page->end()); |
- (*g_tab_to_interstitial_page)[tab_] = this; |
+ // Update the g_contents_to_interstitial_page map. |
+ iter = g_contents_to_interstitial_page->find(web_contents_); |
+ DCHECK(iter == g_contents_to_interstitial_page->end()); |
+ (*g_contents_to_interstitial_page)[web_contents_] = this; |
if (new_navigation_) { |
NavigationEntryImpl* entry = new NavigationEntryImpl; |
@@ -238,7 +238,7 @@ void InterstitialPageImpl::Show() { |
// Give delegates a chance to set some states on the navigation entry. |
delegate_->OverrideEntry(entry); |
- tab_->GetControllerImpl().AddTransientEntry(entry); |
+ web_contents_->GetControllerImpl().AddTransientEntry(entry); |
} |
DCHECK(!render_view_host_); |
@@ -251,19 +251,20 @@ void InterstitialPageImpl::Show() { |
notification_registrar_.Add(this, |
content::NOTIFICATION_WEB_CONTENTS_DESTROYED, |
- content::Source<WebContents>(tab_)); |
+ content::Source<WebContents>(web_contents_)); |
notification_registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
- content::Source<NavigationController>(&tab_->GetController())); |
+ content::Source<NavigationController>(&web_contents_->GetController())); |
notification_registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_PENDING, |
- content::Source<NavigationController>(&tab_->GetController())); |
+ content::Source<NavigationController>(&web_contents_->GetController())); |
notification_registrar_.Add( |
this, content::NOTIFICATION_DOM_OPERATION_RESPONSE, |
content::Source<RenderViewHost>(render_view_host_)); |
} |
void InterstitialPageImpl::Hide() { |
- RenderWidgetHostView* old_view = tab_->GetRenderViewHost()->GetView(); |
- if (tab_->GetInterstitialPage() == this && |
+ RenderWidgetHostView* old_view = |
+ web_contents_->GetRenderViewHost()->GetView(); |
+ if (web_contents_->GetInterstitialPage() == this && |
old_view && !old_view->IsShowing()) { |
// Show the original RVH since we're going away. Note it might not exist if |
// the renderer crashed while the interstitial was showing. |
@@ -277,31 +278,32 @@ void InterstitialPageImpl::Hide() { |
// (Note that in unit-tests the RVH may not have a view). |
if (render_view_host_->GetView() && |
render_view_host_->GetView()->HasFocus() && |
- tab_->GetRenderViewHost()->GetView()) { |
+ web_contents_->GetRenderViewHost()->GetView()) { |
RenderWidgetHostViewPort::FromRWHV( |
- tab_->GetRenderViewHost()->GetView())->Focus(); |
+ web_contents_->GetRenderViewHost()->GetView())->Focus(); |
} |
render_view_host_->Shutdown(); |
render_view_host_ = NULL; |
- if (tab_->GetInterstitialPage()) |
- tab_->remove_interstitial_page(); |
+ if (web_contents_->GetInterstitialPage()) |
+ web_contents_->remove_interstitial_page(); |
// Let's revert to the original title if necessary. |
- NavigationEntry* entry = tab_->GetController().GetActiveEntry(); |
- if (!new_navigation_ && should_revert_tab_title_) { |
- entry->SetTitle(original_tab_title_); |
- tab_->NotifyNavigationStateChanged(content::INVALIDATE_TYPE_TITLE); |
+ NavigationEntry* entry = web_contents_->GetController().GetActiveEntry(); |
+ if (!new_navigation_ && should_revert_contents_title_) { |
+ entry->SetTitle(original_contents_title_); |
+ web_contents_->NotifyNavigationStateChanged(content::INVALIDATE_TYPE_TITLE); |
} |
content::NotificationService::current()->Notify( |
content::NOTIFICATION_INTERSTITIAL_DETACHED, |
- content::Source<WebContents>(tab_), |
+ content::Source<WebContents>(web_contents_), |
content::NotificationService::NoDetails()); |
- InterstitialPageMap::iterator iter = g_tab_to_interstitial_page->find(tab_); |
- DCHECK(iter != g_tab_to_interstitial_page->end()); |
- if (iter != g_tab_to_interstitial_page->end()) |
- g_tab_to_interstitial_page->erase(iter); |
+ InterstitialPageMap::iterator iter = |
+ g_contents_to_interstitial_page->find(web_contents_); |
+ DCHECK(iter != g_contents_to_interstitial_page->end()); |
+ if (iter != g_contents_to_interstitial_page->end()) |
+ g_contents_to_interstitial_page->erase(iter); |
} |
void InterstitialPageImpl::Observe( |
@@ -395,18 +397,19 @@ void InterstitialPageImpl::DidNavigate( |
// The RenderViewHost has loaded its contents, we can show it now. |
render_view_host_->GetView()->Show(); |
- tab_->set_interstitial_page(this); |
+ web_contents_->set_interstitial_page(this); |
// This notification hides the bookmark bar. Note that this has to happen |
- // after the interstitial page was registered with |tab_|, since there will be |
- // a callback to |tab_| testing if an interstitial page is showing before |
- // hiding the bookmark bar. |
+ // after the interstitial page was registered with |contents_|, since there |
+ // will be a callback to |contents_| testing if an interstitial page is |
+ // showing before hiding the bookmark bar. |
content::NotificationService::current()->Notify( |
content::NOTIFICATION_INTERSTITIAL_ATTACHED, |
- content::Source<WebContents>(tab_), |
+ content::Source<WebContents>(web_contents_), |
content::NotificationService::NoDetails()); |
- RenderWidgetHostView* rwh_view = tab_->GetRenderViewHost()->GetView(); |
+ RenderWidgetHostView* rwh_view = |
+ web_contents_->GetRenderViewHost()->GetView(); |
// The RenderViewHost may already have crashed before we even get here. |
if (rwh_view) { |
@@ -423,8 +426,8 @@ void InterstitialPageImpl::DidNavigate( |
// by the UI tests) expects to consider a navigation as complete. Without |
// this, navigating in a UI test to a URL that triggers an interstitial would |
// hang. |
- tab_was_loading_ = tab_->IsLoading(); |
- tab_->SetIsLoading(false, NULL); |
+ contents_was_loading_ = web_contents_->IsLoading(); |
+ web_contents_->SetIsLoading(false, NULL); |
} |
void InterstitialPageImpl::UpdateTitle( |
@@ -433,7 +436,7 @@ void InterstitialPageImpl::UpdateTitle( |
const string16& title, |
base::i18n::TextDirection title_direction) { |
DCHECK(render_view_host == render_view_host_); |
- NavigationEntry* entry = tab_->GetController().GetActiveEntry(); |
+ NavigationEntry* entry = web_contents_->GetController().GetActiveEntry(); |
if (!entry) { |
// Crash reports from the field indicate this can be NULL. |
// This is unexpected as InterstitialPages constructed with the |
@@ -449,14 +452,14 @@ void InterstitialPageImpl::UpdateTitle( |
// If this interstitial is shown on an existing navigation entry, we'll need |
// to remember its title so we can revert to it when hidden. |
- if (!new_navigation_ && !should_revert_tab_title_) { |
- original_tab_title_ = entry->GetTitle(); |
- should_revert_tab_title_ = true; |
+ if (!new_navigation_ && !should_revert_contents_title_) { |
+ original_contents_title_ = entry->GetTitle(); |
+ should_revert_contents_title_ = true; |
} |
// TODO(evan): make use of title_direction. |
// http://code.google.com/p/chromium/issues/detail?id=27094 |
entry->SetTitle(title); |
- tab_->NotifyNavigationStateChanged(content::INVALIDATE_TYPE_TITLE); |
+ web_contents_->NotifyNavigationStateChanged(content::INVALIDATE_TYPE_TITLE); |
} |
content::RendererPreferences InterstitialPageImpl::GetRendererPrefs( |
@@ -466,27 +469,27 @@ content::RendererPreferences InterstitialPageImpl::GetRendererPrefs( |
} |
WebPreferences InterstitialPageImpl::GetWebkitPrefs() { |
- return TabContents::GetWebkitPrefs(render_view_host_, url_); |
+ return WebContentsImpl::GetWebkitPrefs(render_view_host_, url_); |
} |
bool InterstitialPageImpl::PreHandleKeyboardEvent( |
const NativeWebKeyboardEvent& event, |
bool* is_keyboard_shortcut) { |
- return tab_->PreHandleKeyboardEvent(event, is_keyboard_shortcut); |
+ return web_contents_->PreHandleKeyboardEvent(event, is_keyboard_shortcut); |
} |
void InterstitialPageImpl::HandleKeyboardEvent( |
const NativeWebKeyboardEvent& event) { |
- return tab_->HandleKeyboardEvent(event); |
+ return web_contents_->HandleKeyboardEvent(event); |
} |
-WebContents* InterstitialPageImpl::tab() const { |
- return tab_; |
+WebContents* InterstitialPageImpl::web_contents() const { |
+ return web_contents_; |
} |
RenderViewHost* InterstitialPageImpl::CreateRenderViewHost() { |
RenderViewHostImpl* render_view_host = new RenderViewHostImpl( |
- SiteInstance::Create(tab()->GetBrowserContext()), |
+ SiteInstance::Create(web_contents()->GetBrowserContext()), |
this, MSG_ROUTING_NONE, kInvalidSessionStorageNamespaceId); |
return render_view_host; |
} |
@@ -494,14 +497,14 @@ RenderViewHost* InterstitialPageImpl::CreateRenderViewHost() { |
WebContentsView* InterstitialPageImpl::CreateWebContentsView() { |
if (!create_view_) |
return NULL; |
- WebContentsView* web_contents_view = tab()->GetView(); |
+ WebContentsView* web_contents_view = web_contents()->GetView(); |
RenderWidgetHostView* view = |
web_contents_view->CreateViewForWidget(render_view_host_); |
render_view_host_->SetView(view); |
render_view_host_->AllowBindings(content::BINDINGS_POLICY_DOM_AUTOMATION); |
- int32 max_page_id = |
- tab()->GetMaxPageIDForSiteInstance(render_view_host_->GetSiteInstance()); |
+ int32 max_page_id = web_contents()-> |
+ GetMaxPageIDForSiteInstance(render_view_host_->GetSiteInstance()); |
render_view_host_->CreateRenderView(string16(), max_page_id); |
view->SetSize(web_contents_view->GetContainerSize()); |
// Don't show the interstitial until we have navigated to it. |
@@ -518,8 +521,8 @@ void InterstitialPageImpl::Proceed() { |
action_taken_ = PROCEED_ACTION; |
// Resumes the throbber, if applicable. |
- if (tab_was_loading_) |
- tab_->SetIsLoading(true, NULL); |
+ if (contents_was_loading_) |
+ web_contents_->SetIsLoading(true, NULL); |
// If this is a new navigation, the old page is going away, so we cancel any |
// blocked requests for it. If it is not a new navigation, then it means the |
@@ -563,11 +566,11 @@ void InterstitialPageImpl::DontProceed() { |
// explicitely. Note that by calling DiscardNonCommittedEntries() we also |
// discard the pending entry, which is what we want, since the navigation is |
// cancelled. |
- tab_->GetController().DiscardNonCommittedEntries(); |
+ web_contents_->GetController().DiscardNonCommittedEntries(); |
} |
if (reload_on_dont_proceed_) |
- tab_->GetController().Reload(true); |
+ web_contents_->GetController().Reload(true); |
Hide(); |
delegate_->OnDontProceed(); |
@@ -735,13 +738,14 @@ void InterstitialPageImpl::InterstitialPageRVHViewDelegate::GotFocus() { |
void InterstitialPageImpl::InterstitialPageRVHViewDelegate::TakeFocus( |
bool reverse) { |
- if (!interstitial_page_->tab()) |
+ if (!interstitial_page_->web_contents()) |
return; |
- TabContents* tab = static_cast<TabContents*>(interstitial_page_->tab()); |
- if (!tab->GetViewDelegate()) |
+ WebContentsImpl* web_contents = |
+ static_cast<WebContentsImpl*>(interstitial_page_->web_contents()); |
+ if (!web_contents->GetViewDelegate()) |
return; |
- tab->GetViewDelegate()->TakeFocus(reverse); |
+ web_contents->GetViewDelegate()->TakeFocus(reverse); |
} |
void InterstitialPageImpl::InterstitialPageRVHViewDelegate::OnFindReply( |