Changeset 242662 in webkit
- Timestamp:
- Mar 8, 2019, 3:58:52 PM (7 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
UIProcess/Downloads/DownloadProxyMap.cpp (modified) (5 diffs)
-
UIProcess/Downloads/DownloadProxyMap.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r242652 r242662 1 2019-03-08 Brady Eidson <beidson@apple.com> 2 3 Have the UIProcess take the UnboundedNetworking assertion when downloads are in progress. 4 https://bugs.webkit.org/show_bug.cgi?id=195468 5 6 Reviewed by Andy Estes. 7 8 * UIProcess/Downloads/DownloadProxyMap.cpp: 9 (WebKit::DownloadProxyMap::DownloadProxyMap): 10 (WebKit::DownloadProxyMap::createDownloadProxy): If this is the first download, and the process has the entitlement, 11 take the assertion. 12 (WebKit::DownloadProxyMap::downloadFinished): 13 (WebKit::DownloadProxyMap::processDidClose): 14 * UIProcess/Downloads/DownloadProxyMap.h: 15 1 16 2019-03-08 Chris Dumez <cdumez@apple.com> 2 17 -
trunk/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.cpp
r240683 r242662 31 31 #include "DownloadProxyMessages.h" 32 32 #include "MessageReceiverMap.h" 33 #include "ProcessAssertion.h" 33 34 #include <wtf/StdLibExtras.h> 35 36 #if PLATFORM(COCOA) 37 #include <wtf/cocoa/Entitlements.h> 38 #endif 34 39 35 40 namespace WebKit { … … 37 42 DownloadProxyMap::DownloadProxyMap(NetworkProcessProxy& process) 38 43 : m_process(&process) 44 #if PLATFORM(COCOA) 45 , m_shouldTakeAssertion(WTF::processHasEntitlement("com.apple.multitasking.systemappassertions")) 46 #endif 39 47 { 40 48 } … … 49 57 auto downloadProxy = DownloadProxy::create(*this, processPool, resourceRequest); 50 58 m_downloads.set(downloadProxy->downloadID(), downloadProxy.copyRef()); 59 60 if (m_downloads.size() == 1 && m_shouldTakeAssertion) { 61 ASSERT(!m_downloadAssertion); 62 m_downloadAssertion = std::make_unique<ProcessAssertion>(getCurrentProcessID(), "WebKit downloads"_s, AssertionState::UnboundedNetworking); 63 } 51 64 52 65 m_process->addMessageReceiver(Messages::DownloadProxy::messageReceiverName(), downloadProxy->downloadID().downloadID(), downloadProxy.get()); … … 64 77 downloadProxy->invalidate(); 65 78 m_downloads.remove(downloadID); 79 80 if (m_downloads.isEmpty() && m_shouldTakeAssertion) { 81 ASSERT(m_downloadAssertion); 82 m_downloadAssertion = nullptr; 83 } 66 84 } 67 85 … … 76 94 77 95 m_downloads.clear(); 96 m_downloadAssertion = nullptr; 78 97 m_process = nullptr; 79 98 } -
trunk/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.h
r241183 r242662 38 38 class DownloadProxy; 39 39 class NetworkProcessProxy; 40 class ProcessAssertion; 40 41 class WebProcessPool; 41 42 … … 58 59 NetworkProcessProxy* m_process; 59 60 HashMap<DownloadID, RefPtr<DownloadProxy>> m_downloads; 61 62 bool m_shouldTakeAssertion { false }; 63 std::unique_ptr<ProcessAssertion> m_downloadAssertion; 60 64 }; 61 65
Note:
See TracChangeset
for help on using the changeset viewer.