// Copyright (c) 2012 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 CHROME_BROWSER_PRERENDER_PRERENDER_CONFIG_H_ #define CHROME_BROWSER_PRERENDER_PRERENDER_CONFIG_H_ #include <string> #include "base/time/time.h" #include "ui/gfx/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 PrerenderLinkManager. size_t max_link_concurrency; // Number of simultaneous prerender pages from link elements allowed per // launching page. Enforced by PrerenderLinkManager. 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 // PrerenderLinkManager. 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; // User agent being used as an override for the WebContents. std::string user_agent_override; // Is the user agent being overridden for this NavigationEntry? bool is_overriding_user_agent; }; } // namespace prerender #endif // CHROME_BROWSER_PRERENDER_PRERENDER_CONFIG_H_