Merge "remove link in brief tag" into tizen_2.2
[framework/osp/web.git] / src / controls / FWebCtrl_WebImpl.h
index adaa1d0..fc7a729 100755 (executable)
 
 #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"
 
@@ -56,6 +58,11 @@ namespace Tizen { namespace Net { namespace Http {
 class HttpHeader;
 }}} // Tizen::Net::Http
 
+namespace Tizen { namespace System
+{
+class _VibratorImpl;
+}} // Tizen::Sytem
+
 namespace Tizen { namespace Ui
 {
 class Contorl;
@@ -95,11 +102,12 @@ class _WebPresenter;
 class _JsBridgeComparer;
 class _JsBridgeHashCodeProvider;
 class _AuthConfirmPopup;
-class _GeolocationConfirmPopup;
 class _PromptPopup;
+class _GeolocationConfirmPopup;
 class _WebDataHandler;
 class _SelectBox;
 class _InputPickerPopup;
+class _FormDataWindow;
 
 struct _TextSearch
 {
@@ -119,11 +127,17 @@ enum _SearchType {
        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);
@@ -178,21 +192,19 @@ public:
 
        result SetBlockSelectionPosition(const Tizen::Graphics::FloatPoint& startPoint);
 
-       result ReleaseBlock(void);
+       void ReleaseBlock(void);
 
-       result GetBlockRange(Tizen::Graphics::Point& startPoint, Tizen::Graphics::Point& endPoint) const;
+       void  GetBlockRange(Tizen::Graphics::Point& startPoint, Tizen::Graphics::Point& endPoint) const;
 
-       result GetBlockRange(Tizen::Graphics::FloatPoint& startPoint, Tizen::Graphics::FloatPoint& endPoint) const;
-
-       void FireWebPageBlockSelectedEvent(void) 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);
 
@@ -263,7 +275,7 @@ public:
 
        result RemoveJavaScriptBridge(const IJavaScriptBridge& jsBridge);
 
-       result SetScrollEnabled(bool enable);
+       void SetScrollEnabled(bool enable);
 
        bool IsScrollEnabled(void) const;
 
@@ -305,6 +317,18 @@ public:
 
        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);
@@ -317,15 +341,19 @@ public:
 
        void SetKeypadOpened(bool isKeypadOpened);
 
+       bool IsPresenterAlived(_WebPresenter* pPresenter) const;
        Tizen::Graphics::Rectangle GetPreviousKeypadBounds(void) const;
 
        void SetPreviousKeypadBounds(Tizen::Graphics::Rectangle& bounds);
 
        result HttpAuthenticationRequested(Ewk_Auth_Challenge* pChallenge);
 
-       result ShowGeolocationPopup(Ewk_Geolocation_Permission_Request* pPermissionRequest);
+       result ShowCertificateConfirmPopup(_CertificatePopupMode userConfirmMode, Ewk_Certificate_Policy_Decision *pPolicy);
 
-       result ShowUserConfirmPopup(_UserConfirmMode userConfirmMode, void* pPolicy);
+       result ShowPromptPopup(Tizen::Base::String msg = L"", Tizen::Base::String defVal = L"");
+
+       result ShowUserConfirmPopup(_UserConfirmMode userConfirmMode, void* pPolicy, Tizen::Base::String msg = L"");
+       result ShowUserConfirmPopupAsync(_UserConfirmMode userConfirmMode, void* pPolicy, Tizen::Base::String msg = L"");
 
        Tizen::Ui::Controls::_Form* GetParentFormCore(Tizen::Ui::_Control* pControlCore);
 
@@ -353,12 +381,14 @@ public:
 
        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);
@@ -367,6 +397,22 @@ public:
 
        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);
@@ -383,6 +429,7 @@ private:
        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:
@@ -391,6 +438,10 @@ private:
        bool __isKeypadOpened;
        bool __isLoadingErrorOccurred;
        bool __isRedirectRequested;
+       bool __isCertificateRequested;
+       bool __isCertificateConfirmed;
+       bool __isOrientationChanged;
+       bool __isFormDataVisible;
        Tizen::Graphics::Rectangle __keypadBounds;
 
        _Web* __pWebCore;
@@ -403,8 +454,6 @@ private:
 
        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;
@@ -417,18 +466,27 @@ private:
        std::unique_ptr<_AuthConfirmPopup> __pAuthPopup;
 
        std::unique_ptr<_UserConfirmPopup> __pUserConfirmPopup;
-
-       std::unique_ptr<_GeolocationConfirmPopup> __pGeolocationPopup;
+       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;
+
+       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