1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/bug_report_data.h"
6
7 #if defined(OS_CHROMEOS)
8 #include "chrome/browser/chromeos/notifications/system_notification.h"
9 #endif
10
BugReportData()11 BugReportData::BugReportData()
12 : profile_(NULL),
13 problem_type_(0)
14 #if defined(OS_CHROMEOS)
15 , sys_info_(NULL)
16 , zip_content_(NULL)
17 , sent_report_(false)
18 , send_sys_info_(false)
19 #endif
20 {
21 }
22
~BugReportData()23 BugReportData::~BugReportData() {}
24
UpdateData(Profile * profile,const std::string & target_tab_url,const int problem_type,const std::string & page_url,const std::string & description,const std::vector<unsigned char> & image,const std::string & user_email,const bool send_sys_info,const bool sent_report)25 void BugReportData::UpdateData(Profile* profile,
26 const std::string& target_tab_url,
27 const int problem_type,
28 const std::string& page_url,
29 const std::string& description,
30 const std::vector<unsigned char>& image
31 #if defined(OS_CHROMEOS)
32 , const std::string& user_email
33 , const bool send_sys_info
34 , const bool sent_report
35 #endif
36 ) {
37 profile_ = profile;
38 target_tab_url_ = target_tab_url;
39 problem_type_ = problem_type;
40 page_url_ = page_url;
41 description_ = description;
42 image_ = image;
43 #if defined(OS_CHROMEOS)
44 user_email_ = user_email;
45 send_sys_info_ = send_sys_info;
46 sent_report_ = sent_report;
47 #endif
48 }
49
50
51 #if defined(OS_CHROMEOS)
52 // Called from the same thread as HandleGetDialogDefaults, i.e. the UI thread.
SyslogsComplete(chromeos::LogDictionaryType * logs,std::string * zip_content)53 void BugReportData::SyslogsComplete(chromeos::LogDictionaryType* logs,
54 std::string* zip_content) {
55 if (sent_report_) {
56 // We already sent the report, just delete the data.
57 if (logs)
58 delete logs;
59 if (zip_content)
60 delete zip_content;
61 } else {
62 zip_content_ = zip_content;
63 sys_info_ = logs; // Will get deleted when SendReport() is called.
64 if (send_sys_info_) {
65 // We already prepared the report, send it now.
66 this->SendReport();
67 }
68 }
69 }
70 #endif
71