{"push_id":1047090553,"size":6,"distinct_size":1,"ref":"refs/heads/master","head":"b7e9d0b070c55648617a6e94d94a1214553cab23","before":"0a60f36b30be2b043d01d6da8e13d493d9040cd8","commits":[{"sha":"d39be7d50d7f9e5b1805ef6fd2b7141eb888b243","author":{"email":"7d6396062c1c37a442c1ee8b1a738cb51dc63065@gmail.com","name":"Robert Knight"},"message":"Make '#annotations' fragment parsing more robust\n\nWhen parsing the '#annotations' fragment, ignore any extra content\noutside of the url-safe-base64 character set for annotation IDs.\n\nThis helps in cases where extra content has been appended to the URL\nfragment after '#annotations:<ID>', before the client loads. This\nhappens at one point during loading of Medium.com pages for example.","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/d39be7d50d7f9e5b1805ef6fd2b7141eb888b243"},{"sha":"4aefb70d51ce55a3cb89abffda9ed6d66af624a7","author":{"email":"7d6396062c1c37a442c1ee8b1a738cb51dc63065@gmail.com","name":"Robert Knight"},"message":"Add a mechansim to allow the browser extension to pass config info to the app\n\nProvide a way for the browser extension to pass config info to the app,\nby running a content script which injects a <meta> tag into the page\nwith this form:\n\n  <meta name=\"hypothesis-config\" content=\"<JSON data>\">\n\nThis configuration info is then merged with the result of the\nhypothesisConfig() function, with the hypothesisConfig() function taking\npriority.","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/4aefb70d51ce55a3cb89abffda9ed6d66af624a7"},{"sha":"e4f96697d379b3196c83096d2f8e63343bac6201","author":{"email":"7d6396062c1c37a442c1ee8b1a738cb51dc63065@gmail.com","name":"Robert Knight"},"message":"Make direct-link injection robust to URL fragment changes as the page loads.\n\nSites such as Medium and EBSCOHost modify the URL fragment as the page\nloads, causing direct-link annotation ID fragments to be lost by the\ntime the app's init code runs.\n\nWhen a tab's URL changes, extract the '#annotations' fragment and pass\nit to the application as configuration info when the app is injected.\nIf the URL fragment is removed or replaced by client-side JS as the page\nloads, the app will still get the original annotation ID that was\ncaptured by the extension prior to the page load completing.\n\nThe direct-linked ID is remembered until the sidebar is successfully\ninjected, at which point it is cleared so that it is not re-used on the\nnext navigation within the tab.","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/e4f96697d379b3196c83096d2f8e63343bac6201"},{"sha":"0a61c6a0b6ff3399f9e2ae8e9b7acf43a41dc736","author":{"email":"7d6396062c1c37a442c1ee8b1a738cb51dc63065@gmail.com","name":"Robert Knight"},"message":"Add notes about the format of annotation IDs","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/0a61c6a0b6ff3399f9e2ae8e9b7acf43a41dc736"},{"sha":"5bf8bf61a69e7b0f6dec31bc3bfcfad92d0cd865","author":{"email":"7d6396062c1c37a442c1ee8b1a738cb51dc63065@gmail.com","name":"Robert Knight"},"message":"Add tests for settings function's `settingsClass` parameter","distinct":false,"url":"https://api.github.com/repos/hypothesis/h/commits/5bf8bf61a69e7b0f6dec31bc3bfcfad92d0cd865"},{"sha":"b7e9d0b070c55648617a6e94d94a1214553cab23","author":{"email":"75ef9faee755c70589550b513ad881e5a603182c@whiteink.com","name":"Nick Stenning"},"message":"Merge pull request #3161 from hypothesis/t310-annotation-fragment-capture\n\nMake client injection robust to pages that replace the URL fragment as they load","distinct":true,"url":"https://api.github.com/repos/hypothesis/h/commits/b7e9d0b070c55648617a6e94d94a1214553cab23"}]}