Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Side by Side Diff: chrome/browser/chromeos/imageburner/burn_device_handler.cc

Issue 679633002: chromeos: Remove legacy code for chrome://imageburner (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix unit_tests build Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2013 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 #include "chrome/browser/chromeos/imageburner/burn_device_handler.h"
6
7 #include <string>
8 #include <vector>
9
10 #include "base/logging.h"
11 #include "chromeos/dbus/cros_disks_client.h"
12 #include "chromeos/disks/disk_mount_manager.h"
13
14 namespace chromeos {
15 namespace imageburner {
16
17 using disks::DiskMountManager;
18
19 namespace {
20
21 // Returns true when |disk| is a device on which we can burn recovery image.
22 bool IsBurnableDevice(const DiskMountManager::Disk& disk) {
23 return disk.is_parent() && !disk.on_boot_device() && disk.has_media() &&
24 (disk.device_type() == DEVICE_TYPE_USB ||
25 disk.device_type() == DEVICE_TYPE_SD);
26 }
27
28 } // namespace
29
30 BurnDeviceHandler::BurnDeviceHandler(DiskMountManager* disk_mount_manager)
31 : disk_mount_manager_(disk_mount_manager) {
32 DCHECK(disk_mount_manager_);
33 disk_mount_manager_->AddObserver(this);
34 }
35
36 BurnDeviceHandler::~BurnDeviceHandler() {
37 disk_mount_manager_->RemoveObserver(this);
38 }
39
40 void BurnDeviceHandler::SetCallbacks(const DiskCallback& add_callback,
41 const DiskCallback& remove_callback) {
42 add_callback_ = add_callback;
43 remove_callback_ = remove_callback;
44 }
45
46 std::vector<DiskMountManager::Disk> BurnDeviceHandler::GetBurnableDevices() {
47 const DiskMountManager::DiskMap& disks = disk_mount_manager_->disks();
48 std::vector<DiskMountManager::Disk> result;
49 for (DiskMountManager::DiskMap::const_iterator iter = disks.begin();
50 iter != disks.end();
51 ++iter) {
52 const DiskMountManager::Disk& disk = *iter->second;
53 if (IsBurnableDevice(disk))
54 result.push_back(disk);
55 }
56 return result;
57 }
58
59 void BurnDeviceHandler::OnDiskEvent(DiskMountManager::DiskEvent event,
60 const DiskMountManager::Disk* disk) {
61 // We are only interested in burnable devices.
62 if (!IsBurnableDevice(*disk))
63 return;
64
65 switch (event) {
66 case DiskMountManager::DISK_ADDED:
67 add_callback_.Run(*disk);
68 break;
69 case DiskMountManager::DISK_REMOVED:
70 remove_callback_.Run(*disk);
71 break;
72 default: {
73 // Do nothing.
74 }
75 }
76 }
77
78 void BurnDeviceHandler::OnDeviceEvent(DiskMountManager::DeviceEvent event,
79 const std::string& device_path) {
80 // Do nothing.
81 }
82
83 void BurnDeviceHandler::OnMountEvent(
84 DiskMountManager::MountEvent event,
85 MountError error_code,
86 const DiskMountManager::MountPointInfo& mount_info) {
87 // Do nothing.
88 }
89
90 void BurnDeviceHandler::OnFormatEvent(DiskMountManager::FormatEvent event,
91 FormatError error_code,
92 const std::string& device_path) {
93 // Do nothing.
94 }
95
96 } // namespace imageburner
97 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698