Changeset 68930 in webkit


Ignore:
Timestamp:
Oct 1, 2010 3:00:00 PM (14 years ago)
Author:
weinig@apple.com
Message:

Add additional WKString API
https://bugs.webkit.org/show_bug.cgi?id=46958

Reviewed by Kenneth Rohde Christiansen.

WebKit2:

API Test: WebKit2/WKString

  • Shared/API/c/WKString.cpp:

(WKStringCreateWithUTF8CString):
(WKStringGetMaximumUTF8CStringSize):
(WKStringGetUTF8CString):
(WKStringIsEqual):
(WKStringIsEqualToUTF8CString):

  • Shared/API/c/WKString.h:
  • Shared/WebString.h:

(WebKit::WebString::createFromUTF8String):
(WebKit::WebString::maximumUTF8CStringSize):
(WebKit::WebString::getUTF8CString):
(WebKit::WebString::equal):
(WebKit::WebString::equalToUTF8String):

WebKitTools:

Add basic WKStringRef tests.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/WKString.cpp: Added.
Location:
trunk
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit2/ChangeLog

    r68898 r68930  
     12010-10-01  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Kenneth Rohde Christiansen.
     4
     5        Add additional WKString API
     6        https://bugs.webkit.org/show_bug.cgi?id=46958
     7
     8        API Test: WebKit2/WKString
     9
     10        * Shared/API/c/WKString.cpp:
     11        (WKStringCreateWithUTF8CString):
     12        (WKStringGetMaximumUTF8CStringSize):
     13        (WKStringGetUTF8CString):
     14        (WKStringIsEqual):
     15        (WKStringIsEqualToUTF8CString):
     16        * Shared/API/c/WKString.h:
     17        * Shared/WebString.h:
     18        (WebKit::WebString::createFromUTF8String):
     19        (WebKit::WebString::maximumUTF8CStringSize):
     20        (WebKit::WebString::getUTF8CString):
     21        (WebKit::WebString::equal):
     22        (WebKit::WebString::equalToUTF8String):
     23
    1242010-10-01  Anders Carlsson  <andersca@apple.com>
    225
  • trunk/WebKit2/Shared/API/c/WKString.cpp

    r68844 r68930  
    3535}
    3636
     37WKStringRef WKStringCreateWithUTF8CString(const char* string)
     38{
     39    RefPtr<WebString> webString = WebString::createFromUTF8String(string);
     40    return toRef(webString.release().leakRef());
     41}
     42
    3743bool WKStringIsEmpty(WKStringRef stringRef)
    3844{
     
    4046}
    4147
    42 bool WKStringIsEqual(WKStringRef firstString, WKStringRef secondString)
     48size_t WKStringGetMaximumUTF8CStringSize(WKStringRef stringRef)
    4349{
    44     if (firstString == secondString)
    45         return true;
    46     if (!firstString || !secondString)
    47         return false;
    48        
    49     return toWK(firstString)->string() == toWK(secondString)->string();
     50    return toWK(stringRef)->maximumUTF8CStringSize();
    5051}
     52
     53size_t WKStringGetUTF8CString(WKStringRef stringRef, char* buffer, size_t bufferSize)
     54{
     55    return toWK(stringRef)->getUTF8CString(buffer, bufferSize);
     56}
     57
     58bool WKStringIsEqual(WKStringRef aRef, WKStringRef bRef)
     59{
     60    return toWK(aRef)->equal(toWK(bRef));
     61}
     62
     63bool WKStringIsEqualToUTF8CString(WKStringRef aRef, const char* b)
     64{
     65    return toWK(aRef)->equalToUTF8String(b);
     66}
  • trunk/WebKit2/Shared/API/c/WKString.h

    r68844 r68930  
    3939WK_EXPORT WKTypeID WKStringGetTypeID();
    4040
     41WK_EXPORT WKStringRef WKStringCreateWithUTF8CString(const char* string);
     42
    4143WK_EXPORT bool WKStringIsEmpty(WKStringRef string);
    42 WK_EXPORT bool WKStringIsEqual(WKStringRef firstString, WKStringRef secondString);
     44
     45WK_EXPORT size_t WKStringGetMaximumUTF8CStringSize(WKStringRef string);
     46WK_EXPORT size_t WKStringGetUTF8CString(WKStringRef string, char* buffer, size_t bufferSize);
     47
     48WK_EXPORT bool WKStringIsEqual(WKStringRef a, WKStringRef b);
     49WK_EXPORT bool WKStringIsEqualToUTF8CString(WKStringRef a, const char* b);
    4350
    4451#ifdef __cplusplus
  • trunk/WebKit2/Shared/WebString.h

    r67775 r68930  
    3030#include <wtf/PassRefPtr.h>
    3131#include <wtf/text/WTFString.h>
     32#include <wtf/unicode/UTF8.h>
    3233
    3334namespace WebKit {
     
    4445    }
    4546
     47    static PassRefPtr<WebString> createFromUTF8String(const char* string)
     48    {
     49        return adoptRef(new WebString(String::fromUTF8(string)));
     50    }
     51
    4652    bool isNull() const { return m_string.isNull(); }
    4753    bool isEmpty() const { return m_string.isEmpty(); }
     54
     55    size_t maximumUTF8CStringSize() const { return m_string.length() * 3 + 1; }
     56    size_t getUTF8CString(char* buffer, size_t bufferSize)
     57    {
     58        if (!bufferSize)
     59            return 0;
     60        char* p = buffer;
     61        const UChar* d = m_string.characters();
     62        WTF::Unicode::ConversionResult result = WTF::Unicode::convertUTF16ToUTF8(&d, d + m_string.length(), &p, p + bufferSize - 1, /* strict */ true);
     63        *p++ = '\0';
     64        if (result != WTF::Unicode::conversionOK && result != WTF::Unicode::targetExhausted)
     65            return 0;
     66        return p - buffer;
     67    }
     68
     69    bool equal(WebString* other) { return m_string == other->m_string; }
     70    bool equalToUTF8String(const char* other) { return m_string == String::fromUTF8(other); }
    4871
    4972    const String& string() const { return m_string; }
  • trunk/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r68686 r68930  
    19641964                        buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "WebKit2" */;
    19651965                        compatibilityVersion = "Xcode 3.1";
    1966                         developmentRegion = English;
    19671966                        hasScannedForEncodings = 1;
    19681967                        knownRegions = (
  • trunk/WebKitTools/ChangeLog

    r68922 r68930  
     12010-10-01  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Kenneth Rohde Christiansen.
     4
     5        Add additional WKString API
     6        https://bugs.webkit.org/show_bug.cgi?id=46958
     7
     8        Add basic WKStringRef tests.
     9
     10        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     11        * TestWebKitAPI/Tests/WebKit2/WKString.cpp: Added.
     12
    1132010-10-01  Sam Weinig  <sam@webkit.org>
    214
  • trunk/WebKitTools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r68910 r68930  
    1616                BC90977A125571AB00083756 /* PageLoadBasic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC909779125571AB00083756 /* PageLoadBasic.cpp */; };
    1717                BC909784125571CF00083756 /* basic-1.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = BC909778125571AB00083756 /* basic-1.html */; };
     18                BC90995E12567BC100083756 /* WKString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC90995D12567BC100083756 /* WKString.cpp */; };
    1819                BCA61DB511700EFD00460D1E /* WebKit2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCA61DB411700EFD00460D1E /* WebKit2.framework */; };
    1920                BCB9E9F111235BDE00A137E0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCB9E9F011235BDE00A137E0 /* Cocoa.framework */; };
     
    5960                BC909778125571AB00083756 /* basic-1.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "basic-1.html"; sourceTree = "<group>"; };
    6061                BC909779125571AB00083756 /* PageLoadBasic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageLoadBasic.cpp; sourceTree = "<group>"; };
     62                BC90995D12567BC100083756 /* WKString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKString.cpp; sourceTree = "<group>"; };
    6163                BCA61DB411700EFD00460D1E /* WebKit2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = WebKit2.framework; sourceTree = BUILT_PRODUCTS_DIR; };
    6264                BCB9E7C711234E3A00A137E0 /* TestsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestsController.h; sourceTree = "<group>"; };
     
    138140                                BC90977B125571AE00083756 /* Resources */,
    139141                                BC909779125571AB00083756 /* PageLoadBasic.cpp */,
     142                                BC90995D12567BC100083756 /* WKString.cpp */,
    140143                        );
    141144                        path = WebKit2;
     
    227230                                BC90964C125561BF00083756 /* VectorBasic.cpp in Sources */,
    228231                                BC90977A125571AB00083756 /* PageLoadBasic.cpp in Sources */,
     232                                BC90995E12567BC100083756 /* WKString.cpp in Sources */,
    229233                        );
    230234                        runOnlyForDeploymentPostprocessing = 0;
Note: See TracChangeset for help on using the changeset viewer.