@@ -2010,7 +2010,7 @@ Wombat.prototype.performAttributeRewrite = function(
2010
2010
*/
2011
2011
Wombat . prototype . rewriteAttr = function ( elem , name , absUrlOnly ) {
2012
2012
var changed = false ;
2013
- if ( ! elem || ! elem . getAttribute || elem . _no_rewrite || elem [ '_' + name ] ) {
2013
+ if ( ! elem || ! elem . getAttribute || elem . _no_rewrite || elem [ '_' + name ] || ( elem . tagName && elem . tagName . indexOf ( '-' ) > 0 ) ) {
2014
2014
return changed ;
2015
2015
}
2016
2016
@@ -3007,6 +3007,26 @@ Wombat.prototype.overridePropExtract = function(proto, prop) {
3007
3007
}
3008
3008
} ;
3009
3009
3010
+ /**
3011
+ * Applies an attribute setter override to de-proxy the prop
3012
+ * @param {Object } proto
3013
+ * @param {string } prop
3014
+ * @param {* } [cond]
3015
+ */
3016
+ Wombat . prototype . overrideDeProxyPropAssign = function ( proto , prop ) {
3017
+ var orig_setter = this . getOrigSetter ( proto , prop ) ;
3018
+ var orig_getter = this . getOrigGetter ( proto , prop ) ;
3019
+ var wombat = this ;
3020
+ if ( orig_setter ) {
3021
+ var new_setter = function ( value ) {
3022
+ return orig_setter . call ( wombat . proxyToObj ( this ) , wombat . proxyToObj ( value ) ) ;
3023
+ } ;
3024
+ this . defProp ( proto , prop , new_setter , orig_getter ) ;
3025
+ }
3026
+ } ;
3027
+
3028
+
3029
+
3010
3030
3011
3031
/**
3012
3032
* Overrides referrer -- if top-replay frame, referrer should be "", otherwise extractOriginURL
@@ -5954,6 +5974,9 @@ Wombat.prototype.initMiscNavigatorOverrides = function() {
5954
5974
if ( this . $wbwindow . navigator . mediaDevices ) {
5955
5975
this . $wbwindow . navigator . mediaDevices . setCaptureHandleConfig = function ( ) { } ;
5956
5976
}
5977
+ if ( this . $wbwindow . navigator . getInstalledRelatedApps ) {
5978
+ this . $wbwindow . navigator . getInstalledRelatedApps = function ( ) { return Promise . resolve ( [ ] ) ; } ;
5979
+ }
5957
5980
} ;
5958
5981
5959
5982
@@ -6280,7 +6303,7 @@ Wombat.prototype.initWindowObjProxy = function($wbwindow) {
6280
6303
} ,
6281
6304
defineProperty : function ( target , prop , desc ) {
6282
6305
var ndesc = desc || { } ;
6283
- if ( ndesc . value === undefined && ndesc . get === undefined ) {
6306
+ if ( ! ndesc . hasOwnProperty ( ' value' ) && ! ndesc . hasOwnProperty ( ' get' ) && ! ndesc . hasOwnProperty ( 'set' ) ) {
6284
6307
ndesc . value = $wbwindow [ prop ] ;
6285
6308
}
6286
6309
Reflect . defineProperty ( $wbwindow , prop , ndesc ) ;
@@ -6777,6 +6800,8 @@ Wombat.prototype.wombatInit = function() {
6777
6800
'dispatchEvent'
6778
6801
) ;
6779
6802
6803
+ this . overrideDeProxyPropAssign ( this . $wbwindow . TreeWalker . prototype , 'currentNode' ) ;
6804
+
6780
6805
this . initTimeoutIntervalOverrides ( ) ;
6781
6806
6782
6807
this . overrideFramesAccess ( this . $wbwindow ) ;
0 commit comments