APValues" in gSandbox) { gSandbox.processLDAPValues(ldapquery.getQueryResults(url)); } else { processLDAPValues(ldapquery.getQueryResults(url)); } } catch (e) { displayError("getLDAPAttributes", e); } } function getLDAPValue(str, key) { try { if (str == null || key == null) { return null; } var search_key = "\n" + key + "="; var start_pos = str.indexOf(search_key); if (start_pos == -1) { return null; } start_pos += search_key.length; var end_pos = str.indexOf("\n", start_pos); if (end_pos == -1) { end_pos = str.length; } return str.substring(start_pos, end_pos); } catch (e) { displayError("getLDAPValue", e); } return undefined; } function displayError(funcname, message) { try { var bundle = Services.strings.createBundle( "chrome://autoconfig/locale/autoconfig.properties" ); var title = bundle.GetStringFromName("autoConfigTitle"); var msg = bundle.formatStringFromName("autoConfigMsg", [funcname]); Services.prompt.alert(null, title, msg + " " + message); } catch (e) {} } function getenv(name) { try { return Services.env.get(name); } catch (e) { displayError("getEnvironment", e); } return undefined; } var APIs = { pref, defaultPref, lockPref, unlockPref, getPref, clearPref, setLDAPVersion, getLDAPAttributes, getLDAPValue, displayError, getenv, }; for (let [defineAs, func] of Object.entries(APIs)) { Cu.exportFunction(func, gSandbox, { defineAs }); } Object.defineProperty(Cu.waiveXrays(gSandbox), "gIsUTF8", { get: Cu.exportFunction(() => gIsUTF8, gSandbox), }); PK