blob: 74d9a397b05002ebd60e2134a9a2a2e692443520 [file] [log] [blame]
// Copyright 2015 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.
#include "content/browser/frame_host/frame_navigation_entry.h"
namespace content {
FrameNavigationEntry::FrameNavigationEntry(int frame_tree_node_id)
: frame_tree_node_id_(frame_tree_node_id),
item_sequence_number_(-1),
document_sequence_number_(-1) {
}
FrameNavigationEntry::FrameNavigationEntry(int frame_tree_node_id,
const std::string& frame_unique_name,
int64 item_sequence_number,
int64 document_sequence_number,
SiteInstanceImpl* site_instance,
const GURL& url,
const Referrer& referrer)
: frame_tree_node_id_(frame_tree_node_id),
frame_unique_name_(frame_unique_name),
item_sequence_number_(item_sequence_number),
document_sequence_number_(document_sequence_number),
site_instance_(site_instance),
url_(url),
referrer_(referrer) {
}
FrameNavigationEntry::~FrameNavigationEntry() {
}
FrameNavigationEntry* FrameNavigationEntry::Clone() const {
FrameNavigationEntry* copy = new FrameNavigationEntry(frame_tree_node_id_);
copy->UpdateEntry(frame_unique_name_, item_sequence_number_,
document_sequence_number_, site_instance_.get(), url_,
referrer_, page_state_);
return copy;
}
void FrameNavigationEntry::UpdateEntry(const std::string& frame_unique_name,
int64 item_sequence_number,
int64 document_sequence_number,
SiteInstanceImpl* site_instance,
const GURL& url,
const Referrer& referrer,
const PageState& page_state) {
frame_unique_name_ = frame_unique_name;
item_sequence_number_ = item_sequence_number;
document_sequence_number_ = document_sequence_number;
site_instance_ = site_instance;
url_ = url;
referrer_ = referrer;
page_state_ = page_state;
}
void FrameNavigationEntry::set_item_sequence_number(
int64 item_sequence_number) {
// Once assigned, the item sequence number shouldn't change.
DCHECK(item_sequence_number_ == -1 ||
item_sequence_number_ == item_sequence_number);
item_sequence_number_ = item_sequence_number;
}
void FrameNavigationEntry::set_document_sequence_number(
int64 document_sequence_number) {
// Once assigned, the document sequence number shouldn't change.
DCHECK(document_sequence_number_ == -1 ||
document_sequence_number_ == document_sequence_number);
document_sequence_number_ = document_sequence_number;
}
} // namespace content