1// Copyright (c) 2010 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.
4
5#include "net/proxy/proxy_resolver_script_data.h"
6
7#include "base/logging.h"
8#include "base/utf_string_conversions.h"
9
10namespace net {
11
12// static
13scoped_refptr<ProxyResolverScriptData> ProxyResolverScriptData::FromUTF8(
14    const std::string& utf8) {
15  return new ProxyResolverScriptData(TYPE_SCRIPT_CONTENTS,
16                                     GURL(),
17                                     UTF8ToUTF16(utf8));
18}
19
20// static
21scoped_refptr<ProxyResolverScriptData> ProxyResolverScriptData::FromUTF16(
22    const string16& utf16) {
23  return new ProxyResolverScriptData(TYPE_SCRIPT_CONTENTS, GURL(), utf16);
24}
25
26// static
27scoped_refptr<ProxyResolverScriptData> ProxyResolverScriptData::FromURL(
28    const GURL& url) {
29  return new ProxyResolverScriptData(TYPE_SCRIPT_URL, url, string16());
30}
31
32// static
33scoped_refptr<ProxyResolverScriptData>
34ProxyResolverScriptData::ForAutoDetect() {
35  return new ProxyResolverScriptData(TYPE_AUTO_DETECT, GURL(), string16());
36}
37
38const string16& ProxyResolverScriptData::utf16() const {
39  DCHECK_EQ(TYPE_SCRIPT_CONTENTS, type_);
40  return utf16_;
41}
42
43const GURL& ProxyResolverScriptData::url() const {
44  DCHECK_EQ(TYPE_SCRIPT_URL, type_);
45  return url_;
46}
47
48ProxyResolverScriptData::ProxyResolverScriptData(Type type,
49                                                 const GURL& url,
50                                                 const string16& utf16)
51    : type_(type),
52      url_(url),
53      utf16_(utf16) {
54}
55
56ProxyResolverScriptData::~ProxyResolverScriptData() {}
57
58}  // namespace net
59