Title: [236110] releases/WebKitGTK/webkit-2.22
Revision
236110
Author
[email protected]
Date
2018-09-18 02:16:40 -0700 (Tue, 18 Sep 2018)

Log Message

Merge r235438 - MediaDevices should be collectable as soon as its document is stopped
https://bugs.webkit.org/show_bug.cgi?id=189021

Reviewed by Eric Carlson.

Source/WebCore:

Introduce ActiveDOMObject::isContextStopped to check whether the context is stopped.
Use this check in MediaDevices::hasPendingActivity so that it returns false as soon as active dom objects are stopped.

Test: http/tests/media/collect-media-devices.https.html

* Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::hasPendingActivity const):
* dom/ActiveDOMObject.cpp:
(WebCore::ActiveDOMObject::hasPendingActivity const):
(WebCore::ActiveDOMObject::isContextStopped const):
* dom/ActiveDOMObject.h:

LayoutTests:

* http/tests/media/media-stream/collect-media-devices.https-expected.txt: Added.
* http/tests/media/media-stream/collect-media-devices.https.html: Added.
* http/tests/media/media-stream/resources/mymediadevicesframe.htm: Added.

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.22/LayoutTests/ChangeLog (236109 => 236110)


--- releases/WebKitGTK/webkit-2.22/LayoutTests/ChangeLog	2018-09-18 09:16:33 UTC (rev 236109)
+++ releases/WebKitGTK/webkit-2.22/LayoutTests/ChangeLog	2018-09-18 09:16:40 UTC (rev 236110)
@@ -1,3 +1,14 @@
+2018-08-28  Youenn Fablet  <[email protected]>
+
+        MediaDevices should be collectable as soon as its document is stopped
+        https://bugs.webkit.org/show_bug.cgi?id=189021
+
+        Reviewed by Eric Carlson.
+
+        * http/tests/media/media-stream/collect-media-devices.https-expected.txt: Added.
+        * http/tests/media/media-stream/collect-media-devices.https.html: Added.
+        * http/tests/media/media-stream/resources/mymediadevicesframe.htm: Added.
+
 2018-08-27  Myles C. Maxfield  <[email protected]>
 
         Null pointer deref in WidthIterator

Modified: releases/WebKitGTK/webkit-2.22/Source/WebCore/ChangeLog (236109 => 236110)


--- releases/WebKitGTK/webkit-2.22/Source/WebCore/ChangeLog	2018-09-18 09:16:33 UTC (rev 236109)
+++ releases/WebKitGTK/webkit-2.22/Source/WebCore/ChangeLog	2018-09-18 09:16:40 UTC (rev 236110)
@@ -1,3 +1,22 @@
+2018-08-28  Youenn Fablet  <[email protected]>
+
+        MediaDevices should be collectable as soon as its document is stopped
+        https://bugs.webkit.org/show_bug.cgi?id=189021
+
+        Reviewed by Eric Carlson.
+
+        Introduce ActiveDOMObject::isContextStopped to check whether the context is stopped.
+        Use this check in MediaDevices::hasPendingActivity so that it returns false as soon as active dom objects are stopped.
+
+        Test: http/tests/media/collect-media-devices.https.html
+
+        * Modules/mediastream/MediaDevices.cpp:
+        (WebCore::MediaDevices::hasPendingActivity const):
+        * dom/ActiveDOMObject.cpp:
+        (WebCore::ActiveDOMObject::hasPendingActivity const):
+        (WebCore::ActiveDOMObject::isContextStopped const):
+        * dom/ActiveDOMObject.h:
+
 2018-08-27  Myles C. Maxfield  <[email protected]>
 
         Null pointer deref in WidthIterator

Modified: releases/WebKitGTK/webkit-2.22/Source/WebCore/Modules/mediastream/MediaDevices.cpp (236109 => 236110)


--- releases/WebKitGTK/webkit-2.22/Source/WebCore/Modules/mediastream/MediaDevices.cpp	2018-09-18 09:16:33 UTC (rev 236109)
+++ releases/WebKitGTK/webkit-2.22/Source/WebCore/Modules/mediastream/MediaDevices.cpp	2018-09-18 09:16:40 UTC (rev 236110)
@@ -168,7 +168,7 @@
 
 bool MediaDevices::hasPendingActivity() const
 {
-    return scriptExecutionContext() && hasEventListeners(m_eventNames.devicechangeEvent);
+    return !isContextStopped() && hasEventListeners(m_eventNames.devicechangeEvent);
 }
 
 const char* MediaDevices::activeDOMObjectName() const

Modified: releases/WebKitGTK/webkit-2.22/Source/WebCore/dom/ActiveDOMObject.cpp (236109 => 236110)


--- releases/WebKitGTK/webkit-2.22/Source/WebCore/dom/ActiveDOMObject.cpp	2018-09-18 09:16:33 UTC (rev 236109)
+++ releases/WebKitGTK/webkit-2.22/Source/WebCore/dom/ActiveDOMObject.cpp	2018-09-18 09:16:40 UTC (rev 236110)
@@ -106,4 +106,9 @@
 {
 }
 
+bool ActiveDOMObject::isContextStopped() const
+{
+    return !scriptExecutionContext() || scriptExecutionContext()->activeDOMObjectsAreStopped();
+}
+
 } // namespace WebCore

Modified: releases/WebKitGTK/webkit-2.22/Source/WebCore/dom/ActiveDOMObject.h (236109 => 236110)


--- releases/WebKitGTK/webkit-2.22/Source/WebCore/dom/ActiveDOMObject.h	2018-09-18 09:16:33 UTC (rev 236109)
+++ releases/WebKitGTK/webkit-2.22/Source/WebCore/dom/ActiveDOMObject.h	2018-09-18 09:16:40 UTC (rev 236110)
@@ -110,6 +110,8 @@
         return adoptRef(*new PendingActivity<T>(thisObject));
     }
 
+    bool isContextStopped() const;
+
 protected:
     explicit ActiveDOMObject(ScriptExecutionContext*);
     virtual ~ActiveDOMObject();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to