Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) | 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) |
| 3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) | 3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) |
| 4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) | 4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) |
| 5 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) | 5 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) |
| 6 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All | 6 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All |
| 7 rights reserved. | 7 rights reserved. |
| 8 | 8 |
| 9 This library is free software; you can redistribute it and/or | 9 This library is free software; you can redistribute it and/or |
| 10 modify it under the terms of the GNU Library General Public | 10 modify it under the terms of the GNU Library General Public |
| (...skipping 736 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 747 else | 747 else |
| 748 m_clients.remove(client); | 748 m_clients.remove(client); |
| 749 | 749 |
| 750 if (m_clientsAwaitingCallback.isEmpty()) | 750 if (m_clientsAwaitingCallback.isEmpty()) |
| 751 ResourceCallback::callbackHandler().cancel(this); | 751 ResourceCallback::callbackHandler().cancel(this); |
| 752 | 752 |
| 753 didRemoveClientOrObserver(); | 753 didRemoveClientOrObserver(); |
| 754 } | 754 } |
| 755 | 755 |
| 756 void Resource::didRemoveClientOrObserver() { | 756 void Resource::didRemoveClientOrObserver() { |
| 757 if (!hasClientsOrObservers() && m_isAlive) { | 757 if (hasClientsOrObservers() || !m_isAlive) |
| 758 m_isAlive = false; | 758 return; |
| 759 allClientsAndObserversRemoved(); | |
| 760 | 759 |
| 761 // RFC2616 14.9.2: | 760 // Allow speculative markup preloads to continue even without clients or |
| 762 // "no-store: ... MUST make a best-effort attempt to remove the information | 761 // observers. Their lifetime is determined by the ResourceFetcher. |
| 763 // from volatile storage as promptly as possible" | 762 if (isUnusedPreload() && !isLinkPreload()) |
|
yhirano
2016/12/02 01:32:25
Is it possible to register a ResourceClient instea
Charlie Harrison
2016/12/02 04:20:22
Hm... so the CSSPreloaderResourceClient removes it
yhirano
2016/12/02 08:50:29
Then is it possible to stop removing itself only w
Charlie Harrison
2016/12/02 13:14:15
I think it might be possible now that CSSPreloader
| |
| 764 // "... History buffers MAY store such responses as part of their normal | 763 return; |
| 765 // operation." | 764 |
| 766 // We allow non-secure content to be reused in history, but we do not allow | 765 m_isAlive = false; |
| 767 // secure content to be reused. | 766 allClientsAndObserversRemoved(); |
| 768 if (hasCacheControlNoStoreHeader() && url().protocolIs("https")) | 767 |
| 769 memoryCache()->remove(this); | 768 // RFC2616 14.9.2: |
| 770 } | 769 // "no-store: ... MUST make a best-effort attempt to remove the information |
| 770 // from volatile storage as promptly as possible" | |
| 771 // "... History buffers MAY store such responses as part of their normal | |
| 772 // operation." | |
| 773 // We allow non-secure content to be reused in history, but we do not allow | |
| 774 // secure content to be reused. | |
| 775 if (hasCacheControlNoStoreHeader() && url().protocolIs("https")) | |
| 776 memoryCache()->remove(this); | |
| 771 } | 777 } |
| 772 | 778 |
| 773 void Resource::allClientsAndObserversRemoved() { | 779 void Resource::allClientsAndObserversRemoved() { |
| 774 if (!m_loader) | 780 if (!m_loader) |
| 775 return; | 781 return; |
| 776 if (!m_cancelTimer.isActive()) | 782 if (!m_cancelTimer.isActive()) |
| 777 m_cancelTimer.startOneShot(0, BLINK_FROM_HERE); | 783 m_cancelTimer.startOneShot(0, BLINK_FROM_HERE); |
| 778 } | 784 } |
| 779 | 785 |
| 780 void Resource::cancelTimerFired(TimerBase* timer) { | 786 void Resource::cancelTimerFired(TimerBase* timer) { |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1099 case Resource::TextTrack: | 1105 case Resource::TextTrack: |
| 1100 case Resource::Media: | 1106 case Resource::Media: |
| 1101 case Resource::Manifest: | 1107 case Resource::Manifest: |
| 1102 return false; | 1108 return false; |
| 1103 } | 1109 } |
| 1104 NOTREACHED(); | 1110 NOTREACHED(); |
| 1105 return false; | 1111 return false; |
| 1106 } | 1112 } |
| 1107 | 1113 |
| 1108 } // namespace blink | 1114 } // namespace blink |
| OLD | NEW |