diff options
author | khorimoto@chromium.org <khorimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-10 23:26:32 +0000 |
---|---|---|
committer | khorimoto@chromium.org <khorimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-10 23:26:32 +0000 |
commit | 73cc9f95a698f1633e2e785fbb225f38facd016f (patch) | |
tree | bf16ee18744b741ab6d372c370a46349044c9683 /chrome/browser/extensions/requirements_checker.cc | |
parent | 90848a5e02eb6c273292673819cca6854c5f2966 (diff) | |
download | chromium_src-73cc9f95a698f1633e2e785fbb225f38facd016f.zip chromium_src-73cc9f95a698f1633e2e785fbb225f38facd016f.tar.gz chromium_src-73cc9f95a698f1633e2e785fbb225f38facd016f.tar.bz2 |
Revert 155861 - Enforce the 'requirements' field in manifests.
Implemented for the "plugins" and "3d" options.
BUG=133027, 130405
Review URL: https://chromiumcodereview.appspot.com/10689097
TBR=eaugusti@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10916220
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155862 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/requirements_checker.cc')
-rw-r--r-- | chrome/browser/extensions/requirements_checker.cc | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/chrome/browser/extensions/requirements_checker.cc b/chrome/browser/extensions/requirements_checker.cc deleted file mode 100644 index 516f5b0..0000000 --- a/chrome/browser/extensions/requirements_checker.cc +++ /dev/null @@ -1,98 +0,0 @@ -// 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 "chrome/browser/extensions/requirements_checker.h" - -#include "base/bind.h" -#include "base/utf_string_conversions.h" -#include "chrome/browser/gpu_feature_checker.h" -#include "chrome/common/extensions/extension_manifest_constants.h" -#include "chrome/common/extensions/extension.h" -#include "chrome/common/extensions/manifest.h" -#include "content/public/browser/browser_thread.h" -#include "content/public/common/gpu_feature_type.h" -#include "grit/generated_resources.h" -#include "ui/base/l10n/l10n_util.h" - -namespace extensions { - -RequirementsChecker::RequirementsChecker() - : pending_requirement_checks_(0) { -} - -RequirementsChecker::~RequirementsChecker() { -} - -void RequirementsChecker::Check(scoped_refptr<const Extension> extension, - base::Callback<void(std::vector<std::string> errors)> callback) { - DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); - - callback_ = callback; - const Extension::Requirements& requirements = extension->requirements(); - - if (requirements.npapi) { -#if defined(OS_CHROMEOS) - errors_.push_back( - l10n_util::GetStringUTF8(IDS_EXTENSION_NPAPI_NOT_SUPPORTED)); -#endif // defined(OS_CHROMEOS) - } - - if (requirements.webgl) { - ++pending_requirement_checks_; - webgl_checker_ = new GPUFeatureChecker( - content::GPU_FEATURE_TYPE_WEBGL, - base::Bind(&RequirementsChecker::SetWebGLAvailability, - AsWeakPtr())); - } - - if (requirements.css3d) { - ++pending_requirement_checks_; - css3d_checker_ = new GPUFeatureChecker( - content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING, - base::Bind(&RequirementsChecker::SetCSS3DAvailability, - AsWeakPtr())); - } - - if (pending_requirement_checks_ == 0) { - content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE, - base::Bind(callback_, errors_)); - // Reset the callback so any ref-counted bound parameters will get released. - callback_.Reset(); - return; - } - // Running the GPU checkers down here removes any race condition that arises - // from the use of pending_requirement_checks_. - if (webgl_checker_.get()) - webgl_checker_->CheckGPUFeatureAvailability(); - if (css3d_checker_.get()) - css3d_checker_->CheckGPUFeatureAvailability(); -} - -void RequirementsChecker::SetWebGLAvailability(bool available) { - if (!available) { - errors_.push_back( - l10n_util::GetStringUTF8(IDS_EXTENSION_WEBGL_NOT_SUPPORTED)); - } - MaybeRunCallback(); -} - -void RequirementsChecker::SetCSS3DAvailability(bool available) { - if (!available) { - errors_.push_back( - l10n_util::GetStringUTF8(IDS_EXTENSION_CSS3D_NOT_SUPPORTED)); - } - MaybeRunCallback(); -} - -void RequirementsChecker::MaybeRunCallback() { - if (--pending_requirement_checks_ == 0) { - content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE, - base::Bind(callback_, errors_)); - // Reset the callback so any ref-counted bound parameters will get released. - callback_.Reset(); - errors_.clear(); - } -} - -} // namespace extensions |