1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file. 4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#ifndef CHROME_BROWSER_EXTENSIONS_FILE_MANAGER_UTIL_H_ 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define CHROME_BROWSER_EXTENSIONS_FILE_MANAGER_UTIL_H_ 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#pragma once 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/file_path.h" 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/ui/shell_dialogs.h" 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "googleurl/src/gurl.h" 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass Profile; 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Helper class for wiring file browser component extension with the rest of UI. 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass FileManagerUtil { 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen public: 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Gets base file browser url. 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen static GURL GetFileBrowserUrl(); 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Converts |full_file_path| into external filesystem: url. Returns false 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // if |full_file_path| is not managed by the external filesystem provider. 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen static bool ConvertFileToFileSystemUrl(Profile* profile, 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const FilePath& full_file_path, const GURL& origin_url, GURL* url); 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Gets base file browser url for. 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen static GURL GetFileBrowserUrlWithParams( 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen SelectFileDialog::Type type, 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const string16& title, 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const FilePath& default_path, 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const SelectFileDialog::FileTypeInfo* file_types, 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen int file_type_index, 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const FilePath::StringType& default_extension); 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Opens file browser UI in its own tab on file system location defined with 34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // |default_path|. 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen static void ShowFullTabUrl(Profile* profile, 36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const FilePath& default_path); 37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen static void ViewItem(const FilePath& full_path, bool enqueue); 39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen private: 41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen FileManagerUtil() {} 42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Helper to convert numeric dialog type to a string. 43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen static std::string GetDialogTypeAsString(SelectFileDialog::Type dialog_type); 44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Help to convert potential dialog arguments into json. 45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen static std::string GetArgumentsJson( 46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen SelectFileDialog::Type type, 47ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const string16& title, 48ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const FilePath& default_path, 49ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const SelectFileDialog::FileTypeInfo* file_types, 50ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen int file_type_index, 51ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const FilePath::StringType& default_extension); 52ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 53ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen DISALLOW_COPY_AND_ASSIGN(FileManagerUtil); 54ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}; 55ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 56ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#endif // CHROME_BROWSER_EXTENSIONS_FILE_MANAGER_UTIL_H_ 57