Change-Id: I609647abec9c89bf5f421632f6036298ac1f9e61
Signed-off-by: Jiyun Yang <ji.yang@samsung.com>
mUrl = url;
if(mWebEngine)
{
mUrl = url;
if(mWebEngine)
{
- Texture texture = Dali::Texture::New(*mWebEngine.GetNativeImageSource());
- const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture);
- mVisual = Toolkit::VisualFactory::Get().CreateVisual(
- {{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE},
- {Toolkit::ImageVisual::Property::URL, nativeImageUrl}});
-
- if(mVisual)
- // Clean up previously registered visual and add new one.
- DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, mVisual);
- mWebEngine.LoadUrl(url);
+ mWebEngine.FrameRenderedSignal().Connect(this, &WebView::OnInitialFrameRendered);
- if(mVideoHoleEnabled)
- {
- EnableBlendMode(false);
- }
+ mWebEngine.LoadUrl(url);
- Texture texture = Dali::Texture::New(*mWebEngine.GetNativeImageSource());
- const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture);
- mVisual = Toolkit::VisualFactory::Get().CreateVisual(
- {{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE},
- {Toolkit::ImageVisual::Property::URL, nativeImageUrl}});
-
- if(mVisual)
- DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, mVisual);
- mWebEngine.LoadHtmlString(htmlString);
+ mWebEngine.FrameRenderedSignal().Connect(this, &WebView::OnInitialFrameRendered);
- if(mVideoHoleEnabled)
- {
- EnableBlendMode(false);
- }
+ mWebEngine.LoadHtmlString(htmlString);
if(!mWebEngine)
return false;
if(!mWebEngine)
return false;
- Texture texture = Dali::Texture::New(*mWebEngine.GetNativeImageSource());
- const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture);
- mVisual = Toolkit::VisualFactory::Get().CreateVisual(
- {{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE},
- {Toolkit::ImageVisual::Property::URL, nativeImageUrl}});
-
- bool result = false;
- if(mVisual)
- DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, mVisual);
- result = mWebEngine.LoadHtmlStringOverrideCurrentEntry(html, basicUri, unreachableUrl);
+ mWebEngine.FrameRenderedSignal().Connect(this, &WebView::OnInitialFrameRendered);
- if(mVideoHoleEnabled)
- {
- EnableBlendMode(false);
- }
- return result;
+ return mWebEngine.LoadHtmlStringOverrideCurrentEntry(html, basicUri, unreachableUrl);
}
bool WebView::LoadContents(const std::string& contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri)
}
bool WebView::LoadContents(const std::string& contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri)
if(!mWebEngine)
return false;
if(!mWebEngine)
return false;
- Texture texture = Dali::Texture::New(*mWebEngine.GetNativeImageSource());
- const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture);
- mVisual = Toolkit::VisualFactory::Get().CreateVisual(
- {{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE},
- {Toolkit::ImageVisual::Property::URL, nativeImageUrl}});
-
- bool result = false;
- if(mVisual)
- DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, mVisual);
- result = mWebEngine.LoadContents(contents, contentSize, mimeType, encoding, baseUri);
+ mWebEngine.FrameRenderedSignal().Connect(this, &WebView::OnInitialFrameRendered);
- if(mVideoHoleEnabled)
- {
- EnableBlendMode(false);
- }
- return result;
+ return mWebEngine.LoadContents(contents, contentSize, mimeType, encoding, baseUri);
+void WebView::OnInitialFrameRendered()
+{
+ mWebEngine.FrameRenderedSignal().Disconnect(this, &WebView::OnInitialFrameRendered);
+
+ Texture texture = Dali::Texture::New(*mWebEngine.GetNativeImageSource());
+ const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture);
+ mVisual = Toolkit::VisualFactory::Get().CreateVisual({{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE}, {Toolkit::ImageVisual::Property::URL, nativeImageUrl}});
+
+ if(mVisual)
+ {
+ DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, mVisual);
+ EnableBlendMode(!mVideoHoleEnabled);
+ }
+}
+
void WebView::OnVisibilityChanged(Actor actor, bool isVisible, Dali::DevelActor::VisibilityChange::Type type)
{
if(type == Dali::DevelActor::VisibilityChange::Type::SELF)
void WebView::OnVisibilityChanged(Actor actor, bool isVisible, Dali::DevelActor::VisibilityChange::Type type)
{
if(type == Dali::DevelActor::VisibilityChange::Type::SELF)
void OnFrameRendered();
/**
void OnFrameRendered();
/**
+ * @brief Callback function to be called when frame is rendered. This is to check initial buffer is ready.
+ */
+ void OnInitialFrameRendered();
+
+ /**
* @brief Callback function to be called when visibility is changed.
* @param[in] actor The actor, or child of actor, whose visibility has changed
* @param[in] isVisible Whether the actor is now visible or not
* @brief Callback function to be called when visibility is changed.
* @param[in] actor The actor, or child of actor, whose visibility has changed
* @param[in] isVisible Whether the actor is now visible or not