diff --git a/front_end/main/Main.js b/front_end/main/Main.js
index 69e4eadeb1..e104fcc6dd 100644
--- a/front_end/main/Main.js
+++ b/front_end/main/Main.js
@@ -110,6 +110,7 @@ Main.Main = class {
Runtime.experiments.register('sourcesPrettyPrint', 'Automatically pretty print in the Sources Panel');
Runtime.experiments.register('backgroundServices', 'Background web platform feature events', true);
Runtime.experiments.register('backgroundServicesNotifications', 'Background services section for Notifications');
+ Runtime.experiments.register('backgroundServicesPaymentHandler', 'Background services section for Payment Handler');
Runtime.experiments.register('backgroundServicesPushMessaging', 'Background services section for Push Messaging');
Runtime.experiments.register('blackboxJSFramesOnTimeline', 'Blackbox JavaScript frames on Timeline', true);
Runtime.experiments.register('emptySourceMapAutoStepping', 'Empty sourcemap auto-stepping');
diff --git a/front_end/resources/ApplicationPanelSidebar.js b/front_end/resources/ApplicationPanelSidebar.js
index 6c914490eb..0a21b8a7d6 100644
--- a/front_end/resources/ApplicationPanelSidebar.js
+++ b/front_end/resources/ApplicationPanelSidebar.js
@@ -119,6 +119,11 @@ Resources.ApplicationPanelSidebar = class extends UI.VBox {
new Resources.BackgroundServiceTreeElement(panel, Protocol.BackgroundService.ServiceName.Notifications);
backgroundServiceTreeElement.appendChild(this.notificationsTreeElement);
}
+ if (Runtime.experiments.isEnabled('backgroundServicesPaymentHandler')) {
+ this.paymentHandlerTreeElement =
+ new Resources.BackgroundServiceTreeElement(panel, Protocol.BackgroundService.ServiceName.PaymentHandler);
+ backgroundServiceTreeElement.appendChild(this.paymentHandlerTreeElement);
+ }
if (Runtime.experiments.isEnabled('backgroundServicesPushMessaging')) {
this.pushMessagingTreeElement =
new Resources.BackgroundServiceTreeElement(panel, Protocol.BackgroundService.ServiceName.PushMessaging);
@@ -245,6 +250,8 @@ Resources.ApplicationPanelSidebar = class extends UI.VBox {
this.backgroundSyncTreeElement._initialize(backgroundServiceModel);
if (Runtime.experiments.isEnabled('backgroundServicesNotifications'))
this.notificationsTreeElement._initialize(backgroundServiceModel);
+ if (Runtime.experiments.isEnabled('backgroundServicesPaymentHandler'))
+ this.paymentHandlerTreeElement._initialize(backgroundServiceModel);
if (Runtime.experiments.isEnabled('backgroundServicesPushMessaging'))
this.pushMessagingTreeElement._initialize(backgroundServiceModel);
}
@@ -762,6 +769,8 @@ Resources.BackgroundServiceTreeElement = class extends Resources.BaseStorageTree
return 'mediumicon-cloud';
case Protocol.BackgroundService.ServiceName.Notifications:
return 'mediumicon-bell';
+ case Protocol.BackgroundService.ServiceName.PaymentHandler:
+ return 'mediumicon-payment';
default:
console.error(`Service ${this._serviceName} does not have a dedicated icon`);
return 'mediumicon-table';
diff --git a/front_end/resources/BackgroundServiceView.js b/front_end/resources/BackgroundServiceView.js
index 45456bc595..05a63172aa 100644
--- a/front_end/resources/BackgroundServiceView.js
+++ b/front_end/resources/BackgroundServiceView.js
@@ -17,6 +17,8 @@ Resources.BackgroundServiceView = class extends UI.VBox {
return ls`Push Messaging`;
case Protocol.BackgroundService.ServiceName.Notifications:
return ls`Notifications`;
+ case Protocol.BackgroundService.ServiceName.PaymentHandler:
+ return ls`Payment Handler`;
default:
return '';
}
diff --git a/front_end/resources/resources_strings.grdp b/front_end/resources/resources_strings.grdp
index 9353faf969..4ed2e5b185 100644
--- a/front_end/resources/resources_strings.grdp
+++ b/front_end/resources/resources_strings.grdp
@@ -404,4 +404,7 @@ read the "$1s" table.
Source
+
+ Payment Handler
+
\ No newline at end of file