New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 643060 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug

Blocking:
issue 665468



Sign in to add a comment

Failed to open a zip file in Downloads from Files app

Project Member Reported by satorux@chromium.org, Sep 1 2016

Issue description

Chrome Version       : 54.0.2837.0
OS Version: 8737.1.0
URLs (if applicable) :
Other browsers tested:
  Add OK or FAIL after other browsers where you have tested this issue:
     Safari 5:
  Firefox 4.x:
     IE 7/8/9:

What steps will reproduce the problem?
1. Open a zip file in Downloads from Files app

What is the expected result?

The zip file is opened with the built-in Zip Unpacker

What happens instead of that?

The zip file is not opened. Instead it opens an error dialog as shown in the screenshot attached.


Please provide any additional information below. Attach a screenshot if
possible.

UserAgentString: Mozilla/5.0 (X11; CrOS x86_64 8737.1.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2837.0 Safari/537.36



 
Screenshot 2016-09-01 at 14.31.21.png
98.5 KB View Download
I suspected that this shares the same root with  issue 642924 , in which NaCL module load failed.
However, In 54.0.2840.7/8743.5.0 (nyan_big),  issue 642924  reproduced but this didn't reproduce. They seems different issues.
I failed to reproduce on the latest beta on samus either.
FWIW I'm running dev on samus.
Cannot reproduce on latest dev, either.
Spent some time debugging with mtomasz@. Here's our findings:

1) Navigate to chrome:system and expand 'extensions' section. You should see "Zip Unpacker" but on my chromebook in the broken state, we didn't see it likely because the zip unpacker was disabled.

2) On a different chromebook, I was able to open a zip file on the first login, but I no longer was able to open the same zip file from the second login. That's likely because the preferences were synced.

3) In the dev mode, I was able to reproduce this problem so I copied Preferences file [1]. The zip unpacker appeared to be disabled.

4) Don't know why the extension got disabled, but one theory was that I disabled it when new permission dialog is shown for the zip unpacker due to  crbug.com/610290 

5) Solution for now would be reset sync from https://www.google.com/settings/chrome/sync but I'd like to understand why the extension got disabled. Will ask around.
Forgot to paste the relevant piece of the Preferences file.

% cat ~/Preferences| python -m json.tool
...
            "oedeeodfidgoollimchfdnbmhcpnklnd": {
                "ack_external": true,
                "active_permissions": {
                    "api": [
                        "app.window.alwaysOnTop",
                        "fileSystem",
                        "fileSystemProvider",
                        "fileSystem.retainEntries",
                        "notifications",
                        "storage"
                    ],
                    "manifest_permissions": []
                },
                "app_launcher_ordinal": "zzzx",
                "commands": {},
                "content_settings": [],
                "creation_flags": 137,
                "disable_reasons": 1,   <------------------------------------------
                "events": [
                    "app.runtime.onLaunched",
                    "fileSystemProvider.onCloseFileRequested",
                    "fileSystemProvider.onGetMetadataRequested",
                    "fileSystemProvider.onOpenFileRequested",
                    "fileSystemProvider.onReadDirectoryRequested",
                    "fileSystemProvider.onReadFileRequested",
                    "fileSystemProvider.onUnmountRequested",
                    "runtime.onSuspend"
                ],
                "from_bookmark": false,
                "from_webstore": true,
                "granted_permissions": {
                    "api": [
                        "app.window.alwaysOnTop",
                        "fileSystem",
                        "fileSystemProvider",
                        "fileSystem.retainEntries",
                        "notifications",
                        "storage"
                    ],
                    "manifest_permissions": []
                },
                "incognito_content_settings": [],
                "incognito_preferences": {},
                "initial_keybindings_set": true,
                "install_time": "13117271628096597",
                "is_active": false,   <------------------------------------------
                "last_launch_time": "13117271688318216",
                "lastpingday": "13117186799646604",
                "location": 10,
                "manifest": {
                    "app": {
                        "background": {
                            "scripts": [
                                "js/unpacker.js",
                                "js/app.js",
                                "js/background.js",
                                "js/decompressor.js",
                                "js/passphrase-manager.js",
                                "js/request.js",
                                "js/types.js",
                                "js/volume.js"
                            ]
                        }
                    },
                    "current_locale": "en_US",
                    "default_locale": "en",
                    "description": "Open ZIP files in Files app.",
                    "display_in_launcher": false,
                    "file_handlers": {
                        "zip": {
                            "extensions": [
                                "zip"
                            ],
                            "types": [
                                "application/zip"
                            ]
                        }
                    },
                    "file_system_provider_capabilities": {
                        "multipleMounts": true,
                        "source": "file"
                    },
                    "icons": {
                        "128": "icons/icon128.png",
                        "16": "icons/icon16.png",
                        "32": "icons/icon32.png",
                        "64": "icons/icon64.png",
                        "96": "icons/icon96.png"
                    },
                    "key": <snip>,
                    "manifest_version": 2,
                    "minimum_chrome_version": "44.0.2400.0",
                    "name": "ZIP unpacker",
                    "permissions": [
                        "fileSystemProvider",
                        {
                            "fileSystem": [
                                "retainEntries"
                            ]
                        },
                        "notifications",
                        "storage",
                        "alwaysOnTopWindows"
                    ],
                    "update_url": "https://clients2.google.com/service/update2/crx",
                    "version": "0.76"
                },
                "page_ordinal": "t",
                "path": "oedeeodfidgoollimchfdnbmhcpnklnd/0.76_0",
                "preferences": {},
                "regular_only_preferences": {},
                "running": false,
                "state": 0,
                "was_installed_by_default": true,
                "was_installed_by_oem": false
            },
...

Re "disable_reasons": 1 in Preferences, the corresponding enum is likely as follows. If so, 1 means DISABLE_USER_ACTION. I have no idea how I could disable this myself.

https://cs.chromium.org/chromium/src/extensions/common/extension.h?sq=package:chromium&dr=CSs&rcl=1472733616&l=66

  enum DisableReason {
    DISABLE_NONE = 0,
    DISABLE_USER_ACTION = 1 << 0,
    DISABLE_PERMISSIONS_INCREASE = 1 << 1,
    DISABLE_RELOAD = 1 << 2,
    DISABLE_UNSUPPORTED_REQUIREMENT = 1 << 3,
    DISABLE_SIDELOAD_WIPEOUT = 1 << 4,
    DEPRECATED_DISABLE_UNKNOWN_FROM_SYNC = 1 << 5,
    // DISABLE_PERMISSIONS_CONSENT = 1 << 6,  // Deprecated.
    // DISABLE_KNOWN_DISABLED = 1 << 7,  // Deprecated.
    DISABLE_NOT_VERIFIED = 1 << 8,  // Disabled because we could not verify
                                    // the install.
    DISABLE_GREYLIST = 1 << 9,
    DISABLE_CORRUPTED = 1 << 10,
    DISABLE_REMOTE_INSTALL = 1 << 11,
    // DISABLE_INACTIVE_EPHEMERAL_APP = 1 << 12,  // Deprecated.
    DISABLE_EXTERNAL_EXTENSION = 1 << 13,  // External extensions might be
                                           // disabled for user prompting.
    DISABLE_UPDATE_REQUIRED_BY_POLICY = 1 << 14,  // Doesn't meet minimum
                                                  // version requirement.
    DISABLE_CUSTODIAN_APPROVAL_REQUIRED = 1 << 15,  // Supervised user needs
                                                    // approval by custodian.
    DISABLE_REASON_LAST = 1 << 16,  // This should always be the last value
  };



issue 576964 seems to be related. comment in #17 sounds scary.
Cc: mkarkada@chromium.org satorux@chromium.org mtomasz@chromium.org
 Issue 776518  has been merged into this issue.
Blocking: 665468
Cc: weifangsun@chromium.org
Owner: yamaguchi@chromium.org
I think one of the possible hypotheses is a combination of 2 issues:
1. user's profile was set to disable Zip Unpacker extension (like described by satorux)
2. the message of the Files app. for "unknown type" file changes depending on network reachability.

When the profile is set up to disable zip unpacker extension by some reason,
Files app. cannot handle zip file without installing new app.
In such case, Files app. tries to show suggested apps dialog by querying Chrome Web Store.
However, if the internet connection were not available, it will fail to get Web Store access token and fall back to the dialog like seen in the screenshot.

If this is the case, clicking the hyperlink "Web Store" in the link would help you identify if the internet connection is established or not.

We can also emulate this by a different file type:
1. create a file and rename it as "dummy.gz". See "open" button in the toolbar does not appear.
2. Turn any network connection off.
3. double-click the .gz file.
If the internet connection is flaky (hence no suggested apps from Chrome Web Store), then it's possible that the system failed to download the zip unpacker (external component extension) from Chrome Web Store. I'm guessing the system keeps retrying until the zip unpacker is downloaded, but there may be a bug there?

Also, we know that one cause of the issue 1) in comment 11 is that the zip unpacker extension is disabled per the data in Chrome Sync backend, which happened to my account. I wonder if there are other conditions that could cause the same symptom. 

Project Member

Comment 13 by bugdroid1@chromium.org, Oct 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5ed1aece396a2398fda2bfb4546f7c788083b33b

commit 5ed1aece396a2398fda2bfb4546f7c788083b33b
Author: Tatsuhisa Yamaguchi <yamaguchi@chromium.org>
Date: Thu Oct 26 10:18:56 2017

Enable Zip Unpacker extension when it were disabled.

Component extension cannot be disabled or uninstalled by any user
operations, but we got some cases where Zip Unpacker was disabled
in some user's profile.

Bug:  643060 
Test: unit_tests --gtest_filter=ExtensionServiceTest.*
Change-Id: Id27ca4472270d37175dd21b54f070c37b2c6f282
Reviewed-on: https://chromium-review.googlesource.com/737892
Reviewed-by: Finnur Thorarinsson <finnur@chromium.org>
Commit-Queue: Tatsuhisa Yamaguchi <yamaguchi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511780}
[modify] https://crrev.com/5ed1aece396a2398fda2bfb4546f7c788083b33b/chrome/browser/extensions/extension_service.cc
[modify] https://crrev.com/5ed1aece396a2398fda2bfb4546f7c788083b33b/chrome/browser/extensions/extension_service.h
[modify] https://crrev.com/5ed1aece396a2398fda2bfb4546f7c788083b33b/chrome/browser/extensions/extension_service_unittest.cc

Labels: Merge-Request-63 Merge-Request-62
Project Member

Comment 15 by sheriffbot@chromium.org, Oct 30 2017

Labels: -Merge-Request-63 Merge-Review-63 Hotlist-Merge-Review
This bug requires manual review: M63 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), gkihumba@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Merge-Review-63 Merge-Approved-63
I discussed with mtomasz@ and got that the current fix is not enough.
- https://bugs.chromium.org/p/chromium/issues/detail?id=680429
- By our design, status of component extensions should not be synced to and from the cloud.
- However there was a bug that syncs it. So some user may have such data in the cloud.
- Current logic accepts such data from cloud as well.
- So it may re-disable if the user had such data in the cloud, and profile sync happened after the initialization of extension manager. (where I added the fix)
- On the other hand, we don't sync local status of component extensions to cloud. So that part of the data on the cloud will not get "fixed".

So we will add another fix to skip sync of the component extension's status from remote.
Labels: -Merge-Request-62 M-63
Project Member

Comment 19 by sheriffbot@chromium.org, Nov 3 2017

Cc: bhthompson@google.com
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Hotlist-Merge-Review
Project Member

Comment 21 by sheriffbot@chromium.org, Nov 6 2017

This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 22 by bugdroid1@chromium.org, Nov 7 2017

Labels: -merge-approved-63 merge-merged-3239
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/10962b0d5feb4d5f8acdc0196041a7dc23b78dd9

commit 10962b0d5feb4d5f8acdc0196041a7dc23b78dd9
Author: Tatsuhisa Yamaguchi <yamaguchi@chromium.org>
Date: Tue Nov 07 09:21:58 2017

Enable Zip Unpacker extension when it were disabled.

Component extension cannot be disabled or uninstalled by any user
operations, but we got some cases where Zip Unpacker was disabled
in some user's profile.

Bug:  643060 
Test: unit_tests --gtest_filter=ExtensionServiceTest.*
Change-Id: Id27ca4472270d37175dd21b54f070c37b2c6f282
Reviewed-on: https://chromium-review.googlesource.com/737892
Reviewed-by: Finnur Thorarinsson <finnur@chromium.org>
Commit-Queue: Tatsuhisa Yamaguchi <yamaguchi@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#511780}(cherry picked from commit 5ed1aece396a2398fda2bfb4546f7c788083b33b)
Reviewed-on: https://chromium-review.googlesource.com/756242
Reviewed-by: Tatsuhisa Yamaguchi <yamaguchi@chromium.org>
Cr-Commit-Position: refs/branch-heads/3239@{#404}
Cr-Branched-From: adb61db19020ed8ecee5e91b1a0ea4c924ae2988-refs/heads/master@{#508578}
[modify] https://crrev.com/10962b0d5feb4d5f8acdc0196041a7dc23b78dd9/chrome/browser/extensions/extension_service.cc
[modify] https://crrev.com/10962b0d5feb4d5f8acdc0196041a7dc23b78dd9/chrome/browser/extensions/extension_service.h
[modify] https://crrev.com/10962b0d5feb4d5f8acdc0196041a7dc23b78dd9/chrome/browser/extensions/extension_service_unittest.cc

Status: Fixed (was: Assigned)
Re: Comment 17
I have investigated if wrong profile in the cloud can disable client's extension again even after the fix crrev.com/c/737892.
Now I think that it will not happen, as I commented at
https://chromium-review.googlesource.com/c/chromium/src/+/737892/9/chrome/browser/extensions/extension_service.cc#486
So closing this bug.

Sign in to add a comment