blob: c2321c543887fa22eec0c46d0b57c30834b89abb [file] [log] [blame]
// Copyright 2017 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.
// Safe chrome extension unpacker service provided by the utility process
// and exposed by mojo policy to the chrome browser process.
module extensions.mojom;
import "mojo/common/file_path.mojom";
import "mojo/common/string16.mojom";
import "mojo/common/values.mojom";
interface ExtensionUnpacker {
// Unzip |file| into the directory |path|.
Unzip(mojo.common.mojom.FilePath file,
mojo.common.mojom.FilePath path) => (bool success);
// Unpack and sanitize the extension in directory |path|, and return its
// parsed manifest.json file in |manifest|. The supplied |location|, and
// and the |creation_flags| defined by Extension::InitFromValueFlags are
// passed into Extension::Create() when unpacking the extension. Decoded
// image and message catalog data from the extension is written to files
// kDecodedImagesFilename and kDecodedMessageCatalogsFilename in |path|.
// If Unpack() fails for any reason, |error| contains a user-displayable
// explanation of what went wrong.
Unpack(mojo.common.mojom.FilePath path,
string extension_id,
ManifestLocation location,
int32 creation_flags)
=> (mojo.common.mojom.String16 error,
mojo.common.mojom.DictionaryValue? manifest);
enum ManifestLocation;