summaryrefslogtreecommitdiffstats
path: root/net/proxy/mock_proxy_resolver.h
diff options
context:
space:
mode:
authoreroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-20 20:55:17 +0000
committereroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-20 20:55:17 +0000
commit2447640cc25951a7522c0b655f3482ca9cc1c27b (patch)
treed54947c9fb370362b387ade837869eceb2d9ad2f /net/proxy/mock_proxy_resolver.h
parent28900505e2304ff77769f8fce09b575eab33fc85 (diff)
downloadchromium_src-2447640cc25951a7522c0b655f3482ca9cc1c27b.zip
chromium_src-2447640cc25951a7522c0b655f3482ca9cc1c27b.tar.gz
chromium_src-2447640cc25951a7522c0b655f3482ca9cc1c27b.tar.bz2
Reference-count the data used by PAC scripts, so it is shared between threads.
BUG=49396 Review URL: http://codereview.chromium.org/2836060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53095 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/proxy/mock_proxy_resolver.h')
-rw-r--r--net/proxy/mock_proxy_resolver.h25
1 files changed, 11 insertions, 14 deletions
diff --git a/net/proxy/mock_proxy_resolver.h b/net/proxy/mock_proxy_resolver.h
index 5087d6c..9babb66 100644
--- a/net/proxy/mock_proxy_resolver.h
+++ b/net/proxy/mock_proxy_resolver.h
@@ -59,19 +59,17 @@ class MockAsyncProxyResolverBase : public ProxyResolver {
class SetPacScriptRequest {
public:
- SetPacScriptRequest(MockAsyncProxyResolverBase* resolver,
- const GURL& pac_url,
- const string16& pac_script,
- CompletionCallback* callback)
+ SetPacScriptRequest(
+ MockAsyncProxyResolverBase* resolver,
+ const scoped_refptr<ProxyResolverScriptData>& script_data,
+ CompletionCallback* callback)
: resolver_(resolver),
- pac_url_(pac_url),
- pac_script_(pac_script),
+ script_data_(script_data),
callback_(callback),
origin_loop_(MessageLoop::current()) {
}
- const GURL& pac_url() const { return pac_url_; }
- const string16& pac_script() const { return pac_script_; }
+ const ProxyResolverScriptData* script_data() const { return script_data_; }
void CompleteNow(int rv) {
CompletionCallback* callback = callback_;
@@ -84,8 +82,7 @@ class MockAsyncProxyResolverBase : public ProxyResolver {
private:
MockAsyncProxyResolverBase* resolver_;
- const GURL pac_url_;
- const string16 pac_script_;
+ const scoped_refptr<ProxyResolverScriptData> script_data_;
CompletionCallback* callback_;
MessageLoop* origin_loop_;
};
@@ -114,12 +111,12 @@ class MockAsyncProxyResolverBase : public ProxyResolver {
RemovePendingRequest(request);
}
- virtual int SetPacScript(const GURL& pac_url,
- const string16& pac_script,
- CompletionCallback* callback) {
+ virtual int SetPacScript(
+ const scoped_refptr<ProxyResolverScriptData>& script_data,
+ CompletionCallback* callback) {
DCHECK(!pending_set_pac_script_request_.get());
pending_set_pac_script_request_.reset(
- new SetPacScriptRequest(this, pac_url, pac_script, callback));
+ new SetPacScriptRequest(this, script_data, callback));
// Finished when user calls SetPacScriptRequest::CompleteNow().
return ERR_IO_PENDING;
}