in Chrome goto Link
Find the for for Profile Path
on OSX the parent folder is ~/Library/Application Support/Google/Chrome/
Find in other profile folders the Bookmarks
or Bookmarks.stored
copy of your stored bookmarks file
addEventListener('fetch', event => { | |
event.respondWith(fetchAndApply(event.request)) | |
}) | |
async function fetchAndApply(request) { | |
let response = await fetch(request) | |
let referer = request.headers.get('Referer') | |
let contentType = response.headers.get('Content-Type') || '' | |
if (referer && contentType.startsWith('image/')) { |
var header = $('.grid-header'); | |
var itemName = ""; | |
var itemId = undefined; | |
var type = undefined; | |
if ($('.work-item-form-id').length == 1) { | |
itemId = $('.work-item-form-id').text(); | |
itemName = $('.work-item-form-title input').val(); | |
type = $('.work-item-type-icon-host').find('i').attr('aria-label'); | |
} else { |
<Query Kind="Program"> | |
<NuGetReference Prerelease="true">Microsoft.Diagnostics.Runtime</NuGetReference> | |
<Namespace>Microsoft.Diagnostics.Runtime</Namespace> | |
<Namespace>System</Namespace> | |
<Namespace>System.IO</Namespace> | |
<Namespace>System.Linq</Namespace> | |
<Namespace>System.Text</Namespace> | |
<Namespace>Microsoft.Diagnostics.Runtime.Utilities</Namespace> | |
</Query> |
<Query Kind="Program"> | |
<NuGetReference Prerelease="true">Microsoft.Diagnostics.Runtime</NuGetReference> | |
<Namespace>Microsoft.Diagnostics.Runtime</Namespace> | |
<Namespace>System</Namespace> | |
<Namespace>System.IO</Namespace> | |
<Namespace>System.Linq</Namespace> | |
<Namespace>System.Text</Namespace> | |
<Namespace>Microsoft.Diagnostics.Runtime.Utilities</Namespace> | |
</Query> |
let urlParams = new URLSearchParams(location.search); | |
let fromUrl = /\/browse\/(.*)/.exec(location.pathname); | |
let jiraId; | |
if (urlParams.has('selectedIssue')) { | |
jiraId = urlParams.get('selectedIssue'); | |
} else if (fromUrl) { | |
jiraId = fromUrl[1]; | |
} |
Regex to filter out most meaningless requests in the Network tab: | |
/(?<!\.(css|js|gif|png|ico|ttf|woff2?))$/ |
function retry(isDone, next) { | |
var current_trial = 0, max_retry = 50, interval = 10, is_timeout = false; | |
var id = window.setInterval( | |
function() { | |
if (isDone()) { | |
window.clearInterval(id); | |
next(is_timeout); | |
} | |
if (current_trial++ > max_retry) { | |
window.clearInterval(id); |
function retry(isDone, next) { | |
var current_trial = 0, max_retry = 50, interval = 10, is_timeout = false; | |
var id = window.setInterval( | |
function() { | |
if (isDone()) { | |
window.clearInterval(id); | |
next(is_timeout); | |
} | |
if (current_trial++ > max_retry) { | |
window.clearInterval(id); |
async function async1() { | |
console.log('async 1') | |
await async2() | |
await async3() | |
console.log('async 1-1') | |
} | |
async function async2() { | |
console.log('async 2') | |
} |