Skip to content

Commit

Permalink
Remove CRX2 parsers from Chrome.
Browse files Browse the repository at this point in the history
Unwinds some now-dead policy handling.
Repackages some remaining CRX2 items into CRX3.
  Where they had no keys checked in, I created keys are rotated IDs.
  For the component updater, I also had to change hash/size constants.
Removes a kiosk browsertest that verified CRX2 compatibility.

Bug: 740715
Change-Id: I3f96ff682400c509ba3050310c3ada3fcf552360
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1729917
Commit-Queue: Joshua Pawlicki <waffles@chromium.org>
Reviewed-by: Sergey Poromov <poromov@chromium.org>
Reviewed-by: Dominic Battré <battre@chromium.org>
Reviewed-by: Denis Kuznetsov <antrim@chromium.org>
Reviewed-by: Alexander Alekseev <alemate@chromium.org>
Reviewed-by: proberge <proberge@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: John Chen <johnchen@chromium.org>
Auto-Submit: Joshua Pawlicki <waffles@chromium.org>
Cr-Commit-Position: refs/heads/master@{#692756}
  • Loading branch information
Joshua Pawlicki authored and Commit Bot committed Sep 3, 2019
1 parent 1f5c0eb commit afaa292
Show file tree
Hide file tree
Showing 53 changed files with 282 additions and 297 deletions.
7 changes: 1 addition & 6 deletions chrome/browser/chromeos/app_mode/kiosk_app_data.cc
Original file line number Diff line number Diff line change
Expand Up @@ -153,13 +153,8 @@ class KioskAppData::CrxLoader : public extensions::SandboxedUnpackerClient {
std::move(connector), extensions::Manifest::INTERNAL,
extensions::Extension::NO_FLAGS, temp_dir_.GetPath(),
task_runner_.get(), this);
// Temporary allow CRX2 for kiosk apps.
// See https://crbug.com/960428. Note that we don't have user policies at
// this stage, so we have to explicitly allow CRX2 extension archive format.
// TODO(crbug.com/740715): remove in M77.
unpacker->StartWithCrx(extensions::CRXFileInfo(
crx_file_, extensions::GetPolicyVerifierFormat(
true /* insecure_updates_enabled */)));
crx_file_, extensions::GetPolicyVerifierFormat()));
}

void NotifyFinishedInThreadPool() {
Expand Down
37 changes: 0 additions & 37 deletions chrome/browser/chromeos/login/kiosk_browsertest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -112,10 +112,6 @@ namespace {
// detail/ggaeimfdpnmlhdhpcikgoblffmkckdmn
const char kTestKioskApp[] = "ggaeimfdpnmlhdhpcikgoblffmkckdmn";

// This is the same as above, but packed in deprecated CRX2. It should work
// before full deprecation of CRX2.
const char kTestKioskCrx2App[] = "ggbflgnkafappblpkiflbgpmkfdpnhhe";

// This app creates a window and declares usage of the identity API in its
// manifest, so we can test device robot token minting via the identity API.
// Webstore data json is in
Expand Down Expand Up @@ -1358,39 +1354,6 @@ IN_PROC_BROWSER_TEST_F(KioskTest, NoEnterpriseAutoLaunchWhenUntrusted) {
EXPECT_FALSE(login_display_host->GetAppLaunchController());
}

class KioskCrx2Test : public KioskTest {
public:
KioskCrx2Test()
: KioskTest(),
test_install_attributes_(
chromeos::StubInstallAttributes::CreateCloudManaged("example.com",
"fake-id")) {}

private:
// Set up fake install attributes to make the device appeared as
// enterprise-managed. This is needed because CRX2 is only allowed for
// policy-based kiosk apps.
chromeos::ScopedStubInstallAttributes test_install_attributes_;

DISALLOW_COPY_AND_ASSIGN(KioskCrx2Test);
};

// Test that CRX2-packed apps still work for kiosk. This is a regression for
// crbug.com/960428. TODO(crbug.com/740715): This test should fail in M78 after
// full deprecation of CRX2.
IN_PROC_BROWSER_TEST_F(KioskCrx2Test, InstallAndLaunchCrx2App) {
set_test_app_id(kTestKioskCrx2App);
set_test_crx_file(test_app_id() + ".crx");
set_use_consumer_kiosk_mode(false);
StartAppLaunchFromLoginScreen(
NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE);
WaitForAppLaunchSuccess();
KioskAppManager::App app;
ASSERT_TRUE(KioskAppManager::Get()->GetApp(test_app_id(), &app));
EXPECT_FALSE(app.was_auto_launched_with_zero_delay);
EXPECT_EQ(extensions::Manifest::EXTERNAL_POLICY, GetInstalledAppLocation());
}

class KioskUpdateTest : public KioskTest {
public:
KioskUpdateTest() {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,16 +67,6 @@ DeviceLocalAccountPolicyProvider::Create(
POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
POLICY_SOURCE_DEVICE_LOCAL_ACCOUNT_OVERRIDE,
std::make_unique<base::Value>(true), nullptr);
} else if (type == DeviceLocalAccount::TYPE_KIOSK_APP) {
chrome_policy_overrides = std::make_unique<PolicyMap>();

// Temporary allow CRX2.
// See https://crbug.com/960428.
// TODO(crbug.com/740715): remove in M77.
chrome_policy_overrides->Set(key::kExtensionAllowInsecureUpdates,
POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
POLICY_SOURCE_DEVICE_LOCAL_ACCOUNT_OVERRIDE,
std::make_unique<base::Value>(true), nullptr);
}

std::unique_ptr<DeviceLocalAccountPolicyProvider> provider(
Expand Down
10 changes: 4 additions & 6 deletions chrome/browser/extensions/extension_service.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1739,12 +1739,10 @@ bool ExtensionService::OnExternalExtensionFileFound(
installer->set_install_immediately(info.install_immediately);
installer->set_creation_flags(info.creation_flags);

CRXFileInfo file_info(
info.path,
info.crx_location == Manifest::EXTERNAL_POLICY
? GetPolicyVerifierFormat(ExtensionPrefs::Get(profile_)
->InsecureExtensionUpdatesEnabled())
: GetExternalVerifierFormat());
CRXFileInfo file_info(info.path,
info.crx_location == Manifest::EXTERNAL_POLICY
? GetPolicyVerifierFormat()
: GetExternalVerifierFormat());
#if defined(OS_CHROMEOS)
InstallLimiter::Get(profile_)->Add(installer, file_info);
#else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,7 @@ ChromeExtensionDownloaderFactory::CreateForProfile(
content::BrowserContext::GetDefaultStoragePartition(profile)
->GetURLLoaderFactoryForBrowserProcess(),
delegate, content::GetSystemConnector(),
extensions::GetPolicyVerifierFormat(
extensions::ExtensionPrefs::Get(profile)
->InsecureExtensionUpdatesEnabled()),
profile->GetPath());
extensions::GetPolicyVerifierFormat(), profile->GetPath());

// NOTE: It is not obvious why it is OK to pass raw pointers to the token
// service and identity manager here. The logic is as follows:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -463,11 +463,6 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = {
{ key::kComponentUpdatesEnabled,
prefs::kComponentUpdatesEnabled,
base::Value::Type::BOOLEAN },
#if BUILDFLAG(ENABLE_EXTENSIONS)
{ key::kExtensionAllowInsecureUpdates,
extensions::pref_names::kInsecureExtensionUpdatesEnabled,
base::Value::Type::BOOLEAN },
#endif // BUILDFLAG(ENABLE_EXTENSIONS)

#if BUILDFLAG(ENABLE_SPELLCHECK)
{ key::kSpellCheckServiceEnabled,
Expand Down
8 changes: 7 additions & 1 deletion chrome/browser/prefs/browser_prefs.cc
Original file line number Diff line number Diff line change
Expand Up @@ -486,6 +486,9 @@ constexpr char kLocalProfileId[] = "profile.local_profile_id";
#endif

// Deprecated 8/2019
const char kInsecureExtensionUpdatesEnabled[] =
"extension_updates.insecure_extension_updates_enabled";

const char kLastStartupTimestamp[] = "startup_metric.last_startup_timestamp";

// Deprecated 8/2019
Expand Down Expand Up @@ -564,6 +567,8 @@ void RegisterProfilePrefsForMigration(
registry->RegisterIntegerPref(kLocalProfileId, 0);
#endif

registry->RegisterBooleanPref(kInsecureExtensionUpdatesEnabled, false);

registry->RegisterDictionaryPref(kHintLoadedCounts);
}

Expand Down Expand Up @@ -1167,6 +1172,7 @@ void MigrateObsoleteProfilePrefs(Profile* profile) {
profile_prefs->ClearPref(kLocalProfileId);
#endif

// Added 8/2019.
// Added 8/2019
profile_prefs->ClearPref(kInsecureExtensionUpdatesEnabled);
profile_prefs->ClearPref(kHintLoadedCounts);
}
4 changes: 2 additions & 2 deletions chrome/chrome_cleaner/components/component_unpacker.cc
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ bool ComponentUnpacker::Unpack(const base::FilePath& ouput_folder) {
}

bool ComponentUnpacker::Verify() {
return crx_file::Verify(path_, crx_file::VerifierFormat::CRX2_OR_CRX3,
{pk_hash_}, std::vector<uint8_t>(), nullptr,
return crx_file::Verify(path_, crx_file::VerifierFormat::CRX3, {pk_hash_},
std::vector<uint8_t>(), nullptr,
nullptr) == crx_file::VerifierResult::OK_FULL;
}

Expand Down
2 changes: 1 addition & 1 deletion chrome/chrome_cleaner/components/recovery_component.cc
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ namespace {
const char kComponentDownloadUrl[] =
"https://clients2.google.com/service/update2/crx?response=redirect&os=win"
"&arch=x86&installsource=swreporter&x=id%3Dnpdjjkjlcidkjlamlmmdelcjbcpdjocm"
"%26v%3D0.0.0.0%26uc";
"%26v%3D0.0.0.0%26uc&acceptformat=crx3";

// CRX hash. The extension id is: npdjjkjlcidkjlamlmmdelcjbcpdjocm.
const uint8_t kSha2Hash[] = {0xdf, 0x39, 0x9a, 0x9b, 0x28, 0x3a, 0x9b, 0x0c,
Expand Down
2 changes: 1 addition & 1 deletion chrome/test/chromedriver/chrome_launcher.cc
Original file line number Diff line number Diff line change
Expand Up @@ -819,7 +819,7 @@ Status ProcessExtension(const std::string& extension,

if (is_crx_file) {
crx_file::VerifierResult result =
crx_file::Verify(extension_crx, crx_file::VerifierFormat::CRX2_OR_CRX3,
crx_file::Verify(extension_crx, crx_file::VerifierFormat::CRX3,
{} /** required_key_hashes */,
{} /** required_file_hash */, &public_key_base64, &id);
if (result != crx_file::VerifierResult::OK_FULL) {
Expand Down
17 changes: 12 additions & 5 deletions chrome/test/chromedriver/chrome_launcher_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -121,14 +121,21 @@ TEST(ProcessExtensions, SingleExtensionWithBgPage) {
std::string key;
ASSERT_TRUE(manifest_dict->GetString("key", &key));
ASSERT_EQ(
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8qhZthEHjTIA3IYMzi79s2KFepVziY0du"
"JzHcqRUB/YHSGseIUqcYXGazJhDz/"
"4FbRg8ef9fQazL1UbMMGBIf4za1kJ2os2MsRrNXzHslkbtcLVj2VfofhuHJmu+"
"CnKJ77UWamJiNAaQSiclu4duwnEWrkx+g/8ChQfhZzC4jvQIDAQAB",
"MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxbE7gPHcoZQX7Nv1Tpq8Osz3hhC"
"fUPZpMCcsYALXYsICUMdFNPvsq4AsfzcIJN2Qc6C9GwlDgBEYQgC6zD9ULoSnHu3iJem49b"
"yAzBciO5zMCXBKHx3HN63QJBOKXhIZMdpZePx22fnZjfeLA6zOnGoH6F0YXX+uNsU5qgV9l"
"G4je2XwU050l1u1DAcuzrPVcma32rbfXC3mwZjQxgghCqn/hI0/OBcCU37sWBgPci8uk4Wd"
"Ee1frQTN2vpQJ0fJl0SaPGCNmpmJ708n/qwpVvmqK99JPznJoT5dahuZoTyoGl092sbpstY"
"H+nQ/66yDoztwerywl+lRYgMJstLlRUgrTwmaA4klweuctSfSA40+2kMWSOL+myCyziZ7Ec"
"E98ZEGtLaPW5OYxO8r4aQz11q4NyGL/wVDevWHJmprlrjP/zd3GAo6/nwhu+WvdtHlnkGHr"
"OVtOdjUPhL+FCvqaj/sMt3ELgIK5h8nt42xPxf8P/cYV+aRuZCd2hAqiNXOQ6HLU0TIdc2X"
"dnQtotb3/wuPvRFXqU0o0SAeEwGRoOxr6WqkOLuBuvwNtcKc/cCqxWMlcnId5TWX+tPEpUM"
"4Imgbf6jIB2FPpSXQMLHQkag+k95aiXqkpirlhUaBA5yrClFLjw+Ld2yqJfh961yncxF+IB"
"EmivSdNH0cYZBISf8CAwEAAQ==",
key);
ASSERT_EQ(1u, bg_pages.size());
ASSERT_EQ(
"chrome-extension://jijhlkpcmmeckhlgdipjhnchhoabdjae/"
"chrome-extension://ejapkfeonjhabbbnlpmcgholnoicapdb/"
"_generated_background_page.html",
bg_pages[0]);
}
Expand Down
Binary file modified chrome/test/data/chromedriver/diff_key_from_header.crx
Binary file not shown.
Binary file modified chrome/test/data/chromedriver/ext_slow_loader.crx
Binary file not shown.
52 changes: 52 additions & 0 deletions chrome/test/data/chromedriver/ext_slow_loader.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
urWWLLKegrU4WARTuLJ4u6rH+rgu
-----END PRIVATE KEY-----
Binary file modified chrome/test/data/chromedriver/ext_test_1.crx
Binary file not shown.
52 changes: 52 additions & 0 deletions chrome/test/data/chromedriver/ext_test_1.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
BiI50We5G98vHE8T68EOv6Y63iTSMVLbNg==
-----END PRIVATE KEY-----
Binary file modified chrome/test/data/chromedriver/ext_test_2.crx
Binary file not shown.
52 changes: 52 additions & 0 deletions chrome/test/data/chromedriver/ext_test_2.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
aT4Phjsv8TEC8+63UndBw4sjSKf40A==
-----END PRIVATE KEY-----
Binary file modified chrome/test/data/chromedriver/frames_extension.crx
Binary file not shown.
Binary file modified chrome/test/data/chromedriver/no_key_in_manifest.crx
Binary file not shown.
Binary file modified chrome/test/data/chromedriver/same_key_as_header.crx
Binary file not shown.
Binary file not shown.
Binary file not shown.

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading

0 comments on commit afaa292

Please sign in to comment.