| // Copyright 2018 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_POLICY_CHROME_EXTENSION_POLICY_MIGRATOR_H_ |
| #define CHROME_BROWSER_POLICY_CHROME_EXTENSION_POLICY_MIGRATOR_H_ |
| |
| #include "components/policy/core/common/policy_migrator.h" |
| |
| namespace policy { |
| |
| // A helper class that migrates a deprecated policy to a new policy across |
| // domain boundaries, by setting up the new policy based on the old one. It can |
| // migrate a deprecated extension policy to a new Chrome policy. |
| // |
| // PolicyMigrator with chrome-specific helper functions. |
| class ChromeExtensionPolicyMigrator : public PolicyMigrator { |
| public: |
| ~ChromeExtensionPolicyMigrator() override = default; |
| |
| protected: |
| // Helper function intended for implementers who want to rename policies and |
| // copy them from an extension domain to the Chrome domain. If one of the |
| // Chrome domain policies is already set, it is not overridden. |
| // hashed_extension_id is the SHA1-hashed extension_id to avoid the necessity |
| // of possibly hardcoding extension ids. |
| static void CopyPoliciesIfUnset(PolicyBundle* bundle, |
| const std::string& hashed_extension_id, |
| base::span<const Migration> migrations); |
| }; |
| |
| } // namespace policy |
| |
| #endif // CHROME_BROWSER_POLICY_CHROME_EXTENSION_POLICY_MIGRATOR_H_ |