Changeset 271287 in webkit
- Timestamp:
- Jan 7, 2021, 11:34:45 PM (6 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 10 edited
-
ChangeLog (modified) (1 diff)
-
NetworkProcess/NetworkSession.cpp (modified) (2 diffs)
-
NetworkProcess/NetworkSession.h (modified) (2 diffs)
-
UIProcess/WebPageGroup.cpp (modified) (2 diffs)
-
UIProcess/WebPageGroup.h (modified) (3 diffs)
-
UIProcess/WebPageProxy.cpp (modified) (2 diffs)
-
UIProcess/WebPreferences.cpp (modified) (4 diffs)
-
UIProcess/WebPreferences.h (modified) (2 diffs)
-
WebProcess/Geolocation/WebGeolocationManager.cpp (modified) (4 diffs)
-
WebProcess/Geolocation/WebGeolocationManager.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r271286 r271287 1 2021-01-07 Alex Christensen <achristensen@webkit.org> 2 3 Use WeakHashSet instead of HashSet<T*> 4 https://bugs.webkit.org/show_bug.cgi?id=220455 5 6 Reviewed by Geoffrey Garen. 7 8 * NetworkProcess/NetworkSession.cpp: 9 (WebKit::NetworkSession::invalidateAndCancel): 10 (WebKit::NetworkSession::registerNetworkDataTask): 11 (WebKit::NetworkSession::unregisterNetworkDataTask): 12 * NetworkProcess/NetworkSession.h: 13 (WebKit::NetworkSession::registerNetworkDataTask): Deleted. 14 (WebKit::NetworkSession::unregisterNetworkDataTask): Deleted. 15 * UIProcess/WebPageGroup.cpp: 16 (WebKit::WebPageGroup::addPage): 17 (WebKit::WebPageGroup::removePage): 18 (WebKit::WebPageGroup::setPreferences): 19 * UIProcess/WebPageGroup.h: 20 * UIProcess/WebPageProxy.cpp: 21 (WebKit::m_limitsNavigationsToAppBoundDomains): 22 (WebKit::WebPageProxy::~WebPageProxy): 23 * UIProcess/WebPreferences.cpp: 24 (WebKit::WebPreferences::~WebPreferences): 25 (WebKit::WebPreferences::addPage): 26 (WebKit::WebPreferences::removePage): 27 (WebKit::WebPreferences::update): 28 (WebKit::WebPreferences::updateBoolValueForInternalDebugFeatureKey): 29 * UIProcess/WebPreferences.h: 30 * WebProcess/Geolocation/WebGeolocationManager.cpp: 31 (WebKit::WebGeolocationManager::registerWebPage): 32 (WebKit::WebGeolocationManager::unregisterWebPage): 33 (WebKit::WebGeolocationManager::setEnableHighAccuracyForPage): 34 (WebKit::WebGeolocationManager::isUpdating const): 35 (WebKit::WebGeolocationManager::isHighAccuracyEnabled const): 36 * WebProcess/Geolocation/WebGeolocationManager.h: 37 (WebKit::WebGeolocationManager::isUpdating const): Deleted. 38 (WebKit::WebGeolocationManager::isHighAccuracyEnabled const): Deleted. 39 1 40 2021-01-07 Per Arne Vollan <pvollan@apple.com> 2 41 -
trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp
r270205 r271287 152 152 void NetworkSession::invalidateAndCancel() 153 153 { 154 for (auto *task : m_dataTaskSet)155 task ->invalidateAndCancel();154 for (auto& task : m_dataTaskSet) 155 task.invalidateAndCancel(); 156 156 #if ENABLE(RESOURCE_LOAD_STATISTICS) 157 157 if (m_resourceLoadStatistics) … … 373 373 } 374 374 375 void NetworkSession::registerNetworkDataTask(NetworkDataTask& task) 376 { 377 m_dataTaskSet.add(task); 378 } 379 380 void NetworkSession::unregisterNetworkDataTask(NetworkDataTask& task) 381 { 382 m_dataTaskSet.remove(task); 383 } 384 375 385 } // namespace WebKit -
trunk/Source/WebKit/NetworkProcess/NetworkSession.h
r270249 r271287 84 84 WebCore::NetworkStorageSession* networkStorageSession() const; 85 85 86 void registerNetworkDataTask(NetworkDataTask& task) { m_dataTaskSet.add(&task); }87 void unregisterNetworkDataTask(NetworkDataTask& task) { m_dataTaskSet.remove(&task); }86 void registerNetworkDataTask(NetworkDataTask&); 87 void unregisterNetworkDataTask(NetworkDataTask&); 88 88 89 89 #if ENABLE(RESOURCE_LOAD_STATISTICS) … … 160 160 PAL::SessionID m_sessionID; 161 161 Ref<NetworkProcess> m_networkProcess; 162 HashSet<NetworkDataTask*> m_dataTaskSet;162 WeakHashSet<NetworkDataTask> m_dataTaskSet; 163 163 #if ENABLE(RESOURCE_LOAD_STATISTICS) 164 164 String m_resourceLoadStatisticsDirectory; -
trunk/Source/WebKit/UIProcess/WebPageGroup.cpp
r259159 r271287 94 94 } 95 95 96 void WebPageGroup::addPage(WebPageProxy *page)96 void WebPageGroup::addPage(WebPageProxy& page) 97 97 { 98 98 m_pages.add(page); 99 99 } 100 100 101 void WebPageGroup::removePage(WebPageProxy *page)101 void WebPageGroup::removePage(WebPageProxy& page) 102 102 { 103 103 m_pages.remove(page); … … 112 112 113 113 for (auto& webPageProxy : m_pages) 114 webPageProxy ->setPreferences(*m_preferences);114 webPageProxy.setPreferences(*m_preferences); 115 115 } 116 116 -
trunk/Source/WebKit/UIProcess/WebPageGroup.h
r237146 r271287 32 32 #include <wtf/Forward.h> 33 33 #include <wtf/HashSet.h> 34 #include <wtf/WeakHashSet.h> 34 35 #include <wtf/text/WTFString.h> 35 36 … … 49 50 virtual ~WebPageGroup(); 50 51 51 void addPage(WebPageProxy *);52 void removePage(WebPageProxy *);52 void addPage(WebPageProxy&); 53 void removePage(WebPageProxy&); 53 54 54 55 uint64_t pageGroupID() const { return m_data.pageGroupID; } … … 65 66 RefPtr<WebPreferences> m_preferences; 66 67 Ref<WebUserContentControllerProxy> m_userContentController; 67 HashSet<WebPageProxy*> m_pages;68 WeakHashSet<WebPageProxy> m_pages; 68 69 }; 69 70 -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r271263 r271287 549 549 550 550 m_preferences->addPage(*this); 551 m_pageGroup->addPage( this);551 m_pageGroup->addPage(*this); 552 552 553 553 m_inspector = WebInspectorProxy::create(*this); … … 605 605 606 606 m_preferences->removePage(*this); 607 m_pageGroup->removePage( this);607 m_pageGroup->removePage(*this); 608 608 609 609 #ifndef NDEBUG -
trunk/Source/WebKit/UIProcess/WebPreferences.cpp
r270851 r271287 77 77 WebPreferences::~WebPreferences() 78 78 { 79 ASSERT(m_pages. isEmpty());79 ASSERT(m_pages.computesEmpty()); 80 80 } 81 81 … … 87 87 void WebPreferences::addPage(WebPageProxy& webPageProxy) 88 88 { 89 ASSERT(!m_pages.contains( &webPageProxy));90 m_pages.add( &webPageProxy);89 ASSERT(!m_pages.contains(webPageProxy)); 90 m_pages.add(webPageProxy); 91 91 } 92 92 93 93 void WebPreferences::removePage(WebPageProxy& webPageProxy) 94 94 { 95 ASSERT(m_pages.contains( &webPageProxy));96 m_pages.remove( &webPageProxy);95 ASSERT(m_pages.contains(webPageProxy)); 96 m_pages.remove(webPageProxy); 97 97 } 98 98 … … 105 105 106 106 for (auto& webPageProxy : m_pages) 107 webPageProxy ->preferencesDidChange();107 webPageProxy.preferencesDidChange(); 108 108 } 109 109 … … 167 167 { 168 168 if (key == WebPreferencesKey::processSwapOnCrossSiteNavigationEnabledKey()) { 169 for (auto *page : m_pages)170 page ->process().processPool().configuration().setProcessSwapsOnNavigation(value);169 for (auto& page : m_pages) 170 page.process().processPool().configuration().setProcessSwapsOnNavigation(value); 171 171 172 172 return; -
trunk/Source/WebKit/UIProcess/WebPreferences.h
r270851 r271287 33 33 #include <wtf/HashSet.h> 34 34 #include <wtf/RefPtr.h> 35 #include <wtf/WeakHashSet.h> 35 36 36 37 #define DECLARE_PREFERENCE_GETTER_AND_SETTERS(KeyUpper, KeyLower, TypeName, Type, DefaultValue, HumanReadableName, HumanReadableDescription) \ … … 139 140 WebPreferencesStore m_store; 140 141 141 HashSet<WebPageProxy*> m_pages;142 WeakHashSet<WebPageProxy> m_pages; 142 143 unsigned m_updateBatchCount { 0 }; 143 144 bool m_needUpdateAfterBatch { false }; -
trunk/Source/WebKit/WebProcess/Geolocation/WebGeolocationManager.cpp
r256075 r271287 55 55 bool wasUpdating = isUpdating(); 56 56 57 m_pageSet.add( &page);57 m_pageSet.add(page); 58 58 59 59 if (!wasUpdating) … … 65 65 bool highAccuracyWasEnabled = isHighAccuracyEnabled(); 66 66 67 m_pageSet.remove( &page);68 m_highAccuracyPageSet.remove( &page);67 m_pageSet.remove(page); 68 m_highAccuracyPageSet.remove(page); 69 69 70 70 if (!isUpdating()) … … 82 82 83 83 if (enabled) 84 m_highAccuracyPageSet.add( &page);84 m_highAccuracyPageSet.add(page); 85 85 else 86 m_highAccuracyPageSet.remove( &page);86 m_highAccuracyPageSet.remove(page); 87 87 88 88 bool highAccuracyShouldBeEnabled = isHighAccuracyEnabled(); … … 125 125 #endif // PLATFORM(IOS_FAMILY) 126 126 127 bool WebGeolocationManager::isUpdating() const 128 { 129 return !m_pageSet.computesEmpty(); 130 } 131 132 bool WebGeolocationManager::isHighAccuracyEnabled() const 133 { 134 return !m_highAccuracyPageSet.computesEmpty(); 135 } 136 127 137 } // namespace WebKit -
trunk/Source/WebKit/WebProcess/Geolocation/WebGeolocationManager.h
r256075 r271287 33 33 #include <wtf/HashSet.h> 34 34 #include <wtf/Noncopyable.h> 35 #include <wtf/WeakHashSet.h> 35 36 36 37 namespace WebCore { … … 62 63 void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override; 63 64 64 bool isUpdating() const { return !m_pageSet.isEmpty(); }65 bool isHighAccuracyEnabled() const { return !m_highAccuracyPageSet.isEmpty(); }65 bool isUpdating() const; 66 bool isHighAccuracyEnabled() const; 66 67 67 68 void didChangePosition(const WebCore::GeolocationPositionData&); … … 72 73 73 74 WebProcess& m_process; 74 HashSet<WebPage*> m_pageSet;75 HashSet<WebPage*> m_highAccuracyPageSet;75 WeakHashSet<WebPage> m_pageSet; 76 WeakHashSet<WebPage> m_highAccuracyPageSet; 76 77 }; 77 78
Note:
See TracChangeset
for help on using the changeset viewer.