| OLD | NEW |
| 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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 }; | 70 }; |
| 71 | 71 |
| 72 std::string FixupMimeType(const std::string& type) { | 72 std::string FixupMimeType(const std::string& type) { |
| 73 for (size_t i = 0; i < arraysize(kMimeTypeReplacements); i++) { | 73 for (size_t i = 0; i < arraysize(kMimeTypeReplacements); i++) { |
| 74 if (type == kMimeTypeReplacements[i].original_type) | 74 if (type == kMimeTypeReplacements[i].original_type) |
| 75 return kMimeTypeReplacements[i].new_type; | 75 return kMimeTypeReplacements[i].new_type; |
| 76 } | 76 } |
| 77 return type; | 77 return type; |
| 78 } | 78 } |
| 79 | 79 |
| 80 // Empty callback for net::FileStream::Close(). | |
| 81 void EmptyCompletionCallback(int) { | |
| 82 } | |
| 83 | |
| 84 // Helper function that extracts and unescapes resource_id from drive urls | 80 // Helper function that extracts and unescapes resource_id from drive urls |
| 85 // (drive:<resource_id>). | 81 // (drive:<resource_id>). |
| 86 bool ParseDriveUrl(const std::string& path, std::string* resource_id) { | 82 bool ParseDriveUrl(const std::string& path, std::string* resource_id) { |
| 87 const std::string drive_schema(chrome::kDriveScheme + std::string(":")); | 83 const std::string drive_schema(chrome::kDriveScheme + std::string(":")); |
| 88 if (!StartsWithASCII(path, drive_schema, false) || | 84 if (!StartsWithASCII(path, drive_schema, false) || |
| 89 path.size() <= drive_schema.size()) { | 85 path.size() <= drive_schema.size()) { |
| 90 return false; | 86 return false; |
| 91 } | 87 } |
| 92 | 88 |
| 93 std::string id = path.substr(drive_schema.size()); | 89 std::string id = path.substr(drive_schema.size()); |
| (...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 826 // Subtract the remaining bytes. | 822 // Subtract the remaining bytes. |
| 827 remaining_bytes_ -= bytes_read; | 823 remaining_bytes_ -= bytes_read; |
| 828 DCHECK_GE(remaining_bytes_, 0); | 824 DCHECK_GE(remaining_bytes_, 0); |
| 829 | 825 |
| 830 // Adjust the read buffer. | 826 // Adjust the read buffer. |
| 831 read_buf_->DidConsume(bytes_read); | 827 read_buf_->DidConsume(bytes_read); |
| 832 DCHECK_GE(read_buf_->BytesRemaining(), 0); | 828 DCHECK_GE(read_buf_->BytesRemaining(), 0); |
| 833 } | 829 } |
| 834 | 830 |
| 835 void DriveURLRequestJob::CloseFileStream() { | 831 void DriveURLRequestJob::CloseFileStream() { |
| 836 if (!stream_.get()) | 832 stream_.reset(); |
| 837 return; | |
| 838 stream_->Close(base::Bind(&EmptyCompletionCallback)); | |
| 839 // net::FileStream::Close blocks until stream is closed, so it's safe to | |
| 840 // release the pointer here. | |
| 841 stream_.reset(NULL); | |
| 842 } | 833 } |
| 843 | 834 |
| 844 void DriveURLRequestJob::NotifySuccess() { | 835 void DriveURLRequestJob::NotifySuccess() { |
| 845 HeadersCompleted(kHTTPOk, kHTTPOkText); | 836 HeadersCompleted(kHTTPOk, kHTTPOkText); |
| 846 } | 837 } |
| 847 | 838 |
| 848 void DriveURLRequestJob::NotifyFailure(int error_code) { | 839 void DriveURLRequestJob::NotifyFailure(int error_code) { |
| 849 error_ = true; | 840 error_ = true; |
| 850 | 841 |
| 851 // If we already return the headers on success, we can't change the headers | 842 // If we already return the headers on success, we can't change the headers |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 924 DriveProtocolHandler::~DriveProtocolHandler() { | 915 DriveProtocolHandler::~DriveProtocolHandler() { |
| 925 } | 916 } |
| 926 | 917 |
| 927 net::URLRequestJob* DriveProtocolHandler::MaybeCreateJob( | 918 net::URLRequestJob* DriveProtocolHandler::MaybeCreateJob( |
| 928 net::URLRequest* request, net::NetworkDelegate* network_delegate) const { | 919 net::URLRequest* request, net::NetworkDelegate* network_delegate) const { |
| 929 DVLOG(1) << "Handling url: " << request->url().spec(); | 920 DVLOG(1) << "Handling url: " << request->url().spec(); |
| 930 return new DriveURLRequestJob(request, network_delegate); | 921 return new DriveURLRequestJob(request, network_delegate); |
| 931 } | 922 } |
| 932 | 923 |
| 933 } // namespace drive | 924 } // namespace drive |
| OLD | NEW |