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

Side by Side Diff: chrome/browser/chromeos/extensions/file_browser_event_router.cc

Issue 9019002: [CrosDisksClient] Determine device type from DeviceMediaType property sent by cros-disks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 10 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/extensions/file_browser_event_router.h" 5 #include "chrome/browser/chromeos/extensions/file_browser_event_router.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/json/json_writer.h" 8 #include "base/json/json_writer.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
11 #include "base/values.h" 11 #include "base/values.h"
12 #include "chrome/browser/chromeos/extensions/file_browser_notifications.h" 12 #include "chrome/browser/chromeos/extensions/file_browser_notifications.h"
13 #include "chrome/browser/chromeos/login/user_manager.h" 13 #include "chrome/browser/chromeos/login/user_manager.h"
14 #include "chrome/browser/extensions/extension_event_names.h" 14 #include "chrome/browser/extensions/extension_event_names.h"
15 #include "chrome/browser/extensions/extension_event_router.h" 15 #include "chrome/browser/extensions/extension_event_router.h"
16 #include "chrome/browser/extensions/extension_service.h" 16 #include "chrome/browser/extensions/extension_service.h"
17 #include "chrome/browser/extensions/file_manager_util.h" 17 #include "chrome/browser/extensions/file_manager_util.h"
18 #include "chrome/browser/profiles/profile.h" 18 #include "chrome/browser/profiles/profile.h"
19 #include "grit/generated_resources.h" 19 #include "grit/generated_resources.h"
20 #include "webkit/fileapi/file_system_types.h" 20 #include "webkit/fileapi/file_system_types.h"
21 #include "webkit/fileapi/file_system_util.h" 21 #include "webkit/fileapi/file_system_util.h"
22 22
23 using chromeos::disks::DiskMountManager;
24 using chromeos::disks::DiskMountManagerEventType;
23 using content::BrowserThread; 25 using content::BrowserThread;
24 26
25 namespace { 27 namespace {
26 const char kDiskAddedEventType[] = "added"; 28 const char kDiskAddedEventType[] = "added";
27 const char kDiskRemovedEventType[] = "removed"; 29 const char kDiskRemovedEventType[] = "removed";
28 30
29 const char kPathChanged[] = "changed"; 31 const char kPathChanged[] = "changed";
30 const char kPathWatchError[] = "error"; 32 const char kPathWatchError[] = "error";
31 33
32 const char* DeviceTypeToString(chromeos::DeviceType type) {
33 switch (type) {
34 case chromeos::FLASH:
35 return "flash";
36 case chromeos::HDD:
37 return "hdd";
38 case chromeos::OPTICAL:
39 return "optical";
40 default:
41 break;
42 }
43 return "undefined";
44 }
45
46 DictionaryValue* DiskToDictionaryValue( 34 DictionaryValue* DiskToDictionaryValue(
47 const chromeos::disks::DiskMountManager::Disk* disk) { 35 const DiskMountManager::Disk* disk) {
48 DictionaryValue* result = new DictionaryValue(); 36 DictionaryValue* result = new DictionaryValue();
49 result->SetString("mountPath", disk->mount_path()); 37 result->SetString("mountPath", disk->mount_path());
50 result->SetString("devicePath", disk->device_path()); 38 result->SetString("devicePath", disk->device_path());
51 result->SetString("label", disk->device_label()); 39 result->SetString("label", disk->device_label());
52 result->SetString("deviceType", DeviceTypeToString(disk->device_type())); 40 result->SetString("deviceType",
41 DiskMountManager::DeviceTypeToString(disk->device_type()));
53 result->SetInteger("totalSizeKB", disk->total_size_in_bytes() / 1024); 42 result->SetInteger("totalSizeKB", disk->total_size_in_bytes() / 1024);
54 result->SetBoolean("readOnly", disk->is_read_only()); 43 result->SetBoolean("readOnly", disk->is_read_only());
55 return result; 44 return result;
56 } 45 }
57 } 46 }
58 47
59 const char* MountErrorToString(chromeos::MountError error) { 48 const char* MountErrorToString(chromeos::MountError error) {
60 switch (error) { 49 switch (error) {
61 case chromeos::MOUNT_ERROR_NONE: 50 case chromeos::MOUNT_ERROR_NONE:
62 return "success"; 51 return "success";
(...skipping 24 matching lines...) Expand all
87 76
88 ExtensionFileBrowserEventRouter::~ExtensionFileBrowserEventRouter() { 77 ExtensionFileBrowserEventRouter::~ExtensionFileBrowserEventRouter() {
89 DCHECK(file_watchers_.empty()); 78 DCHECK(file_watchers_.empty());
90 STLDeleteValues(&file_watchers_); 79 STLDeleteValues(&file_watchers_);
91 80
92 if (!profile_) { 81 if (!profile_) {
93 NOTREACHED(); 82 NOTREACHED();
94 return; 83 return;
95 } 84 }
96 profile_ = NULL; 85 profile_ = NULL;
97 chromeos::disks::DiskMountManager::GetInstance()->RemoveObserver(this); 86 DiskMountManager::GetInstance()->RemoveObserver(this);
98 } 87 }
99 88
100 void ExtensionFileBrowserEventRouter::ObserveFileSystemEvents() { 89 void ExtensionFileBrowserEventRouter::ObserveFileSystemEvents() {
101 if (!profile_) { 90 if (!profile_) {
102 NOTREACHED(); 91 NOTREACHED();
103 return; 92 return;
104 } 93 }
105 if (chromeos::UserManager::Get()->user_is_logged_in()) { 94 if (chromeos::UserManager::Get()->user_is_logged_in()) {
106 chromeos::disks::DiskMountManager* disk_mount_manager = 95 DiskMountManager* disk_mount_manager = DiskMountManager::GetInstance();
107 chromeos::disks::DiskMountManager::GetInstance();
108 disk_mount_manager->RemoveObserver(this); 96 disk_mount_manager->RemoveObserver(this);
109 disk_mount_manager->AddObserver(this); 97 disk_mount_manager->AddObserver(this);
110 disk_mount_manager->RequestMountInfoRefresh(); 98 disk_mount_manager->RequestMountInfoRefresh();
111 } 99 }
112 } 100 }
113 101
114 // File watch setup routines. 102 // File watch setup routines.
115 bool ExtensionFileBrowserEventRouter::AddFileWatch( 103 bool ExtensionFileBrowserEventRouter::AddFileWatch(
116 const FilePath& local_path, 104 const FilePath& local_path,
117 const FilePath& virtual_path, 105 const FilePath& virtual_path,
(...skipping 23 matching lines...) Expand all
141 return; 129 return;
142 // Remove the renderer process for this watch. 130 // Remove the renderer process for this watch.
143 iter->second->RemoveExtension(extension_id); 131 iter->second->RemoveExtension(extension_id);
144 if (iter->second->GetRefCount() == 0) { 132 if (iter->second->GetRefCount() == 0) {
145 delete iter->second; 133 delete iter->second;
146 file_watchers_.erase(iter); 134 file_watchers_.erase(iter);
147 } 135 }
148 } 136 }
149 137
150 void ExtensionFileBrowserEventRouter::DiskChanged( 138 void ExtensionFileBrowserEventRouter::DiskChanged(
151 chromeos::disks::DiskMountManagerEventType event, 139 DiskMountManagerEventType event,
152 const chromeos::disks::DiskMountManager::Disk* disk) { 140 const DiskMountManager::Disk* disk) {
153 // Disregard hidden devices. 141 // Disregard hidden devices.
154 if (disk->is_hidden()) 142 if (disk->is_hidden())
155 return; 143 return;
156 if (event == chromeos::disks::MOUNT_DISK_ADDED) { 144 if (event == chromeos::disks::MOUNT_DISK_ADDED) {
157 OnDiskAdded(disk); 145 OnDiskAdded(disk);
158 } else if (event == chromeos::disks::MOUNT_DISK_REMOVED) { 146 } else if (event == chromeos::disks::MOUNT_DISK_REMOVED) {
159 OnDiskRemoved(disk); 147 OnDiskRemoved(disk);
160 } 148 }
161 } 149 }
162 150
163 void ExtensionFileBrowserEventRouter::DeviceChanged( 151 void ExtensionFileBrowserEventRouter::DeviceChanged(
164 chromeos::disks::DiskMountManagerEventType event, 152 DiskMountManagerEventType event,
165 const std::string& device_path) { 153 const std::string& device_path) {
166 if (event == chromeos::disks::MOUNT_DEVICE_ADDED) { 154 if (event == chromeos::disks::MOUNT_DEVICE_ADDED) {
167 OnDeviceAdded(device_path); 155 OnDeviceAdded(device_path);
168 } else if (event == chromeos::disks::MOUNT_DEVICE_REMOVED) { 156 } else if (event == chromeos::disks::MOUNT_DEVICE_REMOVED) {
169 OnDeviceRemoved(device_path); 157 OnDeviceRemoved(device_path);
170 } else if (event == chromeos::disks::MOUNT_DEVICE_SCANNED) { 158 } else if (event == chromeos::disks::MOUNT_DEVICE_SCANNED) {
171 OnDeviceScanned(device_path); 159 OnDeviceScanned(device_path);
172 } else if (event == chromeos::disks::MOUNT_FORMATTING_STARTED) { 160 } else if (event == chromeos::disks::MOUNT_FORMATTING_STARTED) {
173 // TODO(tbarzic): get rid of '!'. 161 // TODO(tbarzic): get rid of '!'.
174 if (device_path[0] == '!') { 162 if (device_path[0] == '!') {
175 OnFormattingStarted(device_path.substr(1), false); 163 OnFormattingStarted(device_path.substr(1), false);
176 } else { 164 } else {
177 OnFormattingStarted(device_path, true); 165 OnFormattingStarted(device_path, true);
178 } 166 }
179 } else if (event == chromeos::disks::MOUNT_FORMATTING_FINISHED) { 167 } else if (event == chromeos::disks::MOUNT_FORMATTING_FINISHED) {
180 if (device_path[0] == '!') { 168 if (device_path[0] == '!') {
181 OnFormattingFinished(device_path.substr(1), false); 169 OnFormattingFinished(device_path.substr(1), false);
182 } else { 170 } else {
183 OnFormattingFinished(device_path, true); 171 OnFormattingFinished(device_path, true);
184 } 172 }
185 } 173 }
186 } 174 }
187 175
188 void ExtensionFileBrowserEventRouter::MountCompleted( 176 void ExtensionFileBrowserEventRouter::MountCompleted(
189 chromeos::disks::DiskMountManager::MountEvent event_type, 177 DiskMountManager::MountEvent event_type,
190 chromeos::MountError error_code, 178 chromeos::MountError error_code,
191 const chromeos::disks::DiskMountManager::MountPointInfo& mount_info) { 179 const DiskMountManager::MountPointInfo& mount_info) {
192 DispatchMountCompletedEvent(event_type, error_code, mount_info); 180 DispatchMountCompletedEvent(event_type, error_code, mount_info);
193 181
194 if (mount_info.mount_type == chromeos::MOUNT_TYPE_DEVICE && 182 if (mount_info.mount_type == chromeos::MOUNT_TYPE_DEVICE &&
195 event_type == chromeos::disks::DiskMountManager::MOUNTING) { 183 event_type == DiskMountManager::MOUNTING) {
196 chromeos::disks::DiskMountManager* disk_mount_manager = 184 DiskMountManager* disk_mount_manager = DiskMountManager::GetInstance();
197 chromeos::disks::DiskMountManager::GetInstance(); 185 DiskMountManager::DiskMap::const_iterator disk_it =
198 chromeos::disks::DiskMountManager::DiskMap::const_iterator disk_it =
199 disk_mount_manager->disks().find(mount_info.source_path); 186 disk_mount_manager->disks().find(mount_info.source_path);
200 if (disk_it == disk_mount_manager->disks().end()) { 187 if (disk_it == disk_mount_manager->disks().end()) {
201 return; 188 return;
202 } 189 }
203 chromeos::disks::DiskMountManager::Disk* disk = disk_it->second; 190 DiskMountManager::Disk* disk = disk_it->second;
204 191
205 notifications_->ManageNotificationsOnMountCompleted( 192 notifications_->ManageNotificationsOnMountCompleted(
206 disk->system_path_prefix(), disk->drive_label(), disk->is_parent(), 193 disk->system_path_prefix(), disk->drive_label(), disk->is_parent(),
207 error_code == chromeos::MOUNT_ERROR_NONE, 194 error_code == chromeos::MOUNT_ERROR_NONE,
208 error_code == chromeos::MOUNT_ERROR_UNSUPORTED_FILESYSTEM); 195 error_code == chromeos::MOUNT_ERROR_UNSUPORTED_FILESYSTEM);
209 } 196 }
210 } 197 }
211 198
212 void ExtensionFileBrowserEventRouter::HandleFileWatchNotification( 199 void ExtensionFileBrowserEventRouter::HandleFileWatchNotification(
213 const FilePath& local_path, bool got_error) { 200 const FilePath& local_path, bool got_error) {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 std::string args_json; 233 std::string args_json;
247 base::JSONWriter::Write(&args, false /* pretty_print */, &args_json); 234 base::JSONWriter::Write(&args, false /* pretty_print */, &args_json);
248 235
249 profile_->GetExtensionEventRouter()->DispatchEventToExtension( 236 profile_->GetExtensionEventRouter()->DispatchEventToExtension(
250 iter->first, extension_event_names::kOnFileChanged, args_json, 237 iter->first, extension_event_names::kOnFileChanged, args_json,
251 NULL, GURL()); 238 NULL, GURL());
252 } 239 }
253 } 240 }
254 241
255 void ExtensionFileBrowserEventRouter::DispatchDiskEvent( 242 void ExtensionFileBrowserEventRouter::DispatchDiskEvent(
256 const chromeos::disks::DiskMountManager::Disk* disk, bool added) { 243 const DiskMountManager::Disk* disk, bool added) {
257 if (!profile_) { 244 if (!profile_) {
258 NOTREACHED(); 245 NOTREACHED();
259 return; 246 return;
260 } 247 }
261 248
262 ListValue args; 249 ListValue args;
263 DictionaryValue* mount_info = new DictionaryValue(); 250 DictionaryValue* mount_info = new DictionaryValue();
264 args.Append(mount_info); 251 args.Append(mount_info);
265 mount_info->SetString("eventType", 252 mount_info->SetString("eventType",
266 added ? kDiskAddedEventType : kDiskRemovedEventType); 253 added ? kDiskAddedEventType : kDiskRemovedEventType);
267 DictionaryValue* disk_info = DiskToDictionaryValue(disk); 254 DictionaryValue* disk_info = DiskToDictionaryValue(disk);
268 mount_info->Set("volumeInfo", disk_info); 255 mount_info->Set("volumeInfo", disk_info);
269 256
270 std::string args_json; 257 std::string args_json;
271 base::JSONWriter::Write(&args, false /* pretty_print */, &args_json); 258 base::JSONWriter::Write(&args, false /* pretty_print */, &args_json);
272 profile_->GetExtensionEventRouter()->DispatchEventToRenderers( 259 profile_->GetExtensionEventRouter()->DispatchEventToRenderers(
273 extension_event_names::kOnFileBrowserDiskChanged, args_json, NULL, 260 extension_event_names::kOnFileBrowserDiskChanged, args_json, NULL,
274 GURL()); 261 GURL());
275 } 262 }
276 263
277 void ExtensionFileBrowserEventRouter::DispatchMountCompletedEvent( 264 void ExtensionFileBrowserEventRouter::DispatchMountCompletedEvent(
278 chromeos::disks::DiskMountManager::MountEvent event, 265 DiskMountManager::MountEvent event,
279 chromeos::MountError error_code, 266 chromeos::MountError error_code,
280 const chromeos::disks::DiskMountManager::MountPointInfo& mount_info) { 267 const DiskMountManager::MountPointInfo& mount_info) {
281 if (!profile_ || mount_info.mount_type == chromeos::MOUNT_TYPE_INVALID) { 268 if (!profile_ || mount_info.mount_type == chromeos::MOUNT_TYPE_INVALID) {
282 NOTREACHED(); 269 NOTREACHED();
283 return; 270 return;
284 } 271 }
285 272
286 ListValue args; 273 ListValue args;
287 DictionaryValue* mount_info_value = new DictionaryValue(); 274 DictionaryValue* mount_info_value = new DictionaryValue();
288 args.Append(mount_info_value); 275 args.Append(mount_info_value);
289 if (event == chromeos::disks::DiskMountManager::MOUNTING) { 276 if (event == DiskMountManager::MOUNTING) {
290 mount_info_value->SetString("eventType", "mount"); 277 mount_info_value->SetString("eventType", "mount");
291 } else { 278 } else {
292 mount_info_value->SetString("eventType", "unmount"); 279 mount_info_value->SetString("eventType", "unmount");
293 } 280 }
294 mount_info_value->SetString("status", MountErrorToString(error_code)); 281 mount_info_value->SetString("status", MountErrorToString(error_code));
295 mount_info_value->SetString( 282 mount_info_value->SetString(
296 "mountType", 283 "mountType",
297 chromeos::disks::DiskMountManager::MountTypeToString( 284 DiskMountManager::MountTypeToString(mount_info.mount_type));
298 mount_info.mount_type));
299 285
300 if (mount_info.mount_type == chromeos::MOUNT_TYPE_ARCHIVE) { 286 if (mount_info.mount_type == chromeos::MOUNT_TYPE_ARCHIVE) {
301 GURL source_url; 287 GURL source_url;
302 if (file_manager_util::ConvertFileToFileSystemUrl(profile_, 288 if (file_manager_util::ConvertFileToFileSystemUrl(profile_,
303 FilePath(mount_info.source_path), 289 FilePath(mount_info.source_path),
304 file_manager_util::GetFileBrowserExtensionUrl().GetOrigin(), 290 file_manager_util::GetFileBrowserExtensionUrl().GetOrigin(),
305 &source_url)) { 291 &source_url)) {
306 mount_info_value->SetString("sourceUrl", source_url.spec()); 292 mount_info_value->SetString("sourceUrl", source_url.spec());
307 } 293 }
308 } else { 294 } else {
(...skipping 20 matching lines...) Expand all
329 315
330 std::string args_json; 316 std::string args_json;
331 base::JSONWriter::Write(&args, false /* pretty_print */, &args_json); 317 base::JSONWriter::Write(&args, false /* pretty_print */, &args_json);
332 profile_->GetExtensionEventRouter()->DispatchEventToRenderers( 318 profile_->GetExtensionEventRouter()->DispatchEventToRenderers(
333 extension_event_names::kOnFileBrowserMountCompleted, args_json, NULL, 319 extension_event_names::kOnFileBrowserMountCompleted, args_json, NULL,
334 GURL()); 320 GURL());
335 321
336 if (relative_mount_path_set && 322 if (relative_mount_path_set &&
337 mount_info.mount_type == chromeos::MOUNT_TYPE_DEVICE && 323 mount_info.mount_type == chromeos::MOUNT_TYPE_DEVICE &&
338 !mount_info.mount_condition && 324 !mount_info.mount_condition &&
339 event == chromeos::disks::DiskMountManager::MOUNTING) { 325 event == DiskMountManager::MOUNTING) {
340 file_manager_util::ViewFolder(FilePath(mount_info.mount_path)); 326 file_manager_util::ViewFolder(FilePath(mount_info.mount_path));
341 } 327 }
342 } 328 }
343 329
344 void ExtensionFileBrowserEventRouter::OnDiskAdded( 330 void ExtensionFileBrowserEventRouter::OnDiskAdded(
345 const chromeos::disks::DiskMountManager::Disk* disk) { 331 const DiskMountManager::Disk* disk) {
346 VLOG(1) << "Disk added: " << disk->device_path(); 332 VLOG(1) << "Disk added: " << disk->device_path();
347 if (disk->device_path().empty()) { 333 if (disk->device_path().empty()) {
348 VLOG(1) << "Empty system path for " << disk->device_path(); 334 VLOG(1) << "Empty system path for " << disk->device_path();
349 return; 335 return;
350 } 336 }
351 337
352 // If disk is not mounted yet, give it a try. 338 // If disk is not mounted yet, give it a try.
353 if (disk->mount_path().empty()) { 339 if (disk->mount_path().empty()) {
354 // Initiate disk mount operation. 340 // Initiate disk mount operation.
355 chromeos::disks::DiskMountManager::GetInstance()->MountPath( 341 DiskMountManager::GetInstance()->MountPath(
356 disk->device_path(), chromeos::MOUNT_TYPE_DEVICE); 342 disk->device_path(), chromeos::MOUNT_TYPE_DEVICE);
357 } 343 }
358 DispatchDiskEvent(disk, true); 344 DispatchDiskEvent(disk, true);
359 } 345 }
360 346
361 void ExtensionFileBrowserEventRouter::OnDiskRemoved( 347 void ExtensionFileBrowserEventRouter::OnDiskRemoved(
362 const chromeos::disks::DiskMountManager::Disk* disk) { 348 const DiskMountManager::Disk* disk) {
363 VLOG(1) << "Disk removed: " << disk->device_path(); 349 VLOG(1) << "Disk removed: " << disk->device_path();
364 350
365 if (!disk->mount_path().empty()) { 351 if (!disk->mount_path().empty()) {
366 chromeos::disks::DiskMountManager::GetInstance()->UnmountPath( 352 DiskMountManager::GetInstance()->UnmountPath(disk->mount_path());
367 disk->mount_path());
368 } 353 }
369 DispatchDiskEvent(disk, false); 354 DispatchDiskEvent(disk, false);
370 } 355 }
371 356
372 void ExtensionFileBrowserEventRouter::OnDeviceAdded( 357 void ExtensionFileBrowserEventRouter::OnDeviceAdded(
373 const std::string& device_path) { 358 const std::string& device_path) {
374 VLOG(1) << "Device added : " << device_path; 359 VLOG(1) << "Device added : " << device_path;
375 360
376 notifications_->RegisterDevice(device_path); 361 notifications_->RegisterDevice(device_path);
377 notifications_->ShowNotificationDelayed(FileBrowserNotifications::DEVICE, 362 notifications_->ShowNotificationDelayed(FileBrowserNotifications::DEVICE,
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 const std::string& device_path, bool success) { 394 const std::string& device_path, bool success) {
410 if (success) { 395 if (success) {
411 notifications_->HideNotification(FileBrowserNotifications::FORMAT_START, 396 notifications_->HideNotification(FileBrowserNotifications::FORMAT_START,
412 device_path); 397 device_path);
413 notifications_->ShowNotification(FileBrowserNotifications::FORMAT_SUCCESS, 398 notifications_->ShowNotification(FileBrowserNotifications::FORMAT_SUCCESS,
414 device_path); 399 device_path);
415 // Hide it after a couple of seconds. 400 // Hide it after a couple of seconds.
416 notifications_->HideNotificationDelayed( 401 notifications_->HideNotificationDelayed(
417 FileBrowserNotifications::FORMAT_SUCCESS, device_path, 4000); 402 FileBrowserNotifications::FORMAT_SUCCESS, device_path, 4000);
418 403
419 chromeos::disks::DiskMountManager::GetInstance()->MountPath( 404 DiskMountManager::GetInstance()->MountPath(device_path,
420 device_path, chromeos::MOUNT_TYPE_DEVICE); 405 chromeos::MOUNT_TYPE_DEVICE);
421 } else { 406 } else {
422 notifications_->HideNotification(FileBrowserNotifications::FORMAT_START, 407 notifications_->HideNotification(FileBrowserNotifications::FORMAT_START,
423 device_path); 408 device_path);
424 notifications_->ShowNotification(FileBrowserNotifications::FORMAT_FAIL, 409 notifications_->ShowNotification(FileBrowserNotifications::FORMAT_FAIL,
425 device_path); 410 device_path);
426 } 411 }
427 } 412 }
428 413
429 // ExtensionFileBrowserEventRouter::WatcherDelegate methods. 414 // ExtensionFileBrowserEventRouter::WatcherDelegate methods.
430 ExtensionFileBrowserEventRouter::FileWatcherDelegate::FileWatcherDelegate( 415 ExtensionFileBrowserEventRouter::FileWatcherDelegate::FileWatcherDelegate(
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
508 493
509 const FilePath& 494 const FilePath&
510 ExtensionFileBrowserEventRouter::FileWatcherExtensions::GetVirtualPath() const { 495 ExtensionFileBrowserEventRouter::FileWatcherExtensions::GetVirtualPath() const {
511 return virtual_path; 496 return virtual_path;
512 } 497 }
513 498
514 bool ExtensionFileBrowserEventRouter::FileWatcherExtensions::Watch 499 bool ExtensionFileBrowserEventRouter::FileWatcherExtensions::Watch
515 (const FilePath& path, FileWatcherDelegate* delegate) { 500 (const FilePath& path, FileWatcherDelegate* delegate) {
516 return file_watcher->Watch(path, delegate); 501 return file_watcher->Watch(path, delegate);
517 } 502 }
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/disks/mock_disk_mount_manager.cc ('k') | chrome/browser/chromeos/imageburner/burn_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698