add OnFaviconReceived() callback
[platform/framework/native/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 IWebUiEventListenerF;
53 class IWebUiListener;
54 class HitElementResult;
55 class PageNavigationList;
56 class WebSetting;
57 class _WebImpl;
58 }}} // Tizen::Web::Controls
59
60 namespace Tizen { namespace Web { namespace Controls
61 {
62
63 /**
64  * @class               Web
65  * @brief               This class provides methods for embedding a browser in an application.
66  *
67  * @since               2.0
68  *
69  * 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.
70  * @n
71  * 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>.
72  *
73  * The following example demonstrates how to use the %Web class.
74  *      @code
75 // Sample code for WebSample.h
76 #include <FUi.h>
77 #include <FWeb.h>
78
79 class WebSample :
80     public Tizen::Ui::Controls::Form
81 {
82 public:
83     WebSample(void) {};
84     virtual ~WebSample(void) {};
85
86 protected:
87     void LoadUrl(void);
88
89 private:
90     Tizen::Web::Controls::Web *__pWeb;
91
92 public:
93     virtual result OnInitializing(void);
94 };
95
96 // Sample code for WebSample.cpp
97 #include "WebSample.h"
98
99 using namespace Tizen::Ui;
100 using namespace Tizen::Ui::Controls;
101 using namespace Tizen::Web::Controls;
102
103 result
104 WebSample::OnInitializing(void)
105 {
106     result r = E_SUCCESS;
107
108     __pWeb = new Web();
109     __pWeb->Construct(GetClientAreaBounds());
110     AddControl(*__pWeb);
111     LoadUrl();
112
113     return r;
114 }
115
116 // Calls LoadUrl() with the URL of the Web content to display it on the Web control
117 void
118 WebSample::LoadUrl(void)
119 {
120     Tizen::Base::String url(L"http://www.tizen.org");
121
122     __pWeb->LoadUrl(url);
123 }
124  *      @endcode
125  *
126  */
127 class _OSP_EXPORT_ Web
128         : public Tizen::Ui::Container
129 {
130 public:
131         /**
132          * 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.
133          *
134          * @since               2.0
135          */
136         Web(void);
137
138         /**
139          * This destructor overrides Tizen::Base::Object::~Object().
140          *
141          * @since               2.0
142          */
143         virtual ~Web(void);
144
145         /**
146          * Initializes this instance of the %Web control with the specified parameters.
147          *
148          * @since               2.0
149          *
150          * @privlevel   public
151          * @privilege   http://tizen.org/privilege/web.service
152          *
153          * @return              An error code
154          * @param[in]   rect                    The rectangle size of the control
155          * @exception   E_SUCCESS                       The method is successful.
156          * @exception   E_SYSTEM                        The method has failed.
157          * @exception   E_INVALID_ARG           The specified @c rect is invalid.
158          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
159          */
160         result Construct(const Tizen::Graphics::Rectangle& rect);
161
162         /*
163          * Initializes this instance of the %Web control with the specified parameters.
164          *
165          * @since               2.1
166          *
167          * @privlevel   public
168          * @privilege   http://tizen.org/privilege/web.service
169          *
170          * @return              An error code
171          * @param[in]   rect                    The rectangle size of the control
172          * @exception   E_SUCCESS                       The method is successful.
173          * @exception   E_SYSTEM                        The method has failed.
174          * @exception   E_INVALID_ARG           The specified @c rect is invalid.
175          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
176          */
177         result Construct(const Tizen::Graphics::FloatRectangle& rect);
178
179         /**
180          * Loads the resource specified by the URL.
181          *
182          * @since               2.0
183          *
184          * @privlevel   public
185          * @privilege   http://tizen.org/privilege/web.service
186          *
187          * @param[in]   url                             The resource to load
188          * @exception   E_SUCCESS                       The method is successful.
189          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
190          * @remarks             The specific error code can be accessed using the GetLastResult() method.
191          */
192         void LoadUrl(const Tizen::Base::String& url);
193
194         /**
195          * Loads the resource specified by the URL with the given header of HTTP request.
196          *
197          * @since               2.0
198          *
199          * @privlevel   public
200          * @privilege   http://tizen.org/privilege/web.service
201          *
202          * @return              An error code
203          * @param[in]   url                             The resource to load
204          * @param[in]   header                  The header of the HTTP request
205          * @exception   E_SUCCESS                       The method is successful.
206          * @exception   E_INVALID_HEADER        The header object does not contain any header fields.
207          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
208          */
209         result LoadUrl(const Tizen::Base::String& url, const Tizen::Net::Http::HttpHeader& header);
210
211         /**
212          * Load the resource specified by the URL with the given header and body of HTTP request.
213          * The header must include content-type entity-header field that is needed to check mime-type of the message body.
214          *
215          * @since               2.0
216          *
217          * @privlevel   public
218          * @privilege   http://tizen.org/privilege/web.service
219          *
220          * @return              An error code
221          * @param[in]   url                             The resource to load
222          * @param[in]   header                  The header of the HTTP request
223          * @param[in]   body                    The message body of the HTTP request
224          * @exception   E_SUCCESS                       The method is successful.
225          * @exception   E_INVALID_HEADER        The header object does not contain any header fields.
226          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
227          */
228         result LoadUrlWithPostRequest(const Tizen::Base::String& url, const Tizen::Net::Http::HttpHeader& header, const Tizen::Base::ByteBuffer& body);
229
230         /**
231          * Loads the content of the specified buffer.
232          *
233          * @since               2.0
234          *
235          * @privlevel   public
236          * @privilege   http://tizen.org/privilege/web.service
237          *
238          * @param[in]   baseUrl                 The uniform resource locator (URL) of the content
239          * @param[in]   content                 The content
240          * @param[in]   mime                    The MIME type of the content
241          * @param[in]   encoding                The <a href= "../org.tizen.native.appprogramming/html/guide/web/supported_web_features.htm">text encoding</a> of the content
242          * @exception   E_SUCCESS                       The method is successful.
243          * @exception   E_INVALID_ARG           The content buffer is empty @b Since: @b 2.1
244          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
245          * @remarks             The specific error code can be accessed using the GetLastResult() method.
246          */
247         void LoadData(const Tizen::Base::String& baseUrl, const Tizen::Base::ByteBuffer& content, const Tizen::Base::String& mime, const Tizen::Base::String& encoding = "UTF-8");
248
249         /**
250          * Stops the current loading operation.
251          *
252          * @since               2.0
253          *
254          * @privlevel   public
255          * @privilege   http://tizen.org/privilege/web.service
256          *
257          * @exception   E_SUCCESS                       The method is successful.
258          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
259          * @remarks             The specific error code can be accessed using the GetLastResult() method.
260          */
261         void StopLoading(void);
262
263         /**
264          * Reloads the current page.
265          *
266          * @since               2.0
267          *
268          * @privlevel   public
269          * @privilege   http://tizen.org/privilege/web.service
270          *
271          * @exception   E_SUCCESS                       The method is successful.
272          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
273          * @remarks             The specific error code can be accessed using the GetLastResult() method.
274          */
275         void Reload(void);
276
277         /**
278          * Checks whether the page is loading.
279          *
280          * @since               2.0
281          *
282          * @return              @c true if a page is loading, @n
283          *                                      else @c false
284          */
285         bool IsLoading(void) const;
286
287         /**
288          * Checks whether the current %Web control has a back history item.
289          *
290          * @since               2.0
291          *
292          * @return              @c true if a back history item exists, @n
293          *                                      else @c false
294          */
295         bool CanGoBack(void) const;
296
297         /**
298          * Checks whether the current %Web control has a forward history item.
299          *
300          * @since               2.0
301          *
302          * @return              @c true if a forward history item exists, @n
303          *                                      else @c false
304          */
305         bool CanGoForward(void) const;
306
307         /**
308          * Goes to the back history of the current %Web control.
309          *
310          * @since               2.0
311          *
312          * @privlevel   public
313          * @privilege   http://tizen.org/privilege/web.service
314          *
315          * @exception   E_SUCCESS                       The method is successful.
316          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
317          * @remarks             The specific error code can be accessed using the GetLastResult() method.
318          */
319         void GoBack(void);
320
321         /**
322          * Goes to the forward history of the current %Web control.
323          *
324          * @since               2.0
325          *
326          * @privlevel   public
327          * @privilege   http://tizen.org/privilege/web.service
328          *
329          * @exception   E_SUCCESS                       The method is successful.
330          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
331          * @remarks             The specific error code can be accessed using the GetLastResult() method.
332          */
333         void GoForward(void);
334
335         /**
336          * Gets the backward and forward navigation list of the %Web control.
337          *
338          * @since               2.0
339          *
340          * @return              A pointer to PageNavigationList containing the history items of the %Web control
341          * @exception   E_SUCCESS                       The method is successful.
342          * @exception   E_SYSTEM                        The method cannot proceed due to a severe system error.
343          * @remarks             The specific error code can be accessed using the GetLastResult() method.
344          */
345         Tizen::Web::Controls::PageNavigationList* GetBackForwardListN(void) const;
346
347         /**
348          * Searches for a word on the current page. @n
349          * 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
350          * direction.
351          *
352          * @since               2.0
353          *
354          * @return              @c true if the specified @c word is found, @n
355          *                                      else @c false
356          * @param[in]   word                    The string to search for
357          * @param[in]   searchForward   Set to @c true to search for the word in the forward direction from the current position, @n
358          *                                                                      else @c false to search for the word in the backward direction from the current position
359          */
360         bool SearchText(const Tizen::Base::String& word, bool searchForward = true);
361
362         /**
363          * Sets the new values for the default setting. @n
364          * It fails to change the setting during data load.
365          *
366          * @since               2.0
367          *
368          * @privlevel   public
369          * @privilege   http://tizen.org/privilege/web.service
370          *
371          * @return              An error code
372          * @param[in]   setting                 The setting to update
373          * @exception   E_SUCCESS                       The method is successful.
374          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
375          */
376         result SetSetting(const Tizen::Web::Controls::WebSetting& setting);
377
378         /**
379          * Gets the setting of the %Web control.
380          *
381          * @since               2.0
382          *
383          * @return              An instance of WebSetting
384          */
385         Tizen::Web::Controls::WebSetting GetSetting(void) const;
386
387
388         /**
389          * Gets the information of the element pointed by the specified coordinates.
390          *
391          * @since               2.0
392          *
393          * @return              A HitElementResult of the pointed element
394          * @param[in]   point                   The x and y coordinates
395          * @exception   E_SUCCESS                       The method is successful.
396          * @exception   E_INVALID_ARG           The specified @c point is invalid.
397          * @exception   E_UNSUPPORTED_FORMAT    The image format is not supported.
398          * @exception   E_SYSTEM                        The method cannot proceed due to a severe system error.
399          * @remarks             The specific error code can be accessed using the GetLastResult() method.
400          */
401         Tizen::Web::Controls::HitElementResult* GetElementByPointN(const Tizen::Graphics::Point& point) const;
402
403         /*
404          * Gets the information of the element pointed by the specified coordinates.
405          *
406          * @since               2.1
407          *
408          * @return              A HitElementResult of the pointed element
409          * @param[in]   point                   The x and y coordinates
410          * @exception   E_SUCCESS                       The method is successful.
411          * @exception   E_INVALID_ARG           The specified @c point is invalid.
412          * @exception   E_UNSUPPORTED_FORMAT    The image format is not supported.
413          * @exception   E_SYSTEM                        The method cannot proceed due to a severe system error.
414          * @remarks             The specific error code can be accessed using the GetLastResult() method.
415          */
416         Tizen::Web::Controls::HitElementResult* GetElementByPointN(const Tizen::Graphics::FloatPoint& point) const;
417
418         /**
419          * Evaluates the JavaScript string and returns the result.
420          *
421          * @since               2.0
422          *
423          * @privlevel   public
424          * @privilege   http://tizen.org/privilege/web.service
425          *
426          * @return              The result of the evaluated JavaScript, @n
427          *                                      else an empty string if an error occurs
428          * @param[in]   scriptCode              The JavaScript code as string
429          * @exception   E_SUCCESS                       The method is successful.
430          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
431          * @remarks             The specific error code can be accessed using the GetLastResult() method.
432          */
433         Tizen::Base::String* EvaluateJavascriptN(const Tizen::Base::String& scriptCode);
434
435         /**
436          * Sets the zoom-out level as a ratio.
437          *
438          * @since               2.0
439          *
440          * @return              An error code
441          * @param[in]   level                   The zoom-out level @n
442          *                                                              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
443          *                                                              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
444          *                                                              magnified.
445          * @exception   E_SUCCESS                       The method is successful.
446          * @exception   E_OUT_OF_RANGE          The specified @c level is less than @c 0.3 or greater than @c 2.0.
447          */
448         result SetZoomLevel(float level);
449
450         /**
451          * Gets the zoom level of a page as a percentage.
452          *
453          * @since               2.0
454          *
455          * @return              The value ranges between @c 0.3 and @c 2.0
456          */
457         float GetZoomLevel(void) const;
458
459         /**
460          * Gets the title of the current page.
461          *
462          * @since               2.0
463          *
464          * @return              The title of the current page
465          */
466         Tizen::Base::String GetTitle(void) const;
467
468         /**
469          * Gets the URL of the current page.
470          *
471          * @since               2.0
472          *
473          * @return              The URL of the current page
474          */
475         Tizen::Base::String GetUrl(void) const;
476
477         /**
478          * Checks whether the specified multipurpose internet mail extensions (MIME) type is supported by %Tizen.
479          *
480          * @since               2.0
481          *
482          * @return              @c true if the specified MIME type is supported, @n
483          *                                      else @c false
484          * @param[in]   mime                    The MIME type
485          */
486         bool IsMimeSupported(const Tizen::Base::String& mime) const;
487
488         /**
489          * Sets a load event listener.
490          *
491          * @since               2.0
492          *
493          * @privlevel   public
494          * @privilege   http://tizen.org/privilege/web.service
495          *
496          * @param[in]   pLoadingListener        The listener receives the events that occurs while loading the data
497          * @exception   E_SUCCESS                       The method is successful.
498          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
499          * @remarks             The specific error code can be accessed using the GetLastResult() method.
500          */
501         void SetLoadingListener(Tizen::Web::Controls::ILoadingListener* pLoadingListener);
502
503         /**
504          * Sets a download event listener.
505          *
506          * @since               2.0
507          *
508          * @privlevel   public
509          * @privilege   http://tizen.org/privilege/web.service
510          *
511          * @param[in]   pDownLoadListener       The listener to receive the data from a network incrementally
512          * @exception   E_SUCCESS                       The method is successful.
513          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
514          * @remarks             The specific error code can be accessed using the GetLastResult() method.
515          */
516         void SetDownloadListener(Tizen::Web::Controls::IWebDownloadListener* pDownLoadListener);
517
518         /**
519          * Sets the starting point for the text selection block. @n
520          * It sets the selection block around the nearest word bound.
521          *
522          * @since               2.0
523          *
524          * @return              An error code
525          * @param[in]   startPoint              The starting point for the text selection block
526          * @exception   E_SUCCESS                       The method is successful.
527          * @exception   E_INVALID_ARG           There is nothing to select from the starting point specified.
528          */
529         result SetBlockSelectionPosition(const Tizen::Graphics::Point& startPoint);
530
531         /*
532          * Sets the starting point for the text selection block. @n
533          * It sets the selection block around the nearest word bound.
534          *
535          * @since               2.1
536          *
537          * @return              An error code
538          * @param[in]   startPoint              The starting point for the text selection block
539          * @exception   E_SUCCESS                       The method is successful.
540          * @exception   E_INVALID_ARG           There is nothing to select from the starting point specified.
541          */
542         result SetBlockSelectionPosition(const Tizen::Graphics::FloatPoint& startPoint);
543
544         /**
545          * Releases the currently selected block.
546          *
547          * @since               2.0
548          *
549          * @return              An error code
550          * @exception   E_SUCCESS                       The method is successful.
551          *
552          */
553         result ReleaseBlock(void);
554
555         /**
556          * Gets the starting point and the ending point of the selected text block. @n
557          * When this method is called without the selection block, the startPoint and endPoint have (0,0) values for the x and y coordinates.
558          *
559          * @since               2.0
560          *
561          * @return              An error code
562          * @param[out]  startPoint              The starting point of the selected text block
563          * @param[out]  endPoint                The ending point of the selected text block
564          * @exception   E_SUCCESS                       The method is successful.
565          */
566         result GetBlockRange(Tizen::Graphics::Point& startPoint, Tizen::Graphics::Point& endPoint) const;
567
568         /*
569          * Gets the starting point and the ending point of the selected text block. @n
570          * When this method is called without the selection block, the startPoint and endPoint have (0.0,0.0) values for the x and y coordinates.
571          *
572          * @since               2.1
573          *
574          * @return              An error code
575          * @param[out]  startPoint              The starting point of the selected text block
576          * @param[out]  endPoint                The ending point of the selected text block
577          * @exception   E_SUCCESS                       The method is successful.
578          */
579         result GetBlockRange(Tizen::Graphics::FloatPoint& startPoint, Tizen::Graphics::FloatPoint& endPoint) const;
580
581
582         /**
583          * Gets the text of the selected text block.
584          *
585          * @since               2.0
586          *
587          * @return              The selected text, @n
588          *                                      else an empty string if there is no selection block
589          */
590         Tizen::Base::String GetTextFromBlock(void) const;
591
592         /**
593          * Enables or disables the vertical and horizontal scrolls.
594          *
595          * @since               2.0
596          *
597          * @param[in]   enable                  Set to @c true to enable the scrolling of the web page, @n
598          *                                                                      else @c false
599          * @exception   E_SUCCESS                       The method is successful.
600          */
601         result SetScrollEnabled(bool enable);
602
603
604         /**
605          * Checks whether the web page scroll is enabled.
606          *
607          * @since               2.0
608          *
609          * @return              @c true if the web page scroll is enabled, @n
610          *                                      else @c false
611          */
612         bool IsScrollEnabled(void) const;
613
614         /**
615          * Registers a user interface (UI) event listener.
616          *
617          * @since               2.0
618          *
619          * @param[in]   pUiEventListener        The listener to receive the user interface (UI) related events
620          */
621         void SetWebUiEventListener(Tizen::Web::Controls::IWebUiEventListener* pUiEventListener);
622
623         /*
624          * Registers a user interface (UI) event listener.
625          *
626          * @since               2.1
627          *
628          * @param[in]   pUiEventListener        The listener to receive the user interface (UI) related events
629          */
630         void SetWebUiEventListenerF(Tizen::Web::Controls::IWebUiEventListenerF* pUiEventListener);
631
632         /**
633          * Checks whether the %Web control uses private browsing.
634          *
635          * @since               2.0
636          *
637          * @return              @c true if private browsing is enabled, @n
638          *                      else @c false
639          */
640         bool IsPrivateBrowsingEnabled(void) const;
641
642         /**
643          * Sets the private browsing and returns the result.
644          *
645          * @since               2.0
646          *
647          * @privlevel   public
648          * @privilege   http://tizen.org/privilege/web.service
649          *
650          * @return              The result of setting the private browsing
651          * @param[in]   enable                  Set to @c true to enable private browsing, @n
652          *                                                                      else @c false
653          * @exception   E_SUCCESS                       The method is successful.
654          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
655          */
656         result SetPrivateBrowsingEnabled(bool enable);
657
658         /**
659          * Clears the back and forward navigation list.
660          *
661          * @since               2.1
662          *
663          * @privlevel   public
664          * @privilege   http://tizen.org/privilege/web.service
665          *
666          * @return              An error code
667          * @exception   E_SUCCESS                       The method is successful.
668          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
669          * @see CanGoBack()
670          * @see CanGoForward()
671          * @see GoBack()
672          * @see GoForward()
673          */
674         result ClearHistory(void);
675
676         /**
677          * Clears the application's cache.
678          *
679          * @since               2.0
680          *
681          * @privlevel   public
682          * @privilege   http://tizen.org/privilege/web.service
683          *
684          * @return              An error code
685          * @exception   E_SUCCESS                       The method is successful.
686          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
687          */
688         result ClearCache(void);
689
690         /**
691          * Clears the application's cookie.
692          *
693          * @since               2.0
694          *
695          * @privlevel   public
696          * @privilege   http://tizen.org/privilege/web.service
697          *
698          * @return              An error code
699          * @exception   E_SUCCESS                       The method is successful.
700          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
701          */
702         result ClearCookie(void);
703
704         /**
705          * Clears the application's all stored form datas.
706          *
707          * @since               2.1
708          *
709          * @privlevel   public
710          * @privilege   http://tizen.org/privilege/web.service
711          *
712          * @return              An error code
713          * @exception   E_SUCCESS                       The method is successful.
714          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
715          */
716         result ClearFormData(void);
717
718         /**
719          * Clears the application's all stored id/password datas.
720          *
721          * @since               2.1
722          *
723          * @privleve    public
724          * @privilege   http://tizen.org/privilege/web.service
725          *
726          * @return              An error code
727          * @exception   E_SUCCESS                       The method is successful.
728          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
729         */
730         result ClearLoginFormData(void);
731
732         /**
733          * Checks whether the %Web control allows cookie. @n
734          * Returns @c true if cookie is enabled.
735          *
736          * @since               2.0
737          *
738          * @return              @c true if cookie is allowed, @n
739          *                                      else @c false
740          */
741         bool IsCookieEnabled(void) const;
742
743         /**
744          * Enables or disables a cookie.
745          *
746          * @since               2.0
747          *
748          * @privlevel   public
749          * @privilege   http://tizen.org/privilege/web.service
750          *
751          * @return              The result of enabling or disabling cookie
752          * @param[in]   enable                  Set to @c true if the web control allows a cookie, @n
753          *                                                                      else @c false
754          * @exception   E_SUCCESS                       The method is successful.
755          * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
756          */
757         result SetCookieEnabled(bool enable);
758
759         /**
760          * Saves the current web page as a pdf file. The size parameter is used to set size of the pdf file using millimeter.
761          *
762          * @since               2.0
763          *
764          * @return              An error code
765          * @param[in]   filePath                The path of the pdf file that is created
766          * @param[in]   pSize                   The width and height of the pdf file in millimeter. The width and height must be greater than @c 0. @n
767          *                                                              If the parameter contains @c null, the method uses the default size of the web page that is shown on the screen.
768          * @exception   E_SUCCESS                       The method is successful.
769          * @exception   E_INVALID_ARG           Either of the following conditions has occurred: @n
770          *                                                                              - The specified path is invalid.
771          *                                                                              - The specified size is invalid.
772          * @exception   E_INACCESSIBLE_PATH     The file path is not allowed for the application to write.
773          */
774         result SavePageAsPdf(const Tizen::Base::String& filePath, const Tizen::Graphics::Dimension* pSize = null);
775
776         /**
777          * Adds a JavaScript bridge instance.
778          *
779          * @since               2.0
780          *
781          * @return              An error code
782          * @param[in]   jsBridge                The JavaScript bridge to add
783          * @exception   E_SUCCESS                       The method is successful.
784          * @exception   E_OBJ_ALREADY_EXIST     A JavaScript bridge with the same name already exists.
785          */
786         result AddJavaScriptBridge(const IJavaScriptBridge& jsBridge);
787
788         /**
789          * Removes a JavaScript bridge instance.
790          *
791          * @since               2.0
792          *
793          * @return              An error code
794          * @param[in]   jsBridge                The JavaScript bridge to remove
795          * @exception   E_SUCCESS                       The method is successful.
796          * @exception   E_OBJ_NOT_FOUND The specified element is not found.
797          */
798         result RemoveJavaScriptBridge(const IJavaScriptBridge& jsBridge);
799
800         /**
801          * Registers a keypad event listener. @n
802          * The registered listener is notified when the keypad associated with @c <input> tag or with @c <textarea> tag is opened or closed.
803          *
804          * @since               2.0
805          *
806          * @param[in]   pKeypadEventListener    The event listener to set
807          * @remarks             The interfaces of IWebKeypadEventListener are called only when the input style of the keypad is @c INPUT_STYLE_OVERLAY.
808          * @see WebSetting::SetInputStyle()
809          */
810         void SetWebKeypadEventListener(IWebKeypadEventListener* pKeypadEventListener);
811
812         /**
813          * Searches for all instances of the text on the current page and then highlights them. @n
814          * The current matched block will indicate the first match.
815          *
816          * @since               2.0
817          *
818          * @return              An error code
819          *
820          * @param[in]   text                    The string to search for
821          * @param[in]   caseSensitive   Set to @c true to search for the text with case-sensitive mode, @n
822          *                                                              else @c false to search for the text in the backward direction from the current position
823          * @exception   E_SUCCESS                       The method is successful.
824          * @exception   E_INVALID_ARG           The specified @c text is invalid.
825          * @remarks             This method operates asynchronously.
826          * @see Tizen::Web::Controls::ITextSearchListener::OnTextFound()
827          */
828         result SearchTextAllAsync(const Tizen::Base::String& text, bool caseSensitive);
829
830         /**
831          * Scrolls the current matched block to the next text matched by SearchTextAllAsync()
832          *
833          * @since               2.0
834          *
835          * @return              An error code
836          *
837          * @param[in]   searchForward   Set to @c true to search for the text in the forward direction from the current position, @n
838          * @exception   E_SUCCESS                       The method is successful.
839          * @exception   E_OBJ_NOT_FOUND         The next instance is not found.
840          * @exception   E_INVALID_OPERATION             The SearchTextAllAsync() method is not called.
841          * @remarks             This method operates asynchronously.
842          * @see Tizen::Web::Controls::ITextSearchListener::OnTextFound()
843          */
844         result SearchNextAsync(bool searchForward = true);
845
846         /**
847          * Sets a text search listener.
848          *
849          * @since               2.0
850          *
851          * @param[in]   pTextSearchListener             The result of the search operation made by asynchronous methods
852          */
853         void SetTextSearchListener(ITextSearchListener* pTextSearchListener);
854
855         /**
856          * Gets the favicon image from current page.
857          *       
858          * @since               2.0
859          *
860          * @return              The image
861          * @see Tizen::Web::Controls::ILoadingListener::OnFaviconReceived()
862          */
863         Tizen::Graphics::Bitmap* GetFaviconN(void) const;
864
865         /**
866          * Informs the browser engine to stop the screen operations such as updating a screen until %Web calls the Resume() method. @n
867          * It is useful when a %Web control is not visible and does not need to update its screen.
868          *
869          * @since               2.0
870          */
871         void    Pause(void);
872
873         /**
874          * Informs the browser engine to resume the handling of screen operations. 
875          *
876          * @since               2.0
877          */
878         void    Resume(void);
879
880         /**
881          * Scrolls the web page by the given dx and dy.
882          *
883          * @since               2.1
884          *
885          * @param[in]   diff                    The x and y coordinates
886          */
887         void ScrollBy(const Tizen::Graphics::Point& diff);
888
889         /**
890          * Sets the scrolled position of the web page.
891          *
892          * @since               2.1
893          *
894          * @param[in]   dest                    The x and y coordinates
895          */
896         void ScrollTo(const Tizen::Graphics::Point& dest);
897
898         /**
899          * Gets the current scroll position of the web page.
900          *
901          * @since               2.1
902          *
903          * @return              The x and y coordinates
904          */
905         Tizen::Graphics::Point GetScrollPosition(void) const;
906
907         /**
908          * Gets the size of current web page.
909          *
910          * @since               2.1
911          *
912          * @return              The size of current web page.
913          */
914         Tizen::Graphics::Dimension GetPageSize(void) const;
915
916 private:
917         //
918         // The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
919         //
920         // @param[in]   item                    The instance of the %Web class to copy from
921         // @remarks             This constructor is hidden.
922         //
923         Web(const Web& item);
924
925         //
926         // The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
927         //
928         // @param[in]   item                    The instance of the %Web class to assign from
929         // @remarks             This operator is hidden.
930         //
931         Web& operator =(const Web& item);
932 }; // Web
933
934 }}} // Tizen::Web::Controls
935 #endif // _FWEB_CTRL_WEB_H_