New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[gui] Add proxy icon in statusbar #11491

Merged
merged 1 commit into from May 16, 2018

Conversation

Projects
None yet
@mess110
Contributor

mess110 commented Oct 12, 2017

Relates to #7734

image

Please ignore the wrong alpha in the screenshot, I couldn't get the screenshot alpha right :(

I plan to extend this feature in future PRs to include:

  • custom Tor icon
  • clickable icon which opens network settings

Old proposals, dropped in favor of current

image
proxy_preview
image

@luke-jr

This comment has been minimized.

Member

luke-jr commented Oct 12, 2017

Hmm, a fixed icon that is disabled/enabled doesn't extend well to a tri-state when Tor is added. But that can be deferred until adding Tor I guess.

@fanquake fanquake added the GUI label Oct 12, 2017

@promag

Tested ACK, some comments though.

@@ -278,6 +278,8 @@ RES_ICONS = \
qt/res/icons/network_disabled.png \
qt/res/icons/open.png \
qt/res/icons/overview.png \
qt/res/icons/proxy_enabled.png \

This comment has been minimized.

@promag

promag Oct 13, 2017

Member

Sort.

{
bool proxyEnabled = false;
proxyType proxy;
UniValue networks(UniValue::VARR);

This comment has been minimized.

@promag

promag Oct 13, 2017

Member

Unused, remove?

This comment has been minimized.

@promag

promag Oct 13, 2017

Member

The #include above too.

}
}
labelProxyIcon->show();

This comment has been minimized.

@promag

promag Oct 13, 2017

Member

Already visible? Remove.

labelProxyIcon->show();
labelProxyIcon->setPixmap(platformStyle->SingleColorIcon(proxyEnabled ? ":/icons/proxy_enabled" : ":/icons/proxy_disabled").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));
labelProxyIcon->setToolTip(proxyEnabled ? tr("Proxy is <b>enabled</b>: %1").arg(QString::fromStdString(proxy.proxy.ToStringIPPort())) : tr("Proxy is <b>disabled</b>"));

This comment has been minimized.

@promag

promag Oct 13, 2017

Member

Why the cosmetic in the tooltips?

This comment has been minimized.

@promag

promag Oct 13, 2017

Member

Nit: If enabled tooltip = Proxy: %1 else Proxy disabled.

This comment has been minimized.

@mess110

mess110 Oct 13, 2017

Contributor

I think the bold helps readability. Can remove if needed.

@@ -1084,6 +1092,30 @@ void BitcoinGUI::setEncryptionStatus(int status)
}
#endif // ENABLE_WALLET
void BitcoinGUI::updateProxyIcon()
{
bool proxyEnabled = false;

This comment has been minimized.

@promag

promag Oct 13, 2017

Member

proxy_enabled.

proxyType proxy;
UniValue networks(UniValue::VARR);
for(int n=0; n<NET_MAX; ++n)

This comment has been minimized.

@promag

promag Oct 13, 2017

Member

for (int n = 0; n < NET_MAX; ++n) {

for(int n=0; n<NET_MAX; ++n)
{
enum Network network = static_cast<enum Network>(n);
if(network == NET_UNROUTABLE || network == NET_INTERNAL)

This comment has been minimized.

@promag

promag Oct 13, 2017

Member

Space after if. continue in this line.

if(network == NET_UNROUTABLE || network == NET_INTERNAL)
continue;
GetProxy(network, proxy);
if(proxy.IsValid()) {

This comment has been minimized.

@promag

promag Oct 13, 2017

Member

Space after if.

}
labelProxyIcon->show();
labelProxyIcon->setPixmap(platformStyle->SingleColorIcon(proxyEnabled ? ":/icons/proxy_enabled" : ":/icons/proxy_disabled").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE));

This comment has been minimized.

@promag

promag Oct 13, 2017

Member

Space after ,.

Nit, split in 2 lines? Or something like:

if (proxy_enabled) {
   ...
} else {
   ...
}

This comment has been minimized.

@mess110

mess110 Oct 13, 2017

Contributor

Removed space, prefer it like this for now.

@promag

This comment has been minimized.

Member

promag commented Oct 13, 2017

@luke-jr We can have an icon for each state no?

@MeshCollider

This comment has been minimized.

Member

MeshCollider commented Oct 13, 2017

I'm unsure, but does this also need a mention in contrib/debian/copyright?

@mess110

This comment has been minimized.

Contributor

mess110 commented Oct 13, 2017

@promag @MeshCollider Thanks for the reviews. If you think the remaining nits are very important, I can change them.

@promag

Should squash right?

@@ -53,6 +53,8 @@
<file alias="hd_enabled">res/icons/hd_enabled.png</file>
<file alias="hd_disabled">res/icons/hd_disabled.png</file>
<file alias="network_disabled">res/icons/network_disabled.png</file>
<file alias="proxy_enabled">res/icons/proxy_enabled.png</file>

This comment has been minimized.

@promag

promag Oct 13, 2017

Member

Nit, sort. :trollface:

bool proxy_enabled = false;
proxyType proxy;
for (int n = 0; n < NET_MAX; ++n) {

This comment has been minimized.

@promag

promag Oct 13, 2017

Member

GetProxy returns IsValid so something like this should work:

for (int n = 0; !proxy_enabled && n < NET_MAX; ++n) {
    proxy_enabled = GetProxy((Network) n, proxy);
}

This comment has been minimized.

@mess110

mess110 Oct 13, 2017

Contributor

Nice, I didn't notice GetProxy checks for valid.

@@ -189,6 +190,9 @@ public Q_SLOTS:
void incomingTransaction(const QString& date, int unit, const CAmount& amount, const QString& type, const QString& address, const QString& label);
#endif // ENABLE_WALLET
/** Set the proxy-enabled icon as shown in the UI. */
void updateProxyIcon();

This comment has been minimized.

@promag

promag Oct 13, 2017

Member

Missing indentation. No need to be a slot, just a private member.

proxyType proxy;
for (int n = 0; !proxy_enabled && n < NET_MAX; ++n) {
proxy_enabled = GetProxy((Network) n, proxy);

This comment has been minimized.

@jonasschnelli

jonasschnelli Oct 13, 2017

Member

Instead of directly accessing core features, can you wrap that via clientmodel?
There are serval tries to detach the GUI from the rest and those little things will cause a lot of work.

@jonasschnelli

This comment has been minimized.

Member

jonasschnelli commented Oct 13, 2017

Concept ACK.
Would prefer if we could use an icon from http://s-ings.com/typicons/.

@wodry

This comment has been minimized.

Contributor

wodry commented Oct 14, 2017

First seeing the icon I was confused, meaning was not intuitive for me.
The icon in the screenshot is so small, I hardly could imagine what the downgoing line is.
Icon looked more like a star.
But looking at the bigger icon on https://openclipart.org/detail/190624/load-balancer I could finally see that the icon visualizes "technically" correct.
Since You said that You did several searches and ended up with this, I guess it's OK, the user can learn about the meaning and get used to it.

@mess110

This comment has been minimized.

Contributor

mess110 commented Oct 14, 2017

@wodry guess I wasn't 100% clear. I attempted to construct a proxy icon from 3 copies of https://github.com/bitcoin/bitcoin/blob/master/src/qt/res/icons/debugwindow.png but it was too much to fit in the space and the icon ended up looking too different from the others. So I chose the icon you see because it fits and is public domain

@jonasschnelli I checked the link you provided. Indeed it would be nice to include from the same set, but I couldn't find one that matches. Imo, the current icon is better. However, here are a few long shots:

  • flow merge
  • group
  • pinterest (as in Proxy - lol)
  • world
@jonasschnelli

This comment has been minimized.

Member

jonasschnelli commented Oct 15, 2017

Tested a bit:

  • The icon seems hard to grasp what it is (already mentioned).
  • IMO the icon should only be visible when proxy is enabled (not faded out, completely invisible)
  • Clicking on the icon should open settings and showing the network/proxy tab
@mess110

This comment has been minimized.

Contributor

mess110 commented Oct 17, 2017

image

The new icon is made from 3 device-desktop and 1 rotated chevron from http://s-ings.com/typicons/

After talking with @jonasschnelli, I will do the clickable icon in a different PR.

@rebroad

This comment has been minimized.

Contributor

rebroad commented Oct 17, 2017

I think it only makes sense to have this as an icon if the proxy is enableable/disableable from the GUI - otherwise, why? Why not have icons for various things, e.g. bloom filters enabled too then?

@promag

@rebroad UI evolve because of these changes, eventually recognising less is more. I also don't appreciate the icon there, but this is for sure something that can be improved. I would only show mutable state information in the status bar, and settings is not state.

IMO icon is unrecognisable in small size. Beside doesn't feel related to proxy at all (personal opinion).

@@ -10,6 +10,7 @@
#endif
#include "amount.h"
#include <univalue.h>

This comment has been minimized.

@promag

promag Oct 17, 2017

Member

Remove.

@@ -336,3 +337,20 @@ void ClientModel::unsubscribeFromCoreSignals()
uiInterface.NotifyBlockTip.disconnect(boost::bind(BlockTipChanged, this, _1, _2, false));
uiInterface.NotifyHeaderTip.disconnect(boost::bind(BlockTipChanged, this, _1, _2, true));
}
UniValue ClientModel::getProxyInfo() const

This comment has been minimized.

@promag

promag Oct 17, 2017

Member

Suggestion to remove UniValue dependency:

bool ClientModel::GetProxyInfo(std::string& ip_port) const
{
    for (int n = 0; n < NET_MAX; ++n) {
        proxyType proxy;
        if (GetProxy((Network) n, proxy)) {
            ip_port = proxy.proxy.ToStringIPPort();
            return true;
        }
    }
    return false;
}

Haven't tested.

This comment has been minimized.

@wodry

wodry Oct 18, 2017

Contributor

I can not see how the new icon relates to proxy. Instead of showing "something with computer and cable", maybe simply show a "P" ?

@promag

IMO the icon could be improved. Not sure if it should be visible only when the proxy is enabled.

Edit: Feels better without the disabled proxy icon.

labelProxyIcon->setPixmap(platformStyle->SingleColorIcon(":/icons/proxy").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE));
labelProxyIcon->setToolTip(tr("Proxy is <b>enabled</b>: %1").arg(ip_port_q));
labelProxyIcon->setEnabled(proxy_enabled);

This comment has been minimized.

@promag

promag Oct 25, 2017

Member

Remove as it is already enabled?

if (proxy_enabled) {
QString ip_port_q = QString::fromStdString(ip_port);
labelProxyIcon->setPixmap(platformStyle->SingleColorIcon(":/icons/proxy").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE));

This comment has been minimized.

@promag

promag Oct 25, 2017

Member

If idea is to show/hide then the pixmap can be set when the label is created.

This comment has been minimized.

@mess110

mess110 Oct 25, 2017

Contributor

In the future, I plan to support a Tor icon, so I prefer to do this here

This comment has been minimized.

@promag

promag Oct 25, 2017

Member

Even in that case it can't change in runtime right?

This comment has been minimized.

@Sjors

Sjors Feb 8, 2018

Member

Although toggling proxy requires a restart, I prefer it if the UI doesn't assume that (to prevent a regression later). Not a show-stopper perse, but this code could confuse people.

Suggestion: add an if statement that checks if the icon has already been drawn. If so, call show().

@@ -336,3 +337,15 @@ void ClientModel::unsubscribeFromCoreSignals()
uiInterface.NotifyBlockTip.disconnect(boost::bind(BlockTipChanged, this, _1, _2, false));
uiInterface.NotifyHeaderTip.disconnect(boost::bind(BlockTipChanged, this, _1, _2, true));
}
bool ClientModel::getProxyInfo(std::string& ip_port) const

This comment has been minimized.

@promag

promag Oct 25, 2017

Member

Nit, some may prefer std::pair<bool, std::string> ClientModel::getProxyInfo() const;, both work for me.

This comment has been minimized.

@mess110

mess110 Oct 25, 2017

Contributor

Gonna go with what is currently implemented

@mess110

This comment has been minimized.

Contributor

mess110 commented Oct 25, 2017

@promag yea, I agree, the icon needs improving. Will come up with something better

@Sjors

This comment has been minimized.

Member

Sjors commented Nov 9, 2017

The icons at the bottom are already quite confusing. Some allow the user to take action (e.g. BTC), another does not allow action and never chances (HD). The network icon allows the user to take action, but unlike the BTC icon doesn't first show a dropdown menu, but instead disables your network without warning.

schermafbeelding 2017-11-09 om 12 42 07

Instead of adding another icon, I suggest turning the connection icon into something that opens a dialog, where you inspect and change network settings (including disconnecting, using a proxy or tor). The shape or color of the icon could give a hint as to the current state (e.g. green for Tor), but once the user clicks on it they would get the full information. That way the icon doesn't need to be perfect.

@luke-jr

This comment has been minimized.

Member

luke-jr commented Nov 10, 2017

I wonder if a small "P" (and later "T" for Tor) in the connection icon would do the trick...

@mess110

This comment has been minimized.

Contributor

mess110 commented Nov 11, 2017

I updated the proposal to use an icon form http://s-ings.com/typicons/ as @jonasschnelli suggested (decided to try this instead of creating an svg with P in it - curious about feedback). The set also contains a t icon for future Tor PR.

@Sjors yea, the icons can be a bit confusing. This is why in the first version of this PR, I created proxy enabled/disabled similar to how the network icon behaves. However, each icon has slightly different behavior and needs. I think the security benefit of seeing the proxy icon is worth it though.

@luke-jr

This comment has been minimized.

Member

luke-jr commented Nov 11, 2017

This indicates proxy for me, even though I don't use a proxy (but I have Tor enabled with -onion).

@luke-jr

This comment has been minimized.

Member

luke-jr commented Nov 11, 2017

I wonder if a small "P" (and later "T" for Tor) in the connection icon would do the trick...

Implemented this. It's too small. :(

@laanwj

This comment has been minimized.

Member

laanwj commented Nov 13, 2017

I think the security benefit of seeing the proxy icon is worth it though.

I tend to agree. Let's be pragmatic about ACKing this when the functionality works, aesthetics can always be improved later.

@jonasschnelli

This comment has been minimized.

Member

jonasschnelli commented Nov 29, 2017

The current P icon is probably the "Pintrest" logo. Feels wrong. But agree, lets try to separate functionality and aesthetics.
@mess110: maybe rebase, make a pure "P" icon (just a default font). This PR should not go under in icon discussions.

@mess110

This comment has been minimized.

Contributor

mess110 commented Nov 30, 2017

@jonasschnelli agree and thanks. I rebased and added a proxy icon (as a simple P)

Should have some time over the weekend to do the "T" for Tor

@jonasschnelli

This comment has been minimized.

Member

jonasschnelli commented Nov 30, 2017

The "T" (tor) indicator may be more complicated. A false indication can be fatal... and unsure how to reliable detect if we are connecting via TOR

@luke-jr

This comment has been minimized.

Member

luke-jr commented Nov 30, 2017

This indicates proxy for me, even though I don't use a proxy (but I have Tor enabled with -onion).

Reminder this bug persists (but in theory can be easiest solved by having the Tor icon).

@mess110

This comment has been minimized.

Contributor

mess110 commented Nov 30, 2017

The way I was thinking of detecting if Tor is enabled is if the n variable from https://github.com/bitcoin/bitcoin/pull/11491/files#diff-2c51f64a3430117d2f6c7cb55355be66R343 is equal to https://github.com/bitcoin/bitcoin/blob/master/src/netaddress.h#L24 (in this case 3).

Would that be enough?

If not, for this PR I can just check that all n are set which does not happen for -onion (thx @luke-jr for the tip)

@lmlsna

This comment has been minimized.

Contributor

lmlsna commented Dec 7, 2017

A possible kludgey check if tor is actually up and running is to just send a dummy HTTP request directly to the tor socks proxy port. If tor is running, it will politely respond with a HTTP/1.0 501 Tor is not an HTTP Proxy, if it isn't, it won't.

This misses the possibility that the tor client is running but unable to connect, however that would result in a broken connection (as opposed to an accidental clearnet connection). However, I can't think of any way to verify tor is actually working other than either asking tor-arm (which might not be there) or requesting https://check.torproject.org/ through the proxy (like the TBB does).

@mess110

This comment has been minimized.

Contributor

mess110 commented Dec 18, 2017

NET_MAX is 5. I checked to see what I get from GetProxy for different options:

0 1 2 3 4
with no options false false false false false
with -proxy false true true true false
with gui default proxy false true true true false
with gui separate proxy false false false true false
with both gui options false true true true false
with -onion false false false true false
with -onion and all gui options false true true true false
with -onion and gui default proxy false true true true false

Looking at the table above, I can not reliably determine if the proxy icon should be shown by checking the return value of GetProxy. Any advice on how to proceed?

@luke-jr

This comment has been minimized.

Member

luke-jr commented Jan 3, 2018

Note that the network ids aren't just arbitrary numbers - they have meanings (defined in netaddress.h).

Anyhow, "gui separate proxy" is a Tor-specific option. So we shouldn't show "proxy" for that either.

"Proxy" icon should probably only be shown if NET_IPV4 and NET_IPV6 have a GetProxy result.

The Tor icon might be more complicated. Ideally, clicking on it would show a popup with the hidden service address and QR Code, so mobile wallets can autoconfigure. But I guess that's out-of-scope for this PR.

@mess110

This comment has been minimized.

Contributor

mess110 commented Jan 15, 2018

Rebased and made sure the proxy icon is shown if NET_IPV4 and NET_IPV6 have a result.

For the tooltip, I am showing ToStringIPPort for NET_IPV4. I couldn't get an ipv6 to work with the -proxy argument. Also, ToStringIPPort for NET_IPV6 returns an ipv4 format.

@mess110

This comment has been minimized.

Contributor

mess110 commented Feb 8, 2018

@luke-jr @promag @MeshCollider @jonasschnelli @wodry @rebroad @Sjors @laanwj @lmlsna can you please review this patch? Hope it doesn't get too buried. Thank you.

@Sjors

Tested through QT settings and -proxy launch flag.

The current silent failure (e.g. if you set a non existent proxy address) is suboptimal. Perhaps a future PR can put a red cross through the P icon to show there's a problem.

Adding a test would be nice.

src/qt/res/icons/tx_in*.png
src/qt/res/icons/verify.png

This comment has been minimized.

@Sjors

Sjors Feb 8, 2018

Member

Nit: why does git think something changed here?

This comment has been minimized.

@mess110

mess110 Apr 26, 2018

Contributor

I moved one element so it is alphabetical

This comment has been minimized.

@promag

promag May 15, 2018

Member

nit, unrelated change. If you happen to push again consider removing this change.

if (proxy_enabled) {
QString ip_port_q = QString::fromStdString(ip_port);
labelProxyIcon->setPixmap(platformStyle->SingleColorIcon(":/icons/proxy").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE));

This comment has been minimized.

@Sjors

Sjors Feb 8, 2018

Member

Although toggling proxy requires a restart, I prefer it if the UI doesn't assume that (to prevent a regression later). Not a show-stopper perse, but this code could confuse people.

Suggestion: add an if statement that checks if the icon has already been drawn. If so, call show().

@laanwj

This comment has been minimized.

Member

laanwj commented May 15, 2018

Tested ACK 35d50aa

I don't think it's a good idea to use a "P" icon because the word for "Proxy" is going to be different between languages. It should be replaced with a symbol. But that can be changed later, it should not hold up the merge.

bool ClientModel::getProxyInfo(std::string& ip_port) const
{
proxyType ipv4, ipv6;
if (GetProxy((Network) 1, ipv4) && GetProxy((Network) 2, ipv6)) {

This comment has been minimized.

@ryanofsky

ryanofsky May 15, 2018

Contributor

Could call m_node.getProxy() here and drop netbase.h include above. This would be a little more future-proof with #10102.

This comment has been minimized.

@mess110

mess110 May 15, 2018

Contributor

netbase.h is still needed for proxyType, but I can change to m_node.getProxy

@promag

utACK 35d50aa.

I have a couple of nits for you to consider or feel free to ignore them and keep the above ACKs.

src/qt/res/icons/tx_in*.png
src/qt/res/icons/verify.png

This comment has been minimized.

@promag

promag May 15, 2018

Member

nit, unrelated change. If you happen to push again consider removing this change.

@@ -83,6 +83,7 @@ BitcoinGUI::BitcoinGUI(interfaces::Node& node, const PlatformStyle *_platformSty
unitDisplayControl(0),
labelWalletEncryptionIcon(0),
labelWalletHDStatusIcon(0),
labelProxyIcon(0),

This comment has been minimized.

@promag

promag May 15, 2018

Member

nit, could be initialized in the declaration as per developer notes.

if (proxy_enabled) {
QString ip_port_q = QString::fromStdString(ip_port);
if (labelProxyIcon->pixmap() == 0) {

This comment has been minimized.

@promag

promag May 15, 2018

Member

nit, IMO the label pixmap could be initialized when the label is created above.

This comment has been minimized.

@mess110

mess110 May 15, 2018

Contributor

This is consistent with labelWalletHDStatusIcon, so I will prefer the approach taken

bool proxy_enabled = clientModel->getProxyInfo(ip_port);
if (proxy_enabled) {
QString ip_port_q = QString::fromStdString(ip_port);

This comment has been minimized.

@promag

promag May 15, 2018

Member

nit, could inline this below.

@mess110

This comment has been minimized.

Contributor

mess110 commented May 15, 2018

Thanks for the reviews.

I inlined the string creation and using m_node.getProxy

@jonasschnelli

This comment has been minimized.

Member

jonasschnelli commented May 16, 2018

@jonasschnelli jonasschnelli merged commit 73cd5b2 into bitcoin:master May 16, 2018

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details

jonasschnelli added a commit that referenced this pull request May 16, 2018

Merge #11491: [gui] Add proxy icon in statusbar
73cd5b2 [gui] Add proxy icon in statusbar (Cristian Mircea Messel)

Pull request description:

  Relates to #7734

  ![image](https://user-images.githubusercontent.com/226170/33406640-8ea700c6-d576-11e7-9d69-fde9a696c219.png)

  Please ignore the wrong alpha in the screenshot, I couldn't get the screenshot alpha right :(

  I plan to extend this feature in future PRs to include:

  - custom Tor icon
  - clickable icon which opens network settings

  Old proposals, dropped in favor of current

  ![image](https://user-images.githubusercontent.com/226170/32688635-979ef690-c6dd-11e7-8869-49da7e0f0a11.png)
  ![proxy_preview](https://user-images.githubusercontent.com/226170/31521305-99c43f22-afb1-11e7-9daf-d1ed6347daa8.png)
  ![image](https://user-images.githubusercontent.com/226170/31680585-72706098-b37d-11e7-88ad-028c4c723f42.png)

Tree-SHA512: e5f18c20c0be292256a3e78c91cdf390a3b6084346a192a8170460f706f5b6cd198ba5b0035798a85a442fe7f262cf1c2350064670085ff8f473f880ab5ba589

@mess110 mess110 deleted the mess110:add_proxy_icon branch May 16, 2018

mess110 added a commit to mess110/bitcoin that referenced this pull request May 16, 2018

[gui] Make proxy icon from statusbar clickable
Clicking on the proxy icon will open settings showing the network tab

bitcoin#11491 (comment)

mess110 added a commit to mess110/bitcoin that referenced this pull request May 16, 2018

[gui] Make proxy icon from statusbar clickable
Clicking on the proxy icon will open settings showing the network tab

bitcoin#11491 (comment)

mess110 added a commit to mess110/bitcoin that referenced this pull request May 16, 2018

[gui] Make proxy icon from statusbar clickable
Clicking on the proxy icon will open settings showing the network tab

bitcoin#11491 (comment)

mess110 added a commit to mess110/bitcoin that referenced this pull request Jul 23, 2018

[gui] Make proxy icon from statusbar clickable
Clicking on the proxy icon will open settings showing the network tab

bitcoin#11491 (comment)

laanwj added a commit that referenced this pull request Aug 20, 2018

Merge #13248: [gui] Make proxy icon from statusbar clickable
6d5fcad [gui] Make proxy icon from statusbar clickable (Cristian Mircea Messel)

Pull request description:

  Clicking on the proxy icon will open settings showing the network tab

  #11491 (comment)

Tree-SHA512: c3549749296918818694a371326d1a3b1075478918aaee940b5c7119a7e2cb991dcfda78f20d44d6d001157b9b82951f0d5157b17f4f0d1a0a242795efade036
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment