[Tizen] Add a WebView API for notifying orientation change.
[platform/core/uifw/dali-adaptor.git] / dali / devel-api / adaptor-framework / web-engine / web-engine.h
1 #ifndef DALI_WEB_ENGINE_H
2 #define DALI_WEB_ENGINE_H
3
4 /*
5  * Copyright (c) 2024 Samsung Electronics Co., Ltd.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */
20
21 // EXTERNAL INCLUDES
22 #include <dali/public-api/object/base-handle.h>
23
24 //INTERNAL INCLUDES
25 #include <dali/devel-api/adaptor-framework/accessibility.h>
26 #include <dali/devel-api/adaptor-framework/web-engine/web-engine-plugin.h>
27 #include <dali/public-api/dali-adaptor-common.h>
28
29 namespace Dali
30 {
31 class WebEngineContext;
32 class WebEngineCookieManager;
33
34 namespace Internal
35 {
36 namespace Adaptor
37 {
38 class WebEngine;
39 } // namespace Adaptor
40
41 } // namespace Internal
42
43 /**
44  * @brief Proxy class to dynamically load, use and unload web engine plugin.
45  *
46  * The purpose of this class is to dynamically load the web engine plugin if and when its needed.
47  * So we don't slow down every application startup if they never need web engine.
48  */
49 class DALI_ADAPTOR_API WebEngine : public BaseHandle
50 {
51 public:
52   /**
53    * @brief Constructor.
54    */
55   WebEngine();
56
57   /**
58    * @brief Destructor.
59    */
60   ~WebEngine();
61
62   /**
63    * @brief Create a new instance of a WebEngine.
64    */
65   static WebEngine New();
66
67   /**
68    * @brief Get context of WebEngine.
69    */
70   static Dali::WebEngineContext* GetContext();
71
72   /**
73    * @brief Get cookie manager of WebEngine.
74    */
75   static Dali::WebEngineCookieManager* GetCookieManager();
76
77   /**
78    * @brief Copy constructor.
79    *
80    * @param[in] WebEngine WebEngine to copy. The copied WebEngine will point at the same implementation
81    */
82   WebEngine(const WebEngine& WebEngine);
83
84   /**
85    * @brief Assignment operator.
86    *
87    * @param[in] WebEngine The WebEngine to assign from.
88    * @return The updated WebEngine.
89    */
90   WebEngine& operator=(const WebEngine& WebEngine);
91
92   /**
93    * @brief Move constructor.
94    *
95    * @param[in] WebEngine WebEngine to move. The moved WebEngine will point at the same implementation
96    */
97   WebEngine(WebEngine&& WebEngine);
98
99   /**
100    * @brief Move assignment operator.
101    *
102    * @param[in] WebEngine The WebEngine to assign from.
103    * @return The updated WebEngine.
104    */
105   WebEngine& operator=(WebEngine&& WebEngine);
106
107   /**
108    * @brief Downcast a handle to WebEngine handle.
109    *
110    * If handle points to a WebEngine the downcast produces valid
111    * handle. If not the returned handle is left uninitialized.
112    *
113    * @param[in] handle Handle to an object
114    * @return Handle to a WebEngine or an uninitialized handle
115    */
116   static WebEngine DownCast(BaseHandle handle);
117
118   /**
119    * @brief Create WebEngine instance.
120    *
121    * @param [in] width The width of Web
122    * @param [in] height The height of Web
123    * @param [in] locale The locale of Web
124    * @param [in] timezoneId The timezoneID of Web
125    */
126   void Create(uint32_t width, uint32_t height, const std::string& locale, const std::string& timezoneId);
127
128   /**
129    * @brief Create WebEngine instance.
130    *
131    * @param [in] width The width of Web
132    * @param [in] height The height of Web
133    * @param [in] argc The count of application arguments
134    * @param [in] argv The string array of application arguments
135    */
136   void Create(uint32_t width, uint32_t height, uint32_t argc, char** argv);
137
138   /**
139    * @brief Destroy WebEngine instance.
140    */
141   void Destroy();
142
143   /**
144    * @brief Gets web engine plugin.
145    */
146   Dali::WebEnginePlugin* GetPlugin() const;
147
148   /**
149    * @brief Get native image source to render.
150    */
151   NativeImageSourcePtr GetNativeImageSource();
152
153   /**
154    * @brief Change orientation.
155    */
156   void ChangeOrientation(int orientation);
157
158   /**
159    * @brief Get settings of WebEngine.
160    */
161   Dali::WebEngineSettings& GetSettings() const;
162
163   /**
164    * @brief Get back-forward list of WebEngine.
165    */
166   Dali::WebEngineBackForwardList& GetBackForwardList() const;
167
168   /**
169    * @brief Load a web page based on a given URL.
170    *
171    * @param [in] url The URL of the resource to load
172    */
173   void LoadUrl(const std::string& url);
174
175   /**
176    * @brief Return the title of the Web.
177    *
178    * @return The title of web page
179    */
180   std::string GetTitle() const;
181
182   /**
183    * @brief Return the Favicon of the Web.
184    *
185    * @return FavIcon of Dali::PixelData& type
186    */
187   Dali::PixelData GetFavicon() const;
188
189   /**
190    * @brief Get the url.
191    */
192   std::string GetUrl() const;
193
194   /**
195    * @brief Load a given string as web contents.
196    *
197    * @param [in] htmlString The string to use as the contents of the web page
198    */
199   void LoadHtmlString(const std::string& htmlString);
200
201   /**
202    * @brief Load the specified html string as the content of the view overriding current history entry
203    *
204    * @param[in] html HTML data to load
205    * @param[in] basicUri Base URL used for relative paths to external objects
206    * @param[in] unreachableUrl URL that could not be reached
207    *
208    * @return true if successfully loaded, false otherwise
209    */
210   bool LoadHtmlStringOverrideCurrentEntry(const std::string& html, const std::string& basicUri, const std::string& unreachableUrl);
211
212   /**
213    * @brief Request loading the given contents by MIME type into the view object
214    *
215    * @param[in] contents The content to load
216    * @param[in] contentSize The size of contents (in bytes)
217    * @param[in] mimeType The type of contents, if 0 is given "text/html" is assumed
218    * @param[in] encoding The encoding for contents, if 0 is given "UTF-8" is assumed
219    * @param[in] baseUri The base URI to use for relative resources
220    *
221    * @return true if successfully request, false otherwise
222    */
223   bool LoadContents(const int8_t* contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri);
224
225   /**
226    * @brief Reload the Web.
227    */
228   void Reload();
229
230   /**
231    * @brief Reload the current page's document without cache
232    */
233   bool ReloadWithoutCache();
234
235   /**
236    * @brief Stop loading web contents on the current page.
237    */
238   void StopLoading();
239
240   /**
241    * @brief Suspend the operation associated with the view.
242    */
243   void Suspend();
244
245   /**
246    * @brief Resume the operation associated with the view object after calling Suspend().
247    */
248   void Resume();
249
250   /**
251    * @brief To suspend all url loading
252    */
253   void SuspendNetworkLoading();
254
255   /**
256    * @brief To resume new url network loading
257    */
258   void ResumeNetworkLoading();
259
260   /**
261    * @brief Add custom header
262    *
263    * @param[in] name custom header name to add the custom header
264    * @param[in] value custom header value to add the custom header
265    *
266    * @return true if succeeded, false otherwise
267    */
268   bool AddCustomHeader(const std::string& name, const std::string& value);
269
270   /**
271    * @brief Remove custom header
272    *
273    * @param[in] name custom header name to remove the custom header
274    *
275    * @return true if succeeded, false otherwise
276    */
277   bool RemoveCustomHeader(const std::string& name);
278
279   /**
280    * @brief Start the inspector server
281    *
282    * @param[in] port port number
283    *
284    * @return the port number
285    */
286   uint32_t StartInspectorServer(uint32_t port);
287
288   /**
289    * @brief Stop the inspector server
290    *
291    * @return true if succeeded, false otherwise
292    */
293   bool StopInspectorServer();
294
295   /**
296    * @brief Scroll web page of view by deltaX and deltaY.
297    *
298    * @param[in] deltaX horizontal offset to scroll
299    * @param[in] deltaY vertical offset to scroll
300    */
301   void ScrollBy(int32_t deltaX, int32_t deltaY);
302
303   /**
304    * @brief Scroll edge of view by deltaX and deltaY.
305    *
306    * @param[in] deltaX horizontal offset to scroll
307    * @param[in] deltaY vertical offset to scroll
308    *
309    * @return true if succeeded, false otherwise
310    */
311   bool ScrollEdgeBy(int32_t deltaX, int32_t deltaY);
312
313   /**
314    * @brief Set an absolute scroll of the given view.
315    */
316   void SetScrollPosition(int32_t x, int32_t y);
317
318   /**
319    * @brief Get the current scroll position of the given view.
320    */
321   Dali::Vector2 GetScrollPosition() const;
322
323   /**
324    * @brief Get the possible scroll size of the given view.
325    */
326   Dali::Vector2 GetScrollSize() const;
327
328   /**
329    * @brief Get the last known content's size.
330    */
331   Dali::Vector2 GetContentSize() const;
332
333   /**
334    * @brief Return whether forward is possible.
335    *
336    * @return True if forward is possible, false otherwise
337    */
338   bool CanGoForward();
339
340   /**
341    * @brief Go to forward.
342    */
343   void GoForward();
344
345   /**
346    * @brief Return whether backward is possible.
347    *
348    * @return True if backward is possible, false otherwise
349    */
350   bool CanGoBack();
351
352   /**
353    * @brief Go to back.
354    */
355   void GoBack();
356
357   /**
358    * @brief Evaluate JavaScript code represented as a string.
359    *
360    * @param[in] script The JavaScript code
361    * @param[in] resultHandler The callback function to be called by the JavaScript runtime. This carries evaluation result.
362    */
363   void EvaluateJavaScript(const std::string& script, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback resultHandler);
364
365   /**
366    * @brief Add a message handler into JavaScript.
367    *
368    * @param[in] exposedObjectName The name of exposed object
369    * @param[in] handler The callback function
370    */
371   void AddJavaScriptMessageHandler(const std::string& exposedObjectName, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback handler);
372
373   /**
374    * @brief Register a callback for JavaScript alert.
375    *
376    * @param[in] callback The callback function
377    */
378   void RegisterJavaScriptAlertCallback(Dali::WebEnginePlugin::JavaScriptAlertCallback callback);
379
380   /**
381    * @brief Reply for JavaScript alert.
382    */
383   void JavaScriptAlertReply();
384
385   /**
386    * @brief Register a callback for JavaScript confirm.
387    *
388    * @param[in] callback The callback function
389    */
390   void RegisterJavaScriptConfirmCallback(Dali::WebEnginePlugin::JavaScriptConfirmCallback callback);
391
392   /**
393    * @brief Reply for JavaScript confirm.
394    * @param[in] confirmed True if confirmed, false otherwise.
395    */
396   void JavaScriptConfirmReply(bool confirmed);
397
398   /**
399    * @brief Register a callback for JavaScript prompt.
400    *
401    * @param[in] callback The callback function
402    */
403   void RegisterJavaScriptPromptCallback(Dali::WebEnginePlugin::JavaScriptPromptCallback callback);
404
405   /**
406    * @brief Reply for JavaScript prompt.
407    * @param[in] result The result returned from input-field in prompt popup.
408    */
409   void JavaScriptPromptReply(const std::string& result);
410
411   /**
412    * @brief Create a new hit test.
413    *
414    * @param[in] x the horizontal position to query
415    * @param[in] y the vertical position to query
416    * @param[in] mode the mode of hit test
417    *
418    * @return a new hit test object
419    */
420   std::unique_ptr<Dali::WebEngineHitTest> CreateHitTest(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode);
421
422   /**
423    * @brief create a hit test asynchronously.
424    *
425    * @param[in] x the horizontal position to query
426    * @param[in] y the vertical position to query
427    * @param[in] mode the mode of hit test
428    * @param[in] callback the callback function
429    *
430    * @return true if succeeded, false otherwise
431    */
432   bool CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback callback);
433
434   /**
435    * @brief Clear the history of Web.
436    */
437   void ClearHistory();
438
439   /**
440    * @brief Clear all tiles resources of Web.
441    */
442   void ClearAllTilesResources();
443
444   /**
445    * @brief Get user agent string.
446    *
447    * @return The string value of user agent
448    */
449   std::string GetUserAgent() const;
450
451   /**
452    * @brief Set user agent string.
453    *
454    * @param[in] userAgent The string value of user agent
455    */
456   void SetUserAgent(const std::string& userAgent);
457
458   /**
459    * @brief Set the size of Web Pages.
460    */
461   void SetSize(uint32_t width, uint32_t height);
462
463   /**
464    * @brief Set background color of web page.
465    *
466    * @param[in] color Background color
467    */
468   void SetDocumentBackgroundColor(Dali::Vector4 color);
469
470   /**
471    * @brief Clear tiles when hidden.
472    *
473    * @param[in] cleared Whether tiles are cleared or not
474    */
475   void ClearTilesWhenHidden(bool cleared);
476
477   /**
478    * @brief Set multiplier of cover area of tile.
479    *
480    * @param[in] multiplier The multiplier of cover area
481    */
482   void SetTileCoverAreaMultiplier(float multiplier);
483
484   /**
485    * @brief Enable cursor by client.
486    *
487    * @param[in] enabled Whether cursor is enabled or not
488    */
489   void EnableCursorByClient(bool enabled);
490
491   /**
492    * @brief Get the selected text.
493    *
494    * @return the selected text
495    */
496   std::string GetSelectedText() const;
497
498   /**
499    * @brief Send Touch Events.
500    */
501   bool SendTouchEvent(const TouchEvent& touch);
502
503   /**
504    * @brief Send key Events.
505    */
506   bool SendKeyEvent(const KeyEvent& event);
507
508   /**
509    * @brief Set focus.
510    * @param[in] focused True if web view is focused, false otherwise
511    */
512   void SetFocus(bool focused);
513
514   /**
515    * @brief Enable/disable mouse events. The default is enabled.
516    *
517    * @param[in] enabled True if mouse events are enabled, false otherwise
518    */
519   void EnableMouseEvents(bool enabled);
520
521   /**
522    * @brief Enable/disable key events. The default is enabled.
523    *
524    * @param[in] enabled True if key events are enabled, false otherwise
525    */
526   void EnableKeyEvents(bool enabled);
527
528   /**
529    * @brief Set zoom factor of the current page.
530    * @param[in] zoomFactor a new factor to be set.
531    */
532   void SetPageZoomFactor(float zoomFactor);
533
534   /**
535    * @brief Query the current zoom factor of the page。
536    * @return The current page zoom factor.
537    */
538   float GetPageZoomFactor() const;
539
540   /**
541    * @brief Set the current text zoom level。.
542    * @param[in] zoomFactor a new factor to be set.
543    */
544   void SetTextZoomFactor(float zoomFactor);
545
546   /**
547    * @brief Get the current text zoom level.
548    * @return The current text zoom factor.
549    */
550   float GetTextZoomFactor() const;
551
552   /**
553    * @brief Get the current load progress of the page.
554    * @return The load progress of the page.
555    */
556   float GetLoadProgressPercentage() const;
557
558   /**
559    * @brief Scale the current page, centered at the given point.
560    * @param[in] scaleFactor a new factor to be scaled.
561    * @param[in] point a center coordinate.
562    */
563   void SetScaleFactor(float scaleFactor, Dali::Vector2 point);
564
565   /**
566    * @brief Get the current scale factor of the page.
567    * @return The current scale factor.
568    */
569   float GetScaleFactor() const;
570
571   /**
572    * @brief Request to activate/deactivate the accessibility usage set by web app.
573    * @param[in] activated Activate accessibility or not.
574    */
575   void ActivateAccessibility(bool activated);
576
577   /**
578    * @brief Get the accessibility address (bus and path) for embedding.
579    * @return Accessibility address of the root web content element.
580    */
581   Accessibility::Address GetAccessibilityAddress();
582
583   /**
584    * @brief Request to set the current page's visibility.
585    * @param[in] visible Visible or not.
586    *
587    * @return true if changed successfully, false otherwise
588    */
589   bool SetVisibility(bool visible);
590
591   /**
592    * @brief Search and highlights the given string in the document.
593    * @param[in] text The text to find
594    * @param[in] options The options to find
595    * @param[in] maxMatchCount The maximum match count to find
596    *
597    * @return true if found & highlighted, false otherwise
598    */
599   bool HighlightText(const std::string& text, Dali::WebEnginePlugin::FindOption options, uint32_t maxMatchCount);
600
601   /**
602    * @brief Add dynamic certificate path.
603    * @param[in] host host that required client authentication
604    * @param[in] certPath the file path stored certificate
605    */
606   void AddDynamicCertificatePath(const std::string& host, const std::string& certPath);
607
608   /**
609    * @brief Get snapshot of the specified viewArea of page.
610    *
611    * @param[in] viewArea The rectangle of screen shot
612    * @param[in] scaleFactor The scale factor
613    *
614    * @return pixel data of screen shot
615    */
616   Dali::PixelData GetScreenshot(Dali::Rect<int32_t> viewArea, float scaleFactor);
617
618   /**
619    * @brief Request to get snapshot of the specified viewArea of page asynchronously.
620    *
621    * @param[in] viewArea The rectangle of screen shot
622    * @param[in] scaleFactor The scale factor
623    * @param[in] callback The callback for screen shot
624    *
625    * @return true if requested successfully, false otherwise
626    */
627   bool GetScreenshotAsynchronously(Dali::Rect<int32_t> viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback);
628
629   /**
630    * @brief Asynchronous request to check if there is a video playing in the given view.
631    *
632    * @param[in] callback The callback called after checking if video is playing or not
633    *
634    * @return true if requested successfully, false otherwise
635    */
636   bool CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback);
637
638   /**
639    * @brief Set callback which alled upon geolocation permission request.
640    *
641    * @param[in] callback The callback for requesting geolocation permission
642    */
643   void RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback);
644
645   /**
646    * @brief Update display area.
647    * @param[in] displayArea The area to display web page
648    */
649   void UpdateDisplayArea(Dali::Rect<int32_t> displayArea);
650
651   /**
652    * @brief Enable video hole.
653    * @param[in] enabled True if video hole is enabled, false otherwise
654    */
655   void EnableVideoHole(bool enabled);
656
657   /**
658    * @brief Send hover events.
659    * @param[in] event The hover event would be sent.
660    */
661   bool SendHoverEvent(const HoverEvent& event);
662
663   /**
664    * @brief Send wheel events.
665    * @param[in] event The wheel event would be sent.
666    */
667   bool SendWheelEvent(const WheelEvent& event);
668
669   /**
670    * @brief Exit full-screen.
671    */
672   void ExitFullscreen();
673
674   /**
675    * @brief Callback to be called when frame would be rendered.
676    *
677    * @param[in] callback
678    */
679   void RegisterFrameRenderedCallback(Dali::WebEnginePlugin::WebEngineFrameRenderedCallback callback);
680
681   /**
682    * @brief Callback to be called when page loading is started.
683    *
684    * @param[in] callback
685    */
686   void RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback);
687
688   /**
689    * @brief Callback to be called when page loading is in progress.
690    *
691    * @param[in] callback
692    */
693   void RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback);
694
695   /**
696    * @brief Callback to be called when page loading is finished.
697    *
698    * @param[in] callback
699    */
700   void RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback);
701
702   /**
703    * @brief Callback to be called when an error occurs in page loading.
704    *
705    * @param[in] callback
706    */
707   void RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback);
708
709   /**
710    * @brief Callback to be called when scroll edge is reached.
711    *
712    * @param[in] callback
713    */
714   void RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback);
715
716   /**
717    * @brief Callback to be called when url is changed.
718    *
719    * @param[in] callback
720    */
721   void RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback);
722
723   /**
724    * @brief Callback to be called when form repost decision is requested.
725    *
726    * @param[in] callback
727    */
728   void RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback);
729
730   /**
731    * @brief Callback to be called when console message will be logged.
732    *
733    * @param[in] callback
734    */
735   void RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback);
736
737   /**
738    * @brief Callback to be called when response policy would be decided.
739    *
740    * @param[in] callback
741    */
742   void RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback);
743
744   /**
745    * @brief Callback to be called when navigation policy would be decided.
746    *
747    * @param[in] callback
748    */
749   void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback);
750
751   /**
752    * @brief Callback to be called when new window policy would be decided.
753    *
754    * @param[in] callback
755    */
756   void RegisterNewWindowPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNewWindowPolicyDecidedCallback callback);
757
758   /**
759    * @brief Callback to be called when a new window would be created.
760    *
761    * @param[in] callback
762    */
763   void RegisterNewWindowCreatedCallback(Dali::WebEnginePlugin::WebEngineNewWindowCreatedCallback callback);
764
765   /**
766    * @brief Callback to be called when certificate need be confirmed.
767    *
768    * @param[in] callback
769    */
770   void RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback);
771
772   /**
773    * @brief Callback to be called when ssl certificate is changed.
774    *
775    * @param[in] callback
776    */
777   void RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback);
778
779   /**
780    * @brief Callback to be called when http authentication need be confirmed.
781    *
782    * @param[in] callback
783    */
784   void RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback);
785
786   /**
787    * @brief Callback to be called when context menu would be shown.
788    *
789    * @param[in] callback
790    */
791   void RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback);
792
793   /**
794    * @brief Callback to be called when context menu would be hidden.
795    *
796    * @param[in] callback
797    */
798   void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback);
799
800   /**
801    * @brief Callback to be called when fullscreen would be entered.
802    *
803    * @param[in] callback
804    */
805   void RegisterFullscreenEnteredCallback(Dali::WebEnginePlugin::WebEngineFullscreenEnteredCallback callback);
806
807   /**
808    * @brief Callback to be called when fullscreen would be exited.
809    *
810    * @param[in] callback
811    */
812   void RegisterFullscreenExitedCallback(Dali::WebEnginePlugin::WebEngineFullscreenExitedCallback callback);
813
814   /**
815    * @brief Callback to be called when text would be found.
816    *
817    * @param[in] callback
818    */
819   void RegisterTextFoundCallback(Dali::WebEnginePlugin::WebEngineTextFoundCallback callback);
820
821   /**
822    * @brief Get a plain text of current web page asynchronously.
823    *
824    * @param[in] callback The callback function called asynchronously.
825    */
826   void GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback);
827
828 private: // Not intended for application developers
829   /**
830    * @brief Internal constructor
831    */
832   explicit DALI_INTERNAL WebEngine(Internal::Adaptor::WebEngine* internal);
833 };
834
835 } // namespace Dali
836
837 #endif // DALI_WEB_ENGINE_H