Changeset 210761 in webkit


Ignore:
Timestamp:
Jan 13, 2017 8:04:59 PM (7 years ago)
Author:
beidson@apple.com
Message:

Crash when visiting a webpage that uses Gamepads in a new WebProcess after a previous page has used gamepads..
https://bugs.webkit.org/show_bug.cgi?id=167033

Reviewed by Alex Christensen.

  • UIProcess/Gamepad/UIGamepadProvider.cpp:

(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads): Don't schedule a state update here.
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads): Ditto.

  • UIProcess/Gamepad/UIGamepadProvider.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::startedUsingGamepads): Populate the WebProcess with initial gamepads.

Location:
trunk/Source/WebKit2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r210758 r210761  
     12017-01-13  Brady Eidson  <beidson@apple.com>
     2
     3        Crash when visiting a webpage that uses Gamepads in a new WebProcess after a previous page has used gamepads..
     4        https://bugs.webkit.org/show_bug.cgi?id=167033
     5
     6        Reviewed by Alex Christensen.
     7
     8        * UIProcess/Gamepad/UIGamepadProvider.cpp:
     9        (WebKit::UIGamepadProvider::processPoolStartedUsingGamepads): Don't schedule a state update here.
     10        (WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads): Ditto.
     11        * UIProcess/Gamepad/UIGamepadProvider.h:
     12       
     13        * UIProcess/WebProcessPool.cpp:
     14        (WebKit::WebProcessPool::startedUsingGamepads): Populate the WebProcess with initial gamepads.
     15
    1162017-01-11  Darin Adler  <darin@apple.com>
    217
  • trunk/Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.cpp

    r205470 r210761  
    152152    if (!m_isMonitoringGamepads && platformWebPageProxyForGamepadInput())
    153153        startMonitoringGamepads();
    154 
    155     scheduleGamepadStateSync();
    156154}
    157155
     
    163161    if (m_isMonitoringGamepads && !platformWebPageProxyForGamepadInput())
    164162        platformStopMonitoringInput();
    165 
    166     scheduleGamepadStateSync();
    167163}
    168164
  • trunk/Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.h

    r205199 r210761  
    5757#endif
    5858
     59    Vector<GamepadData> snapshotGamepads();
     60
    5961private:
    6062    friend NeverDestroyed<UIGamepadProvider>;
     
    7880    void gamepadSyncTimerFired();
    7981
    80     Vector<GamepadData> snapshotGamepads();
    81 
    8282    HashSet<WebProcessPool*> m_processPoolsUsingGamepads;
    8383
  • trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp

    r210753 r210761  
    12741274    if (!wereAnyProcessesUsingGamepads)
    12751275        UIGamepadProvider::singleton().processPoolStartedUsingGamepads(*this);
     1276
     1277    proxy->send(Messages::WebProcess::SetInitialGamepads(UIGamepadProvider::singleton().snapshotGamepads()), 0);
    12761278}
    12771279
Note: See TracChangeset for help on using the changeset viewer.