Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8010)

Unified Diff: chrome/browser/tab_contents/interstitial_page.cc

Issue 6537015: Start moving core pieces of Chrome multi-process code to src\content. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/tab_contents/interstitial_page.h ('k') | chrome/browser/tab_contents/language_state.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/tab_contents/interstitial_page.cc
===================================================================
--- chrome/browser/tab_contents/interstitial_page.cc (revision 75368)
+++ chrome/browser/tab_contents/interstitial_page.cc (working copy)
@@ -1,733 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/tab_contents/interstitial_page.h"
-
-#include <vector>
-
-#include "base/compiler_specific.h"
-#include "base/message_loop.h"
-#include "base/string_util.h"
-#include "base/threading/thread.h"
-#include "base/utf_string_conversions.h"
-#include "chrome/browser/browser_list.h"
-#include "chrome/browser/browser_process.h"
-#include "chrome/browser/browser_thread.h"
-#include "chrome/browser/dom_operation_notification_details.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/renderer_host/render_process_host.h"
-#include "chrome/browser/renderer_host/render_view_host.h"
-#include "chrome/browser/renderer_host/render_widget_host_view.h"
-#include "chrome/browser/renderer_host/resource_dispatcher_host.h"
-#include "chrome/browser/renderer_host/site_instance.h"
-#include "chrome/browser/renderer_preferences_util.h"
-#include "chrome/browser/tab_contents/navigation_controller.h"
-#include "chrome/browser/tab_contents/navigation_entry.h"
-#include "chrome/browser/tab_contents/tab_contents.h"
-#include "chrome/browser/tab_contents/tab_contents_view.h"
-#include "chrome/common/bindings_policy.h"
-#include "chrome/common/dom_storage_common.h"
-#include "chrome/common/net/url_request_context_getter.h"
-#include "chrome/common/notification_source.h"
-#include "grit/browser_resources.h"
-#include "net/base/escape.h"
-
-#if defined(TOOLKIT_GTK)
-#include "chrome/browser/ui/gtk/gtk_theme_provider.h"
-#endif
-
-using WebKit::WebDragOperation;
-using WebKit::WebDragOperationsMask;
-
-namespace {
-
-class ResourceRequestTask : public Task {
- public:
- ResourceRequestTask(int process_id,
- int render_view_host_id,
- ResourceRequestAction action)
- : action_(action),
- process_id_(process_id),
- render_view_host_id_(render_view_host_id),
- resource_dispatcher_host_(
- g_browser_process->resource_dispatcher_host()) {
- }
-
- virtual void Run() {
- switch (action_) {
- case BLOCK:
- resource_dispatcher_host_->BlockRequestsForRoute(
- process_id_, render_view_host_id_);
- break;
- case RESUME:
- resource_dispatcher_host_->ResumeBlockedRequestsForRoute(
- process_id_, render_view_host_id_);
- break;
- case CANCEL:
- resource_dispatcher_host_->CancelBlockedRequestsForRoute(
- process_id_, render_view_host_id_);
- break;
- default:
- NOTREACHED();
- }
- }
-
- private:
- ResourceRequestAction action_;
- int process_id_;
- int render_view_host_id_;
- ResourceDispatcherHost* resource_dispatcher_host_;
-
- DISALLOW_COPY_AND_ASSIGN(ResourceRequestTask);
-};
-
-} // namespace
-
-class InterstitialPage::InterstitialPageRVHViewDelegate
- : public RenderViewHostDelegate::View {
- public:
- explicit InterstitialPageRVHViewDelegate(InterstitialPage* page);
-
- // RenderViewHostDelegate::View implementation:
- virtual void CreateNewWindow(
- int route_id,
- const ViewHostMsg_CreateWindow_Params& params);
- virtual void CreateNewWidget(int route_id,
- WebKit::WebPopupType popup_type);
- virtual void CreateNewFullscreenWidget(int route_id);
- virtual void ShowCreatedWindow(int route_id,
- WindowOpenDisposition disposition,
- const gfx::Rect& initial_pos,
- bool user_gesture);
- virtual void ShowCreatedWidget(int route_id,
- const gfx::Rect& initial_pos);
- virtual void ShowCreatedFullscreenWidget(int route_id);
- virtual void ShowContextMenu(const ContextMenuParams& params);
- virtual void ShowPopupMenu(const gfx::Rect& bounds,
- int item_height,
- double item_font_size,
- int selected_item,
- const std::vector<WebMenuItem>& items,
- bool right_aligned);
- virtual void StartDragging(const WebDropData& drop_data,
- WebDragOperationsMask operations_allowed,
- const SkBitmap& image,
- const gfx::Point& image_offset);
- virtual void UpdateDragCursor(WebDragOperation operation);
- virtual void GotFocus();
- virtual void TakeFocus(bool reverse);
- virtual void LostCapture();
- virtual void Activate();
- virtual void Deactivate();
- virtual bool PreHandleKeyboardEvent(const NativeWebKeyboardEvent& event,
- bool* is_keyboard_shortcut);
- virtual void HandleKeyboardEvent(const NativeWebKeyboardEvent& event);
- virtual void HandleMouseMove();
- virtual void HandleMouseDown();
- virtual void HandleMouseLeave();
- virtual void HandleMouseUp();
- virtual void HandleMouseActivate();
- virtual void OnFindReply(int request_id,
- int number_of_matches,
- const gfx::Rect& selection_rect,
- int active_match_ordinal,
- bool final_update);
- virtual void UpdatePreferredSize(const gfx::Size& pref_size);
-
- private:
- InterstitialPage* interstitial_page_;
-
- DISALLOW_COPY_AND_ASSIGN(InterstitialPageRVHViewDelegate);
-};
-
-// static
-InterstitialPage::InterstitialPageMap*
- InterstitialPage::tab_to_interstitial_page_ = NULL;
-
-InterstitialPage::InterstitialPage(TabContents* tab,
- bool new_navigation,
- const GURL& url)
- : tab_(tab),
- url_(url),
- new_navigation_(new_navigation),
- should_discard_pending_nav_entry_(new_navigation),
- reload_on_dont_proceed_(false),
- enabled_(true),
- action_taken_(NO_ACTION),
- render_view_host_(NULL),
- original_child_id_(tab->render_view_host()->process()->id()),
- original_rvh_id_(tab->render_view_host()->routing_id()),
- should_revert_tab_title_(false),
- resource_dispatcher_host_notified_(false),
- ALLOW_THIS_IN_INITIALIZER_LIST(rvh_view_delegate_(
- new InterstitialPageRVHViewDelegate(this))) {
- renderer_preferences_util::UpdateFromSystemSettings(
- &renderer_preferences_, tab_->profile());
-
- InitInterstitialPageMap();
- // It would be inconsistent to create an interstitial with no new navigation
- // (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->controller().pending_entry());
-}
-
-InterstitialPage::~InterstitialPage() {
- InterstitialPageMap::iterator iter = tab_to_interstitial_page_->find(tab_);
- DCHECK(iter != tab_to_interstitial_page_->end());
- if (iter != tab_to_interstitial_page_->end())
- tab_to_interstitial_page_->erase(iter);
- DCHECK(!render_view_host_);
-}
-
-void InterstitialPage::Show() {
- // If an interstitial is already showing or about to be shown, close it before
- // showing the new one.
- // Be careful not to take an action on the old interstitial more than once.
- InterstitialPageMap::const_iterator iter =
- tab_to_interstitial_page_->find(tab_);
- if (iter != tab_to_interstitial_page_->end()) {
- InterstitialPage* interstitial = iter->second;
- if (interstitial->action_taken_ != NO_ACTION) {
- interstitial->Hide();
- } else {
- // If we are currently showing an interstitial page for which we created
- // a transient entry and a new interstitial is shown as the result of a
- // new browser initiated navigation, then that transient entry has already
- // been discarded and a new pending navigation entry created.
- // So we should not discard that new pending navigation entry.
- // See http://crbug.com/9791
- if (new_navigation_ && interstitial->new_navigation_)
- interstitial->should_discard_pending_nav_entry_= false;
- interstitial->DontProceed();
- }
- }
-
- // Block the resource requests for the render view host while it is hidden.
- 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
- // already been destroyed.
- notification_registrar_.Add(
- this, NotificationType::RENDER_WIDGET_HOST_DESTROYED,
- Source<RenderWidgetHost>(tab_->render_view_host()));
-
- // Update the tab_to_interstitial_page_ map.
- iter = tab_to_interstitial_page_->find(tab_);
- DCHECK(iter == tab_to_interstitial_page_->end());
- (*tab_to_interstitial_page_)[tab_] = this;
-
- if (new_navigation_) {
- NavigationEntry* entry = new NavigationEntry;
- entry->set_url(url_);
- entry->set_virtual_url(url_);
- entry->set_page_type(INTERSTITIAL_PAGE);
-
- // Give sub-classes a chance to set some states on the navigation entry.
- UpdateEntry(entry);
-
- tab_->controller().AddTransientEntry(entry);
- }
-
- DCHECK(!render_view_host_);
- render_view_host_ = CreateRenderViewHost();
- CreateTabContentsView();
-
- std::string data_url = "data:text/html;charset=utf-8," +
- EscapePath(GetHTMLContents());
- render_view_host_->NavigateToURL(GURL(data_url));
-
- notification_registrar_.Add(this, NotificationType::TAB_CONTENTS_DESTROYED,
- Source<TabContents>(tab_));
- notification_registrar_.Add(this, NotificationType::NAV_ENTRY_COMMITTED,
- Source<NavigationController>(&tab_->controller()));
- notification_registrar_.Add(this, NotificationType::NAV_ENTRY_PENDING,
- Source<NavigationController>(&tab_->controller()));
-}
-
-void InterstitialPage::Hide() {
- RenderWidgetHostView* old_view = tab_->render_view_host()->view();
- if (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.
- // Note that it is important that we don't call Show() if the view is
- // already showing. That would result in bad things (unparented HWND on
- // Windows for example) happening.
- old_view->Show();
- }
-
- // If the focus was on the interstitial, let's keep it to the page.
- // (Note that in unit-tests the RVH may not have a view).
- if (render_view_host_->view() && render_view_host_->view()->HasFocus() &&
- tab_->render_view_host()->view()) {
- tab_->render_view_host()->view()->Focus();
- }
-
- render_view_host_->Shutdown();
- render_view_host_ = NULL;
- if (tab_->interstitial_page())
- tab_->remove_interstitial_page();
- // Let's revert to the original title if necessary.
- NavigationEntry* entry = tab_->controller().GetActiveEntry();
- if (!new_navigation_ && should_revert_tab_title_) {
- entry->set_title(WideToUTF16Hack(original_tab_title_));
- tab_->NotifyNavigationStateChanged(TabContents::INVALIDATE_TITLE);
- }
- delete this;
-}
-
-void InterstitialPage::Observe(NotificationType type,
- const NotificationSource& source,
- const NotificationDetails& details) {
- switch (type.value) {
- case NotificationType::NAV_ENTRY_PENDING:
- // We are navigating away from the interstitial (the user has typed a URL
- // in the location bar or clicked a bookmark). Make sure clicking on the
- // interstitial will have no effect. Also cancel any blocked requests
- // on the ResourceDispatcherHost. Note that when we get this notification
- // the RenderViewHost has not yet navigated so we'll unblock the
- // RenderViewHost before the resource request for the new page we are
- // navigating arrives in the ResourceDispatcherHost. This ensures that
- // request won't be blocked if the same RenderViewHost was used for the
- // new navigation.
- Disable();
- TakeActionOnResourceDispatcher(CANCEL);
- break;
- case NotificationType::RENDER_WIDGET_HOST_DESTROYED:
- if (action_taken_ == NO_ACTION) {
- // The RenderViewHost is being destroyed (as part of the tab being
- // closed), make sure we clear the blocked requests.
- RenderViewHost* rvh = Source<RenderViewHost>(source).ptr();
- DCHECK(rvh->process()->id() == original_child_id_ &&
- rvh->routing_id() == original_rvh_id_);
- TakeActionOnResourceDispatcher(CANCEL);
- }
- break;
- case NotificationType::TAB_CONTENTS_DESTROYED:
- case NotificationType::NAV_ENTRY_COMMITTED:
- if (action_taken_ == NO_ACTION) {
- // We are navigating away from the interstitial or closing a tab with an
- // interstitial. Default to DontProceed(). We don't just call Hide as
- // subclasses will almost certainly override DontProceed to do some work
- // (ex: close pending connections).
- DontProceed();
- } else {
- // User decided to proceed and either the navigation was committed or
- // the tab was closed before that.
- Hide();
- // WARNING: we are now deleted!
- }
- break;
- default:
- NOTREACHED();
- }
-}
-
-RenderViewHostDelegate::View* InterstitialPage::GetViewDelegate() {
- return rvh_view_delegate_.get();
-}
-
-const GURL& InterstitialPage::GetURL() const {
- return url_;
-}
-
-void InterstitialPage::RenderViewGone(RenderViewHost* render_view_host,
- base::TerminationStatus status,
- int error_code) {
- // Our renderer died. This should not happen in normal cases.
- // Just dismiss the interstitial.
- DontProceed();
-}
-
-void InterstitialPage::DidNavigate(
- RenderViewHost* render_view_host,
- const ViewHostMsg_FrameNavigate_Params& params) {
- // A fast user could have navigated away from the page that triggered the
- // interstitial while the interstitial was loading, that would have disabled
- // us. In that case we can dismiss ourselves.
- if (!enabled_) {
- DontProceed();
- return;
- }
-
- // The RenderViewHost has loaded its contents, we can show it now.
- render_view_host_->view()->Show();
- tab_->set_interstitial_page(this);
-
- RenderWidgetHostView* rwh_view = tab_->render_view_host()->view();
-
- // The RenderViewHost may already have crashed before we even get here.
- if (rwh_view) {
- // If the page has focus, focus the interstitial.
- if (rwh_view->HasFocus())
- Focus();
-
- // Hide the original RVH since we're showing the interstitial instead.
- rwh_view->Hide();
- }
-
- // Notify the tab we are not loading so the throbber is stopped. It also
- // causes a NOTIFY_LOAD_STOP notification, that the AutomationProvider (used
- // 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_->SetIsLoading(false, NULL);
-}
-
-void InterstitialPage::UpdateTitle(RenderViewHost* render_view_host,
- int32 page_id,
- const std::wstring& title) {
- DCHECK(render_view_host == render_view_host_);
- NavigationEntry* entry = tab_->controller().GetActiveEntry();
- if (!entry) {
- // Crash reports from the field indicate this can be NULL.
- // This is unexpected as InterstitialPages constructed with the
- // new_navigation flag set to true create a transient navigation entry
- // (that is returned as the active entry). And the only case so far of
- // interstitial created with that flag set to false is with the
- // SafeBrowsingBlockingPage, when the resource triggering the interstitial
- // is a sub-resource, meaning the main page has already been loaded and a
- // navigation entry should have been created.
- NOTREACHED();
- return;
- }
-
- // 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_ = UTF16ToWideHack(entry->title());
- should_revert_tab_title_ = true;
- }
- entry->set_title(WideToUTF16Hack(title));
- tab_->NotifyNavigationStateChanged(TabContents::INVALIDATE_TITLE);
-}
-
-void InterstitialPage::DomOperationResponse(const std::string& json_string,
- int automation_id) {
- if (enabled_)
- CommandReceived(json_string);
-}
-
-RendererPreferences InterstitialPage::GetRendererPrefs(Profile* profile) const {
- return renderer_preferences_;
-}
-
-RenderViewHost* InterstitialPage::CreateRenderViewHost() {
- RenderViewHost* render_view_host = new RenderViewHost(
- SiteInstance::CreateSiteInstance(tab()->profile()),
- this, MSG_ROUTING_NONE, kInvalidSessionStorageNamespaceId);
- return render_view_host;
-}
-
-TabContentsView* InterstitialPage::CreateTabContentsView() {
- TabContentsView* tab_contents_view = tab()->view();
- RenderWidgetHostView* view =
- tab_contents_view->CreateViewForWidget(render_view_host_);
- render_view_host_->set_view(view);
- render_view_host_->AllowBindings(BindingsPolicy::DOM_AUTOMATION);
-
- render_view_host_->CreateRenderView(string16());
- view->SetSize(tab_contents_view->GetContainerSize());
- // Don't show the interstitial until we have navigated to it.
- view->Hide();
- return tab_contents_view;
-}
-
-void InterstitialPage::Proceed() {
- if (action_taken_ != NO_ACTION) {
- NOTREACHED();
- return;
- }
- Disable();
- action_taken_ = PROCEED_ACTION;
-
- // Resumes the throbber.
- tab_->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
- // interstitial was shown as a result of a resource loading in the page.
- // Since the user wants to proceed, we'll let any blocked request go through.
- if (new_navigation_)
- TakeActionOnResourceDispatcher(CANCEL);
- else
- TakeActionOnResourceDispatcher(RESUME);
-
- // No need to hide if we are a new navigation, we'll get hidden when the
- // navigation is committed.
- if (!new_navigation_) {
- Hide();
- // WARNING: we are now deleted!
- }
-}
-
-std::string InterstitialPage::GetHTMLContents() {
- return std::string();
-}
-
-void InterstitialPage::DontProceed() {
- DCHECK(action_taken_ != DONT_PROCEED_ACTION);
-
- Disable();
- action_taken_ = DONT_PROCEED_ACTION;
-
- // If this is a new navigation, we are returning to the original page, so we
- // resume blocked requests for it. If it is not a new navigation, then it
- // means the interstitial was shown as a result of a resource loading in the
- // page and we won't return to the original page, so we cancel blocked
- // requests in that case.
- if (new_navigation_)
- TakeActionOnResourceDispatcher(RESUME);
- else
- TakeActionOnResourceDispatcher(CANCEL);
-
- if (should_discard_pending_nav_entry_) {
- // Since no navigation happens we have to discard the transient entry
- // explicitely. Note that by calling DiscardNonCommittedEntries() we also
- // discard the pending entry, which is what we want, since the navigation is
- // cancelled.
- tab_->controller().DiscardNonCommittedEntries();
- }
-
- if (reload_on_dont_proceed_)
- tab_->controller().Reload(true);
-
- Hide();
- // WARNING: we are now deleted!
-}
-
-void InterstitialPage::CancelForNavigation() {
- // The user is trying to navigate away. We should unblock the renderer and
- // disable the interstitial, but keep it visible until the navigation
- // completes.
- Disable();
- // If this interstitial was shown for a new navigation, allow any navigations
- // on the original page to resume (e.g., subresource requests, XHRs, etc).
- // Otherwise, cancel the pending, possibly dangerous navigations.
- if (new_navigation_)
- TakeActionOnResourceDispatcher(RESUME);
- else
- TakeActionOnResourceDispatcher(CANCEL);
-}
-
-void InterstitialPage::SetSize(const gfx::Size& size) {
-#if !defined(OS_MACOSX)
- // When a tab is closed, we might be resized after our view was NULLed
- // (typically if there was an info-bar).
- if (render_view_host_->view())
- render_view_host_->view()->SetSize(size);
-#else
- // TODO(port): Does Mac need to SetSize?
- NOTIMPLEMENTED();
-#endif
-}
-
-void InterstitialPage::Focus() {
- // Focus the native window.
- render_view_host_->view()->Focus();
-}
-
-void InterstitialPage::FocusThroughTabTraversal(bool reverse) {
- render_view_host_->SetInitialFocus(reverse);
-}
-
-ViewType::Type InterstitialPage::GetRenderViewType() const {
- return ViewType::INTERSTITIAL_PAGE;
-}
-
-void InterstitialPage::Disable() {
- enabled_ = false;
-}
-
-void InterstitialPage::TakeActionOnResourceDispatcher(
- ResourceRequestAction action) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)) <<
- "TakeActionOnResourceDispatcher should be called on the main thread.";
-
- if (action == CANCEL || action == RESUME) {
- if (resource_dispatcher_host_notified_)
- return;
- resource_dispatcher_host_notified_ = true;
- }
-
- // The tab might not have a render_view_host if it was closed (in which case,
- // we have taken care of the blocked requests when processing
- // NOTIFY_RENDER_WIDGET_HOST_DESTROYED.
- // Also we need to test there is a ResourceDispatcherHost, as when unit-tests
- // we don't have one.
- RenderViewHost* rvh = RenderViewHost::FromID(original_child_id_,
- original_rvh_id_);
- if (!rvh || !g_browser_process->resource_dispatcher_host())
- return;
-
- BrowserThread::PostTask(
- BrowserThread::IO, FROM_HERE,
- new ResourceRequestTask(original_child_id_, original_rvh_id_, action));
-}
-
-// static
-void InterstitialPage::InitInterstitialPageMap() {
- if (!tab_to_interstitial_page_)
- tab_to_interstitial_page_ = new InterstitialPageMap;
-}
-
-// static
-InterstitialPage* InterstitialPage::GetInterstitialPage(
- TabContents* tab_contents) {
- InitInterstitialPageMap();
- InterstitialPageMap::const_iterator iter =
- tab_to_interstitial_page_->find(tab_contents);
- if (iter == tab_to_interstitial_page_->end())
- return NULL;
-
- return iter->second;
-}
-
-InterstitialPage::InterstitialPageRVHViewDelegate::
- InterstitialPageRVHViewDelegate(InterstitialPage* page)
- : interstitial_page_(page) {
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::CreateNewWindow(
- int route_id,
- const ViewHostMsg_CreateWindow_Params& params) {
- NOTREACHED() << "InterstitialPage does not support showing popups yet.";
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::CreateNewWidget(
- int route_id, WebKit::WebPopupType popup_type) {
- NOTREACHED() << "InterstitialPage does not support showing drop-downs yet.";
-}
-
-void
-InterstitialPage::InterstitialPageRVHViewDelegate::CreateNewFullscreenWidget(
- int route_id) {
- NOTREACHED()
- << "InterstitialPage does not support showing full screen popups.";
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::ShowCreatedWindow(
- int route_id, WindowOpenDisposition disposition,
- const gfx::Rect& initial_pos, bool user_gesture) {
- NOTREACHED() << "InterstitialPage does not support showing popups yet.";
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::ShowCreatedWidget(
- int route_id, const gfx::Rect& initial_pos) {
- NOTREACHED() << "InterstitialPage does not support showing drop-downs yet.";
-}
-
-void
-InterstitialPage::InterstitialPageRVHViewDelegate::ShowCreatedFullscreenWidget(
- int route_id) {
- NOTREACHED()
- << "InterstitialPage does not support showing full screen popups.";
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::ShowContextMenu(
- const ContextMenuParams& params) {
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::ShowPopupMenu(
- const gfx::Rect& bounds,
- int item_height,
- double item_font_size,
- int selected_item,
- const std::vector<WebMenuItem>& items,
- bool right_aligned) {
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::StartDragging(
- const WebDropData& drop_data,
- WebDragOperationsMask allowed_operations,
- const SkBitmap& image,
- const gfx::Point& image_offset) {
- NOTREACHED() << "InterstitialPage does not support dragging yet.";
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::UpdateDragCursor(
- WebDragOperation) {
- NOTREACHED() << "InterstitialPage does not support dragging yet.";
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::GotFocus() {
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::UpdatePreferredSize(
- const gfx::Size& pref_size) {
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::TakeFocus(
- bool reverse) {
- if (interstitial_page_->tab() && interstitial_page_->tab()->GetViewDelegate())
- interstitial_page_->tab()->GetViewDelegate()->TakeFocus(reverse);
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::LostCapture() {
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::Activate() {
- if (interstitial_page_->tab() && interstitial_page_->tab()->GetViewDelegate())
- interstitial_page_->tab()->GetViewDelegate()->Activate();
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::Deactivate() {
- if (interstitial_page_->tab() && interstitial_page_->tab()->GetViewDelegate())
- interstitial_page_->tab()->GetViewDelegate()->Deactivate();
-}
-
-bool InterstitialPage::InterstitialPageRVHViewDelegate::PreHandleKeyboardEvent(
- const NativeWebKeyboardEvent& event, bool* is_keyboard_shortcut) {
- if (interstitial_page_->tab() && interstitial_page_->tab()->GetViewDelegate())
- return interstitial_page_->tab()->GetViewDelegate()->PreHandleKeyboardEvent(
- event, is_keyboard_shortcut);
- return false;
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::HandleKeyboardEvent(
- const NativeWebKeyboardEvent& event) {
- if (interstitial_page_->tab() && interstitial_page_->tab()->GetViewDelegate())
- interstitial_page_->tab()->GetViewDelegate()->HandleKeyboardEvent(event);
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::HandleMouseMove() {
- if (interstitial_page_->tab() && interstitial_page_->tab()->GetViewDelegate())
- interstitial_page_->tab()->GetViewDelegate()->HandleMouseMove();
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::HandleMouseDown() {
- if (interstitial_page_->tab() && interstitial_page_->tab()->GetViewDelegate())
- interstitial_page_->tab()->GetViewDelegate()->HandleMouseDown();
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::HandleMouseLeave() {
- if (interstitial_page_->tab() && interstitial_page_->tab()->GetViewDelegate())
- interstitial_page_->tab()->GetViewDelegate()->HandleMouseLeave();
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::HandleMouseUp() {
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::HandleMouseActivate() {
-}
-
-void InterstitialPage::InterstitialPageRVHViewDelegate::OnFindReply(
- int request_id, int number_of_matches, const gfx::Rect& selection_rect,
- int active_match_ordinal, bool final_update) {
-}
-
-int InterstitialPage::GetBrowserWindowID() const {
- return tab_->GetBrowserWindowID();
-}
-
-void InterstitialPage::UpdateInspectorSetting(const std::string& key,
- const std::string& value) {
- RenderViewHostDelegateHelper::UpdateInspectorSetting(
- tab_->profile(), key, value);
-}
-
-void InterstitialPage::ClearInspectorSettings() {
- RenderViewHostDelegateHelper::ClearInspectorSettings(tab_->profile());
-}
« no previous file with comments | « chrome/browser/tab_contents/interstitial_page.h ('k') | chrome/browser/tab_contents/language_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698