Changeset 160321 in webkit


Ignore:
Timestamp:
Dec 9, 2013 11:30:40 AM (10 years ago)
Author:
ryuan.choi@samsung.com
Message:

[EFL][WK2] LayoutTests are broken after r160301
https://bugs.webkit.org/show_bug.cgi?id=125447

Reviewed by Darin Adler.

r160301 moved FullScreenManagerProxyClient logic to WebViewEfl, child class
of CoordinatedGraphics::WebView, because implementations are EFL specific.
However, CoordinatedGraphics::WebView creates WebPageProxy in constructor and
WebPageProxy requires FullScreenManagerProxyClient in constructor.
So, All WK2/Efl based applications got crashed

This patch adds virtual methods for FullScreenManagerProxyClient to CoordinatedGraphics::WebView
so that WebPageProxy can get FullScreenManagerProxyClient instance without
pure viertual methods.

  • UIProcess/API/C/CoordinatedGraphics/WKView.cpp:

(WKViewExitFullScreen):

  • UIProcess/CoordinatedGraphics/WebView.cpp:

(WebKit::WebView::fullScreenManagerProxyClient):
(WebKit::WebView::requestExitFullScreen):
renamed from exitFullScreen not to conflict with methods of FullScreenManagerProxyClient.

  • UIProcess/CoordinatedGraphics/WebView.h:
  • UIProcess/efl/WebViewEfl.cpp:
  • UIProcess/efl/WebViewEfl.h:
Location:
trunk/Source/WebKit2
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r160308 r160321  
     12013-12-09  Ryuan Choi  <ryuan.choi@samsung.com>
     2
     3        [EFL][WK2] LayoutTests are broken after r160301
     4        https://bugs.webkit.org/show_bug.cgi?id=125447
     5
     6        Reviewed by Darin Adler.
     7
     8        r160301 moved FullScreenManagerProxyClient logic to WebViewEfl, child class
     9        of CoordinatedGraphics::WebView, because implementations are EFL specific.
     10        However, CoordinatedGraphics::WebView creates WebPageProxy in constructor and
     11        WebPageProxy requires FullScreenManagerProxyClient in constructor.
     12        So, All WK2/Efl based applications got crashed
     13
     14        This patch adds virtual methods for FullScreenManagerProxyClient to CoordinatedGraphics::WebView
     15        so that WebPageProxy can get FullScreenManagerProxyClient instance without
     16        pure viertual methods.
     17
     18        * UIProcess/API/C/CoordinatedGraphics/WKView.cpp:
     19        (WKViewExitFullScreen):
     20        * UIProcess/CoordinatedGraphics/WebView.cpp:
     21        (WebKit::WebView::fullScreenManagerProxyClient):
     22        (WebKit::WebView::requestExitFullScreen):
     23        renamed from exitFullScreen not to conflict with methods of FullScreenManagerProxyClient.
     24        * UIProcess/CoordinatedGraphics/WebView.h:
     25        * UIProcess/efl/WebViewEfl.cpp:
     26        * UIProcess/efl/WebViewEfl.h:
     27
    1282013-12-09  Sergio Villar Senin  <svillar@igalia.com>
    229
  • trunk/Source/WebKit2/UIProcess/API/C/CoordinatedGraphics/WKView.cpp

    r160075 r160321  
    183183{
    184184#if ENABLE(FULLSCREEN_API)
    185     return toImpl(viewRef)->exitFullScreen();
     185    return toImpl(viewRef)->requestExitFullScreen();
    186186#else
    187187    UNUSED_PARAM(viewRef);
  • trunk/Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.cpp

    r160075 r160321  
    195195
    196196#if ENABLE(FULLSCREEN_API)
    197 bool WebView::exitFullScreen()
    198 {
    199 #if PLATFORM(EFL)
    200     // FIXME: Implement this for other platforms.
    201     if (!m_page->fullScreenManager()->isFullScreen())
     197WebFullScreenManagerProxyClient& WebView::fullScreenManagerProxyClient()
     198{
     199    return *this;
     200}
     201
     202bool WebView::requestExitFullScreen()
     203{
     204    if (!isFullScreen())
    202205        return false;
    203 #endif
     206
    204207    m_page->fullScreenManager()->requestExitFullScreen();
    205208    return true;
  • trunk/Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.h

    r160075 r160321  
    3434#include "PageClient.h"
    3535#include "WebContext.h"
     36#include "WebFullScreenManagerProxy.h"
    3637#include "WebGeometry.h"
    3738#include "WebPageGroup.h"
     
    4748namespace WebKit {
    4849
    49 class WebView : public API::TypedObject<API::Object::Type::View>, public PageClient {
     50class WebView : public API::TypedObject<API::Object::Type::View>, public PageClient
     51#if ENABLE(FULLSCREEN_API)
     52    , public WebFullScreenManagerProxyClient
     53#endif
     54    {
    5055public:
    5156    virtual ~WebView();
     
    9499
    95100#if ENABLE(FULLSCREEN_API)
    96     bool exitFullScreen();
     101    bool requestExitFullScreen();
    97102#endif
    98103
     
    189194    virtual void exitAcceleratedCompositingMode() OVERRIDE;
    190195    virtual void updateAcceleratedCompositingMode(const LayerTreeContext&) OVERRIDE;
     196
     197#if ENABLE(FULLSCREEN_API)
     198    WebFullScreenManagerProxyClient& fullScreenManagerProxyClient() OVERRIDE;
     199
     200    // WebFullScreenManagerProxyClient
     201    virtual void closeFullScreenManager() OVERRIDE { }
     202    virtual bool isFullScreen() OVERRIDE { return false; }
     203    virtual void enterFullScreen() OVERRIDE { }
     204    virtual void exitFullScreen() OVERRIDE { }
     205    virtual void beganEnterFullScreen(const WebCore::IntRect&, const WebCore::IntRect&) OVERRIDE { }
     206    virtual void beganExitFullScreen(const WebCore::IntRect&, const WebCore::IntRect&) OVERRIDE { }
     207#endif
    191208
    192209protected:
  • trunk/Source/WebKit2/UIProcess/efl/WebViewEfl.cpp

    r160301 r160321  
    143143#if ENABLE(FULLSCREEN_API)
    144144
    145 WebFullScreenManagerProxyClient& WebViewEfl::fullScreenManagerProxyClient()
    146 {
    147     return *this;
    148 }
    149 
    150145// WebFullScreenManagerProxyClient
    151146bool WebViewEfl::isFullScreen()
  • trunk/Source/WebKit2/UIProcess/efl/WebViewEfl.h

    r160301 r160321  
    2727#define WebViewEfl_h
    2828
    29 #include "WebFullScreenManagerProxy.h"
    3029#include "WebView.h"
    3130
     
    3938
    4039class WebViewEfl : public WebView
    41 #if ENABLE(FULLSCREEN_API)
    42     , public WebFullScreenManagerProxyClient
    43 #endif
    4440    {
    4541public:
     
    6763
    6864#if ENABLE(FULLSCREEN_API)
    69     WebFullScreenManagerProxyClient& fullScreenManagerProxyClient() OVERRIDE;
    70 #endif
    71 
    72 #if ENABLE(FULLSCREEN_API)
    7365    // WebFullScreenManagerProxyClient
    7466    virtual void closeFullScreenManager() OVERRIDE FINAL { }
Note: See TracChangeset for help on using the changeset viewer.