Empty API for web intents
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 Nov 2011 19:45:27 +0000 (19:45 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 Nov 2011 19:45:27 +0000 (19:45 +0000)
https://bugs.webkit.org/show_bug.cgi?id=69870

Patch by Greg Billock <gbillock@google.com> on 2011-11-22
Reviewed by Darin Fisher.

* WebKit.gyp:
* public/WebIntent.h: Added.
* public/WebIntentServiceInfo.h: Added.
* public/WebFrame.h:
* public/WebFrameClient.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@101021 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/WebKit.gyp
Source/WebKit/chromium/public/WebFrame.h
Source/WebKit/chromium/public/WebFrameClient.h
Source/WebKit/chromium/public/WebIntent.h [new file with mode: 0644]
Source/WebKit/chromium/public/WebIntentServiceInfo.h [new file with mode: 0644]
Source/WebKit/chromium/src/WebFrameImpl.cpp
Source/WebKit/chromium/src/WebFrameImpl.h

index fcc8089..90cccce 100644 (file)
@@ -1,3 +1,16 @@
+2011-11-22  Greg Billock  <gbillock@google.com>
+
+        Empty API for web intents
+        https://bugs.webkit.org/show_bug.cgi?id=69870
+
+        Reviewed by Darin Fisher.
+
+        * WebKit.gyp:
+        * public/WebIntent.h: Added.
+        * public/WebIntentServiceInfo.h: Added.
+        * public/WebFrame.h:
+        * public/WebFrameClient.h:
+
 2011-11-22  Scott Graham  <scottmg@chromium.org>
 
         Roll Chromium DEPS
index 1210894..ac3e2cf 100644 (file)
                 'public/WebIDBTransactionCallbacks.h',
                 'public/WebInputElement.h',
                 'public/WebInputEvent.h',
+                'public/WebIntent.h',
+                'public/WebIntentServiceInfo.h',
                 'public/WebKit.h',
                 'public/WebKitPlatformSupport.h',
                 'public/WebLabelElement.h',
index 79b7467..0f7d467 100644 (file)
@@ -544,6 +544,20 @@ public:
     virtual void resetMatchCount() = 0;
 
 
+    // Web Intents ---------------------------------------------------------
+
+    // Forwards a web intents reply from the invoked activity back to the
+    // appropriate registered Javascript callback. The |intentIdentifier| is
+    // the WebIntent parameter received from the dispatchIntent method.
+    virtual void handleIntentResult(int intentIdentifier, const WebString&) = 0;
+
+    // Forwards a web intents failure notification from the invoked activity
+    // or intervening browser logic back to the appropriate registered
+    // Javascript callback. The |intentIdentifier| is the WebIntent parameter
+    // received from the dispatchIntent method.
+    virtual void handleIntentFailure(int intentIdentifier, const WebString&) = 0;
+
+
     // Utility -------------------------------------------------------------
 
     // Returns the contents of this frame as a string.  If the text is
index e2dc3b1..406bb61 100644 (file)
@@ -52,6 +52,8 @@ class WebCookieJar;
 class WebDataSource;
 class WebFormElement;
 class WebFrame;
+class WebIntentServiceInfo;
+class WebIntent;
 class WebMediaPlayer;
 class WebMediaPlayerClient;
 class WebNode;
@@ -381,6 +383,15 @@ public:
         unsigned long long newQuotaInBytes,
         WebStorageQuotaCallbacks*) { }
 
+    // Web Intents ---------------------------------------------------
+
+    // Register a service to handle Web Intents.
+    virtual void registerIntentService(WebFrame*, const WebIntentServiceInfo&) { }
+
+    // Start a Web Intents activity. Replies to this request should be sent to
+    // the WebFrame starting the activity.
+    virtual void dispatchIntent(WebFrame*, const WebIntent&) { }
+
 protected:
     ~WebFrameClient() { }
 };
diff --git a/Source/WebKit/chromium/public/WebIntent.h b/Source/WebKit/chromium/public/WebIntent.h
new file mode 100644 (file)
index 0000000..f0ecac2
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebIntent_h
+#define WebIntent_h
+
+namespace WebKit {
+
+class WebString;
+
+// Holds data passed through a Web Intents invocation call from the Javascript
+// Intent object.
+// See spec at http://www.chromium.org/developers/design-documents/webintentsapi
+class WebIntent {
+public:
+    ~WebIntent() { }
+
+    WEBKIT_EXPORT WebString action() const;
+    WEBKIT_EXPORT void setAction(const WebString&);
+
+    WEBKIT_EXPORT WebString type() const;
+    WEBKIT_EXPORT void setType(const WebString&);
+
+    WEBKIT_EXPORT WebString data() const;
+    WEBKIT_EXPORT void setData(const WebString&);
+
+    WEBKIT_EXPORT int identifier() const;
+    WEBKIT_EXPORT void setIdentifier(int);
+};
+
+} // namespace WebKit
+
+#endif // WebIntent_h
diff --git a/Source/WebKit/chromium/public/WebIntentServiceInfo.h b/Source/WebKit/chromium/public/WebIntentServiceInfo.h
new file mode 100644 (file)
index 0000000..c8c1969
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebIntentServiceInfo_h
+#define WebIntentServiceInfo_h
+
+namespace WebKit {
+
+class WebString;
+class WebURL;
+
+// Holds data used to initialize a Web Intents service (handler).
+// See spec at http://www.chromium.org/developers/design-documents/webintentsapi
+class WebIntentServiceInfo {
+public:
+    ~WebIntentServiceInfo() { }
+
+    // The location of the handler page registered by the service.
+    WEBKIT_EXPORT WebURL url() const;
+    WEBKIT_EXPORT void setURL(const WebURL&);
+
+    // The short name the service will be known by when the user
+    // initiates an intent.
+    WEBKIT_EXPORT WebString title() const;
+    WEBKIT_EXPORT void setTitle(const WebString&);
+
+    // The kind of intent the service will handle.
+    WEBKIT_EXPORT WebString action() const;
+    WEBKIT_EXPORT void setAction(const WebString&);
+
+    // The type of payload data which the service will handle.
+    WEBKIT_EXPORT WebString type() const;
+    WEBKIT_EXPORT void setType(const WebString&);
+
+    // A hint to the client about whether the service can be run within
+    // an "inline" context within the calling page, or in a new tab
+    // context (the default).
+    WEBKIT_EXPORT WebString disposition() const;
+    WEBKIT_EXPORT void setDisposition(const WebString&);
+};
+
+} // namespace WebKit
+
+#endif // WebIntentServiceInfo_h
index 499342e..751d2cb 100644 (file)
@@ -1826,6 +1826,14 @@ void WebFrameImpl::resetMatchCount()
     m_framesScopingCount = 0;
 }
 
+void WebFrameImpl::handleIntentResult(int intentIdentifier, const WebString& reply)
+{
+}
+
+void WebFrameImpl::handleIntentFailure(int intentIdentifier, const WebString& reply)
+{
+}
+
 WebString WebFrameImpl::contentAsText(size_t maxChars) const
 {
     if (!m_frame)
index 37edf49..9e7b947 100644 (file)
@@ -192,6 +192,9 @@ public:
     virtual void increaseMatchCount(int count, int identifier);
     virtual void resetMatchCount();
 
+    virtual void handleIntentResult(int, const WebString&);
+    virtual void handleIntentFailure(int, const WebString&);
+
     virtual WebString contentAsText(size_t maxChars) const;
     virtual WebString contentAsMarkup() const;
     virtual WebString renderTreeAsText(RenderAsTextControls toShow = RenderAsTextNormal) const;