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