Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(195)

Side by Side Diff: chrome/browser/chromeos/net/delay_network_call.cc

Issue 834073002: ChromeOS: Implement periodic timezone refresh on geolocation data. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix rebase. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/chromeos/net/delay_network_call.h ('k') | chrome/browser/chromeos/preferences.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "chrome/browser/chromeos/net/delay_network_call.h" 5 #include "chrome/browser/chromeos/net/delay_network_call.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "chromeos/network/network_handler.h" 9 #include "chromeos/network/network_handler.h"
10 #include "chromeos/network/network_state.h" 10 #include "chromeos/network/network_state.h"
11 #include "chromeos/network/network_state_handler.h" 11 #include "chromeos/network/network_state_handler.h"
12 #include "chromeos/network/portal_detector/network_portal_detector.h" 12 #include "chromeos/network/portal_detector/network_portal_detector.h"
13 #include "content/public/browser/browser_thread.h" 13 #include "content/public/browser/browser_thread.h"
14 #include "third_party/cros_system_api/dbus/service_constants.h" 14 #include "third_party/cros_system_api/dbus/service_constants.h"
15 15
16 const unsigned chromeos::kDefaultNetworkRetryDelayMS = 3000; 16 const unsigned chromeos::kDefaultNetworkRetryDelayMS = 3000;
17 17
18 void chromeos::DelayNetworkCall(const base::Closure& callback, 18 void chromeos::DelayNetworkCall(base::TimeDelta retry,
19 base::TimeDelta retry) { 19 const base::Closure& callback) {
20 bool delay_network_call = false; 20 bool delay_network_call = false;
21 const NetworkState* default_network = 21 const NetworkState* default_network =
22 NetworkHandler::Get()->network_state_handler()->DefaultNetwork(); 22 NetworkHandler::Get()->network_state_handler()->DefaultNetwork();
23 if (!default_network) { 23 if (!default_network) {
24 delay_network_call = true; 24 delay_network_call = true;
25 DVLOG(1) << "DelayNetworkCall: No default network."; 25 DVLOG(1) << "DelayNetworkCall: No default network.";
26 } else { 26 } else {
27 std:: string default_connection_state = default_network->connection_state(); 27 std:: string default_connection_state = default_network->connection_state();
28 if (!NetworkState::StateIsConnected(default_connection_state)) { 28 if (!NetworkState::StateIsConnected(default_connection_state)) {
29 delay_network_call = true; 29 delay_network_call = true;
30 DVLOG(1) << "DelayNetworkCall: " 30 DVLOG(1) << "DelayNetworkCall: "
31 << "Default network: " << default_network->name() 31 << "Default network: " << default_network->name()
32 << " State: " << default_connection_state; 32 << " State: " << default_connection_state;
33 } 33 }
34 } 34 }
35 if (!delay_network_call && NetworkPortalDetector::IsInitialized()) { 35 if (!delay_network_call && NetworkPortalDetector::IsInitialized()) {
36 NetworkPortalDetector* detector = NetworkPortalDetector::Get(); 36 NetworkPortalDetector* detector = NetworkPortalDetector::Get();
37 NetworkPortalDetector::CaptivePortalStatus status = 37 NetworkPortalDetector::CaptivePortalStatus status =
38 detector->GetCaptivePortalState(default_network->guid()).status; 38 detector->GetCaptivePortalState(default_network->guid()).status;
39 if (status != NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE) { 39 if (status != NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE) {
40 delay_network_call = true; 40 delay_network_call = true;
41 DVLOG(1) << "DelayNetworkCall: Captive portal status for " 41 DVLOG(1) << "DelayNetworkCall: Captive portal status for "
42 << default_network->name() << ": " 42 << default_network->name() << ": "
43 << NetworkPortalDetector::CaptivePortalStatusString(status); 43 << NetworkPortalDetector::CaptivePortalStatusString(status);
44 } 44 }
45 } 45 }
46 if (delay_network_call) { 46 if (delay_network_call) {
47 content::BrowserThread::PostDelayedTask( 47 content::BrowserThread::PostDelayedTask(
48 content::BrowserThread::UI, 48 content::BrowserThread::UI, FROM_HERE,
49 FROM_HERE, 49 base::Bind(&chromeos::DelayNetworkCall, retry, callback), retry);
50 base::Bind(&chromeos::DelayNetworkCall, callback, retry),
51 retry);
52 } else { 50 } else {
53 callback.Run(); 51 callback.Run();
54 } 52 }
55 } 53 }
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/net/delay_network_call.h ('k') | chrome/browser/chromeos/preferences.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698