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

Side by Side Diff: chrome/browser/devtools/devtools_file_helper.cc

Issue 57073004: DevTools: Add support for adding folders to DevTools workspace with drag and drop (browser part) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments addressed Created 7 years, 1 month 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/devtools/devtools_file_helper.h" 5 #include "chrome/browser/devtools/devtools_file_helper.h"
6 6
7 #include <set> 7 #include <set>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 17 matching lines...) Expand all
28 #include "content/public/browser/download_manager.h" 28 #include "content/public/browser/download_manager.h"
29 #include "content/public/browser/render_process_host.h" 29 #include "content/public/browser/render_process_host.h"
30 #include "content/public/browser/render_view_host.h" 30 #include "content/public/browser/render_view_host.h"
31 #include "content/public/browser/web_contents.h" 31 #include "content/public/browser/web_contents.h"
32 #include "content/public/browser/web_contents_view.h" 32 #include "content/public/browser/web_contents_view.h"
33 #include "content/public/common/content_client.h" 33 #include "content/public/common/content_client.h"
34 #include "content/public/common/url_constants.h" 34 #include "content/public/common/url_constants.h"
35 #include "grit/generated_resources.h" 35 #include "grit/generated_resources.h"
36 #include "ui/base/l10n/l10n_util.h" 36 #include "ui/base/l10n/l10n_util.h"
37 #include "ui/shell_dialogs/select_file_dialog.h" 37 #include "ui/shell_dialogs/select_file_dialog.h"
38 #include "webkit/browser/fileapi/file_system_url.h"
38 #include "webkit/browser/fileapi/isolated_context.h" 39 #include "webkit/browser/fileapi/isolated_context.h"
39 #include "webkit/common/fileapi/file_system_util.h" 40 #include "webkit/common/fileapi/file_system_util.h"
40 41
41 using base::Bind; 42 using base::Bind;
42 using base::Callback; 43 using base::Callback;
43 using content::BrowserContext; 44 using content::BrowserContext;
44 using content::BrowserThread; 45 using content::BrowserThread;
45 using content::DownloadManager; 46 using content::DownloadManager;
46 using content::RenderViewHost; 47 using content::RenderViewHost;
47 using content::WebContents; 48 using content::WebContents;
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 Bind(&DevToolsFileHelper::InnerAddFileSystem, 303 Bind(&DevToolsFileHelper::InnerAddFileSystem,
303 weak_factory_.GetWeakPtr(), 304 weak_factory_.GetWeakPtr(),
304 callback, 305 callback,
305 show_info_bar_callback), 306 show_info_bar_callback),
306 Bind(callback, FileSystem()), 307 Bind(callback, FileSystem()),
307 web_contents_); 308 web_contents_);
308 select_file_dialog->Show(ui::SelectFileDialog::SELECT_FOLDER, 309 select_file_dialog->Show(ui::SelectFileDialog::SELECT_FOLDER,
309 base::FilePath()); 310 base::FilePath());
310 } 311 }
311 312
313 void DevToolsFileHelper::UpgradeDraggedFileSystemPermissions(
314 const std::string& file_system_url,
315 const AddFileSystemCallback& callback,
316 const ShowInfoBarCallback& show_info_bar_callback) {
317 fileapi::FileSystemURL root_url =
318 isolated_context()->CrackURL(GURL(file_system_url));
319 if (!root_url.is_valid() || !root_url.path().empty()) {
320 callback.Run(FileSystem());
321 return;
322 }
323
324 std::vector<fileapi::MountPoints::MountPointInfo> mount_points;
325 isolated_context()->GetDraggedFileInfo(root_url.filesystem_id(),
326 &mount_points);
327
328 std::vector<fileapi::MountPoints::MountPointInfo>::const_iterator it =
329 mount_points.begin();
330 for (; it != mount_points.end(); ++it)
331 InnerAddFileSystem(callback, show_info_bar_callback, it->path);
332 }
333
312 void DevToolsFileHelper::InnerAddFileSystem( 334 void DevToolsFileHelper::InnerAddFileSystem(
313 const AddFileSystemCallback& callback, 335 const AddFileSystemCallback& callback,
314 const ShowInfoBarCallback& show_info_bar_callback, 336 const ShowInfoBarCallback& show_info_bar_callback,
315 const base::FilePath& path) { 337 const base::FilePath& path) {
316 std::string file_system_path = path.AsUTF8Unsafe(); 338 std::string file_system_path = path.AsUTF8Unsafe();
317 339
318 const DictionaryValue* file_systems_paths_value = 340 const DictionaryValue* file_systems_paths_value =
319 profile_->GetPrefs()->GetDictionary(prefs::kDevToolsFileSystemPaths); 341 profile_->GetPrefs()->GetDictionary(prefs::kDevToolsFileSystemPaths);
320 if (file_systems_paths_value->HasKey(file_system_path)) { 342 if (file_systems_paths_value->HasKey(file_system_path)) {
321 callback.Run(FileSystem()); 343 callback.Run(FileSystem());
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 DictionaryValue* file_systems_paths_value = update.Get(); 414 DictionaryValue* file_systems_paths_value = update.Get();
393 file_systems_paths_value->RemoveWithoutPathExpansion(file_system_path, NULL); 415 file_systems_paths_value->RemoveWithoutPathExpansion(file_system_path, NULL);
394 } 416 }
395 417
396 bool DevToolsFileHelper::IsFileSystemAdded( 418 bool DevToolsFileHelper::IsFileSystemAdded(
397 const std::string& file_system_path) { 419 const std::string& file_system_path) {
398 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 420 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
399 set<std::string> file_system_paths = GetAddedFileSystemPaths(profile_); 421 set<std::string> file_system_paths = GetAddedFileSystemPaths(profile_);
400 return file_system_paths.find(file_system_path) != file_system_paths.end(); 422 return file_system_paths.find(file_system_path) != file_system_paths.end();
401 } 423 }
OLDNEW
« no previous file with comments | « chrome/browser/devtools/devtools_file_helper.h ('k') | chrome/browser/devtools/devtools_window.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698