| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2005, 2006, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2005, 2006, 2011 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 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 class Resource; | 41 class Resource; |
| 42 class ResourceError; | 42 class ResourceError; |
| 43 class ResourceFetcher; | 43 class ResourceFetcher; |
| 44 | 44 |
| 45 class CORE_EXPORT ResourceLoader final : public GarbageCollectedFinalized<Resour
ceLoader>, protected WebURLLoaderClient { | 45 class CORE_EXPORT ResourceLoader final : public GarbageCollectedFinalized<Resour
ceLoader>, protected WebURLLoaderClient { |
| 46 public: | 46 public: |
| 47 static ResourceLoader* create(ResourceFetcher*, Resource*); | 47 static ResourceLoader* create(ResourceFetcher*, Resource*); |
| 48 ~ResourceLoader() override; | 48 ~ResourceLoader() override; |
| 49 DECLARE_TRACE(); | 49 DECLARE_TRACE(); |
| 50 | 50 |
| 51 // Promptly release m_loader. | |
| 52 EAGERLY_FINALIZE(); | |
| 53 | |
| 54 void start(ResourceRequest&); | 51 void start(ResourceRequest&); |
| 55 | |
| 56 void cancel(); | 52 void cancel(); |
| 57 void cancel(const ResourceError&); | |
| 58 | 53 |
| 59 Resource* cachedResource() { return m_resource.get(); } | 54 Resource* cachedResource() { return m_resource.get(); } |
| 60 | 55 |
| 61 void setDefersLoading(bool); | 56 void setDefersLoading(bool); |
| 62 | 57 |
| 63 void didChangePriority(ResourceLoadPriority, int intraPriorityValue); | 58 void didChangePriority(ResourceLoadPriority, int intraPriorityValue); |
| 64 | 59 |
| 65 // WebURLLoaderClient | 60 // WebURLLoaderClient |
| 66 void willFollowRedirect(WebURLLoader*, WebURLRequest&, const WebURLResponse&
redirectResponse) override; | 61 void willFollowRedirect(WebURLLoader*, WebURLRequest&, const WebURLResponse&
redirectResponse) override; |
| 67 void didSendData(WebURLLoader*, unsigned long long bytesSent, unsigned long
long totalBytesToBeSent) override; | 62 void didSendData(WebURLLoader*, unsigned long long bytesSent, unsigned long
long totalBytesToBeSent) override; |
| 68 void didReceiveResponse(WebURLLoader*, const WebURLResponse&) override; | 63 void didReceiveResponse(WebURLLoader*, const WebURLResponse&) override; |
| 69 void didReceiveResponse(WebURLLoader*, const WebURLResponse&, WebDataConsume
rHandle*) override; | 64 void didReceiveResponse(WebURLLoader*, const WebURLResponse&, WebDataConsume
rHandle*) override; |
| 70 void didReceiveData(WebURLLoader*, const char*, int, int encodedDataLength)
override; | 65 void didReceiveData(WebURLLoader*, const char*, int, int encodedDataLength)
override; |
| 71 void didReceiveCachedMetadata(WebURLLoader*, const char* data, int length) o
verride; | 66 void didReceiveCachedMetadata(WebURLLoader*, const char* data, int length) o
verride; |
| 72 void didFinishLoading(WebURLLoader*, double finishTime, int64_t encodedDataL
ength) override; | 67 void didFinishLoading(WebURLLoader*, double finishTime, int64_t encodedDataL
ength) override; |
| 73 void didFail(WebURLLoader*, const WebURLError&) override; | 68 void didFail(WebURLLoader*, const WebURLError&) override; |
| 74 void didDownloadData(WebURLLoader*, int, int) override; | 69 void didDownloadData(WebURLLoader*, int, int) override; |
| 75 | 70 |
| 76 void didFinishLoadingOnePart(double finishTime, int64_t encodedDataLength); | 71 void didFinishLoadingFirstPartInMultipart(); |
| 77 | 72 |
| 78 private: | 73 private: |
| 79 // Assumes ResourceFetcher and Resource are non-null. | 74 // Assumes ResourceFetcher and Resource are non-null. |
| 80 ResourceLoader(ResourceFetcher*, Resource*); | 75 ResourceLoader(ResourceFetcher*, Resource*); |
| 81 | 76 |
| 82 void requestSynchronously(ResourceRequest&); | 77 void requestSynchronously(ResourceRequest&); |
| 83 | 78 |
| 84 bool responseNeedsAccessControlCheck() const; | 79 bool responseNeedsAccessControlCheck() const; |
| 85 | 80 |
| 86 ResourceRequest& applyOptions(ResourceRequest&) const; | |
| 87 | |
| 88 void releaseResources(); | |
| 89 | |
| 90 OwnPtr<WebURLLoader> m_loader; | 81 OwnPtr<WebURLLoader> m_loader; |
| 91 Member<ResourceFetcher> m_fetcher; | 82 Member<ResourceFetcher> m_fetcher; |
| 92 | |
| 93 bool m_notifiedLoadComplete; | |
| 94 | |
| 95 enum ConnectionState { | |
| 96 ConnectionStateNew, | |
| 97 ConnectionStateStarted, | |
| 98 ConnectionStateReceivedResponse, | |
| 99 ConnectionStateReceivingData, | |
| 100 ConnectionStateFinishedLoading, | |
| 101 ConnectionStateReleased | |
| 102 }; | |
| 103 | |
| 104 Member<Resource> m_resource; | 83 Member<Resource> m_resource; |
| 105 | |
| 106 // Used for sanity checking to make sure we don't experience illegal state | |
| 107 // transitions. | |
| 108 ConnectionState m_state; | |
| 109 }; | 84 }; |
| 110 | 85 |
| 111 } // namespace blink | 86 } // namespace blink |
| 112 | 87 |
| 113 #endif | 88 #endif |
| OLD | NEW |