-
Notifications
You must be signed in to change notification settings - Fork 37
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
Basic export integration with placeholder messaging #547
Conversation
Closes #526 Also, the recent commits to this PR add the following behavior, which we discussed yesterday:
To test this behavior:
For more information on why we do this, see my code documentation: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested the PR as follows:
- Provisioned workstation on lastest
master
- Built a deb on this branch, installed it in
sd-svs-template
- Started the securedrop-client , connected to a SecureDrop instance
- Attempted to export a submission
Export works as expected ! 🎉 . This looks great, very well documented and clear. Thanks @creviera !
Two behaviors I have observed (but couldn't pinpoint the root cause in the diff):
-
When the client refreshes and polls the server (and the client redrawn) the export windows disappear (I cannot find them anymore), which could be problematic depending on how those are timed. Also wondering in that case it it would kill the export operation?
-
When the export popup comes up, clicking anywhere outside the box dismisses and hides it, making it impossible to reappear (other than clicking export again). If we are to make the export action blocking, we should consider making that window sticky, and perhaps preventing focus/clicks outside of that panel? What do you think?
I also have a couple of comments/suggestion inline, for discussion.
# in case the issue is that the Export VM cannot start due to a USB device being | ||
# unavailable for attachment. According to the Qubes docs: | ||
# | ||
# "If the device is unavailable (physically missing or sourceVM not started), booting |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also an edge case (documenting here for posterity and not necessary to include in the documentation) is the case where the machine can't start for other reasons as well (maybe memory pressure or other unknown error)
cea2675
to
05e9ca3
Compare
review comments addressed |
Thanks for the changes @creviera ! Tested this again on a deb built on 05e9ca3 Still experiencing the disappearing export popup when the client redraws/is refreshed, as well as the export window disappearing when you click outside of the export popup dialog. Steps to reproduce:
Do you think the setModal property for QDialog/ExportDialog be helpful here? https://doc.qt.io/qt-5/qdialog.html#modal-prop ? Other than the issue describe above, all other comments were addressed (this is feature complete, and we can further improve UX in #549 ) |
there is an issue that we need to address where the export dialog does NOT close during blocking calls to the Export VM, e.g. when the VM needs to boot up. in order to make it so the export dialog closes when the user clicks outside the dialog during VM boot up, transferring files, etc. we need to put our |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the changes and clarification @creviera.
All functionality in this PR works as expected, is blocking when a file is actually transferring and performs all preflight check in the required order for integration.
From my perspective, this is good to merge as-is, and will be very helpful to test and iterate on the export functionality in the future, where #549 will track the broader UI changes, and #556 the successful export messaging.
Description
Adds export functionality to the client.
Test Plan
From Qubes:
Test this with the wrong password and without a transfer device plugged in. If you see any strange behavior, first check the known issues in the securedrop-export repo to see if it's already documented.
Checklist
If these changes modify code paths involving cryptography, the opening of files in VMs or network (via the RPC service) traffic, Qubes testing in the staging environment is required. For fine tuning of the graphical user interface, testing in any environment in Qubes is required. Please check as applicable: