Index: extensions/browser/guest_view/web_view/web_view_guest.cc |
diff --git a/extensions/browser/guest_view/web_view/web_view_guest.cc b/extensions/browser/guest_view/web_view/web_view_guest.cc |
index 9e60bfddef4d22bf074249c6b43c9b6dcf436630..fce1b6d0dd7301210ed877a2f3b7f2794649e4fe 100644 |
--- a/extensions/browser/guest_view/web_view/web_view_guest.cc |
+++ b/extensions/browser/guest_view/web_view/web_view_guest.cc |
@@ -443,6 +443,11 @@ void WebViewGuest::HandleKeyboardEvent( |
GuestViewBase::HandleKeyboardEvent(source, event); |
} |
+bool WebViewGuest::PreHandleGestureEvent(content::WebContents* source, |
+ const blink::WebGestureEvent& event) { |
+ return !allow_scaling_ && GuestViewBase::PreHandleGestureEvent(source, event); |
+} |
+ |
void WebViewGuest::LoadProgressChanged(content::WebContents* source, |
double progress) { |
scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); |
@@ -638,6 +643,7 @@ WebViewGuest::WebViewGuest(content::WebContents* owner_web_contents) |
guest_opaque_(true), |
javascript_dialog_helper_(this), |
current_zoom_factor_(1.0), |
+ allow_scaling_(false), |
weak_ptr_factory_(this) { |
web_view_guest_delegate_.reset( |
ExtensionsAPIClient::Get()->CreateWebViewGuestDelegate(this)); |
@@ -966,6 +972,10 @@ void WebViewGuest::ApplyAttributes(const base::DictionaryValue& params) { |
// there is a RenderWidgetHostView available. |
SetAllowTransparency(allow_transparency); |
+ bool allow_scaling = false; |
+ params.GetBoolean(webview::kAttributeAllowScaling, &allow_scaling); |
+ SetAllowScaling(allow_scaling); |
+ |
bool is_pending_new_window = false; |
if (GetOpener()) { |
// We need to do a navigation here if the target URL has changed between |
@@ -1044,6 +1054,10 @@ void WebViewGuest::SetAllowTransparency(bool allow) { |
} |
} |
+void WebViewGuest::SetAllowScaling(bool allow) { |
+ allow_scaling_ = allow; |
+} |
+ |
bool WebViewGuest::LoadDataWithBaseURL(const std::string& data_url, |
const std::string& base_url, |
const std::string& virtual_url, |