OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "public/platform/WebViewScheduler.h" | |
6 | |
7 #include "wtf/StdLibExtras.h" | |
8 #include "wtf/text/WTFString.h" | |
9 | |
10 namespace blink { | |
11 | |
12 WebViewScheduler::WebViewScheduler() | |
13 : m_pendingResourceLoadCount(0) | |
14 , m_virtualTimePolicy(VirtualTimePolicy::ADVANCE) | |
15 , m_weakPtrFactory(new WeakPtrFactory<WebViewScheduler>(this)) { } | |
16 | |
17 WebViewScheduler::~WebViewScheduler() { } | |
18 | |
19 void WebViewScheduler::incrementPendingResourceLoadCount() | |
20 { | |
21 m_pendingResourceLoadCount++; | |
22 | |
23 if (m_virtualTimePolicy != VirtualTimePolicy::PAUSE_IF_NETWORK_FETCHES_PENDI NG) | |
24 return; | |
25 | |
26 if (m_pendingResourceLoadCount == 1) | |
27 setAllowVirtualTimeToAdvance(false); | |
28 } | |
29 | |
30 void WebViewScheduler::decrementPendingResourceLoadCount() | |
31 { | |
32 m_pendingResourceLoadCount--; | |
33 DCHECK_GE(m_pendingResourceLoadCount, 0); | |
34 | |
35 if (m_virtualTimePolicy != VirtualTimePolicy::PAUSE_IF_NETWORK_FETCHES_PENDI NG) | |
36 return; | |
37 | |
38 if (m_pendingResourceLoadCount == 0) | |
39 setAllowVirtualTimeToAdvance(true); | |
40 } | |
41 | |
42 void WebViewScheduler::setVirtualTimePolicy(VirtualTimePolicy policy) | |
43 { | |
44 m_virtualTimePolicy = policy; | |
45 | |
46 switch (m_virtualTimePolicy) { | |
47 case VirtualTimePolicy::ADVANCE: | |
48 setAllowVirtualTimeToAdvance(true); | |
49 break; | |
50 | |
51 case VirtualTimePolicy::PAUSE: | |
52 setAllowVirtualTimeToAdvance(false); | |
53 break; | |
54 | |
55 case VirtualTimePolicy::PAUSE_IF_NETWORK_FETCHES_PENDING: | |
56 setAllowVirtualTimeToAdvance(m_pendingResourceLoadCount == 0); | |
57 break; | |
58 } | |
59 } | |
60 | |
61 void WebViewScheduler::setVirtualTimePolicy(const String& policy) | |
62 { | |
63 DEFINE_STATIC_LOCAL(String, advance, ("advance")); | |
64 DEFINE_STATIC_LOCAL(String, pause, ("pause")); | |
65 DEFINE_STATIC_LOCAL(String, pauseIfNetworkFetchesPending, ("pauseIfNetworkFe tchesPending")); | |
66 | |
67 if (policy == advance) { | |
dgozman
2016/06/30 17:32:08
This string->enum conversion should happen in Insp
alex clarke (OOO till 29th)
2016/07/01 14:09:14
Ah I didn't know about those. This is nicer now,
| |
68 setVirtualTimePolicy(VirtualTimePolicy::ADVANCE); | |
69 } else if (policy == pause) { | |
70 setVirtualTimePolicy(VirtualTimePolicy::PAUSE); | |
71 } else if (policy == pauseIfNetworkFetchesPending) { | |
72 setVirtualTimePolicy(VirtualTimePolicy::PAUSE_IF_NETWORK_FETCHES_PENDING ); | |
73 } | |
74 } | |
75 | |
76 } // namespace blink | |
OLD | NEW |