author | Wes Kocher <wkocher@mozilla.com> |
Thu, 08 May 2014 19:06:08 -0700 | |
changeset 182262 | cf89b5d018f8c2728c078e438315d9fcdb871ab8 |
parent 182251 | 3be3140b2b61311842d06f394af3d5b57a815562 (current diff) |
parent 182261 | dce9bf32da45fda2f78e337de554d0d50368b7fe (diff) |
child 182285 | c69b5ce078fe461777fde4b10e670f6fb70b0ccd |
child 182310 | 4c31d73a163fc95d013bb5559375759505a3d88f |
child 182322 | 25ea18ce57417a2dc142a06c5bbfd22fcb6222ae |
push id | 26754 |
push user | kwierso@gmail.com |
push date | Fri, 09 May 2014 02:06:18 +0000 |
treeherder | mozilla-central@cf89b5d018f8 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
milestone | 32.0a1 |
first release with | nightly linux32
cf89b5d018f8
/
32.0a1
/
20140509030227
/
files
nightly linux64
cf89b5d018f8
/
32.0a1
/
20140509030227
/
files
nightly mac
cf89b5d018f8
/
32.0a1
/
20140509030227
/
files
nightly win32
cf89b5d018f8
/
32.0a1
/
20140509030227
/
files
nightly win64
cf89b5d018f8
/
32.0a1
/
20140509030227
/
files
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
releases | nightly linux32
32.0a1
/
20140509030227
/
pushlog to previous
nightly linux64
32.0a1
/
20140509030227
/
pushlog to previous
nightly mac
32.0a1
/
20140509030227
/
pushlog to previous
nightly win32
32.0a1
/
20140509030227
/
pushlog to previous
nightly win64
32.0a1
/
20140509030227
/
pushlog to previous
|
dom/src/notification/ChromeNotifications.js | file | annotate | diff | comparison | revisions | |
dom/src/notification/ChromeNotifications.manifest | file | annotate | diff | comparison | revisions | |
dom/tests/mochitest/notification/test_notification_resend.html | file | annotate | diff | comparison | revisions | |
dom/webidl/ChromeNotifications.webidl | file | annotate | diff | comparison | revisions |
--- a/b2g/components/AlertsHelper.jsm +++ b/b2g/components/AlertsHelper.jsm @@ -139,18 +139,17 @@ let AlertsHelper = { gSystemMessenger.sendMessage(kNotificationSystemMessageName, { clicked: (detail.type === kDesktopNotificationClick), title: listener.title, body: listener.text, imageURL: listener.imageURL, lang: listener.lang, dir: listener.dir, id: listener.id, - tag: listener.tag, - timestamp: listener.timestamp + tag: listener.tag }, Services.io.newURI(listener.target, null, null), Services.io.newURI(listener.manifestURL, null, null) ); } } // we"re done with this notification @@ -190,30 +189,29 @@ let AlertsHelper = { listener.target = getNotificationURLFor(manifest.messages); // Bug 816944 - Support notification messages for entry_points. }); }, showNotification: function(imageURL, title, text, textClickable, cookie, - uid, bidi, lang, manifestURL, timestamp) { + uid, bidi, lang, manifestURL) { function send(appName, appIcon) { SystemAppProxy._sendCustomEvent(kMozChromeNotificationEvent, { type: kDesktopNotification, id: uid, icon: imageURL, title: title, text: text, bidi: bidi, lang: lang, appName: appName, appIcon: appIcon, - manifestURL: manifestURL, - timestamp: timestamp + manifestURL: manifestURL }); } if (!manifestURL || !manifestURL.length) { send(null, null); return; } @@ -245,23 +243,22 @@ let AlertsHelper = { mm: aMessage.target, title: data.title, text: data.text, manifestURL: details.manifestURL, imageURL: data.imageURL, lang: details.lang || undefined, id: details.id || undefined, dir: details.dir || undefined, - tag: details.tag || undefined, - timestamp: details.timestamp || undefined + tag: details.tag || undefined }; this.registerAppListener(data.uid, listener); this.showNotification(data.imageURL, data.title, data.text, details.textClickable, null, data.uid, details.dir, - details.lang, details.manifestURL, details.timestamp); + details.lang, details.manifestURL); }, closeAlert: function(name) { SystemAppProxy._sendCustomEvent(kMozChromeNotificationEvent, { type: kDesktopNotificationClose, id: name }); },
--- a/b2g/components/AlertsService.js +++ b/b2g/components/AlertsService.js @@ -38,17 +38,16 @@ function debug(str) { const kNotificationSystemMessageName = "notification"; const kMessageAppNotificationSend = "app-notification-send"; const kMessageAppNotificationReturn = "app-notification-return"; const kMessageAlertNotificationSend = "alert-notification-send"; const kMessageAlertNotificationClose = "alert-notification-close"; const kTopicAlertFinished = "alertfinished"; -const kTopicAlertClickCallback = "alertclickcallback"; function AlertsService() { Services.obs.addObserver(this, "xpcom-shutdown", false); cpmm.addMessageListener(kMessageAppNotificationReturn, this); } AlertsService.prototype = { classID: Components.ID("{fe33c107-82a4-41d6-8c64-5353267e04c9}"), @@ -99,18 +98,17 @@ AlertsService.prototype = { title: aTitle, text: aText, manifestURL: aDetails.manifestURL, imageURL: aImageURL, lang: aDetails.lang || undefined, id: aDetails.id || undefined, dbId: aDetails.dbId || undefined, dir: aDetails.dir || undefined, - tag: aDetails.tag || undefined, - timestamp: aDetails.timestamp || undefined + tag: aDetails.tag || undefined }; cpmm.sendAsyncMessage(kMessageAppNotificationSend, { imageURL: aImageURL, title: aTitle, text: aText, uid: uid, details: aDetails @@ -132,26 +130,24 @@ AlertsService.prototype = { try { listener.observer.observe(null, topic, null); } catch (e) { // It seems like there is no callbacks anymore, forward the click on // notification via a system message containing the title/text/icon of // the notification so the app get a change to react. if (data.target) { gSystemMessenger.sendMessage(kNotificationSystemMessageName, { - clicked: (topic === kTopicAlertClickCallback), title: listener.title, body: listener.text, imageURL: listener.imageURL, lang: listener.lang, dir: listener.dir, id: listener.id, tag: listener.tag, - dbId: listener.dbId, - timestamp: listener.timestamp + dbId: listener.dbId }, Services.io.newURI(data.target, null, null), Services.io.newURI(listener.manifestURL, null, null) ); } } // we're done with this notification
--- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -14,17 +14,17 @@ <!--original fetch url was git://github.com/apitrace/--> <remote fetch="https://git.mozilla.org/external/apitrace" name="apitrace"/> <default remote="caf" revision="refs/tags/android-4.0.4_r2.1" sync-j="4"/> <!-- Gonk specific things and forks --> <project name="platform_build" path="build" remote="b2g" revision="2a165bebfa19b11b697837409f9550dd2917c46c"> <copyfile dest="Makefile" src="core/root.mk"/> </project> <project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/> - <project name="gaia.git" path="gaia" remote="mozillaorg" revision="f4eb209f9c425692cda9230a9fd669f8f76a1c68"/> + <project name="gaia.git" path="gaia" remote="mozillaorg" revision="15ac34804eb8b3c9b2582d7cf754c57e23182df6"/> <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/> <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/> <project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="ca283b9db2b151d465cfd2e19346cf58fe89e413"/> <project name="platform_external_qemu" path="external/qemu" remote="b2g" revision="d5800c36b2d5822fc3fe1899b9280401de466e1e"/> <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/> <project name="apitrace" path="external/apitrace" remote="apitrace" revision="3691614d0045f7968addce45d4140fb360c3ceaf"/> <!-- Stock Android things --> <project name="platform/abi/cpp" path="abi/cpp" revision="dd924f92906085b831bf1cbbc7484d3c043d613c"/>
--- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -12,17 +12,17 @@ <!--original fetch url was https://git.mozilla.org/releases--> <remote fetch="https://git.mozilla.org/releases" name="mozillaorg"/> <!-- B2G specific things. --> <project name="platform_build" path="build" remote="b2g" revision="e6383e6e785cc3ea237e902beb1092f9aa88e29d"> <copyfile dest="Makefile" src="core/root.mk"/> </project> <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/> <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/> - <project name="gaia" path="gaia" remote="mozillaorg" revision="f4eb209f9c425692cda9230a9fd669f8f76a1c68"/> + <project name="gaia" path="gaia" remote="mozillaorg" revision="15ac34804eb8b3c9b2582d7cf754c57e23182df6"/> <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/> <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/> <project name="apitrace" path="external/apitrace" remote="apitrace" revision="3691614d0045f7968addce45d4140fb360c3ceaf"/> <project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/> <project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/> <!-- Stock Android things --> <project groups="linux" name="platform/prebuilts/clang/linux-x86/3.1" path="prebuilts/clang/linux-x86/3.1" revision="5c45f43419d5582949284eee9cef0c43d866e03b"/> <project groups="linux" name="platform/prebuilts/clang/linux-x86/3.2" path="prebuilts/clang/linux-x86/3.2" revision="3748b4168e7bd8d46457d4b6786003bc6a5223ce"/>
--- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -10,17 +10,17 @@ <!--original fetch url was git://codeaurora.org/--> <remote fetch="https://git.mozilla.org/external/caf" name="caf"/> <!--original fetch url was https://git.mozilla.org/releases--> <remote fetch="https://git.mozilla.org/releases" name="mozillaorg"/> <!-- B2G specific things. --> <project name="platform_build" path="build" remote="b2g" revision="65fba428f8d76336b33ddd9e15900357953600ba"> <copyfile dest="Makefile" src="core/root.mk"/> </project> - <project name="gaia" path="gaia" remote="mozillaorg" revision="f4eb209f9c425692cda9230a9fd669f8f76a1c68"/> + <project name="gaia" path="gaia" remote="mozillaorg" revision="15ac34804eb8b3c9b2582d7cf754c57e23182df6"/> <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/> <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/> <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/> <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/> <project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/> <project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/> <project name="apitrace" path="external/apitrace" remote="apitrace" revision="3691614d0045f7968addce45d4140fb360c3ceaf"/> <!-- Stock Android things -->
--- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -14,17 +14,17 @@ <!--original fetch url was git://github.com/apitrace/--> <remote fetch="https://git.mozilla.org/external/apitrace" name="apitrace"/> <default remote="caf" revision="refs/tags/android-4.0.4_r2.1" sync-j="4"/> <!-- Gonk specific things and forks --> <project name="platform_build" path="build" remote="b2g" revision="2a165bebfa19b11b697837409f9550dd2917c46c"> <copyfile dest="Makefile" src="core/root.mk"/> </project> <project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/> - <project name="gaia.git" path="gaia" remote="mozillaorg" revision="f4eb209f9c425692cda9230a9fd669f8f76a1c68"/> + <project name="gaia.git" path="gaia" remote="mozillaorg" revision="15ac34804eb8b3c9b2582d7cf754c57e23182df6"/> <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/> <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/> <project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="ca283b9db2b151d465cfd2e19346cf58fe89e413"/> <project name="platform_external_qemu" path="external/qemu" remote="b2g" revision="d5800c36b2d5822fc3fe1899b9280401de466e1e"/> <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/> <project name="apitrace" path="external/apitrace" remote="apitrace" revision="3691614d0045f7968addce45d4140fb360c3ceaf"/> <!-- Stock Android things --> <project name="platform/abi/cpp" path="abi/cpp" revision="dd924f92906085b831bf1cbbc7484d3c043d613c"/>
--- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -13,17 +13,17 @@ <remote fetch="https://git.mozilla.org/releases" name="mozillaorg"/> <!-- B2G specific things. --> <project name="platform_build" path="build" remote="b2g" revision="e6383e6e785cc3ea237e902beb1092f9aa88e29d"> <copyfile dest="Makefile" src="core/root.mk"/> </project> <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/> <project name="librecovery" path="librecovery" remote="b2g" revision="1f6a1fe07f81c5bc5e1d079c9b60f7f78ca2bf4f"/> <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/> - <project name="gaia" path="gaia" remote="mozillaorg" revision="f4eb209f9c425692cda9230a9fd669f8f76a1c68"/> + <project name="gaia" path="gaia" remote="mozillaorg" revision="15ac34804eb8b3c9b2582d7cf754c57e23182df6"/> <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/> <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/> <project name="apitrace" path="external/apitrace" remote="apitrace" revision="3691614d0045f7968addce45d4140fb360c3ceaf"/> <project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/> <project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/> <!-- Stock Android things --> <project groups="linux" name="platform/prebuilts/clang/linux-x86/3.1" path="prebuilts/clang/linux-x86/3.1" revision="e95b4ce22c825da44d14299e1190ea39a5260bde"/> <project groups="linux" name="platform/prebuilts/clang/linux-x86/3.2" path="prebuilts/clang/linux-x86/3.2" revision="471afab478649078ad7c75ec6b252481a59e19b8"/>
--- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { "git_revision": "", "remote": "", "branch": "" }, - "revision": "fbf868517b3026b39be4afac45883ddf76f6bc9d", + "revision": "5476e49adf00cafde6cb68e876f0514dac4b993d", "repo_path": "/integration/gaia-central" }
--- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -12,17 +12,17 @@ <!--original fetch url was git://github.com/apitrace/--> <remote fetch="https://git.mozilla.org/external/apitrace" name="apitrace"/> <default remote="caf" revision="b2g/ics_strawberry" sync-j="4"/> <!-- Gonk specific things and forks --> <project name="platform_build" path="build" remote="b2g" revision="2a165bebfa19b11b697837409f9550dd2917c46c"> <copyfile dest="Makefile" src="core/root.mk"/> </project> <project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/> - <project name="gaia.git" path="gaia" remote="mozillaorg" revision="f4eb209f9c425692cda9230a9fd669f8f76a1c68"/> + <project name="gaia.git" path="gaia" remote="mozillaorg" revision="15ac34804eb8b3c9b2582d7cf754c57e23182df6"/> <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/> <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/> <project name="librecovery" path="librecovery" remote="b2g" revision="1f6a1fe07f81c5bc5e1d079c9b60f7f78ca2bf4f"/> <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/> <project name="apitrace" path="external/apitrace" remote="apitrace" revision="3691614d0045f7968addce45d4140fb360c3ceaf"/> <!-- Stock Android things --> <project name="platform/abi/cpp" path="abi/cpp" revision="6426040f1be4a844082c9769171ce7f5341a5528"/> <project name="platform/bionic" path="bionic" revision="d2eb6c7b6e1bc7643c17df2d9d9bcb1704d0b9ab"/>
--- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -10,17 +10,17 @@ <!--original fetch url was https://git.mozilla.org/releases--> <remote fetch="https://git.mozilla.org/releases" name="mozillaorg"/> <default remote="caf" revision="b2g/ics_strawberry" sync-j="4"/> <!-- Gonk specific things and forks --> <project name="platform_build" path="build" remote="b2g" revision="2a165bebfa19b11b697837409f9550dd2917c46c"> <copyfile dest="Makefile" src="core/root.mk"/> </project> <project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/> - <project name="gaia.git" path="gaia" remote="mozillaorg" revision="f4eb209f9c425692cda9230a9fd669f8f76a1c68"/> + <project name="gaia.git" path="gaia" remote="mozillaorg" revision="15ac34804eb8b3c9b2582d7cf754c57e23182df6"/> <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/> <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/> <project name="librecovery" path="librecovery" remote="b2g" revision="1f6a1fe07f81c5bc5e1d079c9b60f7f78ca2bf4f"/> <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/> <project name="gonk-patches" path="patches" remote="b2g" revision="223a2421006e8f5da33f516f6891c87cae86b0f6"/> <!-- Stock Android things --> <project name="platform/abi/cpp" path="abi/cpp" revision="6426040f1be4a844082c9769171ce7f5341a5528"/> <project name="platform/bionic" path="bionic" revision="d2eb6c7b6e1bc7643c17df2d9d9bcb1704d0b9ab"/>
--- a/b2g/config/inari/sources.xml +++ b/b2g/config/inari/sources.xml @@ -14,17 +14,17 @@ <!--original fetch url was git://github.com/apitrace/--> <remote fetch="https://git.mozilla.org/external/apitrace" name="apitrace"/> <default remote="caf" revision="ics_chocolate_rb4.2" sync-j="4"/> <!-- Gonk specific things and forks --> <project name="platform_build" path="build" remote="b2g" revision="2a165bebfa19b11b697837409f9550dd2917c46c"> <copyfile dest="Makefile" src="core/root.mk"/> </project> <project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/> - <project name="gaia.git" path="gaia" remote="mozillaorg" revision="f4eb209f9c425692cda9230a9fd669f8f76a1c68"/> + <project name="gaia.git" path="gaia" remote="mozillaorg" revision="15ac34804eb8b3c9b2582d7cf754c57e23182df6"/> <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/> <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/> <project name="librecovery" path="librecovery" remote="b2g" revision="1f6a1fe07f81c5bc5e1d079c9b60f7f78ca2bf4f"/> <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/> <project name="apitrace" path="external/apitrace" remote="apitrace" revision="3691614d0045f7968addce45d4140fb360c3ceaf"/> <!-- Stock Android things --> <project name="platform/abi/cpp" path="abi/cpp" revision="6426040f1be4a844082c9769171ce7f5341a5528"/> <project name="platform/bionic" path="bionic" revision="cd5dfce80bc3f0139a56b58aca633202ccaee7f8"/>
--- a/b2g/config/leo/sources.xml +++ b/b2g/config/leo/sources.xml @@ -12,17 +12,17 @@ <!--original fetch url was git://github.com/apitrace/--> <remote fetch="https://git.mozilla.org/external/apitrace" name="apitrace"/> <default remote="caf" revision="b2g/ics_strawberry" sync-j="4"/> <!-- Gonk specific things and forks --> <project name="platform_build" path="build" remote="b2g" revision="2a165bebfa19b11b697837409f9550dd2917c46c"> <copyfile dest="Makefile" src="core/root.mk"/> </project> <project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/> - <project name="gaia.git" path="gaia" remote="mozillaorg" revision="f4eb209f9c425692cda9230a9fd669f8f76a1c68"/> + <project name="gaia.git" path="gaia" remote="mozillaorg" revision="15ac34804eb8b3c9b2582d7cf754c57e23182df6"/> <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/> <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/> <project name="librecovery" path="librecovery" remote="b2g" revision="1f6a1fe07f81c5bc5e1d079c9b60f7f78ca2bf4f"/> <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/> <project name="apitrace" path="external/apitrace" remote="apitrace" revision="3691614d0045f7968addce45d4140fb360c3ceaf"/> <project name="gonk-patches" path="patches" remote="b2g" revision="223a2421006e8f5da33f516f6891c87cae86b0f6"/> <!-- Stock Android things --> <project name="platform/abi/cpp" path="abi/cpp" revision="6426040f1be4a844082c9769171ce7f5341a5528"/>
--- a/b2g/config/mako/sources.xml +++ b/b2g/config/mako/sources.xml @@ -12,17 +12,17 @@ <!--original fetch url was https://git.mozilla.org/releases--> <remote fetch="https://git.mozilla.org/releases" name="mozillaorg"/> <!-- B2G specific things. --> <project name="platform_build" path="build" remote="b2g" revision="e6383e6e785cc3ea237e902beb1092f9aa88e29d"> <copyfile dest="Makefile" src="core/root.mk"/> </project> <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/> <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/> - <project name="gaia" path="gaia" remote="mozillaorg" revision="f4eb209f9c425692cda9230a9fd669f8f76a1c68"/> + <project name="gaia" path="gaia" remote="mozillaorg" revision="15ac34804eb8b3c9b2582d7cf754c57e23182df6"/> <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/> <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/> <project name="apitrace" path="external/apitrace" remote="apitrace" revision="3691614d0045f7968addce45d4140fb360c3ceaf"/> <project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/> <project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/> <!-- Stock Android things --> <project groups="linux" name="platform/prebuilts/clang/linux-x86/3.1" path="prebuilts/clang/linux-x86/3.1" revision="5c45f43419d5582949284eee9cef0c43d866e03b"/> <project groups="linux" name="platform/prebuilts/clang/linux-x86/3.2" path="prebuilts/clang/linux-x86/3.2" revision="3748b4168e7bd8d46457d4b6786003bc6a5223ce"/>
--- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -12,17 +12,17 @@ <!--original fetch url was git://github.com/apitrace/--> <remote fetch="https://git.mozilla.org/external/apitrace" name="apitrace"/> <default remote="caf" revision="ics_chocolate_rb4.2" sync-j="4"/> <!-- Gonk specific things and forks --> <project name="platform_build" path="build" remote="b2g" revision="2a165bebfa19b11b697837409f9550dd2917c46c"> <copyfile dest="Makefile" src="core/root.mk"/> </project> <project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/> - <project name="gaia.git" path="gaia" remote="mozillaorg" revision="f4eb209f9c425692cda9230a9fd669f8f76a1c68"/> + <project name="gaia.git" path="gaia" remote="mozillaorg" revision="15ac34804eb8b3c9b2582d7cf754c57e23182df6"/> <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/> <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/> <project name="librecovery" path="librecovery" remote="b2g" revision="1f6a1fe07f81c5bc5e1d079c9b60f7f78ca2bf4f"/> <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/> <project name="apitrace" path="external/apitrace" remote="apitrace" revision="3691614d0045f7968addce45d4140fb360c3ceaf"/> <project name="gonk-patches" path="patches" remote="b2g" revision="223a2421006e8f5da33f516f6891c87cae86b0f6"/> <!-- Stock Android things --> <project name="platform/abi/cpp" path="abi/cpp" revision="6426040f1be4a844082c9769171ce7f5341a5528"/>
--- a/b2g/installer/package-manifest.in +++ b/b2g/installer/package-manifest.in @@ -331,18 +331,16 @@ @BINPATH@/components/xpconnect.xpt @BINPATH@/components/xulapp.xpt @BINPATH@/components/xul.xpt @BINPATH@/components/xuldoc.xpt @BINPATH@/components/xultmpl.xpt @BINPATH@/components/zipwriter.xpt ; JavaScript components -@BINPATH@/components/ChromeNotifications.js -@BINPATH@/components/ChromeNotifications.manifest @BINPATH@/components/ConsoleAPI.manifest @BINPATH@/components/ConsoleAPIStorage.js @BINPATH@/components/BrowserElementParent.manifest @BINPATH@/components/BrowserElementParent.js @BINPATH@/components/ContactManager.js @BINPATH@/components/ContactManager.manifest @BINPATH@/components/PhoneNumberService.js @BINPATH@/components/PhoneNumberService.manifest
--- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in @@ -339,18 +339,16 @@ @BINPATH@/components/xulapp.xpt @BINPATH@/components/xul.xpt @BINPATH@/components/xuldoc.xpt @BINPATH@/components/xultmpl.xpt @BINPATH@/components/zipwriter.xpt @BINPATH@/components/telemetry.xpt ; JavaScript components -@BINPATH@/components/ChromeNotifications.js -@BINPATH@/components/ChromeNotifications.manifest @BINPATH@/components/ConsoleAPI.manifest @BINPATH@/components/ConsoleAPIStorage.js @BINPATH@/components/BrowserElementParent.manifest @BINPATH@/components/BrowserElementParent.js @BINPATH@/components/FeedProcessor.manifest @BINPATH@/components/FeedProcessor.js @BINPATH@/browser/components/BrowserFeeds.manifest @BINPATH@/browser/components/FeedConverter.js
--- a/dom/bindings/BindingUtils.cpp +++ b/dom/bindings/BindingUtils.cpp @@ -9,17 +9,16 @@ #include <algorithm> #include <stdarg.h> #include "JavaScriptParent.h" #include "mozilla/DebugOnly.h" #include "mozilla/FloatingPoint.h" #include "mozilla/Assertions.h" -#include "mozilla/Preferences.h" #include "AccessCheck.h" #include "jsfriendapi.h" #include "js/OldDebugAPI.h" #include "nsContentUtils.h" #include "nsIDOMGlobalPropertyInitializer.h" #include "nsIPrincipal.h" #include "nsIXPConnect.h" @@ -2151,38 +2150,30 @@ ConvertJSValueToByteString(JSContext* cx result.SetLength(length); return true; } bool IsInPrivilegedApp(JSContext* aCx, JSObject* aObj) { - if (Preferences::GetBool("dom.ignore_webidl_scope_checks", false)) { - return true; - } - using mozilla::dom::workers::GetWorkerPrivateFromContext; if (!NS_IsMainThread()) { return GetWorkerPrivateFromContext(aCx)->IsInPrivilegedApp(); } nsIPrincipal* principal = nsContentUtils::GetObjectPrincipal(aObj); uint16_t appStatus = principal->GetAppStatus(); return (appStatus == nsIPrincipal::APP_STATUS_CERTIFIED || appStatus == nsIPrincipal::APP_STATUS_PRIVILEGED); } bool IsInCertifiedApp(JSContext* aCx, JSObject* aObj) { - if (Preferences::GetBool("dom.ignore_webidl_scope_checks", false)) { - return true; - } - using mozilla::dom::workers::GetWorkerPrivateFromContext; if (!NS_IsMainThread()) { return GetWorkerPrivateFromContext(aCx)->IsInCertifiedApp(); } nsIPrincipal* principal = nsContentUtils::GetObjectPrincipal(aObj); return principal->GetAppStatus() == nsIPrincipal::APP_STATUS_CERTIFIED; }
--- a/dom/interfaces/notification/nsINotificationStorage.idl +++ b/dom/interfaces/notification/nsINotificationStorage.idl @@ -34,46 +34,41 @@ interface nsINotificationStorageCallback */ [implicit_jscontext] void done(); }; /** * Interface for notification persistence layer. */ -[scriptable, uuid(cc4656d7-2a2a-47f1-8016-55891e833d64)] +[scriptable, uuid(b177b080-2a23-11e3-8224-0800200c9a66)] interface nsINotificationStorage : nsISupports { /** * Add/replace a notification to the persistence layer. * * @param origin: the origin/app of this notification * @param id: a uuid for this notification * @param title: the notification title * @param dir: the notification direction, * possible values are "ltr", "rtl", "auto" * @param lang: the notification language * @param body: the notification body * @param tag: notification tag, will replace any existing * notifications with same origin/tag pair - * @param alertName: the alert identifier as used by system app. - * Stored in the database to avoid re-computing - * it. Built from origin and tag or id depending - * whether there is a tag defined. */ void put(in DOMString origin, in DOMString id, in DOMString title, in DOMString dir, in DOMString lang, in DOMString body, in DOMString tag, - in DOMString icon, - in DOMString alertName); + in DOMString icon); /** * Retrieve a list of notifications. * * @param origin: the origin/app for which to fetch notifications from * @param tag: used to fetch only a specific tag * @param callback: nsINotificationStorageCallback, used for * returning notifications objects
deleted file mode 100644 --- a/dom/src/notification/ChromeNotifications.js +++ /dev/null @@ -1,113 +0,0 @@ -/* 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/. */ - -"use strict"; - -const DEBUG = false; - -function debug(s) { - dump("-*- ChromeNotifications.js: " + s + "\n"); -} - -const Ci = Components.interfaces; -const Cu = Components.utils; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); - -XPCOMUtils.defineLazyModuleGetter(this, "Services", - "resource://gre/modules/Services.jsm"); - -XPCOMUtils.defineLazyServiceGetter(this, "cpmm", - "@mozilla.org/childprocessmessagemanager;1", - "nsIMessageSender"); - -XPCOMUtils.defineLazyServiceGetter(this, "appNotifier", - "@mozilla.org/system-alerts-service;1", - "nsIAppNotificationService"); - -const CHROMENOTIFICATIONS_CID = "{74f94093-8b37-497e-824f-c3b250a911da}"; -const CHROMENOTIFICATIONS_CONTRACTID = "@mozilla.org/mozChromeNotifications;1"; - -function ChromeNotifications() { - this.innerWindowID = null; - this.resendCallback = null; -} - -ChromeNotifications.prototype = { - - init: function(aWindow) { - let util = aWindow.QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsIDOMWindowUtils); - this.innerWindowID = util.currentInnerWindowID; - Services.obs.addObserver(this, "inner-window-destroyed", false); - cpmm.addMessageListener("Notification:GetAllCrossOrigin:Return:OK", this); - }, - - performResend: function(notifications) { - let resentNotifications = 0; - - notifications.forEach(function(notification) { - appNotifier.showAppNotification( - notification.icon, - notification.title, - notification.body, - null, - { - manifestURL: notification.origin, - id: notification.alertName, - dir: notification.dir, - lang: notification.lang, - tag: notification.tag, - dbId: notification.id, - timestamp: notification.timestamp - } - ); - resentNotifications++; - }); - - try { - this.resendCallback && this.resendCallback(resentNotifications); - } catch (ex) { - if (DEBUG) debug("Content sent exception: " + ex); - } - }, - - mozResendAllNotifications: function(resendCallback) { - this.resendCallback = resendCallback; - cpmm.sendAsyncMessage("Notification:GetAllCrossOrigin", {}); - }, - - receiveMessage: function(message) { - switch (message.name) { - case "Notification:GetAllCrossOrigin:Return:OK": - this.performResend(message.data.notifications); - break; - - default: - if (DEBUG) { debug("Unrecognized message: " + message.name); } - break; - } - }, - - observe: function(aSubject, aTopic, aData) { - if (DEBUG) debug("Topic: " + aTopic); - if (aTopic == "inner-window-destroyed") { - let wId = aSubject.QueryInterface(Ci.nsISupportsPRUint64).data; - if (wId != this.innerWindowID) { - return; - } - Services.obs.removeObserver(this, "inner-window-destroyed"); - cpmm.removeMessageListener("Notification:GetAllCrossOrigin:Return:OK", this); - } - }, - - classID : Components.ID(CHROMENOTIFICATIONS_CID), - contractID : CHROMENOTIFICATIONS_CONTRACTID, - QueryInterface: XPCOMUtils.generateQI([Ci.nsIChromeNotifications, - Ci.nsIDOMGlobalPropertyInitializer, - Ci.nsIObserver, - Ci.nsIMessageListener]), -}; - -this.NSGetFactory = XPCOMUtils.generateNSGetFactory([ChromeNotifications]);
deleted file mode 100644 --- a/dom/src/notification/ChromeNotifications.manifest +++ /dev/null @@ -1,3 +0,0 @@ -# ChromeNotifications.js -component {74f94093-8b37-497e-824f-c3b250a911da} ChromeNotifications.js -contract @mozilla.org/mozChromeNotifications;1 {74f94093-8b37-497e-824f-c3b250a911da}
--- a/dom/src/notification/Notification.cpp +++ b/dom/src/notification/Notification.cpp @@ -418,32 +418,16 @@ NotificationObserver::Observe(nsISupport Notification::Notification(const nsAString& aID, const nsAString& aTitle, const nsAString& aBody, NotificationDirection aDir, const nsAString& aLang, const nsAString& aTag, const nsAString& aIconUrl, nsPIDOMWindow* aWindow) : DOMEventTargetHelper(aWindow), mID(aID), mTitle(aTitle), mBody(aBody), mDir(aDir), mLang(aLang), mTag(aTag), mIconUrl(aIconUrl), mIsClosed(false) { - nsAutoString alertName; - DebugOnly<nsresult> rv = GetOrigin(GetOwner(), alertName); - MOZ_ASSERT(NS_SUCCEEDED(rv), "GetOrigin should not have failed"); - - // Get the notification name that is unique per origin + tag/ID. - // The name of the alert is of the form origin#tag/ID. - alertName.AppendLiteral("#"); - if (!mTag.IsEmpty()) { - alertName.Append(NS_LITERAL_STRING("tag:")); - alertName.Append(mTag); - } else { - alertName.Append(NS_LITERAL_STRING("notag:")); - alertName.Append(mID); - } - - mAlertName = alertName; } // static already_AddRefed<Notification> Notification::Constructor(const GlobalObject& aGlobal, const nsAString& aTitle, const NotificationOptions& aOptions, ErrorResult& aRv) @@ -473,29 +457,24 @@ Notification::Constructor(const GlobalOb nsString origin; aRv = GetOrigin(window, origin); if (aRv.Failed()) { return nullptr; } nsString id; notification->GetID(id); - - nsString alertName; - notification->GetAlertName(alertName); - aRv = notificationStorage->Put(origin, id, aTitle, DirectionToString(aOptions.mDir), aOptions.mLang, aOptions.mBody, aOptions.mTag, - aOptions.mIcon, - alertName); + aOptions.mIcon); if (aRv.Failed()) { return nullptr; } return notification.forget(); } already_AddRefed<Notification> @@ -573,16 +552,20 @@ Notification::ShowInternal() } } } } nsCOMPtr<nsIObserver> observer = new NotificationObserver(this); + nsString alertName; + rv = GetAlertName(alertName); + NS_ENSURE_SUCCESS_VOID(rv); + #ifdef MOZ_B2G nsCOMPtr<nsIAppNotificationService> appNotifier = do_GetService("@mozilla.org/system-alerts-service;1"); if (appNotifier) { nsCOMPtr<nsPIDOMWindow> window = GetOwner(); uint32_t appId = (window.get())->GetDoc()->NodePrincipal()->GetAppId(); if (appId != nsIScriptSecurityManager::UNKNOWN_APP_ID) { @@ -590,17 +573,17 @@ Notification::ShowInternal() nsString manifestUrl = EmptyString(); rv = appsService->GetManifestURLByLocalId(appId, manifestUrl); if (NS_SUCCEEDED(rv)) { mozilla::AutoSafeJSContext cx; JS::Rooted<JS::Value> val(cx); AppNotificationServiceOptions ops; ops.mTextClickable = true; ops.mManifestURL = manifestUrl; - ops.mId = mAlertName; + ops.mId = alertName; ops.mDbId = mID; ops.mDir = DirectionToString(mDir); ops.mLang = mLang; ops.mTag = mTag; if (!ops.ToObject(cx, &val)) { NS_WARNING("Converting dict to object failed!"); return; @@ -614,17 +597,17 @@ Notification::ShowInternal() } #endif // In the case of IPC, the parent process uses the cookie to map to // nsIObserver. Thus the cookie must be unique to differentiate observers. nsString uniqueCookie = NS_LITERAL_STRING("notification:"); uniqueCookie.AppendInt(sCount++); alertService->ShowAlertNotification(absoluteUrl, mTitle, mBody, true, - uniqueCookie, observer, mAlertName, + uniqueCookie, observer, alertName, DirectionToString(mDir), mLang, GetPrincipal()); } void Notification::RequestPermission(const GlobalObject& aGlobal, const Optional<OwningNonNull<NotificationPermissionCallback> >& aCallback, ErrorResult& aRv) @@ -783,18 +766,20 @@ Notification::CloseInternal() if (NS_SUCCEEDED(rv)) { notificationStorage->Delete(origin, mID); } } nsCOMPtr<nsIAlertsService> alertService = do_GetService(NS_ALERTSERVICE_CONTRACTID); if (alertService) { + nsString alertName; + rv = GetAlertName(alertName); if (NS_SUCCEEDED(rv)) { - alertService->CloseAlert(mAlertName, GetPrincipal()); + alertService->CloseAlert(alertName, GetPrincipal()); } } } } nsresult Notification::GetOrigin(nsPIDOMWindow* aWindow, nsString& aOrigin) { @@ -822,11 +807,29 @@ Notification::GetOrigin(nsPIDOMWindow* a do_GetService("@mozilla.org/AppsService;1", &rv); NS_ENSURE_SUCCESS(rv, rv); appsService->GetManifestURLByLocalId(appId, aOrigin); } return NS_OK; } +nsresult +Notification::GetAlertName(nsString& aAlertName) +{ + // Get the notification name that is unique per origin + tag/ID. + // The name of the alert is of the form origin#tag/ID. + nsresult rv = GetOrigin(GetOwner(), aAlertName); + NS_ENSURE_SUCCESS(rv, rv); + aAlertName.AppendLiteral("#"); + if (!mTag.IsEmpty()) { + aAlertName.Append(NS_LITERAL_STRING("tag:")); + aAlertName.Append(mTag); + } else { + aAlertName.Append(NS_LITERAL_STRING("notag:")); + aAlertName.Append(mID); + } + return NS_OK; +} + } // namespace dom } // namespace mozilla
--- a/dom/src/notification/Notification.h +++ b/dom/src/notification/Notification.h @@ -128,31 +128,26 @@ protected: if (aDirection.EqualsLiteral("rtl")) { return NotificationDirection::Rtl; } return NotificationDirection::Auto; } static nsresult GetOrigin(nsPIDOMWindow* aWindow, nsString& aOrigin); - void GetAlertName(nsAString& aRetval) - { - aRetval = mAlertName; - } + nsresult GetAlertName(nsString& aAlertName); nsString mID; nsString mTitle; nsString mBody; NotificationDirection mDir; nsString mLang; nsString mTag; nsString mIconUrl; - nsString mAlertName; - bool mIsClosed; static uint32_t sCount; private: nsIPrincipal* GetPrincipal(); };
--- a/dom/src/notification/NotificationDB.jsm +++ b/dom/src/notification/NotificationDB.jsm @@ -11,19 +11,16 @@ function debug(s) { dump("-*- Notificati const Cu = Components.utils; const Cc = Components.classes; const Ci = Components.interfaces; Cu.import("resource://gre/modules/XPCOMUtils.jsm"); Cu.import("resource://gre/modules/osfile.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "Services", - "resource://gre/modules/Services.jsm"); - XPCOMUtils.defineLazyServiceGetter(this, "ppmm", "@mozilla.org/parentprocessmessagemanager;1", "nsIMessageListenerManager"); XPCOMUtils.defineLazyGetter(this, "gEncoder", function() { return new TextEncoder(); }); @@ -31,63 +28,28 @@ XPCOMUtils.defineLazyGetter(this, "gDeco return new TextDecoder(); }); const NOTIFICATION_STORE_DIR = OS.Constants.Path.profileDir; const NOTIFICATION_STORE_PATH = OS.Path.join(NOTIFICATION_STORE_DIR, "notificationstore.json"); -const kMessages = [ - "Notification:Save", - "Notification:Delete", - "Notification:GetAll", - "Notification:GetAllCrossOrigin" -]; - let NotificationDB = { - - // Ensure we won't call init() while xpcom-shutdown is performed - _shutdownInProgress: false, - init: function() { - if (this._shutdownInProgress) { - return; - } - this.notifications = {}; this.byTag = {}; this.loaded = false; this.tasks = []; // read/write operation queue this.runningTask = false; - Services.obs.addObserver(this, "xpcom-shutdown", false); - this.registerListeners(); - }, - - registerListeners: function() { - for (let message of kMessages) { - ppmm.addMessageListener(message, this); - } - }, - - unregisterListeners: function() { - for (let message of kMessages) { - ppmm.removeMessageListener(message, this); - } - }, - - observe: function(aSubject, aTopic, aData) { - if (DEBUG) debug("Topic: " + aTopic); - if (aTopic == "xpcom-shutdown") { - this._shutdownInProgress = true; - Services.obs.removeObserver(this, "xpcom-shutdown"); - this.unregisterListeners(); - } + ppmm.addMessageListener("Notification:Save", this); + ppmm.addMessageListener("Notification:Delete", this); + ppmm.addMessageListener("Notification:GetAll", this); }, // Attempt to read notification file, if it's not there we will create it. load: function(callback) { var promise = OS.File.read(NOTIFICATION_STORE_PATH); promise.then( function onSuccess(data) { try { @@ -193,25 +155,16 @@ let NotificationDB = { this.queueTask("getall", message.data, function(notifications) { returnMessage("Notification:GetAll:Return:OK", { requestID: message.data.requestID, notifications: notifications }); }); break; - case "Notification:GetAllCrossOrigin": - this.queueTask("getallaccrossorigin", message.data, - function(notifications) { - returnMessage("Notification:GetAllCrossOrigin:Return:OK", { - notifications: notifications - }); - }); - break; - case "Notification:Save": this.queueTask("save", message.data, function() { returnMessage("Notification:Save:Return:OK", { requestID: message.data.requestID }); }); break; @@ -235,24 +188,24 @@ let NotificationDB = { this.tasks.push({ operation: operation, data: data, callback: callback }); // Only run immediately if we aren't currently running another task. if (!this.runningTask) { - if (DEBUG) { debug("Task queue was not running, starting now..."); } + if (DEBUG) { dump("Task queue was not running, starting now..."); } this.runNextTask(); } }, runNextTask: function() { if (this.tasks.length === 0) { - if (DEBUG) { debug("No more tasks to run, queue depleted"); } + if (DEBUG) { dump("No more tasks to run, queue depleted"); } this.runningTask = false; return; } this.runningTask = true; // Always make sure we are loaded before performing any read/write tasks. this.ensureLoaded(function() { var task = this.tasks.shift(); @@ -265,20 +218,16 @@ let NotificationDB = { this.runNextTask(); }.bind(this); switch (task.operation) { case "getall": this.taskGetAll(task.data, wrappedCallback); break; - case "getallaccrossorigin": - this.taskGetAllCrossOrigin(wrappedCallback); - break; - case "save": this.taskSave(task.data, wrappedCallback); break; case "delete": this.taskDelete(task.data, wrappedCallback); break; } @@ -291,37 +240,16 @@ let NotificationDB = { var notifications = []; // Grab only the notifications for specified origin. for (var i in this.notifications[origin]) { notifications.push(this.notifications[origin][i]); } callback(notifications); }, - taskGetAllCrossOrigin: function(callback) { - if (DEBUG) { debug("Task, getting all whatever origin"); } - var notifications = []; - for (var origin in this.notifications) { - for (var i in this.notifications[origin]) { - var notification = this.notifications[origin][i]; - - // Notifications without the alertName field cannot be resent by - // mozResendAllNotifications, so we just skip them. They will - // still be available to applications via Notification.get() - if (!('alertName' in notification)) { - continue; - } - - notification.origin = origin; - notifications.push(notification); - } - } - callback(notifications); - }, - taskSave: function(data, callback) { if (DEBUG) { debug("Task, saving"); } var origin = data.origin; var notification = data.notification; if (!this.notifications[origin]) { this.notifications[origin] = {}; this.byTag[origin] = {}; }
--- a/dom/src/notification/NotificationStorage.js +++ b/dom/src/notification/NotificationStorage.js @@ -31,28 +31,26 @@ function NotificationStorage() { this._requestCount = 0; // Register for message listeners. cpmm.addMessageListener("Notification:GetAll:Return:OK", this); } NotificationStorage.prototype = { - put: function(origin, id, title, dir, lang, body, tag, icon, alertName) { + put: function(origin, id, title, dir, lang, body, tag, icon) { if (DEBUG) { debug("PUT: " + id + ": " + title); } var notification = { id: id, title: title, dir: dir, lang: lang, body: body, tag: tag, - icon: icon, - alertName: alertName, - timestamp: new Date().getTime() + icon: icon }; this._notifications[id] = notification; if (tag) { // We might have existing notification with this tag, // if so we need to remove it from our cache. if (this._byTag[tag]) { var oldNotification = this._byTag[tag];
--- a/dom/src/notification/moz.build +++ b/dom/src/notification/moz.build @@ -1,17 +1,15 @@ # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- # vim: set filetype=python: # 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/. EXTRA_COMPONENTS += [ - 'ChromeNotifications.js', - 'ChromeNotifications.manifest', 'NotificationStorage.js', 'NotificationStorage.manifest', ] EXTRA_JS_MODULES += [ 'NotificationDB.jsm' ]
--- a/dom/src/notification/test/unit/test_notificationdb.js +++ b/dom/src/notification/test/unit/test_notificationdb.js @@ -331,121 +331,8 @@ add_test(function test_send_two_get_two( }); cpmm.sendAsyncMessage("Notification:Save", { origin: calendarNotification2.origin, notification: calendarNotification2, requestID: (requestID + 1) // 21 }); }); - -// Cleanup previous notification -add_test(function test_delete_previous() { - let requestID = 25; - let msgReply = "Notification:Delete:Return:OK"; - let msgHandler = function(message) { - do_check_eq(requestID, message.data.requestID); - }; - - addAndSend("Notification:Delete", msgReply, msgHandler, { - origin: systemNotification.origin, - id: "{8ef9a628-f0f4-44b4-820d-c117573c33e3}", - requestID: requestID - }); -}); - -// Store two notifications, one without alertName and one with -add_test(function test_send_two_alertName() { - let requestID = 30; - let notifications = [ - { - origin: "app://system.gaiamobile.org/manifest.webapp", - id: "{27ead857-4f43-457f-a770-93b82fbfc223}", - title: "Notification title", - dir: "auto", - lang: "", - body: "Notification body", - tag: "", - icon: "icon.png", - timestamp: new Date().getTime() - }, { - origin: "app://system.gaiamobile.org/manifest.webapp", - id: "{40275e04-58d0-47be-8cc7-540578f793a4}", - title: "Notification title", - dir: "auto", - lang: "", - body: "Notification body", - tag: "", - icon: "icon.png", - alertName: "alertName", - timestamp: new Date().getTime() - } - ]; - let origin = notifications[0].origin; - - let msgGetCrossOriginReply = "Notification:GetAllCrossOrigin:Return:OK"; - let msgGetCrossOriginHandler = { - receiveMessage: function(message) { - if (message.name === msgGetCrossOriginReply) { - cpmm.removeMessageListener( - msgGetCrossOriginReply, msgGetCrossOriginHandler); - - let gotNotifications = message.data.notifications; - - // we expect to have one notification - do_check_eq(1, gotNotifications.length); - - // compare the only notification we should have got back - compareNotification(gotNotifications[0], notifications[1]); - - run_next_test(); - } - } - }; - cpmm.addMessageListener(msgGetCrossOriginReply, msgGetCrossOriginHandler); - - let msgGetReply = "Notification:GetAll:Return:OK"; - let msgGetHandler = { - receiveMessage: function(message) { - if (message.name === msgGetReply) { - cpmm.removeMessageListener(msgGetReply, msgGetHandler); - - let gotNotifications = message.data.notifications; - - // we expect to have two notifications - do_check_eq(2, gotNotifications.length); - - // compare each notification - for (let i = 0; i < gotNotifications.length; i++) { - compareNotification(gotNotifications[i], notifications[i]); - } - - run_next_test(); - } - } - }; - cpmm.addMessageListener(msgGetReply, msgGetHandler); - - let msgSaveReply = "Notification:Save:Return:OK"; - let msgSaveCalls = 0; - let msgSaveHandler = { - receiveMessage: function(message) { - if (message.name === msgSaveReply) { - msgSaveCalls++; - if (msgSaveCalls === 2) { - cpmm.removeMessageListener(msgSaveReply, msgSaveHandler); - // Trigger getall - cpmm.sendAsyncMessage("Notification:GetAll", { - origin: origin - }); - } - } - } - }; - cpmm.addMessageListener(msgSaveReply, msgSaveHandler); - - notifications.forEach(function(n) { - cpmm.sendAsyncMessage("Notification:Save", { - origin: origin, - notification: n - }); - }); -});
--- a/dom/tests/mochitest/notification/MockServices.js +++ b/dom/tests/mochitest/notification/MockServices.js @@ -7,76 +7,51 @@ var MockServices = (function () { const MOCK_SYSTEM_ALERTS_CID = SpecialPowers.wrap(SpecialPowers.Components) .ID("{e86d888c-e41b-4b78-9104-2f2742a532de}"); const SYSTEM_ALERTS_SERVICE_CONTRACT_ID = "@mozilla.org/system-alerts-service;1"; var registrar = SpecialPowers.wrap(SpecialPowers.Components).manager .QueryInterface(SpecialPowers.Ci.nsIComponentRegistrar); - var activeAlertNotifications = Object.create(null); - - var activeAppNotifications = Object.create(null); + var activeNotifications = Object.create(null); var mockAlertsService = { showAlertNotification: function(imageUrl, title, text, textClickable, cookie, alertListener, name) { var listener = SpecialPowers.wrap(alertListener); - activeAlertNotifications[name] = { + activeNotifications[name] = { listener: listener, cookie: cookie }; // fake async alert show event - if (listener) { - setTimeout(function () { - listener.observe(null, "alertshow", cookie); - }, 100); - } + setTimeout(function () { + listener.observe(null, "alertshow", cookie); + }, 100); // ?? SpecialPowers.wrap(alertListener).observe(null, "alertclickcallback", cookie); }, - showAppNotification: function(aImageUrl, aTitle, aText, aAlertListener, aDetails) { - var listener = aAlertListener || (activeAlertNotifications[aDetails.id] ? activeAlertNotifications[aDetails.id].listener : undefined); - activeAppNotifications[aDetails.id] = { - observer: listener, - title: aTitle, - text: aText, - manifestURL: aDetails.manifestURL, - imageURL: aImageUrl, - lang: aDetails.lang || undefined, - id: aDetails.id || undefined, - dbId: aDetails.dbId || undefined, - dir: aDetails.dir || undefined, - tag: aDetails.tag || undefined, - timestamp: aDetails.timestamp || undefined - }; - this.showAlertNotification(aImageUrl, aTitle, aText, true, "", listener, aDetails.id); + showAppNotification: function(imageUrl, title, text, textClickable, + manifestURL, alertListener, name) { + this.showAlertNotification(imageUrl, title, text, textClickable, "", alertListener, name); }, closeAlert: function(name) { - var alertNotification = activeAlertNotifications[name]; - if (alertNotification) { - if (alertNotification.listener) { - alertNotification.listener.observe(null, "alertfinished", alertNotification.cookie); - } - delete activeAlertNotifications[name]; - } - - var appNotification = activeAppNotifications[name]; - if (appNotification) { - delete activeAppNotifications[name]; + var notification = activeNotifications[name]; + if (notification) { + notification.listener.observe(null, "alertfinished", notification.cookie); + delete activeNotifications[name]; } }, QueryInterface: function(aIID) { if (SpecialPowers.wrap(aIID).equals(SpecialPowers.Ci.nsISupports) || - SpecialPowers.wrap(aIID).equals(SpecialPowers.Ci.nsIAlertsService) || - SpecialPowers.wrap(aIID).equals(SpecialPowers.Ci.nsIAppNotificationService)) { + SpecialPowers.wrap(aIID).equals(SpecialPowers.Ci.nsIAlertsService)) { return this; } throw SpecialPowers.Components.results.NS_ERROR_NO_INTERFACE; }, createInstance: function(aOuter, aIID) { if (aOuter != null) { throw SpecialPowers.Components.results.NS_ERROR_NO_AGGREGATION; @@ -97,13 +72,10 @@ var MockServices = (function () { SYSTEM_ALERTS_SERVICE_CONTRACT_ID, mockAlertsService); }, unregister: function () { registrar.unregisterFactory(MOCK_ALERTS_CID, mockAlertsService); registrar.unregisterFactory(MOCK_SYSTEM_ALERTS_CID, mockAlertsService); }, - - activeAlertNotifications: activeAlertNotifications, - activeAppNotifications: activeAppNotifications, }; })();
--- a/dom/tests/mochitest/notification/mochitest.ini +++ b/dom/tests/mochitest/notification/mochitest.ini @@ -4,9 +4,8 @@ support-files = MockServices.js NotificationTest.js [test_notification_basics.html] [test_notification_storage.html] skip-if = (toolkit == 'gonk' && debug) #debug-only timeout [test_bug931307.html] skip-if = (toolkit == 'gonk' && debug) #debug-only timeout -[test_notification_resend.html]
--- a/dom/tests/mochitest/notification/test_bug931307.html +++ b/dom/tests/mochitest/notification/test_bug931307.html @@ -8,26 +8,24 @@ <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> </head> <body> <pre id="test"> <script type="application/javascript"><!-- SimpleTest.waitForExplicitFinish(); -var notification = new Notification(""); +new Notification(""); var promise = Notification.get(); promise.then( function onSuccess() { ok(true, "No crash!"); - notification.close(); SimpleTest.finish(); }, function onFailure() { ok(false, "Should not get an error in promise callback"); - notification.close(); } ); </script> </pre> </body> </html>
--- a/dom/tests/mochitest/notification/test_notification_basics.html +++ b/dom/tests/mochitest/notification/test_notification_basics.html @@ -98,17 +98,17 @@ var notification = this.notification; notification.onclose = function () { ok(true, "onclose handler should be called"); done(); }; notification.close(); - } + }, ]; MockServices.register(); NotificationTest.run(steps, function () { MockServices.unregister(); }); </script> </body>
deleted file mode 100644 --- a/dom/tests/mochitest/notification/test_notification_resend.html +++ /dev/null @@ -1,170 +0,0 @@ -<!DOCTYPE HTML> -<html> -<head> - <title>Testing mozResendAllNotifications() resend behavior</title> - <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> - <script type="text/javascript" src="MockServices.js"></script> - <script type="text/javascript" src="NotificationTest.js"></script> - <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> -</head> -<body> -<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=967475">Bug 967475</a> -<p id="display"></p> -<div id="content" style="display: none"></div> -<pre id="test"></pre> -<script type="text/javascript"> - var info = NotificationTest.info; - var now = new Date().getTime(); - var notifications = []; - var manifestURL; - - var steps = [ - function (done) { - if (window.Notification) { - SpecialPowers.pushPrefEnv({"set": [ - ["dom.ignore_webidl_scope_checks", true], - ]}, done); - } else { - ok(true, "Notifications are not enabled on the platform."); - done(); - } - }, - - function (done) { - info("Set manifestURL"); - var request = window.navigator.mozApps.getSelf(); - request.onsuccess = function() { - if (request.result) { - manifestURL = request.result.manifestURL; - } else { - manifestURL = window.location.origin; - } - info("Value of manifestURL is: " + manifestURL); - done(); - }; - }, - - function (done) { - info("Test that we have mozChromeNotifications API"); - ok(('mozChromeNotifications' in navigator), "should have mozChromeNotifications API"); - ok(('mozResendAllNotifications' in navigator.mozChromeNotifications), "should have mozResendAllNotifications()"); - done(); - }, - - function (done) { - info("Making sure we have no previous notification pending"); - var promise = Notification.get(); - promise.then(function (notifications) { - is(notifications.length, 0, "notifications are all cleaned"); - done(); - }); - }, - - function (done) { - info("Sending one notification"); - var notif = new Notification("title"); - ok(notif, "Notification object is valid"); - notifications.push(notif); - - var promise = Notification.get(); - promise.then(function (notifications) { - is(notifications.length, 1, "one notification has been sent"); - done(); - }); - }, - - function (done) { - info("Trying to resend the notification"); - var notif = notifications.pop(); - notif.onclose = function() { - done(); - }; - - navigator.mozChromeNotifications.mozResendAllNotifications(function(number) { - is(number, 1, "One notification resent"); - notif.close(); - }); - }, - - function (done) { - info("Sending two notifications, closing one"); - var notif1 = new Notification("title1"); - ok(notif1, "Notification object is valid"); - notif1.onclose = function() { - done(); - }; - - var payload = { - body: "Body", - tag: "fakeTag", - icon: "icon.jpg", - lang: "en-US", - dir: "ltr" - }; - var notif2 = new Notification("Title2", payload); - ok(notif2, "Notification object is valid"); - notifications.push(notif2); - - var promise = Notification.get(); - promise.then(function (notifications) { - is(notifications.length, 2, "two notifications have been sent"); - notif1.close(); - }); - }, - - function (done) { - info("Checking if only notif2 is resent"); - navigator.mozChromeNotifications.mozResendAllNotifications(function(number) { - is(number, 1, "One notification resent"); - var promise = Notification.get(); - promise.then(function (notifications) { - is(notifications.length, 1, "one notification still available"); - is(notifications[0].title, "Title2", "notification title is 'Title2'"); - done(); - }); - }); - }, - - function (done) { - info("Checking ShowAppNotification behavior"); - - var notif2 = notifications.pop(); - notif2.onclose = function() { - done(); - }; - - navigator.mozChromeNotifications.mozResendAllNotifications(function(number) { - is(number, 1, "One notification resent"); - var appNotifs = MockServices.activeAppNotifications; - var alertNotifs = MockServices.activeAlertNotifications; - var nbAppNotifs = Object.keys(appNotifs).length; - var nbAlertNotifs = Object.keys(alertNotifs).length; - is(nbAppNotifs, 1, "AlertsServices has one app notification"); - is(nbAlertNotifs, 1, "AlertsServices has one alert notification"); - - var uuidRegEx = /[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}/; - var notif = appNotifs[Object.keys(appNotifs)[0]]; - ok(notif, "Notification object is valid"); - ok((typeof notif.observer === "object"), "Notification observer is valid"); - is(notif.title, "Title2", "Notification title is valid: " + notif.title); - is(notif.text, "Body", "Notification body is valid: " + notif.text); - is(notif.manifestURL, manifestURL, "Notification manifest URL is valid: " + notif.manifestURL); - is(notif.imageURL, "icon.jpg", "Notification icon URL is valid: " + notif.imageURL); - is(notif.lang, "en-US", "Notification lang is valid: " + notif.lang); - is(notif.id, notif.manifestURL + "#tag:" + notif.tag, "Notification id is valid: " + notif.id); - ok(notif.dbId.match(uuidRegEx), "Notification dbId is valid: " + notif.dbId); - is(notif.dir, "ltr", "Notification dir is valid: " + notif.dir); - is(notif.tag, "fakeTag", "Notification tag is valid: " + notif.tag); - ok((notif.timestamp > now), "Notification timestamp is valid: " + notif.timestamp); - notif2.close(); - }); - } - ]; - - MockServices.register(); - NotificationTest.run(steps, function () { - MockServices.unregister(); - }); -</script> -</body> -</html>
--- a/dom/tests/mochitest/notification/test_notification_storage.html +++ b/dom/tests/mochitest/notification/test_notification_storage.html @@ -112,22 +112,20 @@ function (done) { info("Testing fetching multiple notifications"); var n1 = new Notification("title1"); var n2 = new Notification("title2"); var n3 = new Notification("title3"); var promise = Notification.get(); promise.then(function (notifications) { - is(notifications.length, 3, "should return 3 notifications"); + is(notifications.length, 3, "should return 2 notifications"); done(); }); - }, - - deleteAllNotifications + } ]; MockServices.register(); NotificationTest.run(steps, function () { MockServices.unregister(); }); </script> </body>
deleted file mode 100644 --- a/dom/webidl/ChromeNotifications.webidl +++ /dev/null @@ -1,14 +0,0 @@ -/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* 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/. - */ - -[JSImplementation="@mozilla.org/mozChromeNotifications;1", - NavigatorProperty="mozChromeNotifications", - AvailableIn="CertifiedApps"] -interface ChromeNotifications { - void mozResendAllNotifications(ResendCallback resendCallback); -}; - -callback ResendCallback = void (long count);
--- a/dom/webidl/moz.build +++ b/dom/webidl/moz.build @@ -47,17 +47,16 @@ WEBIDL_FILES = [ 'CameraManager.webidl', 'CanvasRenderingContext2D.webidl', 'CaretPosition.webidl', 'CDATASection.webidl', 'ChannelMergerNode.webidl', 'ChannelSplitterNode.webidl', 'CharacterData.webidl', 'ChildNode.webidl', - 'ChromeNotifications.webidl', 'ClipboardEvent.webidl', 'CommandEvent.webidl', 'Comment.webidl', 'CompositionEvent.webidl', 'Console.webidl', 'Constraints.webidl', 'Contacts.webidl', 'ConvolverNode.webidl',
--- a/ipc/ipdl/test/cxx/TestActorPunning.h +++ b/ipc/ipdl/test/cxx/TestActorPunning.h @@ -42,24 +42,28 @@ protected: }; class TestActorPunningPunnedParent : public PTestActorPunningPunnedParent { public: TestActorPunningPunnedParent() {} virtual ~TestActorPunningPunnedParent() {} +protected: + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE {} }; class TestActorPunningSubParent : public PTestActorPunningSubParent { public: TestActorPunningSubParent() {} virtual ~TestActorPunningSubParent() {} +protected: + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE {} }; class TestActorPunningChild : public PTestActorPunningChild { public: TestActorPunningChild() {}
--- a/ipc/ipdl/test/cxx/TestBadActor.h +++ b/ipc/ipdl/test/cxx/TestBadActor.h @@ -46,16 +46,17 @@ protected: class TestBadActorSubParent : public PTestBadActorSubParent { public: TestBadActorSubParent() { } virtual ~TestBadActorSubParent() { } protected: + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE {} virtual bool RecvPing(); }; class TestBadActorChild : public PTestBadActorChild { public: TestBadActorChild() { }
--- a/ipc/ipdl/test/cxx/TestDesc.h +++ b/ipc/ipdl/test/cxx/TestDesc.h @@ -75,18 +75,18 @@ protected: class TestDescSubParent : public PTestDescSubParent { public: TestDescSubParent() { } virtual ~TestDescSubParent() { } protected: + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE {} virtual PTestDescSubsubParent* AllocPTestDescSubsubParent() MOZ_OVERRIDE; - virtual bool DeallocPTestDescSubsubParent(PTestDescSubsubParent* actor) MOZ_OVERRIDE; }; class TestDescSubChild : public PTestDescSubChild { public: @@ -103,16 +103,19 @@ protected: // Grand-descendent // class TestDescSubsubParent : public PTestDescSubsubParent { public: TestDescSubsubParent() { } virtual ~TestDescSubsubParent() { } + +protected: + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE {} }; class TestDescSubsubChild : public PTestDescSubsubChild { public: TestDescSubsubChild() { } virtual ~TestDescSubsubChild() { }
--- a/ipc/ipdl/test/cxx/TestJSON.h +++ b/ipc/ipdl/test/cxx/TestJSON.h @@ -13,16 +13,19 @@ namespace mozilla { namespace _ipdltest { class TestHandleParent : public PTestHandleParent { public: TestHandleParent() { } virtual ~TestHandleParent() { } + +protected: + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE {} }; class TestJSONParent : public PTestJSONParent { public: TestJSONParent() { } virtual ~TestJSONParent() { }
--- a/ipc/ipdl/test/cxx/TestManyChildAllocs.h +++ b/ipc/ipdl/test/cxx/TestManyChildAllocs.h @@ -67,16 +67,17 @@ protected: class TestManyChildAllocsSubParent : public PTestManyChildAllocsSubParent { public: TestManyChildAllocsSubParent() { } virtual ~TestManyChildAllocsSubParent() { } protected: + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE {} virtual bool RecvHello() MOZ_OVERRIDE { return true; } }; class TestManyChildAllocsSubChild : public PTestManyChildAllocsSubChild { public:
--- a/ipc/ipdl/test/cxx/TestMultiMgrs.h +++ b/ipc/ipdl/test/cxx/TestMultiMgrs.h @@ -20,31 +20,36 @@ namespace _ipdltest { // class TestMultiMgrsBottomParent : public PTestMultiMgrsBottomParent { public: TestMultiMgrsBottomParent() { } virtual ~TestMultiMgrsBottomParent() { } + +protected: + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE {} }; class TestMultiMgrsLeftParent : public PTestMultiMgrsLeftParent { public: TestMultiMgrsLeftParent() { } virtual ~TestMultiMgrsLeftParent() { } bool HasChild(TestMultiMgrsBottomParent* c) { return ManagedPTestMultiMgrsBottomParent().Contains(c); } protected: + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE {} + virtual PTestMultiMgrsBottomParent* AllocPTestMultiMgrsBottomParent() MOZ_OVERRIDE { return new TestMultiMgrsBottomParent(); } virtual bool DeallocPTestMultiMgrsBottomParent(PTestMultiMgrsBottomParent* actor) MOZ_OVERRIDE { delete actor; @@ -60,16 +65,18 @@ public: virtual ~TestMultiMgrsRightParent() { } bool HasChild(TestMultiMgrsBottomParent* c) { return ManagedPTestMultiMgrsBottomParent().Contains(c); } protected: + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE {} + virtual PTestMultiMgrsBottomParent* AllocPTestMultiMgrsBottomParent() MOZ_OVERRIDE { return new TestMultiMgrsBottomParent(); } virtual bool DeallocPTestMultiMgrsBottomParent(PTestMultiMgrsBottomParent* actor) MOZ_OVERRIDE { delete actor;
--- a/mobile/android/installer/package-manifest.in +++ b/mobile/android/installer/package-manifest.in @@ -277,18 +277,16 @@ @BINPATH@/components/xpconnect.xpt @BINPATH@/components/xulapp.xpt @BINPATH@/components/xul.xpt @BINPATH@/components/xuldoc.xpt @BINPATH@/components/xultmpl.xpt @BINPATH@/components/zipwriter.xpt ; JavaScript components -@BINPATH@/components/ChromeNotifications.js -@BINPATH@/components/ChromeNotifications.manifest @BINPATH@/components/ConsoleAPI.manifest @BINPATH@/components/ConsoleAPIStorage.js @BINPATH@/components/ContactManager.js @BINPATH@/components/ContactManager.manifest @BINPATH@/components/PhoneNumberService.js @BINPATH@/components/PhoneNumberService.manifest @BINPATH@/components/NotificationStorage.js @BINPATH@/components/NotificationStorage.manifest