Bug 651980 - 'Intermittent dom/src/threads/test/test_chromeWorkerJSM.xul | Test timed out'. r=mrbkap.

This commit is contained in:
Ben Turner 2011-04-22 10:38:13 -07:00
parent e07a78dad0
commit 6e5d6edb66
2 changed files with 20 additions and 6 deletions

View File

@ -1481,15 +1481,29 @@ NS_INTERFACE_MAP_END
NS_IMETHODIMP
nsDOMWorker::PreCreate(nsISupports* aObject,
JSContext* /* aCx */,
JSContext* aCx,
JSObject* /* aPlannedParent */,
JSObject** /* aParent */)
JSObject** aParent)
{
nsCOMPtr<nsIWorker> iworker(do_QueryInterface(aObject));
if (iworker && static_cast<nsDOMWorker *>(iworker.get())->IsPrivileged()) {
return NS_SUCCESS_CHROME_ACCESS_ONLY;
NS_ENSURE_TRUE(iworker, NS_ERROR_UNEXPECTED);
nsCOMPtr<nsIXPConnectWrappedNative> wrappedNative;
{
MutexAutoLock lock(mLock);
wrappedNative = mWrappedNative;
}
return NS_OK;
// Don't allow XPConnect to create multiple WrappedNatives for this object.
if (wrappedNative) {
JSObject* object;
nsresult rv = wrappedNative->GetJSObject(&object);
NS_ENSURE_SUCCESS(rv, rv);
*aParent = JS_GetParent(aCx, object);
}
return IsPrivileged() ? NS_SUCCESS_CHROME_ACCESS_ONLY : NS_OK;
}
NS_IMETHODIMP

View File

@ -131,7 +131,7 @@ _SUBDIR_TEST_FILES = \
_CHROME_TEST_FILES = \
test_chromeWorker.xul \
test_chromeWorkerComponent.xul \
$(warning test_chromeWorkerJSM.xul disabled because the respective code has major problems and is being rewritten, see bug 625222) \
test_chromeWorkerJSM.xul \
chromeWorker_worker.js \
chromeWorker_subworker.js \
$(NULL)