@openfin/fdc3-api 46.100.67 → 46.100.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -923,6 +923,21 @@ declare class Application extends EmitterBase<OpenFin.ApplicationEvent> {
923
923
  * ```
924
924
  */
925
925
  closeTrayIconPopupMenu(): Promise<void>;
926
+ /**
927
+ * @experimental
928
+ * Retrieves a performance snapshot for all Windows, Views and Frames in the Application.
929
+ *
930
+ * By default, all custom marks and measures are collected, along with navigation/paint entries
931
+ * and resource timing (`resources` defaults to `true`). Pass `include` to restrict custom
932
+ * marks/measures to matching names (string substring or RegExp). Pass `browser: true` to also
933
+ * include hereio internal runtime metrics.
934
+ *
935
+ * See also [MDN | Performance Mark API](https://developer.mozilla.org/en-US/docs/Web/API/Performance/mark)
936
+ *
937
+ * Note - only currently running WebContents will be captured, and performance entries can only be
938
+ * captured for the current navigation of each.
939
+ */
940
+ getPerformanceStats: (options?: OpenFin.GetPerformanceStatsOptions) => Promise<OpenFin.PerformanceStatsResult>;
926
941
  }
927
942
 
928
943
  /**
@@ -1374,6 +1389,7 @@ declare type ApplicationOptions = LegacyWinOptionsInAppOptions & {
1374
1389
  declare type ApplicationPermissions = {
1375
1390
  setFileDownloadLocation: boolean;
1376
1391
  getFileDownloadLocation: boolean;
1392
+ getPerformanceStats: boolean;
1377
1393
  };
1378
1394
 
1379
1395
  /**
@@ -3129,7 +3145,12 @@ declare type ChildWindowCreatedEvent = ContentCreationRulesEvent & {
3129
3145
  childOptions: OpenFin.WindowOptions;
3130
3146
  };
3131
3147
 
3132
- /* Excluded from this release type: ChromeBrowser */
3148
+ declare interface ChromeBrowser {
3149
+ /**
3150
+ * Extension action surface — observe and invoke installed Chrome extension actions.
3151
+ */
3152
+ readonly Actions: ChromeBrowserActions;
3153
+ }
3133
3154
 
3134
3155
  /**
3135
3156
  * APIs for interacting with Chromium extension actions from an initialized ChromeBrowser window.
@@ -4430,6 +4451,8 @@ declare type CopyPermissions = {
4430
4451
  };
4431
4452
  };
4432
4453
 
4454
+ declare type CorePerformanceEntry = Omit<PerformanceEntry, 'toJSON'>;
4455
+
4433
4456
  /**
4434
4457
  * Defines and applies rounded corners for a frameless window. **NOTE:** On macOS corner is not ellipse but circle rounded by the
4435
4458
  * average of _height_ and _width_.
@@ -4582,6 +4605,32 @@ declare type CreateLayoutOptions = {
4582
4605
  * @experimental
4583
4606
  */
4584
4607
  renderCustomHeaderControls?: (controlsElement: HTMLElement, context: HeaderControlsContext) => (() => void) | void;
4608
+ /**
4609
+ * Callback invoked once per tab after core has finished building the tab DOM.
4610
+ * Use this to inject custom controls (e.g. action icons) into view tab hats.
4611
+ *
4612
+ * Optionally return a cleanup function that will be called when the tab is destroyed.
4613
+ *
4614
+ * Custom controls are not serialized into snapshots since callbacks are not
4615
+ * serializable. The callback is re-invoked when tabs are recreated.
4616
+ *
4617
+ * **NOTE**: This feature is only supported with layout engine `'v2'` (GL2) and
4618
+ * `settings.tabOverflowBehavior: 'scroll'`.
4619
+ *
4620
+ * Optionally add the `lm_tab_custom_control` class to each injected control as a direct child of
4621
+ * `tabElement`. That opts the control into {@link LayoutAccessibilityOptions} keyboard
4622
+ * navigation (roving tabindex, arrow keys in DOM order, Enter/Space without switching tabs),
4623
+ * pointer isolation so clicks do not activate or close the tab (press-and-drag still
4624
+ * reorders/tears out tab, matching the close button), and default 20×20 flex sizing
4625
+ * (override using `--layout-tab-custom-control-size`).
4626
+ *
4627
+ * @param tabElement The `.lm_tab` DOM element for the view tab.
4628
+ * @param context Context object with DOM anchors for the tab.
4629
+ * @returns A callback to be called when the rendered elements need to be cleaned up.
4630
+ *
4631
+ * @experimental
4632
+ */
4633
+ renderCustomTabControls?: (tabElement: HTMLElement, context: CustomTabControlsContext) => (() => void) | void;
4585
4634
  /**
4586
4635
  * Accessibility options for the layout. Controls ARIA attributes and keyboard navigation.
4587
4636
  */
@@ -4671,6 +4720,19 @@ declare type CustomRequestHeaders = {
4671
4720
  headers: WebRequestHeader[];
4672
4721
  };
4673
4722
 
4723
+ /**
4724
+ * @interface @experimental
4725
+ */
4726
+ declare type CustomTabControlsContext = {
4727
+ viewIdentity: Identity_4;
4728
+ /** Anchor for inserting controls adjacent to the tab text. */
4729
+ titleElement: HTMLElement;
4730
+ /** Anchor for the trailing outer edge. Absent when the view is not closable. */
4731
+ closeElement?: HTMLElement;
4732
+ /** The favicon element. Hidden when favicons are disabled. */
4733
+ faviconElement?: HTMLElement;
4734
+ };
4735
+
4674
4736
  declare type DataChannelReadyState = RTCDataChannel['readyState'];
4675
4737
 
4676
4738
  /**
@@ -6715,6 +6777,32 @@ declare type GetLogRequestType = {
6715
6777
  name: string;
6716
6778
  };
6717
6779
 
6780
+ /**
6781
+ * End of Interop Client Events
6782
+ */
6783
+ /**
6784
+ * Performance Entry Types
6785
+ */
6786
+ declare type GetPerformanceStatsOptions = {
6787
+ /**
6788
+ * Optional filter for custom performance marks and measures.
6789
+ * When omitted, all custom marks and measures are collected.
6790
+ * When specified, only entries whose names match one of the filters are collected.
6791
+ * Strings match by substring; RegExp matches by test.
6792
+ */
6793
+ include?: (string | RegExp)[];
6794
+ /**
6795
+ * Include `resource` timing entries from each View / Frame / Window.
6796
+ * Defaults to `true`. Pass `false` to omit them.
6797
+ */
6798
+ resources?: boolean;
6799
+ /**
6800
+ * Whether to include hereio internal runtime metrics.
6801
+ * Defaults to `false`. Pass `true` to include.
6802
+ */
6803
+ browser?: boolean;
6804
+ };
6805
+
6718
6806
  declare type GetterCall<T> = ApiCall<void, T>;
6719
6807
 
6720
6808
  /**
@@ -10206,6 +10294,7 @@ declare type MutableViewOptions = {
10206
10294
  preventDragOut: boolean;
10207
10295
  interop?: InteropConfig;
10208
10296
  /* Excluded from this release type: _internalWorkspaceData */
10297
+ /* Excluded from this release type: workspacePlatform */
10209
10298
  /**
10210
10299
  * {@inheritDoc ViewThrottling}
10211
10300
  *
@@ -11121,6 +11210,7 @@ declare namespace OpenFin {
11121
11210
  ScreenCaptureBehavior,
11122
11211
  DomainSettingsPreloadScripts,
11123
11212
  PerDomainSettings,
11213
+ UrlRestoreSettings,
11124
11214
  CopyPermissions,
11125
11215
  PastePermissions,
11126
11216
  ClipboardPermissions,
@@ -11188,6 +11278,7 @@ declare namespace OpenFin {
11188
11278
  LayoutManagerOverride,
11189
11279
  LayoutManager,
11190
11280
  HeaderControlsContext,
11281
+ CustomTabControlsContext,
11191
11282
  CreateLayoutOptions,
11192
11283
  MultiInstanceViewBehavior,
11193
11284
  LayoutAccessibilityOptions,
@@ -11261,6 +11352,12 @@ declare namespace OpenFin {
11261
11352
  InteropClientEvent,
11262
11353
  ClientChangedContextGroup,
11263
11354
  InteropClientEvents,
11355
+ GetPerformanceStatsOptions,
11356
+ SerializedPerformanceOptions,
11357
+ CorePerformanceEntry,
11358
+ WebContentPerformanceStats,
11359
+ WindowPerformanceStats,
11360
+ PerformanceStatsResult,
11264
11361
  ChromeBrowser,
11265
11362
  LanguageInfo,
11266
11363
  PageTranslateOptions,
@@ -11545,6 +11642,12 @@ declare type PerDomainSettings = {
11545
11642
  * See also {@link AppLogLevel} for more information.
11546
11643
  */
11547
11644
  appLogLevel?: AppLogLevel;
11645
+ /**
11646
+ * When the live URL matches this rule, remap inbound
11647
+ * {@link View.ViewModule.navigate View.navigate} / {@link Window.WindowModule.navigate Window.navigate}
11648
+ * to {@link UrlRestoreSettings.url}.
11649
+ */
11650
+ urlRestore?: UrlRestoreSettings;
11548
11651
  };
11549
11652
 
11550
11653
  /**
@@ -11555,6 +11658,15 @@ declare type PerformanceReportEvent = Performance & BaseEvent_5 & {
11555
11658
  type: 'performance-report';
11556
11659
  };
11557
11660
 
11661
+ declare type PerformanceStatsResult = {
11662
+ mainWindow: WindowPerformanceStats;
11663
+ childWindows: WindowPerformanceStats[];
11664
+ browser?: {
11665
+ timeOrigin: number;
11666
+ entries: CorePerformanceEntry[];
11667
+ };
11668
+ };
11669
+
11558
11670
  /**
11559
11671
  * @interface
11560
11672
  *
@@ -13681,6 +13793,11 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
13681
13793
  response: OpenFin.MenuResult;
13682
13794
  };
13683
13795
  'close-tray-icon-popup-menu': IdentityCall<{}, void>;
13796
+ 'get-application-performance-stats': ApplicationIdentityCall<OpenFin.SerializedPerformanceOptions, OpenFin.PerformanceStatsResult> & {
13797
+ secure: true;
13798
+ namespace: 'Application';
13799
+ apiPath: '.getPerformanceStats';
13800
+ };
13684
13801
  'create-application': ApiCall<OpenFin.ApplicationCreationOptions, void>;
13685
13802
  'run-applications': ApiCall<{
13686
13803
  applications: Array<OpenFin.ManifestInfo>;
@@ -15066,6 +15183,16 @@ declare type SentMessage<Value> = Promise<Value> & {
15066
15183
  messageId: ReturnType<Environment['getNextMessageId']>;
15067
15184
  };
15068
15185
 
15186
+ declare type SerializedFilter = string | {
15187
+ type: 'regex';
15188
+ expression: string;
15189
+ flags?: string;
15190
+ };
15191
+
15192
+ declare type SerializedPerformanceOptions = Omit<GetPerformanceStatsOptions, 'include'> & {
15193
+ include?: SerializedFilter[];
15194
+ };
15195
+
15069
15196
  declare type ServeAssetOptions = AppAssetServeRequest | PathServeRequest;
15070
15197
 
15071
15198
  declare type ServedAssetInfo = {
@@ -18065,6 +18192,16 @@ declare type UrlChangedEvent = BaseUrlEvent & ({
18065
18192
  httpStatusText: string;
18066
18193
  });
18067
18194
 
18195
+ /**
18196
+ * Domain-settings policy that replaces a matched live URL with a configured start URI.
18197
+ */
18198
+ declare type UrlRestoreSettings = {
18199
+ /**
18200
+ * Absolute replacement URL. Full URL replace, not prefix rewrite.
18201
+ */
18202
+ url: string;
18203
+ };
18204
+
18068
18205
  /**
18069
18206
  * @interface
18070
18207
  */
@@ -18978,10 +19115,10 @@ declare type ViewTabAccessibilityOptions = {
18978
19115
  * Uses roving tabindex pattern - only one element focusable at a time.
18979
19116
  * @default ['active-tab', 'add-tab-button']
18980
19117
  */
18981
- tabNavigation?: ViewTabElements[];
19118
+ tabNavigation?: Exclude<ViewTabElements, 'active-tab-custom-control' | 'inactive-tab-custom-control'>[];
18982
19119
  /**
18983
19120
  * Controls which elements are navigable via Arrow keys.
18984
- * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button']
19121
+ * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button', 'active-tab-custom-control', 'inactive-tab-custom-control']
18985
19122
  */
18986
19123
  arrowNavigation?: ViewTabElements[];
18987
19124
  /**
@@ -19013,7 +19150,7 @@ declare type ViewTabAccessibilityOptions = {
19013
19150
  /**
19014
19151
  * Elements that can be navigated in view tabs.
19015
19152
  */
19016
- declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button';
19153
+ declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button' | 'active-tab-custom-control' | 'inactive-tab-custom-control';
19017
19154
 
19018
19155
  /**
19019
19156
  * View throttling state.
@@ -19067,6 +19204,22 @@ declare type VoidCall = ApiCall<void, void>;
19067
19204
 
19068
19205
  declare type WebContent = View_2 | _Window;
19069
19206
 
19207
+ declare type WebContentPerformanceStatBase = {
19208
+ name: string;
19209
+ entries: CorePerformanceEntry[];
19210
+ navigation: {
19211
+ historyLength: number;
19212
+ timeOrigin: number;
19213
+ };
19214
+ url: string;
19215
+ frames: WebContentPerformanceStats[];
19216
+ };
19217
+
19218
+ declare type WebContentPerformanceStats = WebContentPerformanceStatBase | {
19219
+ error: string;
19220
+ url: string;
19221
+ };
19222
+
19070
19223
  declare class WebContents<T extends BaseEvent> extends EmitterBase<T> {
19071
19224
  identity: OpenFin.Identity;
19072
19225
  entityType: 'window' | 'view';
@@ -21674,6 +21827,13 @@ declare type WindowOptionsChangedEvent = OpenFin.WindowEvents.WindowOptionsChang
21674
21827
  */
21675
21828
  declare type WindowOptionsChangedEvent_2 = OptionsChangedEvent;
21676
21829
 
21830
+ declare type WindowPerformanceStats = (WebContentPerformanceStatBase & {
21831
+ views: WebContentPerformanceStats[];
21832
+ }) | {
21833
+ error: string;
21834
+ url: string;
21835
+ };
21836
+
21677
21837
  declare type WindowPrintOptions = PrintOptions | ScreenshotPrintOptions | WindowViewsPrintOptions;
21678
21838
 
21679
21839
  /**
@@ -923,6 +923,21 @@ declare class Application extends EmitterBase<OpenFin.ApplicationEvent> {
923
923
  * ```
924
924
  */
925
925
  closeTrayIconPopupMenu(): Promise<void>;
926
+ /**
927
+ * @experimental
928
+ * Retrieves a performance snapshot for all Windows, Views and Frames in the Application.
929
+ *
930
+ * By default, all custom marks and measures are collected, along with navigation/paint entries
931
+ * and resource timing (`resources` defaults to `true`). Pass `include` to restrict custom
932
+ * marks/measures to matching names (string substring or RegExp). Pass `browser: true` to also
933
+ * include hereio internal runtime metrics.
934
+ *
935
+ * See also [MDN | Performance Mark API](https://developer.mozilla.org/en-US/docs/Web/API/Performance/mark)
936
+ *
937
+ * Note - only currently running WebContents will be captured, and performance entries can only be
938
+ * captured for the current navigation of each.
939
+ */
940
+ getPerformanceStats: (options?: OpenFin.GetPerformanceStatsOptions) => Promise<OpenFin.PerformanceStatsResult>;
926
941
  }
927
942
 
928
943
  /**
@@ -1374,6 +1389,7 @@ declare type ApplicationOptions = LegacyWinOptionsInAppOptions & {
1374
1389
  declare type ApplicationPermissions = {
1375
1390
  setFileDownloadLocation: boolean;
1376
1391
  getFileDownloadLocation: boolean;
1392
+ getPerformanceStats: boolean;
1377
1393
  };
1378
1394
 
1379
1395
  /**
@@ -3129,7 +3145,12 @@ declare type ChildWindowCreatedEvent = ContentCreationRulesEvent & {
3129
3145
  childOptions: OpenFin.WindowOptions;
3130
3146
  };
3131
3147
 
3132
- /* Excluded from this release type: ChromeBrowser */
3148
+ declare interface ChromeBrowser {
3149
+ /**
3150
+ * Extension action surface — observe and invoke installed Chrome extension actions.
3151
+ */
3152
+ readonly Actions: ChromeBrowserActions;
3153
+ }
3133
3154
 
3134
3155
  /**
3135
3156
  * APIs for interacting with Chromium extension actions from an initialized ChromeBrowser window.
@@ -4430,6 +4451,8 @@ declare type CopyPermissions = {
4430
4451
  };
4431
4452
  };
4432
4453
 
4454
+ declare type CorePerformanceEntry = Omit<PerformanceEntry, 'toJSON'>;
4455
+
4433
4456
  /**
4434
4457
  * Defines and applies rounded corners for a frameless window. **NOTE:** On macOS corner is not ellipse but circle rounded by the
4435
4458
  * average of _height_ and _width_.
@@ -4582,6 +4605,32 @@ declare type CreateLayoutOptions = {
4582
4605
  * @experimental
4583
4606
  */
4584
4607
  renderCustomHeaderControls?: (controlsElement: HTMLElement, context: HeaderControlsContext) => (() => void) | void;
4608
+ /**
4609
+ * Callback invoked once per tab after core has finished building the tab DOM.
4610
+ * Use this to inject custom controls (e.g. action icons) into view tab hats.
4611
+ *
4612
+ * Optionally return a cleanup function that will be called when the tab is destroyed.
4613
+ *
4614
+ * Custom controls are not serialized into snapshots since callbacks are not
4615
+ * serializable. The callback is re-invoked when tabs are recreated.
4616
+ *
4617
+ * **NOTE**: This feature is only supported with layout engine `'v2'` (GL2) and
4618
+ * `settings.tabOverflowBehavior: 'scroll'`.
4619
+ *
4620
+ * Optionally add the `lm_tab_custom_control` class to each injected control as a direct child of
4621
+ * `tabElement`. That opts the control into {@link LayoutAccessibilityOptions} keyboard
4622
+ * navigation (roving tabindex, arrow keys in DOM order, Enter/Space without switching tabs),
4623
+ * pointer isolation so clicks do not activate or close the tab (press-and-drag still
4624
+ * reorders/tears out tab, matching the close button), and default 20×20 flex sizing
4625
+ * (override using `--layout-tab-custom-control-size`).
4626
+ *
4627
+ * @param tabElement The `.lm_tab` DOM element for the view tab.
4628
+ * @param context Context object with DOM anchors for the tab.
4629
+ * @returns A callback to be called when the rendered elements need to be cleaned up.
4630
+ *
4631
+ * @experimental
4632
+ */
4633
+ renderCustomTabControls?: (tabElement: HTMLElement, context: CustomTabControlsContext) => (() => void) | void;
4585
4634
  /**
4586
4635
  * Accessibility options for the layout. Controls ARIA attributes and keyboard navigation.
4587
4636
  */
@@ -4671,6 +4720,19 @@ declare type CustomRequestHeaders = {
4671
4720
  headers: WebRequestHeader[];
4672
4721
  };
4673
4722
 
4723
+ /**
4724
+ * @interface @experimental
4725
+ */
4726
+ declare type CustomTabControlsContext = {
4727
+ viewIdentity: Identity_4;
4728
+ /** Anchor for inserting controls adjacent to the tab text. */
4729
+ titleElement: HTMLElement;
4730
+ /** Anchor for the trailing outer edge. Absent when the view is not closable. */
4731
+ closeElement?: HTMLElement;
4732
+ /** The favicon element. Hidden when favicons are disabled. */
4733
+ faviconElement?: HTMLElement;
4734
+ };
4735
+
4674
4736
  declare type DataChannelReadyState = RTCDataChannel['readyState'];
4675
4737
 
4676
4738
  /**
@@ -6715,6 +6777,32 @@ declare type GetLogRequestType = {
6715
6777
  name: string;
6716
6778
  };
6717
6779
 
6780
+ /**
6781
+ * End of Interop Client Events
6782
+ */
6783
+ /**
6784
+ * Performance Entry Types
6785
+ */
6786
+ declare type GetPerformanceStatsOptions = {
6787
+ /**
6788
+ * Optional filter for custom performance marks and measures.
6789
+ * When omitted, all custom marks and measures are collected.
6790
+ * When specified, only entries whose names match one of the filters are collected.
6791
+ * Strings match by substring; RegExp matches by test.
6792
+ */
6793
+ include?: (string | RegExp)[];
6794
+ /**
6795
+ * Include `resource` timing entries from each View / Frame / Window.
6796
+ * Defaults to `true`. Pass `false` to omit them.
6797
+ */
6798
+ resources?: boolean;
6799
+ /**
6800
+ * Whether to include hereio internal runtime metrics.
6801
+ * Defaults to `false`. Pass `true` to include.
6802
+ */
6803
+ browser?: boolean;
6804
+ };
6805
+
6718
6806
  declare type GetterCall<T> = ApiCall<void, T>;
6719
6807
 
6720
6808
  /**
@@ -10206,6 +10294,7 @@ declare type MutableViewOptions = {
10206
10294
  preventDragOut: boolean;
10207
10295
  interop?: InteropConfig;
10208
10296
  /* Excluded from this release type: _internalWorkspaceData */
10297
+ /* Excluded from this release type: workspacePlatform */
10209
10298
  /**
10210
10299
  * {@inheritDoc ViewThrottling}
10211
10300
  *
@@ -11121,6 +11210,7 @@ declare namespace OpenFin {
11121
11210
  ScreenCaptureBehavior,
11122
11211
  DomainSettingsPreloadScripts,
11123
11212
  PerDomainSettings,
11213
+ UrlRestoreSettings,
11124
11214
  CopyPermissions,
11125
11215
  PastePermissions,
11126
11216
  ClipboardPermissions,
@@ -11188,6 +11278,7 @@ declare namespace OpenFin {
11188
11278
  LayoutManagerOverride,
11189
11279
  LayoutManager,
11190
11280
  HeaderControlsContext,
11281
+ CustomTabControlsContext,
11191
11282
  CreateLayoutOptions,
11192
11283
  MultiInstanceViewBehavior,
11193
11284
  LayoutAccessibilityOptions,
@@ -11261,6 +11352,12 @@ declare namespace OpenFin {
11261
11352
  InteropClientEvent,
11262
11353
  ClientChangedContextGroup,
11263
11354
  InteropClientEvents,
11355
+ GetPerformanceStatsOptions,
11356
+ SerializedPerformanceOptions,
11357
+ CorePerformanceEntry,
11358
+ WebContentPerformanceStats,
11359
+ WindowPerformanceStats,
11360
+ PerformanceStatsResult,
11264
11361
  ChromeBrowser,
11265
11362
  LanguageInfo,
11266
11363
  PageTranslateOptions,
@@ -11545,6 +11642,12 @@ declare type PerDomainSettings = {
11545
11642
  * See also {@link AppLogLevel} for more information.
11546
11643
  */
11547
11644
  appLogLevel?: AppLogLevel;
11645
+ /**
11646
+ * When the live URL matches this rule, remap inbound
11647
+ * {@link View.ViewModule.navigate View.navigate} / {@link Window.WindowModule.navigate Window.navigate}
11648
+ * to {@link UrlRestoreSettings.url}.
11649
+ */
11650
+ urlRestore?: UrlRestoreSettings;
11548
11651
  };
11549
11652
 
11550
11653
  /**
@@ -11555,6 +11658,15 @@ declare type PerformanceReportEvent = Performance & BaseEvent_5 & {
11555
11658
  type: 'performance-report';
11556
11659
  };
11557
11660
 
11661
+ declare type PerformanceStatsResult = {
11662
+ mainWindow: WindowPerformanceStats;
11663
+ childWindows: WindowPerformanceStats[];
11664
+ browser?: {
11665
+ timeOrigin: number;
11666
+ entries: CorePerformanceEntry[];
11667
+ };
11668
+ };
11669
+
11558
11670
  /**
11559
11671
  * @interface
11560
11672
  *
@@ -13681,6 +13793,11 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
13681
13793
  response: OpenFin.MenuResult;
13682
13794
  };
13683
13795
  'close-tray-icon-popup-menu': IdentityCall<{}, void>;
13796
+ 'get-application-performance-stats': ApplicationIdentityCall<OpenFin.SerializedPerformanceOptions, OpenFin.PerformanceStatsResult> & {
13797
+ secure: true;
13798
+ namespace: 'Application';
13799
+ apiPath: '.getPerformanceStats';
13800
+ };
13684
13801
  'create-application': ApiCall<OpenFin.ApplicationCreationOptions, void>;
13685
13802
  'run-applications': ApiCall<{
13686
13803
  applications: Array<OpenFin.ManifestInfo>;
@@ -15066,6 +15183,16 @@ declare type SentMessage<Value> = Promise<Value> & {
15066
15183
  messageId: ReturnType<Environment['getNextMessageId']>;
15067
15184
  };
15068
15185
 
15186
+ declare type SerializedFilter = string | {
15187
+ type: 'regex';
15188
+ expression: string;
15189
+ flags?: string;
15190
+ };
15191
+
15192
+ declare type SerializedPerformanceOptions = Omit<GetPerformanceStatsOptions, 'include'> & {
15193
+ include?: SerializedFilter[];
15194
+ };
15195
+
15069
15196
  declare type ServeAssetOptions = AppAssetServeRequest | PathServeRequest;
15070
15197
 
15071
15198
  declare type ServedAssetInfo = {
@@ -18065,6 +18192,16 @@ declare type UrlChangedEvent = BaseUrlEvent & ({
18065
18192
  httpStatusText: string;
18066
18193
  });
18067
18194
 
18195
+ /**
18196
+ * Domain-settings policy that replaces a matched live URL with a configured start URI.
18197
+ */
18198
+ declare type UrlRestoreSettings = {
18199
+ /**
18200
+ * Absolute replacement URL. Full URL replace, not prefix rewrite.
18201
+ */
18202
+ url: string;
18203
+ };
18204
+
18068
18205
  /**
18069
18206
  * @interface
18070
18207
  */
@@ -18978,10 +19115,10 @@ declare type ViewTabAccessibilityOptions = {
18978
19115
  * Uses roving tabindex pattern - only one element focusable at a time.
18979
19116
  * @default ['active-tab', 'add-tab-button']
18980
19117
  */
18981
- tabNavigation?: ViewTabElements[];
19118
+ tabNavigation?: Exclude<ViewTabElements, 'active-tab-custom-control' | 'inactive-tab-custom-control'>[];
18982
19119
  /**
18983
19120
  * Controls which elements are navigable via Arrow keys.
18984
- * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button']
19121
+ * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button', 'active-tab-custom-control', 'inactive-tab-custom-control']
18985
19122
  */
18986
19123
  arrowNavigation?: ViewTabElements[];
18987
19124
  /**
@@ -19013,7 +19150,7 @@ declare type ViewTabAccessibilityOptions = {
19013
19150
  /**
19014
19151
  * Elements that can be navigated in view tabs.
19015
19152
  */
19016
- declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button';
19153
+ declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button' | 'active-tab-custom-control' | 'inactive-tab-custom-control';
19017
19154
 
19018
19155
  /**
19019
19156
  * View throttling state.
@@ -19067,6 +19204,22 @@ declare type VoidCall = ApiCall<void, void>;
19067
19204
 
19068
19205
  declare type WebContent = View_2 | _Window;
19069
19206
 
19207
+ declare type WebContentPerformanceStatBase = {
19208
+ name: string;
19209
+ entries: CorePerformanceEntry[];
19210
+ navigation: {
19211
+ historyLength: number;
19212
+ timeOrigin: number;
19213
+ };
19214
+ url: string;
19215
+ frames: WebContentPerformanceStats[];
19216
+ };
19217
+
19218
+ declare type WebContentPerformanceStats = WebContentPerformanceStatBase | {
19219
+ error: string;
19220
+ url: string;
19221
+ };
19222
+
19070
19223
  declare class WebContents<T extends BaseEvent> extends EmitterBase<T> {
19071
19224
  identity: OpenFin.Identity;
19072
19225
  entityType: 'window' | 'view';
@@ -21674,6 +21827,13 @@ declare type WindowOptionsChangedEvent = OpenFin.WindowEvents.WindowOptionsChang
21674
21827
  */
21675
21828
  declare type WindowOptionsChangedEvent_2 = OptionsChangedEvent;
21676
21829
 
21830
+ declare type WindowPerformanceStats = (WebContentPerformanceStatBase & {
21831
+ views: WebContentPerformanceStats[];
21832
+ }) | {
21833
+ error: string;
21834
+ url: string;
21835
+ };
21836
+
21677
21837
  declare type WindowPrintOptions = PrintOptions | ScreenshotPrintOptions | WindowViewsPrintOptions;
21678
21838
 
21679
21839
  /**
@@ -923,6 +923,21 @@ declare class Application extends EmitterBase<OpenFin.ApplicationEvent> {
923
923
  * ```
924
924
  */
925
925
  closeTrayIconPopupMenu(): Promise<void>;
926
+ /**
927
+ * @experimental
928
+ * Retrieves a performance snapshot for all Windows, Views and Frames in the Application.
929
+ *
930
+ * By default, all custom marks and measures are collected, along with navigation/paint entries
931
+ * and resource timing (`resources` defaults to `true`). Pass `include` to restrict custom
932
+ * marks/measures to matching names (string substring or RegExp). Pass `browser: true` to also
933
+ * include hereio internal runtime metrics.
934
+ *
935
+ * See also [MDN | Performance Mark API](https://developer.mozilla.org/en-US/docs/Web/API/Performance/mark)
936
+ *
937
+ * Note - only currently running WebContents will be captured, and performance entries can only be
938
+ * captured for the current navigation of each.
939
+ */
940
+ getPerformanceStats: (options?: OpenFin.GetPerformanceStatsOptions) => Promise<OpenFin.PerformanceStatsResult>;
926
941
  }
927
942
 
928
943
  /**
@@ -1374,6 +1389,7 @@ declare type ApplicationOptions = LegacyWinOptionsInAppOptions & {
1374
1389
  declare type ApplicationPermissions = {
1375
1390
  setFileDownloadLocation: boolean;
1376
1391
  getFileDownloadLocation: boolean;
1392
+ getPerformanceStats: boolean;
1377
1393
  };
1378
1394
 
1379
1395
  /**
@@ -3129,7 +3145,12 @@ declare type ChildWindowCreatedEvent = ContentCreationRulesEvent & {
3129
3145
  childOptions: OpenFin.WindowOptions;
3130
3146
  };
3131
3147
 
3132
- /* Excluded from this release type: ChromeBrowser */
3148
+ declare interface ChromeBrowser {
3149
+ /**
3150
+ * Extension action surface — observe and invoke installed Chrome extension actions.
3151
+ */
3152
+ readonly Actions: ChromeBrowserActions;
3153
+ }
3133
3154
 
3134
3155
  /**
3135
3156
  * APIs for interacting with Chromium extension actions from an initialized ChromeBrowser window.
@@ -4430,6 +4451,8 @@ declare type CopyPermissions = {
4430
4451
  };
4431
4452
  };
4432
4453
 
4454
+ declare type CorePerformanceEntry = Omit<PerformanceEntry, 'toJSON'>;
4455
+
4433
4456
  /**
4434
4457
  * Defines and applies rounded corners for a frameless window. **NOTE:** On macOS corner is not ellipse but circle rounded by the
4435
4458
  * average of _height_ and _width_.
@@ -4582,6 +4605,32 @@ declare type CreateLayoutOptions = {
4582
4605
  * @experimental
4583
4606
  */
4584
4607
  renderCustomHeaderControls?: (controlsElement: HTMLElement, context: HeaderControlsContext) => (() => void) | void;
4608
+ /**
4609
+ * Callback invoked once per tab after core has finished building the tab DOM.
4610
+ * Use this to inject custom controls (e.g. action icons) into view tab hats.
4611
+ *
4612
+ * Optionally return a cleanup function that will be called when the tab is destroyed.
4613
+ *
4614
+ * Custom controls are not serialized into snapshots since callbacks are not
4615
+ * serializable. The callback is re-invoked when tabs are recreated.
4616
+ *
4617
+ * **NOTE**: This feature is only supported with layout engine `'v2'` (GL2) and
4618
+ * `settings.tabOverflowBehavior: 'scroll'`.
4619
+ *
4620
+ * Optionally add the `lm_tab_custom_control` class to each injected control as a direct child of
4621
+ * `tabElement`. That opts the control into {@link LayoutAccessibilityOptions} keyboard
4622
+ * navigation (roving tabindex, arrow keys in DOM order, Enter/Space without switching tabs),
4623
+ * pointer isolation so clicks do not activate or close the tab (press-and-drag still
4624
+ * reorders/tears out tab, matching the close button), and default 20×20 flex sizing
4625
+ * (override using `--layout-tab-custom-control-size`).
4626
+ *
4627
+ * @param tabElement The `.lm_tab` DOM element for the view tab.
4628
+ * @param context Context object with DOM anchors for the tab.
4629
+ * @returns A callback to be called when the rendered elements need to be cleaned up.
4630
+ *
4631
+ * @experimental
4632
+ */
4633
+ renderCustomTabControls?: (tabElement: HTMLElement, context: CustomTabControlsContext) => (() => void) | void;
4585
4634
  /**
4586
4635
  * Accessibility options for the layout. Controls ARIA attributes and keyboard navigation.
4587
4636
  */
@@ -4671,6 +4720,19 @@ declare type CustomRequestHeaders = {
4671
4720
  headers: WebRequestHeader[];
4672
4721
  };
4673
4722
 
4723
+ /**
4724
+ * @interface @experimental
4725
+ */
4726
+ declare type CustomTabControlsContext = {
4727
+ viewIdentity: Identity_4;
4728
+ /** Anchor for inserting controls adjacent to the tab text. */
4729
+ titleElement: HTMLElement;
4730
+ /** Anchor for the trailing outer edge. Absent when the view is not closable. */
4731
+ closeElement?: HTMLElement;
4732
+ /** The favicon element. Hidden when favicons are disabled. */
4733
+ faviconElement?: HTMLElement;
4734
+ };
4735
+
4674
4736
  declare type DataChannelReadyState = RTCDataChannel['readyState'];
4675
4737
 
4676
4738
  /**
@@ -6715,6 +6777,32 @@ declare type GetLogRequestType = {
6715
6777
  name: string;
6716
6778
  };
6717
6779
 
6780
+ /**
6781
+ * End of Interop Client Events
6782
+ */
6783
+ /**
6784
+ * Performance Entry Types
6785
+ */
6786
+ declare type GetPerformanceStatsOptions = {
6787
+ /**
6788
+ * Optional filter for custom performance marks and measures.
6789
+ * When omitted, all custom marks and measures are collected.
6790
+ * When specified, only entries whose names match one of the filters are collected.
6791
+ * Strings match by substring; RegExp matches by test.
6792
+ */
6793
+ include?: (string | RegExp)[];
6794
+ /**
6795
+ * Include `resource` timing entries from each View / Frame / Window.
6796
+ * Defaults to `true`. Pass `false` to omit them.
6797
+ */
6798
+ resources?: boolean;
6799
+ /**
6800
+ * Whether to include hereio internal runtime metrics.
6801
+ * Defaults to `false`. Pass `true` to include.
6802
+ */
6803
+ browser?: boolean;
6804
+ };
6805
+
6718
6806
  declare type GetterCall<T> = ApiCall<void, T>;
6719
6807
 
6720
6808
  /**
@@ -10206,6 +10294,7 @@ declare type MutableViewOptions = {
10206
10294
  preventDragOut: boolean;
10207
10295
  interop?: InteropConfig;
10208
10296
  /* Excluded from this release type: _internalWorkspaceData */
10297
+ /* Excluded from this release type: workspacePlatform */
10209
10298
  /**
10210
10299
  * {@inheritDoc ViewThrottling}
10211
10300
  *
@@ -11121,6 +11210,7 @@ declare namespace OpenFin {
11121
11210
  ScreenCaptureBehavior,
11122
11211
  DomainSettingsPreloadScripts,
11123
11212
  PerDomainSettings,
11213
+ UrlRestoreSettings,
11124
11214
  CopyPermissions,
11125
11215
  PastePermissions,
11126
11216
  ClipboardPermissions,
@@ -11188,6 +11278,7 @@ declare namespace OpenFin {
11188
11278
  LayoutManagerOverride,
11189
11279
  LayoutManager,
11190
11280
  HeaderControlsContext,
11281
+ CustomTabControlsContext,
11191
11282
  CreateLayoutOptions,
11192
11283
  MultiInstanceViewBehavior,
11193
11284
  LayoutAccessibilityOptions,
@@ -11261,6 +11352,12 @@ declare namespace OpenFin {
11261
11352
  InteropClientEvent,
11262
11353
  ClientChangedContextGroup,
11263
11354
  InteropClientEvents,
11355
+ GetPerformanceStatsOptions,
11356
+ SerializedPerformanceOptions,
11357
+ CorePerformanceEntry,
11358
+ WebContentPerformanceStats,
11359
+ WindowPerformanceStats,
11360
+ PerformanceStatsResult,
11264
11361
  ChromeBrowser,
11265
11362
  LanguageInfo,
11266
11363
  PageTranslateOptions,
@@ -11545,6 +11642,12 @@ declare type PerDomainSettings = {
11545
11642
  * See also {@link AppLogLevel} for more information.
11546
11643
  */
11547
11644
  appLogLevel?: AppLogLevel;
11645
+ /**
11646
+ * When the live URL matches this rule, remap inbound
11647
+ * {@link View.ViewModule.navigate View.navigate} / {@link Window.WindowModule.navigate Window.navigate}
11648
+ * to {@link UrlRestoreSettings.url}.
11649
+ */
11650
+ urlRestore?: UrlRestoreSettings;
11548
11651
  };
11549
11652
 
11550
11653
  /**
@@ -11555,6 +11658,15 @@ declare type PerformanceReportEvent = Performance & BaseEvent_5 & {
11555
11658
  type: 'performance-report';
11556
11659
  };
11557
11660
 
11661
+ declare type PerformanceStatsResult = {
11662
+ mainWindow: WindowPerformanceStats;
11663
+ childWindows: WindowPerformanceStats[];
11664
+ browser?: {
11665
+ timeOrigin: number;
11666
+ entries: CorePerformanceEntry[];
11667
+ };
11668
+ };
11669
+
11558
11670
  /**
11559
11671
  * @interface
11560
11672
  *
@@ -13681,6 +13793,11 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
13681
13793
  response: OpenFin.MenuResult;
13682
13794
  };
13683
13795
  'close-tray-icon-popup-menu': IdentityCall<{}, void>;
13796
+ 'get-application-performance-stats': ApplicationIdentityCall<OpenFin.SerializedPerformanceOptions, OpenFin.PerformanceStatsResult> & {
13797
+ secure: true;
13798
+ namespace: 'Application';
13799
+ apiPath: '.getPerformanceStats';
13800
+ };
13684
13801
  'create-application': ApiCall<OpenFin.ApplicationCreationOptions, void>;
13685
13802
  'run-applications': ApiCall<{
13686
13803
  applications: Array<OpenFin.ManifestInfo>;
@@ -15066,6 +15183,16 @@ declare type SentMessage<Value> = Promise<Value> & {
15066
15183
  messageId: ReturnType<Environment['getNextMessageId']>;
15067
15184
  };
15068
15185
 
15186
+ declare type SerializedFilter = string | {
15187
+ type: 'regex';
15188
+ expression: string;
15189
+ flags?: string;
15190
+ };
15191
+
15192
+ declare type SerializedPerformanceOptions = Omit<GetPerformanceStatsOptions, 'include'> & {
15193
+ include?: SerializedFilter[];
15194
+ };
15195
+
15069
15196
  declare type ServeAssetOptions = AppAssetServeRequest | PathServeRequest;
15070
15197
 
15071
15198
  declare type ServedAssetInfo = {
@@ -18065,6 +18192,16 @@ declare type UrlChangedEvent = BaseUrlEvent & ({
18065
18192
  httpStatusText: string;
18066
18193
  });
18067
18194
 
18195
+ /**
18196
+ * Domain-settings policy that replaces a matched live URL with a configured start URI.
18197
+ */
18198
+ declare type UrlRestoreSettings = {
18199
+ /**
18200
+ * Absolute replacement URL. Full URL replace, not prefix rewrite.
18201
+ */
18202
+ url: string;
18203
+ };
18204
+
18068
18205
  /**
18069
18206
  * @interface
18070
18207
  */
@@ -18978,10 +19115,10 @@ declare type ViewTabAccessibilityOptions = {
18978
19115
  * Uses roving tabindex pattern - only one element focusable at a time.
18979
19116
  * @default ['active-tab', 'add-tab-button']
18980
19117
  */
18981
- tabNavigation?: ViewTabElements[];
19118
+ tabNavigation?: Exclude<ViewTabElements, 'active-tab-custom-control' | 'inactive-tab-custom-control'>[];
18982
19119
  /**
18983
19120
  * Controls which elements are navigable via Arrow keys.
18984
- * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button']
19121
+ * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button', 'active-tab-custom-control', 'inactive-tab-custom-control']
18985
19122
  */
18986
19123
  arrowNavigation?: ViewTabElements[];
18987
19124
  /**
@@ -19013,7 +19150,7 @@ declare type ViewTabAccessibilityOptions = {
19013
19150
  /**
19014
19151
  * Elements that can be navigated in view tabs.
19015
19152
  */
19016
- declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button';
19153
+ declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button' | 'active-tab-custom-control' | 'inactive-tab-custom-control';
19017
19154
 
19018
19155
  /**
19019
19156
  * View throttling state.
@@ -19067,6 +19204,22 @@ declare type VoidCall = ApiCall<void, void>;
19067
19204
 
19068
19205
  declare type WebContent = View_2 | _Window;
19069
19206
 
19207
+ declare type WebContentPerformanceStatBase = {
19208
+ name: string;
19209
+ entries: CorePerformanceEntry[];
19210
+ navigation: {
19211
+ historyLength: number;
19212
+ timeOrigin: number;
19213
+ };
19214
+ url: string;
19215
+ frames: WebContentPerformanceStats[];
19216
+ };
19217
+
19218
+ declare type WebContentPerformanceStats = WebContentPerformanceStatBase | {
19219
+ error: string;
19220
+ url: string;
19221
+ };
19222
+
19070
19223
  declare class WebContents<T extends BaseEvent> extends EmitterBase<T> {
19071
19224
  identity: OpenFin.Identity;
19072
19225
  entityType: 'window' | 'view';
@@ -21674,6 +21827,13 @@ declare type WindowOptionsChangedEvent = OpenFin.WindowEvents.WindowOptionsChang
21674
21827
  */
21675
21828
  declare type WindowOptionsChangedEvent_2 = OptionsChangedEvent;
21676
21829
 
21830
+ declare type WindowPerformanceStats = (WebContentPerformanceStatBase & {
21831
+ views: WebContentPerformanceStats[];
21832
+ }) | {
21833
+ error: string;
21834
+ url: string;
21835
+ };
21836
+
21677
21837
  declare type WindowPrintOptions = PrintOptions | ScreenshotPrintOptions | WindowViewsPrintOptions;
21678
21838
 
21679
21839
  /**
package/out/fdc3-api.d.ts CHANGED
@@ -929,6 +929,21 @@ declare class Application extends EmitterBase<OpenFin.ApplicationEvent> {
929
929
  * ```
930
930
  */
931
931
  closeTrayIconPopupMenu(): Promise<void>;
932
+ /**
933
+ * @experimental
934
+ * Retrieves a performance snapshot for all Windows, Views and Frames in the Application.
935
+ *
936
+ * By default, all custom marks and measures are collected, along with navigation/paint entries
937
+ * and resource timing (`resources` defaults to `true`). Pass `include` to restrict custom
938
+ * marks/measures to matching names (string substring or RegExp). Pass `browser: true` to also
939
+ * include hereio internal runtime metrics.
940
+ *
941
+ * See also [MDN | Performance Mark API](https://developer.mozilla.org/en-US/docs/Web/API/Performance/mark)
942
+ *
943
+ * Note - only currently running WebContents will be captured, and performance entries can only be
944
+ * captured for the current navigation of each.
945
+ */
946
+ getPerformanceStats: (options?: OpenFin.GetPerformanceStatsOptions) => Promise<OpenFin.PerformanceStatsResult>;
932
947
  }
933
948
 
934
949
  /**
@@ -1380,6 +1395,7 @@ declare type ApplicationOptions = LegacyWinOptionsInAppOptions & {
1380
1395
  declare type ApplicationPermissions = {
1381
1396
  setFileDownloadLocation: boolean;
1382
1397
  getFileDownloadLocation: boolean;
1398
+ getPerformanceStats: boolean;
1383
1399
  };
1384
1400
 
1385
1401
  /**
@@ -3185,23 +3201,6 @@ declare type ChildWindowCreatedEvent = ContentCreationRulesEvent & {
3185
3201
  childOptions: OpenFin.WindowOptions;
3186
3202
  };
3187
3203
 
3188
- /**
3189
- * End of Interop Client Events
3190
- */
3191
- /**
3192
- * Client-side handle for the chrome-browser feature.
3193
- *
3194
- * For extension integration to be active on a window, that window must be
3195
- * created with `chromeBrowser: true` in its window options.
3196
- *
3197
- * @remarks
3198
- * This namespace is intended for internal experimentation only. Enabling the
3199
- * `chromeBrowser` window option changes how the runtime manages content and standard
3200
- * OpenFin content behavior is not guaranteed.
3201
- *
3202
- * @internal
3203
- * @experimental This API is under active development and may change or be removed without notice.
3204
- */
3205
3204
  declare interface ChromeBrowser {
3206
3205
  /**
3207
3206
  * Extension action surface — observe and invoke installed Chrome extension actions.
@@ -4558,6 +4557,8 @@ declare type CopyPermissions = {
4558
4557
  };
4559
4558
  };
4560
4559
 
4560
+ declare type CorePerformanceEntry = Omit<PerformanceEntry, 'toJSON'>;
4561
+
4561
4562
  /**
4562
4563
  * Defines and applies rounded corners for a frameless window. **NOTE:** On macOS corner is not ellipse but circle rounded by the
4563
4564
  * average of _height_ and _width_.
@@ -4710,6 +4711,32 @@ declare type CreateLayoutOptions = {
4710
4711
  * @experimental
4711
4712
  */
4712
4713
  renderCustomHeaderControls?: (controlsElement: HTMLElement, context: HeaderControlsContext) => (() => void) | void;
4714
+ /**
4715
+ * Callback invoked once per tab after core has finished building the tab DOM.
4716
+ * Use this to inject custom controls (e.g. action icons) into view tab hats.
4717
+ *
4718
+ * Optionally return a cleanup function that will be called when the tab is destroyed.
4719
+ *
4720
+ * Custom controls are not serialized into snapshots since callbacks are not
4721
+ * serializable. The callback is re-invoked when tabs are recreated.
4722
+ *
4723
+ * **NOTE**: This feature is only supported with layout engine `'v2'` (GL2) and
4724
+ * `settings.tabOverflowBehavior: 'scroll'`.
4725
+ *
4726
+ * Optionally add the `lm_tab_custom_control` class to each injected control as a direct child of
4727
+ * `tabElement`. That opts the control into {@link LayoutAccessibilityOptions} keyboard
4728
+ * navigation (roving tabindex, arrow keys in DOM order, Enter/Space without switching tabs),
4729
+ * pointer isolation so clicks do not activate or close the tab (press-and-drag still
4730
+ * reorders/tears out tab, matching the close button), and default 20×20 flex sizing
4731
+ * (override using `--layout-tab-custom-control-size`).
4732
+ *
4733
+ * @param tabElement The `.lm_tab` DOM element for the view tab.
4734
+ * @param context Context object with DOM anchors for the tab.
4735
+ * @returns A callback to be called when the rendered elements need to be cleaned up.
4736
+ *
4737
+ * @experimental
4738
+ */
4739
+ renderCustomTabControls?: (tabElement: HTMLElement, context: CustomTabControlsContext) => (() => void) | void;
4713
4740
  /**
4714
4741
  * Accessibility options for the layout. Controls ARIA attributes and keyboard navigation.
4715
4742
  */
@@ -4799,6 +4826,19 @@ declare type CustomRequestHeaders = {
4799
4826
  headers: WebRequestHeader[];
4800
4827
  };
4801
4828
 
4829
+ /**
4830
+ * @interface @experimental
4831
+ */
4832
+ declare type CustomTabControlsContext = {
4833
+ viewIdentity: Identity_4;
4834
+ /** Anchor for inserting controls adjacent to the tab text. */
4835
+ titleElement: HTMLElement;
4836
+ /** Anchor for the trailing outer edge. Absent when the view is not closable. */
4837
+ closeElement?: HTMLElement;
4838
+ /** The favicon element. Hidden when favicons are disabled. */
4839
+ faviconElement?: HTMLElement;
4840
+ };
4841
+
4802
4842
  declare type DataChannelReadyState = RTCDataChannel['readyState'];
4803
4843
 
4804
4844
  /**
@@ -6878,6 +6918,32 @@ declare type GetLogRequestType = {
6878
6918
  name: string;
6879
6919
  };
6880
6920
 
6921
+ /**
6922
+ * End of Interop Client Events
6923
+ */
6924
+ /**
6925
+ * Performance Entry Types
6926
+ */
6927
+ declare type GetPerformanceStatsOptions = {
6928
+ /**
6929
+ * Optional filter for custom performance marks and measures.
6930
+ * When omitted, all custom marks and measures are collected.
6931
+ * When specified, only entries whose names match one of the filters are collected.
6932
+ * Strings match by substring; RegExp matches by test.
6933
+ */
6934
+ include?: (string | RegExp)[];
6935
+ /**
6936
+ * Include `resource` timing entries from each View / Frame / Window.
6937
+ * Defaults to `true`. Pass `false` to omit them.
6938
+ */
6939
+ resources?: boolean;
6940
+ /**
6941
+ * Whether to include hereio internal runtime metrics.
6942
+ * Defaults to `false`. Pass `true` to include.
6943
+ */
6944
+ browser?: boolean;
6945
+ };
6946
+
6881
6947
  declare type GetterCall<T> = ApiCall<void, T>;
6882
6948
 
6883
6949
  /**
@@ -10594,6 +10660,12 @@ declare type MutableViewOptions = {
10594
10660
  * Used by Workspace to store custom data. Overwriting or modifying this field may impact the functionality of Workspace
10595
10661
  */
10596
10662
  _internalWorkspaceData: any;
10663
+ /**
10664
+ * @internal
10665
+ * Used by Workspace to store platform-specific options (including `viewTab`). Overwriting or modifying this field may impact the functionality of Workspace.
10666
+ * Persisted on create, {@link View.View#updateOptions updateOptions}, snapshot, and {@link View.View#getOptions getOptions} — the same way windows persist `workspacePlatform`.
10667
+ */
10668
+ workspacePlatform?: WorkspacePlatformOptions;
10597
10669
  /**
10598
10670
  * {@inheritDoc ViewThrottling}
10599
10671
  *
@@ -11530,6 +11602,7 @@ declare namespace OpenFin {
11530
11602
  ScreenCaptureBehavior,
11531
11603
  DomainSettingsPreloadScripts,
11532
11604
  PerDomainSettings,
11605
+ UrlRestoreSettings,
11533
11606
  CopyPermissions,
11534
11607
  PastePermissions,
11535
11608
  ClipboardPermissions,
@@ -11597,6 +11670,7 @@ declare namespace OpenFin {
11597
11670
  LayoutManagerOverride,
11598
11671
  LayoutManager,
11599
11672
  HeaderControlsContext,
11673
+ CustomTabControlsContext,
11600
11674
  CreateLayoutOptions,
11601
11675
  MultiInstanceViewBehavior,
11602
11676
  LayoutAccessibilityOptions,
@@ -11670,6 +11744,12 @@ declare namespace OpenFin {
11670
11744
  InteropClientEvent,
11671
11745
  ClientChangedContextGroup,
11672
11746
  InteropClientEvents,
11747
+ GetPerformanceStatsOptions,
11748
+ SerializedPerformanceOptions,
11749
+ CorePerformanceEntry,
11750
+ WebContentPerformanceStats,
11751
+ WindowPerformanceStats,
11752
+ PerformanceStatsResult,
11673
11753
  ChromeBrowser,
11674
11754
  LanguageInfo,
11675
11755
  PageTranslateOptions,
@@ -11954,6 +12034,12 @@ declare type PerDomainSettings = {
11954
12034
  * See also {@link AppLogLevel} for more information.
11955
12035
  */
11956
12036
  appLogLevel?: AppLogLevel;
12037
+ /**
12038
+ * When the live URL matches this rule, remap inbound
12039
+ * {@link View.ViewModule.navigate View.navigate} / {@link Window.WindowModule.navigate Window.navigate}
12040
+ * to {@link UrlRestoreSettings.url}.
12041
+ */
12042
+ urlRestore?: UrlRestoreSettings;
11957
12043
  };
11958
12044
 
11959
12045
  /**
@@ -11964,6 +12050,15 @@ declare type PerformanceReportEvent = Performance & BaseEvent_5 & {
11964
12050
  type: 'performance-report';
11965
12051
  };
11966
12052
 
12053
+ declare type PerformanceStatsResult = {
12054
+ mainWindow: WindowPerformanceStats;
12055
+ childWindows: WindowPerformanceStats[];
12056
+ browser?: {
12057
+ timeOrigin: number;
12058
+ entries: CorePerformanceEntry[];
12059
+ };
12060
+ };
12061
+
11967
12062
  /**
11968
12063
  * @interface
11969
12064
  *
@@ -14173,6 +14268,11 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
14173
14268
  response: OpenFin.MenuResult;
14174
14269
  };
14175
14270
  'close-tray-icon-popup-menu': IdentityCall<{}, void>;
14271
+ 'get-application-performance-stats': ApplicationIdentityCall<OpenFin.SerializedPerformanceOptions, OpenFin.PerformanceStatsResult> & {
14272
+ secure: true;
14273
+ namespace: 'Application';
14274
+ apiPath: '.getPerformanceStats';
14275
+ };
14176
14276
  'create-application': ApiCall<OpenFin.ApplicationCreationOptions, void>;
14177
14277
  'run-applications': ApiCall<{
14178
14278
  applications: Array<OpenFin.ManifestInfo>;
@@ -15558,6 +15658,16 @@ declare type SentMessage<Value> = Promise<Value> & {
15558
15658
  messageId: ReturnType<Environment['getNextMessageId']>;
15559
15659
  };
15560
15660
 
15661
+ declare type SerializedFilter = string | {
15662
+ type: 'regex';
15663
+ expression: string;
15664
+ flags?: string;
15665
+ };
15666
+
15667
+ declare type SerializedPerformanceOptions = Omit<GetPerformanceStatsOptions, 'include'> & {
15668
+ include?: SerializedFilter[];
15669
+ };
15670
+
15561
15671
  declare type ServeAssetOptions = AppAssetServeRequest | PathServeRequest;
15562
15672
 
15563
15673
  declare type ServedAssetInfo = {
@@ -18570,6 +18680,16 @@ declare type UrlChangedEvent = BaseUrlEvent & ({
18570
18680
  httpStatusText: string;
18571
18681
  });
18572
18682
 
18683
+ /**
18684
+ * Domain-settings policy that replaces a matched live URL with a configured start URI.
18685
+ */
18686
+ declare type UrlRestoreSettings = {
18687
+ /**
18688
+ * Absolute replacement URL. Full URL replace, not prefix rewrite.
18689
+ */
18690
+ url: string;
18691
+ };
18692
+
18573
18693
  /**
18574
18694
  * @interface
18575
18695
  */
@@ -19520,10 +19640,10 @@ declare type ViewTabAccessibilityOptions = {
19520
19640
  * Uses roving tabindex pattern - only one element focusable at a time.
19521
19641
  * @default ['active-tab', 'add-tab-button']
19522
19642
  */
19523
- tabNavigation?: ViewTabElements[];
19643
+ tabNavigation?: Exclude<ViewTabElements, 'active-tab-custom-control' | 'inactive-tab-custom-control'>[];
19524
19644
  /**
19525
19645
  * Controls which elements are navigable via Arrow keys.
19526
- * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button']
19646
+ * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button', 'active-tab-custom-control', 'inactive-tab-custom-control']
19527
19647
  */
19528
19648
  arrowNavigation?: ViewTabElements[];
19529
19649
  /**
@@ -19555,7 +19675,7 @@ declare type ViewTabAccessibilityOptions = {
19555
19675
  /**
19556
19676
  * Elements that can be navigated in view tabs.
19557
19677
  */
19558
- declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button';
19678
+ declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button' | 'active-tab-custom-control' | 'inactive-tab-custom-control';
19559
19679
 
19560
19680
  /**
19561
19681
  * View throttling state.
@@ -19609,6 +19729,22 @@ declare type VoidCall = ApiCall<void, void>;
19609
19729
 
19610
19730
  declare type WebContent = View_2 | _Window;
19611
19731
 
19732
+ declare type WebContentPerformanceStatBase = {
19733
+ name: string;
19734
+ entries: CorePerformanceEntry[];
19735
+ navigation: {
19736
+ historyLength: number;
19737
+ timeOrigin: number;
19738
+ };
19739
+ url: string;
19740
+ frames: WebContentPerformanceStats[];
19741
+ };
19742
+
19743
+ declare type WebContentPerformanceStats = WebContentPerformanceStatBase | {
19744
+ error: string;
19745
+ url: string;
19746
+ };
19747
+
19612
19748
  declare class WebContents<T extends BaseEvent> extends EmitterBase<T> {
19613
19749
  identity: OpenFin.Identity;
19614
19750
  entityType: 'window' | 'view';
@@ -22219,6 +22355,13 @@ declare type WindowOptionsChangedEvent = OpenFin.WindowEvents.WindowOptionsChang
22219
22355
  */
22220
22356
  declare type WindowOptionsChangedEvent_2 = OptionsChangedEvent;
22221
22357
 
22358
+ declare type WindowPerformanceStats = (WebContentPerformanceStatBase & {
22359
+ views: WebContentPerformanceStats[];
22360
+ }) | {
22361
+ error: string;
22362
+ url: string;
22363
+ };
22364
+
22222
22365
  declare type WindowPrintOptions = PrintOptions | ScreenshotPrintOptions | WindowViewsPrintOptions;
22223
22366
 
22224
22367
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfin/fdc3-api",
3
- "version": "46.100.67",
3
+ "version": "46.100.71",
4
4
  "description": "OpenFin fdc3 module utilities and types.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "private": false,