blob: d9850ed87ce88a566080594c460b8d8a8f2fead5 [file] [log] [blame]
// Copyright 2015 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 "third_party/blink/renderer/core/css/parser/css_at_rule_id.h"
#include "third_party/blink/renderer/core/css/parser/css_parser_context.h"
#include "third_party/blink/renderer/core/frame/use_counter.h"
namespace blink {
CSSAtRuleID CssAtRuleID(StringView name) {
if (EqualIgnoringASCIICase(name, "charset"))
return kCSSAtRuleCharset;
if (EqualIgnoringASCIICase(name, "font-face"))
return kCSSAtRuleFontFace;
if (EqualIgnoringASCIICase(name, "font-feature-values"))
return kCSSAtRuleFontFeatureValues;
if (EqualIgnoringASCIICase(name, "import"))
return kCSSAtRuleImport;
if (EqualIgnoringASCIICase(name, "keyframes"))
return kCSSAtRuleKeyframes;
if (EqualIgnoringASCIICase(name, "media"))
return kCSSAtRuleMedia;
if (EqualIgnoringASCIICase(name, "namespace"))
return kCSSAtRuleNamespace;
if (EqualIgnoringASCIICase(name, "page"))
return kCSSAtRulePage;
if (EqualIgnoringASCIICase(name, "supports"))
return kCSSAtRuleSupports;
if (EqualIgnoringASCIICase(name, "viewport"))
return kCSSAtRuleViewport;
if (EqualIgnoringASCIICase(name, "-webkit-keyframes"))
return kCSSAtRuleWebkitKeyframes;
return kCSSAtRuleInvalid;
}
void CountAtRule(const CSSParserContext* context, CSSAtRuleID rule_id) {
WebFeature feature;
switch (rule_id) {
case kCSSAtRuleCharset:
feature = WebFeature::kCSSAtRuleCharset;
break;
case kCSSAtRuleFontFace:
feature = WebFeature::kCSSAtRuleFontFace;
break;
case kCSSAtRuleFontFeatureValues:
feature = WebFeature::kCSSAtRuleFontFeatureValues;
break;
case kCSSAtRuleImport:
feature = WebFeature::kCSSAtRuleImport;
break;
case kCSSAtRuleKeyframes:
feature = WebFeature::kCSSAtRuleKeyframes;
break;
case kCSSAtRuleMedia:
feature = WebFeature::kCSSAtRuleMedia;
break;
case kCSSAtRuleNamespace:
feature = WebFeature::kCSSAtRuleNamespace;
break;
case kCSSAtRulePage:
feature = WebFeature::kCSSAtRulePage;
break;
case kCSSAtRuleSupports:
feature = WebFeature::kCSSAtRuleSupports;
break;
case kCSSAtRuleViewport:
feature = WebFeature::kCSSAtRuleViewport;
break;
case kCSSAtRuleWebkitKeyframes:
feature = WebFeature::kCSSAtRuleWebkitKeyframes;
break;
case kCSSAtRuleInvalid:
// fallthrough
default:
NOTREACHED();
return;
}
context->Count(feature);
}
} // namespace blink