#include "third_party/blink/renderer/core/page/frame_tree.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/frame/frame_client.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/local_frame_client.h"
#include "third_party/blink/renderer/core/frame/local_frame_view.h"
#include "third_party/blink/renderer/core/frame/remote_frame.h"
#include "third_party/blink/renderer/core/frame/remote_frame_view.h"
#include "third_party/blink/renderer/core/loader/frame_load_request.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/core/page/create_window.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
namespace blink {
namespace {
const unsigned kInvalidChildCount = …;
}
FrameTree::FrameTree(Frame* this_frame)
: … { … }
FrameTree::~FrameTree() = default;
const AtomicString& FrameTree::GetName() const { … }
void FrameTree::ExperimentalSetNulledName() { … }
void FrameTree::CrossSiteCrossBrowsingContextGroupSetNulledName() { … }
void FrameTree::SetName(const AtomicString& name,
ReplicationPolicy replication) { … }
DISABLE_CFI_PERF
Frame* FrameTree::Parent() const { … }
Frame& FrameTree::Top() const { … }
Frame* FrameTree::NextSibling() const { … }
Frame* FrameTree::FirstChild() const { … }
Frame* FrameTree::ScopedChild(unsigned index) const { … }
Frame* FrameTree::ScopedChild(const AtomicString& name) const { … }
unsigned FrameTree::ScopedChildCount() const { … }
void FrameTree::InvalidateScopedChildCount() { … }
unsigned FrameTree::ChildCount() const { … }
Frame* FrameTree::FindFrameByName(const AtomicString& name) const { … }
FrameTree::FindResult FrameTree::FindOrCreateFrameForNavigation(
FrameLoadRequest& request,
const AtomicString& name) const { … }
Frame* FrameTree::FindFrameForNavigationInternal(
const AtomicString& name,
const KURL& url,
FrameLoadRequest* request) const { … }
bool FrameTree::IsDescendantOf(const Frame* ancestor) const { … }
DISABLE_CFI_PERF
Frame* FrameTree::TraverseNext(const Frame* stay_within) const { … }
void FrameTree::Trace(Visitor* visitor) const { … }
}
#if DCHECK_IS_ON()
static void PrintIndent(int indent) { … }
static void PrintFrames(const blink::Frame* frame,
const blink::Frame* targetFrame,
int indent) { … }
void ShowFrameTree(const blink::Frame* frame) { … }
#endif