// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef EXTENSIONS_COMMON_COMMAND_H_ #define EXTENSIONS_COMMON_COMMAND_H_ #include #include #include #include "base/values.h" #include "ui/base/accelerators/accelerator.h" #include "ui/base/accelerators/command.h" namespace extensions { class Command : public ui::Command { public: Command() = default; Command(std::string_view command_name, std::u16string_view description, std::string_view accelerator, bool global); Command(const Command& other) = default; ~Command() override = default; // The platform value for the Command. static std::string CommandPlatform(); // Parse a string as an accelerator. If the accelerator is unparsable then // a generic ui::Accelerator object will be returns (with key_code Unknown). static ui::Accelerator StringToAccelerator(std::string_view accelerator, std::string_view command_name); // Return true if the |command_name| is one of the following action events: // Action Command Event, Browser Action Command Event, Page Action Command // Event. static bool IsActionRelatedCommand(std::string_view command_name); // Parse the command. bool Parse(const base::Value::Dict& command, std::string_view command_name, int index, std::u16string* error); }; } // namespace extensions #endif // EXTENSIONS_COMMON_COMMAND_H_