Moved IS_EPHEMERAL flag to extension prefs
This patch moves the IS_EPHEMERAL flag from the Extension class to
extension prefs. This is because an Extension object is immutable and
this flag needs to be changed after creation to quickly promote a
running ephemeral app to being installed. Otherwise the install must
be delayed until the ephemeral app is closed.
BUG=374018
[email protected]
TEST=All automated tests
Review URL: https://codereview.chromium.org/282103003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272157 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/extensions/browser/extension_util.cc b/extensions/browser/extension_util.cc
new file mode 100644
index 0000000..52e7f5f1
--- /dev/null
+++ b/extensions/browser/extension_util.cc
@@ -0,0 +1,26 @@
+// Copyright 2014 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.
+
+#include "extensions/browser/extension_util.h"
+
+#include "extensions/browser/extension_prefs.h"
+#include "extensions/browser/extension_registry.h"
+
+namespace extensions {
+namespace util {
+
+bool IsExtensionInstalledPermanently(const std::string& extension_id,
+ content::BrowserContext* context) {
+ const Extension* extension = ExtensionRegistry::Get(context)->
+ GetExtensionById(extension_id, ExtensionRegistry::EVERYTHING);
+ return extension && !IsEphemeralApp(extension_id, context);
+}
+
+bool IsEphemeralApp(const std::string& extension_id,
+ content::BrowserContext* context) {
+ return ExtensionPrefs::Get(context)->IsEphemeralApp(extension_id);
+}
+
+} // namespace util
+} // namespace extensions