Changeset 87202 in webkit


Ignore:
Timestamp:
May 24, 2011, 2:06:39 PM (14 years ago)
Author:
Lucas Forschler
Message:

Merge r86992.

Location:
branches/safari-534-branch/Source
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-534-branch/Source/WebCore/ChangeLog

    r87200 r87202  
     12011-05-24  Lucas Forschler  <lforschler@apple.com>
     2
     3    Merged r86992.
     4
     5    2011-05-20  Jeremy Noble  <jer.noble@apple.com>
     6
     7        Reviewed by Maciej Stachowiak.
     8
     9        WebKit2: Exit full screen mode if the WebProcess crashes.
     10        https://bugs.webkit.org/show_bug.cgi?id=61151
     11
     12        * platform/graphics/win/FullScreenController.h:
     13        * platform/graphics/win/FullScreenController.cpp:
     14        (FullScreenController::close): Added.  Close the full-screen window without animation
     15            if called.
     16
    1172011-05-24  Lucas Forschler  <lforschler@apple.com>
    218
  • branches/safari-534-branch/Source/WebCore/platform/graphics/win/FullScreenController.cpp

    r87037 r87202  
    194194}
    195195
     196void FullScreenController::close()
     197{
     198    if (!m_private->m_isFullScreen)
     199        return;
     200    m_private->m_isFullScreen = false;
     201
     202    m_private->m_client->fullScreenClientWillExitFullScreen();
     203    m_private->m_client->fullScreenClientSetParentWindow(m_private->m_originalHost);
     204    m_private->m_fullScreenWindow = nullptr;
     205
     206    m_private->m_client->fullScreenClientDidExitFullScreen();
     207    ::SetWindowPos(m_private->m_client->fullScreenClientWindow(), 0, m_private->m_originalFrame.x(), m_private->m_originalFrame.y(), m_private->m_originalFrame.width(), m_private->m_originalFrame.height(), SWP_NOACTIVATE | SWP_NOZORDER);
     208    ::RedrawWindow(m_private->m_client->fullScreenClientWindow(), 0, 0, RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE | RDW_ALLCHILDREN);
     209    m_private->m_backgroundWindow = nullptr;
     210}
    196211#endif
  • branches/safari-534-branch/Source/WebCore/platform/graphics/win/FullScreenController.h

    r87037 r87202  
    4747    bool isFullScreen() const;
    4848
     49    void close();
     50
    4951protected:
    5052    void enterFullScreenRepaintCompleted();
  • branches/safari-534-branch/Source/WebKit2/ChangeLog

    r87200 r87202  
     12011-05-24  Lucas Forschler  <lforschler@apple.com>
     2
     3    Merged r86992.
     4
     5    2011-05-20  Jeremy Noble  <jer.noble@apple.com>
     6
     7        Reviewed by Maciej Stachowiak.
     8
     9        WebKit2: Exit full screen mode if the WebProcess crashes.
     10        https://bugs.webkit.org/show_bug.cgi?id=61151
     11
     12        If the WebProcess crashes, exit full-screen mode to avoid getting stuck.  Move the
     13        WebFullScreenManagerProxy::invalidate() implementation into the platform-specific
     14        files, and have them close their respective platform's full-screen window.
     15
     16        * UIProcess/WebFullScreenManagerProxy.cpp:
     17        * UIProcess/gtk/WebFullScreenManagerProxyGtk.cpp:
     18        (WebKit::WebFullScreenManagerProxy::invalidate): Added. Copied from main implementation.
     19        * UIProcess/mac/WKFullScreenWindowController.h:
     20        * UIProcess/mac/WKFullScreenWindowController.mm:
     21        (-[WKFullScreenWindowController close]): Added.
     22        * UIProcess/mac/WebFullScreenManagerProxyMac.mm:
     23        (WebKit::WebFullScreenManagerProxy::invalidate): Added.
     24        * UIProcess/win/WebFullScreenManagerProxyWin.cpp:
     25        (WebKit::WebFullScreenManagerProxy::invalidate): Added.
     26
    1272011-05-24  Lucas Forschler  <lforschler@apple.com>
    228
  • branches/safari-534-branch/Source/WebKit2/UIProcess/WebFullScreenManagerProxy.cpp

    r82906 r87202  
    4848WebFullScreenManagerProxy::~WebFullScreenManagerProxy()
    4949{
    50 }
    51 
    52 void WebFullScreenManagerProxy::invalidate()
    53 {
    54     m_webView = 0;
    5550}
    5651
  • branches/safari-534-branch/Source/WebKit2/UIProcess/gtk/WebFullScreenManagerProxyGtk.cpp

    r81478 r87202  
    3131
    3232namespace WebKit {
     33
     34void WebFullScreenManagerProxy::invalidate()
     35{
     36    m_webView = 0;
     37}
    3338
    3439void WebFullScreenManagerProxy::enterFullScreen()
  • branches/safari-534-branch/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.h

    r86186 r87202  
    7070- (void)exitAcceleratedCompositingMode;
    7171- (WebCore::IntRect)getFullScreenRect;
     72- (void)close;
    7273
    7374@end
  • branches/safari-534-branch/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm

    r87036 r87202  
    418418}
    419419
     420- (void)close
     421{
     422    // We are being asked to close rapidly, most likely because the page
     423    // has closed or the web process has crashed.  Just walk through our
     424    // normal exit full screen sequence, but don't wait to be called back
     425    // in response.
     426    [self exitFullScreen];
     427    [self beganExitFullScreenAnimation];
     428    [self finishedExitFullScreenAnimation:YES];
     429}
     430
    420431#pragma mark -
    421432#pragma mark Internal Interface
  • branches/safari-534-branch/Source/WebKit2/UIProcess/mac/WebFullScreenManagerProxyMac.mm

    r83004 r87202  
    3535
    3636namespace WebKit {
     37
     38void WebFullScreenManagerProxy::invalidate()
     39{
     40    if (!m_webView)
     41        return;
     42   
     43    [[m_webView fullScreenWindowController] close];
     44    m_webView = 0;
     45}
    3746
    3847void WebFullScreenManagerProxy::enterFullScreen()
  • branches/safari-534-branch/Source/WebKit2/UIProcess/win/WebFullScreenManagerProxyWin.cpp

    r85699 r87202  
    3434
    3535namespace WebKit {
     36
     37void WebFullScreenManagerProxy::invalidate()
     38{
     39    if (!m_webView)
     40        return;
     41   
     42    m_webView->fullScreenController()->close();
     43    m_webView = 0;
     44}
    3645
    3746void WebFullScreenManagerProxy::enterFullScreen()
Note: See TracChangeset for help on using the changeset viewer.