Index: Source/modules/notifications/ServiceWorkerRegistrationNotifications.cpp |
diff --git a/Source/modules/notifications/ServiceWorkerRegistrationNotifications.cpp b/Source/modules/notifications/ServiceWorkerRegistrationNotifications.cpp |
index 9b1da2f0d7ec9461c7f9d9284534d0f288aa0c06..f3de3231510b95c68b30d6feee7e0e36e54f637a 100644 |
--- a/Source/modules/notifications/ServiceWorkerRegistrationNotifications.cpp |
+++ b/Source/modules/notifications/ServiceWorkerRegistrationNotifications.cpp |
@@ -92,9 +92,16 @@ ScriptPromise ServiceWorkerRegistrationNotifications::showNotification(ScriptSta |
iconUrl = KURL(); |
} |
+ KURL soundUrl; |
+ if (options.hasSound() && !options.sound().isEmpty()) { |
+ soundUrl = executionContext->completeURL(options.sound()); |
+ if (!soundUrl.isValid()) |
+ soundUrl = KURL(); |
+ } |
+ |
WebNotificationData::Direction dir = options.dir() == "rtl" ? WebNotificationData::DirectionRightToLeft : WebNotificationData::DirectionLeftToRight; |
NavigatorVibration::VibrationPattern vibrate = NavigatorVibration::sanitizeVibrationPattern(options.vibrate()); |
- WebNotificationData notification(title, dir, options.lang(), options.body(), options.tag(), iconUrl, vibrate, options.silent(), dataAsWireBytes); |
+ WebNotificationData notification(title, dir, options.lang(), options.body(), options.tag(), iconUrl, soundUrl, vibrate, options.silent(), dataAsWireBytes); |
WebNotificationShowCallbacks* callbacks = new CallbackPromiseAdapter<void, void>(resolver); |
SecurityOrigin* origin = executionContext->securityOrigin(); |