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)
+ 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);
}
}
{
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)
+ 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;
- 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)
+ 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)
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)
+ 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::Reload()
}
}
+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)