| 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 "components/printing/renderer/print_web_view_helper.h" | 5 #include "components/printing/renderer/print_web_view_helper.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <tuple> | 10 #include <tuple> |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 165 // Do this before shutting down V8 in RenderViewTest::TearDown(). | 165 // Do this before shutting down V8 in RenderViewTest::TearDown(). |
| 166 // http://crbug.com/328552 | 166 // http://crbug.com/328552 |
| 167 __lsan_do_leak_check(); | 167 __lsan_do_leak_check(); |
| 168 #endif | 168 #endif |
| 169 | 169 |
| 170 content::RenderViewTest::TearDown(); | 170 content::RenderViewTest::TearDown(); |
| 171 } | 171 } |
| 172 | 172 |
| 173 void PrintWithJavaScript() { | 173 void PrintWithJavaScript() { |
| 174 ExecuteJavaScriptForTests("window.print();"); | 174 ExecuteJavaScriptForTests("window.print();"); |
| 175 ProcessPendingMessages(); | 175 base::RunLoop().RunUntilIdle(); |
| 176 } | 176 } |
| 177 | 177 |
| 178 // The renderer should be done calculating the number of rendered pages | 178 // The renderer should be done calculating the number of rendered pages |
| 179 // according to the specified settings defined in the mock render thread. | 179 // according to the specified settings defined in the mock render thread. |
| 180 // Verify the page count is correct. | 180 // Verify the page count is correct. |
| 181 void VerifyPageCount(int expected_count) { | 181 void VerifyPageCount(int expected_count) { |
| 182 #if defined(OS_CHROMEOS) | 182 #if defined(OS_CHROMEOS) |
| 183 // The DidGetPrintedPagesCount message isn't sent on ChromeOS. Right now we | 183 // The DidGetPrintedPagesCount message isn't sent on ChromeOS. Right now we |
| 184 // always print all pages, and there are checks to that effect built into | 184 // always print all pages, and there are checks to that effect built into |
| 185 // the print code. | 185 // the print code. |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 if (did_print) { | 235 if (did_print) { |
| 236 PrintHostMsg_DidPrintPage::Param post_did_print_page_param; | 236 PrintHostMsg_DidPrintPage::Param post_did_print_page_param; |
| 237 PrintHostMsg_DidPrintPage::Read(print_msg, &post_did_print_page_param); | 237 PrintHostMsg_DidPrintPage::Read(print_msg, &post_did_print_page_param); |
| 238 EXPECT_EQ(0, std::get<0>(post_did_print_page_param).page_number); | 238 EXPECT_EQ(0, std::get<0>(post_did_print_page_param).page_number); |
| 239 } | 239 } |
| 240 } | 240 } |
| 241 | 241 |
| 242 #if BUILDFLAG(ENABLE_BASIC_PRINTING) | 242 #if BUILDFLAG(ENABLE_BASIC_PRINTING) |
| 243 void OnPrintPages() { | 243 void OnPrintPages() { |
| 244 GetPrintWebViewHelper()->OnPrintPages(); | 244 GetPrintWebViewHelper()->OnPrintPages(); |
| 245 ProcessPendingMessages(); | 245 base::RunLoop().RunUntilIdle(); |
| 246 } | 246 } |
| 247 #endif // BUILDFLAG(ENABLE_BASIC_PRINTING) | 247 #endif // BUILDFLAG(ENABLE_BASIC_PRINTING) |
| 248 | 248 |
| 249 #if BUILDFLAG(ENABLE_PRINT_PREVIEW) | 249 #if BUILDFLAG(ENABLE_PRINT_PREVIEW) |
| 250 void VerifyPreviewRequest(bool expect_request) { | 250 void VerifyPreviewRequest(bool expect_request) { |
| 251 const IPC::Message* print_msg = | 251 const IPC::Message* print_msg = |
| 252 render_thread_->sink().GetUniqueMessageMatching( | 252 render_thread_->sink().GetUniqueMessageMatching( |
| 253 PrintHostMsg_SetupScriptedPrintPreview::ID); | 253 PrintHostMsg_SetupScriptedPrintPreview::ID); |
| 254 bool got_preview_request = !!print_msg; | 254 bool got_preview_request = !!print_msg; |
| 255 EXPECT_EQ(expect_request, got_preview_request); | 255 EXPECT_EQ(expect_request, got_preview_request); |
| 256 } | 256 } |
| 257 | 257 |
| 258 void OnPrintPreview(const base::DictionaryValue& dict) { | 258 void OnPrintPreview(const base::DictionaryValue& dict) { |
| 259 PrintWebViewHelper* print_web_view_helper = GetPrintWebViewHelper(); | 259 PrintWebViewHelper* print_web_view_helper = GetPrintWebViewHelper(); |
| 260 print_web_view_helper->OnInitiatePrintPreview(false); | 260 print_web_view_helper->OnInitiatePrintPreview(false); |
| 261 base::RunLoop run_loop; | 261 base::RunLoop run_loop; |
| 262 DidPreviewPageListener filter(&run_loop); | 262 DidPreviewPageListener filter(&run_loop); |
| 263 render_thread_->sink().AddFilter(&filter); | 263 render_thread_->sink().AddFilter(&filter); |
| 264 print_web_view_helper->OnPrintPreview(dict); | 264 print_web_view_helper->OnPrintPreview(dict); |
| 265 run_loop.Run(); | 265 run_loop.Run(); |
| 266 render_thread_->sink().RemoveFilter(&filter); | 266 render_thread_->sink().RemoveFilter(&filter); |
| 267 } | 267 } |
| 268 #endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) | 268 #endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) |
| 269 | 269 |
| 270 #if BUILDFLAG(ENABLE_BASIC_PRINTING) | 270 #if BUILDFLAG(ENABLE_BASIC_PRINTING) |
| 271 void OnPrintForPrintPreview(const base::DictionaryValue& dict) { | 271 void OnPrintForPrintPreview(const base::DictionaryValue& dict) { |
| 272 GetPrintWebViewHelper()->OnPrintForPrintPreview(dict); | 272 GetPrintWebViewHelper()->OnPrintForPrintPreview(dict); |
| 273 ProcessPendingMessages(); | 273 base::RunLoop().RunUntilIdle(); |
| 274 } | 274 } |
| 275 #endif // BUILDFLAG(ENABLE_BASIC_PRINTING) | 275 #endif // BUILDFLAG(ENABLE_BASIC_PRINTING) |
| 276 | 276 |
| 277 PrintWebViewHelper* GetPrintWebViewHelper() { | 277 PrintWebViewHelper* GetPrintWebViewHelper() { |
| 278 return PrintWebViewHelper::Get( | 278 return PrintWebViewHelper::Get( |
| 279 content::RenderFrame::FromWebFrame(GetMainFrame())); | 279 content::RenderFrame::FromWebFrame(GetMainFrame())); |
| 280 } | 280 } |
| 281 | 281 |
| 282 // Naked pointer as ownership is with content::RenderViewTest::render_thread_. | 282 // Naked pointer as ownership is with content::RenderViewTest::render_thread_. |
| 283 PrintMockRenderThread* print_render_thread_; | 283 PrintMockRenderThread* print_render_thread_; |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 blink::WebMouseEvent mouse_event(blink::WebInputEvent::kMouseDown, | 358 blink::WebMouseEvent mouse_event(blink::WebInputEvent::kMouseDown, |
| 359 blink::WebInputEvent::kNoModifiers, | 359 blink::WebInputEvent::kNoModifiers, |
| 360 blink::WebInputEvent::kTimeStampForTesting); | 360 blink::WebInputEvent::kTimeStampForTesting); |
| 361 mouse_event.button = blink::WebMouseEvent::Button::kLeft; | 361 mouse_event.button = blink::WebMouseEvent::Button::kLeft; |
| 362 mouse_event.SetPositionInWidget(bounds.CenterPoint().x(), | 362 mouse_event.SetPositionInWidget(bounds.CenterPoint().x(), |
| 363 bounds.CenterPoint().y()); | 363 bounds.CenterPoint().y()); |
| 364 mouse_event.click_count = 1; | 364 mouse_event.click_count = 1; |
| 365 SendWebMouseEvent(mouse_event); | 365 SendWebMouseEvent(mouse_event); |
| 366 mouse_event.SetType(blink::WebInputEvent::kMouseUp); | 366 mouse_event.SetType(blink::WebInputEvent::kMouseUp); |
| 367 SendWebMouseEvent(mouse_event); | 367 SendWebMouseEvent(mouse_event); |
| 368 ProcessPendingMessages(); | 368 base::RunLoop().RunUntilIdle(); |
| 369 | 369 |
| 370 VerifyPageCount(1); | 370 VerifyPageCount(1); |
| 371 VerifyPagesPrinted(true); | 371 VerifyPagesPrinted(true); |
| 372 } | 372 } |
| 373 | 373 |
| 374 // Duplicate of OnPrintPagesTest only using javascript to print. | 374 // Duplicate of OnPrintPagesTest only using javascript to print. |
| 375 TEST_F(MAYBE_PrintWebViewHelperTest, PrintWithJavascript) { | 375 TEST_F(MAYBE_PrintWebViewHelperTest, PrintWithJavascript) { |
| 376 PrintWithJavaScript(); | 376 PrintWithJavaScript(); |
| 377 | 377 |
| 378 VerifyPageCount(1); | 378 VerifyPageCount(1); |
| (...skipping 775 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1154 | 1154 |
| 1155 VerifyPrintFailed(true); | 1155 VerifyPrintFailed(true); |
| 1156 VerifyPagesPrinted(false); | 1156 VerifyPagesPrinted(false); |
| 1157 } | 1157 } |
| 1158 #endif // BUILDFLAG(ENABLE_BASIC_PRINTING) | 1158 #endif // BUILDFLAG(ENABLE_BASIC_PRINTING) |
| 1159 #endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) | 1159 #endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) |
| 1160 | 1160 |
| 1161 #endif // !defined(OS_CHROMEOS) | 1161 #endif // !defined(OS_CHROMEOS) |
| 1162 | 1162 |
| 1163 } // namespace printing | 1163 } // namespace printing |
| OLD | NEW |