/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict" ;
/**
* Bug 1713725 - Shim Rich Relevance personalized shopping
*
* Sites may expect the Rich Relevance personalized shopping API to load,
* breaking if it is blocked. This shim attempts to limit breakage on those
* site to just the personalized shopping aspects, by stubbing out the APIs.
*/
if (!window.r3_common) {
const jsonCallback = window.RR?.jsonCallback;
const defaultCallback = window.RR?.defaultCallback;
const getRandomString = (l = 66) => {
const v = crypto.getRandomValues(
new Uint8Array(l));
const s = Array.from(v, c => c.toString(16)).join(
"" );
return s.slice(0, l);
};
const call = (fn, ...args) => {
if (
typeof fn ===
"function" ) {
try {
fn(...args);
}
catch (e) {
console.error(e);
}
}
};
class r3_generic {
type =
"GENERIC" ;
createScript() {}
destroy() {}
}
class r3_addtocart
extends r3_generic {
type =
"ADDTOCART" ;
addItemIdToCart() {}
}
class r3_addtoregistry
extends r3_generic {
type =
"ADDTOREGISTRY" ;
addItemIdCentsQuantity() {}
}
class r3_brand
extends r3_generic {
type =
"BRAND" ;
}
class r3_cart
extends r3_generic {
type =
"CART" ;
addItemId() {}
addItemIdCentsQuantity() {}
addItemIdDollarsAndCentsQuantity() {}
addItemIdPriceQuantity() {}
}
class r3_category
extends r3_generic {
type =
"CATEGORY" ;
addItemId() {}
setId() {}
setName() {}
setParentId() {}
setTopName() {}
}
class r3_common
extends r3_generic {
type =
"COMMON" ;
baseUrl =
"https://recs.richrelevance.com/rrserver/ ";
devFlags = {};
jsFileName =
"p13n_generated.js" ;
RICHSORT = {
paginate() {},
filterPrice() {},
filterAttribute() {},
};
addCategoryHintId() {}
addClickthruParams() {}
addContext() {}
addFilter() {}
addFilterBrand() {}
addFilterCategory() {}
addItemId() {}
addItemIdToCart() {}
addPlacementType() {}
addRefinement() {}
addSearchTerm() {}
addSegment() {}
blockItemId() {}
enableCfrad() {}
enableRad() {}
forceDebugMode() {}
forceDevMode() {}
forceDisplayMode() {}
forceLocale() {}
initFromParams() {}
setApiKey() {}
setBaseUrl() {}
setCartValue() {}
setChannel() {}
setClickthruServer() {}
setCurrency() {}
setDeviceId() {}
setFilterBrandsIncludeMatchingElements() {}
setForcedTreatment() {}
setImageServer() {}
setLanguage() {}
setMVTForcedTreatment() {}
setNoCookieMode() {}
setPageBrand() {}
setPrivateMode() {}
setRefinementFallback() {}
setRegionId() {}
setRegistryId() {}
setRegistryType() {}
setSessionId() {}
setUserId() {}
useDummyData() {}
}
class r3_error
extends r3_generic {
type =
"ERROR" ;
}
class r3_home
extends r3_generic {
type =
"HOME" ;
}
class r3_item
extends r3_generic {
type =
"ITEM" ;
addAttribute() {}
addCategory() {}
addCategoryId() {}
setBrand() {}
setEndDate() {}
setId() {}
setImageId() {}
setLinkId() {}
setName() {}
setPrice() {}
setRating() {}
setRecommendable() {}
setReleaseDate() {}
setSalePrice() {}
}
class r3_personal
extends r3_generic {
type =
"PERSONAL" ;
}
class r3_purchased
extends r3_generic {
type =
"PURCHASED" ;
addItemId() {}
addItemIdCentsQuantity() {}
addItemIdDollarsAndCentsQuantity() {}
addItemIdPriceQuantity() {}
setOrderNumber() {}
setPromotionCode() {}
setShippingCost() {}
setTaxes() {}
setTotalPrice() {}
}
class r3_search
extends r3_generic {
type =
"SEARCH" ;
addItemId() {}
setTerms() {}
}
class r3_wishlist
extends r3_generic {
type =
"WISHLIST" ;
addItemId() {}
}
const RR = {
add() {},
addItemId() {},
addItemIdCentsQuantity() {},
addItemIdDollarsAndCentsQuantity() {},
addItemIdPriceQuantity() {},
addItemIdToCart() {},
addObject() {},
addSearchTerm() {},
c() {},
charset:
"UTF-8" ,
checkParamCookieValue: () =>
null ,
d: document,
data: {
JSON: {
placements: [],
},
},
debugWindow() {},
set defaultCallback(fn) {
call(fn);
},
fixName: n => n,
genericAddItemPriceQuantity() {},
get() {},
getDomElement(a) {
return typeof a ===
"string" && a ? document.querySelector(a) :
null ;
},
id() {},
insert() {},
insertDynamicPlacement() {},
isArray: a => Array.isArray(a),
js() {},
set jsonCallback(fn) {
call(fn, {});
},
l: document.location.href,
lc() {},
noCookieMode:
false ,
ol() {},
onloadCalled:
true ,
pq() {},
rcsCookieDefaultDuration: 364,
registerPageType() {},
registeredPageTypes: {
ADDTOCART: r3_addtocart,
ADDTOREGISTRY: r3_addtoregistry,
BRAND: r3_brand,
CART: r3_cart,
CATEGORY: r3_category,
COMMON: r3_common,
ERROR: r3_error,
GENERIC: r3_generic,
HOME: r3_home,
ITEM: r3_item,
PERSONAL: r3_personal,
PURCHASED: r3_purchased,
SEARCH: r3_search,
WISHLIST: r3_wishlist,
},
renderDynamicPlacements() {},
set() {},
setCharset() {},
U:
"undefined" ,
unregisterAllPageType() {},
unregisterPageType() {},
};
Object.assign(window, {
r3() {},
r3_addtocart,
r3_addtoregistry,
r3_brand,
r3_cart,
r3_category,
r3_common,
r3_error,
r3_generic,
r3_home,
r3_item,
r3_personal,
r3_placement() {},
r3_purchased,
r3_search,
r3_wishlist,
RR,
rr_addLoadEvent() {},
rr_annotations_array: [undefined],
rr_call_after_flush() {},
rr_create_script() {},
rr_dynamic: {
placements: [],
},
rr_flush() {},
rr_flush_onload() {},
rr_insert_placement() {},
rr_onload_called:
true ,
rr_placement_place_holders: [],
rr_placements: [],
rr_recs: {
placements: [],
},
rr_remote_data: getRandomString(),
rr_v:
"1.2.6.20210212" ,
});
call(jsonCallback);
call(defaultCallback, {});
}
Messung V0.5 C=89 H=98 G=93
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet)
¤
*© Formatika GbR, Deutschland