Reviewed by Tim H, Hyatt.
* WebCore.xcodeproj/project.pbxproj:
Add KURLCFNet.cpp
* platform/KURL.h:
Get rid of include, add KURL constructor that takes a CFURLRef.
* platform/PlatformString.h:
* platform/StringImpl.h:
Get rid of include.
* platform/cf/KURLCFNet.cpp:
(WebCore::KURL::KURL):
Add constructor.
* platform/cf/ResourceLoaderCFNet.cpp:
Fix includes.
* platform/cf/StringCF.cpp:
(WebCore::String::createCFString):
Move this here from PlatformString.h
* platform/cf/StringImplCF.cpp:
(WebCore::StringImpl::createCFString):
Fix cast.
* platform/mac/KURLMac.mm:
Move createCFURL() to KURLCFNet.cpp
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@16160
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2006-08-31 Anders Carlsson <acarlsson@apple.com>
+
+ Reviewed by Tim H, Hyatt.
+
+ * WebCore.xcodeproj/project.pbxproj:
+ Add KURLCFNet.cpp
+
+ * platform/KURL.h:
+ Get rid of include, add KURL constructor that takes a CFURLRef.
+
+ * platform/PlatformString.h:
+ * platform/StringImpl.h:
+ Get rid of include.
+
+ * platform/cf/KURLCFNet.cpp:
+ (WebCore::KURL::KURL):
+ Add constructor.
+
+ * platform/cf/ResourceLoaderCFNet.cpp:
+ Fix includes.
+
+ * platform/cf/StringCF.cpp:
+ (WebCore::String::createCFString):
+ Move this here from PlatformString.h
+
+ * platform/cf/StringImplCF.cpp:
+ (WebCore::StringImpl::createCFString):
+ Fix cast.
+
+ * platform/mac/KURLMac.mm:
+ Move createCFURL() to KURLCFNet.cpp
+
2006-08-31 Dave Hyatt <hyatt@apple.com>
Make ScrollBar.cpp suitable for compiling on Windows by removing the #import.
1A85B2B70A1B2AC700D8C87C /* JSHTMLDivElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A85B2B50A1B2AC700D8C87C /* JSHTMLDivElement.h */; };
1A98955C0AA78149005EF5EF /* CString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A98955A0AA78149005EF5EF /* CString.cpp */; };
1A98955D0AA78149005EF5EF /* CString.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A98955B0AA78149005EF5EF /* CString.h */; };
+ 1A98956B0AA78F80005EF5EF /* KURLCFNet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A98956A0AA78F80005EF5EF /* KURLCFNet.cpp */; };
1A9EF4570A1B957D00332B63 /* JSCanvasRenderingContext2DCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A9EF4560A1B957D00332B63 /* JSCanvasRenderingContext2DCustom.cpp */; };
1AB7FC680A8B92EC00D9D37B /* XPathEvaluator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AB7FC470A8B92EC00D9D37B /* XPathEvaluator.cpp */; };
1AB7FC690A8B92EC00D9D37B /* XPathEvaluator.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AB7FC480A8B92EC00D9D37B /* XPathEvaluator.h */; };
1A85B2B50A1B2AC700D8C87C /* JSHTMLDivElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSHTMLDivElement.h; sourceTree = "<group>"; };
1A98955A0AA78149005EF5EF /* CString.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CString.cpp; sourceTree = "<group>"; };
1A98955B0AA78149005EF5EF /* CString.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CString.h; sourceTree = "<group>"; };
+ 1A98956A0AA78F80005EF5EF /* KURLCFNet.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = KURLCFNet.cpp; sourceTree = "<group>"; };
1A9EF4560A1B957D00332B63 /* JSCanvasRenderingContext2DCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCanvasRenderingContext2DCustom.cpp; sourceTree = "<group>"; };
1AB7FC470A8B92EC00D9D37B /* XPathEvaluator.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = XPathEvaluator.cpp; sourceTree = "<group>"; };
1AB7FC480A8B92EC00D9D37B /* XPathEvaluator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = XPathEvaluator.h; sourceTree = "<group>"; };
1AE42F670AA4B8CB00C8612D /* cf */ = {
isa = PBXGroup;
children = (
+ 1A98956A0AA78F80005EF5EF /* KURLCFNet.cpp */,
1AE42F680AA4B8CB00C8612D /* StringCF.cpp */,
1AE42F690AA4B8CB00C8612D /* StringImplCF.cpp */,
);
85183B490AA6926100F19FA3 /* DOMHTMLPreElement.mm in Sources */,
85183B4B0AA6926100F19FA3 /* DOMHTMLQuoteElement.mm in Sources */,
1A98955C0AA78149005EF5EF /* CString.cpp in Sources */,
+ 1A98956B0AA78F80005EF5EF /* KURLCFNet.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
#include <wtf/Platform.h>
#include "TextEncoding.h"
-#if USE(CFNETWORK)
-#include <CoreFoundation/CFURL.h>
+#if PLATFORM(CF)
+typedef const struct __CFURL * CFURLRef;
#endif
#if PLATFORM(MAC)
#if PLATFORM(MAC)
KURL(NSURL*);
#endif
-
+#if PLATFORM(CF)
+ KURL(CFURLRef);
+#endif
bool isEmpty() const { return urlString.isEmpty(); }
bool isMalformed() const { return !m_isValid; }
bool isValid() const { return m_isValid; }
#include "StringImpl.h"
#if PLATFORM(CF)
-#include <CoreFoundation/CoreFoundation.h>
+typedef const struct __CFString * CFStringRef;
#endif
#if PLATFORM(QT)
#if PLATFORM(CF)
String(CFStringRef);
- CFStringRef createCFString() const { return m_impl ? m_impl->createCFString() : CFSTR(""); }
+ CFStringRef createCFString() const;
#endif
#ifdef __OBJC__
#include <limits.h>
#if PLATFORM(CF)
-#include <CoreFoundation/CoreFoundation.h>
+typedef const struct __CFString * CFStringRef;
#endif
#ifdef __OBJC__
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include "config.h"
#include "KURL.h"
+
+#include <wtf/Vector.h>
+#include <CoreFoundation/CFURL.h>
+
using namespace std;
namespace WebCore {
-#if PLATFORM(CF)
+KURL::KURL(CFURLRef url)
+{
+ if (url) {
+ CFIndex bytesLength = CFURLGetBytes(url, 0, 0);
+ Vector<char, 2048> buffer(bytesLength + 6); // 6 for "file:", 1 for NUL terminator
+ char* bytes = &buffer[5];
+ CFURLGetBytes(url, (UInt8*)bytes, bytesLength);
+ bytes[bytesLength] = '\0';
+ if (bytes[0] == '/') {
+ buffer[0] = 'f';
+ buffer[1] = 'i';
+ buffer[2] = 'l';
+ buffer[3] = 'e';
+ buffer[4] = ':';
+ parse(buffer, 0);
+ } else
+ parse(bytes, 0);
+ } else
+ parse("", 0);
+}
+
CFURLRef KURL::createCFURL() const
{
const UInt8 *bytes = (const UInt8 *)urlString.latin1();
result = CFURLCreateAbsoluteURLWithBytes(0, bytes, urlString.length(), kCFStringEncodingISOLatin1, 0, true);
return result;
}
-#endif
}
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include <wtf/platform.h>
+#include "config.h"
+
#if USE(CFNETWORK)
-#include "config.h"
#include "ResourceLoader.h"
#include "ResourceLoaderInternal.h"
#include "DocLoader.h"
#include "config.h"
#include "PlatformString.h"
+#include <CoreFoundation/CoreFoundation.h>
+
namespace WebCore {
String::String(CFStringRef str)
m_impl = StringImpl::empty();
else {
Vector<UChar, 1024> buffer(size);
- CFStringGetCharacters(str, CFRangeMake(0, size), buffer.data());
+ CFStringGetCharacters(str, CFRangeMake(0, size), (UniChar*)buffer.data());
m_impl = new StringImpl(buffer.data(), size);
}
}
+CFStringRef String::createCFString() const
+{
+ if (!m_impl)
+ return CFSTR("");
+
+ return m_impl->createCFString();
+}
+
}
#include "config.h"
#include "StringImpl.h"
+#include <CoreFoundation/CoreFoundation.h>
+
namespace WebCore {
CFStringRef StringImpl::createCFString() const
{
- return CFStringCreateWithCharacters(NULL, m_data, m_length);
+ return CFStringCreateWithCharacters(NULL, (const UniChar*)m_data, m_length);
}
}
parse("", 0);
}
-#if PLATFORM(CF)
-CFURLRef KURL::createCFURL() const
-{
- const UInt8 *bytes = (const UInt8 *)urlString.latin1();
- // NOTE: We use UTF-8 here since this encoding is used when computing strings when returning URL components
- // (e.g calls to NSURL -path). However, this function is not tolerant of illegal UTF-8 sequences, which
- // could either be a malformed string or bytes in a different encoding, like Shift-JIS, so we fall back
- // onto using ISO Latin-1 in those cases.
- CFURLRef result = CFURLCreateAbsoluteURLWithBytes(0, bytes, urlString.length(), kCFStringEncodingUTF8, 0, true);
- if (!result)
- result = CFURLCreateAbsoluteURLWithBytes(0, bytes, urlString.length(), kCFStringEncodingISOLatin1, 0, true);
- return result;
-}
-#endif
-
NSURL *KURL::getNSURL() const
{
return HardAutorelease(createCFURL());