Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(786)

Side by Side Diff: chrome/renderer/printing/print_web_view_helper.cc

Issue 397713005: Ensure pdf plugin sends DidStartLoading() consistently (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | pdf/instance.cc » ('j') | pdf/instance.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/renderer/printing/print_web_view_helper.h" 5 #include "chrome/renderer/printing/print_web_view_helper.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 1685 matching lines...) Expand 10 before | Expand all | Expand 10 after
1696 // 1. PrintHostMsg_SetupScriptedPrintPreview blocks this call and JS by 1696 // 1. PrintHostMsg_SetupScriptedPrintPreview blocks this call and JS by
1697 // pumping messages here. 1697 // pumping messages here.
1698 // 2. PrintHostMsg_ShowScriptedPrintPreview shows preview once the 1698 // 2. PrintHostMsg_ShowScriptedPrintPreview shows preview once the
1699 // document has been loaded. 1699 // document has been loaded.
1700 is_scripted_preview_delayed_ = true; 1700 is_scripted_preview_delayed_ = true;
1701 if (is_loading_ && GetPlugin(print_preview_context_.source_frame())) { 1701 if (is_loading_ && GetPlugin(print_preview_context_.source_frame())) {
1702 // Wait for DidStopLoading. Plugins may not know the correct 1702 // Wait for DidStopLoading. Plugins may not know the correct
1703 // |is_modifiable| value until they are fully loaded, which occurs when 1703 // |is_modifiable| value until they are fully loaded, which occurs when
1704 // DidStopLoading() is called. Defer showing the preview until then. 1704 // DidStopLoading() is called. Defer showing the preview until then.
1705 } else { 1705 } else {
1706 // TODO(japhet): This delay is a terrible hack. See crbug.com/376969 1706 base::MessageLoop::current()->PostTask(
1707 // for the motivation.
1708 base::MessageLoop::current()->PostDelayedTask(
1709 FROM_HERE, 1707 FROM_HERE,
1710 base::Bind(&PrintWebViewHelper::ShowScriptedPrintPreview, 1708 base::Bind(&PrintWebViewHelper::ShowScriptedPrintPreview,
1711 weak_ptr_factory_.GetWeakPtr()), 1709 weak_ptr_factory_.GetWeakPtr()));
1712 base::TimeDelta::FromMilliseconds(100));
1713 } 1710 }
1714 IPC::SyncMessage* msg = 1711 IPC::SyncMessage* msg =
1715 new PrintHostMsg_SetupScriptedPrintPreview(routing_id()); 1712 new PrintHostMsg_SetupScriptedPrintPreview(routing_id());
1716 msg->EnableMessagePumping(); 1713 msg->EnableMessagePumping();
1717 Send(msg); 1714 Send(msg);
1718 is_scripted_preview_delayed_ = false; 1715 is_scripted_preview_delayed_ = false;
1719 return; 1716 return;
1720 } 1717 }
1721 case PRINT_PREVIEW_USER_INITIATED_ENTIRE_FRAME: { 1718 case PRINT_PREVIEW_USER_INITIATED_ENTIRE_FRAME: {
1722 break; 1719 break;
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
2025 } 2022 }
2026 2023
2027 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { 2024 void PrintWebViewHelper::PrintPreviewContext::ClearContext() {
2028 prep_frame_view_.reset(); 2025 prep_frame_view_.reset();
2029 metafile_.reset(); 2026 metafile_.reset();
2030 pages_to_render_.clear(); 2027 pages_to_render_.clear();
2031 error_ = PREVIEW_ERROR_NONE; 2028 error_ = PREVIEW_ERROR_NONE;
2032 } 2029 }
2033 2030
2034 } // namespace printing 2031 } // namespace printing
OLDNEW
« no previous file with comments | « no previous file | pdf/instance.cc » ('j') | pdf/instance.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698