: mWebView(nullptr)
, mWidth(0)
, mHeight(0)
- , mSlotDelegate(this)
, mJavaScriptEvaluationCount(0)
{
- mAsyncLoadHtmlTimer = Dali::Timer::New(0);
- mAsyncLoadHtmlOverridedTimer = Dali::Timer::New(0);
- mAsyncLoadContentsTimer = Dali::Timer::New(0);
}
TizenWebEngineChromium::~TizenWebEngineChromium()
void TizenWebEngineChromium::Destroy()
{
- if (!mAsyncLoadHtmlTimer.TickSignal().Empty())
- {
- mAsyncLoadHtmlTimer.TickSignal().Disconnect(mSlotDelegate, &TizenWebEngineChromium::OnAsyncLoadHtmlString);
- }
- if (!mAsyncLoadHtmlOverridedTimer.TickSignal().Empty())
- {
- mAsyncLoadHtmlOverridedTimer.TickSignal().Disconnect(mSlotDelegate, &TizenWebEngineChromium::OnAsyncLoadHtmlStringOverrideCurrentEntry);
- }
- if (!mAsyncLoadContentsTimer.TickSignal().Empty())
- {
- mAsyncLoadContentsTimer.TickSignal().Disconnect(mSlotDelegate, &TizenWebEngineChromium::OnAsyncLoadContents);
- }
-
mJavaScriptEvaluationResultHandlers.clear();
mJavaScriptMessageHandlers.clear();
evas_object_del(mWebView);
}
+void TizenWebEngineChromium::LoadUrl(const std::string& path)
+{
+ ewk_view_url_set(mWebView, path.c_str());
+}
+
std::string TizenWebEngineChromium::GetTitle() const
{
const char* title = ewk_view_title_get(mWebView);
return url ? std::string(url) : std::string();
}
-void TizenWebEngineChromium::LoadUrl(const std::string& path)
-{
- ewk_view_url_set(mWebView, path.c_str());
-}
-
void TizenWebEngineChromium::LoadHtmlString(const std::string& html)
{
- mHtmlString = html;
- if (mAsyncLoadHtmlTimer.IsRunning())
- {
- mAsyncLoadHtmlTimer.Stop();
- }
- mAsyncLoadHtmlTimer.TickSignal().Connect(mSlotDelegate, &TizenWebEngineChromium::OnAsyncLoadHtmlString);
- mAsyncLoadHtmlTimer.Start();
-}
-
-bool TizenWebEngineChromium::OnAsyncLoadHtmlString()
-{
- mAsyncLoadHtmlTimer.TickSignal().Disconnect(mSlotDelegate, &TizenWebEngineChromium::OnAsyncLoadHtmlString);
- bool ret = ewk_view_html_string_load(mWebView, mHtmlString.c_str(), 0, 0);
- if (!ret)
- {
- DALI_LOG_ERROR("Failed to load html string asynchronously.");
- }
- return false;
+ ewk_view_html_string_load(mWebView, html.c_str(), 0, 0);
}
bool TizenWebEngineChromium::LoadHtmlStringOverrideCurrentEntry(const std::string& html, const std::string& basicUri, const std::string& unreachableUrl)
{
- mOverridedHtmlString = html;
- mBasicUri = basicUri;
- mUnreachableUrl = unreachableUrl;
- if (mAsyncLoadHtmlOverridedTimer.IsRunning())
- {
- mAsyncLoadHtmlOverridedTimer.Stop();
- }
- mAsyncLoadHtmlOverridedTimer.TickSignal().Connect(mSlotDelegate, &TizenWebEngineChromium::OnAsyncLoadHtmlStringOverrideCurrentEntry);
- mAsyncLoadHtmlOverridedTimer.Start();
- return true;
-}
-
-bool TizenWebEngineChromium::OnAsyncLoadHtmlStringOverrideCurrentEntry()
-{
- mAsyncLoadHtmlOverridedTimer.TickSignal().Disconnect(mSlotDelegate, &TizenWebEngineChromium::OnAsyncLoadHtmlStringOverrideCurrentEntry);
- char* cBasicUri = mBasicUri.length() ? (char *)mBasicUri.c_str() : nullptr;
- char* cUnreachableUrl = mUnreachableUrl.length() ? (char *)mUnreachableUrl.c_str() : nullptr;
- bool ret = ewk_view_html_string_override_current_entry_load(mWebView, mOverridedHtmlString.c_str(), cBasicUri, cUnreachableUrl);
- if (!ret)
- {
- DALI_LOG_ERROR("Failed to load html string asynchronously for overriding current entry.");
- }
- return false;
+ char* cBasicUri = basicUri.length() ? (char *)basicUri.c_str() : nullptr;
+ char* cUnreachableUrl = unreachableUrl.length() ? (char *)unreachableUrl.c_str() : nullptr;
+ return ewk_view_html_string_override_current_entry_load(mWebView, html.c_str(), cBasicUri, cUnreachableUrl);
}
bool TizenWebEngineChromium::LoadContents(const std::string& contents, uint32_t contentSize, const std::string& mimeType,
const std::string& encoding, const std::string& baseUri)
{
- mContents = contents;
- mContentSize = contentSize;
- mMimeType = mimeType;
- mEncoding = encoding;
- mContentsBaseUri = baseUri;
- if (mAsyncLoadContentsTimer.IsRunning())
- {
- mAsyncLoadContentsTimer.Stop();
- }
- mAsyncLoadContentsTimer.TickSignal().Connect(mSlotDelegate, &TizenWebEngineChromium::OnAsyncLoadContents);
- mAsyncLoadContentsTimer.Start();
- return true;
-}
-
-bool TizenWebEngineChromium::OnAsyncLoadContents()
-{
- mAsyncLoadContentsTimer.TickSignal().Disconnect(mSlotDelegate, &TizenWebEngineChromium::OnAsyncLoadContents);
- char* cMimeType = mMimeType.length() ? (char *)mMimeType.c_str() : nullptr;
- char* cEncoding = mEncoding.length() ? (char *)mEncoding.c_str() : nullptr;
- char* cBaseUri = mContentsBaseUri.length() ? (char *)mContentsBaseUri.c_str() : nullptr;
- bool ret = ewk_view_contents_set(mWebView, mContents.c_str(), mContentSize, cMimeType, cEncoding, cBaseUri);
- if (!ret)
- {
- DALI_LOG_ERROR("Failed to load contents asynchronously.");
- }
- return false;
+ char* cMimeType = mimeType.length() ? (char *)mimeType.c_str() : nullptr;
+ char* cEncoding = encoding.length() ? (char *)encoding.c_str() : nullptr;
+ char* cBaseUri = baseUri.length() ? (char *)baseUri.c_str() : nullptr;
+ return ewk_view_contents_set(mWebView, contents.c_str(), contentSize, cMimeType, cEncoding, cBaseUri);
}
void TizenWebEngineChromium::Reload()
#include <dali-toolkit/dali-toolkit.h>
#include <dali/devel-api/adaptor-framework/web-engine/web-engine-plugin.h>
-#include <dali/public-api/adaptor-framework/timer.h>
#include <dali/public-api/images/native-image-interface.h>
-#include <dali/public-api/signals/slot-delegate.h>
#include <ewk_view_internal.h>
Dali::WebEngineBackForwardList& GetBackForwardList() const override;
/**
+ * @copydoc Dali::WebEnginePlugin::LoadUrl()
+ */
+ void LoadUrl(const std::string& url) override;
+
+ /**
* @copydoc Dali::WebEnginePlugin::GetNativeImageSource()
*/
NativeImageSourcePtr GetNativeImageSource() override;
std::string GetUrl() const override;
/**
- * @copydoc Dali::WebEnginePlugin::LoadUrl()
- */
- void LoadUrl(const std::string& url) override;
-
- /**
* @copydoc Dali::WebEnginePlugin::LoadHtmlString()
*/
void LoadHtmlString(const std::string& string) override;
bool FeedTouchEvent(const TouchEvent& touch);
- bool OnAsyncLoadHtmlString();
-
- bool OnAsyncLoadHtmlStringOverrideCurrentEntry();
-
- bool OnAsyncLoadContents();
-
// ewk web view.
Evas_Object* mWebView;
uint32_t mWidth;
std::unique_ptr<WebEngineBackForwardList> mWebEngineBackForwardList;
std::unique_ptr<WebEngineSettings> mWebEngineSettings;
- // load html asynchronously.
- SlotDelegate<TizenWebEngineChromium> mSlotDelegate;
- Dali::Timer mAsyncLoadHtmlTimer;
- std::string mHtmlString;
- Dali::Timer mAsyncLoadHtmlOverridedTimer;
- std::string mOverridedHtmlString;
- std::string mBasicUri;
- std::string mUnreachableUrl;
- Dali::Timer mAsyncLoadContentsTimer;
- std::string mContents;
- uint32_t mContentSize;
- std::string mMimeType;
- std::string mEncoding;
- std::string mContentsBaseUri;
-
// render.
- Dali::NativeImageSourcePtr mDaliImageSrc;
- WebEngineFrameRenderedSignalType mFrameRenderedSignal;
+ Dali::NativeImageSourcePtr mDaliImageSrc;
+ WebEngineFrameRenderedSignalType mFrameRenderedSignal;
// callback.
WebEnginePageLoadCallback mLoadStartedCallback;