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); |
} |