• Robert Knight's avatar
    Handle multi-step chapter navigations in VitalSource books · 1895eec5
    Robert Knight authored
    Navigations between sections of a book in VitalSource happen in several
    steps:
    
     1. The iframe for the previous chapter is removed
     2. An iframe is created for the new chapter. The initial load of this
        iframe contains a "blank" page with the chapter content in an
        encoded/encrypted form as hidden text in the page.
     3. The chapter content data is submitted to the VS backend via a form
        POST request, which returns the decoded content
    
    Previously the Hypothesis client would sometimes detect the new iframe
    after step 2 and inject the client before step 3 had completed. As a
    result the client would be injected into the blank frame, then
    immediately unloaded, and not re-loaded into the "real" content frame.
    
    Make injection more reliable by:
    
     1. Checking whether the content frame is a "blank" frame or not before
        injecting the client.
     2. Listening for `load` events on the frame and re-injecting the client
        if the iframe is navigated
    1895eec5
Name
Last commit
Last update
.github Loading commit data...
bin Loading commit data...
dev-server Loading commit data...
docs Loading commit data...
embedding-examples Loading commit data...
images Loading commit data...
requirements Loading commit data...
scripts Loading commit data...
src Loading commit data...
.babelrc Loading commit data...
.dockerignore Loading commit data...
.eslintignore Loading commit data...
.eslintrc Loading commit data...
.gitignore Loading commit data...
.npmignore Loading commit data...
.npmrc Loading commit data...
.prettierignore Loading commit data...
.python-version Loading commit data...
CODE_OF_CONDUCT Loading commit data...
Dockerfile Loading commit data...
Jenkinsfile Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
codecov.yml Loading commit data...
gulpfile.mjs Loading commit data...
package.json Loading commit data...
pyproject.toml Loading commit data...
requirements-dev.in Loading commit data...
rollup-boot.config.mjs Loading commit data...
rollup-tests.config.mjs Loading commit data...
rollup.config.mjs Loading commit data...
tailwind.config.mjs Loading commit data...
tox.ini Loading commit data...
tsconfig.json Loading commit data...
yarn.lock Loading commit data...