1// Copyright 2014 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_BROWSER_EXTENSIONS_CHROME_COMPONENT_EXTENSION_RESOURCE_MANAGER_H_
6#define CHROME_BROWSER_EXTENSIONS_CHROME_COMPONENT_EXTENSION_RESOURCE_MANAGER_H_
7
8#include <map>
9
10#include "base/basictypes.h"
11#include "base/files/file_path.h"
12#include "extensions/browser/component_extension_resource_manager.h"
13
14struct GritResourceMap;
15
16namespace extensions {
17
18class ChromeComponentExtensionResourceManager
19    : public ComponentExtensionResourceManager {
20 public:
21  ChromeComponentExtensionResourceManager();
22  virtual ~ChromeComponentExtensionResourceManager();
23
24  // Overridden from ComponentExtensionResourceManager:
25  virtual bool IsComponentExtensionResource(
26    const base::FilePath& extension_path,
27    const base::FilePath& resource_path,
28    int* resource_id) OVERRIDE;
29
30 private:
31  void AddComponentResourceEntries(const GritResourceMap* entries, size_t size);
32
33  // A map from a resource path to the resource ID.  Used by
34  // IsComponentExtensionResource.
35  std::map<base::FilePath, int> path_to_resource_id_;
36
37  DISALLOW_COPY_AND_ASSIGN(ChromeComponentExtensionResourceManager);
38};
39
40}  // namespace extensions
41
42#endif  // CHROME_BROWSER_EXTENSIONS_CHROME_COMPONENT_EXTENSION_RESOURCE_MANAGER_H_
43