• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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