OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/webui/feedback_ui.h" | 5 #include "chrome/browser/ui/webui/feedback_ui.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/base64.h" | 10 #include "base/base64.h" |
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
378 // TODO(rkc): Once there is a method to 'remove' a source, change this code | 378 // TODO(rkc): Once there is a method to 'remove' a source, change this code |
379 Profile* profile = Profile::FromBrowserContext(tab_->GetBrowserContext()); | 379 Profile* profile = Profile::FromBrowserContext(tab_->GetBrowserContext()); |
380 ChromeURLDataManager::AddDataSource(profile, | 380 ChromeURLDataManager::AddDataSource(profile, |
381 new ScreenshotSource(NULL, profile)); | 381 new ScreenshotSource(NULL, profile)); |
382 | 382 |
383 FeedbackUtil::ClearScreenshotPng(); | 383 FeedbackUtil::ClearScreenshotPng(); |
384 } | 384 } |
385 | 385 |
386 void FeedbackHandler::SetupScreenshotsSource() { | 386 void FeedbackHandler::SetupScreenshotsSource() { |
387 Profile* profile = Profile::FromBrowserContext(tab_->GetBrowserContext()); | 387 Profile* profile = Profile::FromBrowserContext(tab_->GetBrowserContext()); |
388 // If we don't already have a screenshot source object created, create one. | 388 screenshot_source_ = |
389 if (!screenshot_source_) { | 389 new ScreenshotSource(FeedbackUtil::GetScreenshotPng(), profile); |
390 screenshot_source_ = | |
391 new ScreenshotSource(FeedbackUtil::GetScreenshotPng(), profile); | |
392 } | |
393 // Add the source to the data manager. | 390 // Add the source to the data manager. |
394 ChromeURLDataManager::AddDataSource(profile, screenshot_source_); | 391 ChromeURLDataManager::AddDataSource(profile, screenshot_source_); |
395 } | 392 } |
396 | 393 |
397 bool FeedbackHandler::Init() { | 394 bool FeedbackHandler::Init() { |
398 std::string page_url; | 395 std::string page_url; |
399 if (tab_->GetController().GetActiveEntry()) { | 396 if (tab_->GetController().GetActiveEntry()) { |
400 page_url = tab_->GetController().GetActiveEntry()->GetURL().spec(); | 397 page_url = tab_->GetController().GetActiveEntry()->GetURL().spec(); |
401 } | 398 } |
402 | 399 |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
468 // case we don't actually have a screenshot anyway. | 465 // case we don't actually have a screenshot anyway. |
469 SetupScreenshotsSource(); | 466 SetupScreenshotsSource(); |
470 } else { | 467 } else { |
471 target_tab_url_ = custom_page_url; | 468 target_tab_url_ = custom_page_url; |
472 } | 469 } |
473 | 470 |
474 return true; | 471 return true; |
475 } | 472 } |
476 | 473 |
477 void FeedbackHandler::RegisterMessages() { | 474 void FeedbackHandler::RegisterMessages() { |
478 SetupScreenshotsSource(); | |
479 | |
480 web_ui()->RegisterMessageCallback("getDialogDefaults", | 475 web_ui()->RegisterMessageCallback("getDialogDefaults", |
481 base::Bind(&FeedbackHandler::HandleGetDialogDefaults, | 476 base::Bind(&FeedbackHandler::HandleGetDialogDefaults, |
482 base::Unretained(this))); | 477 base::Unretained(this))); |
483 web_ui()->RegisterMessageCallback("refreshCurrentScreenshot", | 478 web_ui()->RegisterMessageCallback("refreshCurrentScreenshot", |
484 base::Bind(&FeedbackHandler::HandleRefreshCurrentScreenshot, | 479 base::Bind(&FeedbackHandler::HandleRefreshCurrentScreenshot, |
485 base::Unretained(this))); | 480 base::Unretained(this))); |
486 #if defined(OS_CHROMEOS) | 481 #if defined(OS_CHROMEOS) |
487 web_ui()->RegisterMessageCallback("refreshSavedScreenshots", | 482 web_ui()->RegisterMessageCallback("refreshSavedScreenshots", |
488 base::Bind(&FeedbackHandler::HandleRefreshSavedScreenshots, | 483 base::Bind(&FeedbackHandler::HandleRefreshSavedScreenshots, |
489 base::Unretained(this))); | 484 base::Unretained(this))); |
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
723 : WebDialogUI(web_ui) { | 718 : WebDialogUI(web_ui) { |
724 FeedbackHandler* handler = new FeedbackHandler(web_ui->GetWebContents()); | 719 FeedbackHandler* handler = new FeedbackHandler(web_ui->GetWebContents()); |
725 web_ui->AddMessageHandler(handler); | 720 web_ui->AddMessageHandler(handler); |
726 | 721 |
727 // The handler's init will determine whether we show the error html page. | 722 // The handler's init will determine whether we show the error html page. |
728 ChromeWebUIDataSource* html_source = | 723 ChromeWebUIDataSource* html_source = |
729 CreateFeedbackUIHTMLSource(handler->Init()); | 724 CreateFeedbackUIHTMLSource(handler->Init()); |
730 | 725 |
731 // Set up the chrome://feedback/ source. | 726 // Set up the chrome://feedback/ source. |
732 Profile* profile = Profile::FromWebUI(web_ui); | 727 Profile* profile = Profile::FromWebUI(web_ui); |
733 ChromeURLDataManager::AddDataSource(profile, html_source); | 728 ChromeURLDataManager::AddDataSourceImpl(profile, html_source); |
734 } | 729 } |
735 | 730 |
736 #if defined(OS_CHROMEOS) | 731 #if defined(OS_CHROMEOS) |
737 // static | 732 // static |
738 void FeedbackUI::GetMostRecentScreenshots( | 733 void FeedbackUI::GetMostRecentScreenshots( |
739 const FilePath& filepath, | 734 const FilePath& filepath, |
740 std::vector<std::string>* saved_screenshots, | 735 std::vector<std::string>* saved_screenshots, |
741 size_t max_saved) { | 736 size_t max_saved) { |
742 std::string pattern = | 737 std::string pattern = |
743 std::string(ScreenshotSource::kScreenshotPrefix) + "*" + | 738 std::string(ScreenshotSource::kScreenshotPrefix) + "*" + |
(...skipping 14 matching lines...) Expand all Loading... |
758 screenshot_filepaths.begin() + sort_size, | 753 screenshot_filepaths.begin() + sort_size, |
759 screenshot_filepaths.end(), | 754 screenshot_filepaths.end(), |
760 ScreenshotTimestampComp); | 755 ScreenshotTimestampComp); |
761 for (size_t i = 0; i < sort_size; ++i) | 756 for (size_t i = 0; i < sort_size; ++i) |
762 saved_screenshots->push_back( | 757 saved_screenshots->push_back( |
763 std::string(ScreenshotSource::kScreenshotUrlRoot) + | 758 std::string(ScreenshotSource::kScreenshotUrlRoot) + |
764 std::string(ScreenshotSource::kScreenshotSaved) + | 759 std::string(ScreenshotSource::kScreenshotSaved) + |
765 screenshot_filepaths[i]); | 760 screenshot_filepaths[i]); |
766 } | 761 } |
767 #endif | 762 #endif |
OLD | NEW |