Introduction date: Augustus 10, 2023
Introduction PR: https://github.com/mozilla/pdf.js/commit/402e3fed95888c1e1c5ec6cb6bf879421642a5fe (/cc @calixteman)
Type: intermittent (sometimes it works, indicating a possible timing/waiting issue)
OS: Linux
Logs: http://54.241.84.105:8877/dca264a56383f79/output.txt (only this test prevented the run from passing entirely)
Traceback:

```
Failures:
1) FreeText Editor Move several FreeTexts must move several annotations
  Message:
[31m    In chrome: Expected 187 to equal 186.[0m
  Stack:
        at <Jasmine>
        at /home/ubuntu/pdfjs/botio-files-pdfjs/private/dca264a56383f79/test/integration/freetext_editor_spec.js:2262:16
        at async Promise.all (index 1)
        at async UserContext.<anonymous> (/home/ubuntu/pdfjs/botio-files-pdfjs/private/dca264a56383f79/test/integration/freetext_editor_spec.js:2212:7)
  Message:
[31m    In chrome: Expected 192 to equal 191.[0m
  Stack:
        at <Jasmine>
        at /home/ubuntu/pdfjs/botio-files-pdfjs/private/dca264a56383f79/test/integration/freetext_editor_spec.js:2262:16
        at async Promise.all (index 1)
        at async UserContext.<anonymous> (/home/ubuntu/pdfjs/botio-files-pdfjs/private/dca264a56383f79/test/integration/freetext_editor_spec.js:2212:7)
  Message:
[31m    In chrome: Expected 196 to equal 197.[0m
  Stack:
        at <Jasmine>
        at /home/ubuntu/pdfjs/botio-files-pdfjs/private/dca264a56383f79/test/integration/freetext_editor_spec.js:2262:16
        at async Promise.all (index 1)
        at async UserContext.<anonymous> (/home/ubuntu/pdfjs/botio-files-pdfjs/private/dca264a56383f79/test/integration/freetext_editor_spec.js:2212:7)
  Message:
[31m    In chrome: Expected 201 to equal 202.[0m
  Stack:
        at <Jasmine>
        at /home/ubuntu/pdfjs/botio-files-pdfjs/private/dca264a56383f79/test/integration/freetext_editor_spec.js:2262:16
        at async Promise.all (index 1)
        at async UserContext.<anonymous> (/home/ubuntu/pdfjs/botio-files-pdfjs/private/dca264a56383f79/test/integration/freetext_editor_spec.js:2212:7)
  Message:
[31m    In chrome: Expected 217 to equal 216.[0m
  Stack:
        at <Jasmine>
        at /home/ubuntu/pdfjs/botio-files-pdfjs/private/dca264a56383f79/test/integration/freetext_editor_spec.js:2262:16
        at async Promise.all (index 1)
        at async UserContext.<anonymous> (/home/ubuntu/pdfjs/botio-files-pdfjs/private/dca264a56383f79/test/integration/freetext_editor_spec.js:2212:7)
  Message:
[31m    In chrome: Expected 226 to equal 227.[0m
  Stack:
        at <Jasmine>
        at /home/ubuntu/pdfjs/botio-files-pdfjs/private/dca264a56383f79/test/integration/freetext_editor_spec.js:2262:16
        at async Promise.all (index 1)
        at async UserContext.<anonymous> (/home/ubuntu/pdfjs/botio-files-pdfjs/private/dca264a56383f79/test/integration/freetext_editor_spec.js:2212:7)
  Message:
[31m    In chrome: Expected 231 to equal 232.[0m
  Stack:
        at <Jasmine>
        at /home/ubuntu/pdfjs/botio-files-pdfjs/private/dca264a56383f79/test/integration/freetext_editor_spec.js:2262:16
        at async Promise.all (index 1)
        at async UserContext.<anonymous> (/home/ubuntu/pdfjs/botio-files-pdfjs/private/dca264a56383f79/test/integration/freetext_editor_spec.js:2212:7)
```
const rect = await page.evaluate(id => {
            const parent = document.getElementById(id);
            let span = null;
            for (const child of parent.childNodes) {
              if (child.innerText === "000.[5]") {
                span = child;
                break;
              }
            }
            const { x, y, width, height } = span.getBoundingClientRect();
            return { x, y, width, height };
          }, parentId);
          await page.mouse.click(
            rect.x + rect.width + 5,
            rect.y + rect.height / 2
          );
          await page.waitForTimeout(10);
          await page.type(`${getEditorSelector(0)} .internal`, "Hello Wolrd");
          
          await page.keyboard.press("Escape");
          await page.waitForTimeout(10);
          await waitForStorageEntries(page, 1);
          const id = await getFirstSerialized(page, x => x.structTreeParentId);
          expect(id).withContext(`In ${browserName}`).toEqual(parentId);
        })
      );
    });
  });
});