Summary:
Fixes the typo `Abritrary` in the docs which should be `Arbitrary` instead
## Changelog
Docs: Fixed the typo `AbritraryView` (now `ArbitraryView`)
Pull Request resolved: https://github.com/facebook/flipper/pull/1566
Test Plan: --
Reviewed By: cekkaewnumchai
Differential Revision: D24078448
Pulled By: passy
fbshipit-source-id: b2a1b58c9bff8684ed6cd6c7958a826480371fd2
Summary:
Removed basic grammatical errors in two docs files: architecture.mdx and client-plugin-lifecycle.mdx
## Changelog
Update architecture.mdx and client-plugin-lifecycle.mdx docs
Pull Request resolved: https://github.com/facebook/flipper/pull/1459
Test Plan: There is only text change in documentation. The code is unchanged.
Reviewed By: cekkaewnumchai
Differential Revision: D23101962
Pulled By: passy
fbshipit-source-id: 24d9233d67a19745696b40ea6c2d3ac2d26231c3
Summary:
This diff adds a toggle setting in wilde which will enable certificate exchange through www.
Right now it just sends the information about which medium to be used for cert exchange to Flipper JS and its client side. But its implementation is not done yet.
### Flow for Wilde
Whenever user changes the setting(or when user logs out) we set the state of exchange medium and accordingly set/reset authtoken. Note at no given point we remove already existing certificates.
### Context for OSS
With this diff we introduce another way to do certificate exchange. Before this diff, we did certificate exchange by accessing the file system of app. But it turns out it's not possible to do that in applications signed by enterprise certs. Thus with this diff one can write their FlipperKitCertificateProvider and fetch the certificate from WWW.
Reviewed By: jknoxville
Differential Revision: D22896320
fbshipit-source-id: 55aef7028a62e71ba9c02f9f79acaab41d09c0c6
Summary:
We have a bunch of code blocks using languages that aren't rendered by default, so adding syntax highlighting for those languages.
Also, some uses are using the wrong "name" for the language, so I've fixed them.
Reviewed By: mweststrate
Differential Revision: D21974341
fbshipit-source-id: 17146ea5ae4979241c51b3707035470e9742a104
Summary: cekkaewnumchai asked about this and I didn't just want to type this out in a chat.
Reviewed By: cekkaewnumchai
Differential Revision: D21766920
fbshipit-source-id: e476d9d39461032d82bdd1bdf2b284d47a55af21
Summary:
Based on the issue here https://github.com/facebook/flipper/issues/967, I'm adding the flipper diagram to a documentation.
It should help explain briefly how does all parts communicate together and visualise key terms.
## Changelog
- Add Flipper architecture diagram to documentation
Pull Request resolved: https://github.com/facebook/flipper/pull/1073
Reviewed By: jknoxville
Differential Revision: D21278322
Pulled By: passy
fbshipit-source-id: 3cd8c71b2595b86911f5c9061bc2e8119da1d315
Summary:
Used https://www.brokenlinkcheck.com/broken-links.php#status for now to find broken links and fixed them all.
Would be better to use some automated tool to check this at diff time, but that's not setup yet.
Reviewed By: passy
Differential Revision: D21301702
fbshipit-source-id: f13c8769b15d9f99563fc65dc0544320d07a2bfb
Summary:
Numbered list syntax changed during the docusaurus migration from v1 to v2.
It looks wrong at https://fbflipper.com/docs/extending/js-setup/
This fixes it.
I searched for "1)" and replaced all numbered lists it found.
Reviewed By: mweststrate
Differential Revision: D21283693
fbshipit-source-id: adeb6e04693f50e0a0cfe4b2de5f4663075c34ce
Summary: "migrate" command for easy migration of existing Flipper plugins to the specification version 2.
Reviewed By: passy
Differential Revision: D21253913
fbshipit-source-id: 9edb170fbaa10e9c3f670d5d68e69f4f6106c151
Summary:
Implemented json schema for flipper plugin package.json and used it for validation in "flipper-pkg lint" command.
Nice thing about json schema is that it not only allows to validate json, but also can be referenced using "$schema" property in json so IDEs like VSCode can find it and use for code completion, validation and to show properties documentation. I'm going to deploy the schema as a part of documentation website so it can be referenced as https://fbflipper.com/schemas/plugin-package/v2.json.
Also the "$schema" field can be used instead of "specVersion" to determine the specification according to which the plugin is defined. E.g., if specification version 3 would be created, it will be described in schema https://fbflipper.com/schemas/plugin-package/v3.json, etc.
Reviewed By: passy
Differential Revision: D21228294
fbshipit-source-id: f21351e584ef936a7d6b314436448489691f83a6
Summary:
Background for this diff: https://fb.quip.com/KqEfAlKYlgme
Some plugins don't respect that stuff (livefeed and graphql), but for others it seems to work fine.
This is just a PoC, there are some present bugs concerning the combination of selecting and bg plugins
Questions to investigate:
- [x] make sure that LiveFeed and GraphQL disconnect properly. There might be more plugins that need that
- [x] verifiy that we don't loose one of the original goals of background plugins, e.g. QPL collecting and sending data from device start. Does this still work as intended after this change?
- [x] how can we observe / measure improvements? Are dev builds more responsive after this? Is the layout inspector smoother for example because no QPL plugins are interweaved?
- [x] how is forward and backward compatibility?
- If Flipper is updated, but device not: No change I think, as getBackgroundPlugins() will return an empty set, and background plugins are initiated as usual, so old behavior
- If device is updated, but Flipper not, background plugins won't be started until they are selected. This is a degradation, but hopefully explainable.
- [x] Verify QPL buffer is not unbounded
- [x] Share architecutre changes with team
For Graphql updates: D20943455
Added runtime stats to monitor network traffic (sadly had to redo that since scuba couldn't handle the data format used at first, so probably will hold of landing this diff a week to make sure we can see some effects)
Follow up work:
[x] wait until we released the stat tracking before we release this, to be able to measure the effect?
[x] make sure graphql fix lands
[ ] use side effects abstraction
[ ] fix other background plugins (android only) or fix it in a generic way:
{F234394286}
Changelog: Background plugins will no longer receive a Flipper connection if they are disabled. This should significantly reduce the overall load of Flipper both on the device and desktop when unused plugins are disabled used, which could otherwise generate 10MB/s of network traffic certain scenarios. All plugins *should* be able to handle to this gracefully, but since this is quite a fundamental change, reach out to the Flipper team when in doubt!
Reviewed By: jknoxville
Differential Revision: D20942453
fbshipit-source-id: b699199cb95c1b3e4c36e026b6dfaee7d1652e1f
Summary:
Docusaurus 2 is quite a lot more powerful than docu 1 it turns out.
This should convert the website fully.
* [done] Go through migration guide https://v2.docusaurus.io/docs/migrating-from-v1-to-v2
* [done] Convert landing page html
* [done] Convert all images to img tags
* [done] Convert all .md files to .mdx
* [done] Make sure ui-doc generation and including still works
* [done] Scan every page visually for sanity check
* [done] Make sure footer still works
* [done] Make sure search still works
* [done] Change all links/ to links/index
* [done] Change all links.md to links
* [done] Add some custom css to make the navbar look like the old one and darken the footer.
Reviewed By: passy
Differential Revision: D21158717
fbshipit-source-id: 5f45b711b1b6fd5ece4c5c15c55635c7ebbfb568
Summary:
When using baseUrl in site config, it adds a prefix to all link paths.
But for assets, it doesn't work if you refer to them as `docs/assets/...`, you have to use just `assets/...`. Source: https://github.com/facebook/Docusaurus/issues/861
Reviewed By: passy
Differential Revision: D20796933
fbshipit-source-id: 2346e42b8b548f576a1e143f56ee5236eab55073
Summary:
I think this'll clarify how to use the lifecycle methods.
Diagram edit link: https://excalidraw.com/#json=5696112581148672,nDwD6t1BNXVreQ8YE8917g
Reviewed By: mweststrate
Differential Revision: D20645302
fbshipit-source-id: 0814dbe8421cfe8e85c297bd5bfb4a8f1a83c353
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/872
Move all the JS code related to desktop app to "desktop" subfolder.
The structure of "desktop" folder:
- `src` - JS code of Flipper desktop app executing in Electron Renderer (Chrome) process. This folder also contains all the Flipper plugins in subfolder "src/plugins".
- `static` - JS code of Flipper desktop app bootstrapping executing in Electron Main (Node.js) process
- `pkg` - Flipper packaging lib and CLI tool
- `doctor` - Flipper diagnostics lib and CLI tool
- `scripts` - Build scripts for Flipper desktop app
- `headless` - Headless version of Flipper app
- `headless-tests` - Integration tests running agains Flipper headless version
Reviewed By: passy
Differential Revision: D20249304
fbshipit-source-id: 9a51c63b51b92b758a02fc8ebf7d3d116770efe9
Summary: A small clarification after the question 7964772f82 (comments)
Reviewed By: jknoxville
Differential Revision: D19619402
fbshipit-source-id: c392c492fe5e9cd46d46c93f617288ac0a4d02a5
Summary: Added information that "Debugger for Chrome" extension is required to be able to debug in VSCode.
Reviewed By: passy
Differential Revision: D19599117
fbshipit-source-id: 7323fb59daae24fe6b914e9ddb450326b135ad2b
Summary: Updated "Debugging" page in Flipper docs: added instructions about debugging from Visual Studio Code and Google Chrome.
Reviewed By: mweststrate
Differential Revision: D19578864
fbshipit-source-id: c88c8278feb7c90fe77bde1d883c73079f2147f9
Summary: Added docs on how to write React-Native JavaScript based plugins
Reviewed By: passy
Differential Revision: D19344803
fbshipit-source-id: ad1ea66f1031760729fdaea8a7e6c1ef5dcd5439
Summary:
Since background plugins don't receive data anymore when not starred, we should hint the user about this.
For this diff, I reused the existing statusbar. Although this solution is quite ugly, I think it is better than introducing yet another notification / warning mechanism. Probably we should revisit the layout of this status bar in the future.
Reviewed By: jknoxville
Differential Revision: D19251588
fbshipit-source-id: 1dfd07be383d4ba318f344ebff4b08ed36194c58
Summary:
To avoid plugins to collect data forever and store it (if they are never opened), introduced a hard-coded default limit on how many events will be preserved.
A semantic change is that plugins have to be potentially resistant against missing events. So far, during testing, this didn't seem to cause any problems.
Reviewed By: jonathoma
Differential Revision: D19175912
fbshipit-source-id: 828be941e76b7356c9f5be7e5a49de9a7a31b0d2
Summary: It's not much, but at least more than nothing :)
Reviewed By: nikoant
Differential Revision: D18930725
fbshipit-source-id: b1e5fa203b0020de7b5f16d040808cbb247b8dd4
Summary: React 16 is not compatible with react-emotion 9 (it prints warnings, see also https://github.com/emotion-js/emotion/issues/644). So we should upgrade to 10.
Reviewed By: mweststrate
Differential Revision: D18905889
fbshipit-source-id: c00d2dbbadb1c08544632cb9bfcd63f2b1818a25
Summary: For plugins to be discoverable through NPM, they need to have `flipper-plugin` as a keyword. This adds this keyword to all existing plugins (although they are currently not distributed via NPM) and the webside/docs.
Reviewed By: passy
Differential Revision: D17395079
fbshipit-source-id: e42dd31ca39c3754cf729052ee783687748bafe8
Summary:
JS pages first, then client pages.
Would be nice if we had some sort of separator, but I think you can only have two levels.
Reviewed By: danielbuechele
Differential Revision: D15198312
fbshipit-source-id: 6c9f8d8775f513a55c256366448faed13b671767
Summary:
* Renamed to "Client Plugin API" to align with the "JavaScript Plugin API" page.
* Added some more info and reworded some parts.
Reviewed By: danielbuechele
Differential Revision: D15198192
fbshipit-source-id: 2c86b6a852e9ed52b0885eb5b7db8436028489d5
Summary: Documents init in the API reference and deletes the now redundant communicating page.
Reviewed By: danielbuechele
Differential Revision: D15198128
fbshipit-source-id: a9b88632b74edd7d9656ed888192db1fbe7f3642
Summary:
* Made the code snippets uniform across languages.
* Renamed to "Providing data to plugins" because sending hints at sending across the desktop-client connection which is misleading.
Reviewed By: danielbuechele
Differential Revision: D15198081
fbshipit-source-id: e2c318cdc6055c191f47e846b518c26dd21e4a68
Summary: This documents all pretty much the entire API.
Reviewed By: passy
Differential Revision: D15187834
fbshipit-source-id: 073c6a0dc40e3373967e9e5c5b7d44ab9c0aa07f
Summary:
The purpose of this page wasn't that clear to me, though the content is pretty focused. I've changed it from JS setup to JS Plugin Definition, and reworded it a bit.
I think it makes sense if this specifies everything to do with plugins on the file system, and the next page talks about what you do in javascript.
Reviewed By: passy
Differential Revision: D15184829
fbshipit-source-id: 6335ebc8d4297ffcbf1ab9860b4f055fe5bbcf87
Summary:
This page got lost in the reorganisation. Adding it back.
There's still work to be done on the content and organisation of these docs.
Reviewed By: passy
Differential Revision: D15184349
fbshipit-source-id: 76256ba53189579bec363903dc4068a421cafc98
Summary:
Please give feedback on the sidebar placement.
This is only the Android part. I'll put up a second diff copying the iOS thing over
but hope someone can commandeer that and check for accuracy.
Reviewed By: priteshrnandgaonkar
Differential Revision: D15181454
fbshipit-source-id: d32081feefbfb0ffc38890e835a7d5f6b78667ab
Summary: We have a templated function not requiring a downcast, so there's no need to use the non-templated one.
Reviewed By: passy
Differential Revision: D15167856
fbshipit-source-id: 2f125ac9ca62d7ac4c633127104d1cd2954a13fb