1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "android_webview/native/aw_web_contents_view_delegate.h" 6 7 #include "content/public/browser/android/content_view_core.h" 8 #include "content/public/browser/web_contents.h" 9 #include "content/public/browser/web_contents_view.h" 10 #include "content/public/common/context_menu_params.h" 11 12 namespace android_webview { 13 14 // static Create(content::WebContents * web_contents)15content::WebContentsViewDelegate* AwWebContentsViewDelegate::Create( 16 content::WebContents* web_contents) { 17 return new AwWebContentsViewDelegate(web_contents); 18 } 19 AwWebContentsViewDelegate(content::WebContents * web_contents)20AwWebContentsViewDelegate::AwWebContentsViewDelegate( 21 content::WebContents* web_contents) 22 : web_contents_(web_contents) { 23 // Cannot instantiate web_contents_view_delegate_ here because 24 // AwContents::SetWebDelegate is not called yet. 25 } 26 ~AwWebContentsViewDelegate()27AwWebContentsViewDelegate::~AwWebContentsViewDelegate() {} 28 GetDragDestDelegate()29content::WebDragDestDelegate* AwWebContentsViewDelegate::GetDragDestDelegate() { 30 // GetDragDestDelegate is a pure virtual method from WebContentsViewDelegate 31 // and must have an implementation although android doesn't use it. 32 NOTREACHED(); 33 return NULL; 34 } 35 ShowContextMenu(const content::ContextMenuParams & params)36void AwWebContentsViewDelegate::ShowContextMenu( 37 const content::ContextMenuParams& params) { 38 // TODO(boliu): Large blocks of this function are identical with 39 // ChromeWebContentsViewDelegateAndroid::ShowContextMenu. De-dup this if 40 // possible. 41 42 // Display paste pop-up only when selection is empty and editable. 43 if (params.is_editable && params.selection_text.empty()) { 44 content::ContentViewCore* content_view_core = 45 content::ContentViewCore::FromWebContents(web_contents_); 46 if (content_view_core) { 47 content_view_core->ShowPastePopup(params.selection_start.x(), 48 params.selection_start.y()); 49 } 50 } 51 } 52 53 } // namespace android_webview 54