From e031508bf0f033234a6ee1c73d75c7b9877aa44d Mon Sep 17 00:00:00 2001 From: Catalin Badea Date: Tue, 14 Jul 2015 17:41:13 -0700 Subject: [PATCH] Bug 1179685 - Fix messageport assert in wpt service worker test. r=baku --- dom/workers/ServiceWorkerClient.cpp | 3 ++- .../service-worker/postmessage-msgport-to-client.https.html | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dom/workers/ServiceWorkerClient.cpp b/dom/workers/ServiceWorkerClient.cpp index 31990b0048a6..d9d1e65a5281 100644 --- a/dom/workers/ServiceWorkerClient.cpp +++ b/dom/workers/ServiceWorkerClient.cpp @@ -129,10 +129,11 @@ private: closure.mClonedObjects.SwapElements(mClosure.mClonedObjects); MOZ_ASSERT(mClosure.mMessagePorts.IsEmpty()); closure.mMessagePortIdentifiers.SwapElements(mClosure.mMessagePortIdentifiers); + closure.mParentWindow = do_QueryInterface(aTargetContainer->GetParentObject()); JS::Rooted messageData(aCx); if (!mBuffer.read(aCx, &messageData, - WorkerStructuredCloneCallbacks(true))) { + WorkerStructuredCloneCallbacks(true), &closure)) { xpc::Throw(aCx, NS_ERROR_DOM_DATA_CLONE_ERR); return NS_ERROR_FAILURE; } diff --git a/testing/web-platform/mozilla/tests/service-workers/service-worker/postmessage-msgport-to-client.https.html b/testing/web-platform/mozilla/tests/service-workers/service-worker/postmessage-msgport-to-client.https.html index 365465918fee..cba4479488a8 100644 --- a/testing/web-platform/mozilla/tests/service-workers/service-worker/postmessage-msgport-to-client.https.html +++ b/testing/web-platform/mozilla/tests/service-workers/service-worker/postmessage-msgport-to-client.https.html @@ -15,7 +15,7 @@ t.step(function() { .then(function() { return with_iframe(scope); }) .then(function(frame) { var w = frame.contentWindow; - w.onmessage = t.step_func(onMessage); + w.navigator.serviceWorker.onmessage = t.step_func(onMessage); w.navigator.serviceWorker.controller.postMessage('ping'); }) .catch(unreached_rejection(t));