* Declare constructor * * @param {String} _name Provider name * @param {boolean} _completeProvider Set URL Pattern as rule * @param {boolean} _forceRedirection Whether redirects should be enforced via a "tabs.update" * @param {boolean} _isActive
(_name, _completeProvider = false, _forceRedirection = false, _isActive = true)
| 343 | * @param {boolean} _isActive Is the provider active? |
| 344 | */ |
| 345 | function Provider(_name, _completeProvider = false, _forceRedirection = false, _isActive = true) { |
| 346 | let name = _name; |
| 347 | let urlPattern; |
| 348 | let enabled_rules = {}; |
| 349 | let disabled_rules = {}; |
| 350 | let enabled_exceptions = {}; |
| 351 | let disabled_exceptions = {}; |
| 352 | let canceling = _completeProvider; |
| 353 | let enabled_redirections = {}; |
| 354 | let disabled_redirections = {}; |
| 355 | let active = _isActive; |
| 356 | let enabled_rawRules = {}; |
| 357 | let disabled_rawRules = {}; |
| 358 | let enabled_referralMarketing = {}; |
| 359 | let disabled_referralMarketing = {}; |
| 360 | let methods = []; |
| 361 | |
| 362 | if (_completeProvider) { |
| 363 | enabled_rules[".*"] = true; |
| 364 | } |
| 365 | |
| 366 | /** |
| 367 | * Returns whether redirects should be enforced via a "tabs.update" |
| 368 | * @return {boolean} whether redirects should be enforced |
| 369 | */ |
| 370 | this.shouldForceRedirect = function () { |
| 371 | return _forceRedirection; |
| 372 | }; |
| 373 | |
| 374 | /** |
| 375 | * Returns the provider name. |
| 376 | * @return {String} |
| 377 | */ |
| 378 | this.getName = function () { |
| 379 | return name; |
| 380 | }; |
| 381 | |
| 382 | /** |
| 383 | * Add URL pattern. |
| 384 | * |
| 385 | * @require urlPatterns as RegExp |
| 386 | */ |
| 387 | this.setURLPattern = function (urlPatterns) { |
| 388 | urlPattern = new RegExp(urlPatterns, "i"); |
| 389 | }; |
| 390 | |
| 391 | /** |
| 392 | * Return if the Provider Request is canceled |
| 393 | * @return {Boolean} isCanceled |
| 394 | */ |
| 395 | this.isCaneling = function () { |
| 396 | return canceling; |
| 397 | }; |
| 398 | |
| 399 | /** |
| 400 | * Check the url is matching the ProviderURL. |
| 401 | * |
| 402 | * @return {boolean} ProviderURL as RegExp |