| Index: content/renderer/history_controller.h
|
| diff --git a/content/renderer/history_controller.h b/content/renderer/history_controller.h
|
| deleted file mode 100644
|
| index ac522418889ed302cd63f711c09b87c70911b51b..0000000000000000000000000000000000000000
|
| --- a/content/renderer/history_controller.h
|
| +++ /dev/null
|
| @@ -1,172 +0,0 @@
|
| -// Copyright 2014 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.
|
| -
|
| -/*
|
| - * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
|
| - * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved.
|
| - * (http://www.torchmobile.com/)
|
| - *
|
| - * Redistribution and use in source and binary forms, with or without
|
| - * modification, are permitted provided that the following conditions
|
| - * are met:
|
| - *
|
| - * 1. Redistributions of source code must retain the above copyright
|
| - * notice, this list of conditions and the following disclaimer.
|
| - * 2. Redistributions in binary form must reproduce the above copyright
|
| - * notice, this list of conditions and the following disclaimer in the
|
| - * documentation and/or other materials provided with the distribution.
|
| - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
|
| - * its contributors may be used to endorse or promote products derived
|
| - * from this software without specific prior written permission.
|
| - *
|
| - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
|
| - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
| - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
| - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
|
| - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
| - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
| - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
| - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
| - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| - */
|
| -
|
| -#ifndef CONTENT_RENDERER_HISTORY_CONTROLLER_H_
|
| -#define CONTENT_RENDERER_HISTORY_CONTROLLER_H_
|
| -
|
| -#include <memory>
|
| -#include <utility>
|
| -
|
| -#include "base/containers/hash_tables.h"
|
| -#include "base/macros.h"
|
| -#include "content/common/content_export.h"
|
| -#include "content/renderer/history_entry.h"
|
| -#include "third_party/WebKit/public/web/WebHistoryCommitType.h"
|
| -#include "third_party/WebKit/public/web/WebHistoryItem.h"
|
| -
|
| -namespace blink {
|
| -class WebFrame;
|
| -class WebLocalFrame;
|
| -enum class WebCachePolicy;
|
| -}
|
| -
|
| -namespace content {
|
| -class RenderFrameImpl;
|
| -class RenderViewImpl;
|
| -struct NavigationParams;
|
| -
|
| -// A guide to history state in the renderer:
|
| -//
|
| -// HistoryController: Owned by RenderView, is the entry point for interacting
|
| -// with history. Handles most of the operations to modify history state,
|
| -// navigate to an existing back/forward entry, etc.
|
| -//
|
| -// HistoryEntry: Represents a single entry in the back/forward list,
|
| -// encapsulating all frames in the page it represents. It provides access
|
| -// to each frame's state via lookups by frame id or frame name.
|
| -// HistoryNode: Represents a single frame in a HistoryEntry. Owned by a
|
| -// HistoryEntry. HistoryNodes form a tree that mirrors the frame tree in
|
| -// the corresponding page.
|
| -// HistoryNodes represent the structure of the page, but don't hold any
|
| -// per-frame state except a list of child frames.
|
| -// WebHistoryItem (lives in blink): The state for a given frame. Can persist
|
| -// across navigations. WebHistoryItem is reference counted, and each
|
| -// HistoryNode holds a reference to its single corresponding
|
| -// WebHistoryItem. Can be referenced by multiple HistoryNodes and can
|
| -// therefore exist in multiple HistoryEntry instances.
|
| -//
|
| -// Suppose we have the following page, foo.com, which embeds foo.com/a in an
|
| -// iframe:
|
| -//
|
| -// HistoryEntry 0:
|
| -// HistoryNode 0_0 (WebHistoryItem A (url: foo.com))
|
| -// HistoryNode 0_1: (WebHistoryItem B (url: foo.com/a))
|
| -//
|
| -// Now we navigate the top frame to bar.com, which embeds bar.com/b and
|
| -// bar.com/c in iframes, and bar.com/b in turn embeds bar.com/d. We will
|
| -// create a new HistoryEntry with a tree containing 4 new HistoryNodes. The
|
| -// state will be:
|
| -//
|
| -// HistoryEntry 1:
|
| -// HistoryNode 1_0 (WebHistoryItem C (url: bar.com))
|
| -// HistoryNode 1_1: (WebHistoryItem D (url: bar.com/b))
|
| -// HistoryNode 1_3: (WebHistoryItem F (url: bar.com/d))
|
| -// HistoryNode 1_2: (WebHistoryItem E (url: bar.com/c))
|
| -//
|
| -//
|
| -// Finally, we navigate the first subframe from bar.com/b to bar.com/e, which
|
| -// embeds bar.com/f. We will create a new HistoryEntry and new HistoryNode for
|
| -// each frame. Any frame that navigates (bar.com/e and its child, bar.com/f)
|
| -// will receive a new WebHistoryItem. However, 2 frames were not navigated
|
| -// (bar.com and bar.com/c), so those two frames will reuse the existing
|
| -// WebHistoryItem:
|
| -//
|
| -// HistoryEntry 2:
|
| -// HistoryNode 2_0 (WebHistoryItem C (url: bar.com)) *REUSED*
|
| -// HistoryNode 2_1: (WebHistoryItem G (url: bar.com/e))
|
| -// HistoryNode 2_3: (WebHistoryItem H (url: bar.com/f))
|
| -// HistoryNode 2_2: (WebHistoryItem E (url: bar.com/c)) *REUSED*
|
| -//
|
| -class CONTENT_EXPORT HistoryController {
|
| - public:
|
| - explicit HistoryController(RenderViewImpl* render_view);
|
| - ~HistoryController();
|
| -
|
| - void set_provisional_entry(std::unique_ptr<HistoryEntry> entry) {
|
| - provisional_entry_ = std::move(entry);
|
| - }
|
| -
|
| - // Return true if the main frame ended up loading a request as part of the
|
| - // history navigation.
|
| - bool GoToEntry(blink::WebLocalFrame* main_frame,
|
| - std::unique_ptr<HistoryEntry> entry,
|
| - std::unique_ptr<NavigationParams> navigation_params,
|
| - blink::WebCachePolicy cache_policy);
|
| -
|
| - void UpdateForCommit(RenderFrameImpl* frame,
|
| - const blink::WebHistoryItem& item,
|
| - blink::WebHistoryCommitType commit_type,
|
| - bool navigation_within_page);
|
| -
|
| - HistoryEntry* GetCurrentEntry();
|
| - blink::WebHistoryItem GetItemForNewChildFrame(RenderFrameImpl* frame) const;
|
| - void RemoveChildrenForRedirect(RenderFrameImpl* frame);
|
| -
|
| - private:
|
| - typedef std::vector<std::pair<blink::WebFrame*, blink::WebHistoryItem> >
|
| - HistoryFrameLoadVector;
|
| - void RecursiveGoToEntry(blink::WebFrame* frame,
|
| - HistoryFrameLoadVector& sameDocumentLoads,
|
| - HistoryFrameLoadVector& differentDocumentLoads);
|
| -
|
| - void UpdateForInitialLoadInChildFrame(RenderFrameImpl* frame,
|
| - const blink::WebHistoryItem& item);
|
| - void CreateNewBackForwardItem(RenderFrameImpl* frame,
|
| - const blink::WebHistoryItem& item,
|
| - bool clone_children_of_target);
|
| -
|
| - RenderViewImpl* render_view_;
|
| -
|
| - // A HistoryEntry representing the currently-loaded page.
|
| - std::unique_ptr<HistoryEntry> current_entry_;
|
| - // A HistoryEntry representing the page that is being loaded, or an empty
|
| - // scoped_ptr if no page is being loaded.
|
| - std::unique_ptr<HistoryEntry> provisional_entry_;
|
| -
|
| - // The NavigationParams corresponding to the last back/forward load that was
|
| - // initiated by |GoToEntry|. This is kept around so that it can be passed into
|
| - // existing frames affected by a history navigation in GoToEntry(), and can be
|
| - // passed into frames created after the commit that resulted from the
|
| - // navigation in GetItemForNewChildFrame().
|
| - //
|
| - // This is reset in UpdateForCommit if we see a commit from a different
|
| - // navigation, to avoid using stale parameters.
|
| - std::unique_ptr<NavigationParams> navigation_params_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(HistoryController);
|
| -};
|
| -
|
| -} // namespace content
|
| -
|
| -#endif // CONTENT_RENDERER_HISTORY_CONTROLLER_H_
|
|
|