WebKit Bugzilla
Attachment 349072 Details for
Bug 189369
: WebPage::close should clear UserMediaPermissionRequestManager
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-189369-20180906142506.patch (text/plain), 3.68 KB, created by
Eric Carlson
on 2018-09-06 14:25:07 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Eric Carlson
Created:
2018-09-06 14:25:07 PDT
Size:
3.68 KB
patch
obsolete
>Subversion Revision: 235741 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 5bb49f071fa33134f5a5761841b9aac7caa478e1..e69ccaf6a236667842de16f160ac355b5f925634 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,18 @@ >+2018-09-06 Eric Carlson <eric.carlson@apple.com> >+ >+ UserMediaPermissionRequestManager should not remove ActivityStateChangeObserver in destructor >+ https://bugs.webkit.org/show_bug.cgi?id=189369 >+ <rdar://problem/44196724> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: >+ (WebKit::UserMediaPermissionRequestManager::~UserMediaPermissionRequestManager): >+ (WebKit::UserMediaPermissionRequestManager::cleanup): >+ * WebProcess/MediaStream/UserMediaPermissionRequestManager.h: >+ * WebProcess/WebPage/WebPage.cpp: >+ (WebKit::WebPage::~WebPage): >+ > 2018-09-06 Frederic Wang <fwang@igalia.com> > > Use more generic names than "overflow" for functions that can be used for subframes >diff --git a/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp b/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp >index 7148fed21325a38da0c3befaeffa47f69b77f6a8..d8973b181d156f108d4505be17bf1030a93ab892 100644 >--- a/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp >+++ b/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp >@@ -52,12 +52,20 @@ UserMediaPermissionRequestManager::UserMediaPermissionRequestManager(WebPage& pa > > UserMediaPermissionRequestManager::~UserMediaPermissionRequestManager() > { >- if (m_monitoringActivityStateChange) >- m_page.corePage()->removeActivityStateChangeObserver(*this); >+ ASSERT(!m_monitoringActivityStateChange); > for (auto& sandboxExtension : m_userMediaDeviceSandboxExtensions) > sandboxExtension.value->revoke(); > } > >+void UserMediaPermissionRequestManager::cleanup() >+{ >+ if (!m_monitoringActivityStateChange) >+ return; >+ >+ m_page.corePage()->removeActivityStateChangeObserver(*this); >+ m_monitoringActivityStateChange = false; >+} >+ > void UserMediaPermissionRequestManager::startUserMediaRequest(UserMediaRequest& request) > { > Document* document = request.document(); >diff --git a/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h b/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h >index 5746712c06f98621000bc474d327c58b06abf907..a71db74689c52400628d7bcb96e462ddfaac43c5 100644 >--- a/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h >+++ b/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h >@@ -45,6 +45,8 @@ public: > explicit UserMediaPermissionRequestManager(WebPage&); > ~UserMediaPermissionRequestManager(); > >+ void cleanup(); >+ > void startUserMediaRequest(WebCore::UserMediaRequest&); > void cancelUserMediaRequest(WebCore::UserMediaRequest&); > void userMediaAccessWasGranted(uint64_t, WebCore::CaptureDevice&& audioDevice, WebCore::CaptureDevice&& videoDevice, String&& deviceIdentifierHashSalt); >diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >index 44deff1340f59ad9701e93b32a94d4f6d761a640..534728b133b7addfe8f71d478c1d45b4756d03c6 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp >+++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >@@ -705,6 +705,10 @@ WebPage::~WebPage() > webProcess.eventDispatcher().removeScrollingTreeForPage(this); > #endif > >+#if ENABLE(MEDIA_STREAM) >+ m_userMediaPermissionRequestManager->cleanup(); >+#endif >+ > platformDetach(); > > m_sandboxExtensionTracker.invalidate();
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 189369
:
349072
|
349406