generated from kgod/ai-review-template
30 lines
933 B
JavaScript
30 lines
933 B
JavaScript
log("loading chrome.csi.js");
|
|
|
|
if (!window.chrome) {
|
|
// Use the exact property descriptor found in headful Chrome
|
|
// fetch it via `Object.getOwnPropertyDescriptor(window, 'chrome')`
|
|
Object.defineProperty(window, "chrome", {
|
|
writable: true,
|
|
enumerable: true,
|
|
configurable: false, // note!
|
|
value: {} // We'll extend that later
|
|
});
|
|
}
|
|
|
|
// Check if we're running headful and don't need to mock anything
|
|
// Check that the Navigation Timing API v1 is available, we need that
|
|
if (!("csi" in window.chrome) && window.performance?.timing) {
|
|
const { csi_timing } = window.performance;
|
|
|
|
log("loading chrome.csi.js");
|
|
window.chrome.csi = function() {
|
|
return {
|
|
onloadT: csi_timing?.domContentLoadedEventEnd,
|
|
startE: csi_timing?.navigationStart,
|
|
pageT: Date.now() - csi_timing?.navigationStart,
|
|
tran: 15 // transition? seems constant
|
|
};
|
|
};
|
|
utils.patchToString(window.chrome.csi);
|
|
}
|