blob: e3b93342eda2c3e2eac1fe4a8023e418a037e9bc [file] [log] [blame]
// 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 CONTENT_PUBLIC_COMMON_FRAME_NAVIGATE_PARAMS_H_
#define CONTENT_PUBLIC_COMMON_FRAME_NAVIGATE_PARAMS_H_
#include <string>
#include <vector>
#include "content/common/content_export.h"
#include "content/public/common/referrer.h"
#include "net/base/host_port_pair.h"
#include "ui/base/page_transition_types.h"
#include "url/gurl.h"
namespace content {
// Struct used by WebContentsObserver.
struct CONTENT_EXPORT FrameNavigateParams {
FrameNavigateParams();
~FrameNavigateParams();
// Page ID of this navigation. The renderer creates a new unique page ID
// anytime a new session history entry is created. This means you'll get new
// page IDs for user actions, and the old page IDs will be reloaded when
// iframes are loaded automatically.
int32 page_id;
// The unique ID of the NavigationEntry for browser-initiated navigations.
// This value was given to the render process in the HistoryNavigationParams
// and is being returned by the renderer without it having any idea what it
// means. If the navigation was renderer-initiated, this value is 0.
int nav_entry_id;
// The item sequence number identifies each stop in the session history. It
// is unique within the renderer process and makes a best effort to be unique
// across browser sessions (using a renderer process timestamp).
int64 item_sequence_number;
// The document sequence number is used to identify cross-document navigations
// in session history. It increments for each new document and is unique in
// the same way as |item_sequence_number|. In-page navigations get a new item
// sequence number but the same document sequence number.
int64 document_sequence_number;
// URL of the page being loaded.
GURL url;
// The base URL for the page's document when the frame was committed. Empty if
// similar to 'url' above. Note that any base element in the page has not been
// parsed yet and is therefore not reflected.
// This is of interest when a MHTML file is loaded, as the base URL has been
// set to original URL of the site the MHTML represents.
GURL base_url;
// URL of the referrer of this load. WebKit generates this based on the
// source of the event that caused the load.
content::Referrer referrer;
// The type of transition.
ui::PageTransition transition;
// Lists the redirects that occurred on the way to the current page. This
// vector has the same format as reported by the WebDataSource in the glue,
// with the current page being the last one in the list (so even when
// there's no redirect, there will be one entry in the list.
std::vector<GURL> redirects;
// Set to false if we want to update the session history but not update
// the browser history. E.g., on unreachable urls.
bool should_update_history;
// See SearchableFormData for a description of these.
GURL searchable_form_url;
std::string searchable_form_encoding;
// Contents MIME type of main frame.
std::string contents_mime_type;
// Remote address of the socket which fetched this resource.
net::HostPortPair socket_address;
};
} // namespace content
#endif // CONTENT_PUBLIC_COMMON_FRAME_NAVIGATE_PARAMS_H_