From: huayong.xu Date: Thu, 8 Dec 2022 11:50:15 +0000 (+0800) Subject: [Tizen] Add an API for 'create,window' event. X-Git-Tag: accepted/tizen/6.0/unified/20221214.005441~1 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=eb6dfea26e1d92fadd5e3708b0c7dfadabb136da [Tizen] Add an API for 'create,window' event. Change-Id: I46803f164e53697fbffa484a30d282fda099259f --- diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp index 3f626dc..f3e4656 100755 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp @@ -44,6 +44,9 @@ class WebEngine; namespace { + +// Generally only one WebEngine instance exists. +// If > 1, a new web engine has been created by NewWindowCreated callback. static WebEngine* gInstance = nullptr; static int gInstanceCount = 0; @@ -382,7 +385,10 @@ public: , mContentSize( 500, 500 ) { gInstanceCount++; - gInstance = this; + if (gInstanceCount == 1) // only first web engine need be saved. + { + gInstance = this; + } mockWebEngineSettings = new MockWebEngineSettings(); mockWebEngineContext = new MockWebEngineContext(); @@ -393,9 +399,9 @@ public: virtual ~WebEngine() { gInstanceCount--; - if( !gInstanceCount ) + if(!gInstanceCount) { - gInstance = NULL; + gInstance = nullptr; } delete mockWebEngineSettings; @@ -424,6 +430,11 @@ public: return *mockWebEngineBackForwardList; } + Dali::WebEnginePlugin* GetPlugin() const + { + return nullptr; + } + void LoadUrl( const std::string& url ) { mUrl = url; @@ -576,6 +587,11 @@ public: mNavigationPolicyDecisionCallback = callback; } + void RegisterNewWindowCreatedCallback(Dali::WebEnginePlugin::WebEngineNewWindowCreatedCallback callback) + { + mNewWindowCreatedCallback = callback; + } + void GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback) { if (callback) @@ -596,6 +612,7 @@ public: Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback mScrollEdgeReachedCallback; Dali::WebEnginePlugin::WebEngineUrlChangedCallback mUrlChangedCallback; Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback mNavigationPolicyDecisionCallback; + Dali::WebEnginePlugin::WebEngineNewWindowCreatedCallback mNewWindowCreatedCallback; std::vector mResultCallbacks; bool mEvaluating; @@ -682,6 +699,11 @@ bool OnLoadUrl() std::unique_ptr policyDecision(new MockWebEnginePolicyDecision()); gInstance->mNavigationPolicyDecisionCallback(std::move(policyDecision)); } + if (gInstance->mNewWindowCreatedCallback) + { + Dali::WebEnginePlugin* plugin = 0; + gInstance->mNewWindowCreatedCallback(plugin); + } } return false; } @@ -977,6 +999,11 @@ void WebEngine::RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::W Internal::Adaptor::GetImplementation(*this).RegisterNavigationPolicyDecidedCallback(callback); } +void WebEngine::RegisterNewWindowCreatedCallback(Dali::WebEnginePlugin::WebEngineNewWindowCreatedCallback callback) +{ + Internal::Adaptor::GetImplementation(*this).RegisterNewWindowCreatedCallback(callback); +} + void WebEngine::GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback) { Internal::Adaptor::GetImplementation(*this).GetPlainTextAsynchronously(callback); diff --git a/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp index 6477ccd..7d097fc 100755 --- a/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp @@ -50,6 +50,7 @@ static int gPageLoadFinishedCallbackCalled = 0; static int gScrollEdgeReachedCallbackCalled = 0; static int gUrlChangedCallbackCalled = 0; static int gNavigationPolicyDecidedCallbackCalled = 0; +static int gNewWindowCreatedCallbackCalled = 0; static int gEvaluateJavaScriptCallbackCalled = 0; static bool gTouched = false; static int gPlainTextReceivedCallbackCalled = 0; @@ -83,7 +84,7 @@ static void OnScrollEdgeReached( Dali::WebEnginePlugin::ScrollEdge edge ) gScrollEdgeReachedCallbackCalled++; } -static void OnUrlChanged( WebView view, const std::string& url ) +static void OnUrlChanged(const std::string& url) { gUrlChangedCallbackCalled++; } @@ -93,6 +94,13 @@ static void OnNavigationPolicyDecided(std::unique_ptr