diff --git a/mozilla/docshell/base/nsWebShell.cpp b/mozilla/docshell/base/nsWebShell.cpp index 93001ffa749..8919457aae6 100644 --- a/mozilla/docshell/base/nsWebShell.cpp +++ b/mozilla/docshell/base/nsWebShell.cpp @@ -137,6 +137,7 @@ public: // nsIScriptContextOwner NS_IMETHOD GetScriptContext(nsIScriptContext **aContext); + NS_IMETHOD GetScriptGlobalObject(nsIScriptGlobalObject **aGlobal); NS_IMETHOD ReleaseScriptContext(nsIScriptContext *aContext); // nsWebShell @@ -1051,6 +1052,23 @@ nsWebShell::GetScriptContext(nsIScriptContext** aContext) return res; } +nsresult +nsWebShell::GetScriptGlobalObject(nsIScriptGlobalObject** aGlobal) +{ + NS_PRECONDITION(nsnull != aGlobal, "null arg"); + nsresult res = NS_OK; + + if (nsnull == mScriptGlobal) { + res = NS_NewScriptGlobalObject(&mScriptGlobal); + if (NS_OK != res) { + return res; + } + } + *aGlobal = mScriptGlobal; + + return res; +} + nsresult nsWebShell::ReleaseScriptContext(nsIScriptContext *aContext) { diff --git a/mozilla/webshell/src/nsWebShell.cpp b/mozilla/webshell/src/nsWebShell.cpp index 93001ffa749..8919457aae6 100644 --- a/mozilla/webshell/src/nsWebShell.cpp +++ b/mozilla/webshell/src/nsWebShell.cpp @@ -137,6 +137,7 @@ public: // nsIScriptContextOwner NS_IMETHOD GetScriptContext(nsIScriptContext **aContext); + NS_IMETHOD GetScriptGlobalObject(nsIScriptGlobalObject **aGlobal); NS_IMETHOD ReleaseScriptContext(nsIScriptContext *aContext); // nsWebShell @@ -1051,6 +1052,23 @@ nsWebShell::GetScriptContext(nsIScriptContext** aContext) return res; } +nsresult +nsWebShell::GetScriptGlobalObject(nsIScriptGlobalObject** aGlobal) +{ + NS_PRECONDITION(nsnull != aGlobal, "null arg"); + nsresult res = NS_OK; + + if (nsnull == mScriptGlobal) { + res = NS_NewScriptGlobalObject(&mScriptGlobal); + if (NS_OK != res) { + return res; + } + } + *aGlobal = mScriptGlobal; + + return res; +} + nsresult nsWebShell::ReleaseScriptContext(nsIScriptContext *aContext) {