From deb6003273856b36f142ab9ed1861577aa57bccb Mon Sep 17 00:00:00 2001 From: Gaia Pushbot Date: Mon, 5 Aug 2013 17:00:23 -0700 Subject: [PATCH 01/31] Bumping gaia.json for 2 gaia-central revision(s) ======== https://hg.mozilla.org/integration/gaia-central/rev/116a51ab4e9e Author: Jonathan Griffin Desc: Merge pull request #11361 from jonallengriffin/bump Bug 900630 - Update gaia-ui-tests.json to pull in latest Marionette, a=t... ======== https://hg.mozilla.org/integration/gaia-central/rev/cbacdbb401aa Author: Jonathan Griffin Desc: Bug 900630 - Update gaia-ui-tests.json to pull in latest Marionette, a=test-only --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 5cf23628cdc..9040c84e252 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,4 +1,4 @@ { - "revision": "bfebfb81d21bd6a4fb30f11044e6531e8bfaea3a", + "revision": "116a51ab4e9ea03351dcb7fbadbcabd81c8698d5", "repo_path": "/integration/gaia-central" } From e891a58c8f4178a027c862dd0762b8e35c3cd25b Mon Sep 17 00:00:00 2001 From: Gaia Pushbot Date: Mon, 5 Aug 2013 18:40:23 -0700 Subject: [PATCH 02/31] Bumping gaia.json for 2 gaia-central revision(s) ======== https://hg.mozilla.org/integration/gaia-central/rev/158ce534cf63 Author: George Desc: Merge pull request #11311 from cctuan/899526 Bug 899526 - [Gallery][HD] Thumbnails are blurred ======== https://hg.mozilla.org/integration/gaia-central/rev/69013cd1428e Author: cctuan Desc: Bug 899526 - [Gallery][HD] Thumbnails are blurred --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 9040c84e252..af374afe51a 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,4 +1,4 @@ { - "revision": "116a51ab4e9ea03351dcb7fbadbcabd81c8698d5", + "revision": "158ce534cf639cc6593ce0632e97f43bf33e4a15", "repo_path": "/integration/gaia-central" } From 2aee193c6443223af0d7d267b4a6ae359b08feb5 Mon Sep 17 00:00:00 2001 From: Yoshi Huang Date: Fri, 2 Aug 2013 15:09:06 +0800 Subject: [PATCH 03/31] Bug 900321 - Part 1: Add more card states in IDL . r=vicamo. sr=sicking --- dom/icc/interfaces/nsIDOMIccManager.idl | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/dom/icc/interfaces/nsIDOMIccManager.idl b/dom/icc/interfaces/nsIDOMIccManager.idl index 05cd3549236..0d5fede4d0b 100644 --- a/dom/icc/interfaces/nsIDOMIccManager.idl +++ b/dom/icc/interfaces/nsIDOMIccManager.idl @@ -10,7 +10,7 @@ interface nsIDOMDOMRequest; interface nsIDOMEventListener; interface nsIDOMMozIccInfo; -[scriptable, builtinclass, uuid(d362bf60-c910-11e2-8b8b-0800200c9a66)] +[scriptable, builtinclass, uuid(904b92cb-dad3-416f-88cf-0291012cf448)] interface nsIDOMMozIccManager : nsIDOMEventTarget { /** @@ -295,7 +295,9 @@ interface nsIDOMMozIccManager : nsIDOMEventTarget * Indicates the state of the device's ICC card. * * Possible values: null, 'unknown', 'absent', 'pinRequired', 'pukRequired', - * 'networkLocked', 'corporateLocked', 'serviceProviderLocked', 'ready'. + * 'personalizationInProgress', 'networkLocked', 'corporateLocked', + * 'serviceProviderLocked', 'networkPukRequired', 'corporatePukRequired', + * 'serviceProviderPukRequired', 'ready'. */ readonly attribute DOMString cardState; @@ -360,6 +362,23 @@ interface nsIDOMMozIccManager : nsIDOMEventTarget * unlockCardLock({lockType: "spck", * pin: "..."}); * + * (6) Network PUK depersonalization. Unlocking the network control key (NCK). + * + * unlockCardLock({lockType: "nckPuk", + * puk: "..."}); + * + * (7) Corporate PUK depersonalization. Unlocking the corporate control key + * (CCK). + * + * unlockCardLock({lockType: "cckPuk", + * puk: "..."}); + * + * (8) Service Provider PUK depersonalization. Unlocking the service provider + * control key (SPCK). + * + * unlockCardLock({lockType: "spckPuk", + * puk: "..."}); + * * @return a nsIDOMDOMRequest. * The request's result will be an object containing * information about the unlock operation. From 71802285ef63e506c0c50b1fb5f92c98535b7c95 Mon Sep 17 00:00:00 2001 From: Yoshi Huang Date: Mon, 5 Aug 2013 15:23:10 +0800 Subject: [PATCH 04/31] Bug 900321 - Part 2: Update RIL and test case. r=vicamo --- dom/system/gonk/ril_consts.js | 46 +++++++--- dom/system/gonk/ril_worker.js | 30 ++++--- dom/system/gonk/tests/test_ril_worker_icc.js | 89 ++++++++++---------- 3 files changed, 93 insertions(+), 72 deletions(-) diff --git a/dom/system/gonk/ril_consts.js b/dom/system/gonk/ril_consts.js index a10952480cb..5fb24432bea 100644 --- a/dom/system/gonk/ril_consts.js +++ b/dom/system/gonk/ril_consts.js @@ -2331,26 +2331,46 @@ this.GECKO_RADIOSTATE_UNAVAILABLE = null; this.GECKO_RADIOSTATE_OFF = "off"; this.GECKO_RADIOSTATE_READY = "ready"; -this.GECKO_CARDSTATE_NOT_READY = null; -this.GECKO_CARDSTATE_UNKNOWN = "unknown"; -this.GECKO_CARDSTATE_ABSENT = "absent"; -this.GECKO_CARDSTATE_PIN_REQUIRED = "pinRequired"; -this.GECKO_CARDSTATE_PUK_REQUIRED = "pukRequired"; -this.GECKO_CARDSTATE_NETWORK_LOCKED = "networkLocked"; -this.GECKO_CARDSTATE_CORPORATE_LOCKED = "corporateLocked"; -this.GECKO_CARDSTATE_SERVICE_PROVIDER_LOCKED = "serviceProviderLocked"; -this.GECKO_CARDSTATE_READY = "ready"; +this.GECKO_CARDSTATE_NOT_READY = null; +this.GECKO_CARDSTATE_UNKNOWN = "unknown"; +this.GECKO_CARDSTATE_ABSENT = "absent"; +this.GECKO_CARDSTATE_PIN_REQUIRED = "pinRequired"; +this.GECKO_CARDSTATE_PUK_REQUIRED = "pukRequired"; +this.GECKO_CARDSTATE_PERSONALIZATION_IN_PROGRESS = "personalizationInProgress"; +this.GECKO_CARDSTATE_NETWORK_LOCKED = "networkLocked"; +this.GECKO_CARDSTATE_NETWORK_SUBSET_LOCKED = "networkSubsetLocked"; +this.GECKO_CARDSTATE_CORPORATE_LOCKED = "corporateLocked"; +this.GECKO_CARDSTATE_SERVICE_PROVIDER_LOCKED = "serviceProviderLocked"; +this.GECKO_CARDSTATE_SIM_LOCKED = "simPersonalizationLock"; +this.GECKO_CARDSTATE_NETWORK_PUK_REQUIRED = "networkPukRequired"; +this.GECKO_CARDSTATE_NETWORK_SUBSET_PUK_REQUIRED = "networkSubsetPukRequired"; +this.GECKO_CARDSTATE_CORPORATE_PUK_REQUIRED = "corporatePukRequired"; +this.GECKO_CARDSTATE_SERVICE_PROVIDER_PUK_REQUIRED = "serviceProviderPukRequired"; +this.GECKO_CARDSTATE_SIM_PUK_REQUIRED = "simPersonalizationPukRequired"; +this.GECKO_CARDSTATE_READY = "ready"; // See ril.h RIL_PersoSubstate this.PERSONSUBSTATE = {}; PERSONSUBSTATE[CARD_PERSOSUBSTATE_UNKNOWN] = GECKO_CARDSTATE_UNKNOWN; -PERSONSUBSTATE[CARD_PERSOSUBSTATE_IN_PROGRESS] = "inProgress"; -PERSONSUBSTATE[CARD_PERSOSUBSTATE_READY] = GECKO_CARDSTATE_READY; +PERSONSUBSTATE[CARD_PERSOSUBSTATE_IN_PROGRESS] = GECKO_CARDSTATE_PERSONALIZATION_IN_PROGRESS; PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_NETWORK] = GECKO_CARDSTATE_NETWORK_LOCKED; -PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_NETWORK_SUBSET] = "networkSubsetLocked"; +PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_NETWORK_SUBSET] = GECKO_CARDSTATE_NETWORK_SUBSET_LOCKED; PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_CORPORATE] = GECKO_CARDSTATE_CORPORATE_LOCKED; PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER] = GECKO_CARDSTATE_SERVICE_PROVIDER_LOCKED; -PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_SIM] = "simPersonalizationLock"; +PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_SIM] = GECKO_CARDSTATE_SIM_LOCKED; +PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_NETWORK_PUK] = GECKO_CARDSTATE_NETWORK_PUK_REQUIRED; +PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK] = GECKO_CARDSTATE_NETWORK_SUBSET_PUK_REQUIRED; +PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_CORPORATE_PUK] = GECKO_CARDSTATE_CORPORATE_PUK_REQUIRED; +PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK] = GECKO_CARDSTATE_SERVICE_PROVIDER_PUK_REQUIRED; +PERSONSUBSTATE[CARD_PERSOSUBSTATE_READY] = GECKO_CARDSTATE_READY; + +this.GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK = {}; +GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK["nck"] = CARD_PERSOSUBSTATE_SIM_NETWORK; +GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK["cck"] = CARD_PERSOSUBSTATE_SIM_CORPORATE; +GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK["spck"] = CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER; +GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK["nckPuk"] = CARD_PERSOSUBSTATE_SIM_NETWORK_PUK; +GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK["cckPuk"] = CARD_PERSOSUBSTATE_SIM_CORPORATE_PUK; +GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK["spckPuk"] = CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK; this.GECKO_NETWORK_SELECTION_UNKNOWN = null; this.GECKO_NETWORK_SELECTION_AUTOMATIC = "automatic"; diff --git a/dom/system/gonk/ril_worker.js b/dom/system/gonk/ril_worker.js index 734fc425cdf..7aa9c0ec422 100644 --- a/dom/system/gonk/ril_worker.js +++ b/dom/system/gonk/ril_worker.js @@ -980,17 +980,19 @@ let RIL = { this.enterICCPUK2(options); break; case "nck": - options.type = CARD_PERSOSUBSTATE_SIM_NETWORK; - this.enterDepersonalization(options); + case "cck": // Fall through. + case "spck": { + let type = GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[options.lockType]; + this.enterDepersonalization(type, options.pin, options); break; - case "cck": - options.type = CARD_PERSOSUBSTATE_SIM_CORPORATE; - this.enterDepersonalization(options); - break; - case "spck": - options.type = CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER; - this.enterDepersonalization(options); + } + case "nckPuk": + case "cckPuk": // Fall through. + case "spckPuk": { + let type = GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[options.lockType]; + this.enterDepersonalization(type, options.puk, options); break; + } default: options.errorMsg = "Unsupported Card Lock."; options.success = false; @@ -1039,13 +1041,13 @@ let RIL = { * * @param type * Integer indicating the network personalization be deactivated. - * @param pin - * String containing the pin. + * @param password + * String containing the password. */ - enterDepersonalization: function enterDepersonalization(options) { + enterDepersonalization: function enterDepersonalization(type, password, options) { Buf.newParcel(REQUEST_ENTER_NETWORK_DEPERSONALIZATION_CODE, options); - Buf.writeUint32(options.type); - Buf.writeString(options.pin); + Buf.writeUint32(type); + Buf.writeString(password); Buf.sendParcel(); }, diff --git a/dom/system/gonk/tests/test_ril_worker_icc.js b/dom/system/gonk/tests/test_ril_worker_icc.js index 681eba9b25d..83bfc1563f3 100644 --- a/dom/system/gonk/tests/test_ril_worker_icc.js +++ b/dom/system/gonk/tests/test_ril_worker_icc.js @@ -2606,58 +2606,51 @@ add_test(function test_find_free_icc_contact() { contactHelper.findFreeICCContact(CARD_APPTYPE_USIM, "adn", successCb, errorCb); }); -/** - * Verify cardState 'corporateLocked'. - */ -add_test(function test_card_state_corporateLocked() { +add_test(function test_personalization_state() { let worker = newUint8Worker(); let ril = worker.RIL; - let iccStatus = { - gsmUmtsSubscriptionAppIndex: 0, - apps: [ - { - app_state: CARD_APPSTATE_SUBSCRIPTION_PERSO, - perso_substate: CARD_PERSOSUBSTATE_SIM_CORPORATE - }], - }; - ril._processICCStatus(iccStatus); - do_check_eq(ril.cardState, GECKO_CARDSTATE_CORPORATE_LOCKED); + function testPersonalization(cardPersoState, geckoCardState) { + let iccStatus = { + gsmUmtsSubscriptionAppIndex: 0, + apps: [ + { + app_state: CARD_APPSTATE_SUBSCRIPTION_PERSO, + perso_substate: cardPersoState + }], + }; + + ril._processICCStatus(iccStatus); + do_check_eq(ril.cardState, geckoCardState); + } + + testPersonalization(CARD_PERSOSUBSTATE_SIM_NETWORK, + GECKO_CARDSTATE_NETWORK_LOCKED); + testPersonalization(CARD_PERSOSUBSTATE_SIM_CORPORATE, + GECKO_CARDSTATE_CORPORATE_LOCKED); + testPersonalization(CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER, + GECKO_CARDSTATE_SERVICE_PROVIDER_LOCKED); + testPersonalization(CARD_PERSOSUBSTATE_SIM_NETWORK_PUK, + GECKO_CARDSTATE_NETWORK_PUK_REQUIRED); + testPersonalization(CARD_PERSOSUBSTATE_SIM_CORPORATE_PUK, + GECKO_CARDSTATE_CORPORATE_PUK_REQUIRED); + testPersonalization(CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK, + GECKO_CARDSTATE_SERVICE_PROVIDER_PUK_REQUIRED); run_next_test(); }); /** - * Verify cardState 'serviceProviderLocked'. - */ -add_test(function test_card_state_serviceProviderLocked() { - let worker = newUint8Worker(); - let ril = worker.RIL; - let iccStatus = { - gsmUmtsSubscriptionAppIndex: 0, - apps: [ - { - app_state: CARD_APPSTATE_SUBSCRIPTION_PERSO, - perso_substate: CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER - }], - }; - - ril._processICCStatus(iccStatus); - do_check_eq(ril.cardState, GECKO_CARDSTATE_SERVICE_PROVIDER_LOCKED); - - run_next_test(); -}); - -/** - * Verify iccUnlockCardLock with lockType is "cck" and "spck". + * Verify iccUnlockCardLock. */ add_test(function test_unlock_card_lock_corporateLocked() { let worker = newUint8Worker(); let ril = worker.RIL; let buf = worker.Buf; const pin = "12345678"; + const puk = "12345678"; - function do_test(aLock, aPin) { + function do_test(aLock, aPassword) { buf.sendParcel = function fakeSendParcel () { // Request Type. do_check_eq(this.readUint32(), REQUEST_ENTER_NETWORK_DEPERSONALIZATION_CODE); @@ -2665,23 +2658,29 @@ add_test(function test_unlock_card_lock_corporateLocked() { // Token : we don't care this.readUint32(); - let lockType = aLock === "cck" ? - CARD_PERSOSUBSTATE_SIM_CORPORATE : - CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER; - + let lockType = GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[aLock]; // Lock Type do_check_eq(this.readUint32(), lockType); - // Pin. - do_check_eq(this.readString(), aPin); + // Pin/Puk. + do_check_eq(this.readString(), aPassword); }; - ril.iccUnlockCardLock({lockType: aLock, - pin: aPin}); + if (aLock.endsWith("Puk")) { + ril.iccUnlockCardLock({lockType: aLock, + puk: aPassword}); + } else { + ril.iccUnlockCardLock({lockType: aLock, + pin: aPassword}); + } } + do_test("nck", pin); do_test("cck", pin); do_test("spck", pin); + do_test("nckPuk", puk); + do_test("cckPuk", puk); + do_test("spckPuk", puk); run_next_test(); }); From 8e5520320bd8c6619dd0e5879457eae146762dd5 Mon Sep 17 00:00:00 2001 From: Hsin-Yi Tsai Date: Wed, 31 Jul 2013 15:39:52 +0800 Subject: [PATCH 05/31] Bug 899959 - B2G RIL: refactor request handler in RILContentHelper. r=vicamo --- dom/system/gonk/RILContentHelper.js | 172 +++++----------------------- 1 file changed, 29 insertions(+), 143 deletions(-) diff --git a/dom/system/gonk/RILContentHelper.js b/dom/system/gonk/RILContentHelper.js index fba8f84e135..7334e7c86c1 100644 --- a/dom/system/gonk/RILContentHelper.js +++ b/dom/system/gonk/RILContentHelper.js @@ -1530,10 +1530,11 @@ RILContentHelper.prototype = { this._deliverEvent("_iccListeners", "notifyStkSessionEnd", null); break; case "RIL:IccOpenChannel": - this.handleIccOpenChannel(msg.json); + this.handleSimpleRequest(msg.json.requestId, msg.json.errorMsg, + msg.json.channel); break; case "RIL:IccCloseChannel": - this.handleIccCloseChannel(msg.json); + this.handleSimpleRequest(msg.json.requestId, msg.json.errorMsg, null); break; case "RIL:IccExchangeAPDU": this.handleIccExchangeAPDU(msg.json); @@ -1542,7 +1543,7 @@ RILContentHelper.prototype = { this.handleReadIccContacts(msg.json); break; case "RIL:UpdateIccContact": - this.handleUpdateIccContact(msg.json); + this.handleSimpleRequest(msg.json.requestId, msg.json.errorMsg, null); break; case "RIL:DataError": { let data = msg.json.data; @@ -1555,19 +1556,20 @@ RILContentHelper.prototype = { this.handleGetCallForwardingOption(msg.json); break; case "RIL:SetCallForwardingOption": - this.handleSetCallForwardingOption(msg.json); + this.handleSimpleRequest(msg.json.requestId, msg.json.errorMsg, null); break; case "RIL:GetCallBarringOption": this.handleGetCallBarringOption(msg.json); break; case "RIL:SetCallBarringOption": - this.handleSetCallBarringOption(msg.json); + this.handleSimpleRequest(msg.json.requestId, msg.json.errorMsg, null); break; case "RIL:GetCallWaitingOption": - this.handleGetCallWaitingOption(msg.json); + this.handleSimpleRequest(msg.json.requestId, msg.json.errorMsg, + msg.json.enabled); break; case "RIL:SetCallWaitingOption": - this.handleSetCallWaitingOption(msg.json); + this.handleSimpleRequest(msg.json.requestId, msg.json.errorMsg, null); break; case "RIL:CfStateChanged": { let data = msg.json.data; @@ -1582,7 +1584,7 @@ RILContentHelper.prototype = { this.handleGetCallingLineIdRestriction(msg.json); break; case "RIL:SetCallingLineIdRestriction": - this.handleSetCallingLineIdRestriction(msg.json); + this.handleSimpleRequest(msg.json.requestId, msg.json.errorMsg, null); break; case "RIL:CellBroadcastReceived": { let message = new CellBroadcastMessage(msg.json.data); @@ -1592,10 +1594,11 @@ RILContentHelper.prototype = { break; } case "RIL:SetRoamingPreference": - this.handleSetRoamingPreference(msg.json); + this.handleSimpleRequest(msg.json.requestId, msg.json.errorMsg, null); break; case "RIL:GetRoamingPreference": - this.handleGetRoamingPreference(msg.json); + this.handleSimpleRequest(msg.json.requestId, msg.json.errorMsg, + msg.json.mode); break; } }, @@ -1629,19 +1632,19 @@ RILContentHelper.prototype = { callback.enumerateCallStateComplete(); }, + handleSimpleRequest: function handleSimpleRequest(requestId, errorMsg, result) { + if (errorMsg) { + this.fireRequestError(requestId, errorMsg); + } else { + this.fireRequestSuccess(requestId, result); + } + }, + handleGetAvailableNetworks: function handleGetAvailableNetworks(message) { debug("handleGetAvailableNetworks: " + JSON.stringify(message)); - - let requestId = message.requestId; - let request = this.takeRequest(requestId); - if (!request) { - debug("no DOMRequest found with request ID: " + requestId); - return; - } - if (message.errorMsg) { debug("Received error from getAvailableNetworks: " + message.errorMsg); - Services.DOMRequest.fireError(request, message.errorMsg); + this.fireRequestError(message.requestId, message.errorMsg); return; } @@ -1653,7 +1656,7 @@ RILContentHelper.prototype = { networks[i] = info; } - Services.DOMRequest.fireSuccess(request, networks); + this.fireRequestSuccess(message.requestId, networks); }, handleSelectNetwork: function handleSelectNetwork(message, mode) { @@ -1667,22 +1670,6 @@ RILContentHelper.prototype = { } }, - handleIccOpenChannel: function handleIccOpenChannel(message) { - if (message.errorMsg) { - this.fireRequestError(message.requestId, message.errorMsg); - } else { - this.fireRequestSuccess(message.requestId, message.channel); - } - }, - - handleIccCloseChannel: function handleIccCloseChannel(message) { - if (message.errorMsg) { - this.fireRequestError(message.requestId, message.errorMsg); - } else { - this.fireRequestSuccess(message.requestId, null); - } - }, - handleIccExchangeAPDU: function handleIccExchangeAPDU(message) { if (message.errorMsg) { this.fireRequestError(message.requestId, message.errorMsg); @@ -1723,14 +1710,6 @@ RILContentHelper.prototype = { ObjectWrapper.wrap(result, window)); }, - handleUpdateIccContact: function handleUpdateIccContact(message) { - if (message.errorMsg) { - this.fireRequestError(message.requestId, message.errorMsg); - } else { - this.fireRequestSuccess(message.requestId, null); - } - }, - handleVoicemailNotification: function handleVoicemailNotification(message) { let changed = false; if (!this.voicemailStatus) { @@ -1777,33 +1756,13 @@ RILContentHelper.prototype = { }, handleGetCallForwardingOption: function handleGetCallForwardingOption(message) { - let requestId = message.requestId; - let request = this.takeRequest(requestId); - if (!request) { - return; - } - - if (!message.success) { - Services.DOMRequest.fireError(request, message.errorMsg); + if (message.errorMsg) { + this.fireRequestError(message.requestId, message.errorMsg); return; } this._cfRulesToMobileCfInfo(message.rules); - Services.DOMRequest.fireSuccess(request, message.rules); - }, - - handleSetCallForwardingOption: function handleSetCallForwardingOption(message) { - let requestId = message.requestId; - let request = this.takeRequest(requestId); - if (!request) { - return; - } - - if (!message.success) { - Services.DOMRequest.fireError(request, message.errorMsg); - return; - } - Services.DOMRequest.fireSuccess(request, null); + this.fireRequestSuccess(message.requestId, message.rules); }, handleGetCallBarringOption: function handleGetCallBarringOption(message) { @@ -1815,72 +1774,15 @@ RILContentHelper.prototype = { } }, - handleSetCallBarringOption: function handleSetCallBarringOption(message) { - if (!message.success) { - this.fireRequestError(message.requestId, message.errorMsg); - } else { - this.fireRequestSuccess(message.requestId, null); - } - }, - - handleGetCallWaitingOption: function handleGetCallWaitingOption(message) { - let requestId = message.requestId; - let request = this.takeRequest(requestId); - if (!request) { - return; - } - - if (!message.success) { - Services.DOMRequest.fireError(request, message.errorMsg); - return; - } - Services.DOMRequest.fireSuccess(request, message.enabled); - }, - - handleSetCallWaitingOption: function handleSetCallWaitingOption(message) { - let requestId = message.requestId; - let request = this.takeRequest(requestId); - if (!request) { - return; - } - - if (!message.success) { - Services.DOMRequest.fireError(request, message.errorMsg); - return; - } - Services.DOMRequest.fireSuccess(request, null); - }, - handleGetCallingLineIdRestriction: function handleGetCallingLineIdRestriction(message) { - let requestId = message.requestId; - let request = this.takeRequest(requestId); - if (!request) { - return; - } - - if (!message.success) { - Services.DOMRequest.fireError(request, message.errorMsg); + if (message.errorMsg) { + this.fireRequestError(message.requestId, message.errorMsg); return; } let status = new DOMCLIRStatus(message); - Services.DOMRequest.fireSuccess(request, status); - }, - - handleSetCallingLineIdRestriction: - function handleSetCallingLineIdRestriction(message) { - let requestId = message.requestId; - let request = this.takeRequest(requestId); - if (!request) { - return; - } - - if (!message.success) { - Services.DOMRequest.fireError(request, message.errorMsg); - return; - } - Services.DOMRequest.fireSuccess(request, null); + this.fireRequestSuccess(message.requestId, status); }, handleSendCancelMMI: function handleSendCancelMMI(message) { @@ -1932,22 +1834,6 @@ RILContentHelper.prototype = { return gUUIDGenerator.generateUUID().toString(); }, - handleSetRoamingPreference: function handleSetRoamingPreference(message) { - if (message.errorMsg) { - this.fireRequestError(message.requestId, message.errorMsg); - } else { - this.fireRequestSuccess(message.requestId, null); - } - }, - - handleGetRoamingPreference: function handleGetRoamingPreference(message) { - if (message.errorMsg) { - this.fireRequestError(message.requestId, message.errorMsg); - } else { - this.fireRequestSuccess(message.requestId, message.mode); - } - }, - _deliverEvent: function _deliverEvent(listenerType, name, args) { let thisListeners = this[listenerType]; if (!thisListeners) { From 02cae2c127d3ff1673f558a97859c3b5cb8186d6 Mon Sep 17 00:00:00 2001 From: Gaia Pushbot Date: Tue, 6 Aug 2013 01:10:23 -0700 Subject: [PATCH 06/31] Bumping gaia.json for 2 gaia-central revision(s) ======== https://hg.mozilla.org/integration/gaia-central/rev/3cb073ca610c Author: Fabien Cazenave Desc: Merge pull request #11342 from fabi1cazenave/cameraMissingEntities-bug901463 Bug 901463 - [System/Camera] missing l10n entities, r=djf ======== https://hg.mozilla.org/integration/gaia-central/rev/93459e81a7cf Author: Fabien Cazenave Desc: Bug 901463 - [System/Camera] missing l10n entities, r=djf --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index af374afe51a..cc27126fbfc 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,4 +1,4 @@ { - "revision": "158ce534cf639cc6593ce0632e97f43bf33e4a15", + "revision": "3cb073ca610cae5d29e133ef675b200dff576696", "repo_path": "/integration/gaia-central" } From c5358364f7ded39f0a9093001a8563f5222376ca Mon Sep 17 00:00:00 2001 From: Gaia Pushbot Date: Tue, 6 Aug 2013 01:21:24 -0700 Subject: [PATCH 07/31] Bumping gaia.json for 2 gaia-central revision(s) ======== https://hg.mozilla.org/integration/gaia-central/rev/c4a00f8aeb80 Author: Rudy Lu Desc: Merge pull request #11365 from RudyLu/marketplace/hires-icon Bug 898382 - Update Marketplace with 1.5x icon. r=Rudy ======== https://hg.mozilla.org/integration/gaia-central/rev/445ede39b891 Author: Chris Van Desc: Bug 898382 - Update Marketplace with 1.5x icon. --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index cc27126fbfc..40430bdaff9 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,4 +1,4 @@ { - "revision": "3cb073ca610cae5d29e133ef675b200dff576696", + "revision": "c4a00f8aeb80b88ff9bb99203aaffe9660272d07", "repo_path": "/integration/gaia-central" } From 4f4745b81503f4561e491ef3b273bc38c29c2d97 Mon Sep 17 00:00:00 2001 From: Gaia Pushbot Date: Tue, 6 Aug 2013 02:40:24 -0700 Subject: [PATCH 08/31] Bumping gaia.json for 6 gaia-central revision(s) ======== https://hg.mozilla.org/integration/gaia-central/rev/f7ed8118d114 Author: William Chen Desc: Bug 900279 - Update Gaia with additional functionality to support Notification API. r=etienne ======== https://hg.mozilla.org/integration/gaia-central/rev/62b311a11ef3 Author: Arthur Chen Desc: Merge pull request #11243 from chuck-lee/bug-898293_Add_SSID_length_limitation Bug 898293 - Limit the data length of SSID to 32 bytes. r=arthurcc ======== https://hg.mozilla.org/integration/gaia-central/rev/e7be9b14c897 Author: Chuck Lee Desc: Bug 898293 - Limit the data length of SSID to 32 bytes. r=arthurcc ======== https://hg.mozilla.org/integration/gaia-central/rev/ce36dd64e4e5 Author: Sam Joch Desc: Merge pull request #11203 from pivanov/bug-898791 Bug 898791 - [Dialer] - The number is blue. Should be white and font weight 300. r=samjoch ======== https://hg.mozilla.org/integration/gaia-central/rev/0b54b7d1b89b Author: Pavel Ivanov Desc: Bug 898791 - [Dialer] - The number is blue. Should be white and font weight 300 ======== https://hg.mozilla.org/integration/gaia-central/rev/e511eebc2ba2 Author: Julien Wajsberg Desc: Bug 901856 - Add the new Notification API to the UITest test application r=gwagner also fixed the "send notification now" button where an event was passed to "noti" but "noti" can only handle window as parameter. --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 40430bdaff9..4fbb8da6c4c 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,4 +1,4 @@ { - "revision": "c4a00f8aeb80b88ff9bb99203aaffe9660272d07", + "revision": "f7ed8118d114f097e125683b5ff3ddc5af6e2496", "repo_path": "/integration/gaia-central" } From 69d22ff01b4af81616d6ad6755d6a624b8554ab5 Mon Sep 17 00:00:00 2001 From: Gaia Pushbot Date: Tue, 6 Aug 2013 02:50:23 -0700 Subject: [PATCH 09/31] Bumping gaia.json for 2 gaia-central revision(s) ======== https://hg.mozilla.org/integration/gaia-central/rev/b78c7c91a6b9 Author: Rex KM Lee Desc: Merge pull request #11223 from rexboy7/fix-bug894287 Bug 894287 - [Lockscreen] When there are connected calls, change 'emerge... ======== https://hg.mozilla.org/integration/gaia-central/rev/65c980df3d5d Author: Rex Lee Desc: Bug 894287 - [Lockscreen] When there are connected calls, change 'emergency call' button to 'return to call' --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 4fbb8da6c4c..d0540329abc 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,4 +1,4 @@ { - "revision": "f7ed8118d114f097e125683b5ff3ddc5af6e2496", + "revision": "b78c7c91a6b99e02ebfeade4e8fd586f3c359912", "repo_path": "/integration/gaia-central" } From ac8e3921651157da98979367a096559160ddabcf Mon Sep 17 00:00:00 2001 From: Gregor Wagner Date: Tue, 6 Aug 2013 12:13:07 +0200 Subject: [PATCH 10/31] Bug 900960 - Enable the new Notification API on B2G by default. r=vingtetun --- b2g/app/b2g.js | 1 - 1 file changed, 1 deletion(-) diff --git a/b2g/app/b2g.js b/b2g/app/b2g.js index 3bc71f81879..f8c363ddd2b 100644 --- a/b2g/app/b2g.js +++ b/b2g/app/b2g.js @@ -255,7 +255,6 @@ pref("layers.async-pan-zoom.enabled", true); // Web Notifications pref("notification.feature.enabled", true); -pref("dom.webnotifications.enabled", false); // IndexedDB pref("indexedDB.feature.enabled", true); From fac1d82395b259e8ea4db6d43ba12cf0bee9b3f3 Mon Sep 17 00:00:00 2001 From: Vivien Nicolas <21@vingtetun.org> Date: Tue, 6 Aug 2013 12:33:29 +0200 Subject: [PATCH 11/31] Bug 873418 - ContentEditable elements are ignored when fluffing is activated. r=roc --- layout/base/PositionedEventTargeting.cpp | 3 +++ layout/base/tests/test_event_target_radius.html | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/layout/base/PositionedEventTargeting.cpp b/layout/base/PositionedEventTargeting.cpp index 9bc15157316..d8bbd165b8d 100644 --- a/layout/base/PositionedEventTargeting.cpp +++ b/layout/base/PositionedEventTargeting.cpp @@ -167,6 +167,9 @@ IsElementClickable(nsIFrame* aFrame, nsIAtom* stopAt = nullptr) nsGkAtoms::button, eIgnoreCase)) { return true; } + if (content->IsEditable()) { + return true; + } nsCOMPtr linkURI; if (content->IsLink(getter_AddRefs(linkURI))) { return true; diff --git a/layout/base/tests/test_event_target_radius.html b/layout/base/tests/test_event_target_radius.html index 54a43a1e317..1bf2191f3e6 100644 --- a/layout/base/tests/test_event_target_radius.html +++ b/layout/base/tests/test_event_target_radius.html @@ -43,6 +43,8 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=780847 + +
 
+  
+  
+
+
+
+Mozilla Bug 898512
+

+ +
+
+
+ + From 1e8d418bbafae139c4cc0f7be81b5d8e20a7324e Mon Sep 17 00:00:00 2001 From: Marco Castelluccio Date: Tue, 6 Aug 2013 09:58:47 -0400 Subject: [PATCH 19/31] Bug 873567 - Queue appcache download only if there is an appcache manifest attribute specified. r=fabrice --- dom/apps/src/Webapps.jsm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/dom/apps/src/Webapps.jsm b/dom/apps/src/Webapps.jsm index 1e3be61435d..b593b4f2439 100644 --- a/dom/apps/src/Webapps.jsm +++ b/dom/apps/src/Webapps.jsm @@ -2039,11 +2039,13 @@ this.DOMApplicationRegistry = { aData.app[aProp] = appObject[aProp]; }); - this.queuedDownload[app.manifestURL] = { - manifest: manifest, - app: appObject, - profileDir: aProfileDir, - offlineCacheObserver: aOfflineCacheObserver + if (manifest.appcache_path) { + this.queuedDownload[app.manifestURL] = { + manifest: manifest, + app: appObject, + profileDir: aProfileDir, + offlineCacheObserver: aOfflineCacheObserver + } } // We notify about the successful installation via mgmt.oninstall and the From 7466cad6c5aa1eea599b25ea35a4b3aa1d042a97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20L=C3=B3pez?= Date: Tue, 6 Aug 2013 10:04:17 -0400 Subject: [PATCH 20/31] Bug 896919 - UDP wake up is never reached. r=nsm --- dom/push/src/PushService.jsm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dom/push/src/PushService.jsm b/dom/push/src/PushService.jsm index d8d79833c64..e88de5451dd 100644 --- a/dom/push/src/PushService.jsm +++ b/dom/push/src/PushService.jsm @@ -1304,14 +1304,17 @@ this.PushService = { _wsOnStop: function(context, statusCode) { debug("wsOnStop()"); - this._shutdownWS(); - if (statusCode != Cr.NS_OK && !(statusCode == Cr.NS_BASE_STREAM_CLOSED && this._willBeWokenUpByUDP)) { debug("Socket error " + statusCode); this._reconnectAfterBackoff(); } + // Bug 896919. We always shutdown the WebSocket, even if we need to + // reconnect. This works because _reconnectAfterBackoff() is "async" + // (there is a minimum delay of the pref retryBaseInterval, which by default + // is 5000ms), so that function will open the WebSocket again. + this._shutdownWS(); }, _wsOnMessageAvailable: function(context, message) { From ace4151086ade4cb4c8aedc003e5295d794e5d8a Mon Sep 17 00:00:00 2001 From: Chuck Lee Date: Mon, 5 Aug 2013 15:21:07 +0800 Subject: [PATCH 21/31] Bug 899442 - Add permission for WAP Push. r=fabrice --- dom/apps/src/PermissionsTable.jsm | 5 +++++ dom/messages/SystemMessagePermissionsChecker.jsm | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dom/apps/src/PermissionsTable.jsm b/dom/apps/src/PermissionsTable.jsm index 280bc20983a..ffe2bb6d6de 100644 --- a/dom/apps/src/PermissionsTable.jsm +++ b/dom/apps/src/PermissionsTable.jsm @@ -275,6 +275,11 @@ this.PermissionsTable = { geolocation: { privileged: DENY_ACTION, certified: ALLOW_ACTION }, + "wappush": { + app: DENY_ACTION, + privileged: DENY_ACTION, + certified: ALLOW_ACTION + }, }; /** diff --git a/dom/messages/SystemMessagePermissionsChecker.jsm b/dom/messages/SystemMessagePermissionsChecker.jsm index 25d351f5d9d..655c3adccf9 100644 --- a/dom/messages/SystemMessagePermissionsChecker.jsm +++ b/dom/messages/SystemMessagePermissionsChecker.jsm @@ -97,7 +97,7 @@ this.SystemMessagePermissionsTable = { "mobileconnection": [] }, "wappush-received": { - "sms": [] + "wappush": [] }, }; From ef04e65bdf9e5ab0464551dbc9f9154226a60a11 Mon Sep 17 00:00:00 2001 From: Marco Castelluccio Date: Tue, 6 Aug 2013 10:04:17 -0400 Subject: [PATCH 22/31] Bug 710786 - Installing a web app natively can overwrite all the shortcuts of a previously installed native non-web app. r=myk, r=tabraldes --- toolkit/webapps/WebappsInstaller.jsm | 128 ++++++++++++++++++--------- 1 file changed, 85 insertions(+), 43 deletions(-) diff --git a/toolkit/webapps/WebappsInstaller.jsm b/toolkit/webapps/WebappsInstaller.jsm index 3f0aadaf27b..8cd0a204154 100644 --- a/toolkit/webapps/WebappsInstaller.jsm +++ b/toolkit/webapps/WebappsInstaller.jsm @@ -229,8 +229,8 @@ WinNativeApp.prototype = { install: function() { try { this._copyPrebuiltFiles(); - this._createConfigFiles(); this._createShortcutFiles(); + this._createConfigFiles(); this._writeSystemKeys(); } catch (ex) { this._removeInstallation(false); @@ -279,6 +279,29 @@ WinNativeApp.prototype = { this.uninstallSubkeyStr = this.uniqueName; + // ${UninstallDir}/shortcuts_log.ini + this.shortcutLogsINI = this.uninstallDir.clone(); + this.shortcutLogsINI.append("shortcuts_log.ini"); + + if (this.shortcutLogsINI.exists()) { + // If it's a reinstallation (or an update) get the shortcut names + // from the shortcut_log.ini file + let factory = Cc["@mozilla.org/xpcom/ini-processor-factory;1"] + .getService(Ci.nsIINIParserFactory); + let parser = factory.createINIParser(this.shortcutLogsINI); + + this.shortcutName = parser.getString("STARTMENU", "Shortcut0"); + } else { + let desktop = Services.dirsvc.get("Desk", Ci.nsIFile); + let startMenu = Services.dirsvc.get("Progs", Ci.nsIFile); + + // Check in both directories to see if a shortcut with the same name + // already exists. + this.shortcutName = getAvailableFileName([ startMenu, desktop ], + this.appNameAsFilename, + ".lnk"); + } + // Remove previously installed app (for update purposes) this._removeInstallation(true); @@ -306,11 +329,11 @@ WinNativeApp.prototype = { uninstallKey.close(); } - let desktopShortcut = Services.dirsvc.get("Desk", Ci.nsILocalFile); - desktopShortcut.append(this.appNameAsFilename + ".lnk"); + let desktopShortcut = Services.dirsvc.get("Desk", Ci.nsIFile); + desktopShortcut.append(this.shortcutName); - let startMenuShortcut = Services.dirsvc.get("Progs", Ci.nsILocalFile); - startMenuShortcut.append(this.appNameAsFilename + ".lnk"); + let startMenuShortcut = Services.dirsvc.get("Progs", Ci.nsIFile); + startMenuShortcut.append(this.shortcutName); let filesToRemove = [desktopShortcut, startMenuShortcut]; @@ -382,13 +405,9 @@ WinNativeApp.prototype = { writer.setString("WebappRT", "InstallDir", this.runtimeFolder.path); writer.writeFile(null, Ci.nsIINIParserWriter.WRITE_UTF16); - // ${UninstallDir}/shortcuts_log.ini - let shortcutLogsINI = this.uninstallDir.clone().QueryInterface(Ci.nsILocalFile); - shortcutLogsINI.append("shortcuts_log.ini"); - - writer = factory.createINIParser(shortcutLogsINI).QueryInterface(Ci.nsIINIParserWriter); - writer.setString("STARTMENU", "Shortcut0", this.appNameAsFilename + ".lnk"); - writer.setString("DESKTOP", "Shortcut0", this.appNameAsFilename + ".lnk"); + writer = factory.createINIParser(this.shortcutLogsINI).QueryInterface(Ci.nsIINIParserWriter); + writer.setString("STARTMENU", "Shortcut0", this.shortcutName); + writer.setString("DESKTOP", "Shortcut0", this.shortcutName); writer.setString("TASKBAR", "Migrated", "true"); writer.writeFile(null, Ci.nsIINIParserWriter.WRITE_UTF16); @@ -448,7 +467,7 @@ WinNativeApp.prototype = { */ _createShortcutFiles: function() { let shortcut = this.installDir.clone().QueryInterface(Ci.nsILocalFileWin); - shortcut.append(this.appNameAsFilename + ".lnk"); + shortcut.append(this.shortcutName); let target = this.installDir.clone(); target.append(this.webapprt.leafName); @@ -462,8 +481,8 @@ WinNativeApp.prototype = { let desktop = Services.dirsvc.get("Desk", Ci.nsILocalFile); let startMenu = Services.dirsvc.get("Progs", Ci.nsILocalFile); - shortcut.copyTo(desktop, this.appNameAsFilename + ".lnk"); - shortcut.copyTo(startMenu, this.appNameAsFilename + ".lnk"); + shortcut.copyTo(desktop, this.shortcutName); + shortcut.copyTo(startMenu, this.shortcutName); shortcut.followLinks = false; shortcut.remove(false); @@ -660,13 +679,13 @@ MacNativeApp.prototype = { _moveToApplicationsFolder: function() { let appDir = Services.dirsvc.get("LocApp", Ci.nsILocalFile); - let destination = getAvailableFile(appDir, - this.appNameAsFilename, - ".app"); - if (!destination) { + let destinationName = getAvailableFileName([appDir], + this.appNameAsFilename, + ".app"); + if (!destinationName) { return false; } - this.installDir.moveTo(destination.parent, destination.leafName); + this.installDir.moveTo(appDir, destinationName); }, /** @@ -967,38 +986,61 @@ function stripStringForFilename(aPossiblyBadFilenameString) { /** * Finds a unique name available in a folder (i.e., non-existent file) * - * @param aFolder nsIFile that represents the directory where we want to write + * @param aFolderSet a set of nsIFile objects that represents the set of + * directories where we want to write * @param aName string with the filename (minus the extension) desired * @param aExtension string with the file extension, including the dot - * @return nsILocalFile or null if folder is unwritable or unique name + * @return file name or null if folder is unwritable or unique name * was not available */ -function getAvailableFile(aFolder, aName, aExtension) { - let folder = aFolder.QueryInterface(Ci.nsILocalFile); - folder.followLinks = false; - if (!folder.isDirectory() || !folder.isWritable()) { - return null; - } +function getAvailableFileName(aFolderSet, aName, aExtension) { + let fileSet = []; + let name = aName + aExtension; + let isUnique = true; - let file = folder.clone(); - file.append(aName + aExtension); - - if (!file.exists()) { - return file; - } - - for (let i = 2; i < 10; i++) { - file.leafName = aName + " (" + i + ")" + aExtension; - if (!file.exists()) { - return file; + // Check if the plain name is a unique name in all the directories. + for (let folder of aFolderSet) { + folder.followLinks = false; + if (!folder.isDirectory() || !folder.isWritable()) { + return null; } + + let file = folder.clone(); + file.append(name); + // Avoid exists() call if we already know this file name is not unique in + // one of the directories. + if (isUnique && file.exists()) { + isUnique = false; + } + + fileSet.push(file); } - for (let i = 10; i < 100; i++) { - file.leafName = aName + "-" + i + aExtension; - if (!file.exists()) { - return file; + if (isUnique) { + return name; + } + + + function checkUnique(aName) { + for (let file of fileSet) { + file.leafName = aName; + + if (file.exists()) { + return false; + } + } + + return true; + } + + // If we're here, the plain name wasn't enough. Let's try modifying the name + // by adding "(" + num + ")". + for (let i = 2; i < 100; i++) { + name = aName + " (" + i + ")" + aExtension; + + if (checkUnique(name)) { + return name; } } From a416021d82f54340e7b26d6b4f29177ba88d977b Mon Sep 17 00:00:00 2001 From: David Burns Date: Thu, 24 May 2012 10:48:30 -0700 Subject: [PATCH 23/31] Bug 758195 - Add test for implicit waits. r=jgriffin --- .../tests/unit/test_implicit_waits.py | 28 ++++++++++++++ .../marionette/tests/unit/unit-tests.ini | 2 + .../client/marionette/www/test_dynamic.html | 38 +++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 testing/marionette/client/marionette/tests/unit/test_implicit_waits.py create mode 100644 testing/marionette/client/marionette/www/test_dynamic.html diff --git a/testing/marionette/client/marionette/tests/unit/test_implicit_waits.py b/testing/marionette/client/marionette/tests/unit/test_implicit_waits.py new file mode 100644 index 00000000000..9cdd90d7dae --- /dev/null +++ b/testing/marionette/client/marionette/tests/unit/test_implicit_waits.py @@ -0,0 +1,28 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +from marionette_test import MarionetteTestCase +from errors import NoSuchElementException + +class TestImplicitWaits(MarionetteTestCase): + def testShouldImplicitlyWaitForASingleElement(self): + test_html = self.marionette.absolute_url("test_dynamic.html") + self.marionette.navigate(test_html) + add = self.marionette.find_element("id", "adder") + self.marionette.set_search_timeout("3000") + add.click() + # All is well if this doesnt throw + self.marionette.find_element("id", "box0") + + def testShouldStillFailToFindAnElementWhenImplicitWaitsAreEnabled(self): + test_html = self.marionette.absolute_url("test_dynamic.html") + self.marionette.navigate(test_html) + self.marionette.set_search_timeout("3000") + try: + self.marionette.find_element("id", "box0") + self.fail("Should have thrown a a NoSuchElementException") + except NoSuchElementException: + pass + except Exception: + self.fail("Should have thrown a NoSuchElementException") diff --git a/testing/marionette/client/marionette/tests/unit/unit-tests.ini b/testing/marionette/client/marionette/tests/unit/unit-tests.ini index 539c78ec727..6f5b796bb04 100644 --- a/testing/marionette/client/marionette/tests/unit/unit-tests.ini +++ b/testing/marionette/client/marionette/tests/unit/unit-tests.ini @@ -83,3 +83,5 @@ b2g = false b2g = false [test_window_type.py] b2g = false + +[test_implicit_waits.py] diff --git a/testing/marionette/client/marionette/www/test_dynamic.html b/testing/marionette/client/marionette/www/test_dynamic.html new file mode 100644 index 00000000000..dccc2c6acd3 --- /dev/null +++ b/testing/marionette/client/marionette/www/test_dynamic.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + From 39b37ef5f62a93beca4e53046b87530a0f7c2e57 Mon Sep 17 00:00:00 2001 From: Gaia Pushbot Date: Tue, 6 Aug 2013 07:10:25 -0700 Subject: [PATCH 24/31] Bumping gaia.json for 2 gaia-central revision(s) ======== https://hg.mozilla.org/integration/gaia-central/rev/83566e190ff3 Author: John Hu Desc: Merge pull request #11221 from huchengtw-moz/video/Bug_898993_thumbnail_size_is_not_compitable_to_hdpi Bug 898993 - the creation of thumbnail size is not compatible to hdpi de... ======== https://hg.mozilla.org/integration/gaia-central/rev/64a51f6734fd Author: John Hu Desc: Bug 898993 - the creation of thumbnail size is not compatible to hdpi device --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 09b9279dbc6..0b0aec94cce 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,4 +1,4 @@ { - "revision": "fb34bf4d35419fe1367f5df610b216af11fd593e", + "revision": "83566e190ff38b24ad88771a2dd69aa2170376a7", "repo_path": "/integration/gaia-central" } From aa4680dfb19590d3562893fc7079843e0516d1a0 Mon Sep 17 00:00:00 2001 From: Gaia Pushbot Date: Tue, 6 Aug 2013 07:20:27 -0700 Subject: [PATCH 25/31] Bumping gaia.json for 2 gaia-central revision(s) ======== https://hg.mozilla.org/integration/gaia-central/rev/5c749196a94d Author: Rex KM Lee Desc: Merge pull request #11376 from rexboy7/fix-bug899511-master bug 899511 : [System] Resize popup window correctly ======== https://hg.mozilla.org/integration/gaia-central/rev/82ca343aa6f2 Author: Rex Lee Desc: bug 899511 : [System] Resize popup window correctly --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 0b0aec94cce..7bdbeb26a2a 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,4 +1,4 @@ { - "revision": "83566e190ff38b24ad88771a2dd69aa2170376a7", + "revision": "5c749196a94dcfcd265872fc4570d5fdabe80d42", "repo_path": "/integration/gaia-central" } From 5cd5511bea41783ea6d3d447fd001c635792db1d Mon Sep 17 00:00:00 2001 From: Kartikaya Gupta Date: Tue, 6 Aug 2013 10:39:19 -0400 Subject: [PATCH 26/31] Bug 900742 - Fix APZC hit testing problem introduced by bug 866232. r=BenWa --- gfx/layers/composite/APZCTreeManager.cpp | 28 ++++++++++++++---------- gfx/layers/composite/APZCTreeManager.h | 1 + gfx/layers/ipc/AsyncPanZoomController.h | 26 ++++++++++++++++------ 3 files changed, 37 insertions(+), 18 deletions(-) diff --git a/gfx/layers/composite/APZCTreeManager.cpp b/gfx/layers/composite/APZCTreeManager.cpp index d00d44a00c0..dd8e40736d8 100644 --- a/gfx/layers/composite/APZCTreeManager.cpp +++ b/gfx/layers/composite/APZCTreeManager.cpp @@ -67,7 +67,7 @@ APZCTreeManager::UpdatePanZoomControllerTree(CompositorParent* aCompositor, Laye aRoot, // aCompositor is null in gtest scenarios aCompositor ? aCompositor->RootLayerTreeId() : 0, - nullptr, nullptr, + gfx3DMatrix(), nullptr, nullptr, aIsFirstPaint, aFirstPaintLayersId, &apzcsToDestroy); } @@ -81,11 +81,15 @@ APZCTreeManager::UpdatePanZoomControllerTree(CompositorParent* aCompositor, Laye AsyncPanZoomController* APZCTreeManager::UpdatePanZoomControllerTree(CompositorParent* aCompositor, Layer* aLayer, uint64_t aLayersId, + gfx3DMatrix aTransform, AsyncPanZoomController* aParent, AsyncPanZoomController* aNextSibling, bool aIsFirstPaint, uint64_t aFirstPaintLayersId, nsTArray< nsRefPtr >* aApzcsToDestroy) { + // Accumulate the CSS transform between layers that have an APZC + aTransform = aTransform * aLayer->GetTransform(); + ContainerLayer* container = aLayer->AsContainerLayer(); AsyncPanZoomController* controller = nullptr; if (container) { @@ -116,13 +120,13 @@ APZCTreeManager::UpdatePanZoomControllerTree(CompositorParent* aCompositor, controller->NotifyLayersUpdated(container->GetFrameMetrics(), aIsFirstPaint && (aLayersId == aFirstPaintLayersId)); - gfx3DMatrix transform = container->GetEffectiveTransform(); LayerRect visible = container->GetFrameMetrics().mViewport * container->GetFrameMetrics().LayersPixelsPerCSSPixel(); - gfxRect transformed = transform.TransformBounds(gfxRect(visible.x, visible.y, visible.width, visible.height)); - controller->SetVisibleRegion(transformed); - APZC_LOG("Setting rect(%f %f %f %f) as visible region for %p\n", transformed.x, transformed.y, - transformed.width, transformed.height, - controller); + controller->SetLayerHitTestData(visible, aTransform); + // Reset the accumulated transform once we hit a layer with an APZC + aTransform = gfx3DMatrix(); + APZC_LOG("Setting rect(%f %f %f %f) as visible region for APZC %p\n", visible.x, visible.y, + visible.width, visible.height, + controller); // Bind the APZC instance into the tree of APZCs if (aNextSibling) { @@ -144,7 +148,7 @@ APZCTreeManager::UpdatePanZoomControllerTree(CompositorParent* aCompositor, uint64_t childLayersId = (aLayer->AsRefLayer() ? aLayer->AsRefLayer()->GetReferentId() : aLayersId); AsyncPanZoomController* next = nullptr; for (Layer* child = aLayer->GetLastChild(); child; child = child->GetPrevSibling()) { - next = UpdatePanZoomControllerTree(aCompositor, child, childLayersId, aParent, next, + next = UpdatePanZoomControllerTree(aCompositor, child, childLayersId, aTransform, aParent, next, aIsFirstPaint, aFirstPaintLayersId, aApzcsToDestroy); } @@ -366,17 +370,19 @@ APZCTreeManager::FindTargetAPZC(AsyncPanZoomController* aApzc, const ScrollableL AsyncPanZoomController* APZCTreeManager::GetAPZCAtPoint(AsyncPanZoomController* aApzc, gfxPoint aHitTestPoint) { + gfx3DMatrix transform = gfx3DMatrix(aApzc->GetCurrentAsyncTransform()) * aApzc->GetCSSTransform(); + gfx3DMatrix untransform = transform.Inverse(); + gfxPoint untransformed = untransform.ProjectPoint(aHitTestPoint); + // This walks the tree in depth-first, reverse order, so that it encounters // APZCs front-to-back on the screen. - ViewTransform apzcTransform = aApzc->GetCurrentAsyncTransform(); - gfxPoint untransformed = gfx3DMatrix(apzcTransform).Inverse().ProjectPoint(aHitTestPoint); for (AsyncPanZoomController* child = aApzc->GetLastChild(); child; child = child->GetPrevSibling()) { AsyncPanZoomController* match = GetAPZCAtPoint(child, untransformed); if (match) { return match; } } - if (aApzc->VisibleRegionContains(untransformed)) { + if (aApzc->VisibleRegionContains(LayerPoint(untransformed.x, untransformed.y))) { return aApzc; } return nullptr; diff --git a/gfx/layers/composite/APZCTreeManager.h b/gfx/layers/composite/APZCTreeManager.h index de8c55b4221..2ac334fc117 100644 --- a/gfx/layers/composite/APZCTreeManager.h +++ b/gfx/layers/composite/APZCTreeManager.h @@ -253,6 +253,7 @@ private: */ AsyncPanZoomController* UpdatePanZoomControllerTree(CompositorParent* aCompositor, Layer* aLayer, uint64_t aLayersId, + gfx3DMatrix aTransform, AsyncPanZoomController* aParent, AsyncPanZoomController* aNextSibling, bool aIsFirstPaint, diff --git a/gfx/layers/ipc/AsyncPanZoomController.h b/gfx/layers/ipc/AsyncPanZoomController.h index 06fcc795e67..b52e2203da6 100644 --- a/gfx/layers/ipc/AsyncPanZoomController.h +++ b/gfx/layers/ipc/AsyncPanZoomController.h @@ -16,6 +16,7 @@ #include "Axis.h" #include "TaskThrottler.h" #include "mozilla/layers/APZCTreeManager.h" +#include "gfx3DMatrix.h" #include "base/message_loop.h" @@ -641,17 +642,28 @@ private: * hit-testing to see which APZC instance should handle touch events. */ public: - void SetVisibleRegion(gfxRect rect) { mVisibleRegion = rect; } + void SetLayerHitTestData(const LayerRect& aRect, const gfx3DMatrix& aTransform) { + mVisibleRect = aRect; + mCSSTransform = aTransform; + } - bool VisibleRegionContains(const gfxPoint& aPoint) const { - return mVisibleRegion.Contains(aPoint.x, aPoint.y); + gfx3DMatrix GetCSSTransform() const { + return mCSSTransform; + } + + bool VisibleRegionContains(const LayerPoint& aPoint) const { + return mVisibleRect.Contains(aPoint); } private: - /* This is the viewport of the layer that this APZC corresponds to, but - * post-transform. In other words, it is in the coordinate space of its - * parent layer. */ - gfxRect mVisibleRegion; + /* This is the viewport of the layer that this APZC corresponds to, in + * layer pixels. It position here does not account for any transformations + * applied to any layers, whether they are CSS transforms or async + * transforms. */ + LayerRect mVisibleRect; + /* This is the cumulative layer transform from the parent APZC down to this + * one. */ + gfx3DMatrix mCSSTransform; }; } From 4e9c6ce9e00b42229ec480f039f5a706197446b0 Mon Sep 17 00:00:00 2001 From: Marco Castelluccio Date: Tue, 6 Aug 2013 10:58:44 -0400 Subject: [PATCH 27/31] Bug 873567 - Fix packaged apps test. r=myk --- dom/apps/src/Webapps.jsm | 112 +++++++++++++++++++++---------------- dom/apps/tests/Makefile.in | 5 -- 2 files changed, 65 insertions(+), 52 deletions(-) diff --git a/dom/apps/src/Webapps.jsm b/dom/apps/src/Webapps.jsm index b593b4f2439..7f1f66099f6 100644 --- a/dom/apps/src/Webapps.jsm +++ b/dom/apps/src/Webapps.jsm @@ -1920,17 +1920,70 @@ this.DOMApplicationRegistry = { // content side. This let the webpage the opportunity to set event handlers // on the app before we start firing progress events. queuedDownload: {}, + queuedPackageDownload: {}, onInstallSuccessAck: function onInstallSuccessAck(aManifestURL) { - let download = this.queuedDownload[aManifestURL]; - if (!download) { + let cacheDownload = this.queuedDownload[aManifestURL]; + if (cacheDownload) { + this.startOfflineCacheDownload(cacheDownload.manifest, + cacheDownload.app, + cacheDownload.profileDir, + cacheDownload.offlineCacheObserver); + delete this.queuedDownload[aManifestURL]; + return; } - this.startOfflineCacheDownload(download.manifest, - download.app, - download.profileDir, - download.offlineCacheObserver); - delete this.queuedDownload[aManifestURL]; + + let packageDownload = this.queuedPackageDownload[aManifestURL]; + if (packageDownload) { + let manifest = packageDownload.manifest; + let appObject = packageDownload.app; + let installSuccessCallback = packageDownload.callback; + + delete this.queuedPackageDownload[aManifestURL]; + + this.downloadPackage(manifest, appObject, false, (function(aId, aManifest) { + // Move the zip out of TmpD. + let app = DOMApplicationRegistry.webapps[aId]; + let zipFile = FileUtils.getFile("TmpD", ["webapps", aId, "application.zip"], true); + let dir = this._getAppDir(aId); + zipFile.moveTo(dir, "application.zip"); + let tmpDir = FileUtils.getDir("TmpD", ["webapps", aId], true, true); + try { + tmpDir.remove(true); + } catch(e) { } + + // Save the manifest + let manFile = dir.clone(); + manFile.append("manifest.webapp"); + this._writeFile(manFile, JSON.stringify(aManifest), function() { }); + // Set state and fire events. + app.installState = "installed"; + app.downloading = false; + app.downloadAvailable = false; + this._saveApps((function() { + this.updateAppHandlers(null, aManifest, appObject); + this.broadcastMessage("Webapps:AddApp", { id: aId, app: appObject }); + + if (supportUseCurrentProfile()) { + // Update the permissions for this app. + PermissionsInstaller.installPermissions({ manifest: aManifest, + origin: appObject.origin, + manifestURL: appObject.manifestURL }, + true); + } + debug("About to fire Webapps:PackageEvent 'installed'"); + this.broadcastMessage("Webapps:PackageEvent", + { type: "installed", + manifestURL: appObject.manifestURL, + app: app, + manifest: aManifest }); + if (installSuccessCallback) { + installSuccessCallback(aManifest); + } + }).bind(this)); + }).bind(this)); + } }, confirmInstall: function(aData, aFromSync, aProfileDir, @@ -2070,47 +2123,12 @@ this.DOMApplicationRegistry = { // origin for install apps is meaningless here, since it's app:// and this // can't be used to resolve package paths. manifest = new ManifestHelper(jsonManifest, app.manifestURL); - this.downloadPackage(manifest, appObject, false, (function(aId, aManifest) { - // Success! Move the zip out of TmpD. - let app = DOMApplicationRegistry.webapps[aId]; - let zipFile = FileUtils.getFile("TmpD", ["webapps", aId, "application.zip"], true); - let dir = this._getAppDir(id); - zipFile.moveTo(dir, "application.zip"); - let tmpDir = FileUtils.getDir("TmpD", ["webapps", aId], true, true); - try { - tmpDir.remove(true); - } catch(e) { } - // Save the manifest - let manFile = dir.clone(); - manFile.append("manifest.webapp"); - this._writeFile(manFile, JSON.stringify(aManifest), function() { }); - // Set state and fire events. - app.installState = "installed"; - app.downloading = false; - app.downloadAvailable = false; - this._saveApps((function() { - this.updateAppHandlers(null, aManifest, appObject); - this.broadcastMessage("Webapps:AddApp", { id: aId, app: appObject }); - - if (supportUseCurrentProfile()) { - // Update the permissions for this app. - PermissionsInstaller.installPermissions({ manifest: aManifest, - origin: appObject.origin, - manifestURL: appObject.manifestURL }, - true); - } - debug("About to fire Webapps:PackageEvent 'installed'"); - this.broadcastMessage("Webapps:PackageEvent", - { type: "installed", - manifestURL: appObject.manifestURL, - app: app, - manifest: aManifest }); - if (aInstallSuccessCallback) { - aInstallSuccessCallback(aManifest); - } - }).bind(this)); - }).bind(this)); + this.queuedPackageDownload[app.manifestURL] = { + manifest: manifest, + app: appObject, + callback: aInstallSuccessCallback + } } }, diff --git a/dom/apps/tests/Makefile.in b/dom/apps/tests/Makefile.in index 0660eeb54e7..b4adc4a47eb 100644 --- a/dom/apps/tests/Makefile.in +++ b/dom/apps/tests/Makefile.in @@ -18,16 +18,11 @@ MOCHITEST_FILES = \ file_cached_app.template.appcache \ file_hosted_app.template.webapp \ test_app_update.html \ - $(NULL) - -ifdef MOZ_B2G -MOCHITEST_FILES += \ file_packaged_app.sjs \ file_packaged_app.template.webapp \ file_packaged_app.template.html \ test_packaged_app_install.html \ $(NULL) -endif MOCHITEST_CHROME_FILES = \ test_apps_service.xul \ From 29b8469784f1b47904545719c5ec2ee213f981ce Mon Sep 17 00:00:00 2001 From: Gaia Pushbot Date: Tue, 6 Aug 2013 08:30:23 -0700 Subject: [PATCH 28/31] Bumping gaia.json for 2 gaia-central revision(s) ======== https://hg.mozilla.org/integration/gaia-central/rev/453d7dee630d Author: Ben Kelly Desc: Merge pull request #11377 from wanderview/contacts_throbber_cpu Bug 901657: Use display:none to hide animation. r=jmcf ======== https://hg.mozilla.org/integration/gaia-central/rev/d7003fd65a19 Author: Ben Kelly Desc: Bug 901657: Use display:none to hide animation --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 7bdbeb26a2a..957db181a77 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,4 +1,4 @@ { - "revision": "5c749196a94dcfcd265872fc4570d5fdabe80d42", + "revision": "453d7dee630df9ed04fd7994f4d03bff1922e85c", "repo_path": "/integration/gaia-central" } From 4a1b6680dcb2cdd0f10fcc8b11c9e6811beafcf4 Mon Sep 17 00:00:00 2001 From: Gaia Pushbot Date: Tue, 6 Aug 2013 09:25:24 -0700 Subject: [PATCH 29/31] Bumping gaia.json for 2 gaia-central revision(s) ======== https://hg.mozilla.org/integration/gaia-central/rev/ca81894022ba Author: David Flanagan Desc: Merge pull request #11359 from davidflanagan/bug901377 Bug 901377: fix serious autocorrect regressions r=yxl ======== https://hg.mozilla.org/integration/gaia-central/rev/ca760d73e466 Author: David Flanagan Desc: Bug 901377: fix serious autocorrect regressions --- b2g/config/gaia.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 957db181a77..16ef68723a2 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,4 +1,4 @@ { - "revision": "453d7dee630df9ed04fd7994f4d03bff1922e85c", + "revision": "ca81894022ba9094e24f6f1d233ef0ebb1b59bba", "repo_path": "/integration/gaia-central" } From a1195a8c1935e17a6638499d4d30b1aa60b2313d Mon Sep 17 00:00:00 2001 From: Ryan VanderMeulen Date: Tue, 6 Aug 2013 12:50:36 -0400 Subject: [PATCH 30/31] Backed out changeset aada9eac6fd3 (bug 900742) for checktest failures. --- gfx/layers/composite/APZCTreeManager.cpp | 28 ++++++++++-------------- gfx/layers/composite/APZCTreeManager.h | 1 - gfx/layers/ipc/AsyncPanZoomController.h | 26 ++++++---------------- 3 files changed, 18 insertions(+), 37 deletions(-) diff --git a/gfx/layers/composite/APZCTreeManager.cpp b/gfx/layers/composite/APZCTreeManager.cpp index dd8e40736d8..d00d44a00c0 100644 --- a/gfx/layers/composite/APZCTreeManager.cpp +++ b/gfx/layers/composite/APZCTreeManager.cpp @@ -67,7 +67,7 @@ APZCTreeManager::UpdatePanZoomControllerTree(CompositorParent* aCompositor, Laye aRoot, // aCompositor is null in gtest scenarios aCompositor ? aCompositor->RootLayerTreeId() : 0, - gfx3DMatrix(), nullptr, nullptr, + nullptr, nullptr, aIsFirstPaint, aFirstPaintLayersId, &apzcsToDestroy); } @@ -81,15 +81,11 @@ APZCTreeManager::UpdatePanZoomControllerTree(CompositorParent* aCompositor, Laye AsyncPanZoomController* APZCTreeManager::UpdatePanZoomControllerTree(CompositorParent* aCompositor, Layer* aLayer, uint64_t aLayersId, - gfx3DMatrix aTransform, AsyncPanZoomController* aParent, AsyncPanZoomController* aNextSibling, bool aIsFirstPaint, uint64_t aFirstPaintLayersId, nsTArray< nsRefPtr >* aApzcsToDestroy) { - // Accumulate the CSS transform between layers that have an APZC - aTransform = aTransform * aLayer->GetTransform(); - ContainerLayer* container = aLayer->AsContainerLayer(); AsyncPanZoomController* controller = nullptr; if (container) { @@ -120,13 +116,13 @@ APZCTreeManager::UpdatePanZoomControllerTree(CompositorParent* aCompositor, controller->NotifyLayersUpdated(container->GetFrameMetrics(), aIsFirstPaint && (aLayersId == aFirstPaintLayersId)); + gfx3DMatrix transform = container->GetEffectiveTransform(); LayerRect visible = container->GetFrameMetrics().mViewport * container->GetFrameMetrics().LayersPixelsPerCSSPixel(); - controller->SetLayerHitTestData(visible, aTransform); - // Reset the accumulated transform once we hit a layer with an APZC - aTransform = gfx3DMatrix(); - APZC_LOG("Setting rect(%f %f %f %f) as visible region for APZC %p\n", visible.x, visible.y, - visible.width, visible.height, - controller); + gfxRect transformed = transform.TransformBounds(gfxRect(visible.x, visible.y, visible.width, visible.height)); + controller->SetVisibleRegion(transformed); + APZC_LOG("Setting rect(%f %f %f %f) as visible region for %p\n", transformed.x, transformed.y, + transformed.width, transformed.height, + controller); // Bind the APZC instance into the tree of APZCs if (aNextSibling) { @@ -148,7 +144,7 @@ APZCTreeManager::UpdatePanZoomControllerTree(CompositorParent* aCompositor, uint64_t childLayersId = (aLayer->AsRefLayer() ? aLayer->AsRefLayer()->GetReferentId() : aLayersId); AsyncPanZoomController* next = nullptr; for (Layer* child = aLayer->GetLastChild(); child; child = child->GetPrevSibling()) { - next = UpdatePanZoomControllerTree(aCompositor, child, childLayersId, aTransform, aParent, next, + next = UpdatePanZoomControllerTree(aCompositor, child, childLayersId, aParent, next, aIsFirstPaint, aFirstPaintLayersId, aApzcsToDestroy); } @@ -370,19 +366,17 @@ APZCTreeManager::FindTargetAPZC(AsyncPanZoomController* aApzc, const ScrollableL AsyncPanZoomController* APZCTreeManager::GetAPZCAtPoint(AsyncPanZoomController* aApzc, gfxPoint aHitTestPoint) { - gfx3DMatrix transform = gfx3DMatrix(aApzc->GetCurrentAsyncTransform()) * aApzc->GetCSSTransform(); - gfx3DMatrix untransform = transform.Inverse(); - gfxPoint untransformed = untransform.ProjectPoint(aHitTestPoint); - // This walks the tree in depth-first, reverse order, so that it encounters // APZCs front-to-back on the screen. + ViewTransform apzcTransform = aApzc->GetCurrentAsyncTransform(); + gfxPoint untransformed = gfx3DMatrix(apzcTransform).Inverse().ProjectPoint(aHitTestPoint); for (AsyncPanZoomController* child = aApzc->GetLastChild(); child; child = child->GetPrevSibling()) { AsyncPanZoomController* match = GetAPZCAtPoint(child, untransformed); if (match) { return match; } } - if (aApzc->VisibleRegionContains(LayerPoint(untransformed.x, untransformed.y))) { + if (aApzc->VisibleRegionContains(untransformed)) { return aApzc; } return nullptr; diff --git a/gfx/layers/composite/APZCTreeManager.h b/gfx/layers/composite/APZCTreeManager.h index 2ac334fc117..de8c55b4221 100644 --- a/gfx/layers/composite/APZCTreeManager.h +++ b/gfx/layers/composite/APZCTreeManager.h @@ -253,7 +253,6 @@ private: */ AsyncPanZoomController* UpdatePanZoomControllerTree(CompositorParent* aCompositor, Layer* aLayer, uint64_t aLayersId, - gfx3DMatrix aTransform, AsyncPanZoomController* aParent, AsyncPanZoomController* aNextSibling, bool aIsFirstPaint, diff --git a/gfx/layers/ipc/AsyncPanZoomController.h b/gfx/layers/ipc/AsyncPanZoomController.h index b52e2203da6..06fcc795e67 100644 --- a/gfx/layers/ipc/AsyncPanZoomController.h +++ b/gfx/layers/ipc/AsyncPanZoomController.h @@ -16,7 +16,6 @@ #include "Axis.h" #include "TaskThrottler.h" #include "mozilla/layers/APZCTreeManager.h" -#include "gfx3DMatrix.h" #include "base/message_loop.h" @@ -642,28 +641,17 @@ private: * hit-testing to see which APZC instance should handle touch events. */ public: - void SetLayerHitTestData(const LayerRect& aRect, const gfx3DMatrix& aTransform) { - mVisibleRect = aRect; - mCSSTransform = aTransform; - } + void SetVisibleRegion(gfxRect rect) { mVisibleRegion = rect; } - gfx3DMatrix GetCSSTransform() const { - return mCSSTransform; - } - - bool VisibleRegionContains(const LayerPoint& aPoint) const { - return mVisibleRect.Contains(aPoint); + bool VisibleRegionContains(const gfxPoint& aPoint) const { + return mVisibleRegion.Contains(aPoint.x, aPoint.y); } private: - /* This is the viewport of the layer that this APZC corresponds to, in - * layer pixels. It position here does not account for any transformations - * applied to any layers, whether they are CSS transforms or async - * transforms. */ - LayerRect mVisibleRect; - /* This is the cumulative layer transform from the parent APZC down to this - * one. */ - gfx3DMatrix mCSSTransform; + /* This is the viewport of the layer that this APZC corresponds to, but + * post-transform. In other words, it is in the coordinate space of its + * parent layer. */ + gfxRect mVisibleRegion; }; } From e87eb109e1330d0aec354555cdff9991fd33fb7c Mon Sep 17 00:00:00 2001 From: Ed Morley Date: Tue, 6 Aug 2013 10:42:42 -0700 Subject: [PATCH 31/31] Backed out changeset f87e93861239 (bug 649607) for causing bug 901921 --- browser/installer/removed-files.in | 1632 ++++++++++++++++++++++++++-- config/createprecomplete.py | 11 +- 2 files changed, 1553 insertions(+), 90 deletions(-) diff --git a/browser/installer/removed-files.in b/browser/installer/removed-files.in index c8bbf93761d..674d46a3574 100644 --- a/browser/installer/removed-files.in +++ b/browser/installer/removed-files.in @@ -1,96 +1,1554 @@ # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. - -# The removed-files.in file specifies files and directories to be removed during -# an application update that are not automatically removed by the application -# update process. The application update process handles the vast majority of -# file and directory removals automatically so this file should not be used in -# the vast majority of cases. - -# When to use removed-files.in file to remove files and directories: -# * Files and directories located in the installation's "distribution/" and -# "extensions/" directories that were added before Firefox 26. Files and -# directories located in these directories were not included in the -# application update file removals for a complete update prior to Firefox 26. -# * Empty directories that were accidentally added to the installation -# directory. -# * Third party files and directories that were added to the installation -# directory. Under normal circumstances this should only be done after release -# drivers have approved the removal of these third party files. - -# If you are not sure whether a file or directory should be removed using the -# removed-files.in file please contact one of the developers that work on -# application update. - -# Note: the "distribution/" and "browser/extensions/" directories should never -# be removed recursively since these directories are used by Partner builds and -# custom installations. - -# To specify a file to be removed add the path to the file. -# * If the file doesn't exist the update will succeed. -# * If the file exists and can't be removed (e.g. the file is locked) the -# update will fail. -# -# Example: path/to/file - -# To specify a directory to be removed only if it is empty add the path to the -# directory with a trailing forward slash. -# * If the directory doesn't exist the update will succeed. -# * If the directory can't be removed (e.g. the directory is locked, contains -# files, etc.) the update will succeed. -# -# Example: path/to/dir/ - -# To specify a directory that should be recursively removed add the path to the -# directory with a trailing forward slash and "*". -# * If the directory doesn't exist the update will succeed. -# * If all of the files the directory contains can be removed but the directory -# or a subdirectory can't be removed (e.g. the directory is locked) the update -# will succeed. -# * If a file within the directory can't be removed the update will fail. -# -# Example: path/to/dir/* - -# File Removals -# This is located under the "distribution/" directory and it was added before -# Firefox 26 -distribution/extensions/testpilot@labs.mozilla.com.xpi - -# Directory removals -chrome/ -#ifdef XP_UNIX - #ifndef XP_MACOSX - chrome/icons/ - chrome/icons/default/ - #endif +# Removed-files.in is processed at build time to create a list of files that +# should be removed during an application update. +# These files are in alphabetical order, except that files removed only on +# certain platforms are after all of the regular files and obsolete Talkback and +# Inspector files are at the very end. +.autoreg +@DLL_PREFIX@jsj@DLL_SUFFIX@ +@DLL_PREFIX@sqlite3@DLL_SUFFIX@ +@DLL_PREFIX@xpcom_compat@DLL_SUFFIX@ +@DLL_PREFIX@xpistub@DLL_SUFFIX@ +@DLL_PREFIX@zlib@DLL_SUFFIX@ +@DLL_PREFIX@jemalloc@DLL_SUFFIX@ +@DLL_PREFIX@mozutils@DLL_SUFFIX@ +#ifdef MOZ_STATIC_JS +@DLL_PREFIX@mozjs@DLL_SUFFIX@ #endif +#ifdef MOZ_FOLD_LIBS +@DLL_PREFIX@nspr4@DLL_SUFFIX@ +@DLL_PREFIX@plds4@DLL_SUFFIX@ +@DLL_PREFIX@plc4@DLL_SUFFIX@ +@DLL_PREFIX@ssl3@DLL_SUFFIX@ +@DLL_PREFIX@smime3@DLL_SUFFIX@ +@DLL_PREFIX@nssutil3@DLL_SUFFIX@ +@DLL_PREFIX@mozsqlite3@DLL_SUFFIX@ +#endif +@DLL_PREFIX@xpcom@DLL_SUFFIX@ +LICENSE +browserconfig.properties +chrome/US.jar +chrome/app-chrome.manifest +chrome/browser.manifest +chrome/chrome.rdf +chrome/chromelist.txt +chrome/classic.jar +chrome/classic.manifest +chrome/comm.jar +chrome/comm.manifest +chrome/en-win.jar +chrome/help.jar +chrome/installed-chrome.txt +chrome/m3ffxtbr.jar +chrome/m3ffxtbr.manifest chrome/overlayinfo/ -components/ -defaults/autoconfig/ -defaults/profile/ -defaults/profile/chrome/ -defaults/profile/US/* +chrome/pippki.manifest +chrome/reporter.jar +chrome/reporter.manifest +chrome/toolkit.manifest +component.reg +components/browser.manifest +components/components.list +components/@DLL_PREFIX@browserdirprovider@DLL_SUFFIX@ +components/@DLL_PREFIX@brwsrdir@DLL_SUFFIX@ +components/@DLL_PREFIX@myspell@DLL_SUFFIX@ +components/@DLL_PREFIX@spellchecker@DLL_SUFFIX@ +components/@DLL_PREFIX@spellchk@DLL_SUFFIX@ +#ifdef XP_MACOSX +components/libalerts.dylib +components/libalerts_s.dylib +#endif +components/aboutCertError.js +components/aboutPrivateBrowsing.js +components/aboutRights.js +components/aboutRobots.js +components/aboutSessionRestore.js +components/autocomplete.xpt +components/airbag.xpt +components/bookmarks.xpt +components/compreg.dat +components/history.xpt +components/microsummaries.xpt +components/myspell/en-US.aff +components/myspell/en-US.dic +components/nsAddonRepository.js +components/nsBackgroundUpdateService.js +components/nsBookmarkTransactionManager.js +components/nsCloseAllWindows.js +components/nsDictionary.js +components/nsExtensionManager.js +components/nsInterfaceInfoToIDL.js +components/nsScriptableIO.js +components/nsUrlClassifierTable.js +components/nsXmlRpcClient.js +components/pluginGlue.js +components/sidebar.xpt +#ifdef MOZ_B2G_RIL +components/dom_telephony.xpt +components/dom_wifi.xpt +components/dom_system_b2g.xpt +#endif +components/dom_sms.xpt +components/dom_webspeech.xpt +components/uconvd.dll +components/WeaveCrypto.js +components/WeaveCrypto.manifest +components/xmlextras.xpt +components/xpcom.xpt +components/xpti.dat +components/xptitemp.dat +components/nsMicrosummaryService.js +components/nsProxyAutoConfig.manifest +components/nsProxyAutoConfig.js +D3DCompiler_42.dll +d3dx9_42.dll +d3dx9_43.dll +defaults/pref/all.js +defaults/pref/bug259708.js +defaults/pref/bug307259.js +defaults/pref/reporter.js +defaults/pref/security-prefs.js +defaults/pref/services-aitc.js +defaults/pref/winpref.js +defaults/pref/xpinstall.js +defaults/preferences/services-aitc.js +defaults/preferences/services-notifications.js +defaults/preferences/services-sync.js +defaults/preferences/healthreport-prefs.js +defaults/profile/US/ defaults/profile/extensions/ -defaults/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/* +defaults/profile/extensions/Extensions.rdf +defaults/profile/extensions/installed-extensions.txt +defaults/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ +defaults/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf +defaults/profile/search.rdf +#ifndef SHIP_FEEDBACK +# In the average case, this directory is only used by Test Pilot, and will get +# removed by the updater. In some cases (eg, partner builds), distribution/ +# will have other files and/or directories in it. In these cases, the updater +# will print a non-fatal error and continue on, because we're not appending +# '*' to force a recursive removal. distribution/ distribution/extensions/ -extensions/ -extensions/inspector@mozilla.org/* -extensions/reporter@mozilla.org/* -extensions/talkback@mozilla.org/* -extensions/testpilot@labs.mozilla.com/* -extensions/{641d8d09-7dda-4850-8228-ac0ab65e2ac9}/* -extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/* -greprefs/ -jssubloader/ -modules/ -#ifdef XP_MACOSX - plugins/Default Plugin.plugin/* - plugins/JavaEmbeddingPlugin.bundle/* - plugins/MRJPlugin.plugin/* - ../Plug-Ins/PrintPDE.plugin/* +distribution/extensions/testpilot@labs.mozilla.com.xpi #endif -res/* -searchplugins/* -webapprt/components/ +extensions/talkback@mozilla.org/ +extensions/talkback@mozilla.org/chrome.manifest +extensions/talkback@mozilla.org/components/@DLL_PREFIX@qfaservices@DLL_SUFFIX@ +extensions/talkback@mozilla.org/components/qfaservices.xpt +extensions/talkback@mozilla.org/install.rdf +extensions/{641d8d09-7dda-4850-8228-ac0ab65e2ac9}/ +extensions/{641d8d09-7dda-4850-8228-ac0ab65e2ac9}/install.rdf +extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/preview.png +extensions/testpilot@labs.mozilla.com/chrome.manifest +extensions/testpilot@labs.mozilla.com/components/TestPilot.js +extensions/testpilot@labs.mozilla.com/content/all-studies-window.js +extensions/testpilot@labs.mozilla.com/content/all-studies-window.xul +extensions/testpilot@labs.mozilla.com/content/browser.css +extensions/testpilot@labs.mozilla.com/content/browser.js +extensions/testpilot@labs.mozilla.com/content/debug.html +extensions/testpilot@labs.mozilla.com/content/experiment-page.js +extensions/testpilot@labs.mozilla.com/content/feedback-browser.xul +extensions/testpilot@labs.mozilla.com/content/flot/jquery.colorhelpers.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.colorhelpers.min.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.flot.crosshair.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.flot.crosshair.min.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.flot.image.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.flot.image.min.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.flot.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.flot.min.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.flot.navigate.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.flot.navigate.min.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.flot.selection.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.flot.selection.min.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.flot.stack.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.flot.stack.min.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.flot.threshold.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.flot.threshold.min.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.js +extensions/testpilot@labs.mozilla.com/content/flot/jquery.min.js +extensions/testpilot@labs.mozilla.com/content/raw-data-dialog.js +extensions/testpilot@labs.mozilla.com/content/raw-data-dialog.xul +extensions/testpilot@labs.mozilla.com/content/screen.css +extensions/testpilot@labs.mozilla.com/content/status-quit.html +extensions/testpilot@labs.mozilla.com/content/status.html +extensions/testpilot@labs.mozilla.com/content/survey-generator.js +extensions/testpilot@labs.mozilla.com/content/take-survey.html +extensions/testpilot@labs.mozilla.com/content/tp-browser.xul +extensions/testpilot@labs.mozilla.com/content/welcome-page.js +extensions/testpilot@labs.mozilla.com/content/welcome.html +extensions/testpilot@labs.mozilla.com/content/window-utils.js +extensions/testpilot@labs.mozilla.com/defaults/preferences/preferences.js +extensions/testpilot@labs.mozilla.com/install.rdf +extensions/testpilot@labs.mozilla.com/instrument/chrome.manifest +extensions/testpilot@labs.mozilla.com/instrument/install.rdf +extensions/testpilot@labs.mozilla.com/instrument/instrument.jsm +extensions/testpilot@labs.mozilla.com/instrument/instrument.xul +extensions/testpilot@labs.mozilla.com/modules/dbutils.js +extensions/testpilot@labs.mozilla.com/modules/experiment_data_store.js +extensions/testpilot@labs.mozilla.com/modules/extension-update.js +extensions/testpilot@labs.mozilla.com/modules/feedback.js +extensions/testpilot@labs.mozilla.com/modules/jar-code-store.js +extensions/testpilot@labs.mozilla.com/modules/lib/cuddlefish.js +extensions/testpilot@labs.mozilla.com/modules/lib/memory.js +extensions/testpilot@labs.mozilla.com/modules/lib/observer-service.js +extensions/testpilot@labs.mozilla.com/modules/lib/plain-text-console.js +extensions/testpilot@labs.mozilla.com/modules/lib/preferences-service.js +extensions/testpilot@labs.mozilla.com/modules/lib/securable-module.js +extensions/testpilot@labs.mozilla.com/modules/lib/timer.js +extensions/testpilot@labs.mozilla.com/modules/lib/traceback.js +extensions/testpilot@labs.mozilla.com/modules/lib/unit-test.js +extensions/testpilot@labs.mozilla.com/modules/lib/unload.js +extensions/testpilot@labs.mozilla.com/modules/lib/url.js +extensions/testpilot@labs.mozilla.com/modules/log4moz.js +extensions/testpilot@labs.mozilla.com/modules/metadata.js +extensions/testpilot@labs.mozilla.com/modules/Observers.js +extensions/testpilot@labs.mozilla.com/modules/remote-experiment-loader.js +extensions/testpilot@labs.mozilla.com/modules/setup.js +extensions/testpilot@labs.mozilla.com/modules/string_sanitizer.js +extensions/testpilot@labs.mozilla.com/modules/tasks.js +extensions/testpilot@labs.mozilla.com/skin/all/badge-default.png +extensions/testpilot@labs.mozilla.com/skin/all/bg.jpg +extensions/testpilot@labs.mozilla.com/skin/all/css/screen-standalone.css +extensions/testpilot@labs.mozilla.com/skin/all/dino_32x32.png +extensions/testpilot@labs.mozilla.com/skin/all/images/bg-status.jpg +extensions/testpilot@labs.mozilla.com/skin/all/images/callout.png +extensions/testpilot@labs.mozilla.com/skin/all/images/callout_continue.png +extensions/testpilot@labs.mozilla.com/skin/all/images/data1.jpg +extensions/testpilot@labs.mozilla.com/skin/all/images/data2.jpg +extensions/testpilot@labs.mozilla.com/skin/all/images/home_comments.png +extensions/testpilot@labs.mozilla.com/skin/all/images/home_computer.png +extensions/testpilot@labs.mozilla.com/skin/all/images/home_continue.png +extensions/testpilot@labs.mozilla.com/skin/all/images/home_quit.png +extensions/testpilot@labs.mozilla.com/skin/all/images/home_results.png +extensions/testpilot@labs.mozilla.com/skin/all/images/home_twitter.png +extensions/testpilot@labs.mozilla.com/skin/all/images/home_upcoming.png +extensions/testpilot@labs.mozilla.com/skin/all/logo.png +extensions/testpilot@labs.mozilla.com/skin/all/mozilla-logo.png +extensions/testpilot@labs.mozilla.com/skin/all/status-completed.png +extensions/testpilot@labs.mozilla.com/skin/all/status-ejected.png +extensions/testpilot@labs.mozilla.com/skin/all/status-missed.png +extensions/testpilot@labs.mozilla.com/skin/all/testpilot_16x16.png +extensions/testpilot@labs.mozilla.com/skin/all/testPilot_200x200.png +extensions/testpilot@labs.mozilla.com/skin/all/testpilot_32x32.png +extensions/testpilot@labs.mozilla.com/skin/all/tp-completedstudies-32x32.png +extensions/testpilot@labs.mozilla.com/skin/all/tp-currentstudies-32x32.png +extensions/testpilot@labs.mozilla.com/skin/all/tp-generic-32x32.png +extensions/testpilot@labs.mozilla.com/skin/all/tp-learned-32x32.png +extensions/testpilot@labs.mozilla.com/skin/all/tp-results-48x48.png +extensions/testpilot@labs.mozilla.com/skin/all/tp-settings-32x32.png +extensions/testpilot@labs.mozilla.com/skin/all/tp-study-48x48.png +extensions/testpilot@labs.mozilla.com/skin/all/tp-submit-48x48.png +extensions/testpilot@labs.mozilla.com/skin/linux/close_button.png +extensions/testpilot@labs.mozilla.com/skin/linux/feedback-frown-16x16.png +extensions/testpilot@labs.mozilla.com/skin/linux/feedback-smile-16x16.png +extensions/testpilot@labs.mozilla.com/skin/linux/feedback.css +extensions/testpilot@labs.mozilla.com/skin/mac/close_button.png +extensions/testpilot@labs.mozilla.com/skin/mac/feedback-frown-16x16.png +extensions/testpilot@labs.mozilla.com/skin/mac/feedback-smile-16x16.png +extensions/testpilot@labs.mozilla.com/skin/mac/feedback.css +extensions/testpilot@labs.mozilla.com/skin/mac/notification-tail-down.png +extensions/testpilot@labs.mozilla.com/skin/mac/notification-tail-up.png +extensions/testpilot@labs.mozilla.com/skin/win/close_button.png +extensions/testpilot@labs.mozilla.com/skin/win/feedback-frown-16x16.png +extensions/testpilot@labs.mozilla.com/skin/win/feedback-smile-16x16.png +extensions/testpilot@labs.mozilla.com/skin/win/feedback.css +extensions/testpilot@labs.mozilla.com/skin/win/notification-tail-down.png +extensions/testpilot@labs.mozilla.com/skin/win/notification-tail-up.png +extensions/testpilot@labs.mozilla.com/tests/test_data_store.js +extensions/uriloader@pdf.js.xpi +greprefs/all.js +greprefs/security-prefs.js +greprefs/xpinstall.js +install.rdf +modules/JSON.jsm +modules/SpatialNavigation.js +modules/utils.js +mozilla-runtime@BIN_SUFFIX@ +old-homepage-default.properties +README.txt +res/arrow.gif +res/arrowd.gif +res/broken-image.gif +res/broken-image.png +res/charsetData.properties +res/charsetalias.properties +res/cmessage.txt +res/fonts/fontEncoding.properties +res/fonts/fontNameMap.properties +res/fonts/mathfontCMEX10.properties +res/fonts/mathfontCMSY10.properties +res/fonts/mathfontMTExtra.properties +res/fonts/mathfontMath1.properties +res/fonts/mathfontMath2.properties +res/fonts/mathfontMath4.properties +res/fonts/mathfontPUA.properties +res/fonts/pangoFontEncoding.properties +res/forms.css +res/full-screen-override.css +res/hiddenWindow.html +res/html.css +res/html/gopher-audio.gif +res/html/gopher-binary.gif +res/html/gopher-find.gif +res/html/gopher-image.gif +res/html/gopher-menu.gif +res/html/gopher-movie.gif +res/html/gopher-sound.gif +res/html/gopher-telnet.gif +res/html/gopher-text.gif +res/html/gopher-unknown.gif +res/loading-image.gif +res/loading-image.png +res/maccharset.properties +res/mathml.css +res/os2charset.properties +res/quirk.css +res/ua.css +res/unixcharset.properties +res/viewsource.css +res/wincharset.properties +#ifdef XP_MACOSX +run-mozilla.sh +#endif +searchplugins/DRAE.gif +searchplugins/DRAE.png +searchplugins/DRAE.src +searchplugins/MediaDICO-fr.gif +searchplugins/MediaDICO-fr.png +searchplugins/MediaDICO-fr.src +searchplugins/allegro-pl.gif +searchplugins/allegro-pl.png +searchplugins/allegro-pl.src +searchplugins/amazon-de.gif +searchplugins/amazon-de.png +searchplugins/amazon-de.src +searchplugins/amazon-en-GB.gif +searchplugins/amazon-en-GB.png +searchplugins/amazon-en-GB.src +searchplugins/amazon-france.gif +searchplugins/amazon-france.png +searchplugins/amazon-france.src +searchplugins/amazon-jp.gif +searchplugins/amazon-jp.png +searchplugins/amazon-jp.src +searchplugins/amazondotcom-zh-TW.gif +searchplugins/amazondotcom-zh-TW.png +searchplugins/amazondotcom-zh-TW.src +searchplugins/amazondotcom.gif +searchplugins/amazondotcom.png +searchplugins/amazondotcom.png +searchplugins/amazondotcom.src +searchplugins/amazondotcom.src +searchplugins/answers.gif +searchplugins/answers.png +searchplugins/answers.png +searchplugins/answers.src +searchplugins/answers.src +searchplugins/atlas-sk.gif +searchplugins/atlas-sk.png +searchplugins/atlas-sk.src +searchplugins/baidu.gif +searchplugins/baidu.png +searchplugins/baidu.src +searchplugins/bluu.xml +searchplugins/bok-NO.gif +searchplugins/bok-NO.png +searchplugins/bok-NO.src +searchplugins/bolcom-nl.gif +searchplugins/bolcom-nl.png +searchplugins/bolcom-nl.src +searchplugins/bookplus-fi.gif +searchplugins/bookplus-fi.png +searchplugins/bookplus-fi.src +searchplugins/caplex-NO.gif +searchplugins/caplex-NO.png +searchplugins/caplex-NO.src +searchplugins/centrum-cz.gif +searchplugins/centrum-cz.png +searchplugins/centrum-cz.src +searchplugins/centrum-cz.xml +searchplugins/creativecommons-fi.gif +searchplugins/creativecommons-fi.png +searchplugins/creativecommons-fi.src +searchplugins/creativecommons-it.gif +searchplugins/creativecommons-it.png +searchplugins/creativecommons-it.src +searchplugins/creativecommons-zh-TW.gif +searchplugins/creativecommons-zh-TW.png +searchplugins/creativecommons-zh-TW.src +searchplugins/creativecommons.gif +searchplugins/creativecommons.png +searchplugins/creativecommons.png +searchplugins/creativecommons.src +searchplugins/creativecommons.src +searchplugins/daum-ko.gif +searchplugins/daum-ko.png +searchplugins/daum-ko.src +searchplugins/demauro-it.gif +searchplugins/demauro-it.png +searchplugins/demauro-it.src +searchplugins/dictionary-en-GB.gif +searchplugins/dictionary-en-GB.png +searchplugins/dictionary-en-GB.src +searchplugins/dictionary.png +searchplugins/dictionary.src +searchplugins/dunaj-sk.gif +searchplugins/dunaj-sk.png +searchplugins/dunaj-sk.src +searchplugins/eBay-de.gif +searchplugins/eBay-de.png +searchplugins/eBay-de.src +searchplugins/eBay-en-GB.gif +searchplugins/eBay-en-GB.png +searchplugins/eBay-en-GB.src +searchplugins/eBay-france.gif +searchplugins/eBay-france.png +searchplugins/eBay-france.src +searchplugins/eBay-fy-NL.xml +searchplugins/eBay-gu.gif +searchplugins/eBay-gu.png +searchplugins/eBay-gu.src +searchplugins/eBay-nl.gif +searchplugins/eBay-nl.png +searchplugins/eBay-nl.src +searchplugins/eBay-nl.xml +searchplugins/eBay-zh-CN.gif +searchplugins/eBay-zh-CN.png +searchplugins/eBay-zh-CN.src +searchplugins/eBay-zh-CN.xml +searchplugins/eBay-zh-TW.gif +searchplugins/eBay-zh-TW.png +searchplugins/eBay-zh-TW.src +searchplugins/eBay-zh-TW.xml +searchplugins/eBay.gif +searchplugins/eBay.gif +searchplugins/eBay.png +searchplugins/eBay.src +searchplugins/eBay.src +searchplugins/ebay-it.gif +searchplugins/ebay-it.png +searchplugins/ebay-it.src +searchplugins/filesearchru.gif +searchplugins/filesearchru.png +searchplugins/filesearchru.src +searchplugins/filesearchru.xml +searchplugins/goo.gif +searchplugins/goo.png +searchplugins/goo.src +searchplugins/goo.xml +searchplugins/google-NO.gif +searchplugins/google-NO.png +searchplugins/google-NO.src +searchplugins/google-ar.gif +searchplugins/google-ar.png +searchplugins/google-ar.src +searchplugins/google-ar.xml +searchplugins/google-bg.gif +searchplugins/google-bg.png +searchplugins/google-bg.src +searchplugins/google-ca.gif +searchplugins/google-ca.png +searchplugins/google-ca.src +searchplugins/google-de.gif +searchplugins/google-de.png +searchplugins/google-de.src +searchplugins/google-dk.gif +searchplugins/google-dk.png +searchplugins/google-dk.src +searchplugins/google-en-GB.gif +searchplugins/google-en-GB.png +searchplugins/google-en-GB.src +searchplugins/google-es-ES.gif +searchplugins/google-es-ES.png +searchplugins/google-es-ES.src +searchplugins/google-eu.gif +searchplugins/google-eu.png +searchplugins/google-eu.src +searchplugins/google-fi.gif +searchplugins/google-fi.png +searchplugins/google-fi.src +searchplugins/google-ga-IE.gif +searchplugins/google-ga-IE.png +searchplugins/google-ga-IE.src +searchplugins/google-gu.gif +searchplugins/google-gu.png +searchplugins/google-gu.src +searchplugins/google-it.gif +searchplugins/google-it.png +searchplugins/google-it.src +searchplugins/google-jp.gif +searchplugins/google-jp.png +searchplugins/google-jp.src +searchplugins/google-ko.gif +searchplugins/google-ko.png +searchplugins/google-ko.src +searchplugins/google-lt.gif +searchplugins/google-lt.png +searchplugins/google-lt.src +searchplugins/google-nl.gif +searchplugins/google-nl.png +searchplugins/google-nl.src +searchplugins/google-pl.gif +searchplugins/google-pl.png +searchplugins/google-pl.src +searchplugins/google-pt-BR.gif +searchplugins/google-pt-BR.png +searchplugins/google-pt-BR.src +searchplugins/google-ro.gif +searchplugins/google-ro.png +searchplugins/google-ro.src +searchplugins/google-ru.gif +searchplugins/google-ru.png +searchplugins/google-ru.src +searchplugins/google-sl.gif +searchplugins/google-sl.png +searchplugins/google-sl.src +searchplugins/google-zh-TW.gif +searchplugins/google-zh-TW.png +searchplugins/google-zh-TW.src +searchplugins/google.gif +searchplugins/google.gif +searchplugins/google.png +searchplugins/google.src +searchplugins/google.src +searchplugins/grandiccionari.gif +searchplugins/grandiccionari.png +searchplugins/grandiccionari.src +searchplugins/grandiccionari.xml +searchplugins/huuto-fi.gif +searchplugins/huuto-fi.png +searchplugins/huuto-fi.src +searchplugins/jyxo-cz.gif +searchplugins/jyxo-cz.png +searchplugins/jyxo-cz.src +searchplugins/lingvo.yandex.ru.gif +searchplugins/lingvo.yandex.ru.png +searchplugins/lingvo.yandex.ru.src +searchplugins/lingvo.yandex.ru.xml +searchplugins/llibres.gif +searchplugins/llibres.png +searchplugins/llibres.src +searchplugins/mall-cz.gif +searchplugins/mall-cz.png +searchplugins/mall-cz.src +searchplugins/mercadolivre-com-br.gif +searchplugins/mercadolivre-com-br.png +searchplugins/mercadolivre-com-br.src +searchplugins/merlin-pl.gif +searchplugins/merlin-pl.png +searchplugins/merlin-pl.src +searchplugins/najdi-si.gif +searchplugins/najdi-si.png +searchplugins/najdi-si.src +searchplugins/nana.xml +searchplugins/naver-ko.gif +searchplugins/naver-ko.png +searchplugins/naver-ko.src +searchplugins/netex.xml +searchplugins/nosaltres.gif +searchplugins/nosaltres.png +searchplugins/nosaltres.src +searchplugins/nosaltres.xml +searchplugins/pbi-pl.gif +searchplugins/pbi-pl.png +searchplugins/pbi-pl.src +searchplugins/pbi-pl.xml +searchplugins/priceru.gif +searchplugins/priceru.png +searchplugins/priceru.src +searchplugins/pwn-pl.gif +searchplugins/pwn-pl.png +searchplugins/pwn-pl.src +searchplugins/qxl-NO.gif +searchplugins/qxl-NO.png +searchplugins/qxl-NO.src +searchplugins/rakuten.gif +searchplugins/rakuten.png +searchplugins/rakuten.src +searchplugins/rambler.xml +searchplugins/seznam-cz.gif +searchplugins/seznam-cz.png +searchplugins/seznam-cz.src +searchplugins/sigov-gov-si.gif +searchplugins/sigov-gov-si.png +searchplugins/sigov-gov-si.src +searchplugins/slunecnice-cz.gif +searchplugins/slunecnice-cz.png +searchplugins/slunecnice-cz.src +searchplugins/submarino-com-br.gif +searchplugins/submarino-com-br.png +searchplugins/submarino-com-br.src +searchplugins/taobao.gif +searchplugins/taobao.png +searchplugins/taobao.src +searchplugins/taobao.xml +searchplugins/telefonkatalogen-NO.gif +searchplugins/telefonkatalogen-NO.png +searchplugins/telefonkatalogen-NO.src +searchplugins/termiadur.xml +searchplugins/universal-pt.gif +searchplugins/universal-pt.png +searchplugins/universal-pt.src +searchplugins/vandale-nl.gif +searchplugins/vandale-nl.png +searchplugins/vandale-nl.src +searchplugins/walla_sites.gif +searchplugins/walla_sites.png +searchplugins/walla_sites.src +searchplugins/wikipedia-bg.gif +searchplugins/wikipedia-bg.png +searchplugins/wikipedia-bg.src +searchplugins/wikipedia-ca.gif +searchplugins/wikipedia-ca.png +searchplugins/wikipedia-ca.src +searchplugins/wikipedia-de.gif +searchplugins/wikipedia-de.png +searchplugins/wikipedia-de.src +searchplugins/wikipedia-en-CN.xml +searchplugins/wikipedia-es-ES.gif +searchplugins/wikipedia-es-ES.png +searchplugins/wikipedia-es-ES.src +searchplugins/wikipedia-eu.gif +searchplugins/wikipedia-eu.png +searchplugins/wikipedia-eu.src +searchplugins/wikipedia-fi.gif +searchplugins/wikipedia-fi.png +searchplugins/wikipedia-fi.src +searchplugins/wikipedia-fr.gif +searchplugins/wikipedia-fr.png +searchplugins/wikipedia-fr.src +searchplugins/wikipedia-fy.gif +searchplugins/wikipedia-fy.png +searchplugins/wikipedia-fy.src +searchplugins/wikipedia-he.gif +searchplugins/wikipedia-he.png +searchplugins/wikipedia-he.src +searchplugins/wikipedia-it.gif +searchplugins/wikipedia-it.png +searchplugins/wikipedia-it.src +searchplugins/wikipedia-lt.gif +searchplugins/wikipedia-lt.png +searchplugins/wikipedia-lt.src +searchplugins/wikipedia-nl.gif +searchplugins/wikipedia-nl.png +searchplugins/wikipedia-nl.src +searchplugins/wikipedia-pl.gif +searchplugins/wikipedia-pl.png +searchplugins/wikipedia-pl.src +searchplugins/wikipedia-ru.gif +searchplugins/wikipedia-ru.png +searchplugins/wikipedia-ru.src +searchplugins/wikipedia-sk.gif +searchplugins/wikipedia-sk.png +searchplugins/wikipedia-sk.src +searchplugins/wikipedia-zh.xml +searchplugins/wp-pl.gif +searchplugins/wp-pl.png +searchplugins/wp-pl.src +searchplugins/yahoo-NO.gif +searchplugins/yahoo-NO.png +searchplugins/yahoo-NO.src +searchplugins/yahoo-ar.gif +searchplugins/yahoo-ar.png +searchplugins/yahoo-ar.src +searchplugins/yahoo-ca.gif +searchplugins/yahoo-ca.png +searchplugins/yahoo-ca.src +searchplugins/yahoo-cn.gif +searchplugins/yahoo-cn.png +searchplugins/yahoo-cn.src +searchplugins/yahoo-de.gif +searchplugins/yahoo-de.png +searchplugins/yahoo-de.src +searchplugins/yahoo-dk.gif +searchplugins/yahoo-dk.png +searchplugins/yahoo-dk.src +searchplugins/yahoo-en-GB.gif +searchplugins/yahoo-en-GB.png +searchplugins/yahoo-en-GB.src +searchplugins/yahoo-es-ES.gif +searchplugins/yahoo-es-ES.png +searchplugins/yahoo-es-ES.src +searchplugins/yahoo-fi.gif +searchplugins/yahoo-fi.png +searchplugins/yahoo-fi.src +searchplugins/yahoo-france.gif +searchplugins/yahoo-france.png +searchplugins/yahoo-france.src +searchplugins/yahoo-gu.gif +searchplugins/yahoo-gu.png +searchplugins/yahoo-gu.src +searchplugins/yahoo-it.gif +searchplugins/yahoo-it.png +searchplugins/yahoo-it.src +searchplugins/yahoo-jp-auctions.gif +searchplugins/yahoo-jp-auctions.png +searchplugins/yahoo-jp-auctions.src +searchplugins/yahoo-jp-shopping.gif +searchplugins/yahoo-jp-shopping.png +searchplugins/yahoo-jp-shopping.src +searchplugins/yahoo-jp-shopping.xml +searchplugins/yahoo-jp.gif +searchplugins/yahoo-jp.png +searchplugins/yahoo-jp.src +searchplugins/yahoo-kr.gif +searchplugins/yahoo-kr.png +searchplugins/yahoo-kr.src +searchplugins/yahoo-nl.gif +searchplugins/yahoo-nl.png +searchplugins/yahoo-nl.src +searchplugins/yahoo-pt-BR.gif +searchplugins/yahoo-pt-BR.png +searchplugins/yahoo-pt-BR.src +searchplugins/yahoo-ru.xml +searchplugins/yahoo-tw.gif +searchplugins/yahoo-tw.png +searchplugins/yahoo-tw.src +searchplugins/yahoo-zh-CN.xml +searchplugins/yahoo.gif +searchplugins/yahoo.gif +searchplugins/yahoo.png +searchplugins/yahoo.src +searchplugins/yahoo.src +searchplugins/yandex.gif +searchplugins/yandex.png +searchplugins/yandex.src +searchplugins/zoznam-sk.gif +searchplugins/zoznam-sk.png +searchplugins/zoznam-sk.src +uninstall/UninstallDeerPark.exe +uninstall/UninstallFirefox.exe +uninstall/uninst.exe +uninstall/uninstall.exe +#ifndef MOZ_UPDATER + #ifdef XP_MACOSX + updater.app/ + #else + updater@BIN_SUFFIX@ + #endif + updater.ini +#endif +xpicleanup@BIN_SUFFIX@ +#ifdef MOZ_OMNIJAR + update.locale + omni.jar + chrome/af.jar + chrome/af.manifest + chrome/ar.jar + chrome/ar.manifest + chrome/as.jar + chrome/as.manifest + chrome/ast.jar + chrome/ast.manifest + chrome/be.jar + chrome/be.manifest + chrome/bg.jar + chrome/bg.manifest + chrome/bn-BD.jar + chrome/bn-BD.manifest + chrome/bn-IN.jar + chrome/bn-IN.manifest + chrome/ca.jar + chrome/ca.manifest + chrome/cs.jar + chrome/cs.manifest + chrome/cy.jar + chrome/cy.manifest + chrome/da.jar + chrome/da.manifest + chrome/de.jar + chrome/de.manifest + chrome/el.jar + chrome/el.manifest + chrome/en-GB.jar + chrome/en-GB.manifest + chrome/en-US.jar + chrome/en-US.manifest + chrome/eo.jar + chrome/eo.manifest + chrome/es-AR.jar + chrome/es-AR.manifest + chrome/es-CL.jar + chrome/es-CL.manifest + chrome/es-ES.jar + chrome/es-ES.manifest + chrome/es-MX.jar + chrome/es-MX.manifest + chrome/et.jar + chrome/et.manifest + chrome/eu.jar + chrome/eu.manifest + chrome/fa.jar + chrome/fa.manifest + chrome/fi.jar + chrome/fi.manifest + chrome/fr.jar + chrome/fr.manifest + chrome/fy-NL.jar + chrome/fy-NL.manifest + chrome/ga-IE.jar + chrome/ga-IE.manifest + chrome/gd.jar + chrome/gd.manifest + chrome/gl.jar + chrome/gl.manifest + chrome/gu-IN.jar + chrome/gu-IN.manifest + chrome/he.jar + chrome/he.manifest + chrome/hi-IN.jar + chrome/hi-IN.manifest + chrome/hr.jar + chrome/hr.manifest + chrome/hu.jar + chrome/hu.manifest + chrome/id.jar + chrome/id.manifest + chrome/is.jar + chrome/is.manifest + chrome/it.jar + chrome/it.manifest + chrome/ja-JP-mac.jar + chrome/ja-JP-mac.manifest + chrome/ja.jar + chrome/ja.manifest + chrome/ka.jar + chrome/ka.manifest + chrome/kk.jar + chrome/kk.manifest + chrome/kn.jar + chrome/kn.manifest + chrome/ko.jar + chrome/ko.manifest + chrome/ku.jar + chrome/ku.manifest + chrome/lt.jar + chrome/lt.manifest + chrome/lv.jar + chrome/lv.manifest + chrome/mk.jar + chrome/mk.manifest + chrome/ml.jar + chrome/ml.manifest + chrome/mn.jar + chrome/mn.manifest + chrome/mr.jar + chrome/mr.manifest + chrome/nb-NO.jar + chrome/nb-NO.manifest + chrome/nl.jar + chrome/nl.manifest + chrome/nn-NO.jar + chrome/nn-NO.manifest + chrome/oc.jar + chrome/oc.manifest + chrome/or.jar + chrome/or.manifest + chrome/pa-IN.jar + chrome/pa-IN.manifest + chrome/pl.jar + chrome/pl.manifest + chrome/pt-BR.jar + chrome/pt-BR.manifest + chrome/pt-PT.jar + chrome/pt-PT.manifest + chrome/rm.jar + chrome/rm.manifest + chrome/ro.jar + chrome/ro.manifest + chrome/ru.jar + chrome/ru.manifest + chrome/si.jar + chrome/si.manifest + chrome/sk.jar + chrome/sk.manifest + chrome/sl.jar + chrome/sl.manifest + chrome/sq.jar + chrome/sq.manifest + chrome/sr.jar + chrome/sr.manifest + chrome/sv-SE.jar + chrome/sv-SE.manifest + chrome/ta-LK.jar + chrome/ta-LK.manifest + chrome/ta.jar + chrome/ta.manifest + chrome/te.jar + chrome/te.manifest + chrome/th.jar + chrome/th.manifest + chrome/tr.jar + chrome/tr.manifest + chrome/uk.jar + chrome/uk.manifest + chrome/vi.jar + chrome/vi.manifest + chrome/zh-CN.jar + chrome/zh-CN.manifest + chrome/zh-TW.jar + chrome/zh-TW.manifest + chrome/browser.jar + chrome/localized.manifest + chrome/nonlocalized.manifest + chrome/pippki.jar + chrome/toolkit.jar + components/addonManager.js + components/Aitc.js + components/AitcComponents.manifest + components/amContentHandler.js + components/amWebInstallListener.js + components/binary.manifest + components/browser.xpt + components/BrowserElementParent.js + components/BrowserElementParent.manifest + components/BrowserElementPromptService.jsm + components/BrowserElementParent.jsm + components/contentAreaDropListener.js + components/contentSecurityPolicy.js + components/crypto-SDR.js + components/FeedConverter.js + components/FeedProcessor.js + components/FeedWriter.js + components/fuelApplication.js + components/GPSDGeolocationProvider.js + components/interfaces.manifest + components/jsconsole-clhandler.js + components/MetricsCollectionService.js + components/NetworkGeolocationProvider.js + components/NotificationsComponents.manifest + components/nsBadCertHandler.js + components/nsBlocklistService.js + components/nsBrowserContentHandler.js + components/nsBrowserGlue.js + components/nsContentDispatchChooser.js + components/nsContentPrefService.js + components/nsDefaultCLH.js + components/nsDownloadManagerUI.js + #ifdef XP_UNIX + #ifndef XP_MACOSX + components/nsFilePicker.js + #endif + #endif + components/nsFormAutoComplete.js + components/nsFormHistory.js + components/nsHandlerService.js + components/nsHelperAppDlg.js + components/nsINIProcessor.js + components/nsLivemarkService.js + components/nsLoginInfo.js + components/nsLoginManager.js + components/nsLoginManagerPrompter.js + components/nsPlacesAutoComplete.js + components/nsPlacesDBFlush.js + components/nsPlacesExpiration.js + components/nsPrivateBrowsingService.js + components/nsPrompter.js + components/nsProxyAutoConfig.manifest + components/nsProxyAutoConfig.js + components/nsSafebrowsingApplication.js + components/nsSearchService.js + components/nsSearchSuggestions.js + components/nsSessionStartup.js + components/nsSessionStore.js + components/nsSetDefaultBrowser.js + components/nsSidebar.js + components/nsTaggingService.js + components/nsTryToClose.js + components/nsUpdateService.js + components/nsUpdateServiceStub.js + components/nsUpdateTimerManager.js + components/nsUrlClassifierLib.js + components/nsUrlClassifierListManager.js + components/nsURLFormatter.js + components/nsWebHandlerApp.js + components/PlacesProtocolHandler.js + components/storage-Legacy.js + components/storage-mozStorage.js +#ifdef MOZ_B2G_RIL + components/nsTelephonyWorker.manifest + components/nsTelephonyWorker.js + components/Telephony.manifest + components/Telephony.js + components/WifiWorker.js + components/WifiWorker.manifest + components/DOMWifiManager.js + components/DOMWifiManager.manifest +#endif + components/txEXSLTRegExFunctions.js + components/Weave.js + components/Webapps.js + components/Webapps.manifest + components/WebContentConverter.js + defaults/autoconfig/platform.js + defaults/autoconfig/prefcalls.js + defaults/pref/firefox-branding.js + defaults/pref/firefox.js + defaults/pref/firefox-l10n.js + defaults/pref/services-sync.js + defaults/profile/bookmarks.html + defaults/profile/chrome/userChrome-example.css + defaults/profile/chrome/userContent-example.css + defaults/profile/localstore.rdf + defaults/profile/mimeTypes.rdf + defaults/profile/prefs.js + greprefs.js + hyphenation/ + hyphenation/hyph_af.dic + hyphenation/hyph_bg.dic + hyphenation/hyph_ca.dic + hyphenation/hyph_cy.dic + hyphenation/hyph_da.dic + hyphenation/hyph_de-1901.dic + hyphenation/hyph_de-1996.dic + hyphenation/hyph_de-CH.dic + hyphenation/hyph_en_US.dic + hyphenation/hyph_eo.dic + hyphenation/hyph_es.dic + hyphenation/hyph_et.dic + hyphenation/hyph_fi.dic + hyphenation/hyph_fr.dic + hyphenation/hyph_gl.dic + hyphenation/hyph_hr.dic + hyphenation/hyph_hsb.dic + hyphenation/hyph_hu.dic + hyphenation/hyph_ia.dic + hyphenation/hyph_is.dic + hyphenation/hyph_it.dic + hyphenation/hyph_kmr.dic + hyphenation/hyph_la.dic + hyphenation/hyph_lt.dic + hyphenation/hyph_mn.dic + hyphenation/hyph_nb.dic + hyphenation/hyph_nl.dic + hyphenation/hyph_nn.dic + hyphenation/hyph_pt.dic + hyphenation/hyph_ru.dic + hyphenation/hyph_sh.dic + hyphenation/hyph_sl.dic + hyphenation/hyph_sv.dic + hyphenation/hyph_tr.dic + hyphenation/hyph_uk.dic + modules/AddonLogging.jsm + modules/AddonManager.jsm + modules/AddonRepository.jsm + modules/AddonUpdateChecker.jsm + modules/CertUtils.jsm + modules/CrashSubmit.jsm + modules/CSPUtils.jsm + modules/ctypes.jsm + modules/debug.js + modules/distribution.js + modules/DownloadLastDir.jsm + modules/DownloadPaths.jsm + #ifdef XP_WIN + modules/DownloadTaskbarProgress.jsm + #endif + modules/DownloadUtils.jsm + modules/FileUtils.jsm + modules/Geometry.jsm + modules/HUDService.jsm + modules/InlineSpellChecker.jsm + modules/ISO8601DateUtils.jsm + modules/LightweightThemeConsumer.jsm + modules/LightweightThemeManager.jsm + modules/Microformats.js + modules/NetUtil.jsm + modules/NetworkPrioritizer.jsm + modules/openLocationLastURL.jsm + modules/PerfMeasurement.jsm + modules/PlacesDBUtils.jsm + modules/PlacesUIUtils.jsm + modules/PlacesUtils.jsm + modules/PluginProvider.jsm + modules/PluralForm.jsm + modules/PopupNotifications.jsm + modules/reflect.jsm + modules/Services.jsm + modules/services-common/async.js + modules/services-common/log4moz.js + modules/services-common/observers.js + modules/services-common/preferences.js + modules/services-common/rest.js + modules/services-common/stringbundle.js + modules/services-common/utils.js + modules/services-notifications/service.js + modules/services-sync/auth.js + modules/services-sync/base_records/collection.js + modules/services-sync/base_records/crypto.js + modules/services-sync/base_records/keys.js + modules/services-sync/base_records/wbo.js + modules/services-sync/constants.js + modules/services-sync/engines/bookmarks.js + modules/services-sync/engines/clients.js + modules/services-sync/engines/forms.js + modules/services-sync/engines/history.js + modules/services-sync/engines.js + modules/services-sync/engines/passwords.js + modules/services-sync/engines/prefs.js + modules/services-sync/engines/tabs.js + modules/services-sync/ext/Observers.js + modules/services-sync/ext/Preferences.js + modules/services-sync/ext/StringBundle.js + modules/services-sync/ext/Sync.js + modules/services-sync/identity.js + modules/services-sync/log4moz.js + modules/services-sync/notifications.js + modules/services-sync/resource.js + modules/services-sync/service.js + modules/services-sync/status.js + modules/services-sync/stores.js + modules/services-sync/trackers.js + modules/services-sync/type_records/bookmark.js + modules/services-sync/type_records/clients.js + modules/services-sync/type_records/forms.js + modules/services-sync/type_records/history.js + modules/services-sync/type_records/passwords.js + modules/services-sync/type_records/prefs.js + modules/services-sync/type_records/tabs.js + modules/services-sync/util.js + modules/stylePanel.jsm + modules/tabview/AllTabs.jsm + modules/tabview/groups.jsm + modules/tabview/utils.jsm + modules/Webapps.jsm + modules/WindowDraggingUtils.jsm + #ifdef XP_WIN + modules/WindowsJumpLists.jsm + modules/WindowsPreviewPerTab.jsm + #endif + modules/XPCOMUtils.jsm + modules/XPIProvider.jsm + res/contenteditable.css + res/designmode.css + res/dtd/mathml.dtd + res/dtd/xhtml11.dtd + res/EditorOverride.css + res/entityTables/html40Latin1.properties + res/entityTables/html40Special.properties + res/entityTables/html40Symbols.properties + res/entityTables/htmlEntityVersions.properties + res/entityTables/mathml20.properties + res/entityTables/transliterate.properties + res/fonts/mathfont.properties + res/fonts/mathfontStandardSymbolsL.properties + res/fonts/mathfontSTIXNonUnicode.properties + res/fonts/mathfontSTIXSize1.properties + res/fonts/mathfontSTIXSizeOneSym.properties + #ifdef XP_WIN + res/fonts/mathfontSymbol.properties + #endif + res/fonts/mathfontUnicode.properties + res/grabber.gif + res/html/folder.png + res/langGroups.properties + res/language.properties + res/svg.css + res/table-add-column-after-active.gif + res/table-add-column-after.gif + res/table-add-column-after-hover.gif + res/table-add-column-before-active.gif + res/table-add-column-before.gif + res/table-add-column-before-hover.gif + res/table-add-row-after-active.gif + res/table-add-row-after.gif + res/table-add-row-after-hover.gif + res/table-add-row-before-active.gif + res/table-add-row-before.gif + res/table-add-row-before-hover.gif + res/table-remove-column-active.gif + res/table-remove-column.gif + res/table-remove-column-hover.gif + res/table-remove-row-active.gif + res/table-remove-row.gif + res/table-remove-row-hover.gif +#else + components/binary.manifest + omni.jar + omni.ja +#endif +#ifdef XP_MACOSX + ../Plug-Ins/PrintPDE.plugin/Contents/Info.plist + ../Plug-Ins/PrintPDE.plugin/Contents/MacOS/PrintPDE + ../Plug-Ins/PrintPDE.plugin/Contents/Resources/English.lproj/Localizable.strings + ../Plug-Ins/PrintPDE.plugin/Contents/Resources/English.lproj/PrintPDE.nib/classes.nib + ../Plug-Ins/PrintPDE.plugin/Contents/Resources/English.lproj/PrintPDE.nib/info.nib + ../Plug-Ins/PrintPDE.plugin/Contents/Resources/English.lproj/PrintPDE.nib/objects.xib + ../Resources/firefox-bin.rsrc + components/accessibility.xpt + components/alerts.xpt + components/appshell.xpt + components/appstartup.xpt + components/autoconfig.xpt + components/browser-feeds.xpt + components/browsercompsbase.xpt + components/browsersearch.xpt + components/caps.xpt + components/chardet.xpt + components/chrome.xpt + components/commandhandler.xpt + components/commandlines.xpt + components/composer.xpt + components/content.xpt + components/content_base.xpt + components/content_html.xpt + components/content_htmldoc.xpt + components/content_xmldoc.xpt + components/content_xslt.xpt + components/content_xtf.xpt + components/contentprefs.xpt + components/cookie.xpt + components/crashreporter.xpt + components/directory.xpt + components/docshell.xpt + components/dom.xpt + components/dom_apps.xpt + components/dom_base.xpt +#ifdef MOZ_B2G_RIL + components/dom_telephony.xpt + components/dom_wifi.xpt + components/dom_system_b2g.xpt +#endif + components/dom_canvas.xpt + components/dom_core.xpt + components/dom_css.xpt + components/dom_events.xpt + components/dom_geolocation.xpt + components/dom_devicestorage.xpt + components/dom_html.xpt + components/dom_json.xpt + components/dom_loadsave.xpt + components/dom_offline.xpt + components/dom_push.xpt + components/dom_range.xpt + components/dom_sidebar.xpt + components/dom_smil.xpt + components/dom_storage.xpt + components/dom_stylesheets.xpt + components/dom_svg.xpt + components/dom_threads.xpt + components/dom_traversal.xpt + components/dom_views.xpt + components/dom_xbl.xpt + components/dom_xpath.xpt + components/dom_xul.xpt + components/downloads.xpt + components/editor.xpt + components/embed_base.xpt + components/extensions.xpt + components/exthandler.xpt + components/exthelper.xpt + components/fastfind.xpt + components/feeds.xpt + components/find.xpt + components/firefox.xpt + components/fuel.xpt + components/gfx.xpt + components/gksvgrenderer.xpt + components/html5.xpt + components/htmlparser.xpt + components/imgicon.xpt + components/imglib2.xpt + components/inspector.xpt + components/intl.xpt + components/jar.xpt + components/jsconsole.xpt + components/jsdservice.xpt + components/layout_base.xpt + components/layout_printing.xpt + components/layout_xul.xpt + components/layout_xul_tree.xpt + components/locale.xpt + components/loginmgr.xpt + components/lwbrk.xpt + components/migration.xpt + components/mimetype.xpt + components/mozbrwsr.xpt + components/mozfind.xpt + components/necko.xpt + components/necko_about.xpt + components/necko_cache.xpt + components/necko_cookie.xpt + components/necko_data.xpt + components/necko_dns.xpt + components/necko_file.xpt + components/necko_ftp.xpt + components/necko_http.xpt + components/necko_res.xpt + components/necko_socket.xpt + components/necko_strconv.xpt + components/necko_viewsource.xpt + components/necko_wifi.xpt + components/nsKillAll.js + components/nsProgressDialog.js + components/nsResetPref.js + components/oji.xpt + components/parentalcontrols.xpt + components/passwordmgr.xpt + components/pipboot.xpt + components/pipnss.xpt + components/pippki.xpt + components/places.xpt + components/plugin.xpt + components/pref.xpt + components/prefetch.xpt + components/profile.xpt + components/progressDlg.xpt + components/proxyObjInst.xpt + components/rdf.xpt + components/safebrowsing.xpt + components/satchel.xpt + components/saxparser.xpt + components/search.xpt + components/sessionstore.xpt + components/shellservice.xpt + components/shistory.xpt + components/spellchecker.xpt + components/storage.xpt + components/toolkitprofile.xpt + components/toolkitsearch.xpt + components/txmgr.xpt + components/txtsvc.xpt + components/uconv.xpt + components/unicharutil.xpt + components/update.xpt + components/uriloader.xpt + components/url-classifier.xpt + components/urlformatter.xpt + components/webBrowser_core.xpt + components/webbrowserpersist.xpt + components/webshell_idls.xpt + components/websrvcs.xpt + components/widget.xpt + components/widget_cocoa.xpt + components/widget_mac.xpt + components/windowds.xpt + components/windowwatcher.xpt + components/xml-rpc.xpt + components/xpcom_base.xpt + components/xpcom_components.xpt + components/xpcom_ds.xpt + components/xpcom_io.xpt + components/xpcom_obsolete.xpt + components/xpcom_system.xpt + components/xpcom_threads.xpt + components/xpcom_xpti.xpt + components/xpconnect.xpt + components/xpinstall.xpt + components/xulapp.xpt + components/xuldoc.xpt + components/xultmpl.xpt + components/zipwriter.xpt + extensions/inspector@mozilla.org/chrome/chromelist.txt + init.d/README + libwidget.rsrc + plugin-container + plugins/Default Plugin.plugin/Contents/Info.plist + plugins/Default Plugin.plugin/Contents/MacOS/Default Plugin + plugins/Default Plugin.plugin/Contents/PkgInfo + plugins/Default Plugin.plugin/Contents/Resources/Default Plugin.rsrc + plugins/Default Plugin.plugin/Contents/Resources/English.lproj/InfoPlist.strings + plugins/DefaultPlugin.plugin/Contents/Info.plist + plugins/DefaultPlugin.plugin/Contents/MacOS/DefaultPlugin + plugins/DefaultPlugin.plugin/Contents/Resources/English.lproj/InfoPlist.strings + plugins/DefaultPlugin.plugin/Contents/Resources/plugin.png + plugins/JavaEmbeddingPlugin.bundle/Contents/Info.plist + plugins/JavaEmbeddingPlugin.bundle/Contents/MacOS/JavaEmbeddingPlugin + plugins/JavaEmbeddingPlugin.bundle/Contents/MacOS/JavaEmbeddingPlugin.policy + plugins/JavaEmbeddingPlugin.bundle/Contents/PkgInfo + plugins/JavaEmbeddingPlugin.bundle/Contents/Resources/English.lproj/InfoPlist.strings + plugins/JavaEmbeddingPlugin.bundle/Contents/Resources/Java/JavaEmbeddingPlugin.jar + plugins/MRJPlugin.plugin/Contents/Info.plist + plugins/MRJPlugin.plugin/Contents/MacOS/MRJPlugin + plugins/MRJPlugin.plugin/Contents/MacOS/MRJPlugin.jar + plugins/MRJPlugin.plugin/Contents/MacOS/MRJPlugin.policy + plugins/MRJPlugin.plugin/Contents/MacOS/MRJPlugin.properties + plugins/MRJPlugin.plugin/Contents/PkgInfo + plugins/MRJPlugin.plugin/Contents/Resources/English.lproj/InfoPlist.strings + plugins/MRJPlugin.plugin/Contents/Resources/MRJPlugin.rsrc + redo-prebinding.sh + res/bloatcycle.html + res/cursors/arrowN.tiff + res/cursors/arrowS.tiff + res/cursors/colResize.tiff + res/cursors/help.tiff + res/cursors/rowResize.tiff + res/cursors/sizeNE.tiff + res/cursors/sizeNESW.tiff + res/cursors/sizeNS.tiff + res/cursors/sizeNW.tiff + res/cursors/sizeNWSE.tiff + res/cursors/sizeSE.tiff + res/cursors/sizeSW.tiff + res/cursors/spin1.tiff + res/cursors/spin2.tiff + res/cursors/spin3.tiff + res/cursors/spin4.tiff + res/cursors/vtIBeam.tiff + res/cursors/zoomIn.tiff + res/cursors/zoomOut.tiff + res/cursors/CVS/Entries + res/cursors/CVS/Repository + res/cursors/CVS/Root + res/cursors/CVS/Tag + res/viewer.properties + updater.app/Contents/MacOS/updater.ini +#endif +#ifdef XP_UNIX + #ifndef XP_MACOSX + chrome/icons/default/default.xpm + components/libimgicon.so + dictionaries/PL.aff + dictionaries/PL.dic + icons/document.png + icons/mozicon16.xpm + icons/mozicon50.xpm + plugins/libnullplugin.so + readme.txt + #endif +#endif +#ifndef XP_WIN + res/fonts/mathfontSymbol.properties +#endif +#ifdef XP_WIN + components/brwsrcmp.dll + components/jsd3250.dll + components/nsPostUpdateWin.js + js3250.dll + mozcpp19.dll + mozcrt19.dll + #if MOZ_MSVC_REDIST != 1400 + Microsoft.VC80.CRT.manifest + msvcm80.dll + msvcp80.dll + msvcr80.dll + #endif + #if MOZ_MSVC_REDIST != 1500 + Microsoft.VC90.CRT.manifest + msvcm90.dll + msvcp90.dll + msvcr90.dll + #endif + #if MOZ_MSVC_REDIST != 1600 + msvcp100.dll + msvcr100.dll + #endif + #if MOZ_MSVC_REDIST != 1700 + msvcp110.dll + msvcr110.dll + #ifdef MOZ_METRO + vccorlib110.dll + #endif + #endif + #if MOZ_MSVC_REDIST != 1800 + msvcp120.dll + msvcr120.dll + #ifdef MOZ_METRO + vccorlib120.dll + #endif + #endif + plugins/npnul32.dll +#endif +@DLL_PREFIX@xpcom_core@DLL_SUFFIX@ +components/@DLL_PREFIX@jar50@DLL_SUFFIX@ +#ifdef XP_WIN + components/xpinstal.dll +#else + components/@DLL_PREFIX@jsd@DLL_SUFFIX@ + components/@DLL_PREFIX@xpinstall@DLL_SUFFIX@ +#endif +#ifndef MOZ_UPDATER + components/nsUpdateService.js + components/nsUpdateServiceStub.js +#endif +#Talkback +#ifdef XP_WIN + extensions/talkback@mozilla.org/components/BrandRes.dll + extensions/talkback@mozilla.org/components/fullsoft.dll + extensions/talkback@mozilla.org/components/master.ini + extensions/talkback@mozilla.org/components/talkback-l10n.ini + extensions/talkback@mozilla.org/components/talkback.cnt + extensions/talkback@mozilla.org/components/talkback.exe + extensions/talkback@mozilla.org/components/talkback.hlp + extensions/talkback@mozilla.org/InstallDisabled +#else + #ifdef XP_MACOSX + extensions/talkback@mozilla.org/components/talkback/master.ini + extensions/talkback@mozilla.org/components/talkback/talkback@DLL_SUFFIX@ + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Info.plist + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/MacOS/Talkback + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/pbdevelopment.plist + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/PkgInfo + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/delete.tiff + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/disable.tiff + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/enable.tiff + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/ArchivingSettings.nib/classes.nib + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/ArchivingSettings.nib/info.nib + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/ArchivingSettings.nib/objects.nib + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/InfoPlist.strings + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/IntroWizard.nib/classes.nib + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/IntroWizard.nib/info.nib + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/IntroWizard.nib/objects.nib + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/Localizable.strings + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/MainMenu.nib/objects.nib + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/ProxySettings.nib/classes.nib + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/ProxySettings.nib/info.nib + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/ProxySettings.nib/objects.nib + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/SendingSettings.nib/classes.nib + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/SendingSettings.nib/info.nib + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/English.lproj/SendingSettings.nib/objects.nib + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/KeyInfoKeys.plist + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/KeyInfoSections.plist + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/send.tiff + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/sort_ascending.tiff + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/sort_descending.tiff + extensions/talkback@mozilla.org/components/talkback/Talkback.app/Contents/Resources/Talkback.icns + #else + extensions/talkback@mozilla.org/components/talkback/talkback + extensions/talkback@mozilla.org/components/talkback/XTalkback.ad + extensions/talkback@mozilla.org/components/talkback/master.ini + extensions/talkback@mozilla.org/components/talkback/talkback.so + #endif +#endif +#Remove Talkback files from old location (in case user updates from 1.0.x) +components/BrandRes.dll +components/fullsoft.dll +components/master.ini +components/qfaservices.dll +components/qfaservices.xpt +components/talkback-l10n.ini +components/talkback.cnt +components/talkback.exe +components/talkback.hlp +components/libqfaservices.so +components/talkback/master.ini +components/talkback/talkback +components/talkback/talkback.so +components/talkback/XTalkback.ad +extensions/reporter@mozilla.org/install.rdf +extensions/reporter@mozilla.org/chrome.manifest +extensions/reporter@mozilla.org/chrome/reporter.jar +extensions/reporter@mozilla.org/defaults/preferences/reporter.js +#Remove Inspector (present from upgrades from Fx2/Fx3b3) +extensions/inspector@mozilla.org/install.rdf +extensions/inspector@mozilla.org/components/inspector-cmdline.js +extensions/inspector@mozilla.org/chrome.manifest +extensions/inspector@mozilla.org/chrome/inspector.jar +extensions/inspector@mozilla.org/defaults/preferences/inspector.js +extensions/inspector@mozilla.org/platform/WINNT/chrome/icons/default/winInspectorMain.ico +extensions/inspector@mozilla.org/components/inspector.xpt +extensions/inspector@mozilla.org/components/@DLL_PREFIX@inspector@DLL_SUFFIX@ +extensions/inspector@mozilla.org/chrome/icons/default/winInspectorMain.ico +components/nsPlacesTransactionsService.js +components/browserplaces.xpt +components/nsPlacesDBFlush.js +#ifndef MOZ_MAINTENANCE_SERVICE +maintenanceservice.exe +maintenanceservice_installer.exe +#endif +jssubloader/ diff --git a/config/createprecomplete.py b/config/createprecomplete.py index 2c39306edc9..7fe81093bc8 100644 --- a/config/createprecomplete.py +++ b/config/createprecomplete.py @@ -11,7 +11,8 @@ import os def get_build_entries(root_path): """ Iterates through the root_path, creating a list for each file and - directory. Excludes any file paths ending with channel-prefs.js. + directory. Excludes any path starting with extensions or distribution + and paths ending with channel-prefs.js. """ rel_file_path_set = set() rel_dir_path_set = set() @@ -20,14 +21,18 @@ def get_build_entries(root_path): parent_dir_rel_path = root[len(root_path)+1:] rel_path_file = os.path.join(parent_dir_rel_path, file_name) rel_path_file = rel_path_file.replace("\\", "/") - if not (rel_path_file.endswith("channel-prefs.js")): + if not (rel_path_file.startswith("distribution/") or + rel_path_file.startswith("extensions/") or + rel_path_file.endswith("channel-prefs.js")): rel_file_path_set.add(rel_path_file) for dir_name in dirs: parent_dir_rel_path = root[len(root_path)+1:] rel_path_dir = os.path.join(parent_dir_rel_path, dir_name) rel_path_dir = rel_path_dir.replace("\\", "/")+"/" - rel_dir_path_set.add(rel_path_dir) + if not (rel_path_dir.startswith("distribution/") or + rel_path_dir.startswith("extensions/")): + rel_dir_path_set.add(rel_path_dir) rel_file_path_list = list(rel_file_path_set) rel_file_path_list.sort(reverse=True)