Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 24 additions & 24 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ function bundle_public_default() {
'js/src/common-decoder.js',
'js/src/common-cleantalk-modal.js',
'js/src/public-0*.js',
'js/src/ShadowrootProtection/ApbctShadowRootCallbacks.js',
'js/src/ShadowrootProtection/ApbctShadowRootConfig.js',
'js/src/ShadowrootProtection/ApbctShadowRootProtection.js',
'js/src/FetchProxyProtection/ApbctFetchProxyCallbacks.js',
'js/src/FetchProxyProtection/ApbctFetchProxyConfig.js',
'js/src/FetchProxyProtection/ApbctFetchProxyProtection.js',
'js/src/public-1*.js',
'js/src/public-3*.js',
])
Expand All @@ -86,9 +86,9 @@ function bundle_public_default_with_gathering() {
'js/src/common-decoder.js',
'js/src/common-cleantalk-modal.js',
'js/src/public-0*.js',
'js/src/ShadowrootProtection/ApbctShadowRootCallbacks.js',
'js/src/ShadowrootProtection/ApbctShadowRootConfig.js',
'js/src/ShadowrootProtection/ApbctShadowRootProtection.js',
'js/src/FetchProxyProtection/ApbctFetchProxyCallbacks.js',
'js/src/FetchProxyProtection/ApbctFetchProxyConfig.js',
'js/src/FetchProxyProtection/ApbctFetchProxyProtection.js',
'js/src/public-1*.js',
'js/src/public-2-gathering-data.js',
'js/src/public-3*.js',
Expand All @@ -105,9 +105,9 @@ function bundle_public_external_protection() {
'js/src/common-decoder.js',
'js/src/common-cleantalk-modal.js',
'js/src/public-0*.js',
'js/src/ShadowrootProtection/ApbctShadowRootCallbacks.js',
'js/src/ShadowrootProtection/ApbctShadowRootConfig.js',
'js/src/ShadowrootProtection/ApbctShadowRootProtection.js',
'js/src/FetchProxyProtection/ApbctFetchProxyCallbacks.js',
'js/src/FetchProxyProtection/ApbctFetchProxyConfig.js',
'js/src/FetchProxyProtection/ApbctFetchProxyProtection.js',
'js/src/public-1*.js',
'js/src/public-2-external-forms.js',
'!js/src/public-2-gathering-data.js',
Expand All @@ -125,9 +125,9 @@ function bundle_public_external_protection_with_gathering() {
'js/src/common-decoder.js',
'js/src/common-cleantalk-modal.js',
'js/src/public-0*.js',
'js/src/ShadowrootProtection/ApbctShadowRootCallbacks.js',
'js/src/ShadowrootProtection/ApbctShadowRootConfig.js',
'js/src/ShadowrootProtection/ApbctShadowRootProtection.js',
'js/src/FetchProxyProtection/ApbctFetchProxyCallbacks.js',
'js/src/FetchProxyProtection/ApbctFetchProxyConfig.js',
'js/src/FetchProxyProtection/ApbctFetchProxyProtection.js',
'js/src/public-1*.js',
'js/src/public-2-external-forms.js',
'js/src/public-2-gathering-data.js',
Expand All @@ -145,9 +145,9 @@ function bundle_public_internal_protection() {
'js/src/common-decoder.js',
'js/src/common-cleantalk-modal.js',
'js/src/public-0*.js',
'js/src/ShadowrootProtection/ApbctShadowRootCallbacks.js',
'js/src/ShadowrootProtection/ApbctShadowRootConfig.js',
'js/src/ShadowrootProtection/ApbctShadowRootProtection.js',
'js/src/FetchProxyProtection/ApbctFetchProxyCallbacks.js',
'js/src/FetchProxyProtection/ApbctFetchProxyConfig.js',
'js/src/FetchProxyProtection/ApbctFetchProxyProtection.js',
'js/src/public-1*.js',
'js/src/public-2-internal-forms.js',
'js/src/public-3*.js',
Expand All @@ -164,9 +164,9 @@ function bundle_public_internal_protection_with_gathering() {
'js/src/common-decoder.js',
'js/src/common-cleantalk-modal.js',
'js/src/public-0*.js',
'js/src/ShadowrootProtection/ApbctShadowRootCallbacks.js',
'js/src/ShadowrootProtection/ApbctShadowRootConfig.js',
'js/src/ShadowrootProtection/ApbctShadowRootProtection.js',
'js/src/FetchProxyProtection/ApbctFetchProxyCallbacks.js',
'js/src/FetchProxyProtection/ApbctFetchProxyConfig.js',
'js/src/FetchProxyProtection/ApbctFetchProxyProtection.js',
'js/src/public-1*.js',
'js/src/public-2-internal-forms.js',
'js/src/public-2-gathering-data.js',
Expand All @@ -184,9 +184,9 @@ function bundle_public_full_protection() {
'js/src/common-decoder.js',
'js/src/common-cleantalk-modal.js',
'js/src/public-0*.js',
'js/src/ShadowrootProtection/ApbctShadowRootCallbacks.js',
'js/src/ShadowrootProtection/ApbctShadowRootConfig.js',
'js/src/ShadowrootProtection/ApbctShadowRootProtection.js',
'js/src/FetchProxyProtection/ApbctFetchProxyCallbacks.js',
'js/src/FetchProxyProtection/ApbctFetchProxyConfig.js',
'js/src/FetchProxyProtection/ApbctFetchProxyProtection.js',
'js/src/public-1*.js',
'js/src/public-2*.js',
'!js/src/public-2-gathering-data.js',
Expand All @@ -204,9 +204,9 @@ function bundle_public_full_protection_with_gathering() {
'js/src/common-decoder.js',
'js/src/common-cleantalk-modal.js',
'js/src/public-0*.js',
'js/src/ShadowrootProtection/ApbctShadowRootCallbacks.js',
'js/src/ShadowrootProtection/ApbctShadowRootConfig.js',
'js/src/ShadowrootProtection/ApbctShadowRootProtection.js',
'js/src/FetchProxyProtection/ApbctFetchProxyCallbacks.js',
'js/src/FetchProxyProtection/ApbctFetchProxyConfig.js',
'js/src/FetchProxyProtection/ApbctFetchProxyProtection.js',
'js/src/public-1*.js',
'js/src/public-2*.js',
'js/src/public-3*.js',
Expand Down
10 changes: 5 additions & 5 deletions inc/cleantalk-integrations-by-hook.php
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,11 @@
'setting' => 'forms__check_external',
'ajax' => true
),
'OtterBlocksForm' => array(
'hook' => 'cleantalk_force_otterform_check',
'setting' => 'forms__contact_forms_test',
'ajax' => true
),
'BloomForms' => array(
'hook' => 'bloom_subscribe',
'setting' => 'forms__contact_forms_test',
Expand All @@ -360,11 +365,6 @@
'setting' => 'forms__contact_forms_test',
'ajax' => true
),
'OtterBlocksForm' => array(
'hook' => 'otter_form_anti_spam_validation',
'setting' => 'forms__contact_forms_test',
'ajax' => false
),
'TourMasterRegister' => array(
'hook' => 'wp_pre_insert_user_data',
'setting' => 'forms__registrations_test',
Expand Down
2 changes: 1 addition & 1 deletion inc/cleantalk-integrations-by-route.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
'rest_route' => '/wp-recipe-maker/v1/user-rating/',
'setting' => 'forms__contact_forms_test',
'rest' => true,
)
),
);

add_filter('rest_pre_dispatch', function ($result, $_, $request) use ($apbct_active_rest_integrations) {
Expand Down
2 changes: 1 addition & 1 deletion js/apbct-public-bundle.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/apbct-public-bundle_ext-protection.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/apbct-public-bundle_ext-protection_gathering.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/apbct-public-bundle_full-protection.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/apbct-public-bundle_full-protection_gathering.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/apbct-public-bundle_gathering.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/apbct-public-bundle_int-protection.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/apbct-public-bundle_int-protection_gathering.min.js

Large diffs are not rendered by default.

45 changes: 25 additions & 20 deletions js/prebuild/apbct-public-bundle.js
Original file line number Diff line number Diff line change
Expand Up @@ -1807,9 +1807,9 @@ if (!Object.prototype.hasOwn) {
}

/**
* Callbacks for ShadowRoot integrations
* Callbacks for FetchProxy integrations
*/
const ApbctShadowRootCallbacks = {
const ApbctFetchProxyCallbacks = {
/**
* Mailchimp block callback - clears localStorage by mcforms mask
* @param {object} result
Expand All @@ -1836,24 +1836,32 @@ const ApbctShadowRootCallbacks = {
// },
};
/**
* Config for ShadowRoot integrations
* Config for FetchProxy integrations
*/
const ApbctShadowRootConfig = {
const ApbctFetchProxyConfig = {
'mailchimp': {
selector: '.mcforms-wrapper',
urlPattern: 'mcf-integrations-mcmktg.mlchmpcompprduse2.iks2.a.intuit.com/gateway/receive',
externalForm: true,
action: 'cleantalk_force_mailchimp_shadowroot_check',
callbackAllow: false,
callbackBlock: ApbctShadowRootCallbacks.mailchimpBlock,
callbackBlock: ApbctFetchProxyCallbacks.mailchimpBlock,
},
'otterform': {
selector: '.otter-form__container',
urlPattern: 'otter/v1/form/frontend',
externalForm: false,
action: 'cleantalk_force_otterform_check',
callbackAllow: false,
callbackBlock: false,
},
};
/**
* Class for handling ShadowRoot forms
* Class for handling FetchProxy forms
*/
class ApbctShadowRootProtection {
class ApbctFetchProxyProtection {
constructor() {
this.config = ApbctShadowRootConfig;
this.config = ApbctFetchProxyConfig;
}

/**
Expand All @@ -1863,7 +1871,7 @@ class ApbctShadowRootProtection {
*/
findMatchingConfig(url) {
for (const [formKey, config] of Object.entries(this.config)) {
// Shadowroot can send both external and internal requests
// FetchProxy can send both external and internal requests
// If the form is external, then we check whether the setting is enabled.
if (
(!config.externalForm || +ctPublic.settings__forms__check_external) &&
Expand All @@ -1877,7 +1885,7 @@ class ApbctShadowRootProtection {
}

/**
* Check ShadowRoot form request via CleanTalk AJAX
* Check FetchProxy form request via CleanTalk AJAX
* @param {string} formKey
* @param {object} config
* @param {string} bodyText
Expand Down Expand Up @@ -1938,7 +1946,7 @@ class ApbctShadowRootProtection {
resolve(false);
},
onErrorCallback: (error) => {
console.log('APBCT ShadowRoot check error:', error);
console.log('APBCT FetchProxy check error:', error);
resolve(false);
},
});
Expand Down Expand Up @@ -1968,7 +1976,7 @@ class ApbctShadowRootProtection {
}

/**
* Process fetch request for ShadowRoot forms
* Process fetch request for FetchProxy forms
* @param {array} args - fetch arguments
* @return {Promise<boolean|null>} true = block, false = allow, null = not matched
*/
Expand Down Expand Up @@ -3021,15 +3029,13 @@ class ApbctHandler {
let fluentBookingApp = document.querySelectorAll('div[class^="fluent_booking_app"]').length > 0;
let bloomPopup = document.querySelectorAll('div[class^="et_bloom_form_container"]').length > 0;
let pafeFormsFormElementor = document.querySelectorAll('div[class*="pafe-form"]').length > 0;
let otterForm = document.querySelectorAll('div [class*="otter-form"]').length > 0;
ctPublic.force_alt_cookies = smartFormsSign ||
jetpackCommentsForm ||
userRegistrationProForm ||
etPbDiviSubscriptionForm ||
fluentBookingApp ||
pafeFormsFormElementor ||
bloomPopup ||
otterForm;
bloomPopup;

setTimeout(function() {
if (!ctPublic.force_alt_cookies) {
Expand Down Expand Up @@ -3183,7 +3189,7 @@ class ApbctHandler {
* @return {void}
*/
catchFetchRequest() {
const shadowRootProtection = new ApbctShadowRootProtection();
const fetchProxyProtection = new ApbctFetchProxyProtection();
let preventOriginalFetch = false;

/**
Expand Down Expand Up @@ -3241,9 +3247,9 @@ class ApbctHandler {
return defaultFetch.apply(window, args);
}

// === ShadowRoot forms ===
const shadowRootResult = await shadowRootProtection.processFetch(args);
if (shadowRootResult === true) {
// === FetchProxy forms ===
const fetchProxyResult = await fetchProxyProtection.processFetch(args);
if (fetchProxyResult === true) {
// Return a "blank" response that never completes
return new Promise(() => {});
}
Expand Down Expand Up @@ -3393,7 +3399,6 @@ class ApbctHandler {
if (settings.data.indexOf('twt_cc_signup') !== -1) {
sourceSign.found = 'twt_cc_signup';
}

if (settings.data.indexOf('action=mailpoet') !== -1) {
sourceSign.found = 'action=mailpoet';
sourceSign.attachVisibleFieldsData = true;
Expand Down
Loading
Loading