summaryrefslogtreecommitdiff
path: root/Source/WebKit/efl
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2012-11-22 09:09:45 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2012-11-22 09:10:13 +0100
commit470286ecfe79d59df14944e5b5d34630fc739391 (patch)
tree43983212872e06cebefd2ae474418fa2908ca54c /Source/WebKit/efl
parent23037105e948c2065da5a937d3a2396b0ff45c1e (diff)
downloadqtwebkit-470286ecfe79d59df14944e5b5d34630fc739391.tar.gz
Imported WebKit commit e89504fa9195b2063b2530961d4b73dd08de3242 (http://svn.webkit.org/repository/webkit/trunk@135485)
Change-Id: I03774e5ac79721c13ffa30d152537a74d0b12e66 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'Source/WebKit/efl')
-rw-r--r--Source/WebKit/efl/ChangeLog142
-rw-r--r--Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp17
-rw-r--r--Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h1
-rw-r--r--Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp5
-rw-r--r--Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h1
-rw-r--r--Source/WebKit/efl/ewk/ewk_frame.cpp5
-rw-r--r--Source/WebKit/efl/ewk/ewk_frame_private.h7
-rw-r--r--Source/WebKit/efl/ewk/ewk_paint_context.cpp15
-rw-r--r--Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp2
-rw-r--r--Source/WebKit/efl/ewk/ewk_view.cpp62
-rw-r--r--Source/WebKit/efl/ewk/ewk_view.h22
-rw-r--r--Source/WebKit/efl/ewk/ewk_view_private.h4
-rw-r--r--Source/WebKit/efl/ewk/ewk_view_single.cpp9
-rw-r--r--Source/WebKit/efl/tests/test_ewk_view.cpp23
14 files changed, 305 insertions, 10 deletions
diff --git a/Source/WebKit/efl/ChangeLog b/Source/WebKit/efl/ChangeLog
index f6117da03..2f97483fa 100644
--- a/Source/WebKit/efl/ChangeLog
+++ b/Source/WebKit/efl/ChangeLog
@@ -1,3 +1,145 @@
+2012-11-21 Allan Sandfeld Jensen <allan.jensen@digia.com>
+
+ Disambiguate innerNodeFramePoint and mainFramePoint
+ https://bugs.webkit.org/show_bug.cgi?id=98139
+
+ Reviewed by Julien Chaffraix.
+
+ * ewk/ewk_frame.cpp:
+ (ewk_frame_hit_test_new):
+
+2012-11-20 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r135295.
+ http://trac.webkit.org/changeset/135295
+ https://bugs.webkit.org/show_bug.cgi?id=102834
+
+ This patch causes assertion to some layout tests on chromium
+ (Requested by jianli on #webkit).
+
+ * ewk/ewk_frame.cpp:
+ (ewk_frame_uri_set):
+ (_ewk_frame_contents_set_internal):
+
+2012-11-20 James Simonsen <simonjam@chromium.org>
+
+ Consolidate FrameLoader::load() into one function taking a FrameLoadRequest
+ https://bugs.webkit.org/show_bug.cgi?id=102151
+
+ Reviewed by Adam Barth.
+
+ * ewk/ewk_frame.cpp:
+ (_ewk_frame_contents_set_internal):
+
+2012-11-19 Tony Chang <tony@chromium.org>
+
+ Remove 'is' prefix from WebSettings::isWebSecurityEnabled and WebSettings::isSpatialNavigationEnabled
+ https://bugs.webkit.org/show_bug.cgi?id=102548
+
+ Reviewed by Adam Barth.
+
+ Rename call to WebCore::Settings.
+
+ * ewk/ewk_view.cpp:
+ (_ewk_view_priv_new):
+
+2012-11-16 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r134694.
+ http://trac.webkit.org/changeset/134694
+ https://bugs.webkit.org/show_bug.cgi?id=102481
+
+ it made API test crash on EFL port (Requested by gyuyoung on
+ #webkit).
+
+ * DefaultTheme/default.edc:
+
+2012-11-15 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ Rename member vars in ViewportArgument to match css-device-adapt
+ https://bugs.webkit.org/show_bug.cgi?id=102355
+
+ Reviewed by Gyuyoung Kim.
+
+ * ewk/ewk_view.cpp:
+ (_ewk_view_priv_new): Update to reflect name change.
+
+2012-11-15 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Unreviewed. Fix build break when using --no-tiled-backing-store option.
+
+ * ewk/ewk_frame_private.h:
+ (WebCore):
+
+2012-11-14 Ryuan Choi <ryuan.choi@gmail.com>
+
+ [EFL] Port tiled backing store
+ https://bugs.webkit.org/show_bug.cgi?id=71352
+
+ Reviewed by Gyuyoung Kim.
+
+ Added ewk_view_setting_tiled_backing_store_enabled_{get|set} to give possibility
+ to use WebCore's tiled backing store in WebKit/Efl port. This makes WebKit/Efl
+ compliant with WebKit's generic solution of tiled backing store.
+
+ * WebCoreSupport/ChromeClientEfl.cpp:
+ (WebCore::ChromeClientEfl::invalidateRootView):
+ (WebCore):
+ (WebCore::ChromeClientEfl::visibleRectForTiledBackingStore):
+ * WebCoreSupport/ChromeClientEfl.h:
+ (ChromeClientEfl):
+ * ewk/ewk_frame_private.h:
+ Declared missing classes which used in this file.
+ * ewk/ewk_paint_context.cpp:
+ (ewk_paint_context_paint): Implemented to paint tiled backing store
+ * ewk/ewk_view.cpp:
+ (ewk_view_setting_tiled_backing_store_enabled_set):
+ Added API to enable/disable the WebCore's tiled backing store.
+ (ewk_view_setting_tiled_backing_store_enabled_get):
+ Added API to query if the WebCore's tiled backing store is enabled.
+ (ewk_view_tiled_backing_store_invalidate):
+ * ewk/ewk_view.h:
+ * ewk/ewk_view_private.h:
+ * ewk/ewk_view_single.cpp:
+ (_ewk_view_single_smart_repaints_process):
+ Implemented to update visible area of tiled backing store.
+ * tests/test_ewk_view.cpp: Added test case of ewk_view_setting_tiled_backing_store.
+ (TEST_F):
+
+2012-11-14 Ryuan Choi <ryuan.choi@gmail.com>
+
+ [EFL] Refactor theme to choose whether to support foreground color of selection
+ https://bugs.webkit.org/show_bug.cgi?id=102037
+
+ Reviewed by Gyuyoung Kim.
+
+ * DefaultTheme/default.edc:
+ Refactored color classes from active/inactive to foreground/background.
+
+2012-11-12 KyungTae Kim <ktf.kim@samsung.com>
+
+ [EFL] In ewk_tiled_backing_store_pre_render_region, the 'slicer' may be uninitialized
+ https://bugs.webkit.org/show_bug.cgi?id=102038
+
+ Reviewed by Gyuyoung Kim.
+
+ To fix build warning -Wuninitialized,
+ initialize the 'slicer' in ewk_tiled_backing_store_pre_render_region.
+
+ * ewk/ewk_tiled_backing_store.cpp:
+ (ewk_tiled_backing_store_pre_render_region):
+
+2012-11-09 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+
+ [EFL][DRT] Force a repaint before tracking repaint rects.
+ https://bugs.webkit.org/show_bug.cgi?id=101743
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * WebCoreSupport/DumpRenderTreeSupportEfl.cpp:
+ (DumpRenderTreeSupportEfl::forceLayout): Added.
+ * WebCoreSupport/DumpRenderTreeSupportEfl.h:
+
2012-11-07 Emil A Eklund <eae@chromium.org>
Unreviewed EFL build fix.
diff --git a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
index 537424a94..0fe0ffab6 100644
--- a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
+++ b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
@@ -515,9 +515,14 @@ void ChromeClientEfl::invalidateContents(const IntRect& /*updateRect*/, bool /*i
notImplemented();
}
-void ChromeClientEfl::invalidateRootView(const IntRect& /*updateRect*/, bool /*immediate*/)
+void ChromeClientEfl::invalidateRootView(const IntRect& updateRect, bool /*immediate*/)
{
+#if USE(TILED_BACKING_STORE)
+ ewk_view_tiled_backing_store_invalidate(m_view, updateRect);
+#else
+ UNUSED_PARAM(updateRect);
notImplemented();
+#endif
}
void ChromeClientEfl::invalidateContentsAndRootView(const IntRect& updateRect, bool /*immediate*/)
@@ -653,6 +658,16 @@ void ChromeClientEfl::delegatedScrollRequested(const IntPoint&)
{
notImplemented();
}
+
+IntRect ChromeClientEfl::visibleRectForTiledBackingStore() const
+{
+ WebCore::FloatRect rect = ewk_view_page_rect_get(m_view);
+ const Evas_Object* frame = ewk_view_frame_main_get(m_view);
+
+ int x, y;
+ ewk_frame_scroll_pos_get(frame, &x, &y);
+ return IntRect(x, y, rect.width(), rect.height());
+}
#endif
}
diff --git a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h
index 68da45a8a..ab10778fa 100644
--- a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h
+++ b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h
@@ -182,6 +182,7 @@ public:
#if USE(TILED_BACKING_STORE)
virtual void delegatedScrollRequested(const IntPoint& scrollPoint);
+ virtual IntRect visibleRectForTiledBackingStore() const;
#endif
Evas_Object* m_view;
diff --git a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp
index b045ab042..7ea2721d8 100644
--- a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp
+++ b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp
@@ -399,6 +399,11 @@ void DumpRenderTreeSupportEfl::setSelectTrailingWhitespaceEnabled(Evas_Object* e
editorClient->setSelectTrailingWhitespaceEnabled(enabled);
}
+void DumpRenderTreeSupportEfl::forceLayout(Evas_Object* ewkFrame)
+{
+ ewk_frame_force_layout(ewkFrame);
+}
+
void DumpRenderTreeSupportEfl::setTracksRepaints(Evas_Object* ewkFrame, bool enabled)
{
DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame);
diff --git a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h
index 59a63b4b1..80277d51a 100644
--- a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h
+++ b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h
@@ -87,6 +87,7 @@ public:
static void setSmartInsertDeleteEnabled(Evas_Object* ewkView, bool enabled);
static void setSelectTrailingWhitespaceEnabled(Evas_Object* ewkView, bool enabled);
+ static void forceLayout(Evas_Object* ewkFrame);
static void setTracksRepaints(Evas_Object* ewkFrame, bool enabled);
static void resetTrackedRepaints(Evas_Object* ewkFrame);
static bool isTrackingRepaints(const Evas_Object* ewkFrame);
diff --git a/Source/WebKit/efl/ewk/ewk_frame.cpp b/Source/WebKit/efl/ewk/ewk_frame.cpp
index 738a93918..dec55d698 100644
--- a/Source/WebKit/efl/ewk/ewk_frame.cpp
+++ b/Source/WebKit/efl/ewk/ewk_frame.cpp
@@ -702,8 +702,9 @@ Ewk_Hit_Test* ewk_frame_hit_test_new(const Evas_Object* ewkFrame, int x, int y)
return 0;
Ewk_Hit_Test* hitTest = new Ewk_Hit_Test;
- hitTest->x = result.point().x();
- hitTest->y = result.point().y();
+ // FIXME: This should probably use pointInMainFrame, if it is to match the documentation of ewk_hit_test.
+ hitTest->x = result.pointInInnerNodeFrame().x();
+ hitTest->y = result.pointInInnerNodeFrame().y();
#if 0
// FIXME
hitTest->bounding_box.x = result.boundingBox().x();
diff --git a/Source/WebKit/efl/ewk/ewk_frame_private.h b/Source/WebKit/efl/ewk/ewk_frame_private.h
index 4f5f0e40e..d841f2a50 100644
--- a/Source/WebKit/efl/ewk/ewk_frame_private.h
+++ b/Source/WebKit/efl/ewk/ewk_frame_private.h
@@ -26,10 +26,15 @@
#include <Evas.h>
#include <wtf/PassRefPtr.h>
#include <wtf/Vector.h>
+#include <wtf/text/WTFString.h>
namespace WebCore {
-class Widget;
+class HistoryItem;
+class HTMLPlugInElement;
+class KURL;
class Frame;
+class IntSize;
+class Widget;
}
Evas_Object* ewk_frame_add(Evas* canvas);
diff --git a/Source/WebKit/efl/ewk/ewk_paint_context.cpp b/Source/WebKit/efl/ewk/ewk_paint_context.cpp
index bdbd899bc..c19d13811 100644
--- a/Source/WebKit/efl/ewk/ewk_paint_context.cpp
+++ b/Source/WebKit/efl/ewk/ewk_paint_context.cpp
@@ -20,6 +20,7 @@
#include "config.h"
+#include "TiledBackingStore.h"
#include "ewk_paint_context_private.h"
#include "ewk_private.h"
@@ -158,6 +159,20 @@ void ewk_paint_context_paint(Ewk_Paint_Context* context, WebCore::FrameView* vie
WebCore::IntRect paintArea(*area);
+#if USE(TILED_BACKING_STORE)
+ if (view->frame()->tiledBackingStore()) {
+ int scrollX = view->scrollX();
+ int scrollY = view->scrollY();
+
+ context->graphicContext->translate(-scrollX, -scrollY);
+
+ paintArea.move(scrollX, scrollY);
+
+ view->frame()->tiledBackingStore()->paint(context->graphicContext.get(), paintArea);
+ return;
+ }
+#endif
+
if (view->isTransparent())
context->graphicContext->clearRect(paintArea);
view->paint(context->graphicContext.get(), paintArea);
diff --git a/Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp b/Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp
index ddae17347..1c5087978 100644
--- a/Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp
+++ b/Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp
@@ -1855,6 +1855,8 @@ bool ewk_tiled_backing_store_pre_render_region(Evas_Object* ewkBackingStore, Eva
zoom = ROUNDED_ZOOM(priv->view.tile.width, zoom);
Eina_Tile_Grid_Slicer slicer;
+ memset(&slicer, 0, sizeof(Eina_Tile_Grid_Slicer));
+
if (!eina_tile_grid_slicer_setup(&slicer, x, y, width, height, tileWidth, tileHeight)) {
ERR("could not setup grid slicer for %d,%d+%dx%d tile=%dx%d",
x, y, width, height, tileWidth, tileHeight);
diff --git a/Source/WebKit/efl/ewk/ewk_view.cpp b/Source/WebKit/efl/ewk/ewk_view.cpp
index b7a84b1f9..6816a877f 100644
--- a/Source/WebKit/efl/ewk/ewk_view.cpp
+++ b/Source/WebKit/efl/ewk/ewk_view.cpp
@@ -36,6 +36,7 @@
#include "EflScreenUtilities.h"
#include "EventHandler.h"
#include "FocusController.h"
+#include "Frame.h"
#include "FrameLoaderClientEfl.h"
#include "FrameView.h"
#include "GraphicsContext.h"
@@ -57,6 +58,7 @@
#include "RenderThemeEfl.h"
#include "ResourceHandle.h"
#include "Settings.h"
+#include "TiledBackingStore.h"
#include "c_instance.h"
#include "ewk_contextmenu_private.h"
#include "ewk_frame.h"
@@ -802,12 +804,13 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* smartData)
WebCore::LayoutMilestones layoutMilestones = WebCore::DidFirstLayout | WebCore::DidFirstVisuallyNonEmptyLayout;
priv->page->addLayoutMilestones(layoutMilestones);
+ // FIXME: Noone is supposed to do this manually.
priv->viewportArguments.width = WebCore::ViewportArguments::ValueAuto;
priv->viewportArguments.height = WebCore::ViewportArguments::ValueAuto;
- priv->viewportArguments.initialScale = WebCore::ViewportArguments::ValueAuto;
- priv->viewportArguments.minimumScale = WebCore::ViewportArguments::ValueAuto;
- priv->viewportArguments.maximumScale = WebCore::ViewportArguments::ValueAuto;
- priv->viewportArguments.userScalable = true;
+ priv->viewportArguments.zoom = WebCore::ViewportArguments::ValueAuto;
+ priv->viewportArguments.minZoom = WebCore::ViewportArguments::ValueAuto;
+ priv->viewportArguments.maxZoom = WebCore::ViewportArguments::ValueAuto;
+ priv->viewportArguments.userZoom = true;
priv->pageSettings->setLoadsImagesAutomatically(true);
priv->pageSettings->setDefaultTextEncodingName("iso-8859-1");
@@ -886,7 +889,7 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* smartData)
priv->settings.resizableTextareas = priv->pageSettings->textAreasAreResizable();
priv->settings.privateBrowsing = priv->pageSettings->privateBrowsingEnabled();
priv->settings.caretBrowsing = priv->pageSettings->caretBrowsingEnabled();
- priv->settings.spatialNavigation = priv->pageSettings->isSpatialNavigationEnabled();
+ priv->settings.spatialNavigation = priv->pageSettings->spatialNavigationEnabled();
priv->settings.localStorage = priv->pageSettings->localStorageEnabled();
priv->settings.offlineAppCache = true; // XXX no function to read setting; this keeps the original setting
priv->settings.pageCache = priv->pageSettings->usesPageCache();
@@ -4754,6 +4757,55 @@ Ewk_Context_Menu* ewk_view_context_menu_get(const Evas_Object* ewkView)
return priv->contextMenu;
}
+Eina_Bool ewk_view_setting_tiled_backing_store_enabled_set(Evas_Object* ewkView, Eina_Bool enable)
+{
+#if USE(TILED_BACKING_STORE)
+ EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
+ EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
+
+ priv->pageSettings->setTiledBackingStoreEnabled(enable);
+
+ return true;
+#else
+ UNUSED_PARAM(ewkView);
+ UNUSED_PARAM(enable);
+ return false;
+#endif
+}
+
+Eina_Bool ewk_view_setting_tiled_backing_store_enabled_get(Evas_Object* ewkView)
+{
+#if USE(TILED_BACKING_STORE)
+ EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
+ EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
+
+ return priv->pageSettings->tiledBackingStoreEnabled();
+#else
+ UNUSED_PARAM(ewkView);
+ return false;
+#endif
+}
+
+#if USE(TILED_BACKING_STORE)
+/**
+ * @internal
+ * Invalidate given area to repaint. The backing store will mark tiles that are
+ * in the area as dirty.
+ *
+ * @param ewkView View.
+ * @param area Area to invalidate
+ */
+void ewk_view_tiled_backing_store_invalidate(Evas_Object* ewkView, const WebCore::IntRect& area)
+{
+ EINA_SAFETY_ON_NULL_RETURN(ewkView);
+ EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
+ EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv);
+
+ if (priv->mainFrame->tiledBackingStore())
+ priv->mainFrame->tiledBackingStore()->invalidate(area);
+}
+#endif
+
namespace EWKPrivate {
WebCore::Page* corePage(const Evas_Object* ewkView)
diff --git a/Source/WebKit/efl/ewk/ewk_view.h b/Source/WebKit/efl/ewk/ewk_view.h
index 106ba145e..65dc55eb9 100644
--- a/Source/WebKit/efl/ewk/ewk_view.h
+++ b/Source/WebKit/efl/ewk/ewk_view.h
@@ -2777,6 +2777,28 @@ EAPI Eina_Bool ewk_view_setting_enable_fullscreen_set(Evas_Object *o, Eina_Bool
EAPI Eina_Bool ewk_view_setting_enable_fullscreen_get(const Evas_Object *o);
/**
+ * Enables/disables the WebCore's tiled backing store.
+ *
+ * @param o view object
+ * @oaram enable Enable or Disable WebCore's tiled backing store for given View
+ *
+ * @return true on success, or false on failure
+ *
+ * @note this is not for general use. It should be used for single view only.
+ */
+EAPI Eina_Bool ewk_view_setting_tiled_backing_store_enabled_set(Evas_Object *o, Eina_Bool enable);
+
+/**
+ * Queries if the WebCore's tiled backing store is enabled.
+ *
+ * @param o view object to query
+ *
+ * @return @c EINA_TRUE if the WebCore's tiled backing store is enabled
+ * @c EINA_FALSE if not or on failure
+ */
+EAPI Eina_Bool ewk_view_setting_tiled_backing_store_enabled_get(Evas_Object *o);
+
+/**
* Gets the context menu object.
* @param o The view that contains context menu.
*
diff --git a/Source/WebKit/efl/ewk/ewk_view_private.h b/Source/WebKit/efl/ewk/ewk_view_private.h
index babd1eaa4..5dc4c0bbf 100644
--- a/Source/WebKit/efl/ewk/ewk_view_private.h
+++ b/Source/WebKit/efl/ewk/ewk_view_private.h
@@ -134,6 +134,10 @@ Eina_Bool ewk_view_paint_contents(Ewk_View_Private_Data* priv, Ewk_Paint_Context
void ewk_view_js_window_object_clear(Evas_Object* ewkView, Evas_Object* frame);
#endif
+#if USE(TILED_BACKING_STORE)
+void ewk_view_tiled_backing_store_invalidate(Evas_Object* ewkView, const WebCore::IntRect& area);
+#endif
+
#if ENABLE(TOUCH_EVENTS)
void ewk_view_need_touch_events_set(Evas_Object*, bool needed);
bool ewk_view_need_touch_events_get(const Evas_Object*);
diff --git a/Source/WebKit/efl/ewk/ewk_view_single.cpp b/Source/WebKit/efl/ewk/ewk_view_single.cpp
index de0eb897c..c1fc6cd02 100644
--- a/Source/WebKit/efl/ewk/ewk_view_single.cpp
+++ b/Source/WebKit/efl/ewk/ewk_view_single.cpp
@@ -21,7 +21,8 @@
#include "config.h"
#include "ewk_view.h"
-#include "ewk_frame.h"
+#include "TiledBackingStore.h"
+#include "ewk_frame_private.h"
#include "ewk_private.h"
#include "ewk_view_private.h"
@@ -262,6 +263,12 @@ static Eina_Bool _ewk_view_single_smart_repaints_process(Ewk_View_Smart_Data* sm
return false;
}
+#if USE(TILED_BACKING_STORE)
+ WebCore::Frame* mainFrame = EWKPrivate::coreFrame(smartData->main_frame);
+ if (mainFrame && mainFrame->tiledBackingStore())
+ mainFrame->tiledBackingStore()->coverWithTilesIfNeeded();
+#endif
+
Ewk_Paint_Context* context = ewk_paint_context_from_image_new(smartData->backing_store);
ewk_paint_context_save(context);
diff --git a/Source/WebKit/efl/tests/test_ewk_view.cpp b/Source/WebKit/efl/tests/test_ewk_view.cpp
index 241580182..a3d73af42 100644
--- a/Source/WebKit/efl/tests/test_ewk_view.cpp
+++ b/Source/WebKit/efl/tests/test_ewk_view.cpp
@@ -72,6 +72,29 @@ TEST_F(EWKTestBase, ewk_view_setting_enable_fullscreen)
}
/**
+* @brief Checking whether function properly get/set fullscreen setting value.
+*/
+TEST_F(EWKTestBase, ewk_view_setting_tiled_backing_store)
+{
+ loadUrl();
+ ASSERT_FALSE(ewk_view_setting_tiled_backing_store_enabled_get(webView()));
+
+#if USE(TILED_BACKING_STORE)
+ ASSERT_TRUE(ewk_view_setting_tiled_backing_store_enabled_set(webView(), true));
+ ASSERT_TRUE(ewk_view_setting_tiled_backing_store_enabled_get(webView()));
+
+ ASSERT_TRUE(ewk_view_setting_tiled_backing_store_enabled_set(webView(), false));
+ ASSERT_FALSE(ewk_view_setting_tiled_backing_store_enabled_get(webView()));
+#else
+ ASSERT_FALSE(ewk_view_setting_tiled_backing_store_enabled_set(webView(), true));
+ ASSERT_FALSE(ewk_view_setting_tiled_backing_store_enabled_get(webView()));
+
+ ASSERT_FALSE(ewk_view_setting_tiled_backing_store_enabled_set(webView(), false));
+ ASSERT_FALSE(ewk_view_setting_tiled_backing_store_enabled_get(webView()));
+#endif
+}
+
+/**
* @brief Checking whether function returns proper context menu structure.
*
* This test creates a context menu and checks if context menu structure