Bug 626975 - Trap Google Earth out-of-process messages destined for plugin instances. Prevents spurious incalls on the browser which violate our rpc rules. r=bent
authorJim Mathies <jmathies@mozilla.com>
Wed, 27 Jul 2011 17:15:25 -0500
changeset 74224 967794e38c94e48460f6dffc679a383836be9475
parent 74223 7fe1746564a74c17935c466143ea32af66dc3e70
child 74225 cad13a541e30cf92a387dc584f08e5e4ea6d0f30
push id235
push userbzbarsky@mozilla.com
push dateTue, 27 Sep 2011 17:13:04 +0000
treeherdermozilla-beta@2d1e082d176a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbent
bugs626975
milestone8.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 626975 - Trap Google Earth out-of-process messages destined for plugin instances. Prevents spurious incalls on the browser which violate our rpc rules. r=bent
ipc/glue/WindowsMessageLoop.cpp
--- a/ipc/glue/WindowsMessageLoop.cpp
+++ b/ipc/glue/WindowsMessageLoop.cpp
@@ -391,16 +391,23 @@ WindowIsDeferredWindow(HWND hWnd)
   // Plugin windows that can trigger ipc calls in child:
   // 'ShockwaveFlashFullScreen' - flash fullscreen window
   // 'AGFullScreenWinClass' - silverlight fullscreen window
   if (className.EqualsLiteral("ShockwaveFlashFullScreen") ||
       className.EqualsLiteral("AGFullScreenWinClass")) {
     return true;
   }
 
+  // Google Earth bridging msg window between the plugin instance and a separate
+  // earth process. The earth process can trigger a plugin incall on the browser
+  // at any time, which is badness if the instance is already making an incall.
+  if (className.EqualsLiteral("__geplugin_bridge_window__")) {
+    return true;
+  }
+
   // nsNativeAppSupport makes a window like "FirefoxMessageWindow" based on the
   // toolkit app's name. It's pretty expensive to calculate this so we only try
   // once.
   if (gAppMessageWindowNameLength == 0) {
     nsCOMPtr<nsIXULAppInfo> appInfo =
       do_GetService("@mozilla.org/xre/app-info;1");
     if (appInfo) {
       nsCAutoString appName;