#include <unique_ptr.h>
#include <EWebKit2.h>
+#include <FBaseColArrayList.h>
#include <FBaseString.h>
#include <FUiIActionEventListener.h>
#include <FUiIOrientationEventListener.h>
#include <FUiITextEventListener.h>
#include <FWebCtrlILoadingListener.h>
#include <FUi_ContainerImpl.h>
+#include "FWebCtrl_CertificateConfirmPopup.h"
#include "FWebCtrl_IWebEventListener.h"
+#include "FWebCtrl_UserConfirmPopup.h"
namespace Tizen { namespace Base { namespace Collection
{
class HttpHeader;
}}} // Tizen::Net::Http
+namespace Tizen { namespace System
+{
+class _VibratorImpl;
+}} // Tizen::Sytem
+
namespace Tizen { namespace Ui
{
class Contorl;
class IWebDownloadListener;
class IWebKeypadEventListener;
class IWebUiEventListener;
+class IWebUiEventListenerF;
class AuthenticationChallenge;
class HitElementResult;
class PageNavigationList;
class _JsBridgeComparer;
class _JsBridgeHashCodeProvider;
class _AuthConfirmPopup;
-class _GeolocationConfirmPopup;
class _PromptPopup;
+class _GeolocationConfirmPopup;
class _WebDataHandler;
class _SelectBox;
class _InputPickerPopup;
+class _FormDataWindow;
struct _TextSearch
{
SEARCH_NEXT_ASYNC
};
+enum _WebPopupCloseId
+{
+ ID_CERTIFICATE_CONFIRM_POPUP_CLOSE,
+ ID_PROMPT_POPUP_CLOSE,
+ ID_USER_CONFIRM_POPUP_CLOSE
+};
+
class _WebImpl
: public Tizen::Ui::_ContainerImpl
, public Tizen::Ui::ITextEventListener
, public Tizen::Web::Controls::_IWebEventListener
- , virtual public Tizen::Base::Runtime::IEventListener
{
public:
_WebImpl(Web* pWeb, Tizen::Ui::_Control* pCore);
result SetBlockSelectionPosition(const Tizen::Graphics::Point& startPoint);
- result ReleaseBlock(void);
+ result SetBlockSelectionPosition(const Tizen::Graphics::FloatPoint& startPoint);
- result GetBlockRange(Tizen::Graphics::Point& startPoint, Tizen::Graphics::Point& endPoint) const;
+ void ReleaseBlock(void);
- void FireWebPageBlockSelectedEvent(void) const;
+ void GetBlockRange(Tizen::Graphics::Point& startPoint, Tizen::Graphics::Point& endPoint) const;
+
+ void GetBlockRange(Tizen::Graphics::FloatPoint& startPoint, Tizen::Graphics::FloatPoint& endPoint) const;
Tizen::Base::String GetTextFromBlock(void) const;
- Tizen::Base::String* EvaluateJavascriptN(const Tizen::Base::String& scriptCode) const;
+ Tizen::Base::String* EvaluateJavascriptN(const Tizen::Base::String& scriptCode);
bool IsPrivateBrowsingEnabled(void) const;
- result SetPrivateBrowsingEnabled(bool enable);
+ void SetPrivateBrowsingEnabled(bool enable);
+
+ void ClearHistory(void);
void ClearCache(void);
void ClearCookie(void);
+ void ClearFormData(void);
+
+ void ClearLoginFormData(void);
+
bool IsCookieEnabled(void) const;
void SetCookieEnabled(bool enable);
void SetWebUiEventListener(Tizen::Web::Controls::IWebUiEventListener* pUiEventListener);
+ void SetWebUiEventListenerF(Tizen::Web::Controls::IWebUiEventListenerF* pUiEventListener);
+
void SetWebKeypadEventListener(IWebKeypadEventListener* pKeypadEventListener);
void SetDownloadListener(Tizen::Web::Controls::IWebDownloadListener* pDownLoadListener);
Tizen::Web::Controls::IWebUiEventListener* GetUiEventListener(void) const;
+ Tizen::Web::Controls::IWebUiEventListenerF* GetUiEventListenerF(void) const;
+
Tizen::Web::Controls::ITextSearchListener* GetTextSearchListener(void) const;
Tizen::Web::Controls::IWebKeypadEventListener* GetWebKeypadEventListener(void) const;
const Tizen::Web::Controls::HitElementResult* GetElementByPointN(const Tizen::Graphics::Point& point) const;
+ const Tizen::Web::Controls::HitElementResult* GetElementByPointN(const Tizen::Graphics::FloatPoint& point) const;
+
result AddJavaScriptBridge(const IJavaScriptBridge& jsBridge);
result RemoveJavaScriptBridge(const IJavaScriptBridge& jsBridge);
- result SetScrollEnabled(bool enable);
+ void SetScrollEnabled(bool enable);
bool IsScrollEnabled(void) const;
+ Tizen::Graphics::Bitmap* GetFaviconN(void) const;
+
+ void Pause(void);
+
+ void Resume(void);
+
+ void ScrollBy(const Tizen::Graphics::Point& diff);
+
+ void ScrollTo(const Tizen::Graphics::Point& dest);
+
+ Tizen::Graphics::Point GetScrollPosition(void) const;
+
+ Tizen::Graphics::Dimension GetPageSize(void) const;
+
virtual bool IsLayoutable(void) const;
void SetEventListenerCallback(void) const;
bool IsRedirectRequested(void) const;
+ void SetCertificateRequested(bool arg);
+ bool IsCertificateRequested(void) const;
+ void SetCertificateConfirmed(bool arg);
+ bool IsCertificateConfirmed(void) const;
+ void ClearCertificateDb(void);
+
+ void SetOrientationChanged(bool arg);
+ bool IsOrientationChanged(void) const;
+
+ result VibrationRequested(uint64_t duration);
+ void VibrationCanceled(void);
+
bool IsFooterVisible(void) const;
void SetFooterVisibleState(bool isFooterVisible);
void SetKeypadOpened(bool isKeypadOpened);
- int GetKeypadHeight(void) const;
-
- void SetKeypadHeight(int keypadHeight);
+ bool IsPresenterAlived(_WebPresenter* pPresenter) const;
+ Tizen::Graphics::Rectangle GetPreviousKeypadBounds(void) const;
- Tizen::Ui::_ControlOrientation GetPreviousOrientation(void) const;
-
- void SetPreviousOrientation(Tizen::Ui::_ControlOrientation orientation);
+ void SetPreviousKeypadBounds(Tizen::Graphics::Rectangle& bounds);
result HttpAuthenticationRequested(Ewk_Auth_Challenge* pChallenge);
- result ShowGeolocationPopup(Ewk_Geolocation_Permission_Data* pPermissionData);
+ result ShowCertificateConfirmPopup(_CertificatePopupMode userConfirmMode, Ewk_Certificate_Policy_Decision *pPolicy);
- Tizen::Ui::Controls::_Form* GetParentFormCore(Tizen::Ui::_Control* pControlCore);
+ result ShowPromptPopup(Tizen::Base::String msg = L"", Tizen::Base::String defVal = L"");
- Tizen::Graphics::Bitmap* GetFaviconN(void) const;
-
- void Pause(void);
+ result ShowUserConfirmPopup(_UserConfirmMode userConfirmMode, void* pPolicy, Tizen::Base::String msg = L"");
+ result ShowUserConfirmPopupAsync(_UserConfirmMode userConfirmMode, void* pPolicy, Tizen::Base::String msg = L"");
- void Resume(void);
-
- void SetSelectBox(_SelectBox* pSelectBox);
-
- _SelectBox* GetSelectBox(void);
+ Tizen::Ui::Controls::_Form* GetParentFormCore(Tizen::Ui::_Control* pControlCore);
- void DeleteSelectBox(void);
+ result ShowSelectBoxPopup(bool isMultiSelect, const Tizen::Base::String& title, Eina_List* pItems, Evas_Object* pWebView, int selectedIndex);
+ result UpdateSelectBoxPopup(Eina_List* pItems, int selectedIndex, bool isGroupedList);
+ result ClearSelectBoxPopup(void);
result ShowColorPicker(int r, int g, int b, int a,Tizen::Graphics::Color& color);
- Eina_Bool HideColorPicker();
+ Eina_Bool HideColorPicker(void);
_InputPickerPopup* GetColorpicker(void);
result ShowDatePicker(Ewk_Input_Type inputType, const char* inputValue,Tizen::Base::String& dateStr);
virtual void OnTextValueChanged(const Tizen::Ui::Control& source);
- virtual result OnAttachedToMainTree(void);
+ virtual result OnPreAttachedToMainTree(void);
virtual void OnChangeLayout(Tizen::Ui::_ControlOrientation orientation);
+ virtual void OnAncestorVisibleStateChanged(const Tizen::Ui::_Control& control);
+
+ virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
+
static _WebImpl* CreateWebImplN(Web* pControl, const Tizen::Graphics::Rectangle& bounds);
+ static _WebImpl* CreateWebImplN(Web* pControl, const Tizen::Graphics::FloatRectangle& bounds);
+
static _WebImpl* GetInstance(Web* pWeb);
static const _WebImpl* GetInstance(const Web* pWeb);
+ int SearchHandler(Ewk_Custom_Handlers_Data* pHandlerData, bool checkmime);
+
+ result UnregistrationHandler(Ewk_Custom_Handlers_Data* pHandlerData, bool checkmime);
+
+ const Tizen::Base::String GetProtocolFromUri(const Tizen::Base::String& originuri, const Tizen::Base::String& currenturi);
+
+ const Tizen::Base::String GetRedirectUri(const Tizen::Base::String& originuri, const Tizen::Base::String& currenturi, const Tizen::Base::String& mime);
+
+ void SetFormDataList(Eina_List* pFormDataList);
+
+ bool IsFormDataWindowVisible(void) const;
+
+ result ShowFormDataWindow(const Tizen::Graphics::Rectangle& windowRect, Evas_Object* pWebView);
+
+ void HideFormDataWindow(bool delWindow = true);
+
private:
result InitializeSetting(void);
result InitJsBridgeList(void);
result OnHandleLoadingEvent(const Tizen::Base::Runtime::IEventArg& arg);
result OnHandleWebDownloadEvent(const Tizen::Base::Runtime::IEventArg& arg);
result OnHandleWebUiEvent(const Tizen::Base::Runtime::IEventArg& arg);
+ result OnHandleWebUiEventF(const Tizen::Base::Runtime::IEventArg& arg);
result OnHandleTextSearchEvent(const Tizen::Base::Runtime::IEventArg& arg);
private:
bool __isKeypadOpened;
bool __isLoadingErrorOccurred;
bool __isRedirectRequested;
- int __keypadHeight;
+ bool __isCertificateRequested;
+ bool __isCertificateConfirmed;
+ bool __isOrientationChanged;
+ bool __isFormDataVisible;
+ Tizen::Graphics::Rectangle __keypadBounds;
_Web* __pWebCore;
ILoadingListener* __pUserLoadingListener;
IWebUiEventListener* __pUserUiListener;
+ IWebUiEventListenerF* __pUserUiListenerF;
IWebKeypadEventListener* __pUserKeypadEventListener;
ITextSearchListener* __pTextSearchListener;
std::unique_ptr<Tizen::Ui::Controls::Keypad> __pKeypad;
- std::unique_ptr<WebSetting> __pWebSetting;
-
std::unique_ptr<Tizen::Base::Collection::HashMapT< Tizen::Base::String, IJavaScriptBridge* > > __pJsBridgeList;
std::unique_ptr<_JsBridgeHashCodeProvider> __pJsProvider;
std::unique_ptr<_JsBridgeComparer> __pJsComparer;
std::unique_ptr<AuthenticationChallenge> __pAuthChallenge;
std::unique_ptr<_AuthConfirmPopup> __pAuthPopup;
- std::unique_ptr<_GeolocationConfirmPopup> __pGeolocationPopup;
+ std::unique_ptr<_UserConfirmPopup> __pUserConfirmPopup;
+ std::unique_ptr< _PromptPopup > __pPromptPopup;
+ std::unique_ptr<_CertificateConfirmPopup> __pCertConfirmPopup;
std::unique_ptr<_SelectBox> __pSelectBox;
std::unique_ptr<_InputPickerPopup> __pDatePicker;
std::unique_ptr<_InputPickerPopup> __pColorPicker;
+ std::unique_ptr<_FormDataWindow> __pFormDataWindow;
- Tizen::Ui::_ControlOrientation __orientation;
+ std::unique_ptr<Tizen::System::_VibratorImpl> __pVibrator;
Tizen::Base::Runtime::Mutex __mutex;
_TextSearch __textSearch;
+ Tizen::Base::Collection::ArrayList __callbackList;
+
DecisionPolicy __policy;
+
+ Tizen::Base::String __defaultUserAgent;
+
+ Eina_List* __pFormDataList;
}; // _WebImpl
}}} // Tizen::Web::Controls