blob: 0980cd87d3b7415a53a3225b1610564c034c25d2 [file] [log] [blame]
// Copyright 2016 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.
#ifndef CHROME_BROWSER_EXTENSIONS_INSTALL_GATE_H_
#define CHROME_BROWSER_EXTENSIONS_INSTALL_GATE_H_
namespace extensions {
class Extension;
// An interface that ExtensionService inquires for whether extension installs
// should be delayed and whether to finish/abort delayed installs.
class InstallGate {
public:
// Actions for a pending install.
enum Action {
INSTALL, // Proceed to finish the install.
DELAY, // Delay the install.
ABORT // Abort the install.
};
virtual ~InstallGate() = default;
// Invoked by ExtensionService to check what to do with a pending install of
// the given extension. |extension| is an unpacked new extension to be
// installed. |install_immediately| is the flag associated with the install.
virtual Action ShouldDelay(const Extension* extension,
bool install_immediately) = 0;
};
} // namespace extensions
#endif // CHROME_BROWSER_EXTENSIONS_INSTALL_GATE_H_