1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "android_webview/browser/aw_resource_context.h"
7 #include "content/public/browser/browser_thread.h"
8 #include "net/url_request/url_request_context.h"
9 #include "net/url_request/url_request_context_getter.h"
11 namespace android_webview
{
13 AwResourceContext::AwResourceContext(net::URLRequestContextGetter
* getter
)
18 AwResourceContext::~AwResourceContext() {
21 void AwResourceContext::SetExtraHeaders(
22 const GURL
& url
, const std::string
& headers
) {
23 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI
));
24 if (!url
.is_valid()) return;
25 base::AutoLock
scoped_lock(extra_headers_lock_
);
27 extra_headers_
[url
.spec()] = headers
;
29 extra_headers_
.erase(url
.spec());
32 std::string
AwResourceContext::GetExtraHeaders(const GURL
& url
) {
33 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO
));
34 if (!url
.is_valid()) return std::string();
35 base::AutoLock
scoped_lock(extra_headers_lock_
);
36 std::map
<std::string
, std::string
>::iterator iter
=
37 extra_headers_
.find(url
.spec());
38 return iter
!= extra_headers_
.end() ? iter
->second
: std::string();
41 net::HostResolver
* AwResourceContext::GetHostResolver() {
42 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO
));
43 return getter_
->GetURLRequestContext()->host_resolver();
46 net::URLRequestContext
* AwResourceContext::GetRequestContext() {
47 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO
));
48 return getter_
->GetURLRequestContext();
51 } // namespace android_webview