Commit graph

800 commits

Author SHA1 Message Date
Sam Gondelman
5b6e7b2566
Merge branch 'master' into scriptvec3 2018-10-02 08:58:04 -07:00
Brad Hefta-Gaub
edd5db7768
Merge pull request #14042 from thoys/perf/create/getMultipleEntities
Speed up Entity List properties fetching by adding Entities.getMultipleEntities API
2018-10-01 16:16:48 -07:00
Seth Alves
f6e57f54b0 don't call enterEntity until script preload has finished 2018-09-21 10:26:55 -07:00
Thijs Wenker
06491ef12f API function for retrieving multiple entity properties with better performance 2018-09-20 19:34:00 +02:00
SamGondelman
c522d1bc93 merge with master 2018-09-14 00:57:13 -07:00
Clement
e6b4ccef16 Add lock around _entityScripts 2018-09-13 15:10:16 -07:00
David Back
3601ade8ba destroy thread from thread finished not scriptEngine destroyed 2018-09-07 18:36:36 -07:00
Sam Gondelman
6730635931
Merge branch 'master' into scriptvec3 2018-08-27 10:43:52 -07:00
SamGondelman
283c0c0311 s i m p l i f y 2018-08-23 11:47:56 -07:00
Stephen Birarda
01e8fd66a3 fix script engine(s) cleanup from ESS 2018-08-22 13:52:37 -07:00
Sam Gondelman
f0986a7f5a Merge branch 'master' into scriptvec3 2018-08-20 10:56:45 -07:00
Stephen Birarda
e686df6fb9
Merge pull request #13720 from Atlante45/feat/test-tool
Stack tester changes
2018-08-08 13:40:05 -04:00
Sam Gondelman
7772e8adf2
Merge branch 'master' into scriptvec3 2018-08-03 14:57:49 -07:00
Clement
9c89aa9f90 Make sure the stack test interface gets cleaned up 2018-08-01 13:29:07 -07:00
Thijs Wenker
74343c71d8 CR fixes 2018-07-31 22:29:53 +02:00
Clement
949c7f8c19 Add automated test tool scripting interface 2018-07-30 17:18:32 -07:00
Thijs Wenker
ba8d445444 fix require by queueing content requests 2018-07-28 00:25:16 +02:00
SamGondelman
5bbd5b9e52 vec2 conversion 2018-07-10 16:32:49 -07:00
Anthony J. Thibault
ac6fcf092c Fix memory corruption via lambdas that capture local variables by reference.
The lambdas in ScriptEngine::fetchModuleSource() were referencing local stack variables by reference.
This could lead to un-expected results including memory corruption.
To workaround this issue the QTimer and QEventLoop variables are allocated on the heap and held onto by a shared_ptr.
This shared_ptr is passed to the lambda.

This will not result in cycles and should result in the QTimer and QEventLoop being destroyed when the BatchLoader
object they are connected to is deleted.
2018-06-28 11:15:25 -07:00
Alexander Ivash
5897c9948d terminate thread if it didn't complete during MAX_SCRIPT_QUITTING_TIME 2018-06-06 03:52:22 +03:00
Gabriel Calero
bb73af7230 Show stats button only in debug mode. Add isDebugMode to Script public interface 2018-05-29 17:21:44 -03:00
David Rowe
e44e7ca35f Fix up Resource and resource cache APIs' JSDoc 2018-05-21 11:57:16 +12:00
Seth Alves
7466d08f1f more suppression of logging 2018-05-09 13:01:49 -07:00
Clement
da9fb9c751 Fix non self-sufficient headers 2018-05-04 16:26:41 -07:00
John Conklin II
7a5fce4315
Merge pull request #12991 from luiscuenca/avatarScript
Avatar Scripts
2018-05-02 12:23:13 -07:00
David Rowe
a1fc1c4810 Add JSDoc for Entity preload and unload signals 2018-05-01 21:55:14 +12:00
luiscuenca
50ca09b3b4 minor fixes 2018-04-30 16:26:04 -07:00
luiscuenca
2de982a5a2 Added script types and better script reload 2018-04-30 12:04:35 -07:00
MiladNazeri
9baf02b7a1
Merge pull request #12036 from humbletim/Leopoly_Phase1_003_Asset-Request
Leopoly_Phase1_003_Asset-Request
2018-01-29 11:40:41 -08:00
humbletim
3a735c1fc7 CR feedback and code cleanup 2018-01-23 03:12:26 -05:00
Brad Davis
ceb60f6eba Fix built-in resource loading from scripts 2018-01-16 12:33:09 -08:00
Bradley Austin Davis
282ae7b6f9 Small fixes 2017-12-11 14:42:37 -08:00
Bradley Austin Davis
9df9cf7a47 Adding more libs, ifdefs for android incompatible code 2017-12-11 13:18:23 -08:00
David Rowe
da33c4fcf2 Fix script reload icon not working in Windows developer builds 2017-10-26 11:41:52 +13:00
ZappoMan
44f8bf00bc move remoteCallerID to Script.remoteCallerID 2017-10-22 17:14:11 -07:00
ZappoMan
a7e21d7e76 add remotelyCallable and remoteCallerID to provide additional security to Entities.callEntityServerMethod() 2017-10-22 14:30:58 -07:00
Brad Hefta-Gaub
80f0bd3b79 Merge pull request #11494 from humbletim/add-console-output-basenames
[experiment/feedback] Include script name with all JS/QML debug output
2017-10-06 17:58:19 -07:00
beholder
cc8f1352da 7951 Reload button in Running Scripts dialog stops script 2017-10-02 22:18:03 +03:00
humbletim
fd917917c4 include the source basename in Script.print() && QML/Script console.*() debug output 2017-09-29 14:48:01 -04: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
burtsloane
d4ae298a8d Merge branch 'master' into midi 2017-07-26 13:59:07 -07:00
Brad Davis
7f1bc07d04 Trying to fix overlay crashes again 2017-07-05 14:30:01 -07:00
Brad Davis
6fc82bb351 Switch to preprocessor macro for blocking invokes to capture function information 2017-06-30 11:36:24 -07:00
Brad Davis
b52dd7b822 Don't use blocking connections on the main thread 2017-06-29 20:45:17 -07:00
Seth Alves
794495c197 make ResourceManager be owned by DependencyManager 2017-06-28 14:18:14 -07:00
Seth Alves
e4a9674614 Merge pull request #10824 from sethalves/fix-script-sleep-busyloop
use QEventLoop and a timer for a less CPU using sleep + event-processing
2017-06-27 21:00:40 -07:00
Seth Alves
4f672f93d2 avoid cast that isn't always available 2017-06-26 16:03:39 -07:00
Seth Alves
bf7da71eaf use QEventLoop and a timer for a less CPU using sleep + event-processing 2017-06-26 15:07:22 -07:00
samcake
c0e8b6c8bc clean up 2017-06-23 14:18:56 -07:00
samcake
b7b520a6e8 Merge branch 'master' of https://github.com/highfidelity/hifi into brown 2017-06-23 13:50:31 -07:00
Brad Hefta-Gaub
dc649e84df Merge pull request #10792 from jherico/qml_crashes
Trying to fix QtQml/QtScript crashes
2017-06-23 12:41:43 -07:00
samcake
c24e254257 Add support for profiling from scripts 2017-06-22 18:10:20 -07:00
Brad Davis
4439de240a Trying to fix QtQml/QtScript crashes 2017-06-22 16:39:57 -07:00
samcake
bda52c33e6 Adding the function source when profiling, to explore perf issues 2017-06-22 15:35:00 -07:00
David Kelly
ff5b37c785 new --scripts switch overrides default scripts location 2017-06-22 14:09:05 -07:00
Sam Cake
c35be446e6 adding profiling on the script engine call back to timer event 2017-06-21 00:06:45 -07:00
Sam Cake
189ad9c706 Merge branch 'master' of https://github.com/highfidelity/hifi into brown 2017-06-20 22:42:40 -07:00
samcake
d853a76376 Fixing the scripts and investigating the scripting 2017-06-20 17:23:44 -07:00
NeetBhagat
2909aa9ac8 Resolve comments of @zappoman.
-- Rename "asserts" to "assert"
-- Log printing methods will accept lists of objects or strings.
2017-06-17 01:00:32 +05:30
Burt Sloane
4f7a1a6e2e got rid of tabs 2017-06-15 16:35:53 -07:00
Burt Sloane
fbc28c0e2f pedantic PR 2017-06-15 16:16:29 -07:00
Burt Sloane
7022c4009f midi in and out 2017-06-15 15:18:06 -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
904e25c9e3 intial commit #21369 Working on clear method of console 2017-06-07 14:37:18 +05:30
NeetBhagat
0f9cd5d0c7 intial commit hifi: #21369 Implement parts of the JS "console" object 2017-06-06 15:20:08 +05:30
Chris Collins
f8b92b6666 Merge pull request #10536 from misslivirose/fix/check-extension-running-scripts
Fix/check extension running scripts
2017-05-23 22:15:50 -07:00
Liv
b2bbf21fb0 style fixes 2017-05-23 15:21:21 -07:00
Liv
09c7a61599 Fix from string equals to contains to account for working formats not correctly detected with suffix 2017-05-23 14:42:07 -07:00
Liv
3340211455 Cleanup and better error handling 2017-05-23 13:54:38 -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
Ryan Huffman
3c9205d0b2 Remove invalid comment and unnecessary check from ScriptEngine
This removes an invalid comment - waitTillDoneRunning is not only called
from the main thread - and remove a check to make sure thread() is not
null because it should no longer be deleted before ScriptEngine.
2017-05-22 15:46:43 -07:00
Ryan Huffman
09c98b3ac3 Fix ScriptEngine thread being deleted too early
The thread appeared to be deleted before waitTillDoneRunning was
finished. This is a speculative fix. This ensures that the QThread isn't
deleted until after the ScriptEngine is deleted.
2017-05-22 15:31:11 -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
Ryan Huffman
ac0a738945 Merge pull request #10261 from Atlante45/feat/progressive-load-ktx
Add progressive load for KTX textures
2017-04-26 18:36:01 -07:00
Ryan Huffman
105d17e85e Add byte range support to HTTPResourceRequest 2017-04-26 10:45:14 -07:00
David Rowe
4a5f84f4b9 Merge branch 'master' into 21249
# Conflicts:
#	libraries/audio-client/src/AudioClient.cpp
2017-04-26 13:24:18 +12:00
David Rowe
4c30c0d722 Make UserActivityLogger available to AC scripts 2017-04-25 13:42:12 +12:00
Dante Ruiz
1ec4081a99 crash fix 2017-04-20 21:38:20 +01:00
Stephen Birarda
84a5807ff1 return ScriptAvatarData raw pointer from getAvatar 2017-04-10 22:15:45 -07:00
Stephen Birarda
42a406e90a add ScriptAvatar for std::shared_ptr<Avatar> passing to scripts 2017-04-10 22:15:45 -07:00
Zach Fox
1984d5bc0c Cleanup 2017-04-10 22:15:44 -07:00
Zach Fox
5edd5d2b30 It's working...it's workinggit add -A! 2017-04-10 22:15:44 -07:00
Zach Fox
a16e261735 Checkpoint before a number of confusing changes 2017-04-10 22:15:44 -07:00
Stephen Birarda
4ed22ad7ac move audio loudness to AvatarData, change AvatarData to ScriptOwnership 2017-04-10 22:15:44 -07:00
Anthony J. Thibault
8ff457a1b6 Fix broken eventBridge on tablet after Reload All Scripts.
The main issue here was the "webEventReceived" connection between the OffscreenQMLSurface and the TabletProxy object.
For whatever reason, if this is not a direct Signal to Slot connection, the webEventReceived event does not propagate.
2017-04-03 16:03:55 -07:00
Stephen Birarda
c63a2c9cda remove requirement of ScriptEngine in ScriptEngines slots 2017-03-20 13:40:15 -07:00
Stephen Birarda
a4d72c4e67 make AudioScriptingInterface a Dependency 2017-03-20 13:40:15 -07:00
Chris Collins
308c134119 Merge pull request #9686 from humbletim/21114-part3
CR 21114 -- Implement modules/require support into hifi
2017-03-20 06:22:35 -07:00
Brad Hefta-Gaub
a75acd139b Merge pull request #9885 from sethalves/model-scripting
Model scripting
2017-03-17 13:13:17 -07:00
humbletim
87d62ad1eb Merge branch 'master' into 21114-part3 2017-03-16 16:39:37 -04:00
Stephen Birarda
a69cf76d06 Merge pull request #9879 from birarda/bug/no-unload
make sure deleted entities are unloaded first
2017-03-16 13:29:36 -07:00
humbletim
758c07c7d4 Merge branch 'master' into 21114-part3 2017-03-16 14:29:17 -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
Seth Alves
693aee0628 Merge branch 'master' of github.com:highfidelity/hifi into model-scripting 2017-03-15 16:54:40 -07:00
Stephen Birarda
0c657a1d55 add parameter to unload to remove entityID from map 2017-03-15 10:57:12 -07:00
Seth Alves
e8a9ff867d merge from upstream 2017-03-13 17:57:01 -07:00
humbletim
075574b428 log cleanup per CR; add more specific hints (instead of relying on __FUNCTION__) 2017-03-13 16:33:42 -04:00
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