K)PK !<ǸW,, api.jsPK !<..(chrome.manifestPK ! ensureCssLoaded(window); FormAutofillStatus.init(); ChromeUtils.registerWindowActor("FormAutofill", { parent: { esModuleURI: "resource://autofill/FormAutofillParent.sys.mjs", }, child: { esModuleURI: "resource://autofill/FormAutofillChild.sys.mjs", events: { focusin: {}, DOMFormBeforeSubmit: {}, }, }, allFrames: true, }); } onShutdown(isAppShutdown) { if (isAppShutdown) { return; } resProto.setSubstitution(RESOURCE_HOST, null); this.chromeHandle.destruct(); this.chromeHandle = null; if (this.autofillManifest) { Components.manager.removeBootstrappedManifestLocation( this.autofillManifest ); } ChromeUtils.unregisterWindowActor("FormAutofill"); AutoCompleteParent.removePopupStateListener(ensureCssLoaded); FormAutofillParent.removeMessageObserver(this); for (let win of Services.wm.getEnumerator("navigator:browser")) { let cachedStyleSheets = CACHED_STYLESHEETS.get(win); if (!cachedStyleSheets) { continue; } while (cachedStyleSheets.length !== 0) { cachedStyleSheets.pop().remove(); } } } }; PK !<..chrome.manifestlocale formautofill zh-CN zh-CN/locale/zh-CN/ PK ! { // By listening to but ignoring this event, any updates will // be delayed until the next browser restart. // Note that if we ever wanted to change this, we should make // sure we manually invalidate the startup cache using the // startupcache-invalidate notification. }); PK !