Chromium Code Reviews| Index: chrome/browser/feedback/feedback_data.cc |
| diff --git a/chrome/browser/feedback/feedback_data.cc b/chrome/browser/feedback/feedback_data.cc |
| index 45bad23d1614768a074c0899200c0a34d4549a72..3724ab05132c9c3ef28c0417210b4e78d0a3cd4b 100644 |
| --- a/chrome/browser/feedback/feedback_data.cc |
| +++ b/chrome/browser/feedback/feedback_data.cc |
| @@ -6,10 +6,15 @@ |
| #include "base/json/json_string_value_serializer.h" |
| #include "base/values.h" |
| +#include "chrome/browser/browser_process.h" |
| +#include "chrome/browser/chromeos/settings/cros_settings.h" |
| +#include "chrome/browser/extensions/extension_service.h" |
| #include "chrome/browser/feedback/feedback_util.h" |
| #include "chrome/browser/profiles/profile_manager.h" |
| #include "chrome/browser/sync/about_sync_util.h" |
| #include "chrome/browser/sync/profile_sync_service_factory.h" |
| +#include "chrome/common/extensions/extension.h" |
| +#include "chrome/common/extensions/extension_set.h" |
| #include "content/public/browser/browser_thread.h" |
| using content::BrowserThread; |
| @@ -19,6 +24,8 @@ using content::BrowserThread; |
| // log data source once crbug.com/138582 is fixed. |
| namespace { |
| +const char kExtensionsListKey[] = "extensions"; |
| + |
| void AddSyncLogs(chromeos::system::LogDictionaryType* logs) { |
| Profile* profile = ProfileManager::GetDefaultProfile(); |
| if (!ProfileSyncServiceFactory::GetInstance()->HasProfileSyncService( |
| @@ -55,6 +62,39 @@ void AddSyncLogs(chromeos::system::LogDictionaryType* logs) { |
| (*logs)[kSyncDataKey] = sync_logs_string; |
| } |
| +void AddExtensionInfoLogs(chromeos::system::LogDictionaryType* logs) { |
| + bool reporting_enabled = false; |
| + chromeos::CrosSettings::Get()->GetBoolean(chromeos::kStatsReportingPref, |
| + &reporting_enabled); |
| + if (!reporting_enabled) |
| + return; |
| + |
| + Profile* default_profile = |
| + g_browser_process->profile_manager()->GetDefaultProfile(); |
| + if (!default_profile) |
| + return; |
| + |
| + ExtensionService* service = default_profile->GetExtensionService(); |
|
tbarzic
2012/12/11 02:47:57
Actually, this should be extensions::ExtensionSyst
rkc
2012/12/11 02:50:39
Done.
|
| + if (!service) |
| + return; |
| + |
| + std::string extensions_list; |
| + const ExtensionSet* extensions = service->extensions(); |
| + for (ExtensionSet::const_iterator it = extensions->begin(); |
| + it != extensions->end(); |
| + ++it) { |
| + const extensions::Extension* extension = *it; |
| + if (extensions_list.empty()) { |
| + extensions_list = extension->name(); |
| + } else { |
| + extensions_list += ", " + extension->name(); |
| + } |
| + } |
| + |
| + if (!extensions_list.empty()) |
| + (*logs)[kExtensionsListKey] = extensions_list; |
| +} |
| + |
| } |
| #endif // OS_CHROMEOS |
| @@ -158,6 +198,7 @@ void FeedbackData::SyslogsComplete(chromeos::system::LogDictionaryType* logs, |
| // TODO(rkc): Move to the correct place once crbug.com/138582 is done. |
| AddSyncLogs(logs); |
| + AddExtensionInfoLogs(logs); |
| // Will get deleted when SendReport() is called. |
| zip_content_ = zip_content; |