Reviewed by Hyatt. Landed by Maciej.
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 3 Nov 2006 09:28:25 +0000 (09:28 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 3 Nov 2006 09:28:25 +0000 (09:28 +0000)
        Adding setPlatformPen/setPlatformFont/setPlatformFillColor
        to graphics context to be able to set consistant state
        on the platform specific painter without having to change
        fill/stroke/font on every operation. This fixes color/stroke/fill
        and font handling in the Qt port.

        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::setFont):
        (WebCore::GraphicsContext::setPen):
        (WebCore::GraphicsContext::setFillColor):
        (WebCore::GraphicsContext::setPlatformPen):
        (WebCore::GraphicsContext::setPlatformFillColor):
        (WebCore::GraphicsContext::setPlatformFont):
        * platform/graphics/GraphicsContext.h:
        * platform/qt/GraphicsContextQt.cpp:
        (WebCore::toQtCompositionMode):
        (WebCore::toQtLineCap):
        (WebCore::toQtLineJoin):
        (WebCore::toQPenStyle):
        (WebCore::penToQPen):
        (WebCore::TransparencyLayer::TransparencyLayer):
        (WebCore::GraphicsContext::addRoundedRectClip):
        (WebCore::GraphicsContext::setPlatformFont):
        (WebCore::GraphicsContext::setPlatformPen):
        (WebCore::GraphicsContext::setPlatformFillColor):
        * platform/qt/ScrollViewCanvasQt.cpp:
        (WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
        (WebCore::ScrollViewCanvasQt::paintEvent):
        (WebCore::ScrollViewCanvasQt::handleKeyEvent):
        * platform/qt/ScrollViewCanvasQt.h:

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

29 files changed:
WebCore/ChangeLog
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/bridge/mac/WebCoreFrameBridge.mm
WebCore/loader/CachedCSSStyleSheet.cpp
WebCore/loader/CachedImage.cpp
WebCore/loader/CachedResource.cpp
WebCore/loader/CachedResource.h
WebCore/loader/LoaderFunctions.h
WebCore/loader/loader.cpp
WebCore/loader/loader.h
WebCore/loader/mac/FormDataStream.h
WebCore/loader/mac/FormDataStream.m
WebCore/loader/mac/ImageDocumentMac.mm
WebCore/loader/mac/LoaderFunctionsMac.mm
WebCore/loader/mac/SubresourceLoaderMac.mm
WebCore/platform/graphics/GraphicsContext.cpp
WebCore/platform/graphics/GraphicsContext.h
WebCore/platform/network/ResourceHandle.h
WebCore/platform/network/ResourceHandleClient.h
WebCore/platform/network/ResourceRequest.h
WebCore/platform/network/ResourceResponse.h
WebCore/platform/network/mac/ResourceHandleMac.mm
WebCore/platform/network/mac/ResourceRequestMac.h [new file with mode: 0644]
WebCore/platform/network/mac/ResourceRequestMac.mm [new file with mode: 0644]
WebCore/platform/qt/GraphicsContextQt.cpp
WebCore/platform/qt/ScrollViewCanvasQt.cpp
WebCore/platform/qt/ScrollViewCanvasQt.h
WebCore/xml/xmlhttprequest.cpp
WebCore/xml/xmlhttprequest.h

index 9863556fb539355c2486a15d41237b41b8e1b042..e67ead672ae04c026de5ed936ea73296ae7c3e44 100644 (file)
@@ -1,3 +1,38 @@
+2006-11-03  Zack Rusin  <zack@kde.org>
+
+        Reviewed by Hyatt. Landed by Maciej.
+
+        Adding setPlatformPen/setPlatformFont/setPlatformFillColor
+        to graphics context to be able to set consistant state
+        on the platform specific painter without having to change
+        fill/stroke/font on every operation. This fixes color/stroke/fill
+        and font handling in the Qt port.
+
+        * platform/graphics/GraphicsContext.cpp:
+        (WebCore::GraphicsContext::setFont):
+        (WebCore::GraphicsContext::setPen):
+        (WebCore::GraphicsContext::setFillColor):
+        (WebCore::GraphicsContext::setPlatformPen):
+        (WebCore::GraphicsContext::setPlatformFillColor):
+        (WebCore::GraphicsContext::setPlatformFont):
+        * platform/graphics/GraphicsContext.h:
+        * platform/qt/GraphicsContextQt.cpp:
+        (WebCore::toQtCompositionMode):
+        (WebCore::toQtLineCap):
+        (WebCore::toQtLineJoin):
+        (WebCore::toQPenStyle):
+        (WebCore::penToQPen):
+        (WebCore::TransparencyLayer::TransparencyLayer):
+        (WebCore::GraphicsContext::addRoundedRectClip):
+        (WebCore::GraphicsContext::setPlatformFont):
+        (WebCore::GraphicsContext::setPlatformPen):
+        (WebCore::GraphicsContext::setPlatformFillColor):
+        * platform/qt/ScrollViewCanvasQt.cpp:
+        (WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
+        (WebCore::ScrollViewCanvasQt::paintEvent):
+        (WebCore::ScrollViewCanvasQt::handleKeyEvent):
+        * platform/qt/ScrollViewCanvasQt.h:
+
 2006-11-02  Adele Peterson  <adele@apple.com>
 
         Reviewed by Anders.
index e399003350f1192d37ee847f36f74978c50daf65..3ee9b20a4f4a8349696d4c613c0c1beeeb899211 100644 (file)
                51F11E150A48C2920034A24E /* SQLTransaction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F11E140A48C2920034A24E /* SQLTransaction.cpp */; };
                550A0BC9085F6039007353D6 /* QualifiedName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 550A0BC7085F6039007353D6 /* QualifiedName.cpp */; };
                550A0BCA085F6039007353D6 /* QualifiedName.h in Headers */ = {isa = PBXBuildFile; fileRef = 550A0BC8085F6039007353D6 /* QualifiedName.h */; settings = {ATTRIBUTES = (Private, ); }; };
+               650E3F690AF6C168001FA3AD /* ResourceRequestMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 650E3F670AF6C168001FA3AD /* ResourceRequestMac.h */; };
+               650E3F6A0AF6C168001FA3AD /* ResourceRequestMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 650E3F680AF6C168001FA3AD /* ResourceRequestMac.mm */; };
                650F53DC09D15DDA00C9B0C8 /* CSSGrammar.h in Headers */ = {isa = PBXBuildFile; fileRef = 650F53DB09D15DDA00C9B0C8 /* CSSGrammar.h */; };
                650F53DD09D15DDF00C9B0C8 /* CSSGrammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6565814409D13043000E61D7 /* CSSGrammar.cpp */; };
                651B4D8509AC83370029F1EF /* DeprecatedStringList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 651B4D8309AC83370029F1EF /* DeprecatedStringList.cpp */; };
                6550B6A6099DF0270090D781 /* Text.h in Headers */ = {isa = PBXBuildFile; fileRef = 6550B69C099DF0270090D781 /* Text.h */; settings = {ATTRIBUTES = (Private, ); }; };
                6552E7AA096AA11B0006F248 /* WebCoreFrameNamespaces.h in Headers */ = {isa = PBXBuildFile; fileRef = 6552E7A8096AA11B0006F248 /* WebCoreFrameNamespaces.h */; settings = {ATTRIBUTES = (Private, ); }; };
                6552E7AB096AA11B0006F248 /* WebCoreFrameNamespaces.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6552E7A9096AA11B0006F248 /* WebCoreFrameNamespaces.mm */; };
-               655A81BE0AEF67E6000975F0 /* HTTPHeaderMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 655A81BD0AEF67E6000975F0 /* HTTPHeaderMap.h */; };
+               655A81BE0AEF67E6000975F0 /* HTTPHeaderMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 655A81BD0AEF67E6000975F0 /* HTTPHeaderMap.h */; settings = {ATTRIBUTES = (Private, ); }; };
                6563A9A70ADF4094000ED2CD /* LoaderNSURLRequestExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = 6563A9A50ADF4094000ED2CD /* LoaderNSURLRequestExtras.h */; };
                6563A9A80ADF4094000ED2CD /* LoaderNSURLRequestExtras.m in Sources */ = {isa = PBXBuildFile; fileRef = 6563A9A60ADF4094000ED2CD /* LoaderNSURLRequestExtras.m */; };
                656580F409D12B20000E61D7 /* CSSPropertyNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 656580EF09D12B20000E61D7 /* CSSPropertyNames.h */; };
                6582A16309999D6D00BEEB6D /* SystemTimeMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6582A15509999D6D00BEEB6D /* SystemTimeMac.cpp */; };
                6582A17809999EA000BEEB6D /* DeprecatedStringMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6582A17709999EA000BEEB6D /* DeprecatedStringMac.mm */; };
                658436860AE01B7400E53753 /* FrameLoadRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 658436850AE01B7400E53753 /* FrameLoadRequest.h */; };
-               658821660AF4CDF700F01D1F /* ResourceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 658821650AF4CDF700F01D1F /* ResourceResponse.h */; };
+               658821660AF4CDF700F01D1F /* ResourceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 658821650AF4CDF700F01D1F /* ResourceResponse.h */; settings = {ATTRIBUTES = (Private, ); }; };
                6588216B0AF4CE1200F01D1F /* ResourceResponseMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 658821680AF4CE1200F01D1F /* ResourceResponseMac.h */; };
                6588216C0AF4CE1200F01D1F /* ResourceResponseMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 658821690AF4CE1200F01D1F /* ResourceResponseMac.mm */; };
                65901A4409FC6039005BD752 /* WebCoreStringTruncator.h in Headers */ = {isa = PBXBuildFile; fileRef = 65901A4209FC6039005BD752 /* WebCoreStringTruncator.h */; settings = {ATTRIBUTES = (Private, ); }; };
                55998A5B052B59CC0017A6C1 /* WebCoreAXObject.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebCoreAXObject.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                55998A5C052B59CC0017A6C1 /* AXObjectCache.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = AXObjectCache.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                55998A5D052B59CC0017A6C1 /* AXObjectCacheMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AXObjectCacheMac.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
+               650E3F670AF6C168001FA3AD /* ResourceRequestMac.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ResourceRequestMac.h; sourceTree = "<group>"; };
+               650E3F680AF6C168001FA3AD /* ResourceRequestMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceRequestMac.mm; sourceTree = "<group>"; };
                650F53DB09D15DDA00C9B0C8 /* CSSGrammar.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CSSGrammar.h; sourceTree = "<group>"; };
                651B4D8309AC83370029F1EF /* DeprecatedStringList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DeprecatedStringList.cpp; sourceTree = "<group>"; };
                651B4D8409AC83370029F1EF /* DeprecatedStringList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DeprecatedStringList.h; sourceTree = "<group>"; };
                        isa = PBXGroup;
                        children = (
                                656B84EA0AEA1DDA00A095B4 /* ResourceHandleMac.mm */,
+                               650E3F670AF6C168001FA3AD /* ResourceRequestMac.h */,
+                               650E3F680AF6C168001FA3AD /* ResourceRequestMac.mm */,
                                658821680AF4CE1200F01D1F /* ResourceResponseMac.h */,
                                658821690AF4CE1200F01D1F /* ResourceResponseMac.mm */,
                        );
                                93E22A730AF5E94C00D48324 /* PageState.h in Headers */,
                                658821660AF4CDF700F01D1F /* ResourceResponse.h in Headers */,
                                6588216B0AF4CE1200F01D1F /* ResourceResponseMac.h in Headers */,
+                               650E3F690AF6C168001FA3AD /* ResourceRequestMac.h in Headers */,
                                93CCF0270AF6C52900018E89 /* NavigationAction.h in Headers */,
                                B2A015A90AF6CD53006BCE0E /* GraphicsContext.h in Headers */,
                                B2A015AB0AF6CD53006BCE0E /* GraphicsTypes.h in Headers */,
                                93E227E30AF589AD00D48324 /* ResourceLoader.cpp in Sources */,
                                93E227E40AF589AD00D48324 /* SubresourceLoader.cpp in Sources */,
                                93E22A6F0AF5E94100D48324 /* PageState.cpp in Sources */,
+                               650E3F6A0AF6C168001FA3AD /* ResourceRequestMac.mm in Sources */,
                                93CCF0580AF6C9FE00018E89 /* NavigationActionMac.mm in Sources */,
                                93CCF0600AF6CA7600018E89 /* NavigationAction.cpp in Sources */,
                                B2A015A80AF6CD53006BCE0E /* GraphicsContext.cpp in Sources */,
index fa3fc5367f4d683b2b02c5d691852c9ac65205a9..c2f4159ad1be7c12bdbe2cfa1283d81bf6373657 100644 (file)
@@ -1763,7 +1763,7 @@ static NSCharacterSet *_getPostSmartSet(void)
         return NO;
 
     *data = resource->allData();
-    *response = resource->response();
+    *response = resource->platformResponse();
     return YES;
 }
 
@@ -1785,7 +1785,7 @@ static NSCharacterSet *_getPostSmartSet(void)
     HashMap<String, CachedResource*>::const_iterator end = allResources.end();
     for (HashMap<String, CachedResource*>::const_iterator it = allResources.begin(); it != end; ++it) {
         [d addObject:it->second->allData()];
-        [r addObject:it->second->response()];
+        [r addObject:it->second->platformResponse()];
     }
 
     *datas = [d autorelease];
index d2472d565b6e027a115657fed20d1795074e3976..82d1d97df8fb9a861ca339b96530e7d83d540481 100644 (file)
@@ -86,12 +86,8 @@ void CachedCSSStyleSheet::checkNotify()
         return;
 
     CachedResourceClientWalker w(m_clients);
-    while (CachedResourceClient *c = w.next()) {
-        if (m_response && !IsResponseURLEqualToURL(m_response, m_url))
-            c->setCSSStyleSheet(ResponseURL(m_response), m_decoder->encoding().name(), m_sheet);
-        else
-            c->setCSSStyleSheet(m_url, m_decoder->encoding().name(), m_sheet);
-    }
+    while (CachedResourceClient *c = w.next())
+        c->setCSSStyleSheet(m_response.url().url(), m_decoder->encoding().name(), m_sheet);
 }
 
 void CachedCSSStyleSheet::error()
index 02d86f07d375afbb50742df000b00653ec304008..c0a950c22df96483b78cf449699db043bba39b3a 100644 (file)
@@ -135,7 +135,7 @@ inline void CachedImage::createImage()
 {
     // Create the image if it doesn't yet exist.
     if (!m_image)
-        m_image = new Image(this, ResponseMIMEType(m_response) == "application/pdf");
+        m_image = new Image(this, m_response.mimeType() == "application/pdf");
 }
 
 Vector<char>& CachedImage::bufferData(const char* bytes, int addedSize, Request* request)
index c9d8534f366a3a492fabf80203dd28930e90de91..15eeae806b364ab1b54ad6b3f6348ee36c40ce0d 100644 (file)
@@ -40,7 +40,7 @@
 
 namespace WebCore {
 
-CachedResource::CachedResource(const String& URL, Type type, CachePolicy cachePolicy, time_t expireDate, unsigned size)
+CachedResource::CachedResource(const String& URL, Type type, CachePolicy cachePolicy, unsigned size)
 {
     m_url = URL;
     m_type = type;
@@ -49,9 +49,8 @@ CachedResource::CachedResource(const String& URL, Type type, CachePolicy cachePo
     m_inCache = false;
     m_cachePolicy = cachePolicy;
     m_request = 0;
-    m_response = 0;
+    m_platformResponse = 0;
     m_allData = 0;
-    m_expireDate = expireDate;
     m_expireDateChanged = false;
     m_accessCount = 0;
     m_nextInLRUList = 0;
@@ -69,7 +68,7 @@ CachedResource::~CachedResource()
 #ifndef NDEBUG
     m_deleted = true;
 #endif
-    setResponse(0);
+    setPlatformResponse(0);
     setAllData(0);
 }
 
@@ -93,25 +92,12 @@ void CachedResource::finish()
         m_expireDateChanged = false;
 }
 
-void CachedResource::setExpireDate(time_t expireDate, bool changeHttpCache)
-{
-    if (expireDate == m_expireDate)
-        return;
-
-    if (m_status == Cached)
-        finish();
-
-    m_expireDate = expireDate;
-    if (changeHttpCache && m_expireDate)
-       m_expireDateChanged = true;
-}
-
 bool CachedResource::isExpired() const
 {
-    if (!m_expireDate)
+    if (!m_response.expirationDate())
         return false;
     time_t now = time(0);
-    return (difftime(now, m_expireDate) >= 0);
+    return (difftime(now, m_response.expirationDate()) >= 0);
 }
 
 void CachedResource::setRequest(Request* request)
index a1e16168f9a13e44661a3bcad5b9e015be581da8..57c19c6a652eebd2ac81e3692a3111e5e37e3880 100644 (file)
@@ -31,6 +31,7 @@
 #include "CachePolicy.h"
 #include "PlatformString.h"
 #include "ResourceHandleClient.h" // defines PlatformResponse and PlatformData
+#include "ResourceResponse.h"
 #include <wtf/HashSet.h>
 #include <wtf/Vector.h>
 #include <time.h>
@@ -77,7 +78,7 @@ public:
         Cached       // regular case
     };
 
-    CachedResource(const String& URL, Type type, CachePolicy cachePolicy, time_t expireDate, unsigned size = 0);
+    CachedResource(const String& URL, Type type, CachePolicy cachePolicy, unsigned size = 0);
     virtual ~CachedResource();
 
     virtual void setEncoding(const String&) { }
@@ -120,14 +121,14 @@ public:
 
     void setRequest(Request*);
 
-    PlatformResponse response() const { return m_response; }
-    void setResponse(PlatformResponse);
+    PlatformResponse platformResponse() const { return m_platformResponse; }
+    void setPlatformResponse(PlatformResponse);
     PlatformData allData() const { return m_allData; }
     void setAllData(PlatformData);
 
-    bool canDelete() const { return !referenced() && !m_request; }
+    void setResponse(const ResourceResponse& response) { m_response = response; }
 
-    void setExpireDate(time_t expireDate, bool changeHttpCache);
+    bool canDelete() const { return !referenced() && !m_request; }
 
     bool isExpired() const;
 
@@ -155,7 +156,8 @@ protected:
     RetainPtr<NSURLRequest> m_nsURLRequest;
 #endif
 
-    PlatformResponse m_response;
+    ResourceResponse m_response;
+    PlatformResponse m_platformResponse;
     PlatformData m_allData;
 
     Type m_type;
@@ -166,7 +168,6 @@ private:
     unsigned m_accessCount;
 
 protected:
-    time_t m_expireDate;
     CachePolicy m_cachePolicy;
     bool m_inCache;
     bool m_loading;
index 369816dc41cc60d381345651d7e8f2aa9899661d..0b78adf93e9a88cb95cc501af0b0d0b0e1332497 100644 (file)
@@ -55,10 +55,5 @@ Vector<char> ServeSynchronousRequest(Loader*, DocLoader*, const ResourceRequest&
 
 void CheckCacheObjectStatus(DocLoader*, CachedResource*);
 bool CheckIfReloading(DocLoader*);
-bool IsResponseURLEqualToURL(PlatformResponse , const String& URL);
-DeprecatedString ResponseURL(PlatformResponse);
-DeprecatedString ResponseMIMEType(PlatformResponse);
-bool ResponseIsMultipart(PlatformResponse);
-NSString* HeaderStringFromDictionary(NSDictionary* headers, int statusCode);
 
 }
index 85c00c4db89cd18cc7c99ad59070bed2e5e1921d..6ab59f6eb80237bac8c7fd8ec1888c2c563d1fde 100644 (file)
@@ -127,14 +127,14 @@ void Loader::receivedResponse(ResourceHandle* handle, PlatformResponse response)
     // FIXME: the win32 platform does not have PlatformResponse yet.
     ASSERT(response);
 #endif
-    req->cachedResource()->setResponse(response);
+    req->cachedResource()->setPlatformResponse(response);
 }
 
-void Loader::didReceivedResponse(ResourceHandle* handle, const ResourceResponse& response)
+void Loader::didReceiveResponse(ResourceHandle* handle, const ResourceResponse& response)
 {
     Request* req = m_requestsLoading.get(handle);
     ASSERT(req);
-    req->cachedResource()->setExpireDate(response.expirationDate(), false);
+    req->cachedResource()->setResponse(response);
     
     String encoding = response.textEncodingName();
     if (!encoding.isNull())
index fbc9b72cea86ff046379e8220f0c0fab4b067220..22ccffd17b2d25b38eae3ecb3ab40abce3e72b5d 100644 (file)
@@ -64,7 +64,7 @@ namespace WebCore {
 
     private:
         virtual void receivedResponse(ResourceHandle*, PlatformResponse);
-        virtual void didReceivedResponse(ResourceHandle* handle, const ResourceResponse& response);
+        virtual void didReceiveResponse(ResourceHandle* handle, const ResourceResponse& response);
         virtual void didReceiveData(ResourceHandle*, const char*, int);
         virtual void receivedAllData(ResourceHandle*, PlatformData);
 
index 75f192d0a2e671b5486b9644fdb3155a1a8128a2..c13edb34c55a967d5d4b51eeb0287e8e9a6baf81 100644 (file)
@@ -31,4 +31,5 @@
 namespace WebCore {
     class FormData;
     void setHTTPBody(NSMutableURLRequest *, const FormData&);
+    const FormData* httpBodyFromStream(NSInputStream* stream);
 }
index b295e0343225938e55dd0b460616ffbb5795969e..97a1a441a2f1b0883f45bfd1d09a349ba57ac7c5 100644 (file)
 #import <sys/stat.h>
 #import <sys/types.h>
 #import <wtf/Assertions.h>
+#import <wtf/HashMap.h>
 
 namespace WebCore {
 
+static HashMap<CFReadStreamRef, const FormData*>* streamFormDatas = 0;
+
+static HashMap<CFReadStreamRef, const FormData*>* getStreamFormDatas()
+{
+    if (!streamFormDatas)
+        streamFormDatas = new HashMap<CFReadStreamRef, const FormData*>();
+    return streamFormDatas;
+}
+
 static void formEventCallback(CFReadStreamRef stream, CFStreamEventType type, void* context);
 
 struct FormStreamFields {
@@ -172,6 +182,8 @@ static void* formCreate(CFReadStreamRef stream, void* context)
     for (size_t i = 0; i < size; ++i)
         newInfo->remainingElements.append(formData->elements()[size - i - 1]);
 
+    getStreamFormDatas()->set(stream, new FormData(*formData));
+
     return newInfo;
 }
 
@@ -179,6 +191,9 @@ static void formFinalize(CFReadStreamRef stream, void* context)
 {
     FormStreamFields* form = static_cast<FormStreamFields*>(context);
 
+    delete getStreamFormDatas()->get(stream);
+    getStreamFormDatas()->remove(stream);
+
     closeCurrentStream(form);
     CFRelease(form->scheduledRunLoopPairs);
     delete form;
@@ -330,4 +345,10 @@ void setHTTPBody(NSMutableURLRequest *request, const FormData& formData)
     CFRelease(stream);
 }
 
+
+const FormData* httpBodyFromStream(NSInputStream* stream)
+{
+    return getStreamFormDatas()->get((CFReadStreamRef)stream);
+}
+
 }
index 657b7b146a165388cbb22ef1f73a234927713436..79f903851a5ca5bde22632cea2877ce9cf79992e 100644 (file)
@@ -45,7 +45,7 @@ void finishImageLoad(Document* document, CachedImage* image, const void* imageDa
 
     Frame* frame = document->frame();
     NSURLResponse *response = frame->loader()->documentLoader()->response();
-    image->setResponse(response);
+    image->setPlatformResponse(response);
 
     IntSize size = image->imageSize();
     if (size.width())
index 78cc3363f57a4c054bce6b61506fc3d916c39e86..5a8090573c6dd87d15231743692941f65521f3f8 100644 (file)
@@ -130,7 +130,7 @@ void CheckCacheObjectStatus(DocLoader *loader, CachedResource *cachedResource)
         return;
     }
     
-    ASSERT(cachedResource->response());
+    ASSERT(cachedResource->platformResponse());
     
     // Notify the caller that we "loaded".
     FrameMac *frame = static_cast<FrameMac *>(loader->frame());
@@ -139,7 +139,7 @@ void CheckCacheObjectStatus(DocLoader *loader, CachedResource *cachedResource)
         return;
         
     NSURLRequest *request = cachedResource->getNSURLRequest();
-    NSURLResponse *response = cachedResource->response();
+    NSURLResponse *response = cachedResource->platformResponse();
     NSData *data = cachedResource->allData();
     
     // FIXME: If the WebKit client changes or cancels the request, WebCore does not respect this and continues the load.
@@ -196,14 +196,14 @@ bool ResponseIsMultipart(PlatformResponse response)
     return false;
 }
 
-void CachedResource::setResponse(PlatformResponse response)
+void CachedResource::setPlatformResponse(PlatformResponse response)
 {
     HardRetain(response);
     BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    HardRelease(m_response);
+    HardRelease(m_platformResponse);
     END_BLOCK_OBJC_EXCEPTIONS;
 
-    m_response = response;
+    m_platformResponse = response;
 }
 
 void CachedResource::setAllData(PlatformData allData)
index 83ab9690e52d2d91af2e26dded7d233fb1cc98e0..8b9056ff249db52ec0a076489749aeb369ea5b1b 100644 (file)
@@ -109,7 +109,7 @@ NSURLRequest *SubresourceLoader::willSendRequest(NSURLRequest *newRequest, NSURL
     NSURL *oldURL = [request() URL];
     NSURLRequest *clientRequest = ResourceLoader::willSendRequest(newRequest, redirectResponse);
     if (clientRequest && oldURL != [clientRequest URL] && ![oldURL isEqual:[clientRequest URL]])
-        m_handle->redirectedToURL([clientRequest URL]);
+        clientRequest = m_handle->willSendRequest(clientRequest, redirectResponse);
     return clientRequest;
 }
 
index c65a42218f449b1024fc076ef1cc085bb81703fc..71f601b3a6d7bd581fa52750588af809827b73b6 100644 (file)
@@ -103,6 +103,7 @@ const Font& GraphicsContext::font() const
 void GraphicsContext::setFont(const Font& aFont)
 {
     m_common->state.font = aFont;
+    setPlatformFont(aFont);
 }
 
 const Pen& GraphicsContext::pen() const
@@ -113,6 +114,7 @@ const Pen& GraphicsContext::pen() const
 void GraphicsContext::setPen(const Pen& pen)
 {
     m_common->state.pen = pen;
+    setPlatformPen(pen);
 }
 
 void GraphicsContext::setPen(Pen::PenStyle style)
@@ -120,6 +122,7 @@ void GraphicsContext::setPen(Pen::PenStyle style)
     m_common->state.pen.setStyle(style);
     m_common->state.pen.setColor(Color::black);
     m_common->state.pen.setWidth(0);
+    setPlatformPen(m_common->state.pen);
 }
 
 void GraphicsContext::setPen(RGBA32 rgb)
@@ -127,11 +130,13 @@ void GraphicsContext::setPen(RGBA32 rgb)
     m_common->state.pen.setStyle(Pen::SolidLine);
     m_common->state.pen.setColor(rgb);
     m_common->state.pen.setWidth(0);
+    setPlatformPen(m_common->state.pen);
 }
 
 void GraphicsContext::setFillColor(const Color& color)
 {
     m_common->state.fillColor = color;
+    setPlatformFillColor(color);
 }
 
 Color GraphicsContext::fillColor() const
@@ -293,4 +298,18 @@ void GraphicsContext::drawTiledImage(Image* image, const IntRect& dest, const In
     image->drawTiled(this, dest, srcRect, hRule, vRule, op);
 }
 
+#if !PLATFORM(QT)
+void GraphicsContext::setPlatformPen(const Pen&)
+{
+}
+
+void GraphicsContext::setPlatformFillColor(const Color&)
+{
+}
+
+void GraphicsContext::setPlatformFont(const Font&)
+{
+}
+#endif
+
 }
index faeeaab4d2adacbff55b516ee40de65998b7b606..154bf4a3fadc1277075237180fc734950a5b1e99 100644 (file)
@@ -181,6 +181,9 @@ namespace WebCore {
     private:
         void savePlatformState();
         void restorePlatformState();
+        void setPlatformPen(const Pen& pen);
+        void setPlatformFillColor(const Color& fill);
+        void setPlatformFont(const Font& font);
 
         int focusRingWidth() const;
         int focusRingOffset() const;
index ac81944c411edf25d365adc48bfb90e55b217f6f..17dab15ea9818d474940b1d7d1180901d53d2154 100644 (file)
@@ -48,8 +48,12 @@ typedef LONG_PTR LRESULT;
 #if PLATFORM(MAC)
 #ifdef __OBJC__
 @class WebCoreResourceLoaderImp;
+@class NSURLRequest;
+@class NSURLResponse;
 #else
 class WebCoreResourceLoaderImp;
+class NSURLRequest;
+class NSURLResponse;
 #endif
 #endif
 
@@ -78,7 +82,7 @@ public:
     void kill();
 
 #if PLATFORM(MAC)
-    void redirectedToURL(NSURL *url);
+    NSURLRequest *willSendRequest(NSURLRequest *, NSURLResponse *);
     void addData(NSData *data);
     void finishJobAndHandle(NSData *data);
     void reportError();
index 76465d2067e38bdac4bfad64ea8f5e952e956445..e3353371b6736d54fe8c6320199fc47990a694d4 100644 (file)
@@ -74,6 +74,7 @@ namespace WebCore {
 
     class KURL;
     class ResourceHandle;
+    class ResourceRequest;
     class ResourceResponse;
 
     class ResourceHandleClient {
@@ -81,7 +82,7 @@ namespace WebCore {
         virtual ~ResourceHandleClient() { }
 
         // request may be modified
-        // void willSendRequest(ResourceHandle*, Request&, const ResourceResonse& redirectResponse) { }
+        virtual void willSendRequest(ResourceHandle*, ResourceRequest&, const ResourceResponse& redirectResponse) { }
     
         // void didReceiveAuthenticationChallenge(ResourceHandle*, const AuthenticationChallenge&) { }
         // void didCancelAuthenticationChallenge(ResourceHandle*, const AuthenticationChallenge&) { }
@@ -95,7 +96,6 @@ namespace WebCore {
         // void willCacheResponse(ResourceHandle*, CachedResourceResponse&) { }
 
         // old-style methods
-        virtual void receivedRedirect(ResourceHandle*, const KURL&) { }
         virtual void receivedResponse(ResourceHandle*, PlatformResponse) { }
         virtual void receivedAllData(ResourceHandle*, PlatformData) { }
     };
index d240b656c4b0fa074b47a95f7dc6c56d59dcd716..837d3fbb4b712cd441637b855a605e1572285019 100644 (file)
@@ -117,8 +117,8 @@ namespace WebCore {
         FormData& httpBody() { return m_httpBody; }
         void setHTTPBody(const FormData& httpBody) { m_httpBody = httpBody; } 
         
-        bool allowHTTPCookies() const;
-        void setAllowHTTPCookies(bool);
+        bool allowHTTPCookies() const { return m_allowHTTPCookies; }
+        void setAllowHTTPCookies(bool allowHTTPCookies) { m_allowHTTPCookies = allowHTTPCookies; }
 
     private:
         static const int defaultTimeoutInterval = 60;
index 693126952c27140dad9299ee95650f2848578e86..5b5c63aa5b3bd0db2527a0412c97e1193cda997e 100644 (file)
@@ -35,7 +35,12 @@ namespace WebCore {
 class ResourceResponse {
 public:
 
-    ResourceResponse() : m_expectedContentLength(0), m_httpStatusCode(0) {}
+    ResourceResponse() 
+        : m_expectedContentLength(0)
+        , m_httpStatusCode(0)
+        , m_expirationDate(0) 
+    {
+    }
 
     ResourceResponse(const KURL& url, const String& mimeType, long long expectedLength, const String& textEncodingName, const String& filename)
         : m_url(url)
@@ -44,6 +49,7 @@ public:
         , m_textEncodingName(textEncodingName)
         , m_suggestedFilename(filename)
         , m_httpStatusCode(0)
+        , m_expirationDate(0)
     {
     }
  
@@ -63,9 +69,6 @@ public:
     const HTTPHeaderMap& httpHeaderFields() const { return m_httpHeaderFields; }
     HTTPHeaderMap& httpHeaderFields() { return m_httpHeaderFields; }
 
-    // possibly add calculated expiration info
-    // lastModifiedDate (date)
-
     bool isMultipart() const { return m_mimeType == "multipart/x-mixed-replace"; }
 
     void setExpirationDate(time_t expirationDate) { m_expirationDate = expirationDate; }
index 38cbd29dbcec32994bbbe14f8cc1c261d64810ff..a9926960f096f182501a200981ec4fc8223efd16 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2004, 2006 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -34,6 +34,7 @@
 #import "KURL.h"
 #import "LoaderFunctions.h"
 #import "Logging.h"
+#import "ResourceRequestMac.h"
 #import "ResourceResponse.h"
 #import "ResourceResponseMac.h"
 #import "WebCoreFrameBridge.h"
@@ -104,11 +105,19 @@ void ResourceHandle::cancel()
     d->m_subresourceLoader->cancel();
 }
 
-void ResourceHandle::redirectedToURL(NSURL *url)
+NSURLRequest *ResourceHandle::willSendRequest(NSURLRequest *nsRequest, NSURLResponse* nsRedirectResponse)
 {
-    ASSERT(url);
-    if (ResourceHandleClient* c = client())
-        c->receivedRedirect(this, KURL(url));
+    ASSERT(nsRequest);
+    if (ResourceHandleClient* c = client()) {
+        ResourceRequest request;
+        getResourceRequest(request, nsRequest);
+        ResourceResponse redirectResponse;
+        getResourceResponse(redirectResponse, nsRedirectResponse);
+        c->willSendRequest(this, request, redirectResponse);
+        return nsURLRequest(request);
+    }
+
+    return nsRequest;
 }
 
 void ResourceHandle::addData(NSData *data)
diff --git a/WebCore/platform/network/mac/ResourceRequestMac.h b/WebCore/platform/network/mac/ResourceRequestMac.h
new file mode 100644 (file)
index 0000000..fe3a09c
--- /dev/null
@@ -0,0 +1,41 @@
+// -*- mode: c++; c-basic-offset: 4 -*-
+/*
+ * Copyright (C) 2006 Apple Computer, 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:
+ * 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 APPLE COMPUTER, INC. ``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 COMPUTER, INC. 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 ResourceRequestMac_h_
+#define ResourceRequestMac_h_
+
+@class NSURLRequest;
+
+namespace WebCore {
+
+    class ResourceRequest;
+
+    void getResourceRequest(ResourceRequest&, NSURLRequest *);
+    NSURLRequest *nsURLRequest(const ResourceRequest&);
+
+}
+
+#endif // ResourceRequestMac_h_
diff --git a/WebCore/platform/network/mac/ResourceRequestMac.mm b/WebCore/platform/network/mac/ResourceRequestMac.mm
new file mode 100644 (file)
index 0000000..be95385
--- /dev/null
@@ -0,0 +1,83 @@
+// -*- mode: c++; c-basic-offset: 4 -*-
+/*
+ * Copyright (C) 2006 Apple Computer, 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:
+ * 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 APPLE COMPUTER, INC. ``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 COMPUTER, INC. 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. 
+ */
+
+#import "config.h"
+#import "ResourceRequestMac.h"
+
+#import "FormDataStream.h"
+#import "ResourceRequest.h"
+
+#import <Foundation/Foundation.h>
+
+namespace WebCore {
+    
+    void getResourceRequest(ResourceRequest& request, NSURLRequest* nsRequest)
+    {
+        request = ResourceRequest([nsRequest URL]);
+
+        request.setCachePolicy((ResourceRequestCachePolicy)[nsRequest cachePolicy]);
+        request.setTimeoutInterval([nsRequest timeoutInterval]);
+        request.setMainDocumentURL(KURL([nsRequest mainDocumentURL]));
+        if (NSString* method = [nsRequest HTTPMethod])
+            request.setHTTPMethod(method);
+        request.setAllowHTTPCookies([nsRequest HTTPShouldHandleCookies]);
+
+        NSDictionary *headers = [nsRequest allHTTPHeaderFields];
+        NSEnumerator *e = [headers keyEnumerator];
+        NSString *name;
+        while ((name = [e nextObject]))
+            request.setHTTPHeaderField(name, [headers objectForKey:name]);
+
+        if (NSData* bodyData = [nsRequest HTTPBody])
+            request.setHTTPBody(FormData([bodyData bytes], [bodyData length]));
+        else if (NSInputStream* bodyStream = [nsRequest HTTPBodyStream])
+            if (const FormData* formData = httpBodyFromStream(bodyStream))
+                request.setHTTPBody(*formData);
+        // FIXME: what to do about arbitrary body streams?
+    }
+
+    NSURLRequest* nsURLRequest(const ResourceRequest& request)
+    {
+        NSMutableURLRequest* nsRequest = [[NSMutableURLRequest alloc] initWithURL:request.url().getNSURL()];
+
+        [nsRequest setCachePolicy:(NSURLRequestCachePolicy)request.cachePolicy()];
+        [nsRequest setTimeoutInterval:request.timeoutInterval()];
+        [nsRequest setMainDocumentURL:request.mainDocumentURL().getNSURL()];
+        if (!request.httpMethod().isEmpty())
+            [nsRequest setHTTPMethod:request.httpMethod()];
+        [nsRequest setHTTPShouldHandleCookies:request.allowHTTPCookies()];
+
+        HTTPHeaderMap::const_iterator end = request.httpHeaderFields().end();
+        for (HTTPHeaderMap::const_iterator it = request.httpHeaderFields().begin(); it != end; ++it)
+            [nsRequest setValue:it->second forHTTPHeaderField:it->first];
+
+        if (!request.httpBody().isEmpty())
+            setHTTPBody(nsRequest, request.httpBody());
+
+        return [nsRequest autorelease];
+    }
+
+}
index 22a91918bf80578f479f0a229290910fce40e4e3..66dd4886f33eb9590d3ad7acffd7e2ed8f55d953 100644 (file)
@@ -36,6 +36,8 @@
 #include "Path.h"
 #include "Color.h"
 #include "GraphicsContext.h"
+#include "Font.h"
+#include "Pen.h"
 
 #include <QStack>
 #include <QPainter>
@@ -55,7 +57,7 @@
 
 namespace WebCore {
 
-static QPainter::CompositionMode toQtCompositionMode(CompositeOperator op)
+static inline QPainter::CompositionMode toQtCompositionMode(CompositeOperator op)
 {
     switch (op) {
         case CompositeClear:
@@ -91,7 +93,7 @@ static QPainter::CompositionMode toQtCompositionMode(CompositeOperator op)
     return QPainter::CompositionMode_SourceOver;
 }
 
-static Qt::PenCapStyle toQtLineCap(LineCap lc)
+static inline Qt::PenCapStyle toQtLineCap(LineCap lc)
 {
     switch (lc) {
         case ButtCap:
@@ -105,7 +107,7 @@ static Qt::PenCapStyle toQtLineCap(LineCap lc)
     return Qt::FlatCap;
 }
 
-static Qt::PenJoinStyle toQtLineJoin(LineJoin lj)
+static inline Qt::PenJoinStyle toQtLineJoin(LineJoin lj)
 {
     switch (lj) {
         case MiterJoin:
@@ -119,6 +121,31 @@ static Qt::PenJoinStyle toQtLineJoin(LineJoin lj)
     return Qt::MiterJoin;
 }
 
+static Qt::PenStyle toQPenStyle(Pen::PenStyle style)
+{
+    switch (style) {
+    case Pen::NoPen:
+        return Qt::NoPen;
+        break;
+    case Pen::SolidLine:
+        return Qt::SolidLine;
+        break;
+    case Pen::DotLine:
+        return Qt::DotLine;
+        break;
+    case Pen::DashLine:
+        return Qt::DashLine;
+        break;
+    }
+    qWarning("couldn't recognize the pen style");
+    return Qt::NoPen;
+}
+
+static inline QPen penToQPen(const Pen& pen)
+{
+    return QPen(QColor(pen.color()), pen.width(), toQPenStyle(pen.style()));
+}
+
 struct TransparencyLayer
 {
     TransparencyLayer(const QPainter& p, int width, int height)
@@ -129,6 +156,10 @@ struct TransparencyLayer
         painter->setPen(p.pen());
         painter->setBrush(p.brush());
         painter->setMatrix(p.matrix());
+        painter->setOpacity(p.opacity());
+        painter->setFont(p.font());
+        painter->setCompositionMode(p.compositionMode());
+        painter->setClipPath(p.clipPath());
     }
 
     TransparencyLayer()
@@ -664,7 +695,7 @@ IntPoint GraphicsContext::origin()
     return IntPoint(qRound(m_data->p().matrix().dx()),
                     qRound(m_data->p().matrix().dy()));
 }
+
 void GraphicsContext::rotate(float radians)
 {
     if (paintingDisabled())
@@ -739,10 +770,10 @@ void GraphicsContext::addRoundedRectClip(const IntRect& rect, const IntSize& top
 
     int topLeftRightHeightMax = qMax(topLeft.height(), topRight.height());
     int bottomLeftRightHeightMax = qMax(bottomLeft.height(), bottomRight.height());
-    
-    int topBottomLeftWidthMax = qMax(topLeft.width(), bottomLeft.width());  
+
+    int topBottomLeftWidthMax = qMax(topLeft.width(), bottomLeft.width());
     int topBottomRightWidthMax = qMax(topRight.width(), bottomRight.width());
-    
+
     // Now add five rects (one for each edge rect in between the rounded corners and one for the interior).
     path.addRect(QRectF(rect.x() + topLeft.width(),
                         rect.y(),
@@ -756,12 +787,12 @@ void GraphicsContext::addRoundedRectClip(const IntRect& rect, const IntSize& top
                         rect.y() + topLeft.height(),
                         topBottomLeftWidthMax,
                         rect.height() - topLeft.height() - bottomLeft.height()));
-    
+
     path.addRect(QRectF(rect.right() - topBottomRightWidthMax,
                         rect.y() + topRight.height(),
                         topBottomRightWidthMax,
                         rect.height() - topRight.height() - bottomRight.height()));
-    
+
     path.addRect(QRectF(rect.x() + topBottomLeftWidthMax,
                         rect.y() + topLeftRightHeightMax,
                         rect.width() - topBottomLeftWidthMax - topBottomRightWidthMax,
@@ -784,6 +815,21 @@ void GraphicsContext::setURLForRect(const KURL& link, const IntRect& destRect)
     notImplemented();
 }
 
+void GraphicsContext::setPlatformFont(const Font& aFont)
+{
+    m_data->p().setFont(aFont);
+}
+
+void GraphicsContext::setPlatformPen(const Pen& pen)
+{
+    m_data->p().setPen(penToQPen(pen));
+}
+
+void GraphicsContext::setPlatformFillColor(const Color& color)
+{
+    m_data->p().setBrush(QBrush(color));
+}
+
 #ifdef SVG_SUPPORT
 KRenderingDeviceContext* GraphicsContext::createRenderingDeviceContext()
 {
index 01c74712358415ec3e3068d318668db189d4a0a2..86fb36fabd7b63c052dd4d52b725810517292a2e 100644 (file)
 #include <QPaintEvent>
 #include <QMouseEvent>
 
+
 namespace WebCore {
 
 ScrollViewCanvasQt::ScrollViewCanvasQt(ScrollView* frameView, QWidget* parent)
-    : QWidget(parent)
-    , m_frameView(frameView)
+    : QWidget(parent),
+      m_frameView(frameView)
 {
     setMouseTracking(true);
     setFocusPolicy(Qt::StrongFocus);
@@ -154,7 +155,7 @@ void ScrollViewCanvasQt::handleKeyEvent(QKeyEvent* ev, bool isKeyUp)
 
             handled = true;
         }
-        
+
         // FIXME: doScroll stuff()!
     }
 }
index e877210c9bb8c54f314a3bdf64c660d97e0d6c96..e1b97cb1c29acd1be74e0acd5009726bb1306a9c 100644 (file)
@@ -41,8 +41,9 @@ namespace WebCore {
 
 class ScrollView;
 
-class ScrollViewCanvasQt : public QWidget {
-Q_OBJECT
+class ScrollViewCanvasQt : public QWidget
+{
+    Q_OBJECT
 public:
     ScrollViewCanvasQt(ScrollView*, QWidget* parent = 0);
 
index 50d9b610d41cad3a1522df6ca7cfe17f1f0ce842..44bf7bafd93692f338b3670a95750d6fd75ee630 100644 (file)
@@ -507,9 +507,9 @@ void XMLHttpRequest::didFinishLoading(ResourceHandle* loader)
     }
 }
 
-void XMLHttpRequest::receivedRedirect(ResourceHandle*, const KURL& m_url)
+void XMLHttpRequest::willSendRequest(ResourceHandle*, ResourceRequest& request, const ResourceResponse& redirectResponse)
 {
-    if (!urlMatchesDocumentDomain(m_url))
+    if (!urlMatchesDocumentDomain(request.url()))
         abort();
 }
 
index adef105711878002c2b393e33fce0451c96fcd57..f2f17b740ed39b5436c9c5d7f6cbb600179423f4 100644 (file)
@@ -82,7 +82,7 @@ public:
 private:
     bool urlMatchesDocumentDomain(const KURL&) const;
 
-    virtual void receivedRedirect(ResourceHandle*, const KURL&);
+    virtual void willSendRequest(ResourceHandle*, ResourceRequest& request, const ResourceResponse& redirectResponse);
     virtual void didReceiveResponse(ResourceHandle*, const ResourceResponse&);
     virtual void didReceiveData(ResourceHandle*, const char* data, int size);
     virtual void didFinishLoading(ResourceHandle*);