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

Unified Diff: chrome/browser/download/save_package_file_picker_chromeos.cc

Issue 12662032: Merge SavePackageFilePicker{,ChromeOS} (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: @r198452 Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/download/save_package_file_picker_chromeos.cc
diff --git a/chrome/browser/download/save_package_file_picker_chromeos.cc b/chrome/browser/download/save_package_file_picker_chromeos.cc
deleted file mode 100644
index e96b69762f6330b963cc24b4950d948e4ad5f276..0000000000000000000000000000000000000000
--- a/chrome/browser/download/save_package_file_picker_chromeos.cc
+++ /dev/null
@@ -1,139 +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/download/save_package_file_picker_chromeos.h"
-
-#include "base/bind.h"
-#include "base/bind_helpers.h"
-#include "base/i18n/file_util_icu.h"
-#include "base/threading/sequenced_worker_pool.h"
-#include "chrome/browser/chromeos/drive/download_handler.h"
-#include "chrome/browser/chromeos/drive/file_system_util.h"
-#include "chrome/browser/platform_util.h"
-#include "chrome/browser/profiles/profile_manager.h"
-#include "chrome/browser/ui/chrome_select_file_policy.h"
-#include "content/public/browser/download_item.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/browser/web_contents_view.h"
-#include "ui/shell_dialogs/selected_file_info.h"
-
-namespace {
-
-// If false, we don't prompt the user as to where to save the file. This
-// exists only for testing.
-bool g_should_prompt_for_filename = true;
-
-// Trampoline callback between SubstituteDriveDownloadPath() and |callback|.
-void ContinueSettingUpDriveDownload(
- const content::SavePackagePathPickedCallback& callback,
- bool is_html,
- Profile* profile,
- const base::FilePath& drive_path,
- const base::FilePath& drive_tmp_download_path) {
- if (drive_tmp_download_path.empty()) // Substitution failed.
- return;
-
- callback.Run(
- drive_tmp_download_path,
- (is_html ?
- content::SAVE_PAGE_TYPE_AS_MHTML :
- content::SAVE_PAGE_TYPE_AS_ONLY_HTML),
- base::Bind(&drive::DownloadHandler::SetDownloadParams,
- base::Unretained(
- drive::DownloadHandler::GetForProfile(profile)),
- drive_path));
-}
-
-} // namespace
-
-SavePackageFilePickerChromeOS::SavePackageFilePickerChromeOS(
- content::WebContents* web_contents,
- const base::FilePath& suggested_path,
- bool is_html,
- const content::SavePackagePathPickedCallback& callback)
- : content::WebContentsObserver(web_contents),
- callback_(callback),
- is_html_(is_html) {
- base::FilePath suggested_path_copy(is_html_ ?
- suggested_path.ReplaceExtension("mhtml") :
- suggested_path);
- if (g_should_prompt_for_filename) {
- select_file_dialog_ = ui::SelectFileDialog::Create(
- this, new ChromeSelectFilePolicy(web_contents));
- ui::SelectFileDialog::FileTypeInfo file_types;
- file_types.support_drive = true;
- select_file_dialog_->SelectFile(
- ui::SelectFileDialog::SELECT_SAVEAS_FILE,
- string16(),
- suggested_path_copy,
- &file_types,
- 0,
- suggested_path_copy.Extension(),
- platform_util::GetTopLevel(web_contents->GetView()->GetNativeView()),
- NULL);
- } else {
- FileSelected(suggested_path_copy, 0, NULL);
- }
-}
-
-void SavePackageFilePickerChromeOS::SetShouldPromptUser(bool should_prompt) {
- g_should_prompt_for_filename = should_prompt;
-}
-
-SavePackageFilePickerChromeOS::~SavePackageFilePickerChromeOS() {
-}
-
-void SavePackageFilePickerChromeOS::FileSelected(
- const base::FilePath& selected_path,
- int unused_index,
- void* unused_params) {
- FileSelectedWithExtraInfo(
- ui::SelectedFileInfo(selected_path, selected_path),
- unused_index,
- unused_params);
-}
-
-void SavePackageFilePickerChromeOS::FileSelectedWithExtraInfo(
- const ui::SelectedFileInfo& selected_file_info,
- int unused_index,
- void* unused_params) {
- if (!web_contents()) {
- delete this;
- return;
- }
- base::FilePath selected_path = selected_file_info.file_path;
- file_util::NormalizeFileNameEncoding(&selected_path);
- Profile* profile = Profile::FromBrowserContext(
- web_contents()->GetBrowserContext());
- DCHECK(profile);
-
- if (drive::util::IsUnderDriveMountPoint(selected_path)) {
- // Here's a map to the callback chain:
- // SubstituteDriveDownloadPath ->
- // ContinueSettingUpDriveDownload ->
- // callback_ = SavePackage::OnPathPicked ->
- // download_created_callback = OnSavePackageDownloadCreated
- drive::DownloadHandler* drive_download_handler =
- drive::DownloadHandler::GetForProfile(profile);
- DCHECK(drive_download_handler);
- drive_download_handler->
- SubstituteDriveDownloadPath(selected_path, NULL,
- base::Bind(&ContinueSettingUpDriveDownload,
- callback_,
- is_html_,
- profile,
- selected_path));
- } else {
- callback_.Run(selected_path,
- (is_html_ ?
- content::SAVE_PAGE_TYPE_AS_MHTML :
- content::SAVE_PAGE_TYPE_AS_ONLY_HTML),
- content::SavePackageDownloadCreatedCallback());
- }
- delete this;
-}
-
-void SavePackageFilePickerChromeOS::FileSelectionCanceled(void* params) {
- delete this;
-}

Powered by Google App Engine
This is Rietveld 408576698