Fix <rdar://5517707> Crash on wptv.wp.pl when "make bigger" button is clicked
[WebKit-https.git] / WebCore / platform / win / SharedTimerWin.cpp
index 1ebc255..8ff58d2 100644 (file)
@@ -27,6 +27,7 @@
 #include "SharedTimer.h"
 
 #include "Page.h"
+#include "PluginViewWin.h"
 #include "SystemTime.h"
 #include "Widget.h"
 #include <wtf/Assertions.h>
@@ -45,6 +46,15 @@ const int sharedTimerID = 1000;
 
 LRESULT CALLBACK TimerWindowWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 {
+    // Windows Media Player has a modal message loop that will deliver messages
+    // to us at inappropriate times and we will crash if we handle them when
+    // they are delivered. We repost all messages so that we will get to handle
+    // them once the modal loop exits.
+    if (PluginViewWin::isCallingPlugin()) {
+        PostMessage(hWnd, message, wParam, lParam);
+        return 0;
+    }
+
     if (message == timerFiredMessage) {
         processingCustomTimerMessage = true;
         sharedTimerFiredFunction();