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

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

Issue 9114047: Move RenderViewHostDelegateViewHelper to content. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: CONTENT_EXPORT Created 8 years, 11 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
Index: chrome/browser/tab_contents/render_view_host_delegate_helper.cc
diff --git a/chrome/browser/tab_contents/render_view_host_delegate_helper.cc b/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
deleted file mode 100644
index 451e7b9c7563e33b40daded1c0b3ceb4b4f3fc99..0000000000000000000000000000000000000000
--- a/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
+++ /dev/null
@@ -1,180 +0,0 @@
-// Copyright (c) 2012 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/render_view_host_delegate_helper.h"
-
-#include "content/browser/renderer_host/render_view_host.h"
-#include "content/browser/renderer_host/render_widget_host.h"
-#include "content/browser/renderer_host/render_widget_host_view.h"
-#include "content/browser/tab_contents/tab_contents.h"
-#include "content/browser/tab_contents/tab_contents_view.h"
-#include "content/common/view_messages.h"
-#include "content/public/browser/notification_service.h"
-#include "content/public/browser/notification_source.h"
-#include "content/public/browser/notification_types.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/browser/web_contents_delegate.h"
-
-using content::WebContents;
-
-RenderViewHostDelegateViewHelper::RenderViewHostDelegateViewHelper() {
- registrar_.Add(this,
- content::NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED,
- content::NotificationService::AllBrowserContextsAndSources());
-}
-
-RenderViewHostDelegateViewHelper::~RenderViewHostDelegateViewHelper() {}
-
-void RenderViewHostDelegateViewHelper::Observe(
- int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) {
- DCHECK_EQ(type, content::NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED);
- RenderWidgetHost* host = content::Source<RenderWidgetHost>(source).ptr();
- for (PendingWidgetViews::iterator i = pending_widget_views_.begin();
- i != pending_widget_views_.end(); ++i) {
- if (host->view() == i->second) {
- pending_widget_views_.erase(i);
- break;
- }
- }
-}
-
-TabContents* RenderViewHostDelegateViewHelper::CreateNewWindow(
- WebContents* web_contents,
- int route_id,
- const ViewHostMsg_CreateWindow_Params& params) {
- bool should_create = true;
- if (web_contents->GetDelegate()) {
- should_create = web_contents->GetDelegate()->ShouldCreateWebContents(
- web_contents,
- route_id,
- params.window_container_type,
- params.frame_name);
- }
-
- if (!should_create)
- return NULL;
-
- // Create the new web contents. This will automatically create the new
- // TabContentsView. In the future, we may want to create the view separately.
- TabContents* new_contents =
- new TabContents(web_contents->GetBrowserContext(),
- web_contents->GetSiteInstance(),
- route_id,
- static_cast<TabContents*>(web_contents),
- NULL);
- new_contents->set_opener_web_ui_type(
- web_contents->GetWebUITypeForCurrentState());
- TabContentsView* new_view = new_contents->GetView();
-
- // TODO(brettw): It seems bogus that we have to call this function on the
- // newly created object and give it one of its own member variables.
- new_view->CreateViewForWidget(new_contents->GetRenderViewHost());
-
- // Save the created window associated with the route so we can show it later.
- pending_contents_[route_id] = new_contents;
-
- if (web_contents->GetDelegate())
- web_contents->GetDelegate()->WebContentsCreated(web_contents,
- params.opener_frame_id,
- params.target_url,
- new_contents);
-
- return new_contents;
-}
-
-RenderWidgetHostView* RenderViewHostDelegateViewHelper::CreateNewWidget(
- WebContents* web_contents,
- int route_id,
- bool is_fullscreen,
- WebKit::WebPopupType popup_type) {
- content::RenderProcessHost* process = web_contents->GetRenderProcessHost();
- RenderWidgetHost* widget_host = new RenderWidgetHost(process, route_id);
- RenderWidgetHostView* widget_view =
- RenderWidgetHostView::CreateViewForWidget(widget_host);
- if (!is_fullscreen) {
- // Popups should not get activated.
- widget_view->set_popup_type(popup_type);
- }
- // Save the created widget associated with the route so we can show it later.
- pending_widget_views_[route_id] = widget_view;
- return widget_view;
-}
-
-TabContents* RenderViewHostDelegateViewHelper::GetCreatedWindow(int route_id) {
- PendingContents::iterator iter = pending_contents_.find(route_id);
-
- // Certain systems can block the creation of new windows. If we didn't succeed
- // in creating one, just return NULL.
- if (iter == pending_contents_.end()) {
- return NULL;
- }
-
- TabContents* new_contents = iter->second;
- pending_contents_.erase(route_id);
-
- if (!new_contents->GetRenderProcessHost()->HasConnection() ||
- !new_contents->GetRenderViewHost()->view())
- return NULL;
-
- // TODO(brettw): It seems bogus to reach into here and initialize the host.
- new_contents->GetRenderViewHost()->Init();
- return new_contents;
-}
-
-RenderWidgetHostView* RenderViewHostDelegateViewHelper::GetCreatedWidget(
- int route_id) {
- PendingWidgetViews::iterator iter = pending_widget_views_.find(route_id);
- if (iter == pending_widget_views_.end()) {
- DCHECK(false);
- return NULL;
- }
-
- RenderWidgetHostView* widget_host_view = iter->second;
- pending_widget_views_.erase(route_id);
-
- RenderWidgetHost* widget_host = widget_host_view->GetRenderWidgetHost();
- if (!widget_host->process()->HasConnection()) {
- // The view has gone away or the renderer crashed. Nothing to do.
- return NULL;
- }
-
- return widget_host_view;
-}
-
-TabContents* RenderViewHostDelegateViewHelper::ShowCreatedWindow(
- WebContents* web_contents,
- int route_id,
- WindowOpenDisposition disposition,
- const gfx::Rect& initial_pos,
- bool user_gesture) {
- TabContents* contents = GetCreatedWindow(route_id);
- if (contents) {
- web_contents->AddNewContents(contents,
- disposition,
- initial_pos,
- user_gesture);
- }
- return contents;
-}
-
-RenderWidgetHostView* RenderViewHostDelegateViewHelper::ShowCreatedWidget(
- WebContents* web_contents,
- int route_id,
- bool is_fullscreen,
- const gfx::Rect& initial_pos) {
- if (web_contents->GetDelegate())
- web_contents->GetDelegate()->RenderWidgetShowing();
-
- RenderWidgetHostView* widget_host_view = GetCreatedWidget(route_id);
- if (is_fullscreen) {
- widget_host_view->InitAsFullscreen(web_contents->GetRenderWidgetHostView());
- } else {
- widget_host_view->InitAsPopup(web_contents->GetRenderWidgetHostView(),
- initial_pos);
- }
- widget_host_view->GetRenderWidgetHost()->Init();
- return widget_host_view;
-}
« no previous file with comments | « chrome/browser/tab_contents/render_view_host_delegate_helper.h ('k') | chrome/browser/tab_contents/tab_contents_view_gtk.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698