[WK2] revised a callflow of ewkViewFrameRendered after nonempty layout finished.
authorJungJik Lee <jungjik.lee@samsung.com>
Fri, 21 Jun 2013 06:12:43 +0000 (15:12 +0900)
committerGerrit Code Review <gerrit@gerrit.vlan144.tizendev.org>
Mon, 1 Jul 2013 02:48:42 +0000 (02:48 +0000)
[Title] [WK2] revised a callflow of ewkViewFrameRendered after nonempty layout finished.
[Issue#] N/A
[Problem] when resizing a web-provider box, webview is bliking.
[Cause] the client does not know when the actual rendering is started.
[Solution] Send "frame,rendered" message to the client
           after didFirstVisuallyNonEmptyLayoutForMainFrame is called.
           the message sequence is nonemptyLayout -> composite -> frame,rendered -> buffer update.

Change-Id: I41c1b1e19e0afd99b8e928c4f8b8784a1cf9b187

Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp
Source/WebKit2/UIProcess/API/efl/PageClientImpl.h
Source/WebKit2/UIProcess/API/efl/ewk_view.cpp

index 8583168..45c3f06 100755 (executable)
@@ -1394,11 +1394,6 @@ void PageClientImpl::unlockOrientation()
 
 void PageClientImpl::didRenderFrame()
 {
-#if OS(TIZEN)
-    if (m_nonemptyLayoutRendered)
-        ewkViewFrameRendered(m_viewImpl->view());
-#endif
-
 #if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE_BACKUP_IMAGE)
     if (m_shouldShowBackupTexture && m_isVisible)
         m_shouldShowBackupTexture = false;
@@ -1604,6 +1599,7 @@ void PageClientEvasGL::drawContents()
 
 void PageClientEvasGL::didRenderFrame()
 {
+    ewkViewFrameRendered(m_viewImpl->view());
     PageClientImpl::didRenderFrame();
 }
 
index c77d3d3..fcfbdbb 100755 (executable)
@@ -264,6 +264,7 @@ public:
     void setWaitFrameOfNewViewortSize(bool waitFrameOfNewViewortSize) { m_waitFrameOfNewViewortSize = waitFrameOfNewViewortSize; }
 #endif
 
+    bool notifiedNonemptyLayout() { return m_nonemptyLayoutRendered; }
 #endif // #if OS(TIZEN)
 
 private:
index 9a9be26..b334470 100644 (file)
@@ -2568,6 +2568,9 @@ static Eina_Bool _ewk_view_composite(void* data)
     evas_object_image_data_set(smartData->image, pixels);
     evas_object_image_data_update_add(smartData->image, 0, 0, ow, oh);
 
+    if (impl->pageClient->notifiedNonemptyLayout())
+        ewkViewFrameRendered(smartData->self);
+
     impl->compositionAnimator = 0;
 
     return ECORE_CALLBACK_CANCEL;