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 |