| Index: chrome/browser/ui/cocoa/extension_view_mac.mm
|
| ===================================================================
|
| --- chrome/browser/ui/cocoa/extension_view_mac.mm (revision 71534)
|
| +++ chrome/browser/ui/cocoa/extension_view_mac.mm (working copy)
|
| @@ -1,112 +0,0 @@
|
| -// Copyright (c) 2010 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/ui/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"
|
| -
|
| -// The minimum/maximum dimensions of the popup.
|
| -const CGFloat ExtensionViewMac::kMinWidth = 25.0;
|
| -const CGFloat ExtensionViewMac::kMinHeight = 25.0;
|
| -const CGFloat ExtensionViewMac::kMaxWidth = 800.0;
|
| -const CGFloat ExtensionViewMac::kMaxHeight = 600.0;
|
| -
|
| -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_);
|
| - if (render_view_host()->IsRenderViewLive()) {
|
| - render_widget_host_view_->SetBackground(background);
|
| - } else {
|
| - pending_background_ = background;
|
| - }
|
| -}
|
| -
|
| -void ExtensionViewMac::UpdatePreferredSize(const gfx::Size& new_size) {
|
| - // 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 = new_size.width();
|
| - frame.size.height = new_size.height();
|
| -
|
| - // On first display of some extensions, this function is called with zero
|
| - // width after the correct size has been set. Bail if zero is seen, assuming
|
| - // that an extension's view doesn't want any dimensions to ever be zero.
|
| - // TODO(andybons): Verify this assumption and look into WebCore's
|
| - // |contentesPreferredWidth| to see why this is occurring.
|
| - if (NSIsEmptyRect(frame))
|
| - return;
|
| -
|
| - DCHECK([view isKindOfClass:[RenderWidgetHostViewCocoa class]]);
|
| - RenderWidgetHostViewCocoa* hostView = (RenderWidgetHostViewCocoa*)view;
|
| -
|
| - // RenderWidgetHostViewCocoa overrides setFrame but not setFrameSize.
|
| - // We need to defer the update back to the RenderWidgetHost so we don't
|
| - // get the flickering effect on 10.5 of http://crbug.com/31970
|
| - [hostView setFrameWithDeferredUpdate:frame];
|
| - [hostView setNeedsDisplay:YES];
|
| -}
|
| -
|
| -void ExtensionViewMac::RenderViewCreated() {
|
| - // Do not allow webkit to draw scroll bars on views smaller than
|
| - // the largest size view allowed. The view will be resized to make
|
| - // scroll bars unnecessary. Scroll bars change the height of the
|
| - // view, so not drawing them is necessary to avoid infinite resizing.
|
| - gfx::Size largest_popup_size(
|
| - CGSizeMake(ExtensionViewMac::kMaxWidth, ExtensionViewMac::kMaxHeight));
|
| - extension_host_->DisableScrollbarsForSmallWindows(largest_popup_size);
|
| -
|
| - if (!pending_background_.empty() && render_view_host()->view()) {
|
| - render_widget_host_view_->SetBackground(pending_background_);
|
| - pending_background_.reset();
|
| - }
|
| -}
|
| -
|
| -void ExtensionViewMac::WindowFrameChanged() {
|
| - if (render_widget_host_view_)
|
| - render_widget_host_view_->WindowFrameChanged();
|
| -}
|
| -
|
| -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_->CreateRenderViewSoon(render_widget_host_view_);
|
| -}
|
|
|