Home | History | Annotate | Download | only in browser
      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 
     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 
     23 BugReportData::~BugReportData() {}
     24 
     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.
     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