Commit graph

342 commits

Author SHA1 Message Date
John Conklin II
7a5fce4315
Merge pull request #12991 from luiscuenca/avatarScript
Avatar Scripts
2018-05-02 12:23:13 -07:00
luiscuenca
2de982a5a2 Added script types and better script reload 2018-04-30 12:04:35 -07:00
David Rowe
2cc3ed6287 List which contexts each namespace and object is available in 2018-04-28 20:00:28 +12:00
David Rowe
62930eb576 Interim JSDoc for Script 2018-04-22 15:26:39 +12:00
humbletim
3a735c1fc7 CR feedback and code cleanup 2018-01-23 03:12:26 -05:00
David Rowe
da33c4fcf2 Fix script reload icon not working in Windows developer builds 2017-10-26 11:41:52 +13:00
ZappoMan
a7e21d7e76 add remotelyCallable and remoteCallerID to provide additional security to Entities.callEntityServerMethod() 2017-10-22 14:30:58 -07:00
Seth Alves
8a49edbecb code review 2017-09-15 10:08:35 -07:00
Seth Alves
d89f2b77da rework ScriptEngine lifetimes using 'smart' pointers 2017-09-14 10:42:21 -07:00
samcake
c24e254257 Add support for profiling from scripts 2017-06-22 18:10:20 -07:00
NeetBhagat
9646eba873 Complete console.trace and added a testcases for all 13 functions. 2017-06-13 23:52:48 +05:30
NeetBhagat
5c324264a2 Complete the functionality of console.trace(). 2017-06-13 14:12:29 +05:30
NeetBhagat
e8fc766c2b Complete Console Exception. 2017-06-12 20:24:59 +05:30
NeetBhagat
ead0d42cf3 Merge branch 'master' into 21369
# Conflicts:
#	libraries/gl/src/gl/OffscreenQmlSurface.cpp
#	libraries/gl/src/gl/OffscreenQmlSurface.h
2017-06-07 15:47:19 +05:30
NeetBhagat
0f9cd5d0c7 intial commit hifi: #21369 Implement parts of the JS "console" object 2017-06-06 15:20:08 +05:30
Liv
b2bbf21fb0 style fixes 2017-05-23 15:21:21 -07:00
Liv
e9fac38bbb Add function hasValidScriptSuffix and check if script extensions are JavaScript or JSON files 2017-05-23 13:08:50 -07:00
Brad Hefta-Gaub
ee6bed5c1c Merge pull request #10189 from Atlante45/fix/memory-leak
Set max packet per second on the agent
2017-05-16 21:03:05 -07:00
humbletim
e765d8858c update script engine to not treat about:* as a local filename; resolve debugPrint FIXME 2017-05-04 16:57:41 -04:00
Atlante45
41cd0d79b2 Set max packet per second on the agent 2017-04-24 10:56:57 -07:00
Stephen Birarda
c63a2c9cda remove requirement of ScriptEngine in ScriptEngines slots 2017-03-20 13:40:15 -07:00
humbletim
87d62ad1eb Merge branch 'master' into 21114-part3 2017-03-16 16:39:37 -04:00
humbletim
52a571558c * changes per CR feedback
* revert JSON content-type workaround
* add specific error check / advice for unanchored module ids
* update unit tests
2017-03-16 01:23:23 -04:00
Stephen Birarda
0c657a1d55 add parameter to unload to remove entityID from map 2017-03-15 10:57:12 -07:00
humbletim
40ba8185a0 * Update per 21114-part2 changes.
* Add explicit thread safety guards.
* Add Entities.queryPropertyMetdata for unit testing Entity script module support.
* Cleanup / commenting pass.
2017-03-07 16:36:07 -05:00
humbletim
9d860a8e81 merge require/module changes into clean branch 2017-03-07 16:34:24 -05:00
humbletim
654c72fb7e Add weakRef guard to detect ScriptEngine deletion during ScriptCache::getScriptContents 2017-02-27 22:58:59 -05:00
humbletim
3ac116545e * Switch trigger for deferred loads from timer to using leading entity completion
* Bring back notion of tracking "bad scripts" to fail stampeding entities as a set
* Update stampede JS tests to highlight/troubleshoot preexisting unload issue
2017-02-24 16:05:11 -05:00
humbletim
c89d203f94 Adapt from std::map locks to simple QHash for flagging busy scriptURLs 2017-02-24 12:27:33 -05:00
humbletim
b15956278c separate out supporting changes into 21114-part2 branch 2017-02-16 07:40:19 -05:00
humbletim
9b0bee92d1 add executeOnScriptThread 2017-02-11 06:21:11 -05:00
humbletim
0f7652e173 * integrate with latest master
* consolidate emit entityScriptDetailsUpdated calls
* limit maxRetries to 1 when isEntityServerScript()
2017-02-11 06:00:31 -05:00
humbletim
831bf93500 * refactor ScriptCache per FIXMEs
* include error details in BatchLoader results
* update EntityServerScript properties in edtior to reflect more granular statuses
* ScriptEngine plumbing in prep for require/module integration
2017-02-11 04:47:31 -05:00
Ryan Huffman
f75eceda65 Add entity PPS per script configuration 2017-02-08 13:11:18 -08:00
Ryan Huffman
9b1cd52fb4 Add the ability to get the context that a script is running in 2017-01-23 08:58:01 -08:00
Ryan Huffman
cbb55a06a0 Update ScriptEngine to store full running status off entity scripts 2017-01-19 13:27:44 -08:00
Brad Hefta-Gaub
4c1aaa376d remove cruft 2017-01-03 11:13:03 -08:00
Brad Hefta-Gaub
d440532cff make sure RPC is timely 2017-01-03 11:10:07 -08:00
Brad Hefta-Gaub
7c7d239e00 first cut at using wait signals to improve RPC timing 2016-12-30 09:13:21 -08:00
Brad Hefta-Gaub
0c22fcb5c4 better handling of timers 2016-12-29 16:41:14 -08:00
Brad Hefta-Gaub
6a7fa63327 classify ScriptEngine errors better, and send them as signal to JS 2016-12-20 09:00:01 -08:00
Seth Alves
576eed9941 use a mutex to avoid a smaller race 2016-11-10 17:12:06 -08:00
Ryan Huffman
dd1a23ea01 Add Script.generateUUID 2016-10-28 13:42:03 -07:00
Anthony J. Thibault
2193c5faad Integrated controller display from tutorial scripts + assets 2016-10-20 18:24:58 -07:00
Thijs Wenker
7e3073e163 fix spelling bugs 2016-09-29 22:13:27 +02:00
Anthony J. Thibault
d015c5cfb5 Merge branch 'master' into feature/hand-controller-web-entity-integration 2016-08-22 14:13:17 -07:00
Seth Alves
87dbfa7e47 add -Wsuggest-override to compile flags and deal with fallout 2016-08-18 09:51:41 -07:00
Anthony J. Thibault
1be434342b Work In Progress snapshot
* Added new PointerEvent type.
* Mouse events are still sent from Application to EntityTreeRenderer, however, EntityTreeRenderer converts them to PointerEvents
* All outgoing signals from EntityTreeRenderer use PointerEvents instead of MouseEvents
* Associated JavaScript entity methods will receive PointerEvents instead of MouseEvents
* Events from handControllerGrab.js to entities are currently broken.
2016-08-12 17:11:59 -07:00
Brad Hefta-Gaub
2d199fe3d0 rename function for better clarity 2016-07-26 08:08:44 -07:00
Brad Hefta-Gaub
83dc9ea6bb punish slow scripts and don't send updates while physics is still loading 2016-07-25 21:46:30 -07:00
Seth Alves
49769f7d29 trying again -- frantic clicking on reload no longer appears to wedge things 2016-05-25 13:39:13 -07:00
Seth Alves
b0ce65ec01 trying to mimic previous behavior more closely 2016-05-25 11:42:06 -07:00
Seth Alves
1ef0f8055b fix grammar in comment 2016-05-20 10:12:59 -07:00
Seth Alves
35065ab05e remove unused setter 2016-05-20 10:12:38 -07:00
Seth Alves
aa58cad93e code review 2016-05-20 09:54:54 -07:00
Seth Alves
9ad488ba7b fix method name to match coding standard 2016-05-19 16:08:44 -07:00
Seth Alves
4e862941cb fix a race when restarting scripts -- avoid the old not-yet-stopped script from being considered the restart script 2016-05-19 14:51:56 -07:00
Zach Pomerantz
7d4276d15f Merge branch 'master' of github.com:highfidelity/hifi into fix/script-thread-dtor 2016-05-16 10:51:23 -07:00
Zach Pomerantz
2140dc77b3 Rename wait and unload in best thread 2016-05-13 16:14:22 -07:00
Zach Pomerantz
36565598a7 Hide script stop behind accessor and fix friendship 2016-05-13 15:52:53 -07:00
Zach Pomerantz
59e4b9c356 Merge branch 'master' of github.com:highfidelity/hifi into fix/shutdown 2016-05-13 15:28:12 -07:00
Zach Pomerantz
70d0ebb91c Consolidate stoppingAllScripts to ScriptEngines::_stopped 2016-05-13 15:24:15 -07:00
Zach Pomerantz
806d06b552 Wait on old entity script engines in threadpool 2016-05-12 17:51:40 -07:00
Zach Pomerantz
7e82494a66 Add cap on entities scripting thread stop time 2016-05-12 17:51:37 -07:00
Zach Pomerantz
2cc788f98d Rename ScriptEngine::wait to match std threading 2016-05-12 17:51:35 -07:00
Zach Pomerantz
820fdf09e2 Remove unused ScriptEngine::_wantSignals 2016-05-12 12:42:29 -07:00
Brad Davis
40316498a4 Enable script debugging 2016-05-09 17:02:40 -07:00
Zach Pomerantz
173d2a590c Use sleep_until for ScriptEngine 2016-05-06 19:30:37 -07:00
Zach Pomerantz
1a0a623d5f Report ScriptableResource memory cost to engine 2016-04-20 20:18:22 -07:00
Zach Pomerantz
7d9790ecb5 Add request for garbage collection
Add garbage collection request in prod
2016-04-20 20:14:15 -07:00
Brad Hefta-Gaub
0d20f2468e CR feedback 2016-04-18 12:13:21 -07:00
Brad Hefta-Gaub
47900df3e7 cleanup 2016-04-18 10:43:08 -07:00
Brad Hefta-Gaub
0520363da8 cleanup 2016-04-18 10:37:15 -07:00
Brad Hefta-Gaub
9db0fe0d11 switch to using QSharedPointer for _entitiesScriptEngine 2016-04-18 09:46:04 -07:00
howard-stearns
7b7ec5a174 Prohibit entity script file includes from outside the original entity
script's directory (unless its in our resources).
2016-04-04 16:41:21 -07:00
Stephen Birarda
5ad4645b47 Merge branch 'master' of https://github.com/highfidelity/hifi into atp 2016-03-10 13:28:59 -08:00
Stephen Birarda
181b20f673 move the AssetScriptInterface to script-engine 2016-03-08 14:49:26 -08:00
Anthony J. Thibault
0d62b10a8f Added Mat4 support to script
Also, hooked up MyAvatar.sensorToWorldMatrix access to script.
2016-03-07 16:16:14 -08:00
Howard Stearns
05943ed353 Entity scripts keep of the which entity they are executing for. When the entity goes away, any created timers do, too. Also, loading interface scripts is not allowed from entity scripts. 2016-03-01 16:50:58 -08:00
Brad Davis
d28f80aa07 Moving running scripts functionality to scripting library 2016-01-11 12:44:03 -08:00
Ryan Huffman
5f60aeef22 Update ScriptEngine::_isUserLoaded to be atomic 2015-12-09 14:50:48 -08:00
Ryan Huffman
e7a1550b64 Update ScriptEngine::finished to include 2015-12-09 14:50:09 -08:00
Ryan Huffman
4dbfd3bfd9 Fix concurrency issues for bools in ScriptEngine
Several member variables were unsafely being accessed from multiple threads. Making these variables std::atomic makes this safe.
2015-12-08 11:13:27 -08:00
Stephen Birarda
b1a69bb2cf cleanup spacing in ScriptEngine 2015-11-30 15:52:10 -08:00
Stephen Birarda
4573e5c59e resolve conflicts on merge with upstream/master 2015-11-30 13:32:38 -08:00
Stephen Birarda
762709748d Merge pull request #6473 from ZappoMan/waitForScriptThreads
change the ScriptEngine::waitTillDoneRunning() to wait for the script thread to complete
2015-11-24 10:39:22 -06:00
samcake
a1668cdc73 Let the AssertClient JS interface use global vars 2015-11-23 22:28:59 -08:00
Brad Hefta-Gaub
ce46c30647 change the ScriptEngine::waitTillDoneRunning() to wait for the script thread to complete 2015-11-23 16:27:06 -08:00
Brad Hefta-Gaub
f80a765a29 add Assets.uploadData() and Assets.downloadData() 2015-11-19 17:28:20 -08:00
Atlante45
b15054c1fb Merge branch 'master' of https://github.com/highfidelity/hifi into baseball 2015-11-09 13:41:06 -08:00
James B. Pollack
e928c8278b overload a single function and cleanup, add examples 2015-11-06 11:48:51 -08:00
James B. Pollack
3cee569bae pass parameters to entities 2015-11-05 16:57:39 -08:00
James Pollack
751d51ee72 entity call params 2015-11-05 14:19:11 -08:00
Stephen Birarda
ed610d69e0 resolve conflicts merging with huffman/baseball 2015-11-02 14:18:39 -08:00
Stephen Birarda
bbf5991f9a resolve conflicts on merge with huffman/baseball 2015-11-02 14:14:36 -08:00
Ryan Huffman
8eded438db Remove _controllerScriptingInterface from ScriptEngine.h 2015-11-02 14:09:24 -08:00
Ryan Huffman
7f4a8e9d7d Merge branch 'master' of github.com:Atlante45/hifi into baseball 2015-11-02 12:25:51 -08:00
Brad Hefta-Gaub
8839458d54 Merge pull request #6242 from highfidelity/controllers
New Controller interfaces/api
2015-10-30 12:47:51 -07:00
Howard Stearns
d79d0bc5c5 Merge branch 'master' of https://github.com/highfidelity/hifi into expose-anim-vars 2015-10-29 08:25:41 -07:00
Stephen Birarda
cee029f752 resolve conflicts on merge with upstream/master 2015-10-28 15:19:10 -07:00
Brad Davis
3c1a0930da Merge remote-tracking branch 'upstream/master' into HEAD
Conflicts:
	interface/src/avatar/MyAvatar.h
	libraries/script-engine/src/ScriptEngine.cpp
	libraries/script-engine/src/ScriptEngine.h
2015-10-28 13:38:22 -07:00
Atlante45
ffe73348fb Move check functions to cpp only 2015-10-27 12:11:27 -07:00
Atlante45
a53a576aa3 checkExceptions after testing entity scripts in the sandbox 2015-10-27 12:11:27 -07:00
Atlante45
13b7fa6b5d Typo 2015-10-27 12:11:27 -07:00
Atlante45
c8c9118d4d Improve script engine error logging + some cleanup 2015-10-27 12:11:27 -07:00
Atlante45
3742c169b5 Make handler generators more readable 2015-10-27 12:11:27 -07:00
Atlante45
380139364c checkExceptions after testing entity scripts in the sandbox 2015-10-26 12:41:49 -07:00
Atlante45
9771361840 Typo 2015-10-26 10:49:41 -07:00
Howard Stearns
4b4907c9ef Allow multiple scripts to register, and allow them to specify the specific anim vars they are interested in. 2015-10-26 10:04:55 -07:00
Atlante45
421d967e49 Improve script engine error logging + some cleanup 2015-10-23 15:41:31 -07:00
Atlante45
4e33aa84e8 Make handler generators more readable 2015-10-23 15:41:31 -07:00
Howard Stearns
2b7ceffd64 Get rid of globalObject().property("MyAvatar").property("animationStateHandlerResult"). 2015-10-22 16:23:09 -07:00
Howard Stearns
1d0464ede5 Name change and thread checks per comments. 2015-10-22 15:15:10 -07:00
Howard Stearns
9fd61907f5 Call back to Javascript asynchronously, so that we don't block and the script's engine doesn't have thread conflicts. 2015-10-21 20:50:07 -07:00
Brad Davis
bea6fdd890 Working on JSON parsing and cleanup
Conflicts:
	libraries/controllers/src/controllers/Route.cpp
	libraries/controllers/src/controllers/ScriptingInterface.cpp
	libraries/controllers/src/controllers/StandardController.cpp
	libraries/controllers/src/controllers/impl/RouteBuilderProxy.h
2015-10-20 10:20:28 -07:00
Brad Davis
57be59935d Move controller test to app 2015-10-17 19:13:38 -07:00
Brad Davis
e39219c2b5 Fixes and PR comments 2015-10-14 16:51:52 -07:00
Brad Davis
0063f9ae1d Merging old and new controller interfaces 2015-10-14 15:16:54 -07:00
Brad Hefta-Gaub
d3ee9b0f39 more work on exposing device inputs as JavaScript named constants 2015-10-09 20:58:23 -07:00
Brad Davis
99d1e17ae8 Support reload-on-change for local scripts 2015-10-07 19:18:59 -07:00
Brad Hefta-Gaub
0d37511071 add support for scripts to call methods on entity scripts 2015-09-18 14:06:38 -07:00
Brad Hefta-Gaub
54a45f3173 Merge branch 'master' of https://github.com/highfidelity/hifi into scriptEngineCleanup
Conflicts:
	libraries/entities-renderer/src/EntityTreeRenderer.cpp
	libraries/script-engine/src/ScriptEngine.cpp
	libraries/script-engine/src/ScriptEngine.h
2015-09-14 21:13:08 -07:00
Brad Hefta-Gaub
94b273a029 more work on script engine 2015-09-14 20:59:10 -07:00
Brad Hefta-Gaub
a3c0288eae more work on proper threading of ScriptEngine 2015-09-14 20:26:04 -07:00
Brad Hefta-Gaub
18fbf896f1 first cut at moving entity scripts into ScriptEngine 2015-09-14 15:13:43 -07:00
Seth Alves
49ee251238 quiet compiler 2015-09-12 09:59:25 -07:00
Brad Hefta-Gaub
56118e4204 migrate Agent to use standard APIs of ScriptEngine 2015-09-11 22:12:42 -07:00
Brad Hefta-Gaub
54c56a92f1 move agent specific code out of ScriptEngine 2015-09-11 21:56:00 -07:00
Brad Hefta-Gaub
f85cb2c888 first cut at cleaning up ScriptEngine class 2015-09-11 19:12:09 -07:00
Brad Hefta-Gaub
5c6d8da97b Revert "Make sure all entity script callbacks happen on the Entities script engine thread" 2015-09-11 11:55:36 -07:00
Brad Hefta-Gaub
b9d5412aad prevent sending signals in the entities script engine 2015-09-11 09:48:42 -07:00
Brad Hefta-Gaub
8eacdbf1c4 first cut at making sure entity scripts are called on the entities script engine thread 2015-09-10 13:02:02 -07:00
Brad Hefta-Gaub
ede0a39b5b prevent Script.include() from including the same file multiple times 2015-09-09 17:54:09 -07:00
Stephen Birarda
5a2d59c530 fix ScriptEngine cleanup for Agent 2015-07-15 15:07:34 -07:00
David Rowe
1898c6bd55 Merge branch 'master' into 20547
Conflicts:
	libraries/networking/src/PacketHeaders.cpp
	libraries/networking/src/PacketHeaders.h
2015-06-26 13:05:51 -07:00
David Rowe
67206332e6 Make individual reload buttons reload scripts 2015-06-17 16:11:30 -07:00
Seth Alves
508ae276c6 enable -Wdouble-promotion 2015-06-16 18:23:10 -07:00
Seth Alves
981ac2ce7d quiet-compiler -- remove unused prototype for cleanupMenuItems 2015-06-02 13:17:15 -07:00
Howard Stearns
4266a99d78 Put the javascript methods on Script, not Entities, and other minimum-diff cleanup. 2015-05-25 11:28:33 -07:00
Howard Stearns
a0d09c0a6d Mulitple independent handlers for same entity/event. 2015-05-24 11:48:11 -07:00
Howard Stearns
b884d3cf90 Handle all the signals. 2015-05-24 09:57:12 -07:00
Howard Stearns
1dd2b7275e Simpler and more uniform version that handles all the standard entity-script events. 2015-05-23 18:11:05 -07:00
Howard Stearns
277f5ef3a4 Working experimental first version. 2015-05-23 13:35:35 -07:00
ZappoMan
e2d8d82096 more script caching cleanup 2015-03-30 16:34:04 -07:00
ZappoMan
36657c9473 first cut at script caching 2015-03-30 14:36:48 -07:00
Ryan Huffman
b370e025c9 Move EntityScriptingInterface instance to DependencyManager 2015-03-02 15:05:31 -08:00
Ryan Huffman
a443157dd7 Update ScriptEngine::entityScriptingInterface to be static pointer
Statically allocating the EntityScriptingInterface means we can't make
sure it is initialized AFTER NodeList has been initialized
2015-03-02 10:40:46 -08:00
ZappoMan
310654831c clean up comments remove dead code 2015-02-24 17:34:19 -08:00
ZappoMan
fd93b99f03 more hacking on script shutdown behavior 2015-02-24 14:02:46 -08:00
ZappoMan
6be8f4c0ec more work on improving shutdown behavior 2015-02-23 17:32:31 -08:00