1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 // 5 // This file provides miscellaneous API functions, which don't belong to 6 // other files. 7 8 #ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_MISC_H_ 9 #define CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_MISC_H_ 10 11 #include "chrome/browser/chromeos/extensions/file_manager/private_api_base.h" 12 #include "chrome/browser/chromeos/extensions/file_manager/zip_file_creator.h" 13 14 namespace file_manager { 15 16 // Implements the chrome.fileBrowserPrivate.logoutUser method. 17 class LogoutUserFunction : public SyncExtensionFunction { 18 public: 19 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.logoutUser", 20 FILEBROWSERPRIVATE_LOGOUTUSER) 21 22 LogoutUserFunction(); 23 24 protected: 25 virtual ~LogoutUserFunction(); 26 27 // SyncExtensionFunction overrides. 28 virtual bool RunImpl() OVERRIDE; 29 }; 30 31 // Implements the chrome.fileBrowserPrivate.getPreferences method. 32 // Gets settings for Files.app. 33 class GetPreferencesFunction : public SyncExtensionFunction { 34 public: 35 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.getPreferences", 36 FILEBROWSERPRIVATE_GETPREFERENCES) 37 38 GetPreferencesFunction(); 39 40 protected: 41 virtual ~GetPreferencesFunction(); 42 43 virtual bool RunImpl() OVERRIDE; 44 }; 45 46 // Implements the chrome.fileBrowserPrivate.setPreferences method. 47 // Sets settings for Files.app. 48 class SetPreferencesFunction : public SyncExtensionFunction { 49 public: 50 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.setPreferences", 51 FILEBROWSERPRIVATE_SETPREFERENCES) 52 53 SetPreferencesFunction(); 54 55 protected: 56 virtual ~SetPreferencesFunction(); 57 58 virtual bool RunImpl() OVERRIDE; 59 }; 60 61 // Implements the chrome.fileBrowserPrivate.zipSelection method. 62 // Creates a zip file for the selected files. 63 class ZipSelectionFunction : public LoggedAsyncExtensionFunction, 64 public ZipFileCreator::Observer { 65 public: 66 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.zipSelection", 67 FILEBROWSERPRIVATE_ZIPSELECTION) 68 69 ZipSelectionFunction(); 70 71 protected: 72 virtual ~ZipSelectionFunction(); 73 74 // AsyncExtensionFunction overrides. 75 virtual bool RunImpl() OVERRIDE; 76 77 // extensions::ZipFileCreator::Delegate overrides. 78 virtual void OnZipDone(bool success) OVERRIDE; 79 80 private: 81 scoped_refptr<ZipFileCreator> zip_file_creator_; 82 }; 83 84 // Implements the chrome.fileBrowserPrivate.zoom method. 85 // Changes the zoom level of the file manager by internally calling 86 // RenderViewHost::Zoom(). TODO(hirono): Remove this function once the zoom 87 // level change is supported for all apps. crbug.com/227175. 88 class ZoomFunction : public SyncExtensionFunction { 89 public: 90 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.zoom", 91 FILEBROWSERPRIVATE_ZOOM); 92 93 ZoomFunction(); 94 95 protected: 96 virtual ~ZoomFunction(); 97 virtual bool RunImpl() OVERRIDE; 98 }; 99 100 } // namespace file_manager 101 102 #endif // CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_MISC_H_ 103