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.
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_
12 #include "base/basictypes.h"
13 #include "extensions/common/extension.h"
14 #include "extensions/common/manifest_handler.h"
18 // Encapsulates the state of a media gallery handler.
19 class MediaGalleriesHandler
{
21 typedef std::vector
<linked_ptr
<MediaGalleriesHandler
> > List
;
23 MediaGalleriesHandler();
24 ~MediaGalleriesHandler();
26 std::string
extension_id() const { return extension_id_
; }
27 void set_extension_id(const std::string
& extension_id
) {
28 extension_id_
= extension_id
;
31 const std::string
& id() const { return id_
; }
32 void set_id(const std::string
& id
) { id_
= id
; }
35 const std::string
& title() const { return title_
; }
36 void set_title(const std::string
& title
) { title_
= title
; }
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
;
44 // Returns the media galleries handlers associated with the |extension|.
45 static List
* GetHandlers(const extensions::Extension
* extension
);
48 // The id for the extension this action belongs to (as defined in the
49 // extension manifest).
50 std::string extension_id_
;
52 std::string default_icon_path_
;
53 // The id for the MediaGalleriesHandler, for example: "ImportToDrive".
57 // Parses the "media_galleries_handlers" extension manifest key.
58 class MediaGalleriesHandlerParser
: public extensions::ManifestHandler
{
60 MediaGalleriesHandlerParser();
61 virtual ~MediaGalleriesHandlerParser();
63 virtual bool Parse(extensions::Extension
* extension
,
64 base::string16
* error
) OVERRIDE
;
67 virtual const std::vector
<std::string
> Keys() const OVERRIDE
;
70 #endif // CHROME_COMMON_EXTENSIONS_API_MEDIA_GALLERIES_PRIVATE_MEDIA_GALLERIES_HANDLER_H_