| 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..403d4eeda84c3ede7c2ac334dbc0a3fca281466b 100644
|
| --- a/chrome/browser/feedback/feedback_data.cc
|
| +++ b/chrome/browser/feedback/feedback_data.cc
|
| @@ -6,10 +6,16 @@
|
|
|
| #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/extensions/extension_system.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 +25,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 +63,40 @@ 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 =
|
| + extensions::ExtensionSystem::Get(default_profile)->extension_service();
|
| + 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 +200,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;
|
|
|