Commit graph

700 commits

Author SHA1 Message Date
Atlante45
b67b17d3c0 Fix JS exception messages formatting 2017-03-13 09:11:20 -08:00
humbletim
8582c7af7b Use specific debug name literal instead of __FUNCTION__ from within lambda 2017-03-07 16:41:20 -05:00
humbletim
d93047f9e2 Switch to READONLY_PROP_FLAGS for require.cache/require.resolve properties 2017-03-07 16:41:19 -05: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
e91de1775e use a fully-qualified initializer when constructing BatchLoader 2017-03-07 16:34:24 -05:00
humbletim
32e450e6c2 * rework _requireResolve error throws (to avoid using lambda w/default args -- which vc++ didn't care for)
* add ExceptionEmitters to require/resolve so errors get logged even if invoked indpendently from a script
2017-03-07 16:34:24 -05:00
humbletim
efc61c25ad * use explicit int's for moduleId constants
* maxTestConstructorValueSize was already limiting debug output size -- adopt its strategy, use shared MAX_DEBUG_VALUE_LENGTH const
2017-03-07 16:34:24 -05:00
humbletim
9d860a8e81 merge require/module changes into clean branch 2017-03-07 16:34:24 -05:00
Ryan Huffman
a744e0d11c Merge pull request #9685 from humbletim/21114-part2
CR-2 21114 -- BaseScriptEngine.cpp, order-of-operations fixes, reworked JS Exceptions
2017-03-07 13:25:25 -08:00
Anthony J. Thibault
01abb4bdb6 Exposed DebugDraw interface to Java Script 2017-03-01 13:14:29 -08:00
humbletim
2505a89b5e Per CR feedback bump to strong ref 2017-02-28 00:41:35 -05:00
humbletim
654c72fb7e Add weakRef guard to detect ScriptEngine deletion during ScriptCache::getScriptContents 2017-02-27 22:58:59 -05:00
humbletim
5b11c0e00a remove unused consts 2017-02-24 20:45:12 -05:00
humbletim
731c01985b switch from autos 2017-02-24 19:21:17 -05:00
humbletim
cdbb13ecff Log cleanup 2017-02-24 17:40:06 -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
3ad3fd472e * Inline / duplicate exception checking per CR feedback
* Coding standards
2017-02-23 19:46:28 -05:00
humbletim
1eeb25a9eb Increase deferred batch processing. 2017-02-23 19:09:27 -05:00
humbletim
f82a0196a8 Always consume exceptions thrown by include's 2017-02-23 18:12:12 -05:00
kunalgosar
99e51e88ae Add QMetaObject for AvatarEntityMap 2017-02-23 10:57:06 -08:00
humbletim
132a889f74 * Add Qt::DirectConnection to signalHandlerException
* CR feedback / coding standards
2017-02-22 20:36:49 -05:00
humbletim
417587dcda * Update per CR feedback / code standards
* Cull log spam
* Add tryLock to deferred processor to preempt unnecessary loadEntityContent round-trips
2017-02-22 15:22:56 -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
Brad Hefta-Gaub
74f10a1e7f Merge pull request #9603 from huffman/feat/trace-thread-script
Add thread names and scripts to chrome traces
2017-02-09 13:00:05 -08:00
Ryan Huffman
f75eceda65 Add entity PPS per script configuration 2017-02-08 13:11:18 -08:00
Ryan Huffman
55df6f8f76 Add tracing to ScriptEngine and EntitiesScriptingInterface 2017-02-03 09:45:33 -08:00
Ryan Huffman
f2638637f7 Add thread names to traces 2017-02-03 09:18:58 -08:00
Seth Alves
91e542a7a7 ModelScriptingInterface::meshToOBJ takes a list of MeshProxys instead of just one 2017-01-31 21:26:49 -08:00
Seth Alves
541692c5ca start on scripting interface to allow saving polyvox meshes to obj files 2017-01-28 15:38:18 -08:00
Seth Alves
c317ba8054 merge from upstream 2017-01-25 15:57:53 -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
Clément Brisset
6da188b6ae Merge pull request #33 from huffman/feat/entity-server-script-property
Fix compilation error and move MessageID to CilentServerUtils
2017-01-20 17:37:01 -08:00
Ryan Huffman
be9b19e534 Fix default param ref failing on non-MSVC builds 2017-01-20 16:43:35 -08:00
Clément Brisset
95f07f3917 Merge pull request #32 from huffman/feat/entity-server-script-property
PR FIxes
2017-01-20 15:39:22 -08:00
Ryan Huffman
888d7ab03d Add exception information to script status 2017-01-20 15:33:48 -08:00
Stephen Birarda
25bd6fa2c1 move recording interface to Agent/Application only 2017-01-20 10:27:08 -08:00
Ryan Huffman
c252d80782 Fix EntityScriptDetails having incorrect scriptText 2017-01-19 14:41:56 -08:00
Ryan Huffman
cbb55a06a0 Update ScriptEngine to store full running status off entity scripts 2017-01-19 13:27:44 -08:00
Seth Alves
bacc796730 Merge branch 'master' of github.com:highfidelity/hifi into update-tablet-ui-again 2017-01-11 09:54:26 -08:00
Ryan Huffman
39070fe0d1 Merge pull request #9065 from huffman/fix/script-engine-abuse
Fix deleteLater() vulnerability in scripts
2017-01-09 11:02:28 -08:00
Seth Alves
d072b1524a Merge branch 'master' of github.com:highfidelity/hifi into tablet-ui 2017-01-05 15:27:11 -08:00
Ryan Huffman
601aa51392 Merge branch 'master' into fix/script-engine-abuse 2017-01-04 08:09:06 -08:00
Brad Hefta-Gaub
d440532cff make sure RPC is timely 2017-01-03 11:10:07 -08:00
Anthony J. Thibault
00980366d6 Merge branch 'master' into tablet-ui 2017-01-03 09:45:23 -08:00
Brad Hefta-Gaub
82ab8635d7 debugging 2016-12-30 12:02:48 -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
4b9345d7c6 cleanup accidental change 2016-12-29 16:45:16 -08:00
Brad Hefta-Gaub
0c22fcb5c4 better handling of timers 2016-12-29 16:41:14 -08:00
Brad Hefta-Gaub
a72f60152b audit use of QTimer intervals to make sure we're using Qt::PreciseTimer when appropriate 2016-12-29 08:53:37 -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
Brad Hefta-Gaub
dbbed462b4 cleanup naked qDebug() calls 2016-12-19 22:24:25 -08:00
Brad Hefta-Gaub
df954cab10 remove some log spam, recatargorize script logs to allow fine grain filtering 2016-12-19 16:15:10 -08:00
Anthony J. Thibault
d4f9d21ce8 Pass tablet QQuickItem to TabletScriptingInterface
Also, moved TabletScriptingInterface to script-engine library for easy access, baby.
2016-12-14 14:04:48 -08:00
Seth Alves
43b73f0380 Merge branch 'master' of github.com:highfidelity/hifi into fix-include-race 2016-11-14 10:00:46 -08:00
Ryan Huffman
51586ae0a3 Fix log typo in SpatiallyNestable 2016-11-14 09:06:11 -08:00
Seth Alves
5133ce0548 print a debug message when skipping evaluation of a previously included url 2016-11-12 10:50:21 -08:00
Ryan Huffman
4df9302af9 Disable access to deleteLater in ScriptEngine 2016-11-11 16:23:23 -08:00
Seth Alves
576eed9941 use a mutex to avoid a smaller race 2016-11-10 17:12:06 -08:00
Seth Alves
aef39ce6fa block until follow-on includes are finished but still avoid multiple evaluation of included urls 2016-11-10 16:06:53 -08:00
humbletim
28eadc149f switch to apply normalizeURL only and move to top of for loop 2016-11-06 16:08:42 -05:00
humbletim
d749f243c6 revert f9747d8a (rawURL) + apply alternative approach for aligning batch-loaded script URLs 2016-11-02 14:58:50 -04:00
Anthony J. Thibault
2193c5faad Integrated controller display from tutorial scripts + assets 2016-10-20 18:24:58 -07:00
Ryan Huffman
73a0266edb Fix case in Script.include where urls is empty 2016-10-18 11:41:15 -07:00
Ryan Huffman
03c01bb9b0 Add exception handling to callEntityMethod calls 2016-10-07 10:30:18 -07:00
howard-stearns
6cae62f584 init the accumulator for script elapsed time 2016-10-07 09:38:30 -07:00
Ryan Huffman
bbd7174d06 Fix script paths not resolving correctly 2016-10-06 17:37:47 -07:00
Ryan Huffman
42b0d8230c Move extract/encode enitty functions in ScriptEngine 2016-10-05 19:14:42 -07:00
Ryan Huffman
df09254437 Fix EntityItemID not being converted to string in ScriptEngine 2016-10-05 15:45:54 -07:00
Ryan Huffman
8e3f4b705f Add entity url back into entity script filenames 2016-07-09 03:57:29 -07:00
Ryan Huffman
e3be333144 Remove 'EntityID' from entity script filename 2016-10-05 09:28:12 -07:00
Ryan Huffman
667a737018 Fix ScriptEngine not properly resolving paths 2016-10-05 09:28:12 -07:00
howard-stearns
c806f6cad2 better shutdown check for timer firings 2016-09-30 16:05:39 -07:00
Thijs Wenker
3d14a32d17 fix controller::ScriptingInterface not found warning in AC 2016-09-29 22:11:12 +02:00
elisa-lj11
cdc5dde40e Merge remote-tracking branch 'highfidelity/master' into zip_project 2016-08-23 11:22:43 -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
elisa-lj11
b1b2ea48b2 Made code more QA; extra browser and download widget close upon download 2016-08-04 17:01:19 -07:00
elisa-lj11
f277a019bf FileScriptingInterface
Created new .cpp and .h for the download and unzipping of a model
2016-08-04 16:46:56 -07:00
Brad Hefta-Gaub
74a3835a1e CR feedback 2016-07-28 15:15:33 -07:00
Brad Hefta-Gaub
22619a66ba process events also 2016-07-28 10:51:17 -07:00
Brad Hefta-Gaub
755989b8ff don't allow punished scripts to slow stop or shutdown 2016-07-28 10:01:05 -07:00
Brad Hefta-Gaub
2d199fe3d0 rename function for better clarity 2016-07-26 08:08:44 -07:00
Brad Hefta-Gaub
a12034cb45 fix unix warning, added comments 2016-07-26 07:54:55 -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
4e70e8ed42 js call to ray-pick against avatars 2016-06-28 09:55:49 -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
ef709c09d0 Merge branch 'master' of github.com:highfidelity/hifi into fix-edit-js-restart 2016-05-25 09:46:30 -07:00
Seth Alves
00336f4860 Merge branch 'master' of github.com:highfidelity/hifi into fix-edit-js-restart 2016-05-23 09:58:20 -07:00
Seth Alves
40e862cf9e quiet gcc 5 warnings 2016-05-21 16:53:01 -07:00
Seth Alves
aa58cad93e code review 2016-05-20 09:54:54 -07:00
Zach Pomerantz
4c8ff557db Merge branch 'master' of github.com:highfidelity/hifi into fix/debug-script-crash 2016-05-20 09:31:30 -07:00
Zach Pomerantz
8025a3f14c Prevent crash from script timers on shutdown 2016-05-18 17:30:34 -07:00
Zach Pomerantz
c480dcfddd Check thread validity after event processing 2016-05-18 16:26:54 -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
e1c130d02f Timeout long sandbox scripts 2016-05-12 17:51:39 -07:00
Zach Pomerantz
1107882be2 Throw to stop non-evaluating scripts 2016-05-12 17:51:38 -07:00
Zach Pomerantz
7e82494a66 Add cap on entities scripting thread stop time 2016-05-12 17:51:37 -07:00
Zach Pomerantz
f2f89ca062 Add logging to ScriptEngine lifetime 2016-05-12 17:51:36 -07:00
Zach Pomerantz
2cc788f98d Rename ScriptEngine::wait to match std threading 2016-05-12 17:51:35 -07:00
Zach Pomerantz
edf82c57ba Clean scripting thread deletion 2016-05-12 12:45:02 -07:00
Zach Pomerantz
13d602487f Remove guard over atomic in ScriptEngine::stop 2016-05-12 12:43:16 -07:00
Zach Pomerantz
820fdf09e2 Remove unused ScriptEngine::_wantSignals 2016-05-12 12:42:29 -07:00
Brad Hefta-Gaub
af6be7f5f3 Merge pull request #7845 from jherico/script_debug
Enable script debugging
2016-05-10 15:56:38 -07:00
Brad Davis
b117a4b8d7 Debugging menu destruction 2016-05-10 12:21:19 -07:00
Seth Alves
68201746aa Merge branch 'master' of github.com:highfidelity/hifi into fix-stanard-library-include-some-more 2016-05-09 18:39:37 -07:00
Brad Davis
40316498a4 Enable script debugging 2016-05-09 17:02:40 -07:00
Zach Pomerantz
7db082b915 Amend comment that was not a busy wait 2016-05-09 15:05:13 -07:00
Seth Alves
b0a5d8b719 make Script.include(/~/system/libraries/utils.js) work from web again 2016-05-08 08:45:58 -07:00
Zach Pomerantz
173d2a590c Use sleep_until for ScriptEngine 2016-05-06 19:30:37 -07:00
Zach Pomerantz
56ec0e5db0 Abort infinite JS loops on quit 2016-05-04 12:02:08 -07:00
Zach Pomerantz
284feaf5d4 Properly shut down scripting thread 2016-05-03 20:29:31 -07:00
Brad Hefta-Gaub
754ef071eb Merge pull request #7786 from sethalves/web-scripts-use-local-libs
allow scripts on the web to refer to local libraries with /~/
2016-05-03 11:10:48 -07:00
Brad Hefta-Gaub
ad285ff9a1 Merge pull request #7769 from ZappoMan/abortForInfiniteLoops
add support to abort evaluation of long running scripts on shutdown
2016-05-02 20:44:12 -07:00
Brad Hefta-Gaub
2b54813075 Merge pull request #7783 from zzmp/fix/script-engine-deletion
Fix script engine deletion
2016-05-02 18:16:07 -07:00
Brad Hefta-Gaub
b98419e537 add units to debug message 2016-05-02 14:58:38 -07:00
Brad Hefta-Gaub
4569032314 more CR feedback 2016-05-02 12:44:07 -07:00
ZappoMan
6026e055aa more CR feedback removed redundant abort code 2016-04-30 15:45:42 -07:00
ZappoMan
ee4748fee9 CR Feedback 2016-04-30 15:31:09 -07:00
ZappoMan
73ff0308a9 some CR feedback 2016-04-30 15:23:50 -07:00
Seth Alves
351a5d2cb1 remove debug print 2016-04-29 13:24:12 -07:00
Seth Alves
b28cfd27ec fix problem where canonicalFilePath will strip a trailing slash 2016-04-29 13:17:59 -07:00
Seth Alves
f03130ff5a more work toward keeping /~/../.. from working 2016-04-29 11:04:08 -07:00
Seth Alves
8c278563f5 allow scripts on the web to refer to interface-local javascript libraries 2016-04-28 13:41:50 -07:00
Zach Pomerantz
30e7b950a1 Fix script engine deletion 2016-04-28 11:41:36 -07:00
Zach Pomerantz
854c0ea3e3 Clean out updateMemoryCost 2016-04-27 19:20:43 -07:00
Zach Pomerantz
1e8d45aecb Put ScriptableResource state enum in prototype 2016-04-27 19:20:43 -07:00
Brad Hefta-Gaub
48e63ea828 add support to abort evaluation of long running scripts on shutdown 2016-04-26 16:24:53 -07:00
Brad Hefta-Gaub
a21bc66fa3 add support to abort evaluation of long running scripts on shutdown 2016-04-26 16:21:11 -07:00
Zach Pomerantz
1a0a623d5f Report ScriptableResource memory cost to engine 2016-04-20 20:18:22 -07:00
Zach Pomerantz
8ad8b5d0d9 Return ScriptableResource from prefetch 2016-04-20 20:14:15 -07:00
Brad Hefta-Gaub
d5891e9073 remove abortEvaluation() since it has no effect for the test cases and might cause unexpected side effects 2016-04-18 15:28:33 -07:00
Brad Hefta-Gaub
bf8cdabd1b CR feedback 2016-04-18 12:50:29 -07:00
Brad Hefta-Gaub
9e13b1bbae more CR feedback 2016-04-18 12:25:46 -07:00
Brad Hefta-Gaub
f6c75d0530 cleanup 2016-04-18 10:41:54 -07:00
Brad Hefta-Gaub
0520363da8 cleanup 2016-04-18 10:37:15 -07:00
Brad Hefta-Gaub
d1f6b371c9 cleanup 2016-04-18 10:27:12 -07:00
Brad Hefta-Gaub
9db0fe0d11 switch to using QSharedPointer for _entitiesScriptEngine 2016-04-18 09:46:04 -07:00
Brad Hefta-Gaub
71d57295eb handle possibly deleted ScriptEngine in getScriptContents 2016-04-16 19:39:45 -07:00
Brad Hefta-Gaub
87078b1ea2 first cut at resetting entities script engine on domain change 2016-04-16 11:09:23 -07:00
Anthony J. Thibault
253e4cbb73 validate arguments to MyAvatar.addAnimationStateHandler()
Also validate arguments to MyAvatar.removeAnimationStateHandler() and the return result from the user provided callback function.
2016-04-14 16:25:17 -07:00
Brad Hefta-Gaub
ce1625b551 Merge pull request #7600 from sethalves/fix-entity-script-error-message
attempt to make the failed-to-load-entity-script error-message be more helpful
2016-04-07 09:17:04 -07:00
Brad Hefta-Gaub
986b4bea7c Merge pull request #7603 from zzmp/fix/entities-thread-crash
Fix intermittent crash on exit
2016-04-07 08:21:51 -07:00