fix(tracker): iframe network tracking

This commit is contained in:
nick-delirium 2023-03-09 16:45:33 +01:00 committed by Delirium
parent 5ddb0bbad4
commit bd935b2f97
4 changed files with 20 additions and 15 deletions

View file

@ -24,18 +24,27 @@ function error(...args) {
}
let groupTm = {};
let groupedLogs = {};
function group(groupName, ...args) {
if (!window.env.PRODUCTION || options.verbose) {
if (!groupTm[groupName]) {
groupTm[groupName] = setTimeout(() => {
console.groupEnd()
delete groupTm[groupName]
}, 500);
console.groupCollapsed(groupName);
if (groupTm[groupName]) {
clearTimeout(groupTm[groupName])
groupTm[groupName] = null
} else {
groupedLogs[groupName] = []
}
console.log(...args);
groupedLogs[groupName].push(args);
groupTm[groupName] = setTimeout(() => {
console.groupCollapsed(groupName)
groupedLogs[groupName].forEach((log) => {
console.log(...log)
})
console.groupEnd()
delete groupTm[groupName]
delete groupedLogs[groupName]
}, 500)
options.exceptionsLogs.push(args)
}
}

View file

@ -3,7 +3,7 @@ import type { RawMessage } from './raw.gen';
import { MType } from './raw.gen';
import RawMessageReader from './RawMessageReader.gen';
import resolveURL from './urlBasedResolver'
import Logger from 'App/logger'
// TODO: composition instead of inheritance
// needSkipMessage() and next() methods here use buf and p protected properties,
@ -59,10 +59,8 @@ export default class MFileReader extends RawMessageReader {
if (!skippedMessage) {
return null
}
this.logger.group("Openreplay: Skipping messages ", skippedMessage)
Logger.group("Openreplay: Skipping messages ", skippedMessage)
}
this.pLastMessageID = this.p
const rMsg = this.readRawMessage()

View file

@ -1,13 +1,10 @@
import Observer from './observer.js'
import { CreateIFrameDocument } from '../messages.gen.js'
import Network from '../../modules/network.js'
export default class IFrameObserver extends Observer {
observe(iframe: HTMLIFrameElement) {
const doc = iframe.contentDocument
const iWindow = iframe.contentWindow
const hostID = this.app.nodes.getID(iframe)
console.log(iframe)
if (!doc || hostID === undefined) {
return
} //log TODO common app.logger
@ -19,7 +16,6 @@ export default class IFrameObserver extends Observer {
return
}
this.app.send(CreateIFrameDocument(hostID, docID))
Network(this.app, this.app.networkOptions, iWindow!)
})
}
}

View file

@ -1,5 +1,6 @@
import Observer from './observer.js'
import { isElementNode, hasTag } from '../guards.js'
import Network from '../../modules/network.js'
import IFrameObserver from './iframe_observer.js'
import ShadowRootObserver from './shadow_root_observer.js'
@ -92,6 +93,7 @@ export default class TopObserver extends Observer {
//TODO: more explicit logic
) {
this.contextsSet.add(currentWin)
Network(this.app, this.app.networkOptions, currentWin)
//@ts-ignore https://github.com/microsoft/TypeScript/issues/41684
this.contextCallbacks.forEach((cb) => cb(currentWin))
}