summaryrefslogtreecommitdiffstats
path: root/net/url_request/url_request_context_getter.h
diff options
context:
space:
mode:
authorKristian Monsen <kristianm@google.com>2011-06-28 21:49:31 +0100
committerKristian Monsen <kristianm@google.com>2011-07-08 17:55:00 +0100
commitddb351dbec246cf1fab5ec20d2d5520909041de1 (patch)
tree158e3fb57bdcac07c7f1e767fde3c70687c9fbb1 /net/url_request/url_request_context_getter.h
parent6b92e04f5f151c896e3088e86f70db7081009308 (diff)
downloadexternal_chromium-ddb351dbec246cf1fab5ec20d2d5520909041de1.zip
external_chromium-ddb351dbec246cf1fab5ec20d2d5520909041de1.tar.gz
external_chromium-ddb351dbec246cf1fab5ec20d2d5520909041de1.tar.bz2
Merge Chromium at r12.0.742.93: Initial merge by git
Change-Id: Ic5ee2fec31358bbee305f7e915442377bfa6cda6
Diffstat (limited to 'net/url_request/url_request_context_getter.h')
-rw-r--r--net/url_request/url_request_context_getter.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/net/url_request/url_request_context_getter.h b/net/url_request/url_request_context_getter.h
new file mode 100644
index 0000000..b6c5464
--- /dev/null
+++ b/net/url_request/url_request_context_getter.h
@@ -0,0 +1,74 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_COMMON_NET_URL_REQUEST_CONTEXT_GETTER_H_
+#define CHROME_COMMON_NET_URL_REQUEST_CONTEXT_GETTER_H_
+#pragma once
+
+#include "base/memory/ref_counted.h"
+#include "base/task.h"
+
+namespace base {
+class MessageLoopProxy;
+}
+
+namespace net {
+class CookieStore;
+class URLRequestContext;
+
+struct URLRequestContextGetterTraits;
+
+// Interface for retrieving an net::URLRequestContext.
+class URLRequestContextGetter
+ : public base::RefCountedThreadSafe<URLRequestContextGetter,
+ URLRequestContextGetterTraits> {
+ public:
+ virtual URLRequestContext* GetURLRequestContext() = 0;
+
+ // See http://crbug.com/77835 for why this shouldn't be used. Instead use
+ // GetURLRequestContext()->cookie_store();
+ virtual CookieStore* DONTUSEME_GetCookieStore();
+
+ // Returns a MessageLoopProxy corresponding to the thread on which the
+ // request IO happens (the thread on which the returned net::URLRequestContext
+ // may be used).
+ virtual scoped_refptr<base::MessageLoopProxy>
+ GetIOMessageLoopProxy() const = 0;
+
+ // Controls whether or not the URLRequestContextGetter considers itself to be
+ // the the "main" URLRequestContextGetter. Note that each Profile will have a
+ // "default" URLRequestContextGetter. Therefore, "is_main" refers to the
+ // default URLRequestContextGetter for the "main" Profile.
+ // TODO(willchan): Move this code to ChromeURLRequestContextGetter, since this
+ // ia a browser process specific concept.
+ void set_is_main(bool is_main) { is_main_ = is_main; }
+
+ protected:
+ friend class DeleteTask<const URLRequestContextGetter>;
+ friend struct URLRequestContextGetterTraits;
+
+ URLRequestContextGetter();
+ virtual ~URLRequestContextGetter();
+
+ bool is_main() const { return is_main_; }
+
+ private:
+ // OnDestruct is meant to ensure deletion on the thread on which the request
+ // IO happens.
+ void OnDestruct() const;
+
+ // Indicates whether or not this is the default URLRequestContextGetter for
+ // the main Profile.
+ bool is_main_;
+};
+
+struct URLRequestContextGetterTraits {
+ static void Destruct(const URLRequestContextGetter* context_getter) {
+ context_getter->OnDestruct();
+ }
+};
+
+} // namespace net
+
+#endif // CHROME_COMMON_NET_URL_REQUEST_CONTEXT_GETTER_H_