Tip: Calling window.atob() and btoa() from Jetpack-SDK
window.atob()
decodes Base64 string, and window.btoa()
encodes to Base64 string. These functions are not global functions but DOM Window's methods.
MDC page said as follows:
atob() is also available to XPCOM components implemented in JavaScript, even though window is not the global object in components.
But atob()
seems to be implemented in only nsIDOMWindowInternal
(i.e. DOM Window.) I could not find for atob()
function in any other XPCOM components.
I think a certain DOM Window instance must be required. So I write following code for encode/decode Base64 text from Jetpack-SDK:
Note that require("window-utils").windowIterator()
returns a iterator and calling next()
function returns first element (window instance) of the iterator.