# HG changeset patch # Parent abe6790a5dd841133131fdd5de7e86ac56b71b74 # User SUN Haitao diff -r abe6790a5dd8 dom/base/nsGlobalWindow.cpp --- a/dom/base/nsGlobalWindow.cpp Thu Oct 31 20:26:04 2013 -0700 +++ b/dom/base/nsGlobalWindow.cpp Mon Nov 04 20:30:56 2013 +0800 @@ -7797,11 +7797,14 @@ scInfo.window = this; nsIPrincipal* principal = GetPrincipal(); + bool isInBrowserElement; + NS_ENSURE_SUCCESS_VOID(principal->GetIsInBrowserElement(&isInBrowserElement)); + bool banned = !isInBrowserElement && + NS_FAILED(callerPrin->Subsumes(principal, &scInfo.subsumes)); JS::Rooted message(aCx, aMessage); JS::Rooted transfer(aCx, aTransfer); - if (NS_FAILED(callerPrin->Subsumes(principal, &scInfo.subsumes)) || - !buffer.write(aCx, message, transfer, &kPostMessageCallbacks, - &scInfo)) { + if (banned || + !buffer.write(aCx, message, transfer, &kPostMessageCallbacks, &scInfo)) { aError.Throw(NS_ERROR_DOM_DATA_CLONE_ERR); return; } diff -r abe6790a5dd8 dom/base/test/iframe_bug927747.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/base/test/iframe_bug927747.html Mon Nov 04 20:30:56 2013 +0800 @@ -0,0 +1,28 @@ + + + + + + + diff -r abe6790a5dd8 dom/base/test/mochitest.ini --- a/dom/base/test/mochitest.ini Thu Oct 31 20:26:04 2013 -0700 +++ b/dom/base/test/mochitest.ini Mon Nov 04 20:30:56 2013 +0800 @@ -1,11 +1,13 @@ [DEFAULT] support-files = + iframe_bug927747.html iframe_messageChannel_cloning.html iframe_messageChannel_pingpong.html iframe_messageChannel_post.html [test_Image_constructor.html] [test_bug913761.html] +[test_bug927747.html] [test_constructor-assignment.html] [test_constructor.html] [test_document.all_unqualified.html] diff -r abe6790a5dd8 dom/base/test/test_bug927747.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/base/test/test_bug927747.html Mon Nov 04 20:30:56 2013 +0800 @@ -0,0 +1,77 @@ + + + + + + + Test for Bug 927747 + + + + +Mozilla Bug 927747 +
+ + + +