Update reader mode viewer according to specs
[chromium-blink-merge.git] / ash / networking_config_delegate.h
blob8d603f16fb08435909f4bbb26684b1b228f9c993
1 // Copyright 2015 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.
5 #ifndef ASH_NETWORKING_CONFIG_DELEGATE_H_
6 #define ASH_NETWORKING_CONFIG_DELEGATE_H_
8 #include <string>
10 #include "ash/ash_export.h"
11 #include "base/macros.h"
12 #include "base/memory/scoped_ptr.h"
14 namespace ash {
16 // This delegate allows the UI code in ash, e.g. |NetworkStateListDetailedView|,
17 // to access the |NetworkingConfigService| in order to determine whether the
18 // configuration of a network identified by its |service_path| is controlled by
19 // an extension.
20 class NetworkingConfigDelegate {
21 public:
22 // A struct that provides information about the extension controlling the
23 // configuration of a network.
24 struct ASH_EXPORT ExtensionInfo {
25 ExtensionInfo(const std::string& id, const std::string& name);
26 ~ExtensionInfo();
27 std::string extension_id;
28 std::string extension_name;
31 virtual ~NetworkingConfigDelegate() {}
33 // Returns information about the extension registered to control configuration
34 // of the network |service_path|. If no extension is registered, the
35 // scoped_ptr is empty.
36 virtual scoped_ptr<const ExtensionInfo> LookUpExtensionForNetwork(
37 const std::string& service_path) = 0;
39 private:
40 DISALLOW_ASSIGN(NetworkingConfigDelegate);
43 } // namespace ash
45 #endif // ASH_NETWORKING_CONFIG_DELEGATE_H_