#include "content/test/web_contents_observer_consistency_checker.h"
#include <vector>
#include "base/containers/contains.h"
#include "base/memory/ptr_util.h"
#include "base/pending_task.h"
#include "base/strings/stringprintf.h"
#include "base/task/common/task_annotator.h"
#include "build/build_config.h"
#include "content/browser/renderer_host/frame_tree.h"
#include "content/browser/renderer_host/frame_tree_node.h"
#include "content/browser/renderer_host/navigation_entry_impl.h"
#include "content/browser/renderer_host/page_impl.h"
#include "content/browser/renderer_host/render_frame_host_impl.h"
#include "content/common/content_navigation_policy.h"
#include "content/public/browser/navigation_handle.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_widget_host.h"
#include "content/public/browser/site_instance.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/test/test_utils.h"
#include "net/base/net_errors.h"
#include "third_party/blink/public/common/frame/frame_owner_element_type.h"
namespace content {
namespace {
const char kWebContentsObserverConsistencyCheckerKey[] = …;
LifecycleStateImpl;
GlobalRoutingID GetRoutingPair(RenderFrameHost* host) { … }
}
void WebContentsObserverConsistencyChecker::Enable(WebContents* web_contents) { … }
void WebContentsObserverConsistencyChecker::RenderFrameCreated(
RenderFrameHost* render_frame_host) { … }
void WebContentsObserverConsistencyChecker::RenderFrameDeleted(
RenderFrameHost* render_frame_host) { … }
void WebContentsObserverConsistencyChecker::RenderFrameHostChanged(
RenderFrameHost* old_host,
RenderFrameHost* new_host) { … }
void WebContentsObserverConsistencyChecker::FrameDeleted(
int frame_tree_node_id) { … }
void WebContentsObserverConsistencyChecker::DidStartNavigation(
NavigationHandle* navigation_handle) { … }
void WebContentsObserverConsistencyChecker::DidRedirectNavigation(
NavigationHandle* navigation_handle) { … }
void WebContentsObserverConsistencyChecker::ReadyToCommitNavigation(
NavigationHandle* navigation_handle) { … }
void WebContentsObserverConsistencyChecker::PrimaryPageChanged(Page& page) { … }
void WebContentsObserverConsistencyChecker::DidFinishNavigation(
NavigationHandle* navigation_handle) { … }
void WebContentsObserverConsistencyChecker::
PrimaryMainDocumentElementAvailable() { … }
void WebContentsObserverConsistencyChecker::
DocumentOnLoadCompletedInPrimaryMainFrame() { … }
void WebContentsObserverConsistencyChecker::DOMContentLoaded(
RenderFrameHost* render_frame_host) { … }
void WebContentsObserverConsistencyChecker::DidFinishLoad(
RenderFrameHost* render_frame_host,
const GURL& validated_url) { … }
void WebContentsObserverConsistencyChecker::DidFailLoad(
RenderFrameHost* render_frame_host,
const GURL& validated_url,
int error_code) { … }
void WebContentsObserverConsistencyChecker::DidOpenRequestedURL(
WebContents* new_contents,
RenderFrameHost* source_render_frame_host,
const GURL& url,
const Referrer& referrer,
WindowOpenDisposition disposition,
ui::PageTransition transition,
bool started_from_context_menu,
bool renderer_initiated) { … }
void WebContentsObserverConsistencyChecker::MediaStartedPlaying(
const MediaPlayerInfo& media_info,
const MediaPlayerId& id) { … }
void WebContentsObserverConsistencyChecker::MediaStoppedPlaying(
const MediaPlayerInfo& media_info,
const MediaPlayerId& id,
WebContentsObserver::MediaStoppedReason reason) { … }
bool WebContentsObserverConsistencyChecker::OnMessageReceived(
const IPC::Message& message,
RenderFrameHost* render_frame_host) { … }
void WebContentsObserverConsistencyChecker::WebContentsDestroyed() { … }
void WebContentsObserverConsistencyChecker::DidStartLoading() { … }
void WebContentsObserverConsistencyChecker::DidStopLoading() { … }
WebContentsObserverConsistencyChecker::WebContentsObserverConsistencyChecker(
WebContents* web_contents)
: … { … }
WebContentsObserverConsistencyChecker::
~WebContentsObserverConsistencyChecker() { … }
void WebContentsObserverConsistencyChecker::AssertRenderFrameExists(
RenderFrameHost* render_frame_host) { … }
void WebContentsObserverConsistencyChecker::AssertMainFrameExists() { … }
std::string WebContentsObserverConsistencyChecker::Format(
RenderFrameHost* render_frame_host) { … }
bool WebContentsObserverConsistencyChecker::NavigationIsOngoing(
NavigationHandle* navigation_handle) { … }
void WebContentsObserverConsistencyChecker::EnsureStableParentValue(
RenderFrameHost* render_frame_host) { … }
bool WebContentsObserverConsistencyChecker::HasAnyChildren(
RenderFrameHost* parent) { … }
class WebContentsObserverConsistencyChecker::TestInputEventObserver
: public RenderWidgetHost::InputEventObserver { … };
void WebContentsObserverConsistencyChecker::AddInputEventObserver(
RenderFrameHost* render_frame_host) { … }
void WebContentsObserverConsistencyChecker::RemoveInputEventObserver(
RenderFrameHost* render_frame_host) { … }
WebContentsObserverConsistencyChecker::TaskChecker::TaskChecker()
: … { … }
void WebContentsObserverConsistencyChecker::TaskChecker::BindCurrentTask() { … }
bool WebContentsObserverConsistencyChecker::TaskChecker::IsRunningInSameTask() { … }
std::optional<int> WebContentsObserverConsistencyChecker::TaskChecker::
GetSequenceNumberOfCurrentTask() { … }
}