Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / extension_view_host.cc
index b78d5fa..12afacc 100644 (file)
@@ -6,20 +6,20 @@
 
 #include "base/strings/string_piece.h"
 #include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/extensions/extension_system.h"
 #include "chrome/browser/extensions/window_controller.h"
 #include "chrome/browser/file_select_helper.h"
 #include "chrome/browser/platform_util.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_dialogs.h"
-#include "chrome/common/extensions/extension_messages.h"
 #include "components/web_modal/web_contents_modal_dialog_manager.h"
 #include "content/public/browser/notification_source.h"
 #include "content/public/browser/render_view_host.h"
 #include "content/public/browser/web_contents.h"
-#include "content/public/browser/web_contents_view.h"
+#include "extensions/browser/extension_system.h"
 #include "extensions/browser/runtime_data.h"
+#include "extensions/common/extension_messages.h"
 #include "grit/browser_resources.h"
+#include "third_party/WebKit/public/web/WebInputEvent.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/events/keycodes/keyboard_codes.h"
 
@@ -42,7 +42,7 @@ class ExtensionViewHost::AssociatedWebContentsObserver
   virtual ~AssociatedWebContentsObserver() {}
 
   // content::WebContentsObserver:
-  virtual void WebContentsDestroyed(WebContents* web_contents) OVERRIDE {
+  virtual void WebContentsDestroyed() OVERRIDE {
     // Deleting |this| from here is safe.
     host_->SetAssociatedWebContents(NULL);
   }
@@ -84,9 +84,6 @@ void ExtensionViewHost::CreateView(Browser* browser) {
 #elif defined(OS_MACOSX)
   view_.reset(new ExtensionViewMac(this, browser));
   view_->Init();
-#elif defined(TOOLKIT_GTK)
-  view_.reset(new ExtensionViewGtk(this, browser));
-  view_->Init();
 #else
   // TODO(port)
   NOTREACHED();
@@ -139,7 +136,7 @@ void ExtensionViewHost::OnDocumentAvailable() {
 }
 
 void ExtensionViewHost::LoadInitialURL() {
-  if (!ExtensionSystem::GetForBrowserContext(browser_context())->
+  if (!ExtensionSystem::Get(browser_context())->
           runtime_data()->IsBackgroundPageReady(extension())) {
     // Make sure the background page loads before any others.
     registrar()->Add(this,
@@ -221,6 +218,15 @@ void ExtensionViewHost::HandleKeyboardEvent(
   UnhandledKeyboardEvent(source, event);
 }
 
+bool ExtensionViewHost::PreHandleGestureEvent(
+    content::WebContents* source,
+    const blink::WebGestureEvent& event) {
+  // Disable pinch zooming.
+  return event.type == blink::WebGestureEvent::GesturePinchBegin ||
+      event.type == blink::WebGestureEvent::GesturePinchUpdate ||
+      event.type == blink::WebGestureEvent::GesturePinchEnd;
+}
+
 content::ColorChooser* ExtensionViewHost::OpenColorChooser(
     WebContents* web_contents,
     SkColor initial_color,
@@ -269,7 +275,7 @@ ExtensionViewHost::GetWebContentsModalDialogHost() {
 }
 
 bool ExtensionViewHost::IsWebContentsVisible(WebContents* web_contents) {
-  return platform_util::IsVisible(web_contents->GetView()->GetNativeView());
+  return platform_util::IsVisible(web_contents->GetNativeView());
 }
 
 gfx::NativeView ExtensionViewHost::GetHostView() const {
@@ -279,7 +285,7 @@ gfx::NativeView ExtensionViewHost::GetHostView() const {
 gfx::Point ExtensionViewHost::GetDialogPosition(const gfx::Size& size) {
   if (!GetVisibleWebContents())
     return gfx::Point();
-  gfx::Rect bounds = GetVisibleWebContents()->GetView()->GetViewBounds();
+  gfx::Rect bounds = GetVisibleWebContents()->GetViewBounds();
   return gfx::Point(
       std::max(0, (bounds.width() - size.width()) / 2),
       std::max(0, (bounds.height() - size.height()) / 2));
@@ -288,7 +294,7 @@ gfx::Point ExtensionViewHost::GetDialogPosition(const gfx::Size& size) {
 gfx::Size ExtensionViewHost::GetMaximumDialogSize() {
   if (!GetVisibleWebContents())
     return gfx::Size();
-  return GetVisibleWebContents()->GetView()->GetViewBounds().size();
+  return GetVisibleWebContents()->GetViewBounds().size();
 }
 
 void ExtensionViewHost::AddObserver(
@@ -320,7 +326,7 @@ void ExtensionViewHost::Observe(int type,
                                 const content::NotificationSource& source,
                                 const content::NotificationDetails& details) {
   if (type == chrome::NOTIFICATION_EXTENSION_BACKGROUND_PAGE_READY) {
-    DCHECK(ExtensionSystem::GetForBrowserContext(browser_context())->
+    DCHECK(ExtensionSystem::Get(browser_context())->
                runtime_data()->IsBackgroundPageReady(extension()));
     LoadInitialURL();
     return;
@@ -333,7 +339,7 @@ void ExtensionViewHost::InsertInfobarCSS() {
       ResourceBundle::GetSharedInstance().GetRawDataResource(
       IDR_EXTENSIONS_INFOBAR_CSS));
 
-  render_view_host()->InsertCSS(base::string16(), css.as_string());
+  host_contents()->InsertCSS(css.as_string());
 }
 
 }  // namespace extensions