diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-10 19:08:41 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-10 19:08:41 +0000 |
commit | 1a6d011cc0b7b9cc19d4c95bf8103d8fe715439a (patch) | |
tree | a089a9b9888661ea0dcf1c197434d3a2fd3896e3 /android_webview | |
parent | c4b4cfa1aae4d28a36a7e49015395ea777674034 (diff) | |
download | chromium_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.gyp | 2 | ||||
-rw-r--r-- | android_webview/common/print_messages.h | 4 | ||||
-rw-r--r-- | android_webview/renderer/aw_content_renderer_client.cc | 2 | ||||
-rw-r--r-- | android_webview/renderer/aw_render_frame_observer.cc | 38 | ||||
-rw-r--r-- | android_webview/renderer/aw_render_frame_observer.h | 31 | ||||
-rw-r--r-- | android_webview/renderer/print_web_view_helper.cc | 6 | ||||
-rw-r--r-- | android_webview/renderer/print_web_view_helper.h | 23 |
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); |