Changeset 162380 in webkit
- Timestamp:
- Jan 20, 2014 3:21:44 PM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r162379 r162380 1 2014-01-20 Anders Carlsson <andersca@apple.com> 2 3 Give each page a UserContentController 4 https://bugs.webkit.org/show_bug.cgi?id=127315 5 6 Reviewed by Andreas Kling. 7 8 Add a UserContentController object to PageGroup and have the page group set it on any 9 pages that are added to the page group. 10 11 This is another step towards moving handling of user content away from PageGroup and make it 12 possible for each page to have different user content. 13 14 * page/Page.cpp: 15 (WebCore::Page::~Page): 16 (WebCore::Page::setUserContentController): 17 * page/Page.h: 18 (WebCore::Page::userContentController): 19 * page/PageGroup.cpp: 20 (WebCore::PageGroup::PageGroup): 21 (WebCore::PageGroup::addPage): 22 (WebCore::PageGroup::removePage): 23 * page/PageGroup.h: 24 * page/UserContentController.cpp: 25 (WebCore::UserContentController::addPage): 26 (WebCore::UserContentController::removePage): 27 * page/UserContentController.h: 28 1 29 2014-01-20 Jeremy Jones <jeremyj@apple.com> 2 30 -
trunk/Source/WebCore/page/Page.cpp
r162264 r162380 83 83 #include "SubframeLoader.h" 84 84 #include "TextResourceDecoder.h" 85 #include "UserContentController.h" 85 86 #include "VisitedLinkState.h" 86 87 #include "VoidCallback.h" … … 241 242 pageCounter.decrement(); 242 243 #endif 244 245 if (m_userContentController) 246 m_userContentController->removePage(*this); 243 247 } 244 248 … … 1578 1582 } 1579 1583 1584 void Page::setUserContentController(UserContentController* userContentController) 1585 { 1586 if (m_userContentController) 1587 m_userContentController->removePage(*this); 1588 1589 m_userContentController = userContentController; 1590 1591 if (m_userContentController) 1592 m_userContentController->addPage(*this); 1593 } 1594 1580 1595 Page::PageClients::PageClients() 1581 1596 : alternativeTextClient(nullptr) -
trunk/Source/WebCore/page/Page.h
r162264 r162380 102 102 class Settings; 103 103 class StorageNamespace; 104 class UserContentController; 104 105 class ValidationMessageClient; 105 106 … … 419 420 unsigned lastSpatialNavigationCandidateCount() const { return m_lastSpatialNavigationCandidatesCount; } 420 421 422 void setUserContentController(UserContentController*); 423 UserContentController* userContentController() { return m_userContentController.get(); } 424 421 425 private: 422 426 void initGroup(); … … 557 561 unsigned m_lastSpatialNavigationCandidatesCount; 558 562 unsigned m_framesHandlingBeforeUnloadEvent; 563 564 RefPtr<UserContentController> m_userContentController; 559 565 }; 560 566 -
trunk/Source/WebCore/page/PageGroup.cpp
r161106 r162380 39 39 #include "Settings.h" 40 40 #include "StorageNamespace.h" 41 #include "UserContentController.h" 41 42 #include <wtf/StdLibExtras.h> 42 43 … … 65 66 , m_visitedLinksPopulated(false) 66 67 , m_identifier(getUniqueIdentifier()) 68 , m_userContentController(UserContentController::create()) 67 69 , m_groupSettings(std::make_unique<GroupSettings>()) 68 70 { … … 170 172 ASSERT(!m_pages.contains(&page)); 171 173 m_pages.add(&page); 174 175 page.setUserContentController(m_userContentController.get()); 172 176 } 173 177 … … 176 180 ASSERT(m_pages.contains(&page)); 177 181 m_pages.remove(&page); 182 183 page.setUserContentController(nullptr); 178 184 } 179 185 -
trunk/Source/WebCore/page/PageGroup.h
r161106 r162380 43 43 class SecurityOrigin; 44 44 class StorageNamespace; 45 class UserContentController; 45 46 46 47 #if ENABLE(VIDEO_TRACK) … … 124 125 HashMap<RefPtr<SecurityOrigin>, RefPtr<StorageNamespace>> m_transientLocalStorageMap; 125 126 127 RefPtr<UserContentController> m_userContentController; 126 128 std::unique_ptr<UserScriptMap> m_userScripts; 127 129 std::unique_ptr<UserStyleSheetMap> m_userStyleSheets; -
trunk/Source/WebCore/page/UserContentController.cpp
r162372 r162380 27 27 #include "UserContentController.h" 28 28 29 #include "DOMWrapperWorld.h" 30 #include "UserScript.h" 31 29 32 namespace WebCore { 30 33 … … 42 45 } 43 46 47 void UserContentController::addPage(Page& page) 48 { 49 ASSERT(!m_pages.contains(&page)); 50 m_pages.add(&page); 51 } 52 53 void UserContentController::removePage(Page& page) 54 { 55 ASSERT(m_pages.contains(&page)); 56 m_pages.remove(&page); 57 } 58 44 59 } // namespace WebCore -
trunk/Source/WebCore/page/UserContentController.h
r162372 r162380 27 27 #define UserContentController_h 28 28 29 #include <wtf/HashMap.h> 30 #include <wtf/HashSet.h> 29 31 #include <wtf/RefCounted.h> 30 32 #include <wtf/RefPtr.h> 33 #include <wtf/Vector.h> 31 34 32 35 namespace WebCore { 36 37 class DOMWrapperWorld; 38 class Page; 39 class URL; 40 class UserScript; 33 41 34 42 class UserContentController : public RefCounted<UserContentController> { … … 37 45 ~UserContentController(); 38 46 47 void addPage(Page&); 48 void removePage(Page&); 49 39 50 private: 40 51 UserContentController(); 52 53 HashSet<Page*> m_pages; 41 54 }; 42 55
Note: See TracChangeset
for help on using the changeset viewer.