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

@ -158,7 +158,7 @@ Remember that PC and PC XT machines supported only 160Kb diskettes (on any versi
320Kb diskettes (on PC-DOS 1.1 and higher), and 180Kb and 360Kb diskettes (on PC-DOS 2.0 and higher).
The 1.2Mb diskette format was introduced with the PC AT, and 720Kb and 1.44Mb diskette formats were
introduced with the 8Mhz PC AT and PS/2 models. So, when using any of these larger formats, be sure you're
supported later on 8Mhz PC AT and PS/2 models. So, when using any of these larger formats, be sure you're
also using a compatible machine configuration.
Learn more about PCjs disk images [here](/disks/).

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

View file

@ -628,11 +628,11 @@ function nk(a,b){a.wc=null;var c=s(ka()+"/api/v1/user?req=verify&user="+b),d=c[1
function mk(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Zj(a,"1.15.7");d.data=c;b=s(ka()+"/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.xa("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.xa(c),oa("user",""),a.wc=null)}}
function kb(a){if(a.vc&&!a.Rg){var b=!la("Click OK to save the PCjs machine state.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");lk(a,b,!0);!b&&a.Tk?window&&window.location.reload():(b||(a.zh=!0),a.Kg(fk),a.zh=!1)}else a.reset(),a.ja&&ib(a.ja)}function D(a,b,c){a=Ea(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}
v(function(){for(var a=C(window.document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],l=A(f),l=new ek(l,d,!0);B(l,f);hk(l,l.Kg)}});qa.show.push(function(){for(var a=C(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ga("Computer",c.id))&&c.rj&&!c.Ab&&c.Kg(-1)}});
qa.exit.push(function(){for(var a=C(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ga("Computer",c.id))&&c.Ab&&lk(c,!(!c.vc||c.Rg),!0)}});var ok=0;function pk(a,b,c,d,e,f){e("Loading "+a+"...");s(a,!0,null,null,function(l,g,m){m?f(g,null):qk(g,a,b,c,d,e,f)})}
qa.exit.push(function(){for(var a=C(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ga("Computer",c.id))&&c.Ab&&lk(c,!(!c.vc||c.Rg),!0)}});var ok=0;function pk(a,b,c,d,e,f){e("Loading "+a+"...");s(a,!0,null,null,function(l,g,m){m?(g||(g="unable to load "+a+" ("+m+")"),f(g,null)):qk(g,a,b,c,d,e,f)})}
function qk(a,b,c,d,e,f,l){function g(a,f){if(f)l(f,null);else{if(c){var g=b;g&&0>g.indexOf("/")&&(g=window.location.pathname+g);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(g?" url=$2"+g+"$2":""))}g=null;if(0===a.indexOf("<"))try{window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){g=
null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);l(a,g)}}a?e?rk(a,f,g):g(a,null):l("no data"+(b?" for file: "+b:""),null)}
function rk(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");s(e,!0,null,null,function(f,l,g){if(g||!l)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=l.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=g[0],n,q=/( [a-z]+=)(['"])(.*?)\2/g;n=q.exec(f);)m=0>m.indexOf(n[1])?m.replace(">",n[0]+">"):m.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);g[0]!=m&&(l=l.replace(g[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}l=l.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],l);rk(a,b,c)}})}else c(a,null)}
function sk(a,b,c,d){function e(a){if(void 0===m){var b=g&&C(g,"machine-warning");m=b&&b[0]||null}m&&(m.innerHTML=fa(a))}function f(a){e("Error: "+a);n&&l();n=!1}function l(){0==--ok&&wa(!0)}var g,m,n=!0;ok++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.7/components.xsl");var q=function(a,d){if(d){var m=function(a,m){if(m)if(m)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=d.transformNode(m);n?(g.outerHTML=n,l()):f("transformNodeToObject failed")}else window.document.implementation&&
function sk(a,b,c,d){function e(a){if(void 0===m){var b=g&&C(g,"machine-warning");m=b&&b[0]||g}m&&(m.innerHTML=fa(a))}function f(a){e("Error: "+a);n&&l();n=!1}function l(){0==--ok&&wa(!0)}var g,m,n=!0;ok++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.7/components.xsl");var q=function(a,d){if(d){var m=function(a,m){if(m)if(m)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=d.transformNode(m);n?(g.outerHTML=n,l()):f("transformNodeToObject failed")}else window.document.implementation&&
window.document.implementation.createDocument?(n=new XSLTProcessor,n.importStylesheet(m),(n=n.transformToFragment(d,window.document))?(g.parentNode.replaceChild(n,g),l()):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(a)};d?pk(c,null,null,!1,e,m):f("failed to load XML file: "+b)}else f(a)};"<"!=b.substr(0,1)?pk(b,a,d,!0,e,q):qk(b,null,a,d,!1,e,q)}else f("failed to find machine element: "+a)}catch(u){f(u.message)}return n}
window.embedPC=function(a,b,c,d){return sk(a,b,c,d)};window.enableEvents=wa;window.sendEvent=xa;wa(!1);})();//@ sourceMappingURL=/tmp/pcjs/1.15.7/pc.map

Binary file not shown.