| Index: chrome/browser/ui/views/extensions/extension_view_views.cc
|
| diff --git a/chrome/browser/ui/views/extensions/extension_view_views.cc b/chrome/browser/ui/views/extensions/extension_view_views.cc
|
| index e0c58f012ec73cd505e48e1097d3766bf1ff4d87..a7d87430dc85d11cb6093eeb29b7b1d3de88158c 100644
|
| --- a/chrome/browser/ui/views/extensions/extension_view_views.cc
|
| +++ b/chrome/browser/ui/views/extensions/extension_view_views.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "chrome/browser/ui/views/extensions/extension_view_views.h"
|
|
|
| +#include "chrome/browser/extensions/extension_view_host.h"
|
| +#include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/views/extensions/extension_popup.h"
|
| #include "content/public/browser/content_browser_client.h"
|
| #include "content/public/browser/render_view_host.h"
|
| @@ -71,10 +73,6 @@ void ExtensionViewViews::ViewHierarchyChanged(
|
| CreateWidgetHostView();
|
| }
|
|
|
| -void ExtensionViewViews::DidStopLoading() {
|
| - ShowIfCompletelyLoaded();
|
| -}
|
| -
|
| void ExtensionViewViews::SetIsClipped(bool is_clipped) {
|
| if (is_clipped_ != is_clipped) {
|
| is_clipped_ = is_clipped;
|
| @@ -83,6 +81,18 @@ void ExtensionViewViews::SetIsClipped(bool is_clipped) {
|
| }
|
| }
|
|
|
| +void ExtensionViewViews::Init() {
|
| + // Initialization continues in ViewHierarchyChanged().
|
| +}
|
| +
|
| +Browser* ExtensionViewViews::GetBrowser() {
|
| + return browser_;
|
| +}
|
| +
|
| +gfx::NativeView ExtensionViewViews::GetNativeView() {
|
| + return native_view();
|
| +}
|
| +
|
| void ExtensionViewViews::ResizeDueToAutoResize(const gfx::Size& new_size) {
|
| // Don't actually do anything with this information until we have been shown.
|
| // Size changes will not be honored by lower layers while we are hidden.
|
| @@ -105,11 +115,22 @@ void ExtensionViewViews::RenderViewCreated() {
|
| }
|
|
|
| void ExtensionViewViews::HandleKeyboardEvent(
|
| + content::WebContents* source,
|
| const content::NativeWebKeyboardEvent& event) {
|
| + if (browser_) {
|
| + // Handle lower priority browser shortcuts such as Ctrl-f.
|
| + browser_->HandleKeyboardEvent(source, event);
|
| + return;
|
| + }
|
| +
|
| unhandled_keyboard_event_handler_.HandleKeyboardEvent(event,
|
| GetFocusManager());
|
| }
|
|
|
| +void ExtensionViewViews::DidStopLoading() {
|
| + ShowIfCompletelyLoaded();
|
| +}
|
| +
|
| bool ExtensionViewViews::SkipDefaultKeyEventProcessing(const ui::KeyEvent& e) {
|
| // Let the tab key event be processed by the renderer (instead of moving the
|
| // focus to the next focusable view). Also handle Backspace, since otherwise
|
| @@ -163,3 +184,18 @@ void ExtensionViewViews::CleanUp() {
|
| Detach();
|
| initialized_ = false;
|
| }
|
| +
|
| +namespace extensions {
|
| +
|
| +// static
|
| +scoped_ptr<ExtensionView> ExtensionViewHost::CreateExtensionView(
|
| + ExtensionViewHost* host,
|
| + Browser* browser) {
|
| + scoped_ptr<ExtensionViewViews> view(new ExtensionViewViews(host, browser));
|
| + // We own |view_|, so don't auto delete when it's removed from the view
|
| + // hierarchy.
|
| + view->set_owned_by_client();
|
| + return view.PassAs<ExtensionView>();
|
| +}
|
| +
|
| +} // namespace extensions
|
|
|