Title: [122054] trunk
Revision
122054
Author
[email protected]
Date
2012-07-07 12:49:34 -0700 (Sat, 07 Jul 2012)

Log Message

REGRESSION (r122035): fullscreen/exit-full-screen-iframe.html failing on GTK Linux 64-bit Release
https://bugs.webkit.org/show_bug.cgi?id=90719

Reviewed by Martin Robinson.

Source/WebKit/gtk: 

Follow the approach of the BlackBerry port outlined in r122035, using in exitFullScreenForElement
the fullscreen element to which the reference was saved when enterFullScreenForElement was called.

* WebCoreSupport/ChromeClientGtk.cpp:
(WebKit::ChromeClient::exitFullScreenForElement):

LayoutTests: 

Remove the crashing test expectation for the affected test.

* platform/gtk/TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (122053 => 122054)


--- trunk/LayoutTests/ChangeLog	2012-07-07 08:27:36 UTC (rev 122053)
+++ trunk/LayoutTests/ChangeLog	2012-07-07 19:49:34 UTC (rev 122054)
@@ -1,3 +1,14 @@
+2012-07-07  Zan Dobersek  <[email protected]>
+
+        REGRESSION (r122035): fullscreen/exit-full-screen-iframe.html failing on GTK Linux 64-bit Release
+        https://bugs.webkit.org/show_bug.cgi?id=90719
+
+        Reviewed by Martin Robinson.
+
+        Remove the crashing test expectation for the affected test.
+
+        * platform/gtk/TestExpectations:
+
 2012-07-07  Filip Pizlo  <[email protected]>
 
         media/media-blocked-by-beforeload.html is flaky

Modified: trunk/LayoutTests/platform/gtk/TestExpectations (122053 => 122054)


--- trunk/LayoutTests/platform/gtk/TestExpectations	2012-07-07 08:27:36 UTC (rev 122053)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2012-07-07 19:49:34 UTC (rev 122054)
@@ -373,8 +373,6 @@
 
 BUGWK90589 RELEASE : fast/css/user-drag-none.html = CRASH TIMEOUT
 
-BUGWK90719 : fullscreen/exit-full-screen-iframe.html = CRASH
-
 //////////////////////////////////////////////////////////////////////////////////////////
 // End of Crashing tests
 //////////////////////////////////////////////////////////////////////////////////////////

Modified: trunk/Source/WebKit/gtk/ChangeLog (122053 => 122054)


--- trunk/Source/WebKit/gtk/ChangeLog	2012-07-07 08:27:36 UTC (rev 122053)
+++ trunk/Source/WebKit/gtk/ChangeLog	2012-07-07 19:49:34 UTC (rev 122054)
@@ -1,3 +1,16 @@
+2012-07-07  Zan Dobersek  <[email protected]>
+
+        REGRESSION (r122035): fullscreen/exit-full-screen-iframe.html failing on GTK Linux 64-bit Release
+        https://bugs.webkit.org/show_bug.cgi?id=90719
+
+        Reviewed by Martin Robinson.
+
+        Follow the approach of the BlackBerry port outlined in r122035, using in exitFullScreenForElement
+        the fullscreen element to which the reference was saved when enterFullScreenForElement was called.
+
+        * WebCoreSupport/ChromeClientGtk.cpp:
+        (WebKit::ChromeClient::exitFullScreenForElement):
+
 2012-07-02  Benjamin Poulain  <[email protected]>
 
         Do not do any logging initialization when logging is disabled

Modified: trunk/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp (122053 => 122054)


--- trunk/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp	2012-07-07 08:27:36 UTC (rev 122053)
+++ trunk/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp	2012-07-07 19:49:34 UTC (rev 122054)
@@ -945,10 +945,15 @@
     element->document()->webkitDidEnterFullScreenForElement(element);
 }
 
-void ChromeClient::exitFullScreenForElement(WebCore::Element* element)
+void ChromeClient::exitFullScreenForElement(WebCore::Element*)
 {
+    // The element passed into this function is not reliable, i.e. it could
+    // be null. In addition the parameter may be disappearing in the future.
+    // So we use the reference to the element we saved above.
+    ASSERT(m_fullScreenElement);
+
     gboolean returnValue;
-    GRefPtr<WebKitDOMHTMLElement> kitElement(adoptGRef(kit(reinterpret_cast<HTMLElement*>(element))));
+    GRefPtr<WebKitDOMHTMLElement> kitElement(adoptGRef(kit(reinterpret_cast<HTMLElement*>(m_fullScreenElement.get()))));
     g_signal_emit_by_name(m_webView, "leaving-fullscreen", kitElement.get(), &returnValue);
     if (returnValue)
         return;
@@ -957,10 +962,10 @@
     ASSERT(widgetIsOnscreenToplevelWindow(window));
     g_signal_handlers_disconnect_by_func(window, reinterpret_cast<void*>(onFullscreenGtkKeyPressEvent), this);
 
-    element->document()->webkitWillExitFullScreenForElement(element);
+    m_fullScreenElement->document()->webkitWillExitFullScreenForElement(m_fullScreenElement.get());
     gtk_window_unfullscreen(GTK_WINDOW(window));
     m_adjustmentWatcher.enableAllScrollbars();
-    element->document()->webkitDidExitFullScreenForElement(element);
+    m_fullScreenElement->document()->webkitDidExitFullScreenForElement(m_fullScreenElement.get());
     m_fullScreenElement.clear();
 }
 #endif
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to