diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-09 04:30:30 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-09 04:30:30 +0000 |
commit | 1b9af295f86b846582f96277bdba05d98bc3d2f4 (patch) | |
tree | 1241b0a0dfbdac3d6b941198068b8c9f8d30c5d9 /chrome/renderer/print_web_view_helper.cc | |
parent | 3222e481e8bd6e542419d6d97ae26382f571e71d (diff) | |
download | chromium_src-1b9af295f86b846582f96277bdba05d98bc3d2f4.zip chromium_src-1b9af295f86b846582f96277bdba05d98bc3d2f4.tar.gz chromium_src-1b9af295f86b846582f96277bdba05d98bc3d2f4.tar.bz2 |
Windowed plugins like Flash would cause the hung plugin dialog to show up when the print dialog was displayed.
The proposed fix is to signal the modal dialog event which would ensure that the renderer and plugins both pump
messages when the print dialog is displayed.
This fixes http://code.google.com/p/chromium/issues/detail?id=13804
Bug=13804
Review URL: http://codereview.chromium.org/155133
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20243 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/print_web_view_helper.cc')
-rw-r--r-- | chrome/renderer/print_web_view_helper.cc | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/chrome/renderer/print_web_view_helper.cc b/chrome/renderer/print_web_view_helper.cc index 966a9e0..aac98ac 100644 --- a/chrome/renderer/print_web_view_helper.cc +++ b/chrome/renderer/print_web_view_helper.cc @@ -157,15 +157,25 @@ void PrintWebViewHelper::Print(WebFrame* frame, bool script_initiated) { // Ask the browser to show UI to retrieve the final print settings. ViewMsg_PrintPages_Params print_settings; + + ViewHostMsg_ScriptedPrint_Params params; + + // The routing id is sent across as it is needed to look up the + // corresponding RenderViewHost instance to signal and reset the + // pump messages event. + params.routing_id = routing_id(); // host_window_ may be NULL at this point if the current window is a popup // and the print() command has been issued from the parent. The receiver // of this message has to deal with this. - msg = new ViewHostMsg_ScriptedPrint(routing_id(), - render_view_->host_window(), - default_settings.document_cookie, - expected_pages_count, - frame->HasSelection(), + params.host_window_id = render_view_->host_window(); + params.cookie = default_settings.document_cookie; + params.has_selection = frame->HasSelection(); + params.expected_pages_count = expected_pages_count; + + msg = new ViewHostMsg_ScriptedPrint(params, &print_settings); + msg->set_pump_messages_event(render_view_->modal_dialog_event()); + if (Send(msg)) { msg = NULL; |