author | Andrew McCreight <amccreight@mozilla.com> |
Sat, 25 Aug 2012 14:56:45 -0700 | |
changeset 103429 | 573c753b7bc806585fac9ccb3499d0b66499c9b5 |
parent 103428 | 0b399d43b570de2eea85a6da24612e87c1563c5a |
child 103430 | b431f498a9baa3cdf126608523222a4e9cac4dc6 |
push id | 13985 |
push user | amccreight@mozilla.com |
push date | Sat, 25 Aug 2012 21:57:23 +0000 |
treeherder | mozilla-inbound@573c753b7bc8 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | mrbkap |
bugs | 765527 |
milestone | 17.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
dom/base/nsDOMClassInfo.cpp | file | annotate | diff | comparison | revisions | |
dom/base/nsDOMClassInfo.h | file | annotate | diff | comparison | revisions |
--- a/dom/base/nsDOMClassInfo.cpp +++ b/dom/base/nsDOMClassInfo.cpp @@ -1846,16 +1846,17 @@ jsid nsDOMClassInfo::sName_id jsid nsDOMClassInfo::sScrollX_id = JSID_VOID; jsid nsDOMClassInfo::sScrollY_id = JSID_VOID; jsid nsDOMClassInfo::sScrollMaxX_id = JSID_VOID; jsid nsDOMClassInfo::sScrollMaxY_id = JSID_VOID; jsid nsDOMClassInfo::sItem_id = JSID_VOID; jsid nsDOMClassInfo::sNamedItem_id = JSID_VOID; jsid nsDOMClassInfo::sEnumerate_id = JSID_VOID; jsid nsDOMClassInfo::sNavigator_id = JSID_VOID; +jsid nsDOMClassInfo::sTop_id = JSID_VOID; jsid nsDOMClassInfo::sDocument_id = JSID_VOID; jsid nsDOMClassInfo::sFrames_id = JSID_VOID; jsid nsDOMClassInfo::sSelf_id = JSID_VOID; jsid nsDOMClassInfo::sOpener_id = JSID_VOID; jsid nsDOMClassInfo::sAll_id = JSID_VOID; jsid nsDOMClassInfo::sTags_id = JSID_VOID; jsid nsDOMClassInfo::sAddEventListener_id= JSID_VOID; jsid nsDOMClassInfo::sBaseURIObject_id = JSID_VOID; @@ -2125,16 +2126,17 @@ nsDOMClassInfo::DefineStaticJSVals(JSCon SET_JSID_TO_STRING(sScrollX_id, cx, "scrollX"); SET_JSID_TO_STRING(sScrollY_id, cx, "scrollY"); SET_JSID_TO_STRING(sScrollMaxX_id, cx, "scrollMaxX"); SET_JSID_TO_STRING(sScrollMaxY_id, cx, "scrollMaxY"); SET_JSID_TO_STRING(sItem_id, cx, "item"); SET_JSID_TO_STRING(sNamedItem_id, cx, "namedItem"); SET_JSID_TO_STRING(sEnumerate_id, cx, "enumerateProperties"); SET_JSID_TO_STRING(sNavigator_id, cx, "navigator"); + SET_JSID_TO_STRING(sTop_id, cx, "top"); SET_JSID_TO_STRING(sDocument_id, cx, "document"); SET_JSID_TO_STRING(sFrames_id, cx, "frames"); SET_JSID_TO_STRING(sSelf_id, cx, "self"); SET_JSID_TO_STRING(sOpener_id, cx, "opener"); SET_JSID_TO_STRING(sAll_id, cx, "all"); SET_JSID_TO_STRING(sTags_id, cx, "tags"); SET_JSID_TO_STRING(sAddEventListener_id,cx, "addEventListener"); SET_JSID_TO_STRING(sBaseURIObject_id, cx, "baseURIObject"); @@ -5241,16 +5243,17 @@ nsDOMClassInfo::ShutDown() sName_id = JSID_VOID; sScrollX_id = JSID_VOID; sScrollY_id = JSID_VOID; sScrollMaxX_id = JSID_VOID; sScrollMaxY_id = JSID_VOID; sItem_id = JSID_VOID; sEnumerate_id = JSID_VOID; sNavigator_id = JSID_VOID; + sTop_id = JSID_VOID; sDocument_id = JSID_VOID; sFrames_id = JSID_VOID; sSelf_id = JSID_VOID; sOpener_id = JSID_VOID; sAll_id = JSID_VOID; sTags_id = JSID_VOID; sAddEventListener_id= JSID_VOID; sBaseURIObject_id = JSID_VOID; @@ -7345,16 +7348,39 @@ nsWindowSH::NewResolve(nsIXPConnectWrapp JSPROP_ENUMERATE)) { return NS_ERROR_FAILURE; } *objp = obj; return NS_OK; } + if (sTop_id == id) { + nsCOMPtr<nsIDOMWindow> top; + rv = win->GetScriptableTop(getter_AddRefs(top)); + NS_ENSURE_SUCCESS(rv, rv); + + jsval v; + nsCOMPtr<nsIXPConnectJSObjectHolder> holder; + rv = WrapNative(cx, obj, top, &NS_GET_IID(nsIDOMWindow), true, + &v, getter_AddRefs(holder)); + NS_ENSURE_SUCCESS(rv, rv); + + // Hold on to the top window object as a global property so we + // don't need to worry about losing expando properties etc. + if (!::JS_DefinePropertyById(cx, obj, id, v, nullptr, nullptr, + JSPROP_READONLY | JSPROP_PERMANENT | + JSPROP_ENUMERATE)) { + return NS_ERROR_FAILURE; + } + *objp = obj; + + return NS_OK; + } + if (sDocument_id == id) { nsCOMPtr<nsIDocument> document = win->GetDoc(); JS::Value v; nsCOMPtr<nsIXPConnectJSObjectHolder> holder; rv = WrapNative(cx, JS_GetGlobalForScopeChain(cx), document, document, &NS_GET_IID(nsIDOMDocument), &v, getter_AddRefs(holder), false); NS_ENSURE_SUCCESS(rv, rv);
--- a/dom/base/nsDOMClassInfo.h +++ b/dom/base/nsDOMClassInfo.h @@ -238,16 +238,17 @@ public: static jsid sScrollX_id; static jsid sScrollY_id; static jsid sScrollMaxX_id; static jsid sScrollMaxY_id; static jsid sItem_id; static jsid sNamedItem_id; static jsid sEnumerate_id; static jsid sNavigator_id; + static jsid sTop_id; static jsid sDocument_id; static jsid sFrames_id; static jsid sSelf_id; static jsid sOpener_id; static jsid sAll_id; static jsid sTags_id; static jsid sAddEventListener_id; static jsid sBaseURIObject_id;