|
5 | 5 | import * as Common from '../../core/common/common.js';
|
6 | 6 | import * as i18n from '../../core/i18n/i18n.js';
|
7 | 7 | import * as Platform from '../../core/platform/platform.js';
|
| 8 | +import * as Root from '../../core/root/root.js'; |
| 9 | +import * as SDK from '../../core/sdk/sdk.js'; |
8 | 10 | import * as Trace from '../../models/trace/trace.js';
|
9 | 11 | import * as IconButton from '../../ui/components/icon_button/icon_button.js';
|
10 | 12 | import * as UI from '../../ui/legacy/legacy.js';
|
@@ -339,7 +341,14 @@ export class TimelineHistoryManager {
|
339 | 341 | parsedTraceIndex: number, parsedTrace: Trace.Handlers.Types.ParsedTrace, metadata: Trace.Types.File.MetaData|null,
|
340 | 342 | filmStrip: Trace.Extras.FilmStrip.Data|null): HTMLDivElement {
|
341 | 343 | const parsedURL = Common.ParsedURL.ParsedURL.fromString(parsedTrace.Meta.mainFrameURL);
|
342 |
| - const domain = parsedURL ? parsedURL.host : ''; |
| 344 | + let domain = parsedURL ? parsedURL.host : ''; |
| 345 | + // [RN] React Native doesn't have a URL as a concept for Frame, we will use Application name as a fallback. |
| 346 | + if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.REACT_NATIVE_SPECIFIC_UI)) { |
| 347 | + const reactNativeApplicationModel = SDK.TargetManager.TargetManager.instance().primaryPageTarget()?.model(SDK.ReactNativeApplicationModel.ReactNativeApplicationModel); |
| 348 | + if (reactNativeApplicationModel !== null && reactNativeApplicationModel !== undefined) { |
| 349 | + domain = reactNativeApplicationModel.metadataCached?.appDisplayName || ''; |
| 350 | + } |
| 351 | + } |
343 | 352 |
|
344 | 353 | const sequenceNumber = this.nextNumberByDomain.get(domain) || 1;
|
345 | 354 | const titleWithSequenceNumber = i18nString(UIStrings.sD, {PH1: domain, PH2: sequenceNumber});
|
|
0 commit comments