| Index: chrome/browser/ui/webui/feedback_ui.cc
|
| diff --git a/chrome/browser/ui/webui/feedback_ui.cc b/chrome/browser/ui/webui/feedback_ui.cc
|
| index 8880bd5aa56b39cc029582610cc8d4685fcd2856..9ebee7001b46b337030d2f46f2dc2a9808ac6714 100644
|
| --- a/chrome/browser/ui/webui/feedback_ui.cc
|
| +++ b/chrome/browser/ui/webui/feedback_ui.cc
|
| @@ -22,6 +22,9 @@
|
| #include "chrome/browser/feedback/feedback_util.h"
|
| #include "chrome/browser/prefs/pref_service.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/profiles/profile_manager.h"
|
| +#include "chrome/browser/signin/signin_manager.h"
|
| +#include "chrome/browser/signin/signin_manager_factory.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_finder.h"
|
| #include "chrome/browser/ui/browser_tabstrip.h"
|
| @@ -114,6 +117,20 @@ std::string GetUserEmail() {
|
| return manager->GetLoggedInUser().display_email();
|
| }
|
|
|
| +#else
|
| +
|
| +std::string GetUserEmail() {
|
| + Profile* profile = ProfileManager::GetLastUsedProfile();
|
| + if (!profile)
|
| + return std::string();
|
| +
|
| + SigninManager* signin = SigninManagerFactory::GetForProfile(profile);
|
| + if (!signin)
|
| + return std::string();
|
| +
|
| + return signin->GetAuthenticatedUsername();
|
| +}
|
| +
|
| #endif // OS_CHROMEOS
|
|
|
| // Returns the index of the feedback tab if already open, -1 otherwise
|
| @@ -252,8 +269,9 @@ ChromeWebUIDataSource* CreateFeedbackUIHTMLSource(bool successful_init) {
|
| IDS_FEEDBACK_SCREENSHOT_LABEL);
|
| source->AddLocalizedString("saved-screenshot",
|
| IDS_FEEDBACK_SAVED_SCREENSHOT_LABEL);
|
| -#if defined(OS_CHROMEOS)
|
| source->AddLocalizedString("user-email", IDS_FEEDBACK_USER_EMAIL_LABEL);
|
| +
|
| +#if defined(OS_CHROMEOS)
|
| source->AddLocalizedString("sysinfo",
|
| IDS_FEEDBACK_INCLUDE_SYSTEM_INFORMATION_CHKBOX);
|
| source->AddLocalizedString("currentscreenshots",
|
| @@ -453,6 +471,10 @@ void FeedbackHandler::HandleGetDialogDefaults(const ListValue*) {
|
| "disableScreenshots",
|
| g_browser_process->local_state()->GetBoolean(prefs::kDisableScreenshots));
|
|
|
| + // User e-mail
|
| + std::string user_email = GetUserEmail();
|
| + dialog_defaults.SetString("userEmail", user_email);
|
| +
|
| #if defined(OS_CHROMEOS)
|
| // Trigger the request for system information here.
|
| chromeos::system::SyslogsProvider* provider =
|
| @@ -465,8 +487,10 @@ void FeedbackHandler::HandleGetDialogDefaults(const ListValue*) {
|
| base::Bind(&FeedbackData::SyslogsComplete,
|
| base::Unretained(feedback_data_)));
|
| }
|
| - // User e-mail
|
| - dialog_defaults.SetString("userEmail", GetUserEmail());
|
| +
|
| + // On ChromeOS if the user's email is blank, it means we don't
|
| + // have a logged in user, hence don't use saved screenshots.
|
| + dialog_defaults.SetBoolean("useSaved", !user_email.empty());
|
| #endif
|
|
|
| web_ui()->CallJavascriptFunction("setupDialogDefaults", dialog_defaults);
|
| @@ -508,7 +532,7 @@ void FeedbackHandler::HandleSendReport(const ListValue* list_value) {
|
| #if defined(OS_CHROMEOS)
|
| if (list_value->GetSize() != 6) {
|
| #else
|
| - if (list_value->GetSize() != 4) {
|
| + if (list_value->GetSize() != 5) {
|
| #endif
|
| LOG(ERROR) << "Feedback data corrupt! Feedback not sent.";
|
| return;
|
| @@ -521,6 +545,8 @@ void FeedbackHandler::HandleSendReport(const ListValue* list_value) {
|
| (*i++)->GetAsString(&category_tag);
|
| std::string description;
|
| (*i++)->GetAsString(&description);
|
| + std::string user_email;
|
| + (*i++)->GetAsString(&user_email);
|
| std::string screenshot_path;
|
| (*i++)->GetAsString(&screenshot_path);
|
| screenshot_path.erase(0, strlen(kScreenshotBaseUrl));
|
| @@ -531,8 +557,6 @@ void FeedbackHandler::HandleSendReport(const ListValue* list_value) {
|
| image_ptr = screenshot_source_->GetCachedScreenshot(screenshot_path);
|
|
|
| #if defined(OS_CHROMEOS)
|
| - std::string user_email;
|
| - (*i++)->GetAsString(&user_email);
|
| std::string sys_info_checkbox;
|
| (*i++)->GetAsString(&sys_info_checkbox);
|
| bool send_sys_info = (sys_info_checkbox == "true");
|
| @@ -548,9 +572,9 @@ void FeedbackHandler::HandleSendReport(const ListValue* list_value) {
|
| , std::string()
|
| , page_url
|
| , description
|
| + , user_email
|
| , image_ptr
|
| #if defined(OS_CHROMEOS)
|
| - , user_email
|
| , send_sys_info
|
| , false // sent_report
|
| , timestamp_
|
|
|