| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "content/browser/renderer_host/pepper/pepper_file_system_browser_host.h
" | 5 #include "content/browser/renderer_host/pepper/pepper_file_system_browser_host.h
" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/callback.h" | 8 #include "base/callback.h" |
| 9 #include "content/browser/renderer_host/pepper/pepper_file_io_host.h" | 9 #include "content/browser/renderer_host/pepper/pepper_file_io_host.h" |
| 10 #include "content/browser/renderer_host/pepper/quota_reservation.h" | 10 #include "content/browser/renderer_host/pepper/quota_reservation.h" |
| 11 #include "content/common/pepper_file_util.h" |
| 11 #include "content/public/browser/browser_ppapi_host.h" | 12 #include "content/public/browser/browser_ppapi_host.h" |
| 12 #include "content/public/browser/browser_thread.h" | 13 #include "content/public/browser/browser_thread.h" |
| 13 #include "content/public/browser/plugin_service.h" | 14 #include "content/public/browser/plugin_service.h" |
| 14 #include "content/public/browser/render_process_host.h" | 15 #include "content/public/browser/render_process_host.h" |
| 15 #include "content/public/browser/storage_partition.h" | 16 #include "content/public/browser/storage_partition.h" |
| 16 #include "content/public/common/pepper_plugin_info.h" | 17 #include "content/public/common/pepper_plugin_info.h" |
| 17 #include "net/base/mime_util.h" | 18 #include "net/base/mime_util.h" |
| 18 #include "ppapi/c/pp_errors.h" | 19 #include "ppapi/c/pp_errors.h" |
| 19 #include "ppapi/host/dispatch_host_message.h" | 20 #include "ppapi/host/dispatch_host_message.h" |
| 20 #include "ppapi/host/ppapi_host.h" | 21 #include "ppapi/host/ppapi_host.h" |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 int64_t /* unused */) { | 157 int64_t /* unused */) { |
| 157 // TODO(raymes): The file system size is now unused by FileSystemDispatcher. | 158 // TODO(raymes): The file system size is now unused by FileSystemDispatcher. |
| 158 // Figure out why. Why is the file system size signed? | 159 // Figure out why. Why is the file system size signed? |
| 159 | 160 |
| 160 // Not allow multiple opens. | 161 // Not allow multiple opens. |
| 161 if (called_open_) | 162 if (called_open_) |
| 162 return PP_ERROR_INPROGRESS; | 163 return PP_ERROR_INPROGRESS; |
| 163 called_open_ = true; | 164 called_open_ = true; |
| 164 | 165 |
| 165 fileapi::FileSystemType file_system_type = | 166 fileapi::FileSystemType file_system_type = |
| 166 ppapi::PepperFileSystemTypeToFileSystemType(type_); | 167 PepperFileSystemTypeToFileSystemType(type_); |
| 167 if (file_system_type == fileapi::kFileSystemTypeUnknown) | 168 if (file_system_type == fileapi::kFileSystemTypeUnknown) |
| 168 return PP_ERROR_FAILED; | 169 return PP_ERROR_FAILED; |
| 169 | 170 |
| 170 int render_process_id = 0; | 171 int render_process_id = 0; |
| 171 int unused; | 172 int unused; |
| 172 if (!browser_ppapi_host_->GetRenderFrameIDsForInstance( | 173 if (!browser_ppapi_host_->GetRenderFrameIDsForInstance( |
| 173 pp_instance(), &render_process_id, &unused)) { | 174 pp_instance(), &render_process_id, &unused)) { |
| 174 return PP_ERROR_FAILED; | 175 return PP_ERROR_FAILED; |
| 175 } | 176 } |
| 176 | 177 |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 419 // Some file system types don't have quota. | 420 // Some file system types don't have quota. |
| 420 if (!ppapi::FileSystemTypeHasQuota(type_)) | 421 if (!ppapi::FileSystemTypeHasQuota(type_)) |
| 421 return false; | 422 return false; |
| 422 | 423 |
| 423 // For file system types with quota, some origins have unlimited storage. | 424 // For file system types with quota, some origins have unlimited storage. |
| 424 quota::QuotaManagerProxy* quota_manager_proxy = | 425 quota::QuotaManagerProxy* quota_manager_proxy = |
| 425 file_system_context_->quota_manager_proxy(); | 426 file_system_context_->quota_manager_proxy(); |
| 426 CHECK(quota_manager_proxy); | 427 CHECK(quota_manager_proxy); |
| 427 CHECK(quota_manager_proxy->quota_manager()); | 428 CHECK(quota_manager_proxy->quota_manager()); |
| 428 fileapi::FileSystemType file_system_type = | 429 fileapi::FileSystemType file_system_type = |
| 429 ppapi::PepperFileSystemTypeToFileSystemType(type_); | 430 PepperFileSystemTypeToFileSystemType(type_); |
| 430 return !quota_manager_proxy->quota_manager()->IsStorageUnlimited( | 431 return !quota_manager_proxy->quota_manager()->IsStorageUnlimited( |
| 431 root_url_.GetOrigin(), | 432 root_url_.GetOrigin(), |
| 432 fileapi::FileSystemTypeToQuotaStorageType(file_system_type)); | 433 fileapi::FileSystemTypeToQuotaStorageType(file_system_type)); |
| 433 } | 434 } |
| 434 | 435 |
| 435 void PepperFileSystemBrowserHost::CreateQuotaReservation( | 436 void PepperFileSystemBrowserHost::CreateQuotaReservation( |
| 436 const base::Closure& callback) { | 437 const base::Closure& callback) { |
| 437 DCHECK(root_url_.is_valid()); | 438 DCHECK(root_url_.is_valid()); |
| 438 base::PostTaskAndReplyWithResult( | 439 base::PostTaskAndReplyWithResult( |
| 439 file_system_context_->default_file_task_runner(), | 440 file_system_context_->default_file_task_runner(), |
| 440 FROM_HERE, | 441 FROM_HERE, |
| 441 base::Bind(&QuotaReservation::Create, | 442 base::Bind(&QuotaReservation::Create, |
| 442 file_system_context_, | 443 file_system_context_, |
| 443 root_url_.GetOrigin(), | 444 root_url_.GetOrigin(), |
| 444 ppapi::PepperFileSystemTypeToFileSystemType(type_)), | 445 PepperFileSystemTypeToFileSystemType(type_)), |
| 445 base::Bind(&PepperFileSystemBrowserHost::GotQuotaReservation, | 446 base::Bind(&PepperFileSystemBrowserHost::GotQuotaReservation, |
| 446 weak_factory_.GetWeakPtr(), | 447 weak_factory_.GetWeakPtr(), |
| 447 callback)); | 448 callback)); |
| 448 } | 449 } |
| 449 | 450 |
| 450 void PepperFileSystemBrowserHost::GotQuotaReservation( | 451 void PepperFileSystemBrowserHost::GotQuotaReservation( |
| 451 const base::Closure& callback, | 452 const base::Closure& callback, |
| 452 scoped_refptr<QuotaReservation> quota_reservation) { | 453 scoped_refptr<QuotaReservation> quota_reservation) { |
| 453 quota_reservation_ = quota_reservation; | 454 quota_reservation_ = quota_reservation; |
| 454 callback.Run(); | 455 callback.Run(); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 500 if (!IsAsciiAlpha(*it) && !IsAsciiDigit(*it) && *it != '.' && *it != '_' && | 501 if (!IsAsciiAlpha(*it) && !IsAsciiDigit(*it) && *it != '.' && *it != '_' && |
| 501 *it != '-') { | 502 *it != '-') { |
| 502 LOG(WARNING) << "Failed to generate a plugin id."; | 503 LOG(WARNING) << "Failed to generate a plugin id."; |
| 503 return std::string(); | 504 return std::string(); |
| 504 } | 505 } |
| 505 } | 506 } |
| 506 return output; | 507 return output; |
| 507 } | 508 } |
| 508 | 509 |
| 509 } // namespace content | 510 } // namespace content |
| OLD | NEW |