// Copyright 2013 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 IOS_WEB_NAVIGATION_WEB_LOAD_PARAMS_H_ #define IOS_WEB_NAVIGATION_WEB_LOAD_PARAMS_H_ #import #import "base/mac/scoped_nsobject.h" #include "ios/net/request_tracker.h" #include "ios/web/public/referrer.h" #include "ui/base/page_transition_types.h" #include "url/gurl.h" namespace web { // Parameters for creating a tab. Most paramaters are optional, and // can be left at the default values set by the constructor. // TODO(stuartmorgan): Remove the dependency on RequestTracker, then move // this into NavigationManager to parallel NavigationController's // LoadURLParams (which this is modeled after). struct WebLoadParams { public: // The URL to load. Must be set. GURL url; // The referrer for the load. May be empty. Referrer referrer; // The transition type for the load. Defaults to PAGE_TRANSITION_LINK. ui::PageTransition transition_type; // True for renderer-initiated navigations. This is // important for tracking whether to display pending URLs. bool is_renderer_initiated; // The cache mode to load with. Defaults to CACHE_NORMAL. net::RequestTracker::CacheMode cache_mode; // Any extra HTTP headers to add to the load. base::scoped_nsobject extra_headers; // Any post data to send with the load. When setting this, you should // generally set a Content-Type header as well. base::scoped_nsobject post_data; // Create a new WebLoadParams with the given URL and defaults for all other // parameters. explicit WebLoadParams(const GURL& url); ~WebLoadParams(); // Allow copying WebLoadParams. WebLoadParams(const WebLoadParams& other); WebLoadParams& operator=(const WebLoadParams& other); }; } // namespace web #endif // IOS_WEB_NAVIGATION_WEB_LOAD_PARAMS_H_