Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(141)

Side by Side Diff: Source/modules/serviceworkers/FetchManager.cpp

Issue 422473002: Oilpan: fix build after r178904. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "FetchManager.h" 6 #include "FetchManager.h"
7 7
8 #include "bindings/core/v8/ExceptionState.h" 8 #include "bindings/core/v8/ExceptionState.h"
9 #include "bindings/core/v8/ScriptPromiseResolver.h" 9 #include "bindings/core/v8/ScriptPromiseResolver.h"
10 #include "bindings/core/v8/ScriptState.h" 10 #include "bindings/core/v8/ScriptState.h"
11 #include "bindings/core/v8/V8ThrowException.h" 11 #include "bindings/core/v8/V8ThrowException.h"
12 #include "core/dom/ExceptionCode.h" 12 #include "core/dom/ExceptionCode.h"
13 #include "core/fileapi/Blob.h" 13 #include "core/fileapi/Blob.h"
14 #include "core/loader/ThreadableLoader.h" 14 #include "core/loader/ThreadableLoader.h"
15 #include "core/loader/ThreadableLoaderClient.h" 15 #include "core/loader/ThreadableLoaderClient.h"
16 #include "core/xml/XMLHttpRequest.h" 16 #include "core/xml/XMLHttpRequest.h"
17 #include "modules/serviceworkers/FetchRequestData.h" 17 #include "modules/serviceworkers/FetchRequestData.h"
18 #include "modules/serviceworkers/Response.h" 18 #include "modules/serviceworkers/Response.h"
19 #include "modules/serviceworkers/ResponseInit.h" 19 #include "modules/serviceworkers/ResponseInit.h"
20 #include "platform/network/ResourceRequest.h" 20 #include "platform/network/ResourceRequest.h"
21 #include "platform/weborigin/SecurityOrigin.h" 21 #include "platform/weborigin/SecurityOrigin.h"
22 #include "public/platform/WebURLRequest.h" 22 #include "public/platform/WebURLRequest.h"
23 #include "wtf/HashSet.h" 23 #include "wtf/HashSet.h"
24 24
25 namespace blink { 25 namespace blink {
26 26
27 class FetchManager::Loader : public ThreadableLoaderClient { 27 class FetchManager::Loader : public ThreadableLoaderClient {
28 public: 28 public:
29 Loader(ExecutionContext*, FetchManager*, PassRefPtr<ScriptPromiseResolver>, PassRefPtr<FetchRequestData>); 29 Loader(ExecutionContext*, FetchManager*, PassRefPtr<ScriptPromiseResolver>, PassRefPtrWillBeRawPtr<FetchRequestData>);
30 ~Loader(); 30 ~Loader();
31 virtual void didReceiveResponse(unsigned long, const ResourceResponse&); 31 virtual void didReceiveResponse(unsigned long, const ResourceResponse&);
32 virtual void didFinishLoading(unsigned long, double); 32 virtual void didFinishLoading(unsigned long, double);
33 virtual void didFail(const ResourceError&); 33 virtual void didFail(const ResourceError&);
34 virtual void didFailAccessControlCheck(const ResourceError&); 34 virtual void didFailAccessControlCheck(const ResourceError&);
35 virtual void didFailRedirectCheck(); 35 virtual void didFailRedirectCheck();
36 virtual void didDownloadData(int); 36 virtual void didDownloadData(int);
37 37
38 void start(); 38 void start();
39 void cleanup(); 39 void cleanup();
40 40
41 private: 41 private:
42 void performBasicFetch(); 42 void performBasicFetch();
43 void performNetworkError(); 43 void performNetworkError();
44 void performHTTPFetch(); 44 void performHTTPFetch();
45 void failed(); 45 void failed();
46 void notifyFinished(); 46 void notifyFinished();
47 47
48 ExecutionContext* m_executionContext; 48 ExecutionContext* m_executionContext;
49 FetchManager* m_fetchManager; 49 FetchManager* m_fetchManager;
50 RefPtr<ScriptPromiseResolver> m_resolver; 50 RefPtr<ScriptPromiseResolver> m_resolver;
51 RefPtr<FetchRequestData> m_request; 51 RefPtrWillBePersistent<FetchRequestData> m_request;
52 RefPtr<ThreadableLoader> m_loader; 52 RefPtr<ThreadableLoader> m_loader;
53 ResourceResponse m_response; 53 ResourceResponse m_response;
54 long long m_downloadedBlobLength; 54 long long m_downloadedBlobLength;
55 bool m_corsFlag; 55 bool m_corsFlag;
56 bool m_corsPreflightFlag; 56 bool m_corsPreflightFlag;
57 bool m_failed; 57 bool m_failed;
58 }; 58 };
59 59
60 FetchManager::Loader::Loader(ExecutionContext* executionContext, FetchManager* f etchManager, PassRefPtr<ScriptPromiseResolver> resolver, PassRefPtr<FetchRequest Data> request) 60 FetchManager::Loader::Loader(ExecutionContext* executionContext, FetchManager* f etchManager, PassRefPtr<ScriptPromiseResolver> resolver, PassRefPtrWillBeRawPtr< FetchRequestData> request)
61 : m_executionContext(executionContext) 61 : m_executionContext(executionContext)
62 , m_fetchManager(fetchManager) 62 , m_fetchManager(fetchManager)
63 , m_resolver(resolver) 63 , m_resolver(resolver)
64 , m_request(request->createCopy()) 64 , m_request(request->createCopy())
65 , m_downloadedBlobLength(0) 65 , m_downloadedBlobLength(0)
66 , m_corsFlag(false) 66 , m_corsFlag(false)
67 , m_corsPreflightFlag(false) 67 , m_corsPreflightFlag(false)
68 , m_failed(false) 68 , m_failed(false)
69 { 69 {
70 } 70 }
(...skipping 10 matching lines...) Expand all
81 } 81 }
82 82
83 void FetchManager::Loader::didFinishLoading(unsigned long, double) 83 void FetchManager::Loader::didFinishLoading(unsigned long, double)
84 { 84 {
85 OwnPtr<BlobData> blobData = BlobData::create(); 85 OwnPtr<BlobData> blobData = BlobData::create();
86 String filePath = m_response.downloadedFilePath(); 86 String filePath = m_response.downloadedFilePath();
87 if (!filePath.isEmpty() && m_downloadedBlobLength) { 87 if (!filePath.isEmpty() && m_downloadedBlobLength) {
88 blobData->appendFile(filePath); 88 blobData->appendFile(filePath);
89 blobData->setContentType(m_response.mimeType()); 89 blobData->setContentType(m_response.mimeType());
90 } 90 }
91 RefPtr<FetchResponseData> response(FetchResponseData::create()); 91 RefPtrWillBeRawPtr<FetchResponseData> response(FetchResponseData::create());
92 response->setStatus(m_response.httpStatusCode()); 92 response->setStatus(m_response.httpStatusCode());
93 response->setStatusMessage(m_response.httpStatusText()); 93 response->setStatusMessage(m_response.httpStatusText());
94 HTTPHeaderMap::const_iterator end = m_response.httpHeaderFields().end(); 94 HTTPHeaderMap::const_iterator end = m_response.httpHeaderFields().end();
95 for (HTTPHeaderMap::const_iterator it = m_response.httpHeaderFields().begin( ); it != end; ++it) { 95 for (HTTPHeaderMap::const_iterator it = m_response.httpHeaderFields().begin( ); it != end; ++it) {
96 response->headerList()->append(it->key, it->value); 96 response->headerList()->append(it->key, it->value);
97 } 97 }
98 response->setBlobDataHandle(BlobDataHandle::create(blobData.release(), m_dow nloadedBlobLength)); 98 response->setBlobDataHandle(BlobDataHandle::create(blobData.release(), m_dow nloadedBlobLength));
99 response->setURL(m_request->url()); 99 response->setURL(m_request->url());
100 100
101 switch (m_request->tainting()) { 101 switch (m_request->tainting()) {
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 { 329 {
330 } 330 }
331 331
332 FetchManager::~FetchManager() 332 FetchManager::~FetchManager()
333 { 333 {
334 for (HashSet<OwnPtr<Loader> >::iterator it = m_loaders.begin(); it != m_load ers.end(); ++it) { 334 for (HashSet<OwnPtr<Loader> >::iterator it = m_loaders.begin(); it != m_load ers.end(); ++it) {
335 (*it)->cleanup(); 335 (*it)->cleanup();
336 } 336 }
337 } 337 }
338 338
339 ScriptPromise FetchManager::fetch(ScriptState* scriptState, PassRefPtr<FetchRequ estData> request) 339 ScriptPromise FetchManager::fetch(ScriptState* scriptState, PassRefPtrWillBeRawP tr<FetchRequestData> request)
340 { 340 {
341 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip tState); 341 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip tState);
342 ScriptPromise promise = resolver->promise(); 342 ScriptPromise promise = resolver->promise();
343 343
344 OwnPtr<Loader> ownLoader(adoptPtr(new Loader(m_executionContext, this, resol ver.release(), request))); 344 OwnPtr<Loader> ownLoader(adoptPtr(new Loader(m_executionContext, this, resol ver.release(), request)));
345 Loader* loader = m_loaders.add(ownLoader.release()).storedValue->get(); 345 Loader* loader = m_loaders.add(ownLoader.release()).storedValue->get();
346 loader->start(); 346 loader->start();
347 return promise; 347 return promise;
348 } 348 }
349 349
(...skipping 17 matching lines...) Expand all
367 367
368 bool FetchManager::isUsefulMethod(const String& method) 368 bool FetchManager::isUsefulMethod(const String& method)
369 { 369 {
370 // "A useful method is a method that is not a forbidden method." 370 // "A useful method is a method that is not a forbidden method."
371 // "A forbidden method is a method that is a byte case-insensitive match for 371 // "A forbidden method is a method that is a byte case-insensitive match for
372 // one of `CONNECT`, `TRACE`, and `TRACK`." 372 // one of `CONNECT`, `TRACE`, and `TRACK`."
373 return XMLHttpRequest::isAllowedHTTPMethod(method); 373 return XMLHttpRequest::isAllowedHTTPMethod(method);
374 } 374 }
375 375
376 } // namespace blink 376 } // namespace blink
OLDNEW
« no previous file with comments | « Source/modules/serviceworkers/FetchManager.h ('k') | Source/modules/serviceworkers/ServiceWorkerGlobalScope.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698