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

Side by Side Diff: chrome/browser/chromeos/file_system_provider/provided_file_system.cc

Issue 663713002: [fsp] Extract ObservedEntry and ObservedEntries to a separate file. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git/+/master
Patch Set: Added missing files. Created 6 years, 2 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/file_system_provider/provided_file_system.h" 5 #include "chrome/browser/chromeos/file_system_provider/provided_file_system.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "base/files/file.h" 10 #include "base/files/file.h"
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 const ObservedEntries::const_iterator it = observed_entries_.find(entry_path); 400 const ObservedEntries::const_iterator it = observed_entries_.find(entry_path);
401 if (it == observed_entries_.end()) { 401 if (it == observed_entries_.end()) {
402 callback.Run(base::File::FILE_ERROR_NOT_FOUND); 402 callback.Run(base::File::FILE_ERROR_NOT_FOUND);
403 return; 403 return;
404 } 404 }
405 405
406 // Delete the watcher in advance since the list of observed entries is owned 406 // Delete the watcher in advance since the list of observed entries is owned
407 // by the C++ layer, not by the extension. 407 // by the C++ layer, not by the extension.
408 observed_entries_.erase(it); 408 observed_entries_.erase(it);
409 409
410 FOR_EACH_OBSERVER(ProvidedFileSystemObserver, 410 FOR_EACH_OBSERVER(
411 observers_, 411 ProvidedFileSystemObserver,
412 OnObservedEntryListChanged(file_system_info_)); 412 observers_,
413 OnObservedEntryListChanged(file_system_info_, observed_entries_));
413 414
414 // TODO(mtomasz): Consider returning always an OK error code, since for the 415 // TODO(mtomasz): Consider returning always an OK error code, since for the
415 // callers it's important that the entry is not watched anymore. The watcher 416 // callers it's important that the entry is not watched anymore. The watcher
416 // is removed even if the extension returns an error. 417 // is removed even if the extension returns an error.
417 const int request_id = request_manager_->CreateRequest( 418 const int request_id = request_manager_->CreateRequest(
418 UNOBSERVE_ENTRY, 419 UNOBSERVE_ENTRY,
419 scoped_ptr<RequestManager::HandlerInterface>( 420 scoped_ptr<RequestManager::HandlerInterface>(
420 new operations::UnobserveEntry( 421 new operations::UnobserveEntry(
421 event_router_, file_system_info_, entry_path, callback))); 422 event_router_, file_system_info_, entry_path, callback)));
422 if (!request_id) 423 if (!request_id)
423 callback.Run(base::File::FILE_ERROR_SECURITY); 424 callback.Run(base::File::FILE_ERROR_SECURITY);
424 } 425 }
425 426
426 const ProvidedFileSystemInfo& ProvidedFileSystem::GetFileSystemInfo() const { 427 const ProvidedFileSystemInfo& ProvidedFileSystem::GetFileSystemInfo() const {
427 return file_system_info_; 428 return file_system_info_;
428 } 429 }
429 430
430 RequestManager* ProvidedFileSystem::GetRequestManager() { 431 RequestManager* ProvidedFileSystem::GetRequestManager() {
431 return request_manager_.get(); 432 return request_manager_.get();
432 } 433 }
433 434
434 ProvidedFileSystem::ObservedEntries* ProvidedFileSystem::GetObservedEntries() { 435 ObservedEntries* ProvidedFileSystem::GetObservedEntries() {
435 return &observed_entries_; 436 return &observed_entries_;
436 } 437 }
437 438
438 void ProvidedFileSystem::AddObserver(ProvidedFileSystemObserver* observer) { 439 void ProvidedFileSystem::AddObserver(ProvidedFileSystemObserver* observer) {
439 DCHECK(observer); 440 DCHECK(observer);
440 observers_.AddObserver(observer); 441 observers_.AddObserver(observer);
441 } 442 }
442 443
443 void ProvidedFileSystem::RemoveObserver(ProvidedFileSystemObserver* observer) { 444 void ProvidedFileSystem::RemoveObserver(ProvidedFileSystemObserver* observer) {
444 DCHECK(observer); 445 DCHECK(observer);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 const storage::AsyncFileUtil::StatusCallback& callback, 511 const storage::AsyncFileUtil::StatusCallback& callback,
511 base::File::Error result) { 512 base::File::Error result) {
512 if (result != base::File::FILE_OK) { 513 if (result != base::File::FILE_OK) {
513 callback.Run(result); 514 callback.Run(result);
514 return; 515 return;
515 } 516 }
516 517
517 observed_entries_[directory_path].entry_path = directory_path; 518 observed_entries_[directory_path].entry_path = directory_path;
518 observed_entries_[directory_path].recursive |= recursive; 519 observed_entries_[directory_path].recursive |= recursive;
519 520
520 FOR_EACH_OBSERVER(ProvidedFileSystemObserver, 521 FOR_EACH_OBSERVER(
521 observers_, 522 ProvidedFileSystemObserver,
522 OnObservedEntryListChanged(file_system_info_)); 523 observers_,
524 OnObservedEntryListChanged(file_system_info_, observed_entries_));
523 525
524 callback.Run(result); 526 callback.Run(result);
525 } 527 }
526 528
527 void ProvidedFileSystem::OnNotifyCompleted( 529 void ProvidedFileSystem::OnNotifyCompleted(
528 const base::FilePath& observed_path, 530 const base::FilePath& observed_path,
529 ProvidedFileSystemObserver::ChangeType change_type, 531 ProvidedFileSystemObserver::ChangeType change_type,
530 scoped_ptr<ProvidedFileSystemObserver::ChildChanges> /* child_changes */, 532 scoped_ptr<ProvidedFileSystemObserver::ChildChanges> /* child_changes */,
531 const std::string& last_tag, 533 const std::string& last_tag,
532 const std::string& tag) { 534 const std::string& tag) {
(...skipping 10 matching lines...) Expand all
543 // message is printed, but we may want to pass the error to the providing 545 // message is printed, but we may want to pass the error to the providing
544 // extension. TODO(mtomasz): Consider it. 546 // extension. TODO(mtomasz): Consider it.
545 if (!tag.empty() && tag == it->second.last_tag) 547 if (!tag.empty() && tag == it->second.last_tag)
546 LOG(ERROR) << "Tag specified, but same as the previous one."; 548 LOG(ERROR) << "Tag specified, but same as the previous one.";
547 549
548 it->second.last_tag = tag; 550 it->second.last_tag = tag;
549 551
550 FOR_EACH_OBSERVER( 552 FOR_EACH_OBSERVER(
551 ProvidedFileSystemObserver, 553 ProvidedFileSystemObserver,
552 observers_, 554 observers_,
553 OnObservedEntryTagUpdated(file_system_info_, observed_path)); 555 OnObservedEntryTagUpdated(file_system_info_, observed_path, tag));
554 556
555 // If the observed entry is deleted, then unobserve it. 557 // If the observed entry is deleted, then unobserve it.
556 if (change_type == ProvidedFileSystemObserver::DELETED) 558 if (change_type == ProvidedFileSystemObserver::DELETED)
557 UnobserveEntry(observed_path, base::Bind(&EmptyStatusCallback)); 559 UnobserveEntry(observed_path, base::Bind(&EmptyStatusCallback));
558 } 560 }
559 561
560 } // namespace file_system_provider 562 } // namespace file_system_provider
561 } // namespace chromeos 563 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698