summaryrefslogtreecommitdiffstats
path: root/net/proxy/single_threaded_proxy_resolver.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/proxy/single_threaded_proxy_resolver.cc')
-rw-r--r--net/proxy/single_threaded_proxy_resolver.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/net/proxy/single_threaded_proxy_resolver.cc b/net/proxy/single_threaded_proxy_resolver.cc
index 01c35fa..af8d7bf 100644
--- a/net/proxy/single_threaded_proxy_resolver.cc
+++ b/net/proxy/single_threaded_proxy_resolver.cc
@@ -11,6 +11,18 @@
namespace net {
+namespace {
+
+class PurgeMemoryTask : public base::RefCountedThreadSafe<PurgeMemoryTask> {
+ public:
+ explicit PurgeMemoryTask(ProxyResolver* resolver) : resolver_(resolver) {}
+ void PurgeMemory() { resolver_->PurgeMemory(); }
+ private:
+ ProxyResolver* resolver_;
+};
+
+}
+
// SingleThreadedProxyResolver::SetPacScriptTask ------------------------------
// Runs on the worker thread to call ProxyResolver::SetPacScript.
@@ -255,6 +267,14 @@ void SingleThreadedProxyResolver::CancelSetPacScript() {
outstanding_set_pac_script_task_ = NULL;
}
+void SingleThreadedProxyResolver::PurgeMemory() {
+ if (thread_.get()) {
+ scoped_refptr<PurgeMemoryTask> helper(new PurgeMemoryTask(resolver_.get()));
+ thread_->message_loop()->PostTask(FROM_HERE,
+ NewRunnableMethod(helper.get(), &PurgeMemoryTask::PurgeMemory));
+ }
+}
+
int SingleThreadedProxyResolver::SetPacScript(
const GURL& pac_url,
const std::string& pac_bytes,