Commit graph

113 commits

Author SHA1 Message Date
Phoenix Eliot
bdabee865c Filter domains for webdev iFrame
This serves the web-dev surface iFrame from another domain, such that user-created levels can't sniff cookies from a visitor to their page. It forces a redirect if a path is accesses through the wrong domain.

Use ENV variables for hostnames

Allow messages from all relevant domains

Use the right iFrame URL for different domains

Let the load balancer check /healthcheck

Add special handling for china server

Generalize subdomain handling
2016-09-06 16:17:38 -07:00
Phoenix Eliot
663c220eaf Show wev-dev iFrame error messages like Aether's
This heavily refactors SpellView and adds infrastructure for receiving and reporting Errors raised by the web-dev iFrame. The web-dev error system, the Aether error system, and the Ace html-worker avoid disturbing each others' errors/annotations (though currently Aether+web-dev errors won't coexist), and they clear/update their own asynchronously.

Show web-dev iFrame errors as Ace annotations

Add functional error banners (with poor messages)

Improve error banners, don't allow duplicate Problems

Refactor setAnnotations override

Convert all constructor calls for Problems

Add comments, clean up

Clean up

Don't clear things unnecessarily

Clean up error message sending from iFrame

Add web-dev:error schema

Clarify error message attributes

Refactor displaying AetherProblems

Refactor displaying user problem banners

Refactor onWebDevError

Set ace styles on updating @problems

Clean up, fix off-by-1 error

Add comment

Show stale web-dev errors differently
Some web-dev errors are generated by "stale" code — code that's still running in the iFrame but doesn't have the player's recent changes.
This shows those errors differently than if they weren't "stale", and suggests they re-run their code.

Hook up web-dev event schema

Destroy ignored duplicate problems

Functionalize a bit of stuff

Fix ProblemAlertView never loading
2016-08-31 10:59:06 -07:00
Nick Winter
878dcbdc49 Better handling of non-user-code problems in game-dev mode. Don't simulate whole level first time a game-dev level is loaded. 2016-08-24 15:21:09 -07:00
Phoenix Eliot
209b7d724e Fix webdev for china server 2016-08-23 11:08:57 -07:00
Phoenix Eliot
dc7c220b57 Add goal checking on user clicks 2016-08-18 16:40:48 -07:00
Nick Winter
35966b24c1 ES5ify web-dev-listener.js 2016-08-03 13:02:55 -07:00
Nick Winter
d77625bc77 Game dev levels (#3810)
* Tweak API doc behavior and styling

* Instead of moving to the left during active dialogues, just move to the top
* Allow pointer events
* Adjust close button
* Re-enable pinning API docs for game-dev and web-dev levels

* Make sidebar in PlayGameDevLevelView stretch, better layout columns

* Set up content of PlayGameDevLevelView sidebar to scroll

* Add rest of PlayGameDevLevelView sidebar content, rework what loading looks like

* Finish PlayGameDevLevelView

* Add share area below
* Cover the brown background, paint it gray

* Tweak PlayGameDevLevelView

* Have progress bar show everything
* Fix Surface resize handling

* Fix PlayGameDevLevelView resizing incorrectly when playing

* Add GameDevVictoryModal to PlayGameDevLevelView

* Don't show missing-doctype annotation in Ace

* Hook up GameDevVictoryModal copy button

* Fix onChangeAnnotation runtime error

* Fix onLevelLoaded runtime error

* Have CourseVictoryModal link to /courses when course is done

* Trim, update CourseDetailsView

* Remove last vestiges of teacherMode
* Remove giant navigation buttons at top
* Quick switch to flat style

* Add analytics for game-dev

* Update Analytics events for gamedev

* Prefix event names with context
* Send to Mixpanel
* Include more properties

* Mostly set up indefinite play and autocast for game-dev levels

* Set up cast buttons and shortcut for game-dev

* Add rudimentary instructions when students play game-dev levels

* Couple tweaks

* fix a bit of code that expects frames to always stick around
* have PlayGameDevLevelView render a couple frames on load

* API Docs use 'game' instead of 'hero'

* Move tags to head without combining

* Add HTML comment-start string

Fixes missing entry point arrows

* Fix some whitespace
2016-07-28 13:39:58 -07:00
phoenixeliot
2ebf94c3db Combine extracted script/style tags 2016-07-20 17:20:21 -07:00
phoenixeliot
f28c17c9bf Fix spacing to be consistent 2016-07-20 15:47:20 -07:00
phoenixeliot
62813e41a3 Extract styles and scripts 2016-07-20 15:44:01 -07:00
Rob Blanckaert
5bb7f243f5 Update web-dev-listener.js 2016-07-19 13:44:25 -07:00
Nick Winter
6e65171a83 i18n, comments, misc cleanup 2016-07-17 00:53:17 -07:00
Nick Winter
5d0b9c875a Fix some typos that made it not work in Firefox (not sure how it worked in Chrome) 2016-07-16 13:32:54 -07:00
Nick Winter
7e4733f07e Hack: check HTML goals now and in a second to account for built-in CSS transition 2016-07-15 20:25:37 -07:00
Nick Winter
9be8151959 Don't create God for web-dev levels 2016-07-15 13:24:54 -07:00
Nick Winter
5a688e42c7 Slightly more flexible iframe origin checking 2016-07-15 11:19:22 -07:00
Nick Winter
739973cb47 Sending goal states to GoalManager and GoalStatusView 2016-07-15 09:11:36 -07:00
Nick Winter
c44c16e5d2 Started implementing web-dev goals 2016-07-15 00:40:32 -07:00
Nick Winter
220db3106c Run button now recreates web-dev DOM; no submit button 2016-07-14 19:48:27 -07:00
Nick Winter
ed320a8d9e WebSurfaceView now parsing player code through virtual DOM into iframe 2016-07-14 18:07:36 -07:00
Nick Winter
16b10612b6 Stub WebSurface showing for web-dev levels 2016-07-14 12:34:22 -07:00
Scott Erickson
b2bb129cbf Add realTimeInputEvents to world and gameUIState, with just mousedown events 2016-07-08 14:17:07 -07:00
Rob
5dd4db7676 Correctly feature detect WeakMap. 2016-07-01 16:44:16 -07:00
Nick Winter
ede12ed50f Add effective simulation frames per second to verifier 2016-06-29 12:40:30 -07:00
Rob
bbb70fd486 Tighten modernness requirements (mostly to exclude Edge 13) 2016-06-23 09:34:37 -07:00
Rob
6a03163fcb - Use modern esper engine if we detect browser support it.
- Change streaming batch size depending on how far into simulation we are.
- Hoist try catch out of onWorldLoad so Chrome and JIT it.
2016-06-22 15:07:43 -07:00
Nick Winter
d739fbef9b Fix #3519; restricting importScripts has always been buggy and we probably don't need it 2016-04-17 17:32:37 -07:00
Scott Erickson
ecf6cd7054 Fix Travis tests 2016-04-15 15:36:35 -07:00
Nick Winter
a7114a2719 Implement headless verifier; fix headless client 2016-04-12 19:34:05 -07:00
Rob
f10bcd632c Add esper support 2016-03-29 23:27:27 -07:00
Scott Erickson
16969e1d5a Fix Travis tests 2016-02-19 13:58:21 -08:00
David Liu
3266bd4621 Fix karma tests
* "Shim" StripeCheckout
* Fix loadDependenciesForSession test
* Update karma coverage for better perf
2015-09-09 14:02:03 -07:00
Nick Winter
1d81133f24 Possible solution for #2917, needs testing. Added crossbow bolts to missile orientation display logic. 2015-08-09 14:10:32 -07:00
Nick Winter
2d89de8183 Using new Aether optimization options for minimal flow tracking (big performance gains). Trying again to handle random no-window avatar creation error. 2015-03-16 17:36:38 -07:00
Nick Winter
1c14059d92 Better console logging for Vectors and shapes. 2015-02-24 18:21:33 -08:00
Nick Winter
7000048bee Fixed a few more issues with the headless simulator. 2015-02-12 17:07:29 -08:00
Scott Erickson
b686a7f4a1 Fixed running tests with karma. 2015-02-05 13:58:07 -08:00
Nick Winter
947811c01b Replayable once-per-day increasing-difficulty level basics. 2015-01-05 10:44:24 -08:00
Scott Erickson
e5c5f0ba04 Fixed Karma client test runner. 2014-12-12 13:12:35 -08:00
Scott Erickson
46f7bbaaf5 Fixed client tests. Also updated mock-ajax to the latest version, carrying over my own tweaks. 2014-12-09 13:41:44 -08:00
Nick Winter
8ce192bf7c Got modularized Aether imports working for PlayLevelView and its workers. 2014-12-01 15:43:22 -08:00
Scott Erickson
31214e854e Wabam. Refactored a bunch of stuff into 'core' folders so that it's clearer which files are being loaded first thing, and which are not. Also reworked a bunch of the anymatch things in config.coffee, cause there were better ways. 2014-11-28 17:49:41 -08:00
Nick Winter
bf71893ddf Significantly reduced memory usage and simulation time by further limiting the amount of Thangs which even start tracking ThangState in the first place. 2014-11-17 21:30:44 -08:00
Nick Winter
24da2aa80a Preserving flag history and submission count so that things are more stable in between real-time submissions. 2014-10-18 17:32:01 -07:00
Matt Lott
db525a8073 Fix IE restricted property check 2014-09-24 15:46:53 -07:00
Matt Lott
73e49f9972 IE11 compatibility fixes
Removing social share buttons from base if IE, except Facebook.
Unrolling restricted property setting loop (weird).
Updating isIE check to support IE11.
2014-09-24 12:17:13 -07:00
Nick Winter
c1023b137f Better pointing out of submit button when victory is ready. 2014-09-23 18:21:27 -07:00
Nick Winter
e666ee1dac Added stop playback button and real-time countdown screen. 2014-08-25 22:05:30 -07:00
Nick Winter
be07f9cfb9 Many improvements to real-time streaming and flags. 2014-08-23 22:24:00 -07:00
Nick Winter
f59084e651 Sending flag history to the World for to make flag Thangs during simulation. 2014-08-23 17:26:56 -07:00