X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fweb-view%2Fweb-view-impl.cpp;h=2eeabebb24a5bd942487b1b7cb56029dede80bee;hb=92cbca2f5bd2e15fa589448d4c884b71f4fef03c;hp=22ce3953edeedfd6843a086e7b2b9db4073a9b1c;hpb=580eea83bb02f8b936dc348ba4c1bee86df2500b;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/web-view/web-view-impl.cpp b/dali-toolkit/internal/controls/web-view/web-view-impl.cpp index 22ce395..2eeabeb 100755 --- a/dali-toolkit/internal/controls/web-view/web-view-impl.cpp +++ b/dali-toolkit/internal/controls/web-view/web-view-impl.cpp @@ -20,9 +20,15 @@ // EXTERNAL INCLUDES #include +#include +#include #include #include #include +#include +#include +#include +#include #include #include #include @@ -79,14 +85,20 @@ DALI_PROPERTY_REGISTRATION(Toolkit, WebView, "pageZoomFactor", FLOAT, DALI_PROPERTY_REGISTRATION(Toolkit, WebView, "textZoomFactor", FLOAT, TEXT_ZOOM_FACTOR ) DALI_PROPERTY_REGISTRATION(Toolkit, WebView, "loadProgressPercentage", FLOAT, LOAD_PROGRESS_PERCENTAGE ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadStarted", PAGE_LOAD_STARTED_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadInProgress", PAGE_LOAD_IN_PROGRESS_SIGNAL) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadFinished", PAGE_LOAD_FINISHED_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadError", PAGE_LOAD_ERROR_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "scrollEdgeReached", SCROLL_EDGE_REACHED_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "urlChanged", URL_CHANGED_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "formRepostDecision", FORM_REPOST_DECISION_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "frameRendered", FRAME_RENDERED_SIGNAL ) +DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadStarted", PAGE_LOAD_STARTED_SIGNAL ) +DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadInProgress", PAGE_LOAD_IN_PROGRESS_SIGNAL ) +DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadFinished", PAGE_LOAD_FINISHED_SIGNAL ) +DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadError", PAGE_LOAD_ERROR_SIGNAL ) +DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "scrollEdgeReached", SCROLL_EDGE_REACHED_SIGNAL ) +DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "urlChanged", URL_CHANGED_SIGNAL ) +DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "formRepostDecision", FORM_REPOST_DECISION_SIGNAL ) +DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "frameRendered", FRAME_RENDERED_SIGNAL ) +DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "requestInterceptor", REQUEST_INTERCEPTOR_SIGNAL ) +DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "consoleMessage", CONSOLE_MESSAGE_SIGNAL ) +DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "policyDecision", POLICY_DECISION ) +DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "certificateConfirm", CERTIFICATE_CONFIRM_SIGNAL ) +DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "sslCertificateChanged", SSL_CERTIFICATE_CHANGED_SIGNAL) +DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "httpAuthRequest", HTTP_AUTH_REQUEST_SIGNAL ) DALI_TYPE_REGISTRATION_END() // clang-format on @@ -111,8 +123,8 @@ WebView::WebView(const std::string& locale, const std::string& timezoneId) mPageLoadFinishedSignal(), mPageLoadErrorSignal(), mUrlChangedSignal(), - mVideoHoleEnabled(true), mWebViewArea(0, 0, mWebViewSize.width, mWebViewSize.height), + mVideoHoleEnabled(true), mMouseEventsEnabled(true), mKeyEventsEnabled(true) { @@ -135,8 +147,8 @@ WebView::WebView(int argc, char** argv) mPageLoadFinishedSignal(), mPageLoadErrorSignal(), mUrlChangedSignal(), - mVideoHoleEnabled(true), mWebViewArea(0, 0, mWebViewSize.width, mWebViewSize.height), + mVideoHoleEnabled(true), mMouseEventsEnabled(true), mKeyEventsEnabled(true) { @@ -216,6 +228,12 @@ void WebView::OnInitialize() mWebEngine.UrlChangedSignal().Connect(this, &WebView::OnUrlChanged); mWebEngine.FormRepostDecisionSignal().Connect(this, &WebView::OnFormRepostDecision); mWebEngine.FrameRenderedSignal().Connect(this, &WebView::OnFrameRendered); + mWebEngine.RequestInterceptorSignal().Connect(this, &WebView::OnInterceptRequest); + mWebEngine.ConsoleMessageSignal().Connect(this, &WebView::OnConsoleMessage); + mWebEngine.PolicyDecisionSignal().Connect(this, &WebView::OnPolicyDecisionRequest); + mWebEngine.CertificateConfirmSignal().Connect(this, &WebView::OnCertificateConfirm); + mWebEngine.SslCertificateChangedSignal().Connect(this, &WebView::OnSslCertificateChanged); + mWebEngine.HttpAuthHandlerSignal().Connect(this, &WebView::OnHttpAuthenticationRequest); mWebContext = std::unique_ptr(new WebContext(mWebEngine.GetContext())); mWebCookieManager = std::unique_ptr(new WebCookieManager(mWebEngine.GetCookieManager())); @@ -709,6 +727,36 @@ Dali::Toolkit::WebView::WebViewFrameRenderedSignalType& WebView::FrameRenderedSi return mFrameRenderedSignal; } +Dali::Toolkit::WebView::WebViewRequestInterceptorSignalType& WebView::RequestInterceptorSignal() +{ + return mRequestInterceptorSignal; +} + +Dali::Toolkit::WebView::WebViewConsoleMessageSignalType& WebView::ConsoleMessageSignal() +{ + return mConsoleMessageSignal; +} + +Dali::Toolkit::WebView::WebViewPolicyDecisionSignalType& WebView::PolicyDecisionSignal() +{ + return mPolicyDecisionSignal; +} + +Dali::Toolkit::WebView::WebViewCertificateSignalType& WebView::CertificateConfirmSignal() +{ + return mCertificateConfirmSignal; +} + +Dali::Toolkit::WebView::WebViewCertificateSignalType& WebView::SslCertificateChangedSignal() +{ + return mSslCertificateChangedSignal; +} + +Dali::Toolkit::WebView::WebViewHttpAuthHandlerSignalType& WebView::HttpAuthHandlerSignal() +{ + return mHttpAuthHandlerSignal; +} + void WebView::OnPageLoadStarted(const std::string& url) { if(!mPageLoadStartedSignal.Empty()) @@ -736,12 +784,12 @@ void WebView::OnPageLoadFinished(const std::string& url) } } -void WebView::OnPageLoadError(const std::string& url, int errorCode) +void WebView::OnPageLoadError(std::shared_ptr error) { if(!mPageLoadErrorSignal.Empty()) { Dali::Toolkit::WebView handle(GetOwner()); - mPageLoadErrorSignal.Emit(handle, url, static_cast(errorCode)); + mPageLoadErrorSignal.Emit(handle, std::move(error)); } } @@ -799,6 +847,60 @@ void WebView::OnScreenshotCaptured(Dali::PixelData pixel) } } +void WebView::OnInterceptRequest(std::shared_ptr interceptor) +{ + if(!mRequestInterceptorSignal.Empty()) + { + Dali::Toolkit::WebView handle(GetOwner()); + mRequestInterceptorSignal.Emit(handle, std::move(interceptor)); + } +} + +void WebView::OnConsoleMessage(std::shared_ptr message) +{ + if(!mConsoleMessageSignal.Empty()) + { + Dali::Toolkit::WebView handle(GetOwner()); + mConsoleMessageSignal.Emit(handle, std::move(message)); + } +} + +void WebView::OnPolicyDecisionRequest(std::shared_ptr decision) +{ + if(!mPolicyDecisionSignal.Empty()) + { + Dali::Toolkit::WebView handle(GetOwner()); + mPolicyDecisionSignal.Emit(handle, std::move(decision)); + } +} + +void WebView::OnCertificateConfirm(std::shared_ptr certificate) +{ + if(!mCertificateConfirmSignal.Empty()) + { + Dali::Toolkit::WebView handle(GetOwner()); + mCertificateConfirmSignal.Emit(handle, std::move(certificate)); + } +} + +void WebView::OnSslCertificateChanged(std::shared_ptr certificate) +{ + if(!mSslCertificateChangedSignal.Empty()) + { + Dali::Toolkit::WebView handle(GetOwner()); + mSslCertificateChangedSignal.Emit(handle, std::move(certificate)); + } +} + +void WebView::OnHttpAuthenticationRequest(std::shared_ptr handler) +{ + if(!mHttpAuthHandlerSignal.Empty()) + { + Dali::Toolkit::WebView handle(GetOwner()); + mHttpAuthHandlerSignal.Emit(handle, std::move(handler)); + } +} + bool WebView::DoConnectSignal(BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor) { Dali::BaseHandle handle(object); @@ -846,6 +948,36 @@ bool WebView::DoConnectSignal(BaseObject* object, ConnectionTrackerInterface* tr webView.FrameRenderedSignal().Connect(tracker, functor); connected = true; } + else if(0 == strcmp(signalName.c_str(), REQUEST_INTERCEPTOR_SIGNAL)) + { + webView.RequestInterceptorSignal().Connect(tracker, functor); + connected = true; + } + else if(0 == strcmp(signalName.c_str(), CONSOLE_MESSAGE_SIGNAL)) + { + webView.ConsoleMessageSignal().Connect(tracker, functor); + connected = true; + } + else if(0 == strcmp(signalName.c_str(), POLICY_DECISION)) + { + webView.PolicyDecisionSignal().Connect(tracker, functor); + connected = true; + } + else if(0 == strcmp(signalName.c_str(), CERTIFICATE_CONFIRM_SIGNAL)) + { + webView.CertificateConfirmSignal().Connect(tracker, functor); + connected = true; + } + else if(0 == strcmp(signalName.c_str(), SSL_CERTIFICATE_CHANGED_SIGNAL)) + { + webView.SslCertificateChangedSignal().Connect(tracker, functor); + connected = true; + } + else if(0 == strcmp(signalName.c_str(), HTTP_AUTH_REQUEST_SIGNAL)) + { + webView.HttpAuthHandlerSignal().Connect(tracker, functor); + connected = true; + } return connected; }