blob: 8c006df122e6b41b42bd83204965f329847dd4e9 [file] [log] [blame]
/*
* Copyright 2010 Google Inc.
*
* Licensed 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.
*/
// Author: pradnya@google.com (Pradnya Karbhari)
// Header file that includes global constants to be used in net/instaweb.
#ifndef NET_INSTAWEB_PUBLIC_GLOBAL_CONSTANTS_H_
#define NET_INSTAWEB_PUBLIC_GLOBAL_CONSTANTS_H_
namespace {
// Time of day used in Chromium when running javascript in deterministic mode
// (with flag --no-js-randomness). We use the same time of day for slurping,
// validation and measurement in order to maintain consistency.
static const double kChromiumTimeOfDay = 1204251968254LL;
const char kModPagespeedHeader[] = "X-Mod-Pagespeed";
const char kPageSpeedHeader[] = "X-Page-Speed";
// String added to all subrequests (with version string).
const char kModPagespeedSubrequestUserAgent[] = "mod_pagespeed";
const char kWPTUserAgentIdentifier[] = "PTST";
// The name of the header used to specify the rewriters that were
// applied to the current request.
const char kPsaRewriterHeader[] = "X-PSA-Rewriter";
// The name of the header that pubilshers can use to send the time when the
// cacheable content on the page was last modified. This is used by
// prioritize_visible_content filter to invalidate its cache.
const char kPsaLastModified[] = "X-PSA-Last-Modified";
// Header whose existence indicates that this is a purge request to
// and external/internal caching layer and hence should not be
// allowed to initiate yet another purge request (which could result in
// an infinite loop).
const char kPsaPurgeRequest[] = "X-PSA-Purge-Request";
// Header used to specify a comma-separated list of optimization-related
// capabilities which are to be supported in the response. For e.g. "ii"
// could mean image inlining is supported. These are used by the
// downstream caching layer to communicate to the pagespeed server,
// the optimizations/capabilties that are going to be factored into
// the cache's fragmentation logic.
const char kPsaCapabilityList[] = "PS-CapabilityList";
// Header used to indicate that this page should be instrumented for beaconing
// back information for critical css or image filters. When
// beacon-dependent-optimizations and downstream caching are both enabled on a
// server, the caching layer should be configured to send a certain percentage
// of the traffic to the backend server with this header specified, so that
// beacon data can be obtained.
const char kPsaShouldBeacon[] = "PS-ShouldBeacon";
// Noscript element that redirects to PageSpeed=noscript. This is applied
// when a filter that inserts custom javascript is enabled.
const char kNoScriptRedirectFormatter[] =
"<noscript><meta HTTP-EQUIV=\"refresh\" content=\"0;url='%s'\" />"
"<style><!--table,div,span,font,p{display:none} --></style>"
"<div style=\"display:block\">Please click <a href=\"%s\">here</a> "
"if you are not redirected within a few seconds.</div></noscript>";
// Link tag to be inserted on noscript redirect so that original URL is
// considered canonical.
const char kLinkRelCanonicalFormatter[] =
"<link rel=\"canonical\" href=\"%s\"/>";
} // namespace
#endif // NET_INSTAWEB_PUBLIC_GLOBAL_CONSTANTS_H_