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 "net/proxy/proxy_service.h" | 5 #include "net/proxy/proxy_service.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 // script's contents have changed. | 550 // script's contents have changed. |
551 // |net_log| the NetLog to log progress into. | 551 // |net_log| the NetLog to log progress into. |
552 ProxyScriptDeciderPoller(ChangeCallback callback, | 552 ProxyScriptDeciderPoller(ChangeCallback callback, |
553 const ProxyConfig& config, | 553 const ProxyConfig& config, |
554 bool proxy_resolver_expects_pac_bytes, | 554 bool proxy_resolver_expects_pac_bytes, |
555 ProxyScriptFetcher* proxy_script_fetcher, | 555 ProxyScriptFetcher* proxy_script_fetcher, |
556 DhcpProxyScriptFetcher* dhcp_proxy_script_fetcher, | 556 DhcpProxyScriptFetcher* dhcp_proxy_script_fetcher, |
557 int init_net_error, | 557 int init_net_error, |
558 ProxyResolverScriptData* init_script_data, | 558 ProxyResolverScriptData* init_script_data, |
559 NetLog* net_log) | 559 NetLog* net_log) |
560 : weak_factory_(this), | 560 : change_callback_(callback), |
561 change_callback_(callback), | |
562 config_(config), | 561 config_(config), |
563 proxy_resolver_expects_pac_bytes_(proxy_resolver_expects_pac_bytes), | 562 proxy_resolver_expects_pac_bytes_(proxy_resolver_expects_pac_bytes), |
564 proxy_script_fetcher_(proxy_script_fetcher), | 563 proxy_script_fetcher_(proxy_script_fetcher), |
565 dhcp_proxy_script_fetcher_(dhcp_proxy_script_fetcher), | 564 dhcp_proxy_script_fetcher_(dhcp_proxy_script_fetcher), |
566 last_error_(init_net_error), | 565 last_error_(init_net_error), |
567 last_script_data_(init_script_data), | 566 last_script_data_(init_script_data), |
568 last_poll_time_(TimeTicks::Now()) { | 567 last_poll_time_(TimeTicks::Now()), |
| 568 weak_factory_(this) { |
569 // Set the initial poll delay. | 569 // Set the initial poll delay. |
570 next_poll_mode_ = poll_policy()->GetNextDelay( | 570 next_poll_mode_ = poll_policy()->GetNextDelay( |
571 last_error_, TimeDelta::FromSeconds(-1), &next_poll_delay_); | 571 last_error_, TimeDelta::FromSeconds(-1), &next_poll_delay_); |
572 TryToStartNextPoll(false); | 572 TryToStartNextPoll(false); |
573 } | 573 } |
574 | 574 |
575 void OnLazyPoll() { | 575 void OnLazyPoll() { |
576 // We have just been notified of network activity. Use this opportunity to | 576 // We have just been notified of network activity. Use this opportunity to |
577 // see if we can start our next poll. | 577 // see if we can start our next poll. |
578 TryToStartNextPoll(true); | 578 TryToStartNextPoll(true); |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
687 } | 687 } |
688 | 688 |
689 void NotifyProxyServiceOfChange( | 689 void NotifyProxyServiceOfChange( |
690 int result, | 690 int result, |
691 const scoped_refptr<ProxyResolverScriptData>& script_data, | 691 const scoped_refptr<ProxyResolverScriptData>& script_data, |
692 const ProxyConfig& effective_config) { | 692 const ProxyConfig& effective_config) { |
693 // Note that |this| may be deleted after calling into the ProxyService. | 693 // Note that |this| may be deleted after calling into the ProxyService. |
694 change_callback_.Run(result, script_data.get(), effective_config); | 694 change_callback_.Run(result, script_data.get(), effective_config); |
695 } | 695 } |
696 | 696 |
697 base::WeakPtrFactory<ProxyScriptDeciderPoller> weak_factory_; | |
698 | |
699 ChangeCallback change_callback_; | 697 ChangeCallback change_callback_; |
700 ProxyConfig config_; | 698 ProxyConfig config_; |
701 bool proxy_resolver_expects_pac_bytes_; | 699 bool proxy_resolver_expects_pac_bytes_; |
702 ProxyScriptFetcher* proxy_script_fetcher_; | 700 ProxyScriptFetcher* proxy_script_fetcher_; |
703 DhcpProxyScriptFetcher* dhcp_proxy_script_fetcher_; | 701 DhcpProxyScriptFetcher* dhcp_proxy_script_fetcher_; |
704 | 702 |
705 int last_error_; | 703 int last_error_; |
706 scoped_refptr<ProxyResolverScriptData> last_script_data_; | 704 scoped_refptr<ProxyResolverScriptData> last_script_data_; |
707 | 705 |
708 scoped_ptr<ProxyScriptDecider> decider_; | 706 scoped_ptr<ProxyScriptDecider> decider_; |
709 TimeDelta next_poll_delay_; | 707 TimeDelta next_poll_delay_; |
710 PacPollPolicy::Mode next_poll_mode_; | 708 PacPollPolicy::Mode next_poll_mode_; |
711 | 709 |
712 TimeTicks last_poll_time_; | 710 TimeTicks last_poll_time_; |
713 | 711 |
714 // Polling policy injected by unit-tests. Otherwise this is NULL and the | 712 // Polling policy injected by unit-tests. Otherwise this is NULL and the |
715 // default policy will be used. | 713 // default policy will be used. |
716 static const PacPollPolicy* poll_policy_; | 714 static const PacPollPolicy* poll_policy_; |
717 | 715 |
718 const DefaultPollPolicy default_poll_policy_; | 716 const DefaultPollPolicy default_poll_policy_; |
719 | 717 |
720 bool quick_check_enabled_; | 718 bool quick_check_enabled_; |
721 | 719 |
| 720 base::WeakPtrFactory<ProxyScriptDeciderPoller> weak_factory_; |
| 721 |
722 DISALLOW_COPY_AND_ASSIGN(ProxyScriptDeciderPoller); | 722 DISALLOW_COPY_AND_ASSIGN(ProxyScriptDeciderPoller); |
723 }; | 723 }; |
724 | 724 |
725 // static | 725 // static |
726 const ProxyService::PacPollPolicy* | 726 const ProxyService::PacPollPolicy* |
727 ProxyService::ProxyScriptDeciderPoller::poll_policy_ = NULL; | 727 ProxyService::ProxyScriptDeciderPoller::poll_policy_ = NULL; |
728 | 728 |
729 // ProxyService::PacRequest --------------------------------------------------- | 729 // ProxyService::PacRequest --------------------------------------------------- |
730 | 730 |
731 class ProxyService::PacRequest | 731 class ProxyService::PacRequest |
(...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1556 State previous_state = ResetProxyConfig(false); | 1556 State previous_state = ResetProxyConfig(false); |
1557 if (previous_state != STATE_NONE) | 1557 if (previous_state != STATE_NONE) |
1558 ApplyProxyConfigIfAvailable(); | 1558 ApplyProxyConfigIfAvailable(); |
1559 } | 1559 } |
1560 | 1560 |
1561 void ProxyService::OnDNSChanged() { | 1561 void ProxyService::OnDNSChanged() { |
1562 OnIPAddressChanged(); | 1562 OnIPAddressChanged(); |
1563 } | 1563 } |
1564 | 1564 |
1565 } // namespace net | 1565 } // namespace net |
OLD | NEW |