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

Unified Diff: chrome/browser/debugger/devtools_file_helper.cc

Issue 11630004: DevTools: rename debugger/ to devtools/, move DevTools files into content/renderer/devtools. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: For landing Created 8 years 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/debugger/devtools_file_helper.cc
diff --git a/chrome/browser/debugger/devtools_file_helper.cc b/chrome/browser/debugger/devtools_file_helper.cc
deleted file mode 100644
index 2acebea47e909d6949001b921cb795b72f3e3cac..0000000000000000000000000000000000000000
--- a/chrome/browser/debugger/devtools_file_helper.cc
+++ /dev/null
@@ -1,199 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/debugger/devtools_file_helper.h"
-
-#include <vector>
-
-#include "base/bind.h"
-#include "base/callback.h"
-#include "base/file_util.h"
-#include "base/lazy_instance.h"
-#include "base/md5.h"
-#include "base/value_conversions.h"
-#include "chrome/browser/browser_process.h"
-#include "chrome/browser/download/download_prefs.h"
-#include "chrome/browser/prefs/pref_service.h"
-#include "chrome/browser/prefs/scoped_user_pref_update.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/chrome_select_file_policy.h"
-#include "chrome/common/pref_names.h"
-#include "content/public/browser/browser_context.h"
-#include "content/public/browser/download_manager.h"
-#include "ui/base/dialogs/select_file_dialog.h"
-
-using content::BrowserContext;
-using content::BrowserThread;
-using content::DownloadManager;
-
-namespace {
-
-base::LazyInstance<FilePath>::Leaky
- g_last_save_path = LAZY_INSTANCE_INITIALIZER;
-
-} // namespace
-
-class DevToolsFileHelper::SaveAsDialog : public ui::SelectFileDialog::Listener,
- public base::RefCounted<SaveAsDialog> {
- public:
- explicit SaveAsDialog(DevToolsFileHelper* helper)
- : helper_(helper) {
- select_file_dialog_ = ui::SelectFileDialog::Create(
- this, new ChromeSelectFilePolicy(NULL));
- }
-
- void ResetHelper() {
- helper_ = NULL;
- }
-
- void Show(const std::string& url,
- const FilePath& initial_path,
- const std::string& content) {
- AddRef(); // Balanced in the three listener outcomes.
-
- url_ = url;
- content_ = content;
-
- select_file_dialog_->SelectFile(ui::SelectFileDialog::SELECT_SAVEAS_FILE,
- string16(),
- initial_path,
- NULL,
- 0,
- FILE_PATH_LITERAL(""),
- NULL,
- NULL);
- }
-
- // ui::SelectFileDialog::Listener implementation.
- virtual void FileSelected(const FilePath& path,
- int index, void* params) {
- if (helper_)
- helper_->FileSelected(url_, path, content_);
- Release(); // Balanced in ::Show.
- }
-
- virtual void MultiFilesSelected(
- const std::vector<FilePath>& files, void* params) {
- Release(); // Balanced in ::Show.
- NOTREACHED() << "Should not be able to select multiple files";
- }
-
- virtual void FileSelectionCanceled(void* params) {
- Release(); // Balanced in ::Show.
- }
-
- private:
- friend class base::RefCounted<SaveAsDialog>;
- virtual ~SaveAsDialog() {}
-
- scoped_refptr<ui::SelectFileDialog> select_file_dialog_;
- std::string url_;
- std::string content_;
- DevToolsFileHelper* helper_;
-};
-
-// static
-void DevToolsFileHelper::WriteFile(const FilePath& path,
- const std::string& content) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- DCHECK(!path.empty());
-
- file_util::WriteFile(path, content.c_str(), content.length());
-}
-
-// static
-void DevToolsFileHelper::AppendToFile(const FilePath& path,
- const std::string& content) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- DCHECK(!path.empty());
-
- file_util::AppendToFile(path, content.c_str(), content.length());
-}
-
-DevToolsFileHelper::DevToolsFileHelper(Profile* profile, Delegate* delegate)
- : profile_(profile),
- delegate_(delegate) {
-}
-
-DevToolsFileHelper::~DevToolsFileHelper() {
- if (save_as_dialog_)
- save_as_dialog_->ResetHelper();
-}
-
-void DevToolsFileHelper::Save(const std::string& url,
- const std::string& content,
- bool save_as) {
- PathsMap::iterator it = saved_files_.find(url);
- if (it != saved_files_.end() && !save_as) {
- FileSelected(url, it->second, content);
- return;
- }
-
- if (save_as_dialog_)
- save_as_dialog_->ResetHelper();
-
- const DictionaryValue* file_map =
- profile_->GetPrefs()->GetDictionary(prefs::kDevToolsEditedFiles);
- FilePath initial_path;
-
- const Value* path_value;
- if (file_map->Get(base::MD5String(url), &path_value))
- base::GetValueAsFilePath(*path_value, &initial_path);
-
- if (initial_path.empty()) {
- GURL gurl(url);
- std::string suggested_file_name = gurl.is_valid() ?
- gurl.ExtractFileName() : url;
-
- if (suggested_file_name.length() > 64)
- suggested_file_name = suggested_file_name.substr(0, 64);
-
- if (!g_last_save_path.Pointer()->empty()) {
- initial_path = g_last_save_path.Pointer()->DirName().AppendASCII(
- suggested_file_name);
- } else {
- FilePath download_path = DownloadPrefs::FromDownloadManager(
- BrowserContext::GetDownloadManager(profile_))->DownloadPath();
- initial_path = download_path.AppendASCII(suggested_file_name);
- }
- }
-
- save_as_dialog_ = new SaveAsDialog(this);
- save_as_dialog_->Show(url, initial_path, content);
-}
-
-void DevToolsFileHelper::Append(const std::string& url,
- const std::string& content) {
- PathsMap::iterator it = saved_files_.find(url);
- if (it == saved_files_.end())
- return;
-
- delegate_->AppendedTo(url);
-
- BrowserThread::PostTask(
- BrowserThread::FILE, FROM_HERE,
- base::Bind(&DevToolsFileHelper::AppendToFile,
- it->second,
- content));
-}
-
-void DevToolsFileHelper::FileSelected(const std::string& url,
- const FilePath& path,
- const std::string& content) {
- *g_last_save_path.Pointer() = path;
- saved_files_[url] = path;
-
- DictionaryPrefUpdate update(profile_->GetPrefs(),
- prefs::kDevToolsEditedFiles);
- DictionaryValue* files_map = update.Get();
- files_map->SetWithoutPathExpansion(base::MD5String(url),
- base::CreateFilePathValue(path));
- delegate_->FileSavedAs(url);
-
- BrowserThread::PostTask(
- BrowserThread::FILE, FROM_HERE,
- base::Bind(&DevToolsFileHelper::WriteFile,
- path,
- content));
-}
« no previous file with comments | « chrome/browser/debugger/devtools_file_helper.h ('k') | chrome/browser/debugger/devtools_sanity_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698