| 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" |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 // all pending file system operations. | 78 // all pending file system operations. |
| 79 if (file_system_operation_runner_) | 79 if (file_system_operation_runner_) |
| 80 file_system_operation_runner_->Shutdown(); | 80 file_system_operation_runner_->Shutdown(); |
| 81 } | 81 } |
| 82 | 82 |
| 83 void PepperFileSystemBrowserHost::OpenExisting(const GURL& root_url, | 83 void PepperFileSystemBrowserHost::OpenExisting(const GURL& root_url, |
| 84 const base::Closure& callback) { | 84 const base::Closure& callback) { |
| 85 root_url_ = root_url; | 85 root_url_ = root_url; |
| 86 int render_process_id = 0; | 86 int render_process_id = 0; |
| 87 int unused; | 87 int unused; |
| 88 if (!browser_ppapi_host_->GetRenderViewIDsForInstance( | 88 if (!browser_ppapi_host_->GetRenderFrameIDsForInstance( |
| 89 pp_instance(), &render_process_id, &unused)) { | 89 pp_instance(), &render_process_id, &unused)) { |
| 90 NOTREACHED(); | 90 NOTREACHED(); |
| 91 } | 91 } |
| 92 called_open_ = true; | 92 called_open_ = true; |
| 93 // Get the file system context asynchronously, and then complete the Open | 93 // Get the file system context asynchronously, and then complete the Open |
| 94 // operation by calling |callback|. | 94 // operation by calling |callback|. |
| 95 BrowserThread::PostTaskAndReplyWithResult( | 95 BrowserThread::PostTaskAndReplyWithResult( |
| 96 BrowserThread::UI, | 96 BrowserThread::UI, |
| 97 FROM_HERE, | 97 FROM_HERE, |
| 98 base::Bind(&GetFileSystemContextFromRenderId, render_process_id), | 98 base::Bind(&GetFileSystemContextFromRenderId, render_process_id), |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 return PP_ERROR_INPROGRESS; | 190 return PP_ERROR_INPROGRESS; |
| 191 called_open_ = true; | 191 called_open_ = true; |
| 192 | 192 |
| 193 fileapi::FileSystemType file_system_type = | 193 fileapi::FileSystemType file_system_type = |
| 194 ppapi::PepperFileSystemTypeToFileSystemType(type_); | 194 ppapi::PepperFileSystemTypeToFileSystemType(type_); |
| 195 if (file_system_type == fileapi::kFileSystemTypeUnknown) | 195 if (file_system_type == fileapi::kFileSystemTypeUnknown) |
| 196 return PP_ERROR_FAILED; | 196 return PP_ERROR_FAILED; |
| 197 | 197 |
| 198 int render_process_id = 0; | 198 int render_process_id = 0; |
| 199 int unused; | 199 int unused; |
| 200 if (!browser_ppapi_host_->GetRenderViewIDsForInstance(pp_instance(), | 200 if (!browser_ppapi_host_->GetRenderFrameIDsForInstance(pp_instance(), |
| 201 &render_process_id, | 201 &render_process_id, |
| 202 &unused)) { | 202 &unused)) { |
| 203 return PP_ERROR_FAILED; | 203 return PP_ERROR_FAILED; |
| 204 } | 204 } |
| 205 | 205 |
| 206 BrowserThread::PostTaskAndReplyWithResult( | 206 BrowserThread::PostTaskAndReplyWithResult( |
| 207 BrowserThread::UI, | 207 BrowserThread::UI, |
| 208 FROM_HERE, | 208 FROM_HERE, |
| 209 base::Bind(&GetFileSystemContextFromRenderId, render_process_id), | 209 base::Bind(&GetFileSystemContextFromRenderId, render_process_id), |
| 210 base::Bind(&PepperFileSystemBrowserHost::OpenFileSystem, | 210 base::Bind(&PepperFileSystemBrowserHost::OpenFileSystem, |
| 211 weak_factory_.GetWeakPtr(), | 211 weak_factory_.GetWeakPtr(), |
| 212 context->MakeReplyMessageContext(), | 212 context->MakeReplyMessageContext(), |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 if (called_open_) | 353 if (called_open_) |
| 354 return PP_ERROR_INPROGRESS; | 354 return PP_ERROR_INPROGRESS; |
| 355 called_open_ = true; | 355 called_open_ = true; |
| 356 | 356 |
| 357 // Do a sanity check. | 357 // Do a sanity check. |
| 358 if (!fileapi::ValidateIsolatedFileSystemId(fsid)) | 358 if (!fileapi::ValidateIsolatedFileSystemId(fsid)) |
| 359 return PP_ERROR_BADARGUMENT; | 359 return PP_ERROR_BADARGUMENT; |
| 360 | 360 |
| 361 int render_process_id = 0; | 361 int render_process_id = 0; |
| 362 int unused; | 362 int unused; |
| 363 if (!browser_ppapi_host_->GetRenderViewIDsForInstance(pp_instance(), | 363 if (!browser_ppapi_host_->GetRenderFrameIDsForInstance(pp_instance(), |
| 364 &render_process_id, | 364 &render_process_id, |
| 365 &unused)) { | 365 &unused)) { |
| 366 fileapi::IsolatedContext::GetInstance()->RevokeFileSystem(fsid); | 366 fileapi::IsolatedContext::GetInstance()->RevokeFileSystem(fsid); |
| 367 return PP_ERROR_FAILED; | 367 return PP_ERROR_FAILED; |
| 368 } | 368 } |
| 369 | 369 |
| 370 root_url_ = GURL(fileapi::GetIsolatedFileSystemRootURIString( | 370 root_url_ = GURL(fileapi::GetIsolatedFileSystemRootURIString( |
| 371 browser_ppapi_host_->GetDocumentURLForInstance(pp_instance()).GetOrigin(), | 371 browser_ppapi_host_->GetDocumentURLForInstance(pp_instance()).GetOrigin(), |
| 372 fsid, ppapi::IsolatedFileSystemTypeToRootName(type))); | 372 fsid, ppapi::IsolatedFileSystemTypeToRootName(type))); |
| 373 | 373 |
| 374 BrowserThread::PostTaskAndReplyWithResult( | 374 BrowserThread::PostTaskAndReplyWithResult( |
| 375 BrowserThread::UI, | 375 BrowserThread::UI, |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 540 if (!IsAsciiAlpha(*it) && !IsAsciiDigit(*it) && | 540 if (!IsAsciiAlpha(*it) && !IsAsciiDigit(*it) && |
| 541 *it != '.' && *it != '_' && *it != '-') { | 541 *it != '.' && *it != '_' && *it != '-') { |
| 542 LOG(WARNING) << "Failed to generate a plugin id."; | 542 LOG(WARNING) << "Failed to generate a plugin id."; |
| 543 return std::string(); | 543 return std::string(); |
| 544 } | 544 } |
| 545 } | 545 } |
| 546 return output; | 546 return output; |
| 547 } | 547 } |
| 548 | 548 |
| 549 } // namespace content | 549 } // namespace content |
| OLD | NEW |