blob: 109c6ae6cb2a42c252742cf7ff620ed42d04af1d [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
%{
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
// csp_directive.gp.cc is automatically generated from csp_directive.gperf
#include "base/basictypes.h"
#include "net/instaweb/rewriter/public/csp_directive.h"
#include "pagespeed/kernel/base/string_util.h"
namespace net_instaweb {
%}
%compare-strncmp
%define class-name CspDirectiveMapper
%define lookup-function-name Lookup
%define word-array-name CspDirectiveNameTable
%global-table
%ignore-case
%includes
%language=C++
%readonly-tables
%struct-type
struct CspDirectiveInfo {
const char* name;
CspDirective directive;
};
%%
"child-src", CspDirective::kChildSrc
"connect-src", CspDirective::kConnectSrc
"default-src", CspDirective::kDefaultSrc
"frame-src", CspDirective::kFrameSrc
"img-src", CspDirective::kImgSrc
"script-src", CspDirective::kScriptSrc
"style-src", CspDirective::kStyleSrc
"base-uri", CspDirective::kBaseUri
%%
CspDirective LookupCspDirective(StringPiece name) {
const CspDirectiveInfo* info =
CspDirectiveMapper::Lookup(name.data(), name.size());
return info ? info->directive : CspDirective::kNumSourceListDirectives;
}
} // namespace net_instaweb