summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/browser_resources.grd2
-rw-r--r--chrome/browser/extensions/extension_updater.cc13
-rw-r--r--chrome/browser/extensions/extension_updater.h4
-rw-r--r--chrome/browser/extensions/extensions_service.h3
-rw-r--r--chrome/browser/extensions/extensions_ui.cc10
-rw-r--r--chrome/browser/extensions/extensions_ui.h7
-rw-r--r--chrome/browser/resources/extensions_ui.html11
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>