| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 24 */ | 24 */ |
| 25 | 25 |
| 26 #include "config.h" | 26 #include "config.h" |
| 27 #include "core/loader/ProgressTracker.h" | 27 #include "core/loader/ProgressTracker.h" |
| 28 | 28 |
| 29 #include "core/inspector/InspectorInstrumentation.h" | 29 #include "core/inspector/InspectorInstrumentation.h" |
| 30 #include "core/loader/DocumentLoader.h" | 30 #include "core/loader/DocumentLoader.h" |
| 31 #include "core/loader/FrameLoader.h" | 31 #include "core/loader/FrameLoader.h" |
| 32 #include "core/loader/FrameLoaderClient.h" | 32 #include "core/loader/FrameLoaderClient.h" |
| 33 #include "core/loader/FrameLoaderStateMachine.h" | |
| 34 #include "core/page/Frame.h" | 33 #include "core/page/Frame.h" |
| 34 #include "core/page/FrameView.h" |
| 35 #include "core/platform/Logging.h" | 35 #include "core/platform/Logging.h" |
| 36 #include "core/platform/network/ResourceResponse.h" | 36 #include "core/platform/network/ResourceResponse.h" |
| 37 #include <wtf/CurrentTime.h> | 37 #include <wtf/CurrentTime.h> |
| 38 #include <wtf/text/CString.h> | 38 #include <wtf/text/CString.h> |
| 39 | 39 |
| 40 using std::min; | 40 using std::min; |
| 41 | 41 |
| 42 namespace WebCore { | 42 namespace WebCore { |
| 43 | 43 |
| 44 // Always start progress at initialProgressValue. This helps provide feedback as
| 44 // Always start progress at initialProgressValue. This helps provide feedback as
|
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 | 189 |
| 190 int numPendingOrLoadingRequests = frame->loader()->numPendingOrLoadingReques
ts(true); | 190 int numPendingOrLoadingRequests = frame->loader()->numPendingOrLoadingReques
ts(true); |
| 191 estimatedBytesForPendingRequests = progressItemDefaultEstimatedLength * numP
endingOrLoadingRequests; | 191 estimatedBytesForPendingRequests = progressItemDefaultEstimatedLength * numP
endingOrLoadingRequests; |
| 192 remainingBytes = ((m_totalPageAndResourceBytesToLoad + estimatedBytesForPend
ingRequests) - m_totalBytesReceived); | 192 remainingBytes = ((m_totalPageAndResourceBytesToLoad + estimatedBytesForPend
ingRequests) - m_totalBytesReceived); |
| 193 if (remainingBytes > 0) // Prevent divide by 0. | 193 if (remainingBytes > 0) // Prevent divide by 0. |
| 194 percentOfRemainingBytes = (double)bytesReceived / (double)remainingBytes
; | 194 percentOfRemainingBytes = (double)bytesReceived / (double)remainingBytes
; |
| 195 else | 195 else |
| 196 percentOfRemainingBytes = 1.0; | 196 percentOfRemainingBytes = 1.0; |
| 197 | 197 |
| 198 // For documents that use WebCore's layout system, treat first layout as the
half-way point. | 198 // For documents that use WebCore's layout system, treat first layout as the
half-way point. |
| 199 bool useClampedMaxProgress = !frame->loader()->stateMachine()->firstLayoutDo
ne(); | 199 bool useClampedMaxProgress = !frame->view()->didFirstLayout(); |
| 200 double maxProgressValue = useClampedMaxProgress ? 0.5 : finalProgressValue; | 200 double maxProgressValue = useClampedMaxProgress ? 0.5 : finalProgressValue; |
| 201 increment = (maxProgressValue - m_progressValue) * percentOfRemainingBytes; | 201 increment = (maxProgressValue - m_progressValue) * percentOfRemainingBytes; |
| 202 m_progressValue += increment; | 202 m_progressValue += increment; |
| 203 m_progressValue = min(m_progressValue, maxProgressValue); | 203 m_progressValue = min(m_progressValue, maxProgressValue); |
| 204 ASSERT(m_progressValue >= initialProgressValue); | 204 ASSERT(m_progressValue >= initialProgressValue); |
| 205 | 205 |
| 206 m_totalBytesReceived += bytesReceived; | 206 m_totalBytesReceived += bytesReceived; |
| 207 | 207 |
| 208 double now = currentTime(); | 208 double now = currentTime(); |
| 209 double notifiedProgressTimeDelta = now - m_lastNotifiedProgressTime; | 209 double notifiedProgressTimeDelta = now - m_lastNotifiedProgressTime; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 234 return; | 234 return; |
| 235 | 235 |
| 236 // Adjust the total expected bytes to account for any overage/underage. | 236 // Adjust the total expected bytes to account for any overage/underage. |
| 237 long long delta = item->bytesReceived - item->estimatedLength; | 237 long long delta = item->bytesReceived - item->estimatedLength; |
| 238 m_totalPageAndResourceBytesToLoad += delta; | 238 m_totalPageAndResourceBytesToLoad += delta; |
| 239 | 239 |
| 240 m_progressItems.remove(identifier); | 240 m_progressItems.remove(identifier); |
| 241 } | 241 } |
| 242 | 242 |
| 243 } | 243 } |
| OLD | NEW |