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

Side by Side Diff: chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.cc

Issue 300173002: [SyncFS] Handle unavailable ExtensionService case. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/ui/webui/sync_file_system_internals/extension_statuses_ handler.h" 5 #include "chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_ handler.h"
6 6
7 #include <map> 7 #include <map>
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 13 matching lines...) Expand all
24 using sync_file_system::SyncServiceState; 24 using sync_file_system::SyncServiceState;
25 25
26 namespace syncfs_internals { 26 namespace syncfs_internals {
27 27
28 namespace { 28 namespace {
29 29
30 void ConvertExtensionStatusToDictionary( 30 void ConvertExtensionStatusToDictionary(
31 const base::WeakPtr<ExtensionService>& extension_service, 31 const base::WeakPtr<ExtensionService>& extension_service,
32 const base::Callback<void(const base::ListValue&)>& callback, 32 const base::Callback<void(const base::ListValue&)>& callback,
33 const std::map<GURL, std::string>& status_map) { 33 const std::map<GURL, std::string>& status_map) {
34 DCHECK(!extension_service); 34 if (!extension_service) {
35 callback.Run(base::ListValue());
36 return;
37 }
35 38
36 base::ListValue list; 39 base::ListValue list;
37 for (std::map<GURL, std::string>::const_iterator itr = status_map.begin(); 40 for (std::map<GURL, std::string>::const_iterator itr = status_map.begin();
38 itr != status_map.end(); 41 itr != status_map.end();
39 ++itr) { 42 ++itr) {
40 std::string extension_id = itr->first.HostNoBrackets(); 43 std::string extension_id = itr->first.HostNoBrackets();
41 44
42 // Join with human readable extension name. 45 // Join with human readable extension name.
43 const extensions::Extension* extension = 46 const extensions::Extension* extension =
44 extension_service->GetExtensionById(extension_id, true); 47 extension_service->GetExtensionById(extension_id, true);
(...skipping 26 matching lines...) Expand all
71 } 74 }
72 75
73 // static 76 // static
74 void ExtensionStatusesHandler::GetExtensionStatusesAsDictionary( 77 void ExtensionStatusesHandler::GetExtensionStatusesAsDictionary(
75 Profile* profile, 78 Profile* profile,
76 const base::Callback<void(const base::ListValue&)>& callback) { 79 const base::Callback<void(const base::ListValue&)>& callback) {
77 DCHECK(profile); 80 DCHECK(profile);
78 81
79 sync_file_system::SyncFileSystemService* sync_service = 82 sync_file_system::SyncFileSystemService* sync_service =
80 SyncFileSystemServiceFactory::GetForProfile(profile); 83 SyncFileSystemServiceFactory::GetForProfile(profile);
81 if (!sync_service) 84 if (!sync_service)
nhiroki 2014/05/27 09:04:32 Is it okay to ignore |callback|?
tzik 2014/05/27 12:54:12 Hmm? No. It should handle. Let me do later.
82 return; 85 return;
83 86
84 ExtensionService* extension_service = 87 ExtensionService* extension_service =
85 extensions::ExtensionSystem::Get(profile)->extension_service(); 88 extensions::ExtensionSystem::Get(profile)->extension_service();
86 if (!extension_service) 89 if (!extension_service)
nhiroki 2014/05/27 09:04:32 ditto.
87 return; 90 return;
88 91
89 sync_service->GetExtensionStatusMap(base::Bind( 92 sync_service->GetExtensionStatusMap(base::Bind(
90 &ConvertExtensionStatusToDictionary, 93 &ConvertExtensionStatusToDictionary,
91 extension_service->AsWeakPtr(), callback)); 94 extension_service->AsWeakPtr(), callback));
92 } 95 }
93 96
94 void ExtensionStatusesHandler::GetExtensionStatuses( 97 void ExtensionStatusesHandler::GetExtensionStatuses(
95 const base::ListValue* args) { 98 const base::ListValue* args) {
96 DCHECK(args); 99 DCHECK(args);
97 GetExtensionStatusesAsDictionary( 100 GetExtensionStatusesAsDictionary(
98 profile_, 101 profile_,
99 base::Bind(&ExtensionStatusesHandler::DidGetExtensionStatuses, 102 base::Bind(&ExtensionStatusesHandler::DidGetExtensionStatuses,
100 weak_ptr_factory_.GetWeakPtr())); 103 weak_ptr_factory_.GetWeakPtr()));
101 } 104 }
102 105
103 void ExtensionStatusesHandler::DidGetExtensionStatuses( 106 void ExtensionStatusesHandler::DidGetExtensionStatuses(
104 const base::ListValue& list) { 107 const base::ListValue& list) {
105 web_ui()->CallJavascriptFunction("ExtensionStatuses.onGetExtensionStatuses", 108 web_ui()->CallJavascriptFunction("ExtensionStatuses.onGetExtensionStatuses",
106 list); 109 list);
107 } 110 }
108 111
109 } // namespace syncfs_internals 112 } // namespace syncfs_internals
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698