Index: chrome/browser/extensions/device_permissions_dialog_controller.h |
diff --git a/chrome/browser/extensions/device_permissions_dialog_controller.h b/chrome/browser/extensions/device_permissions_dialog_controller.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c46eaefaf053c877546d5064a31266ea2851b9d7 |
--- /dev/null |
+++ b/chrome/browser/extensions/device_permissions_dialog_controller.h |
@@ -0,0 +1,51 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_BROWSER_EXTENSIONS_DEVICE_PERMISSIONS_DIALOG_CONTROLLER_H_ |
+#define CHROME_BROWSER_EXTENSIONS_DEVICE_PERMISSIONS_DIALOG_CONTROLLER_H_ |
+ |
+#include <unordered_map> |
+ |
+#include "base/macros.h" |
+#include "base/memory/ref_counted.h" |
+#include "chrome/browser/chooser_controller/chooser_controller.h" |
+#include "extensions/browser/api/device_permissions_prompt.h" |
+ |
+class DevicePermissionsDialogController |
+ : public ChooserController, |
+ public extensions::DevicePermissionsPrompt::Prompt::Observer { |
+ public: |
+ DevicePermissionsDialogController( |
+ content::RenderFrameHost* owner, |
+ scoped_refptr<extensions::DevicePermissionsPrompt::Prompt> prompt); |
+ ~DevicePermissionsDialogController() override; |
+ |
+ // ChooserController: |
+ bool ShouldShowFootnoteView() const override; |
+ bool AllowMultipleSelection() const override; |
+ base::string16 GetNoOptionsText() const override; |
+ base::string16 GetOkButtonLabel() const override; |
+ size_t NumOptions() const override; |
+ base::string16 GetOption(size_t index) const override; |
+ void RefreshOptions() override; |
+ base::string16 GetStatus() const override; |
+ void Select(const std::vector<size_t>& indices) override; |
+ void Cancel() override; |
+ void Close() override; |
+ void OpenHelpCenterUrl() const override; |
+ |
+ // extensions::DevicePermissionsPrompt::Prompt::Observer: |
+ void OnDeviceAdded(size_t index, const base::string16& device_name) override; |
+ void OnDeviceRemoved(size_t index, |
+ const base::string16& device_name) override; |
+ |
+ private: |
+ scoped_refptr<extensions::DevicePermissionsPrompt::Prompt> prompt_; |
+ // Maps from device name to number of devices. |
+ std::unordered_map<base::string16, int> device_name_map_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(DevicePermissionsDialogController); |
+}; |
+ |
+#endif // CHROME_BROWSER_EXTENSIONS_DEVICE_PERMISSIONS_DIALOG_CONTROLLER_H_ |