Chromium Code Reviews| Index: third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.h |
| diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.h b/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.h |
| index 141ea7cbce16ba6c0637c446867e7b49afbfee68..6c4bf332a159ba14b9913f4de7b2bfc778ac5c02 100644 |
| --- a/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.h |
| +++ b/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.h |
| @@ -9,10 +9,11 @@ |
| #include "base/macros.h" |
| #include "base/memory/ref_counted.h" |
| +#include "base/memory/weak_ptr.h" |
| #include "base/trace_event/trace_event.h" |
| #include "platform/WebFrameScheduler.h" |
| -#include "public/platform/scheduler/base/task_queue.h" |
| #include "public/platform/WebCommon.h" |
| +#include "public/platform/scheduler/base/task_queue.h" |
| namespace base { |
| namespace trace_event { |
| @@ -50,18 +51,37 @@ class WebFrameSchedulerImpl : public WebFrameScheduler { |
| void didStopLoading(unsigned long identifier) override; |
| void setDocumentParsingInBackground(bool background_parser_active) override; |
| void onFirstMeaningfulPaint() override; |
| + std::unique_ptr<ActiveConnectionHandle> onActiveConnectionCreated() override; |
| void AsValueInto(base::trace_event::TracedValue* state) const; |
| + bool has_active_connection() const { return active_connections_count_; } |
| + |
| private: |
| friend class WebViewSchedulerImpl; |
| + class ActiveConnectionHandleImpl : public ActiveConnectionHandle { |
| + public: |
| + ActiveConnectionHandleImpl(WebFrameSchedulerImpl* frame_scheduler); |
| + ~ActiveConnectionHandleImpl() override; |
| + |
| + private: |
| + base::WeakPtr<WebFrameSchedulerImpl> frame_scheduler_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(ActiveConnectionHandleImpl); |
| + }; |
| + |
| void DetachFromWebViewScheduler(); |
| void RemoveTimerQueueFromBackgroundTimeBudgetPool(); |
| void ApplyPolicyToTimerQueue(); |
| bool ShouldThrottleTimers() const; |
| void UpdateTimerThrottling(bool was_throttled); |
| + void didOpenActiveConnection(); |
| + void didCloseActiveConnection(); |
| + |
| + base::WeakPtr<WebFrameSchedulerImpl> AsWeakPtr(); |
| + |
| scoped_refptr<TaskQueue> loading_task_queue_; |
| scoped_refptr<TaskQueue> timer_task_queue_; |
| scoped_refptr<TaskQueue> unthrottled_task_queue_; |
| @@ -77,6 +97,9 @@ class WebFrameSchedulerImpl : public WebFrameScheduler { |
| bool page_throttled_; |
| bool frame_suspended_; |
| bool cross_origin_; |
| + int active_connections_count_; |
|
Sami
2017/01/26 15:53:34
nit: active_connection_count_ to avoid the double
altimin
2017/02/08 15:56:54
Done.
|
| + |
| + base::WeakPtrFactory<WebFrameSchedulerImpl> weak_factory_; |
| DISALLOW_COPY_AND_ASSIGN(WebFrameSchedulerImpl); |
| }; |