Commit 15300d9c authored by asargent@chromium.org's avatar asargent@chromium.org

Fix autoupdate for hosted apps.

The problem is that CrxInstaller wasn't considering updates when looking for
previously installed apps with overlapping extents.

BUG=68872
TEST=Steps outlined in bug report. 

Review URL: http://codereview.chromium.org/6292007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71818 0039d316-1c4b-4281-b951-d872f2087c98
parent 0d8b9aa0
......@@ -301,7 +301,8 @@ void CrxInstaller::ConfirmInstall() {
GURL overlapping_url;
const Extension* overlapping_extension =
frontend_->GetExtensionByOverlappingWebExtent(extension_->web_extent());
if (overlapping_extension) {
if (overlapping_extension &&
overlapping_extension->id() != extension_->id()) {
ReportFailureFromUIThread(l10n_util::GetStringFUTF8(
IDS_EXTENSION_OVERLAPPING_WEB_EXTENT,
UTF8ToUTF16(overlapping_extension->name())));
......
......@@ -1649,6 +1649,28 @@ TEST_F(ExtensionServiceTest, InstallApps) {
ValidatePrefKeyCount(pref_count);
}
TEST_F(ExtensionServiceTest, UpdateApps) {
InitializeEmptyExtensionService();
FilePath extensions_path;
ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &extensions_path));
extensions_path =
extensions_path.AppendASCII("extensions").AppendASCII("app_update");
// First install v1 of a hosted app.
InstallExtension(extensions_path.AppendASCII("v1.crx"), true);
ASSERT_EQ(1u, service_->extensions()->size());
std::string id = service_->extensions()->at(0)->id();
ASSERT_EQ(std::string("1"),
service_->extensions()->at(0)->version()->GetString());
// Now try updating to v2.
UpdateExtension(id,
extensions_path.AppendASCII("v2.crx"),
ENABLED);
ASSERT_EQ(std::string("2"),
service_->extensions()->at(0)->version()->GetString());
}
TEST_F(ExtensionServiceTest, InstallAppsWithUnlimtedStorage) {
InitializeEmptyExtensionService();
EXPECT_TRUE(service_->extensions()->empty());
......
-----BEGIN PRIVATE KEY-----
MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBANTFobJfKERFWsbyf
9cMD4DdZr3SnkP8tC/l47eQCJ5bl9oFLFB1r7uqsZpeWAGpHX3kRgtGD6bCnOJo26
a1zDCihZyTEiide945UYiKrj5H3EBZ+zcEEaA5nEcfw+CwOwzO5jQQZjHh5kmIbBy
1QLiLBjGU/xsYcodE1vyzUAnJAgMBAAECgYEAkm8xycETxWi2ARYERcxXHylA/INn
yQKyQATHpB3M0K/Y4oOM7BMSzuW7NbKYfwwU7/+a9UdSnkJyFqB0C1gzHkPOu2XV2
m3gg8bTGJ/WKaizLCGdEi5HyOeGWeSUsIo7o42VjQYYjk7ZYEnjDk5B1OGKacUgzh
wYp4pkuMTQcwECQQD5DAdrjnNox3Xu3/R2Qjzvc5N6xilimZJ7bmoXQm2TX6ZBuJg
SxSyqQnMKvevQo/X8na9R3u0gUeNDVEljK9T9AkEA2rZXMcTo21/Cyf759F881Xm4
d/3/2oiKbqG7XuBRymvOBnOoAK9X/wUxjqSzM4cJu+jDMhVyAVoariqA8upnvQJBA
L3C/KRnlmhwEtxAqPSy49tQJT+XXlFS0tpZ91xhsTxp1TSegsFKnA3fM+krbVM8m2
IwhDXNtsC5pIDY6FI4Q8ECQHKk2+XhsrGza5aYigs3lNrNuA1l3iR+KBo/usjLyvP
ROKiXHXxmbTjnTwfXe3vKECcoppDtPtpIke2zp+4tQv0CQQCUsYKejEYSrojZurfZ
rR7grXcHClOZ8aEZ9uopDlH/AYe/ffPjFX4PRbkHR7+ysP2n/JkF5RTZsJQiMq9qw
eoq
-----END PRIVATE KEY-----
{
"name": "Test App",
"version": "1",
"app": {
"urls": [
"http://www.example.com/path1"
],
"launch": {
"web_url": "http://www.example.com/path1/foo.html"
}
}
}
{
"name": "Test App",
"version": "2",
"app": {
"urls": [
"http://www.example.com/path1"
],
"launch": {
"web_url": "http://www.example.com/path1/foo2.html"
}
}
}
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