[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da

darin at apple.com darin at apple.com
Wed Dec 22 17:49:53 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 81325ed32090eb1a71324f9e1e29a0d385ac76ac
Author: darin at apple.com <darin at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Dec 1 01:27:45 2010 +0000

    2010-11-30  Darin Adler  <darin at apple.com>
    
            Reviewed by Alexey Proskuryakov.
    
            Make ProgressEvent 64-bit instead of 32-bit
            https://bugs.webkit.org/show_bug.cgi?id=50289
    
            * dom/ProgressEvent.cpp:
            (WebCore::ProgressEvent::ProgressEvent): Changed arguments to unsigned long long.
            (WebCore::ProgressEvent::initProgressEvent): Ditto.
    
            * dom/ProgressEvent.h: Fixed formatting. Changed types to unsigned long long.
            Made isProgressEvent override private.
    
            * dom/ProgressEvent.idl: Tweaked formatting and changed types to unsigned long long.
    
            * fileapi/FileReader.cpp: Removed unneeded includes.
            Used static on const so we'd get an error if the same constant was in a header.
            (WebCore::FileReader::didReceiveData): Removed unneeded WTF prefix.
            (WebCore::FileReader::fireEvent): Got rid of local variables that would narrow
            bytes loaded and total bytes to 32-bit.
    
            * fileapi/FileReaderLoader.cpp:
            (WebCore::FileReaderLoader::didReceiveResponse): Restructured code a bit and
            added comments. Also added handling for when ArrayBuffer::create returns 0.
            (WebCore::FileReaderLoader::didReceiveData): Fixed handling of case where more
            data arrives than is expected so it won't overrun the buffer. Also broke an
            assertion into two and improved a comment.
    
            * fileapi/FileReaderLoader.h: Changed bytesLoaded and totalBytes to unsigned long long.
    
            * fileapi/FileWriter.cpp:
            (WebCore::FileWriter::fireEvent): Removed narrowing casts in call to
            ProgressEvent::create.
    
            * html/canvas/ArrayBuffer.cpp:
            (WebCore::ArrayBuffer::tryAllocate): Added a comment because the code here seems wrong.
    
            * xml/XMLHttpRequest.cpp:
            (WebCore::XMLHttpRequest::didSendData): Removed narrowing casts in call to
            XMLHttpRequestProgressEvent::create.
            (WebCore::XMLHttpRequest::didReceiveData): Removed narrowing casts in call to
            dispatchProgressEvent.
    
            * xml/XMLHttpRequestProgressEvent.h: Fixed formatting. Changed types to unsigned long long.
            Made isXMLHttpRequestProgressEvent override private.
    
            * xml/XMLHttpRequestProgressEvent.idl: Tweaked formatting and changed types to unsigned long long.
    
            * xml/XMLHttpRequestProgressEventThrottle.cpp:
            (WebCore::XMLHttpRequestProgressEventThrottle::dispatchProgressEvent): Changed types to
            unsigned long long.
    
            * xml/XMLHttpRequestProgressEventThrottle.h: Changed types to unsigned long long.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@72985 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index ef91384..b1d4fe7 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,58 @@
+2010-11-30  Darin Adler  <darin at apple.com>
+
+        Reviewed by Alexey Proskuryakov.
+
+        Make ProgressEvent 64-bit instead of 32-bit
+        https://bugs.webkit.org/show_bug.cgi?id=50289
+
+        * dom/ProgressEvent.cpp:
+        (WebCore::ProgressEvent::ProgressEvent): Changed arguments to unsigned long long.
+        (WebCore::ProgressEvent::initProgressEvent): Ditto.
+
+        * dom/ProgressEvent.h: Fixed formatting. Changed types to unsigned long long.
+        Made isProgressEvent override private.
+
+        * dom/ProgressEvent.idl: Tweaked formatting and changed types to unsigned long long.
+
+        * fileapi/FileReader.cpp: Removed unneeded includes.
+        Used static on const so we'd get an error if the same constant was in a header.
+        (WebCore::FileReader::didReceiveData): Removed unneeded WTF prefix.
+        (WebCore::FileReader::fireEvent): Got rid of local variables that would narrow
+        bytes loaded and total bytes to 32-bit.
+
+        * fileapi/FileReaderLoader.cpp:
+        (WebCore::FileReaderLoader::didReceiveResponse): Restructured code a bit and
+        added comments. Also added handling for when ArrayBuffer::create returns 0.
+        (WebCore::FileReaderLoader::didReceiveData): Fixed handling of case where more
+        data arrives than is expected so it won't overrun the buffer. Also broke an
+        assertion into two and improved a comment.
+
+        * fileapi/FileReaderLoader.h: Changed bytesLoaded and totalBytes to unsigned long long.
+
+        * fileapi/FileWriter.cpp:
+        (WebCore::FileWriter::fireEvent): Removed narrowing casts in call to
+        ProgressEvent::create.
+
+        * html/canvas/ArrayBuffer.cpp:
+        (WebCore::ArrayBuffer::tryAllocate): Added a comment because the code here seems wrong.
+
+        * xml/XMLHttpRequest.cpp:
+        (WebCore::XMLHttpRequest::didSendData): Removed narrowing casts in call to
+        XMLHttpRequestProgressEvent::create.
+        (WebCore::XMLHttpRequest::didReceiveData): Removed narrowing casts in call to
+        dispatchProgressEvent.
+
+        * xml/XMLHttpRequestProgressEvent.h: Fixed formatting. Changed types to unsigned long long.
+        Made isXMLHttpRequestProgressEvent override private.
+
+        * xml/XMLHttpRequestProgressEvent.idl: Tweaked formatting and changed types to unsigned long long.
+
+        * xml/XMLHttpRequestProgressEventThrottle.cpp:
+        (WebCore::XMLHttpRequestProgressEventThrottle::dispatchProgressEvent): Changed types to
+        unsigned long long.
+
+        * xml/XMLHttpRequestProgressEventThrottle.h: Changed types to unsigned long long.
+
 2010-11-30  Yael Aharon  <yael.aharon at nokia.com>
 
         Reviewed by Darin Adler.
diff --git a/WebCore/dom/ProgressEvent.cpp b/WebCore/dom/ProgressEvent.cpp
index 99de500..c85eeff 100644
--- a/WebCore/dom/ProgressEvent.cpp
+++ b/WebCore/dom/ProgressEvent.cpp
@@ -35,7 +35,7 @@ ProgressEvent::ProgressEvent()
 {
 }
 
-ProgressEvent::ProgressEvent(const AtomicString& type, bool lengthComputable, unsigned loaded, unsigned total)
+ProgressEvent::ProgressEvent(const AtomicString& type, bool lengthComputable, unsigned long long loaded, unsigned long long total)
     : Event(type, false, true)
     , m_lengthComputable(lengthComputable)
     , m_loaded(loaded)
@@ -43,12 +43,8 @@ ProgressEvent::ProgressEvent(const AtomicString& type, bool lengthComputable, un
 {
 }
     
-void ProgressEvent::initProgressEvent(const AtomicString& typeArg, 
-                                      bool canBubbleArg,
-                                      bool cancelableArg,
-                                      bool lengthComputableArg,
-                                      unsigned loadedArg,
-                                      unsigned totalArg)
+void ProgressEvent::initProgressEvent(const AtomicString& typeArg, bool canBubbleArg, bool cancelableArg,
+    bool lengthComputableArg, unsigned long long loadedArg, unsigned long long totalArg)
 {    
     if (dispatched())
         return;
diff --git a/WebCore/dom/ProgressEvent.h b/WebCore/dom/ProgressEvent.h
index e30cb1b..3e295c6 100644
--- a/WebCore/dom/ProgressEvent.h
+++ b/WebCore/dom/ProgressEvent.h
@@ -30,40 +30,35 @@
 
 namespace WebCore {
     
-    class ProgressEvent : public Event {
-    public:
-        static PassRefPtr<ProgressEvent> create()
-        {
-            return adoptRef(new ProgressEvent);
-        }
-        static PassRefPtr<ProgressEvent> create(const AtomicString& type, bool lengthComputable, unsigned loaded, unsigned total)
-        {
-            return adoptRef(new ProgressEvent(type, lengthComputable, loaded, total));
-        }
+class ProgressEvent : public Event {
+public:
+    static PassRefPtr<ProgressEvent> create()
+    {
+        return adoptRef(new ProgressEvent);
+    }
+    static PassRefPtr<ProgressEvent> create(const AtomicString& type, bool lengthComputable, unsigned long long loaded, unsigned long long total)
+    {
+        return adoptRef(new ProgressEvent(type, lengthComputable, loaded, total));
+    }
 
-        void initProgressEvent(const AtomicString& typeArg, 
-                               bool canBubbleArg,
-                               bool cancelableArg,
-                               bool lengthComputableArg,
-                               unsigned loadedArg,
-                               unsigned totalArg);
-        
-        bool lengthComputable() const { return m_lengthComputable; }
-        unsigned loaded() const { return m_loaded; }
-        unsigned total() const { return m_total; }
-        
-        virtual bool isProgressEvent() const { return true; }
-        
-    protected:
-        ProgressEvent();
-        ProgressEvent(const AtomicString& type, bool lengthComputable, unsigned loaded, unsigned total);
+    void initProgressEvent(const AtomicString& typeArg, bool canBubbleArg, bool cancelableArg,
+        bool lengthComputableArg, unsigned long long loadedArg, unsigned long long totalArg);
 
-    private:
-        bool m_lengthComputable;
-        unsigned m_loaded;
-        unsigned m_total;
-    };
+    bool lengthComputable() const { return m_lengthComputable; }
+    unsigned long long loaded() const { return m_loaded; }
+    unsigned long long total() const { return m_total; }
+
+protected:
+    ProgressEvent();
+    ProgressEvent(const AtomicString& type, bool lengthComputable, unsigned long long loaded, unsigned long long total);
+
+private:
+    virtual bool isProgressEvent() const { return true; }
+    
+    bool m_lengthComputable;
+    unsigned long long m_loaded;
+    unsigned long long m_total;
+};
 }
 
 #endif // ProgressEvent_h
-
diff --git a/WebCore/dom/ProgressEvent.idl b/WebCore/dom/ProgressEvent.idl
index afdf3a2..e832def 100644
--- a/WebCore/dom/ProgressEvent.idl
+++ b/WebCore/dom/ProgressEvent.idl
@@ -26,15 +26,12 @@
 module events {
 
     interface ProgressEvent : Event {
-         readonly attribute boolean         lengthComputable;
-         readonly attribute unsigned long   loaded;
-         readonly attribute unsigned long   total;
-         void               initProgressEvent(in DOMString typeArg,
-                                              in boolean       canBubbleArg,
-                                              in boolean       cancelableArg,
-                                              in boolean       lengthComputableArg,
-                                              in unsigned long loadedArg,
-                                              in unsigned long totalArg);
+        readonly attribute boolean lengthComputable;
+        readonly attribute unsigned long long loaded;
+        readonly attribute unsigned long long total;
+
+        void initProgressEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg,
+            in boolean lengthComputableArg, in unsigned long long loadedArg, in unsigned long long totalArg);
     };
 
 }
diff --git a/WebCore/fileapi/FileReader.cpp b/WebCore/fileapi/FileReader.cpp
index a54a337..9ee3b01 100644
--- a/WebCore/fileapi/FileReader.cpp
+++ b/WebCore/fileapi/FileReader.cpp
@@ -35,20 +35,16 @@
 #include "FileReader.h"
 
 #include "ArrayBuffer.h"
-#include "Blob.h"
 #include "CrossThreadTask.h"
 #include "File.h"
 #include "Logging.h"
 #include "ProgressEvent.h"
 #include "ScriptExecutionContext.h"
 #include <wtf/CurrentTime.h>
-#include <wtf/OwnPtr.h>
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefPtr.h>
 
 namespace WebCore {
 
-const double progressNotificationIntervalMS = 50;
+static const double progressNotificationIntervalMS = 50;
 
 FileReader::FileReader(ScriptExecutionContext* context)
     : ActiveDOMObject(context, this)
@@ -195,7 +191,7 @@ void FileReader::didStartLoading()
 void FileReader::didReceiveData()
 {
     // Fire the progress event at least every 50ms.
-    double now = WTF::currentTimeMS();
+    double now = currentTimeMS();
     if (!m_lastProgressNotificationTimeMS)
         m_lastProgressNotificationTimeMS = now;
     else if (now - m_lastProgressNotificationTimeMS > progressNotificationIntervalMS) {
@@ -227,10 +223,7 @@ void FileReader::didFail(int errorCode)
 
 void FileReader::fireEvent(const AtomicString& type)
 {
-    // FIXME: the current ProgressEvent uses "unsigned long" for total and loaded attributes. Need to talk with the spec writer to resolve the issue.
-    unsigned bytesLoaded = m_loader ? m_loader->bytesLoaded() : 0;
-    unsigned totalBytes = m_loader ? m_loader->totalBytes() : 0;
-    dispatchEvent(ProgressEvent::create(type, true, bytesLoaded, totalBytes));
+    dispatchEvent(ProgressEvent::create(type, true, m_loader ? m_loader->bytesLoaded() : 0, m_loader ? m_loader->totalBytes() : 0));
 }
 
 FileReader::ReadyState FileReader::readyState() const
diff --git a/WebCore/fileapi/FileReaderLoader.cpp b/WebCore/fileapi/FileReaderLoader.cpp
index dcd5860..d7e1097 100644
--- a/WebCore/fileapi/FileReaderLoader.cpp
+++ b/WebCore/fileapi/FileReaderLoader.cpp
@@ -50,6 +50,8 @@
 #include <wtf/Vector.h>
 #include <wtf/text/StringBuilder.h>
 
+using namespace std;
+
 namespace WebCore {
 
 FileReaderLoader::FileReaderLoader(ReadType readType, FileReaderLoaderClient* client)
@@ -124,15 +126,25 @@ void FileReaderLoader::didReceiveResponse(const ResourceResponse& response)
         return;
     }
 
+    unsigned long long length = response.expectedContentLength();
+
+    // Check that we can cast to unsigned since we have to do
+    // so to call ArrayBuffer's create function.
     // FIXME: Support reading more than the current size limit of ArrayBuffer.
-    if (static_cast<unsigned long long>(response.expectedContentLength()) >  std::numeric_limits<unsigned>::max()) {
+    if (length > numeric_limits<unsigned>::max()) {
         failed(FileError::NOT_READABLE_ERR);
         return;
     }
-    m_totalBytes = static_cast<unsigned>(response.expectedContentLength());
 
     ASSERT(!m_rawData);
-    m_rawData = ArrayBuffer::create(static_cast<unsigned>(m_totalBytes), 1);
+    m_rawData = ArrayBuffer::create(static_cast<unsigned>(length), 1);
+
+    if (!m_rawData) {
+        failed(FileError::NOT_READABLE_ERR);
+        return;
+    }
+
+    m_totalBytes = length;
 
     if (m_client)
         m_client->didStartLoading();
@@ -140,14 +152,23 @@ void FileReaderLoader::didReceiveResponse(const ResourceResponse& response)
 
 void FileReaderLoader::didReceiveData(const char* data, int lengthReceived)
 {
-    ASSERT(data && lengthReceived > 0);
+    ASSERT(data);
+    ASSERT(lengthReceived > 0);
 
-    // Bail out if we encounter an error.
+    // Bail out if we already encountered an error.
     if (m_errorCode)
         return;
 
-    memcpy(static_cast<char*>(m_rawData->data()) + static_cast<unsigned>(m_bytesLoaded), data, static_cast<unsigned>(lengthReceived));
-    m_bytesLoaded += static_cast<unsigned>(lengthReceived);
+    int length = lengthReceived;
+    unsigned long long remainingBufferSpace = m_totalBytes - m_bytesLoaded;
+    if (length > static_cast<long long>(remainingBufferSpace))
+        length = static_cast<int>(remainingBufferSpace);
+
+    if (length <= 0)
+        return;
+
+    memcpy(static_cast<char*>(m_rawData->data()) + m_bytesLoaded, data, length);
+    m_bytesLoaded += length;
 
     m_isRawDataConverted = false;
 
diff --git a/WebCore/fileapi/FileReaderLoader.h b/WebCore/fileapi/FileReaderLoader.h
index a15ee01..7197a9f 100644
--- a/WebCore/fileapi/FileReaderLoader.h
+++ b/WebCore/fileapi/FileReaderLoader.h
@@ -73,8 +73,8 @@ public:
 
     String stringResult();
     PassRefPtr<ArrayBuffer> arrayBufferResult() const;
-    unsigned bytesLoaded() const { return m_bytesLoaded; }
-    unsigned totalBytes() const { return m_totalBytes; }
+    unsigned long long bytesLoaded() const { return m_bytesLoaded; }
+    unsigned long long totalBytes() const { return m_totalBytes; }
     int errorCode() const { return m_errorCode; }
 
     void setEncoding(const String&);
@@ -107,8 +107,8 @@ private:
     // The decoder used to decode the text data.
     RefPtr<TextResourceDecoder> m_decoder;
 
-    unsigned m_bytesLoaded;
-    unsigned m_totalBytes;
+    unsigned long long m_bytesLoaded;
+    unsigned long long m_totalBytes;
     int m_errorCode;
 };
 
diff --git a/WebCore/fileapi/FileWriter.cpp b/WebCore/fileapi/FileWriter.cpp
index bd8a76d..45ba42b 100644
--- a/WebCore/fileapi/FileWriter.cpp
+++ b/WebCore/fileapi/FileWriter.cpp
@@ -186,8 +186,7 @@ void FileWriter::didFail(FileError::ErrorCode code)
 
 void FileWriter::fireEvent(const AtomicString& type)
 {
-    // FIXME: the current ProgressEvent uses "unsigned long" for total and loaded attributes. Need to talk with the spec writer to resolve the issue.
-    dispatchEvent(ProgressEvent::create(type, true, static_cast<unsigned>(m_bytesWritten), static_cast<unsigned>(m_bytesToWrite)));
+    dispatchEvent(ProgressEvent::create(type, true, m_bytesWritten, m_bytesToWrite));
 }
 
 void FileWriter::setError(FileError::ErrorCode errorCode, ExceptionCode& ec)
diff --git a/WebCore/html/canvas/ArrayBuffer.cpp b/WebCore/html/canvas/ArrayBuffer.cpp
index ee8f149..2136f64 100644
--- a/WebCore/html/canvas/ArrayBuffer.cpp
+++ b/WebCore/html/canvas/ArrayBuffer.cpp
@@ -85,7 +85,10 @@ ArrayBuffer::~ArrayBuffer()
 void* ArrayBuffer::tryAllocate(unsigned numElements, unsigned elementByteSize)
 {
     void* result;
-    // Do not allow 32-bit overflow of the total size
+    // Do not allow 32-bit overflow of the total size.
+    // FIXME: Why not? The tryFastCalloc function already checks its arguments,
+    // and will fail if there is any overflow, so why should we include a
+    // redudant unnecessarily restrictive check here?
     if (numElements) {
         unsigned totalSize = numElements * elementByteSize;
         if (totalSize / numElements != elementByteSize)
diff --git a/WebCore/xml/XMLHttpRequest.cpp b/WebCore/xml/XMLHttpRequest.cpp
index b0c7a87..fc7eb9e 100644
--- a/WebCore/xml/XMLHttpRequest.cpp
+++ b/WebCore/xml/XMLHttpRequest.cpp
@@ -1023,7 +1023,7 @@ void XMLHttpRequest::didSendData(unsigned long long bytesSent, unsigned long lon
         return;
 
     if (m_uploadEventsAllowed)
-        m_upload->dispatchEvent(XMLHttpRequestProgressEvent::create(eventNames().progressEvent, true, static_cast<unsigned>(bytesSent), static_cast<unsigned>(totalBytesToBeSent)));
+        m_upload->dispatchEvent(XMLHttpRequestProgressEvent::create(eventNames().progressEvent, true, bytesSent, totalBytesToBeSent));
 
     if (bytesSent == totalBytesToBeSent && !m_uploadComplete) {
         m_uploadComplete = true;
@@ -1092,7 +1092,7 @@ void XMLHttpRequest::didReceiveData(const char* data, int len)
 
         if (m_async) {
             bool lengthComputable = expectedLength && m_receivedLength <= expectedLength;
-            m_progressEventThrottle.dispatchProgressEvent(lengthComputable, static_cast<unsigned>(m_receivedLength), static_cast<unsigned>(expectedLength));
+            m_progressEventThrottle.dispatchProgressEvent(lengthComputable, m_receivedLength, expectedLength);
         }
 
         if (m_state != LOADING)
diff --git a/WebCore/xml/XMLHttpRequestProgressEvent.h b/WebCore/xml/XMLHttpRequestProgressEvent.h
index 27f3b8c..009f1c0 100644
--- a/WebCore/xml/XMLHttpRequestProgressEvent.h
+++ b/WebCore/xml/XMLHttpRequestProgressEvent.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008, 2010 Apple Inc. All rights reserved.
  * Copyright (C) 2008 Julien Chaffraix <jchaffraix at webkit.org>. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -31,30 +31,30 @@
 
 namespace WebCore {
 
-    class XMLHttpRequestProgressEvent : public ProgressEvent {
-    public:
-        static PassRefPtr<XMLHttpRequestProgressEvent> create()
-        {
-            return adoptRef(new XMLHttpRequestProgressEvent);
-        }
-        static PassRefPtr<XMLHttpRequestProgressEvent> create(const AtomicString& type, bool lengthComputable = false, unsigned loaded = 0, unsigned total = 0)
-        {
-            return adoptRef(new XMLHttpRequestProgressEvent(type, lengthComputable, loaded, total));
-        }
-
-        virtual bool isXMLHttpRequestProgressEvent() const { return true; }
-
-        // Those 2 methods are to be compatible with Firefox and are only a wrapper on top of the real implementation.
-        unsigned position() const { return loaded(); }
-        unsigned totalSize() const { return total(); }
-
-    private:
-        XMLHttpRequestProgressEvent() { }
-        XMLHttpRequestProgressEvent(const AtomicString& type, bool lengthComputable, unsigned loaded, unsigned total)
-            : ProgressEvent(type, lengthComputable, loaded, total)
-        {
-        }
-    };
+class XMLHttpRequestProgressEvent : public ProgressEvent {
+public:
+    static PassRefPtr<XMLHttpRequestProgressEvent> create()
+    {
+        return adoptRef(new XMLHttpRequestProgressEvent);
+    }
+    static PassRefPtr<XMLHttpRequestProgressEvent> create(const AtomicString& type, bool lengthComputable = false, unsigned long long loaded = 0, unsigned long long total = 0)
+    {
+        return adoptRef(new XMLHttpRequestProgressEvent(type, lengthComputable, loaded, total));
+    }
+
+    // Those 2 synonyms are included for compatibility with Firefox.
+    unsigned long long position() const { return loaded(); }
+    unsigned long long totalSize() const { return total(); }
+
+private:
+    virtual bool isXMLHttpRequestProgressEvent() const { return true; }
+
+    XMLHttpRequestProgressEvent() { }
+    XMLHttpRequestProgressEvent(const AtomicString& type, bool lengthComputable, unsigned long long loaded, unsigned long long total)
+        : ProgressEvent(type, lengthComputable, loaded, total)
+    {
+    }
+};
 
 } // namespace WebCore
 
diff --git a/WebCore/xml/XMLHttpRequestProgressEvent.idl b/WebCore/xml/XMLHttpRequestProgressEvent.idl
index bc5055a..05c984e 100644
--- a/WebCore/xml/XMLHttpRequestProgressEvent.idl
+++ b/WebCore/xml/XMLHttpRequestProgressEvent.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008, 2010 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -29,8 +29,8 @@ module events {
         NoStaticTables
     // We should also inherit from LSProgressEvent when the idl is added.
     ] XMLHttpRequestProgressEvent : ProgressEvent {
-         readonly attribute unsigned long   position;
-         readonly attribute unsigned long   totalSize;
+         readonly attribute unsigned long long position;
+         readonly attribute unsigned long long totalSize;
     };
 
 }
diff --git a/WebCore/xml/XMLHttpRequestProgressEventThrottle.cpp b/WebCore/xml/XMLHttpRequestProgressEventThrottle.cpp
index 0eb6398..5d4afa3 100644
--- a/WebCore/xml/XMLHttpRequestProgressEventThrottle.cpp
+++ b/WebCore/xml/XMLHttpRequestProgressEventThrottle.cpp
@@ -47,7 +47,7 @@ XMLHttpRequestProgressEventThrottle::~XMLHttpRequestProgressEventThrottle()
 {
 }
 
-void XMLHttpRequestProgressEventThrottle::dispatchProgressEvent(bool lengthComputable, unsigned loaded, unsigned total)
+void XMLHttpRequestProgressEventThrottle::dispatchProgressEvent(bool lengthComputable, unsigned long long loaded, unsigned long long total)
 {
     ASSERT(!suspended());
     if (!isActive()) {
diff --git a/WebCore/xml/XMLHttpRequestProgressEventThrottle.h b/WebCore/xml/XMLHttpRequestProgressEventThrottle.h
index f51aea1..036905e 100644
--- a/WebCore/xml/XMLHttpRequestProgressEventThrottle.h
+++ b/WebCore/xml/XMLHttpRequestProgressEventThrottle.h
@@ -48,7 +48,7 @@ public:
     XMLHttpRequestProgressEventThrottle(EventTarget*);
     virtual ~XMLHttpRequestProgressEventThrottle();
 
-    void dispatchProgressEvent(bool lengthComputable, unsigned loaded, unsigned total);
+    void dispatchProgressEvent(bool lengthComputable, unsigned long long loaded, unsigned long long total);
     void dispatchEvent(PassRefPtr<Event>, ProgressEventAction = DoNotFlushProgressEvent);
 
     void suspend();
@@ -69,8 +69,8 @@ private:
     EventTarget* m_target;
 
     bool m_lengthComputable;
-    unsigned m_loaded;
-    unsigned m_total;
+    unsigned long long m_loaded;
+    unsigned long long m_total;
 
     bool m_suspended;
     RefPtr<Event> m_pausedEvent;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list