| Index: chrome/common/chrome_content_client.cc
|
| ===================================================================
|
| --- chrome/common/chrome_content_client.cc (revision 96778)
|
| +++ chrome/common/chrome_content_client.cc (working copy)
|
| @@ -252,6 +252,13 @@
|
| ::CloseHandle(process);
|
| return true;
|
| }
|
| +
|
| +// Must be dynamically loaded to avoid startup failures on Win XP.
|
| +typedef BOOL (WINAPI *ChangeWindowMessageFilterFunction)(
|
| + UINT message,
|
| + DWORD flag);
|
| +ChangeWindowMessageFilterFunction g_ChangeWindowMessageFilter;
|
| +
|
| #endif // OS_WIN
|
|
|
| } // namespace
|
| @@ -362,6 +369,18 @@
|
| policy->SetJobLevel(sandbox::JOB_UNPROTECTED, 0);
|
| policy->SetTokenLevel(sandbox::USER_RESTRICTED_SAME_ACCESS,
|
| sandbox::USER_INTERACTIVE);
|
| + // Allow the Flash plugin to forward some messages back to Chrome.
|
| + if (base::win::GetVersion() == base::win::VERSION_VISTA) {
|
| + if (!g_ChangeWindowMessageFilter) {
|
| + g_ChangeWindowMessageFilter =
|
| + reinterpret_cast<ChangeWindowMessageFilterFunction>(
|
| + ::GetProcAddress(::GetModuleHandle(L"user32.dll"),
|
| + "ChangeWindowMessageFilter"));
|
| + }
|
| + // Per-window message filters required on Win7 or later must be added to:
|
| + // render_widget_host_view_win.cc RenderWidgetHostViewWin::ReparentWindow
|
| + g_ChangeWindowMessageFilter(WM_MOUSEWHEEL, MSGFLT_ADD);
|
| + }
|
| policy->SetIntegrityLevel(sandbox::INTEGRITY_LEVEL_LOW);
|
| } else {
|
| // Could not start the broker, use a very weak policy instead.
|
|
|