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 #ifndef CHROME_COMMON_EXTENSIONS_API_MEDIA_GALLERIES_PRIVATE_MEDIA_GALLERIES_HANDLER_H_ 6 #define CHROME_COMMON_EXTENSIONS_API_MEDIA_GALLERIES_PRIVATE_MEDIA_GALLERIES_HANDLER_H_ 7 8 #include <set> 9 #include <string> 10 #include <vector> 11 12 #include "base/basictypes.h" 13 #include "chrome/common/extensions/extension.h" 14 #include "chrome/common/extensions/manifest_handler.h" 15 16 class URLPattern; 17 18 // Encapsulates the state of a media gallery handler. 19 class MediaGalleriesHandler { 20 public: 21 typedef std::vector<linked_ptr<MediaGalleriesHandler> > List; 22 23 MediaGalleriesHandler(); 24 ~MediaGalleriesHandler(); 25 26 std::string extension_id() const { return extension_id_; } 27 void set_extension_id(const std::string& extension_id) { 28 extension_id_ = extension_id; 29 } 30 31 const std::string& id() const { return id_; } 32 void set_id(const std::string& id) { id_ = id; } 33 34 // Default title. 35 const std::string& title() const { return title_; } 36 void set_title(const std::string& title) { title_ = title; } 37 38 // Action icon path. 39 const std::string icon_path() const { return default_icon_path_; } 40 void set_icon_path(const std::string& path) { 41 default_icon_path_ = path; 42 } 43 44 // Returns the media galleries handlers associated with the |extension|. 45 static List* GetHandlers(const extensions::Extension* extension); 46 47 private: 48 // The id for the extension this action belongs to (as defined in the 49 // extension manifest). 50 std::string extension_id_; 51 std::string title_; 52 std::string default_icon_path_; 53 // The id for the MediaGalleriesHandler, for example: "ImportToDrive". 54 std::string id_; 55 }; 56 57 // Parses the "media_galleries_handlers" extension manifest key. 58 class MediaGalleriesHandlerParser : public extensions::ManifestHandler { 59 public: 60 MediaGalleriesHandlerParser(); 61 virtual ~MediaGalleriesHandlerParser(); 62 63 virtual bool Parse(extensions::Extension* extension, 64 string16* error) OVERRIDE; 65 66 private: 67 virtual const std::vector<std::string> Keys() const OVERRIDE; 68 }; 69 70 #endif // CHROME_COMMON_EXTENSIONS_API_MEDIA_GALLERIES_PRIVATE_MEDIA_GALLERIES_HANDLER_H_ 71