Skip to content
This repository has been archived by the owner on Jan 4, 2019. It is now read-only.

Commit

Permalink
Fix filtering not knowing tabId
Browse files Browse the repository at this point in the history
  • Loading branch information
bbondy committed Oct 23, 2017
1 parent 46cb7c3 commit dda8bf2
Showing 1 changed file with 22 additions and 8 deletions.
30 changes: 22 additions & 8 deletions atom/browser/net/atom_network_delegate.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include "base/strings/string_util.h"
#include "chrome/browser/devtools/devtools_network_transaction.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/websocket_handshake_request_info.h"
#include "extensions/features/features.h"
#include "net/url_request/url_request.h"
Expand Down Expand Up @@ -85,6 +86,25 @@ bool MatchesFilterCondition(net::URLRequest* request,
return false;
}

static int GetTabId(int render_process_id, int render_frame_id) {
int tab_id = -1;
content::RenderFrameHost* rfh = content::RenderFrameHost::FromID(
render_process_id, render_frame_id);
extensions::ExtensionApiFrameIdMap::FrameData frame_data;
if (rfh) {
frame_data = extensions::ExtensionApiFrameIdMap::Get()->GetFrameData(rfh);
tab_id = frame_data.tab_id;
}
// I don't think this below block is actually needed but I'm leaving it to be
// safe.
if (tab_id == -1 &&
extensions::ExtensionApiFrameIdMap::Get()->GetCachedFrameDataOnIO(
render_process_id, render_frame_id, &frame_data)) {
tab_id = frame_data.tab_id;
}
return tab_id;
}

int GetTabId(net::URLRequest* request) {
#if BUILDFLAG(ENABLE_EXTENSIONS)
int render_frame_id = -1;
Expand All @@ -93,20 +113,14 @@ int GetTabId(net::URLRequest* request) {
extensions::ExtensionApiFrameIdMap::FrameData frame_data;
if (content::ResourceRequestInfo::GetRenderFrameForRequest(
request, &render_process_id, &render_frame_id)) {
if (extensions::ExtensionApiFrameIdMap::Get()->GetCachedFrameDataOnIO(
render_process_id, render_frame_id, &frame_data)) {
tab_id = frame_data.tab_id;
}
tab_id = GetTabId(render_process_id, render_frame_id);
} else {
const content::WebSocketHandshakeRequestInfo* websocket_info =
content::WebSocketHandshakeRequestInfo::ForRequest(request);
if (websocket_info) {
render_frame_id = websocket_info->GetRenderFrameId();
render_process_id = websocket_info->GetChildId();
if (extensions::ExtensionApiFrameIdMap::Get()->GetCachedFrameDataOnIO(
render_process_id, render_frame_id, &frame_data)) {
tab_id = frame_data.tab_id;
}
tab_id = GetTabId(render_process_id, render_frame_id);
}
}
return tab_id;
Expand Down

0 comments on commit dda8bf2

Please sign in to comment.