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

Side by Side Diff: chrome/browser/extensions/api/file_system/file_system_api.cc

Issue 11648027: Extract external file systems handling from isolated context. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 11 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/extensions/api/file_system/file_system_api.h" 5 #include "chrome/browser/extensions/api/file_system/file_system_api.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/file_path.h" 8 #include "base/file_path.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 if (!policy->CanReadFileSystem(render_view_host->GetProcess()->GetID(), 149 if (!policy->CanReadFileSystem(render_view_host->GetProcess()->GetID(),
150 filesystem_id)) { 150 filesystem_id)) {
151 *error = kSecurityError; 151 *error = kSecurityError;
152 return false; 152 return false;
153 } 153 }
154 154
155 IsolatedContext* context = IsolatedContext::GetInstance(); 155 IsolatedContext* context = IsolatedContext::GetInstance();
156 FilePath relative_path = FilePath::FromUTF8Unsafe(filesystem_path); 156 FilePath relative_path = FilePath::FromUTF8Unsafe(filesystem_path);
157 FilePath virtual_path = context->CreateVirtualRootPath(filesystem_id) 157 FilePath virtual_path = context->CreateVirtualRootPath(filesystem_id)
158 .Append(relative_path); 158 .Append(relative_path);
159 if (!context->CrackIsolatedPath(virtual_path, 159 if (!context->CrackVirtualPath(virtual_path,
160 &filesystem_id, 160 &filesystem_id,
161 NULL, 161 NULL,
162 file_path)) { 162 file_path)) {
163 *error = kInvalidParameters; 163 *error = kInvalidParameters;
164 return false; 164 return false;
165 } 165 }
166 166
167 return true; 167 return true;
168 } 168 }
169 169
170 bool DoCheckWritableFile(const FilePath& path) { 170 bool DoCheckWritableFile(const FilePath& path) {
171 // Don't allow links. 171 // Don't allow links.
172 if (file_util::PathExists(path) && file_util::IsLink(path)) 172 if (file_util::PathExists(path) && file_util::IsLink(path))
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
590 590
591 if (entry_type == WRITABLE && !HasFileSystemWritePermission()) { 591 if (entry_type == WRITABLE && !HasFileSystemWritePermission()) {
592 error_ = kRequiresFileSystemWriteError; 592 error_ = kRequiresFileSystemWriteError;
593 return false; 593 return false;
594 } 594 }
595 595
596 return ShowPicker(suggested_name, file_type_info, picker_type, entry_type); 596 return ShowPicker(suggested_name, file_type_info, picker_type, entry_type);
597 } 597 }
598 598
599 } // namespace extensions 599 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698