// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CONTENT_BROWSER_RENDERER_HOST_STORED_PAGE_H_ #define CONTENT_BROWSER_RENDERER_HOST_STORED_PAGE_H_ #include <set> #include <unordered_map> #include "base/memory/raw_ptr.h" #include "base/memory/safe_ref.h" #include "content/browser/site_instance_group.h" #include "content/public/browser/site_instance.h" #include "third_party/blink/public/mojom/page/page.mojom.h" namespace content { class RenderFrameHostImpl; class RenderFrameProxyHost; class RenderViewHostImpl; // StoredPage contains a page which is not tied to a FrameTree. It holds the // main RenderFrameHost together with RenderViewHosts and main document's // proxies. It's used for storing pages in back/forward cache or when preparing // prerendered pages for activation. It is possible that this class // is constructed with a `RenderViewHostImpl` that may disappear when a // outstanding subframe navigation completes. To make sure the references // of this class to `RenderViewHostImpl` are not stale this class implements // `SiteInstanceGroup::Observer` to monitor their destruction. class StoredPage : public SiteInstanceGroup::Observer { … }; } // namespace content #endif // CONTENT_BROWSER_RENDERER_HOST_STORED_PAGE_H_