diff --git a/index.html b/index.html index 77aa026f..9486eabb 100644 --- a/index.html +++ b/index.html @@ -271,8 +271,7 @@ if (window.location.host.endsWith('8bitworkshop.com')) { - - + diff --git a/src/common/baseplatform.ts b/src/common/baseplatform.ts index 29b83036..122ea955 100644 --- a/src/common/baseplatform.ts +++ b/src/common/baseplatform.ts @@ -61,7 +61,7 @@ type MemoryMapType = "main" | "vram"; type MemoryMap = { [type:string] : Segment[] }; export function isDebuggable(arg:any): arg is Debuggable { - return typeof arg.getDebugCategories === 'function'; + return arg && typeof arg.getDebugCategories === 'function'; } export interface Debuggable { diff --git a/src/common/emu.ts b/src/common/emu.ts index 5951f25b..d648deff 100644 --- a/src/common/emu.ts +++ b/src/common/emu.ts @@ -239,7 +239,7 @@ export class AnimationTimer { running : boolean = false; pulsing : boolean = false; lastts = 0; - useReqAnimFrame = false; //TODO window.requestAnimationFrame ? (frequencyHz>40) : false; + useReqAnimFrame = true; // may be deactivated in browers? nframes; startts; // for FPS calc frameRate; diff --git a/src/ide/ui.ts b/src/ide/ui.ts index 4d860061..deb6d46a 100644 --- a/src/ide/ui.ts +++ b/src/ide/ui.ts @@ -1419,13 +1419,6 @@ function resume() { lastViewClicked = null; } -function togglePause() { - if (platform.isRunning()) - pause(); - else - resume(); -} - function singleStep() { if (!checkRunReady()) return; setupBreakpoint("step"); @@ -2341,8 +2334,11 @@ export async function startUI() { } getPlatformAndRepo(); setupSplits(); - // create store + // get store ID, repo id or platform id store_id = repo_id || getBasePlatform(platform_id); + // are we embedded? + if (qs['embed']) store_id = (document.referrer || document.location.href) + store_id; + // create store store = createNewPersistentStore(store_id); // is this an importURL? if (qs['importURL']) { diff --git a/src/ide/views.ts b/src/ide/views.ts index 8a6cd7bd..4190065d 100644 --- a/src/ide/views.ts +++ b/src/ide/views.ts @@ -115,7 +115,10 @@ export class SourceEditor implements ProjectView { var lineWrap = !!modedef.lineWrap; var theme = modedef.theme || MODEDEFS.default.theme; var lineNums = !modedef.noLineNumbers && !isMobileDevice; - if (qs['embed']) lineNums = false; // no line numbers while embedded + if (qs['embed']) { + lineNums = false; // no line numbers while embedded + isAsm = false; // no opcode bytes either + } var gutters = ["CodeMirror-linenumbers", "gutter-offset", "gutter-info"]; if (isAsm) gutters = ["CodeMirror-linenumbers", "gutter-offset", "gutter-bytes", "gutter-clock", "gutter-info"]; if (modedef.noGutters || isMobileDevice) gutters = ["gutter-info"]; diff --git a/test/web/testembed.js b/test/web/testembed.js new file mode 100644 index 00000000..6e827138 --- /dev/null +++ b/test/web/testembed.js @@ -0,0 +1,23 @@ + +//var IDEURL = 'https://8bitworkshop.com/dev/'; +var IDEURL = 'http://localhost:8000/'; +var QS = '?embed=1&ignore=1&platform=c64&file0_name=test.dasm&file0_data=%0A%20%20%20%20%20 processor 6502%0A%20%20%20%20%20 org %24803%0AFoo%3A%20 lda %231%0A%20%20%20%20%20 rts'; +var EMBEDURL = 'http://localhost:8000/'; + +exports['test iframe'] = function(browser) { + + browser.url(IDEURL + QS) + .waitForElementNotVisible('#compile_spinner', time=10000) + .waitForElementNotVisible('#error_alert') + .waitForElementVisible('#emuscreen') + .waitForElementVisible('.emuvideo') + +} + +exports['test embed.html'] = function(browser) { + + browser.url(EMBEDURL) + .waitForElementNotVisible('#error_alert') + .waitForElementVisible('.emuvideo') + +}