blob: d9b8b1c0c76962454954c8243fab180da625a515 [file] [log] [blame]
// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_NO_STATE_PREFETCH_BROWSER_PRERENDER_CONFIG_H_
#define COMPONENTS_NO_STATE_PREFETCH_BROWSER_PRERENDER_CONFIG_H_
#include <stddef.h>
#include "base/time/time.h"
#include "ui/gfx/geometry/rect.h"
namespace prerender {
struct Config {
Config();
~Config();
// Maximum memory use for a prerendered page until it is killed.
size_t max_bytes;
// Number of simultaneous prerender pages from link elements allowed. Enforced
// by NoStatePrefetchLinkManager.
size_t max_link_concurrency;
// Number of simultaneous prerender pages from link elements allowed per
// launching page. Enforced by NoStatePrefetchLinkManager.
size_t max_link_concurrency_per_launcher;
// Is rate limiting enabled?
bool rate_limit_enabled;
// The maximum time that a prerender can wait for launch in the
// NoStatePrefetchLinkManager.
base::TimeDelta max_wait_to_launch;
// The default time to live of a newly created prerender. May be shortened to
// abandon_time_to_live, below.
base::TimeDelta time_to_live;
// After a prerender has been abandoned by the user navigating away from the
// source page or otherwise mooting the launcher, how long until the prerender
// should be removed. This exists because a prerendered page is often
// navigated to through a chain of redirects; removing the prerender when the
// link element is removed because of navigation would destroy prerenders just
// before they were going to be used.
base::TimeDelta abandon_time_to_live;
// The default tab bounds used as the prerenderer tab size when the active tab
// cannot be accessed.
gfx::Rect default_tab_bounds;
};
} // namespace prerender
#endif // COMPONENTS_NO_STATE_PREFETCH_BROWSER_PRERENDER_CONFIG_H_