1effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "extensions/browser/api/dns/host_resolver_wrapper.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "content/public/browser/resource_context.h"
85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "net/dns/host_resolver.h"
95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace extensions {
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochHostResolverWrapper::HostResolverWrapper() : resolver_(NULL) {}
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)HostResolverWrapper* HostResolverWrapper::GetInstance() {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return Singleton<extensions::HostResolverWrapper>::get();
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)net::HostResolver* HostResolverWrapper::GetHostResolver(
205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    content::ResourceContext* context) {
215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  return resolver_ ? resolver_ : context->GetHostResolver();
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void HostResolverWrapper::SetHostResolverForTesting(
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    net::HostResolver* mock_resolver) {
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  resolver_ = mock_resolver;
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace extensions
30