In gwt jsni methods you need to use "$wnd." prefixes instead of "window.". Note, that atob() is actually window.atob(). You need to add this prefix for all window.xxx methods in your jsni code (before "atob(base64)", "URL" and "webkitUrl") :
private native String getBlobUrl(String b64)/*-{
function base64ToBlob(base64) {
var binary = $wnd.atob(base64);
var len = binary.length;
var buffer = new ArrayBuffer(len);
var view = new Uint8Array(buffer);
for (var i = 0; i < len; i++) {
view[i] = binary.charCodeAt(i);
}
var blob = new Blob([ view ]);
return blob;
};
var newBlob = base64ToBlob(b64);
var URLObj = $wnd.URL || $wnd.webkitURL;
var source = URLObj.createObjectURL(newBlob);
return source;
}-*/;
Good article about jsni: http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html