0

Use an opaque type for FrameTreeNode IDs, part 10

content/public/test, content/test and content/web_test

Bug: 361344235
Change-Id: I373be4b5251ef29c625b3030644d956c5a4581a9
Include-Ci-Only-Tests: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5837703
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Reviewed-by: Charlie Reis <creis@chromium.org>
Auto-Submit: Avi Drissman <avi@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1351799}
This commit is contained in:
Avi Drissman
2024-09-06 00:18:21 +00:00
committed by Chromium LUCI CQ
parent ef92fffa70
commit 5ab949e1f9
19 changed files with 36 additions and 34 deletions

@ -363,7 +363,7 @@ class StorageHandler::SharedStorageObserver
void OnSharedStorageAccessed(
const base::Time& access_time,
AccessType type,
int main_frame_id,
FrameTreeNodeId main_frame_id,
const std::string& owner_origin,
const SharedStorageEventParams& params) override {
DCHECK_CURRENTLY_ON(BrowserThread::UI);

@ -612,7 +612,7 @@ class TestSharedStorageObserver
void OnSharedStorageAccessed(
const base::Time& access_time,
AccessType type,
int main_frame_id,
FrameTreeNodeId main_frame_id,
const std::string& owner_origin,
const SharedStorageEventParams& params) override {
accesses_.emplace_back(type, main_frame_id, owner_origin, params);

@ -66,7 +66,7 @@ class CONTENT_EXPORT SharedStorageWorkletHostManager {
virtual void OnSharedStorageAccessed(
const base::Time& access_time,
AccessType type,
int main_frame_id,
FrameTreeNodeId main_frame_id,
const std::string& owner_origin,
const SharedStorageEventParams& params) = 0;

@ -3126,7 +3126,7 @@ class FrameDeletedObserver::FrameTreeNodeObserverImpl
bool IsDestroyed() const { return owner_ == nullptr; }
int frame_tree_node_id() const { return frame_tree_node_id_; }
FrameTreeNodeId frame_tree_node_id() const { return frame_tree_node_id_; }
private:
// FrameTreeNode::Observer:
@ -3137,7 +3137,7 @@ class FrameDeletedObserver::FrameTreeNodeObserverImpl
}
}
const int frame_tree_node_id_;
const content::FrameTreeNodeId frame_tree_node_id_;
raw_ptr<FrameTreeNode> owner_;
base::RunLoop run_loop_;
};
@ -3156,7 +3156,7 @@ bool FrameDeletedObserver::IsDeleted() const {
return impl_->IsDestroyed();
}
int FrameDeletedObserver::GetFrameTreeNodeId() const {
content::FrameTreeNodeId FrameDeletedObserver::GetFrameTreeNodeId() const {
return impl_->frame_tree_node_id();
}

@ -1678,7 +1678,7 @@ class FrameDeletedObserver {
bool IsDeleted() const;
int GetFrameTreeNodeId() const;
FrameTreeNodeId GetFrameTreeNodeId() const;
private:
// Private impl struct which hides non public types including FrameTreeNode.

@ -44,7 +44,7 @@ class NavigationHandleObserver : public WebContentsObserver {
bool is_renderer_initiated() { return is_renderer_initiated_; }
bool is_same_document() { return is_same_document_; }
bool was_redirected() { return was_redirected_; }
int frame_tree_node_id() { return frame_tree_node_id_; }
FrameTreeNodeId frame_tree_node_id() { return frame_tree_node_id_; }
const GURL& last_committed_url() { return last_committed_url_; }
ui::PageTransition page_transition() { return page_transition_; }
net::Error net_error_code() { return net_error_code_; }
@ -78,7 +78,7 @@ class NavigationHandleObserver : public WebContentsObserver {
bool is_renderer_initiated_ = true;
bool is_same_document_ = false;
bool was_redirected_ = false;
int frame_tree_node_id_ = RenderFrameHost::kNoFrameTreeNodeId;
FrameTreeNodeId frame_tree_node_id_;
ui::PageTransition page_transition_ = ui::PAGE_TRANSITION_LINK;
GURL expected_start_url_;
GURL last_committed_url_;

@ -52,7 +52,7 @@ class TestFrameNavigationObserver : public WebContentsObserver {
void DidStopLoading() override;
// The id of the FrameTreeNode in which navigations are peformed.
int frame_tree_node_id_;
FrameTreeNodeId frame_tree_node_id_;
// If true the navigation has started.
bool navigation_started_ = false;

@ -186,7 +186,7 @@ class WebContentsTester {
// Starts prerendering a page with |url|, and returns the root frame tree node
// id of the page. The page has a pending navigation in the root frame tree
// node when this method returns.
virtual int AddPrerender(const GURL& url) = 0;
virtual FrameTreeNodeId AddPrerender(const GURL& url) = 0;
// Starts prerendering a page, simulates a navigation to |url| in the main
// frame and returns the main frame of the page after the navigation is
// complete.

@ -587,7 +587,7 @@ void FileChooserDelegate::RunFileChooser(
}
FrameTestNavigationManager::FrameTestNavigationManager(
int filtering_frame_tree_node_id,
FrameTreeNodeId filtering_frame_tree_node_id,
WebContents* web_contents,
const GURL& url)
: TestNavigationManager(web_contents, url),

@ -253,7 +253,7 @@ class FileChooserDelegate : public WebContentsDelegate {
// the given frame tree node.
class FrameTestNavigationManager : public TestNavigationManager {
public:
FrameTestNavigationManager(int frame_tree_node_id,
FrameTestNavigationManager(FrameTreeNodeId frame_tree_node_id,
WebContents* web_contents,
const GURL& url);
@ -266,7 +266,7 @@ class FrameTestNavigationManager : public TestNavigationManager {
bool ShouldMonitorNavigation(NavigationHandle* handle) override;
// Notifications are filtered so only this frame is monitored.
int filtering_frame_tree_node_id_;
FrameTreeNodeId filtering_frame_tree_node_id_;
};
// An observer that can wait for a specific URL to be committed in a specific
@ -287,7 +287,7 @@ class UrlCommitObserver : WebContentsObserver {
void DidFinishNavigation(NavigationHandle* navigation_handle) override;
// The id of the FrameTreeNode in which navigations are peformed.
int frame_tree_node_id_;
FrameTreeNodeId frame_tree_node_id_;
// The URL this observer is expecting to be committed.
GURL url_;
@ -587,7 +587,7 @@ class FrameNavigateParamsCapturer : public WebContentsObserver {
// The id of the FrameTreeNode whose navigations to observe. If this is not
// set, then this FrameNavigateParamsCapturer observes all navigations that
// happen in the observed WebContents.
std::optional<int> frame_tree_node_id_;
std::optional<FrameTreeNodeId> frame_tree_node_id_;
// How many navigations remain to capture.
int navigations_remaining_ = 1;

@ -22,7 +22,7 @@ namespace content {
using SharedStorageReportingMap = base::flat_map<std::string, ::GURL>;
FrameTreeNode* GetFencedFrameRootNode(FrameTreeNode* node) {
int inner_node_id =
FrameTreeNodeId inner_node_id =
node->current_frame_host()->inner_tree_main_frame_tree_node_id();
return FrameTreeNode::GloballyFindByID(inner_node_id);
}

@ -93,10 +93,11 @@ int64_t g_unique_identifier = 0;
FrameTreeNode* GetFrameTreeNodeForPendingEntry(
NavigationControllerImpl& controller) {
NavigationEntryImpl* pending_entry = controller.GetPendingEntry();
int frame_tree_node_id = pending_entry->frame_tree_node_id();
FrameTreeNodeId frame_tree_node_id = pending_entry->frame_tree_node_id();
FrameTree& frame_tree = controller.frame_tree();
if (frame_tree_node_id == FrameTreeNode::kFrameTreeNodeInvalidId)
if (frame_tree_node_id.is_null()) {
return frame_tree.root();
}
return frame_tree.FindByID(frame_tree_node_id);
}

@ -19,7 +19,7 @@ TestSelectURLFencedFrameConfigObserverImpl::
void TestSelectURLFencedFrameConfigObserverImpl::OnSharedStorageAccessed(
const base::Time& access_time,
AccessType type,
int main_frame_id,
FrameTreeNodeId main_frame_id,
const std::string& owner_origin,
const SharedStorageEventParams& params) {}

@ -20,7 +20,7 @@ class TestSelectURLFencedFrameConfigObserverImpl
void OnSharedStorageAccessed(const base::Time& access_time,
AccessType type,
int main_frame_id,
FrameTreeNodeId main_frame_id,
const std::string& owner_origin,
const SharedStorageEventParams& params) override;
void OnUrnUuidGenerated(const GURL& urn_uuid) override;

@ -451,7 +451,7 @@ TestWebContents::GetPictureInPictureOptions() const {
return WebContentsImpl::GetPictureInPictureOptions();
}
int TestWebContents::AddPrerender(const GURL& url) {
FrameTreeNodeId TestWebContents::AddPrerender(const GURL& url) {
DCHECK(!base::FeatureList::IsEnabled(
blink::features::kPrerender2MemoryControls));
@ -472,8 +472,8 @@ int TestWebContents::AddPrerender(const GURL& url) {
TestRenderFrameHost* TestWebContents::AddPrerenderAndCommitNavigation(
const GURL& url) {
int host_id = AddPrerender(url);
DCHECK_NE(RenderFrameHost::kNoFrameTreeNodeId, host_id);
FrameTreeNodeId host_id = AddPrerender(url);
DCHECK(host_id);
PrerenderHost* host =
GetPrerenderHostRegistry()->FindNonReservedHostById(host_id);
@ -489,8 +489,8 @@ TestRenderFrameHost* TestWebContents::AddPrerenderAndCommitNavigation(
std::unique_ptr<NavigationSimulator>
TestWebContents::AddPrerenderAndStartNavigation(const GURL& url) {
int host_id = AddPrerender(url);
DCHECK_NE(RenderFrameHost::kNoFrameTreeNodeId, host_id);
FrameTreeNodeId host_id = AddPrerender(url);
DCHECK(host_id);
PrerenderHost* host =
GetPrerenderHostRegistry()->FindNonReservedHostById(host_id);
@ -505,7 +505,7 @@ void TestWebContents::ActivatePrerenderedPage(const GURL& url) {
PrerenderHostRegistry* registry = GetPrerenderHostRegistry();
PrerenderHost* prerender_host = registry->FindHostByUrlForTesting(url);
DCHECK(prerender_host);
int prerender_host_id = prerender_host->frame_tree_node_id();
FrameTreeNodeId prerender_host_id = prerender_host->frame_tree_node_id();
// Activate the prerendered page.
test::PrerenderHostObserver prerender_host_observer(*this, prerender_host_id);
@ -529,7 +529,7 @@ void TestWebContents::ActivatePrerenderedPageFromAddressBar(const GURL& url) {
PrerenderHostRegistry* registry = GetPrerenderHostRegistry();
PrerenderHost* prerender_host = registry->FindHostByUrlForTesting(url);
DCHECK(prerender_host);
int prerender_host_id = prerender_host->frame_tree_node_id();
FrameTreeNodeId prerender_host_id = prerender_host->frame_tree_node_id();
// Activate the prerendered page by navigation initiated by the address bar.
test::PrerenderHostObserver prerender_host_observer(*this, prerender_host_id);

@ -158,7 +158,7 @@ class TestWebContents : public WebContentsImpl, public WebContentsTester {
TestRenderFrameHost* GetSpeculativePrimaryMainFrame();
int AddPrerender(const GURL& url) override;
FrameTreeNodeId AddPrerender(const GURL& url) override;
TestRenderFrameHost* AddPrerenderAndCommitNavigation(
const GURL& url) override;
std::unique_ptr<NavigationSimulator> AddPrerenderAndStartNavigation(

@ -136,7 +136,7 @@ class WebContentsObserverConsistencyChecker
// Remembers parents to make sure RenderFrameHost::GetParent() never changes.
std::map<GlobalRoutingID, GlobalRoutingID> parent_ids_;
std::set<int> frame_tree_node_ids_;
std::set<FrameTreeNodeId> frame_tree_node_ids_;
bool is_loading_;

@ -1346,8 +1346,9 @@ void WebTestControlHost::OnTestFinished() {
barrier_closure);
}
void WebTestControlHost::OnDumpFrameLayoutResponse(int frame_tree_node_id,
const std::string& dump) {
void WebTestControlHost::OnDumpFrameLayoutResponse(
FrameTreeNodeId frame_tree_node_id,
const std::string& dump) {
// Store the result.
auto pair = frame_to_layout_dump_map_.emplace(frame_tree_node_id, dump);
bool insertion_took_place = pair.second;

@ -293,7 +293,7 @@ class WebTestControlHost : public WebContentsObserver,
void OnAudioDump(const std::vector<unsigned char>& audio_dump);
void OnImageDump(const std::string& actual_pixel_hash, const SkBitmap& image);
void OnTextDump(const std::string& dump);
void OnDumpFrameLayoutResponse(int frame_tree_node_id,
void OnDumpFrameLayoutResponse(FrameTreeNodeId frame_tree_node_id,
const std::string& dump);
void OnTestFinished();
void OnCaptureSessionHistory();
@ -435,7 +435,7 @@ class WebTestControlHost : public WebContentsObserver,
// Map from frame_tree_node_id into frame-specific dumps while collecting
// text dumps from all frames, before stitching them together.
std::map<int, std::string> frame_to_layout_dump_map_;
std::map<FrameTreeNodeId, std::string> frame_to_layout_dump_map_;
std::vector<std::unique_ptr<Node>> composite_all_frames_node_storage_;
std::queue<raw_ptr<Node, CtnExperimental>> composite_all_frames_node_queue_;