| Index: chrome/browser/ui/cocoa/extensions/extension_view_mac.mm
|
| diff --git a/chrome/browser/ui/cocoa/extensions/extension_view_mac.mm b/chrome/browser/ui/cocoa/extensions/extension_view_mac.mm
|
| index f0a61c27a6290c4a41ec058c4e130a61020036ce..351cbb9b1490eb243941e3b0aa45863c8e84fc5d 100644
|
| --- a/chrome/browser/ui/cocoa/extensions/extension_view_mac.mm
|
| +++ b/chrome/browser/ui/cocoa/extensions/extension_view_mac.mm
|
| @@ -2,10 +2,13 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#import <Cocoa/Cocoa.h>
|
| -
|
| #include "chrome/browser/ui/cocoa/extensions/extension_view_mac.h"
|
|
|
| +#import <Cocoa/Cocoa.h>
|
| +
|
| +#include "base/mac/foundation_util.h"
|
| +#include "chrome/browser/extensions/extension_view_host.h"
|
| +#import "chrome/browser/ui/cocoa/chrome_event_processing_window.h"
|
| #include "content/public/browser/render_view_host.h"
|
| #include "content/public/browser/render_widget_host_view.h"
|
| #include "content/public/browser/web_contents.h"
|
| @@ -24,26 +27,27 @@ ExtensionViewMac::ExtensionViewMac(extensions::ExtensionHost* extension_host,
|
| extension_host_(extension_host),
|
| container_(NULL) {
|
| DCHECK(extension_host_);
|
| - [native_view() setHidden:YES];
|
| + [GetNativeView() setHidden:YES];
|
| }
|
|
|
| ExtensionViewMac::~ExtensionViewMac() {
|
| }
|
|
|
| -void ExtensionViewMac::Init() {
|
| - CreateWidgetHostView();
|
| +void ExtensionViewMac::WindowFrameChanged() {
|
| + if (render_view_host()->GetView())
|
| + render_view_host()->GetView()->WindowFrameChanged();
|
| }
|
|
|
| -gfx::NativeView ExtensionViewMac::native_view() {
|
| - return extension_host_->host_contents()->GetNativeView();
|
| +void ExtensionViewMac::Init() {
|
| + CreateWidgetHostView();
|
| }
|
|
|
| -content::RenderViewHost* ExtensionViewMac::render_view_host() const {
|
| - return extension_host_->render_view_host();
|
| +Browser* ExtensionViewMac::GetBrowser() {
|
| + return browser_;
|
| }
|
|
|
| -void ExtensionViewMac::DidStopLoading() {
|
| - ShowIfCompletelyLoaded();
|
| +gfx::NativeView ExtensionViewMac::GetNativeView() {
|
| + return extension_host_->host_contents()->GetNativeView();
|
| }
|
|
|
| void ExtensionViewMac::ResizeDueToAutoResize(const gfx::Size& new_size) {
|
| @@ -62,9 +66,27 @@ void ExtensionViewMac::RenderViewCreated() {
|
| }
|
| }
|
|
|
| -void ExtensionViewMac::WindowFrameChanged() {
|
| - if (render_view_host()->GetView())
|
| - render_view_host()->GetView()->WindowFrameChanged();
|
| +void ExtensionViewMac::HandleKeyboardEvent(
|
| + content::WebContents* source,
|
| + const content::NativeWebKeyboardEvent& event) {
|
| + if (event.skip_in_browser ||
|
| + event.type == content::NativeWebKeyboardEvent::Char ||
|
| + extension_host_->extension_host_type() !=
|
| + extensions::VIEW_TYPE_EXTENSION_POPUP)
|
| + return;
|
| +
|
| + ChromeEventProcessingWindow* event_window =
|
| + base::mac::ObjCCastStrict<ChromeEventProcessingWindow>(
|
| + [GetNativeView() window]);
|
| + [event_window redispatchKeyEvent:event.os_event];
|
| +}
|
| +
|
| +void ExtensionViewMac::DidStopLoading() {
|
| + ShowIfCompletelyLoaded();
|
| +}
|
| +
|
| +content::RenderViewHost* ExtensionViewMac::render_view_host() const {
|
| + return extension_host_->render_view_host();
|
| }
|
|
|
| void ExtensionViewMac::CreateWidgetHostView() {
|
| @@ -75,8 +97,20 @@ void ExtensionViewMac::ShowIfCompletelyLoaded() {
|
| // We wait to show the ExtensionView until it has loaded, and the view has
|
| // actually been created. These can happen in different orders.
|
| if (extension_host_->did_stop_loading()) {
|
| - [native_view() setHidden:NO];
|
| + [GetNativeView() setHidden:NO];
|
| if (container_)
|
| container_->OnExtensionViewDidShow(this);
|
| }
|
| }
|
| +
|
| +namespace extensions {
|
| +
|
| +// static
|
| +scoped_ptr<ExtensionView> ExtensionViewHost::CreateExtensionView(
|
| + ExtensionViewHost* host,
|
| + Browser* browser) {
|
| + scoped_ptr<ExtensionViewMac> view(new ExtensionViewMac(host, browser));
|
| + return view.PassAs<ExtensionView>();
|
| +}
|
| +
|
| +} // namespace extensions
|
|
|