| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "chrome/browser/ui/gtk/extensions/extension_view_gtk.h" | |
| 6 | |
| 7 #include "chrome/browser/ui/gtk/extensions/extension_popup_gtk.h" | |
| 8 #include "content/public/browser/render_view_host.h" | |
| 9 #include "content/public/browser/render_widget_host_view.h" | |
| 10 #include "content/public/browser/web_contents.h" | |
| 11 #include "content/public/browser/web_contents_view.h" | |
| 12 #include "extensions/browser/extension_host.h" | |
| 13 #include "extensions/common/view_type.h" | |
| 14 | |
| 15 ExtensionViewGtk::ExtensionViewGtk(extensions::ExtensionHost* extension_host, | |
| 16 Browser* browser) | |
| 17 : browser_(browser), | |
| 18 extension_host_(extension_host), | |
| 19 container_(NULL) { | |
| 20 } | |
| 21 | |
| 22 void ExtensionViewGtk::Init() { | |
| 23 CreateWidgetHostView(); | |
| 24 } | |
| 25 | |
| 26 gfx::NativeView ExtensionViewGtk::native_view() { | |
| 27 return extension_host_->host_contents()->GetView()->GetNativeView(); | |
| 28 } | |
| 29 | |
| 30 content::RenderViewHost* ExtensionViewGtk::render_view_host() const { | |
| 31 return extension_host_->render_view_host(); | |
| 32 } | |
| 33 | |
| 34 void ExtensionViewGtk::SetBackground(const SkBitmap& background) { | |
| 35 if (render_view_host()->IsRenderViewLive() && render_view_host()->GetView()) { | |
| 36 render_view_host()->GetView()->SetBackground(background); | |
| 37 } else { | |
| 38 pending_background_ = background; | |
| 39 } | |
| 40 } | |
| 41 | |
| 42 void ExtensionViewGtk::ResizeDueToAutoResize(const gfx::Size& new_size) { | |
| 43 if (container_) | |
| 44 container_->OnExtensionSizeChanged(this, new_size); | |
| 45 } | |
| 46 | |
| 47 void ExtensionViewGtk::CreateWidgetHostView() { | |
| 48 extension_host_->CreateRenderViewSoon(); | |
| 49 } | |
| 50 | |
| 51 void ExtensionViewGtk::RenderViewCreated() { | |
| 52 if (!pending_background_.empty() && render_view_host()->GetView()) { | |
| 53 render_view_host()->GetView()->SetBackground(pending_background_); | |
| 54 pending_background_.reset(); | |
| 55 } | |
| 56 | |
| 57 extensions::ViewType host_type = extension_host_->extension_host_type(); | |
| 58 if (host_type == extensions::VIEW_TYPE_EXTENSION_POPUP) { | |
| 59 gfx::Size min_size(ExtensionPopupGtk::kMinWidth, | |
| 60 ExtensionPopupGtk::kMinHeight); | |
| 61 gfx::Size max_size(ExtensionPopupGtk::kMaxWidth, | |
| 62 ExtensionPopupGtk::kMaxHeight); | |
| 63 render_view_host()->EnableAutoResize(min_size, max_size); | |
| 64 } | |
| 65 } | |
| OLD | NEW |