diff options
author | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-19 07:12:19 +0000 |
---|---|---|
committer | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-19 07:13:57 +0000 |
commit | 84aa73c4dd94ac0089a164a7f8e8b1571c7a5eb9 (patch) | |
tree | da74dcb7953b68a7511edd6d9c9510d509fa7127 /extensions/browser/suggest_permission_util.cc | |
parent | 5da0a8f618fc614dc7386e943f56980155da852e (diff) | |
download | chromium_src-84aa73c4dd94ac0089a164a7f8e8b1571c7a5eb9.zip chromium_src-84aa73c4dd94ac0089a164a7f8e8b1571c7a5eb9.tar.gz chromium_src-84aa73c4dd94ac0089a164a7f8e8b1571c7a5eb9.tar.bz2 |
Move suggest_permission_util.cc to extensions
BUG=403276
R=benwells@chromium.org
TBR=sky@chromium.org for include fix under geolocation_permission_context_extensions.cc and protected_media_identifier_permission_context.cc
Review URL: https://codereview.chromium.org/486593003
Cr-Commit-Position: refs/heads/master@{#290510}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290510 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'extensions/browser/suggest_permission_util.cc')
-rw-r--r-- | extensions/browser/suggest_permission_util.cc | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/extensions/browser/suggest_permission_util.cc b/extensions/browser/suggest_permission_util.cc new file mode 100644 index 0000000..85bf4ff --- /dev/null +++ b/extensions/browser/suggest_permission_util.cc @@ -0,0 +1,63 @@ +// Copyright (c) 2012 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/suggest_permission_util.h" + +#include "content/public/browser/render_view_host.h" +#include "content/public/common/console_message_level.h" +#include "extensions/common/extension.h" +#include "extensions/common/extension_messages.h" +#include "extensions/common/permissions/permissions_data.h" +#include "extensions/common/permissions/permissions_info.h" + +using content::CONSOLE_MESSAGE_LEVEL_WARNING; +using content::RenderViewHost; + +namespace extensions { + +namespace { + +const char kPermissionsHelpURLForExtensions[] = + "http://developer.chrome.com/extensions/manifest.html#permissions"; +const char kPermissionsHelpURLForApps[] = + "http://developer.chrome.com/apps/declare_permissions.html"; + +void SuggestAPIPermissionInDevToolsConsole(APIPermission::ID permission, + const Extension* extension, + content::RenderViewHost* host) { + if (!extension || !host) + return; + + const APIPermissionInfo* permission_info = + PermissionsInfo::GetInstance()->GetByID(permission); + CHECK(permission_info); + + // Note, intentionally not internationalizing this string, as it is output + // as a log message to developers in the developer tools console. + std::string message = base::StringPrintf( + "Is the '%s' permission appropriate? See %s.", + permission_info->name(), + extension->is_platform_app() ? + kPermissionsHelpURLForApps : kPermissionsHelpURLForExtensions); + + host->Send(new ExtensionMsg_AddMessageToConsole( + host->GetRoutingID(), CONSOLE_MESSAGE_LEVEL_WARNING, message)); +} + +} // namespace + +bool IsExtensionWithPermissionOrSuggestInConsole( + APIPermission::ID permission, + const Extension* extension, + content::RenderViewHost* host) { + if (extension && extension->permissions_data()->HasAPIPermission(permission)) + return true; + + if (extension) + SuggestAPIPermissionInDevToolsConsole(permission, extension, host); + + return false; +} + +} // namespace extensions |