[chromium] Move WebMimeRegistry and dependencies to Source/Platform
authorjamesr@google.com <jamesr@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Jan 2012 19:08:02 +0000 (19:08 +0000)
committerjamesr@google.com <jamesr@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Jan 2012 19:08:02 +0000 (19:08 +0000)
https://bugs.webkit.org/show_bug.cgi?id=74583

Reviewed by Darin Fisher.

.:

Update .gitignore for Source/Platform/Platform.gyp/ generated project files.

* .gitignore:

Source/Platform:

This creates a skeleton directory structure for the chromium WebKit platform API and moves WebMimeRegistry.h
along with its dependencies (WebString and WebCString) to their final location.

* Platform.gyp/Platform.gyp: Added.
* Platform.gypi: Added.
* chromium/platform/WebCString.h: Copied from Source/WebKit/chromium/public/platform/WebCString.h.
(WebKit::WebCString::~WebCString):
(WebKit::WebCString::WebCString):
(WebKit::WebCString::operator=):
(WebKit::WebCString::isEmpty):
(WebKit::WebCString::isNull):
(WebKit::WebCString::operator std::string):
(WebKit::WebCString::fromUTF16):
(WebKit::operator<):
* chromium/platform/WebCommon.h: Copied from Source/WebKit/chromium/public/platform/WebCommon.h.
* chromium/platform/WebMimeRegistry.h: Copied from Source/WebKit/chromium/public/platform/WebMimeRegistry.h.
(WebKit::WebMimeRegistry::~WebMimeRegistry):
* chromium/platform/WebString.h: Copied from Source/WebKit/chromium/public/platform/WebString.h.
(WebKit::WebString::~WebString):
(WebKit::WebString::WebString):
(WebKit::WebString::operator=):
(WebKit::WebString::isEmpty):
(WebKit::WebString::isNull):
(WebKit::WebString::operator string16):
(WebKit::WebString::operator NullableString16):
(WebKit::WebString::fromUTF8):
(WebKit::operator==):
(WebKit::operator!=):
* chromium/src/WebCString.cpp: Renamed from Source/WebKit/chromium/src/WebCString.cpp.
(WebKit::WebCString::compare):
(WebKit::WebCString::reset):
(WebKit::WebCString::assign):
(WebKit::WebCString::length):
(WebKit::WebCString::data):
(WebKit::WebCString::utf16):
(WebKit::WebCString::fromUTF16):
(WebKit::WebCString::WebCString):
(WebKit::WebCString::operator=):
(WebKit::WebCString::operator WTF::CString):
* chromium/src/WebString.cpp: Renamed from Source/WebKit/chromium/src/WebString.cpp.
(WebKit::WebString::reset):
(WebKit::WebString::assign):
(WebKit::WebString::length):
(WebKit::WebString::data):
(WebKit::WebString::utf8):
(WebKit::WebString::fromUTF8):
(WebKit::WebString::equals):
(WebKit::WebString::WebString):
(WebKit::WebString::operator=):
(WebKit::WebString::operator WTF::String):
(WebKit::WebString::operator WTF::AtomicString):

Source/WebKit/chromium:

public/platform/WebMimeRegistry.h is a temporary forwarding header to ease the transition. Once downstream
callers are updated to the new location this header can be removed.

WebString, WebCString, and WebCommon.h will remain in place as forwarding headers for users of the WebKit client
API.

* WebKit.gyp:
* public/platform/WebCString.h:
* public/platform/WebCommon.h:
* public/platform/WebMimeRegistry.h:
* public/platform/WebString.h:

Tools:

Teaches the WEBKIT_EXPORT check about the chromium WebKit platform API header location.

* Scripts/webkitpy/style/checkers/cpp.py:
(check_function_definition):

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

19 files changed:
.gitignore
ChangeLog
Source/Platform/ChangeLog
Source/Platform/Platform.gyp/Platform.gyp [new file with mode: 0644]
Source/Platform/Platform.gypi [new file with mode: 0644]
Source/Platform/chromium/public/WebCString.h [new file with mode: 0644]
Source/Platform/chromium/public/WebCommon.h [new file with mode: 0644]
Source/Platform/chromium/public/WebMimeRegistry.h [new file with mode: 0644]
Source/Platform/chromium/public/WebString.h [new file with mode: 0644]
Source/Platform/chromium/src/WebCString.cpp [moved from Source/WebKit/chromium/src/WebCString.cpp with 98% similarity]
Source/Platform/chromium/src/WebString.cpp [moved from Source/WebKit/chromium/src/WebString.cpp with 97% similarity]
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/WebKit.gyp
Source/WebKit/chromium/public/platform/WebCString.h
Source/WebKit/chromium/public/platform/WebCommon.h
Source/WebKit/chromium/public/platform/WebMimeRegistry.h
Source/WebKit/chromium/public/platform/WebString.h
Tools/ChangeLog
Tools/Scripts/webkitpy/style/checkers/cpp.py

index 2676d23f9838bfff8bf36787f9cb0d13a62dc2a1..68ba793253b5f132f9cc6fd5106b1b0fc8895e62 100644 (file)
@@ -54,6 +54,10 @@ Source/WebKit/chromium/*.vcproj*
 Source/WebKit/chromium/All.xcodeproj
 Source/WebKit/chromium/WebKit.xcodeproj
 Source/WebKit/chromium/WebKitUnitTests.xcodeproj
+Source/Platform/Platform.gyp/*.Makefile
+Source/Platform/Platform.gyp/*.mk
+Source/Platform/Platform.gyp/*.sln
+Source/Platform/Platform.gyp/*.vcproj*
 Tools/Tools.xcodeproj
 Tools/DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.xcodeproj
 
index e4693e007d701ae154d50a9038807638a7ecc93e..f39e0d54c9e9dbd3412850d6dff7175f483ae9bd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2012-01-04  James Robinson  <jamesr@chromium.org>
+
+        [chromium] Move WebMimeRegistry and dependencies to Source/Platform
+        https://bugs.webkit.org/show_bug.cgi?id=74583
+
+        Reviewed by Darin Fisher.
+
+        Update .gitignore for Source/Platform/Platform.gyp/ generated project files.
+
+        * .gitignore:
+
 2012-01-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
 
         [Qt] Introduce new qmake variable 'WEBKIT' for signaling dependencies
index a7c0fc3ff2410b0c40f0a00a65b329c983f25eb2..c9d2f22f62844c186468aef1525ba4011d4e4827 100644 (file)
@@ -1,3 +1,62 @@
+2012-01-04  James Robinson  <jamesr@chromium.org>
+
+        [chromium] Move WebMimeRegistry and dependencies to Source/Platform
+        https://bugs.webkit.org/show_bug.cgi?id=74583
+
+        Reviewed by Darin Fisher.
+
+        This creates a skeleton directory structure for the chromium WebKit platform API and moves WebMimeRegistry.h
+        along with its dependencies (WebString and WebCString) to their final location.
+
+        * Platform.gyp/Platform.gyp: Added.
+        * Platform.gypi: Added.
+        * chromium/platform/WebCString.h: Copied from Source/WebKit/chromium/public/platform/WebCString.h.
+        (WebKit::WebCString::~WebCString):
+        (WebKit::WebCString::WebCString):
+        (WebKit::WebCString::operator=):
+        (WebKit::WebCString::isEmpty):
+        (WebKit::WebCString::isNull):
+        (WebKit::WebCString::operator std::string):
+        (WebKit::WebCString::fromUTF16):
+        (WebKit::operator<):
+        * chromium/platform/WebCommon.h: Copied from Source/WebKit/chromium/public/platform/WebCommon.h.
+        * chromium/platform/WebMimeRegistry.h: Copied from Source/WebKit/chromium/public/platform/WebMimeRegistry.h.
+        (WebKit::WebMimeRegistry::~WebMimeRegistry):
+        * chromium/platform/WebString.h: Copied from Source/WebKit/chromium/public/platform/WebString.h.
+        (WebKit::WebString::~WebString):
+        (WebKit::WebString::WebString):
+        (WebKit::WebString::operator=):
+        (WebKit::WebString::isEmpty):
+        (WebKit::WebString::isNull):
+        (WebKit::WebString::operator string16):
+        (WebKit::WebString::operator NullableString16):
+        (WebKit::WebString::fromUTF8):
+        (WebKit::operator==):
+        (WebKit::operator!=):
+        * chromium/src/WebCString.cpp: Renamed from Source/WebKit/chromium/src/WebCString.cpp.
+        (WebKit::WebCString::compare):
+        (WebKit::WebCString::reset):
+        (WebKit::WebCString::assign):
+        (WebKit::WebCString::length):
+        (WebKit::WebCString::data):
+        (WebKit::WebCString::utf16):
+        (WebKit::WebCString::fromUTF16):
+        (WebKit::WebCString::WebCString):
+        (WebKit::WebCString::operator=):
+        (WebKit::WebCString::operator WTF::CString):
+        * chromium/src/WebString.cpp: Renamed from Source/WebKit/chromium/src/WebString.cpp.
+        (WebKit::WebString::reset):
+        (WebKit::WebString::assign):
+        (WebKit::WebString::length):
+        (WebKit::WebString::data):
+        (WebKit::WebString::utf8):
+        (WebKit::WebString::fromUTF8):
+        (WebKit::WebString::equals):
+        (WebKit::WebString::WebString):
+        (WebKit::WebString::operator=):
+        (WebKit::WebString::operator WTF::String):
+        (WebKit::WebString::operator WTF::AtomicString):
+
 2011-11-02  Adam Barth  <abarth@webkit.org>
 
         Add stubs for WTF and Platform
diff --git a/Source/Platform/Platform.gyp/Platform.gyp b/Source/Platform/Platform.gyp/Platform.gyp
new file mode 100644 (file)
index 0000000..cb54919
--- /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.
+#
+
+{
+    'includes': [
+        '../Platform.gypi',
+    ],
+    'targets': [
+        {
+            'target_name': 'platform',
+            'type': 'static_library',
+            'dependencies': [
+                '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
+                '../../WTF/WTF.gyp/WTF.gyp:newwtf',
+            ],
+            'include_dirs': [
+                '../chromium',
+            ],
+            'defines': [
+                'WEBKIT_IMPLEMENTATION=1',
+            ],
+            'sources': [
+                '<@(platform_files)',
+            ],
+            'direct_dependent_settings': {
+                'include_dirs': [
+                    '../chromium',
+                ],
+            },
+            'conditions': [
+                ['inside_chromium_build==1', {
+                    'conditions': [
+                        ['component=="shared_library"', {
+                            'defines': [
+                                'WEBKIT_DLL',
+                            ],
+                        }],
+                    ],
+                }],
+            ]
+        }
+    ]
+}
+
diff --git a/Source/Platform/Platform.gypi b/Source/Platform/Platform.gypi
new file mode 100644 (file)
index 0000000..17e50ad
--- /dev/null
@@ -0,0 +1,42 @@
+#
+# 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.
+#
+
+{
+    'variables': {
+        'platform_files': [
+            'chromium/public/WebCString.h',
+            'chromium/public/WebCommon.h',
+            'chromium/public/WebString.h',
+            'chromium/public/WebMimeRegistry.h',
+            'chromium/src/WebCString.cpp',
+            'chromium/src/WebString.cpp',
+        ]
+    }
+}
diff --git a/Source/Platform/chromium/public/WebCString.h b/Source/Platform/chromium/public/WebCString.h
new file mode 100644 (file)
index 0000000..8fa0e82
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+ * 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 WebCString_h
+#define WebCString_h
+
+#include "WebCommon.h"
+
+#if WEBKIT_IMPLEMENTATION
+#include <wtf/Forward.h>
+#else
+#include <string>
+#endif
+
+namespace WTF {
+class CString;
+}
+
+namespace WebKit {
+
+class WebCStringPrivate;
+class WebString;
+
+// A single-byte string container with unspecified encoding.  It is
+// inexpensive to copy a WebCString object.
+//
+// WARNING: It is not safe to pass a WebCString across threads!!!
+//
+class WebCString {
+public:
+    ~WebCString() { reset(); }
+
+    WebCString() : m_private(0) { }
+
+    WebCString(const char* data, size_t len) : m_private(0)
+    {
+        assign(data, len);
+    }
+
+    WebCString(const WebCString& s) : m_private(0) { assign(s); }
+
+    WebCString& operator=(const WebCString& s)
+    {
+        assign(s);
+        return *this;
+    }
+
+    // Returns 0 if both strings are equals, a value greater than zero if the
+    // first character that does not match has a greater value in this string
+    // than in |other|, or a value less than zero to indicate the opposite.
+    WEBKIT_EXPORT int compare(const WebCString& other) const;
+
+    WEBKIT_EXPORT void reset();
+    WEBKIT_EXPORT void assign(const WebCString&);
+    WEBKIT_EXPORT void assign(const char* data, size_t len);
+
+    WEBKIT_EXPORT size_t length() const;
+    WEBKIT_EXPORT const char* data() const;
+
+    bool isEmpty() const { return !length(); }
+    bool isNull() const { return !m_private; }
+
+    WEBKIT_EXPORT WebString utf16() const;
+
+#if WEBKIT_IMPLEMENTATION
+    WebCString(const WTF::CString&);
+    WebCString& operator=(const WTF::CString&);
+    operator WTF::CString() const;
+#else
+    WebCString(const std::string& s) : m_private(0)
+    {
+        assign(s.data(), s.length());
+    }
+
+    WebCString& operator=(const std::string& s)
+    {
+        assign(s.data(), s.length());
+        return *this;
+    }
+
+    operator std::string() const
+    {
+        size_t len = length();
+        return len ? std::string(data(), len) : std::string();
+    }
+
+    template <class UTF16String>
+    static WebCString fromUTF16(const UTF16String& s)
+    {
+        return fromUTF16(s.data(), s.length());
+    }
+#endif
+
+private:
+    void assign(WebCStringPrivate*);
+    WebCStringPrivate* m_private;
+};
+
+inline bool operator<(const WebCString& a, const WebCString& b)
+{
+    return a.compare(b) < 0;
+}
+
+} // namespace WebKit
+
+#endif
diff --git a/Source/Platform/chromium/public/WebCommon.h b/Source/Platform/chromium/public/WebCommon.h
new file mode 100644 (file)
index 0000000..c634f0c
--- /dev/null
@@ -0,0 +1,123 @@
+/*
+ * Copyright (C) 2010 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 WebCommon_h
+#define WebCommon_h
+
+// -----------------------------------------------------------------------------
+// Default configuration
+
+#if !defined(WEBKIT_IMPLEMENTATION)
+    #define WEBKIT_IMPLEMENTATION 0
+#endif
+
+#if !defined(WEBKIT_USING_SKIA)
+    #if !defined(__APPLE__) || defined(USE_SKIA)
+        #define WEBKIT_USING_SKIA 1
+    #else
+        #define WEBKIT_USING_SKIA 0
+    #endif
+#endif
+
+#if !defined(WEBKIT_USING_CG)
+    #if defined(__APPLE__) && !WEBKIT_USING_SKIA
+        #define WEBKIT_USING_CG 1
+    #else
+        #define WEBKIT_USING_CG 0
+    #endif
+#endif
+
+#if !defined(WEBKIT_USING_V8)
+    #define WEBKIT_USING_V8 1
+#endif
+
+#if !defined(WEBKIT_USING_JSC)
+    #define WEBKIT_USING_JSC 0
+#endif
+
+// -----------------------------------------------------------------------------
+// Exported symbols need to be annotated with WEBKIT_EXPORT
+
+#if defined(WEBKIT_DLL)
+    #if defined(WIN32)
+        #if WEBKIT_IMPLEMENTATION
+            #define WEBKIT_EXPORT __declspec(dllexport)
+        #else
+            #define WEBKIT_EXPORT __declspec(dllimport)
+        #endif
+    #else
+        #define WEBKIT_EXPORT __attribute__((visibility("default")))
+    #endif
+#else
+    #define WEBKIT_EXPORT
+#endif
+
+// -----------------------------------------------------------------------------
+// Basic types
+
+#include <stddef.h> // For size_t
+
+#if defined(WIN32)
+// Visual Studio doesn't have stdint.h.
+typedef short int16_t;
+typedef unsigned short uint16_t;
+typedef int int32_t;
+typedef unsigned int uint32_t;
+#endif
+
+namespace WebKit {
+
+// UTF-16 character type
+#if defined(WIN32)
+typedef wchar_t WebUChar;
+#else
+typedef unsigned short WebUChar;
+#endif
+
+// -----------------------------------------------------------------------------
+// Assertions
+
+WEBKIT_EXPORT void failedAssertion(const char* file, int line, const char* function, const char* assertion);
+
+} // namespace WebKit
+
+// Ideally, only use inside the public directory but outside of WEBKIT_IMPLEMENTATION blocks.  (Otherwise use WTF's ASSERT.)
+#if defined(NDEBUG)
+#define WEBKIT_ASSERT(assertion) ((void)0)
+#else
+#define WEBKIT_ASSERT(assertion) do { \
+    if (!(assertion)) \
+        failedAssertion(__FILE__, __LINE__, __FUNCTION__, #assertion); \
+} while (0)
+#endif
+
+#define WEBKIT_ASSERT_NOT_REACHED() WEBKIT_ASSERT(0)
+
+#endif
diff --git a/Source/Platform/chromium/public/WebMimeRegistry.h b/Source/Platform/chromium/public/WebMimeRegistry.h
new file mode 100644 (file)
index 0000000..bbe57e9
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * 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 WebMimeRegistry_h
+#define WebMimeRegistry_h
+
+#include "WebCommon.h"
+
+namespace WebKit {
+class WebString;
+
+class WebMimeRegistry {
+public:
+    enum SupportsType { IsNotSupported, IsSupported, MayBeSupported };
+
+    virtual SupportsType supportsMIMEType(const WebKit::WebString& mimeType) = 0;
+    virtual SupportsType supportsImageMIMEType(const WebKit::WebString& mimeType) = 0;
+    virtual SupportsType supportsJavaScriptMIMEType(const WebKit::WebString& mimeType) = 0;
+    virtual SupportsType supportsMediaMIMEType(const WebKit::WebString& mimeType,
+                                               const WebKit::WebString& codecs) = 0;
+    virtual SupportsType supportsNonImageMIMEType(const WebKit::WebString& mimeType) = 0;
+
+    virtual WebKit::WebString mimeTypeForExtension(const WebKit::WebString& fileExtension) = 0;
+    virtual WebKit::WebString wellKnownMimeTypeForExtension(const WebKit::WebString& fileExtension) = 0;
+    virtual WebKit::WebString mimeTypeFromFile(const WebKit::WebString& filePath) = 0;
+    virtual WebKit::WebString preferredExtensionForMIMEType(const WebKit::WebString& mimeType) = 0;
+
+protected:
+    ~WebMimeRegistry() { }
+};
+
+} // namespace WebKit
+
+#endif
diff --git a/Source/Platform/chromium/public/WebString.h b/Source/Platform/chromium/public/WebString.h
new file mode 100644 (file)
index 0000000..c336dd1
--- /dev/null
@@ -0,0 +1,177 @@
+/*
+ * 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 WebString_h
+#define WebString_h
+
+#include "WebCommon.h"
+
+#if WEBKIT_IMPLEMENTATION
+#include <wtf/Forward.h>
+#else
+#include <base/nullable_string16.h>
+#include <base/string16.h>
+#endif
+
+namespace WebKit {
+
+class WebCString;
+class WebStringPrivate;
+
+// A UTF-16 string container.  It is inexpensive to copy a WebString
+// object.
+//
+// WARNING: It is not safe to pass a WebString across threads!!!
+//
+class WebString {
+public:
+    ~WebString() { reset(); }
+
+    WebString() : m_private(0) { }
+
+    WebString(const WebUChar* data, size_t len) : m_private(0)
+    {
+        assign(data, len);
+    }
+
+    WebString(const WebString& s) : m_private(0) { assign(s); }
+
+    WebString& operator=(const WebString& s)
+    {
+        assign(s);
+        return *this;
+    }
+
+    WEBKIT_EXPORT void reset();
+    WEBKIT_EXPORT void assign(const WebString&);
+    WEBKIT_EXPORT void assign(const WebUChar* data, size_t len);
+
+    WEBKIT_EXPORT bool equals(const WebString& s) const;
+
+    WEBKIT_EXPORT size_t length() const;
+    WEBKIT_EXPORT const WebUChar* data() const;
+
+    bool isEmpty() const { return !length(); }
+    bool isNull() const { return !m_private; }
+
+    WEBKIT_EXPORT WebCString utf8() const;
+
+    WEBKIT_EXPORT static WebString fromUTF8(const char* data, size_t length);
+    WEBKIT_EXPORT static WebString fromUTF8(const char* data);
+
+    template <int N> WebString(const char (&data)[N])
+        : m_private(0)
+    {
+        assign(fromUTF8(data, N - 1));
+    }
+
+    template <int N> WebString& operator=(const char (&data)[N])
+    {
+        assign(fromUTF8(data, N - 1));
+        return *this;
+    }
+
+#if WEBKIT_IMPLEMENTATION
+    WebString(const WTF::String&);
+    WebString& operator=(const WTF::String&);
+    operator WTF::String() const;
+
+    WebString(const WTF::AtomicString&);
+    WebString& operator=(const WTF::AtomicString&);
+    operator WTF::AtomicString() const;
+#else
+
+    WebString(const string16& s) : m_private(0)
+    {
+        assign(s.data(), s.length());
+    }
+
+    WebString& operator=(const string16& s)
+    {
+        assign(s.data(), s.length());
+        return *this;
+    }
+
+    operator string16() const
+    {
+        size_t len = length();
+        return len ? string16(data(), len) : string16();
+    }
+
+    WebString(const NullableString16& s) : m_private(0)
+    {
+        if (s.is_null())
+            reset();
+        else
+            assign(s.string().data(), s.string().length());
+    }
+
+    WebString& operator=(const NullableString16& s)
+    {
+        if (s.is_null())
+            reset();
+        else
+            assign(s.string().data(), s.string().length());
+        return *this;
+    }
+
+    operator NullableString16() const
+    {
+        if (!m_private)
+            return NullableString16(string16(), true);
+        size_t len = length();
+        return NullableString16(len ? string16(data(), len) : string16(), false);
+    }
+
+    template <class UTF8String>
+    static WebString fromUTF8(const UTF8String& s)
+    {
+        return fromUTF8(s.data(), s.length());
+    }
+#endif
+
+private:
+    void assign(WebStringPrivate*);
+    WebStringPrivate* m_private;
+};
+
+inline bool operator==(const WebString& a, const WebString& b)
+{
+    return a.equals(b);
+}
+
+inline bool operator!=(const WebString& a, const WebString& b)
+{
+    return !(a == b);
+}
+
+} // namespace WebKit
+
+#endif
similarity index 98%
rename from Source/WebKit/chromium/src/WebCString.cpp
rename to Source/Platform/chromium/src/WebCString.cpp
index 63eb9c68535931d2ace58f6e8136d5e7592d9f5b..9a96ac9cbcb40e78f66d2b4453f019a4ac3e4dc7 100644 (file)
@@ -29,9 +29,9 @@
  */
 
 #include "config.h"
-#include "platform/WebCString.h"
+#include <public/WebCString.h>
 
-#include "platform/WebString.h"
+#include <public/WebString.h>
 #include <wtf/text/CString.h>
 
 namespace WebKit {
similarity index 97%
rename from Source/WebKit/chromium/src/WebString.cpp
rename to Source/Platform/chromium/src/WebString.cpp
index 7929bd50cc2efe13a5500c719774f228de402128..17649317babf081f32266f1395a0778b7621cb8c 100644 (file)
  */
 
 #include "config.h"
-#include "platform/WebString.h"
+#include <public/WebString.h>
 
-#include "PlatformString.h"
-#include "platform/WebCString.h"
+#include <public/WebCString.h>
 #include <wtf/text/AtomicString.h>
 #include <wtf/text/CString.h>
+#include <wtf/text/WTFString.h>
 
 namespace WebKit {
 
index 4b4dc4d63a15987ca3694bc075c7f5b0231d3753..a006dcc0a6fb3e0176332e4876d57daab82c49af 100644 (file)
@@ -1,3 +1,22 @@
+2012-01-04  James Robinson  <jamesr@chromium.org>
+
+        [chromium] Move WebMimeRegistry and dependencies to Source/Platform
+        https://bugs.webkit.org/show_bug.cgi?id=74583
+
+        Reviewed by Darin Fisher.
+
+        public/platform/WebMimeRegistry.h is a temporary forwarding header to ease the transition. Once downstream
+        callers are updated to the new location this header can be removed.
+
+        WebString, WebCString, and WebCommon.h will remain in place as forwarding headers for users of the WebKit client
+        API.
+
+        * WebKit.gyp:
+        * public/platform/WebCString.h:
+        * public/platform/WebCommon.h:
+        * public/platform/WebMimeRegistry.h:
+        * public/platform/WebString.h:
+
 2012-01-03  Vangelis Kokkevis  <vangelis@chromium.org>
 
         [chromium] Bypass the shadow texture copy for accelerated
index 644869f3963eb8d96ac66a0cc4d146067b8348ca..a4647322f1134bb8f1b780b0a3abd27124375dda 100644 (file)
@@ -67,6 +67,7 @@
             'variables': { 'enable_wexit_time_destructors': 1, },
             'dependencies': [
                 '../../WebCore/WebCore.gyp/WebCore.gyp:webcore',
+                '../../Platform/Platform.gyp/Platform.gyp:platform', # actually WebCore should depend on this
                 '<(chromium_src_dir)/skia/skia.gyp:skia',
                 '<(chromium_src_dir)/third_party/icu/icu.gyp:icuuc',
                 '<(chromium_src_dir)/third_party/npapi/npapi.gyp:npapi',
                 'public/platform/WebAudioDevice.h',
                 'public/platform/WebBlobData.h',
                 'public/platform/WebBlobRegistry.h',
-                'public/platform/WebCString.h',
                 'public/platform/WebCanvas.h',
                 'public/platform/WebClipboard.h',
                 'public/platform/WebColor.h',
                 'src/WebContentLayerImpl.cpp',
                 'src/WebContentLayerImpl.h',
                 'src/WebCrossOriginPreflightResultCache.cpp',
-                'src/WebCString.cpp',
                 'src/WebCursorInfo.cpp',
                 'src/WebDOMEvent.cpp',
                 'src/WebDOMEventListener.cpp',
                 'src/WebStorageNamespaceImpl.h',
                 'src/WebStorageQuotaCallbacksImpl.cpp',
                 'src/WebStorageQuotaCallbacksImpl.h',
-                'src/WebString.cpp',
                 'src/WebTextRun.cpp',
                 'src/WebThreadSafeData.cpp',
                 'src/WebURL.cpp',
index ff4be2448c5b46b13f9f126e4db803d2dce98e08..7a4486db36c98921908365cb9a240da2df62deda 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef WebCString_h
-#define WebCString_h
+#include "../../../../Platform/chromium/public/WebCString.h"
 
-#include "WebCommon.h"
-
-#if WEBKIT_IMPLEMENTATION
-#include <wtf/Forward.h>
-#else
-#include <string>
-#endif
-
-namespace WTF {
-class CString;
-}
-
-namespace WebKit {
-
-class WebCStringPrivate;
-class WebString;
-
-// A single-byte string container with unspecified encoding.  It is
-// inexpensive to copy a WebCString object.
-//
-// WARNING: It is not safe to pass a WebCString across threads!!!
-//
-class WebCString {
-public:
-    ~WebCString() { reset(); }
-
-    WebCString() : m_private(0) { }
-
-    WebCString(const char* data, size_t len) : m_private(0)
-    {
-        assign(data, len);
-    }
-
-    WebCString(const WebCString& s) : m_private(0) { assign(s); }
-
-    WebCString& operator=(const WebCString& s)
-    {
-        assign(s);
-        return *this;
-    }
-
-    // Returns 0 if both strings are equals, a value greater than zero if the
-    // first character that does not match has a greater value in this string
-    // than in |other|, or a value less than zero to indicate the opposite.
-    WEBKIT_EXPORT int compare(const WebCString& other) const;
-
-    WEBKIT_EXPORT void reset();
-    WEBKIT_EXPORT void assign(const WebCString&);
-    WEBKIT_EXPORT void assign(const char* data, size_t len);
-
-    WEBKIT_EXPORT size_t length() const;
-    WEBKIT_EXPORT const char* data() const;
-
-    bool isEmpty() const { return !length(); }
-    bool isNull() const { return !m_private; }
-
-    WEBKIT_EXPORT WebString utf16() const;
-
-#if WEBKIT_IMPLEMENTATION
-    WebCString(const WTF::CString&);
-    WebCString& operator=(const WTF::CString&);
-    operator WTF::CString() const;
-#else
-    WebCString(const std::string& s) : m_private(0)
-    {
-        assign(s.data(), s.length());
-    }
-
-    WebCString& operator=(const std::string& s)
-    {
-        assign(s.data(), s.length());
-        return *this;
-    }
-
-    operator std::string() const
-    {
-        size_t len = length();
-        return len ? std::string(data(), len) : std::string();
-    }
-#endif
-
-private:
-    void assign(WebCStringPrivate*);
-    WebCStringPrivate* m_private;
-};
-
-inline bool operator<(const WebCString& a, const WebCString& b)
-{
-    return a.compare(b) < 0;
-}
-
-} // namespace WebKit
-
-#endif
index c634f0c38f418d028580c83653a1af1e1739ae18..39b40eb7f825c2ec44a347d33270913d6f3bcd8c 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef WebCommon_h
-#define WebCommon_h
-
-// -----------------------------------------------------------------------------
-// Default configuration
-
-#if !defined(WEBKIT_IMPLEMENTATION)
-    #define WEBKIT_IMPLEMENTATION 0
-#endif
-
-#if !defined(WEBKIT_USING_SKIA)
-    #if !defined(__APPLE__) || defined(USE_SKIA)
-        #define WEBKIT_USING_SKIA 1
-    #else
-        #define WEBKIT_USING_SKIA 0
-    #endif
-#endif
-
-#if !defined(WEBKIT_USING_CG)
-    #if defined(__APPLE__) && !WEBKIT_USING_SKIA
-        #define WEBKIT_USING_CG 1
-    #else
-        #define WEBKIT_USING_CG 0
-    #endif
-#endif
-
-#if !defined(WEBKIT_USING_V8)
-    #define WEBKIT_USING_V8 1
-#endif
-
-#if !defined(WEBKIT_USING_JSC)
-    #define WEBKIT_USING_JSC 0
-#endif
-
-// -----------------------------------------------------------------------------
-// Exported symbols need to be annotated with WEBKIT_EXPORT
-
-#if defined(WEBKIT_DLL)
-    #if defined(WIN32)
-        #if WEBKIT_IMPLEMENTATION
-            #define WEBKIT_EXPORT __declspec(dllexport)
-        #else
-            #define WEBKIT_EXPORT __declspec(dllimport)
-        #endif
-    #else
-        #define WEBKIT_EXPORT __attribute__((visibility("default")))
-    #endif
-#else
-    #define WEBKIT_EXPORT
-#endif
-
-// -----------------------------------------------------------------------------
-// Basic types
-
-#include <stddef.h> // For size_t
-
-#if defined(WIN32)
-// Visual Studio doesn't have stdint.h.
-typedef short int16_t;
-typedef unsigned short uint16_t;
-typedef int int32_t;
-typedef unsigned int uint32_t;
-#endif
-
-namespace WebKit {
-
-// UTF-16 character type
-#if defined(WIN32)
-typedef wchar_t WebUChar;
-#else
-typedef unsigned short WebUChar;
-#endif
-
-// -----------------------------------------------------------------------------
-// Assertions
-
-WEBKIT_EXPORT void failedAssertion(const char* file, int line, const char* function, const char* assertion);
-
-} // namespace WebKit
-
-// Ideally, only use inside the public directory but outside of WEBKIT_IMPLEMENTATION blocks.  (Otherwise use WTF's ASSERT.)
-#if defined(NDEBUG)
-#define WEBKIT_ASSERT(assertion) ((void)0)
-#else
-#define WEBKIT_ASSERT(assertion) do { \
-    if (!(assertion)) \
-        failedAssertion(__FILE__, __LINE__, __FUNCTION__, #assertion); \
-} while (0)
-#endif
-
-#define WEBKIT_ASSERT_NOT_REACHED() WEBKIT_ASSERT(0)
-
-#endif
+#include "../../../../Platform/chromium/public/WebCommon.h"
index c446e5e46ef61a114dbff616be314b40e2690aff..4137b07568d1f7d04bcdda0f123a9238cc8270b5 100644 (file)
@@ -1,62 +1,29 @@
 /*
- * Copyright (C) 2009 Google Inc. All rights reserved.
+ * 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:
+ * 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.
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  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.
  *
- * 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.
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS 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 APPLE OR ITS 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 WebMimeRegistry_h
-#define WebMimeRegistry_h
-
-#include "WebCommon.h"
-
-namespace WebKit {
-
-class WebString;
-
-class WebMimeRegistry {
-public:
-    enum SupportsType { IsNotSupported, IsSupported, MayBeSupported };
-
-    virtual SupportsType supportsMIMEType(const WebString& mimeType) = 0;
-    virtual SupportsType supportsImageMIMEType(const WebString& mimeType) = 0;
-    virtual SupportsType supportsJavaScriptMIMEType(const WebString& mimeType) = 0;
-    virtual SupportsType supportsMediaMIMEType(const WebString& mimeType,
-                                               const WebString& codecs) = 0;
-    virtual SupportsType supportsNonImageMIMEType(const WebString& mimeType) = 0;
-
-    virtual WebString mimeTypeForExtension(const WebString& fileExtension) = 0;
-    virtual WebString wellKnownMimeTypeForExtension(const WebString& fileExtension) = 0;
-    virtual WebString mimeTypeFromFile(const WebString& filePath) = 0;
-    virtual WebString preferredExtensionForMIMEType(const WebString& mimeType) = 0;
-
-protected:
-    ~WebMimeRegistry() { }
-};
-
-} // namespace WebKit
-
-#endif
+// This is a temporary forwarding header to ease the Platform transition for downstream users of the WebKit API.
+// See https://bugs.webkit.org/show_bug.cgi?id=74583
+// FIXME: Remove as soon as downstream clients are updated.
+#include "../../../../Platform/chromium/public/WebMimeRegistry.h"
index c336dd113dcd61aefae52a9808b6c57275f3b9df..d8f4fe21a5f9dc17419767ae9b8341fb401c4358 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef WebString_h
-#define WebString_h
+#include "../../../../Platform/chromium/public/WebString.h"
 
-#include "WebCommon.h"
-
-#if WEBKIT_IMPLEMENTATION
-#include <wtf/Forward.h>
-#else
-#include <base/nullable_string16.h>
-#include <base/string16.h>
-#endif
-
-namespace WebKit {
-
-class WebCString;
-class WebStringPrivate;
-
-// A UTF-16 string container.  It is inexpensive to copy a WebString
-// object.
-//
-// WARNING: It is not safe to pass a WebString across threads!!!
-//
-class WebString {
-public:
-    ~WebString() { reset(); }
-
-    WebString() : m_private(0) { }
-
-    WebString(const WebUChar* data, size_t len) : m_private(0)
-    {
-        assign(data, len);
-    }
-
-    WebString(const WebString& s) : m_private(0) { assign(s); }
-
-    WebString& operator=(const WebString& s)
-    {
-        assign(s);
-        return *this;
-    }
-
-    WEBKIT_EXPORT void reset();
-    WEBKIT_EXPORT void assign(const WebString&);
-    WEBKIT_EXPORT void assign(const WebUChar* data, size_t len);
-
-    WEBKIT_EXPORT bool equals(const WebString& s) const;
-
-    WEBKIT_EXPORT size_t length() const;
-    WEBKIT_EXPORT const WebUChar* data() const;
-
-    bool isEmpty() const { return !length(); }
-    bool isNull() const { return !m_private; }
-
-    WEBKIT_EXPORT WebCString utf8() const;
-
-    WEBKIT_EXPORT static WebString fromUTF8(const char* data, size_t length);
-    WEBKIT_EXPORT static WebString fromUTF8(const char* data);
-
-    template <int N> WebString(const char (&data)[N])
-        : m_private(0)
-    {
-        assign(fromUTF8(data, N - 1));
-    }
-
-    template <int N> WebString& operator=(const char (&data)[N])
-    {
-        assign(fromUTF8(data, N - 1));
-        return *this;
-    }
-
-#if WEBKIT_IMPLEMENTATION
-    WebString(const WTF::String&);
-    WebString& operator=(const WTF::String&);
-    operator WTF::String() const;
-
-    WebString(const WTF::AtomicString&);
-    WebString& operator=(const WTF::AtomicString&);
-    operator WTF::AtomicString() const;
-#else
-
-    WebString(const string16& s) : m_private(0)
-    {
-        assign(s.data(), s.length());
-    }
-
-    WebString& operator=(const string16& s)
-    {
-        assign(s.data(), s.length());
-        return *this;
-    }
-
-    operator string16() const
-    {
-        size_t len = length();
-        return len ? string16(data(), len) : string16();
-    }
-
-    WebString(const NullableString16& s) : m_private(0)
-    {
-        if (s.is_null())
-            reset();
-        else
-            assign(s.string().data(), s.string().length());
-    }
-
-    WebString& operator=(const NullableString16& s)
-    {
-        if (s.is_null())
-            reset();
-        else
-            assign(s.string().data(), s.string().length());
-        return *this;
-    }
-
-    operator NullableString16() const
-    {
-        if (!m_private)
-            return NullableString16(string16(), true);
-        size_t len = length();
-        return NullableString16(len ? string16(data(), len) : string16(), false);
-    }
-
-    template <class UTF8String>
-    static WebString fromUTF8(const UTF8String& s)
-    {
-        return fromUTF8(s.data(), s.length());
-    }
-#endif
-
-private:
-    void assign(WebStringPrivate*);
-    WebStringPrivate* m_private;
-};
-
-inline bool operator==(const WebString& a, const WebString& b)
-{
-    return a.equals(b);
-}
-
-inline bool operator!=(const WebString& a, const WebString& b)
-{
-    return !(a == b);
-}
-
-} // namespace WebKit
-
-#endif
index 8c808bc1d692e6bba9b0ff9d0e6521ec89ad913a..ca9bf9089667808d7b42091a9f34404e5dfa33b0 100644 (file)
@@ -1,3 +1,15 @@
+2012-01-04  James Robinson  <jamesr@chromium.org>
+
+        [chromium] Move WebMimeRegistry and dependencies to Source/Platform
+        https://bugs.webkit.org/show_bug.cgi?id=74583
+
+        Reviewed by Darin Fisher.
+
+        Teaches the WEBKIT_EXPORT check about the chromium WebKit platform API header location.
+
+        * Scripts/webkitpy/style/checkers/cpp.py:
+        (check_function_definition):
+
 2012-01-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
 
         [Qt] Fix link order of static libraries and unbreak QtWin32
index f79a9266a702f46f117d51110b32de16d4197aa8..5792f25cd4bfef78c650b33aac4bfe4eb3aee1e3 100644 (file)
@@ -1602,7 +1602,7 @@ def check_function_definition(filename, file_extension, clean_lines, line_number
 
     modifiers_and_return_type = function_state.modifiers_and_return_type()
     if filename.find('/chromium/') != -1 and search(r'\bWEBKIT_EXPORT\b', modifiers_and_return_type):
-        if filename.find('/chromium/public/') == -1 and filename.find('/chromium/tests/') == -1:
+        if filename.find('/chromium/public/') == -1 and filename.find('/chromium/tests/') == -1 and filename.find('chromium/platform') == -1:
             error(function_state.function_name_start_position.row, 'readability/webkit_export', 5,
                   'WEBKIT_EXPORT should only appear in the chromium public (or tests) directory.')
         elif not file_extension == "h":