Index: Source/core/loader/ProgressTracker.cpp |
diff --git a/Source/core/loader/ProgressTracker.cpp b/Source/core/loader/ProgressTracker.cpp |
index d3520ae5a69aa6157b2ea91c329a6c26ecb2b869..2daa653e1b75fc6bfb827d960266d24d1a329aff 100644 |
--- a/Source/core/loader/ProgressTracker.cpp |
+++ b/Source/core/loader/ProgressTracker.cpp |
@@ -20,7 +20,7 @@ |
* 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. |
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
#include "config.h" |
@@ -40,10 +40,10 @@ using std::min; |
namespace WebCore { |
-// Always start progress at initialProgressValue. This helps provide feedback as |
+// Always start progress at initialProgressValue. This helps provide feedback as |
// soon as a load starts. |
static const double initialProgressValue = 0.1; |
- |
+ |
// Similarly, always leave space at the end. This helps show the user that we're not done |
// until we're done. |
static const double finalProgressValue = 0.9; // 1.0 - initialProgressValue |
@@ -53,10 +53,10 @@ static const int progressItemDefaultEstimatedLength = 1024 * 16; |
struct ProgressItem { |
WTF_MAKE_NONCOPYABLE(ProgressItem); WTF_MAKE_FAST_ALLOCATED; |
public: |
- ProgressItem(long long length) |
+ ProgressItem(long long length) |
: bytesReceived(0) |
, estimatedLength(length) { } |
- |
+ |
long long bytesReceived; |
long long estimatedLength; |
}; |
@@ -90,7 +90,7 @@ double ProgressTracker::estimatedProgress() const |
void ProgressTracker::reset() |
{ |
- m_progressItems.clear(); |
+ m_progressItems.clear(); |
m_totalPageAndResourceBytesToLoad = 0; |
m_totalBytesReceived = 0; |
@@ -105,12 +105,12 @@ void ProgressTracker::reset() |
void ProgressTracker::progressStarted(Frame* frame) |
{ |
LOG(Progress, "Progress started (%p) - frame %p(\"%s\"), value %f, tracked frames %d, originating frame %p", this, frame, frame->tree()->uniqueName().string().utf8().data(), m_progressValue, m_numProgressTrackedFrames, m_originatingProgressFrame.get()); |
- |
+ |
if (m_numProgressTrackedFrames == 0 || m_originatingProgressFrame == frame) { |
reset(); |
m_progressValue = initialProgressValue; |
m_originatingProgressFrame = frame; |
- |
+ |
m_originatingProgressFrame->loader()->client()->postProgressStartedNotification(); |
} |
m_numProgressTrackedFrames++; |
@@ -120,7 +120,7 @@ void ProgressTracker::progressStarted(Frame* frame) |
void ProgressTracker::progressCompleted(Frame* frame) |
{ |
LOG(Progress, "Progress completed (%p) - frame %p(\"%s\"), value %f, tracked frames %d, originating frame %p", this, frame, frame->tree()->uniqueName().string().utf8().data(), m_progressValue, m_numProgressTrackedFrames, m_originatingProgressFrame.get()); |
- |
+ |
if (m_numProgressTrackedFrames <= 0) |
return; |
m_numProgressTrackedFrames--; |
@@ -131,9 +131,9 @@ void ProgressTracker::progressCompleted(Frame* frame) |
void ProgressTracker::finalProgressComplete() |
{ |
LOG(Progress, "Final progress complete (%p)", this); |
- |
+ |
RefPtr<Frame> frame = m_originatingProgressFrame.release(); |
- |
+ |
// Before resetting progress value be sure to send client a least one notification |
// with final progress value. |
if (!m_finalProgressChangedSent) { |
@@ -152,11 +152,11 @@ void ProgressTracker::incrementProgress(unsigned long identifier, const Resource |
if (m_numProgressTrackedFrames <= 0) |
return; |
- |
+ |
long long estimatedLength = response.expectedContentLength(); |
if (estimatedLength < 0) |
estimatedLength = progressItemDefaultEstimatedLength; |
- |
+ |
m_totalPageAndResourceBytesToLoad += estimatedLength; |
if (ProgressItem* item = m_progressItems.get(identifier)) { |
@@ -169,23 +169,23 @@ void ProgressTracker::incrementProgress(unsigned long identifier, const Resource |
void ProgressTracker::incrementProgress(unsigned long identifier, const char*, int length) |
{ |
ProgressItem* item = m_progressItems.get(identifier); |
- |
+ |
// FIXME: Can this ever happen? |
if (!item) |
return; |
RefPtr<Frame> frame = m_originatingProgressFrame; |
- |
+ |
unsigned bytesReceived = length; |
double increment, percentOfRemainingBytes; |
long long remainingBytes, estimatedBytesForPendingRequests; |
- |
+ |
item->bytesReceived += bytesReceived; |
if (item->bytesReceived > item->estimatedLength) { |
m_totalPageAndResourceBytesToLoad += ((item->bytesReceived * 2) - item->estimatedLength); |
item->estimatedLength = item->bytesReceived * 2; |
} |
- |
+ |
int numPendingOrLoadingRequests = frame->loader()->numPendingOrLoadingRequests(true); |
estimatedBytesForPendingRequests = progressItemDefaultEstimatedLength * numPendingOrLoadingRequests; |
remainingBytes = ((m_totalPageAndResourceBytesToLoad + estimatedBytesForPendingRequests) - m_totalBytesReceived); |
@@ -193,7 +193,7 @@ void ProgressTracker::incrementProgress(unsigned long identifier, const char*, i |
percentOfRemainingBytes = (double)bytesReceived / (double)remainingBytes; |
else |
percentOfRemainingBytes = 1.0; |
- |
+ |
// For documents that use WebCore's layout system, treat first layout as the half-way point. |
bool useClampedMaxProgress = !frame->view()->didFirstLayout(); |
double maxProgressValue = useClampedMaxProgress ? 0.5 : finalProgressValue; |
@@ -201,12 +201,12 @@ void ProgressTracker::incrementProgress(unsigned long identifier, const char*, i |
m_progressValue += increment; |
m_progressValue = min(m_progressValue, maxProgressValue); |
ASSERT(m_progressValue >= initialProgressValue); |
- |
+ |
m_totalBytesReceived += bytesReceived; |
- |
+ |
double now = currentTime(); |
double notifiedProgressTimeDelta = now - m_lastNotifiedProgressTime; |
- |
+ |
LOG(Progress, "Progress incremented (%p) - value %f, tracked frames %d", this, m_progressValue, m_numProgressTrackedFrames); |
double notificationProgressDelta = m_progressValue - m_lastNotifiedProgressValue; |
if ((notificationProgressDelta >= m_progressNotificationInterval || |
@@ -215,7 +215,7 @@ void ProgressTracker::incrementProgress(unsigned long identifier, const char*, i |
if (!m_finalProgressChangedSent) { |
if (m_progressValue == 1) |
m_finalProgressChangedSent = true; |
- |
+ |
frame->loader()->client()->postProgressEstimateChangedNotification(); |
m_lastNotifiedProgressValue = m_progressValue; |
@@ -227,11 +227,11 @@ void ProgressTracker::incrementProgress(unsigned long identifier, const char*, i |
void ProgressTracker::completeProgress(unsigned long identifier) |
{ |
ProgressItem* item = m_progressItems.get(identifier); |
- |
+ |
// This can happen if a load fails without receiving any response data. |
if (!item) |
return; |
- |
+ |
// Adjust the total expected bytes to account for any overage/underage. |
long long delta = item->bytesReceived - item->estimatedLength; |
m_totalPageAndResourceBytesToLoad += delta; |