Commit a092a066 authored by estade@chromium.org's avatar estade@chromium.org

Add relaunch prompt to linux help page.

This doesn't allow you to check for updates or show progress, it just notifies you if a new version is ready. As such, I didn't see a reason to limit it to Google Chrome builds.

This also fixes a bug where a 'disabled' state permanently hides the status text.

BUG=117403
TEST=manual with --check-for-update-interval=1 and manually editing the version


Review URL: https://chromiumcodereview.appspot.com/10541013

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141693 0039d316-1c4b-4281-b951-d872f2087c98
parent 7c4f9c93
...@@ -71,8 +71,8 @@ ...@@ -71,8 +71,8 @@
i18n-content="showMoreInfo"> i18n-content="showMoreInfo">
</button> </button>
</if> </if>
<if expr="pp_ifdef('chromeos') or (pp_ifdef('_google_chrome') and (is_win or is_macosx))"> <if expr="pp_ifdef('chromeos') or pp_ifdef('_google_chrome') or is_linux">
<div id="update-status-container"> <div id="update-status-container" hidden>
<div id="update-status-icon" class="up-to-date"></div> <div id="update-status-icon" class="up-to-date"></div>
<span id="update-status" i18n-content="updateCheckStarted"></span> <span id="update-status" i18n-content="updateCheckStarted"></span>
</div> </div>
......
...@@ -112,17 +112,16 @@ cr.define('help', function() { ...@@ -112,17 +112,16 @@ cr.define('help', function() {
} else if (status == 'failed') { } else if (status == 'failed') {
this.setUpdateImage_('failed'); this.setUpdateImage_('failed');
$('update-status').innerHTML = message; $('update-status').innerHTML = message;
} else if (status == 'disabled') {
var container = $('update-status-container');
if (container)
container.hidden = true;
return;
} }
if (!cr.isMac) var container = $('update-status-container');
$('update-percentage').hidden = status != 'updating'; if (container) {
container.hidden = status == 'disabled';
$('relaunch').hidden = status != 'nearly_updated';
$('relaunch').hidden = status != 'nearly_updated'; if (!cr.isMac)
$('update-percentage').hidden = status != 'updating';
}
}, },
/** /**
......
...@@ -19,3 +19,24 @@ HelpPageWebUITest.prototype = { ...@@ -19,3 +19,24 @@ HelpPageWebUITest.prototype = {
TEST_F('HelpPageWebUITest', 'testOpenHelpPage', function() { TEST_F('HelpPageWebUITest', 'testOpenHelpPage', function() {
assertEquals(this.browsePreload, document.location.href); assertEquals(this.browsePreload, document.location.href);
}); });
GEN('#if defined(OS_LINUX) || defined(GOOGLE_CHROME_BUILD)');
// Test that repeated calls to setUpdateStatus work.
TEST_F('HelpPageWebUITest', 'testUpdateState', function() {
expectTrue($('update-status-container').hidden);
help.HelpPage.setUpdateStatus('disabled', '');
expectTrue($('relaunch').hidden);
expectTrue($('update-status-container').hidden);
help.HelpPage.setUpdateStatus('nearly_updated', '');
expectTrue(!$('relaunch').hidden);
expectTrue(!$('update-status-container').hidden);
help.HelpPage.setUpdateStatus('disabled', '');
expectTrue($('relaunch').hidden);
expectTrue($('update-status-container').hidden);
});
GEN('#endif');
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/webui/help/version_updater_basic.h"
#include "base/string16.h"
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/upgrade_detector.h"
void VersionUpdaterBasic::CheckForUpdate(
const StatusCallback& status_callback) {
if (UpgradeDetector::GetInstance()->notify_upgrade())
status_callback.Run(NEARLY_UPDATED, 0, string16());
else
status_callback.Run(DISABLED, 0, string16());
}
void VersionUpdaterBasic::RelaunchBrowser() const {
browser::AttemptRestart();
}
VersionUpdater* VersionUpdater::Create() {
return new VersionUpdaterBasic;
}
...@@ -2,30 +2,29 @@ ...@@ -2,30 +2,29 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_WEBUI_HELP_VERSION_UPDATER_UNIMPLEMENTED_H_ #ifndef CHROME_BROWSER_UI_WEBUI_HELP_VERSION_UPDATER_BASIC_H_
#define CHROME_BROWSER_UI_WEBUI_HELP_VERSION_UPDATER_UNIMPLEMENTED_H_ #define CHROME_BROWSER_UI_WEBUI_HELP_VERSION_UPDATER_BASIC_H_
#pragma once #pragma once
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "chrome/browser/ui/webui/help/version_updater.h" #include "chrome/browser/ui/webui/help/version_updater.h"
// Temporary empty implementation used by platforms that have not specialized // Bare bones implementation just checks if a new version is ready.
// VersionUpdater. class VersionUpdaterBasic : public VersionUpdater {
class VersionUpdaterUnimplemented : public VersionUpdater {
public: public:
// VersionUpdater implementation. // VersionUpdater implementation.
virtual void CheckForUpdate(const StatusCallback& callback) OVERRIDE {} virtual void CheckForUpdate(const StatusCallback& callback) OVERRIDE;
virtual void RelaunchBrowser() const OVERRIDE {} virtual void RelaunchBrowser() const OVERRIDE;
protected: protected:
friend class VersionUpdater; friend class VersionUpdater;
// Clients must use VersionUpdater::Create(). // Clients must use VersionUpdater::Create().
VersionUpdaterUnimplemented() {} VersionUpdaterBasic() {}
virtual ~VersionUpdaterUnimplemented() {} virtual ~VersionUpdaterBasic() {}
private: private:
DISALLOW_COPY_AND_ASSIGN(VersionUpdaterUnimplemented); DISALLOW_COPY_AND_ASSIGN(VersionUpdaterBasic);
}; };
#endif // CHROME_BROWSER_UI_WEBUI_HELP_VERSION_UPDATER_UNIMPLEMENTED_H_ #endif // CHROME_BROWSER_UI_WEBUI_HELP_VERSION_UPDATER_BASIC_H_
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/webui/help/version_updater_unimplemented.h"
VersionUpdater* VersionUpdater::Create() {
return new VersionUpdaterUnimplemented;
}
...@@ -3813,12 +3813,12 @@ ...@@ -3813,12 +3813,12 @@
'browser/ui/webui/help/help_ui.cc', 'browser/ui/webui/help/help_ui.cc',
'browser/ui/webui/help/help_ui.h', 'browser/ui/webui/help/help_ui.h',
'browser/ui/webui/help/version_updater.h', 'browser/ui/webui/help/version_updater.h',
'browser/ui/webui/help/version_updater_basic.cc',
'browser/ui/webui/help/version_updater_basic.h',
'browser/ui/webui/help/version_updater_chromeos.cc', 'browser/ui/webui/help/version_updater_chromeos.cc',
'browser/ui/webui/help/version_updater_chromeos.h', 'browser/ui/webui/help/version_updater_chromeos.h',
'browser/ui/webui/help/version_updater_mac.mm', 'browser/ui/webui/help/version_updater_mac.mm',
'browser/ui/webui/help/version_updater_mac.h', 'browser/ui/webui/help/version_updater_mac.h',
'browser/ui/webui/help/version_updater_unimplemented.cc',
'browser/ui/webui/help/version_updater_unimplemented.h',
'browser/ui/webui/history_ui.cc', 'browser/ui/webui/history_ui.cc',
'browser/ui/webui/history_ui.h', 'browser/ui/webui/history_ui.h',
'browser/ui/webui/inspect_ui.cc', 'browser/ui/webui/inspect_ui.cc',
...@@ -4387,8 +4387,8 @@ ...@@ -4387,8 +4387,8 @@
['exclude', 'browser/password_manager/native_backend_kwallet_x.h'], ['exclude', 'browser/password_manager/native_backend_kwallet_x.h'],
['exclude', 'browser/platform_util_linux.cc'], ['exclude', 'browser/platform_util_linux.cc'],
['exclude', 'browser/speech/extension_api/tts_extension_api_linux.cc'], ['exclude', 'browser/speech/extension_api/tts_extension_api_linux.cc'],
['exclude', 'browser/ui/webui/help/version_updater_unimplemented.cc'], ['exclude', 'browser/ui/webui/help/version_updater_basic.cc'],
['exclude', 'browser/ui/webui/help/version_updater_unimplemented.h'], ['exclude', 'browser/ui/webui/help/version_updater_basic.h'],
['exclude', 'browser/upgrade_detector_impl.cc'], ['exclude', 'browser/upgrade_detector_impl.cc'],
['exclude', 'browser/upgrade_detector_impl.h'], ['exclude', 'browser/upgrade_detector_impl.h'],
], ],
...@@ -4754,8 +4754,8 @@ ...@@ -4754,8 +4754,8 @@
'browser/ui/tabs/tab_resources.cc', 'browser/ui/tabs/tab_resources.cc',
'browser/ui/views/extensions/extension_view.cc', 'browser/ui/views/extensions/extension_view.cc',
'browser/ui/views/extensions/extension_view.h', 'browser/ui/views/extensions/extension_view.h',
'browser/ui/webui/help/version_updater_unimplemented.cc', 'browser/ui/webui/help/version_updater_basic.cc',
'browser/ui/webui/help/version_updater_unimplemented.h', 'browser/ui/webui/help/version_updater_basic.h',
], ],
'sources': [ 'sources': [
# Build Apple sample code # Build Apple sample code
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment