2009-11-09 Nate Chapin <japhet@chromium.org>
authorjaphet@chromium.org <japhet@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Nov 2009 18:48:22 +0000 (18:48 +0000)
committerjaphet@chromium.org <japhet@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Nov 2009 18:48:22 +0000 (18:48 +0000)
        Reviewed by Dimitri Glazkov.

        Starting upstreaming the Chromium WebKit API.  public/ contains header files only.

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

        * ChangeLog: First!!
        * public: Added.
        * public/WebAccessibilityCache.h: Added.
        (WebKit::WebAccessibilityCache::WebAccessibilityCache):
        (WebKit::WebAccessibilityCache::~WebAccessibilityCache):
        * public/WebAccessibilityObject.h: Added.
        (WebKit::WebAccessibilityObject::~WebAccessibilityObject):
        (WebKit::WebAccessibilityObject::WebAccessibilityObject):
        (WebKit::WebAccessibilityObject::operator=):
        (WebKit::WebAccessibilityObject::isNull):
        * public/WebAccessibilityRole.h: Added.
        (WebKit::):
        * public/WebApplicationCacheHost.h: Added.
        (WebKit::WebApplicationCacheHost::):
        (WebKit::WebApplicationCacheHost::~WebApplicationCacheHost):
        * public/WebApplicationCacheHostClient.h: Added.
        (WebKit::WebApplicationCacheHostClient::~WebApplicationCacheHostClient):

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

WebKit/chromium/ChangeLog [new file with mode: 0644]
WebKit/chromium/public/WebAccessibilityCache.h [new file with mode: 0644]
WebKit/chromium/public/WebAccessibilityObject.h [new file with mode: 0644]
WebKit/chromium/public/WebAccessibilityRole.h [new file with mode: 0644]
WebKit/chromium/public/WebApplicationCacheHost.h [new file with mode: 0644]
WebKit/chromium/public/WebApplicationCacheHostClient.h [new file with mode: 0644]

diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
new file mode 100644 (file)
index 0000000..6eb4cff
--- /dev/null
@@ -0,0 +1,25 @@
+2009-11-09  Nate Chapin  <japhet@chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Starting upstreaming the Chromium WebKit API.  public/ contains header files only.
+
+        https://bugs.webkit.org/show_bug.cgi?id=28394
+
+        * ChangeLog: First!!
+        * public: Added.
+        * public/WebAccessibilityCache.h: Added.
+        (WebKit::WebAccessibilityCache::WebAccessibilityCache):
+        (WebKit::WebAccessibilityCache::~WebAccessibilityCache):
+        * public/WebAccessibilityObject.h: Added.
+        (WebKit::WebAccessibilityObject::~WebAccessibilityObject):
+        (WebKit::WebAccessibilityObject::WebAccessibilityObject):
+        (WebKit::WebAccessibilityObject::operator=):
+        (WebKit::WebAccessibilityObject::isNull):
+        * public/WebAccessibilityRole.h: Added.
+        (WebKit::):
+        * public/WebApplicationCacheHost.h: Added.
+        (WebKit::WebApplicationCacheHost::):
+        (WebKit::WebApplicationCacheHost::~WebApplicationCacheHost):
+        * public/WebApplicationCacheHostClient.h: Added.
+        (WebKit::WebApplicationCacheHostClient::~WebApplicationCacheHostClient):
diff --git a/WebKit/chromium/public/WebAccessibilityCache.h b/WebKit/chromium/public/WebAccessibilityCache.h
new file mode 100644 (file)
index 0000000..94704a0
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * 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 WebAccessibilityCache_h
+#define WebAccessibilityCache_h
+
+#include "WebCommon.h"
+
+namespace WebKit {
+
+class WebView;
+class WebAccessibilityObject;
+
+class WebAccessibilityCache {
+public:
+    WebAccessibilityCache() {}
+    virtual ~WebAccessibilityCache() {}
+
+    static WebAccessibilityCache* create();
+    static void enableAccessibility();
+
+    virtual void initialize(WebView* view) = 0;
+    virtual bool isInitialized() const = 0;
+
+    virtual WebAccessibilityObject getObjectById(int) = 0;
+    virtual bool isValidId(int) const = 0;
+    virtual int addOrGetId(const WebAccessibilityObject& object) = 0;
+
+    virtual void remove(int) = 0;
+    virtual void clear() = 0;
+};
+
+} // namespace WebKit
+
+#endif
diff --git a/WebKit/chromium/public/WebAccessibilityObject.h b/WebKit/chromium/public/WebAccessibilityObject.h
new file mode 100644 (file)
index 0000000..b6c5191
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+ * 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 WebAccessibilityObject_h
+#define WebAccessibilityObject_h
+
+#include "WebAccessibilityRole.h"
+#include "WebCommon.h"
+
+#if WEBKIT_IMPLEMENTATION
+namespace WebCore { class AccessibilityObject; }
+namespace WTF { template <typename T> class PassRefPtr; }
+#endif
+
+namespace WebKit {
+
+class WebAccessibilityObjectPrivate;
+class WebString;
+struct WebPoint;
+struct WebRect;
+
+// A container for passing around a reference to AccessibilityObject.
+class WebAccessibilityObject {
+public:
+    ~WebAccessibilityObject() { reset(); }
+
+    WebAccessibilityObject() : m_private(0) { }
+    WebAccessibilityObject(const WebAccessibilityObject& o) : m_private(0) { assign(o); }
+    WebAccessibilityObject& operator=(const WebAccessibilityObject& o)
+    {
+        assign(o);
+        return *this;
+    }
+
+    WEBKIT_API void reset();
+    WEBKIT_API void assign(const WebAccessibilityObject&);
+
+    bool isNull() const { return !m_private; }
+
+    WebString accessibilityDescription() const;
+    WebString actionVerb() const;
+    bool canSetFocusAttribute() const;
+
+    unsigned childCount() const;
+
+    WebAccessibilityObject childAt(unsigned) const;
+    WebAccessibilityObject firstChild() const;
+    WebAccessibilityObject focusedChild() const;
+    WebAccessibilityObject lastChild() const;
+    WebAccessibilityObject nextSibling() const;
+    WebAccessibilityObject parentObject() const;
+    WebAccessibilityObject previousSibling() const;
+
+    bool isAnchor() const;
+    bool isChecked() const;
+    bool isFocused() const;
+    bool isEnabled() const;
+    bool isHovered() const;
+    bool isIndeterminate() const;
+    bool isMultiSelect() const;
+    bool isOffScreen() const;
+    bool isPasswordField() const;
+    bool isPressed() const;
+    bool isReadOnly() const;
+    bool isVisited() const;
+
+    WebRect boundingBoxRect() const;
+    WebString helpText() const;
+    WebAccessibilityObject hitTest(const WebPoint&) const;
+    WebString keyboardShortcut() const;
+    bool performDefaultAction() const;
+    WebAccessibilityRole roleValue() const;
+    WebString stringValue() const;
+    WebString title() const;
+
+#if WEBKIT_IMPLEMENTATION
+    WebAccessibilityObject(const WTF::PassRefPtr<WebCore::AccessibilityObject>&);
+    WebAccessibilityObject& operator=(const WTF::PassRefPtr<WebCore::AccessibilityObject>&);
+    operator WTF::PassRefPtr<WebCore::AccessibilityObject>() const;
+#endif
+
+private:
+    void assign(WebAccessibilityObjectPrivate*);
+    WebAccessibilityObjectPrivate* m_private;
+};
+
+} // namespace WebKit
+
+#endif
diff --git a/WebKit/chromium/public/WebAccessibilityRole.h b/WebKit/chromium/public/WebAccessibilityRole.h
new file mode 100644 (file)
index 0000000..491db79
--- /dev/null
@@ -0,0 +1,132 @@
+/*
+ * 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 WebAccessibilityRole_h
+#define WebAccessibilityRole_h
+
+#include "WebCommon.h"
+
+namespace WebKit {
+
+// These values must match WebCore::AccessibilityRole values
+enum WebAccessibilityRole {
+    WebAccessibilityRoleUnknown = 1,
+    WebAccessibilityRoleButton,
+    WebAccessibilityRoleRadioButton,
+    WebAccessibilityRoleCheckBox,
+    WebAccessibilityRoleSlider,
+    WebAccessibilityRoleTabGroup,
+    WebAccessibilityRoleTextField,
+    WebAccessibilityRoleStaticText,
+    WebAccessibilityRoleTextArea,
+    WebAccessibilityRoleScrollArea,
+    WebAccessibilityRolePopUpButton,
+    WebAccessibilityRoleMenuButton,
+    WebAccessibilityRoleTable,
+    WebAccessibilityRoleApplication,
+    WebAccessibilityRoleGroup,
+    WebAccessibilityRoleRadioGroup,
+    WebAccessibilityRoleList,
+    WebAccessibilityRoleScrollBar,
+    WebAccessibilityRoleValueIndicator,
+    WebAccessibilityRoleImage,
+    WebAccessibilityRoleMenuBar,
+    WebAccessibilityRoleMenu,
+    WebAccessibilityRoleMenuItem,
+    WebAccessibilityRoleColumn,
+    WebAccessibilityRoleRow,
+    WebAccessibilityRoleToolbar,
+    WebAccessibilityRoleBusyIndicator,
+    WebAccessibilityRoleProgressIndicator,
+    WebAccessibilityRoleWindow,
+    WebAccessibilityRoleDrawer,
+    WebAccessibilityRoleSystemWide,
+    WebAccessibilityRoleOutline,
+    WebAccessibilityRoleIncrementor,
+    WebAccessibilityRoleBrowser,
+    WebAccessibilityRoleComboBox,
+    WebAccessibilityRoleSplitGroup,
+    WebAccessibilityRoleSplitter,
+    WebAccessibilityRoleColorWell,
+    WebAccessibilityRoleGrowArea,
+    WebAccessibilityRoleSheet,
+    WebAccessibilityRoleHelpTag,
+    WebAccessibilityRoleMatte,
+    WebAccessibilityRoleRuler,
+    WebAccessibilityRoleRulerMarker,
+    WebAccessibilityRoleLink,
+    WebAccessibilityRoleDisclosureTriangle,
+    WebAccessibilityRoleGrid,
+    WebAccessibilityRoleCell,
+    WebAccessibilityRoleColumnHeader,
+    WebAccessibilityRoleRowHeader,
+
+    WebAccessibilityRoleWebCoreLink,
+    WebAccessibilityRoleImageMapLink,
+    WebAccessibilityRoleImageMap,
+    WebAccessibilityRoleListMarker,
+    WebAccessibilityRoleWebArea,
+    WebAccessibilityRoleHeading,
+    WebAccessibilityRoleListBox,
+    WebAccessibilityRoleListBoxOption,
+    WebAccessibilityRoleTableHeaderContainer,
+    WebAccessibilityRoleDefinitionListTerm,
+    WebAccessibilityRoleDefinitionListDefinition,
+    WebAccessibilityRoleAnnotation,
+    WebAccessibilityRoleSliderThumb,
+    WebAccessibilityRoleIgnored,
+    WebAccessibilityRoleTab,
+    WebAccessibilityRoleTabList,
+    WebAccessibilityRoleTabPanel,
+
+    WebAccessibilityRoleLandmarkApplication,
+    WebAccessibilityRoleLandmarkBanner,
+    WebAccessibilityRoleLandmarkComplementary,
+    WebAccessibilityRoleLandmarkContentInfo,
+    WebAccessibilityRoleLandmarkMain,
+    WebAccessibilityRoleLandmarkNavigation,
+    WebAccessibilityRoleLandmarkSearch,
+
+    WebAccessibilityRoleApplicationLog,
+    WebAccessibilityRoleApplicationMarquee,
+    WebAccessibilityRoleApplicationStatus,
+    WebAccessibilityRoleApplicationTimer,
+
+    WebAccessibilityRoleDocument,
+    WebAccessibilityRoleDocumentArticle,
+    WebAccessibilityRoleDocumentNote,
+    WebAccessibilityRoleDocumentRegion,
+
+    WebAccessibilityRoleUserInterfaceTooltip
+};
+
+} // namespace WebKit
+
+#endif
diff --git a/WebKit/chromium/public/WebApplicationCacheHost.h b/WebKit/chromium/public/WebApplicationCacheHost.h
new file mode 100644 (file)
index 0000000..7c5dafe
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+ * 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 WebApplicationCacheHost_h
+#define WebApplicationCacheHost_h
+
+#include "WebCommon.h"
+
+namespace WebKit {
+
+class WebApplicationCacheHostClient;
+class WebURL;
+class WebURLRequest;
+class WebURLResponse;
+struct WebURLError;
+
+// This interface is used by webkit to call out to the embedder. Webkit uses
+// the WebKitClient::createApplicationCacheHost method to create instances,
+// and calls delete when the instance is no longer needed.
+class WebApplicationCacheHost {
+public:
+    // These values must match WebCore::ApplicationCacheHost::Status values
+    enum Status {
+        Uncached,
+        Idle,
+        Checking,
+        Downloading,
+        UpdateReady,
+        Obsolete
+    };
+
+    // These values must match WebCore::ApplicationCacheHost::EventID values
+    enum EventID {
+        CheckingEvent,
+        ErrorEvent,
+        NoUpdateEvent,
+        DownloadingEvent,
+        ProgressEvent,
+        UpdateReadyEvent,
+        CachedEvent,
+        ObsoleteEvent
+    };
+
+    virtual ~WebApplicationCacheHost() { }
+
+    // Called for every request made within the context.
+    virtual void willStartMainResourceRequest(WebURLRequest&) = 0;
+    virtual void willStartSubResourceRequest(WebURLRequest&) = 0;
+
+    // One or the other selectCache methods is called after having parsed the <html> tag.
+    // The latter returns false if the current document has been identified as a "foreign"
+    // entry, in which case the frame navigation will be restarted by webkit.
+    virtual void selectCacheWithoutManifest() = 0;
+    virtual bool selectCacheWithManifest(const WebURL& manifestURL) = 0;
+
+    // Called as the main resource is retrieved.
+    virtual void didReceiveResponseForMainResource(const WebURLResponse&) = 0;
+    virtual void didReceiveDataForMainResource(const char* data, int len) = 0;
+    virtual void didFinishLoadingMainResource(bool success) = 0;
+
+    // Called on behalf of the scriptable interface.
+    virtual Status status() = 0;
+    virtual bool startUpdate() = 0;
+    virtual bool swapCache() = 0;
+};
+
+}  // namespace WebKit
+
+#endif  // WebApplicationCacheHost_h
+
diff --git a/WebKit/chromium/public/WebApplicationCacheHostClient.h b/WebKit/chromium/public/WebApplicationCacheHostClient.h
new file mode 100644 (file)
index 0000000..4e830e3
--- /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 WebApplicationCacheHostClient_h
+#define WebApplicationCacheHostClient_h
+
+#include "WebApplicationCacheHost.h"
+#include "WebCommon.h"
+
+namespace WebKit {
+
+// This interface is used by the embedder to call into webkit.
+class WebApplicationCacheHostClient {
+public:
+    // Called to fire the event in the scriptable interface.
+    virtual void notifyEventListener(WebApplicationCacheHost::EventID) = 0;
+
+protected:
+    // Should not be deleted by the embedder.
+    virtual ~WebApplicationCacheHostClient() { }
+};
+
+}  // namespace WebKit
+
+#endif  // WebApplicationCacheHostClient_h
+