| Index: extensions/browser/api/web_request/web_request_api_utils.cc
|
| diff --git a/extensions/browser/api/web_request/web_request_api_utils.cc b/extensions/browser/api/web_request/web_request_api_utils.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a19bcd0e770c82ba844d2ddcfae6067df8bdccb4
|
| --- /dev/null
|
| +++ b/extensions/browser/api/web_request/web_request_api_utils.cc
|
| @@ -0,0 +1,73 @@
|
| +// Copyright (c) 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/api/web_request/web_request_api_utils.h"
|
| +
|
| +#include <algorithm>
|
| +
|
| +#include "base/macros.h"
|
| +
|
| +namespace extension_web_request_api_utils {
|
| +
|
| +namespace {
|
| +
|
| +static const char* kResourceTypeStrings[] = {
|
| + "main_frame",
|
| + "sub_frame",
|
| + "stylesheet",
|
| + "script",
|
| + "image",
|
| + "object",
|
| + "xmlhttprequest",
|
| + "other",
|
| + "other",
|
| +};
|
| +
|
| +static ResourceType kResourceTypeValues[] = {
|
| + content::RESOURCE_TYPE_MAIN_FRAME,
|
| + content::RESOURCE_TYPE_SUB_FRAME,
|
| + content::RESOURCE_TYPE_STYLESHEET,
|
| + content::RESOURCE_TYPE_SCRIPT,
|
| + content::RESOURCE_TYPE_IMAGE,
|
| + content::RESOURCE_TYPE_OBJECT,
|
| + content::RESOURCE_TYPE_XHR,
|
| + content::RESOURCE_TYPE_LAST_TYPE, // represents "other"
|
| + // TODO(jochen): We duplicate the last entry, so the array's size is not a
|
| + // power of two. If it is, this triggers a bug in gcc 4.4 in Release builds
|
| + // (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43949). Once we use a version
|
| + // of gcc with this bug fixed, or the array is changed so this duplicate
|
| + // entry is no longer required, this should be removed.
|
| + content::RESOURCE_TYPE_LAST_TYPE,
|
| +};
|
| +
|
| +}
|
| +
|
| +#define ARRAYEND(array) (array + arraysize(array))
|
| +
|
| +bool IsRelevantResourceType(ResourceType type) {
|
| + ResourceType* iter =
|
| + std::find(kResourceTypeValues, ARRAYEND(kResourceTypeValues), type);
|
| + return iter != ARRAYEND(kResourceTypeValues);
|
| +}
|
| +
|
| +const char* ResourceTypeToString(ResourceType type) {
|
| + ResourceType* iter =
|
| + std::find(kResourceTypeValues, ARRAYEND(kResourceTypeValues), type);
|
| + if (iter == ARRAYEND(kResourceTypeValues))
|
| + return "other";
|
| +
|
| + return kResourceTypeStrings[iter - kResourceTypeValues];
|
| +}
|
| +
|
| +bool ParseResourceType(const std::string& type_str,
|
| + ResourceType* type) {
|
| + const char** iter =
|
| + std::find(kResourceTypeStrings, ARRAYEND(kResourceTypeStrings), type_str);
|
| + if (iter == ARRAYEND(kResourceTypeStrings))
|
| + return false;
|
| + *type = kResourceTypeValues[iter - kResourceTypeStrings];
|
| + return true;
|
| +}
|
| +
|
| +} // namespace extension_web_request_api_utils
|
|
|