$(extension_src_dir)/web-engine-chromium/tizen-web-engine-chromium.cpp \
$(extension_src_dir)/web-engine-chromium/tizen-web-engine-context.cpp \
$(extension_src_dir)/web-engine-chromium/tizen-web-engine-cookie-manager.cpp \
+ $(extension_src_dir)/web-engine-chromium/tizen-web-engine-frame.cpp \
+ $(extension_src_dir)/web-engine-chromium/tizen-web-engine-policy-decision.cpp \
$(extension_src_dir)/web-engine-chromium/tizen-web-engine-settings.cpp
#include "tizen-web-engine-back-forward-list.h"
#include "tizen-web-engine-context.h"
#include "tizen-web-engine-cookie-manager.h"
+#include "tizen-web-engine-policy-decision.h"
#include "tizen-web-engine-settings.h"
#include <Ecore.h>
namespace
{
+
// const
const std::string EMPTY_STRING;
+
+template <typename Callback, typename... Args>
+void ExecuteCallback(Callback callback, Args... args)
+{
+ if (callback)
+ {
+ callback(args...);
+ }
}
+template <typename Callback, typename Arg>
+void ExecuteCallback(Callback callback, std::unique_ptr<Arg> arg)
+{
+ if (callback)
+ {
+ callback(std::move(arg));
+ }
+}
+
+template <typename Ret, typename Callback, typename... Args>
+Ret ExecuteCallbackReturn(Callback callback, Args... args)
+{
+ Ret returnVal = Ret();
+ if (callback)
+ {
+ returnVal = callback(args...);
+ }
+ return returnVal;
+}
+
+template <typename Ret, typename Callback, typename Arg>
+Ret ExecuteCallbackReturn(Callback callback, std::unique_ptr<Arg> arg)
+{
+ Ret returnVal = Ret();
+ if (callback)
+ {
+ returnVal = callback(std::move(arg));
+ }
+ return returnVal;
+}
+
+} // anonymous namespace.
+
class WebViewContainerClientPair {
public:
WebViewContainerClientPair( WebViewContainerClient* client, Evas_Object* webView )
Evas_Object* mWebView;
};
+//
+// A class for managing multiple WebViews
+//
class WebEngineManager {
- //
- // A class for managing multiple WebViews
- //
public:
static WebEngineManager& Get()
{
return webViewClient.mClient;
}
}
- return 0;
+ return nullptr;
}
private:
evas_object_smart_callback_add( mWebView, "edge,bottom",
&WebViewContainerForDali::OnEdgeBottom,
&mClient );
+ evas_object_smart_callback_add(mWebView, "policy,navigation,decide",
+ &WebViewContainerForDali::OnNavigationPolicyDecided,
+ &mClient);
evas_object_resize( mWebView, mWidth, mHeight );
evas_object_show( mWebView );
client->ScrollEdgeReached( Dali::WebEnginePlugin::ScrollEdge::BOTTOM );
}
+ static void OnNavigationPolicyDecided(void* data, Evas_Object*, void* policy)
+ {
+ auto client = static_cast<WebViewContainerClient*>(data);
+ Ewk_Policy_Decision* policyDecision = static_cast<Ewk_Policy_Decision*>(policy);
+ std::unique_ptr<Dali::WebEnginePolicyDecision> webPolicyDecision(new TizenWebEnginePolicyDecision(policyDecision));
+ client->NavigationPolicyDecided(std::move(webPolicyDecision));
+ }
+
static void OnEvaluateJavaScript( Evas_Object* o, const char* result, void* data )
{
auto client = WebEngineManager::Get().FindContainerClient( o );
}
}
-void TizenWebEngineChromium::EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler )
+void TizenWebEngineChromium::EvaluateJavaScript( const std::string& script, JavaScriptMessageHandlerCallback resultHandler )
{
if( mWebViewContainer )
{
}
}
-void TizenWebEngineChromium::AddJavaScriptMessageHandler( const std::string& exposedObjectName, std::function< void( const std::string& ) > handler )
+void TizenWebEngineChromium::AddJavaScriptMessageHandler( const std::string& exposedObjectName, JavaScriptMessageHandlerCallback handler )
{
if( mWebViewContainer )
{
}
}
-Dali::WebEnginePlugin::WebEnginePageLoadSignalType& TizenWebEngineChromium::PageLoadStartedSignal()
+void TizenWebEngineChromium::RegisterPageLoadStartedCallback(WebEnginePageLoadCallback callback)
{
- return mLoadStartedSignal;
+ mLoadStartedCallback = callback;
}
-Dali::WebEnginePlugin::WebEnginePageLoadSignalType& TizenWebEngineChromium::PageLoadFinishedSignal()
+void TizenWebEngineChromium::RegisterPageLoadFinishedCallback(WebEnginePageLoadCallback callback)
{
- return mLoadFinishedSignal;
+ mLoadFinishedCallback = callback;
}
-Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& TizenWebEngineChromium::PageLoadErrorSignal()
+void TizenWebEngineChromium::RegisterPageLoadErrorCallback(WebEnginePageLoadErrorCallback callback)
{
- return mLoadErrorSignal;
+ mLoadErrorCallback = callback;
}
-Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& TizenWebEngineChromium::ScrollEdgeReachedSignal()
+void TizenWebEngineChromium::RegisterScrollEdgeReachedCallback(WebEngineScrollEdgeReachedCallback callback)
{
- return mScrollEdgeReachedSignal;
+ mScrollEdgeReachedCallback = callback;
+}
+
+void TizenWebEngineChromium::RegisterNavigationPolicyDecidedCallback(WebEngineNavigationPolicyDecidedCallback callback)
+{
+ mNavigationPolicyDecidedCallback = callback;
}
void TizenWebEngineChromium::GetPlainTextAsynchronously(PlainTextReceivedCallback callback)
void TizenWebEngineChromium::LoadStarted()
{
DALI_LOG_RELEASE_INFO( "#LoadStarted : %s\n", GetUrl().c_str() );
- mLoadStartedSignal.Emit( GetUrl() );
+ ExecuteCallback(mLoadStartedCallback, GetUrl());
}
void TizenWebEngineChromium::LoadFinished()
{
DALI_LOG_RELEASE_INFO( "#LoadFinished : %s\n", GetUrl().c_str() );
- mLoadFinishedSignal.Emit( GetUrl() );
+ ExecuteCallback(mLoadFinishedCallback, GetUrl());
}
void TizenWebEngineChromium::LoadError( const char* url, int errorCode )
{
std::string stdUrl( url );
- mLoadErrorSignal.Emit( stdUrl, errorCode );
+ ExecuteCallback(mLoadErrorCallback, stdUrl, errorCode);
}
void TizenWebEngineChromium::ScrollEdgeReached( Dali::WebEnginePlugin::ScrollEdge edge )
{
DALI_LOG_RELEASE_INFO( "#ScrollEdgeReached : %d\n", edge );
- mScrollEdgeReachedSignal.Emit( edge );
+ ExecuteCallback(mScrollEdgeReachedCallback, edge);
+}
+
+void TizenWebEngineChromium::NavigationPolicyDecided(std::unique_ptr<Dali::WebEnginePolicyDecision> decision)
+{
+ DALI_LOG_RELEASE_INFO("#NavigationPolicyDecided.\n");
+ ExecuteCallback(mNavigationPolicyDecidedCallback, std::move(decision));
}
void TizenWebEngineChromium::RunJavaScriptEvaluationResultHandler( size_t key, const char* result )
void TizenWebEngineChromium::PlainTextRecieved(const std::string& plainText)
{
- if (mPlainTextReceivedCallback)
- {
- mPlainTextReceivedCallback(plainText);
- }
+ ExecuteCallback(mPlainTextReceivedCallback, plainText);
}
} // namespace Plugin
#include <dali/devel-api/adaptor-framework/web-engine-plugin.h>
#include <dali/public-api/images/native-image-interface.h>
+#include <memory>
#include <tbm_surface.h>
#include <unordered_map>
virtual void ScrollEdgeReached( Dali::WebEnginePlugin::ScrollEdge edge ) = 0;
/**
+ * @brief Callback function to be called by WebViewContainer when navigation
+ * policy would be decided.
+ * @param [in] decision Policy need be decided.
+ */
+ virtual void NavigationPolicyDecided(std::unique_ptr<Dali::WebEnginePolicyDecision> decision) = 0;
+
+ /**
* @brief Callback function to be called by WebViewContainer when it gets JavaScript evalution result.
* @param [in] key An unsigned integer representing the result handler
* @param [in] result Result string from JavaScript runtime
public:
- typedef std::function< void(const std::string&) > JavaScriptCallback;
-
/**
* @brief Constructor.
*/
/**
* @copydoc Dali::WebEnginePlugin::EvaluateJavaScript()
*/
- void EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler ) override;
+ void EvaluateJavaScript( const std::string& script, JavaScriptMessageHandlerCallback resultHandler ) override;
/**
* @copydoc Dali::WebEnginePlugin::AddJavaScriptMessageHandler()
*/
- void AddJavaScriptMessageHandler( const std::string& exposedObjectName, std::function< void( const std::string& ) > handler ) override;
+ void AddJavaScriptMessageHandler( const std::string& exposedObjectName, JavaScriptMessageHandlerCallback handler ) override;
/**
* @copydoc Dali::WebEnginePlugin::ClearAllTilesResources()
void EnableVideoHole( bool enabled ) override;
/**
- * @copydoc Dali::WebEnginePlugin::PageLoadStartedSignal()
+ * @copydoc Dali::WebEnginePlugin::RegisterPageLoadStartedCallback()
*/
- Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal() override;
+ void RegisterPageLoadStartedCallback(WebEnginePageLoadCallback callback) override;
/**
- * @copydoc Dali::WebEnginePlugin::PageLoadFinishedSignal()
+ * @copydoc Dali::WebEnginePlugin::RegisterPageLoadFinishedCallback()
*/
- Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal() override;
+ void RegisterPageLoadFinishedCallback(WebEnginePageLoadCallback callback) override;
/**
- * @copydoc Dali::WebEnginePlugin::PageLoadErrorSignal()
+ * @copydoc Dali::WebEnginePlugin::RegisterPageLoadErrorCallback()
*/
- Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal() override;
+ void RegisterPageLoadErrorCallback(WebEnginePageLoadErrorCallback callback) override;
/**
- * @copydoc Dali::WebEnginePlugin::ScrollEdgeReachedSignal()
+ * @copydoc Dali::WebEnginePlugin::RegisterScrollEdgeReachedCallback()
*/
- Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal() override;
+ void RegisterScrollEdgeReachedCallback(WebEngineScrollEdgeReachedCallback callback) override;
+
+ /**
+ * @copydoc Dali::WebEnginePlugin::RegisterNavigationPolicyDecidedCallback()
+ */
+ void RegisterNavigationPolicyDecidedCallback(WebEngineNavigationPolicyDecidedCallback callback) override;
/**
* @copydoc Dali::WebEnginePlugin::GetPlainTextAsynchronously()
void ScrollEdgeReached( Dali::WebEnginePlugin::ScrollEdge edge ) override;
/**
+ * @copydoc Dali::Plugin::WebViewContainerClient::NavigationPolicyDecided()
+ */
+ void NavigationPolicyDecided(std::unique_ptr<Dali::WebEnginePolicyDecision> policy) override;
+
+ /**
* @copydoc Dali::Plugin::WebViewContainerClient::RunJavaScriptEvaluationResultHandler()
*/
void RunJavaScriptEvaluationResultHandler( size_t key, const char* result ) override;
std::string mUrl;
size_t mJavaScriptEvaluationCount;
- Dali::WebEnginePlugin::WebEnginePageLoadSignalType mLoadStartedSignal;
- Dali::WebEnginePlugin::WebEnginePageLoadSignalType mLoadFinishedSignal;
- Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType mLoadErrorSignal;
-
- Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType mScrollEdgeReachedSignal;
+ WebEnginePageLoadCallback mLoadStartedCallback;
+ WebEnginePageLoadCallback mLoadFinishedCallback;
+ WebEnginePageLoadErrorCallback mLoadErrorCallback;
+ WebEngineScrollEdgeReachedCallback mScrollEdgeReachedCallback;
+ WebEngineNavigationPolicyDecidedCallback mNavigationPolicyDecidedCallback;
+ PlainTextReceivedCallback mPlainTextReceivedCallback;
- std::unordered_map< size_t, JavaScriptCallback > mJavaScriptEvaluationResultHandlers;
- std::unordered_map< std::string, JavaScriptCallback > mJavaScriptMessageHandlers;
-
- PlainTextReceivedCallback mPlainTextReceivedCallback;
+ std::unordered_map< size_t, JavaScriptMessageHandlerCallback > mJavaScriptEvaluationResultHandlers;
+ std::unordered_map< std::string, JavaScriptMessageHandlerCallback > mJavaScriptMessageHandlers;
};
} // namespace Plugin
} // namespace Dali
--- /dev/null
+/*
+ * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "tizen-web-engine-frame.h"
+
+namespace Dali
+{
+namespace Plugin
+{
+
+TizenWebEngineFrame::TizenWebEngineFrame(Ewk_Frame_Ref frame)
+ : ewkFrame(frame)
+{
+}
+
+TizenWebEngineFrame::~TizenWebEngineFrame()
+{
+}
+
+bool TizenWebEngineFrame::IsMainFrame() const
+{
+ return ewk_frame_is_main_frame(ewkFrame);
+}
+
+} // namespace Plugin
+} // namespace Dali
--- /dev/null
+#ifndef DALI_PLUGIN_TIZEN_WEB_ENGINE_FRAME_H
+#define DALI_PLUGIN_TIZEN_WEB_ENGINE_FRAME_H
+
+/*
+ * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <ewk_frame_internal.h>
+#include <string>
+
+#include <dali/devel-api/adaptor-framework/web-engine-frame.h>
+
+namespace Dali
+{
+namespace Plugin
+{
+
+/**
+ * @brief A class TizenWebEngineFrame for frame.
+ */
+class TizenWebEngineFrame : public Dali::WebEngineFrame
+{
+public:
+ /**
+ * @brief Constructor.
+ */
+ TizenWebEngineFrame(Ewk_Frame_Ref);
+
+ /**
+ * @brief Destructor.
+ */
+ ~TizenWebEngineFrame();
+
+ /**
+ * @copydoc Dali::WebEngineFrame::CanShowMimeType()
+ */
+ bool IsMainFrame() const override;
+
+private:
+ Ewk_Frame_Ref ewkFrame;
+};
+
+} // namespace Plugin
+} // namespace Dali
+
+#endif // DALI_PLUGIN_TIZEN_WEB_ENGINE_FRAME_H
--- /dev/null
+/*
+ * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "tizen-web-engine-policy-decision.h"
+#include "tizen-web-engine-frame.h"
+
+#include <ewk_policy_decision_internal.h>
+
+namespace Dali
+{
+namespace Plugin
+{
+
+TizenWebEnginePolicyDecision::TizenWebEnginePolicyDecision(Ewk_Policy_Decision* decision)
+ : ewkPolicyDecision(decision)
+{
+}
+
+TizenWebEnginePolicyDecision::~TizenWebEnginePolicyDecision()
+{
+}
+
+std::string TizenWebEnginePolicyDecision::GetUrl() const
+{
+ return ewk_policy_decision_url_get(ewkPolicyDecision);
+}
+
+std::string TizenWebEnginePolicyDecision::GetCookie() const
+{
+ return ewk_policy_decision_cookie_get(ewkPolicyDecision);
+}
+
+Dali::WebEnginePolicyDecision::DecisionType TizenWebEnginePolicyDecision::GetDecisionType() const
+{
+ return (Dali::WebEnginePolicyDecision::DecisionType)ewk_policy_decision_type_get(ewkPolicyDecision);
+}
+
+std::string TizenWebEnginePolicyDecision::GetResponseMime() const
+{
+ return ewk_policy_decision_response_mime_get(ewkPolicyDecision);
+}
+
+int32_t TizenWebEnginePolicyDecision::GetResponseStatusCode() const
+{
+ return ewk_policy_decision_response_status_code_get(ewkPolicyDecision);
+}
+
+Dali::WebEnginePolicyDecision::NavigationType TizenWebEnginePolicyDecision::GetNavigationType() const
+{
+ return (Dali::WebEnginePolicyDecision::NavigationType)ewk_policy_decision_navigation_type_get(ewkPolicyDecision);
+}
+
+Dali::WebEngineFrame& TizenWebEnginePolicyDecision::GetFrame() const
+{
+ Ewk_Frame_Ref ewkFrame = ewk_policy_decision_frame_get(ewkPolicyDecision);
+ webEngineFrame.reset(new TizenWebEngineFrame(ewkFrame));
+ return *(webEngineFrame.get());
+}
+
+std::string TizenWebEnginePolicyDecision::GetScheme() const
+{
+ return std::string(ewk_policy_decision_scheme_get(ewkPolicyDecision));
+}
+
+bool TizenWebEnginePolicyDecision::Use()
+{
+ return ewk_policy_decision_use(ewkPolicyDecision);
+}
+
+bool TizenWebEnginePolicyDecision::Ignore()
+{
+ return ewk_policy_decision_ignore(ewkPolicyDecision);
+}
+
+bool TizenWebEnginePolicyDecision::Suspend()
+{
+ return ewk_policy_decision_suspend(ewkPolicyDecision);
+}
+
+} // namespace Plugin
+} // namespace Dali
--- /dev/null
+#ifndef DALI_PLUGIN_TIZEN_WEB_ENGINE_POLICY_DECISION_H
+#define DALI_PLUGIN_TIZEN_WEB_ENGINE_POLICY_DECISION_H
+
+/*
+ * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <ewk_policy_decision.h>
+#include <memory>
+#include <string>
+
+#include <dali/devel-api/adaptor-framework/web-engine-frame.h>
+#include <dali/devel-api/adaptor-framework/web-engine-policy-decision.h>
+
+namespace Dali
+{
+namespace Plugin
+{
+
+/**
+ * @brief A class TizenWebEnginePolicyDecision for policy decision of chromium.
+ */
+class TizenWebEnginePolicyDecision : public Dali::WebEnginePolicyDecision
+{
+public:
+ /**
+ * @brief Constructor.
+ */
+ TizenWebEnginePolicyDecision(Ewk_Policy_Decision*);
+
+ /**
+ * @brief Destructor.
+ */
+ ~TizenWebEnginePolicyDecision();
+
+ /**
+ * @copydoc Dali::WebEnginePolicyDecision::GetUrl()
+ */
+ std::string GetUrl() const override;
+
+ /**
+ * @copydoc Dali::WebEnginePolicyDecision::GetCookie()
+ */
+ std::string GetCookie() const override;
+
+ /**
+ * @copydoc Dali::WebEnginePolicyDecision::GetDecisionType()
+ */
+ DecisionType GetDecisionType() const override;
+
+ /**
+ * @copydoc Dali::WebEnginePolicyDecision::GetResponseMime()
+ */
+ std::string GetResponseMime() const override;
+
+ /**
+ * @copydoc Dali::WebEnginePolicyDecision::GetResponseStatusCode()
+ */
+ int32_t GetResponseStatusCode() const override;
+
+ /**
+ * @copydoc Dali::WebEnginePolicyDecision::GetNavigationType()
+ */
+ NavigationType GetNavigationType() const override;
+
+ /**
+ * @copydoc Dali::WebEnginePolicyDecision::GetFrame()
+ */
+ WebEngineFrame& GetFrame() const override;
+
+ /**
+ * @copydoc Dali::WebEnginePolicyDecision::GetScheme()
+ */
+ std::string GetScheme() const override;
+
+ /**
+ * @copydoc Dali::WebEnginePolicyDecision::Use()
+ */
+ bool Use() override;
+
+ /**
+ * @copydoc Dali::WebEnginePolicyDecision::Ignore()
+ */
+ bool Ignore() override;
+
+ /**
+ * @copydoc Dali::WebEnginePolicyDecision::Suspend()
+ */
+ bool Suspend() override;
+
+private:
+ Ewk_Policy_Decision* ewkPolicyDecision;
+ mutable std::unique_ptr<WebEngineFrame> webEngineFrame;
+};
+
+} // namespace Plugin
+} // namespace Dali
+
+#endif // DALI_PLUGIN_TIZEN_WEB_ENGINE_POLICY_DECISION_H
// NOT IMPLEMENTED
}
+void TizenWebEngineLWE::RegisterPageLoadStartedCallback(WebEnginePageLoadCallback callback)
+{
+ // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterPageLoadFinishedCallback(WebEnginePageLoadCallback callback)
+{
+ // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterPageLoadErrorCallback(WebEnginePageLoadErrorCallback callback)
+{
+ // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterScrollEdgeReachedCallback(WebEngineScrollEdgeReachedCallback callback)
+{
+ // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterNavigationPolicyDecidedCallback(WebEngineNavigationPolicyDecidedCallback callback)
+{
+ // NOT IMPLEMENTED
+}
+
void TizenWebEngineLWE::GetPlainTextAsynchronously(PlainTextReceivedCallback callback)
{
// NOT IMPLEMENTED
/**
* @copydoc Dali::WebEnginePlugin::EvaluateJavaScript()
*/
- void EvaluateJavaScript( const std::string& script, std::function< void(const std::string&) > resultHandler ) override;
+ void EvaluateJavaScript( const std::string& script, JavaScriptMessageHandlerCallback resultHandler ) override;
/**
* @copydoc Dali::WebEnginePlugin::AddJavaScriptMessageHandler()
*/
- void AddJavaScriptMessageHandler( const std::string& exposedObjectName, std::function< void(const std::string&) > handler ) override;
+ void AddJavaScriptMessageHandler( const std::string& exposedObjectName, JavaScriptMessageHandlerCallback handler ) override;
/**
* @copydoc Dali::WebEnginePlugin::ClearAllTilesResources()
void EnableVideoHole( bool enabled ) override;
/**
- * @copydoc Dali::WebEnginePlugin::PageLoadStartedSignal()
+ * @copydoc Dali::WebEnginePlugin::RegisterPageLoadStartedCallback()
*/
- Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal() override
- {
- return mPageLoadStartedSignal;
- }
+ void RegisterPageLoadStartedCallback(WebEnginePageLoadCallback callback) override;
/**
- * @copydoc Dali::WebEnginePlugin::PageLoadFinishedSignal()
+ * @copydoc Dali::WebEnginePlugin::RegisterPageLoadFinishedCallback()
*/
- Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal() override
- {
- return mPageLoadFinishedSignal;
- }
+ void RegisterPageLoadFinishedCallback(WebEnginePageLoadCallback callback) override;
/**
- * @copydoc Dali::WebEnginePlugin::PageLoadErrorSignal()
+ * @copydoc Dali::WebEnginePlugin::RegisterPageLoadErrorCallback()
*/
- Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal() override
- {
- return mPageLoadErrorSignal;
- }
+ void RegisterPageLoadErrorCallback(WebEnginePageLoadErrorCallback callback) override;
/**
- * @copydoc Dali::WebEnginePlugin::ScrollEdgeReachedSignal()
+ * @copydoc Dali::WebEnginePlugin::RegisterScrollEdgeReachedCallback()
*/
- Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal() override
- {
- return mScrollEdgeReachedSignal;
- }
+ void RegisterScrollEdgeReachedCallback(WebEngineScrollEdgeReachedCallback callback) override;
+
+ /**
+ * @copydoc Dali::WebEnginePlugin::RegisterNavigationPolicyDecidedCallback()
+ */
+ void RegisterNavigationPolicyDecidedCallback(WebEngineNavigationPolicyDecidedCallback callback) override;
/**
* @copydoc Dali::WebEnginePlugin::GetPlainTextAsynchronously()
std::function<void(LWE::WebContainer*, const std::string&)> mOnPageStartedHandler;
std::function<void(LWE::WebContainer*, const std::string&)> mOnLoadResourceHandler;
- EventThreadCallback mUpdateBufferTrigger;
- Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadStartedSignal;
- Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadFinishedSignal;
- Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType mPageLoadErrorSignal;
- Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType mScrollEdgeReachedSignal;
+ EventThreadCallback mUpdateBufferTrigger;
};
} // namespace Plugin