Skip to content

Commit e174355

Browse files
authored
Update Network list to use x-fb-friendly-name header (#221)
1 parent 59c63cb commit e174355

2 files changed

Lines changed: 73 additions & 2 deletions

File tree

‎front_end/panels/network/NetworkDataGridNode.test.ts‎

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,4 +506,69 @@ describeWithEnvironment('NetworkLogView', () => {
506506
constbackgroundColorOfIcon=iconStyle.backgroundColor.toString();
507507
assert.strictEqual(backgroundColorOfIcon,'var(--icon-warning)');
508508
});
509+
510+
it('uses x-fb-friendly-name from response headers when present',async()=>{
511+
constrequest=SDK.NetworkRequest.NetworkRequest.create(
512+
'requestId'asProtocol.Network.RequestId,urlString`https://www.example.com/api/v1/users/12345`,urlString``,
513+
null,null,null);
514+
request.statusCode=200;
515+
request.responseHeaders=[{name: 'x-fb-friendly-name',value: 'GetUserProfile'}];
516+
517+
constnetworkRequestNode=newNetwork.NetworkDataGridNode.NetworkRequestNode(
518+
{}asNetwork.NetworkDataGridNode.NetworkLogViewInterface,request);
519+
constel=document.createElement('div');
520+
networkRequestNode.renderCell(el,'name');
521+
522+
// The cell should contain the friendly name instead of the default URL name
523+
assert.include(el.textContent,'GetUserProfile');
524+
});
525+
526+
it('uses x-fb-friendly-name from request headers when not in response',async()=>{
527+
constrequest=SDK.NetworkRequest.NetworkRequest.create(
528+
'requestId'asProtocol.Network.RequestId,urlString`https://www.example.com/graphql`,urlString``,null,null,
529+
null);
530+
request.statusCode=200;
531+
request.setRequestHeaders([{name: 'x-fb-friendly-name',value: 'CreatePost'}]);
532+
533+
constnetworkRequestNode=newNetwork.NetworkDataGridNode.NetworkRequestNode(
534+
{}asNetwork.NetworkDataGridNode.NetworkLogViewInterface,request);
535+
constel=document.createElement('div');
536+
networkRequestNode.renderCell(el,'name');
537+
538+
// The cell should contain the friendly name from request headers
539+
assert.include(el.textContent,'CreatePost');
540+
});
541+
542+
it('uses default name when x-fb-friendly-name is not present',async()=>{
543+
constrequest=SDK.NetworkRequest.NetworkRequest.create(
544+
'requestId'asProtocol.Network.RequestId,urlString`https://www.example.com/test.js`,urlString``,null,null,
545+
null);
546+
request.statusCode=200;
547+
548+
constnetworkRequestNode=newNetwork.NetworkDataGridNode.NetworkRequestNode(
549+
{}asNetwork.NetworkDataGridNode.NetworkLogViewInterface,request);
550+
constel=document.createElement('div');
551+
networkRequestNode.renderCell(el,'name');
552+
553+
// The cell should contain the default name (test.js)
554+
assert.include(el.textContent,'test.js');
555+
});
556+
557+
it('prefers response header x-fb-friendly-name over request header',async()=>{
558+
constrequest=SDK.NetworkRequest.NetworkRequest.create(
559+
'requestId'asProtocol.Network.RequestId,urlString`https://www.example.com/api/data`,urlString``,null,null,
560+
null);
561+
request.statusCode=200;
562+
request.responseHeaders=[{name: 'x-fb-friendly-name',value: 'ResponseName'}];
563+
request.setRequestHeaders([{name: 'x-fb-friendly-name',value: 'RequestName'}]);
564+
565+
constnetworkRequestNode=newNetwork.NetworkDataGridNode.NetworkRequestNode(
566+
{}asNetwork.NetworkDataGridNode.NetworkLogViewInterface,request);
567+
constel=document.createElement('div');
568+
networkRequestNode.renderCell(el,'name');
569+
570+
// The cell should contain the response header value, not the request header value
571+
assert.include(el.textContent,'ResponseName');
572+
assert.notInclude(el.textContent,'RequestName');
573+
});
509574
});

‎front_end/panels/network/NetworkDataGridNode.ts‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -882,7 +882,10 @@ export class NetworkRequestNode extends NetworkNode {
882882
}
883883

884884
overridedisplayName(): string{
885-
returnthis.requestInternal.name();
885+
// [RN] Check for x-fb-friendly-name header in response or request headers
886+
constfriendlyName=this.requestInternal.responseHeaderValue('x-fb-friendly-name')||
887+
this.requestInternal.requestHeaderValue('x-fb-friendly-name');
888+
returnfriendlyName||this.requestInternal.name();
886889
}
887890

888891
overriderequest(): SDK.NetworkRequest.NetworkRequest{
@@ -1126,7 +1129,10 @@ export class NetworkRequestNode extends NetworkNode {
11261129
cell.appendChild(secondIconElement);
11271130
}
11281131
}
1129-
constname=Platform.StringUtilities.trimMiddle(this.requestInternal.name(),100);
1132+
// [RN] Check for x-fb-friendly-name header in response or request headers
1133+
constfriendlyName=this.requestInternal.responseHeaderValue('x-fb-friendly-name')||
1134+
this.requestInternal.requestHeaderValue('x-fb-friendly-name');
1135+
constname=Platform.StringUtilities.trimMiddle(friendlyName||this.requestInternal.name(),100);
11301136
constnetworkManager=SDK.NetworkManager.NetworkManager.forRequest(this.requestInternal);
11311137
UI.UIUtils.createTextChild(cell,networkManager ? networkManager.target().decorateLabel(name) : name);
11321138
this.appendSubtitle(cell,this.requestInternal.path());

0 commit comments

Comments
 (0)