Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(382)

Unified Diff: chrome/browser/chromeos/dom_ui/imageburner_ui.cc

Issue 6348006: Add IsBootPath to MountLibrary. Additional boot path check in imageburner so ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/dom_ui/imageburner_ui.cc
===================================================================
--- chrome/browser/chromeos/dom_ui/imageburner_ui.cc (revision 71980)
+++ chrome/browser/chromeos/dom_ui/imageburner_ui.cc (working copy)
@@ -27,6 +27,7 @@
#include "grit/browser_resources.h"
#include "grit/generated_resources.h"
#include "grit/locale_settings.h"
+#include "third_party/zlib/contrib/minizip/unzip.h"
////////////////////////////////////////////////////////////////////////////////
@@ -35,62 +36,128 @@
//
////////////////////////////////////////////////////////////////////////////////
-ImageBurnUIHTMLSource::ImageBurnUIHTMLSource()
- : DataSource(chrome::kChromeUIImageBurnerHost, MessageLoop::current()) {
-}
+class ImageBurnUIHTMLSource : public ChromeURLDataManager::DataSource {
+ public:
+ ImageBurnUIHTMLSource()
+ : DataSource(chrome::kChromeUIImageBurnerHost, MessageLoop::current()) {
xiyuan 2011/01/25 17:28:30 nit: indent 4 more spaces
achuithb 2011/01/25 22:21:45 Done.
+ }
-void ImageBurnUIHTMLSource::StartDataRequest(const std::string& path,
- bool is_off_the_record,
- int request_id) {
- DictionaryValue localized_strings;
- localized_strings.SetString("burnConfirmText1",
- l10n_util::GetStringUTF16(IDS_IMAGEBURN_CONFIM_BURN1));
- localized_strings.SetString("burnConfirmText2",
- l10n_util::GetStringUTF16(IDS_IMAGEBURN_CONFIM_BURN2));
- localized_strings.SetString("burnUnsuccessfulMessage",
- l10n_util::GetStringUTF16(IDS_IMAGEBURN_BURN_UNSUCCESSFUL));
- localized_strings.SetString("burnSuccessfulMessage",
- l10n_util::GetStringUTF16(IDS_IMAGEBURN_BURN_SUCCESSFUL));
- localized_strings.SetString("downloadAbortedMessage",
- l10n_util::GetStringUTF16(IDS_IMAGEBURN_DOWNLOAD_UNSUCCESSFUL));
- localized_strings.SetString("title",
- l10n_util::GetStringUTF16(IDS_IMAGEBURN_TITLE));
- localized_strings.SetString("listTitle",
- l10n_util::GetStringUTF16(IDS_IMAGEBURN_ROOT_LIST_TITLE));
- localized_strings.SetString("downloadStatusStart",
- l10n_util::GetStringUTF16(IDS_IMAGEBURN_DOWNLOAD_STARTING_STATUS));
- localized_strings.SetString("downloadStatusInProgress",
- l10n_util::GetStringUTF16(IDS_IMAGEBURN_DOWNLOAD_IN_PROGRESS_STATUS));
- localized_strings.SetString("downloadStatusComplete",
- l10n_util::GetStringUTF16(IDS_IMAGEBURN_DOWNLOAD_COMPLETE_STATUS));
- localized_strings.SetString("downloadStatusCanceled",
- l10n_util::GetStringUTF16(IDS_IMAGEBURN_DOWNLOAD_CANCELED_STATUS));
- localized_strings.SetString("burnStatusStart",
- l10n_util::GetStringUTF16(IDS_IMAGEBURN_BURN_STARTING_STATUS));
- localized_strings.SetString("burnStatusInProgress",
- l10n_util::GetStringUTF16(IDS_IMAGEBURN_BURN_IN_PROGRESS_STATUS));
- localized_strings.SetString("burnStatusComplete",
- l10n_util::GetStringUTF16(IDS_IMAGEBURN_BURN_COMPLETE_STATUS));
- localized_strings.SetString("burnStatusCanceled",
- l10n_util::GetStringUTF16(IDS_IMAGEBURN_BURN_CANCELED_STATUS));
+ // Called when the network layer has requested a resource underneath
+ // the path we registered.
+ virtual void StartDataRequest(const std::string& path,
+ bool is_off_the_record,
+ int request_id) {
+ DictionaryValue localized_strings;
+ localized_strings.SetString("burnConfirmText1",
+ l10n_util::GetStringUTF16(IDS_IMAGEBURN_CONFIM_BURN1));
+ localized_strings.SetString("burnConfirmText2",
+ l10n_util::GetStringUTF16(IDS_IMAGEBURN_CONFIM_BURN2));
+ localized_strings.SetString("burnUnsuccessfulMessage",
+ l10n_util::GetStringUTF16(IDS_IMAGEBURN_BURN_UNSUCCESSFUL));
+ localized_strings.SetString("burnSuccessfulMessage",
+ l10n_util::GetStringUTF16(IDS_IMAGEBURN_BURN_SUCCESSFUL));
+ localized_strings.SetString("downloadAbortedMessage",
+ l10n_util::GetStringUTF16(IDS_IMAGEBURN_DOWNLOAD_UNSUCCESSFUL));
+ localized_strings.SetString("title",
+ l10n_util::GetStringUTF16(IDS_IMAGEBURN_TITLE));
+ localized_strings.SetString("listTitle",
+ l10n_util::GetStringUTF16(IDS_IMAGEBURN_ROOT_LIST_TITLE));
+ localized_strings.SetString("downloadStatusStart",
+ l10n_util::GetStringUTF16(IDS_IMAGEBURN_DOWNLOAD_STARTING_STATUS));
+ localized_strings.SetString("downloadStatusInProgress",
+ l10n_util::GetStringUTF16(IDS_IMAGEBURN_DOWNLOAD_IN_PROGRESS_STATUS));
+ localized_strings.SetString("downloadStatusComplete",
+ l10n_util::GetStringUTF16(IDS_IMAGEBURN_DOWNLOAD_COMPLETE_STATUS));
+ localized_strings.SetString("downloadStatusCanceled",
+ l10n_util::GetStringUTF16(IDS_IMAGEBURN_DOWNLOAD_CANCELED_STATUS));
+ localized_strings.SetString("burnStatusStart",
+ l10n_util::GetStringUTF16(IDS_IMAGEBURN_BURN_STARTING_STATUS));
+ localized_strings.SetString("burnStatusInProgress",
+ l10n_util::GetStringUTF16(IDS_IMAGEBURN_BURN_IN_PROGRESS_STATUS));
+ localized_strings.SetString("burnStatusComplete",
+ l10n_util::GetStringUTF16(IDS_IMAGEBURN_BURN_COMPLETE_STATUS));
+ localized_strings.SetString("burnStatusCanceled",
+ l10n_util::GetStringUTF16(IDS_IMAGEBURN_BURN_CANCELED_STATUS));
- SetFontAndTextDirection(&localized_strings);
+ SetFontAndTextDirection(&localized_strings);
- static const base::StringPiece imageburn_html(
- ResourceBundle::GetSharedInstance().GetRawDataResource(
- IDR_IMAGEBURNER_HTML));
- const std::string full_html = jstemplate_builder::GetI18nTemplateHtml(
- imageburn_html, &localized_strings);
+ static const base::StringPiece imageburn_html(
+ ResourceBundle::GetSharedInstance().GetRawDataResource(
+ IDR_IMAGEBURNER_HTML));
+ const std::string full_html = jstemplate_builder::GetI18nTemplateHtml(
+ imageburn_html, &localized_strings);
- scoped_refptr<RefCountedBytes> html_bytes(new RefCountedBytes);
- html_bytes->data.resize(full_html.size());
- std::copy(full_html.begin(), full_html.end(), html_bytes->data.begin());
+ scoped_refptr<RefCountedBytes> html_bytes(new RefCountedBytes);
+ html_bytes->data.resize(full_html.size());
+ std::copy(full_html.begin(), full_html.end(), html_bytes->data.begin());
- SendResponse(request_id, html_bytes);
-}
+ SendResponse(request_id, html_bytes);
+ }
+ virtual std::string GetMimeType(const std::string&) const {
+ return "text/html";
+ }
+
+ private:
+ virtual ~ImageBurnUIHTMLSource() {}
+
+ DISALLOW_COPY_AND_ASSIGN(ImageBurnUIHTMLSource);
+};
+
////////////////////////////////////////////////////////////////////////////////
//
+// ImageBurnTaskProxy
+//
+////////////////////////////////////////////////////////////////////////////////
+
+class ImageBurnTaskProxy
+ : public base::RefCountedThreadSafe<ImageBurnTaskProxy> {
+ public:
+ explicit ImageBurnTaskProxy(const base::WeakPtr<ImageBurnHandler>& handler)
+ : handler_(handler) {
xiyuan 2011/01/25 17:28:30 nit: indent 4 more spaces
achuithb 2011/01/25 22:21:45 Done.
+ resource_manager_ = ImageBurnResourceManager::GetInstance();
+ }
+
+ bool ReportDownloadInitialized() {
+ bool initialized = resource_manager_-> CheckImageDownloadStarted();
+ if (!initialized)
+ resource_manager_-> ReportImageDownloadStarted();
+ return initialized;
+ }
+
+ bool CheckDownloadFinished() {
+ return resource_manager_->CheckDownloadFinished();
+ }
+
+ void BurnImage() {
+ if (!resource_manager_->CheckBurnInProgress() && handler_) {
+ resource_manager_->SetBurnInProgress(true);
+ handler_->BurnImage();
+ }
+ }
+
+ void FinalizeBurn(bool success) {
+ if (handler_) {
+ handler_->FinalizeBurn(success);
+ resource_manager_->SetBurnInProgress(false);
+ }
+ }
+
+ void CreateImageUrl(TabContents* tab_contents, ImageBurnHandler* downloader) {
+ resource_manager_->CreateImageUrl(tab_contents, downloader);
+ }
+
+ private:
+ base::WeakPtr<ImageBurnHandler> handler_;
+ ImageBurnResourceManager* resource_manager_;
+
+ friend class base::RefCountedThreadSafe<ImageBurnTaskProxy>;
+
+ DISALLOW_COPY_AND_ASSIGN(ImageBurnTaskProxy);
+};
+
+////////////////////////////////////////////////////////////////////////////////
+//
// ImageBurnHandler
//
////////////////////////////////////////////////////////////////////////////////
@@ -189,14 +256,16 @@
}
void ImageBurnHandler::ModelChanged() {
+ // Find our item and observe it.
std::vector<DownloadItem*> downloads;
download_manager_->GetTemporaryDownloads(
burn_resource_manager_->GetLocalImageDirPath(), &downloads);
- if (download_item_observer_added_)
+ if (download_item_observer_added_) // Already added.
xiyuan 2011/01/25 17:28:30 nit: two spaces before comment at line end
achuithb 2011/01/25 22:21:45 Done.
return;
std::vector<DownloadItem*>::const_iterator it = downloads.begin();
for (; it != downloads.end(); ++it) {
- if ((*it)->url() == *image_download_url_) {
+ if ((*it)->original_url() == *image_download_url_) {
+ // Found it.
download_item_observer_added_ = true;
(*it)->AddObserver(this);
active_download_item_ = *it;
@@ -214,13 +283,15 @@
if (!burn_resource_manager_->CheckBurnInProgress()) {
for (size_t i = 0; i < disks.size(); ++i) {
if (!disks[i].mount_path.empty()) {
- DictionaryValue* page_value = new DictionaryValue();
FilePath disk_path = FilePath(disks[i].system_path).DirName();
std::string title = "/dev/" + disk_path.BaseName().value();
- page_value->SetString(kPropertyTitle, title);
- page_value->SetString(kPropertyPath, title);
- page_value->SetBoolean(kPropertyDirectory, true);
- results_value.Append(page_value);
+ if (!mount_lib->IsBootPath(title.c_str())) {
+ DictionaryValue* page_value = new DictionaryValue();
+ page_value->SetString(kPropertyTitle, title);
+ page_value->SetString(kPropertyPath, title);
+ page_value->SetBoolean(kPropertyDirectory, true);
+ results_value.Append(page_value);
+ }
}
}
}
@@ -283,10 +354,8 @@
void ImageBurnHandler::FinalizeBurn(bool successful) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- if (successful)
- dom_ui_->CallJavascriptFunction(L"burnSuccessful");
- else
- dom_ui_->CallJavascriptFunction(L"burnUnsuccessful");
+ dom_ui_->CallJavascriptFunction(successful ?
+ L"burnSuccessful" : L"burnUnsuccessful");
}
void ImageBurnHandler::UpdateBurnProgress(int64 total_burnt,
@@ -393,48 +462,6 @@
////////////////////////////////////////////////////////////////////////////////
//
-// ImageBurnTaskProxy
-//
-////////////////////////////////////////////////////////////////////////////////
-ImageBurnTaskProxy::ImageBurnTaskProxy(
- const base::WeakPtr<ImageBurnHandler>& handler)
- : handler_(handler) {
- resource_manager_ = ImageBurnResourceManager::GetInstance();
-}
-
-bool ImageBurnTaskProxy::ReportDownloadInitialized() {
- bool initialized = resource_manager_-> CheckImageDownloadStarted();
- if (!initialized)
- resource_manager_-> ReportImageDownloadStarted();
- return initialized;
-}
-
-bool ImageBurnTaskProxy::CheckDownloadFinished() {
- return resource_manager_->CheckDownloadFinished();
-}
-
-void ImageBurnTaskProxy:: BurnImage() {
- if (!resource_manager_->CheckBurnInProgress() && handler_) {
- resource_manager_->SetBurnInProgress(true);
- handler_->BurnImage();
- }
-}
-
-void ImageBurnTaskProxy::FinalizeBurn(bool success) {
- if (handler_) {
- handler_->FinalizeBurn(success);
- resource_manager_->SetBurnInProgress(false);
- }
-}
-
-void ImageBurnTaskProxy::CreateImageUrl(TabContents* tab_contents,
- ImageBurnHandler* downloader) {
- resource_manager_->CreateImageUrl(tab_contents, downloader);
-}
-
-
-////////////////////////////////////////////////////////////////////////////////
-//
// ImageBurnResourceManager
//
////////////////////////////////////////////////////////////////////////////////
@@ -446,10 +473,10 @@
download_manager_(NULL),
download_item_observer_added_(false),
active_download_item_(NULL),
- image_url_(NULL),
+ image_url_(new GURL(kImageDownloadURL)),
image_fetcher_url_(kImageBaseURL + kImageFetcherName),
image_url_fetching_requested_(false),
- image_url_fetched_(false) {
+ image_url_fetched_(true) {
xiyuan 2011/01/25 17:28:30 any reason why this needs to be changed?
achuithb 2011/01/25 22:21:45 imageburner was written to use an internal corp ur
local_image_dir_file_path_.clear();
image_fecher_local_path_ = GetLocalImageDirPath().Append(kImageFetcherName);
}

Powered by Google App Engine
This is Rietveld 408576698