Changeset 143004 in webkit


Ignore:
Timestamp:
Feb 15, 2013 8:49:14 AM (11 years ago)
Author:
Christophe Dumez
Message:

[EFL][WK2] Have WebView subclass PageClient
https://bugs.webkit.org/show_bug.cgi?id=109684

Reviewed by Anders Carlsson.

Stop constructing the PageClient in EwkView. PageClient is an internal
class and we should not use it directly in our Ewk implementation.
Instead, have WebView subclass PageClient. The PageClient implementation
just calls WebView methods otherwise.

  • PlatformEfl.cmake:
  • UIProcess/API/efl/EwkView.cpp:

(EwkView::EwkView):
(EwkView::setSize):

  • UIProcess/API/efl/EwkView.h:

(WebKit):
(EwkView):
(EwkView::webView):

  • UIProcess/API/efl/ewk_view.cpp:
  • UIProcess/efl/PageClientBase.cpp: Removed.
  • UIProcess/efl/PageClientBase.h: Removed.
  • UIProcess/efl/PageClientDefaultImpl.cpp: Removed.
  • UIProcess/efl/PageClientDefaultImpl.h: Removed.
  • UIProcess/efl/PageClientLegacyImpl.cpp: Removed.
  • UIProcess/efl/PageClientLegacyImpl.h: Removed.
  • UIProcess/efl/PageLoadClientEfl.cpp:

(WebKit::PageLoadClientEfl::didCommitLoadForFrame):

  • UIProcess/efl/PageViewportControllerClientEfl.h:
  • UIProcess/efl/WebPageProxyEfl.cpp:

(WebKit::WebPageProxy::viewWidget):

  • UIProcess/efl/WebView.cpp:

(WebKit::WebView::WebView):
(WebKit::WebView::~WebView):
(WebKit::WebView::initialize):
(WebKit):
(WebKit::WebView::evasObject):
(WebKit::WebView::setThemePath):
(WebKit::WebView::setDrawsBackground):
(WebKit::WebView::drawsBackground):
(WebKit::WebView::setDrawsTransparentBackground):
(WebKit::WebView::drawsTransparentBackground):
(WebKit::WebView::suspendActiveDOMObjectsAndAnimations):
(WebKit::WebView::resumeActiveDOMObjectsAndAnimations):
(WebKit::WebView::didCommitLoad):
(WebKit::WebView::updateViewportSize):
(WebKit::WebView::didChangeContentsSize):
(WebKit::WebView::createDrawingAreaProxy):
(WebKit::WebView::setViewNeedsDisplay):
(WebKit::WebView::displayView):
(WebKit::WebView::scrollView):
(WebKit::WebView::viewSize):
(WebKit::WebView::isViewWindowActive):
(WebKit::WebView::isViewFocused):
(WebKit::WebView::isViewVisible):
(WebKit::WebView::isViewInWindow):
(WebKit::WebView::processDidCrash):
(WebKit::WebView::didRelaunchProcess):
(WebKit::WebView::pageClosed):
(WebKit::WebView::toolTipChanged):
(WebKit::WebView::setCursor):
(WebKit::WebView::setCursorHiddenUntilMouseMoves):
(WebKit::WebView::registerEditCommand):
(WebKit::WebView::clearAllEditCommands):
(WebKit::WebView::canUndoRedo):
(WebKit::WebView::executeUndoRedo):
(WebKit::WebView::screenToWindow):
(WebKit::WebView::windowToScreen):
(WebKit::WebView::doneWithKeyEvent):
(WebKit::WebView::doneWithTouchEvent):
(WebKit::WebView::createPopupMenuProxy):
(WebKit::WebView::createContextMenuProxy):
(WebKit::WebView::createColorChooserProxy):
(WebKit::WebView::setFindIndicator):
(WebKit::WebView::enterAcceleratedCompositingMode):
(WebKit::WebView::exitAcceleratedCompositingMode):
(WebKit::WebView::updateAcceleratedCompositingMode):
(WebKit::WebView::didCommitLoadForMainFrame):
(WebKit::WebView::didFinishLoadingDataForCustomRepresentation):
(WebKit::WebView::customRepresentationZoomFactor):
(WebKit::WebView::setCustomRepresentationZoomFactor):
(WebKit::WebView::flashBackingStoreUpdates):
(WebKit::WebView::findStringInCustomRepresentation):
(WebKit::WebView::countStringMatchesInCustomRepresentation):
(WebKit::WebView::updateTextInputState):
(WebKit::WebView::handleDownloadRequest):
(WebKit::WebView::convertToDeviceSpace):
(WebKit::WebView::convertToUserSpace):
(WebKit::WebView::didChangeViewportProperties):
(WebKit::WebView::pageDidRequestScroll):
(WebKit::WebView::didRenderFrame):
(WebKit::WebView::pageTransitionViewportReady):

  • UIProcess/efl/WebView.h:

(WebKit):
(WebView):
(WebKit::WebView::pageRef):
(WebKit::WebView::page):
(WebKit::WebView::canScrollView):

Location:
trunk/Source/WebKit2
Files:
6 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r142997 r143004  
     12013-02-15  Christophe Dumez  <ch.dumez@sisa.samsung.com>
     2
     3        [EFL][WK2] Have WebView subclass PageClient
     4        https://bugs.webkit.org/show_bug.cgi?id=109684
     5
     6        Reviewed by Anders Carlsson.
     7
     8        Stop constructing the PageClient in EwkView. PageClient is an internal
     9        class and we should not use it directly in our Ewk implementation.
     10        Instead, have WebView subclass PageClient. The PageClient implementation
     11        just calls WebView methods otherwise.
     12
     13        * PlatformEfl.cmake:
     14        * UIProcess/API/efl/EwkView.cpp:
     15        (EwkView::EwkView):
     16        (EwkView::setSize):
     17        * UIProcess/API/efl/EwkView.h:
     18        (WebKit):
     19        (EwkView):
     20        (EwkView::webView):
     21        * UIProcess/API/efl/ewk_view.cpp:
     22        * UIProcess/efl/PageClientBase.cpp: Removed.
     23        * UIProcess/efl/PageClientBase.h: Removed.
     24        * UIProcess/efl/PageClientDefaultImpl.cpp: Removed.
     25        * UIProcess/efl/PageClientDefaultImpl.h: Removed.
     26        * UIProcess/efl/PageClientLegacyImpl.cpp: Removed.
     27        * UIProcess/efl/PageClientLegacyImpl.h: Removed.
     28        * UIProcess/efl/PageLoadClientEfl.cpp:
     29        (WebKit::PageLoadClientEfl::didCommitLoadForFrame):
     30        * UIProcess/efl/PageViewportControllerClientEfl.h:
     31        * UIProcess/efl/WebPageProxyEfl.cpp:
     32        (WebKit::WebPageProxy::viewWidget):
     33        * UIProcess/efl/WebView.cpp:
     34        (WebKit::WebView::WebView):
     35        (WebKit::WebView::~WebView):
     36        (WebKit::WebView::initialize):
     37        (WebKit):
     38        (WebKit::WebView::evasObject):
     39        (WebKit::WebView::setThemePath):
     40        (WebKit::WebView::setDrawsBackground):
     41        (WebKit::WebView::drawsBackground):
     42        (WebKit::WebView::setDrawsTransparentBackground):
     43        (WebKit::WebView::drawsTransparentBackground):
     44        (WebKit::WebView::suspendActiveDOMObjectsAndAnimations):
     45        (WebKit::WebView::resumeActiveDOMObjectsAndAnimations):
     46        (WebKit::WebView::didCommitLoad):
     47        (WebKit::WebView::updateViewportSize):
     48        (WebKit::WebView::didChangeContentsSize):
     49        (WebKit::WebView::createDrawingAreaProxy):
     50        (WebKit::WebView::setViewNeedsDisplay):
     51        (WebKit::WebView::displayView):
     52        (WebKit::WebView::scrollView):
     53        (WebKit::WebView::viewSize):
     54        (WebKit::WebView::isViewWindowActive):
     55        (WebKit::WebView::isViewFocused):
     56        (WebKit::WebView::isViewVisible):
     57        (WebKit::WebView::isViewInWindow):
     58        (WebKit::WebView::processDidCrash):
     59        (WebKit::WebView::didRelaunchProcess):
     60        (WebKit::WebView::pageClosed):
     61        (WebKit::WebView::toolTipChanged):
     62        (WebKit::WebView::setCursor):
     63        (WebKit::WebView::setCursorHiddenUntilMouseMoves):
     64        (WebKit::WebView::registerEditCommand):
     65        (WebKit::WebView::clearAllEditCommands):
     66        (WebKit::WebView::canUndoRedo):
     67        (WebKit::WebView::executeUndoRedo):
     68        (WebKit::WebView::screenToWindow):
     69        (WebKit::WebView::windowToScreen):
     70        (WebKit::WebView::doneWithKeyEvent):
     71        (WebKit::WebView::doneWithTouchEvent):
     72        (WebKit::WebView::createPopupMenuProxy):
     73        (WebKit::WebView::createContextMenuProxy):
     74        (WebKit::WebView::createColorChooserProxy):
     75        (WebKit::WebView::setFindIndicator):
     76        (WebKit::WebView::enterAcceleratedCompositingMode):
     77        (WebKit::WebView::exitAcceleratedCompositingMode):
     78        (WebKit::WebView::updateAcceleratedCompositingMode):
     79        (WebKit::WebView::didCommitLoadForMainFrame):
     80        (WebKit::WebView::didFinishLoadingDataForCustomRepresentation):
     81        (WebKit::WebView::customRepresentationZoomFactor):
     82        (WebKit::WebView::setCustomRepresentationZoomFactor):
     83        (WebKit::WebView::flashBackingStoreUpdates):
     84        (WebKit::WebView::findStringInCustomRepresentation):
     85        (WebKit::WebView::countStringMatchesInCustomRepresentation):
     86        (WebKit::WebView::updateTextInputState):
     87        (WebKit::WebView::handleDownloadRequest):
     88        (WebKit::WebView::convertToDeviceSpace):
     89        (WebKit::WebView::convertToUserSpace):
     90        (WebKit::WebView::didChangeViewportProperties):
     91        (WebKit::WebView::pageDidRequestScroll):
     92        (WebKit::WebView::didRenderFrame):
     93        (WebKit::WebView::pageTransitionViewportReady):
     94        * UIProcess/efl/WebView.h:
     95        (WebKit):
     96        (WebView):
     97        (WebKit::WebView::pageRef):
     98        (WebKit::WebView::page):
     99        (WebKit::WebView::canScrollView):
     100
    11012013-02-15  Milian Wolff  <milian.wolff@kdab.com>
    2102
  • trunk/Source/WebKit2/PlatformEfl.cmake

    r142750 r143004  
    9090    UIProcess/efl/InputMethodContextEfl.cpp
    9191    UIProcess/efl/NetworkInfoProvider.cpp
    92     UIProcess/efl/PageClientBase.cpp
    93     UIProcess/efl/PageClientLegacyImpl.cpp
    94     UIProcess/efl/PageClientDefaultImpl.cpp
    9592    UIProcess/efl/PageLoadClientEfl.cpp
    9693    UIProcess/efl/PagePolicyClientEfl.cpp
  • trunk/Source/WebKit2/UIProcess/API/efl/EwkView.cpp

    r142758 r143004  
    3131#include "NativeWebMouseEvent.h"
    3232#include "NativeWebWheelEvent.h"
    33 #include "PageClientBase.h"
    34 #include "PageClientDefaultImpl.h"
    35 #include "PageClientLegacyImpl.h"
    3633#include "PageLoadClientEfl.h"
    3734#include "PagePolicyClientEfl.h"
     
    227224    , m_context(context)
    228225    , m_pendingSurfaceResize(false)
    229     , m_pageClient(behavior == DefaultBehavior ? PageClientDefaultImpl::create(this) : PageClientLegacyImpl::create(this))
    230     , m_webView(adoptRef(new WebView(toImpl(m_context->wkContext()), m_pageClient.get(), toImpl(pageGroup), evasObject)))
     226    , m_webView(adoptRef(new WebView(toImpl(m_context->wkContext()), toImpl(pageGroup), this)))
    231227    , m_pageLoadClient(PageLoadClientEfl::create(this))
    232228    , m_pagePolicyClient(PagePolicyClientEfl::create(this))
     
    466462
    467463    drawingArea->setSize(m_size, IntSize());
    468     pageClient()->updateViewportSize();
     464    webView()->updateViewportSize();
    469465}
    470466
  • trunk/Source/WebKit2/UIProcess/API/efl/EwkView.h

    r142758 r143004  
    6060class FormClientEfl;
    6161class InputMethodContextEfl;
    62 class PageClientBase;
    6362class PageLoadClientEfl;
    6463class PagePolicyClientEfl;
     
    210209    unsigned long long informDatabaseQuotaReached(const String& databaseName, const String& displayName, unsigned long long currentQuota, unsigned long long currentOriginUsage, unsigned long long currentDatabaseUsage, unsigned long long expectedUsage);
    211210
    212     WebKit::PageClientBase* pageClient() { return m_pageClient.get(); }
     211    // FIXME: Remove when possible.
     212    WebKit::WebView* webView() { return m_webView.get(); }
    213213
    214214    void setPageScaleFactor(float scaleFactor) { m_pageScaleFactor = scaleFactor; }
     
    273273    WebCore::TransformationMatrix m_userViewportTransform;
    274274    bool m_pendingSurfaceResize;
    275     OwnPtr<WebKit::PageClientBase> m_pageClient;
    276275    RefPtr<WebKit::WebView> m_webView;
    277276    OwnPtr<WebKit::PageLoadClientEfl> m_pageLoadClient;
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp

    r142169 r143004  
    2626#include "FormClientEfl.h"
    2727#include "InputMethodContextEfl.h"
    28 #include "PageClientBase.h"
    2928#include "PageLoadClientEfl.h"
    3029#include "PagePolicyClientEfl.h"
  • trunk/Source/WebKit2/UIProcess/efl/PageLoadClientEfl.cpp

    r142169 r143004  
    2828
    2929#include "EwkView.h"
    30 #include "PageClientBase.h"
    3130#include "WKAPICast.h"
    3231#include "WKFrame.h"
     
    118117
    119118    EwkView* view = toPageLoadClientEfl(clientInfo)->view();
    120     view->pageClient()->didCommitLoad();
     119    view->webView()->didCommitLoad();
    121120}
    122121
  • trunk/Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.h

    r142169 r143004  
    2828
    2929#include "EwkView.h"
    30 #include "PageClientBase.h"
    3130#include "PageViewportControllerClient.h"
    3231#include <wtf/PassOwnPtr.h>
  • trunk/Source/WebKit2/UIProcess/efl/WebPageProxyEfl.cpp

    r141978 r143004  
    3030#include "NativeWebKeyboardEvent.h"
    3131#include "NotImplemented.h"
    32 #include "PageClientBase.h"
    3332#include "WebKitVersion.h"
    3433#include "WebPageMessages.h"
    3534#include "WebProcessProxy.h"
     35#include "WebView.h"
    3636
    3737#include <sys/utsname.h>
     
    4141Evas_Object* WebPageProxy::viewWidget()
    4242{
    43     return static_cast<PageClientBase*>(m_pageClient)->view()->evasObject();
     43    return static_cast<WebView*>(m_pageClient)->evasObject();
    4444}
    4545
  • trunk/Source/WebKit2/UIProcess/efl/WebView.cpp

    r142750 r143004  
    11/*
    22 * Copyright (C) 2013 Intel Corporation. All rights reserved.
     3 * Copyright (C) 2013 Samsung Electronics. All rights reserved.
    34 *
    45 * Redistribution and use in source and binary forms, with or without
     
    2728#include "WebView.h"
    2829
     30#include "DownloadManagerEfl.h"
     31#include "DrawingAreaProxyImpl.h"
     32#include "EwkView.h"
     33#include "InputMethodContextEfl.h"
     34#include "NotImplemented.h"
     35#include "PageViewportController.h"
     36#include "PageViewportControllerClientEfl.h"
     37#include "WebContextMenuProxyEfl.h"
     38#include "WebPageProxy.h"
     39#include "WebPopupMenuProxyEfl.h"
     40#include "ewk_context_private.h"
     41
    2942#if ENABLE(FULLSCREEN_API)
    3043#include "WebFullScreenManagerProxy.h"
    3144#endif
    3245
     46using namespace EwkViewCallbacks;
     47using namespace WebCore;
     48
    3349namespace WebKit {
    3450
    35 WebView::WebView(WebContext* context, PageClient* pageClient, WebPageGroup* pageGroup, Evas_Object* evasObject)
    36     : m_webPageProxy(context->createWebPage(pageClient, pageGroup))
    37     , m_evasObject(evasObject)
    38 {
    39     m_webPageProxy->pageGroup()->preferences()->setAcceleratedCompositingEnabled(true);
    40     m_webPageProxy->pageGroup()->preferences()->setForceCompositingMode(true);
     51WebView::WebView(WebContext* context, WebPageGroup* pageGroup, EwkView* ewkView)
     52    : m_ewkView(ewkView)
     53    , m_page(context->createWebPage(this, pageGroup))
     54{
     55    m_page->pageGroup()->preferences()->setAcceleratedCompositingEnabled(true);
     56    m_page->pageGroup()->preferences()->setForceCompositingMode(true);
    4157
    4258    char* debugVisualsEnvironment = getenv("WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS");
    4359    bool showDebugVisuals = debugVisualsEnvironment && !strcmp(debugVisualsEnvironment, "1");
    44     m_webPageProxy->pageGroup()->preferences()->setCompositingBordersVisible(showDebugVisuals);
    45     m_webPageProxy->pageGroup()->preferences()->setCompositingRepaintCountersVisible(showDebugVisuals);
     60    m_page->pageGroup()->preferences()->setCompositingBordersVisible(showDebugVisuals);
     61    m_page->pageGroup()->preferences()->setCompositingRepaintCountersVisible(showDebugVisuals);
    4662
    4763#if ENABLE(FULLSCREEN_API)
    48     m_webPageProxy->fullScreenManager()->setWebView(m_evasObject);
     64    m_page->fullScreenManager()->setWebView(evasObject());
    4965#endif
    5066}
     
    5268WebView::~WebView()
    5369{
    54     if (m_webPageProxy->isClosed())
     70    if (m_page->isClosed())
    5571        return;
    5672
    57     m_webPageProxy->close();
     73    m_page->close();
    5874}
    5975
    6076void WebView::initialize()
    6177{
    62     m_webPageProxy->initializeWebPage();
     78    m_page->initializeWebPage();
     79}
     80
     81Evas_Object* WebView::evasObject()
     82{
     83    return m_ewkView->evasObject();
    6384}
    6485
    6586void WebView::setThemePath(WKStringRef theme)
    6687{
    67     m_webPageProxy->setThemePath(toWTFString(theme).utf8().data());
     88    m_page->setThemePath(toWTFString(theme).utf8().data());
    6889}
    6990
    7091void WebView::setDrawsBackground(bool drawsBackground)
    7192{
    72     m_webPageProxy->setDrawsBackground(drawsBackground);
     93    m_page->setDrawsBackground(drawsBackground);
    7394}
    7495
    7596bool WebView::drawsBackground() const
    7697{
    77     return m_webPageProxy->drawsBackground();
     98    return m_page->drawsBackground();
    7899}
    79100
    80101void WebView::setDrawsTransparentBackground(bool transparentBackground)
    81102{
    82     m_webPageProxy->setDrawsTransparentBackground(transparentBackground);
     103    m_page->setDrawsTransparentBackground(transparentBackground);
    83104}
    84105
    85106bool WebView::drawsTransparentBackground() const
    86107{
    87     return m_webPageProxy->drawsTransparentBackground();
     108    return m_page->drawsTransparentBackground();
    88109}
    89110
    90111void WebView::suspendActiveDOMObjectsAndAnimations()
    91112{
    92     m_webPageProxy->suspendActiveDOMObjectsAndAnimations();
     113    m_page->suspendActiveDOMObjectsAndAnimations();
    93114}
    94115
    95116void WebView::resumeActiveDOMObjectsAndAnimations()
    96117{
    97     m_webPageProxy->resumeActiveDOMObjectsAndAnimations();
     118    m_page->resumeActiveDOMObjectsAndAnimations();
    98119}
    99120
     
    103124}
    104125
     126void WebView::didCommitLoad()
     127{
     128    if (m_page->useFixedLayout()) {
     129        ASSERT(m_pageViewportController);
     130        m_pageViewportController->didCommitLoad();
     131    } else
     132        m_ewkView->scheduleUpdateDisplay();
     133}
     134
     135void WebView::updateViewportSize()
     136{
     137    if (m_page->useFixedLayout()) {
     138        if (!m_pageViewportControllerClient) {
     139            m_pageViewportControllerClient = PageViewportControllerClientEfl::create(m_ewkView);
     140            m_pageViewportController = adoptPtr(new PageViewportController(page(), m_pageViewportControllerClient.get()));
     141        }
     142        m_pageViewportControllerClient->updateViewportSize();
     143    } else
     144        m_page->drawingArea()->setVisibleContentsRect(IntRect(roundedIntPoint(m_ewkView->pagePosition()), m_ewkView->size()), FloatPoint());
     145}
     146
     147void WebView::didChangeContentsSize(const WebCore::IntSize& size)
     148{
     149    if (m_page->useFixedLayout()) {
     150        ASSERT(m_pageViewportController);
     151        m_pageViewportController->didChangeContentsSize(size);
     152    }
     153    m_client.didChangeContentsSize(this, size);
     154}
     155
     156// Page Client
     157
     158PassOwnPtr<DrawingAreaProxy> WebView::createDrawingAreaProxy()
     159{
     160    OwnPtr<DrawingAreaProxy> drawingArea = DrawingAreaProxyImpl::create(page());
     161    return drawingArea.release();
     162}
     163
    105164void WebView::setViewNeedsDisplay(const WebCore::IntRect& area)
    106165{
     
    108167}
    109168
    110 void WebView::didChangeContentsSize(const WebCore::IntSize& size)
    111 {
    112     m_client.didChangeContentsSize(this, size);
     169void WebView::displayView()
     170{
     171    notImplemented();
     172}
     173
     174void WebView::scrollView(const WebCore::IntRect& scrollRect, const WebCore::IntSize&)
     175{
     176    setViewNeedsDisplay(scrollRect);
     177}
     178
     179WebCore::IntSize WebView::viewSize()
     180{
     181    return m_ewkView->size();
     182}
     183
     184bool WebView::isViewWindowActive()
     185{
     186    notImplemented();
     187    return true;
     188}
     189
     190bool WebView::isViewFocused()
     191{
     192    return m_ewkView->isFocused();
     193}
     194
     195bool WebView::isViewVisible()
     196{
     197    return m_ewkView->isVisible();
     198}
     199
     200bool WebView::isViewInWindow()
     201{
     202    notImplemented();
     203    return true;
     204}
     205
     206void WebView::processDidCrash()
     207{
     208    // Check if loading was ongoing, when web process crashed.
     209    double loadProgress = ewk_view_load_progress_get(m_ewkView->evasObject());
     210    if (loadProgress >= 0 && loadProgress < 1) {
     211        loadProgress = 1;
     212        m_ewkView->smartCallback<LoadProgress>().call(&loadProgress);
     213    }
     214
     215    m_ewkView->smartCallback<TooltipTextUnset>().call();
     216
     217    bool handled = false;
     218    m_ewkView->smartCallback<WebProcessCrashed>().call(&handled);
     219
     220    if (!handled) {
     221        CString url = m_page->urlAtProcessExit().utf8();
     222        WARN("WARNING: The web process experienced a crash on '%s'.\n", url.data());
     223
     224        // Display an error page
     225        ewk_view_html_string_load(m_ewkView->evasObject(), "The web process has crashed.", 0, url.data());
     226    }
     227}
     228
     229void WebView::didRelaunchProcess()
     230{
     231    const char* themePath = m_ewkView->themePath();
     232    if (themePath)
     233        m_page->setThemePath(themePath);
     234}
     235
     236void WebView::pageClosed()
     237{
     238    notImplemented();
     239}
     240
     241void WebView::toolTipChanged(const String&, const String& newToolTip)
     242{
     243    if (newToolTip.isEmpty())
     244        m_ewkView->smartCallback<TooltipTextUnset>().call();
     245    else
     246        m_ewkView->smartCallback<TooltipTextSet>().call(newToolTip);
     247}
     248
     249void WebView::setCursor(const Cursor& cursor)
     250{
     251    m_ewkView->setCursor(cursor);
     252}
     253
     254void WebView::setCursorHiddenUntilMouseMoves(bool)
     255{
     256    notImplemented();
     257}
     258
     259void WebView::registerEditCommand(PassRefPtr<WebEditCommandProxy> command, WebPageProxy::UndoOrRedo undoOrRedo)
     260{
     261    m_undoController.registerEditCommand(command, undoOrRedo);
     262}
     263
     264void WebView::clearAllEditCommands()
     265{
     266    m_undoController.clearAllEditCommands();
     267}
     268
     269bool WebView::canUndoRedo(WebPageProxy::UndoOrRedo undoOrRedo)
     270{
     271    return m_undoController.canUndoRedo(undoOrRedo);
     272}
     273
     274void WebView::executeUndoRedo(WebPageProxy::UndoOrRedo undoOrRedo)
     275{
     276    m_undoController.executeUndoRedo(undoOrRedo);
     277}
     278
     279IntPoint WebView::screenToWindow(const IntPoint& point)
     280{
     281    notImplemented();
     282    return point;
     283}
     284
     285IntRect WebView::windowToScreen(const IntRect&)
     286{
     287    notImplemented();
     288    return IntRect();
     289}
     290
     291void WebView::doneWithKeyEvent(const NativeWebKeyboardEvent&, bool)
     292{
     293    notImplemented();
     294}
     295
     296#if ENABLE(TOUCH_EVENTS)
     297void WebView::doneWithTouchEvent(const NativeWebTouchEvent&, bool /*wasEventHandled*/)
     298{
     299    notImplemented();
     300}
     301#endif
     302
     303PassRefPtr<WebPopupMenuProxy> WebView::createPopupMenuProxy(WebPageProxy* page)
     304{
     305    return WebPopupMenuProxyEfl::create(m_ewkView, page);
     306}
     307
     308PassRefPtr<WebContextMenuProxy> WebView::createContextMenuProxy(WebPageProxy* page)
     309{
     310    return WebContextMenuProxyEfl::create(m_ewkView, page);
     311}
     312
     313#if ENABLE(INPUT_TYPE_COLOR)
     314PassRefPtr<WebColorChooserProxy> WebView::createColorChooserProxy(WebPageProxy*, const WebCore::Color&, const WebCore::IntRect&)
     315{
     316    notImplemented();
     317    return 0;
     318}
     319#endif
     320
     321void WebView::setFindIndicator(PassRefPtr<FindIndicator>, bool, bool)
     322{
     323    notImplemented();
     324}
     325
     326void WebView::enterAcceleratedCompositingMode(const LayerTreeContext&)
     327{
     328    m_ewkView->enterAcceleratedCompositingMode();
     329}
     330
     331void WebView::exitAcceleratedCompositingMode()
     332{
     333    m_ewkView->exitAcceleratedCompositingMode();
     334}
     335
     336void WebView::updateAcceleratedCompositingMode(const LayerTreeContext&)
     337{
     338    notImplemented();
     339}
     340
     341void WebView::didCommitLoadForMainFrame(bool)
     342{
     343    notImplemented();
     344}
     345
     346void WebView::didFinishLoadingDataForCustomRepresentation(const String&, const CoreIPC::DataReference&)
     347{
     348    notImplemented();
     349}
     350
     351double WebView::customRepresentationZoomFactor()
     352{
     353    notImplemented();
     354    return 0;
     355}
     356
     357void WebView::setCustomRepresentationZoomFactor(double)
     358{
     359    notImplemented();
     360}
     361
     362void WebView::flashBackingStoreUpdates(const Vector<IntRect>&)
     363{
     364    notImplemented();
     365}
     366
     367void WebView::findStringInCustomRepresentation(const String&, FindOptions, unsigned)
     368{
     369    notImplemented();
     370}
     371
     372void WebView::countStringMatchesInCustomRepresentation(const String&, FindOptions, unsigned)
     373{
     374    notImplemented();
     375}
     376
     377void WebView::updateTextInputState()
     378{
     379    InputMethodContextEfl* inputMethodContext = m_ewkView->inputMethodContext();
     380    if (inputMethodContext)
     381        inputMethodContext->updateTextInputState();
     382}
     383
     384void WebView::handleDownloadRequest(DownloadProxy* download)
     385{
     386    EwkContext* context = m_ewkView->ewkContext();
     387    context->downloadManager()->registerDownloadJob(toAPI(download), m_ewkView);
     388}
     389
     390FloatRect WebView::convertToDeviceSpace(const FloatRect& userRect)
     391{
     392    if (m_page->useFixedLayout()) {
     393        FloatRect result = userRect;
     394        result.scale(m_page->deviceScaleFactor());
     395        return result;
     396    }
     397    // Legacy mode.
     398    notImplemented();
     399    return userRect;
     400}
     401
     402FloatRect WebView::convertToUserSpace(const FloatRect& deviceRect)
     403{
     404    if (m_page->useFixedLayout()) {
     405        FloatRect result = deviceRect;
     406        result.scale(1 / m_page->deviceScaleFactor());
     407        return result;
     408    }
     409    // Legacy mode.
     410    notImplemented();
     411    return deviceRect;
     412}
     413
     414void WebView::didChangeViewportProperties(const WebCore::ViewportAttributes& attr)
     415{
     416    if (m_page->useFixedLayout()) {
     417        ASSERT(m_pageViewportController);
     418        m_pageViewportController->didChangeViewportAttributes(attr);
     419    } else
     420        m_ewkView->scheduleUpdateDisplay();
     421}
     422
     423void WebView::pageDidRequestScroll(const IntPoint& position)
     424{
     425    if (m_page->useFixedLayout()) {
     426        ASSERT(m_pageViewportController);
     427        m_pageViewportController->pageDidRequestScroll(position);
     428    } else {
     429        m_ewkView->setPagePosition(FloatPoint(position));
     430        m_ewkView->scheduleUpdateDisplay();
     431    }
     432}
     433
     434void WebView::didRenderFrame(const WebCore::IntSize& contentsSize, const WebCore::IntRect& coveredRect)
     435{
     436    if (m_page->useFixedLayout()) {
     437        ASSERT(m_pageViewportController);
     438        m_pageViewportController->didRenderFrame(contentsSize, coveredRect);
     439    } else
     440        m_ewkView->scheduleUpdateDisplay();
     441}
     442
     443void WebView::pageTransitionViewportReady()
     444{
     445    if (m_page->useFixedLayout()) {
     446        ASSERT(m_pageViewportController);
     447        m_pageViewportController->pageTransitionViewportReady();
     448    } else
     449        m_ewkView->scheduleUpdateDisplay();
    113450}
    114451
  • trunk/Source/WebKit2/UIProcess/efl/WebView.h

    r142750 r143004  
    11/*
    22 * Copyright (C) 2013 Intel Corporation. All rights reserved.
     3 * Copyright (C) 2013 Samsung Electronics. All rights reserved.
    34 *
    45 * Redistribution and use in source and binary forms, with or without
     
    2829
    2930#include "APIObject.h"
     31#include "DefaultUndoController.h"
    3032#include "PageClient.h"
    3133#include "WebContext.h"
     
    3537#include "WebViewClient.h"
    3638
     39class EwkView;
     40
    3741namespace WebKit {
    3842
    39 class WebView : public APIObject {
     43class PageViewportController;
     44class PageViewportControllerClientEfl;
     45
     46class WebView : public APIObject, public PageClient {
    4047public:
    4148    static const Type APIType = TypeView;
    4249
    43     WebView(WebContext*, PageClient*, WebPageGroup*, Evas_Object*);
     50    WebView(WebContext*, WebPageGroup*, EwkView*);
    4451    virtual ~WebView();
    4552
    4653    void initialize();
    4754
    48     WKPageRef pageRef() const { return toAPI(m_webPageProxy.get()); }
     55    WKPageRef pageRef() const { return toAPI(m_page.get()); }
    4956
    5057    void setDrawsBackground(bool);
     
    6067    // View client.
    6168    void initializeClient(const WKViewClient*);
    62     void setViewNeedsDisplay(const WebCore::IntRect&);
     69
     70    // FIXME: Remove when possible.
     71    Evas_Object* evasObject();
     72    WebPageProxy* page() { return m_page.get(); }
     73
     74    void didCommitLoad();
     75    void updateViewportSize();
    6376    void didChangeContentsSize(const WebCore::IntSize&);
    6477
    65     // FIXME: Remove when possible.
    66     Evas_Object* evasObject() { return m_evasObject; }
    67     WebPageProxy* page() { return m_webPageProxy.get(); }
     78private:
     79    // PageClient
     80    PassOwnPtr<DrawingAreaProxy> createDrawingAreaProxy() OVERRIDE;
     81
     82    void setViewNeedsDisplay(const WebCore::IntRect&) OVERRIDE;
     83
     84    void displayView() OVERRIDE;
     85
     86    bool canScrollView() OVERRIDE { return false; }
     87    void scrollView(const WebCore::IntRect&, const WebCore::IntSize&) OVERRIDE;
     88
     89    WebCore::IntSize viewSize() OVERRIDE;
     90
     91    bool isViewWindowActive() OVERRIDE;
     92    bool isViewFocused() OVERRIDE;
     93    bool isViewVisible() OVERRIDE;
     94    bool isViewInWindow() OVERRIDE;
     95
     96    void processDidCrash() OVERRIDE;
     97    void didRelaunchProcess() OVERRIDE;
     98    void pageClosed() OVERRIDE;
     99
     100    void toolTipChanged(const String&, const String&) OVERRIDE;
     101
     102    void pageDidRequestScroll(const WebCore::IntPoint&) OVERRIDE;
     103    void didRenderFrame(const WebCore::IntSize& contentsSize, const WebCore::IntRect& coveredRect) OVERRIDE;
     104    void pageTransitionViewportReady() OVERRIDE;
     105
     106    void setCursor(const WebCore::Cursor&) OVERRIDE;
     107    void setCursorHiddenUntilMouseMoves(bool) OVERRIDE;
     108
     109    void didChangeViewportProperties(const WebCore::ViewportAttributes&) OVERRIDE;
     110
     111    void registerEditCommand(PassRefPtr<WebEditCommandProxy>, WebPageProxy::UndoOrRedo) OVERRIDE;
     112    void clearAllEditCommands() OVERRIDE;
     113    bool canUndoRedo(WebPageProxy::UndoOrRedo) OVERRIDE;
     114    void executeUndoRedo(WebPageProxy::UndoOrRedo) OVERRIDE;
     115
     116    WebCore::FloatRect convertToDeviceSpace(const WebCore::FloatRect&) OVERRIDE;
     117    WebCore::FloatRect convertToUserSpace(const WebCore::FloatRect&) OVERRIDE;
     118    WebCore::IntPoint screenToWindow(const WebCore::IntPoint&) OVERRIDE;
     119    WebCore::IntRect windowToScreen(const WebCore::IntRect&) OVERRIDE;
     120
     121    void updateTextInputState() OVERRIDE;
     122
     123    void handleDownloadRequest(DownloadProxy*) OVERRIDE;
     124
     125    void doneWithKeyEvent(const NativeWebKeyboardEvent&, bool) OVERRIDE;
     126#if ENABLE(TOUCH_EVENTS)
     127    void doneWithTouchEvent(const NativeWebTouchEvent&, bool wasEventHandled) OVERRIDE;
     128#endif
     129
     130    PassRefPtr<WebPopupMenuProxy> createPopupMenuProxy(WebPageProxy*) OVERRIDE;
     131    PassRefPtr<WebContextMenuProxy> createContextMenuProxy(WebPageProxy*) OVERRIDE;
     132#if ENABLE(INPUT_TYPE_COLOR)
     133    PassRefPtr<WebColorChooserProxy> createColorChooserProxy(WebPageProxy*, const WebCore::Color& initialColor, const WebCore::IntRect&) OVERRIDE;
     134#endif
     135
     136    void setFindIndicator(PassRefPtr<FindIndicator>, bool, bool) OVERRIDE;
     137
     138    void enterAcceleratedCompositingMode(const LayerTreeContext&) OVERRIDE;
     139    void exitAcceleratedCompositingMode() OVERRIDE;
     140    void updateAcceleratedCompositingMode(const LayerTreeContext&) OVERRIDE;
     141
     142    void didCommitLoadForMainFrame(bool) OVERRIDE;
     143    void didFinishLoadingDataForCustomRepresentation(const String&, const CoreIPC::DataReference&) OVERRIDE;
     144
     145    double customRepresentationZoomFactor() OVERRIDE;
     146    void setCustomRepresentationZoomFactor(double) OVERRIDE;
     147
     148    void flashBackingStoreUpdates(const Vector<WebCore::IntRect>&) OVERRIDE;
     149    void findStringInCustomRepresentation(const String&, FindOptions, unsigned) OVERRIDE;
     150    void countStringMatchesInCustomRepresentation(const String&, FindOptions, unsigned) OVERRIDE;
    68151
    69152private:
     
    71154
    72155    WebViewClient m_client;
    73     RefPtr<WebPageProxy> m_webPageProxy;
    74     Evas_Object* m_evasObject;
     156    EwkView* m_ewkView;
     157    RefPtr<WebPageProxy> m_page;
     158    DefaultUndoController m_undoController;
     159    // FIXME: Remove when possible.
     160    OwnPtr<WebKit::PageViewportControllerClientEfl> m_pageViewportControllerClient;
     161    OwnPtr<WebKit::PageViewportController> m_pageViewportController;
    75162};
    76163
Note: See TracChangeset for help on using the changeset viewer.