Summary: Preparation for making components live editable
Reviewed By: kevin0571
Differential Revision: D16379961
fbshipit-source-id: d0ea3d753eb588fe7b55f2345124427b4a5a58b5
Summary: In previous version when you edited something in the flipper, after each symbol flipper sent a message to edit a value to mobile side. Now "change message" will be sent only after pressing "Enter" button.
Reviewed By: priteshrnandgaonkar
Differential Revision: D16338101
fbshipit-source-id: 6605663d0b0059fdb2d20cb279e133afc25d47f1
Summary: Theadsafe Data Storage for new insets in CKInsetComponent
Reviewed By: kevin0571
Differential Revision: D16338091
fbshipit-source-id: 3b77652a4d08cfebce115a606af3fc3440a1aca0
Summary: Stepper that reflects the static - states of the trace process.
Reviewed By: mfcripps
Differential Revision: D16286582
fbshipit-source-id: 9434816f2155c0205d1a3ab549580c48769c9973
Summary:
In my last plugin for React VR I used spawn heavily to call adb and python2. It worked out well, but after Flipper released, I noticed that all my spawn commands were broken.
I found that Electron start in different way when bundled as production bundle, and because of it, it does not inherit process.env.PATH in a same way as it do this for development mode. (only linux/mac issue)
In this diff I used npm package which detects linux/mac and executes bash command which returns all the env variables from the system. After it, it takes PATH and merge it with process.env.PATH.
Reviewed By: passy
Differential Revision: D16457847
fbshipit-source-id: 60226f2d7977f1dfec49de6e889f3115d8688991
Summary: This could be useful for OSS users, e.g. https://github.com/facebook/flipper/issues/498
Reviewed By: passy
Differential Revision: D16457362
fbshipit-source-id: 73fad6a30383f622e49cecc3a20d7fbbec2b318b
Summary: `teardown()` was not called for device plugins. This diff fixes the issue.
Reviewed By: jknoxville
Differential Revision: D16416440
fbshipit-source-id: 5c9ffa211bfbe4e322504c37b95ff87afab8d061
Summary:
This component was added back in January, but it hasn't been used, and thus no one has tested it in the real world.
It needs a onHideSheet method to unmount this component when the plugin sheet becomes hidden. This allows the sheet to appear and dissapear on button clicks, instead of only appearing when the container component loads.
For the old behavior see the test plan in this diff: D13597251
Reviewed By: jknoxville
Differential Revision: D16443836
fbshipit-source-id: 68feec23338287dbafc846689ea2a1b35be4b2b0
Summary:
Split this up into a separate review because the file is actually
sorta hand-written and just adds noise to the things I was
actually doing.
Reviewed By: jknoxville
Differential Revision: D16441548
fbshipit-source-id: 93366d38908bbec347fd837f5dc90b11329ebf8e
Summary:
Adds a star rating to flipper internal.
Based on the nuclide behaviour:
We get an event emitted when a user changes their rating.
And we also get the rating with every ping event, which is fired every minute, if flipper is the primary window.
The only thing I don't like that much is that this doesn't actually say anywhere what the stars are for.
Reviewed By: passy
Differential Revision: D16420281
fbshipit-source-id: 69a52f64058955d7cd068215478e95c554cb9ed4
Summary: Talkback prepends "password" on focus for password editText outputs. Flipper's AccessibilityUtil should include this case.
Reviewed By: blavalla
Differential Revision: D16427345
fbshipit-source-id: 28afdd196973539618b73824671ef02128a4e9ab
Summary: I've added the ability to navigate to different pages in the app via the bookmarks sidebar. Still no way to add bookmarks yet.
Reviewed By: jknoxville
Differential Revision: D16438415
fbshipit-source-id: f7dcda1add701eba8655518fba7cb9a82cf49ca1
Summary:
Migrating tables' row collection to Immutable.js List:
1. Migrate createTablePlugin to ManagedTable_immutable
-----
Current implementation of tables forces to copy arrays on new data arrival which causes O(N^2) complexity ->
tables can't handle a lot of new rows in short period of time -> tables freeze and become unresponsive for a few seconds.
Immutable data structures will bring us to O(N) complexity
Reviewed By: jknoxville
Differential Revision: D16416867
fbshipit-source-id: 20890aa851cd2e34e33fd2ed69c5d6048af14cbb
Summary:
Migrating tables' row collection to Immutable.js List:
1. Сopy SearchableTable code to SearchableTable_immutable
2. Use ManagedTable_immutable for SearchableTable_immutable
-----
Current implementation of tables forces to copy arrays on new data arrival which causes O(N^2) complexity ->
tables can't handle a lot of new rows in short period of time -> tables freeze and become unresponsive for a few seconds.
Immutable data structures will bring us to O(N) complexity
Reviewed By: jknoxville
Differential Revision: D16416732
fbshipit-source-id: 856ba0407bfdd12bb1b90110e130562a07cc5060
Summary:
Migrating tables' row collection to Immutable.js List:
1. Change native array to Immutable list in ManagedTable_immutable
-----
Current implementation of tables forces to copy arrays on new data arrival which causes O(N^2) complexity ->
tables can't handle a lot of new rows in short period of time -> tables freeze and become unresponsive for a few seconds.
Immutable data structures will bring us to O(N) complexity
Reviewed By: jknoxville
Differential Revision: D16416869
fbshipit-source-id: 6d5690d8f5f70286f31a423e319b2cb22deab8ff
Summary:
Migrating tables' row collection to Immutable.js List:
1. Сopy ManagedTable code, no changes
2. Add deps to Immutable.js
-----
Current implementation of tables forces to copy arrays on new data arrival which causes O(N^2) complexity ->
tables can't handle a lot of new rows in short period of time -> tables freeze and become unresponsive for a few seconds.
Immutable data structures will bring us to O(N) complexity
Reviewed By: jknoxville
Differential Revision: D16416870
fbshipit-source-id: d3e1a9571ea08fa7ccaedc5ad3eca863d22a79a4
Summary:
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.5 to 4.17.13.
<details>
<summary>Commits</summary>
- [`e371828`](e37182845f) Bump to v4.17.13.
- [`357e899`](357e899e68) Rebuild lodash and docs.
- [`fd9a062`](fd9a062d57) Bump to v4.17.12.
- [`e77d681`](e77d68121f) Rebuild lodash and docs.
- [`629d186`](629d186579) Update OpenJS references.
- [`2406eac`](2406eac542) Fix minified build.
- [`17a34bc`](17a34bc585) Fix test bootstrap for core build.
- [`53838a3`](53838a38f8) Fix tests in older browsers.
- [`29e2584`](29e258497b) Fix style:test lint nits.
- [`8f4d3eb`](8f4d3eb018) Update deps.
- Additional commits viewable in [compare view](https://github.com/lodash/lodash/compare/4.17.5...4.17.13)
</details>
<br />
[](https://help.github.com/articles/configuring-automated-security-fixes)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/facebook/flipper/network/alerts).
</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/496
Reviewed By: jknoxville
Differential Revision: D16417041
Pulled By: passy
fbshipit-source-id: 8e6f08761b0478184569588eec786e577508e058
Summary:
## Export Data
- Add close button to the export sheet.
- Show status updates while exporting Flipper data.
- Fix Fresco data export (0c0f0d4a90).
## Headless
- `select-plugins` cli argument added for the headless flipper
## Miscellaneous
- Generate TLS certificates in the past to allow for clock skew. (9a97b3b45b)
- Speed up Redux dev tools (ce93ecfcca)
- Add stricter ESLint rules.
- Speed up `yarn start` (10559a188f).
Reviewed By: passy
Differential Revision: D16418562
fbshipit-source-id: 8ab9c3264c2a367125f8235dd07129e67441a0e4
Summary:
This is another WIP. Here I construct a skeleton functional component which currently just displays that there is no bookmark information.
I have also placed the component into the layout.
Reviewed By: jknoxville
Differential Revision: D16419794
fbshipit-source-id: fe1722255bde2b8363e5514c284a242f077e5185
Summary: I've added a favorite button component. The FavoriteButton is a toggle button that has a gold favorited state and an outlined non-favorited state. This is passed in as a prop.
Reviewed By: jknoxville
Differential Revision: D16418215
fbshipit-source-id: b695ea223d5a543df6bf1e588dc6756f9e84e8e1
Summary: This is a WIP component that displays the timeline of nav events to the user.
Reviewed By: jknoxville
Differential Revision: D16417087
fbshipit-source-id: 45a4bcdc271941d413c78fab2424628499c6d5ea
Summary: What happens in NavInfoBoxes stays in NavInfoBoxes i.e. the text now wraps instead of leaking out of the container. Also the eye icon works for navigation.
Reviewed By: jknoxville
Differential Revision: D16416974
fbshipit-source-id: 029b1c7e56db9fdf6499a52296080cd340078353
Summary: The original flex colum that came as standard did not flex to fill the remainder of the screen. Adding this component allows for a full screen flex column so that the scroll bar in the timeline looks correct.
Reviewed By: jknoxville
Differential Revision: D16416933
fbshipit-source-id: bd296aea85730f192778ed0aca4b226893b2829d
Summary:
Update to the latest React DevTools v3 release, which adds the ability to detect when the (v3) frontend is connected with a v4 backend and shows update instructions to the user.
## Changelog:
[General] [Added] - Updated embedded react-devtools-core package to the latest version in preparation for the upcoming v4 DevTools release.
Reviewed By: rickhanlonii
Differential Revision: D16419553
fbshipit-source-id: a36b0ba5bf6992a490f1234b9a92b8abd4c9b3e6
Summary:
The metrics feature got broken in this D16280167, due to a review change.
```
+ if (!selectedPlugins.includes(pluginName)) {
- if (selectedPlugins.length > 0 && !selectedPlugins.includes(pluginName)) {
```
Reviewed By: jknoxville
Differential Revision: D16379959
fbshipit-source-id: ab1c4caf56a55bd97f1299822d6fa4331815c569
Summary: With the each addition of the CLI arguments, there were addition in the arguments to the helper functions for exportStore. To control it, I have moved those arguments into an object
Reviewed By: jknoxville
Differential Revision: D16378511
fbshipit-source-id: e620bc0d4863aa6029a57771aa970aebb7294ba9
Summary: Since events will be displayed in a timeline view with a flex-cloumn, it is more efficient to have the events be added to the event array in reverse order; that is the newest events at the front of the array.
Reviewed By: passy
Differential Revision: D16379893
fbshipit-source-id: c85a2cca118e2d4ae990f69134f5d5770c360fbd
Summary: Added IconButton component with a ripple effect. I also placed it into the components where it will be used.
Reviewed By: passy
Differential Revision: D16378064
fbshipit-source-id: 6b677ec4a43adf94eb38136a9c607c85919c0176
Summary: Before this diff the "getAllImageData" wasn't triggered as the it used to early exit, because persistedState was not null. That check was unnecessary and not needed.
Reviewed By: jknoxville
Differential Revision: D16377134
fbshipit-source-id: 61ee49fbd908733798086206a82e38890ecd0af6
Summary: This diff adds `selectedPlugins` property in the redux store. With this diff now you can pass the list of plugins to headless so that it exports only the selected plugin's data
Reviewed By: passy
Differential Revision: D16280167
fbshipit-source-id: b03a1c49a7f51547470e0bcfa43083e52efabdd0
Summary: This is in order to gain access to hooks. This is useful for testing functional components in isolation without connecting to the redux store. For instance, testing a toggle button toggles on and off.
Reviewed By: passy
Differential Revision: D16376723
fbshipit-source-id: d6be463330dbc5deef1a0513e07fd567adf58287
Summary:
Tried to automate this with [cjs-to-es6](https://github.com/nolanlawson/cjs-to-es6) but it only
works on vanilla JS files without any special Flow syntax. I converted some places
manually but we can just do the rest as we modify the files.
Reviewed By: jknoxville
Differential Revision: D16340187
fbshipit-source-id: b55c7ce2d719876e47e85f5f3fce13b8c8ae4010
Summary: Per title. Let's be more consistent, especially for plugins where authors may not know which one to use.
Reviewed By: jknoxville
Differential Revision: D16340189
fbshipit-source-id: ffe49e509f744279e32fc9fc3f1d59efc1328d80
Summary:
Compilation is a mixture of I/O and CPU work, so there's some good optimisation potential even on a single thread by running the promises concurrently. The downside is that the output is a bit garbled, but it's quite a bit faster for me.
To test this, I applied this diff so I could just `time yarn start` for an entire run.
```
diff --git a/xplat/sonar/src/init.js b/xplat/sonar/src/init.js
--- a/xplat/sonar/src/init.js
+++ b/xplat/sonar/src/init.js
@@ -80,4 +80,5 @@
dispatcher(store, logger);
// make init function callable from outside
window.Flipper.init = init;
+ window.close();
});
```
## Before
**Cold Start**
```
696.89user 93.21system 4:21.44elapsed 302%CPU (0avgtext+0avgdata 1111448maxresident)k
1416inputs+372824outputs (3major+28155897minor)pagefaults 0swaps
```
**Hot Start**
```
6.87user 1.62system 0:17.32elapsed 49%CPU (0avgtext+0avgdata 249264maxresident)k
216inputs+182912outputs (0major+251426minor)pagefaults 0swaps
```
## After
**Cold Start**
```
736.86user 95.47system 1:53.13elapsed 735%CPU (0avgtext+0avgdata 970616maxresident)k
42864inputs+356776outputs (42major+25299531minor)pagefaults 0swaps
```
**Hot Start**
```
6.85user 1.60system 0:15.93elapsed 53%CPU (0avgtext+0avgdata 269420maxresident)k
2592inputs+197904outputs (0major+260099minor)pagefaults 0swaps
```
## Summary
It's beneficial in both cases, but the wall clock time for cold start goes from *4:21.44* to *1:53.13* for me (mind that this is a single sample). This is a 2.3x speed-up!
Reviewed By: jknoxville
Differential Revision: D16359215
fbshipit-source-id: 62257ec3bdefbf98356f5ac9418c4906f7cb4b1b
Summary: Drive-by change. There's a renamed import already in there which is clearer.
Reviewed By: bnelo12
Differential Revision: D16332879
fbshipit-source-id: ac8e829a3533df2991a7f8e5eab073020d6df411
Summary:
Here I added an info box to display the info of the incoming navigation events.
The component is currently missing interaction (navigating to uris and favoriting), but I will add that in my next diff.
While I was here, I modified the component file structure a tiny bit to make importing components easier.
Reviewed By: jknoxville
Differential Revision: D16357204
fbshipit-source-id: 70b137e052181559a2fda02b091a71e54cb1ade0
Summary: Getting rid of a flowfixme, part of T47375728
Reviewed By: passy
Differential Revision: D16336917
fbshipit-source-id: 163734796b72ba2c8971f27ce213baf7ca3f23a1
Summary:
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.5 to 4.17.14.
<details>
<summary>Commits</summary>
- [`be87d30`](be87d30394) Bump to v4.17.14.
- [`a6fe6b1`](a6fe6b1e17) Rebuild lodash and docs.
- [`e371828`](e37182845f) Bump to v4.17.13.
- [`357e899`](357e899e68) Rebuild lodash and docs.
- [`fd9a062`](fd9a062d57) Bump to v4.17.12.
- [`e77d681`](e77d68121f) Rebuild lodash and docs.
- [`629d186`](629d186579) Update OpenJS references.
- [`2406eac`](2406eac542) Fix minified build.
- [`17a34bc`](17a34bc585) Fix test bootstrap for core build.
- [`53838a3`](53838a38f8) Fix tests in older browsers.
- Additional commits viewable in [compare view](https://github.com/lodash/lodash/compare/4.17.5...4.17.14)
</details>
<br />
[](https://help.github.com/articles/configuring-automated-security-fixes)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/facebook/flipper/network/alerts).
</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/493
Reviewed By: jknoxville
Differential Revision: D16323535
Pulled By: passy
fbshipit-source-id: 9511b4050306a872295a7053f465ae46b9c5fa8a
Summary:
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.10 to 4.17.14.
<details>
<summary>Commits</summary>
- [`be87d30`](be87d30394) Bump to v4.17.14.
- [`a6fe6b1`](a6fe6b1e17) Rebuild lodash and docs.
- [`e371828`](e37182845f) Bump to v4.17.13.
- [`357e899`](357e899e68) Rebuild lodash and docs.
- [`fd9a062`](fd9a062d57) Bump to v4.17.12.
- [`e77d681`](e77d68121f) Rebuild lodash and docs.
- [`629d186`](629d186579) Update OpenJS references.
- [`2406eac`](2406eac542) Fix minified build.
- [`17a34bc`](17a34bc585) Fix test bootstrap for core build.
- [`53838a3`](53838a38f8) Fix tests in older browsers.
- Additional commits viewable in [compare view](https://github.com/lodash/lodash/compare/4.17.10...4.17.14)
</details>
<br />
[](https://help.github.com/articles/configuring-automated-security-fixes)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/facebook/flipper/network/alerts).
</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/492
Reviewed By: jknoxville
Differential Revision: D16323560
Pulled By: passy
fbshipit-source-id: 1c13e752ea9ec3c73be3d086acc6650c06773636
Summary:
There's been a bug here where the id was treated as a pluginId.
Renaming to make it clear.
Reviewed By: passy
Differential Revision: D16338884
fbshipit-source-id: 42c6c92653811d88cd37ebf4834346b1f0bb2c2a
Summary:
Persisted state was not being cleared across client disconnects.
This fixes that.
Reviewed By: passy
Differential Revision: D16338524
fbshipit-source-id: ec51ec3bd999a388a0e8687f08841970872087ec
Summary:
Here I added two tests to test the persisted state reducer in the navigation pliugin.
I uncovered that my state reducer is not pure, as it calls the Date constructor, but I will fix this in a future update by passing the date recorded on the Android device when the nav event occurs and sending that via the socket connection.
For now I have modified the state reducer to take a date as part of the payload on a nav_event, or if none exists record the date as before. Also, if a page has no uri, but we want to record a nav event, I send null uri from the Android side. This doesn't send the uri as null to flipper; the uri object property simply doesn't exist. In this case I explicitly cast the undefined value for uri to null.
Reviewed By: jknoxville
Differential Revision: D16330958
fbshipit-source-id: fe338ea3a244df6ef33356bc7fdef8da9291dc68
Summary:
Logic for installing an uninstalling a custom `post-update` mercurial hook, invoking the script introduced in the previous diff.
This is to gather some early data before rolling this integration out more broadly, i.e. through the mercurial distribution.
Reviewed By: jknoxville
Differential Revision: D16283081
fbshipit-source-id: e8610509e5f105a9b717a881aa327bb04f9a2f4f
Summary: Was getting error that the label for Select should be using htmlFor not for. found that when wrapping with JSX - changing this inside select fixes this errorlog.
Reviewed By: passy
Differential Revision: D16264103
fbshipit-source-id: 6a19d723a8356403ba4a169e0b160fed7e137670