Index: chrome/browser/extensions/extension_view.h |
=================================================================== |
--- chrome/browser/extensions/extension_view.h (revision 14851) |
+++ chrome/browser/extensions/extension_view.h (working copy) |
@@ -5,98 +5,69 @@ |
#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_VIEW_H_ |
#define CHROME_BROWSER_EXTENSIONS_EXTENSION_VIEW_H_ |
-#include "chrome/browser/renderer_host/render_view_host_delegate.h" |
-#include "chrome/browser/tab_contents/render_view_host_delegate_helper.h" |
+#include "build/build_config.h" |
+ |
+#include "base/scoped_ptr.h" |
+#include "chrome/browser/extensions/extension_host.h" |
+#include "googleurl/src/gurl.h" |
#include "skia/include/SkBitmap.h" |
// TODO(port): Port these files. |
#if defined(OS_WIN) |
-#include "chrome/browser/views/hwnd_html_view.h" |
+#include "chrome/views/controls/hwnd_view.h" |
#else |
+#include "chrome/views/view.h" |
#include "chrome/common/temp_scaffolding_stubs.h" |
#endif |
class Browser; |
class Extension; |
-class ExtensionFunctionDispatcher; |
-class RenderWidgetHost; |
-class RenderWidgetHostView; |
-class WebContents; |
-struct WebPreferences; |
-// This class is the browser component of an extension component's RenderView. |
-// It handles setting up the renderer process, if needed, with special |
-// priviliges available to extensions. The view may be drawn to the screen or |
-// hidden. |
-class ExtensionView : public HWNDHtmlView, |
- public RenderViewHostDelegate, |
- public RenderViewHostDelegate::View { |
+// This handles the display portion of an ExtensionHost. |
+class ExtensionView : public views::HWNDView { |
public: |
- // ExtensionView |
- ExtensionView(Extension* extension, |
- const GURL& url, |
- SiteInstance* instance, |
- Browser* browser); |
+ ExtensionView(ExtensionHost* host, Browser* browser, const GURL& content_url); |
+ ~ExtensionView(); |
- Extension* extension() { return extension_; } |
+ ExtensionHost* host() const { return host_.get(); } |
+ Browser* browser() const { return browser_; } |
+ Extension* extension() { return host_->extension(); } |
+ RenderViewHost* render_view_host() { return host_->render_view_host(); } |
- // HWNDHtmlView |
- virtual void CreatingRenderer(); |
+ // Notification from ExtensionHost. |
+ void DidContentsPreferredWidthChange(const int pref_width); |
- virtual void SetBackground(const SkBitmap& background); |
+ // Set a custom background for the view. The background will be tiled. |
+ void SetBackground(const SkBitmap& background); |
- // RenderViewHostDelegate |
- // TODO(mpcomplete): GetProfile is unused. |
- virtual Profile* GetProfile() const { return NULL; } |
- virtual ExtensionFunctionDispatcher *CreateExtensionFunctionDispatcher( |
- RenderViewHost *render_view_host, |
- const std::string& extension_id); |
- virtual void RenderViewCreated(RenderViewHost* render_view_host); |
- virtual void DidContentsPreferredWidthChange(const int pref_width); |
- virtual void DidStopLoading(RenderViewHost* render_view_host); |
- virtual WebPreferences GetWebkitPrefs(); |
- virtual void RunJavaScriptMessage( |
- const std::wstring& message, |
- const std::wstring& default_prompt, |
- const GURL& frame_url, |
- const int flags, |
- IPC::Message* reply_msg, |
- bool* did_suppress_message); |
- virtual void DidStartLoading(RenderViewHost* render_view_host); |
- virtual RenderViewHostDelegate::View* GetViewDelegate() const; |
- |
- // RenderViewHostDelegate::View |
- virtual void CreateNewWindow(int route_id, |
- base::WaitableEvent* modal_dialog_event); |
- virtual void CreateNewWidget(int route_id, bool activatable); |
- 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 ShowContextMenu(const ContextMenuParams& params); |
- virtual void StartDragging(const WebDropData& drop_data); |
- virtual void UpdateDragCursor(bool is_drop_target); |
- virtual void TakeFocus(bool reverse); |
- virtual void HandleKeyboardEvent(const NativeWebKeyboardEvent& event); |
- |
+ // views::HWNDView |
+ virtual void SetVisible(bool is_visible); |
+ virtual void DidChangeBounds(const gfx::Rect& previous, |
+ const gfx::Rect& current); |
+ virtual void ViewHierarchyChanged(bool is_add, |
+ views::View *parent, views::View *child); |
private: |
+ friend class ExtensionHost; |
+ |
// We wait to show the ExtensionView until several things have loaded. |
void ShowIfCompletelyLoaded(); |
- // The extension that we're hosting in this view. |
- Extension* extension_; |
+ // The running extension instance that we're displaying. |
+ scoped_ptr<ExtensionHost> host_; |
// The browser window that this view is in. |
Browser* browser_; |
- // Common implementations of some RenderViewHostDelegate::View methods. |
- RenderViewHostDelegateViewHelper delegate_view_helper_; |
+ // The URL to navigate the host to upon initialization. |
+ GURL content_url_; |
- // Whether the RenderWidget has reported that it has stopped loading. |
- bool did_stop_loading_; |
+ // True if we've been initialized. |
+ bool initialized_; |
+ // The background the view should have once it is initialized. This is set |
+ // when the view has a custom background, but hasn't been initialized yet. |
+ SkBitmap pending_background_; |
+ |
// What we should set the preferred width to once the ExtensionView has |
// loaded. |
int pending_preferred_width_; |