OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights |
3 * reserved. | 3 * reserved. |
4 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 4 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
5 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 5 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. |
6 * (http://www.torchmobile.com/) | 6 * (http://www.torchmobile.com/) |
7 * Copyright (C) 2008 Alp Toker <alp@atoker.com> | 7 * Copyright (C) 2008 Alp Toker <alp@atoker.com> |
8 * Copyright (C) Research In Motion Limited 2009. All rights reserved. | 8 * Copyright (C) Research In Motion Limited 2009. All rights reserved. |
9 * Copyright (C) 2011 Kris Jordan <krisjordan@gmail.com> | 9 * Copyright (C) 2011 Kris Jordan <krisjordan@gmail.com> |
10 * Copyright (C) 2011 Google Inc. All rights reserved. | 10 * Copyright (C) 2011 Google Inc. All rights reserved. |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
224 m_provisionalDocumentLoader = | 224 m_provisionalDocumentLoader = |
225 client()->createDocumentLoader(m_frame, initialRequest, SubstituteData(), | 225 client()->createDocumentLoader(m_frame, initialRequest, SubstituteData(), |
226 ClientRedirectPolicy::NotClientRedirect); | 226 ClientRedirectPolicy::NotClientRedirect); |
227 m_provisionalDocumentLoader->startLoadingMainResource(); | 227 m_provisionalDocumentLoader->startLoadingMainResource(); |
228 m_frame->document()->cancelParsing(); | 228 m_frame->document()->cancelParsing(); |
229 m_stateMachine.advanceTo( | 229 m_stateMachine.advanceTo( |
230 FrameLoaderStateMachine::DisplayingInitialEmptyDocument); | 230 FrameLoaderStateMachine::DisplayingInitialEmptyDocument); |
231 // Self-suspend if created in an already suspended Page. Note that both | 231 // Self-suspend if created in an already suspended Page. Note that both |
232 // startLoadingMainResource() and cancelParsing() may have already detached | 232 // startLoadingMainResource() and cancelParsing() may have already detached |
233 // the frame, since they both fire JS events. | 233 // the frame, since they both fire JS events. |
234 if (m_frame->page() && m_frame->page()->suspended()) | 234 if (m_frame->page() && m_frame->page()->suspended()) { |
| 235 m_provisionalDocumentLoader->fetcher()->setDefersLoading(true); |
| 236 m_frame->document()->suspendScheduledTasks(); |
235 setDefersLoading(true); | 237 setDefersLoading(true); |
| 238 } |
236 takeObjectSnapshot(); | 239 takeObjectSnapshot(); |
237 } | 240 } |
238 | 241 |
239 FrameLoaderClient* FrameLoader::client() const { | 242 FrameLoaderClient* FrameLoader::client() const { |
240 return static_cast<FrameLoaderClient*>(m_frame->client()); | 243 return static_cast<FrameLoaderClient*>(m_frame->client()); |
241 } | 244 } |
242 | 245 |
243 void FrameLoader::setDefersLoading(bool defers) { | 246 void FrameLoader::setDefersLoading(bool defers) { |
244 if (m_provisionalDocumentLoader) | 247 if (m_provisionalDocumentLoader) |
245 m_provisionalDocumentLoader->fetcher()->setDefersLoading(defers); | 248 m_provisionalDocumentLoader->fetcher()->setDefersLoading(defers); |
246 | 249 |
247 if (Document* document = m_frame->document()) { | |
248 document->fetcher()->setDefersLoading(defers); | |
249 if (defers) | |
250 document->suspendScheduledTasks(); | |
251 else | |
252 document->resumeScheduledTasks(); | |
253 } | |
254 | |
255 if (!defers) { | 250 if (!defers) { |
256 if (m_deferredHistoryLoad) { | 251 if (m_deferredHistoryLoad) { |
257 load(FrameLoadRequest(nullptr, m_deferredHistoryLoad->m_request), | 252 load(FrameLoadRequest(nullptr, m_deferredHistoryLoad->m_request), |
258 m_deferredHistoryLoad->m_loadType, | 253 m_deferredHistoryLoad->m_loadType, |
259 m_deferredHistoryLoad->m_item.get(), | 254 m_deferredHistoryLoad->m_item.get(), |
260 m_deferredHistoryLoad->m_historyLoadType); | 255 m_deferredHistoryLoad->m_historyLoadType); |
261 m_deferredHistoryLoad.clear(); | 256 m_deferredHistoryLoad.clear(); |
262 } | 257 } |
263 m_frame->navigationScheduler().startTimer(); | 258 m_frame->navigationScheduler().startTimer(); |
264 scheduleCheckCompleted(); | 259 scheduleCheckCompleted(); |
(...skipping 1692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1957 m_documentLoader ? m_documentLoader->url() : String()); | 1952 m_documentLoader ? m_documentLoader->url() : String()); |
1958 return tracedValue; | 1953 return tracedValue; |
1959 } | 1954 } |
1960 | 1955 |
1961 inline void FrameLoader::takeObjectSnapshot() const { | 1956 inline void FrameLoader::takeObjectSnapshot() const { |
1962 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID("loading", "FrameLoader", this, | 1957 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID("loading", "FrameLoader", this, |
1963 toTracedValue()); | 1958 toTracedValue()); |
1964 } | 1959 } |
1965 | 1960 |
1966 } // namespace blink | 1961 } // namespace blink |
OLD | NEW |