Changeset 166679 in webkit
- Timestamp:
- Apr 2, 2014 4:51:37 PM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r166676 r166679 1 2014-04-02 Jinwoo Song <jinwoo7.song@samsung.com> 2 3 Page should use std::unique_ptr for PointerLockController 4 https://bugs.webkit.org/show_bug.cgi?id=131098 5 6 Reviewed by Anders Carlsson. 7 8 Make Page keep a std::unique_ptr to PointerLockController. Store page 9 references and return controller references where possible. 10 11 * dom/Document.cpp: 12 (WebCore::Document::prepareForDestruction): 13 (WebCore::Document::webkitExitPointerLock): 14 (WebCore::Document::webkitPointerLockElement): 15 * dom/Element.cpp: 16 (WebCore::Element::removedFrom): 17 (WebCore::Element::webkitRequestPointerLock): 18 * page/Page.cpp: 19 (WebCore::Page::Page): 20 * page/Page.h: 21 (WebCore::Page::pointerLockController): 22 * page/PointerLockController.cpp: 23 (WebCore::PointerLockController::PointerLockController): 24 (WebCore::PointerLockController::requestPointerLock): 25 (WebCore::PointerLockController::requestPointerUnlock): 26 (WebCore::PointerLockController::create): Deleted. 27 * page/PointerLockController.h: 28 1 29 2014-04-02 Dean Jackson <dino@apple.com> 2 30 -
trunk/Source/WebCore/dom/Document.cpp
r166668 r166679 2089 2089 #if ENABLE(POINTER_LOCK) 2090 2090 if (page()) 2091 page()->pointerLockController() ->documentDetached(this);2091 page()->pointerLockController().documentDetached(this); 2092 2092 #endif 2093 2093 … … 5544 5544 if (!page()) 5545 5545 return; 5546 if (Element* target = page()->pointerLockController() ->element()) {5547 if ( target->document() != this)5546 if (Element* target = page()->pointerLockController().element()) { 5547 if (&target->document() != this) 5548 5548 return; 5549 5549 } 5550 page()->pointerLockController() ->requestPointerUnlock();5550 page()->pointerLockController().requestPointerUnlock(); 5551 5551 } 5552 5552 5553 5553 Element* Document::webkitPointerLockElement() const 5554 5554 { 5555 if (!page() || page()->pointerLockController() ->lockPending())5555 if (!page() || page()->pointerLockController().lockPending()) 5556 5556 return nullptr; 5557 if (Element* element = page()->pointerLockController() ->element()) {5558 if ( element->document() == this)5557 if (Element* element = page()->pointerLockController().element()) { 5558 if (&element->document() == this) 5559 5559 return element; 5560 5560 } -
trunk/Source/WebCore/dom/Element.cpp
r166632 r166679 1336 1336 #if ENABLE(POINTER_LOCK) 1337 1337 if (document().page()) 1338 document().page()->pointerLockController() ->elementRemoved(this);1338 document().page()->pointerLockController().elementRemoved(this); 1339 1339 #endif 1340 1340 … … 2434 2434 { 2435 2435 if (document().page()) 2436 document().page()->pointerLockController() ->requestPointerLock(this);2436 document().page()->pointerLockController().requestPointerLock(this); 2437 2437 } 2438 2438 #endif -
trunk/Source/WebCore/page/Page.cpp
r166661 r166679 140 140 #endif 141 141 #if ENABLE(POINTER_LOCK) 142 , m_pointerLockController( PointerLockController::create(this))142 , m_pointerLockController(std::make_unique<PointerLockController>(*this)) 143 143 #endif 144 144 , m_settings(Settings::create(this)) -
trunk/Source/WebCore/page/Page.h
r166661 r166679 204 204 #endif 205 205 #if ENABLE(POINTER_LOCK) 206 PointerLockController * pointerLockController() const { return m_pointerLockController.get(); }206 PointerLockController& pointerLockController() const { return *m_pointerLockController; } 207 207 #endif 208 208 ValidationMessageClient* validationMessageClient() const { return m_validationMessageClient; } … … 460 460 #endif 461 461 #if ENABLE(POINTER_LOCK) 462 OwnPtr<PointerLockController> m_pointerLockController;462 const std::unique_ptr<PointerLockController> m_pointerLockController; 463 463 #endif 464 464 RefPtr<ScrollingCoordinator> m_scrollingCoordinator; -
trunk/Source/WebCore/page/PointerLockController.cpp
r163568 r166679 38 38 namespace WebCore { 39 39 40 PointerLockController::PointerLockController(Page *page)40 PointerLockController::PointerLockController(Page& page) 41 41 : m_page(page) 42 42 { 43 }44 45 PassOwnPtr<PointerLockController> PointerLockController::create(Page* page)46 {47 return adoptPtr(new PointerLockController(page));48 43 } 49 44 … … 69 64 enqueueEvent(eventNames().webkitpointerlockchangeEvent, target); 70 65 m_element = target; 71 } else if (m_page ->chrome().client().requestPointerLock()) {66 } else if (m_page.chrome().client().requestPointerLock()) { 72 67 m_lockPending = true; 73 68 m_element = target; … … 79 74 void PointerLockController::requestPointerUnlock() 80 75 { 81 return m_page ->chrome().client().requestPointerUnlock();76 return m_page.chrome().client().requestPointerUnlock(); 82 77 } 83 78 -
trunk/Source/WebCore/page/PointerLockController.h
r127606 r166679 43 43 WTF_MAKE_FAST_ALLOCATED; 44 44 public: 45 static PassOwnPtr<PointerLockController> create(Page*); 46 45 explicit PointerLockController(Page&); 47 46 void requestPointerLock(Element* target); 48 47 void requestPointerUnlock(); … … 58 57 59 58 private: 60 explicit PointerLockController(Page*);61 59 void clearElement(); 62 60 void enqueueEvent(const AtomicString& type, Element*); 63 61 void enqueueEvent(const AtomicString& type, Document*); 64 Page *m_page;62 Page& m_page; 65 63 bool m_lockPending; 66 64 RefPtr<Element> m_element;
Note: See TracChangeset
for help on using the changeset viewer.