Summary:
As expected, this didn't work on the first try. Issues I've fixed:
- Actually switch back to snapshots.
- Use more widely compatible bash location.
- Don't exit (because of `set -e`) if `grep` returns with status 1.
Reviewed By: jknoxville
Differential Revision: D9556770
fbshipit-source-id: 0900e6498e7fc8e16c941e77927005573ca310d5
Summary:
Set up automatic publishing to Maven Snapshots if the current
VERSION_NAME ends in `-SNAPSHOT`.
Reviewed By: danielbuechele
Differential Revision: D9539838
fbshipit-source-id: 6e413fa3b02966946bb867eebe7ba8b863f291b9
Summary: This diff updates the iOS version update script to incorporate the change in folder from fbobjc to xplat.
Reviewed By: danielbuechele
Differential Revision: D9542137
fbshipit-source-id: 4cb48d1b14d3c94d000490c7a21260766d493fc7
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: Removes the Accessibility panel from the layout inspector since all of these properties are shown (and logged) in the Accessibility Inspector along with other properties that may be useful. This will make it easier to track accessibility use and also will help more people discover the accessibility feature when they need it.
Reviewed By: blavalla
Differential Revision: D9523532
fbshipit-source-id: f6d3a745980ec631ec8bf2e59017382f4c2edd5a
Summary: Makes the code a bit cleaner and maintainable.
Reviewed By: passy
Differential Revision: D9496316
fbshipit-source-id: a59a41b12a57bb2eedc25b154c6f9b0cdc77dd8a
Summary:
V1 ios diagnostics complete.
This change adds a new section to the ios diagnostics screen that shows the current state of each step required to get sonar working.
The logs (transitions between states) are displayed below it.
SonarClient.mm is technically involved in the UI, by converting enums to emojis, I don't like this
but didn't get obj-C working with C enums so have left it like this for now.
Reviewed By: priteshrnandgaonkar
Differential Revision: D9378212
fbshipit-source-id: 091ce00e898a8038c680555123640b90d753fc09
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:
New release is out, so we no longer need the
SNAPSHOT.
Reviewed By: danielbuechele
Differential Revision: D9481795
fbshipit-source-id: d693f9cbbb6373835c3e3acc03a3c60f27a96262
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
Summary:
Disabling `atime` on Linux is quite common. (I don't have data to back this up,
but with my sample size of n=1, 100% fall into this bucket.) In that case,
the plugins will be cached indefinitely.
Using `ctime` on the directory doesn't really mean anything because it is
only affected by changes *to* the directory, not the files inside.
So, let's do this right and use the most recent change to any of the files
*inside* the directory instead.
Reviewed By: danielbuechele
Differential Revision: D9479491
fbshipit-source-id: 6945d7bf87defa67679cacdaf0a978d8ff1770c3
Summary: Switches elements from custom virtualization to react-window, so the custom implementation is not needed anymore and therefore can be removed.
Reviewed By: jknoxville
Differential Revision: D9447723
fbshipit-source-id: 7abcc077f87fe634a0e9517908db03398848bce7
Summary:
When changing the props of a table often, this might results in a lot of unnecessary rerenders. This could be mostly seen in the analytics plugin, which is sending a lot of messages in a short time.
The update of the table component is now debounced to only re-render every 150ms. This also affects searching and filtering and makes typing in the search input smoother.
Reviewed By: passy
Differential Revision: D9447722
fbshipit-source-id: 00e092e4e047e9c40e5a1ec2789644858acc18dd
Summary:
Tables were using a custom virtualization, which wasn't as performant as other solutions out there. In this diff, the table component is reworked for performance.
- removes `Table` component, because it was never used standalone, `ManagedTable` is what all plugins used
- uses `react-window` for `ManagedTable`
- reworks table highlighting and arrow-navigation to work with the new virtualization
- moves actual filtering out of `ManagedTable` into `Searchable` component for a better separation of concerns.
Reviewed By: jknoxville
Differential Revision: D9447721
fbshipit-source-id: 15eb2eb55eed9f49a0cb1ccfb2d748b3672fa898
Summary:
Linux appears to spawn a completely separate browser process whereas MacOS either
forks or uses a thread. Either way, Linux no longer has access to the parent
process's environment variables we use to look up plugins. Using
the remote module fixes that.
In the medium term, we should convert the `plugin` module to not rely on import effects
and instead use the IPC mechanism, making the plugin resolution asynchronous:
https://electronjs.org/docs/api/web-contents#contentssendchannel-arg1-arg2-
That would also allow us to do the plugin resolution while starting up the browser window,
lowering the startup time.
Reviewed By: danielbuechele
Differential Revision: D9423628
fbshipit-source-id: 76351f267864147c4494aadaf4e16ea636952118
Summary:
Currently travis just builds the pods which sample app depends on. The test case which the current setup misses it that it will fail to check if the required header files are exposed to public. The master is broken recently because a header file is not exposed publicly and sample app fails to build, whereas all the dependencies like Sonar and SonarKit build successfully. This PR updates the travis, so that it builds sample app rather than the dependent pods.
Pull Request resolved: https://github.com/facebook/flipper/pull/251
Reviewed By: jknoxville
Differential Revision: D9465234
Pulled By: priteshrnandgaonkar
fbshipit-source-id: 42ab7210d7fa5a3dc2927efee4b4dee95f15c6cd
Summary:
This diff adds FlipperStateUpdateListener in public headers, as SonarClient.h depends on it and the sample app depends on SonarClient.h.
This diff fixes the compilation error for Sample and SwiftSample
Ideally travis should have caught it. Fix for travis is coming.
Reviewed By: jknoxville
Differential Revision: D9462177
fbshipit-source-id: e3e0ec90f9083294d4a131989ec0eaee02b52791
Summary: Sidebar extensions are automatically added to main inspector sidebar but kept from accessibility side menu.
Reviewed By: xiphirx
Differential Revision: D9438644
fbshipit-source-id: 47a9cc630117e15be3368d78f2396f02796c998d
Summary:
Sonar isn't yet opening this activity remotely, but it's worth getting users to add it early, so that when it does, it will work.
Pull Request resolved: https://github.com/facebook/flipper/pull/250
Reviewed By: passy
Differential Revision: D9455599
Pulled By: jknoxville
fbshipit-source-id: 252f7e7f89751b188665ece4ab9f815fd90fe500
Summary:
Some apps have a default background color, for example black, making the diagnostic screen fully black.
Fix this by making sure the bg is always white so the text is readable.
Reviewed By: passy
Differential Revision: D9400682
fbshipit-source-id: a45744f833cb7fe5ca7db4dcdacc09f304670032
Summary:
Depends on #247.
Ensure that `libextra` is included when building sonar targets. My
cleanup was a bit too aggressive.
Fixes#246
Pull Request resolved: https://github.com/facebook/flipper/pull/248
Reviewed By: jknoxville
Differential Revision: D9420724
Pulled By: passy
fbshipit-source-id: f2d0625507a4897051840c95feefc534583b080f
Summary:
The plugin was part of the wrong package based on its directory. This
confuses Gradle and I'm frankly a bit surprised this ever built before.
Pull Request resolved: https://github.com/facebook/flipper/pull/247
Reviewed By: danielbuechele
Differential Revision: D9420595
Pulled By: passy
fbshipit-source-id: fd8e47ff242c4535b36e379df93b672eb8bb840d
Summary: Adds on hover descriptions for some of the more esoteric properties in the accessibility sidebar panel such as accessibility-focused and all the talkback derived properties. Also change talkback-focusable and talkback-ignored to both be talkback-focusable.
Differential Revision: D9381676
fbshipit-source-id: 55ce854da24241a7c89b0c122c4c3ebd77438dbb
Summary:
See https://github.com/facebook/flipper/issues/230 for a longer
explanation.
It turns out that many of the tasks in `native.gradle` (at least
`prepareGlog` which modifies files inside the source directory, but also
others) cause the cmake cache to invalidate.
Because we run those tasks unconditionally, we need to recompile all our
C++ code even when unmodified.
I fix this by adding a manual cache key to this which simply skips all
the tasks unless an up-to-date `external_cache_revision.txt` is found.
This is a bit hacky, but the alternatives are a) convincing cmake that
these modifications are not recompile-worthy which I have no idea how to
do and which might be impossible to do `mtime` on the files touches, or
b) having fine-grained `onlyIf` rules for every task which can easily
break. This seems the most straight-forward option.
Fixes#230.
Pull Request resolved: https://github.com/facebook/flipper/pull/242
Reviewed By: jknoxville
Differential Revision: D9381340
Pulled By: passy
fbshipit-source-id: a7db55aacac4a29076c29298d6c5b97d8bc91f66
Summary:
Adds an extremely barebones in-app screen for showing sonar diagnostics.
The UI is laughable, but it's wired up. Leaving proper design to a later commit.
Like in the android case, state is currently passed as a string, but will become something much more structured after this is in place.
Reviewed By: priteshrnandgaonkar
Differential Revision: D9218766
fbshipit-source-id: 4889ed79b928056a67b1e8cb8a40a9bd52e084f1
Summary:
Before this PR, travis used to build sample app which used a tagged release of SonarKit and Sonar. So travis used to never check the source code in master branch. This PR, instead uses local podspecs, which refers to the local source code, and thus travis would be testing the local source code.
Solves #237
Pull Request resolved: https://github.com/facebook/flipper/pull/244
Reviewed By: passy
Differential Revision: D9394955
Pulled By: priteshrnandgaonkar
fbshipit-source-id: 7109a8baaeb8ff7e14d19ebe1d7c3bcb7e4bebd2
Summary:
There seems to be an issue showing a ManagedTable within a Panel. The component was properly
receiving new changes etc, it just wasn't displaying due to a 0 height (I guess).
This diff fixes that + updates the layout so its not cramped.
Reviewed By: passy
Differential Revision: D9393882
fbshipit-source-id: a35f2a298106c4b2a48883822ef997e8499f1eec
Summary:
Minor simplification, mostly cleanup. Arguably, better to avoid the birthday paradox e.g. collision with > a few thousand requests.
Tested via
$ ./gradlew :sample:installDebug
Pull Request resolved: https://github.com/facebook/flipper/pull/238
Reviewed By: danielbuechele
Differential Revision: D9359941
Pulled By: passy
fbshipit-source-id: d2988b58f41d84a52aca060b5c583e055b8b203a
Summary: calling SonarClient::instance()->stop() without a connection will try to deref a null client_
Reviewed By: jknoxville
Differential Revision: D9325527
fbshipit-source-id: b0a81d6eb9d1375b74cbf10466f947e8a2de3b98
Summary:
I think the getting-started page should be a no-nonsense quick set of steps to get you up and running so you can try out flipper.
With it referencing the non existent "MySonarPlugin", you can't just follow the steps for it to work. You'd have to either write a plugin which would take a while, or look at the sample apps on your own to see how to add a real plugin. I think it will be far more helpful just to give a working example.
Pull Request resolved: https://github.com/facebook/flipper/pull/240
Reviewed By: passy
Differential Revision: D9378196
Pulled By: jknoxville
fbshipit-source-id: 18ae4a39d09c7baa17adb7f7a71fd766e9bc8e51
Summary: Components and Sections has two different but equal interfaces for StateContainer. This diff create one unique StateContainer interface they can both use.
Reviewed By: passy
Differential Revision: D9359823
fbshipit-source-id: 288abefd53670d3c128b5d00b5c204f0c1ea3948
Summary:
This doesn't solve our build caching issue (GH230) but
helps a bit with build times as we can skip building all
sorts of test targets which are otherwise included.
The sonar target is the only thing we care about here.
Reviewed By: danielbuechele
Differential Revision: D9360117
fbshipit-source-id: 13a976243b48efbe0f69e9fe47780486f9688eb8
Summary: When relaunching Flipper/refreshing it while developing, where was a case, where the App Client connected, before the device was registered in Flipper. In this case, we didn't select the previously selected plugin
Reviewed By: jknoxville
Differential Revision: D9359779
fbshipit-source-id: 9c6f8e6bf65a46dc84c9781242b23df0ed539810
Summary:
This allows breaking changes in Litho to be landed.
I'm also adding some helpers to determine if Flipper itself
is currently in a release or snapshot release train.
N.B. We don't publish snapshot releases for Flipper
right now, but will in the future where this will come in
handy.
Reviewed By: jknoxville
Differential Revision: D9359035
fbshipit-source-id: d21b607eca5d57caf4cc34234f6ba3cb0d8f307d
Summary:
`largeFrameDrops` are added to the usage tracking.
Similar to our other apps, we are considering a drop of 4 or more frames as a large frame drop. While a single frame drop might not be relevant to the user, large frame drops are a more relevant number to optimize for.
Reviewed By: passy
Differential Revision: D9358795
fbshipit-source-id: d9354695c816ba6c40676df6f3c6f3f070e28269
Summary: Updated properties to be more specific about what type of focus they are describing (keyboard vs accessibility vs talkback). Also separates sidebar into 3 sections (View, Talkback, and AccessibilityNodeInfo) since this organization is clearer now that Talkback is more robust.
Reviewed By: blavalla
Differential Revision: D9338822
fbshipit-source-id: d110faa43822faa36a081832207c259cddec44f0
Summary: Talkback-description now called talkback-output to avoid confusion about content-description. Talkback-output now includes the state and role of the view as well so it is more accurate to Talkback's actual output. Talkback-hint also added as a property to show what talkback will append to the description if a user has hints turned on. This may not always be 100% accurate because talkback changes what it says based on certain events and global settings as well but is correct for most general-use cases.
Reviewed By: blavalla
Differential Revision: D9317270
fbshipit-source-id: df9b9b5ebef19f583cbf997e0cd3fac6450170bb