MCPcopy Create free account
hub / github.com/zxlie/FeHelper / start

Function start

apps/background/monkey.js:461–496  ·  view source on GitHub ↗
(params)

Source from the content-addressed store, hash-verified

459
460/* ================== 启动入口(按 runAt 触发) ================== */
461const start = (params) => {
462 try {
463 if (!params || !params.url || params.tabId == null) return true;
464 let runAt = params.runAt || 'document-end';
465 let frameId = typeof params.frameId === 'number' ? params.frameId : 0;
466
467 chrome.storage.local.get(PAGE_MONKEY_LOCAL_STORAGE_KEY, (resps) => {
468 let raw, storageMode = false;
469 if ((!resps || !resps[PAGE_MONKEY_LOCAL_STORAGE_KEY]) && typeof localStorage !== 'undefined') {
470 raw = localStorage.getItem(PAGE_MONKEY_LOCAL_STORAGE_KEY) || '[]';
471 storageMode = true;
472 } else {
473 raw = (resps && resps[PAGE_MONKEY_LOCAL_STORAGE_KEY]) || '[]';
474 }
475
476 let monkeys = [];
477 try { monkeys = JSON.parse(raw); } catch (e) {}
478 monkeys = monkeys.map(migrateMonkey);
479
480 monkeys
481 .filter(cm => !cm.mDisabled)
482 .filter(cm => (cm.mRunAt || 'document-end') === runAt)
483 .filter(cm => isMatch(cm, params.url))
484 .filter(cm => frameId === 0 || !!cm.mAllFrames)
485 .forEach(cm => injectMonkey(params.tabId, frameId, cm));
486
487 if (storageMode) {
488 let data = {}; data[PAGE_MONKEY_LOCAL_STORAGE_KEY] = raw;
489 chrome.storage.local.set(data);
490 }
491 });
492 } catch (e) {
493 console.log('monkey error', e);
494 }
495 return true;
496};
497
498/* ================== 日志收集 ================== */
499const log = (params) => {

Callers

nothing calls this directly

Calls 5

isMatchFunction · 0.85
injectMonkeyFunction · 0.85
setMethod · 0.80
getMethod · 0.45
parseMethod · 0.45

Tested by

no test coverage detected