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

Side by Side Diff: chrome/browser/chromeos/drive/drive_protocol_handler.cc

Issue 11106007: drive: Rename 'gdata' namespace to 'drive' in chrome/browser/chromeos/drive (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/chromeos/drive/drive_protocol_handler.h" 5 #include "chrome/browser/chromeos/drive/drive_protocol_handler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 20 matching lines...) Expand all
31 #include "net/base/file_stream.h" 31 #include "net/base/file_stream.h"
32 #include "net/base/net_errors.h" 32 #include "net/base/net_errors.h"
33 #include "net/http/http_request_headers.h" 33 #include "net/http/http_request_headers.h"
34 #include "net/http/http_response_headers.h" 34 #include "net/http/http_response_headers.h"
35 #include "net/http/http_response_info.h" 35 #include "net/http/http_response_info.h"
36 #include "net/url_request/url_request.h" 36 #include "net/url_request/url_request.h"
37 #include "net/url_request/url_request_job.h" 37 #include "net/url_request/url_request_job.h"
38 38
39 using content::BrowserThread; 39 using content::BrowserThread;
40 40
41 namespace gdata { 41 namespace drive {
42 42
43 namespace { 43 namespace {
44 44
45 const net::UnescapeRule::Type kUrlPathUnescapeMask = 45 const net::UnescapeRule::Type kUrlPathUnescapeMask =
46 net::UnescapeRule::SPACES | 46 net::UnescapeRule::SPACES |
47 net::UnescapeRule::URL_SPECIAL_CHARS | 47 net::UnescapeRule::URL_SPECIAL_CHARS |
48 net::UnescapeRule::CONTROL_CHARS; 48 net::UnescapeRule::CONTROL_CHARS;
49 49
50 const int kHTTPOk = 200; 50 const int kHTTPOk = 200;
51 const int kHTTPNotAllowed = 403; 51 const int kHTTPNotAllowed = 403;
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 146
147 private: 147 private:
148 // Helper for Start() to let us start asynchronously. 148 // Helper for Start() to let us start asynchronously.
149 void StartAsync(DriveFileSystemInterface** file_system); 149 void StartAsync(DriveFileSystemInterface** file_system);
150 150
151 // Helper methods for Delegate::OnUrlFetchDownloadData and ReadRawData to 151 // Helper methods for Delegate::OnUrlFetchDownloadData and ReadRawData to
152 // receive download data and copy to response buffer. 152 // receive download data and copy to response buffer.
153 // For detailed description of logic, refer to comments in definitions of 153 // For detailed description of logic, refer to comments in definitions of
154 // Start() and ReadRawData(). 154 // Start() and ReadRawData().
155 155
156 void OnUrlFetchDownloadData(GDataErrorCode error, 156 void OnUrlFetchDownloadData(gdata::GDataErrorCode error,
157 scoped_ptr<std::string> download_data); 157 scoped_ptr<std::string> download_data);
158 // Called from ReadRawData, returns true if data is ready, false otherwise. 158 // Called from ReadRawData, returns true if data is ready, false otherwise.
159 bool ContinueReadFromDownloadData(int* bytes_read); 159 bool ContinueReadFromDownloadData(int* bytes_read);
160 // Copies from download buffer into response buffer. 160 // Copies from download buffer into response buffer.
161 bool ReadFromDownloadData(); 161 bool ReadFromDownloadData();
162 162
163 // Helper callback for handling async responses from 163 // Helper callback for handling async responses from
164 // DriveFileSystem::GetFileByResourceId(). 164 // DriveFileSystem::GetFileByResourceId().
165 void OnGetFileByResourceId(DriveFileError error, 165 void OnGetFileByResourceId(DriveFileError error,
166 const FilePath& local_file_path, 166 const FilePath& local_file_path,
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 // should still be asynchronous, so that all error reporting and data 254 // should still be asynchronous, so that all error reporting and data
255 // callbacks happen as they would for network requests, so we should still 255 // callbacks happen as they would for network requests, so we should still
256 // post task to same thread to actually start request. 256 // post task to same thread to actually start request.
257 // 2) Reply task StartAsync is invoked. 257 // 2) Reply task StartAsync is invoked.
258 // 3) If unable to get file system or request method is not GET, report start 258 // 3) If unable to get file system or request method is not GET, report start
259 // error and bail out. 259 // error and bail out.
260 // 4) Otherwise, parse request url to get resource id and file name. 260 // 4) Otherwise, parse request url to get resource id and file name.
261 // 5) Find file from file system to get its mime type, drive file path and 261 // 5) Find file from file system to get its mime type, drive file path and
262 // size of physical file. 262 // size of physical file.
263 // 6) Get file from file system asynchronously with both GetFileCallback and 263 // 6) Get file from file system asynchronously with both GetFileCallback and
264 // GetContentCallback - this would either get it from cache or 264 // gdata::GetContentCallback - this would either get it from cache or
265 // download it from Drive. 265 // download it from Drive.
266 // 7) If file is downloaded from Drive: 266 // 7) If file is downloaded from Drive:
267 // 7.1) Whenever net::URLFetcherCore::OnReadCompleted() receives a part 267 // 7.1) Whenever net::URLFetcherCore::OnReadCompleted() receives a part
268 // of the response, it invokes 268 // of the response, it invokes
269 // net::URLFetcherDelegate::OnURLFetchDownloadData() if 269 // net::URLFetcherDelegate::OnURLFetchDownloadData() if
270 // net::URLFetcherDelegate::ShouldSendDownloadData() is true. 270 // net::URLFetcherDelegate::ShouldSendDownloadData() is true.
271 // 7.2) gdata::DownloadFileOperation overrides the default implementations 271 // 7.2) gdata::DownloadFileOperation overrides the default implementations
272 // of the following methods of net::URLFetcherDelegate: 272 // of the following methods of net::URLFetcherDelegate:
273 // - ShouldSendDownloadData(): returns true for non-null 273 // - ShouldSendDownloadData(): returns true for non-null
274 // GetContentCallback. 274 // gdata::GetContentCallback.
275 // - OnURLFetchDownloadData(): invokes non-null 275 // - OnURLFetchDownloadData(): invokes non-null
276 // GetContentCallback 276 // gdata::GetContentCallback
277 // 7.3) DriveProtolHandler::OnURLFetchDownloadData (i.e. this class) 277 // 7.3) DriveProtolHandler::OnURLFetchDownloadData (i.e. this class)
278 // is at the end of the invocation chain and actually implements the 278 // is at the end of the invocation chain and actually implements the
279 // method. 279 // method.
280 // 7.4) Copies the formal download data into a growable-drainable download 280 // 7.4) Copies the formal download data into a growable-drainable download
281 // IOBuffer 281 // IOBuffer
282 // - IOBuffer has initial size 4096, same as buffer used in 282 // - IOBuffer has initial size 4096, same as buffer used in
283 // net::URLFetcherCore::OnReadCompleted. 283 // net::URLFetcherCore::OnReadCompleted.
284 // - We may end up with multiple chunks, so we use GrowableIOBuffer. 284 // - We may end up with multiple chunks, so we use GrowableIOBuffer.
285 // - We then wrap the growable buffer within a DrainableIOBuffer for 285 // - We then wrap the growable buffer within a DrainableIOBuffer for
286 // ease of progressively writing into the buffer. 286 // ease of progressively writing into the buffer.
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 DVLOG(1) << "Getting file for resource id"; 530 DVLOG(1) << "Getting file for resource id";
531 file_system_->GetFileByResourceId( 531 file_system_->GetFileByResourceId(
532 resource_id, 532 resource_id,
533 base::Bind(&DriveURLRequestJob::OnGetFileByResourceId, 533 base::Bind(&DriveURLRequestJob::OnGetFileByResourceId,
534 weak_ptr_factory_.GetWeakPtr()), 534 weak_ptr_factory_.GetWeakPtr()),
535 base::Bind(&DriveURLRequestJob::OnUrlFetchDownloadData, 535 base::Bind(&DriveURLRequestJob::OnUrlFetchDownloadData,
536 weak_ptr_factory_.GetWeakPtr())); 536 weak_ptr_factory_.GetWeakPtr()));
537 } 537 }
538 538
539 void DriveURLRequestJob::OnUrlFetchDownloadData( 539 void DriveURLRequestJob::OnUrlFetchDownloadData(
540 GDataErrorCode error, 540 gdata::GDataErrorCode error,
541 scoped_ptr<std::string> download_data) { 541 scoped_ptr<std::string> download_data) {
542 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 542 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
543 543
544 if (download_data->empty()) 544 if (download_data->empty())
545 return; 545 return;
546 546
547 // If there's insufficient space remaining in download buffer to copy download 547 // If there's insufficient space remaining in download buffer to copy download
548 // data, expand download buffer. 548 // data, expand download buffer.
549 int bytes_needed = download_data->length() - 549 int bytes_needed = download_data->length() -
550 download_drainable_buf_->BytesRemaining(); 550 download_drainable_buf_->BytesRemaining();
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 933
934 DriveProtocolHandler::~DriveProtocolHandler() { 934 DriveProtocolHandler::~DriveProtocolHandler() {
935 } 935 }
936 936
937 net::URLRequestJob* DriveProtocolHandler::MaybeCreateJob( 937 net::URLRequestJob* DriveProtocolHandler::MaybeCreateJob(
938 net::URLRequest* request, net::NetworkDelegate* network_delegate) const { 938 net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
939 DVLOG(1) << "Handling url: " << request->url().spec(); 939 DVLOG(1) << "Handling url: " << request->url().spec();
940 return new DriveURLRequestJob(request, network_delegate); 940 return new DriveURLRequestJob(request, network_delegate);
941 } 941 }
942 942
943 } // namespace gdata 943 } // namespace drive
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/drive/drive_protocol_handler.h ('k') | chrome/browser/chromeos/drive/drive_resource_metadata.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698