Changeset 160727 in webkit
- Timestamp:
- Dec 17, 2013 1:30:06 PM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r160718 r160727 1 2013-12-17 Anders Carlsson <andersca@apple.com> 2 3 Back out r159982 4 https://bugs.webkit.org/show_bug.cgi?id=125870 5 <rdar://problem/15598485> 6 7 Reviewed by Dan Bernstein. 8 9 Looks like r159982 caused intermittent crashes. Back it out for now. 10 11 * UIProcess/WebContextUserMessageCoders.h: 12 (WebKit::WebContextUserMessageEncoder::encode): 13 (WebKit::WebContextUserMessageDecoder::decode): 14 * UIProcess/WebPageGroup.cpp: 15 * UIProcess/WebPageGroup.h: 16 (WebKit::WebPageGroup::sendToAllProcessesInGroup): 17 * UIProcess/WebPageProxy.cpp: 18 (WebKit::WebPageProxy::initializeWebPage): 19 * UIProcess/WebProcessProxy.cpp: 20 (WebKit::WebProcessProxy::disconnect): 21 * UIProcess/WebProcessProxy.h: 22 1 23 2013-12-17 Dan Bernstein <mitz@apple.com> 2 24 -
trunk/Source/WebKit2/UIProcess/WebContextUserMessageCoders.h
r159982 r160727 77 77 case API::Object::Type::PageGroup: { 78 78 WebPageGroup* pageGroup = static_cast<WebPageGroup*>(m_root); 79 if (pageGroup->addProcess(m_process))80 m_process.addWebPageGroup(*pageGroup);81 79 encoder << pageGroup->data(); 82 80 break; … … 148 146 if (!decoder.decode(pageGroupID)) 149 147 return false; 150 coder.m_root = coder.m_process.webPageGroup(pageGroupID);148 coder.m_root = WebPageGroup::get(pageGroupID); 151 149 break; 152 150 } -
trunk/Source/WebKit2/UIProcess/WebPageGroup.cpp
r160608 r160727 195 195 } 196 196 197 bool WebPageGroup::addProcess(WebProcessProxy& process)198 {199 return m_processes.add(&process).isNewEntry;200 }201 202 void WebPageGroup::disconnectProcess(WebProcessProxy& process)203 {204 m_processes.remove(&process);205 }206 207 197 } // namespace WebKit -
trunk/Source/WebKit2/UIProcess/WebPageGroup.h
r160384 r160727 66 66 void removeAllUserContent(); 67 67 68 bool addProcess(WebProcessProxy&);69 void disconnectProcess(WebProcessProxy&);70 71 68 private: 72 69 template<typename T> void sendToAllProcessesInGroup(const T&, uint64_t destinationID); … … 75 72 mutable RefPtr<WebPreferences> m_preferences; 76 73 HashSet<WebPageProxy*> m_pages; 77 HashSet<WebProcessProxy*> m_processes;78 74 }; 79 75 … … 81 77 void WebPageGroup::sendToAllProcessesInGroup(const T& message, uint64_t destinationID) 82 78 { 83 for (auto webProcessProxy : m_processes) { 84 if (webProcessProxy->canSendMessage()) 85 webProcessProxy->send(T(message), destinationID); 79 HashSet<WebProcessProxy*> processesSeen; 80 81 for (WebPageProxy* webPageProxy : m_pages) { 82 WebProcessProxy& webProcessProxy = webPageProxy->process(); 83 if (!processesSeen.add(&webProcessProxy).isNewEntry) 84 continue; 85 86 if (webProcessProxy.canSendMessage()) 87 webProcessProxy.send(T(message), destinationID); 86 88 } 87 89 } -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r160696 r160727 518 518 #endif 519 519 520 if (pageGroup().addProcess(process()))521 process().addWebPageGroup(pageGroup());522 523 520 initializeCreationParameters(); 524 521 process().send(Messages::WebProcess::CreateWebPage(m_pageID, m_creationParameters), 0); -
trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp
r160378 r160727 40 40 #include "WebNavigationDataStore.h" 41 41 #include "WebNotificationManagerProxy.h" 42 #include "WebPageGroup.h"43 42 #include "WebPageProxy.h" 44 43 #include "WebPluginSiteDataManager.h" … … 148 147 Vector<RefPtr<WebFrameProxy>> frames; 149 148 copyValuesToVector(m_frameMap, frames); 150 for (auto frame : frames) 151 frame->disconnect(); 149 150 for (size_t i = 0, size = frames.size(); i < size; ++i) 151 frames[i]->disconnect(); 152 152 m_frameMap.clear(); 153 154 Vector<WebPageGroup*> pageGroups;155 copyValuesToVector(m_pageGroups, pageGroups);156 for (auto pageGroup : pageGroups)157 pageGroup->disconnectProcess(*this);158 m_pageGroups.clear();159 153 160 154 if (m_downloadProxyMap) … … 216 210 copyValuesToVector(m_pageMap, result); 217 211 return result; 218 }219 220 WebPageGroup* WebProcessProxy::webPageGroup(uint64_t pageGroupID)221 {222 if (!HashMap<uint64_t, WebPageGroup*>::isValidKey(pageGroupID))223 return nullptr;224 225 return m_pageGroups.get(pageGroupID);226 }227 228 void WebProcessProxy::addWebPageGroup(WebPageGroup& pageGroup)229 {230 m_pageGroups.add(pageGroup.pageGroupID(), &pageGroup);231 212 } 232 213 -
trunk/Source/WebKit2/UIProcess/WebProcessProxy.h
r160378 r160727 83 83 Vector<WebPageProxy*> pages() const; 84 84 85 WebPageGroup* webPageGroup(uint64_t pageGroupID);86 void addWebPageGroup(WebPageGroup&);87 88 85 WebBackForwardListItem* webBackForwardItem(uint64_t itemID) const; 89 86 … … 200 197 WebFrameProxyMap m_frameMap; 201 198 WebBackForwardListItemMap m_backForwardListItemMap; 202 HashMap<uint64_t, WebPageGroup*> m_pageGroups;203 199 204 200 OwnPtr<DownloadProxyMap> m_downloadProxyMap;
Note: See TracChangeset
for help on using the changeset viewer.