OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/data_reduction_proxy/browser/data_reduction_proxy_params.h" | 5 #include "components/data_reduction_proxy/browser/data_reduction_proxy_params.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/metrics/field_trial.h" | 8 #include "base/metrics/field_trial.h" |
9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
10 #include "components/data_reduction_proxy/common/data_reduction_proxy_switches.h " | 10 #include "components/data_reduction_proxy/common/data_reduction_proxy_switches.h " |
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
353 return false; | 353 return false; |
354 } | 354 } |
355 | 355 |
356 bool DataReductionProxyParams::AreProxiesBypassed( | 356 bool DataReductionProxyParams::AreProxiesBypassed( |
357 const net::ProxyRetryInfoMap& retry_map, | 357 const net::ProxyRetryInfoMap& retry_map, |
358 bool is_https, | 358 bool is_https, |
359 base::TimeDelta* min_retry_delay) const { | 359 base::TimeDelta* min_retry_delay) const { |
360 if (retry_map.size() == 0) | 360 if (retry_map.size() == 0) |
361 return false; | 361 return false; |
362 | 362 |
363 if (min_retry_delay != NULL) | |
364 *min_retry_delay = base::TimeDelta::Max(); | |
365 | |
363 if (is_https && alt_allowed_) { | 366 if (is_https && alt_allowed_) { |
364 return ArePrimaryAndFallbackBypassed( | 367 return ArePrimaryAndFallbackBypassed( |
365 retry_map, ssl_origin_, GURL(), min_retry_delay); | 368 retry_map, ssl_origin_, GURL(), min_retry_delay); |
366 } | 369 } |
367 | 370 |
368 if (allowed_ && ArePrimaryAndFallbackBypassed( | 371 if (allowed_ && ArePrimaryAndFallbackBypassed( |
369 retry_map, origin_, fallback_origin_, min_retry_delay)) { | 372 retry_map, origin_, fallback_origin_, min_retry_delay)) { |
370 return true; | 373 return true; |
megjablon
2014/08/12 21:06:54
Ben, with the proxy logic does this work for min_r
| |
371 } | 374 } |
372 | 375 |
373 if (alt_allowed_ && ArePrimaryAndFallbackBypassed( | 376 if (alt_allowed_ && ArePrimaryAndFallbackBypassed( |
374 retry_map, alt_origin_, alt_fallback_origin_, min_retry_delay)) { | 377 retry_map, alt_origin_, alt_fallback_origin_, min_retry_delay)) { |
375 return true; | 378 return true; |
376 } | 379 } |
377 | 380 |
378 return false; | 381 return false; |
379 } | 382 } |
380 | 383 |
381 bool DataReductionProxyParams::ArePrimaryAndFallbackBypassed( | 384 bool DataReductionProxyParams::ArePrimaryAndFallbackBypassed( |
382 const net::ProxyRetryInfoMap& retry_map, | 385 const net::ProxyRetryInfoMap& retry_map, |
383 const GURL& primary, | 386 const GURL& primary, |
384 const GURL& fallback, | 387 const GURL& fallback, |
385 base::TimeDelta* min_retry_delay) const { | 388 base::TimeDelta* min_retry_delay) const { |
386 net::ProxyRetryInfoMap::const_iterator found = retry_map.find( | 389 net::ProxyRetryInfoMap::const_iterator found = retry_map.find( |
387 net::ProxyServer(primary.SchemeIs(url::kHttpsScheme) ? | 390 net::ProxyServer(primary.SchemeIs(url::kHttpsScheme) ? |
388 net::ProxyServer::SCHEME_HTTPS : net::ProxyServer::SCHEME_HTTP, | 391 net::ProxyServer::SCHEME_HTTPS : net::ProxyServer::SCHEME_HTTP, |
389 net::HostPortPair::FromURL(primary)).ToURI()); | 392 net::HostPortPair::FromURL(primary)).ToURI()); |
393 if (found != retry_map.end() && | |
394 min_retry_delay != NULL && | |
395 *min_retry_delay > found->second.current_delay) { | |
396 *min_retry_delay = found->second.current_delay; | |
397 } | |
398 | |
399 if (fallback_allowed_ && fallback.is_valid()) { | |
400 found = retry_map.find( | |
401 net::ProxyServer(fallback.SchemeIs(url::kHttpsScheme) ? | |
402 net::ProxyServer::SCHEME_HTTPS : net::ProxyServer::SCHEME_HTTP, | |
403 net::HostPortPair::FromURL(fallback)).ToURI()); | |
404 if (found != retry_map.end() && | |
405 min_retry_delay != NULL && | |
406 *min_retry_delay > found->second.current_delay) { | |
407 *min_retry_delay = found->second.current_delay; | |
408 } | |
409 } | |
390 | 410 |
391 if (found == retry_map.end()) | 411 if (found == retry_map.end()) |
392 return false; | 412 return false; |
393 | |
394 base::TimeDelta min_delay = found->second.current_delay; | |
395 if (!fallback_allowed_ || !fallback.is_valid()) { | |
396 if (min_retry_delay != NULL) | |
397 *min_retry_delay = min_delay; | |
398 return true; | |
399 } | |
400 | |
401 found = retry_map.find( | |
402 net::ProxyServer(fallback.SchemeIs(url::kHttpsScheme) ? | |
403 net::ProxyServer::SCHEME_HTTPS : net::ProxyServer::SCHEME_HTTP, | |
404 net::HostPortPair::FromURL(fallback)).ToURI()); | |
405 | |
406 if (found == retry_map.end()) | |
407 return false; | |
408 | |
409 if (min_delay > found->second.current_delay) | |
410 min_delay = found->second.current_delay; | |
411 if (min_retry_delay != NULL) | |
412 *min_retry_delay = min_delay; | |
413 return true; | 413 return true; |
414 } | 414 } |
415 | 415 |
416 std::string DataReductionProxyParams::GetDefaultOrigin() const { | 416 std::string DataReductionProxyParams::GetDefaultOrigin() const { |
417 #if defined(SPDY_PROXY_AUTH_ORIGIN) | 417 #if defined(SPDY_PROXY_AUTH_ORIGIN) |
418 return SPDY_PROXY_AUTH_ORIGIN; | 418 return SPDY_PROXY_AUTH_ORIGIN; |
419 #endif | 419 #endif |
420 return std::string(); | 420 return std::string(); |
421 } | 421 } |
422 | 422 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
456 } | 456 } |
457 | 457 |
458 std::string DataReductionProxyParams::GetDefaultWarmupURL() const { | 458 std::string DataReductionProxyParams::GetDefaultWarmupURL() const { |
459 #if defined(DATA_REDUCTION_PROXY_WARMUP_URL) | 459 #if defined(DATA_REDUCTION_PROXY_WARMUP_URL) |
460 return DATA_REDUCTION_PROXY_WARMUP_URL; | 460 return DATA_REDUCTION_PROXY_WARMUP_URL; |
461 #endif | 461 #endif |
462 return std::string(); | 462 return std::string(); |
463 } | 463 } |
464 | 464 |
465 } // namespace data_reduction_proxy | 465 } // namespace data_reduction_proxy |
OLD | NEW |