Merge pull request #531 from openreplay/assets_fix

Assets fix
This commit is contained in:
Alexander 2022-06-08 15:08:25 +02:00 committed by GitHub
commit e749ed1823
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 22 additions and 11 deletions

View file

@ -46,7 +46,7 @@ func main() {
func(sessionID uint64, message messages.Message, e *types.Meta) {
switch msg := message.(type) {
case *messages.AssetCache:
cacher.CacheURL(sessionID, msg.URL) // disabled cache checks
cacher.CacheURL(sessionID, msg.URL)
totalAssets.Add(context.Background(), 1)
case *messages.ErrorEvent:
if msg.Source != "js_exception" {

View file

@ -78,7 +78,7 @@ func main() {
// If message timestamp is empty, use at least ts of session start
ts := message.Meta().Timestamp
if ts == 0 {
//log.Printf("zero ts; sessID: %d, msg: %+v", sessionID, message)
log.Printf("zero ts; sessID: %d, msg: %+v", sessionID, message)
} else {
// Log ts of last processed message
counter.Update(sessionID, time.UnixMilli(ts))

View file

@ -56,9 +56,9 @@ func (c *cacher) cacheURL(requestURL string, sessionID uint64, depth byte, conte
return
}
c.timeoutMap.add(cachePath)
//if c.s3.Exists(cachePath) {
// return
//}
if c.s3.Exists(cachePath) {
return
}
req, _ := http.NewRequest("GET", requestURL, nil)
req.Header.Set("Cookie", "ABv=3;") // Hack for rueducommerce

View file

@ -26,30 +26,37 @@ func (e *AssetsCache) ParseAssets(sessID uint64, msg messages.Message) messages.
switch m := msg.(type) {
case *messages.SetNodeAttributeURLBased:
if m.Name == "src" || m.Name == "href" {
log.Printf("accet for session: %d", sessID)
return &messages.SetNodeAttribute{
newMsg := &messages.SetNodeAttribute{
ID: m.ID,
Name: m.Name,
Value: e.handleURL(sessID, m.BaseURL, m.Value),
}
newMsg.SetMeta(msg.Meta())
return newMsg
} else if m.Name == "style" {
return &messages.SetNodeAttribute{
newMsg := &messages.SetNodeAttribute{
ID: m.ID,
Name: m.Name,
Value: e.handleCSS(sessID, m.BaseURL, m.Value),
}
newMsg.SetMeta(msg.Meta())
return newMsg
}
case *messages.SetCSSDataURLBased:
return &messages.SetCSSData{
newMsg := &messages.SetCSSData{
ID: m.ID,
Data: e.handleCSS(sessID, m.BaseURL, m.Data),
}
newMsg.SetMeta(msg.Meta())
return newMsg
case *messages.CSSInsertRuleURLBased:
return &messages.CSSInsertRule{
newMsg := &messages.CSSInsertRule{
ID: m.ID,
Index: m.Index,
Rule: e.handleCSS(sessID, m.BaseURL, m.Rule),
}
newMsg.SetMeta(msg.Meta())
return newMsg
}
return msg
}

View file

@ -9,6 +9,11 @@ func (m *message) Meta() *message {
return m
}
func (m *message) SetMeta(origin *message) {
m.Timestamp = origin.Timestamp
m.Index = origin.Index
}
type Message interface {
Encode() []byte
TypeID() int

View file

@ -93,6 +93,5 @@ func (r *Rewriter) RewriteURL(sessionID uint64, baseURL string, relativeURL stri
Host: r.assetsURL.Host,
Scheme: r.assetsURL.Scheme,
}
return u.String()
}