0019-disable-battery-status-service.patch 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. --- a/services/device/battery/battery_status_service.cc
  2. +++ b/services/device/battery/battery_status_service.cc
  3. @@ -21,10 +21,7 @@ BatteryStatusService::BatteryStatusServi
  4. : main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()),
  5. update_callback_(base::Bind(&BatteryStatusService::NotifyConsumers,
  6. base::Unretained(this))),
  7. - status_updated_(false),
  8. is_shutdown_(false) {
  9. - callback_list_.set_removal_callback(base::Bind(
  10. - &BatteryStatusService::ConsumersChanged, base::Unretained(this)));
  11. }
  12. BatteryStatusService::~BatteryStatusService() {
  13. @@ -67,58 +64,16 @@ BatteryStatusService::AddCallback(const
  14. DCHECK(main_thread_task_runner_->BelongsToCurrentThread());
  15. DCHECK(!is_shutdown_);
  16. - if (!battery_fetcher_)
  17. - battery_fetcher_ = BatteryStatusManager::Create(update_callback_);
  18. -
  19. - if (callback_list_.empty()) {
  20. - bool success = battery_fetcher_->StartListeningBatteryChange();
  21. - // On failure pass the default values back.
  22. - if (!success)
  23. - callback.Run(mojom::BatteryStatus());
  24. - }
  25. -
  26. - if (status_updated_) {
  27. - // Send recent status to the new callback if already available.
  28. - callback.Run(status_);
  29. - }
  30. + // Always pass the default values.
  31. + callback.Run(mojom::BatteryStatus());
  32. return callback_list_.Add(callback);
  33. }
  34. -void BatteryStatusService::ConsumersChanged() {
  35. - if (is_shutdown_)
  36. - return;
  37. -
  38. - if (callback_list_.empty()) {
  39. - battery_fetcher_->StopListeningBatteryChange();
  40. - status_updated_ = false;
  41. - }
  42. -}
  43. -
  44. void BatteryStatusService::NotifyConsumers(const mojom::BatteryStatus& status) {
  45. - DCHECK(!is_shutdown_);
  46. -
  47. - main_thread_task_runner_->PostTask(
  48. - FROM_HERE,
  49. - base::BindOnce(&BatteryStatusService::NotifyConsumersOnMainThread,
  50. - base::Unretained(this), status));
  51. -}
  52. -
  53. -void BatteryStatusService::NotifyConsumersOnMainThread(
  54. - const mojom::BatteryStatus& status) {
  55. - DCHECK(main_thread_task_runner_->BelongsToCurrentThread());
  56. - if (callback_list_.empty())
  57. - return;
  58. -
  59. - status_ = status;
  60. - status_updated_ = true;
  61. - callback_list_.Notify(status_);
  62. }
  63. void BatteryStatusService::Shutdown() {
  64. - if (!callback_list_.empty())
  65. - battery_fetcher_->StopListeningBatteryChange();
  66. - battery_fetcher_.reset();
  67. is_shutdown_ = true;
  68. }
  69. @@ -129,9 +84,6 @@ BatteryStatusService::GetUpdateCallbackF
  70. void BatteryStatusService::SetBatteryManagerForTesting(
  71. std::unique_ptr<BatteryStatusManager> test_battery_manager) {
  72. - battery_fetcher_ = std::move(test_battery_manager);
  73. - status_ = mojom::BatteryStatus();
  74. - status_updated_ = false;
  75. is_shutdown_ = false;
  76. main_thread_task_runner_ = base::ThreadTaskRunnerHandle::Get();
  77. }
  78. --- a/services/device/battery/battery_status_service.h
  79. +++ b/services/device/battery/battery_status_service.h
  80. @@ -57,15 +57,10 @@ class BatteryStatusService {
  81. // Updates current battery status and sends new status to interested
  82. // render processes. Can be called on any thread via a callback.
  83. void NotifyConsumers(const mojom::BatteryStatus& status);
  84. - void NotifyConsumersOnMainThread(const mojom::BatteryStatus& status);
  85. - void ConsumersChanged();
  86. scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_;
  87. - std::unique_ptr<BatteryStatusManager> battery_fetcher_;
  88. BatteryUpdateCallbackList callback_list_;
  89. BatteryUpdateCallback update_callback_;
  90. - mojom::BatteryStatus status_;
  91. - bool status_updated_;
  92. bool is_shutdown_;
  93. DISALLOW_COPY_AND_ASSIGN(BatteryStatusService);