Changeset 166679 in webkit


Ignore:
Timestamp:
Apr 2, 2014 4:51:37 PM (10 years ago)
Author:
jinwoo7.song@samsung.com
Message:

Page should use std::unique_ptr for PointerLockController
https://bugs.webkit.org/show_bug.cgi?id=131098

Reviewed by Anders Carlsson.

Make Page keep a std::unique_ptr to PointerLockController. Store page
references and return controller references where possible.

  • dom/Document.cpp:

(WebCore::Document::prepareForDestruction):
(WebCore::Document::webkitExitPointerLock):
(WebCore::Document::webkitPointerLockElement):

  • dom/Element.cpp:

(WebCore::Element::removedFrom):
(WebCore::Element::webkitRequestPointerLock):

  • page/Page.cpp:

(WebCore::Page::Page):

  • page/Page.h:

(WebCore::Page::pointerLockController):

  • page/PointerLockController.cpp:

(WebCore::PointerLockController::PointerLockController):
(WebCore::PointerLockController::requestPointerLock):
(WebCore::PointerLockController::requestPointerUnlock):
(WebCore::PointerLockController::create): Deleted.

  • page/PointerLockController.h:
Location:
trunk/Source/WebCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r166676 r166679  
     12014-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
    1292014-04-02  Dean Jackson  <dino@apple.com>
    230
  • trunk/Source/WebCore/dom/Document.cpp

    r166668 r166679  
    20892089#if ENABLE(POINTER_LOCK)
    20902090    if (page())
    2091         page()->pointerLockController()->documentDetached(this);
     2091        page()->pointerLockController().documentDetached(this);
    20922092#endif
    20932093
     
    55445544    if (!page())
    55455545        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)
    55485548            return;
    55495549    }
    5550     page()->pointerLockController()->requestPointerUnlock();
     5550    page()->pointerLockController().requestPointerUnlock();
    55515551}
    55525552
    55535553Element* Document::webkitPointerLockElement() const
    55545554{
    5555     if (!page() || page()->pointerLockController()->lockPending())
     5555    if (!page() || page()->pointerLockController().lockPending())
    55565556        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)
    55595559            return element;
    55605560    }
  • trunk/Source/WebCore/dom/Element.cpp

    r166632 r166679  
    13361336#if ENABLE(POINTER_LOCK)
    13371337    if (document().page())
    1338         document().page()->pointerLockController()->elementRemoved(this);
     1338        document().page()->pointerLockController().elementRemoved(this);
    13391339#endif
    13401340
     
    24342434{
    24352435    if (document().page())
    2436         document().page()->pointerLockController()->requestPointerLock(this);
     2436        document().page()->pointerLockController().requestPointerLock(this);
    24372437}
    24382438#endif
  • trunk/Source/WebCore/page/Page.cpp

    r166661 r166679  
    140140#endif
    141141#if ENABLE(POINTER_LOCK)
    142     , m_pointerLockController(PointerLockController::create(this))
     142    , m_pointerLockController(std::make_unique<PointerLockController>(*this))
    143143#endif
    144144    , m_settings(Settings::create(this))
  • trunk/Source/WebCore/page/Page.h

    r166661 r166679  
    204204#endif
    205205#if ENABLE(POINTER_LOCK)
    206     PointerLockController* pointerLockController() const { return m_pointerLockController.get(); }
     206    PointerLockController& pointerLockController() const { return *m_pointerLockController; }
    207207#endif
    208208    ValidationMessageClient* validationMessageClient() const { return m_validationMessageClient; }
     
    460460#endif
    461461#if ENABLE(POINTER_LOCK)
    462     OwnPtr<PointerLockController> m_pointerLockController;
     462    const std::unique_ptr<PointerLockController> m_pointerLockController;
    463463#endif
    464464    RefPtr<ScrollingCoordinator> m_scrollingCoordinator;
  • trunk/Source/WebCore/page/PointerLockController.cpp

    r163568 r166679  
    3838namespace WebCore {
    3939
    40 PointerLockController::PointerLockController(Page* page)
     40PointerLockController::PointerLockController(Page& page)
    4141    : m_page(page)
    4242{
    43 }
    44 
    45 PassOwnPtr<PointerLockController> PointerLockController::create(Page* page)
    46 {
    47     return adoptPtr(new PointerLockController(page));
    4843}
    4944
     
    6964        enqueueEvent(eventNames().webkitpointerlockchangeEvent, target);
    7065        m_element = target;
    71     } else if (m_page->chrome().client().requestPointerLock()) {
     66    } else if (m_page.chrome().client().requestPointerLock()) {
    7267        m_lockPending = true;
    7368        m_element = target;
     
    7974void PointerLockController::requestPointerUnlock()
    8075{
    81     return m_page->chrome().client().requestPointerUnlock();
     76    return m_page.chrome().client().requestPointerUnlock();
    8277}
    8378
  • trunk/Source/WebCore/page/PointerLockController.h

    r127606 r166679  
    4343    WTF_MAKE_FAST_ALLOCATED;
    4444public:
    45     static PassOwnPtr<PointerLockController> create(Page*);
    46 
     45    explicit PointerLockController(Page&);
    4746    void requestPointerLock(Element* target);
    4847    void requestPointerUnlock();
     
    5857
    5958private:
    60     explicit PointerLockController(Page*);
    6159    void clearElement();
    6260    void enqueueEvent(const AtomicString& type, Element*);
    6361    void enqueueEvent(const AtomicString& type, Document*);
    64     Page* m_page;
     62    Page& m_page;
    6563    bool m_lockPending;
    6664    RefPtr<Element> m_element;
Note: See TracChangeset for help on using the changeset viewer.