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

Unified Diff: chrome/browser/tab_contents/background_contents.h

Issue 8469015: Switch BackgroundContents to use TabContents instead of RenderViewHost. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix unittest Created 9 years, 1 month 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/background_contents.h
===================================================================
--- chrome/browser/tab_contents/background_contents.h (revision 109469)
+++ chrome/browser/tab_contents/background_contents.h (working copy)
@@ -7,33 +7,21 @@
#pragma once
#include <string>
-#include <vector>
#include "base/memory/scoped_ptr.h"
-#include "chrome/browser/tab_contents/render_view_host_delegate_helper.h"
-#include "content/browser/javascript_dialogs.h"
-#include "content/browser/renderer_host/render_view_host_delegate.h"
+#include "content/browser/tab_contents/tab_contents_delegate.h"
+#include "content/browser/tab_contents/tab_contents_observer.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
-#include "content/public/common/window_container_type.h"
#include "webkit/glue/window_open_disposition.h"
-class TabContents;
-struct WebPreferences;
+class Profile;
-namespace gfx {
-class Rect;
-}
-
-// This class is a peer of TabContents. It can host a renderer, but does not
-// have any visible display. Its navigation is not managed by a
-// NavigationController because is has no facility for navigating (other than
-// programatically view window.location.href) or RenderViewHostManager because
-// it is never allowed to navigate across a SiteInstance boundary.
-class BackgroundContents : public RenderViewHostDelegate,
- public RenderViewHostDelegate::View,
- public content::NotificationObserver,
- public content::JavaScriptDialogDelegate {
+// This class consumes TabContents. It can host a renderer, but does not
+// have any visible display.
+class BackgroundContents : public TabContentsDelegate,
+ public TabContentsObserver,
+ public content::NotificationObserver {
public:
class Delegate {
public:
@@ -54,79 +42,22 @@
Delegate* delegate);
virtual ~BackgroundContents();
- // Provide access to the RenderViewHost for the
- // RenderViewHostDelegateViewHelper
- RenderViewHost* render_view_host() { return render_view_host_; }
+ TabContents* tab_contents() { return tab_contents_.get(); }
+ virtual const GURL& GetURL() const;
- // RenderViewHostDelegate implementation.
- virtual BackgroundContents* GetAsBackgroundContents() OVERRIDE;
- virtual RenderViewHostDelegate::View* GetViewDelegate() OVERRIDE;
- virtual const GURL& GetURL() const OVERRIDE;
- virtual content::ViewType GetRenderViewType() const OVERRIDE;
- virtual void DidNavigate(
- RenderViewHost* render_view_host,
- const ViewHostMsg_FrameNavigate_Params& params) OVERRIDE;
- virtual WebPreferences GetWebkitPrefs() OVERRIDE;
- virtual void RunJavaScriptMessage(const RenderViewHost* rvh,
- const string16& message,
- const string16& default_prompt,
- const GURL& frame_url,
- const int flags,
- IPC::Message* reply_msg,
- bool* did_suppress_message) OVERRIDE;
- virtual void Close(RenderViewHost* render_view_host) OVERRIDE;
- virtual content::RendererPreferences GetRendererPrefs(
- content::BrowserContext* browser_context) const OVERRIDE;
- virtual void RenderViewGone(RenderViewHost* rvh,
- base::TerminationStatus status,
- int error_code) OVERRIDE;
+ // TabContentsDelegate implementation:
+ virtual void CloseContents(TabContents* source) OVERRIDE;
+ virtual bool ShouldSuppressDialogs() OVERRIDE;
+ virtual void DidNavigateMainFramePostCommit(TabContents* tab) OVERRIDE;
- // RenderViewHostDelegate::View
- 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,
- WebKit::WebDragOperationsMask allowed_operations,
- const SkBitmap& image,
- const gfx::Point& image_offset) {}
- virtual void UpdateDragCursor(WebKit::WebDragOperation operation) {}
- virtual void GotFocus() {}
- virtual void TakeFocus(bool reverse) {}
+ // TabContentsObserver implementation:
+ virtual void RenderViewGone() OVERRIDE;
// content::NotificationObserver
virtual void Observe(int type,
const content::NotificationSource& source,
const content::NotificationDetails& details);
- // Overridden from JavaScriptDialogDelegate:
- virtual void OnDialogClosed(IPC::Message* reply_msg,
- bool success,
- const string16& user_input) OVERRIDE;
- virtual gfx::NativeWindow GetDialogRootWindow() OVERRIDE;
-
- // Helper to find the BackgroundContents that originated the given request.
- // Can be NULL if the page has been closed or some other error occurs.
- // Should only be called from the UI thread, since it accesses
- // BackgroundContents.
- static BackgroundContents* GetBackgroundContentsByID(int render_process_id,
- int render_view_id);
-
protected:
// Exposed for testing.
BackgroundContents();
@@ -135,15 +66,8 @@
// The delegate for this BackgroundContents.
Delegate* delegate_;
- // The host for our HTML content.
- RenderViewHost* render_view_host_;
-
- // Common implementations of some RenderViewHostDelegate::View methods.
- RenderViewHostDelegateViewHelper delegate_view_helper_;
-
- // The URL being hosted.
- GURL url_;
-
+ Profile* profile_;
+ scoped_ptr<TabContents> tab_contents_;
content::NotificationRegistrar registrar_;
DISALLOW_COPY_AND_ASSIGN(BackgroundContents);
« no previous file with comments | « chrome/browser/safe_browsing/client_side_detection_host.cc ('k') | chrome/browser/tab_contents/background_contents.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698