OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/alternate_nav_url_fetcher.h" | 5 #include "chrome/browser/alternate_nav_url_fetcher.h" |
6 | 6 |
7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
8 #include "app/resource_bundle.h" | 8 #include "app/resource_bundle.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "chrome/browser/intranet_redirect_detector.h" | 10 #include "chrome/browser/intranet_redirect_detector.h" |
11 #include "chrome/browser/profiles/profile.h" | 11 #include "chrome/browser/profiles/profile.h" |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 // access the controller that will be invalid, we delete ourselves. | 79 // access the controller that will be invalid, we delete ourselves. |
80 // This deletes the URLFetcher and insures its callback won't be called. | 80 // This deletes the URLFetcher and insures its callback won't be called. |
81 delete this; | 81 delete this; |
82 break; | 82 break; |
83 | 83 |
84 default: | 84 default: |
85 NOTREACHED(); | 85 NOTREACHED(); |
86 } | 86 } |
87 } | 87 } |
88 | 88 |
89 void AlternateNavURLFetcher::OnURLFetchComplete(const URLFetcher* source, | 89 void AlternateNavURLFetcher::OnURLFetchComplete( |
90 const GURL& url, | 90 const URLFetcher* source, |
91 const URLRequestStatus& status, | 91 const GURL& url, |
92 int response_code, | 92 const net::URLRequestStatus& status, |
93 const ResponseCookies& cookies, | 93 int response_code, |
94 const std::string& data) { | 94 const ResponseCookies& cookies, |
| 95 const std::string& data) { |
95 DCHECK(fetcher_.get() == source); | 96 DCHECK(fetcher_.get() == source); |
96 SetStatusFromURLFetch(url, status, response_code); | 97 SetStatusFromURLFetch(url, status, response_code); |
97 ShowInfobarIfPossible(); | 98 ShowInfobarIfPossible(); |
98 } | 99 } |
99 | 100 |
100 string16 AlternateNavURLFetcher::GetMessageTextWithOffset( | 101 string16 AlternateNavURLFetcher::GetMessageTextWithOffset( |
101 size_t* link_offset) const { | 102 size_t* link_offset) const { |
102 const string16 label = l10n_util::GetStringFUTF16( | 103 const string16 label = l10n_util::GetStringFUTF16( |
103 IDS_ALTERNATE_NAV_URL_VIEW_LABEL, string16(), link_offset); | 104 IDS_ALTERNATE_NAV_URL_VIEW_LABEL, string16(), link_offset); |
104 DCHECK(*link_offset != string16::npos); | 105 DCHECK(*link_offset != string16::npos); |
(...skipping 21 matching lines...) Expand all Loading... |
126 // TabContents. | 127 // TabContents. |
127 return true; | 128 return true; |
128 } | 129 } |
129 | 130 |
130 void AlternateNavURLFetcher::InfoBarClosed() { | 131 void AlternateNavURLFetcher::InfoBarClosed() { |
131 delete this; | 132 delete this; |
132 } | 133 } |
133 | 134 |
134 void AlternateNavURLFetcher::SetStatusFromURLFetch( | 135 void AlternateNavURLFetcher::SetStatusFromURLFetch( |
135 const GURL& url, | 136 const GURL& url, |
136 const URLRequestStatus& status, | 137 const net::URLRequestStatus& status, |
137 int response_code) { | 138 int response_code) { |
138 if (!status.is_success() || | 139 if (!status.is_success() || |
139 // HTTP 2xx, 401, and 407 all indicate that the target address exists. | 140 // HTTP 2xx, 401, and 407 all indicate that the target address exists. |
140 (((response_code / 100) != 2) && | 141 (((response_code / 100) != 2) && |
141 (response_code != 401) && (response_code != 407)) || | 142 (response_code != 401) && (response_code != 407)) || |
142 // Fail if we're redirected to a common location. | 143 // Fail if we're redirected to a common location. |
143 // This happens for ISPs/DNS providers/etc. who return | 144 // This happens for ISPs/DNS providers/etc. who return |
144 // provider-controlled pages to arbitrary user navigation attempts. | 145 // provider-controlled pages to arbitrary user navigation attempts. |
145 // Because this can result in infobars on large fractions of user | 146 // Because this can result in infobars on large fractions of user |
146 // searches, we don't show automatic infobars for these. Note that users | 147 // searches, we don't show automatic infobars for these. Note that users |
(...skipping 14 matching lines...) Expand all Loading... |
161 if (state_ == FAILED) | 162 if (state_ == FAILED) |
162 delete this; | 163 delete this; |
163 return; | 164 return; |
164 } | 165 } |
165 | 166 |
166 infobar_contents_ = controller_->tab_contents(); | 167 infobar_contents_ = controller_->tab_contents(); |
167 StoreActiveEntryUniqueID(infobar_contents_); | 168 StoreActiveEntryUniqueID(infobar_contents_); |
168 // We will be deleted when the InfoBar is destroyed. (See InfoBarClosed). | 169 // We will be deleted when the InfoBar is destroyed. (See InfoBarClosed). |
169 infobar_contents_->AddInfoBar(this); | 170 infobar_contents_->AddInfoBar(this); |
170 } | 171 } |
OLD | NEW |