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

Unified Diff: chrome/browser/cocoa/extension_view_mac.mm

Issue 175025: Add a bare-bones extension shelf that displays extension items on OS X. (Closed)
Patch Set: Merge ToT, address more comments Created 11 years, 3 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/cocoa/extension_view_mac.h ('k') | chrome/browser/cocoa/status_bubble_mac.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/cocoa/extension_view_mac.mm
diff --git a/chrome/browser/cocoa/extension_view_mac.mm b/chrome/browser/cocoa/extension_view_mac.mm
new file mode 100644
index 0000000000000000000000000000000000000000..a64eee88a679de62f64f621e56a90a344973590f
--- /dev/null
+++ b/chrome/browser/cocoa/extension_view_mac.mm
@@ -0,0 +1,68 @@
+// 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.
+
+#include "chrome/browser/cocoa/extension_view_mac.h"
+
+#include "chrome/browser/extensions/extension_host.h"
+#include "chrome/browser/renderer_host/render_view_host.h"
+#include "chrome/browser/renderer_host/render_widget_host_view_mac.h"
+
+ExtensionViewMac::ExtensionViewMac(ExtensionHost* extension_host,
+ Browser* browser)
+ : is_toolstrip_(true),
+ browser_(browser),
+ extension_host_(extension_host),
+ render_widget_host_view_(NULL) {
+ DCHECK(extension_host_);
+}
+
+ExtensionViewMac::~ExtensionViewMac() {
+ if (render_widget_host_view_)
+ [render_widget_host_view_->native_view() release];
+}
+
+void ExtensionViewMac::Init() {
+ CreateWidgetHostView();
+}
+
+gfx::NativeView ExtensionViewMac::native_view() {
+ DCHECK(render_widget_host_view_);
+ return render_widget_host_view_->native_view();
+}
+
+RenderViewHost* ExtensionViewMac::render_view_host() const {
+ return extension_host_->render_view_host();
+}
+
+void ExtensionViewMac::SetBackground(const SkBitmap& background) {
+ DCHECK(render_widget_host_view_);
+ render_widget_host_view_->SetBackground(background);
+}
+
+void ExtensionViewMac::UpdatePreferredWidth(int pref_width) {
+ // TODO(thakis, erikkay): Windows does some tricks to resize the extension
+ // view not before it's visible. Do something similar here.
+
+ // No need to use CA here, our caller calls us repeatedly to animate the
+ // resizing.
+ NSView* view = native_view();
+ NSRect frame = [view frame];
+ frame.size.width = pref_width;
+
+ // RenderWidgetHostViewCocoa overrides setFrame but not setFrameSize.
+ [view setFrame:frame];
+ [view setNeedsDisplay:YES];
+}
+
+void ExtensionViewMac::CreateWidgetHostView() {
+ DCHECK(!render_widget_host_view_);
+ render_widget_host_view_ = new RenderWidgetHostViewMac(render_view_host());
+
+ // The RenderWidgetHostViewMac is owned by its native view, which is created
+ // in an autoreleased state. retain it, so that it doesn't immediately
+ // disappear.
+ [render_widget_host_view_->native_view() retain];
+
+ extension_host_->CreateRenderView(render_widget_host_view_);
+}
« no previous file with comments | « chrome/browser/cocoa/extension_view_mac.h ('k') | chrome/browser/cocoa/status_bubble_mac.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698