blob: d0756db9629c63561870a483b197e49bf20ea695 [file] [log] [blame]
// Copyright 2018 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 COMPONENTS_PREVIEWS_CORE_PREVIEWS_LITE_PAGE_REDIRECT_H_
#define COMPONENTS_PREVIEWS_CORE_PREVIEWS_LITE_PAGE_REDIRECT_H_
#include <string>
#include "url/gurl.h"
namespace previews {
// The status of an attempted Lite Page Redirect preview.
enum class ServerLitePageStatus {
// The preview has been attempted yet or we have not received a response from
// the server yet.
kUnknown = 0,
// A preview was committed.
kSuccess = 1,
// The server bypassed the request and the preview was not committed.
kBypass = 2,
// The server redirected to another site. If this is the state at commit,
// the preview was not committed. Before commit, this indicates that we
// attempted the preview and may attempt another one if triggered later in
// the redirect
// chain.
kRedirect = 3,
// The server responded with some error, or didn't respond at all, and the
// original page was loaded.
kFailure = 4,
// This navigation met all triggering criteria, but the configured
// variations indicate that we were in a control group, so the preview was
// not
// triggered or committed.
kControl = 5,
};
// Returns the string representation of |status|.
std::string ServerLitePageStatusToString(ServerLitePageStatus status);
// Returns true if the given |url| has the same domain as the lite page previews
// server.
bool IsLitePageRedirectPreviewDomain(const GURL& url);
// Returns true if the given URL is a Lite Page Preview URL. This does more
// checking than |IsLitePageRedirectPreviewDomain| so be sure to use the right
// one.
bool IsLitePageRedirectPreviewURL(const GURL& url);
// Attempts to extract the original URL from the given Previews URL. Returns
// false if |url| is not a valid Preview URL.
bool ExtractOriginalURLFromLitePageRedirectURL(const GURL& url,
std::string* original_url);
} // namespace previews
#endif // COMPONENTS_PREVIEWS_CORE_PREVIEWS_LITE_PAGE_REDIRECT_H_