| // Copyright 2020 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_GOOGLE_GOOGLE_UPDATE_POLICY_FETCHER_WIN_H_ |
| #define CHROME_BROWSER_GOOGLE_GOOGLE_UPDATE_POLICY_FETCHER_WIN_H_ |
| |
| #include <memory> |
| #include <string> |
| |
| #include "base/time/time.h" |
| #include "base/values.h" |
| #include "components/policy/core/browser/policy_conversions.h" |
| |
| namespace policy { |
| class PolicyMap; |
| } |
| |
| struct GoogleUpdateState { |
| std::wstring version; |
| base::Time last_checked_time; |
| }; |
| |
| struct GoogleUpdatePoliciesAndState { |
| GoogleUpdatePoliciesAndState(); |
| ~GoogleUpdatePoliciesAndState(); |
| std::unique_ptr<policy::PolicyMap> policies; |
| std::unique_ptr<GoogleUpdateState> state; |
| }; |
| |
| // Returns a list of all the Google Update policies available through the |
| // IPolicyStatus COM interface. |
| base::Value GetGoogleUpdatePolicyNames(); |
| |
| // Returns a list of all the Google Update policies available through the |
| // IPolicyStatus COM interface. |
| policy::PolicyConversions::PolicyToSchemaMap GetGoogleUpdatePolicySchemas(); |
| |
| // Fetches all the Google Update Policies and state values available through the |
| // IPolicyStatus2 or IPolicyStatus COM interface. Only the policies that have |
| // been set are returned by this function. This function returns null if the |
| // fetch fails because IPolicyStatus interface could not be instantiated. This |
| // function must run on a COM STA thread because it makes some COM calls. |
| std::unique_ptr<GoogleUpdatePoliciesAndState> GetGoogleUpdatePoliciesAndState(); |
| |
| #endif // CHROME_BROWSER_GOOGLE_GOOGLE_UPDATE_POLICY_FETCHER_WIN_H_ |