1// Copyright (c) 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_EXTENSION_ACTION_PAGE_ACTION_HANDLER_H_
6#define CHROME_COMMON_EXTENSIONS_API_EXTENSION_ACTION_PAGE_ACTION_HANDLER_H_
7
8#include <string>
9
10#include "chrome/common/extensions/api/extension_action/action_info.h"
11#include "chrome/common/extensions/extension.h"
12#include "chrome/common/extensions/manifest_handler.h"
13
14namespace extensions {
15
16// Parses the "page_action" manifest key.
17class PageActionHandler : public ManifestHandler {
18 public:
19  PageActionHandler();
20  virtual ~PageActionHandler();
21
22  virtual bool Parse(Extension* extension, string16* error) OVERRIDE;
23  virtual bool Validate(const Extension* extension,
24                        std::string* error,
25                        std::vector<InstallWarning>* warnings) const OVERRIDE;
26
27 private:
28  virtual const std::vector<std::string> Keys() const OVERRIDE;
29
30  DISALLOW_COPY_AND_ASSIGN(PageActionHandler);
31};
32
33}  // namespace extensions
34
35#endif  // CHROME_COMMON_EXTENSIONS_API_EXTENSION_ACTION_PAGE_ACTION_HANDLER_H_
36