Summary:
Non-final identifiers make code harder to understand.
This is particularly true for JavaScript where even the *type*
can change as a value gets reassigned later.
This enforces to use `const` whereever possible, but doesn't
"outlaw" `let`. Mixed destructuring is also still allowed.
Used `eslint --fix` to change all existing cases.
Reviewed By: jknoxville
Differential Revision: D16131329
fbshipit-source-id: 2eceaca7c603b71b36e005be5d135e1849f2518d
Summary:
fixed issue: https://github.com/facebook/flipper/issues/215
## Changelog
1. use pako to inflate direct to unicode string to avoid 'stack size limit exceed' problem
Pull Request resolved: https://github.com/facebook/flipper/pull/474
Test Plan:
Tested with Meetup trace that crashes reproducibly without this fix:
{F165395994}
Tested gzipped body with fb4a:
{F165396053}
Reviewed By: jknoxville
Differential Revision: D16090209
Pulled By: passy
fbshipit-source-id: 64b8a61fa9d80d9e8b62105b3f1dc3289a29cc07
Summary: This was annoying me so I thought I'd rename it before anyone else starts to use the prop.
Reviewed By: danielbuechele
Differential Revision: D15919159
fbshipit-source-id: c351503797cedc5c11a158cec62515b1eb791a70
Summary:
This diff fixes the bug which showed the length of characters as the byte length when the response headers didn't have `content-length` in it.
This diff uses `Buffer.bytelength` api to calculate the same.
Reviewed By: danielbuechele
Differential Revision: D15899547
fbshipit-source-id: 29f4e8a741f4dd550b9191cc31bf6930065653b3
Summary: Copying/Creating a Paste from a network request only copied the domain. Now we are including all request/response data.
Reviewed By: jknoxville
Differential Revision: D15898038
fbshipit-source-id: 570ca5bb76e65b90b2b467856e6d3747682cc20d
Summary:
In React VR we doing automatic retries in cases when request takes too much time. It helps in cases when network quality is poor. As long as this implicit for developer, we would like to highlight this information in insights. It helps to explain why request were so long.
This diff adds one more field to insights which displays amount of time spent on retries, count and limit of them.
https://pxl.cl/CntV
Reviewed By: passy
Differential Revision: D15845598
fbshipit-source-id: 3e0d1baf93b6be5c4d1c6c1d2b64c05852b843b7
Summary:
https://pxl.cl/Cd84
In React VR we got a case to explain developers why their requests took so long. To do this we export timings from Curl and send them in Flipper. This diff added visualization for this data. Any other platforms can use this feature by extending json which they send to Flipper.
Reviewed By: jknoxville
Differential Revision: D15804247
fbshipit-source-id: 9deea5c9f5f7c5416b42c476f7f0ed431c8dea04
Summary: Fix the format of the export. Due to unknown reason the changes done in the D14933499 was [reverted back](https://our.intern.facebook.com/intern/diff/D14933499/?src_number=80619316) on the same diff. Thus this diff fixes the format of the metrics export
Reviewed By: passy
Differential Revision: D15239653
fbshipit-source-id: b9416f89e1b0022000d6201eb08ca1f456d5ed2e
Summary:
This diff makes headless flipper accept `metrics` argument. Once this is passed. The headless flipper will terminate to export the metrics of the plugins, the type of the export looks like the following.
```
export type MetricType = {[metricName: string]: number};
type MetricPluginType = {[pluginID: string]: MetricType};
export type ExportMetricType = {[clientID: string]: MetricPluginType};
```
This diff, uses the store to export the metrics. I will modify the logic to accept the data which gets exported through `exportData`
Reviewed By: passy
Differential Revision: D14933499
fbshipit-source-id: dade5b7bc59ea4beb6d16c5ef471737e8597358a
Summary: Separating out the types and utils for work I'm doing on https://github.com/facebook/flipper/pull/415 / D14973754. This will make the request to curl utility function much cleaner
Reviewed By: jknoxville
Differential Revision: D14976747
fbshipit-source-id: cc15c10103ea75945d0a2ebaaa6d32a376192961
Summary:
As seen in https://our.intern.facebook.com/intern/bug/653953588368620/,
the network plugin can crash if content doesn't look like a URI.
Ideally, we'd be more granular in catching this, but for now skipping
that content seems better than crashing the entire plugin page.
Reviewed By: danielbuechele
Differential Revision: D14971610
fbshipit-source-id: 2708e5c0d4d1f584419d24c7dc38438009015565
Summary: the simpliest approach to render this metadata for debugging purpose
Reviewed By: bcuccioli
Differential Revision: D14974129
fbshipit-source-id: d816d1ef8dcd1bc333c4d0cdf70d6d9fb925bc03
Summary:
For gzipped requests, the decoding of unicode characters was failing, because it was was done, before decompressing the response payload.
In this diff, the payload is first decompressed and decoded afterwards. For the calculation of the response size, this is removed, because it doesn't matter for the calculation of the size to correctly decode unicode characters. However, there might be a problem with displaying the correct size. This is tracked in T41427687.
Reviewed By: jknoxville
Differential Revision: D14366841
fbshipit-source-id: e375df1ec44505f6315dedbe71b3b62eac0f281a
Summary:
Extended the linter to check for the title attribute, too, and fixed
all violations. Linter will follow in next diff.
Reviewed By: jknoxville
Differential Revision: D14366410
fbshipit-source-id: b4de3592f2537e2bb16d4c2af231e5bee45346e4
Summary: Adds requestTimestamp, and responseTimestamp which is hidden by default.
Reviewed By: passy
Differential Revision: D14088403
fbshipit-source-id: c451a428d8068c5bfce199cda5502361c12d1667
Summary:
For all plugins:
- move static fields `title`, `id` and `icon` to `package.json`
- adds "bugs" field for all plugins containing links to support groups/oncalls.
Reviewed By: priteshrnandgaonkar
Differential Revision: D13417286
fbshipit-source-id: 7b341176915f3ed7b473b95c1d879f21d7d634ef
Summary:
Some network requests are yielding error: e.getMessage() is not a function.
It shouldn't be .getMessage(), it should be .message
Reviewed By: priteshrnandgaonkar
Differential Revision: D13137334
fbshipit-source-id: 72c782376c8e62a05c5e9ce1b956566ce1fc5bf0
Summary:
* adds a button to hide notifications by category
* adds a quick action to report notifications as not helpful
* fixes type of network plugin's notifications to be string instead of number
Reviewed By: jknoxville
Differential Revision: D12999883
fbshipit-source-id: 32be5bde5931cca4a27ab1ad34418300196452cc
Summary: If one throws an exception, we'd skip all the other ones. I don't think that's the behaviour we want.
Reviewed By: passy
Differential Revision: D12958926
fbshipit-source-id: dd82b750197b6fc1380496be4147fe63454d39da
Summary:
Currently HTML renders as a blank response panel which is not helpful for seeing erros.
Adding a formatter for `text/html` so we can see error responses, or other HTML responses, correctly.
Note, this adds the xml beautifier package from npm.
Reviewed By: danielbuechele
Differential Revision: D12883274
fbshipit-source-id: c49b60984f10bba471b5bbb8aabcb385a171d0d6
Summary:
This is a collection of small UI fixes for the network plugin:
- image maxWidth is set to 100% to not cause vertical scrolling
- Panels now have horizontal scrollbars, if their content overflows
- fixing missing icon for failed network requests
- removing position sticky from table headers as it was not used and causing some rendering issues and performance problems
- Adding a `label` and `grow` option to the `Select`-component which is used in the sidebar of the network plugin.
Reviewed By: passy
Differential Revision: D12956336
fbshipit-source-id: 6e7e9cf97c058a2ff626576d4afdc6df65007ea1
Summary:
We were using `fill={true}` as an attribute to make flexbox containers fill the entire available space.
However, `fill` is an HTML attribute (see: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill) This caused warnings printed to the console.
This diff renames the attribute to `grow` with is also more in line with the Flexbox terminology.
Reviewed By: priteshrnandgaonkar
Differential Revision: D10488389
fbshipit-source-id: ed8553c6203cdf6df94d26c731164ecec4c9fbd2
Summary: Deep link from the QPL plugin into the network plugin
Reviewed By: passy
Differential Revision: D10462528
fbshipit-source-id: cc044863191fc4375390165f6b7b7d5c5e9c77e3
Summary:
When sending a message from the mobile side, you call something like:
`send(method: string, params: Object)`
But when receiving it in the reducer, you only get the params. Adding method so you can distinguish them.
Reviewed By: passy
Differential Revision: D10447890
fbshipit-source-id: f1fe925e82355866f86b322ecd3c72c604ae86af
Summary: Trigger notifications for all network requests having an error status code.
Reviewed By: passy
Differential Revision: D10401402
fbshipit-source-id: 8fa63cbc251457142abd71845fb6f1c735b247cc
Summary: This is meant to reduce the friction of getting network response payloads. Simple switch allows developers to go to "formatted" body ui which shows the json in a text blob.
Reviewed By: passy
Differential Revision: D10378877
fbshipit-source-id: 87aeff5318f0c2c6d3d91d7e3b491595794e69bf
Summary:
Restore the logic for setting and computing notifications that was
partially removed with D10300838.
Reviewed By: jknoxville
Differential Revision: D10361547
fbshipit-source-id: 4d229d5f4dbeda3139463e1c348909b9c5dba66f
Summary: Handles the case when persisted state is undefined which will be the case when the initially selected plugin is not the one running in background
Reviewed By: danielbuechele
Differential Revision: D10269073
fbshipit-source-id: b7a17b0daa37a486cc7f456338cb97123ad813b7
Summary: implements `persistedStateReducer` for the network plugins to merge messages into the persistedState even when the plugin is not running.
Reviewed By: danielbuechele
Differential Revision: D10256311
fbshipit-source-id: 53011a2123342825e8404b1c2c798aeb550c596d
Summary:
- Adds the Flipper notifications UI from the hackweek
- The notifications plugin is hidden behind a GK `flipper_notifications`
- Plugins currently can not dispatch any notifications
Reviewed By: jknoxville, passy
Differential Revision: D10300838
fbshipit-source-id: 2a3a823f09fee3370ce725b506b162e57751c382
Summary: Also acts as a model for using the computeNotifications api.
Reviewed By: passy
Differential Revision: D10240659
fbshipit-source-id: 610512de7484e10c9c0ed8e661913c2fe10869da
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:
This PR updates the Network plugin's response parser to ignore the case of the `Content-Encoding` header in the response. This was preventing responses that are gzipped from being uncompressed. I tested this with gzipped responses through the OkHttp interceptor on Android. This could potentially address #79 as I was experiencing that issue before this change.

Pull Request resolved: https://github.com/facebook/Sonar/pull/143
Differential Revision: D8780509
Pulled By: danielbuechele
fbshipit-source-id: 1a2d86226a8a0204ff43eb5f9394a56c04fd2d8d
Summary:
This saved the state of the network plugin even when switching between plugins using persistedState.
A bug in the Android implementation didn't clear the events that were already sent to the desktop.
Reviewed By: jknoxville
Differential Revision: D8752098
fbshipit-source-id: 152ec5da83958ad8124686f780d39983cbce563f