Title: [211042] trunk/Source
Revision
211042
Author
[email protected]
Date
2017-01-23 10:39:48 -0800 (Mon, 23 Jan 2017)

Log Message

REGRESSION (r211033): ASSERTION FAILED: m_ptr in com.apple.WebCore: WTF::RefPtr<WebCore::Element>::operator* const + 70
https://bugs.webkit.org/show_bug.cgi?id=167308
<rdar://problem/30144964>

Unreviewed, do a partial revert of r211033 to fix assertion.

Source/WebCore:

No new tests, already covered by:
fullscreen/exit-full-screen-iframe.html

* dom/Document.cpp:
(WebCore::Document::webkitExitFullscreen):
* page/ChromeClient.h:

Source/WebKit/mac:

* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::exitFullScreenForElement):

Source/WebKit/win:

* WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::exitFullScreenForElement):

Source/WebKit2:

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::exitFullScreenForElement):
* WebProcess/WebCoreSupport/WebChromeClient.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (211041 => 211042)


--- trunk/Source/WebCore/ChangeLog	2017-01-23 18:30:25 UTC (rev 211041)
+++ trunk/Source/WebCore/ChangeLog	2017-01-23 18:39:48 UTC (rev 211042)
@@ -1,3 +1,18 @@
+2017-01-23  Chris Dumez  <[email protected]>
+
+        REGRESSION (r211033): ASSERTION FAILED: m_ptr in com.apple.WebCore: WTF::RefPtr<WebCore::Element>::operator* const + 70
+        https://bugs.webkit.org/show_bug.cgi?id=167308
+        <rdar://problem/30144964>
+
+        Unreviewed, do a partial revert of r211033 to fix assertion.
+
+        No new tests, already covered by:
+        fullscreen/exit-full-screen-iframe.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::webkitExitFullscreen):
+        * page/ChromeClient.h:
+
 2017-01-23  Gustavo Noronha Silva  <[email protected]>
 
         [GTK] asserting on unknown locale for hyphenation is wrong

Modified: trunk/Source/WebCore/dom/Document.cpp (211041 => 211042)


--- trunk/Source/WebCore/dom/Document.cpp	2017-01-23 18:30:25 UTC (rev 211041)
+++ trunk/Source/WebCore/dom/Document.cpp	2017-01-23 18:39:48 UTC (rev 211042)
@@ -5720,7 +5720,7 @@
     // Only exit out of full screen window mode if there are no remaining elements in the 
     // full screen stack.
     if (!newTop) {
-        page()->chrome().client().exitFullScreenForElement(*m_fullScreenElement);
+        page()->chrome().client().exitFullScreenForElement(m_fullScreenElement.get());
         return;
     }
 

Modified: trunk/Source/WebCore/page/ChromeClient.h (211041 => 211042)


--- trunk/Source/WebCore/page/ChromeClient.h	2017-01-23 18:30:25 UTC (rev 211041)
+++ trunk/Source/WebCore/page/ChromeClient.h	2017-01-23 18:39:48 UTC (rev 211042)
@@ -350,7 +350,7 @@
 #if ENABLE(FULLSCREEN_API)
     virtual bool supportsFullScreenForElement(const Element&, bool) { return false; }
     virtual void enterFullScreenForElement(Element&) { }
-    virtual void exitFullScreenForElement(Element&) { }
+    virtual void exitFullScreenForElement(Element*) { }
     virtual void setRootFullScreenLayer(GraphicsLayer*) { }
 #endif
 

Modified: trunk/Source/WebKit/mac/ChangeLog (211041 => 211042)


--- trunk/Source/WebKit/mac/ChangeLog	2017-01-23 18:30:25 UTC (rev 211041)
+++ trunk/Source/WebKit/mac/ChangeLog	2017-01-23 18:39:48 UTC (rev 211042)
@@ -1,3 +1,15 @@
+2017-01-23  Chris Dumez  <[email protected]>
+
+        REGRESSION (r211033): ASSERTION FAILED: m_ptr in com.apple.WebCore: WTF::RefPtr<WebCore::Element>::operator* const + 70
+        https://bugs.webkit.org/show_bug.cgi?id=167308
+        <rdar://problem/30144964>
+
+        Unreviewed, do a partial revert of r211033 to fix assertion.
+
+        * WebCoreSupport/WebChromeClient.h:
+        * WebCoreSupport/WebChromeClient.mm:
+        (WebChromeClient::exitFullScreenForElement):
+
 2017-01-23  Joseph Pecoraro  <[email protected]>
 
         Remove allowWindowOpenWithoutUserGesture setting

Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h (211041 => 211042)


--- trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h	2017-01-23 18:30:25 UTC (rev 211041)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h	2017-01-23 18:39:48 UTC (rev 211042)
@@ -191,7 +191,7 @@
 #if ENABLE(FULLSCREEN_API)
     bool supportsFullScreenForElement(const WebCore::Element&, bool withKeyboard) final;
     void enterFullScreenForElement(WebCore::Element&) final;
-    void exitFullScreenForElement(WebCore::Element&) final;
+    void exitFullScreenForElement(WebCore::Element*) final;
 #endif
 
     bool selectItemWritingDirectionIsNatural() override;

Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm (211041 => 211042)


--- trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm	2017-01-23 18:30:25 UTC (rev 211041)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm	2017-01-23 18:39:48 UTC (rev 211042)
@@ -1013,17 +1013,17 @@
 #endif
 }
 
-void WebChromeClient::exitFullScreenForElement(Element& element)
+void WebChromeClient::exitFullScreenForElement(Element* element)
 {
     SEL selector = @selector(webView:exitFullScreenForElement:listener:);
     if ([[m_webView UIDelegate] respondsToSelector:selector]) {
-        WebKitFullScreenListener* listener = [[WebKitFullScreenListener alloc] initWithElement:&element];
-        CallUIDelegate(m_webView, selector, kit(&element), listener);
+        WebKitFullScreenListener* listener = [[WebKitFullScreenListener alloc] initWithElement:element];
+        CallUIDelegate(m_webView, selector, kit(element), listener);
         [listener release];
     }
 #if !PLATFORM(IOS)
     else
-        [m_webView _exitFullScreenForElement:&element];
+        [m_webView _exitFullScreenForElement:element];
 #endif
 }
 

Modified: trunk/Source/WebKit/win/ChangeLog (211041 => 211042)


--- trunk/Source/WebKit/win/ChangeLog	2017-01-23 18:30:25 UTC (rev 211041)
+++ trunk/Source/WebKit/win/ChangeLog	2017-01-23 18:39:48 UTC (rev 211042)
@@ -1,3 +1,14 @@
+2017-01-23  Chris Dumez  <[email protected]>
+
+        REGRESSION (r211033): ASSERTION FAILED: m_ptr in com.apple.WebCore: WTF::RefPtr<WebCore::Element>::operator* const + 70
+        https://bugs.webkit.org/show_bug.cgi?id=167308
+        <rdar://problem/30144964>
+
+        Unreviewed, do a partial revert of r211033 to fix assertion.
+
+        * WebCoreSupport/WebChromeClient.cpp:
+        (WebChromeClient::exitFullScreenForElement):
+
 2017-01-20  Darin Adler  <[email protected]>
 
         Remove PassRefPtr from "page" directory of WebCore, also deploy references

Modified: trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp (211041 => 211042)


--- trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp	2017-01-23 18:30:25 UTC (rev 211041)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp	2017-01-23 18:39:48 UTC (rev 211042)
@@ -822,17 +822,17 @@
     m_webView->fullScreenController()->enterFullScreen();
 }
 
-void WebChromeClient::exitFullScreenForElement(Element& element)
+void WebChromeClient::exitFullScreenForElement(Element* element)
 {
     COMPtr<IWebUIDelegate> uiDelegate;
     if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) {
         COMPtr<IWebUIDelegatePrivate4> uiDelegatePrivate4(Query, uiDelegate);
-        COMPtr<IDOMElement> domElement(AdoptCOM, DOMElement::createInstance(&element));
+        COMPtr<IDOMElement> domElement(AdoptCOM, DOMElement::createInstance(element));
         if (uiDelegatePrivate4 && SUCCEEDED(uiDelegatePrivate4->exitFullScreenForElement(domElement.get())))
             return;
     }
 
-    ASSERT(&element == m_webView->fullScreenElement());
+    ASSERT(element == m_webView->fullScreenElement());
     m_webView->fullScreenController()->exitFullScreen();
 }
 

Modified: trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.h (211041 => 211042)


--- trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.h	2017-01-23 18:30:25 UTC (rev 211041)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.h	2017-01-23 18:39:48 UTC (rev 211042)
@@ -157,7 +157,7 @@
 #if ENABLE(FULLSCREEN_API)
     bool supportsFullScreenForElement(const WebCore::Element&, bool withKeyboard) final;
     void enterFullScreenForElement(WebCore::Element&) final;
-    void exitFullScreenForElement(WebCore::Element&) final;
+    void exitFullScreenForElement(WebCore::Element*) final;
 #endif
 
     void wheelEventHandlersChanged(bool) final { }

Modified: trunk/Source/WebKit2/ChangeLog (211041 => 211042)


--- trunk/Source/WebKit2/ChangeLog	2017-01-23 18:30:25 UTC (rev 211041)
+++ trunk/Source/WebKit2/ChangeLog	2017-01-23 18:39:48 UTC (rev 211042)
@@ -1,3 +1,15 @@
+2017-01-23  Chris Dumez  <[email protected]>
+
+        REGRESSION (r211033): ASSERTION FAILED: m_ptr in com.apple.WebCore: WTF::RefPtr<WebCore::Element>::operator* const + 70
+        https://bugs.webkit.org/show_bug.cgi?id=167308
+        <rdar://problem/30144964>
+
+        Unreviewed, do a partial revert of r211033 to fix assertion.
+
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::exitFullScreenForElement):
+        * WebProcess/WebCoreSupport/WebChromeClient.h:
+
 2017-01-20  Gustavo Noronha Silva  <[email protected]>
 
         urlParserEnabled parameter is only encoded for COCOA ports

Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (211041 => 211042)


--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp	2017-01-23 18:30:25 UTC (rev 211041)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp	2017-01-23 18:39:48 UTC (rev 211042)
@@ -964,9 +964,9 @@
     m_page.fullScreenManager()->enterFullScreenForElement(&element);
 }
 
-void WebChromeClient::exitFullScreenForElement(Element& element)
+void WebChromeClient::exitFullScreenForElement(Element* element)
 {
-    m_page.fullScreenManager()->exitFullScreenForElement(&element);
+    m_page.fullScreenManager()->exitFullScreenForElement(element);
 }
 
 #endif

Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h (211041 => 211042)


--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h	2017-01-23 18:30:25 UTC (rev 211041)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h	2017-01-23 18:39:48 UTC (rev 211042)
@@ -255,7 +255,7 @@
 #if ENABLE(FULLSCREEN_API)
     bool supportsFullScreenForElement(const WebCore::Element&, bool withKeyboard) final;
     void enterFullScreenForElement(WebCore::Element&) final;
-    void exitFullScreenForElement(WebCore::Element&) final;
+    void exitFullScreenForElement(WebCore::Element*) final;
 #endif
 
 #if PLATFORM(COCOA)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to