Summary: Also acts as a model for using the computeNotifications api.
Reviewed By: passy
Differential Revision: D10240659
fbshipit-source-id: 610512de7484e10c9c0ed8e661913c2fe10869da
Summary:
Method `computeNotifications` added to the base plugin class.
Plugins should implement this to define a mapping from their state+props to the notifications they are emitting.
I've plugged this into componentDidUpdate, because we don't yet have the background plugin infra. When we do, we'll want some other incoming data hook to use so it's not tied to the react component rendering.
Example usage added to network plugin in the next commit.
Reviewed By: passy
Differential Revision: D10127875
fbshipit-source-id: efd4d8cfc0d3d33852a6cf9a290549a5f90d389d
Summary:
Yesterday I made a change that switches from hardcoded IP address 10.0.2.2, to localhost for emulators on Android 5+.
This didn't work with flipper because it relies on port forwarding, and port forwarding was only done for physical devices, not emulators.
This corrects that, by port forwarding whenever possible. This will enable using localhost, which simplifies remote adb connection support.
Reviewed By: danielbuechele
Differential Revision: D10255554
fbshipit-source-id: 77a05eddf530e0e9495568f2a0901f390464345a
Summary:
It's not super useful, to be honest, but it's to have one
open source `.node.js` test in place so `yarn test` doesn't
error out.
Reviewed By: danielbuechele
Differential Revision: D10217530
fbshipit-source-id: c0e17e48782174b856ef6d5fe94c5c042564e4f5
Summary: Pretty sure this was meant to get removed before open sourcing, it isn't referenced anywhere.
Reviewed By: danielbuechele
Differential Revision: D10202081
fbshipit-source-id: 23d213b3a041acad85eb723d32b65f7da276003d
Summary:
The buck install command fails when xcode_dmg is used in sandcastle hosts, meaning xcode is mounted somewhere other than /Applications.
Skip the connection test for now. I'll get oneworld working with it instead.
Reviewed By: passy
Differential Revision: D10231097
fbshipit-source-id: 16e320070f8b3fd4f56ff919bdd3ec47355e342c
Summary: Was passing in a Proxy instance before instead of a string. Now it passes the correct string that callers would expect.
Reviewed By: sjkirby
Differential Revision: D10181911
fbshipit-source-id: 8dfa677479a81de0f7b5be23f827ce7b52169931
Summary:
Before running the test suite, build wilde and run it on a local emulator.
This takes about 15 mins on a lego-mac with a warm cache.
It's probably worth splitting out the normal unit tests into a separate job, so we get quicker feedback on them. I'll do that in a separate diff.
Lets run this for a while, and see how it goes, I'm wondering if it might get flaky because it will be building the master version of wilde, so potentially could be broken a lot, though it's passed evry time I've tried it so far.
If it's reliable, we can run the same thing with loads of other apps in parallel.
Reviewed By: passy
Differential Revision: D10110408
fbshipit-source-id: 61c549eb1b9d04729dcb5ed01271a484af4777f5
Summary:
Adding support for JS testing. Currently there are two environments tests can run in: node and electron. To select which environment to run a test in, name your test file accordingly `*.node.js` or `*.electron.js` and put it in a `__tests__` folder.
- `yarn test` to run node based tests
- `yarn test-electron` to run electron tests
A basic snapshot test of the empty app is added to make sure the app is rendering as expected. A test for the server is added to make sure when Flipper is started the two servers (secure and insecure) are started and ready to accept connections.
Reviewed By: passy
Differential Revision: D10050212
fbshipit-source-id: 8ef7f931339b43251d9d423886bcaca99ae691e4
Summary:
Adds a test runner for jest test and adds three simple test cases:
- render the app
- start a server
- client connecting to the app
Test can be run using `yarn test`.
To make the test runner work, some changes needed to be made:
- remove the export of `init()` from `'flipper'`, because it was a cyclic dependency
- updating Button.js to the new ref-API
Reviewed By: jknoxville
Differential Revision: D10027078
fbshipit-source-id: 49107b0dd4dec666b92ecd841422fe7e6b3a7756
Summary: Fixes a flow issue in the type definition of a filter. The color can be optional.
Reviewed By: passy
Differential Revision: D9850602
fbshipit-source-id: 1d74d0462baef58ad1a93e23152583679f51c177
Summary: Allows to set the selected rows of a table using the `highlightedRows` property.
Reviewed By: passy
Differential Revision: D9850597
fbshipit-source-id: 62239192113f43ac257d7328b21b386b584a7cfb
Summary:
Plugins need to be self-contained. The can not require any dependency from Flipper's main app. This was a soft requirement before, but with the new version of metro, we now make this a hard requirement.
This speeds up plugin compile times, because only the files in the plugin's folder are watched and not all of Flipper's files. Moreover, this ensures "plugins" are real plugins and can be added and removed and are not mixed with the apps core.
Reviewed By: passy
Differential Revision: D9940735
fbshipit-source-id: 47e120429fc3c4c985731478ffa35c3359ff78f9
Summary:
Back out "Back out "[flipper] Export init function""
Original commit changeset: 93b916d472b7
The import side effect seems to cause some issues with shadowing,
so let's pull this all the way to the top and call this from HTML
as Sonar.init().
Reviewed By: danielbuechele
Differential Revision: D9849869
fbshipit-source-id: b62772ecddc59eab00251ebf19816f470d76ba82
Summary:
This seems to break initialization. I'm not quite sure why, but
inside the exported function, nothing else from the file appears
to be visible.
Original commit changeset: 55b2a61186e6
Reviewed By: danielbuechele
Differential Revision: D9849812
fbshipit-source-id: d88973721da82040e1f29669acade6c883619ce8
Summary: This way we can mock it during tests.
Reviewed By: jknoxville
Differential Revision: D9788349
fbshipit-source-id: 55b2a61186e6294a8098db7add50fd8bbac7a680
Summary:
Not sure if it's Metro or something else providing these globally,
but it makes Jest unhappy if they're missing.
Reviewed By: danielbuechele
Differential Revision: D9788350
fbshipit-source-id: 5fabad7af146bcb705471d2c7e66d79265c81c82
Summary:
Litho renders differently based on whether applicable accessibility services are enabled. In Flipper's accessibility mode this will be forced (with the option to turn it off) so that you don't have to be running an accessibility service to actually see what someone running an accessibility service would.
Here's an example video of what the re-rendering does (this also happens on toggle of accessibility mode, this is just the settings option to force it):
{F137856647}
Reviewed By: jknoxville
Differential Revision: D9667222
fbshipit-source-id: 292353d89f07734f1e525f795b1d7daf4130e203
Summary: Looks like some flow-disables were no longer necessary.
Reviewed By: jknoxville
Differential Revision: D9700398
fbshipit-source-id: 5514c16294624c1bed1d3818f9e271b07e320803
Summary: Not collecting all debug logs because there are so many, but server ones are few and usually important for context on what's connected at the time.
Reviewed By: danielbuechele
Differential Revision: D9654402
fbshipit-source-id: 5ad090838be3e06c25bd93e4d85726822bd7fc4e
Summary:
Basic tooltips available. Use is:
<Tooltip
title="This is what will show up inside the tooltip"
options={{ // can include any or none of these (if not included default will be used)
position, // 'above', 'below', 'toRight', or 'toLeft'
showTail, // whether or not tooltip should have tail
delay, // how long to wait on hover before showing tooltip
// supported css properties
backgroundColor,
color,
maxWidth,
width,
borderRadius,
padding,
lineHeight,
}}>
<ElementTooltipWillShowUpFor/>
</Tooltip>
Reviewed By: danielbuechele
Differential Revision: D9596287
fbshipit-source-id: 233b1ad01b96264bbc1f62f3798e3d69d1ab4bae
Summary:
The logs plugin opened a new log connection every time it was activated and never closed the connection.
This is now changed. Once a device is connected, a log connection is opened. The logs plugin subscribes and unsubscribes to this connection. This allows the logs plugin it even access the logs from when it was not activated and ensures to only open on connection to read the logs. Logs are persisted when switching away from the plugin.
Also removes the spinner from the logs plugin, as it loads much faster now.
Reviewed By: jknoxville
Differential Revision: D9613054
fbshipit-source-id: e37ea56c563450e7fc4e3c85a015292be1f2dbfc
Summary:
First connection attempt to iOS device was only made after 3000ms. This caused all iOS devices only show up after this delay.
Now, the devices are queried immediately.
Reviewed By: passy
Differential Revision: D9613057
fbshipit-source-id: a14e3f02576ec5e159f4002bf68efe53236dcc50
Summary: Log counter had a bug that only allowed the number to go up to 2. To increment the number of the last row is read and increased. However, this failed and always fall back to 1.
Reviewed By: passy
Differential Revision: D9613056
fbshipit-source-id: dc73990eb26c7a6ecbc70b0fe50687607b8bf0ad
Summary:
- Cleans up iOS log listener code
- Retries to create a connection to the log stream if it failed
- logs errors with the log parser
Reviewed By: jknoxville
Differential Revision: D9613055
fbshipit-source-id: 33a24e474be62fc2a906f022a68547594f2e66c1
Summary: Now that android devices know their own serial, we can filter plugins by the selected device.
Reviewed By: passy
Differential Revision: D9481461
fbshipit-source-id: 4a53eea1e61caa09c3d63ca0076fbc1b6dceb99f
Summary:
Android devices don't always know their own serial.
But we do a certificate exchange using adb from the desktop, so we can provide it in the response.
After this the client will provide it every time it connects, so we can do things like filter plugins by device id.
For apps that have already done cert exchange, they'll continue to use 'unknown' as their id until they do it again with an up to date version of sonar.
We can think about forcefully stopping that, but I haven't done it.
Reviewed By: danielbuechele
Differential Revision: D9481460
fbshipit-source-id: f8932699711ebbec4260fabe32f87e6cdff920f2
Summary:
Removes the fix introduced in D9570518 and upgrading to `react-window@1.1.2` which fixes the problem in the library.
Also finetuning debounce times.
Reviewed By: passy
Differential Revision: D9582591
fbshipit-source-id: 92b008d29f96ce0f11f5cfb5d9e92175ae536ee2
Summary:
When starting with an empty table and adding rows, the scrollOffset of the table might end up with a negative value, which causes rows not to be rendered.
See https://github.com/bvaughn/react-window/issues/49 for more details.
This only calls `scrollToItem` when the table is actually scrollable to prevent a negative scrollOffset.
Reviewed By: passy
Differential Revision: D9570518
fbshipit-source-id: 5b08990a353a6d41d0f1bc5c1481d5a5e471bd94
Summary:
Table was missing support for some properties, that were supported previously, which caused some regressions. Support for the following properties was added:
- `multiHighlight: boolean = false`
- `autoHeight: boolean = false`
- `highlightableRows: boolean = true`
- `onRowHighlighted: Function`
Reviewed By: jknoxville
Differential Revision: D9549384
fbshipit-source-id: 1db2e7e8c6ad483d3d9d3a5814c76c564e9ba7f4
Summary: When table rows are chaning, we need to recaluculate all row heights. This was already done when filtering/searching, but there are other occurrences where we need to recalculate the heights (like clearing the table).
Reviewed By: passy
Differential Revision: D9540881
fbshipit-source-id: ef6e94c0330294d8196f946799a436aa5e9ce5c5
Summary: Makes the code a bit cleaner and maintainable.
Reviewed By: passy
Differential Revision: D9496316
fbshipit-source-id: a59a41b12a57bb2eedc25b154c6f9b0cdc77dd8a
Summary: Lets AX inspector live update the sidebar when a view is clicked (state may change) or accessibility focus changes (previously only updated the sidebar live if it became the focused element).
Differential Revision: D9489376
fbshipit-source-id: 8959f722370ce1d3a622b24c7b049b03f0d662e6
Summary:
Instead of reading version number for logging from `package.json` it is now fetched via electron. We usually don't update our version number in package.json and therefore all logs showed the same version number. the version number from `app.getVersion()` is set during the build process and reflects the actual version number that is used.
Removes unused `<Version />` component.
Reviewed By: jknoxville
Differential Revision: D9495745
fbshipit-source-id: 6999ea23a1e4f90d6591b3695e01a803a5f3ff85
Summary: Fixes some warnings that were caused by the switch to react-emotion.
Reviewed By: jknoxville
Differential Revision: D9483185
fbshipit-source-id: 8e49469772efd37f18342252653648618e644d55
Summary:
My benchmarks have shown react-emotion to be faster than the current implementation of `styled`. For this reason, I am converting all styling to [emotion](https://emotion.sh).
Benchmark results:
{F136839093}
The syntax is very similar between the two libraries. The main difference is that emotion only allows a single function for the whole style attribute, whereas the old implementation had functions for every style-attirbute.
Before:
```
{
color: props => props.color,
fontSize: props => props.size,
}
```
After:
```
props => ({
color: props.color,
fontSize: props.size,
})
```
Reviewed By: jknoxville
Differential Revision: D9479893
fbshipit-source-id: 2c39e4618f7e52ceacb67bbec8ae26114025723f
Summary: It looks like the iOS simulator screen recording tool expects a SIGINT instead of a SIGKILL (the default of node's ChildProcess.kill()) to indicate it should stop recording, save the video file and die cleanly.
Reviewed By: danielbuechele
Differential Revision: D9480678
fbshipit-source-id: 5f17bd288c7622ffa3c337cef311e5e4e462218a