OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/printing/print_preview_message_handler.h" | 5 #include "chrome/browser/printing/print_preview_message_handler.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
11 #include "base/memory/ref_counted_memory.h" | 11 #include "base/memory/ref_counted_memory.h" |
12 #include "base/shared_memory.h" | 12 #include "base/shared_memory.h" |
13 #include "chrome/browser/browser_process.h" | 13 #include "chrome/browser/browser_process.h" |
14 #include "chrome/browser/printing/print_job_manager.h" | 14 #include "chrome/browser/printing/print_job_manager.h" |
15 #include "chrome/browser/printing/print_preview_tab_controller.h" | 15 #include "chrome/browser/printing/print_preview_tab_controller.h" |
16 #include "chrome/browser/printing/print_view_manager.h" | 16 #include "chrome/browser/printing/print_view_manager.h" |
17 #include "chrome/browser/printing/printer_query.h" | 17 #include "chrome/browser/printing/printer_query.h" |
18 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 18 #include "chrome/browser/ui/tab_contents/tab_contents.h" |
19 #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h" | 19 #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h" |
20 #include "chrome/common/print_messages.h" | 20 #include "chrome/common/print_messages.h" |
21 #include "content/public/browser/browser_thread.h" | 21 #include "content/public/browser/browser_thread.h" |
22 #include "content/public/browser/render_view_host.h" | 22 #include "content/public/browser/render_view_host.h" |
23 #include "content/public/browser/web_contents.h" | 23 #include "content/public/browser/web_contents.h" |
24 #include "content/public/browser/web_ui.h" | 24 #include "content/public/browser/web_ui.h" |
25 #include "printing/page_size_margins.h" | 25 #include "printing/page_size_margins.h" |
26 #include "printing/print_job_constants.h" | 26 #include "printing/print_job_constants.h" |
27 | 27 |
28 using content::BrowserThread; | 28 using content::BrowserThread; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 | 67 |
68 PrintPreviewMessageHandler::PrintPreviewMessageHandler( | 68 PrintPreviewMessageHandler::PrintPreviewMessageHandler( |
69 WebContents* web_contents) | 69 WebContents* web_contents) |
70 : content::WebContentsObserver(web_contents) { | 70 : content::WebContentsObserver(web_contents) { |
71 DCHECK(web_contents); | 71 DCHECK(web_contents); |
72 } | 72 } |
73 | 73 |
74 PrintPreviewMessageHandler::~PrintPreviewMessageHandler() { | 74 PrintPreviewMessageHandler::~PrintPreviewMessageHandler() { |
75 } | 75 } |
76 | 76 |
77 TabContentsWrapper* PrintPreviewMessageHandler::GetPrintPreviewTab() { | 77 TabContents* PrintPreviewMessageHandler::GetPrintPreviewTab() { |
78 PrintPreviewTabController* tab_controller = | 78 PrintPreviewTabController* tab_controller = |
79 PrintPreviewTabController::GetInstance(); | 79 PrintPreviewTabController::GetInstance(); |
80 if (!tab_controller) | 80 if (!tab_controller) |
81 return NULL; | 81 return NULL; |
82 | 82 |
83 return tab_controller->GetPrintPreviewForTab(tab_contents_wrapper()); | 83 return tab_controller->GetPrintPreviewForTab(tab_contents()); |
84 } | 84 } |
85 | 85 |
86 TabContentsWrapper* PrintPreviewMessageHandler::tab_contents_wrapper() { | 86 TabContents* PrintPreviewMessageHandler::tab_contents() { |
87 return TabContentsWrapper::GetCurrentWrapperForContents(web_contents()); | 87 return TabContents::GetCurrentWrapperForContents(web_contents()); |
88 } | 88 } |
89 | 89 |
90 PrintPreviewUI* PrintPreviewMessageHandler::GetPrintPreviewUI() { | 90 PrintPreviewUI* PrintPreviewMessageHandler::GetPrintPreviewUI() { |
91 TabContentsWrapper* tab = GetPrintPreviewTab(); | 91 TabContents* tab = GetPrintPreviewTab(); |
92 if (!tab || !tab->web_contents()->GetWebUI()) | 92 if (!tab || !tab->web_contents()->GetWebUI()) |
93 return NULL; | 93 return NULL; |
94 return static_cast<PrintPreviewUI*>( | 94 return static_cast<PrintPreviewUI*>( |
95 tab->web_contents()->GetWebUI()->GetController()); | 95 tab->web_contents()->GetWebUI()->GetController()); |
96 } | 96 } |
97 | 97 |
98 void PrintPreviewMessageHandler::OnRequestPrintPreview( | 98 void PrintPreviewMessageHandler::OnRequestPrintPreview( |
99 bool source_is_modifiable, bool webnode_only) { | 99 bool source_is_modifiable, bool webnode_only) { |
100 TabContentsWrapper* tab = tab_contents_wrapper(); | 100 TabContents* tab = tab_contents(); |
101 if (webnode_only) | 101 if (webnode_only) |
102 tab->print_view_manager()->PrintPreviewForWebNode(); | 102 tab->print_view_manager()->PrintPreviewForWebNode(); |
103 PrintPreviewTabController::PrintPreview(tab); | 103 PrintPreviewTabController::PrintPreview(tab); |
104 PrintPreviewUI::SetSourceIsModifiable(GetPrintPreviewTab(), | 104 PrintPreviewUI::SetSourceIsModifiable(GetPrintPreviewTab(), |
105 source_is_modifiable); | 105 source_is_modifiable); |
106 } | 106 } |
107 | 107 |
108 void PrintPreviewMessageHandler::OnDidGetPreviewPageCount( | 108 void PrintPreviewMessageHandler::OnDidGetPreviewPageCount( |
109 const PrintHostMsg_DidGetPreviewPageCount_Params& params) { | 109 const PrintHostMsg_DidGetPreviewPageCount_Params& params) { |
110 if (params.page_count <= 0) { | 110 if (params.page_count <= 0) { |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewScalingDisabled, | 244 IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewScalingDisabled, |
245 OnPrintPreviewScalingDisabled) | 245 OnPrintPreviewScalingDisabled) |
246 IPC_MESSAGE_UNHANDLED(handled = false) | 246 IPC_MESSAGE_UNHANDLED(handled = false) |
247 IPC_END_MESSAGE_MAP() | 247 IPC_END_MESSAGE_MAP() |
248 return handled; | 248 return handled; |
249 } | 249 } |
250 | 250 |
251 void PrintPreviewMessageHandler::NavigateToPendingEntry( | 251 void PrintPreviewMessageHandler::NavigateToPendingEntry( |
252 const GURL& url, | 252 const GURL& url, |
253 NavigationController::ReloadType reload_type) { | 253 NavigationController::ReloadType reload_type) { |
254 TabContentsWrapper* tab = tab_contents_wrapper(); | 254 TabContents* tab = tab_contents(); |
255 TabContentsWrapper* preview_tab = GetPrintPreviewTab(); | 255 TabContents* preview_tab = GetPrintPreviewTab(); |
256 if (tab == preview_tab) { | 256 if (tab == preview_tab) { |
257 // Cloud print sign-in reloads the page. | 257 // Cloud print sign-in reloads the page. |
258 DCHECK(PrintPreviewTabController::IsPrintPreviewURL(url)); | 258 DCHECK(PrintPreviewTabController::IsPrintPreviewURL(url)); |
259 DCHECK_EQ(NavigationController::RELOAD, reload_type); | 259 DCHECK_EQ(NavigationController::RELOAD, reload_type); |
260 return; | 260 return; |
261 } | 261 } |
262 // If |tab| is navigating and it has a print preview tab, notify |tab| to | 262 // If |tab| is navigating and it has a print preview tab, notify |tab| to |
263 // consider print preview done so it unfreezes the renderer in the case of | 263 // consider print preview done so it unfreezes the renderer in the case of |
264 // window.print(). | 264 // window.print(). |
265 if (preview_tab) | 265 if (preview_tab) |
266 tab->print_view_manager()->PrintPreviewDone(); | 266 tab->print_view_manager()->PrintPreviewDone(); |
267 } | 267 } |
268 | 268 |
269 } // namespace printing | 269 } // namespace printing |
OLD | NEW |