@@ -47,12 +47,20 @@ bool IsAllowContentSettingFromIO(net::URLRequest* request,
47
47
return setting != CONTENT_SETTING_BLOCK;
48
48
}
49
49
50
- void GetRenderFrameIdAndProcessId (URLRequest* request,
50
+ void GetRenderFrameInfo (URLRequest* request,
51
51
int * render_frame_id,
52
- int * render_process_id) {
52
+ int * render_process_id,
53
+ int * frame_tree_node_id) {
53
54
DCHECK_CURRENTLY_ON (BrowserThread::IO);
54
55
*render_frame_id = -1 ;
55
56
*render_process_id = -1 ;
57
+ *frame_tree_node_id = -1 ;
58
+
59
+ // PlzNavigate requests have a frame_tree_node_id, but no render_process_id
60
+ auto * request_info = content::ResourceRequestInfo::ForRequest (request);
61
+ if (request_info) {
62
+ *frame_tree_node_id = request_info->GetFrameTreeNodeId ();
63
+ }
56
64
extensions::ExtensionApiFrameIdMap::FrameData frame_data;
57
65
if (!content::ResourceRequestInfo::GetRenderFrameForRequest (
58
66
request, render_process_id, render_frame_id)) {
@@ -65,28 +73,15 @@ void GetRenderFrameIdAndProcessId(URLRequest* request,
65
73
}
66
74
}
67
75
68
- int GetTabIdFromIO (URLRequest* request) {
69
- DCHECK_CURRENTLY_ON (BrowserThread::IO);
70
- int render_frame_id = -1 ;
71
- int render_process_id = -1 ;
72
- int tab_id = -1 ;
73
- GetRenderFrameIdAndProcessId (request, &render_frame_id, &render_process_id);
74
- extensions::ExtensionApiFrameIdMap::FrameData frame_data;
75
- if (extensions::ExtensionApiFrameIdMap::Get ()->GetCachedFrameDataOnIO (
76
- render_process_id, render_frame_id, &frame_data)) {
77
- tab_id = frame_data.tab_id ;
78
- }
79
- return tab_id;
80
- }
81
-
82
76
void DispatchBlockedEventFromIO (URLRequest* request,
83
77
const std::string& block_type) {
84
78
DCHECK_CURRENTLY_ON (BrowserThread::IO);
85
- int render_process_id, render_frame_id;
86
- GetRenderFrameIdAndProcessId (request, &render_frame_id, &render_process_id);
79
+ int render_process_id, render_frame_id, frame_tree_node_id;
80
+ GetRenderFrameInfo (request, &render_frame_id, &render_process_id,
81
+ &frame_tree_node_id);
87
82
BrowserThread::PostTask (BrowserThread::UI, FROM_HERE,
88
83
base::BindOnce (&BraveShieldsWebContentsObserver::DispatchBlockedEvent,
89
- block_type, render_process_id, render_frame_id));
84
+ block_type, render_process_id, render_frame_id, frame_tree_node_id ));
90
85
}
91
86
92
87
} // namespace brave_shields
0 commit comments