| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/extension_management_api.h" | 5 #include "chrome/browser/extensions/extension_management_api.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 417 chrome::NOTIFICATION_EXTENSION_INSTALLED, | 417 chrome::NOTIFICATION_EXTENSION_INSTALLED, |
| 418 chrome::NOTIFICATION_EXTENSION_UNINSTALLED, | 418 chrome::NOTIFICATION_EXTENSION_UNINSTALLED, |
| 419 chrome::NOTIFICATION_EXTENSION_LOADED, | 419 chrome::NOTIFICATION_EXTENSION_LOADED, |
| 420 chrome::NOTIFICATION_EXTENSION_UNLOADED | 420 chrome::NOTIFICATION_EXTENSION_UNLOADED |
| 421 }; | 421 }; |
| 422 | 422 |
| 423 CHECK(registrar_.IsEmpty()); | 423 CHECK(registrar_.IsEmpty()); |
| 424 for (size_t i = 0; i < arraysize(types); i++) { | 424 for (size_t i = 0; i < arraysize(types); i++) { |
| 425 registrar_.Add(this, | 425 registrar_.Add(this, |
| 426 types[i], | 426 types[i], |
| 427 NotificationService::AllSources()); | 427 Source<Profile>(profile_)); |
| 428 } | 428 } |
| 429 } | 429 } |
| 430 | 430 |
| 431 void ExtensionManagementEventRouter::Observe( | 431 void ExtensionManagementEventRouter::Observe( |
| 432 int type, | 432 int type, |
| 433 const NotificationSource& source, | 433 const NotificationSource& source, |
| 434 const NotificationDetails& details) { | 434 const NotificationDetails& details) { |
| 435 const char* event_name = NULL; | 435 const char* event_name = NULL; |
| 436 Profile* profile = Source<Profile>(source).ptr(); | 436 Profile* profile = Source<Profile>(source).ptr(); |
| 437 CHECK(profile); | 437 CHECK(profile); |
| 438 if (!profile_->IsSameProfile(profile)) { | 438 CHECK(profile_->IsSameProfile(profile)); |
| 439 return; | |
| 440 } | |
| 441 | 439 |
| 442 switch (type) { | 440 switch (type) { |
| 443 case chrome::NOTIFICATION_EXTENSION_INSTALLED: | 441 case chrome::NOTIFICATION_EXTENSION_INSTALLED: |
| 444 event_name = events::kOnExtensionInstalled; | 442 event_name = events::kOnExtensionInstalled; |
| 445 break; | 443 break; |
| 446 case chrome::NOTIFICATION_EXTENSION_UNINSTALLED: | 444 case chrome::NOTIFICATION_EXTENSION_UNINSTALLED: |
| 447 event_name = events::kOnExtensionUninstalled; | 445 event_name = events::kOnExtensionUninstalled; |
| 448 break; | 446 break; |
| 449 case chrome::NOTIFICATION_EXTENSION_LOADED: | 447 case chrome::NOTIFICATION_EXTENSION_LOADED: |
| 450 event_name = events::kOnExtensionEnabled; | 448 event_name = events::kOnExtensionEnabled; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 474 bool enabled = service->GetExtensionById(extension->id(), false) != NULL; | 472 bool enabled = service->GetExtensionById(extension->id(), false) != NULL; |
| 475 args.Append(CreateExtensionInfo(*extension, enabled)); | 473 args.Append(CreateExtensionInfo(*extension, enabled)); |
| 476 } | 474 } |
| 477 | 475 |
| 478 std::string args_json; | 476 std::string args_json; |
| 479 base::JSONWriter::Write(&args, false /* pretty_print */, &args_json); | 477 base::JSONWriter::Write(&args, false /* pretty_print */, &args_json); |
| 480 | 478 |
| 481 profile->GetExtensionEventRouter()->DispatchEventToRenderers( | 479 profile->GetExtensionEventRouter()->DispatchEventToRenderers( |
| 482 event_name, args_json, NULL, GURL()); | 480 event_name, args_json, NULL, GURL()); |
| 483 } | 481 } |
| OLD | NEW |