summaryrefslogtreecommitdiffstats
path: root/android_webview
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-10 19:08:41 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-10 19:08:41 +0000
commit1a6d011cc0b7b9cc19d4c95bf8103d8fe715439a (patch)
treea089a9b9888661ea0dcf1c197434d3a2fd3896e3 /android_webview
parentc4b4cfa1aae4d28a36a7e49015395ea777674034 (diff)
downloadchromium_src-1a6d011cc0b7b9cc19d4c95bf8103d8fe715439a.zip
chromium_src-1a6d011cc0b7b9cc19d4c95bf8103d8fe715439a.tar.gz
chromium_src-1a6d011cc0b7b9cc19d4c95bf8103d8fe715439a.tar.bz2
Move GetContextMenuNode from RenderView to RenderFrame.
BUG=304341 R=boliu@chromium.org, nasko@chromium.org, sgurun@chromium.org Review URL: https://codereview.chromium.org/191293006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256003 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview')
-rw-r--r--android_webview/android_webview.gyp2
-rw-r--r--android_webview/common/print_messages.h4
-rw-r--r--android_webview/renderer/aw_content_renderer_client.cc2
-rw-r--r--android_webview/renderer/aw_render_frame_observer.cc38
-rw-r--r--android_webview/renderer/aw_render_frame_observer.h31
-rw-r--r--android_webview/renderer/print_web_view_helper.cc6
-rw-r--r--android_webview/renderer/print_web_view_helper.h23
7 files changed, 79 insertions, 27 deletions
diff --git a/android_webview/android_webview.gyp b/android_webview/android_webview.gyp
index b685bf3..478eb92 100644
--- a/android_webview/android_webview.gyp
+++ b/android_webview/android_webview.gyp
@@ -217,6 +217,8 @@
'renderer/aw_key_systems.h',
'renderer/aw_permission_client.cc',
'renderer/aw_permission_client.h',
+ 'renderer/aw_render_frame_observer.cc',
+ 'renderer/aw_render_frame_observer.h',
'renderer/aw_render_process_observer.cc',
'renderer/aw_render_process_observer.h',
'renderer/aw_render_view_ext.cc',
diff --git a/android_webview/common/print_messages.h b/android_webview/common/print_messages.h
index 241be60..32d5790b 100644
--- a/android_webview/common/print_messages.h
+++ b/android_webview/common/print_messages.h
@@ -281,8 +281,8 @@ IPC_STRUCT_END()
// Tells the render view to initiate print preview for the entire document.
IPC_MESSAGE_ROUTED1(PrintMsg_InitiatePrintPreview, bool /* selection_only */)
-// Tells the render view to initiate printing or print preview for a particular
-// node, depending on which mode the render view is in.
+// Tells the render frame to initiate printing or print preview for a particular
+// node, depending on which mode the render frame is in.
IPC_MESSAGE_ROUTED0(PrintMsg_PrintNodeUnderContextMenu)
// Tells the renderer to print the print preview tab's PDF plugin without
diff --git a/android_webview/renderer/aw_content_renderer_client.cc b/android_webview/renderer/aw_content_renderer_client.cc
index 7001aff..42fc18c 100644
--- a/android_webview/renderer/aw_content_renderer_client.cc
+++ b/android_webview/renderer/aw_content_renderer_client.cc
@@ -9,6 +9,7 @@
#include "android_webview/common/url_constants.h"
#include "android_webview/renderer/aw_key_systems.h"
#include "android_webview/renderer/aw_permission_client.h"
+#include "android_webview/renderer/aw_render_frame_observer.h"
#include "android_webview/renderer/aw_render_view_ext.h"
#include "android_webview/renderer/print_web_view_helper.h"
#include "base/message_loop/message_loop.h"
@@ -118,6 +119,7 @@ bool AwContentRendererClient::HandleNavigation(
void AwContentRendererClient::RenderFrameCreated(
content::RenderFrame* render_frame) {
new AwPermissionClient(render_frame);
+ new AwRenderFrameObserver(render_frame);
// TODO(jam): when the frame tree moves into content and parent() works at
// RenderFrame construction, simplify this by just checking parent().
diff --git a/android_webview/renderer/aw_render_frame_observer.cc b/android_webview/renderer/aw_render_frame_observer.cc
new file mode 100644
index 0000000..e27ff73
--- /dev/null
+++ b/android_webview/renderer/aw_render_frame_observer.cc
@@ -0,0 +1,38 @@
+// 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 "android_webview/renderer/aw_render_frame_observer.h"
+
+#include "android_webview/common/print_messages.h"
+#include "android_webview/renderer/print_web_view_helper.h"
+#include "content/public/renderer/render_frame.h"
+
+namespace android_webview {
+
+AwRenderFrameObserver::AwRenderFrameObserver(content::RenderFrame* render_frame)
+ : content::RenderFrameObserver(render_frame) {
+}
+
+AwRenderFrameObserver::~AwRenderFrameObserver() {
+}
+
+bool AwRenderFrameObserver::OnMessageReceived(const IPC::Message& message) {
+ bool handled = true;
+ IPC_BEGIN_MESSAGE_MAP(AwRenderFrameObserver, message)
+ IPC_MESSAGE_HANDLER(PrintMsg_PrintNodeUnderContextMenu,
+ OnPrintNodeUnderContextMenu)
+ IPC_MESSAGE_UNHANDLED(handled = false)
+ IPC_END_MESSAGE_MAP()
+
+ return handled;
+}
+
+void AwRenderFrameObserver::OnPrintNodeUnderContextMenu() {
+ printing::PrintWebViewHelper* helper =
+ printing::PrintWebViewHelper::Get(render_frame()->GetRenderView());
+ if (helper)
+ helper->PrintNode(render_frame()->GetContextMenuNode());
+}
+
+} // namespace android_webview
diff --git a/android_webview/renderer/aw_render_frame_observer.h b/android_webview/renderer/aw_render_frame_observer.h
new file mode 100644
index 0000000..9bc7d4f
--- /dev/null
+++ b/android_webview/renderer/aw_render_frame_observer.h
@@ -0,0 +1,31 @@
+// 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.
+
+#ifndef ANDROID_WEBVIEW_RENDERER_AW_RENDER_FRAME_OBSERVER_H_
+#define ANDROID_WEBVIEW_RENDERER_AW_RENDER_FRAME_OBSERVER_H_
+
+#include "content/public/renderer/render_frame_observer.h"
+
+namespace android_webview {
+
+// Android WebView implementation of blink::WebPermissionClient.
+class AwRenderFrameObserver : public content::RenderFrameObserver {
+ public:
+ explicit AwRenderFrameObserver(content::RenderFrame* render_view);
+
+ private:
+ virtual ~AwRenderFrameObserver();
+
+ // RenderFrameObserver implementation.
+ virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
+
+ // IPC handlers
+ void OnPrintNodeUnderContextMenu();
+
+ DISALLOW_COPY_AND_ASSIGN(AwRenderFrameObserver);
+};
+
+} // namespace android_webview
+
+#endif // ANDROID_WEBVIEW_RENDERER_AW_RENDER_FRAME_OBSERVER_H_
diff --git a/android_webview/renderer/print_web_view_helper.cc b/android_webview/renderer/print_web_view_helper.cc
index 6407416..829a6e9 100644
--- a/android_webview/renderer/print_web_view_helper.cc
+++ b/android_webview/renderer/print_web_view_helper.cc
@@ -810,8 +810,6 @@ bool PrintWebViewHelper::OnMessageReceived(const IPC::Message& message) {
IPC_MESSAGE_HANDLER(PrintMsg_PrintPages, OnPrintPages)
IPC_MESSAGE_HANDLER(PrintMsg_PrintForSystemDialog, OnPrintForSystemDialog)
IPC_MESSAGE_HANDLER(PrintMsg_InitiatePrintPreview, OnInitiatePrintPreview)
- IPC_MESSAGE_HANDLER(PrintMsg_PrintNodeUnderContextMenu,
- OnPrintNodeUnderContextMenu)
IPC_MESSAGE_HANDLER(PrintMsg_PrintPreview, OnPrintPreview)
IPC_MESSAGE_HANDLER(PrintMsg_PrintForPrintPreview, OnPrintForPrintPreview)
IPC_MESSAGE_HANDLER(PrintMsg_PrintingDone, OnPrintingDone)
@@ -1158,10 +1156,6 @@ void PrintWebViewHelper::SetScriptedPrintBlocked(bool blocked) {
is_scripted_printing_blocked_ = blocked;
}
-void PrintWebViewHelper::OnPrintNodeUnderContextMenu() {
- PrintNode(render_view()->GetContextMenuNode());
-}
-
void PrintWebViewHelper::OnInitiatePrintPreview(bool selection_only) {
DCHECK(is_preview_enabled_);
blink::WebFrame* frame = NULL;
diff --git a/android_webview/renderer/print_web_view_helper.h b/android_webview/renderer/print_web_view_helper.h
index faa10f3..1835584 100644
--- a/android_webview/renderer/print_web_view_helper.h
+++ b/android_webview/renderer/print_web_view_helper.h
@@ -119,12 +119,12 @@ class PrintWebViewHelper
virtual void DidStopLoading() OVERRIDE;
// Message handlers ---------------------------------------------------------
-
- // Print the document.
void OnPrintPages();
-
- // Print the document with the print preview frame/node.
void OnPrintForSystemDialog();
+ void OnInitiatePrintPreview(bool selection_only);
+ void OnPrintPreview(const base::DictionaryValue& settings);
+ void OnPrintForPrintPreview(const base::DictionaryValue& job_settings);
+ void OnPrintingDone(bool success);
// Get |page_size| and |content_area| information from
// |page_layout_in_points|.
@@ -158,12 +158,6 @@ class PrintWebViewHelper
const base::DictionaryValue& job_settings,
const PrintMsg_Print_Params& params);
- // Initiate print preview.
- void OnInitiatePrintPreview(bool selection_only);
-
- // Start the process of generating a print preview using |settings|.
- void OnPrintPreview(const base::DictionaryValue& settings);
-
// Prepare frame for creating preview document.
void PrepareFrameForPreviewDocument();
@@ -181,15 +175,6 @@ class PrintWebViewHelper
// Finalize the print ready preview document.
bool FinalizePrintReadyDocument();
- // Print / preview the node under the context menu.
- void OnPrintNodeUnderContextMenu();
-
- // Print the pages for print preview. Do not display the native print dialog
- // for user settings. |job_settings| has new print job settings values.
- void OnPrintForPrintPreview(const base::DictionaryValue& job_settings);
-
- void OnPrintingDone(bool success);
-
// Enable/Disable window.print calls. If |blocked| is true window.print
// calls will silently fail. Call with |blocked| set to false to reenable.
void SetScriptedPrintBlocked(bool blocked);