summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
authorlazyboy <lazyboy@chromium.org>2014-10-21 23:29:23 -0700
committerCommit bot <commit-bot@chromium.org>2014-10-22 06:30:04 +0000
commitb4adc139a023f5e77cabc715f46e3c4e0e432105 (patch)
tree0b5276096862ba8f1ebc5f185c5354cfdfe28ec3 /extensions
parentf6495730cb973fb920701f04af53ee635bf44f38 (diff)
downloadchromium_src-b4adc139a023f5e77cabc715f46e3c4e0e432105.zip
chromium_src-b4adc139a023f5e77cabc715f46e3c4e0e432105.tar.gz
chromium_src-b4adc139a023f5e77cabc715f46e3c4e0e432105.tar.bz2
Fix context menu positioning in MimeHandlerViewGuest.
BUG=422641 Test=Load chrome with the following flags: --out-of-process-pdf, --enable-mime-handler-view Load a PDF in a <webview>, e.g. use the webview-sample/browser app: https://chrome.google.com/webstore/detail/edggnmnajhcbhlnpjnogkjpghaikidaa and navigate to a PDF. Right clicking the PDF should bring context menu to correct position relative to the cursor. Review URL: https://codereview.chromium.org/667273002 Cr-Commit-Position: refs/heads/master@{#300639}
Diffstat (limited to 'extensions')
-rw-r--r--extensions/browser/BUILD.gn1
-rw-r--r--extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc8
-rw-r--r--extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h2
-rw-r--r--extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.cc15
-rw-r--r--extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h5
-rw-r--r--extensions/extensions.gyp1
6 files changed, 32 insertions, 0 deletions
diff --git a/extensions/browser/BUILD.gn b/extensions/browser/BUILD.gn
index 06ed416..036c7b8 100644
--- a/extensions/browser/BUILD.gn
+++ b/extensions/browser/BUILD.gn
@@ -370,6 +370,7 @@ source_set("browser") {
"guest_view/mime_handler_view/mime_handler_view_constants.h",
"guest_view/mime_handler_view/mime_handler_view_guest.h",
"guest_view/mime_handler_view/mime_handler_view_guest.cc",
+ "guest_view/mime_handler_view/mime_handler_view_guest_delegate.cc",
"guest_view/mime_handler_view/mime_handler_view_guest_delegate.h",
"guest_view/web_view/javascript_dialog_helper.cc",
"guest_view/web_view/javascript_dialog_helper.h",
diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
index ab25a52..9230f34c 100644
--- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
+++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
@@ -147,6 +147,14 @@ void MimeHandlerViewGuest::ContentsZoomChange(bool zoom_in) {
delegate_->ChangeZoom(zoom_in);
}
+bool MimeHandlerViewGuest::HandleContextMenu(
+ const content::ContextMenuParams& params) {
+ if (delegate_)
+ return delegate_->HandleContextMenu(web_contents(), params);
+
+ return false;
+}
+
void MimeHandlerViewGuest::HandleKeyboardEvent(
WebContents* source,
const content::NativeWebKeyboardEvent& event) {
diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
index d788cb5..f678d4e 100644
--- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
+++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
@@ -10,6 +10,7 @@
namespace content {
class WebContents;
+struct ContextMenuParams;
} // namespace content
namespace extensions {
@@ -47,6 +48,7 @@ class MimeHandlerViewGuest : public GuestView<MimeHandlerViewGuest>,
// WebContentsDelegate implementation.
void ContentsZoomChange(bool zoom_in) override;
+ bool HandleContextMenu(const content::ContextMenuParams& params) override;
void HandleKeyboardEvent(
content::WebContents* source,
const content::NativeWebKeyboardEvent& event) override;
diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.cc b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.cc
new file mode 100644
index 0000000..63b81b8
--- /dev/null
+++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.cc
@@ -0,0 +1,15 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h"
+
+namespace extensions {
+
+bool MimeHandlerViewGuestDelegate::HandleContextMenu(
+ content::WebContents* web_contents,
+ const content::ContextMenuParams& params) {
+ return false;
+}
+
+} // namespace extensions
diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h
index 53e8cc7..b9a6fe3 100644
--- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h
+++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h
@@ -9,6 +9,7 @@
namespace content {
class WebContents;
+struct ContextMenuParams;
} // namespace content
namespace extensions {
@@ -24,6 +25,10 @@ class MimeHandlerViewGuestDelegate {
// Attaches helpers upon initializing the WebContents.
virtual void AttachHelpers() {}
+ // Handles context menu, or returns false if unhandled.
+ virtual bool HandleContextMenu(content::WebContents* web_contents,
+ const content::ContextMenuParams& params);
+
// Request to change the zoom level of the top level page containing
// this view.
virtual void ChangeZoom(bool zoom_in) {}
diff --git a/extensions/extensions.gyp b/extensions/extensions.gyp
index 0c9a8ac..6122641 100644
--- a/extensions/extensions.gyp
+++ b/extensions/extensions.gyp
@@ -668,6 +668,7 @@
'browser/guest_view/guest_view.h',
'browser/guest_view/mime_handler_view/mime_handler_view_constants.cc',
'browser/guest_view/mime_handler_view/mime_handler_view_constants.h',
+ 'browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.cc',
'browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h',
'browser/guest_view/mime_handler_view/mime_handler_view_guest.cc',
'browser/guest_view/mime_handler_view/mime_handler_view_guest.h',