| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2011 Google Inc. All rights reserved. | 3 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 : m_frame(frame) | 86 : m_frame(frame) |
| 87 , m_fetcher(FrameFetchContext::createContextAndFetcher(this)) | 87 , m_fetcher(FrameFetchContext::createContextAndFetcher(this)) |
| 88 , m_originalRequest(req) | 88 , m_originalRequest(req) |
| 89 , m_substituteData(substituteData) | 89 , m_substituteData(substituteData) |
| 90 , m_request(req) | 90 , m_request(req) |
| 91 , m_isClientRedirect(false) | 91 , m_isClientRedirect(false) |
| 92 , m_replacesCurrentHistoryItem(false) | 92 , m_replacesCurrentHistoryItem(false) |
| 93 , m_navigationType(NavigationTypeOther) | 93 , m_navigationType(NavigationTypeOther) |
| 94 , m_documentLoadTiming(*this) | 94 , m_documentLoadTiming(*this) |
| 95 , m_timeOfLastDataReceived(0.0) | 95 , m_timeOfLastDataReceived(0.0) |
| 96 , m_shouldProtect(false) |
| 96 , m_applicationCacheHost(ApplicationCacheHost::create(this)) | 97 , m_applicationCacheHost(ApplicationCacheHost::create(this)) |
| 97 , m_state(NotStarted) | 98 , m_state(NotStarted) |
| 98 , m_inDataReceived(false) | 99 , m_inDataReceived(false) |
| 99 , m_dataBuffer(SharedBuffer::create()) | 100 , m_dataBuffer(SharedBuffer::create()) |
| 100 { | 101 { |
| 101 } | 102 } |
| 102 | 103 |
| 103 FrameLoader* DocumentLoader::frameLoader() const | 104 FrameLoader* DocumentLoader::frameLoader() const |
| 104 { | 105 { |
| 105 if (!m_frame) | 106 if (!m_frame) |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 frameLoader()->receivedMainResourceError(this, error); | 236 frameLoader()->receivedMainResourceError(this, error); |
| 236 clearMainResourceHandle(); | 237 clearMainResourceHandle(); |
| 237 } | 238 } |
| 238 | 239 |
| 239 // Cancels the data source's pending loads. Conceptually, a data source only lo
ads | 240 // Cancels the data source's pending loads. Conceptually, a data source only lo
ads |
| 240 // one document at a time, but one document may have many related resources. | 241 // one document at a time, but one document may have many related resources. |
| 241 // stopLoading will stop all loads initiated by the data source, | 242 // stopLoading will stop all loads initiated by the data source, |
| 242 // but not loads initiated by child frames' data sources -- that's the WebFrame'
s job. | 243 // but not loads initiated by child frames' data sources -- that's the WebFrame'
s job. |
| 243 void DocumentLoader::stopLoading() | 244 void DocumentLoader::stopLoading() |
| 244 { | 245 { |
| 246 if (m_shouldProtect) |
| 247 return; |
| 245 RefPtrWillBeRawPtr<LocalFrame> protectFrame(m_frame.get()); | 248 RefPtrWillBeRawPtr<LocalFrame> protectFrame(m_frame.get()); |
| 246 RefPtrWillBeRawPtr<DocumentLoader> protectLoader(this); | 249 RefPtrWillBeRawPtr<DocumentLoader> protectLoader(this); |
| 247 | 250 |
| 248 if (isLoading()) | 251 if (isLoading()) |
| 249 cancelMainResourceLoad(ResourceError::cancelledError(m_request.url())); | 252 cancelMainResourceLoad(ResourceError::cancelledError(m_request.url())); |
| 250 m_fetcher->stopFetching(); | 253 m_fetcher->stopFetching(); |
| 251 } | 254 } |
| 252 | 255 |
| 253 void DocumentLoader::commitIfReady() | 256 void DocumentLoader::commitIfReady() |
| 254 { | 257 { |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 566 m_redirectChain.append(url); | 569 m_redirectChain.append(url); |
| 567 } | 570 } |
| 568 | 571 |
| 569 bool DocumentLoader::loadingMultipartContent() const | 572 bool DocumentLoader::loadingMultipartContent() const |
| 570 { | 573 { |
| 571 return mainResourceLoader() ? mainResourceLoader()->loadingMultipartContent(
) : false; | 574 return mainResourceLoader() ? mainResourceLoader()->loadingMultipartContent(
) : false; |
| 572 } | 575 } |
| 573 | 576 |
| 574 void DocumentLoader::detachFromFrame() | 577 void DocumentLoader::detachFromFrame() |
| 575 { | 578 { |
| 579 if (m_shouldProtect) |
| 580 return; |
| 576 ASSERT(m_frame); | 581 ASSERT(m_frame); |
| 577 RefPtrWillBeRawPtr<LocalFrame> protectFrame(m_frame.get()); | 582 RefPtrWillBeRawPtr<LocalFrame> protectFrame(m_frame.get()); |
| 578 RefPtrWillBeRawPtr<DocumentLoader> protectLoader(this); | 583 RefPtrWillBeRawPtr<DocumentLoader> protectLoader(this); |
| 579 | 584 |
| 580 // It never makes sense to have a document loader that is detached from its | 585 // It never makes sense to have a document loader that is detached from its |
| 581 // frame have any loads active, so go ahead and kill all the loads. | 586 // frame have any loads active, so go ahead and kill all the loads. |
| 582 stopLoading(); | 587 stopLoading(); |
| 583 | 588 |
| 584 // If that load cancellation triggered another detach, leave. | 589 // If that load cancellation triggered another detach, leave. |
| 585 // (fast/frames/detach-frame-nested-no-crash.html is an example of this.) | 590 // (fast/frames/detach-frame-nested-no-crash.html is an example of this.) |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 765 { | 770 { |
| 766 m_writer = createWriterFor(ownerDocument, init, mimeType(), m_writer ? m_wri
ter->encoding() : emptyAtom, true, ForceSynchronousParsing); | 771 m_writer = createWriterFor(ownerDocument, init, mimeType(), m_writer ? m_wri
ter->encoding() : emptyAtom, true, ForceSynchronousParsing); |
| 767 if (!source.isNull()) | 772 if (!source.isNull()) |
| 768 m_writer->appendReplacingData(source); | 773 m_writer->appendReplacingData(source); |
| 769 endWriting(m_writer.get()); | 774 endWriting(m_writer.get()); |
| 770 } | 775 } |
| 771 | 776 |
| 772 DEFINE_WEAK_IDENTIFIER_MAP(DocumentLoader); | 777 DEFINE_WEAK_IDENTIFIER_MAP(DocumentLoader); |
| 773 | 778 |
| 774 } // namespace blink | 779 } // namespace blink |
| OLD | NEW |