summaryrefslogtreecommitdiffstats
path: root/net/proxy/init_proxy_resolver.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/proxy/init_proxy_resolver.h')
-rw-r--r--net/proxy/init_proxy_resolver.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/net/proxy/init_proxy_resolver.h b/net/proxy/init_proxy_resolver.h
index 6c417d5..1bdb4e8 100644
--- a/net/proxy/init_proxy_resolver.h
+++ b/net/proxy/init_proxy_resolver.h
@@ -9,6 +9,8 @@
#include <vector>
#include "base/string16.h"
+#include "base/time.h"
+#include "base/timer.h"
#include "googleurl/src/gurl.h"
#include "net/base/completion_callback.h"
#include "net/base/net_log.h"
@@ -47,12 +49,17 @@ class InitProxyResolver {
~InitProxyResolver();
// Apply the PAC settings of |config| to |resolver_|.
+ // If |wait_delay| is positive, the initialization will pause for this
+ // amount of time before getting started.
int Init(const ProxyConfig& config,
+ const base::TimeDelta wait_delay,
CompletionCallback* callback);
private:
enum State {
STATE_NONE,
+ STATE_WAIT,
+ STATE_WAIT_COMPLETE,
STATE_FETCH_PAC_SCRIPT,
STATE_FETCH_PAC_SCRIPT_COMPLETE,
STATE_SET_PAC_SCRIPT,
@@ -75,6 +82,9 @@ class InitProxyResolver {
int DoLoop(int result);
void DoCallback(int result);
+ int DoWait();
+ int DoWaitComplete(int result);
+
int DoFetchPacScript();
int DoFetchPacScriptComplete(int result);
@@ -94,6 +104,7 @@ class InitProxyResolver {
// Returns the current PAC URL we are fetching/testing.
const PacURL& current_pac_url() const;
+ void OnWaitTimerFired();
void DidCompleteInit();
void Cancel();
@@ -113,6 +124,9 @@ class InitProxyResolver {
BoundNetLog net_log_;
+ base::TimeDelta wait_delay_;
+ base::OneShotTimer<InitProxyResolver> wait_timer_;
+
DISALLOW_COPY_AND_ASSIGN(InitProxyResolver);
};