summaryrefslogtreecommitdiffstats
path: root/chrome/common
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-09 04:30:30 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-09 04:30:30 +0000
commit1b9af295f86b846582f96277bdba05d98bc3d2f4 (patch)
tree1241b0a0dfbdac3d6b941198068b8c9f8d30c5d9 /chrome/common
parent3222e481e8bd6e542419d6d97ae26382f571e71d (diff)
downloadchromium_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/common')
-rw-r--r--chrome/common/render_messages.h44
-rw-r--r--chrome/common/render_messages_internal.h9
2 files changed, 47 insertions, 6 deletions
diff --git a/chrome/common/render_messages.h b/chrome/common/render_messages.h
index 8cd4280..b2fd1f9 100644
--- a/chrome/common/render_messages.h
+++ b/chrome/common/render_messages.h
@@ -397,6 +397,15 @@ struct ViewHostMsg_ShowPopup_Params {
std::vector<WebMenuItem> popup_items;
};
+// Parameters for the IPC message ViewHostMsg_ScriptedPrint
+struct ViewHostMsg_ScriptedPrint_Params {
+ int routing_id;
+ gfx::NativeViewId host_window_id;
+ int cookie;
+ int expected_pages_count;
+ bool has_selection;
+};
+
namespace IPC {
template <>
@@ -1913,6 +1922,41 @@ struct ParamTraits<ViewHostMsg_ShowPopup_Params> {
}
};
+// Traits for ViewHostMsg_ScriptedPrint_Params.
+template <>
+struct ParamTraits<ViewHostMsg_ScriptedPrint_Params> {
+ typedef ViewHostMsg_ScriptedPrint_Params param_type;
+ static void Write(Message* m, const param_type& p) {
+ WriteParam(m, p.routing_id);
+ WriteParam(m, p.host_window_id);
+ WriteParam(m, p.cookie);
+ WriteParam(m, p.expected_pages_count);
+ WriteParam(m, p.has_selection);
+ }
+ static bool Read(const Message* m, void** iter, param_type* p) {
+ return
+ ReadParam(m, iter, &p->routing_id) &&
+ ReadParam(m, iter, &p->host_window_id) &&
+ ReadParam(m, iter, &p->cookie) &&
+ ReadParam(m, iter, &p->expected_pages_count) &&
+ ReadParam(m, iter, &p->has_selection);
+ }
+ static void Log(const param_type& p, std::wstring* l) {
+ l->append(L"(");
+ LogParam(p.routing_id, l);
+ l->append(L", ");
+ LogParam(p.host_window_id, l);
+ l->append(L", ");
+ LogParam(p.cookie, l);
+ l->append(L", ");
+ LogParam(p.expected_pages_count, l);
+ l->append(L", ");
+ LogParam(p.has_selection, l);
+ l->append(L")");
+ }
+};
+
+
} // namespace IPC
diff --git a/chrome/common/render_messages_internal.h b/chrome/common/render_messages_internal.h
index a674ad2..5938bc1 100644
--- a/chrome/common/render_messages_internal.h
+++ b/chrome/common/render_messages_internal.h
@@ -1081,12 +1081,9 @@ IPC_BEGIN_MESSAGES(ViewHost)
// by javascript. This step is about showing UI to the user to select the
// final print settings. The output parameter is the same as
// ViewMsg_PrintPages which is executed implicitly.
- IPC_SYNC_MESSAGE_ROUTED4_1(ViewHostMsg_ScriptedPrint,
- gfx::NativeViewId /* host_window */,
- int /* cookie */,
- int /* expected_pages_count */,
- bool /* has_selection */,
- ViewMsg_PrintPages_Params /* settings choosen by
+ IPC_SYNC_MESSAGE_CONTROL1_1(ViewHostMsg_ScriptedPrint,
+ ViewHostMsg_ScriptedPrint_Params,
+ ViewMsg_PrintPages_Params /* settings choosen by
the user*/)
#endif // defined(OS_WIN)