diff options
Diffstat (limited to 'chrome/browser/cocoa/extension_view_mac.mm')
-rw-r--r-- | chrome/browser/cocoa/extension_view_mac.mm | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/chrome/browser/cocoa/extension_view_mac.mm b/chrome/browser/cocoa/extension_view_mac.mm deleted file mode 100644 index feab70c..0000000 --- a/chrome/browser/cocoa/extension_view_mac.mm +++ /dev/null @@ -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/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_); -} |