Ben Nham
abe7a2a9f1
encapsulate JS source in RCTSource object
...
Reviewed By: alexeylang
Differential Revision: D5669734
fbshipit-source-id: 60c798afa2115510a17acf9e970e8ba52507724f
2017-08-30 06:29:42 -07:00
Ben Nham
1ce7e4c1e5
add notifications for dev reload
...
Reviewed By: alexeylang
Differential Revision: D5630472
fbshipit-source-id: 1c44a52fddead361b43551384bbfc73e2d89438f
2017-08-17 17:16:19 -07:00
Rafael Oleza
6ad7e8281b
Do not send 'hot' parameter when requesting a bundle from iOS
...
Reviewed By: fromcelticpark
Differential Revision: D5631050
fbshipit-source-id: 1f587f3af68da4d94b5d24afabf7659abb697747
2017-08-16 11:10:32 -07:00
Dmitry Zakharov
cf38b083dd
Implement lazy discovery scaffolding for loading NativeModules on demand.
...
Reviewed By: javache
Differential Revision: D5364734
fbshipit-source-id: 5162f7d41434a3ba38c82fa610e84f865bfacf50
2017-08-11 06:41:33 -07:00
Pieter De Baets
1cd276ab5c
Specialize JSCValueEncoder for id instead of NSArray
...
Reviewed By: kathryngray
Differential Revision: D5355723
fbshipit-source-id: a992514c92143fcac52f8e35824c665a1cb44ea4
2017-08-07 06:45:34 -07:00
Adlai Holler
7c528cd569
RCTCxxBridge: Use C++ atomic
...
Summary:
The next in my series of :atom: migrations.
Closes https://github.com/facebook/react-native/pull/15277
Differential Revision: D5526460
Pulled By: javache
fbshipit-source-id: e4ba54a5911c4a76280edf8aa164ac5aa935a945
2017-07-31 03:35:18 -07:00
Marc Horowitz
2334899dfe
in RCT_DEBUG mode, make the js stack bigger
...
Reviewed By: javache
Differential Revision: D5459755
fbshipit-source-id: 169cb542c92ea6d5e438c4bbe35879e7a097a3aa
2017-07-20 12:16:21 -07:00
Pieter De Baets
ed3c018ee4
Remove legacy JSC profiler
...
Reviewed By: bnham
Differential Revision: D5433406
fbshipit-source-id: 8cbea8b9b46a0d9f29c57a5bcf605e6bb61ed8a7
2017-07-20 04:21:16 -07:00
Marc Horowitz
05c4de0b51
Add a delegate hook for providing a different JS implementation
...
Reviewed By: javache
Differential Revision: D5404876
fbshipit-source-id: d86ca9943b4b45616fc90bf14e8b0607d3cdb93c
2017-07-19 13:49:32 -07:00
Pieter De Baets
980d5140d6
Merge allowOffMainQueueRegistration and requiresMainQueueSetup
...
Reviewed By: fromcelticpark
Differential Revision: D5398021
fbshipit-source-id: 7e721cce579678f4c82582f5068cf46574afe961
2017-07-17 03:45:30 -07:00
Paco Estevez Garcia
a1e053cc50
Add Framework name to Attach selection
...
Reviewed By: Hypuk, javache
Differential Revision: D5389047
fbshipit-source-id: 90e2a5f805561e47e7705e7935ced7556a374616
2017-07-14 07:50:40 -07:00
Pieter De Baets
f1cbb11620
Replace -[RCTConvert folly_dynamic:] with direct calls to convertIdToFollyDynamic
...
Reviewed By: kathryngray
Differential Revision: D5355734
fbshipit-source-id: 4ba1533b75c8e271a86a2d5cc3a3354e52f83db2
2017-07-10 05:31:04 -07:00
Pieter De Baets
e2628f93b5
Rename Executor to JSExecutor
...
Summary:
* Cleanup some header files so we use more forward declarations
* Rename Executor to JSExecutor.h
* Move some typedefs to more appropriate locations
Reviewed By: mhorowitz
Differential Revision: D5301913
fbshipit-source-id: e75154797eb3f531d2f42a5e95409f4062b85f91
2017-06-23 17:01:25 -07:00
Pieter De Baets
d795fa1b2c
Update native references to JSTimers
...
Reviewed By: AaaChiuuu
Differential Revision: D5294997
fbshipit-source-id: 3003d56f744af0c35b1ffef7bdd71617d4f948c3
2017-06-22 09:52:33 -07:00
Pieter De Baets
c5004d5dd0
Make startup errors in the websocket executor invalidate the bridge
...
Reviewed By: mhorowitz
Differential Revision: D5226936
fbshipit-source-id: b6d605974674d0e6f86559f2583553e3636d389b
2017-06-22 08:37:13 -07:00
Viacheslav Radchenko
879edf0d05
Added RCTInspectorDevServerHelper call in FBReactJSExecutor. Added UTF8StringForSourceURL
...
Reviewed By: javache
Differential Revision: D5246399
fbshipit-source-id: 179ff0b69886c4ff71911fc7b1d3491ff4d5967d
2017-06-14 14:10:10 -07:00
Pieter De Baets
9250250364
Call Systrace.setEnabled from CxxBridge
...
Reviewed By: alexeylang
Differential Revision: D5247016
fbshipit-source-id: 7e31e38d7adae8d432a11199a1de572d082169e3
2017-06-14 11:16:05 -07:00
Pieter De Baets
64825389df
Fix timers not firing when running in JS debugger
...
Reviewed By: mhorowitz
Differential Revision: D5227125
fbshipit-source-id: 3dadb3f2e2fd088853537c09cc019d7be6319444
2017-06-13 09:31:55 -07:00
Ben Nham
2984628357
add marker surrounding entire native module creation
...
Reviewed By: javache
Differential Revision: D5200856
fbshipit-source-id: 35b0e627224d518126a1cfdd36d6af264dd186cf
2017-06-09 06:22:39 -07:00
Pieter De Baets
81c2f3b189
Cleanup Platform
...
Reviewed By: dcaspi
Differential Revision: D5185504
fbshipit-source-id: 4f7e9f9068598418b346a7370f6be241a0784b60
2017-06-07 10:19:01 -07:00
Dan Caspi
e284a9db8c
Create JS executor and context on main thread w/ custom JSC
...
Reviewed By: javache
Differential Revision: D5165405
fbshipit-source-id: 35e5cfdf0518968c095ba54ec980d2fe376fa20e
2017-06-06 04:45:51 -07:00
Pieter De Baets
33e22486e9
Fix some issues with the React podspec for the Cxx bridge
...
Summary:
Trying to fix the RN Travis CI tests
Splitting off from https://github.com/facebook/react-native/pull/14100
Closes https://github.com/facebook/react-native/pull/14132
Reviewed By: ericvicenti
Differential Revision: D5112077
Pulled By: javache
fbshipit-source-id: cf030b927b0f28f2b494471498f1ddb2c0a5c1df
2017-05-30 11:15:19 -07:00
Pieter De Baets
03e1f40c1e
Cleanup and document Value wrapper (retry)
...
Reviewed By: mhorowitz
Differential Revision: D5120975
fbshipit-source-id: 6e9c80a57fdcf7f3dad21d5521fb928b52c924c7
2017-05-26 04:17:19 -07:00
Kathy Gray
f46eaa30cf
Provide sync vs async interface for bundle loading via parameter
...
Reviewed By: javache
Differential Revision: D5104317
fbshipit-source-id: ffacb57d85c24795a3acc2faba2ff5824cc739b2
2017-05-24 07:31:36 -07:00
Pieter De Baets
d59fd9e419
Revert D5087565: Cleanup and document Value wrapper
...
Differential Revision: D5087565
fbshipit-source-id: 8168bda39fac9384264e9d849b205a2c1d37dcfa
2017-05-24 07:31:36 -07:00
Pieter De Baets
374d08b8e4
Cleanup and document Value wrapper
...
Reviewed By: mhorowitz
Differential Revision: D5087565
fbshipit-source-id: 21b15dc4c476d6ecd7c42f9334c6995fa43810c2
2017-05-24 06:30:51 -07:00
Pieter De Baets
0357303f5b
Schedule initializeBridge on the JS thread
...
Reviewed By: shergin
Differential Revision: D5044230
fbshipit-source-id: 87030e210af662bc12cfb57bc83e73a128303fb0
2017-05-17 09:02:43 -07:00
Pieter De Baets
8525aac769
Ensure enqueueJSCall's completion block is always dispatched after the actual JS call
...
Reviewed By: mhorowitz
Differential Revision: D4985694
fbshipit-source-id: 50ab14e7088a53e03d5ee70c8ea1e245f531dac1
2017-05-16 09:46:54 -07:00
Pieter De Baets
6221053179
Improve systrace markers
...
Reviewed By: mhorowitz
Differential Revision: D4860135
fbshipit-source-id: ce963010883e6b9cc8e34f7ff01b4018cd195eba
2017-05-12 18:07:49 -07:00
Ben Nham
65f22a5190
log script name with bundle loading perf event
...
Reviewed By: javache
Differential Revision: D5010638
fbshipit-source-id: 2e139201a8374245fa1dedc4f11a716dcf700fd7
2017-05-10 04:09:19 -07:00
Pieter De Baets
34bc6bd2ae
Drop support for webworkers
...
Reviewed By: AaaChiuuu
Differential Revision: D4916449
fbshipit-source-id: a447233d3b7cfee98db2ce00f1c0505d513e2429
2017-04-25 05:37:54 -07:00
Alexey Lang
1bc9d448f5
Port perf metrics used in RCTBatchedBridge
...
Reviewed By: javache
Differential Revision: D4938279
fbshipit-source-id: c927261ff96c2eb07b7303ae96aae7600f2947f1
2017-04-25 02:32:25 -07:00
Kevin Cooper
e443b7379e
More verbose error messages for iOS
...
Summary:
Output the reason for the error when failing to load source code. This was a big help when trying to diagnose https://github.com/facebook/react-native/issues/13299 .
~~Unfortunately there still seems to be no way to get the offending line number (because `loadError.userInfo[RCTJSStackTraceKey]` is empty), but this is good enough.~~
Before:
```
[warn][tid:com.facebook.react.JavaScript][RCTBatchedBridge.m:510] Failed to execute source code. Unhandled JS Exception: SyntaxError
```
After:
```
[warn][tid:com.facebook.react.JavaScript][RCTJSCErrorHandling.mm:30] Couldn't get stack trace for http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false:81886
[warn][tid:com.facebook.react.JavaScript][RCTBatchedBridge.m:510] Failed to execute source code. Unhandled JS Exception: SyntaxError Unexpected keyword 'var'
```
Closes https://github.com/facebook/react-native/pull/13561
Differential Revision: D4908501
Pulled By: javache
fbshipit-source-id: a316dc70739b917b3cc690309d0ff37a8bb5d412
2017-04-18 14:19:13 -07:00
Pieter De Baets
5767b98f4d
Add JSC utility header to RCTBridge
...
Reviewed By: shergin
Differential Revision: D4823509
fbshipit-source-id: 79c96d3bc183d89a5dec7da06b0a0a710d8c7dea
2017-04-07 11:16:59 -07:00
Pieter De Baets
76b93e1253
Add block-based initializer for RCTModuleData
...
Reviewed By: shergin
Differential Revision: D4821772
fbshipit-source-id: 2cd35ec6726b6fe1494a92966ade5aa0b86e769b
2017-04-07 11:16:59 -07:00
Pieter De Baets
b2647ea335
Allow ModuleRegistry initialization to complete lazily
...
Reviewed By: mhorowitz
Differential Revision: D4794794
fbshipit-source-id: f3b7a5d02587b4cd4e214aa6b0368a0d214fb63f
2017-04-07 09:30:33 -07:00
Pieter De Baets
e12e57eb77
Move bindKeys to RCTBridge setUp
...
Reviewed By: shergin
Differential Revision: D4794788
fbshipit-source-id: 0839829f4ed010bf2fb2574092a8f68f4c95341a
2017-03-31 05:31:26 -07:00
Pieter De Baets
5af30382d5
Improve fbsystrace support
...
Reviewed By: mhorowitz
Differential Revision: D4756318
fbshipit-source-id: 7811f680a7ad044b5ae028ee9b2fed5f46ce2a63
2017-03-30 06:53:16 -07:00
Pieter De Baets
9d377e98a0
Fix warnings in React.xcodeproj
...
Summary:
Various fixes of xcode projects and cleaning up some warnings
Closes https://github.com/facebook/react-native/pull/13109
Differential Revision: D4762652
Pulled By: lacker
fbshipit-source-id: b452976a58962439de4adecc8e703264af40cb38
2017-03-23 11:36:17 -07:00
Marc Horowitz
ba149d7277
Tease apart React and RCTBatchedBridge targets
...
Reviewed By: javache
Differential Revision: D4679655
fbshipit-source-id: 8123488c2d50dd7cc2329b5131e99998fe1f1e2f
2017-03-21 18:31:23 -07:00
Marc Horowitz
d9ac00735c
Make the choice of bridge based on an optional delegate method
...
Reviewed By: javache
Differential Revision: D4679644
fbshipit-source-id: f53e554e283fdb0b59c41623e690fd1a21e03a57
2017-03-21 18:31:23 -07:00
Pieter De Baets
ce270220e4
Extract module registry creation to helper
...
Reviewed By: mhorowitz
Differential Revision: D4721817
fbshipit-source-id: 2fa17ca5317a57d429aa75d6c1865932af27e02f
2017-03-17 07:08:14 -07:00
Pieter De Baets
ea069b69de
Make Cxx modules lazy on iOS
...
Reviewed By: mhorowitz
Differential Revision: D4716040
fbshipit-source-id: 08cc1317e15f0b3bd1df6d76c483a560f5c43d53
2017-03-17 07:08:14 -07:00
Pieter De Baets
73e81b87d3
Remove unused onNativeException delegate method
...
Reviewed By: mhorowitz
Differential Revision: D4597914
fbshipit-source-id: 82a109d1e6d8b0c93380840c22ec74dc75ab1a45
2017-03-17 07:08:14 -07:00
Pieter De Baets
d7b37c4050
Remove JsToNativeBridge's nativeQueue
...
Reviewed By: mhorowitz
Differential Revision: D4589737
fbshipit-source-id: 3b2730417d99c4f98cfaad386bc50328f2551592
2017-03-17 07:08:14 -07:00
Marc Horowitz
e622d51e20
Support ModuleHolder-based lazy init of C++ modules with C++ bridge on android
...
Reviewed By: AaaChiuuu
Differential Revision: D4614479
fbshipit-source-id: 109ac34b8688f0113675e4a4479d1ddcc6169ed4
2017-03-14 15:35:01 -07:00
Marc Horowitz
d1411f11d3
Drop calls to [RCTCxxBridge enqueueCallback:args:] on an invalid instance
...
Reviewed By: mmmulani
Differential Revision: D4655339
fbshipit-source-id: a6cb026325a030fa15a25638ebfb17ac9ea53767
2017-03-06 12:03:30 -08:00
Marc Horowitz
611661e5fe
TODO is done
...
Reviewed By: AaaChiuuu
Differential Revision: D4614454
fbshipit-source-id: 48d66b26371834e35c43731a22abc015fc234650
2017-02-28 14:15:57 -08:00
Ben Roth
6a14f0b449
Add RCTDevSettings module
...
Summary:
This decouples non-UI logic from RCTDevMenu into a new module RCTDevSettings.
**Motivation**: This allows developers to change dev settings without depending on the built-in dev menu, e.g. if they want to introduce their own UI, or have other devtools logic that doesn't depend on an action sheet.
It also introduces the RCTDevSettingsDataSource protocol for storing dev tools preferences. This could allow a developer to implement alternative behaviors, e.g. loading the settings from some other config, changing settings based on the user, deciding not to persist some settings, or something else.
The included data source implementation, RCTDevSettingsUserDefaultsDataSource, uses NSUserDefaults and is backwards compatible with the older implementation, so **no workflows or dependent code will break, and old saved settings will persist.**
The RCTDevMenu interface has not changed and is therefore also backwards-compatible, though
some methods are now deprecated.
In order to ensure that RCTDevSettings
Closes https://github.com/facebook/react-native/pull/11613
Reviewed By: mmmulani
Differential Revision: D4571773
Pulled By: javache
fbshipit-source-id: 25555d0a6eaa81f694343e079ed02439e5845fbc
2017-02-24 07:00:16 -08:00
Pieter De Baets
ebe3355de7
Create NSDataBigString
...
Reviewed By: bnham
Differential Revision: D4559734
fbshipit-source-id: 6766093524ae79ed2a41285d33eb2207993a7d0e
2017-02-20 05:00:58 -08:00
Ashok Menon
1635c02e92
Simplifying Struct definition.
...
Summary:
Since we are reading from a file, we should make sure this struct is packed, just in case we change it down the line and the compiler decides it might want to introduce padding, we're now protected against that.
There was also a discussion about the fact that people might use `ptr += sizeof(BundleHeader)` as an idiom in their code, which would currently be incorrect, if padding was introduced at the end of the file. Actually, it remains incorrect to do that now, because a RAM bundle header is a different size to a BC Bundle header. If people are properly testing their code, they should spot this pretty quickly, because it will always be an incorrect thing to do with a RAM bundle, so this isn't as bad as previously thought: where the code only succeeds when the compiler deigns to not pad the struct at the end.
This diff also cleans up how headers are initialised. `BundleHeader` has a constructor that explicitly zero-initialises it so we can rely on the default initializer to do the right thing now.
Reviewed By: mhorowitz
Differential Revision: D4572032
fbshipit-source-id: 7dc50cfa9438dfdfb9f842dc39d8f15334813c63
2017-02-20 04:30:19 -08:00
Alexey Lang
ba029becbe
Support QuickPerformanceLogger.js in CxxBridge
...
Reviewed By: javache
Differential Revision: D4573567
fbshipit-source-id: 3ef9da38fb178cf4c1400b4a991a9e85f3ec3755
2017-02-17 06:00:54 -08:00
Pieter De Baets
c529a06cb8
Remove unused RCTMessageQueue
...
Reviewed By: mhorowitz
Differential Revision: D4564975
fbshipit-source-id: 62cb686fe5fefb4ec4a8f5db44898a95496420be
2017-02-16 15:18:43 -08:00
Pieter De Baets
11e59e3ff4
Move some utilities to RCTCxxUtils
...
Reviewed By: mhorowitz
Differential Revision: D4551173
fbshipit-source-id: db01d3205ec1feb54c815c0f0fc688fc7a4823d0
2017-02-16 14:02:03 -08:00
Pieter De Baets
5d4ff693b4
Move RCTFollyConvert to the correct namespace
...
Reviewed By: mhorowitz
Differential Revision: D4551124
fbshipit-source-id: 40a0a8ca818710a7529798b8244d9c133eb5c22d
2017-02-16 06:59:27 -08:00
Pieter De Baets
8987d86718
Fix error handling for nested exceptions
...
Reviewed By: mhorowitz
Differential Revision: D4551110
fbshipit-source-id: e593c1ef0dea27e95a387bcde6250aeb22d2e9cc
2017-02-15 06:15:11 -08:00
Pieter De Baets
bbe0c45c19
Prevent deadlock after bridge reload
...
Reviewed By: dcaspi
Differential Revision: D4551097
fbshipit-source-id: 33b43b2691d4e595d3c09c9a5b101ce458c4d6d7
2017-02-15 06:15:11 -08:00
Pieter De Baets
4d2512aef9
Replace MethodCallResult with folly::Optional
...
Reviewed By: AaaChiuuu
Differential Revision: D4481987
fbshipit-source-id: 945dd671eb2482f3c6b626192aa2181c5bfd906f
2017-02-02 05:13:33 -08:00
Marc Horowitz
b774820dc2
move C++ bridge into oss directory
...
Reviewed By: javache
Differential Revision: D4434052
fbshipit-source-id: ff2743eb7fe5d9cabb860752ca3d92d631a2f02b
2017-02-01 14:14:32 -08:00