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/intranet_redirect_detector.h" | 5 #include "chrome/browser/intranet_redirect_detector.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 in_sleep_(true), | 33 in_sleep_(true), |
34 weak_ptr_factory_(this) { | 34 weak_ptr_factory_(this) { |
35 // Because this function can be called during startup, when kicking off a URL | 35 // Because this function can be called during startup, when kicking off a URL |
36 // fetch can eat up 20 ms of time, we delay seven seconds, which is hopefully | 36 // fetch can eat up 20 ms of time, we delay seven seconds, which is hopefully |
37 // long enough to be after startup, but still get results back quickly. | 37 // long enough to be after startup, but still get results back quickly. |
38 // Ideally, instead of this timer, we'd do something like "check if the | 38 // Ideally, instead of this timer, we'd do something like "check if the |
39 // browser is starting up, and if so, come back later", but there is currently | 39 // browser is starting up, and if so, come back later", but there is currently |
40 // no function to do this. | 40 // no function to do this. |
41 static const int kStartFetchDelaySeconds = 7; | 41 static const int kStartFetchDelaySeconds = 7; |
42 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 42 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
43 FROM_HERE, base::Bind(&IntranetRedirectDetector::FinishSleep, | 43 FROM_HERE, |
44 weak_ptr_factory_.GetWeakPtr()), | 44 base::BindOnce(&IntranetRedirectDetector::FinishSleep, |
| 45 weak_ptr_factory_.GetWeakPtr()), |
45 base::TimeDelta::FromSeconds(kStartFetchDelaySeconds)); | 46 base::TimeDelta::FromSeconds(kStartFetchDelaySeconds)); |
46 | 47 |
47 net::NetworkChangeNotifier::AddIPAddressObserver(this); | 48 net::NetworkChangeNotifier::AddIPAddressObserver(this); |
48 } | 49 } |
49 | 50 |
50 IntranetRedirectDetector::~IntranetRedirectDetector() { | 51 IntranetRedirectDetector::~IntranetRedirectDetector() { |
51 net::NetworkChangeNotifier::RemoveIPAddressObserver(this); | 52 net::NetworkChangeNotifier::RemoveIPAddressObserver(this); |
52 } | 53 } |
53 | 54 |
54 // static | 55 // static |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 void IntranetRedirectDetector::OnIPAddressChanged() { | 180 void IntranetRedirectDetector::OnIPAddressChanged() { |
180 // If a request is already scheduled, do not scheduled yet another one. | 181 // If a request is already scheduled, do not scheduled yet another one. |
181 if (in_sleep_) | 182 if (in_sleep_) |
182 return; | 183 return; |
183 | 184 |
184 // Since presumably many programs open connections after network changes, | 185 // Since presumably many programs open connections after network changes, |
185 // delay this a little bit. | 186 // delay this a little bit. |
186 in_sleep_ = true; | 187 in_sleep_ = true; |
187 static const int kNetworkSwitchDelayMS = 1000; | 188 static const int kNetworkSwitchDelayMS = 1000; |
188 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 189 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
189 FROM_HERE, base::Bind(&IntranetRedirectDetector::FinishSleep, | 190 FROM_HERE, |
190 weak_ptr_factory_.GetWeakPtr()), | 191 base::BindOnce(&IntranetRedirectDetector::FinishSleep, |
| 192 weak_ptr_factory_.GetWeakPtr()), |
191 base::TimeDelta::FromMilliseconds(kNetworkSwitchDelayMS)); | 193 base::TimeDelta::FromMilliseconds(kNetworkSwitchDelayMS)); |
192 } | 194 } |
OLD | NEW |