Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(363)

Side by Side Diff: net/proxy/proxy_service.h

Issue 113043: Fix gconf for the linux proxy config service.... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 11 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/proxy/proxy_script_fetcher_unittest.cc ('k') | net/proxy/proxy_service.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef NET_PROXY_PROXY_SERVICE_H_ 5 #ifndef NET_PROXY_PROXY_SERVICE_H_
6 #define NET_PROXY_PROXY_SERVICE_H_ 6 #define NET_PROXY_PROXY_SERVICE_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <string> 9 #include <string>
10 10
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 void CancelPacRequest(PacRequest* pac_request); 82 void CancelPacRequest(PacRequest* pac_request);
83 83
84 // Sets the ProxyScriptFetcher dependency. This is needed if the ProxyResolver 84 // Sets the ProxyScriptFetcher dependency. This is needed if the ProxyResolver
85 // is of type ProxyResolverWithoutFetch. ProxyService takes ownership of 85 // is of type ProxyResolverWithoutFetch. ProxyService takes ownership of
86 // |proxy_script_fetcher|. 86 // |proxy_script_fetcher|.
87 void SetProxyScriptFetcher(ProxyScriptFetcher* proxy_script_fetcher); 87 void SetProxyScriptFetcher(ProxyScriptFetcher* proxy_script_fetcher);
88 88
89 // Creates a proxy service using the specified settings. If |pc| is NULL then 89 // Creates a proxy service using the specified settings. If |pc| is NULL then
90 // the system's default proxy settings will be used (on Windows this will 90 // the system's default proxy settings will be used (on Windows this will
91 // use IE's settings). 91 // use IE's settings).
92 static ProxyService* Create(const ProxyConfig* pc); 92 // Iff |use_v8_resolver| is true, then the V8 implementation is
93 93 // used.
94 // Creates a proxy service using the specified settings. If |pc| is NULL then 94 // |url_request_context| is only used when use_v8_resolver is true:
95 // the system's default proxy settings will be used. This is basically the 95 // it specifies the URL request context that will be used if a PAC
96 // same as Create(const ProxyConfig*), however under the hood it uses a 96 // script needs to be fetched.
97 // different implementation (V8). |url_request_context| is the URL request 97 // |io_loop| points to the IO thread's message loop. It is only used
98 // context that will be used if a PAC script needs to be fetched. 98 // when pc is NULL. If both pc and io_loop are NULL, then monitoring
99 // of gconf setting changes will be disabled in
100 // ProxyConfigServiceLinux.
99 // ########################################################################## 101 // ##########################################################################
100 // # See the warnings in net/proxy/proxy_resolver_v8.h describing the 102 // # See the warnings in net/proxy/proxy_resolver_v8.h describing the
101 // # multi-threading model. In order for this to be safe to use, *ALL* the 103 // # multi-threading model. In order for this to be safe to use, *ALL* the
102 // # other V8's running in the process must use v8::Locker. 104 // # other V8's running in the process must use v8::Locker.
103 // ########################################################################## 105 // ##########################################################################
104 static ProxyService* CreateUsingV8Resolver( 106 static ProxyService* Create(
105 const ProxyConfig* pc, 107 const ProxyConfig* pc,
106 URLRequestContext* url_request_context); 108 bool use_v8_resolver,
109 URLRequestContext* url_request_context,
110 MessageLoop* io_loop);
111
112 // Convenience method that creates a proxy service using the
113 // specified fixed settings. |pc| must not be NULL.
114 static ProxyService* CreateFixed(const ProxyConfig& pc);
107 115
108 // Creates a proxy service that always fails to fetch the proxy configuration, 116 // Creates a proxy service that always fails to fetch the proxy configuration,
109 // so it falls back to direct connect. 117 // so it falls back to direct connect.
110 static ProxyService* CreateNull(); 118 static ProxyService* CreateNull();
111 119
112 private: 120 private:
113 friend class PacRequest; 121 friend class PacRequest;
114 122
115 // Creates a config service appropriate for this platform that fetches the 123 // Creates a config service appropriate for this platform that fetches the
116 // system proxy settings. 124 // system proxy settings.
117 static ProxyConfigService* CreateSystemProxyConfigService(); 125 static ProxyConfigService* CreateSystemProxyConfigService(
126 MessageLoop* io_loop);
118 127
119 // Creates a proxy resolver appropriate for this platform that doesn't rely 128 // Creates a proxy resolver appropriate for this platform that doesn't rely
120 // on V8. 129 // on V8.
121 static ProxyResolver* CreateNonV8ProxyResolver(); 130 static ProxyResolver* CreateNonV8ProxyResolver();
122 131
123 ProxyResolver* resolver() { return resolver_.get(); } 132 ProxyResolver* resolver() { return resolver_.get(); }
124 base::Thread* pac_thread() { return pac_thread_.get(); } 133 base::Thread* pac_thread() { return pac_thread_.get(); }
125 134
126 // Identifies the proxy configuration. 135 // Identifies the proxy configuration.
127 ProxyConfig::ID config_id() const { return config_.id(); } 136 ProxyConfig::ID config_id() const { return config_.id(); }
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 265
257 base::WaitableEvent event_; 266 base::WaitableEvent event_;
258 CompletionCallbackImpl<SyncProxyServiceHelper> callback_; 267 CompletionCallbackImpl<SyncProxyServiceHelper> callback_;
259 ProxyInfo proxy_info_; 268 ProxyInfo proxy_info_;
260 int result_; 269 int result_;
261 }; 270 };
262 271
263 } // namespace net 272 } // namespace net
264 273
265 #endif // NET_PROXY_PROXY_SERVICE_H_ 274 #endif // NET_PROXY_PROXY_SERVICE_H_
OLDNEW
« no previous file with comments | « net/proxy/proxy_script_fetcher_unittest.cc ('k') | net/proxy/proxy_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698