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

Side by Side Diff: chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc

Issue 98493003: Simplify fileBrowserPrivate.getDriveConnectionStatus(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix the util function name. Created 7 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/extensions/file_manager/private_api_drive.h" 5 #include "chrome/browser/chromeos/extensions/file_manager/private_api_drive.h"
6 6
7 #include "base/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "chrome/browser/chromeos/drive/drive_app_registry.h" 9 #include "chrome/browser/chromeos/drive/drive_app_registry.h"
10 #include "chrome/browser/chromeos/drive/drive_integration_service.h" 10 #include "chrome/browser/chromeos/drive/drive_integration_service.h"
(...skipping 10 matching lines...) Expand all
21 #include "content/public/browser/render_view_host.h" 21 #include "content/public/browser/render_view_host.h"
22 #include "webkit/common/fileapi/file_system_info.h" 22 #include "webkit/common/fileapi/file_system_info.h"
23 #include "webkit/common/fileapi/file_system_util.h" 23 #include "webkit/common/fileapi/file_system_util.h"
24 24
25 using content::BrowserThread; 25 using content::BrowserThread;
26 26
27 namespace extensions { 27 namespace extensions {
28 namespace { 28 namespace {
29 29
30 // List of connection types of drive. 30 // List of connection types of drive.
31 // Keep this in sync with the DriveConnectionType in volume_manager.js. 31 // Keep this in sync with the DriveConnectionType in common/js/util.js.
32 const char kDriveConnectionTypeOffline[] = "offline"; 32 const char kDriveConnectionTypeOffline[] = "offline";
33 const char kDriveConnectionTypeMetered[] = "metered"; 33 const char kDriveConnectionTypeMetered[] = "metered";
34 const char kDriveConnectionTypeOnline[] = "online"; 34 const char kDriveConnectionTypeOnline[] = "online";
35 35
36 // List of reasons of kDriveConnectionType*. 36 // List of reasons of kDriveConnectionType*.
37 // Keep this in sync with the DriveConnectionReason in volume_manager.js. 37 // Keep this in sync with the DriveConnectionReason in common/js/util.js.
38 const char kDriveConnectionReasonNotReady[] = "not_ready"; 38 const char kDriveConnectionReasonNotReady[] = "not_ready";
39 const char kDriveConnectionReasonNoNetwork[] = "no_network"; 39 const char kDriveConnectionReasonNoNetwork[] = "no_network";
40 const char kDriveConnectionReasonNoService[] = "no_service"; 40 const char kDriveConnectionReasonNoService[] = "no_service";
41 41
42 // Copies properties from |entry_proto| to |properties|. 42 // Copies properties from |entry_proto| to |properties|.
43 void FillDriveEntryPropertiesValue( 43 void FillDriveEntryPropertiesValue(
44 const drive::ResourceEntry& entry_proto, 44 const drive::ResourceEntry& entry_proto,
45 api::file_browser_private::DriveEntryProperties* properties) { 45 api::file_browser_private::DriveEntryProperties* properties) {
46 properties->shared_with_me.reset(new bool(entry_proto.shared_with_me())); 46 properties->shared_with_me.reset(new bool(entry_proto.shared_with_me()));
47 47
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 result_dict->SetString("highlightedBaseName", 503 result_dict->SetString("highlightedBaseName",
504 results->at(i).highlighted_base_name); 504 results->at(i).highlighted_base_name);
505 results_list->Append(result_dict); 505 results_list->Append(result_dict);
506 } 506 }
507 507
508 SetResult(results_list); 508 SetResult(results_list);
509 SendResponse(true); 509 SendResponse(true);
510 } 510 }
511 511
512 bool FileBrowserPrivateGetDriveConnectionStateFunction::RunImpl() { 512 bool FileBrowserPrivateGetDriveConnectionStateFunction::RunImpl() {
513 drive::DriveServiceInterface* const drive_service =
514 drive::util::GetDriveServiceByProfile(GetProfile());
515
516 api::file_browser_private::GetDriveConnectionState::Results::Result result; 513 api::file_browser_private::GetDriveConnectionState::Results::Result result;
517 514
518 const bool ready = drive_service && drive_service->CanSendRequest(); 515 switch (drive::util::GetDriveConnectionStatus(GetProfile())) {
519 const bool is_connection_cellular = 516 case drive::util::DRIVE_DISCONNECTED_NOSERVICE:
520 net::NetworkChangeNotifier::IsConnectionCellular( 517 result.type = kDriveConnectionTypeOffline;
521 net::NetworkChangeNotifier::GetConnectionType()); 518 result.reason.reset(new std::string(kDriveConnectionReasonNoService));
522 519 break;
523 if (net::NetworkChangeNotifier::IsOffline() || !ready) { 520 case drive::util::DRIVE_DISCONNECTED_NONETWORK:
524 result.type = kDriveConnectionTypeOffline; 521 result.type = kDriveConnectionTypeOffline;
525 if (net::NetworkChangeNotifier::IsOffline()) 522 result.reason.reset(new std::string(kDriveConnectionReasonNoNetwork));
526 result.reasons.push_back(kDriveConnectionReasonNoNetwork); 523 break;
527 if (!ready) 524 case drive::util::DRIVE_DISCONNECTED_NOTREADY:
528 result.reasons.push_back(kDriveConnectionReasonNotReady); 525 result.type = kDriveConnectionTypeOffline;
529 if (!drive_service) 526 result.reason.reset(new std::string(kDriveConnectionReasonNotReady));
530 result.reasons.push_back(kDriveConnectionReasonNoService); 527 break;
531 } else if ( 528 case drive::util::DRIVE_CONNECTED_METERED:
532 is_connection_cellular && 529 result.type = kDriveConnectionTypeMetered;
533 GetProfile()->GetPrefs()->GetBoolean( 530 break;
534 prefs::kDisableDriveOverCellular)) { 531 case drive::util::DRIVE_CONNECTED:
535 result.type = kDriveConnectionTypeMetered; 532 result.type = kDriveConnectionTypeOnline;
536 } else { 533 break;
537 result.type = kDriveConnectionTypeOnline;
538 } 534 }
539 535
540 results_ = api::file_browser_private::GetDriveConnectionState::Results:: 536 results_ = api::file_browser_private::GetDriveConnectionState::Results::
541 Create(result); 537 Create(result);
542 538
543 drive::util::Log(logging::LOG_INFO, "%s succeeded.", name().c_str()); 539 drive::util::Log(logging::LOG_INFO, "%s succeeded.", name().c_str());
544 return true; 540 return true;
545 } 541 }
546 542
547 bool FileBrowserPrivateRequestAccessTokenFunction::RunImpl() { 543 bool FileBrowserPrivateRequestAccessTokenFunction::RunImpl() {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
610 error_ = "Share Url for this item is not available."; 606 error_ = "Share Url for this item is not available.";
611 SendResponse(false); 607 SendResponse(false);
612 return; 608 return;
613 } 609 }
614 610
615 SetResult(new base::StringValue(share_url.spec())); 611 SetResult(new base::StringValue(share_url.spec()));
616 SendResponse(true); 612 SendResponse(true);
617 } 613 }
618 614
619 } // namespace extensions 615 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698