| 163 | setupDeclarativeNetRequestRules(); |
| 164 | |
| 165 | function setupDeclarativeNetRequestRules() { |
| 166 | if (!chrome.declarativeNetRequest?.updateDynamicRules) { |
| 167 | return; |
| 168 | } |
| 169 | |
| 170 | chrome.declarativeNetRequest.updateDynamicRules({ |
| 171 | removeRuleIds: [MICROSOFT_TOKEN_DNR_RULE_ID], |
| 172 | addRules: [{ |
| 173 | id: MICROSOFT_TOKEN_DNR_RULE_ID, |
| 174 | priority: 1, |
| 175 | action: { |
| 176 | type: 'modifyHeaders', |
| 177 | requestHeaders: [ |
| 178 | { header: 'Origin', operation: 'remove' }, |
| 179 | ], |
| 180 | }, |
| 181 | condition: { |
| 182 | urlFilter: 'login.microsoftonline.com/*/oauth2/v2.0/token', |
| 183 | resourceTypes: ['xmlhttprequest'], |
| 184 | }, |
| 185 | }], |
| 186 | }).catch((error) => { |
| 187 | console.warn(LOG_PREFIX, 'Failed to setup declarativeNetRequest rules:', error?.message || error); |
| 188 | }); |
| 189 | } |
| 190 | |
| 191 | // ============================================================ |
| 192 | // 状态管理(chrome.storage.session + chrome.storage.local) |