OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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/extensions/api/web_request/web_request_api.h" | 5 #include "chrome/browser/extensions/api/web_request/web_request_api.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 // We require either a "value" or a "binaryValue" entry. | 168 // We require either a "value" or a "binaryValue" entry. |
169 if (!(header_value->HasKey(keys::kHeaderValueKey) ^ | 169 if (!(header_value->HasKey(keys::kHeaderValueKey) ^ |
170 header_value->HasKey(keys::kHeaderBinaryValueKey))) | 170 header_value->HasKey(keys::kHeaderBinaryValueKey))) |
171 return false; | 171 return false; |
172 | 172 |
173 if (header_value->HasKey(keys::kHeaderValueKey)) { | 173 if (header_value->HasKey(keys::kHeaderValueKey)) { |
174 if (!header_value->GetString(keys::kHeaderValueKey, value)) { | 174 if (!header_value->GetString(keys::kHeaderValueKey, value)) { |
175 return false; | 175 return false; |
176 } | 176 } |
177 } else if (header_value->HasKey(keys::kHeaderBinaryValueKey)) { | 177 } else if (header_value->HasKey(keys::kHeaderBinaryValueKey)) { |
178 ListValue* list = NULL; | 178 const ListValue* list = NULL; |
179 if (!header_value->GetList(keys::kHeaderBinaryValueKey, &list) || | 179 if (!header_value->GetList(keys::kHeaderBinaryValueKey, &list) || |
180 !helpers::CharListToString(list, value)) { | 180 !helpers::CharListToString(list, value)) { |
181 return false; | 181 return false; |
182 } | 182 } |
183 } | 183 } |
184 return true; | 184 return true; |
185 } | 185 } |
186 | 186 |
187 // Converts the |name|, |value| pair of a http header to a HttpHeaders | 187 // Converts the |name|, |value| pair of a http header to a HttpHeaders |
188 // dictionary. Ownership is passed to the caller. | 188 // dictionary. Ownership is passed to the caller. |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 }; | 343 }; |
344 | 344 |
345 bool ExtensionWebRequestEventRouter::RequestFilter::InitFromValue( | 345 bool ExtensionWebRequestEventRouter::RequestFilter::InitFromValue( |
346 const DictionaryValue& value, std::string* error) { | 346 const DictionaryValue& value, std::string* error) { |
347 if (!value.HasKey("urls")) | 347 if (!value.HasKey("urls")) |
348 return false; | 348 return false; |
349 | 349 |
350 for (DictionaryValue::key_iterator key = value.begin_keys(); | 350 for (DictionaryValue::key_iterator key = value.begin_keys(); |
351 key != value.end_keys(); ++key) { | 351 key != value.end_keys(); ++key) { |
352 if (*key == "urls") { | 352 if (*key == "urls") { |
353 ListValue* urls_value = NULL; | 353 const ListValue* urls_value = NULL; |
354 if (!value.GetList("urls", &urls_value)) | 354 if (!value.GetList("urls", &urls_value)) |
355 return false; | 355 return false; |
356 for (size_t i = 0; i < urls_value->GetSize(); ++i) { | 356 for (size_t i = 0; i < urls_value->GetSize(); ++i) { |
357 std::string url; | 357 std::string url; |
358 URLPattern pattern( | 358 URLPattern pattern( |
359 URLPattern::SCHEME_HTTP | URLPattern::SCHEME_HTTPS | | 359 URLPattern::SCHEME_HTTP | URLPattern::SCHEME_HTTPS | |
360 URLPattern::SCHEME_FTP | URLPattern::SCHEME_FILE | | 360 URLPattern::SCHEME_FTP | URLPattern::SCHEME_FILE | |
361 URLPattern::SCHEME_EXTENSION); | 361 URLPattern::SCHEME_EXTENSION); |
362 if (!urls_value->GetString(i, &url) || | 362 if (!urls_value->GetString(i, &url) || |
363 pattern.Parse(url) != URLPattern::PARSE_SUCCESS) { | 363 pattern.Parse(url) != URLPattern::PARSE_SUCCESS) { |
364 *error = ExtensionErrorUtils::FormatErrorMessage( | 364 *error = ExtensionErrorUtils::FormatErrorMessage( |
365 keys::kInvalidRequestFilterUrl, url); | 365 keys::kInvalidRequestFilterUrl, url); |
366 return false; | 366 return false; |
367 } | 367 } |
368 urls.AddPattern(pattern); | 368 urls.AddPattern(pattern); |
369 } | 369 } |
370 } else if (*key == "types") { | 370 } else if (*key == "types") { |
371 ListValue* types_value = NULL; | 371 const ListValue* types_value = NULL; |
372 if (!value.GetList("types", &types_value)) | 372 if (!value.GetList("types", &types_value)) |
373 return false; | 373 return false; |
374 for (size_t i = 0; i < types_value->GetSize(); ++i) { | 374 for (size_t i = 0; i < types_value->GetSize(); ++i) { |
375 std::string type_str; | 375 std::string type_str; |
376 ResourceType::Type type; | 376 ResourceType::Type type; |
377 if (!types_value->GetString(i, &type_str) || | 377 if (!types_value->GetString(i, &type_str) || |
378 !helpers::ParseResourceType(type_str, &type)) | 378 !helpers::ParseResourceType(type_str, &type)) |
379 return false; | 379 return false; |
380 types.push_back(type); | 380 types.push_back(type); |
381 } | 381 } |
(...skipping 1405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1787 } else if ((*it)->name().find("AdBlock") != std::string::npos) { | 1787 } else if ((*it)->name().find("AdBlock") != std::string::npos) { |
1788 adblock = true; | 1788 adblock = true; |
1789 } else { | 1789 } else { |
1790 other = true; | 1790 other = true; |
1791 } | 1791 } |
1792 } | 1792 } |
1793 } | 1793 } |
1794 | 1794 |
1795 host->Send(new ExtensionMsg_UsingWebRequestAPI(adblock, adblock_plus, other)); | 1795 host->Send(new ExtensionMsg_UsingWebRequestAPI(adblock, adblock_plus, other)); |
1796 } | 1796 } |
OLD | NEW |