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

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

Issue 363233002: Abstract base 'ExtensionView' to Fix DEPS violation in extension_view_host.h (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: respond to comments Created 6 years, 5 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
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..f888d4e66ea2ac65c37a0c823cd6bf9df45be524 100644
--- a/chrome/browser/ui/cocoa/extensions/extension_view_mac.mm
+++ b/chrome/browser/ui/cocoa/extensions/extension_view_mac.mm
@@ -2,10 +2,12 @@
// 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 "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 +26,45 @@ 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();
+content::RenderViewHost* ExtensionViewMac::render_view_host() const {
Robert Sesek 2014/07/08 12:50:37 nit: implementation order should match header orde
tapted 2014/07/08 23:54:58 Done.
+ return extension_host_->render_view_host();
}
-gfx::NativeView ExtensionViewMac::native_view() {
- return extension_host_->host_contents()->GetNativeView();
+void ExtensionViewMac::WindowFrameChanged() {
+ if (render_view_host()->GetView())
+ render_view_host()->GetView()->WindowFrameChanged();
}
-content::RenderViewHost* ExtensionViewMac::render_view_host() const {
- return extension_host_->render_view_host();
+void ExtensionViewMac::CreateWidgetHostView() {
+ extension_host_->CreateRenderViewSoon();
}
-void ExtensionViewMac::DidStopLoading() {
- ShowIfCompletelyLoaded();
+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()) {
+ [GetNativeView() setHidden:NO];
+ if (container_)
+ container_->OnExtensionViewDidShow(this);
+ }
+}
+
+void ExtensionViewMac::Init() {
+ CreateWidgetHostView();
+}
+
+Browser* ExtensionViewMac::GetBrowser() {
+ return browser_;
+}
+
+gfx::NativeView ExtensionViewMac::GetNativeView() {
+ return extension_host_->host_contents()->GetNativeView();
}
void ExtensionViewMac::ResizeDueToAutoResize(const gfx::Size& new_size) {
@@ -62,21 +83,33 @@ 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 =
+ static_cast<ChromeEventProcessingWindow*>([GetNativeView() window]);
Robert Sesek 2014/07/08 12:50:37 Can use ObjCCastStrict here.
tapted 2014/07/08 23:54:58 Done.
+ DCHECK([event_window isKindOfClass:[ChromeEventProcessingWindow class]]);
+ [event_window redispatchKeyEvent:event.os_event];
}
-void ExtensionViewMac::CreateWidgetHostView() {
- extension_host_->CreateRenderViewSoon();
+void ExtensionViewMac::DidStopLoading() {
+ ShowIfCompletelyLoaded();
}
-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];
- 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

Powered by Google App Engine
This is Rietveld 408576698