// 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/renderer/navigation_state.h" #include "content/renderer/internal_document_state_data.h" namespace content { NavigationState::~NavigationState() { RunCommitNavigationCallback(blink::mojom::CommitResult::Aborted); } // static std::unique_ptr NavigationState::CreateBrowserInitiated( const CommonNavigationParams& common_params, const RequestNavigationParams& request_params, base::TimeTicks time_commit_requested, mojom::FrameNavigationControl::CommitNavigationCallback callback) { return base::WrapUnique(new NavigationState(common_params, request_params, time_commit_requested, false, std::move(callback))); } // static std::unique_ptr NavigationState::CreateContentInitiated() { return base::WrapUnique(new NavigationState( CommonNavigationParams(), RequestNavigationParams(), base::TimeTicks(), true, content::mojom::FrameNavigationControl::CommitNavigationCallback())); } // static NavigationState* NavigationState::FromDocumentLoader( blink::WebDocumentLoader* document_loader) { return InternalDocumentStateData::FromDocumentLoader(document_loader) ->navigation_state(); } bool NavigationState::WasWithinSameDocument() { return was_within_same_document_; } bool NavigationState::IsContentInitiated() { return is_content_initiated_; } void NavigationState::RunCommitNavigationCallback( blink::mojom::CommitResult result) { if (commit_callback_) std::move(commit_callback_).Run(result); } NavigationState::NavigationState( const CommonNavigationParams& common_params, const RequestNavigationParams& request_params, base::TimeTicks time_commit_requested, bool is_content_initiated, mojom::FrameNavigationControl::CommitNavigationCallback callback) : request_committed_(false), was_within_same_document_(false), is_content_initiated_(is_content_initiated), common_params_(common_params), request_params_(request_params), time_commit_requested_(time_commit_requested), navigation_client_(nullptr), commit_callback_(std::move(callback)) {} } // namespace content