1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file. 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "chrome/browser/extensions/extension_ui_util.h" 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/prefs/pref_service.h" 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "chrome/browser/profiles/profile.h" 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "chrome/common/extensions/extension_constants.h" 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "chrome/common/pref_names.h" 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "extensions/browser/extension_util.h" 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "extensions/common/constants.h" 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "extensions/common/extension.h" 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace extensions { 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace { 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)bool IsBlockedByPolicy(const Extension* app, content::BrowserContext* context) { 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) Profile* profile = Profile::FromBrowserContext(context); 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DCHECK(profile); 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return (app->id() == extensions::kWebStoreAppId || 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) app->id() == extension_misc::kEnterpriseWebStoreAppId) && 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) profile->GetPrefs()->GetBoolean(prefs::kHideWebStoreIcon); 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace ui_util { 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)bool ShouldDisplayInAppLauncher(const Extension* extension, 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) content::BrowserContext* context) { 34f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) return CanDisplayInAppLauncher(extension, context) && 35f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) !util::IsEphemeralApp(extension->id(), context); 36f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 37f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 38f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)bool CanDisplayInAppLauncher(const Extension* extension, 39f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) content::BrowserContext* context) { 40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return extension->ShouldDisplayInAppLauncher() && 41f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) !IsBlockedByPolicy(extension, context); 42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)bool ShouldDisplayInNewTabPage(const Extension* extension, 45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) content::BrowserContext* context) { 46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return extension->ShouldDisplayInNewTabPage() && 47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) !IsBlockedByPolicy(extension, context) && 48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) !util::IsEphemeralApp(extension->id(), context); 49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)bool ShouldDisplayInExtensionSettings(const Extension* extension, 52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) content::BrowserContext* context) { 53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return extension->ShouldDisplayInExtensionSettings() && 54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) !util::IsEphemeralApp(extension->id(), context); 55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 56cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 57cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)bool ShouldNotBeVisible(const Extension* extension, 58cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) content::BrowserContext* context) { 59cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return extension->ShouldNotBeVisible() || 60cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) util::IsEphemeralApp(extension->id(), context); 61cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 62cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 63cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace ui_util 64cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace extensions 65