Improved error reporting when embedMachine() fails (eg, due to browser restrictions)

This commit is contained in:
Jeff Parsons 2014-10-30 09:54:09 -07:00 • committed by jeffpar
commit 29a3aceeb0
9 changed files with 15 additions and 14 deletions

View file

@ -742,11 +742,11 @@ function Sl(a,b){a.Pc=null;var c=sa(ta()+"/api/v1/user?req=verify&user="+b),d=c[
function Rl(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Hl(a,"1.15.7");d.data=c;b=sa(ta()+"/api/v1/user",!1,d);d=b[1];if(b[0]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[0]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Ha("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.Ha(c),xa("user",""),a.Pc=null)}}
function Mb(a){if(a.Oc&&!a.Vh){var b=!ua("Click OK to save the PCjs machine state.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Gl(a,b,!0);!b&&a.gm?window&&window.location.reload():(b||(a.Gi=!0),a.Oh(Ll),a.Gi=!1)}else a.reset(),a.T&&Ib(a.T)}function C(a,b,c){a=Ra(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}k.Qa=function(a,b){this.Y&&(b||D(this.Y,this.Y.rm))&&this.Y.message(a)};
Fa(function(){for(var a=B(window.document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=B(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=A(f),g=new Kl(g,d,!0);Ua(g,f);Nl(g,g.Oh)}});Ba.show.push(function(){for(var a=B(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ta("Computer",c.id))&&c.Ck&&!c.Mb&&c.Oh(-1)}});
Ba.exit.push(function(){for(var a=B(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ta("Computer",c.id))&&c.Mb&&Gl(c,!(!c.Oc||c.Vh),!0)}});var Tl=0;function Ul(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,!0,null,null,function(g,h,l){l?f(h,null):Vl(h,a,b,c,d,e,f)})}
Ba.exit.push(function(){for(var a=B(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ta("Computer",c.id))&&c.Mb&&Gl(c,!(!c.Oc||c.Vh),!0)}});var Tl=0;function Ul(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,!0,null,null,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):Vl(h,a,b,c,d,e,f)})}
function Vl(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){var h=b;h&&0>h.indexOf("/")&&(h=window.location.pathname+h);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(h?" url=$2"+h+"$2":""))}h=null;if(0===a.indexOf("<"))try{window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){h=
null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?Wl(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Wl(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");sa(e,!0,null,null,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],n,q=/( [a-z]+=)(['"])(.*?)\2/g;n=q.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Wl(a,b,c)}})}else c(a,null)}
function Xl(a,b,c,d){function e(a){if(void 0===l){var b=h&&B(h,"machine-warning");l=b&&b[0]||null}l&&(l.innerHTML=ha(a))}function f(a){e("Error: "+a);n&&g();n=!1}function g(){0==--Tl&&Ia(!0)}var h,l,n=!0;Tl++;try{if(h=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.7/components.xsl");var q=function(a,d){if(d){var l=function(a,l){if(l)if(l)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=d.transformNode(l);n?(h.outerHTML=n,g()):f("transformNodeToObject failed")}else window.document.implementation&&
function Xl(a,b,c,d){function e(a){if(void 0===l){var b=h&&B(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=ha(a))}function f(a){e("Error: "+a);n&&g();n=!1}function g(){0==--Tl&&Ia(!0)}var h,l,n=!0;Tl++;try{if(h=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.7/components.xsl");var q=function(a,d){if(d){var l=function(a,l){if(l)if(l)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=d.transformNode(l);n?(h.outerHTML=n,g()):f("transformNodeToObject failed")}else window.document.implementation&&
window.document.implementation.createDocument?(n=new XSLTProcessor,n.importStylesheet(l),(n=n.transformToFragment(d,window.document))?(h.parentNode.replaceChild(n,h),g()):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(a)};d?Ul(c,null,null,!1,e,l):f("failed to load XML file: "+b)}else f(a)};"<"!=b.substr(0,1)?Ul(b,a,d,!0,e,q):Vl(b,null,a,d,!1,e,q)}else f("failed to find machine element: "+a)}catch(t){f(t.message)}return n}
window.embedPC=function(a,b,c,d){return Xl(a,b,c,d)};window.enableEvents=Ia;window.sendEvent=Ja;Ia(!1);})();//@ sourceMappingURL=/tmp/pcjs/1.15.7/pc-dbg.map