| OLD | NEW |
| 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/renderer/chrome_render_thread_observer.h" | 5 #include "chrome/renderer/chrome_render_thread_observer.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <limits> | 9 #include <limits> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 | 120 |
| 121 base::WeakPtrFactory<RendererResourceDelegate> weak_factory_; | 121 base::WeakPtrFactory<RendererResourceDelegate> weak_factory_; |
| 122 | 122 |
| 123 DISALLOW_COPY_AND_ASSIGN(RendererResourceDelegate); | 123 DISALLOW_COPY_AND_ASSIGN(RendererResourceDelegate); |
| 124 }; | 124 }; |
| 125 | 125 |
| 126 static const int kWaitForWorkersStatsTimeoutMS = 20; | 126 static const int kWaitForWorkersStatsTimeoutMS = 20; |
| 127 | 127 |
| 128 class ResourceUsageReporterImpl : public mojom::ResourceUsageReporter { | 128 class ResourceUsageReporterImpl : public mojom::ResourceUsageReporter { |
| 129 public: | 129 public: |
| 130 ResourceUsageReporterImpl( | 130 explicit ResourceUsageReporterImpl( |
| 131 base::WeakPtr<ChromeRenderThreadObserver> observer, | 131 base::WeakPtr<ChromeRenderThreadObserver> observer) |
| 132 mojo::InterfaceRequest<mojom::ResourceUsageReporter> req) | 132 : workers_to_go_(0), observer_(observer), weak_factory_(this) {} |
| 133 : workers_to_go_(0), | |
| 134 binding_(this, std::move(req)), | |
| 135 observer_(observer), | |
| 136 weak_factory_(this) {} | |
| 137 ~ResourceUsageReporterImpl() override {} | 133 ~ResourceUsageReporterImpl() override {} |
| 138 | 134 |
| 139 private: | 135 private: |
| 140 static void CollectOnWorkerThread( | 136 static void CollectOnWorkerThread( |
| 141 const scoped_refptr<base::TaskRunner>& master, | 137 const scoped_refptr<base::TaskRunner>& master, |
| 142 base::WeakPtr<ResourceUsageReporterImpl> impl) { | 138 base::WeakPtr<ResourceUsageReporterImpl> impl) { |
| 143 size_t total_bytes = 0; | 139 size_t total_bytes = 0; |
| 144 size_t used_bytes = 0; | 140 size_t used_bytes = 0; |
| 145 v8::Isolate* isolate = v8::Isolate::GetCurrent(); | 141 v8::Isolate* isolate = v8::Isolate::GetCurrent(); |
| 146 if (isolate) { | 142 if (isolate) { |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 base::TimeDelta::FromMilliseconds(kWaitForWorkersStatsTimeoutMS)); | 205 base::TimeDelta::FromMilliseconds(kWaitForWorkersStatsTimeoutMS)); |
| 210 } else { | 206 } else { |
| 211 // No worker threads so just send out the main thread data right away. | 207 // No worker threads so just send out the main thread data right away. |
| 212 SendResults(); | 208 SendResults(); |
| 213 } | 209 } |
| 214 } | 210 } |
| 215 | 211 |
| 216 mojom::ResourceUsageDataPtr usage_data_; | 212 mojom::ResourceUsageDataPtr usage_data_; |
| 217 GetUsageDataCallback callback_; | 213 GetUsageDataCallback callback_; |
| 218 int workers_to_go_; | 214 int workers_to_go_; |
| 219 mojo::StrongBinding<mojom::ResourceUsageReporter> binding_; | |
| 220 base::WeakPtr<ChromeRenderThreadObserver> observer_; | 215 base::WeakPtr<ChromeRenderThreadObserver> observer_; |
| 221 | 216 |
| 222 base::WeakPtrFactory<ResourceUsageReporterImpl> weak_factory_; | 217 base::WeakPtrFactory<ResourceUsageReporterImpl> weak_factory_; |
| 223 | 218 |
| 224 DISALLOW_COPY_AND_ASSIGN(ResourceUsageReporterImpl); | 219 DISALLOW_COPY_AND_ASSIGN(ResourceUsageReporterImpl); |
| 225 }; | 220 }; |
| 226 | 221 |
| 227 void CreateResourceUsageReporter( | 222 void CreateResourceUsageReporter( |
| 228 base::WeakPtr<ChromeRenderThreadObserver> observer, | 223 base::WeakPtr<ChromeRenderThreadObserver> observer, |
| 229 mojo::InterfaceRequest<mojom::ResourceUsageReporter> request) { | 224 mojo::InterfaceRequest<mojom::ResourceUsageReporter> request) { |
| 230 new ResourceUsageReporterImpl(observer, std::move(request)); | 225 mojo::MakeStrongBinding(base::MakeUnique<ResourceUsageReporterImpl>(observer), |
| 226 std::move(request)); |
| 231 } | 227 } |
| 232 | 228 |
| 233 } // namespace | 229 } // namespace |
| 234 | 230 |
| 235 bool ChromeRenderThreadObserver::is_incognito_process_ = false; | 231 bool ChromeRenderThreadObserver::is_incognito_process_ = false; |
| 236 | 232 |
| 237 ChromeRenderThreadObserver::ChromeRenderThreadObserver() | 233 ChromeRenderThreadObserver::ChromeRenderThreadObserver() |
| 238 : field_trial_syncer_(this), weak_factory_(this) { | 234 : field_trial_syncer_(this), weak_factory_(this) { |
| 239 const base::CommandLine& command_line = | 235 const base::CommandLine& command_line = |
| 240 *base::CommandLine::ForCurrentProcess(); | 236 *base::CommandLine::ForCurrentProcess(); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 303 void ChromeRenderThreadObserver::OnSetFieldTrialGroup( | 299 void ChromeRenderThreadObserver::OnSetFieldTrialGroup( |
| 304 const std::string& trial_name, | 300 const std::string& trial_name, |
| 305 const std::string& group_name) { | 301 const std::string& group_name) { |
| 306 field_trial_syncer_.OnSetFieldTrialGroup(trial_name, group_name); | 302 field_trial_syncer_.OnSetFieldTrialGroup(trial_name, group_name); |
| 307 } | 303 } |
| 308 | 304 |
| 309 const RendererContentSettingRules* | 305 const RendererContentSettingRules* |
| 310 ChromeRenderThreadObserver::content_setting_rules() const { | 306 ChromeRenderThreadObserver::content_setting_rules() const { |
| 311 return &content_setting_rules_; | 307 return &content_setting_rules_; |
| 312 } | 308 } |
| OLD | NEW |