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

Side by Side Diff: chrome/browser/extensions/updater/extension_updater.cc

Issue 425303002: Move extension notifications to extensions/browser/notification_types.h (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: (extension-notifications) rebase Created 6 years, 4 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) 2012 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/extensions/updater/extension_updater.h" 5 #include "chrome/browser/extensions/updater/extension_updater.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 InProgressCheck& request = requests_in_progress_[*it]; 566 InProgressCheck& request = requests_in_progress_[*it];
567 if (request.install_immediately) { 567 if (request.install_immediately) {
568 installer->set_install_immediately(true); 568 installer->set_install_immediately(true);
569 break; 569 break;
570 } 570 }
571 } 571 }
572 572
573 // Source parameter ensures that we only see the completion event for the 573 // Source parameter ensures that we only see the completion event for the
574 // the installer we started. 574 // the installer we started.
575 registrar_.Add(this, 575 registrar_.Add(this,
576 chrome::NOTIFICATION_CRX_INSTALLER_DONE, 576 extensions::NOTIFICATION_CRX_INSTALLER_DONE,
577 content::Source<CrxInstaller>(installer)); 577 content::Source<CrxInstaller>(installer));
578 } else { 578 } else {
579 for (std::set<int>::const_iterator it = crx_file.request_ids.begin(); 579 for (std::set<int>::const_iterator it = crx_file.request_ids.begin();
580 it != crx_file.request_ids.end(); ++it) { 580 it != crx_file.request_ids.end(); ++it) {
581 InProgressCheck& request = requests_in_progress_[*it]; 581 InProgressCheck& request = requests_in_progress_[*it];
582 request.in_progress_ids_.remove(crx_file.extension_id); 582 request.in_progress_ids_.remove(crx_file.extension_id);
583 } 583 }
584 request_ids.insert(crx_file.request_ids.begin(), 584 request_ids.insert(crx_file.request_ids.begin(),
585 crx_file.request_ids.end()); 585 crx_file.request_ids.end());
586 } 586 }
587 fetched_crx_files_.pop(); 587 fetched_crx_files_.pop();
588 } 588 }
589 589
590 for (std::set<int>::const_iterator it = request_ids.begin(); 590 for (std::set<int>::const_iterator it = request_ids.begin();
591 it != request_ids.end(); ++it) { 591 it != request_ids.end(); ++it) {
592 NotifyIfFinished(*it); 592 NotifyIfFinished(*it);
593 } 593 }
594 } 594 }
595 595
596 void ExtensionUpdater::Observe(int type, 596 void ExtensionUpdater::Observe(int type,
597 const content::NotificationSource& source, 597 const content::NotificationSource& source,
598 const content::NotificationDetails& details) { 598 const content::NotificationDetails& details) {
599 DCHECK_EQ(type, chrome::NOTIFICATION_CRX_INSTALLER_DONE); 599 DCHECK_EQ(type, extensions::NOTIFICATION_CRX_INSTALLER_DONE);
600 600
601 registrar_.Remove(this, 601 registrar_.Remove(this, extensions::NOTIFICATION_CRX_INSTALLER_DONE, source);
602 chrome::NOTIFICATION_CRX_INSTALLER_DONE,
603 source);
604 crx_install_is_running_ = false; 602 crx_install_is_running_ = false;
605 603
606 const FetchedCRXFile& crx_file = current_crx_file_; 604 const FetchedCRXFile& crx_file = current_crx_file_;
607 for (std::set<int>::const_iterator it = crx_file.request_ids.begin(); 605 for (std::set<int>::const_iterator it = crx_file.request_ids.begin();
608 it != crx_file.request_ids.end(); ++it) { 606 it != crx_file.request_ids.end(); ++it) {
609 InProgressCheck& request = requests_in_progress_[*it]; 607 InProgressCheck& request = requests_in_progress_[*it];
610 request.in_progress_ids_.remove(crx_file.extension_id); 608 request.in_progress_ids_.remove(crx_file.extension_id);
611 NotifyIfFinished(*it); 609 NotifyIfFinished(*it);
612 } 610 }
613 611
614 // If any files are available to update, start one. 612 // If any files are available to update, start one.
615 MaybeInstallCRXFile(); 613 MaybeInstallCRXFile();
616 } 614 }
617 615
618 void ExtensionUpdater::OnExtensionWillBeInstalled( 616 void ExtensionUpdater::OnExtensionWillBeInstalled(
619 content::BrowserContext* browser_context, 617 content::BrowserContext* browser_context,
620 const Extension* extension, 618 const Extension* extension,
621 bool is_update, 619 bool is_update,
622 bool from_ephemeral, 620 bool from_ephemeral,
623 const std::string& old_name) { 621 const std::string& old_name) {
624 throttle_info_.erase(extension->id()); 622 throttle_info_.erase(extension->id());
625 } 623 }
626 624
627 void ExtensionUpdater::NotifyStarted() { 625 void ExtensionUpdater::NotifyStarted() {
628 content::NotificationService::current()->Notify( 626 content::NotificationService::current()->Notify(
629 chrome::NOTIFICATION_EXTENSION_UPDATING_STARTED, 627 extensions::NOTIFICATION_EXTENSION_UPDATING_STARTED,
630 content::Source<Profile>(profile_), 628 content::Source<Profile>(profile_),
631 content::NotificationService::NoDetails()); 629 content::NotificationService::NoDetails());
632 } 630 }
633 631
634 void ExtensionUpdater::NotifyIfFinished(int request_id) { 632 void ExtensionUpdater::NotifyIfFinished(int request_id) {
635 DCHECK(ContainsKey(requests_in_progress_, request_id)); 633 DCHECK(ContainsKey(requests_in_progress_, request_id));
636 const InProgressCheck& request = requests_in_progress_[request_id]; 634 const InProgressCheck& request = requests_in_progress_[request_id];
637 if (request.in_progress_ids_.empty()) { 635 if (request.in_progress_ids_.empty()) {
638 VLOG(2) << "Finished update check " << request_id; 636 VLOG(2) << "Finished update check " << request_id;
639 if (!request.callback.is_null()) 637 if (!request.callback.is_null())
640 request.callback.Run(); 638 request.callback.Run();
641 requests_in_progress_.erase(request_id); 639 requests_in_progress_.erase(request_id);
642 } 640 }
643 } 641 }
644 642
645 } // namespace extensions 643 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698