1513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// found in the LICENSE file. 4513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 5513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#include "chrome/browser/bug_report_data.h" 6513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 7513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#if defined(OS_CHROMEOS) 8513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#include "chrome/browser/chromeos/notifications/system_notification.h" 9513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#endif 10513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 1121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenBugReportData::BugReportData() 1221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen : profile_(NULL), 1321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen problem_type_(0) 1421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#if defined(OS_CHROMEOS) 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen , sys_info_(NULL) 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen , zip_content_(NULL) 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen , sent_report_(false) 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen , send_sys_info_(false) 1921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#endif 2021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen{ 2121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 2221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 2321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenBugReportData::~BugReportData() {} 2421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 2521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvoid BugReportData::UpdateData(Profile* profile, 2621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const std::string& target_tab_url, 2721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const int problem_type, 2821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const std::string& page_url, 2921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const std::string& description, 3021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const std::vector<unsigned char>& image 3121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#if defined(OS_CHROMEOS) 3221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen , const std::string& user_email 3321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen , const bool send_sys_info 3421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen , const bool sent_report 3521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#endif 3621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ) { 3721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen profile_ = profile; 3821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen target_tab_url_ = target_tab_url; 3921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen problem_type_ = problem_type; 4021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen page_url_ = page_url; 4121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen description_ = description; 4221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen image_ = image; 4321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#if defined(OS_CHROMEOS) 4421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen user_email_ = user_email; 4521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen send_sys_info_ = send_sys_info; 4621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen sent_report_ = sent_report; 4721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#endif 4821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 49513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 50513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 51513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#if defined(OS_CHROMEOS) 52513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Called from the same thread as HandleGetDialogDefaults, i.e. the UI thread. 53513209b27ff55e2841eac0e4120199c23acce758Ben Murdochvoid BugReportData::SyslogsComplete(chromeos::LogDictionaryType* logs, 54513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch std::string* zip_content) { 55513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch if (sent_report_) { 56513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch // We already sent the report, just delete the data. 57513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch if (logs) 58513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch delete logs; 59513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch if (zip_content) 60513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch delete zip_content; 61513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch } else { 62513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch zip_content_ = zip_content; 63513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch sys_info_ = logs; // Will get deleted when SendReport() is called. 64513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch if (send_sys_info_) { 65513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch // We already prepared the report, send it now. 66513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch this->SendReport(); 67513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch } 68513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch } 69513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch} 70513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#endif 71