diff options
-rw-r--r-- | chrome/browser/browser_resources.grd | 2 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_updater.cc | 13 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_updater.h | 4 | ||||
-rw-r--r-- | chrome/browser/extensions/extensions_service.h | 3 | ||||
-rw-r--r-- | chrome/browser/extensions/extensions_ui.cc | 10 | ||||
-rw-r--r-- | chrome/browser/extensions/extensions_ui.h | 7 | ||||
-rw-r--r-- | chrome/browser/resources/extensions_ui.html | 11 |
7 files changed, 42 insertions, 8 deletions
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd index 9480db9..b1dec77 100644 --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- This comment is only here because changes to resources are not picked up -without changes to the corresponding grd file. aa4 --> +without changes to the corresponding grd file. as1 --> <grit latest_public_release="0" current_release="1"> <outputs> <output filename="grit/browser_resources.h" type="rc_header"> diff --git a/chrome/browser/extensions/extension_updater.cc b/chrome/browser/extensions/extension_updater.cc index fe19ba5..511c218 100644 --- a/chrome/browser/extensions/extension_updater.cc +++ b/chrome/browser/extensions/extension_updater.cc @@ -462,6 +462,15 @@ void ExtensionUpdater::ScheduleNextCheck(const TimeDelta& target_delay) { } void ExtensionUpdater::TimerFired() { + CheckNow(); + + // Save the last check time, and schedule the next check. + int64 now = Time::Now().ToInternalValue(); + prefs_->SetInt64(kLastExtensionsUpdateCheck, now); + ScheduleNextCheck(TimeDelta::FromSeconds(frequency_seconds_)); +} + +void ExtensionUpdater::CheckNow() { // Generate a set of update urls for loaded extensions. std::set<GURL> urls; @@ -501,10 +510,6 @@ void ExtensionUpdater::TimerFired() { // scheduled, so we don't need to check before calling it. StartUpdateCheck(*iter); } - // Save the last check time, and schedule the next check. - int64 now = Time::Now().ToInternalValue(); - prefs_->SetInt64(kLastExtensionsUpdateCheck, now); - ScheduleNextCheck(TimeDelta::FromSeconds(frequency_seconds_)); } diff --git a/chrome/browser/extensions/extension_updater.h b/chrome/browser/extensions/extension_updater.h index c82d1c4..043ff96 100644 --- a/chrome/browser/extensions/extension_updater.h +++ b/chrome/browser/extensions/extension_updater.h @@ -58,6 +58,10 @@ class ExtensionUpdater // crx downloads. Does not cancel any in-progress installs. void Stop(); + // Starts an update check right now, instead of waiting for the next regularly + // scheduled check. + void CheckNow(); + private: friend class ExtensionUpdaterTest; friend class ExtensionUpdaterFileHandler; diff --git a/chrome/browser/extensions/extensions_service.h b/chrome/browser/extensions/extensions_service.h index 75303b4..4702e5a 100644 --- a/chrome/browser/extensions/extensions_service.h +++ b/chrome/browser/extensions/extensions_service.h @@ -211,6 +211,9 @@ class ExtensionsService // Whether the extension service is ready. bool is_ready() { return ready_; } + // Note that this may return NULL if autoupdate is not turned on. + ExtensionUpdater* updater() { return updater_.get(); } + private: // Look up an extension by ID, optionally including either or both of enabled // and disabled extensions. diff --git a/chrome/browser/extensions/extensions_ui.cc b/chrome/browser/extensions/extensions_ui.cc index 7f921f1..c251b2f 100644 --- a/chrome/browser/extensions/extensions_ui.cc +++ b/chrome/browser/extensions/extensions_ui.cc @@ -12,6 +12,7 @@ #include "chrome/browser/debugger/devtools_manager.h" #include "chrome/browser/extensions/extension_message_service.h" #include "chrome/browser/extensions/extensions_service.h" +#include "chrome/browser/extensions/extension_updater.h" #include "chrome/browser/profile.h" #include "chrome/browser/renderer_host/render_process_host.h" #include "chrome/browser/renderer_host/render_widget_host.h" @@ -88,6 +89,8 @@ void ExtensionsDOMHandler::RegisterMessages() { NewCallback(this, &ExtensionsDOMHandler::HandleLoadMessage)); dom_ui_->RegisterMessageCallback("pack", NewCallback(this, &ExtensionsDOMHandler::HandlePackMessage)); + dom_ui_->RegisterMessageCallback("autoupdate", + NewCallback(this, &ExtensionsDOMHandler::HandleAutoUpdateMessage)); } void ExtensionsDOMHandler::HandleRequestExtensionsData(const Value* value) { @@ -192,6 +195,13 @@ void ExtensionsDOMHandler::HandlePackMessage(const Value* value) { #endif } +void ExtensionsDOMHandler::HandleAutoUpdateMessage(const Value* value) { + ExtensionUpdater* updater = extensions_service_->updater(); + if (updater) { + updater->CheckNow(); + } +} + void ExtensionsDOMHandler::FileSelected(const FilePath& path, int index, void* params) { extensions_service_->LoadExtension(path); diff --git a/chrome/browser/extensions/extensions_ui.h b/chrome/browser/extensions/extensions_ui.h index c170dcb..80ddf4d 100644 --- a/chrome/browser/extensions/extensions_ui.h +++ b/chrome/browser/extensions/extensions_ui.h @@ -99,14 +99,17 @@ class ExtensionsDOMHandler // Callback for "pack" message. void HandlePackMessage(const Value* value); + // Callback for "autoupdate" message. + void HandleAutoUpdateMessage(const Value* value); + // SelectFileDialog::Listener virtual void FileSelected(const FilePath& path, int index, void* params); virtual void MultiFilesSelected( const std::vector<FilePath>& files, void* params) { NOTREACHED(); - }; - virtual void FileSelectionCanceled(void* params) {}; + } + virtual void FileSelectionCanceled(void* params) {} // NotificationObserver virtual void Observe(NotificationType type, diff --git a/chrome/browser/resources/extensions_ui.html b/chrome/browser/resources/extensions_ui.html index 383fa3d..0542d1c 100644 --- a/chrome/browser/resources/extensions_ui.html +++ b/chrome/browser/resources/extensions_ui.html @@ -276,6 +276,14 @@ function loadExtension() { function packExtension() { chrome.send('pack', []); } + +/** + * Handles the "Update extensions now" button being pressed. + */ +function autoUpdate() { + chrome.send('autoupdate', []); +} + </script> </head> <body onload="requestExtensionsData();"> @@ -343,7 +351,8 @@ function packExtension() { <div class="sidebar-content"> <button onclick="loadExtension()">Load unpacked extension...</button><br /> - <button onclick="packExtension()">Pack extension...</button> + <button onclick="packExtension()">Pack extension...</button><br /> + <button onclick="autoUpdate()">Update extensions now</button> </div> </td> </tr> |