Index: chrome/browser/ui/webui/bug_report_ui.cc |
diff --git a/chrome/browser/ui/webui/bug_report_ui.cc b/chrome/browser/ui/webui/bug_report_ui.cc |
index 2e90b3144c362674a16ebc6866bae7c5d2fceeaa..58cfa2444b148322c2cc4db55fd8b1be6ea0a666 100644 |
--- a/chrome/browser/ui/webui/bug_report_ui.cc |
+++ b/chrome/browser/ui/webui/bug_report_ui.cc |
@@ -127,20 +127,6 @@ int GetIndexOfFeedbackTab(Browser* browser) { |
namespace browser { |
-// TODO(rkc): Eventually find a better way to do this |
-std::vector<unsigned char>* last_screenshot_png = 0; |
-gfx::Rect screen_size; |
stevenjb
2011/08/03 01:55:20
Eliminated global variables (including a non basic
|
- |
-void RefreshLastScreenshot(Browser* browser) { |
- if (last_screenshot_png) |
- last_screenshot_png->clear(); |
- else |
- last_screenshot_png = new std::vector<unsigned char>; |
- |
- gfx::NativeWindow native_window = browser->window()->GetNativeHandle(); |
- screen_size = browser::GrabWindowSnapshot(native_window, last_screenshot_png); |
-} |
- |
void ShowHtmlBugReportView(Browser* browser, |
const std::string& description_template, |
size_t issue_type) { |
@@ -155,7 +141,14 @@ void ShowHtmlBugReportView(Browser* browser, |
return; |
} |
- RefreshLastScreenshot(browser); |
+ std::vector<unsigned char>* last_screenshot_png = |
+ BugReportUtil::GetScreenshotPng(); |
+ last_screenshot_png->clear(); |
+ |
+ gfx::NativeWindow native_window = browser->window()->GetNativeHandle(); |
+ BugReportUtil::SetScreenshotSize( |
+ browser::GrabWindowSnapshot(native_window, last_screenshot_png)); |
+ |
std::string bug_report_url = std::string(chrome::kChromeUIBugReportURL) + |
"#" + base::IntToString(browser->active_index()) + |
"?description=" + EscapeUrlEncodedData(description_template, false) + |
@@ -386,55 +379,6 @@ void BugReportUIHTMLSource::StartDataRequest(const std::string& path, |
//////////////////////////////////////////////////////////////////////////////// |
// |
-// BugReportData |
-// |
-//////////////////////////////////////////////////////////////////////////////// |
-void BugReportData::SendReport() { |
stevenjb
2011/08/03 01:55:20
BugReportData member function moved to its proper
|
-#if defined(OS_CHROMEOS) |
- // In case we already got the syslogs and sent the report, leave |
- if (sent_report_) return; |
- // Set send_report_ so that no one else processes SendReport |
- sent_report_ = true; |
-#endif |
- |
- int image_data_size = image_.size(); |
- char* image_data = image_data_size ? |
- reinterpret_cast<char*>(&(image_.front())) : NULL; |
- BugReportUtil::SendReport(profile_ |
- , problem_type_ |
- , page_url_ |
- , description_ |
- , image_data |
- , image_data_size |
- , browser::screen_size.width() |
- , browser::screen_size.height() |
-#if defined(OS_CHROMEOS) |
- , user_email_ |
- , zip_content_ ? zip_content_->c_str() : NULL |
- , zip_content_ ? zip_content_->length() : 0 |
- , send_sys_info_ ? sys_info_ : NULL |
-#endif |
- ); |
- |
-#if defined(OS_CHROMEOS) |
- if (sys_info_) { |
- delete sys_info_; |
- sys_info_ = NULL; |
- } |
- if (zip_content_) { |
- delete zip_content_; |
- zip_content_ = NULL; |
- } |
-#endif |
- |
- // Once the report has been sent, this object has no purpose in life, delete |
- // ourselves. |
- delete this; |
-} |
- |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// |
// BugReportHandler |
// |
//////////////////////////////////////////////////////////////////////////////// |
@@ -465,15 +409,15 @@ void BugReportHandler::ClobberScreenshotsSource() { |
profile->GetChromeURLDataManager()->AddDataSource(new ScreenshotSource(NULL)); |
// clobber last screenshot |
- if (browser::last_screenshot_png) |
- browser::last_screenshot_png->clear(); |
+ BugReportUtil::GetScreenshotPng()->clear(); |
} |
void BugReportHandler::SetupScreenshotsSource() { |
// If we don't already have a screenshot source object created, create one. |
- if (!screenshot_source_) |
- screenshot_source_ = new ScreenshotSource(browser::last_screenshot_png); |
- |
+ if (!screenshot_source_) { |
+ screenshot_source_ = |
+ new ScreenshotSource(BugReportUtil::GetScreenshotPng()); |
+ } |
// Add the source to the data manager. |
Profile* profile = Profile::FromBrowserContext(tab_->browser_context()); |
profile->GetChromeURLDataManager()->AddDataSource(screenshot_source_); |
@@ -546,6 +490,7 @@ void BugReportHandler::RegisterMessages() { |
} |
void BugReportHandler::HandleGetDialogDefaults(const ListValue*) { |
+ // Will delete itself when bug_report_->SendReport() is called. |
bug_report_ = new BugReportData(); |
// send back values which the dialog js needs initially |