Tizen 2.1 base
[framework/osp/web.git] / inc / FWebCtrlWeb.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * @file                FWebCtrlWeb.h
20  * @brief       This is the header file for the %Web class.
21  *
22  * This header file contains the declarations of the %Web class.
23  */
24 #ifndef _FWEB_CTRL_WEB_H_
25 #define _FWEB_CTRL_WEB_H_
26
27 #include <FBaseBuffer.h>
28 #include <FBaseResult.h>
29 #include <FBaseString.h>
30 #include <FUiContainer.h>
31
32 namespace Tizen { namespace Graphics
33 {
34 class Dimension;
35 class Point;
36 class Rectangle;
37 }} // Tizen::Graphics
38
39 namespace Tizen { namespace Net { namespace Http
40 {
41 class HttpHeader;
42 }}} // Tizen::Net::Http
43
44 namespace Tizen { namespace Web { namespace Controls
45 {
46 class IJavaScriptBridge;
47 class ILoadingListener;
48 class ITextSearchListener;
49 class IWebDownloadListener;
50 class IWebKeypadEventListener;
51 class IWebUiEventListener;
52 class IWebUiListener;
53 class HitElementResult;
54 class PageNavigationList;
55 class WebSetting;
56 class _WebImpl;
57 }}} // Tizen::Web::Controls
58
59 namespace Tizen { namespace Web { namespace Controls
60 {
61
62 /**
63  * @class       Web
64  * @brief       This class provides methods for embedding a browser in an application.
65  *
66  * @since       2.0
67  *
68  * The %Web class provides methods for embedding a browser in an application to load and render various types of %Web content. Similar to adding UI controls, the %Web content can be added to the application by adding a %Web control.
69  * @n
70  * For more information on the class features and %Web browser feature limitations, see <a href="../org.tizen.native.appprogramming/html/guide/web/controls_namespace.htm">Web Controls Guide</a> and <a href="../org.tizen.native.appprogramming/html/guide/web/supported_web_features.htm">Supported Features in the Web Control</a>.
71  *
72  * The following example demonstrates how to use the %Web class.
73  *      @code
74 // Sample code for WebSample.h
75 #include <FUi.h>
76 #include <FWeb.h>
77
78 class WebSample :
79     public Tizen::Ui::Controls::Form
80 {
81 public:
82     WebSample(void) {};
83     virtual ~WebSample(void) {};
84
85 protected:
86     void LoadUrl(void);
87
88 private:
89     Tizen::Web::Controls::Web *__pWeb;
90
91 public:
92     virtual result OnInitializing(void);
93 };
94
95 // Sample code for WebSample.cpp
96 #include "WebSample.h"
97
98 using namespace Tizen::Ui;
99 using namespace Tizen::Ui::Controls;
100 using namespace Tizen::Web::Controls;
101
102 result
103 WebSample::OnInitializing(void)
104 {
105     result r = E_SUCCESS;
106
107     __pWeb = new Web();
108     __pWeb->Construct(GetClientAreaBounds());
109     AddControl(*__pWeb);
110     LoadUrl();
111
112     return r;
113 }
114
115 // Calls LoadUrl() with the URL of the Web content to display it on the Web control
116 void
117 WebSample::LoadUrl(void)
118 {
119     Tizen::Base::String url(L"http://www.tizen.org");
120
121     __pWeb->LoadUrl(url);
122 }
123  *      @endcode
124  *
125  */
126 class _OSP_EXPORT_ Web
127         : public Tizen::Ui::Container
128 {
129 public:
130         /**
131          * The object is not fully constructed after this constructor is called. For full construction, the Construct() method must be called right after calling this constructor.
132          *
133          * @since               2.0
134          */
135         Web(void);
136
137         /**
138          * This destructor overrides Tizen::Base::Object::~Object().
139          *
140          * @since               2.0
141          */
142         virtual ~Web(void);
143
144         /**
145          * Initializes this instance of the %Web control with the specified parameters.
146          *
147          * @since               2.0
148          *
149          * @privilege           %http://tizen.org/privilege/web.service
150          *
151          * @return                      An error code
152          * @param[in]           rect                    The rectangle size of the control
153          * @exception           E_SUCCESS               The method is successful.
154          * @exception           E_SYSTEM                The method has failed.
155          * @exception           E_INVALID_OPERATION     The control has not been constructed as yet.
156          * @exception           E_INVALID_ARG           The specified @c rect is invalid.
157          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
158          */
159         result Construct(const Tizen::Graphics::Rectangle& rect);
160
161         /**
162          * Loads the resource specified by the URL.
163          *
164          * @since               2.0
165          *
166          * @privilege           %http://tizen.org/privilege/web.service
167          *
168          * @param[in]           url                     The resource to load
169          * @exception           E_SUCCESS               The method is successful.
170          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
171          * @remarks     The specific error code can be accessed using the GetLastResult() method.
172          */
173         void LoadUrl(const Tizen::Base::String& url);
174
175         /**
176          * Loads the resource specified by the URL with the given header of HTTP request.
177          *
178          * @since 2.0
179          *
180          * @privilege           %http://tizen.org/privilege/web.service
181          *
182          * @return              An error code
183          * @param[in]           url                     The resource to load
184          * @param[in]           header                  The header of the HTTP request
185          * @exception           E_SUCCESS               The method is successful.
186          * @exception           E_INVALID_ARG           The url or the header is invalid.
187          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
188          */
189         result LoadUrl(const Tizen::Base::String& url, const Tizen::Net::Http::HttpHeader& header);
190
191         /**
192          * Load the resource specified by the URL with the given header and body of HTTP request.
193          * The header must include content-type entity-header field that is needed to check mime-type of the message body.
194          *
195          * @since 2.0
196          *
197          * @privilege           %http://tizen.org/privilege/web.service
198          *
199          * @return              An error code
200          * @param[in]           url                     The resource to load
201          * @param[in]           header                  The header of the HTTP request
202          * @param[in]           body                    The message body of the HTTP request
203          * @exception           E_SUCCESS               The method is successful.
204          * @exception           E_INVALID_ARG           The header is invalid.
205          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
206          */
207         result LoadUrlWithPostRequest(const Tizen::Base::String& url, const Tizen::Net::Http::HttpHeader& header, const Tizen::Base::ByteBuffer& body);
208
209         /**
210          * Loads the content of the specified buffer.
211          *
212          * @since               2.0
213          *
214          * @privilege           %http://tizen.org/privilege/web.service
215          *
216          * @param[in]           baseUrl                 The uniform resource locator (URL) of the content
217          * @param[in]           content                 The content
218          * @param[in]           mime                    The MIME type of the content
219          * @param[in]           encoding                The <a href= "../org.tizen.native.appprogramming/html/guide/web/supported_web_features.htm">text encoding</a> of the content
220          * @exception           E_SUCCESS               The method is successful.
221          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
222          * @remarks     The specific error code can be accessed using the GetLastResult() method.
223          */
224         void LoadData(const Tizen::Base::String& baseUrl, const Tizen::Base::ByteBuffer& content, const Tizen::Base::String& mime, const Tizen::Base::String& encoding = "UTF-8");
225
226         /**
227          * Stops the current loading operation.
228          *
229          * @since               2.0
230          *
231          * @privilege           %http://tizen.org/privilege/web.service
232          *
233          * @exception           E_SUCCESS               The method is successful.
234          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
235          * @remarks     The specific error code can be accessed using the GetLastResult() method.
236          */
237         void StopLoading(void);
238
239         /**
240          * Reloads the current page.
241          *
242          * @since               2.0
243          *
244          * @privilege           %http://tizen.org/privilege/web.service
245          *
246          * @exception           E_SUCCESS               The method is successful.
247          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
248          * @remarks     The specific error code can be accessed using the GetLastResult() method.
249          */
250         void Reload(void);
251
252         /**
253          * Checks whether the page is loading.
254          *
255          * @since               2.0
256          *
257          * @return              @c true if a page is loading, @n
258          *                              else @c false
259          */
260         bool IsLoading(void) const;
261
262         /**
263          * Checks whether the current %Web control has a back history item.
264          *
265          * @since               2.0
266          *
267          * @return              @c true if a back history item exists, @n
268          *                              else @c false
269          */
270         bool CanGoBack(void) const;
271
272         /**
273          * Checks whether the current %Web control has a forward history item.
274          *
275          * @since               2.0
276          *
277          * @return              @c true if a forward history item exists, @n
278          *                              else @c false
279          */
280         bool CanGoForward(void) const;
281
282         /**
283          * Goes to the back history of the current %Web control.
284          *
285          * @since               2.0
286          *
287          * @privilege           %http://tizen.org/privilege/web.service
288          *
289          * @exception           E_SUCCESS               The method is successful.
290          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
291          * @remarks     The specific error code can be accessed using the GetLastResult() method.
292          */
293         void GoBack(void);
294
295         /**
296          * Goes to the forward history of the current %Web control.
297          *
298          * @since               2.0
299          *
300          * @privilege           %http://tizen.org/privilege/web.service
301          *
302          * @exception           E_SUCCESS               The method is successful.
303          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
304          * @remarks     The specific error code can be accessed using the GetLastResult() method.
305          */
306         void GoForward(void);
307
308         /**
309          * Gets the backward and forward navigation list of the %Web control.
310          *
311          * @since               2.0
312          *
313          * @return              A pointer to PageNavigationList containing the history items of the %Web control
314          * @exception           E_SUCCESS               The method is successful.
315          * @exception           E_DATA_NOT_FOUND        There is no history data.
316          * @remarks     The specific error code can be accessed using the GetLastResult() method.
317          */
318         Tizen::Web::Controls::PageNavigationList* GetBackForwardListN(void) const;
319
320         /**
321          * Searches for a word on the current page. @n
322          * When called again, it searches for the next instance of the word on the page. Set @c searchForward to @c false to search for the word in the backward
323          * direction.
324          *
325          * @since               2.0
326          *
327          * @return              @c true if the specified @c word is found, @n
328          *                              else @c false
329          * @param[in]           word                    The string to search for
330          * @param[in]           searchForward           Set to @c true to search for the word in the forward direction from the current position, @n
331          *                                                                      else @c false to search for the word in the backward direction from the current position
332          */
333         bool SearchText(const Tizen::Base::String& word, bool searchForward = true);
334
335         /**
336          * Sets the new values for the default setting. @n
337          * It fails to change the setting during data load.
338          *
339          * @since               2.0
340          *
341          * @privilege           %http://tizen.org/privilege/web.service
342          *
343          * @return              An error code
344          * @param[in]           setting                 The setting to update
345          * @exception           E_SUCCESS               The method is successful.
346          * @exception           E_FAILURE               The method has failed.
347          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
348          */
349         result SetSetting(const Tizen::Web::Controls::WebSetting& setting);
350
351         /**
352          * Gets the setting of the %Web control.
353          *
354          * @since               2.0
355          *
356          * @return              An instance of WebSetting
357          */
358         Tizen::Web::Controls::WebSetting GetSetting(void) const;
359
360
361         /**
362          * Gets the information of the element pointed by the specified coordinates.
363          *
364          * @since               2.0
365          *
366          * @return              A HitElementResult of the pointed element
367          * @param[in]           point                   The x and y coordinates
368          * @exception           E_SUCCESS               The method is successful.
369          * @exception           E_INVALID_ARG           The specified @c point is invalid.
370          * @exception           E_OBJ_NOT_FOUND         The specified element is not found.
371          * @exception           E_INVALID_OPERATION     The current state of the instance prohibits the execution of the specified operation.
372          * @remarks     The specific error code can be accessed using the GetLastResult() method.
373          */
374         Tizen::Web::Controls::HitElementResult* GetElementByPointN(const Tizen::Graphics::Point& point) const;
375
376         /**
377          * Evaluates the JavaScript string and returns the result.
378          *
379          * @since               2.0
380          *
381          * @privilege           %http://tizen.org/privilege/web.service
382          *
383          * @return              The result of the evaluated JavaScript, @n
384          *                              else an empty string if an error occurs
385          * @param[in]           scriptCode              The JavaScript code as string
386          * @exception           E_SUCCESS               The method is successful.
387          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
388          * @remarks     The specific error code can be accessed using the GetLastResult() method.
389          */
390         Tizen::Base::String* EvaluateJavascriptN(const Tizen::Base::String& scriptCode);
391
392         /**
393          * Sets the zoom-out level as a ratio.
394          *
395          * @since               2.0
396          *
397          * @return              An error code
398          * @param[in]           level                   The zoom-out level @n
399          *                                              The value ranges between @c 0.3 and @c 2.0. When the page view is at its original size, the level is @c 1.0. @n If the
400          *                                              specified level is less than @c 1.0, the page view is reduced. @n If the specified level is greater than @c 1.0, the page view is
401          *                                              magnified.
402          * @exception           E_SUCCESS               The method is successful.
403          * @exception           E_OUT_OF_RANGE          The specified @c level is less than @c 0.3 or greater than @c 2.0.
404          */
405         result SetZoomLevel(float level);
406
407         /**
408          * Gets the zoom level of a page as a percentage.
409          *
410          * @since               2.0
411          *
412          * @return              The value ranges between @c 0.3 and @c 2.0
413          */
414         float GetZoomLevel(void) const;
415
416         /**
417          * Gets the title of the current page.
418          *
419          * @since               2.0
420          *
421          * @return              The title of the current page
422          */
423         Tizen::Base::String GetTitle(void) const;
424
425         /**
426          * Gets the URL of the current page.
427          *
428          * @since               2.0
429          *
430          * @return              The URL of the current page
431          */
432         Tizen::Base::String GetUrl(void) const;
433
434         /**
435          * Checks whether the specified multipurpose internet mail extensions (MIME) type is supported by Tizen.
436          *
437          * @since               2.0
438          *
439          * @return              @c true if the specified MIME type is supported, @n
440          *                              else @c false
441          * @param[in]           mime                    The MIME type
442          */
443         bool IsMimeSupported(const Tizen::Base::String& mime) const;
444
445         /**
446          * Sets a load event listener.
447          *
448          * @since               2.0
449          *
450          * @privilege           %http://tizen.org/privilege/web.service
451          *
452          * @param[in]           pLoadingListener        The listener receives the events that occurs while loading the data
453          * @exception           E_SUCCESS               The method is successful.
454          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
455          * @remarks     The specific error code can be accessed using the GetLastResult() method.
456          */
457         void SetLoadingListener(Tizen::Web::Controls::ILoadingListener* pLoadingListener);
458
459         /**
460          * Sets a download event listener.
461          *
462          * @since               2.0
463          *
464          * @privilege           %http://tizen.org/privilege/web.service
465          *
466          * @param[in]           pDownLoadListener       The listener to receive the data from a network incrementally
467          * @exception           E_SUCCESS               The method is successful.
468          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
469          * @remarks     The specific error code can be accessed using the GetLastResult() method.
470          */
471         void SetDownloadListener(Tizen::Web::Controls::IWebDownloadListener* pDownLoadListener);
472
473         /**
474          * Sets the starting point for the text selection block. @n
475          * It sets the selection block around the nearest word bound.
476          *
477          * @since               2.0
478          *
479          * @return              An error code
480          * @param[in]           startPoint              The starting point for the text selection block
481          * @exception           E_SUCCESS               The method is successful.
482          * @exception           E_INVALID_ARG           There is nothing to select from the starting point specified.
483          */
484         result SetBlockSelectionPosition(const Tizen::Graphics::Point& startPoint);
485
486         /**
487          * Releases the currently selected block.
488          *
489          * @since               2.0
490          *
491          * @return              An error code
492          * @exception           E_SUCCESS               The method is successful.
493          *
494          */
495         result ReleaseBlock(void);
496
497         /**
498          * Gets the starting point and the ending point of the selected text block. @n
499          * When this method is called without the selection block, the startPoint and endPoint have (0,0) values for the x and y coordinates.
500          *
501          * @since               2.0
502          *
503          * @return              An error code
504          * @param[out]          startPoint              The starting point of the selected text block
505          * @param[out]          endPoint                The ending point of the selected text block
506          * @exception           E_SUCCESS               The method is successful.
507          */
508         result GetBlockRange(Tizen::Graphics::Point& startPoint, Tizen::Graphics::Point& endPoint) const;
509
510         /**
511          * Gets the text of the selected text block.
512          *
513          * @since               2.0
514          *
515          * @return              The selected text, @n
516          *                              else an empty string if there is no selection block
517          */
518         Tizen::Base::String GetTextFromBlock(void) const;
519
520         /**
521          * Enables or disables the vertical and horizontal scrolls.
522          *
523          * @since               2.0
524          *
525          * @param[in]           enable                  Set to @c true to enable the scrolling of the web page, @n
526          *                                                      else @c false
527          * @exception           E_SUCCESS               The method is successful.
528          */
529         result SetScrollEnabled(bool enable);
530
531
532         /**
533          * Checks whether the web page scroll is enabled.
534          *
535          * @since               2.0
536          *
537          * @return              @c true if the web page scroll is enabled, @n
538          *                              else @c false
539          */
540         bool IsScrollEnabled(void) const;
541
542         /**
543          * Registers a user interface (UI) event listener.
544          *
545          * @since               2.0
546          *
547          * @param[in]           pUiEventListener        The listener to receive the user interface (UI) related events
548          */
549         void SetWebUiEventListener(Tizen::Web::Controls::IWebUiEventListener* pUiEventListener);
550
551         /**
552          * Checks whether the %Web control uses private browsing.
553          *
554          * @since               2.0
555          *
556          * @return              @c true if private browsing is enabled, @n
557          *                              else @c false
558          */
559         bool IsPrivateBrowsingEnabled(void) const;
560
561         /**
562          * Sets the private browsing and returns the result.
563          *
564          * @since               2.0
565          *
566          * @return              The result of setting the private browsing
567          * @param[in]           enable                  Set to @c true to enable private browsing, @n
568          *                                                      else @c false
569          * @exception           E_SUCCESS               The method is successful.
570          * @exception           E_SYSTEM                The method has failed.
571          */
572         result SetPrivateBrowsingEnabled(bool enable);
573
574         /**
575          * Clears the application's cache.
576          *
577          * @since               2.0
578          *
579          * @privilege           %http://tizen.org/privilege/web.service
580          *
581          * @return              An error code
582          * @exception           E_SUCCESS               The method is successful.
583          * @exception           E_SYSTEM                The method has failed.
584          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
585          */
586         result ClearCache(void);
587
588         /**
589          * Clears the application's cookie.
590          *
591          * @since               2.0
592          *
593          * @privilege           %http://tizen.org/privilege/web.service
594          *
595          * @return              An error code
596          * @exception           E_SUCCESS               The method is successful.
597          * @exception           E_SYSTEM                The method has failed.
598          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
599          */
600         result ClearCookie(void);
601
602         /**
603          * Checks whether the %Web control allows cookie. @n
604          * Returns @c true if cookie is enabled.
605          *
606          * @since               2.0
607          *
608          * @return              @c true if cookie is allowed, @n
609          *                               else @c false
610          */
611         bool IsCookieEnabled(void) const;
612
613         /**
614          * Enables or disables a cookie.
615          *
616          * @since               2.0
617          *
618          * @privilege           %http://tizen.org/privilege/web.service
619          *
620          * @return              The result of enabling or disabling cookie
621          * @param[in]           enable                  Set to @c true if the web control allows a cookie, @n
622          *                                                      else @c false
623          * @exception           E_SUCCESS               The method is successful.
624          * @exception           E_SYSTEM                The method has failed.
625          * @exception           E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
626          */
627         result SetCookieEnabled(bool enable);
628
629         /**
630          * Saves the current web page as a pdf file. The size parameter is used to set size of the pdf file using millimeter.
631          *
632          * @since 2.0
633          *
634          * @return              An error code
635          * @param[in]           filePath                The path of the pdf file that is created
636          * @param[in]           pSize                   The width and height of the pdf file in millimeter. The width and height must be greater than 0. @n
637          *                                              If the parameter contains @c null, the method uses the default size of the web page that is shown on the screen.
638          * @exception           E_SUCCESS               The method is successful.
639          * @exception           E_INVALID_ARG           Either of the following conditions has occurred: @n
640          *                                               - The specified path is invalid.
641          *                                               - The specified size is invalid.
642          * @exception           E_INACCESSIBLE_PATH     The file path is not allowed for the application to write.
643          */
644         result SavePageAsPdf(const Tizen::Base::String& filePath, const Tizen::Graphics::Dimension* pSize = null);
645
646         /**
647          * Adds a JavaScript bridge instance.
648          *
649          * @since               2.0
650          *
651          * @return              An error code
652          * @param[in]           jsBridge                The JavaScript bridge to add
653          * @exception           E_SUCCESS               The method is successful.
654          * @exception           E_OBJ_ALREADY_EXIST     A JavaScript bridge with the same name already exists.
655          */
656         result AddJavaScriptBridge(const IJavaScriptBridge& jsBridge);
657
658         /**
659          * Removes a JavaScript bridge instance.
660          *
661          * @since               2.0
662          *
663          * @return              An error code
664          * @param[in]           jsBridge                The JavaScript bridge to remove
665          * @exception           E_SUCCESS               The method is successful.
666          */
667         result RemoveJavaScriptBridge(const IJavaScriptBridge& jsBridge);
668
669         /**
670          * Registers a keypad event listener. @n
671          * The registered listener is notified when the keypad associated with @c <input> tag or with @c <textarea> tag is opened or closed.
672          *
673          * @since               2.0
674          *
675          * @param[in]           pKeypadEventListener    The event listener to set
676          * @remarks             The interfaces of IWebKeypadEventListener are called only when the input style of the keypad is @c INPUT_STYLE_OVERLAY.
677          * @see                 WebSetting::SetInputStyle()
678          */
679         void SetWebKeypadEventListener(IWebKeypadEventListener* pKeypadEventListener);
680
681         /**
682          * Searches for all instances of the text on the current page and then highlights them. @n
683          * The current matched block will indicate the first match.
684          *
685          * @since 2.0
686          *
687          * @return              An error code
688          *
689          * @param[in]           text                    The string to search for
690          * @param[in]           caseSensitive           Set to @c true to search for the text with case-sensitive mode, @n
691          *                                                      else @c false to search for the text in the backward direction from the current position
692          * @exception           E_SUCCESS               The method is successful.
693          * @exception           E_INVALID_ARG           The specified @c text is invalid.
694          * @remarks             This method operates asynchronously.
695          * @see                 Tizen::Web::Controls::ITextSearchListener::OnTextFound()
696          */
697         result SearchTextAllAsync(const Tizen::Base::String& text, bool caseSensitive);
698
699         /**
700          * Scrolls the current matched block to the next text matched by SearchTextAllAsync()
701          *
702          * @since 2.0
703          *
704          * @return              An error code
705          *
706          * @param[in]           searchForward           Set to @c true to search for the text in the forward direction from the current position, @n
707          * @exception           E_SUCCESS               The method is successful.
708          * @exception           E_OBJ_NOT_FOUND         The next instance is not found.
709          * @exception           E_INVALID_OPERATION     The SearchTextAllAsync() method is not called.
710          * @remarks             This method operates asynchronously.
711          * @see                 Tizen::Web::Controls::ITextSearchListener::OnTextFound()
712          */
713         result SearchNextAsync(bool searchForward = true);
714
715         /**
716          * Sets a text search listener.
717          *
718          * @since 2.0
719          *
720          * @param[in]           pTextSearchListener     The result of the search operation made by asynchronous methods
721          */
722         void SetTextSearchListener(ITextSearchListener* pTextSearchListener);
723
724         /**
725          * Gets the favicon image from current page.
726          *       
727          * @since 2.0
728          *
729          * @return              The image
730          *
731          * @exception           E_SUCCESS               The method is successful.
732          * @remarks     The specific error code can be accessed using the GetLastResult() method.
733          *
734          */
735         Tizen::Graphics::Bitmap* GetFaviconN(void) const;
736
737         /**
738          * Informs the browser engine to stop the screen operations such as updating a screen until %Web calls the Resume() method. @n
739          * It is useful when a Web control is not visible and does not need to update its screen.
740          *
741          * @since               2.0
742          */
743         void    Pause(void);
744
745         /**
746          * Informs the browser engine to resume the handling of screen operations. 
747          *
748          * @since               2.0
749          */
750         void    Resume(void);
751
752 private:
753         //
754         // The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
755         //
756         // @param[in]           item                    The instance of the %Web class to copy from
757         // @remarks             This constructor is hidden.
758         //
759         Web(const Web& item);
760
761         //
762         // The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
763         //
764         // @param[in]           item                    The instance of the %Web class to assign from
765         // @remarks             This operator is hidden.
766         //
767         Web& operator =(const Web& item);
768 }; // Web
769
770 }}} // Tizen::Web::Controls
771 #endif // _FWEB_CTRL_WEB_H_