package web import ( . "openreplay/backend/pkg/messages" ) /* Handler name: NetworkIssue Input events: ResourceTiming, Fetch Output event: IssueEvent */ type NetworkIssueDetector struct{} func (f *NetworkIssueDetector) Build() Message { return nil } func (f *NetworkIssueDetector) Handle(message Message, messageID uint64, timestamp uint64) Message { switch msg := message.(type) { // case *ResourceTiming: // success := msg.Duration != 0 // The only available way here // if !success { // issueType := "missing_resource" // if msg.Initiator == "fetch" || msg.Initiator == "xmlhttprequest" { // issueType = "bad_request" // } // return &IssueEvent{ // Type: issueType, // MessageID: messageID, // Timestamp: msg.Timestamp, // ContextString: msg.URL, // } // } case *Fetch: if msg.Status >= 400 { return &IssueEvent{ Type: "bad_request", MessageID: messageID, Timestamp: msg.Timestamp, ContextString: msg.URL, } } } return nil }