Commit Graph

1130 Commits

Author SHA1 Message Date
Anton Nikolaev
e35bf2c1ae Flipper Release: v0.36.0
Summary: Releasing version 0.36.0

Reviewed By: passy

Differential Revision: D20835543

fbshipit-source-id: f5d9e8884410b294d4f37cb98db614da4592e6df
2020-04-03 08:36:49 -07:00
Pascal Hartig
9bd58a46c4 UpdateIndicator: Fix a11y lints
Summary: Adding a role and tabIndex because it's clickable.

Reviewed By: mweststrate

Differential Revision: D20814436

fbshipit-source-id: 2d5acc06363df0cce1c24df7e77b1a6eaa98ab63
2020-04-03 04:06:59 -07:00
Chaiwat Ekkaewnumchai
e37bccaf04 Scroll to Inspected Element
Summary:
changelog: Add scroll to inspected element in layout plugin

Before this diff, when one inspected an element, one needed to scroll down to see highlighted line for that element. This diff added automatic scroll to inspected element. It will scroll so that the line is in middle of the app.

Also, fix direct state mutation and this error:
```
Public property 'onKeyDown' of exported class has or is using private name 'Element'.
```

Reviewed By: passy, mweststrate

Differential Revision: D20798587

fbshipit-source-id: 763eb63cd51abd73940e301e36e89232033722c3
2020-04-03 03:03:04 -07:00
Chaiwat Ekkaewnumchai
e68cbe8ecd Add forwardRef to ContextMenu
Summary:
There was a problem for the next diff because ContextMenu doesn't forward reference to child elements which causes no component attached to ref.

This diff forward ref of ContextMenu to its child. Also, there is casting because of genetic functional component used by NotificationHub

Reviewed By: mweststrate

Differential Revision: D20817968

fbshipit-source-id: d0a19a447decca73db53f02ea029f56fc7127e94
2020-04-03 03:03:04 -07:00
Pascal Hartig
c8e5d95c41 Show update indicator for non-FB builds
Summary:
Launcher was sort of a proxy for cases where we *wanted* to have an update
mechanism but possibly couldn't use it, e.g. Windows at FB.
This makes sure we can also show this in OSS.

Reviewed By: nikoant

Differential Revision: D20770804

fbshipit-source-id: 62d2dddf9cbd22d51098dda65eea50df420a3078
2020-04-02 06:30:38 -07:00
Pritesh Nandgaonkar
4e3c06cd54 Update the text to be clear that the export was successfull
Summary: This diff adds the capability to show the plugin names for which flipper failed to fetch metadata. These changes are done for both export as URL and export as File. This diff also fixes the logging for the export as a file and logs the result object in scuba.

Reviewed By: jknoxville

Differential Revision: D20724860

fbshipit-source-id: 4c9591267ca05045e0ed084804d96851c9d7636d
2020-03-31 11:02:16 -07:00
Pascal Hartig
22b3e89ce5 Disable auto-updater (#951)
Summary: Pull Request resolved: https://github.com/facebook/flipper/pull/951

Reviewed By: jknoxville, mweststrate

Differential Revision: D20766973

fbshipit-source-id: 93bf659d8944c0cca1b513235aa43ffc32b7ada8
2020-03-31 09:15:17 -07:00
Anton Nikolaev
bf32297ad9 Publish all packages to npm on release
Summary: Publish all the public packages (excluding those with "private=true") included as workspaces to "desktop" project.

Reviewed By: jknoxville

Differential Revision: D20765097

fbshipit-source-id: 444541e9a682a90eba02cb3da85ada9bd00d93d0
2020-03-31 06:34:39 -07:00
Anton Nikolaev
eb9a2cb5e7 Bump versions for all npm packages on release
Summary:
Automatically bump versions for all local npm packages included as workspaces and fix local dependencies correspondingly.

As a part of this I have also aligned versioning for all the packages by using the same version for all of them.

Reviewed By: jknoxville

Differential Revision: D20745632

fbshipit-source-id: 2d438c4b23ee72f7d7c068c5ce161063c7ceb9e5
2020-03-31 06:34:39 -07:00
Anton Nikolaev
2e88936a29 Import ws package
Summary: Import ws package in a usual way instead of importing it as source code

Reviewed By: jknoxville

Differential Revision: D20724584

fbshipit-source-id: 39cad6e544b71e66560a9351f1e5a0c89be2c152
2020-03-31 02:45:07 -07:00
Michel Weststrate
f803cb3cb1 Avoid dropping plugin messages if the connected device is not found
Summary:
Before we dropped all messages if the client connected before the device has been registered. Which happens typically on iOS (it can actually take very long, will investigate that as well, but not in this diff).
However, we don't need to wait for the device to process messages, we just need its serial, which we already know (given that we use that query id to find the matching device in the first place).

I think this will greatly improved perceived stability for iOS

Reviewed By: jknoxville

Differential Revision: D20734892

fbshipit-source-id: f98e8d31558ef606b9a8287e03fc41ab6c3a087d
2020-03-30 07:58:40 -07:00
Pascal Hartig
39f5a07ac4 Disable sideEffect test as it's failing on GitHub
Summary: Looks like something isn't deterministic.

Reviewed By: nikoant

Differential Revision: D20725370

fbshipit-source-id: 493fa7915aba9aa7bd6cce254684ff3d0f2f7eaf
2020-03-30 02:35:19 -07:00
Anton Nikolaev
5ed3e8b1eb Set attributes to Flipper release builds
Summary: Changelog: fixed applying of product attributes (title, publisher etc) to Flipper builds.

Reviewed By: passy

Differential Revision: D20724437

fbshipit-source-id: 70e31484ddd59f1802573e2f963ee37857ab8405
2020-03-30 01:58:30 -07:00
Michel Weststrate
8fa4b5ccb2 Update existing subscriptions to use sideEffect
Summary: See previous two diffs, this applies the abstraction to our code base

Reviewed By: passy

Differential Revision: D20679687

fbshipit-source-id: 05e340dca3f832971783a844a78d1ffd553ff9d2
2020-03-27 04:42:12 -07:00
Michel Weststrate
7a40d3f0a3 Introduce sideEffects for safer management of store side effects
Summary:
This diff introducing the sideEffect abstractions, that creates a fundamental solution for the problem in D20619226: If a subscription to the store errors, the entire store can't be updated anymore, bringing the entire app to a halt.

Applying this abstraction will be done in a next diff.

To essential idea of sideEffect is that it fixes a few problems:

1. I decouples and throttles the effect so that no arbitrary expensive burden is added to every store update
2. It makes sure that a crashing side effect doesn't crash the entire store update
3. It helps with tracing and monitoring perf problems
4. It puts the side effect behind a selector so that the side effect is only triggered if a relevant part of the store changes, like we do for components.

Note that if some subscription _must_ be handled synchronously, than that logic should be in a reducer, not in a subscription or side effect. Luckily we don't have any examples of that in our code base.

This abstraction might actually be intesting to be shared wider for fun and profit.

Reviewed By: passy

Differential Revision: D20625872

fbshipit-source-id: adaf8356950594d50e6a99a17a862f757c3777db
2020-03-27 04:42:12 -07:00
Brian Vaughn
07a6a3b87d Upgrade React DevTools 4.0.6 -> 4.6.0
Summary:
Upgrading the embedded version of React DevTools, primarily to pull in [this PR](https://github.com/facebook/react/pull/18397) which will reduce the impact of this package on `node_modules` size.

# Update process

Following a similar process as D15973709, I began by searching for [all of the references](https://our.intern.facebook.com/intern/biggrep/?corpus=xplat&filename=.json&case=false&view=default&extre=&s=%22react-devtools&engine=apr_strmatch&context=false&filter[uninteresting]=false&filter[intern]=false&filter[test]=false&grep_regex=) to the `react-devtools-core` package and updated all v4 usage to to point to the new 4.6.0 release:

1: Manually update "react-devtools-core" versions:
```
js/package.json
js/react-native-github/package.json
nuclide/package.json
sonar/desktop/app/package.json
sonar/desktop/plugins/reactdevtools/package.json
vscode/modules/vscode-webview/package.json
```
2: Setup Yarn proxy:
```
yarn config set proxy http://fwdproxy:8080/
yarn config set https-proxy http://fwdproxy:8080
```
3: Run "yarn" in each of the above directories.
4: Run the lockfile shell script:
```
~/xplat/js/scripts/update-oss-yarn-lockfile.sh
```
5: Update the generated `MOBILE_JS_NODE_MODULE_DEPS.bzl` by running
```
js1 build buckfiles
```

## Changelog:

[General] [Changed] - Upgrade embedded React DevTools backend from v4.0.6 to v4.6.0.

Reviewed By: cpojer, gaearon

Differential Revision: D20676091

fbshipit-source-id: 99865bdba9bce45e2a7d582d5fb550cfdbeeca3a
2020-03-26 16:45:29 -07:00
Timur Valiev
64bfc91ea6 websockets import fix
Summary: somehow normal require brings us non-expected version, so let's import from node_modules

Reviewed By: jknoxville

Differential Revision: D20625706

fbshipit-source-id: 4748bcbaa15d1e6d400fc6d2153bb541a3dd129e
2020-03-26 04:08:29 -07:00
Anton Nikolaev
9299198906 Fix adbkit-logcat resolution
Summary:
There is error written to console just after launch. It is related to wrong resolution of adbkit-logcat version. This diff forces resolution to the single version everywhere.

{F232416275}

Reviewed By: mweststrate

Differential Revision: D20632452

fbshipit-source-id: bf45bbd6d245dbb1093b093c20e808840689971b
2020-03-25 03:27:51 -07:00
Michael Bolin
37f0260116 Back out "Upgrade Prettier from 1.17 to 2.0.2."
Differential Revision: D20639755

fbshipit-source-id: 5028563f9cf0527a30b4259daac50cdc03934bfd
2020-03-24 21:48:09 -07:00
Michael Bolin
8658fca4dd Upgrade Prettier from 1.17 to 2.0.2.
Summary:
This gets us on the latest Prettier 2.x:
https://prettier.io/blog/2020/03/21/2.0.0.html

Notably, this adds support for TypeScript 3.8,
which introduces new syntax, such as `import type`.

Reviewed By: zertosh

Differential Revision: D20636268

fbshipit-source-id: fca5833d003804333a05ba16325bbbe0e06d6c8a
2020-03-24 20:24:52 -07:00
Pascal Hartig
fc9ed65762 prettier 2
Summary:
Quick notes:

- This looks worse than it is. It adds mandatory parentheses to single argument lambdas. Lots of outrage on Twitter about it, personally I'm {emoji:1f937_200d_2642} about it.
- Space before function, e.g. `a = function ()` is now enforced. I like this because both were fine before.
- I added `eslint-config-prettier` to the config because otherwise a ton of rules conflict with eslint itself.

Close https://github.com/facebook/flipper/pull/915

Reviewed By: jknoxville

Differential Revision: D20594929

fbshipit-source-id: ca1c65376b90e009550dd6d1f4e0831d32cbff03
2020-03-24 09:38:11 -07:00
Michel Weststrate
0a8d8f44ff Make sure notication computation can't crash the dispatch
Summary:
Collecting notifications is done in the store.subscribe. If this throws however, the entire original dispatch throws (really Redux?!). So added a try catch around collecting notifications. This stops plugins from crashing while processing the queue (in fact this could happen during any Redux dispatch).

Will look into a more robust mechanism in the future

I suspect this also fixes the hanging graphQL issue

Reviewed By: jknoxville

Differential Revision: D20619226

fbshipit-source-id: 2f6b8e13a5c884dd63b6963d317474a2abf0725c
2020-03-24 06:45:46 -07:00
Timur Valiev
1bfb750467 dive into link
Summary:
Breaking down 'big' links and diving deeper into stack trace
each link is built from multiple events with same function on top of call stack
Now we can break that group and/or navigate one level  deeper in that stack

coloring links: according to the latest event timestamp: blue -> orange gradient

{F232164201}

Reviewed By: SimoneCasagranda

Differential Revision: D20596812

fbshipit-source-id: 9debbc55a716166e20c94f51989742bf40b95878
2020-03-23 10:32:31 -07:00
John Knox
043fcc354f Fix context menu caching bug
Summary:
The memoized callback didn't have any dependencies, so whenever a context menu was computed for a component, it was never changed again.

This broke the network plugin as the context menu should change depending on what element is selected.

Reviewed By: cekkaewnumchai

Differential Revision: D20596750

fbshipit-source-id: 275453d972079954e310fd3e97f2dd9f437bf748
2020-03-23 08:55:18 -07:00
Michel Weststrate
d01da8ef9a Stabilize Android connection handling
Summary:
A lack of correct chaining of promises, error handling and not explicitly dealing with the ADB state 'still connecting' causes errors to be shown in Flipper on the main thread, the browser console and in the debug error bar.

This diff fixes several of those issue, which gives a stabler much stabler experience when disconnecting and connecting emulators and physical devices a lot (it is a bit hard to capture in a movie, but more noticeable when doing it IRL)

Reviewed By: jknoxville

Differential Revision: D20559197

fbshipit-source-id: 643172d322aefe1be209741a48fa0e96358881eb
2020-03-23 06:45:59 -07:00
Michel Weststrate
f2da075acc Fixed circular dependencies
Summary: Fixed circular dependency warnings and removed some dead code while at it.

Reviewed By: jknoxville

Differential Revision: D20557313

fbshipit-source-id: 856c42113a9abe36d3e14f9d538eb40705ceb87f
2020-03-23 06:45:59 -07:00
Michel Weststrate
aa2879d6e8 Remove double async wrapping
Summary:
Our usage of requestIdleCallback (probably) causes more trouble than it solves:

1. It makes sure everything is processed asynchronously. But since everything is arriving over a network stack, that is already the case without wrapping it again to run on a separate event loop tick
2. The timeout we set before `500` forces the app to give _more_ priority to message processing instead of less
3. In a next diff (D20151700) in this stack we will make sure that messages are not processed immediately, but simple stored, which should not be significantly more expensive (probably even cheaper) than scheduling another tick on the event loop

Reviewed By: jknoxville

Differential Revision: D20557104

fbshipit-source-id: 6cc10ba537e3cb5f31e6c32e1fdeb57c20f06f17
2020-03-23 06:45:59 -07:00
Michel Weststrate
d103692883 Remove event_queue GK
Summary: Did run for 2 months stable now, time to remove some dead code.

Reviewed By: passy

Differential Revision: D20556785

fbshipit-source-id: 514673995212d62d21744f304286caa6e91007fb
2020-03-23 06:45:58 -07:00
Chaiwat Ekkaewnumchai
69fc5e8834 Set Line Height for ToggleSwitch (ToggleButton)
Summary:
Set line height to make space between lines look better in cramper space (See Test Plan).

This has direct side effect on:
- https://fburl.com/diffusion/0dtt1cgl
- ToggledSection component

In addition, this diff adds an offline cache.

Reviewed By: mweststrate

Differential Revision: D20574486

fbshipit-source-id: 8689bc95e2f18409e82c923fea361e033e77bc00
2020-03-23 04:42:57 -07:00
Anton Nikolaev
863f89351e Yarn workspaces
Summary:
1) moved "sonar/desktop/src" to "sonar/desktop/app/src", so "app" is now a separate package containing the core Flipper app code
2) Configured yarn workspaces with the root in "sonar/desktop": app, static, pkg, doctor, headless-tests. Plugins are not included for now, I plan to do this later.

Reviewed By: jknoxville

Differential Revision: D20535782

fbshipit-source-id: 600b2301960f37c7d72166e0d04eba462bec9fc1
2020-03-20 13:37:41 -07:00