-
Notifications
You must be signed in to change notification settings - Fork 47
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
Research alternatives to current print architecture #564
Comments
As discovered in freedomofpress/securedrop-builder#343,
|
Towards freedomofpress/securedrop-builder#343. xpp has been removed[1] from Debian stable, but we still invoke it directly in securedrop-export. Until we replace xpp entirely (see freedomofpress/securedrop-workstation#564), we'll need to provide buster's xpp for bullseye. We can do that by committing buster's last ".deb" directly, rather than mirroring it, since we know it won't be updated in the future. [1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=964481
The HP M404n has been discontinued and is no longer available from Amazon except used. It may be relatively straightforward to test one of their other models such as the HP LaserJet Pro 4011ne (Amazon's comparison notes that it adds a USB port, but I don't see evidence of wireless connectivity, which we generally want to avoid). @tina-ux has offered to house another test printer to help test the user experience; I would appreciate input on which model we should procure for that purpose. |
Have received the long-awaited HP 4001dn, a currently-available HP model that we can test + recommend. Due to the long shipping delay, I also acquired an older Brother HL-L2360DW which I have been using the past month ish, which works with SDW but is discontinued so won't be a candidate for official recommendation. Just summarizing some things we've said in meetings etc for the record here:
Next steps for print support:
The above questions are currently triaged behind the upcoming ugprade and migration changes, but after that, we should research them, and include in that research a path to deprecating xpp and/or exploration of using existing print buttons, etc. |
To address @eloquence's original questions from the findings so far: Virtual Printer idea in sd-viewer
These two questions I think are fundamentally addressed by the first one. I think it is totally doable. That way we get to have the native print dialogues for every application. I played a bit around with cups-pdf, which is a virtual PDF printer. We could then send this PDF over (even through dangerzone) to sd-devices and print the sanitized PDF. The downside of this approach is that the virtual printer is unaware of the physical specifications of the printer. One practical example is size mismatch: if the virtual printer prints to A4 and the printer uses US sizes, things may look slightly off. Shall we track this as #1137? Printer auto-detection and driver installation
I think the answer to that is driverless printing. I was surprised how well it worked (at least for my specific setup). More details here: freedomofpress/securedrop-client#2088. |
Another thing to think about when rearchitecting this is that we can probably replace our sys-usb udev modifications with a combination of udev+systemd as suggested in this thread. This combination lets us do the whole setup in the template and conditionally have it enabled based on |
I have an implementation, notice the security warning. Feel free to ask questions. |
I have played around with this a bit and there seems to be an easy way to implement it, which tackling together a bunch of issues:
Here's an architecture breakdown from the current one to some potential alternatives (source diagram).
Current ArchitectureCurrently, sd-viewer has nothing to do with printing / exporting. Files are sent directly from the client to Proposal 1 - Replace printer front-end (from
|
Thanks, this is really great and I'm actually quite excited by the idea of just using each viewing application's print dialog. I was concerned about letting things leave sd-viewer, but the PDF restriction plus DZ integration addresses that. I am not sure yet how I'd feel about Proposal 2 without DZ integration.
The only thing I can think of is if you wanted to print double-sided (or not), which wouldn't be a question you could answer at an earlier stage in a print-to-pdf dialog. Not sure how big of a deal that is. |
Good stuff @deeplow - there might be an argument for just dropping the client app print functionality altogether, letting the user open the file in the appropriate viewer app and print from there if they can. Would reduce client complexity by a bit and give folks an unambiguous path to printing. |
I thought a bit about this. There are two ways of going about this. The first is that we could have a custom settings widget which configures basic default printer configurations which are then set in sd-devices (e.g. though
After mentioning some initial ideas with @apyrgio about the potential Dangerzone integration, he had some interesting suggestions: "Hub" model instead of "Chain" modelInstead of having
Using the hub model has clear advantages:
Here is what the "Hub" approach could look like for the sanitized print-from-sd-viewer version: Printing from the client to directly convert via DangerzoneHowever, @apyrgio had a suggestion when printing from the client. Basically the idea idea is to convert through Dangerzone directly instead of having to mess with triggering the print dialogue in the viewer. Here's a diagram to make it more visual, building on top of the "Hub" model: This idea adds some value:
But it has some downsides:
So in general for this one I'm a bit more leaning towards @zenmonkeykstop's option to consider ditching the print from SD-app workflow anyways.
The only thing that I'd add is add some user education. Something like greying out print for a few releases at first and adding a tooltip telling users that print is now available from the document viewing. |
After a team meeting discussion, the team agreed that "print from sd-viewer" sounds like a potentially good idea and we know that this is something users intuitively try do in order to print, but it is probably for for right now, since it still has a fair bit of UX and security complexity. It's more work than what we can take right now for the 0.15.0 milestone. For now let's just use a drop-in front-end for XPP, let's look at packages already available on Debian, ideally avoiding a custom front-end. |
There are a few issues with current printer support:
xpp
frontend has major design and usability issues (#294)Informed by user research about how important print support is to a larger set of prospective users, we should reconsider the current architecture, and evaluate alternatives.
Example research questions:
sd-viewer
?xpp
altogether, or find a better alternative?The text was updated successfully, but these errors were encountered: