| 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/automation/automation_provider_observers.h" | 5 #include "chrome/browser/automation/automation_provider_observers.h" |
| 6 | 6 |
| 7 #include <deque> | 7 #include <deque> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 457 | 457 |
| 458 bool DidExtensionHostsStopLoading(ExtensionProcessManager* manager) { | 458 bool DidExtensionHostsStopLoading(ExtensionProcessManager* manager) { |
| 459 for (ExtensionProcessManager::const_iterator iter = manager->begin(); | 459 for (ExtensionProcessManager::const_iterator iter = manager->begin(); |
| 460 iter != manager->end(); ++iter) { | 460 iter != manager->end(); ++iter) { |
| 461 if (!(*iter)->did_stop_loading()) | 461 if (!(*iter)->did_stop_loading()) |
| 462 return false; | 462 return false; |
| 463 } | 463 } |
| 464 return true; | 464 return true; |
| 465 } | 465 } |
| 466 | 466 |
| 467 ExtensionInstallNotificationObserver::ExtensionInstallNotificationObserver( | |
| 468 AutomationProvider* automation, int id, IPC::Message* reply_message) | |
| 469 : automation_(automation->AsWeakPtr()), | |
| 470 id_(id), | |
| 471 reply_message_(reply_message) { | |
| 472 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED, | |
| 473 NotificationService::AllSources()); | |
| 474 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_INSTALL_ERROR, | |
| 475 NotificationService::AllSources()); | |
| 476 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UPDATE_DISABLED, | |
| 477 NotificationService::AllSources()); | |
| 478 } | |
| 479 | |
| 480 ExtensionInstallNotificationObserver::~ExtensionInstallNotificationObserver() { | |
| 481 } | |
| 482 | |
| 483 void ExtensionInstallNotificationObserver::Observe( | |
| 484 int type, const NotificationSource& source, | |
| 485 const NotificationDetails& details) { | |
| 486 switch (type) { | |
| 487 case chrome::NOTIFICATION_EXTENSION_LOADED: | |
| 488 SendResponse(AUTOMATION_MSG_EXTENSION_INSTALL_SUCCEEDED); | |
| 489 break; | |
| 490 case chrome::NOTIFICATION_EXTENSION_INSTALL_ERROR: | |
| 491 case chrome::NOTIFICATION_EXTENSION_UPDATE_DISABLED: | |
| 492 SendResponse(AUTOMATION_MSG_EXTENSION_INSTALL_FAILED); | |
| 493 break; | |
| 494 default: | |
| 495 NOTREACHED(); | |
| 496 break; | |
| 497 } | |
| 498 | |
| 499 delete this; | |
| 500 } | |
| 501 | |
| 502 void ExtensionInstallNotificationObserver::SendResponse( | |
| 503 AutomationMsg_ExtensionResponseValues response) { | |
| 504 if (!automation_ || !reply_message_.get()) { | |
| 505 delete this; | |
| 506 return; | |
| 507 } | |
| 508 | |
| 509 switch (id_) { | |
| 510 case AutomationMsg_InstallExtension::ID: | |
| 511 AutomationMsg_InstallExtension::WriteReplyParams(reply_message_.get(), | |
| 512 response); | |
| 513 break; | |
| 514 default: | |
| 515 NOTREACHED(); | |
| 516 break; | |
| 517 } | |
| 518 | |
| 519 automation_->Send(reply_message_.release()); | |
| 520 } | |
| 521 | |
| 522 ExtensionUninstallObserver::ExtensionUninstallObserver( | 467 ExtensionUninstallObserver::ExtensionUninstallObserver( |
| 523 AutomationProvider* automation, | 468 AutomationProvider* automation, |
| 524 IPC::Message* reply_message, | 469 IPC::Message* reply_message, |
| 525 const std::string& id) | 470 const std::string& id) |
| 526 : automation_(automation->AsWeakPtr()), | 471 : automation_(automation->AsWeakPtr()), |
| 527 reply_message_(reply_message), | 472 reply_message_(reply_message), |
| 528 id_(id) { | 473 id_(id) { |
| 529 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNINSTALLED, | 474 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNINSTALLED, |
| 530 NotificationService::AllSources()); | 475 NotificationService::AllSources()); |
| 531 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNINSTALL_NOT_ALLOWED, | 476 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNINSTALL_NOT_ALLOWED, |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 619 return; | 564 return; |
| 620 break; | 565 break; |
| 621 case chrome::NOTIFICATION_EXTENSION_INSTALL_ERROR: | 566 case chrome::NOTIFICATION_EXTENSION_INSTALL_ERROR: |
| 622 case chrome::NOTIFICATION_EXTENSION_UPDATE_DISABLED: | 567 case chrome::NOTIFICATION_EXTENSION_UPDATE_DISABLED: |
| 623 break; | 568 break; |
| 624 default: | 569 default: |
| 625 NOTREACHED(); | 570 NOTREACHED(); |
| 626 break; | 571 break; |
| 627 } | 572 } |
| 628 | 573 |
| 629 if (id_ == AutomationMsg_InstallExtensionAndGetHandle::ID) { | 574 if (id_ == AutomationMsg_InstallExtension::ID) { |
| 630 // A handle of zero indicates an error. | 575 // A handle of zero indicates an error. |
| 631 int extension_handle = 0; | 576 int extension_handle = 0; |
| 632 if (extension_) | 577 if (extension_) |
| 633 extension_handle = automation_->AddExtension(extension_); | 578 extension_handle = automation_->AddExtension(extension_); |
| 634 AutomationMsg_InstallExtensionAndGetHandle::WriteReplyParams( | 579 AutomationMsg_InstallExtension::WriteReplyParams( |
| 635 reply_message_.get(), extension_handle); | 580 reply_message_.get(), extension_handle); |
| 636 } else if (id_ == AutomationMsg_EnableExtension::ID) { | 581 } else if (id_ == AutomationMsg_EnableExtension::ID) { |
| 637 AutomationMsg_EnableExtension::WriteReplyParams(reply_message_.get(), true); | 582 AutomationMsg_EnableExtension::WriteReplyParams(reply_message_.get(), true); |
| 638 } else { | 583 } else { |
| 639 NOTREACHED(); | 584 NOTREACHED(); |
| 640 LOG(ERROR) << "Cannot write reply params for unknown message id."; | 585 LOG(ERROR) << "Cannot write reply params for unknown message id."; |
| 641 } | 586 } |
| 642 | 587 |
| 643 automation_->Send(reply_message_.release()); | 588 automation_->Send(reply_message_.release()); |
| 644 delete this; | 589 delete this; |
| (...skipping 2005 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2650 void DragTargetDropAckNotificationObserver::Observe( | 2595 void DragTargetDropAckNotificationObserver::Observe( |
| 2651 int type, | 2596 int type, |
| 2652 const NotificationSource& source, | 2597 const NotificationSource& source, |
| 2653 const NotificationDetails& details) { | 2598 const NotificationDetails& details) { |
| 2654 if (automation_) { | 2599 if (automation_) { |
| 2655 AutomationJSONReply(automation_, | 2600 AutomationJSONReply(automation_, |
| 2656 reply_message_.release()).SendSuccess(NULL); | 2601 reply_message_.release()).SendSuccess(NULL); |
| 2657 } | 2602 } |
| 2658 delete this; | 2603 delete this; |
| 2659 } | 2604 } |
| OLD | NEW |