2009-11-09 Nate Chapin <japhet@chromium.org>
authoreric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 10 Nov 2009 04:58:26 +0000 (04:58 +0000)
committereric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 10 Nov 2009 04:58:26 +0000 (04:58 +0000)
        Reviewed by Dimitri Glazkov.

        WebPa*.h and WebPl*.h Chromium API headers.

        https://bugs.webkit.org/show_bug.cgi?id=28394

        * public/WebPasswordAutocompleteListener.h: Added.
        (WebKit::WebPasswordAutocompleteListener::~WebPasswordAutocompleteListener):
        * public/WebPasswordFormData.h: Added.
        (WebKit::WebPasswordFormData::isValid):
        * public/WebPlugin.h: Added.
        (WebKit::WebPlugin::~WebPlugin):
        * public/WebPluginContainer.h: Added.
        (WebKit::WebPluginContainer::~WebPluginContainer):
        * public/WebPluginListBuilder.h: Added.
        * public/WebPluginParams.h: Added.

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

WebKit/chromium/ChangeLog
WebKit/chromium/public/WebPasswordAutocompleteListener.h [new file with mode: 0644]
WebKit/chromium/public/WebPasswordFormData.h [new file with mode: 0644]
WebKit/chromium/public/WebPlugin.h [new file with mode: 0644]
WebKit/chromium/public/WebPluginContainer.h [new file with mode: 0644]
WebKit/chromium/public/WebPluginListBuilder.h [new file with mode: 0644]
WebKit/chromium/public/WebPluginParams.h [new file with mode: 0644]

index 50e93f9019caf29155842d98e60970197c64da6e..d79f05767865fad5c9d1e1eee2f12049635bf171 100644 (file)
@@ -1,3 +1,22 @@
+2009-11-09  Nate Chapin  <japhet@chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        WebPa*.h and WebPl*.h Chromium API headers.
+
+        https://bugs.webkit.org/show_bug.cgi?id=28394
+
+        * public/WebPasswordAutocompleteListener.h: Added.
+        (WebKit::WebPasswordAutocompleteListener::~WebPasswordAutocompleteListener):
+        * public/WebPasswordFormData.h: Added.
+        (WebKit::WebPasswordFormData::isValid):
+        * public/WebPlugin.h: Added.
+        (WebKit::WebPlugin::~WebPlugin):
+        * public/WebPluginContainer.h: Added.
+        (WebKit::WebPluginContainer::~WebPluginContainer):
+        * public/WebPluginListBuilder.h: Added.
+        * public/WebPluginParams.h: Added.
+
 2009-11-09  Yaar Schnitman  <yaar@chromium.org>
 
         Reviewed by Dimitri Glazkov.
diff --git a/WebKit/chromium/public/WebPasswordAutocompleteListener.h b/WebKit/chromium/public/WebPasswordAutocompleteListener.h
new file mode 100644 (file)
index 0000000..db6589d
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2009 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 WebPasswordAutocompleteListener_h
+#define WebPasswordAutocompleteListener_h
+
+namespace WebKit {
+class WebString;
+
+class WebPasswordAutocompleteListener {
+public:
+    virtual ~WebPasswordAutocompleteListener() {}
+
+    virtual void didBlurInputElement(
+        const WebString& userInput) = 0;
+
+    virtual void performInlineAutocomplete(
+        const WebString& userInput,
+        bool backSpaceOrDeletePressed,
+        bool showSuggestions) = 0;
+};
+
+} // namespace WebKit
+
+
+#endif
diff --git a/WebKit/chromium/public/WebPasswordFormData.h b/WebKit/chromium/public/WebPasswordFormData.h
new file mode 100644 (file)
index 0000000..e1804d1
--- /dev/null
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2009 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 WebPasswordFormData_h
+#define WebPasswordFormData_h
+
+#include "WebFormElement.h"
+#include "WebString.h"
+#include "WebURL.h"
+
+namespace WebKit {
+
+struct WebPasswordFormData {
+    // If the provided form is suitable for password completion, isValid() will
+    // return true;
+    WebPasswordFormData(const WebFormElement&);
+
+    // If creation failed, return false.
+    bool isValid() const { return action.isValid(); }
+
+    // The action target of the form. This is the primary data used by the
+    // PasswordManager for form autofill; that is, the action of the saved
+    // credentials must match the action of the form on the page to be autofilled.
+    // If this is empty / not available, it will result in a "restricted"
+    // IE-like autofill policy, where we wait for the user to type in his
+    // username before autofilling the password. In these cases, after successful
+    // login the action URL will automatically be assigned by the
+    // PasswordManager.
+    //
+    // When parsing an HTML form, this must always be set.
+    WebURL action;
+
+    // The "Realm" for the sign-on (scheme, host, port for SCHEME_HTML, and
+    // contains the HTTP realm for dialog-based forms).
+    // The signon_realm is effectively the primary key used for retrieving
+    // data from the database, so it must not be empty.
+    WebString signonRealm;
+
+    // The URL (minus query parameters) containing the form. This is the primary
+    // data used by the PasswordManager to decide (in longest matching prefix
+    // fashion) whether or not a given PasswordForm result from the database is a
+    // good fit for a particular form on a page, so it must not be empty.
+    WebURL origin;
+
+    // The name of the submit button used. Optional; only used in scoring
+    // of PasswordForm results from the database to make matches as tight as
+    // possible.
+    //
+    // When parsing an HTML form, this must always be set.
+    WebString submitElement;
+
+    // The name of the username input element. Optional (improves scoring).
+    //
+    // When parsing an HTML form, this must always be set.
+    WebString userNameElement;
+
+    // The username. Optional.
+    //
+    // When parsing an HTML form, this is typically empty unless the site
+    // has implemented some form of autofill.
+    WebString userNameValue;
+
+    // The name of the password input element, Optional (improves scoring).
+    //
+    // When parsing an HTML form, this must always be set.
+    WebString passwordElement;
+
+    // The password. Required.
+    //
+    // When parsing an HTML form, this is typically empty.
+    WebString passwordValue;
+
+    // If the form was a change password form, the name of the
+    // 'old password' input element. Optional.
+    WebString oldPasswordElement;
+
+    // The old password. Optional.
+    WebString oldPasswordValue;
+};
+
+} // namespace WebKit
+
+#endif
diff --git a/WebKit/chromium/public/WebPlugin.h b/WebKit/chromium/public/WebPlugin.h
new file mode 100644 (file)
index 0000000..5097265
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2009 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 WebPlugin_h
+#define WebPlugin_h
+
+#include "WebCanvas.h"
+
+struct NPObject;
+
+namespace WebKit {
+
+class WebDataSource;
+class WebFrame;
+class WebInputEvent;
+class WebPluginContainer;
+class WebURL;
+class WebURLResponse;
+struct WebCursorInfo;
+struct WebPluginParams;
+struct WebRect;
+struct WebURLError;
+template <typename T> class WebVector;
+
+class WebPlugin {
+public:
+    virtual bool initialize(WebPluginContainer*) = 0;
+    virtual void destroy() = 0;
+
+    virtual NPObject* scriptableObject() = 0;
+
+    virtual void paint(WebCanvas*, const WebRect&) = 0;
+
+    // Coordinates are relative to the containing window.
+    virtual void updateGeometry(
+        const WebRect& frameRect, const WebRect& clipRect,
+        const WebVector<WebRect>& cutOutsRects, bool isVisible) = 0;
+
+    virtual void updateFocus(bool) = 0;
+    virtual void updateVisibility(bool) = 0;
+
+    virtual bool acceptsInputEvents() = 0;
+    virtual bool handleInputEvent(const WebInputEvent&, WebCursorInfo&) = 0;
+
+    virtual void didReceiveResponse(const WebURLResponse&) = 0;
+    virtual void didReceiveData(const char* data, int dataLength) = 0;
+    virtual void didFinishLoading() = 0;
+    virtual void didFailLoading(const WebURLError&) = 0;
+
+    // Called in response to WebPluginContainer::loadFrameRequest
+    virtual void didFinishLoadingFrameRequest(
+        const WebURL&, void* notifyData) = 0;
+    virtual void didFailLoadingFrameRequest(
+        const WebURL&, void* notifyData, const WebURLError&) = 0;
+
+protected:
+    ~WebPlugin() { }
+};
+
+} // namespace WebKit
+
+#endif
diff --git a/WebKit/chromium/public/WebPluginContainer.h b/WebKit/chromium/public/WebPluginContainer.h
new file mode 100644 (file)
index 0000000..41e304e
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2009 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 WebPluginContainer_h
+#define WebPluginContainer_h
+
+struct NPObject;
+
+namespace WebKit {
+
+class WebString;
+class WebURL;
+class WebURLRequest;
+struct WebRect;
+
+class WebPluginContainer {
+public:
+    virtual void invalidate() = 0;
+    virtual void invalidateRect(const WebRect&) = 0;
+
+    // Causes the container to report its current geometry via
+    // WebPlugin::updateGeometry.
+    virtual void reportGeometry() = 0;
+
+    // Drop any references to script objects allocated by the plugin.
+    // These are objects derived from WebPlugin::scriptableObject.  This is
+    // called when the plugin is being destroyed or if it needs to be
+    // re-initialized.
+    virtual void clearScriptObjects() = 0;
+
+    // Returns the scriptable object associated with the DOM element
+    // containing the plugin.
+    virtual NPObject* scriptableObjectForElement() = 0;
+
+    // Executes a "javascript:" URL on behalf of the plugin in the context
+    // of the frame containing the plugin.  Returns the result of script
+    // execution, if any.
+    virtual WebString executeScriptURL(const WebURL&, bool popupsAllowed) = 0;
+
+    // Loads an URL in the specified frame (or the frame containing this
+    // plugin if target is empty).  If notifyNeeded is true, then upon
+    // completion, WebPlugin::didFinishLoadingFrameRequest is called if the
+    // load was successful or WebPlugin::didFailLoadingFrameRequest is
+    // called if the load failed.  The given notifyData is passed along to
+    // the callback.
+    virtual void loadFrameRequest(
+        const WebURLRequest&, const WebString& target, bool notifyNeeded, void* notifyData) = 0;
+
+protected:
+    ~WebPluginContainer() { }
+};
+
+} // namespace WebKit
+
+#endif
diff --git a/WebKit/chromium/public/WebPluginListBuilder.h b/WebKit/chromium/public/WebPluginListBuilder.h
new file mode 100644 (file)
index 0000000..4bd427d
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2009 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 WebPluginListBuilder_h
+#define WebPluginListBuilder_h
+
+namespace WebKit {
+
+class WebString;
+
+// An interface for building a list of known plugins.
+class WebPluginListBuilder {
+public:
+    virtual void addPlugin(
+        const WebString& name, const WebString& description,
+        const WebString& fileName) = 0;
+
+    virtual void addMediaTypeToLastPlugin(
+        const WebString& name, const WebString& description) = 0;
+
+    virtual void addFileExtensionToLastMediaType(
+        const WebString& fileExtension) = 0;
+};
+
+} // namespace WebKit
+
+#endif
diff --git a/WebKit/chromium/public/WebPluginParams.h b/WebKit/chromium/public/WebPluginParams.h
new file mode 100644 (file)
index 0000000..5d03204
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2009 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 WebPluginParams_h
+#define WebPluginParams_h
+
+#include "WebString.h"
+#include "WebURL.h"
+#include "WebVector.h"
+
+namespace WebKit {
+
+struct WebPluginParams {
+    WebURL url;
+    WebString mimeType;
+    WebVector<WebString> attributeNames;
+    WebVector<WebString> attributeValues;
+    bool loadManually;
+};
+
+} // namespace WebKit
+
+#endif