summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/extension_view_mac.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/cocoa/extension_view_mac.h')
-rw-r--r--chrome/browser/cocoa/extension_view_mac.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/extension_view_mac.h b/chrome/browser/cocoa/extension_view_mac.h
new file mode 100644
index 0000000..e358d1b
--- /dev/null
+++ b/chrome/browser/cocoa/extension_view_mac.h
@@ -0,0 +1,65 @@
+// Copyright (c) 2009 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.
+
+#ifndef CHROME_BROWSER_COCOA_EXTENSION_VIEW_MAC_H_
+#define CHROME_BROWSER_COCOA_EXTENSION_VIEW_MAC_H_
+
+#include "base/basictypes.h"
+#include "base/gfx/native_widget_types.h"
+
+class Browser;
+class ExtensionHost;
+class RenderViewHost;
+class RenderWidgetHostViewMac;
+class SkBitmap;
+
+// This class represents extension views. An extension view internally contains
+// a bridge to an extension process, which draws to the extension view's
+// native view object through IPC.
+class ExtensionViewMac {
+ public:
+ ExtensionViewMac(ExtensionHost* extension_host, Browser* browser);
+ ~ExtensionViewMac();
+
+ // Starts the extension process and creates the native view. You must call
+ // this method before calling any of this class's other methods.
+ void Init();
+
+ // Returns the extension's native view.
+ gfx::NativeView native_view();
+
+ // Returns the browser the extension belongs to.
+ Browser* browser() const { return browser_; }
+
+ // Does this extension live as a toolstrip in an extension shelf?
+ bool is_toolstrip() const { return is_toolstrip_; }
+ void set_is_toolstrip(bool is_toolstrip) { is_toolstrip_ = is_toolstrip; }
+
+ // Sets the extensions's background image.
+ void SetBackground(const SkBitmap& background);
+
+ // Method for the ExtensionHost to notify us about the correct width for
+ // extension contents.
+ void UpdatePreferredWidth(int pref_width);
+
+ private:
+ RenderViewHost* render_view_host() const;
+
+ void CreateWidgetHostView();
+
+ // True if the contents are being displayed inside the extension shelf.
+ bool is_toolstrip_;
+
+ Browser* browser_; // weak
+
+ ExtensionHost* extension_host_; // weak
+
+ // Created by us, but owned by its |native_view()|. We |release| the
+ // rwhv's native view in our destructor, effectively freeing this.
+ RenderWidgetHostViewMac* render_widget_host_view_;
+
+ DISALLOW_COPY_AND_ASSIGN(ExtensionViewMac);
+};
+
+#endif // CHROME_BROWSER_COCOA_EXTENSION_VIEW_MAC_H_