• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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_FILE_BROWSER_HANDLER_H_
6 #define CHROME_COMMON_EXTENSIONS_FILE_BROWSER_HANDLER_H_
7 #pragma once
8 
9 #include <string>
10 #include <vector>
11 
12 #include "base/basictypes.h"
13 #include "chrome/common/extensions/url_pattern.h"
14 #include "googleurl/src/gurl.h"
15 
16 class URLPattern;
17 
18 // FileBrowserHandler encapsulates the state of a file browser action.
19 class FileBrowserHandler {
20  public:
21   typedef std::vector<URLPattern> PatternList;
22 
23   FileBrowserHandler();
24   ~FileBrowserHandler();
25 
26   // extension id
extension_id()27   std::string extension_id() const { return extension_id_; }
set_extension_id(const std::string & extension_id)28   void set_extension_id(const std::string& extension_id) {
29     extension_id_ = extension_id;
30   }
31 
32   // action id
id()33   const std::string& id() const { return id_; }
set_id(const std::string & id)34   void set_id(const std::string& id) { id_ = id; }
35 
36   // default title
title()37   const std::string& title() const { return title_; }
set_title(const std::string & title)38   void set_title(const std::string& title) { title_ = title; }
39 
40   // File schema URL patterns.
file_url_patterns()41   const PatternList& file_url_patterns() const { return patterns_; }
42   void AddPattern(const URLPattern& pattern);
43   bool MatchesURL(const GURL& url) const;
44   void ClearPatterns();
45 
46   // Action icon path.
icon_path()47   const std::string icon_path() const { return default_icon_path_; }
set_icon_path(const std::string & path)48   void set_icon_path(const std::string& path) {
49     default_icon_path_ = path;
50   }
51 
52  private:
53   // The id for the extension this action belongs to (as defined in the
54   // extension manifest).
55   std::string extension_id_;
56   std::string title_;
57   std::string default_icon_path_;
58   // The id for the FileBrowserHandler, for example: "PdfFileAction".
59   std::string id_;
60   // A list of file filters.
61   PatternList patterns_;
62 };
63 
64 #endif  // CHROME_COMMON_EXTENSIONS_FILE_BROWSER_HANDLER_H_
65