Prevent revocation of active permissions for components when ExtensionSettings policy updates.

Bug: 746017
Change-Id: Ie5d523be0d14323d6fb0e55eaf19efd196b8e100
Reviewed-on: https://chromium-review.googlesource.com/576514
Reviewed-by: Istiaque Ahmed <[email protected]>
Commit-Queue: Nick Peterson <[email protected]>
Cr-Commit-Position: refs/heads/master@{#487686}
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index 4ed6b413..dc683cdb 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -1910,7 +1910,8 @@
   for (const auto& extension : *all_extensions) {
     if (!settings->IsPermissionSetAllowed(
             extension.get(),
-            extension->permissions_data()->active_permissions())) {
+            extension->permissions_data()->active_permissions()) &&
+        CanBlockExtension(extension.get())) {
       extensions::PermissionsUpdater(profile()).RemovePermissionsUnsafe(
           extension.get(), *settings->GetBlockedPermissions(extension.get()));
     }