blob: 75e96caf8905d580ecf8f161fc36001de29545d8 [file] [log] [blame]
// Copyright 2016 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.
#ifndef CONTENT_PUBLIC_COMMON_PREVIEWS_STATE_H_
#define CONTENT_PUBLIC_COMMON_PREVIEWS_STATE_H_
#include "content/common/content_export.h"
#include "third_party/blink/public/platform/web_url_request.h"
#define STATIC_ASSERT_PREVIEWS_ENUM(a, b) \
static_assert(static_cast<int>(a) == static_cast<int>(b), \
"mismatching enums: " #a)
namespace content {
typedef int PreviewsState;
// The Previews types which determines whether to request a Preview version of
// the resource. Previews are optimizations that change the format and
// content of web pages to improve data savings and / or performance. This enum
// determines which Previews types to request.
enum PreviewsTypes {
PREVIEWS_UNSPECIFIED = 0, // Let the browser process decide whether or
// not to request Preview types.
SERVER_LOFI_ON = 1 << 0, // Request a Lo-Fi version of the resource
// from the server.
CLIENT_LOFI_ON = 1 << 1, // Request a Lo-Fi version of the resource
// from the client.
CLIENT_LOFI_AUTO_RELOAD = 1 << 2, // Request the original version of the
// resource after a decoding error occurred
// when attempting to use Client Lo-Fi.
SERVER_LITE_PAGE_ON = 1 << 3, // Request a Lite Page version of the
// resource from the server.
PREVIEWS_NO_TRANSFORM = 1 << 4, // Explicitly forbid Previews
// transformations.
PREVIEWS_OFF = 1 << 5, // Request a normal (non-Preview) version of
// the resource. Server transformations may
// still happen if the page is heavy.
NOSCRIPT_ON = 1 << 6, // Request that script be disabled for page load.
RESOURCE_LOADING_HINTS_ON =
1 << 7, // Request that resource loading hints be used during pageload.
OFFLINE_PAGE_ON =
1 << 8, // Request that an offline page be used if one is stored.
LITE_PAGE_REDIRECT_ON = 1 << 9, // Allow the browser to redirect the resource
// to a Lite Page server.
LAZY_IMAGE_LOAD_DEFERRED = 1 << 10, // Request the placeholder version of an
// image that was deferred by lazyload.
PREVIEWS_STATE_LAST = LAZY_IMAGE_LOAD_DEFERRED
};
// Combination of all previews that are guaranteed not to provide partial
// content.
const PreviewsState PARTIAL_CONTENT_SAFE_PREVIEWS = SERVER_LOFI_ON;
// Ensure that content::PreviewsState and blink::WebURLRequest::PreviewsState
// are kept in sync.
STATIC_ASSERT_PREVIEWS_ENUM(PREVIEWS_UNSPECIFIED,
blink::WebURLRequest::kPreviewsUnspecified);
STATIC_ASSERT_PREVIEWS_ENUM(SERVER_LOFI_ON,
blink::WebURLRequest::kServerLoFiOn);
STATIC_ASSERT_PREVIEWS_ENUM(CLIENT_LOFI_ON,
blink::WebURLRequest::kClientLoFiOn);
STATIC_ASSERT_PREVIEWS_ENUM(CLIENT_LOFI_AUTO_RELOAD,
blink::WebURLRequest::kClientLoFiAutoReload);
STATIC_ASSERT_PREVIEWS_ENUM(SERVER_LITE_PAGE_ON,
blink::WebURLRequest::kServerLitePageOn);
STATIC_ASSERT_PREVIEWS_ENUM(PREVIEWS_NO_TRANSFORM,
blink::WebURLRequest::kPreviewsNoTransform);
STATIC_ASSERT_PREVIEWS_ENUM(PREVIEWS_OFF, blink::WebURLRequest::kPreviewsOff);
STATIC_ASSERT_PREVIEWS_ENUM(NOSCRIPT_ON, blink::WebURLRequest::kNoScriptOn);
STATIC_ASSERT_PREVIEWS_ENUM(RESOURCE_LOADING_HINTS_ON,
blink::WebURLRequest::kResourceLoadingHintsOn);
STATIC_ASSERT_PREVIEWS_ENUM(OFFLINE_PAGE_ON,
blink::WebURLRequest::kOfflinePageOn);
STATIC_ASSERT_PREVIEWS_ENUM(LITE_PAGE_REDIRECT_ON,
blink::WebURLRequest::kLitePageRedirectOn);
STATIC_ASSERT_PREVIEWS_ENUM(LAZY_IMAGE_LOAD_DEFERRED,
blink::WebURLRequest::kLazyImageLoadDeferred);
STATIC_ASSERT_PREVIEWS_ENUM(PREVIEWS_STATE_LAST,
blink::WebURLRequest::kPreviewsStateLast);
} // namespace content
#endif // CONTENT_PUBLIC_COMMON_PREVIEWS_STATE_H_