qapture2 0.7.9 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -12
- package/dist/{chunk-6UNSUNJS.cjs → chunk-E7OFH6EM.cjs} +233 -205
- package/dist/{chunk-G6O4SIEH.js → chunk-RJV6FTIB.js} +233 -205
- package/dist/index.cjs +5 -5
- package/dist/index.js +1 -1
- package/dist/next.cjs +4 -4
- package/dist/next.js +1 -1
- package/dist/standalone.cjs +2 -2
- package/dist/standalone.js +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -92,7 +92,7 @@ working, and each new feature is off until someone turns it on.
|
|
|
92
92
|
| | |
|
|
93
93
|
|---|---|
|
|
94
94
|
| **Screenshots frame the right thing** | Capture mode's own scroll lock used `overflow:hidden`, which **unstuck every `position: sticky` header** just before the screenshot was rendered — measured at 20px of wrongness in a 40px capture, now 0.0px. See [Screenshots: two engines](#screenshots-two-engines). |
|
|
95
|
-
| **Pixel-exact capture (opt-in)** | A real photograph
|
|
95
|
+
| **Pixel-exact capture (opt-in)** | A real photograph rather than a redraw — so canvas/WebGL, video, cross-origin iframes and exotic CSS all come out right. Taken the instant capture opens, then the screen is handed straight back: one frame per capture, nothing recording in between. Desktop browsers. |
|
|
96
96
|
| **Save straight to a folder** | Pick a QA folder once; every note is written to disk as it's saved, organised `Project / Campaign / notes + screenshots + REPORT.md`. See [Saving to a folder](#saving-to-a-folder). |
|
|
97
97
|
| **Storage that explains itself** | A real usage meter, WebP screenshots (~10× smaller), a request to stop the browser evicting your data, and a "drop screenshots, keep findings" recovery valve. |
|
|
98
98
|
| **A usable notes list** | Severity/status filter chips with counts, text search, and a "this page" toggle. |
|
|
@@ -372,23 +372,55 @@ canvas as a blank box, every time, in any tool built this way.
|
|
|
372
372
|
|
|
373
373
|
### `exact` — opt-in, pixel-for-pixel
|
|
374
374
|
|
|
375
|
-
Uses the Screen Capture API to photograph **
|
|
375
|
+
Uses the Screen Capture API to photograph **the viewport's real composited
|
|
376
376
|
pixels**, then crops your rectangle out arithmetically. Nothing is
|
|
377
377
|
re-rendered, so it cannot mis-frame, and everything above renders correctly
|
|
378
378
|
because it was never re-drawn in the first place.
|
|
379
379
|
|
|
380
|
+
**The photograph is taken when you open capture mode, not when you finish
|
|
381
|
+
dragging.** That ordering is the whole design, and it decides three things at
|
|
382
|
+
once:
|
|
383
|
+
|
|
384
|
+
- **Nothing keeps recording.** The stream is acquired, one frame is taken, and
|
|
385
|
+
the track is stopped — about a third of a second — so the browser's sharing
|
|
386
|
+
indicator blinks and goes. Before 0.8 the stream was held for the entire
|
|
387
|
+
session so it would only prompt once, which on Safari (where the only option
|
|
388
|
+
is sharing a window or a whole screen) meant the indicator stayed lit and the
|
|
389
|
+
capture pipeline kept running behind every page. One prompt per capture is
|
|
390
|
+
the price of not recording you between them.
|
|
391
|
+
- **You crop what you can see.** The still is shown under the capture scrim
|
|
392
|
+
while you frame, so a page that animates cannot move between the moment you
|
|
393
|
+
point at something and the moment it is cropped — and a hover state, an open
|
|
394
|
+
dropdown or a tooltip survives being framed instead of being dismissed by the
|
|
395
|
+
mouse moving to start the drag.
|
|
396
|
+
- **Whether this shot is a photograph or a redraw is settled before you
|
|
397
|
+
start.** A still is either held or it is not. Previously the exact engine
|
|
398
|
+
reached for a frame at the end, from a stream that could quietly have died,
|
|
399
|
+
and fell through to `dom` without saying so — which is why the same click
|
|
400
|
+
could photograph one time and redraw the next.
|
|
401
|
+
|
|
402
|
+
Everything else:
|
|
403
|
+
|
|
380
404
|
- **Turn it on** from the capture hint bar ("Pixel-exact shots") or Settings.
|
|
381
|
-
|
|
382
|
-
|
|
405
|
+
Turning it on does not prompt; the first capture does.
|
|
406
|
+
- Nothing leaves the device — the frame is cropped locally and never uploaded.
|
|
383
407
|
- The QA overlay is hidden for the captured frame, so the scrim, the selection
|
|
384
408
|
outline and the annotation card never appear in the image.
|
|
385
|
-
- **Chromium
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
409
|
+
- **Chromium** shares this tab directly (`preferCurrentTab`), so the frame *is*
|
|
410
|
+
the viewport — measured at 0.0px error.
|
|
411
|
+
- **Safari and Firefox** have no tab capture, only a window or a screen. That
|
|
412
|
+
frame does contain the page, and Qapture finds it by *measuring*: it covers
|
|
413
|
+
the page with an opaque card carrying four known colours at four known
|
|
414
|
+
corners, photographs that, and solves for scale and origin from where the
|
|
415
|
+
colours landed. Toolbar height, pixel ratio and monitor layout all cancel
|
|
416
|
+
out. You see a dark flash for a fifth of a second. Two corners solve and the
|
|
417
|
+
other two verify — and a calibration that cannot be verified is **refused**,
|
|
418
|
+
falling back to `dom` rather than returning a confidently wrong image.
|
|
419
|
+
- The still belongs to the viewport it was taken in. Resize the window
|
|
420
|
+
mid-capture and the crop is refused for the same reason.
|
|
421
|
+
- Off-screen pixels do not exist in a photograph at any price, so a selection
|
|
422
|
+
that runs past the fold is trimmed to what was visible. The `dom` engine
|
|
423
|
+
re-renders and has no such limit.
|
|
392
424
|
|
|
393
425
|
---
|
|
394
426
|
|
|
@@ -828,7 +860,7 @@ The **capture hotkey** (default: `Shift+Alt+C`, i.e. `Option+Shift+C` on macOS)
|
|
|
828
860
|
|---|---|---|---|
|
|
829
861
|
| Capture, notes, export | ✅ | ✅ | ✅ |
|
|
830
862
|
| `dom` screenshots (default) | ✅ | ✅ | ✅ |
|
|
831
|
-
| Pixel-exact screenshots | ✅ opt-in |
|
|
863
|
+
| Pixel-exact screenshots | ✅ opt-in (shares this tab) | ✅ opt-in (shares a window, located by measurement) | — |
|
|
832
864
|
| Save to a folder, live | ✅ opt-in | — | — |
|
|
833
865
|
| Save to a folder, as a zip | ✅ | ✅ | ✅ |
|
|
834
866
|
| Storage meter | ✅ | ✅ (Safari reports coarse numbers) | ✅ |
|