New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 658459 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Oct 2016
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug



Sign in to add a comment

Cancelling IT2Me requires restarting client web app

Project Member Reported by ajnolley@chromium.org, Oct 21 2016

Issue description

Version: 55.0.2883.17 Host and Client
OS: any

What steps will reproduce the problem?
(1)In IT2Me, hit share
(2)On client, enter the code and hit enter
(3)On host, hit cancel on PIN code screen (not the confirmation dialog)
(4)On client, the Connecting... dialog spins and spins and cannot be halted without exiting and restarting app


 
Owner: joedow@chromium.org
Status: Assigned (was: Untriaged)
I can't repro this on Linux (although I get an "Access code invalid" error at the host, which is still a bug).

Joe, can you take a look? I suspect this is another issue that's not technically new, but had a very small window before we added the confirmation dialog.
Labels: -Pri-1 M-56 Pri-2

Comment 3 by joedow@chromium.org, Oct 24 2016

Per discussion with Jamie, along with debugging this issue and making sure it is solid, we we should update the error strings in the webapp.  This will likely require sending a new error code to the client so we should make sure older clients can handle an unknown error reason.

Comment 4 by joedow@chromium.org, Oct 24 2016

With respect to the original issue, I see what is going on.  On the host side, the NMH process yields controls to the connection dialog and spins until the user clicks a button or the 60 second timeout occurs.

For the repro, the webapp appears to hang after clicking cancel there until either the timeout occurs or the user presses cancel on the dialog.  We can probably interrupt the wait cycle, I'll have to see if we can do so cleanly.

Comment 5 by joedow@chromium.org, Oct 25 2016

Labels: -OS-All OS-Windows
Another note, this bug only reproduces on Windows, Mac/Linux/ChromeOS work fine.

The reason Windows is affected is that the UI thread, which handles STDIO, is also used to drive the message pump for the Dialog.  Since the UI thread is busy handling window messages, it does not pick up the message to disconnect from the webapp.

I think the right fix is to create a new UI thread to run the confirmation dialog on for Windows.

After thinking about it a bit more, I also think we should use a separate bug to track the string changes as there is some additional UI work for that which is not related to this change.

Comment 6 by joedow@chromium.org, Oct 27 2016

Status: Started (was: Assigned)
My previous comment was technically correct but the solution isn't.  I could update the dialog to own its own thread but that doesn't feel right and neither does making the owning class (the proxy) handle it.

I think a better solution is to update the host to send a new connection state to the webapp, the webapp will then be able to update its message to tell the user that a dialog has been displayed which requires their interaction.  Thus we can avoid the whole problem and make the process less error prone.
Project Member

Comment 7 by bugdroid1@chromium.org, Oct 31 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a41e7dd53d4bc9f268939d10a02c24302cef8020

commit a41e7dd53d4bc9f268939d10a02c24302cef8020
Author: joedow <joedow@chromium.org>
Date: Mon Oct 31 19:54:33 2016

It2Me Host changes to support Confirmation Dialog state

This change adds a new state to the It2Me connection process.  This state
will be sent to the Webapp/client to indicate that the remote user has
started the connection process but has not yet completed it.  For our
purposes, this state will signal that the local user must take action
(i.e. click accept on the confirmation dialog) and we can use it to
updated the text / UI state on the local machine.

BUG= 658459 

Review-Url: https://codereview.chromium.org/2452223002
Cr-Commit-Position: refs/heads/master@{#428776}

[modify] https://crrev.com/a41e7dd53d4bc9f268939d10a02c24302cef8020/remoting/host/it2me/it2me_host.cc
[modify] https://crrev.com/a41e7dd53d4bc9f268939d10a02c24302cef8020/remoting/host/it2me/it2me_host.h
[modify] https://crrev.com/a41e7dd53d4bc9f268939d10a02c24302cef8020/remoting/host/it2me/it2me_host_unittest.cc
[modify] https://crrev.com/a41e7dd53d4bc9f268939d10a02c24302cef8020/remoting/host/it2me/it2me_native_messaging_host.cc
[modify] https://crrev.com/a41e7dd53d4bc9f268939d10a02c24302cef8020/remoting/host/it2me/it2me_native_messaging_host_unittest.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Oct 31 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/46c2064c3f4af9437ed87ffdb777978d37f47366

commit 46c2064c3f4af9437ed87ffdb777978d37f47366
Author: joedow <joedow@chromium.org>
Date: Mon Oct 31 20:29:51 2016

CRD Webapp changes to support Confirmation Dialog It2Me state

This change adds a new state to the CRD webapp.  This state
is sent to the Webapp/client to indicate that the remote user has
started the connection process but has not yet completed it.  For our
purposes, this state will signal that the local user must take action
(i.e. click Share on the confirmation dialog) and we can use it to
updated the text / UI state on the local machine.

The strings and webapp dialog are also updated to inform the user that
an action is required on their part to complete the process.

BUG= 658459 

Review-Url: https://codereview.chromium.org/2453193004
Cr-Commit-Position: refs/heads/master@{#428790}

[modify] https://crrev.com/46c2064c3f4af9437ed87ffdb777978d37f47366/remoting/resources/remoting_strings.grd
[modify] https://crrev.com/46c2064c3f4af9437ed87ffdb777978d37f47366/remoting/webapp/base/js/ui_mode.js
[modify] https://crrev.com/46c2064c3f4af9437ed87ffdb777978d37f47366/remoting/webapp/crd/html/dialog_host.html
[modify] https://crrev.com/46c2064c3f4af9437ed87ffdb777978d37f47366/remoting/webapp/crd/js/host_screen.js
[modify] https://crrev.com/46c2064c3f4af9437ed87ffdb777978d37f47366/remoting/webapp/crd/js/host_session.js

Comment 9 by joedow@chromium.org, Oct 31 2016

Labels: OS-Chrome OS-Linux OS-Mac
Owner: ajnolley@chromium.org
Status: Fixed (was: Started)
It2Me host now provides a new state to the webapp when the confirmation dialog is present, the webapp has also been updated to instruct the user to look for the confirmation dialog.
Status: Verified (was: Fixed)
Verified on 56.0.2908.0. The option to cancel has been replaced by a reminder to confirm

Sign in to add a comment