file_manager: Fix a bug where hosted documents could not be opened without active...
[chromium-blink-merge.git] / net / proxy / proxy_resolver_script_data.cc
blob7ee07a5d794435c7a646f1e0d13acdc16ed85938
1 // Copyright (c) 2012 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 "net/proxy/proxy_resolver_script_data.h"
7 #include "base/logging.h"
8 #include "base/strings/utf_string_conversions.h"
10 namespace net {
12 // static
13 scoped_refptr<ProxyResolverScriptData> ProxyResolverScriptData::FromUTF8(
14 const std::string& utf8) {
15 return new ProxyResolverScriptData(TYPE_SCRIPT_CONTENTS,
16 GURL(),
17 UTF8ToUTF16(utf8));
20 // static
21 scoped_refptr<ProxyResolverScriptData> ProxyResolverScriptData::FromUTF16(
22 const base::string16& utf16) {
23 return new ProxyResolverScriptData(TYPE_SCRIPT_CONTENTS, GURL(), utf16);
26 // static
27 scoped_refptr<ProxyResolverScriptData> ProxyResolverScriptData::FromURL(
28 const GURL& url) {
29 return new ProxyResolverScriptData(TYPE_SCRIPT_URL, url, base::string16());
32 // static
33 scoped_refptr<ProxyResolverScriptData>
34 ProxyResolverScriptData::ForAutoDetect() {
35 return new ProxyResolverScriptData(TYPE_AUTO_DETECT, GURL(),
36 base::string16());
39 const base::string16& ProxyResolverScriptData::utf16() const {
40 DCHECK_EQ(TYPE_SCRIPT_CONTENTS, type_);
41 return utf16_;
44 const GURL& ProxyResolverScriptData::url() const {
45 DCHECK_EQ(TYPE_SCRIPT_URL, type_);
46 return url_;
49 bool ProxyResolverScriptData::Equals(
50 const ProxyResolverScriptData* other) const {
51 if (type() != other->type())
52 return false;
54 switch (type()) {
55 case TYPE_SCRIPT_CONTENTS:
56 return utf16() == other->utf16();
57 case TYPE_SCRIPT_URL:
58 return url() == other->url();
59 case TYPE_AUTO_DETECT:
60 return true;
63 return false; // Shouldn't be reached.
66 ProxyResolverScriptData::ProxyResolverScriptData(Type type,
67 const GURL& url,
68 const base::string16& utf16)
69 : type_(type),
70 url_(url),
71 utf16_(utf16) {
74 ProxyResolverScriptData::~ProxyResolverScriptData() {}
76 } // namespace net