diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2015-02-12 16:20:39 +0000 |
---|---|---|
committer | Andras Becsi <andras.becsi@theqtcompany.com> | 2015-03-13 08:15:18 +0000 |
commit | 60d8d3dcd2a8337e4038a498f92a97624438b2fb (patch) | |
tree | 98ffec402ae0bc508b255a1159a9b62119a85b2a /src/core | |
parent | 5194fe16234cd88dccd763e5d1e497859b7c72b0 (diff) |
Support HTML5 form validation feature
HTML5 provides built-in form validation that is supported by chromium.
The form validation messages should be shown by the browser therefore
new MessageBubble UI element has been added to Quick and Widget
implementations.
This patch implements chromium's form validation events and shows the
messages in a MessageBubble.
Change-Id: I0c8f4f102823117e2bfb16ff8a4c503635491939
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/web_contents_adapter_client.h | 3 | ||||
-rw-r--r-- | src/core/web_contents_delegate_qt.cpp | 18 | ||||
-rw-r--r-- | src/core/web_contents_delegate_qt.h | 3 |
3 files changed, 24 insertions, 0 deletions
diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h index d67accec2..3ed3ab9ab 100644 --- a/src/core/web_contents_adapter_client.h +++ b/src/core/web_contents_adapter_client.h @@ -182,6 +182,9 @@ public: virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) = 0; virtual void runMouseLockPermissionRequest(const QUrl &securityOrigin) = 0; virtual WebEngineSettings *webEngineSettings() const = 0; + virtual void showValidationMessage(const QRect &anchor, const QString &mainText, const QString &subText) = 0; + virtual void hideValidationMessage() = 0; + virtual void moveValidationMessage(const QRect &anchor) = 0; virtual void allowCertificateError(const QSharedPointer<CertificateErrorController> &errorController) = 0; diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp index f69b68af5..e0fb3d7d8 100644 --- a/src/core/web_contents_delegate_qt.cpp +++ b/src/core/web_contents_delegate_qt.cpp @@ -354,4 +354,22 @@ void WebContentsDelegateQt::geolocationPermissionReply(const QUrl &origin, bool } } +void WebContentsDelegateQt::ShowValidationMessage(content::WebContents *web_contents, const gfx::Rect &anchor_in_root_view, const base::string16 &main_text, const base::string16 &sub_text) +{ + Q_UNUSED(web_contents); + m_viewClient->showValidationMessage(toQt(anchor_in_root_view), toQt(main_text), toQt(sub_text)); +} + +void WebContentsDelegateQt::HideValidationMessage(content::WebContents *web_contents) +{ + Q_UNUSED(web_contents); + m_viewClient->hideValidationMessage(); +} + +void WebContentsDelegateQt::MoveValidationMessage(content::WebContents *web_contents, const gfx::Rect &anchor_in_root_view) +{ + Q_UNUSED(web_contents); + m_viewClient->moveValidationMessage(toQt(anchor_in_root_view)); +} + } // namespace QtWebEngineCore diff --git a/src/core/web_contents_delegate_qt.h b/src/core/web_contents_delegate_qt.h index a200ca4df..254177d24 100644 --- a/src/core/web_contents_delegate_qt.h +++ b/src/core/web_contents_delegate_qt.h @@ -86,6 +86,9 @@ public: virtual void RequestMediaAccessPermission(content::WebContents* web_contents, const content::MediaStreamRequest& request, const content::MediaResponseCallback& callback) Q_DECL_OVERRIDE; virtual void UpdateTargetURL(content::WebContents* source, const GURL& url) Q_DECL_OVERRIDE; virtual void RequestToLockMouse(content::WebContents *web_contents, bool user_gesture, bool last_unlocked_by_target) Q_DECL_OVERRIDE; + virtual void ShowValidationMessage(content::WebContents *web_contents, const gfx::Rect &anchor_in_root_view, const base::string16 &main_text, const base::string16 &sub_text) Q_DECL_OVERRIDE; + virtual void HideValidationMessage(content::WebContents *web_contents) Q_DECL_OVERRIDE; + virtual void MoveValidationMessage(content::WebContents *web_contents, const gfx::Rect &anchor_in_root_view) Q_DECL_OVERRIDE; // WebContentsObserver overrides virtual void DidStartProvisionalLoadForFrame(content::RenderFrameHost *render_frame_host, const GURL &validated_url, bool is_error_page, bool is_iframe_srcdoc) Q_DECL_OVERRIDE; |