Summary:
The run through indexes could be cut off when they were elements that touched the left edge of the screen.
If label was complete obscured when it was on the top left
Also index 0 was missing
changelog: UIDebugger: improvements to iOS Accessibility mode
Reviewed By: zats
Differential Revision: D49704398
fbshipit-source-id: cb069857a9175f2c1a8157f41fe6d83fb96f795d
Summary:
This is an automated PR to update the Podfile.lock.
- Make sure that the Podfile.lock contains latest FlipperKit and Flipper pod versions.
- Also make sure that all the dependencies are updated to the latest one.
- This is auto-generated by [create-pull-request](https://github.com/peter-evans/create-pull-request)
Pull Request resolved: https://github.com/facebook/flipper/pull/5179
Reviewed By: lblasa
Differential Revision: D49641870
Pulled By: passy
fbshipit-source-id: 2b5ce1a42cac07d5cdc454a411ebea851d63bba8
Summary:
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.106 to 1.0.107.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p>
<blockquote>
<h2>v1.0.107</h2>
<ul>
<li>impl IntoDeserializer for &RawValue (<a href="https://redirect.github.com/serde-rs/json/issues/1071">https://github.com/facebook/flipper/issues/1071</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b6e113f203"><code>b6e113f</code></a> Release 1.0.107</li>
<li><a href="00626a0a95"><code>00626a0</code></a> Merge pull request <a href="https://redirect.github.com/serde-rs/json/issues/1073">https://github.com/facebook/flipper/issues/1073</a> from dtolnay/rawvalue</li>
<li><a href="b9d296f87d"><code>b9d296f</code></a> IntoDeserializer for &RawValue</li>
<li><a href="4ea34a2566"><code>4ea34a2</code></a> Merge pull request <a href="https://redirect.github.com/serde-rs/json/issues/1072">https://github.com/facebook/flipper/issues/1072</a> from dtolnay/rawvalue</li>
<li><a href="fe30766ae5"><code>fe30766</code></a> Support deserializing from &RawValue</li>
<li><a href="2c22077f0e"><code>2c22077</code></a> Merge pull request <a href="https://redirect.github.com/serde-rs/json/issues/1062">https://github.com/facebook/flipper/issues/1062</a> from osiewicz/remove_build_rs</li>
<li><a href="04f7758b6e"><code>04f7758</code></a> fixup! chore: Remove no_btreemap_get_key_value and no_btreemap_remove_entry.</li>
<li><a href="83bdc5fd42"><code>83bdc5f</code></a> Omit return keyword in <code>remove_entry</code></li>
<li><a href="89a2741956"><code>89a2741</code></a> Revert "Remove limb_width32 and limb_width64 features"</li>
<li><a href="16e04ceedd"><code>16e04ce</code></a> fixup! Remove limb_width32 and limb_width64 features</li>
<li>See full diff in <a href="https://github.com/serde-rs/json/compare/v1.0.106...v1.0.107">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
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 close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor 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)
</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/5154
Reviewed By: ivanmisuno
Differential Revision: D49641876
Pulled By: passy
fbshipit-source-id: 0c5a3ed4b3ed10fd5d52ecbd8f885166d568d513
Summary:
Bumps [rayon](https://github.com/rayon-rs/rayon) from 1.7.0 to 1.8.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/rayon-rs/rayon/blob/master/RELEASES.md">rayon's changelog</a>.</em></p>
<blockquote>
<h1>Release rayon 1.8.0 / rayon-core 1.12.0 (2023-09-20)</h1>
<ul>
<li>The minimum supported <code>rustc</code> is now 1.63.</li>
<li>Added <code>ThreadPoolBuilder::use_current_thread</code> to use the builder thread as
part of the new thread pool. That thread does not run the pool's main loop,
but it may participate in work-stealing if it yields to rayon in some way.</li>
<li>Implemented <code>FromParallelIterator<T></code> for <code>Box<[T]></code>, <code>Rc<[T]></code>, and
<code>Arc<[T]></code>, as well as <code>FromParallelIterator<Box<str>></code> and
<code>ParallelExtend<Box<str>></code> for <code>String</code>.</li>
<li><code>ThreadPoolBuilder::build_scoped</code> now uses <code>std::thread::scope</code>.</li>
<li>The default number of threads is now determined using
<code>std::thread::available_parallelism</code> instead of the <code>num_cpus</code> crate.</li>
<li>The internal logging facility has been removed, reducing bloat for all users.</li>
<li>Many smaller performance tweaks and documentation updates.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="21e1ae1e12"><code>21e1ae1</code></a> Release rayon 1.4.0 / rayon-core 1.8.0</li>
<li><a href="a0e5833b76"><code>a0e5833</code></a> Merge <a href="https://redirect.github.com/rayon-rs/rayon/issues/785">https://github.com/facebook/flipper/issues/785</a> <a href="https://redirect.github.com/rayon-rs/rayon/issues/790">https://github.com/facebook/flipper/issues/790</a> <a href="https://redirect.github.com/rayon-rs/rayon/issues/791">https://github.com/facebook/flipper/issues/791</a></li>
<li><a href="9f7357befb"><code>9f7357b</code></a> Merge <a href="https://redirect.github.com/rayon-rs/rayon/issues/792">https://github.com/facebook/flipper/issues/792</a></li>
<li><a href="998f134242"><code>998f134</code></a> Removed outdated documentation</li>
<li><a href="c7d963a9c2"><code>c7d963a</code></a> Use crossbeam_deque::Injector instead of crossbeam_queue::SegQueue</li>
<li><a href="2e889293a8"><code>2e88929</code></a> Micro-optimize the WorkerThread::steal loop</li>
<li><a href="66559fe9ce"><code>66559fe</code></a> Remove the lifetime constraint from the scope OP</li>
<li><a href="09428ec11d"><code>09428ec</code></a> Merge <a href="https://redirect.github.com/rayon-rs/rayon/issues/746">https://github.com/facebook/flipper/issues/746</a></li>
<li><a href="ed6a5f75c4"><code>ed6a5f7</code></a> Update ci/compat-Cargo.lock</li>
<li><a href="96ba9ef188"><code>96ba9ef</code></a> inline more Counter methods</li>
<li>Additional commits viewable in <a href="https://github.com/rayon-rs/rayon/compare/rayon-core-v1.7.0...rayon-core-v1.8.0">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
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 close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor 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)
</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/5172
Reviewed By: lblasa
Differential Revision: D49725788
Pulled By: passy
fbshipit-source-id: 5798c7c8bd831acd2291fc07628cc3005ab8f703
Summary:
Bumps [indicatif](https://github.com/console-rs/indicatif) from 0.17.6 to 0.17.7.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/console-rs/indicatif/commits">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
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 close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor 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)
</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/5173
Reviewed By: lblasa
Differential Revision: D49725790
Pulled By: passy
fbshipit-source-id: e9fea2896eb6fc927d1493ae017404e6fbd1e9f9
Summary:
Now when we are simulating device running in VoiceOver mode while showing accessiblity hierarchy in flipper, we are getting correct hierarchy + getting production-like custom actions,
Instagram + Facebook feed is a good example of using accessiblity actions to avoid exposing individual buttons
Reviewed By: lblasa
Differential Revision: D49641875
fbshipit-source-id: 1153ec3bffc7110c4bfe702cbb5a6b729d91b9a3
Summary:
There has been multiple requests to incorporate an export to plain text functionality for a while.
This diff adds it.
It will export a node and optionally its chidren as JSON.
Reviewed By: antonk52
Differential Revision: D49596476
fbshipit-source-id: 3681bc0c2d02e1ea64ff589e0e272f6d54ad0524
Summary:
Should be more discoverable
changelog: UIDebugger accessibility mode for iOS launched, look for icon to the right of the search bar
Reviewed By: zats
Differential Revision: D49547952
fbshipit-source-id: 3befdffedb34907d9824bb66b86e20fd4a1a42ff
Summary: Log views were being generated, this seems like a reasonable solution.
Reviewed By: zats
Differential Revision: D49547368
fbshipit-source-id: 575dd81a7c9b9a831d1dfb46088c2f5e1d731f22
Summary:
All the FoA have different logic depending on whether device is running in VoiceOver mode or not. This results in incorrect accessibility being reported through the Flipper plugin.
For example on Instagram we fetch the image descriptions, in Facebook app we group individual elements into the accessibility groups to simplify traversing the screen
This tells device that it is in a voice over mode while inspecting accessibility mode is on meaning that it will be the closest approximation to the
Reviewed By: nscoding
Differential Revision: D49579241
fbshipit-source-id: f3be9057007ee6eefbe3b448f0f97c1fcd2c8f46
Summary: These are quite verbose even when debugging, so remove.
Reviewed By: ivanmisuno
Differential Revision: D49538582
fbshipit-source-id: 089027390a825dde3d3d53b67e3f920f2f1f75f2
Summary: Having default and extra actions at the bottom is not actionable. Users are used to haveing table controls on the top.
Reviewed By: LukeDefeo, aigoncharov
Differential Revision: D49538205
fbshipit-source-id: 724a31dc44de79cb0e09efae48dd2135450b34ae
Summary: There are reports in which kill as is doesn't kill the process. Using the '-9' flag does, so update troubleshoot message.
Reviewed By: LukeDefeo
Differential Revision: D49537427
fbshipit-source-id: a062c92528589cecf0f41e1c344c5d0ae1c3345d
Summary:
Expose an endpoint to retrieve server environment information.
We can use version information and process number to aid engineers with troubleshooting Flipper.
Reviewed By: antonk52
Differential Revision: D49537325
fbshipit-source-id: 511fe4441638f91cd35f13706ceeeb515051416b
Summary: Add an option to archive the server build inside a DMG.
Reviewed By: antonk52
Differential Revision: D49504225
fbshipit-source-id: 3c34e6f0e4c9a685d36771199a6e20394f68baef
Summary: This is the default from Node 17 onwards and should unblock problems we're seeing on some people's machines.
Reviewed By: lblasa
Differential Revision: D49415859
fbshipit-source-id: c15ab82e69db4916838228324a9739c95f3562f3
Summary:
It looks like there are some edge cases when app did not load private accessibility framework (probably if it never set any accessibility values?)
This diff makes calls to accessibility hierarchy safer and ensures to preload framework if available
Reviewed By: lblasa
Differential Revision: D49501064
fbshipit-source-id: b46216b58bf6c9c63f900e199fea035e3262afb2
Summary:
1. makes it easier to tellwhen a parent and child hightlight together
2. Longer times means you have more time to click it and see
changelog: UIDebugger event debugger - increased highlight time. Nodes get random highlight color
Reviewed By: lblasa
Differential Revision: D49501954
fbshipit-source-id: 9456c00e0df77c40934eb95b4b48b566c7715181
Summary: Use the newly exposed HTTP shutdown API. It is simpler.
Reviewed By: antonk52
Differential Revision: D49499264
fbshipit-source-id: 2d81db1d1a66c0b7550ee1245e51d8f1a8671aa6
Summary: Expose the shutdown API via the HTTP server.
Reviewed By: ivanmisuno
Differential Revision: D49496840
fbshipit-source-id: df2045edc89e9feabe74b4b513f973d137323d0f
Summary: these constants are not in the latest release and has broken the build
Reviewed By: adityasharat
Differential Revision: D49455455
fbshipit-source-id: d84b3d214907de197e166130d1c8911a5e0db3c2
Summary:
> "Hi, kids, do you like violence?"
Alrighty, in flipper-frontend-core we have the **base** implmenetation of flipperLib (the thing exposed to the plugins). This base implementation is never used directly by the plugins, rather it is shared code used by the real consumers - flipper-ui-core (regular Flipper with UI) and flipper-server-companion (the thing that allows hosting plugins on the server).
These real consumers actually run the plugins and expose flipperLib to the plugins.
In flipper-ui-core we have a more sophisticated logic of calling the intern graph - we check for VPN connection and authn. Therefore, to expose the same way of handling intern graph requests we **override** intern graph calls provided by flipper-frontend-core.
*Ideally*, we should move checking for VPN connection and authn to flipper-frontend-core, but currently it is a lot of effort for very little gains:
1. flipper-frontend-core does not have a notion of a user
2. Even if we move the authn-related logic there the only real consumer of that effort if flipper-server-companion that is used only by UIQR (which in its turn is barely used in the headless mode and do not require authn-related logic).
Thus, we just override intern graph request on the flipper-ui-core side since it is the simplest and the most impactful thing to do at the moment.
Reviewed By: LukeDefeo
Differential Revision: D49494922
fbshipit-source-id: 6f1d521af7ca5bd50549b7bc328d6b8fcab98389
Summary: In this diff we load and call a private API enabling voiceover hierarchy and pass it over via existing channel when client is in the accessibility mode
Reviewed By: lblasa
Differential Revision: D49393813
fbshipit-source-id: 437af1131547218cd52f4a56797707411787d7cf
Summary:
Make sure mobile client and sonar desktop app keep debugger mode in sync
Desktop client listens to available modes and currently selected mode which is what we use here.
Later we can tweak the logic to try to restore last mode if desktop or mobile clients crash / disconnect etc
Reviewed By: lblasa
Differential Revision: D49384358
fbshipit-source-id: 5bc1f4240253b68a746dfa5feba4b352f4e261a2
Summary:
In accessibility mode it is important to be visually aware of the order of the elements on the screen aside from the list on the left
To enable this let's show the indices on the elements
Voice over assumes single continuous list of objects so it is okay to pass index of children we should never have nested lists in accessibility mode
Reviewed By: lblasa
Differential Revision: D49440400
fbshipit-source-id: e6878b4b33952053823451ad76993259f0794067
Summary:
## This diff: Add debugger mode infrastructure
We want to enable infrastructure allowing adding modes in the future without branching client and plugin code
This infra allows for the client to send a message informing flipper about the supported modes (following diffs)
Currently broadcasting mode change event over to the client
Reviewed By: lblasa
Differential Revision: D49385860
fbshipit-source-id: 2db6f65064d1ff7e1f57b2da93c3ed195400fb7f
Summary: Give the user something actionable when tree is not ready due to flipper connected check failing
Reviewed By: lblasa
Differential Revision: D49455254
fbshipit-source-id: 8869cacde5b65260f4615f5ba2ba34f967d7d27f
Summary:
THis is useful for bloks where fliper needs to be open before hand,
We might also be able to replace some of the annoying notification bubles with these sleeker inline warnings
Reviewed By: lblasa
Differential Revision: D49454977
fbshipit-source-id: fca4fbd3258a68d93c75655cfff247adfa3e6bb2
Summary: Make non-interactive elements non-focusable and disable hover styles for them
Reviewed By: LukeDefeo
Differential Revision: D49455532
fbshipit-source-id: a047e1a149ab4131feef70b80a4995b455441701