Index: third_party/WebKit/public/platform/WebViewScheduler.h |
diff --git a/third_party/WebKit/public/platform/WebViewScheduler.h b/third_party/WebKit/public/platform/WebViewScheduler.h |
index 3635b784a04c751614fee6653e7850d56ea7553a..60d9f2ed2c142b9c6d7836b76c8b870461bcd963 100644 |
--- a/third_party/WebKit/public/platform/WebViewScheduler.h |
+++ b/third_party/WebKit/public/platform/WebViewScheduler.h |
@@ -8,6 +8,15 @@ |
#include "WebCommon.h" |
#include "public/platform/BlameContext.h" |
+#if INSIDE_BLINK |
+#include "wtf/Forward.h" |
+#include "wtf/WeakPtr.h" |
+#else |
+namespace WTF { |
+template<typename T> class WeakPtrFactory; |
+} |
+#endif |
+ |
#include <memory> |
namespace blink { |
@@ -16,7 +25,8 @@ class WebFrameScheduler; |
class BLINK_PLATFORM_EXPORT WebViewScheduler { |
public: |
- virtual ~WebViewScheduler() { } |
+ WebViewScheduler(); |
+ virtual ~WebViewScheduler(); |
// The scheduler may throttle tasks associated with background pages. |
virtual void setPageVisible(bool) = 0; |
@@ -44,6 +54,33 @@ public: |
// fast forward so that the system doesn't actually sleep for the delays between |
// tasks before executing them. |
virtual void setAllowVirtualTimeToAdvance(bool) = 0; |
+ |
+ // Returns true if virtual time is allowed to advance. |
+ virtual bool virtualTimeAllowedToAdvance() const = 0; |
+ |
+ void incrementPendingResourceLoadCount(); |
+ void decrementPendingResourceLoadCount(); |
+ |
+ enum class VirtualTimePolicy { |
+ ADVANCE, |
+ PAUSE, |
+ PAUSE_IF_NETWORK_FETCHES_PENDING |
+ }; |
+ |
+ void setVirtualTimePolicy(VirtualTimePolicy); |
+ |
+#ifdef INSIDE_BLINK |
+ void setVirtualTimePolicy(const WTF::String&); |
+ |
+ WeakPtr<WebViewScheduler> createWeakPtr() { return m_weakPtrFactory->createWeakPtr(); } |
+#endif |
+ |
+private: |
+ int m_pendingResourceLoadCount; |
+ VirtualTimePolicy m_virtualTimePolicy; |
+ |
+ // This is ugly. We can't use WTF types outside of blink but we can forward declare them. |
+ std::unique_ptr<WTF::WeakPtrFactory<WebViewScheduler>> m_weakPtrFactory; |
}; |
} // namespace blink |