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

Side by Side Diff: Source/core/fileapi/FileReaderLoader.cpp

Issue 204983007: Make ThreadableLoader class to use references (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: review comments Created 6 years, 8 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 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google 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 are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * 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 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 { 74 {
75 terminate(); 75 terminate();
76 if (!m_urlForReading.isEmpty()) { 76 if (!m_urlForReading.isEmpty()) {
77 if (m_urlForReadingIsStream) 77 if (m_urlForReadingIsStream)
78 BlobRegistry::unregisterStreamURL(m_urlForReading); 78 BlobRegistry::unregisterStreamURL(m_urlForReading);
79 else 79 else
80 BlobRegistry::revokePublicBlobURL(m_urlForReading); 80 BlobRegistry::revokePublicBlobURL(m_urlForReading);
81 } 81 }
82 } 82 }
83 83
84 void FileReaderLoader::startInternal(ExecutionContext* executionContext, const S tream* stream, PassRefPtr<BlobDataHandle> blobData) 84 void FileReaderLoader::startInternal(ExecutionContext& executionContext, const S tream* stream, PassRefPtr<BlobDataHandle> blobData)
85 { 85 {
86 // The blob is read by routing through the request handling layer given a te mporary public url. 86 // The blob is read by routing through the request handling layer given a te mporary public url.
87 m_urlForReading = BlobURL::createPublicURL(executionContext->securityOrigin( )); 87 m_urlForReading = BlobURL::createPublicURL(executionContext.securityOrigin() );
88 if (m_urlForReading.isEmpty()) { 88 if (m_urlForReading.isEmpty()) {
89 failed(FileError::SECURITY_ERR); 89 failed(FileError::SECURITY_ERR);
90 return; 90 return;
91 } 91 }
92 92
93 if (blobData) { 93 if (blobData) {
94 ASSERT(!stream); 94 ASSERT(!stream);
95 BlobRegistry::registerPublicBlobURL(executionContext->securityOrigin(), m_urlForReading, blobData); 95 BlobRegistry::registerPublicBlobURL(executionContext.securityOrigin(), m _urlForReading, blobData);
96 } else { 96 } else {
97 ASSERT(stream); 97 ASSERT(stream);
98 BlobRegistry::registerStreamURL(executionContext->securityOrigin(), m_ur lForReading, stream->url()); 98 BlobRegistry::registerStreamURL(executionContext.securityOrigin(), m_url ForReading, stream->url());
99 } 99 }
100 100
101 // Construct and load the request. 101 // Construct and load the request.
102 ResourceRequest request(m_urlForReading); 102 ResourceRequest request(m_urlForReading);
103 request.setHTTPMethod("GET"); 103 request.setHTTPMethod("GET");
104 if (m_hasRange) 104 if (m_hasRange)
105 request.setHTTPHeaderField("Range", AtomicString(String::format("bytes=% d-%d", m_rangeStart, m_rangeEnd))); 105 request.setHTTPHeaderField("Range", AtomicString(String::format("bytes=% d-%d", m_rangeStart, m_rangeEnd)));
106 106
107 ThreadableLoaderOptions options; 107 ThreadableLoaderOptions options;
108 options.sniffContent = DoNotSniffContent; 108 options.sniffContent = DoNotSniffContent;
109 options.preflightPolicy = ConsiderPreflight; 109 options.preflightPolicy = ConsiderPreflight;
110 options.allowCredentials = AllowStoredCredentials; 110 options.allowCredentials = AllowStoredCredentials;
111 options.crossOriginRequestPolicy = DenyCrossOriginRequests; 111 options.crossOriginRequestPolicy = DenyCrossOriginRequests;
112 // FIXME: Is there a directive to which this load should be subject? 112 // FIXME: Is there a directive to which this load should be subject?
113 options.contentSecurityPolicyEnforcement = DoNotEnforceContentSecurityPolicy ; 113 options.contentSecurityPolicyEnforcement = DoNotEnforceContentSecurityPolicy ;
114 // Use special initiator to hide the request from the inspector. 114 // Use special initiator to hide the request from the inspector.
115 options.initiator = FetchInitiatorTypeNames::internal; 115 options.initiator = FetchInitiatorTypeNames::internal;
116 116
117 if (m_client) 117 if (m_client)
118 m_loader = ThreadableLoader::create(executionContext, this, request, opt ions); 118 m_loader = ThreadableLoader::create(executionContext, this, request, opt ions);
119 else 119 else
120 ThreadableLoader::loadResourceSynchronously(executionContext, request, * this, options); 120 ThreadableLoader::loadResourceSynchronously(executionContext, request, * this, options);
121 } 121 }
122 122
123 void FileReaderLoader::start(ExecutionContext* executionContext, PassRefPtr<Blob DataHandle> blobData) 123 void FileReaderLoader::start(ExecutionContext* executionContext, PassRefPtr<Blob DataHandle> blobData)
124 { 124 {
125 ASSERT(executionContext);
125 m_urlForReadingIsStream = false; 126 m_urlForReadingIsStream = false;
126 startInternal(executionContext, 0, blobData); 127 startInternal(*executionContext, 0, blobData);
127 } 128 }
128 129
129 void FileReaderLoader::start(ExecutionContext* executionContext, const Stream& s tream, unsigned readSize) 130 void FileReaderLoader::start(ExecutionContext* executionContext, const Stream& s tream, unsigned readSize)
130 { 131 {
132 ASSERT(executionContext);
131 if (readSize > 0) { 133 if (readSize > 0) {
132 m_hasRange = true; 134 m_hasRange = true;
133 m_rangeStart = 0; 135 m_rangeStart = 0;
134 m_rangeEnd = readSize - 1; // End is inclusive so (0,0) is a 1-byte read . 136 m_rangeEnd = readSize - 1; // End is inclusive so (0,0) is a 1-byte read .
135 } 137 }
136 138
137 m_urlForReadingIsStream = true; 139 m_urlForReadingIsStream = true;
138 startInternal(executionContext, &stream, nullptr); 140 startInternal(*executionContext, &stream, nullptr);
139 } 141 }
140 142
141 void FileReaderLoader::cancel() 143 void FileReaderLoader::cancel()
142 { 144 {
143 m_errorCode = FileError::ABORT_ERR; 145 m_errorCode = FileError::ABORT_ERR;
144 terminate(); 146 terminate();
145 } 147 }
146 148
147 void FileReaderLoader::terminate() 149 void FileReaderLoader::terminate()
148 { 150 {
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 m_stringResult = builder.toString(); 396 m_stringResult = builder.toString();
395 } 397 }
396 398
397 void FileReaderLoader::setEncoding(const String& encoding) 399 void FileReaderLoader::setEncoding(const String& encoding)
398 { 400 {
399 if (!encoding.isEmpty()) 401 if (!encoding.isEmpty())
400 m_encoding = WTF::TextEncoding(encoding); 402 m_encoding = WTF::TextEncoding(encoding);
401 } 403 }
402 404
403 } // namespace WebCore 405 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/fileapi/FileReaderLoader.h ('k') | Source/core/inspector/InspectorResourceAgent.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698