| Index: ext/background.js |
| diff --git a/ext/background.js b/ext/background.js |
| index e0242e545396f8e48fdbbfea961b8cf42e14a8b9..f9ad0b655064323285e0dd14b28444f724feb6cb 100644 |
| --- a/ext/background.js |
| +++ b/ext/background.js |
| @@ -559,10 +559,36 @@ |
| if (!frames) |
| return null; |
| - let frame = frames.get(rawSender.frameId); |
| + let frame; |
| + // In Microsoft Edge (version 42.17134.1.0) we don't have frameId |
| + // so we fall back to iterating over the tab's frames |
| + // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11716733 |
| + if (rawSender.frameId != undefined) |
| + frame = frames.get(rawSender.frameId); |
| + else |
| + { |
| + for (let [key, value] of frames) |
|
kzar
2018/07/17 16:54:35
Nit: Would be nice to use some more descriptive va
geo
2018/07/18 16:08:11
Done.
|
| + { |
| + let valueHref = value.url.href.replace(/#.*/, ""); |
|
kzar
2018/07/17 16:54:35
Nit: I'd consider using `String.prototype.substrin
geo
2018/07/18 16:08:10
I'm not sure either, but for `String.prototype.sub
|
| + |
| + let rawSenderHref = rawSender.url ? |
|
kzar
2018/07/17 16:54:35
Can't we do this outside of the for loop?
geo
2018/07/18 16:08:10
Done.
|
| + rawSender.url.replace(/#.*/, "") : |
| + ""; |
| + |
| + // if we have two frames with the same URL |
|
kzar
2018/07/17 16:54:35
Nit: This is a good comment, but would you mind ca
geo
2018/07/18 16:08:10
Done.
|
| + // we are going to pick the first one we find |
| + // as we have no other way of distinguishing between them |
| + if (valueHref == rawSenderHref) |
| + { |
| + frame = value; |
| + this.id = key; |
| + break; |
| + } |
| + } |
| + } |
| + |
| if (frame) |
| return frame.parent || null; |
| - |
| return frames.get(0) || null; |
| } |
| }; |