1 // Copyright 2020 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_UI_WEBUI_SETTINGS_CHROMEOS_INTERNET_STRINGS_PROVIDER_H_
6 #define CHROME_BROWSER_UI_WEBUI_SETTINGS_CHROMEOS_INTERNET_STRINGS_PROVIDER_H_
7 
8 #include <vector>
9 
10 #include "chrome/browser/ui/webui/settings/chromeos/os_settings_per_page_strings_provider.h"
11 #include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h"
12 #include "mojo/public/cpp/bindings/receiver.h"
13 #include "mojo/public/cpp/bindings/remote.h"
14 
15 class Profile;
16 
17 namespace content {
18 class WebUIDataSource;
19 }  // namespace content
20 
21 namespace chromeos {
22 namespace settings {
23 
24 class InternetStringsProvider
25     : public OsSettingsPerPageStringsProvider,
26       public network_config::mojom::CrosNetworkConfigObserver {
27  public:
28   InternetStringsProvider(Profile* profile, Delegate* per_page_delegate);
29   ~InternetStringsProvider() override;
30 
31  private:
32   // OsSettingsPerPageStringsProvider:
33   void AddUiStrings(content::WebUIDataSource* html_source) const override;
34 
35   // network_config::mojom::CrosNetworkConfigObserver:
OnActiveNetworksChanged(std::vector<network_config::mojom::NetworkStatePropertiesPtr> networks)36   void OnActiveNetworksChanged(
37       std::vector<network_config::mojom::NetworkStatePropertiesPtr> networks)
38       override {}
OnNetworkStateChanged(chromeos::network_config::mojom::NetworkStatePropertiesPtr network)39   void OnNetworkStateChanged(
40       chromeos::network_config::mojom::NetworkStatePropertiesPtr network)
41       override {}
OnNetworkStateListChanged()42   void OnNetworkStateListChanged() override {}
OnVpnProvidersChanged()43   void OnVpnProvidersChanged() override {}
OnNetworkCertificatesChanged()44   void OnNetworkCertificatesChanged() override {}
45   void OnDeviceStateListChanged() override;
46 
47   void FetchDeviceList();
48   void OnDeviceList(
49       std::vector<network_config::mojom::DeviceStatePropertiesPtr> devices);
50 
51   mojo::Receiver<network_config::mojom::CrosNetworkConfigObserver> receiver_{
52       this};
53   mojo::Remote<network_config::mojom::CrosNetworkConfig> cros_network_config_;
54 };
55 
56 }  // namespace settings
57 }  // namespace chromeos
58 
59 #endif  // CHROME_BROWSER_UI_WEBUI_SETTINGS_CHROMEOS_INTERNET_STRINGS_PROVIDER_H_
60