1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// found in the LICENSE file.
4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "android_webview/renderer/print_render_frame_observer.h"
6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "android_webview/common/print_messages.h"
8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "android_webview/renderer/print_web_view_helper.h"
9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "content/public/renderer/render_frame.h"
10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)namespace android_webview {
12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)PrintRenderFrameObserver::PrintRenderFrameObserver(
1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    content::RenderFrame* render_frame)
15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    : content::RenderFrameObserver(render_frame) {
16a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)PrintRenderFrameObserver::~PrintRenderFrameObserver() {
19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
20a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)bool PrintRenderFrameObserver::OnMessageReceived(
2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    const IPC::Message& message) {
23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  bool handled = true;
2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  IPC_BEGIN_MESSAGE_MAP(PrintRenderFrameObserver, message)
25a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    IPC_MESSAGE_HANDLER(PrintMsg_PrintNodeUnderContextMenu,
26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                        OnPrintNodeUnderContextMenu)
27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    IPC_MESSAGE_UNHANDLED(handled = false)
28a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  IPC_END_MESSAGE_MAP()
29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return handled;
31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)void PrintRenderFrameObserver::OnPrintNodeUnderContextMenu() {
34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  printing::PrintWebViewHelper* helper =
35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      printing::PrintWebViewHelper::Get(render_frame()->GetRenderView());
36a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  if (helper)
37a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    helper->PrintNode(render_frame()->GetContextMenuNode());
38a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
39a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}  // namespace android_webview
41