| Index: net/proxy/single_threaded_proxy_resolver.h
|
| ===================================================================
|
| --- net/proxy/single_threaded_proxy_resolver.h (revision 22399)
|
| +++ net/proxy/single_threaded_proxy_resolver.h (working copy)
|
| @@ -37,6 +37,7 @@
|
| CompletionCallback* callback,
|
| RequestHandle* request);
|
| virtual void CancelRequest(RequestHandle request);
|
| + virtual void CancelSetPacScript();
|
|
|
| protected:
|
| // The wrapped (synchronous) ProxyResolver.
|
| @@ -47,19 +48,18 @@
|
| // thread.
|
| class Job;
|
| friend class Job;
|
| + class SetPacScriptTask;
|
| + friend class SetPacScriptTask;
|
| // FIFO queue that contains the in-progress job, and any pending jobs.
|
| typedef std::deque<scoped_refptr<Job> > PendingJobsQueue;
|
|
|
| base::Thread* thread() { return thread_.get(); }
|
|
|
| // ProxyResolver implementation:
|
| - virtual void SetPacScriptByUrlInternal(const GURL& pac_url);
|
| - virtual void SetPacScriptByDataInternal(const std::string& bytes);
|
| + virtual int SetPacScript(const GURL& pac_url,
|
| + const std::string& pac_bytes,
|
| + CompletionCallback* callback);
|
|
|
| - // Helper for shared code between SetPacScriptByUrlInternal() and
|
| - // SetPacScriptByDataInternal() -- the unused parameter is set to empty.
|
| - void SetPacScriptHelper(const GURL& pac_url, const std::string& bytes);
|
| -
|
| // Starts the worker thread if it isn't already running.
|
| void EnsureThreadStarted();
|
|
|
| @@ -71,6 +71,10 @@
|
| // DCHECK for verification purposes.
|
| void RemoveFrontOfJobsQueueAndStartNext(Job* expected_job);
|
|
|
| + // Clears |outstanding_set_pac_script_task_|.
|
| + // Called when |task| has just finished.
|
| + void RemoveOutstandingSetPacScriptTask(SetPacScriptTask* task);
|
| +
|
| // The synchronous resolver implementation.
|
| scoped_ptr<ProxyResolver> resolver_;
|
|
|
| @@ -81,6 +85,7 @@
|
| scoped_ptr<base::Thread> thread_;
|
|
|
| PendingJobsQueue pending_jobs_;
|
| + scoped_refptr<SetPacScriptTask> outstanding_set_pac_script_task_;
|
| };
|
|
|
| } // namespace net
|
|
|