From 09931daf01fbb90374df2309169fe43795af0dd7 Mon Sep 17 00:00:00 2001 From: JungJik Lee Date: Fri, 21 Jun 2013 15:12:43 +0900 Subject: [PATCH] [WK2] revised a callflow of ewkViewFrameRendered after nonempty layout finished. [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 | 6 +----- Source/WebKit2/UIProcess/API/efl/PageClientImpl.h | 1 + Source/WebKit2/UIProcess/API/efl/ewk_view.cpp | 3 +++ 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp b/Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp index 8583168..45c3f06 100755 --- a/Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp +++ b/Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp @@ -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(); } diff --git a/Source/WebKit2/UIProcess/API/efl/PageClientImpl.h b/Source/WebKit2/UIProcess/API/efl/PageClientImpl.h index c77d3d3..fcfbdbb 100755 --- a/Source/WebKit2/UIProcess/API/efl/PageClientImpl.h +++ b/Source/WebKit2/UIProcess/API/efl/PageClientImpl.h @@ -264,6 +264,7 @@ public: void setWaitFrameOfNewViewortSize(bool waitFrameOfNewViewortSize) { m_waitFrameOfNewViewortSize = waitFrameOfNewViewortSize; } #endif + bool notifiedNonemptyLayout() { return m_nonemptyLayoutRendered; } #endif // #if OS(TIZEN) private: diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp index 9a9be26..b334470 100644 --- a/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp +++ b/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp @@ -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; -- 2.7.4