From 947213f3a4a86ee380acb902589697844ab99ffc Mon Sep 17 00:00:00 2001 From: Mike Habicher Date: Fri, 13 Feb 2015 13:24:56 -0500 Subject: [PATCH 01/48] Bug 1132176 - add support for '4kuhd' to Gecko, r=aosmond --- dom/camera/GonkRecorderProfiles.def | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/dom/camera/GonkRecorderProfiles.def b/dom/camera/GonkRecorderProfiles.def index 7375e334e18d..6c2b2998dd75 100644 --- a/dom/camera/GonkRecorderProfiles.def +++ b/dom/camera/GonkRecorderProfiles.def @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Mozilla Foundation + * Copyright (C) 2012-2015 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -40,14 +40,15 @@ DEF_GONK_RECORDER_PROFILE(CAMCORDER_QUALITY_1080P, "1080p") * profiles may have more than one resolution, depending on the camera. */ -DEF_GONK_RECORDER_PROFILE_DETECT("fwvga", 864, 480) -DEF_GONK_RECORDER_PROFILE_DETECT("fwvga", 854, 480) -DEF_GONK_RECORDER_PROFILE_DETECT("wvga", 800, 480) -DEF_GONK_RECORDER_PROFILE_DETECT("wvga", 768, 480) -DEF_GONK_RECORDER_PROFILE_DETECT("vga", 640, 480) -DEF_GONK_RECORDER_PROFILE_DETECT("hvga", 480, 320) -DEF_GONK_RECORDER_PROFILE_DETECT("wqvga", 400, 240) -DEF_GONK_RECORDER_PROFILE_DETECT("qvga", 320, 240) +DEF_GONK_RECORDER_PROFILE_DETECT("4kuhd", 3840, 2160) +DEF_GONK_RECORDER_PROFILE_DETECT("fwvga", 864, 480) +DEF_GONK_RECORDER_PROFILE_DETECT("fwvga", 854, 480) +DEF_GONK_RECORDER_PROFILE_DETECT("wvga", 800, 480) +DEF_GONK_RECORDER_PROFILE_DETECT("wvga", 768, 480) +DEF_GONK_RECORDER_PROFILE_DETECT("vga", 640, 480) +DEF_GONK_RECORDER_PROFILE_DETECT("hvga", 480, 320) +DEF_GONK_RECORDER_PROFILE_DETECT("wqvga", 400, 240) +DEF_GONK_RECORDER_PROFILE_DETECT("qvga", 320, 240) #undef DEF_GONK_RECORDER_PROFILE #undef DEF_GONK_RECORDER_PROFILE_DETECT From b52988bd136e2750734169e3f53d29ffd8188533 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 13 Feb 2015 14:15:32 -0800 Subject: [PATCH 02/48] Bumping gaia.json for 4 gaia revision(s) a=gaia-bump MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ======== https://hg.mozilla.org/integration/gaia-central/rev/09f324125d19 Author: autolander Desc: Bug 1069223 - merge pull request #27794 from FunkTron:Bug1069223 to mozilla-b2g:master ======== https://hg.mozilla.org/integration/gaia-central/rev/7631fd663ed4 Author: funktron Desc: Bug 1069223 - updated all FM App controls with accessibility ids and/or roles ======== https://hg.mozilla.org/integration/gaia-central/rev/7c6ccf5c28ed Author: autolander Desc: Bug 1120857 - merge pull request #28150 from millermedeiros:1120857-lockscreen-notification to mozilla-b2g:master ======== https://hg.mozilla.org/integration/gaia-central/rev/a0db749787c4 Author: Miller Medeiros Desc: Bug 1120857 - [Calendar] On lockscreen, tap the "Open" button beside event, it enter Homescreen instead of event‘s detail view. --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 3b9f9203ea5b..4842b8455ffc 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "f0b93e0668ef9565bd6f050b15b4f794d59feb65", + "git_revision": "fa244edb7b89bf5331da2ddc87875845eec8e675", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "d170342f8e1837435749392fc2bded3b9fee01d4", + "revision": "09f324125d190c753aada62fc04e75451e400f30", "repo_path": "integration/gaia-central" } From 88523745cedb66d707d08f56cc409d92afa7c027 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 13 Feb 2015 14:18:06 -0800 Subject: [PATCH 03/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index c8c251a67065..b2175084f294 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 879dbe906c48..1040bd226f5b 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 9e2696e5d43a..d47eedaab580 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 4f271ebccb03..724e136c6493 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 879dbe906c48..1040bd226f5b 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 61d2027bdff7..702dc6a30c8d 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index a0fa260cc872..d639e6fc384a 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 30019f41d908..89d3889c0706 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 32b9bb257252..b5a3369f0e95 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From 1f9e151217b6c5fc438e0792f2282c63105e608c Mon Sep 17 00:00:00 2001 From: Mason Chang Date: Fri, 13 Feb 2015 14:53:29 -0800 Subject: [PATCH 04/48] Bug 1123762. Enable the vsync aligned refresh driver on b2g. r=kats --- b2g/app/b2g.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/b2g/app/b2g.js b/b2g/app/b2g.js index 596ee4d9a977..2c3b697d037e 100644 --- a/b2g/app/b2g.js +++ b/b2g/app/b2g.js @@ -1114,8 +1114,10 @@ pref("dom.requestSync.enabled", true); pref("gfx.vsync.hw-vsync.enabled", true); pref("gfx.vsync.compositor", true); pref("gfx.touch.resample", true); +pref("gfx.vsync.refreshdriver", true); #else pref("gfx.vsync.hw-vsync.enabled", false); pref("gfx.vsync.compositor", false); pref("gfx.touch.resample", false); +pref("gfx.vsync.refreshdriver", false); #endif From 032708d8ab467d113c37ac1d99409f37b34b73fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabrice=20Desr=C3=A9?= Date: Fri, 13 Feb 2015 15:13:40 -0800 Subject: [PATCH 05/48] Bug 1132844 - Fix ReaderMode.jsm to work with jsloader.reuseGlobal r=margaret --- toolkit/components/reader/ReaderMode.jsm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolkit/components/reader/ReaderMode.jsm b/toolkit/components/reader/ReaderMode.jsm index 2e286d08888a..b5ffcbb56c0a 100644 --- a/toolkit/components/reader/ReaderMode.jsm +++ b/toolkit/components/reader/ReaderMode.jsm @@ -17,7 +17,7 @@ XPCOMUtils.defineLazyModuleGetter(this, "CommonUtils", "resource://services-comm XPCOMUtils.defineLazyModuleGetter(this, "OS", "resource://gre/modules/osfile.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "Task", "resource://gre/modules/Task.jsm"); -let ReaderMode = { +this.ReaderMode = { // Version of the cache schema. CACHE_VERSION: 1, From 3240890feaca55f517e3941f9f71f7fb62cb2745 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 13 Feb 2015 15:46:09 -0800 Subject: [PATCH 06/48] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/f465c1e307db Author: Alive.Kuo Desc: Merge pull request #27955 from alivedise/bugzilla/1129344/search-window-lose-focus Bug 1129344 - Do not focus search window on opened +autoland, r=etienne ======== https://hg.mozilla.org/integration/gaia-central/rev/8a7f48ef654a Author: Alive Kuo Desc: Bug 1129344 - Do not focus search window on opened --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 4842b8455ffc..283c8ed8984b 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "fa244edb7b89bf5331da2ddc87875845eec8e675", + "git_revision": "21dc7cb99eeef24c63d814f6d27d1f9a28ae202d", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "09f324125d190c753aada62fc04e75451e400f30", + "revision": "f465c1e307db481d3ffcf0d64486cd5a92b7fda7", "repo_path": "integration/gaia-central" } From 18e5d8a169cde39d7099ab59d9bf0f490be1e031 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 13 Feb 2015 15:48:39 -0800 Subject: [PATCH 07/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index b2175084f294..603e213e588e 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 1040bd226f5b..8de27f2aa1e9 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index d47eedaab580..c4b9cc0c3699 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 724e136c6493..b0d386f209ad 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 1040bd226f5b..8de27f2aa1e9 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 702dc6a30c8d..d53d7e1fab35 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index d639e6fc384a..3c3775752c38 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 89d3889c0706..18e0fbdf9d1e 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index b5a3369f0e95..f06bc72353d0 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From 4852cd3443d3b5b34fdc085fa17a91f427c2707d Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 13 Feb 2015 16:16:09 -0800 Subject: [PATCH 08/48] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/f70b720a155e Author: tamarahills Desc: Merge pull request #28119 from tamarahills/bugfix/1106175 Bug 1106175 - Align conference group UI participants to right for RTL. r... ======== https://hg.mozilla.org/integration/gaia-central/rev/5a09e001d054 Author: Tamara Hills Desc: Bug 1106175 - Align conference group UI participants to right for RTL. r=gsvelto. --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 283c8ed8984b..2b0df3866a18 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "21dc7cb99eeef24c63d814f6d27d1f9a28ae202d", + "git_revision": "a4fa768740a537863329856eee61087b1d67f4ba", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "f465c1e307db481d3ffcf0d64486cd5a92b7fda7", + "revision": "f70b720a155e58371e7a5afec256c1c9c369dac1", "repo_path": "integration/gaia-central" } From 9fa12c1d5056e75e6fe4cfeffcc222b8b9ce3c66 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 13 Feb 2015 16:18:41 -0800 Subject: [PATCH 09/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 603e213e588e..b74734773819 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 8de27f2aa1e9..a7cf81318bf5 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index c4b9cc0c3699..836b132f4285 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index b0d386f209ad..8f5b6c8e6b0a 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 8de27f2aa1e9..a7cf81318bf5 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index d53d7e1fab35..d81a000f8a31 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 3c3775752c38..3651ad2ee145 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 18e0fbdf9d1e..9b89cd6224c5 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index f06bc72353d0..7179da50be72 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From 4014f623c1770f348db00e61623e4fd78b7f1eb3 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 13 Feb 2015 17:16:21 -0800 Subject: [PATCH 10/48] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/5f5dec35f752 Author: Sean Lee Desc: Merge pull request #28130 from weilonge/seanlee/STK/master/Bug1127730 Bug 1127730 - Add icc_events_test.js r=frsela ======== https://hg.mozilla.org/integration/gaia-central/rev/56588c3d87c0 Author: Sean Lee Desc: Bug 1127730 - Add icc_events_test.js In this unit test, we focus how each STK setup events work and their correctness. Here is the list of the events should be tested: STK_EVENT_TYPE_MT_CALL STK_EVENT_TYPE_CALL_CONNECTED STK_EVENT_TYPE_CALL_DISCONNECTED STK_EVENT_TYPE_LOCATION_STATUS - STK_SERVICE_STATE_NORMAL STK_EVENT_TYPE_LOCATION_STATUS - STK_SERVICE_STATE_LIMITED STK_EVENT_TYPE_USER_ACTIVITY STK_EVENT_TYPE_IDLE_SCREEN_AVAILABLE STK_EVENT_TYPE_LANGUAGE_SELECTION STK_EVENT_TYPE_BROWSER_TERMINATION --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 2b0df3866a18..76fc905f127f 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "a4fa768740a537863329856eee61087b1d67f4ba", + "git_revision": "8d4a1ea361ecc162a0d3fba8632e890aab3f2e00", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "f70b720a155e58371e7a5afec256c1c9c369dac1", + "revision": "5f5dec35f752140b1f45da0c40d025018e372e1c", "repo_path": "integration/gaia-central" } From 3b3709e7b061dd8008aa413c7317f2033457cb1c Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 13 Feb 2015 17:18:46 -0800 Subject: [PATCH 11/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index b74734773819..d082fd1c4df8 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index a7cf81318bf5..e353dfcf2266 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 836b132f4285..ec64ec9602fb 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 8f5b6c8e6b0a..f1155283fa00 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index a7cf81318bf5..e353dfcf2266 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index d81a000f8a31..4266916ba846 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 3651ad2ee145..2011e7212f42 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 9b89cd6224c5..3832731c3b4e 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 7179da50be72..67b21558e526 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From e77ab004578f8f90f9c27edb3f09ce1221be5858 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 13 Feb 2015 18:50:16 -0800 Subject: [PATCH 12/48] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/8fe940fe082f Author: autolander Desc: Bug 1132929 - merge pull request #28217 from yzen:bug-1132929 to mozilla-b2g:master ======== https://hg.mozilla.org/integration/gaia-central/rev/a51be13b206c Author: Yura Zenevich Desc: Bug 1132929 - [Accessibility] fixing visibility issues around Video app. --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 76fc905f127f..d1c1ee4cde53 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "8d4a1ea361ecc162a0d3fba8632e890aab3f2e00", + "git_revision": "9d8328af216c94f4dbdab8949240b44bae47852a", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "5f5dec35f752140b1f45da0c40d025018e372e1c", + "revision": "8fe940fe082f65d33a25190c7585f010c2d3f9a3", "repo_path": "integration/gaia-central" } From c900de63b33c80df058cb4b17ded7663988529b6 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Fri, 13 Feb 2015 18:52:40 -0800 Subject: [PATCH 13/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index d082fd1c4df8..816020b2bd9d 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index e353dfcf2266..0ed11d18c160 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index ec64ec9602fb..6442b738fa76 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index f1155283fa00..2545c43a366c 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index e353dfcf2266..0ed11d18c160 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 4266916ba846..9cfe5291145b 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 2011e7212f42..0b4c98a62a5d 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 3832731c3b4e..f665c2f3d29b 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 67b21558e526..a3d8d63d8fb8 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From 9caa50a980abe2c8702f32904e69890ffbdabe8e Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sat, 14 Feb 2015 01:51:09 -0800 Subject: [PATCH 14/48] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/0d3cfb60cbd6 Author: autolander Desc: Bug 1130934 - merge pull request #28088 from RickyChien:bug-1130934 to mozilla-b2g:master ======== https://hg.mozilla.org/integration/gaia-central/rev/d6ad78715216 Author: Ricky Chien Desc: Bug 1130934 - Refactoring uitls.js, utils-node.js, utils-xpc.js --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index d1c1ee4cde53..2db3630ff766 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "9d8328af216c94f4dbdab8949240b44bae47852a", + "git_revision": "f217a93f31b23c1e6a98eeabfde7214d6de447e2", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "8fe940fe082f65d33a25190c7585f010c2d3f9a3", + "revision": "0d3cfb60cbd61192bd795fec5227d2ae6c61adf9", "repo_path": "integration/gaia-central" } From 87d503943e7189d5b346bb5c8b0f94a2da2ee598 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sat, 14 Feb 2015 01:53:33 -0800 Subject: [PATCH 15/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 816020b2bd9d..19c0a7d19443 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 0ed11d18c160..27c08c441090 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 6442b738fa76..3b6a4d86b8ae 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 2545c43a366c..7e1843e5b27e 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 0ed11d18c160..27c08c441090 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 9cfe5291145b..ad9129f7c623 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 0b4c98a62a5d..79a4424b595a 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index f665c2f3d29b..b624d38c8123 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index a3d8d63d8fb8..47ccb63878ef 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From b98d522894bda46ba469df2f4d0d5417160126f2 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sat, 14 Feb 2015 03:21:08 -0800 Subject: [PATCH 16/48] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/1d5c6b3eb0c5 Author: autolander Desc: Bug 1121858 - merge pull request #28179 from Cwiiis:bug1121858-only-toggle-should-toggle to mozilla-b2g:master ======== https://hg.mozilla.org/integration/gaia-central/rev/f9e27b56aedd Author: Chris Lord Desc: Bug 1121858 - Only toggle expand/collapse when tapping arrow. r=kgrandon --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 2db3630ff766..bb68a694ab3a 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "f217a93f31b23c1e6a98eeabfde7214d6de447e2", + "git_revision": "bb543b9f19b1d977f26bbaf81c0f37a39d2b2e7b", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "0d3cfb60cbd61192bd795fec5227d2ae6c61adf9", + "revision": "1d5c6b3eb0c513fffb536ed35f1cef73f011fa45", "repo_path": "integration/gaia-central" } From 892bccefa5f60d7d7ba075163eae267161babdc0 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sat, 14 Feb 2015 03:23:34 -0800 Subject: [PATCH 17/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 19c0a7d19443..51c70650a123 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 27c08c441090..c797465f7393 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 3b6a4d86b8ae..6cf5778b4183 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 7e1843e5b27e..c191e60eae24 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 27c08c441090..c797465f7393 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index ad9129f7c623..c74293b53736 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 79a4424b595a..f4690e9412ec 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index b624d38c8123..07ce6ec0a378 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 47ccb63878ef..097aaeb58ae3 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From e28761c65bf08994cdbbbfa7d54024a96021fdb8 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sat, 14 Feb 2015 04:51:10 -0800 Subject: [PATCH 18/48] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/a55417e66d60 Author: autolander Desc: Bug 1121466 - merge pull request #28181 from Cwiiis:bug1121466-homescreen-short-name to mozilla-b2g:master ======== https://hg.mozilla.org/integration/gaia-central/rev/9d1aaf051bcf Author: Chris Lord Desc: Bug 1121466 - Support app manifest short_name. r=kgrandon --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index bb68a694ab3a..17893ca9f630 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "bb543b9f19b1d977f26bbaf81c0f37a39d2b2e7b", + "git_revision": "eb2cc08cc343997d327ee065e45e05d43d250182", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "1d5c6b3eb0c513fffb536ed35f1cef73f011fa45", + "revision": "a55417e66d60a2c0417dc4a5e400eca7b9636a94", "repo_path": "integration/gaia-central" } From fb3e2480dd36cdcea2cb01e9f2b575d877c9cb74 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sat, 14 Feb 2015 04:53:34 -0800 Subject: [PATCH 19/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 51c70650a123..ee1caa75aecc 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index c797465f7393..a3ba5ca22ba5 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 6cf5778b4183..e7011852d72b 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index c191e60eae24..7ce324ef4669 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index c797465f7393..a3ba5ca22ba5 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index c74293b53736..1726c9a0fbfe 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index f4690e9412ec..e43d498db8cb 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 07ce6ec0a378..4a7071824d30 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 097aaeb58ae3..3fa231666d1b 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From 99a5ae6daebca69bb2c6c42af2aab15db541945c Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sat, 14 Feb 2015 06:51:10 -0800 Subject: [PATCH 20/48] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/f14f5f2e4d5b Author: autolander Desc: Bug 1131827 - merge pull request #28174 from jfkthame:patch-5 to mozilla-b2g:master ======== https://hg.mozilla.org/integration/gaia-central/rev/526f54612ce4 Author: jfkthame Desc: Bug 1131827 - [RTL] icon overlaps text in action button The padding added to leave room for an icon needs to be direction-aware. --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 17893ca9f630..3fca99a77438 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "eb2cc08cc343997d327ee065e45e05d43d250182", + "git_revision": "4e36e459c91680fc27b441338460b803bfd17410", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "a55417e66d60a2c0417dc4a5e400eca7b9636a94", + "revision": "f14f5f2e4d5ba0fb2547a4cba1d19906396ff91b", "repo_path": "integration/gaia-central" } From 0e80b44423c790a9211224b94d4e87cd113c7c0a Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sat, 14 Feb 2015 06:53:38 -0800 Subject: [PATCH 21/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index ee1caa75aecc..b66e299ea016 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index a3ba5ca22ba5..f441cd45e9ba 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index e7011852d72b..6923666ab692 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 7ce324ef4669..a64b3fc0c6be 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index a3ba5ca22ba5..f441cd45e9ba 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 1726c9a0fbfe..9c0c22b316ea 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index e43d498db8cb..81b82266783e 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 4a7071824d30..7ac55bc0d539 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 3fa231666d1b..300438c779f4 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From ba6a5b6e095b445e39bb2e2b4a000cf1b3f58356 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sat, 14 Feb 2015 14:21:07 -0800 Subject: [PATCH 22/48] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/e97b876fcc52 Author: Gabriele Svelto Desc: Merge pull request #26971 from gabrielesvelto/bug-1112577-fix-races-in-call-log-db Bug 1112577 - Ensure that all call log database operations are atomic r=thills ======== https://hg.mozilla.org/integration/gaia-central/rev/24f84b559d22 Author: Gabriele Svelto Desc: Bug 1112577 - Ensure that all call log database operations are atomic r=thills --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 3fca99a77438..d9c135660f51 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "4e36e459c91680fc27b441338460b803bfd17410", + "git_revision": "6ac71434ff4c741f31babe45df9fe10c17c93021", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "f14f5f2e4d5ba0fb2547a4cba1d19906396ff91b", + "revision": "e97b876fcc52c4964852eebec7a4ccd4b280ec7e", "repo_path": "integration/gaia-central" } From 7fbc81725ca67a578b18fa80c82a81faf3b24f9d Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sat, 14 Feb 2015 14:23:32 -0800 Subject: [PATCH 23/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index b66e299ea016..235c841cf1c2 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index f441cd45e9ba..32b941b65c65 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 6923666ab692..2ee43516138f 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index a64b3fc0c6be..0eb92e34a87c 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index f441cd45e9ba..32b941b65c65 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 9c0c22b316ea..2cbea722d4ec 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 81b82266783e..a2e8e5ea8285 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 7ac55bc0d539..fe5126711c14 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 300438c779f4..8969e143d375 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From 7d029cc5273f3c2d8a7c8bf9c05179297c6177fd Mon Sep 17 00:00:00 2001 From: Alexandre Lissy Date: Fri, 13 Feb 2015 02:17:00 +0800 Subject: [PATCH 24/48] Bug 1131590 - Support DualCarrier radio tech. r=echen --- dom/system/gonk/ril_consts.js | 7 ++++++- dom/system/gonk/ril_worker.js | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/dom/system/gonk/ril_consts.js b/dom/system/gonk/ril_consts.js index 91baa05735f7..4dff10daebcd 100644 --- a/dom/system/gonk/ril_consts.js +++ b/dom/system/gonk/ril_consts.js @@ -465,6 +465,8 @@ this.NETWORK_CREG_TECH_EHRPD = 13; this.NETWORK_CREG_TECH_LTE = 14; this.NETWORK_CREG_TECH_HSPAP = 15; this.NETWORK_CREG_TECH_GSM = 16; +this.NETWORK_CREG_TECH_DCHSPAP_1 = 18; // Some devices reports as 18 +this.NETWORK_CREG_TECH_DCHSPAP_2 = 19; // Some others report it as 19 this.CELL_INFO_TYPE_GSM = 1; this.CELL_INFO_TYPE_CDMA = 2; @@ -2913,7 +2915,10 @@ this.GECKO_RADIO_TECH = [ "ehrpd", "lte", "hspa+", - "gsm" + "gsm", + null, + "hspa+", // DC-HSPA+ + "hspa+" ]; this.GECKO_VOICEMAIL_MESSAGE_COUNT_UNKNOWN = -1; diff --git a/dom/system/gonk/ril_worker.js b/dom/system/gonk/ril_worker.js index 100d589e6306..7e7ddd4bbe6a 100644 --- a/dom/system/gonk/ril_worker.js +++ b/dom/system/gonk/ril_worker.js @@ -4226,6 +4226,8 @@ RilObject.prototype = { case NETWORK_CREG_TECH_LTE: case NETWORK_CREG_TECH_HSPAP: case NETWORK_CREG_TECH_GSM: + case NETWORK_CREG_TECH_DCHSPAP_1: + case NETWORK_CREG_TECH_DCHSPAP_2: return true; } @@ -6194,6 +6196,8 @@ RilObject.prototype[REQUEST_GET_NEIGHBORING_CELL_IDS] = function REQUEST_GET_NEI case NETWORK_CREG_TECH_HSUPA: case NETWORK_CREG_TECH_HSPA: case NETWORK_CREG_TECH_HSPAP: + case NETWORK_CREG_TECH_DCHSPAP_1: + case NETWORK_CREG_TECH_DCHSPAP_2: cellId.wcdmaPsc = this.parseInt(cid, -1, 16); break; } From 04ea9b3d17ae868ca3864996bbdbcc0f18aa6fd2 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sun, 15 Feb 2015 04:51:09 -0800 Subject: [PATCH 25/48] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/4e7aa46f696f Author: autolander Desc: Bug 1127760 - merge pull request #27890 from sfoster:ftu-fxa-rtl-bug-1127760 to mozilla-b2g:master ======== https://hg.mozilla.org/integration/gaia-central/rev/dcc02830cc4b Author: Sam Foster Desc: Bug 1127760 - Fix FxA text-alignment for RTL, flip progress. r=etienne --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index d9c135660f51..1718883b5c8e 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "6ac71434ff4c741f31babe45df9fe10c17c93021", + "git_revision": "a086bb3529bacfe8f3e41776c2199132a6c3e521", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "e97b876fcc52c4964852eebec7a4ccd4b280ec7e", + "revision": "4e7aa46f696f50885fd5bdb13e0bbf6cb5a58dd7", "repo_path": "integration/gaia-central" } From eb0298de0524a6c4c3b6f5fd8dcb6f7d9e0c69e2 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sun, 15 Feb 2015 04:53:33 -0800 Subject: [PATCH 26/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 235c841cf1c2..17414648babd 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 32b941b65c65..54fb15b8ade9 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 2ee43516138f..37b97e1fbca0 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 0eb92e34a87c..77a5672a0b61 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 32b941b65c65..54fb15b8ade9 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 2cbea722d4ec..487dbbf4cee6 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index a2e8e5ea8285..22f0426b7c0a 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index fe5126711c14..89d58b3969f8 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 8969e143d375..8031edab7deb 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From a7fc1dd44557b18c69aa0aa69d2434f3ceb890b5 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sun, 15 Feb 2015 15:51:08 -0800 Subject: [PATCH 27/48] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/c63f3e1d5f23 Author: Fabien Cazenave Desc: Merge pull request #28004 from fabi1cazenave/pp-select Bug 1126174 - text selection, r=etienne ======== https://hg.mozilla.org/integration/gaia-central/rev/bdd171370dd1 Author: Fabien Cazenave Desc: Bug 1126174: text selection --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 1718883b5c8e..b137c289c7b0 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "a086bb3529bacfe8f3e41776c2199132a6c3e521", + "git_revision": "eb91f9538a71b5e99558a9b6f49c758ac94bc776", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "4e7aa46f696f50885fd5bdb13e0bbf6cb5a58dd7", + "revision": "c63f3e1d5f23b21a5dee8a40996754fdad474326", "repo_path": "integration/gaia-central" } From b9c9d7ae647fec648bea5fa3ddc1a309c3ec6b4a Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sun, 15 Feb 2015 15:53:32 -0800 Subject: [PATCH 28/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 17414648babd..bdc9b5352f95 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 54fb15b8ade9..9b9d546dd026 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 37b97e1fbca0..844efc48e417 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 77a5672a0b61..3b535f063a82 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 54fb15b8ade9..9b9d546dd026 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 487dbbf4cee6..2477a0d208a5 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 22f0426b7c0a..e2dfd0723963 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 89d58b3969f8..6a8cb51312b2 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 8031edab7deb..bc74c83593cc 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From 8112b589db4f877ee05bf3a878d77f455a66b70c Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sun, 15 Feb 2015 19:39:10 -0800 Subject: [PATCH 29/48] Bumping gaia.json for 4 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/1b925f085b73 Author: Rex KM Lee Desc: Merge pull request #28165 from rexboy7/1132324-relaunch-presentation Bug 1132324 - [Stingray][System] Kill previous app properly when re-launch presentation. r=johnhu ======== https://hg.mozilla.org/integration/gaia-central/rev/ebfdc84fafcf Author: Rex Lee Desc: Bug 1132324 - [Stingray][System] Kill previous app properly when re-launch presentation ======== https://hg.mozilla.org/integration/gaia-central/rev/5427b822e342 Author: autolander Desc: Bug 1132819 - merge pull request #28206 from RickyChien:bug-1132819 to mozilla-b2g:master ======== https://hg.mozilla.org/integration/gaia-central/rev/07bbe30cc359 Author: Ricky Chien Desc: Bug 1132819 - Upgrade jshint to 2.6.0 for supporting missing mocha keyword --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index b137c289c7b0..6fff5e56160c 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "eb91f9538a71b5e99558a9b6f49c758ac94bc776", + "git_revision": "ce07add98ce9f7cca9257f8a64982e6f97cd2d65", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "c63f3e1d5f23b21a5dee8a40996754fdad474326", + "revision": "1b925f085b737775e751bdc4594ca280dc00a846", "repo_path": "integration/gaia-central" } From efc8a5bd2fdaa18854ffafcdb398c4a76c91ea3d Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sun, 15 Feb 2015 19:41:43 -0800 Subject: [PATCH 30/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index bdc9b5352f95..e3d21b0ff912 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 9b9d546dd026..a99c9c0b2d5b 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 844efc48e417..c470a8671d52 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 3b535f063a82..deb823dcfa27 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 9b9d546dd026..a99c9c0b2d5b 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 2477a0d208a5..f5b59cb57700 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index e2dfd0723963..1f38c51283a8 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 6a8cb51312b2..8a8731b8e0dc 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index bc74c83593cc..d9a63da6bcd0 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From eda293a617cb3bb53a55b3516353ccb032a11074 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sun, 15 Feb 2015 20:00:07 -0800 Subject: [PATCH 31/48] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/607a998fdc64 Author: autolander Desc: Bug 1132820 - merge pull request #28209 from dwi2:bug1132820 to mozilla-b2g:master ======== https://hg.mozilla.org/integration/gaia-central/rev/631238acbadd Author: Tzu-Lin Huang Desc: Bug 1132820 - Update hint arrows of card after it has correct position --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 6fff5e56160c..927d0268572d 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "ce07add98ce9f7cca9257f8a64982e6f97cd2d65", + "git_revision": "04b996fed63a5b0ba86b25923b4ee72cb811c37f", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "1b925f085b737775e751bdc4594ca280dc00a846", + "revision": "607a998fdc64debb00953f77399b866a4712f9f3", "repo_path": "integration/gaia-central" } From 78a39a7833287a5735b4421a6eb973c1b775a1dc Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sun, 15 Feb 2015 20:02:31 -0800 Subject: [PATCH 32/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index e3d21b0ff912..bfe099bcb5b2 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index a99c9c0b2d5b..ec25222343de 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index c470a8671d52..93b43412ae26 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index deb823dcfa27..beecb821fdcd 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index a99c9c0b2d5b..ec25222343de 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index f5b59cb57700..11b999eee4a9 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 1f38c51283a8..1ff7cbad7392 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 8a8731b8e0dc..baeef6f83903 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index d9a63da6bcd0..8e28d18cd00a 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From 75b6929c65a809e516d9b7c2e88d26a82dc16133 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sun, 15 Feb 2015 20:19:06 -0800 Subject: [PATCH 33/48] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/c1202b960c2a Author: EragonJ (E.J.) Desc: Merge pull request #27182 from EragonJ/bug-1092048 Bug 1092048 - [WIFI]The long name of Wi-Fi and the singal strength icon ... ======== https://hg.mozilla.org/integration/gaia-central/rev/435ab2fdfe99 Author: EragonJ Desc: Bug 1092048 - [WIFI]The long name of Wi-Fi and the singal strength icon are overlapping in 'Manage Networks' --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 927d0268572d..cdae1ca7027c 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "04b996fed63a5b0ba86b25923b4ee72cb811c37f", + "git_revision": "7a0aa5074fad3164360c18a0ed82e7c1e3703469", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "607a998fdc64debb00953f77399b866a4712f9f3", + "revision": "c1202b960c2a274e5d559d4ec105d89be0f60c5e", "repo_path": "integration/gaia-central" } From 795c9dde50114ada24d8c6c2d1512e9d55851872 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sun, 15 Feb 2015 20:21:29 -0800 Subject: [PATCH 34/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index bfe099bcb5b2..2d3531a15ced 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index ec25222343de..891d9c7be0b1 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 93b43412ae26..ac2bd22e1664 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index beecb821fdcd..dd13f8a46287 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index ec25222343de..891d9c7be0b1 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 11b999eee4a9..5a10aa05971e 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 1ff7cbad7392..c9a5fd9a2c80 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index baeef6f83903..41f411b3726b 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 8e28d18cd00a..5a9641132349 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From 9df2a0c99c934c5da85ef259cd67b270e201372a Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sun, 15 Feb 2015 23:39:07 -0800 Subject: [PATCH 35/48] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/9be9d29bc743 Author: Kevin Grandon Desc: Merge pull request #28234 from gmarty/Bug-1132419-Settings-Privacy-Panel-Incorrect-Coloured-Status-bar-icons Bug 1132419 - [Settings][Privacy Panel] Incorrect Coloured Status bar/icons ======== https://hg.mozilla.org/integration/gaia-central/rev/54bc64412490 Author: Guillaume Marty Desc: Bug 1132419 - [Settings][Privacy Panel] Incorrect Coloured Status bar/icons --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index cdae1ca7027c..81e8f2c52df6 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "7a0aa5074fad3164360c18a0ed82e7c1e3703469", + "git_revision": "2d0e3d20af4c4ea66bd4c2a979067dd8ea7a722c", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "c1202b960c2a274e5d559d4ec105d89be0f60c5e", + "revision": "9be9d29bc743342d8630fb9b2ad515ac61543241", "repo_path": "integration/gaia-central" } From f4d4350a8eed1f0a25af0abced99ee62b2bde2d3 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Sun, 15 Feb 2015 23:41:39 -0800 Subject: [PATCH 36/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 2d3531a15ced..eb1df718032f 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 891d9c7be0b1..77b1dba7cfb3 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index ac2bd22e1664..ae54b443a424 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index dd13f8a46287..23f7419dc7b0 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 891d9c7be0b1..77b1dba7cfb3 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 5a10aa05971e..266b1c14ec36 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index c9a5fd9a2c80..1a2a4a10f3fe 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 41f411b3726b..d0da2c1eaa25 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 5a9641132349..0527c677fb57 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From a0fb675fd71a78196ab487f10009730960b60bd3 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Mon, 16 Feb 2015 01:34:05 -0800 Subject: [PATCH 37/48] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/5f7ed4b90913 Author: EragonJ (E.J.) Desc: Merge pull request #27036 from EragonJ/bug-1103808 Bug 1103808 - [Settings] make SimPinDialog as AMD module, r=arthur ======== https://hg.mozilla.org/integration/gaia-central/rev/0044eafb8d20 Author: EragonJ Desc: Bug 1103808 - Make simpinDialog as AMD module --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 81e8f2c52df6..b833f8b26cd8 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "2d0e3d20af4c4ea66bd4c2a979067dd8ea7a722c", + "git_revision": "5a42fcb9e3e9b0a78ad0c3c780b33ede9a6e730a", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "9be9d29bc743342d8630fb9b2ad515ac61543241", + "revision": "5f7ed4b9091387f7ec4f55d5fc9d24f88342d054", "repo_path": "integration/gaia-central" } From 1501c5908d38fc0b67480ab25ccf1ddd3921e61e Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Mon, 16 Feb 2015 01:36:30 -0800 Subject: [PATCH 38/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index eb1df718032f..3aa3363e0c65 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 77b1dba7cfb3..5776573a515b 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index ae54b443a424..99c035035598 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 23f7419dc7b0..2e5b002d2e6d 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 77b1dba7cfb3..5776573a515b 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 266b1c14ec36..7e4ee9d063f0 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index 1a2a4a10f3fe..db7f673c78fc 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index d0da2c1eaa25..0091eacf172c 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 0527c677fb57..0707d2bd28cc 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From eb8482eec3cb3bfbbbaef75c1b4333c98a23d0c3 Mon Sep 17 00:00:00 2001 From: Yoshi Huang Date: Mon, 16 Feb 2015 11:13:18 +0800 Subject: [PATCH 39/48] Bug 1133390 - onfocuschanged(false) will be notified twice. r=dimi From 1c1b9ad0570901cc2c9ce6bce1bbeda210c1e1ca Mon Sep 17 00:00:00 2001 --- dom/nfc/gonk/Nfc.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) --- dom/nfc/gonk/Nfc.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dom/nfc/gonk/Nfc.js b/dom/nfc/gonk/Nfc.js index b79f7f2222b9..890d667fd17c 100644 --- a/dom/nfc/gonk/Nfc.js +++ b/dom/nfc/gonk/Nfc.js @@ -178,8 +178,10 @@ XPCOMUtils.defineLazyGetter(this, "gMessageManager", function () { }, setFocusApp: function setFocusApp(id, isFocus) { - // if calling setNFCFocus(true) on the same browser-element, ignore. - if (isFocus && (id == this.focusApp)) { + // if calling setNFCFocus(true) on the browser-element which is already + // focused, or calling setNFCFocus(false) on the browser-element which has + // lost focus already, ignore. + if (isFocus == (id == this.focusApp)) { return; } From 71a7aa22367eaa0825ec0b753d79292c178de30b Mon Sep 17 00:00:00 2001 From: Jocelyn Liu Date: Fri, 13 Feb 2015 17:13:00 +0100 Subject: [PATCH 40/48] Bug 1063449 - Add and implement GATT client connection related bluetooth Web APIs. r=btian, r=bz This patch mainly covers: 1) Implement register/unregister client, connect/disconnect methods in BluetoothGatt object. 2) Add/Modify related webidls for 1). 3) Implement result handlers, notifications in BluetoothGattManager. --- dom/base/nsGkAtomList.h | 1 + dom/bindings/Bindings.conf | 4 + dom/bluetooth2/BluetoothCommon.h | 6 + dom/bluetooth2/BluetoothDevice.cpp | 25 +- dom/bluetooth2/BluetoothDevice.h | 10 +- dom/bluetooth2/BluetoothGatt.cpp | 217 ++++++++ dom/bluetooth2/BluetoothGatt.h | 116 ++++ dom/bluetooth2/BluetoothService.h | 25 + dom/bluetooth2/BluetoothUtils.cpp | 24 + dom/bluetooth2/BluetoothUtils.h | 8 + .../bluedroid/BluetoothGattManager.cpp | 502 +++++++++++++++++- .../bluedroid/BluetoothGattManager.h | 18 + .../bluedroid/BluetoothServiceBluedroid.cpp | 57 ++ .../bluedroid/BluetoothServiceBluedroid.h | 18 + dom/bluetooth2/bluez/BluetoothDBusService.cpp | 20 + dom/bluetooth2/bluez/BluetoothDBusService.h | 14 + dom/bluetooth2/ipc/BluetoothParent.cpp | 44 ++ dom/bluetooth2/ipc/BluetoothParent.h | 9 + .../ipc/BluetoothServiceChildProcess.cpp | 27 +- .../ipc/BluetoothServiceChildProcess.h | 14 + dom/bluetooth2/ipc/PBluetooth.ipdl | 20 + dom/bluetooth2/moz.build | 2 + dom/webidl/BluetoothDevice2.webidl | 6 + dom/webidl/BluetoothGatt.webidl | 38 ++ dom/webidl/moz.build | 1 + 25 files changed, 1208 insertions(+), 18 deletions(-) create mode 100644 dom/bluetooth2/BluetoothGatt.cpp create mode 100644 dom/bluetooth2/BluetoothGatt.h create mode 100644 dom/webidl/BluetoothGatt.webidl diff --git a/dom/base/nsGkAtomList.h b/dom/base/nsGkAtomList.h index 49b269259f1e..7eb64e3a04f0 100644 --- a/dom/base/nsGkAtomList.h +++ b/dom/base/nsGkAtomList.h @@ -708,6 +708,7 @@ GK_ATOM(onconfigurationchange, "onconfigurationchange") GK_ATOM(onconnect, "onconnect") GK_ATOM(onconnected, "onconnected") GK_ATOM(onconnecting, "onconnecting") +GK_ATOM(onconnectionstatechanged, "onconnectionstatechanged") GK_ATOM(oncontextmenu, "oncontextmenu") GK_ATOM(oncopy, "oncopy") GK_ATOM(oncurrentchannelchanged, "oncurrentchannelchanged") diff --git a/dom/bindings/Bindings.conf b/dom/bindings/Bindings.conf index 0f3183efbbed..3d3390fc2ac6 100644 --- a/dom/bindings/Bindings.conf +++ b/dom/bindings/Bindings.conf @@ -152,6 +152,10 @@ DOMInterfaces = { 'nativeType': 'mozilla::dom::bluetooth::BluetoothDiscoveryHandle', }, +'BluetoothGatt': { + 'nativeType': 'mozilla::dom::bluetooth::BluetoothGatt', +}, + 'BluetoothManager': { 'nativeType': 'mozilla::dom::bluetooth::BluetoothManager', }, diff --git a/dom/bluetooth2/BluetoothCommon.h b/dom/bluetooth2/BluetoothCommon.h index 56966cbff774..afaa04606ca6 100644 --- a/dom/bluetooth2/BluetoothCommon.h +++ b/dom/bluetooth2/BluetoothCommon.h @@ -196,6 +196,12 @@ extern bool gBluetoothDebugFlag; */ #define REQUEST_MEDIA_PLAYSTATUS_ID "requestmediaplaystatus" +/** + * When a remote BLE device gets connected / disconnected, we'll dispatch an + * event + */ +#define GATT_CONNECTION_STATE_CHANGED_ID "connectionstatechanged" + // Bluetooth address format: xx:xx:xx:xx:xx:xx (or xx_xx_xx_xx_xx_xx) #define BLUETOOTH_ADDRESS_LENGTH 17 #define BLUETOOTH_ADDRESS_NONE "00:00:00:00:00:00" diff --git a/dom/bluetooth2/BluetoothDevice.cpp b/dom/bluetooth2/BluetoothDevice.cpp index 2317c241d369..f42f15e63368 100644 --- a/dom/bluetooth2/BluetoothDevice.cpp +++ b/dom/bluetooth2/BluetoothDevice.cpp @@ -4,15 +4,16 @@ * 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/. */ -#include "BluetoothClassOfDevice.h" -#include "BluetoothDevice.h" #include "BluetoothReplyRunnable.h" #include "BluetoothService.h" #include "BluetoothUtils.h" -#include "mozilla/dom/bluetooth/BluetoothTypes.h" #include "mozilla/dom/BluetoothAttributeEvent.h" #include "mozilla/dom/BluetoothDevice2Binding.h" +#include "mozilla/dom/bluetooth/BluetoothClassOfDevice.h" +#include "mozilla/dom/bluetooth/BluetoothDevice.h" +#include "mozilla/dom/bluetooth/BluetoothGatt.h" +#include "mozilla/dom/bluetooth/BluetoothTypes.h" #include "mozilla/dom/Promise.h" using namespace mozilla; @@ -20,7 +21,10 @@ using namespace mozilla::dom; USING_BLUETOOTH_NAMESPACE -NS_IMPL_CYCLE_COLLECTION_INHERITED(BluetoothDevice, DOMEventTargetHelper, mCod) +NS_IMPL_CYCLE_COLLECTION_INHERITED(BluetoothDevice, + DOMEventTargetHelper, + mCod, + mGatt) NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(BluetoothDevice) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) @@ -302,6 +306,19 @@ BluetoothDevice::DispatchAttributeEvent(const nsTArray& aTypes) DispatchTrustedEvent(event); } +BluetoothGatt* +BluetoothDevice::GetGatt() +{ + NS_ENSURE_TRUE(mType == BluetoothDeviceType::Le || + mType == BluetoothDeviceType::Dual, + nullptr); + if (!mGatt) { + mGatt = new BluetoothGatt(GetOwner(), mAddress); + } + + return mGatt; +} + JSObject* BluetoothDevice::WrapObject(JSContext* aContext) { diff --git a/dom/bluetooth2/BluetoothDevice.h b/dom/bluetooth2/BluetoothDevice.h index f5afd826d5ec..c3455908b47b 100644 --- a/dom/bluetooth2/BluetoothDevice.h +++ b/dom/bluetooth2/BluetoothDevice.h @@ -10,7 +10,7 @@ #include "mozilla/Attributes.h" #include "mozilla/DOMEventTargetHelper.h" #include "mozilla/dom/BluetoothDevice2Binding.h" -#include "BluetoothCommon.h" +#include "mozilla/dom/bluetooth/BluetoothCommon.h" #include "nsString.h" #include "nsCOMPtr.h" @@ -23,6 +23,7 @@ namespace dom { BEGIN_BLUETOOTH_NAMESPACE class BluetoothClassOfDevice; +class BluetoothGatt; class BluetoothNamedValue; class BluetoothValue; class BluetoothSignal; @@ -69,6 +70,8 @@ public: return mType; } + BluetoothGatt* GetGatt(); + /**************************************************************************** * Event Handlers ***************************************************************************/ @@ -173,6 +176,11 @@ private: * Type of this device. Can be unknown/classic/le/dual. */ BluetoothDeviceType mType; + + /** + * GATT client object to interact with the remote device. + */ + nsRefPtr mGatt; }; END_BLUETOOTH_NAMESPACE diff --git a/dom/bluetooth2/BluetoothGatt.cpp b/dom/bluetooth2/BluetoothGatt.cpp new file mode 100644 index 000000000000..1580fa2c81e1 --- /dev/null +++ b/dom/bluetooth2/BluetoothGatt.cpp @@ -0,0 +1,217 @@ +/* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ +/* 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/. */ + + +#include "BluetoothReplyRunnable.h" +#include "BluetoothService.h" +#include "BluetoothUtils.h" +#include "mozilla/dom/bluetooth/BluetoothGatt.h" +#include "mozilla/dom/bluetooth/BluetoothTypes.h" +#include "mozilla/dom/BluetoothGattBinding.h" +#include "mozilla/dom/Promise.h" +#include "nsIUUIDGenerator.h" +#include "nsServiceManagerUtils.h" + +using namespace mozilla; +using namespace mozilla::dom; + +USING_BLUETOOTH_NAMESPACE + +NS_IMPL_CYCLE_COLLECTION_CLASS(BluetoothGatt) + +NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(BluetoothGatt, + DOMEventTargetHelper) +NS_IMPL_CYCLE_COLLECTION_UNLINK_END +NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(BluetoothGatt, + DOMEventTargetHelper) +NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END + +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(BluetoothGatt) +NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) + +NS_IMPL_ADDREF_INHERITED(BluetoothGatt, DOMEventTargetHelper) +NS_IMPL_RELEASE_INHERITED(BluetoothGatt, DOMEventTargetHelper) + +BluetoothGatt::BluetoothGatt(nsPIDOMWindow* aWindow, + const nsAString& aDeviceAddr) + : DOMEventTargetHelper(aWindow) + , mAppUuid(EmptyString()) + , mClientIf(0) + , mConnectionState(BluetoothConnectionState::Disconnected) + , mDeviceAddr(aDeviceAddr) +{ + MOZ_ASSERT(aWindow); + MOZ_ASSERT(!mDeviceAddr.IsEmpty()); +} + +BluetoothGatt::~BluetoothGatt() +{ + BluetoothService* bs = BluetoothService::Get(); + // bs can be null on shutdown, where destruction might happen. + NS_ENSURE_TRUE_VOID(bs); + + if (mClientIf > 0) { + nsRefPtr result = + new BluetoothVoidReplyRunnable(nullptr); + bs->UnregisterGattClientInternal(mClientIf, result); + } + + bs->UnregisterBluetoothSignalHandler(mAppUuid, this); +} + +void +BluetoothGatt::GenerateUuid(nsAString &aUuidString) +{ + nsresult rv; + nsCOMPtr uuidGenerator = + do_GetService("@mozilla.org/uuid-generator;1", &rv); + NS_ENSURE_SUCCESS_VOID(rv); + + nsID uuid; + rv = uuidGenerator->GenerateUUIDInPlace(&uuid); + NS_ENSURE_SUCCESS_VOID(rv); + + // Build a string in {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} format + char uuidBuffer[NSID_LENGTH]; + uuid.ToProvidedString(uuidBuffer); + NS_ConvertASCIItoUTF16 uuidString(uuidBuffer); + + // Remove {} and the null terminator + aUuidString.Assign(Substring(uuidString, 1, NSID_LENGTH - 3)); +} + +void +BluetoothGatt::DisconnectFromOwner() +{ + DOMEventTargetHelper::DisconnectFromOwner(); + + BluetoothService* bs = BluetoothService::Get(); + NS_ENSURE_TRUE_VOID(bs); + + if (mClientIf > 0) { + nsRefPtr result = + new BluetoothVoidReplyRunnable(nullptr); + bs->UnregisterGattClientInternal(mClientIf, result); + } + + bs->UnregisterBluetoothSignalHandler(mAppUuid, this); +} + +already_AddRefed +BluetoothGatt::Connect(ErrorResult& aRv) +{ + nsCOMPtr global = do_QueryInterface(GetParentObject()); + if (!global) { + aRv.Throw(NS_ERROR_FAILURE); + return nullptr; + } + + nsRefPtr promise = Promise::Create(global, aRv); + NS_ENSURE_TRUE(!aRv.Failed(), nullptr); + + BT_ENSURE_TRUE_REJECT( + mConnectionState == BluetoothConnectionState::Disconnected, + NS_ERROR_DOM_INVALID_STATE_ERR); + + BluetoothService* bs = BluetoothService::Get(); + BT_ENSURE_TRUE_REJECT(bs, NS_ERROR_NOT_AVAILABLE); + + if (mAppUuid.IsEmpty()) { + GenerateUuid(mAppUuid); + BT_ENSURE_TRUE_REJECT(!mAppUuid.IsEmpty(), + NS_ERROR_DOM_OPERATION_ERR); + bs->RegisterBluetoothSignalHandler(mAppUuid, this); + } + + UpdateConnectionState(BluetoothConnectionState::Connecting); + nsRefPtr result = + new BluetoothVoidReplyRunnable(nullptr /* DOMRequest */, + promise, + NS_LITERAL_STRING("ConnectGattClient")); + bs->ConnectGattClientInternal(mAppUuid, + mDeviceAddr, + result); + + return promise.forget(); +} + +already_AddRefed +BluetoothGatt::Disconnect(ErrorResult& aRv) +{ + nsCOMPtr global = do_QueryInterface(GetParentObject()); + if (!global) { + aRv.Throw(NS_ERROR_FAILURE); + return nullptr; + } + + nsRefPtr promise = Promise::Create(global, aRv); + NS_ENSURE_TRUE(!aRv.Failed(), nullptr); + + BT_ENSURE_TRUE_REJECT( + mConnectionState == BluetoothConnectionState::Connected, + NS_ERROR_DOM_INVALID_STATE_ERR); + + BluetoothService* bs = BluetoothService::Get(); + BT_ENSURE_TRUE_REJECT(bs, NS_ERROR_NOT_AVAILABLE); + + UpdateConnectionState(BluetoothConnectionState::Disconnecting); + nsRefPtr result = + new BluetoothVoidReplyRunnable(nullptr /* DOMRequest */, + promise, + NS_LITERAL_STRING("DisconnectGattClient")); + bs->DisconnectGattClientInternal(mAppUuid, mDeviceAddr, result); + + return promise.forget(); +} + +void +BluetoothGatt::UpdateConnectionState(BluetoothConnectionState aState) +{ + BT_API2_LOGR("GATT connection state changes to: %d", int(aState)); + mConnectionState = aState; + + // Dispatch connectionstatechanged event to application + nsCOMPtr event; + nsresult rv = NS_NewDOMEvent(getter_AddRefs(event), this, nullptr, nullptr); + NS_ENSURE_SUCCESS_VOID(rv); + + rv = event->InitEvent(NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID), + false, + false); + NS_ENSURE_SUCCESS_VOID(rv); + + DispatchTrustedEvent(event); +} + +void +BluetoothGatt::Notify(const BluetoothSignal& aData) +{ + BT_LOGD("[D] %s", NS_ConvertUTF16toUTF8(aData.name()).get()); + + BluetoothValue v = aData.value(); + if (aData.name().EqualsLiteral("ClientRegistered")) { + MOZ_ASSERT(v.type() == BluetoothValue::Tuint32_t); + mClientIf = v.get_uint32_t(); + } else if (aData.name().EqualsLiteral("ClientUnregistered")) { + mClientIf = 0; + } else if (aData.name().EqualsLiteral(GATT_CONNECTION_STATE_CHANGED_ID)) { + MOZ_ASSERT(v.type() == BluetoothValue::Tbool); + + BluetoothConnectionState state = + v.get_bool() ? BluetoothConnectionState::Connected + : BluetoothConnectionState::Disconnected; + UpdateConnectionState(state); + } else { + BT_WARNING("Not handling GATT signal: %s", + NS_ConvertUTF16toUTF8(aData.name()).get()); + } +} + +JSObject* +BluetoothGatt::WrapObject(JSContext* aContext) +{ + return BluetoothGattBinding::Wrap(aContext, this); +} diff --git a/dom/bluetooth2/BluetoothGatt.h b/dom/bluetooth2/BluetoothGatt.h new file mode 100644 index 000000000000..96ffb5afc59a --- /dev/null +++ b/dom/bluetooth2/BluetoothGatt.h @@ -0,0 +1,116 @@ +/* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ +/* 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/. */ + +#ifndef mozilla_dom_bluetooth_bluetoothgatt_h__ +#define mozilla_dom_bluetooth_bluetoothgatt_h__ + +#include "mozilla/Attributes.h" +#include "mozilla/DOMEventTargetHelper.h" +#include "mozilla/dom/BluetoothGattBinding.h" +#include "mozilla/dom/bluetooth/BluetoothCommon.h" +#include "nsCOMPtr.h" + +namespace mozilla { +namespace dom { +class Promise; +} +} + +BEGIN_BLUETOOTH_NAMESPACE + +class BluetoothReplyRunnable; +class BluetoothService; +class BluetoothSignal; +class BluetoothValue; + +class BluetoothGatt MOZ_FINAL : public DOMEventTargetHelper + , public BluetoothSignalObserver +{ +public: + NS_DECL_ISUPPORTS_INHERITED + NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(BluetoothGatt, DOMEventTargetHelper) + + /**************************************************************************** + * Attribute Getters + ***************************************************************************/ + BluetoothConnectionState ConnectionState() const + { + return mConnectionState; + } + + /**************************************************************************** + * Event Handlers + ***************************************************************************/ + IMPL_EVENT_HANDLER(connectionstatechanged); + + /**************************************************************************** + * Methods (Web API Implementation) + ***************************************************************************/ + already_AddRefed Connect(ErrorResult& aRv); + already_AddRefed Disconnect(ErrorResult& aRv); + + /**************************************************************************** + * Others + ***************************************************************************/ + void Notify(const BluetoothSignal& aParam); // BluetoothSignalObserver + + nsPIDOMWindow* GetParentObject() const + { + return GetOwner(); + } + + virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE; + virtual void DisconnectFromOwner() MOZ_OVERRIDE; + + BluetoothGatt(nsPIDOMWindow* aOwner, + const nsAString& aDeviceAddr); + +private: + ~BluetoothGatt(); + + /** + * Update mConnectionState to aState and fire + * connectionstatechanged event to the application. + * + * @param aState [in] New connection state + */ + void UpdateConnectionState(BluetoothConnectionState aState); + + /** + * Generate a random uuid. + * + * @param aUuidString [out] String to store the generated uuid. + */ + void GenerateUuid(nsAString &aUuidString); + + /**************************************************************************** + * Variables + ***************************************************************************/ + /** + * Random generated UUID of this GATT client. + */ + nsString mAppUuid; + + /** + * Id of the GATT client interface given by bluetooth stack. + * 0 if the client is not registered yet, nonzero otherwise. + */ + int mClientIf; + + /** + * Connection state of this remote device. + */ + BluetoothConnectionState mConnectionState; + + /** + * Address of the remote device. + */ + nsString mDeviceAddr; +}; + +END_BLUETOOTH_NAMESPACE + +#endif diff --git a/dom/bluetooth2/BluetoothService.h b/dom/bluetooth2/BluetoothService.h index 62a08f86d51e..0c3973466f23 100644 --- a/dom/bluetooth2/BluetoothService.h +++ b/dom/bluetooth2/BluetoothService.h @@ -307,6 +307,31 @@ public: SendInputMessage(const nsAString& aDeviceAddresses, const nsAString& aMessage) = 0; + /** + * Connect to a remote GATT server. (platform specific implementation) + */ + virtual void + ConnectGattClientInternal(const nsAString& aAppUuid, + const nsAString& aDeviceAddress, + BluetoothReplyRunnable* aRunnable) = 0; + + /** + * Disconnect GATT client from a remote GATT server. + * (platform specific implementation) + */ + virtual void + DisconnectGattClientInternal(const nsAString& aAppUuid, + const nsAString& aDeviceAddress, + BluetoothReplyRunnable* aRunnable) = 0; + + /** + * Unregister a GATT client. (platform specific implementation) + */ + virtual void + UnregisterGattClientInternal(int aClientIf, + BluetoothReplyRunnable* aRunnable) = 0; + + bool IsEnabled() const { diff --git a/dom/bluetooth2/BluetoothUtils.cpp b/dom/bluetooth2/BluetoothUtils.cpp index 52ea07faacc3..23f4898138e4 100644 --- a/dom/bluetooth2/BluetoothUtils.cpp +++ b/dom/bluetooth2/BluetoothUtils.cpp @@ -40,6 +40,30 @@ UuidToString(const BluetoothUuid& aUuid, nsAString& aString) aString.AssignLiteral(uuidStr); } +void +StringToUuid(const char* aString, BluetoothUuid& aUuid) +{ + uint32_t uuid0, uuid4; + uint16_t uuid1, uuid2, uuid3, uuid5; + + sscanf(aString, "%08x-%04hx-%04hx-%04hx-%08x%04hx", + &uuid0, &uuid1, &uuid2, &uuid3, &uuid4, &uuid5); + + uuid0 = htonl(uuid0); + uuid1 = htons(uuid1); + uuid2 = htons(uuid2); + uuid3 = htons(uuid3); + uuid4 = htonl(uuid4); + uuid5 = htons(uuid5); + + memcpy(&aUuid.mUuid[0], &uuid0, 4); + memcpy(&aUuid.mUuid[4], &uuid1, 2); + memcpy(&aUuid.mUuid[6], &uuid2, 2); + memcpy(&aUuid.mUuid[8], &uuid3, 2); + memcpy(&aUuid.mUuid[10], &uuid4, 4); + memcpy(&aUuid.mUuid[14], &uuid5, 2); +} + bool SetJsObject(JSContext* aContext, const BluetoothValue& aValue, diff --git a/dom/bluetooth2/BluetoothUtils.h b/dom/bluetooth2/BluetoothUtils.h index 0659e16391ec..ff60b9afb924 100644 --- a/dom/bluetooth2/BluetoothUtils.h +++ b/dom/bluetooth2/BluetoothUtils.h @@ -19,6 +19,14 @@ class BluetoothReplyRunnable; void UuidToString(const BluetoothUuid& aUuid, nsAString& aString); +/** + * Convert xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx uuid string to BluetoothUuid object. + * This utility function is used by gecko internal only to convert uuid string + * created by gecko back to BluetoothUuid representation. + */ +void +StringToUuid(const char* aString, BluetoothUuid& aUuid); + bool SetJsObject(JSContext* aContext, const BluetoothValue& aValue, diff --git a/dom/bluetooth2/bluedroid/BluetoothGattManager.cpp b/dom/bluetooth2/bluedroid/BluetoothGattManager.cpp index 0690a18295a5..e5a45388bd85 100644 --- a/dom/bluetooth2/bluedroid/BluetoothGattManager.cpp +++ b/dom/bluetooth2/bluedroid/BluetoothGattManager.cpp @@ -5,16 +5,28 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "BluetoothGattManager.h" -#include "BluetoothCommon.h" -#include "BluetoothUtils.h" -#include "BluetoothInterface.h" +#include "BluetoothCommon.h" +#include "BluetoothInterface.h" +#include "BluetoothReplyRunnable.h" +#include "BluetoothService.h" +#include "BluetoothUtils.h" +#include "MainThreadUtils.h" #include "mozilla/Services.h" #include "mozilla/StaticPtr.h" -#include "MainThreadUtils.h" #include "nsIObserverService.h" #include "nsThreadUtils.h" +#define ENSURE_GATT_CLIENT_INTF_IS_READY_VOID(runnable) \ + do { \ + if (!sBluetoothGattInterface) { \ + NS_NAMED_LITERAL_STRING(errorStr, \ + "BluetoothGattClientInterface is not ready"); \ + DispatchBluetoothReply(runnable, BluetoothValue(), errorStr); \ + return; \ + } \ + } while(0) + using namespace mozilla; USING_BLUETOOTH_NAMESPACE @@ -26,9 +38,58 @@ namespace { bool BluetoothGattManager::mInShutdown = false; -/* - * Static functions - */ +class BluetoothGattClient; +static StaticAutoPtr > > sClients; + +class BluetoothGattClient MOZ_FINAL : public nsISupports +{ +public: + NS_DECL_ISUPPORTS + + BluetoothGattClient(const nsAString& aAppUuid, const nsAString& aDeviceAddr) + : mAppUuid(aAppUuid) + , mDeviceAddr(aDeviceAddr) + , mClientIf(0) + , mConnId(0) + { } + + ~BluetoothGattClient() + { + mConnectRunnable = nullptr; + mDisconnectRunnable = nullptr; + mUnregisterClientRunnable = nullptr; + } + + nsString mAppUuid; + nsString mDeviceAddr; + int mClientIf; + int mConnId; + nsRefPtr mConnectRunnable; + nsRefPtr mDisconnectRunnable; + nsRefPtr mUnregisterClientRunnable; +}; + +NS_IMPL_ISUPPORTS0(BluetoothGattClient) + +class UuidComparator +{ +public: + bool Equals(const nsRefPtr& aClient, + const nsAString& aAppUuid) const + { + return aClient->mAppUuid.Equals(aAppUuid); + } +}; + +class ClientIfComparator +{ +public: + bool Equals(const nsRefPtr& aClient, + int aClientIf) const + { + return aClient->mClientIf == aClientIf; + } +}; BluetoothGattManager* BluetoothGattManager::Get() @@ -103,6 +164,10 @@ BluetoothGattManager::InitGattInterface(BluetoothProfileResultHandler* aRes) sBluetoothGattInterface->GetBluetoothGattClientInterface(); NS_ENSURE_TRUE_VOID(sBluetoothGattClientInterface); + if (!sClients) { + sClients = new nsTArray >; + } + BluetoothGattManager* gattManager = BluetoothGattManager::Get(); sBluetoothGattInterface->Init(gattManager, new InitGattResultHandler(aRes)); @@ -129,6 +194,8 @@ public: { sBluetoothGattClientInterface = nullptr; sBluetoothGattInterface = nullptr; + sClients = nullptr; + if (mRes) { mRes->Deinit(); } @@ -176,6 +243,265 @@ BluetoothGattManager::DeinitGattInterface(BluetoothProfileResultHandler* aRes) } } +class BluetoothGattManager::RegisterClientResultHandler MOZ_FINAL + : public BluetoothGattClientResultHandler +{ +public: + RegisterClientResultHandler(BluetoothGattClient* aClient) + : mClient(aClient) + { + MOZ_ASSERT(mClient); + } + + void OnError(BluetoothStatus aStatus) MOZ_OVERRIDE + { + BT_WARNING("BluetoothGattClientInterface::RegisterClient failed: %d", + (int)aStatus); + + BluetoothService* bs = BluetoothService::Get(); + NS_ENSURE_TRUE_VOID(bs); + + // Notify BluetoothGatt for client disconnected + BluetoothSignal signal( + NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID), + mClient->mAppUuid, + BluetoothValue(false)); // Disconnected + bs->DistributeSignal(signal); + + // Reject the connect request + if (mClient->mConnectRunnable) { + NS_NAMED_LITERAL_STRING(errorStr, "Register GATT client failed"); + DispatchBluetoothReply(mClient->mConnectRunnable, + BluetoothValue(), + errorStr); + mClient->mConnectRunnable = nullptr; + } + + sClients->RemoveElement(mClient); + } + +private: + nsRefPtr mClient; +}; + +class BluetoothGattManager::UnregisterClientResultHandler MOZ_FINAL + : public BluetoothGattClientResultHandler +{ +public: + UnregisterClientResultHandler(BluetoothGattClient* aClient) + : mClient(aClient) + { + MOZ_ASSERT(mClient); + } + + void UnregisterClient() MOZ_OVERRIDE + { + MOZ_ASSERT(mClient->mUnregisterClientRunnable); + BluetoothService* bs = BluetoothService::Get(); + NS_ENSURE_TRUE_VOID(bs); + + // Notify BluetoothGatt to clear the clientIf + BluetoothSignal signal( + NS_LITERAL_STRING("ClientUnregistered"), + mClient->mAppUuid, + BluetoothValue(true)); + bs->DistributeSignal(signal); + + // Resolve the unregister request + DispatchBluetoothReply(mClient->mUnregisterClientRunnable, + BluetoothValue(true), + EmptyString()); + mClient->mUnregisterClientRunnable = nullptr; + + sClients->RemoveElement(mClient); + } + + void OnError(BluetoothStatus aStatus) MOZ_OVERRIDE + { + BT_WARNING("BluetoothGattClientInterface::UnregisterClient failed: %d", + (int)aStatus); + MOZ_ASSERT(mClient->mUnregisterClientRunnable); + + // Reject the unregister request + NS_NAMED_LITERAL_STRING(errorStr, "Unregister GATT client failed"); + DispatchBluetoothReply(mClient->mUnregisterClientRunnable, + BluetoothValue(), + errorStr); + mClient->mUnregisterClientRunnable = nullptr; + } + +private: + nsRefPtr mClient; +}; + +void +BluetoothGattManager::UnregisterClient(int aClientIf, + BluetoothReplyRunnable* aRunnable) +{ + MOZ_ASSERT(NS_IsMainThread()); + MOZ_ASSERT(aRunnable); + + ENSURE_GATT_CLIENT_INTF_IS_READY_VOID(aRunnable); + + size_t index = sClients->IndexOf(aClientIf, 0 /* Start */, + ClientIfComparator()); + + // Reject the unregister request if the client is not found + if (index == sClients->NoIndex) { + NS_NAMED_LITERAL_STRING(errorStr, "Unregister GATT client failed"); + DispatchBluetoothReply(aRunnable, + BluetoothValue(), + errorStr); + return; + } + + nsRefPtr client = sClients->ElementAt(index); + client->mUnregisterClientRunnable = aRunnable; + + sBluetoothGattClientInterface->UnregisterClient( + aClientIf, + new UnregisterClientResultHandler(client)); +} + +class BluetoothGattManager::ConnectResultHandler MOZ_FINAL + : public BluetoothGattClientResultHandler +{ +public: + ConnectResultHandler(BluetoothGattClient* aClient) + : mClient(aClient) + { + MOZ_ASSERT(mClient); + } + + void OnError(BluetoothStatus aStatus) MOZ_OVERRIDE + { + BT_WARNING("BluetoothGattClientInterface::Connect failed: %d", + (int)aStatus); + MOZ_ASSERT(mClient->mConnectRunnable); + + BluetoothService* bs = BluetoothService::Get(); + NS_ENSURE_TRUE_VOID(bs); + + // Notify BluetoothGatt for client disconnected + BluetoothSignal signal( + NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID), + mClient->mAppUuid, + BluetoothValue(false)); // Disconnected + bs->DistributeSignal(signal); + + // Reject the connect request + NS_NAMED_LITERAL_STRING(errorStr, "Connect failed"); + DispatchBluetoothReply(mClient->mConnectRunnable, + BluetoothValue(), + errorStr); + mClient->mConnectRunnable = nullptr; + } + +private: + nsRefPtr mClient; +}; + +void +BluetoothGattManager::Connect(const nsAString& aAppUuid, + const nsAString& aDeviceAddr, + BluetoothReplyRunnable* aRunnable) +{ + MOZ_ASSERT(NS_IsMainThread()); + MOZ_ASSERT(aRunnable); + + ENSURE_GATT_CLIENT_INTF_IS_READY_VOID(aRunnable); + + size_t index = sClients->IndexOf(aAppUuid, 0 /* Start */, UuidComparator()); + if (index == sClients->NoIndex) { + index = sClients->Length(); + sClients->AppendElement(new BluetoothGattClient(aAppUuid, aDeviceAddr)); + } + + nsRefPtr client = sClients->ElementAt(index); + client->mConnectRunnable = aRunnable; + + if (client->mClientIf > 0) { + sBluetoothGattClientInterface->Connect(client->mClientIf, + aDeviceAddr, + true, // direct connect + new ConnectResultHandler(client)); + } else { + BluetoothUuid uuid; + StringToUuid(NS_ConvertUTF16toUTF8(aAppUuid).get(), uuid); + + // connect will be proceeded after client registered + sBluetoothGattClientInterface->RegisterClient( + uuid, new RegisterClientResultHandler(client)); + } +} + +class BluetoothGattManager::DisconnectResultHandler MOZ_FINAL + : public BluetoothGattClientResultHandler +{ +public: + DisconnectResultHandler(BluetoothGattClient* aClient) + : mClient(aClient) + { + MOZ_ASSERT(mClient); + } + + void OnError(BluetoothStatus aStatus) MOZ_OVERRIDE + { + BT_WARNING("BluetoothGattClientInterface::Disconnect failed: %d", + (int)aStatus); + MOZ_ASSERT(mClient->mDisconnectRunnable); + + BluetoothService* bs = BluetoothService::Get(); + NS_ENSURE_TRUE_VOID(bs); + + // Notify BluetoothGatt that the client remains connected + BluetoothSignal signal( + NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID), + mClient->mAppUuid, + BluetoothValue(true)); // Connected + bs->DistributeSignal(signal); + + // Reject the disconnect request + NS_NAMED_LITERAL_STRING(errorStr, "Disconnect failed"); + DispatchBluetoothReply(mClient->mDisconnectRunnable, + BluetoothValue(), + errorStr); + mClient->mDisconnectRunnable = nullptr; + } + +private: + nsRefPtr mClient; +}; + +void +BluetoothGattManager::Disconnect(const nsAString& aAppUuid, + const nsAString& aDeviceAddr, + BluetoothReplyRunnable* aRunnable) +{ + MOZ_ASSERT(NS_IsMainThread()); + MOZ_ASSERT(aRunnable); + + ENSURE_GATT_CLIENT_INTF_IS_READY_VOID(aRunnable); + + size_t index = sClients->IndexOf(aAppUuid, 0 /* Start */, UuidComparator()); + + // Reject the disconnect request if the client is not found + if (index == sClients->NoIndex) { + NS_NAMED_LITERAL_STRING(errorStr, "Disconnect failed"); + DispatchBluetoothReply(aRunnable, BluetoothValue(), errorStr); + return; + } + + nsRefPtr client = sClients->ElementAt(index); + client->mDisconnectRunnable = aRunnable; + + sBluetoothGattClientInterface->Disconnect( + client->mClientIf, + aDeviceAddr, + client->mConnId, + new DisconnectResultHandler(client)); +} + // // Notification Handlers // @@ -183,7 +509,60 @@ void BluetoothGattManager::RegisterClientNotification(int aStatus, int aClientIf, const BluetoothUuid& aAppUuid) -{ } +{ + BT_API2_LOGR("Client Registered, clientIf = %d", aClientIf); + MOZ_ASSERT(NS_IsMainThread()); + + nsString uuid; + UuidToString(aAppUuid, uuid); + + size_t index = sClients->IndexOf(uuid, 0 /* Start */, UuidComparator()); + NS_ENSURE_TRUE_VOID(index != sClients->NoIndex); + nsRefPtr client = sClients->ElementAt(index); + + BluetoothService* bs = BluetoothService::Get(); + NS_ENSURE_TRUE_VOID(bs); + + if (aStatus) { // operation failed + BT_API2_LOGR( + "RegisterClient failed, clientIf = %d, status = %d, appUuid = %s", + aClientIf, aStatus, NS_ConvertUTF16toUTF8(uuid).get()); + + // Notify BluetoothGatt for client disconnected + BluetoothSignal signal( + NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID), + uuid, BluetoothValue(false)); // Disconnected + bs->DistributeSignal(signal); + + // Reject the connect request + if (client->mConnectRunnable) { + NS_NAMED_LITERAL_STRING(errorStr, + "Connect failed due to registration failed"); + DispatchBluetoothReply(client->mConnectRunnable, + BluetoothValue(), + errorStr); + client->mConnectRunnable = nullptr; + } + + sClients->RemoveElement(client); + return; + } + + client->mClientIf = aClientIf; + + // Notify BluetoothGatt to update the clientIf + BluetoothSignal signal( + NS_LITERAL_STRING("ClientRegistered"), + uuid, BluetoothValue(uint32_t(aClientIf))); + bs->DistributeSignal(signal); + + // Client just registered, proceed remaining connect request. + if (client->mConnectRunnable) { + sBluetoothGattClientInterface->Connect( + aClientIf, client->mDeviceAddr, true /* direct connect */, + new ConnectResultHandler(client)); + } +} void BluetoothGattManager::ScanResultNotification( @@ -195,15 +574,114 @@ void BluetoothGattManager::ConnectNotification(int aConnId, int aStatus, int aClientIf, - const nsAString& aBdAddr) -{ } + const nsAString& aDeviceAddr) +{ + BT_API2_LOGR(); + MOZ_ASSERT(NS_IsMainThread()); + + BluetoothService* bs = BluetoothService::Get(); + NS_ENSURE_TRUE_VOID(bs); + + size_t index = sClients->IndexOf(aClientIf, 0 /* Start */, + ClientIfComparator()); + NS_ENSURE_TRUE_VOID(index != sClients->NoIndex); + nsRefPtr client = sClients->ElementAt(index); + + if (aStatus) { // operation failed + BT_API2_LOGR("Connect failed, clientIf = %d, connId = %d, status = %d", + aClientIf, aConnId, aStatus); + + // Notify BluetoothGatt that the client remains disconnected + BluetoothSignal signal( + NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID), + client->mAppUuid, + BluetoothValue(false)); // Disconnected + bs->DistributeSignal(signal); + + // Reject the connect request + if (client->mConnectRunnable) { + NS_NAMED_LITERAL_STRING(errorStr, "Connect failed"); + DispatchBluetoothReply(client->mConnectRunnable, + BluetoothValue(), + errorStr); + client->mConnectRunnable = nullptr; + } + + return; + } + + client->mConnId = aConnId; + + // Notify BluetoothGatt for client connected + BluetoothSignal signal( + NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID), + client->mAppUuid, + BluetoothValue(true)); // Connected + bs->DistributeSignal(signal); + + // Resolve the connect request + if (client->mConnectRunnable) { + DispatchBluetoothReply(client->mConnectRunnable, + BluetoothValue(true), + EmptyString()); + client->mConnectRunnable = nullptr; + } +} void BluetoothGattManager::DisconnectNotification(int aConnId, int aStatus, int aClientIf, - const nsAString& aBdAddr) -{ } + const nsAString& aDeviceAddr) +{ + BT_API2_LOGR(); + MOZ_ASSERT(NS_IsMainThread()); + + BluetoothService* bs = BluetoothService::Get(); + NS_ENSURE_TRUE_VOID(bs); + + size_t index = sClients->IndexOf(aClientIf, 0 /* Start */, + ClientIfComparator()); + NS_ENSURE_TRUE_VOID(index != sClients->NoIndex); + nsRefPtr client = sClients->ElementAt(index); + + if (aStatus) { // operation failed + // Notify BluetoothGatt that the client remains connected + BluetoothSignal signal( + NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID), + client->mAppUuid, + BluetoothValue(true)); // Connected + bs->DistributeSignal(signal); + + // Reject the disconnect request + if (client->mDisconnectRunnable) { + NS_NAMED_LITERAL_STRING(errorStr, "Disconnect failed"); + DispatchBluetoothReply(client->mDisconnectRunnable, + BluetoothValue(), + errorStr); + client->mDisconnectRunnable = nullptr; + } + + return; + } + + client->mConnId = 0; + + // Notify BluetoothGatt for client disconnected + BluetoothSignal signal( + NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID), + client->mAppUuid, + BluetoothValue(false)); // Disconnected + bs->DistributeSignal(signal); + + // Resolve the disconnect request + if (client->mDisconnectRunnable) { + DispatchBluetoothReply(client->mDisconnectRunnable, + BluetoothValue(true), + EmptyString()); + client->mDisconnectRunnable = nullptr; + } +} void BluetoothGattManager::SearchCompleteNotification(int aConnId, int aStatus) diff --git a/dom/bluetooth2/bluedroid/BluetoothGattManager.h b/dom/bluetooth2/bluedroid/BluetoothGattManager.h index 1c1d4bfb6379..8af8b5f5d993 100644 --- a/dom/bluetooth2/bluedroid/BluetoothGattManager.h +++ b/dom/bluetooth2/bluedroid/BluetoothGattManager.h @@ -12,6 +12,9 @@ #include "BluetoothProfileManagerBase.h" BEGIN_BLUETOOTH_NAMESPACE + +class BluetoothReplyRunnable; + class BluetoothGattManager MOZ_FINAL : public nsIObserver , public BluetoothGattNotificationHandler { @@ -24,10 +27,25 @@ public: static void DeinitGattInterface(BluetoothProfileResultHandler* aRes); virtual ~BluetoothGattManager(); + void Connect(const nsAString& aAppUuid, + const nsAString& aDeviceAddr, + BluetoothReplyRunnable* aRunnable); + + void Disconnect(const nsAString& aAppUuid, + const nsAString& aDeviceAddr, + BluetoothReplyRunnable* aRunnable); + + void UnregisterClient(int aClientIf, + BluetoothReplyRunnable* aRunnable); + private: class CleanupResultHandler; class CleanupResultHandlerRunnable; class InitGattResultHandler; + class RegisterClientResultHandler; + class UnregisterClientResultHandler; + class ConnectResultHandler; + class DisconnectResultHandler; BluetoothGattManager(); diff --git a/dom/bluetooth2/bluedroid/BluetoothServiceBluedroid.cpp b/dom/bluetooth2/bluedroid/BluetoothServiceBluedroid.cpp index 3eed89083e31..0a3e16a1b9c9 100644 --- a/dom/bluetooth2/bluedroid/BluetoothServiceBluedroid.cpp +++ b/dom/bluetooth2/bluedroid/BluetoothServiceBluedroid.cpp @@ -55,6 +55,15 @@ } \ } while(0) +#define ENSURE_GATT_MGR_IS_READY_VOID(gatt, runnable) \ + do { \ + if (!gatt) { \ + NS_NAMED_LITERAL_STRING(replyError, "GattManager is not ready"); \ + DispatchBluetoothReply(runnable, BluetoothValue(), replyError); \ + return; \ + } \ + } while(0) + using namespace mozilla; using namespace mozilla::ipc; USING_BLUETOOTH_NAMESPACE @@ -1107,6 +1116,54 @@ BluetoothServiceBluedroid::ToggleCalls(BluetoothReplyRunnable* aRunnable) { } +// +// GATT Client +// + +void +BluetoothServiceBluedroid::ConnectGattClientInternal( + const nsAString& aAppUuid, const nsAString& aDeviceAddress, + BluetoothReplyRunnable* aRunnable) +{ + MOZ_ASSERT(NS_IsMainThread()); + + ENSURE_BLUETOOTH_IS_READY_VOID(aRunnable); + + BluetoothGattManager* gatt = BluetoothGattManager::Get(); + ENSURE_GATT_MGR_IS_READY_VOID(gatt, aRunnable); + + gatt->Connect(aAppUuid, aDeviceAddress, aRunnable); +} + +void +BluetoothServiceBluedroid::DisconnectGattClientInternal( + const nsAString& aAppUuid, const nsAString& aDeviceAddress, + BluetoothReplyRunnable* aRunnable) +{ + MOZ_ASSERT(NS_IsMainThread()); + + ENSURE_BLUETOOTH_IS_READY_VOID(aRunnable); + + BluetoothGattManager* gatt = BluetoothGattManager::Get(); + ENSURE_GATT_MGR_IS_READY_VOID(gatt, aRunnable); + + gatt->Disconnect(aAppUuid, aDeviceAddress, aRunnable); +} + +void +BluetoothServiceBluedroid::UnregisterGattClientInternal( + int aClientIf, BluetoothReplyRunnable* aRunnable) +{ + MOZ_ASSERT(NS_IsMainThread()); + + ENSURE_BLUETOOTH_IS_READY_VOID(aRunnable); + + BluetoothGattManager* gatt = BluetoothGattManager::Get(); + ENSURE_GATT_MGR_IS_READY_VOID(gatt, aRunnable); + + gatt->UnregisterClient(aClientIf, aRunnable); +} + // // Bluetooth notifications // diff --git a/dom/bluetooth2/bluedroid/BluetoothServiceBluedroid.h b/dom/bluetooth2/bluedroid/BluetoothServiceBluedroid.h index bd6b86453516..5933ecb3ad9e 100644 --- a/dom/bluetooth2/bluedroid/BluetoothServiceBluedroid.h +++ b/dom/bluetooth2/bluedroid/BluetoothServiceBluedroid.h @@ -170,6 +170,24 @@ public: SendInputMessage(const nsAString& aDeviceAddresses, const nsAString& aMessage) MOZ_OVERRIDE; + // + // GATT Client + // + + virtual void + ConnectGattClientInternal(const nsAString& aAppUuid, + const nsAString& aDeviceAddress, + BluetoothReplyRunnable* aRunnable) MOZ_OVERRIDE; + + virtual void + DisconnectGattClientInternal(const nsAString& aAppUuid, + const nsAString& aDeviceAddress, + BluetoothReplyRunnable* aRunnable) MOZ_OVERRIDE; + + virtual void + UnregisterGattClientInternal(int aClientIf, + BluetoothReplyRunnable* aRunnable) MOZ_OVERRIDE; + // // Bluetooth notifications // diff --git a/dom/bluetooth2/bluez/BluetoothDBusService.cpp b/dom/bluetooth2/bluez/BluetoothDBusService.cpp index 891c071d8312..781e1c94bed0 100644 --- a/dom/bluetooth2/bluez/BluetoothDBusService.cpp +++ b/dom/bluetooth2/bluez/BluetoothDBusService.cpp @@ -4266,3 +4266,23 @@ BluetoothDBusService::UpdateNotification(ControlEventId aEventId, Task* task = new UpdateNotificationTask(deviceAddress, aEventId, aData); DispatchToDBusThread(task); } + +void +BluetoothDBusService::ConnectGattClientInternal( + const nsAString& aAppUuid, const nsAString& aDeviceAddress, + BluetoothReplyRunnable* aRunnable) +{ +} + +void +BluetoothDBusService::DisconnectGattClientInternal( + const nsAString& aAppUuid, const nsAString& aDeviceAddress, + BluetoothReplyRunnable* aRunnable) +{ +} + +void +BluetoothDBusService::UnregisterGattClientInternal( + int aClientIf, BluetoothReplyRunnable* aRunnable) +{ +} diff --git a/dom/bluetooth2/bluez/BluetoothDBusService.h b/dom/bluetooth2/bluez/BluetoothDBusService.h index 77fb2e25af87..f52ee6b94a0b 100644 --- a/dom/bluetooth2/bluez/BluetoothDBusService.h +++ b/dom/bluetooth2/bluez/BluetoothDBusService.h @@ -184,6 +184,20 @@ public: virtual nsresult SendInputMessage(const nsAString& aDeviceAddresses, const nsAString& aMessage) MOZ_OVERRIDE; + + virtual void + ConnectGattClientInternal(const nsAString& aAppUuid, + const nsAString& aDeviceAddress, + BluetoothReplyRunnable* aRunnable) MOZ_OVERRIDE; + + virtual void + DisconnectGattClientInternal(const nsAString& aAppUuid, + const nsAString& aDeviceAddress, + BluetoothReplyRunnable* aRunnable) MOZ_OVERRIDE; + virtual void + UnregisterGattClientInternal(int aClientIf, + BluetoothReplyRunnable* aRunnable) MOZ_OVERRIDE; + private: nsresult SendGetPropertyMessage(const nsAString& aPath, const char* aInterface, diff --git a/dom/bluetooth2/ipc/BluetoothParent.cpp b/dom/bluetooth2/ipc/BluetoothParent.cpp index 0872f3954082..7b63ee74ae83 100644 --- a/dom/bluetooth2/ipc/BluetoothParent.cpp +++ b/dom/bluetooth2/ipc/BluetoothParent.cpp @@ -250,6 +250,12 @@ BluetoothParent::RecvPBluetoothRequestConstructor( return actor->DoRequest(aRequest.get_SendMetaDataRequest()); case Request::TSendPlayStatusRequest: return actor->DoRequest(aRequest.get_SendPlayStatusRequest()); + case Request::TConnectGattClientRequest: + return actor->DoRequest(aRequest.get_ConnectGattClientRequest()); + case Request::TDisconnectGattClientRequest: + return actor->DoRequest(aRequest.get_DisconnectGattClientRequest()); + case Request::TUnregisterGattClientRequest: + return actor->DoRequest(aRequest.get_UnregisterGattClientRequest()); default: MOZ_CRASH("Unknown type!"); } @@ -684,3 +690,41 @@ BluetoothRequestParent::DoRequest(const SendPlayStatusRequest& aRequest) mReplyRunnable.get()); return true; } + +bool +BluetoothRequestParent::DoRequest(const ConnectGattClientRequest& aRequest) +{ + MOZ_ASSERT(mService); + MOZ_ASSERT(mRequestType == Request::TConnectGattClientRequest); + + mService->ConnectGattClientInternal(aRequest.appUuid(), + aRequest.deviceAddress(), + mReplyRunnable.get()); + + return true; +} + +bool +BluetoothRequestParent::DoRequest(const DisconnectGattClientRequest& aRequest) +{ + MOZ_ASSERT(mService); + MOZ_ASSERT(mRequestType == Request::TDisconnectGattClientRequest); + + mService->DisconnectGattClientInternal(aRequest.appUuid(), + aRequest.deviceAddress(), + mReplyRunnable.get()); + + return true; +} + +bool +BluetoothRequestParent::DoRequest(const UnregisterGattClientRequest& aRequest) +{ + MOZ_ASSERT(mService); + MOZ_ASSERT(mRequestType == Request::TUnregisterGattClientRequest); + + mService->UnregisterGattClientInternal(aRequest.clientIf(), + mReplyRunnable.get()); + + return true; +} diff --git a/dom/bluetooth2/ipc/BluetoothParent.h b/dom/bluetooth2/ipc/BluetoothParent.h index 649b2390f2bf..8e45f880f093 100644 --- a/dom/bluetooth2/ipc/BluetoothParent.h +++ b/dom/bluetooth2/ipc/BluetoothParent.h @@ -216,6 +216,15 @@ protected: bool DoRequest(const SendPlayStatusRequest& aRequest); + + bool + DoRequest(const ConnectGattClientRequest& aRequest); + + bool + DoRequest(const DisconnectGattClientRequest& aRequest); + + bool + DoRequest(const UnregisterGattClientRequest& aRequest); }; END_BLUETOOTH_NAMESPACE diff --git a/dom/bluetooth2/ipc/BluetoothServiceChildProcess.cpp b/dom/bluetooth2/ipc/BluetoothServiceChildProcess.cpp index 15380444666a..3822c7c775e2 100644 --- a/dom/bluetooth2/ipc/BluetoothServiceChildProcess.cpp +++ b/dom/bluetooth2/ipc/BluetoothServiceChildProcess.cpp @@ -141,7 +141,7 @@ BluetoothServiceChildProcess::GetPairedDevicePropertiesInternal( nsresult BluetoothServiceChildProcess::FetchUuidsInternal( - const nsAString& aDeviceAddress, BluetoothReplyRunnable* aRunnable) + const nsAString& aDeviceAddress, BluetoothReplyRunnable* aRunnable) { SendRequest(aRunnable, FetchUuidsRequest(nsString(aDeviceAddress))); return NS_OK; @@ -379,6 +379,31 @@ BluetoothServiceChildProcess::SendPlayStatus(int64_t aDuration, nsString(aPlayStatus))); } +void +BluetoothServiceChildProcess::ConnectGattClientInternal( + const nsAString& aAppUuid, const nsAString& aDeviceAddress, + BluetoothReplyRunnable* aRunnable) +{ + SendRequest(aRunnable, ConnectGattClientRequest(nsString(aAppUuid), + nsString(aDeviceAddress))); +} + +void +BluetoothServiceChildProcess::DisconnectGattClientInternal( + const nsAString& aAppUuid, const nsAString& aDeviceAddress, + BluetoothReplyRunnable* aRunnable) +{ + SendRequest(aRunnable, + DisconnectGattClientRequest(nsString(aAppUuid), nsString(aDeviceAddress))); +} + +void +BluetoothServiceChildProcess::UnregisterGattClientInternal( + int aClientIf, BluetoothReplyRunnable* aRunnable) +{ + SendRequest(aRunnable, UnregisterGattClientRequest(aClientIf)); +} + nsresult BluetoothServiceChildProcess::HandleStartup() { diff --git a/dom/bluetooth2/ipc/BluetoothServiceChildProcess.h b/dom/bluetooth2/ipc/BluetoothServiceChildProcess.h index 80466d8698b6..4b0f2303f889 100644 --- a/dom/bluetooth2/ipc/BluetoothServiceChildProcess.h +++ b/dom/bluetooth2/ipc/BluetoothServiceChildProcess.h @@ -192,6 +192,20 @@ public: SendInputMessage(const nsAString& aDeviceAddresses, const nsAString& aMessage) MOZ_OVERRIDE; + virtual void + ConnectGattClientInternal(const nsAString& aAppUuid, + const nsAString& aDeviceAddress, + BluetoothReplyRunnable* aRunnable) MOZ_OVERRIDE; + + virtual void + DisconnectGattClientInternal(const nsAString& aAppUuid, + const nsAString& aDeviceAddress, + BluetoothReplyRunnable* aRunnable) MOZ_OVERRIDE; + + virtual void + UnregisterGattClientInternal(int aClientIf, + BluetoothReplyRunnable* aRunnable) MOZ_OVERRIDE; + protected: BluetoothServiceChildProcess(); virtual ~BluetoothServiceChildProcess(); diff --git a/dom/bluetooth2/ipc/PBluetooth.ipdl b/dom/bluetooth2/ipc/PBluetooth.ipdl index 14e3ec0c6d28..152d20958322 100644 --- a/dom/bluetooth2/ipc/PBluetooth.ipdl +++ b/dom/bluetooth2/ipc/PBluetooth.ipdl @@ -176,6 +176,23 @@ struct SendPlayStatusRequest nsString playStatus; }; +struct ConnectGattClientRequest +{ + nsString appUuid; + nsString deviceAddress; +}; + +struct DisconnectGattClientRequest +{ + nsString appUuid; + nsString deviceAddress; +}; + +struct UnregisterGattClientRequest +{ + int clientIf; +}; + union Request { GetAdaptersRequest; @@ -208,6 +225,9 @@ union Request ToggleCallsRequest; SendMetaDataRequest; SendPlayStatusRequest; + ConnectGattClientRequest; + DisconnectGattClientRequest; + UnregisterGattClientRequest; }; protocol PBluetooth diff --git a/dom/bluetooth2/moz.build b/dom/bluetooth2/moz.build index 3c9258ae32f5..39829e2d01bb 100644 --- a/dom/bluetooth2/moz.build +++ b/dom/bluetooth2/moz.build @@ -10,6 +10,7 @@ if CONFIG['MOZ_B2G_BT']: 'BluetoothClassOfDevice.cpp', 'BluetoothDevice.cpp', 'BluetoothDiscoveryHandle.cpp', + 'BluetoothGatt.cpp', 'BluetoothHidManager.cpp', 'BluetoothInterface.cpp', 'BluetoothManager.cpp', @@ -122,6 +123,7 @@ EXPORTS.mozilla.dom.bluetooth += [ 'BluetoothCommon.h', 'BluetoothDevice.h', 'BluetoothDiscoveryHandle.h', + 'BluetoothGatt.h', 'BluetoothManager.h', 'BluetoothPairingHandle.h', 'BluetoothPairingListener.h', diff --git a/dom/webidl/BluetoothDevice2.webidl b/dom/webidl/BluetoothDevice2.webidl index d1963bf061c4..7cdd96eb08f0 100644 --- a/dom/webidl/BluetoothDevice2.webidl +++ b/dom/webidl/BluetoothDevice2.webidl @@ -13,6 +13,12 @@ interface BluetoothDevice : EventTarget readonly attribute boolean paired; readonly attribute BluetoothDeviceType type; + /** + * Retrieve the BluetoothGatt interface to interact with remote BLE devices. + * This attribute is null if the device type is not dual or le. + */ + readonly attribute BluetoothGatt? gatt; + [Cached, Pure] readonly attribute sequence uuids; diff --git a/dom/webidl/BluetoothGatt.webidl b/dom/webidl/BluetoothGatt.webidl new file mode 100644 index 000000000000..cd271c7ceea8 --- /dev/null +++ b/dom/webidl/BluetoothGatt.webidl @@ -0,0 +1,38 @@ +/* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ +/* 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/. */ + +[CheckPermissions="bluetooth"] +interface BluetoothGatt : EventTarget +{ + readonly attribute BluetoothConnectionState connectionState; + + // Fired when attribute connectionState changed + attribute EventHandler onconnectionstatechanged; + + /** + * Connect/Disconnect to the remote BLE device if the connectionState is + * disconnected/connected. Otherwise, the Promise will be rejected directly. + * + * If current connectionState is disconnected/connected, + * 1) connectionState change to connecting/disconnecting along with a + * connectionstatechanged event. + * 2) connectionState change to connected/disconnected if the operation + * succeeds. Otherwise, change to disconnected/connected. + * 3) Promise is resolved or rejected according to the operation result. + */ + [NewObject] + Promise connect(); + [NewObject] + Promise disconnect(); +}; + +enum BluetoothConnectionState +{ + "disconnected", + "disconnecting", + "connected", + "connecting" +}; diff --git a/dom/webidl/moz.build b/dom/webidl/moz.build index 42b4a6aed67a..4b81d870f40a 100644 --- a/dom/webidl/moz.build +++ b/dom/webidl/moz.build @@ -632,6 +632,7 @@ if CONFIG['MOZ_B2G_BT']: 'BluetoothClassOfDevice.webidl', 'BluetoothDevice2.webidl', 'BluetoothDiscoveryHandle.webidl', + 'BluetoothGatt.webidl', 'BluetoothManager2.webidl', 'BluetoothPairingHandle.webidl', 'BluetoothPairingListener.webidl', From a14bf9a83bbd217fff3f2abb74b2e0e7c8dd3d08 Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Wed, 11 Feb 2015 19:55:00 +0100 Subject: [PATCH 41/48] Bug 1096185 - Part 1 - Adjust caret size and shadow. r=roc The size of the images is enlarged by 1.5x. The CSS rules in ua.css are changed accordingly. --- editor/composer/res/text_caret.png | Bin 1733 -> 2130 bytes editor/composer/res/text_caret@1.5x.png | Bin 2284 -> 2760 bytes editor/composer/res/text_caret@2.25x.png | Bin 2947 -> 3593 bytes editor/composer/res/text_caret@2x.png | Bin 2692 -> 3244 bytes editor/composer/res/text_caret_tilt_left.png | Bin 1655 -> 2016 bytes .../res/text_caret_tilt_left@1.5x.png | Bin 2146 -> 2572 bytes .../res/text_caret_tilt_left@2.25x.png | Bin 2676 -> 3383 bytes .../composer/res/text_caret_tilt_left@2x.png | Bin 2588 -> 3060 bytes editor/composer/res/text_caret_tilt_right.png | Bin 1688 -> 2034 bytes .../res/text_caret_tilt_right@1.5x.png | Bin 2191 -> 2594 bytes .../res/text_caret_tilt_right@2.25x.png | Bin 2735 -> 3405 bytes .../composer/res/text_caret_tilt_right@2x.png | Bin 2596 -> 3105 bytes layout/style/ua.css | 10 +++++----- 13 files changed, 5 insertions(+), 5 deletions(-) diff --git a/editor/composer/res/text_caret.png b/editor/composer/res/text_caret.png index b7159c24b8a6b2b91202f7a3e52aa44d65a14908..441067672e0418d6b0ae25ea2febd866e81167af 100644 GIT binary patch delta 1513 zcmZ{kYdq5n9L8tnn#-s(HMx|zG;B6@5jAXwk#Z}9mLwKR6Uyc9+DS;vP~t}aWC7oC^Ac%I+q`Fy^g=lAa6%D;kYCZBNlOXWx3#f$ z+P=tb8A(fSdoEP>&kW5LZBv7DC^S|BM=(U2nBoXHq=xZ!HbUWzj8O(C0?`CRL>Xsn zhBEJo`7-HZddxsDOap_(knsc*nM9xv&}cH2M6$wCuoO!i)&zwmVM$CR82&$G{Yz*= z48tr38|h&zDR=^jLN-McezsxA6dW3jH{O0>g|gDpV1zoI_api;L%=&Ve$td*(M*)M zB{0E`4+eoCUAERFmx#AZxsm>GGQ21J!fLQlUjNMX@W0CfGQD5VCi6CK%6?QN#gjeA zbr7Qr=Zg`eW{7FFZ;5 z`UTFHEK2j$8oqxzEQ~Zz#p?6WPmRL|AM*;2DeZM!*E(v}w6G)Kj~e!ru=4@{?P>WT zFoF#UV|oz?jS8wlPf7C&%0(0pF)nmzQJ4>{GIj1!)z~Yl2>>t0L z%U&rf;DFK9{@dMiMfVIL)e!tcWa5KJq{*=fj#Wzb`eC(ue4y@P1JD9(%;fDIz%_sJ zX7(&wdDxeC9T66k(a>B?kfybg7KGEK(nO&ZeSd`Yo=UD6%+ zqfZHeF2mO7Chely|A4CvFp4u&goosh)x4U2R5nHIOn@=c(~d=Vzo{c zG5|7hxM`6!~%QzI31b)+8Twhbcz=n`d2D z*WOEA`9?cr@G@mW5z?`shTzDUSRj=OZ^aIXMC}R1#h5ex#Fu`EZiM&5wOy4A2)-Oa zoo?eE&IPt^wJb*XM@%-VP<0SJhMpE{WqUk@dq>~7sT(xAdi1KuRP-sM_P{LSYS>ZN zfwskrL51OWIl4AbAOGo5PFeWBGQ;1Flll*;B&1FQT8XdB)ovJSzi=H!^5hFD2T!Rd z2%QfN)Khu*`PUPUb$tTvUCqvUTFX1lQ( zV5WT68fHqlVQ!7g&N&!rw(d?1k{eVyaeK63`canMGQ^OCWJy(uMm#jRcMn@#;}G8G zCv%k(lsMd+D0`y{GnoCJV$R73V@PD|{T>knlbXoCM$GpXIpY+)l#V{eGEs56s*~xiZ5+-xt;zS? z6q5XklTl2rapsA(Vy&0q^<5Q9Gni(|9GT_5WvSQK)fN#gDq#i&Mk^Oq%x#?-Z?mRi zT|?{!os9?2bj-<;l$0#|86c4HFv?9W%{_+g@9&>~&+XppeR#fp&K|ZW|Cl%@W@|3~ zwrKV)pPV_;jgz=qYCimbKmYsv_i;YEqNO(opM3OxNyMoYrtiD>jK%NUEokAWzbN?s z|NZ{;=6>$?vpEQnJ(!rYnN<*J@yO><8jIk+^<#`}h{BWL)dL#dj|%exY- zE-?7A6&V>BcW>C>uB4&=nbA!UZp*U6D-%IXEGVs+kEe|^(t zu3hQZxzyqQCyw3fHa=bLxg8;?HnR}gObFOdB5{qMCGqwDrp z7f#w!zoX{ko0oT9)jB*ASNPW!$M|52NXLG=SLfIK0tPPgrKYcs+uiqO7B{MXs8;yS zeC1L6ktrSv9{l+B_S($$^4HBp^>%xU+a$Q__f{1AkBhzVB)|NeJyVgRrX46$8^m| z;l3^VBlUn^$|g@ZqPVzO!&V$!`Y`}Q10Aox{9HJftlgCn!%3JR*h0%A;RG4>gTe~ HDWM4fF2U=! diff --git a/editor/composer/res/text_caret@1.5x.png b/editor/composer/res/text_caret@1.5x.png index f350cd393d94a043c5756c40e4b73b93d8ca92fd..cf033ace8a7f4895cf8e54a90f17ad199fe17912 100644 GIT binary patch delta 2146 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 diff --git a/editor/composer/res/text_caret@2x.png b/editor/composer/res/text_caret@2x.png index 6599b66391d1d381a6d724d7ce846b15e1427cb2..ae8b0f40bfbb365e1eed213ddaeee7cb4459d54d 100644 GIT binary patch delta 2633 zcmZ{mc{me}AICQ{{V4bGwcOO)Ha8Krv@benpI!#?SNoj{m-YeBQ6;{XDO~-_Pf!WF70v=rFhmOb@ONH$7pfe*&(T&W)t! z0de#IpgKK>2cm#5u{Jg~(npx0kh;334G@S^1}Fm*(%8TdZh$aA(6xBv{_E)dqw^c6 zPcPwts~Md#LRh1a|KuqvMns~0d{5x$VLalBi2vB9{>i4pK}eFg^EqDtfM4F$8sQlI zZMjgGATcP%B95=J+546q>1P!E9r(m-;vvtL>n1e;@h8k%?yJb^38BDo7A0@ow8)?4E~C_UQh|o_jRDx{Q)N(iHc$ zE_AM&oj$sLom9+S{mH$-VY_2&?@2#WAHEyU08}n8?YD1feLOEaZxmPI55TX&KK?fR z`laH5XR9*Qk%^pt935%)K^4%XF9~r=+!x&M0u-oVO$d_jOl$5+wv{sSvArMf`UU^c zuHNdk;L}!<1{sA3ePTX^0!w#?W}i-^Th*mB0CF~mNR^s%m9&!L{0D`%0w+D6T$8l{ zZ7WLLAa=(jp3eFNhPhT$k^Zc$aRy_%XlI3+=bjTT`#j zR)NnHlXy7|9{SxPZMhyJ8}EIO>I+zx8xrak^Es12Jw6^=QAou4izRt86XAD5fY>`Z zokoTkc`2pFxYs6LFPt1XQLsPF6fBT$0#?g6QUI2k?>5}Uv|X#Kvf&;0Q*QaK&x-D( z*jX758-GJI*2@je{n6zYQB}m9N|N#K&=5ICBH-Ws=#%Q1b1h!lT`zigIrG!IB(B?5 zyP`EeR><+E2xnucBXf!$eEg2&b+&t@5zZPs+EhA3SuDynO!IL`EiYRZDR{*x=ZBOF z63=^oyvlajaXa0w`9UlCX9gw0-Gb}gps3O?krnbKxH@K*&V{R=eBcLW*7D4+nO|xk z?Z2;M=S9uMp7K@Qt>NM<>8<6`5~BL&nm3?X)AREY&(V78AzkCmzmY31b&#X#V)ok{ zI=HS82<=1=URO;mubzx$TNTQZHzx3=!v96N3n-$#orHODZ zJ%CWH*2=HDOu<~8&dG3BME)W#xw(@9^J_N01CP1BL|=TLGNdgsfZ+6RIUiS2DVcl| z;_kK0=F%w+h1%X~fg%G<&5~}y6VjOp)Qp>{!@PFJ%P~THwKpHsBZ7$2(qWZ$Rw#k@ z?Ij#2uEw&>flZ)h!iumg?AL`hw4ljltFGAJoIwYxWt>4jFR`x*Vn!RaA>}+b(9CK0 z)YJ~m>WP8)23^o3hxrHR?rovgyv-WOmYZXDKJ8`9-m*h^3wjk@uAN(VHRWPLz>ms> zIck*O`}0(k3}?dvUAuVc;;a`1=Um+pH89n!H6`l`rg{@$jq~_ut?)9;d2j^n*ULAi z_?7_Fv>@|2(=@bG|YQPG)QBEE;}8;ewi)OUw7i z{PGIyAho$p8y$x1V`KN8#j>Hpp125|S||2Q*C6yRcH1GEMM+i6p4sA&hMJw}i%T2L z3XD=sN>BxCu0H%l?a7-cbS?}uQaUt|9EU3yG<6Flo7OcY08pd=9;Unx(s$`d6EIOX zQ=C!oO+X5R(E2RnnPq&&$)lN|i#*V6kjXgJHw4?u0HMQcC? zWIUxWW^{zbVXBZ6pL@yASGAOLsl8~8Gv(1ij-jy^YY61rwr2js#auEO1%<5^{ zhswUk1yyKZ>_Dq#qXeuSbSjUSgj4=Te6=TN4)r35F8YW@u% zICb)wpS_!cBw0U*$K!kp`^n{V4qi|LtUPO1Xiy;`NyQ}nLpy1fmwHlQc%`LxK|FYR z-oE*P3+Lo6heR!ksgsnai80g%f#UfL3)uvV&s)e9&2oaDO+@AhhVXoe=(hF@+=|mO zC4Hq72=vq^PhvvneLg7toIQ%Y(S)!QY~0>u?hrzSfwDbLO|?8d4q+m{0nuTbn2%<8 zH7R{*d%t4FJ+=$TNnG3!-3ow5iC2(t(@K=(AC+TEc>kosx_hN{H$X2E-Nmk(40oIp zWkA$roUKS2QVY#LmJTgWb1$!ab`GMPB*}?*gJ_v$L`NZxlU>UKRT-Jl3o07=x;@i5 z2KXfwOt@0@>dSUp3Z6h+`)uE6tej-1#+OrOVtelg@O!rR-gfGE9+39#`3QStLw=X zV>b0~8i^;(Ke;sR$jsGt3OK`)>5hTNM#ENP*C^hqhiJ`_t|_bp-Z{k!q-D5m`$KwR zZy9d^(DY)rbbUVKs(AGa9_-V=mj0#Xh`-!JH8fyS<`ytK@pXEKR;@W1?{agva57w2 zm4!ly#W%qOXv=<9iQ~D(*xR_Yk~iVOR8b|17K{yuU_G0Fx=Vuz-c| zWy?qAkQvXP@rJy~??@KO*&kPh`Y`T@k+1Z#I&_gYq~0A3YIf}r$kG(*H|5bAJLjTd zk`;Cq7hPHDxfvj8R}k4h03Y!DO6|ddO$ASIF;~m-YHtU&7X#0p-|XHwb)3&L_@%Ae z&2@bL5wHwdkb%+%{2zCG0Y(Sye}IPWRs%o)ABSY6aY!on;5!7^o<46~h4f7LH-OpU A*Z=?k delta 2101 zcmZ{mc{~%0AICRW$dI<=o((a^HnTb6AzRGjzONiP#ze$0#d37GmXKT_l55p+JaU#N z;b9eFjvS$> z-{gN;UDWTgIVj#U^qah{C;&iUlSD9ajGbIAq+I|z$@Y?G*dzWeLlG}3@g?tH%0=0z&`lp0P?S0ceCr8^E(jt%T|ur<9z zo>#BCw*%$dRBXDReW1eky*~01Bu*rOMZjxqIKL5>F-fuFpZBFYtFnOp51h9E*@7g- zR6GqcC?l4ozeje{dhP)HV;Ek6_K|Qn7y`cX%;gFEv!z;^FJU0x0LI&ig}TZmDJ$p^ zBkm$yo#=k2)OPO3N1;@=I$mpkQ17~CB@y7{0#PDa`N(>G+XDcZm}dFQl3d8%J@EhH?Ws%WRu}N zPX5@CEMD#CH0qPsL$QB}FU~)*wV2DYN#X=d(j_nK5Xx(p5`}_<+@5il9dak^rB)1D zm!~AZyExuaw5>RCX#J%%Cii++jBOxzjsqTu(LQVA`74&jRRZTb-r#pPKEXWgug#Sl z`x|^dJs!{7dhnxx^M3JhK^d_hNHGmFZN?@6C$c!ERU6l2Im@pFGk!qtlC zf~Xo+b?;GXZP3^&QX};Rem#96twi>1LrKqoj5NX`=4Fg#kXMjMBLFMv#@fEsRPDlp z*q3-=&p^0d{^;O?LYmol-+_FlJZanbnH|8`(GHbxJwY`%J+l!6lulw7IQYIP#L>l~ z+6vqsAQ%w`qj5e9?VIp6=>VUWAQs)i*ffhZiV3jsb_FR`1-nt#6BZX&I@HNABP*fT zFB%GR6pk|OZ540YRdj~^;!*j9&mP(jZ|yz#YR%H{3sE1&q28j44Xf)=KSjp?+2 zgnDQ)o`M1m?D~A7D02H9ZSC}oVOcD0JusOjcl%@I0K0(V-Ppl*C;j}=eLCw4UyZXo zD5>zf*^|VCP(^zdbHO6dK5yTd6e39#Io@2(TKeY{^*RPdJQ`>36-MJa79_#SYoXT7 zl^LdK1EcIasTz?(+SD7GKPFu|~Fl`gi=f zBQiVv#)wPP@>|NJkjbm>^x-_D(f-_-gAWP@LRA$t)NI1Wmi02Z$`4ZepK;R zf4!yf1d0k?c&!cudG$rirKD305=c5qYg@F{JzFYBCO6_FOGD!(#QsVg`wx&#jlc$$ zQ%XK}Zhl#?R3U<*ittPco%uHmxke7FvbJV~7(Cq<;FERf*l7Kaii^i&lR zFi&i|fV0#OIV}^eG90|dx$x-wOl#b&Skx>ev&+%x;;r(k-l&n4kfqb{Wjw0|#u(MM zgvW-Q=pYZnq~ksJ!e9)ki=H%ar1zXqoO^WqmCb#draC&5`LJa);@iiX#n(qWdjZqF z#t=!7c9H6J|7m=4C!M+1W(YwwQ$xgkC*C;hip{znEc)_s&nyzkyx5`eq#o@WF;Jgv zh(CcB;kz8%#6U_>irV4|!mfs9NM|IjGTLHlIZmd7btnDt^_nI@d>Vh(U%HGPf~O8f z@KNF-=;KgU=<1}}o=WbUhZ=j4$J3ZzcN=z_TZfTt>ei9+Rn>*n<-CddgJk*C@|41| zIUmy(N@W=N%hZ2{Ip4IbaO1)~FI4pAzZqrBBzS+FwPGAS^|opBLPxj$THDi=Ig>1F zOCnz2%Pnw9t~@4{g-wD4;sgDq1ogK|Mx-p`>8ElRi*6VNS7}GqtL5+~yvdPW_{P85 zOr?eWq8&Lq637`vwt52wa?YQ{~BZ4uTUBxw11L0 zMF*u{w$v)%3}q|k6_*=H<(ycvD_S88|B1!-B!jQDV3E9P{M@JRI?&;QJ~?hLUv-Z{ zNS~E3_iANMYj~NgK)Q!zCbixe4$L|BkSeCLIc}rLL6Z>1l`jbSYI0Hm*@{#vqdDVp zbdXYb%iC>KqBX6h*ne=u$}7&~psEfk*?3skjq36IbC GB>e|P@1^Si diff --git a/editor/composer/res/text_caret_tilt_left.png b/editor/composer/res/text_caret_tilt_left.png index 1259d00f770c74afdef2f6d4b498d71ea77b33fb..6dd2bd8beeb16e0066f5e32710d29c371bb25b29 100644 GIT binary patch delta 1398 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 diff --git a/editor/composer/res/text_caret_tilt_left@1.5x.png b/editor/composer/res/text_caret_tilt_left@1.5x.png index 4e529badb4f47efc85bdc77ea04262a82a30ddba..bb26138b552711982d7a50e7bc186f06658420d2 100644 GIT binary patch delta 1958 zcmZ{ldpOgJAICR_Z`xQ4>mpy0+--JYq|;_@xgO%eo$+fW|#@LMGh~^L#=5h{+ z#wycLODe~4uiQd%YDGkMRDPb{@A>`ld!FC<TF90nGYipM6xHGP{Q&C9Hnl40 zJzz(d5?t3<54x!JERzQ))}ZfXse-EV0zKkGky(_$>*l#Bv(&|UBb!CrcCI#2fmko{C=0WXc4HJ*Q4Ci&Urk%PM7f6dHPhO9bH9TMK zwKMMboQgNT*lPQ7FbXWIW-%zy)Pb zB?_U-q_RW@5b~no<|!Z6V)!a=w%arP__13WhL1Orl;1||;cx^X5<-7a@#Xt4jcEH; z$?Hy0-U(Hn38SxgPN)Ur>%iDpq}OD;+~!PSF`oF08qDTQ4yWxZdks@^X1a^o87&#)i?1K@=_|U#}hqRyc(hL;z8qNl&^s%;ZP*V3x%S_TIJ`tYfZ!?}eL)XYa zP)50rBLN^8V>GGlo4c$yTNt9xlb*@4jfS}>37qB0aH%y?aFYwxh8xd<`qkvH_==;x zT^SPnOaQ+zQtF&g3I}Rn4l5r?E}TlEq2P^i`#?vPTllYYLp+&>T|HRU(G;3q$Qrz3 z@{_~EPLosf&I;S++jCx;Ae1uF_7A5r7c}-hdtZRw-tpjbCFinmNFAqqAO{uJ8G9bD zyzQK5`Y7WKF(KwkzNIA|3EYl+J9<0(M-o+y_kE%(yH4;i4@0
~`984-5Ci=A9` zIKrAygaYCjDg5;k_Zw&`Z^y~!MAk`g5D^>wjj4mOnA+|MzfvVuJu6X9TrUWyw_dnh zFDJ-W(mQ}$e4E(zDOH3BbT%L#46=U8Si5r)u2GeG*7W%%Q)rzldYZp0f<~W>lpGo^;Ta| z#)Y<-`UbhZ21R>lQ9Ea*6fnb2Y8{_OnKdpx~iYk%TcNbsEW z(EIY#RhI`X12Zod^H=I&tV+dio#i1vXww%bzbJX@5y7UI7)G2*vdTV$@tcCP1k)sRY}*goX)52F1g+Li7gvt&5LH6e62kCcc1PM zmv2vaY#Rk04+i%s2x)K_#}(?o+dton7TsI1{wK=y#bJ&1j+z3|#QX4KEko`xJV_1u zdi_O^ALCX3$HbVaq0rZBGv+icX7ijKbD>s^iPYb-*>>-Wyn9su7G;w5>$KJi_O#o( zC$TNRJZGxT+AguW?buq`WY7SmmZ;wda-n3EcVppO`*r7pClQ$fzpKqiHkt}K3dl3- z%5|$jN66jdhWk~tq4v+}Qq-@m!7t>QvE5m(?7KhqhIz{VP`!t~xSN=4{YrByC0p>U z(WY1uW5{!AF5P&BC0_vDkOqKy)|R`lV{FX7ao_(iFKj~@0||-k%Ba=vWNuC`#Kpmb J+C&Lv{|k=hR9pZ6 delta 1551 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 delta 2087 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 diff --git a/editor/composer/res/text_caret_tilt_left@2x.png b/editor/composer/res/text_caret_tilt_left@2x.png index f0a0a5dc8e4edd3d44bc8763deee0cb9cb015301..103561b642e5649c46a7a2af99440ae265e10542 100644 GIT binary patch delta 2451 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 afG>ir<<$aR_T9&S7QhINHK@=hkpBXLq<#AU delta 1998 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 delta 1090 zcmeywKZ94XGr-TCmrII^fq{Y7)59eQNXr7TJO>+)l#V{eGEs56sS$gOR^fxI~ZEUI%VL2LPTcIiPWl4v)<6Fm# z9IhgPOBCiU3HY)|RBKUa_Z73y=NCRf*<>=r&Kd|T~@)SVqqosPbmZCe`T8CiWx z+NkE3qijpi_e=M;tdH`_^Y7t{k+rIBXz!9f{;AQc>Gb2ZJMT)fXD+Q(v%J2`-DGhVUpHH}>*d0rl?s{cUaT8W>|g&+ zglF#^Hsk!#Zj*%=?A0MWp(Qd7e2SgM(_nk^q*b0;AHE&<7an@ywi#McHVC1ZT7eM&(-OqT{Q(t#|ntniU%QLriSMIkbvXsc}o}Bbl^Y8|jwsW$(#9mfb@%wF_ z#vQ=v>sz4rmx#zZJZSImK7j^cC*G*+~HTZMReR22o zJ92ov)vkSaE&u!U>iQgB{C6=e2EFf9{U#r*Z2m(N1B4J~rNFJ!M%{c$GIhIvQ3BF}4` zbH+@Yoi5wx9g&LaiAs4PXH&v?L8EDrg?}pZviNYLcU$YGI=<%;TyZ^El+n{UE-UP1 z8mq6lgNJr5kK(ke={h?vhzdVG`lkPMe52Q{)BpD@|Ih!Woq?HQg+YjE$zBr;V6nj9 M>FVdQ&MBb@0Kuom$N&HU diff --git a/editor/composer/res/text_caret_tilt_right@1.5x.png b/editor/composer/res/text_caret_tilt_right@1.5x.png index 6da5782e86ed44591466a07e745ea2d7c9d24e4c..b7e37b1fa066510ee627bde90e7c5dcb06a5ca8f 100644 GIT binary patch delta 1979 zcmZ|QX*AS}8wYS^2BXl>*taqEeTEr~xU-VMWUuHFnJa{>+52U?hE(G}wxPPmnz7xQ zKer;g7|L>8QFc<6X0jxeO4p0~^4=HE^PKNFpYxpayn1d)SHLxLTu+^pJfd_&NJvPM z>OgTnoTS4#2^Br;|7Yi)%h!0QZDAaULSqn?I1@D1!V+g`gfKhIrYI{@Gn6q3XN@(t zMw#V*k7bn#(^;Xy`m8XJqPi6tMMP03M4UYZjkd!OiDZmD#-3z}!J;rk43T97QvJt} z|I_RXo3pAxruya>b2}>>8hZ$F|F#T?h>3OoCCHl2iUJ)+{G%=YOS4d55>T}wSP~Kv zEud0}o(a?ZvcxdBm&(BEFn=Vr&B~2*qfUPoooQTVd6hEAUbv6)GJ|+#!YCb%uwT=Al^=@bsZL{m3mo72Ec$scV zP^->S%?l7W^Dgpi_}tw2?c>Lbbd3W;JU@8j+j5qxLG`!uNj(e2e`4Jv{n z8^9e?;;SLj>GN*^JR2_*q_aAW=?A41x=XZg41WJ{+yD7f^XS+>x;NZp2n1M-r@rwY zEqX{^C%HWXPV#bR$pZP(XpSqYTV(O}yXP@?1svOnmOp{*JaJJ@tBa#ZdbV1W>W?Pj zDwDVK!EU%=Ilf+LXM-ei3VDrKFRmrau#%%pTqaR<%44fG4J5)NOMiJ;E&XX zaO<*g1r9;4jxir{siTRF6F&2K{<+}dAB!q_WvKqLOa8D2V;|*;pAUe1(u9}3J@ZZ; zX)mDthE{`8-Le#zh}zR6{I0 z^Q8brrU9Z58WK@~;jHx5-HNC69vQT=1@*!LOr)pgopatAxtRJLyA)Pqz8p*B!H0vn z4DjHjL10b`%EPP5)@qtZ8(-OFqdh$vzaHS+-3c2Ri_Y3UjoSAoL!8X9w_*thI$g1k zT@x$|2{b7cJ8HsmEgeaV{jzhb4mKPK_=pIH-Z@1;g{Bd5-Z|g#rG-4w0H5=7^$m1W zhJeQn%P};NMpJZ9{syAU$f%&d>_M2LwBj-MqYxSL0b`QbCmLZtk*9Qo!K~5eap8h@ zuCf$ly+r(hZS5~o?nX9!$-Xv)-5&~@b$mPUF4lCnv4%tj@poIay3!p)ohU$pK%)Zs zUU9r&QJ(}?+)bD|b-B%i#Y=W#ZKjuGDO($lPlxVqXVm376uh%nlES(vrS$9nnh`O| zX|10KF8B643b7+lz>S@s`senpG^Ro0{X#QEZib>;h>R5^ap8-HE>;#R^3#UR&Tz=t zcJkHADjjIbj-Ke!e#mO#Jn$DlHbjtAf$ySUdJ%4!bxR)G$8E~r$GzB`H+8BgiC=*2 zB=h5xZ}!xgo|lZQHN-6X?%HDaJi2oJ1{5j3r205&VV+SpkCX{$E_Xvd8zPM41EO{HD| zo!$oDlMdY_#`V|iqpFSHcnOEGOn3r;ZP^)qUfX_aG_?G|<$+T0{ajj4MtlI)dBv;J z`S46B39>pPdH?dRhd$xp zniO7>97J{v)+~UT6J>WzlM{!_ng{>)f{VxV6(UvUlX$?A{B7H1R~#V)d=s8tA==`n z<8+d0zm_oeW-KaeX2|EB?diu?W}=_XW*udA^Md5mz&|-GDyfKBSaw&9lAm`|ClZcj zrlh<2FJ>DAtyNQ09~DP?1f4aUpT5s?Z;QNJUe&XQvVZ}~{B^0HLxba{HY4(v-Aol9 zm3@Y&qiIW5JDD!9T(-Z0NS`N)X~ylF$$DFQG0g5m@vuQ{6UVG*dZ;_rh{xj=Xi>Sm zfvm3kx74pBA?J#dQ&(N$pZY#**RuXX^;AF#r4RLO5J%7p2)IHn2QCxS4bx#&v#(tc z$LMgX03B&DBiMkv1`I^s66UIEEaVU5!r193dM`)UE4x5`473sOV$3ZY@G8 zp#L7Q3`Wv{iV@}w7{`J^(ZqXRJE18fo}J@(cKk+_Zt-j(g@zdD8|+FHX_^+|hA6F< zNYb21X-o-{;|8*DcXBgRyVO{HThHP<-Zmi?W(`%%lp=|hXN(co5dRWs%|9RtLe`(x V-_tiH^$-8C5Y_G!rHSO9{x`ejaSZ?f delta 1597 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 delta 2146 zcmZ{mdpy&P7st1`eck8!EU9Ml@X*-IHXE`r_b}HeY2{W)iMd5)Okpk?DMDtshLGFK zr5L(MRwS1~DO%;JhZNBdKYu*G-+#Sc=bX>$oY(tvUgysfBlb6wu0f9jB z4)zrH9VPFiEg-p5^S-Tba<$rZFvtKD8V$$c4ACZ791eW|Zj3@38=-arheVqYu{feJ zp1VoUn+7BD&VWPnq9H~AJT@%c*_r5&CxEEHu_$8-21CZ9Z3$>J+Qx*8H^tlH@uoOy zTT>j$)HH7ctoc94^tVts1m*YdChYGZ1U!=N9u!OrJRcAh7Icp8K(RpVTw)k_I*|CU z7xz1F9!kuL!7g}g2m(oIIZ()+v9JCv3O%dprTR$J)HT!gTD`2IQB|B`ki+K=`~*Mn z!6uR{p)5)kMP3H&mdS-3inW)s=cOAdQ^zVRPdXvQxzIQ@=z+?I?s63s$cDDFVO?Qs z1T!g?BSBA!qE=a+4G_d9Ti3b@E(r$P)8+@sof~cud%|nZJzOE5q~t<910LX^)b_OV%(Z%mpiR z;VJAn3tG@xTT>j9HN_TwxeFyi??*4!X0KfzyA}Ddn}t+>z&@GRiir^$U^BX2@WHD* z#uE!K;0&*(An-qmo2)NR0Y5O)SG&7U#F%7DVO|Q7736fsX@w) z#;_KxNhiy#j%hdZg)1k%>J9Rr|0yf*7O!$j2mEcWCFtv4TTmUpiM`xvmZ9`mdHh4c z!|-Vzx<%;;-R~HQN_9OtGlK`lkZ6QiLgL8oT5=B8`KWxckoTby zvA#I9LQRfzQUT{h+Juc;v`LWJ@ew8}VUx76Nv1ycB^r&txHvx^ZYjKE>YjSD$l zRUZr0BALp{w;gUcf*5mt!9_Y&sh$LCvLth#8c>Y6Zi5~2X(opsD!?g@$tsj^cv2_c zu|sF7Bbp24A*DtC2=A>4mf`4Er>xUlS%I!b20@2j`2{JuO6kMEPqXUr)v{-TOBFz8qO1}kbckayFYBPJ#d?dUmR0L&N1*S98DHmZ@{Fnf z5xGVgKV%>LZp*!SqkgYVrXTK@-p}rv)c8E&z?E8>^rDIh!;YJ)3Nt^41Li`98K`tw zllchvOc}kg;zYv~Ja%!lSOD@=*;SISeT9s)?%G^6SHV3 zwVv9JoXc~(L{LW0o=P`C(~MNpdwmcy2}LB3H#w_6*oyY#Hw}f7(2ffoQyxc0c$E@o zAyly_V3`r#dsTbW(yQKDCr~fo5??io?saEd-RuqomSCG~!OQikkwCPF}I^}dM4Hr={-@BQRDs15#DT3bP) zKSPPdO0z_bb#4sSTg5!ONe2Ud)eT*D<9w0PjOiR?Qa(tF+5pQMgSzui@`7G!@3s!h zGV^$~9{$>aKi7Yb79%unEaj^6X9G_W^?s*8VF=pO|hVB}-o zZ%Kb$DDsbTDeT}Z#6AMzK_hSIpHGQ|FQuq%CTTqvER%St$>SD%{$vM4of4T=Ffdae zT?eR9vL*YmAzS6|D$X0(qMi^!&dnj^(~|FR(N?C8o43Bs=J(b8L1&VAED#_D)+2eZ zp++W~uRdw%Y$GC-`zL&m%*%{6rNGjr?k|gdRfnHOdx7iUh3C8zn5h2WK#I%Wy-zUY6rh%k?)v%jjAkxm;0CKQ#q1>^eCI1&iYpMDG diff --git a/editor/composer/res/text_caret_tilt_right@2x.png b/editor/composer/res/text_caret_tilt_right@2x.png index 1d7553d52a084553aae96bc20d1b265cd55ce344..2ead80fa4e5bfd552bb485ce57c9adfb78b1c23b 100644 GIT binary patch delta 2494 zcmZ{mc{tPy7sqGD(jdHc*(oAqFdBm}VvxvEgOIUJnI;jgH{mz-4N|2XG-&v`!2_uub%C0ZbbA4cyl znO(3hxe%hIhR{LjA@yOfW6`Kz?<9y#9H&N?6wc>NzIh1=0(8UqZ`{@?%=z?x9mBE`FNOVNXsV0@L&e!ERBm#g1e3RBg2@i>` z%B>frZyd-Xva<+8u&BQ2TbHMF0f%IStxbJY^VG$y-lx^2w{#9~*<0QwqNJF3MQ%l* zBNxbM%$f0*fpb5R8r}6X!MFWfSMdpR6w!b)4C2;Z1-%oQGKUv=*oH{}`{ZH7<h*3?By? z&5LW49cMcHVY9s2@MHTy8OEOj=OZ+)vK^Sk@^{;vQyyGpcLB!dU>E_96#tU>E|INz zc8t_(w{fK&q3Q;!-o+9gJp<$02SqvjYt0F(o8<*92Qz{>`>FUF!%F$HJ+tXu$|Z4j zTjMGg_eVs4I1)%3J z);<#KB{}+oyTE5$YG$~&1_Ky5J+-dR-kFXG?DDL_(%z@j9Qi%fh{+@m40(k|A84&T+@l11^Jo`E3%mA# zxaHr|Tx_fz38F=c~wlY4McmEp<{?&{dMFKSFs|dmgIvp0SsQzjiE--sDWGy~^_Qv}mg~CxO(sK& zqVy(U6!1CVSC7Gsn#J7Uy5AF{&vSCV zpL1J0L*EV;N4@R3?$K)I;lt0`><<;kvLW^`&rtdXV(N2;=+~uZKJ78;P$I1uOD$aR zi2e$itHdG;#6P)3CS#}MQieggGR_=C8Zgnb5Ii&aGvf=q`7OnXXfaX^MU$@T3&5N} zgrq7cT5d7dE94b2Nvro&ah9-nF_lZ-^j+uE6%F^`|2dvs%F z{>z@#m7^YIACYawNqArpsVu{gUMg`HlDXJJ+3>&<_MgdatL%j{f#l_#Z;JPsGc83W z^#nS%82L}J&g%gYAq;s>bAL52zlN-;g1MJ&a?4%v?O4I0-?kh@2|v9Z2a4uJj*O9S z@6M@YSocwut2$NC?=Lpu_UMr2}wF=F#l0ya(B3P&0(v)n(V;@Fs zCrulb*Cb;{I_E5EF@ zoXM3rq5VpdoN!i49ZUR`e(upx`kxZQDRRs5Q4u3fSwmUmk$&;?M3XV#Yk}AxibDn> zWQE(9I4>#@iP^ENNW^ViI-oInN;R@_m4|nIS0;?s&Oh4u1|Z5#hA@BJp-8xk^#vDZ zZGVy;4DDtDJ5ZN4YHL_an0@gVcCsoM#-|r!THYP6K?vw99G_-3HiWJ`XK%Vc7|`kJ z7@2R_qp1kC998_tO=(VCpHw3n^3>Tc+vl?-nk~T6rXoGQxe^bcIU2#reWls&SaeNV z)L6}0^gp#mRy2hCp;!yH3Y^$Sw@Ly zOn<6#dupMzGw6H51kLb9jC$0O6JW{ODDV2bb7gh_qf8TH)!yo87HoO4I`tt_WNvs! zpu@B(sFJfVgL^=n$WLjF&5p!M2j|0yZGWs%;(=&W){0G2a>ehLZxb5ZMuueO@sUxO zz~5b47e0?%kt%T&yQQq#m=y?@mLttP+atUP8?010t88BkEpe8qQ`-N7%EGKf3KfA5 zDcQ;V`4aTc;O_=RcC_>?WFa`=WHHn#7M~ZN&h05y(5K$E^<}0J{jmq%Qr-O%k(mk? z06cw#{$|bcwRhDNt(XlafpzYI2yrx1YjD44#GqvBjY6_hnsYmyi&cD}y(|Mt0~ht> zGx^l0(Oo4_SH0IR@hxdbmoN}F2l`QQa+%kds}wy-lVH^avK1B2C@mjD0& delta 2005 zcmZ{ldpHvc8^CulMp1HUCRuV9Hnw3g8N)W4OG=`PY|VNTA8b=*paQn~C@;t(^`=lQUDtwWe%e}aEdT(Z zP4f2%+32{9#6#6LYN{<1pS!Ec!r49=i9#W;SO*jugT-p!%>Nr`md^yT^4TCqC?e%_0+os*<#&Me5Kb;cEE0>v5WRezQ7EFb7lG*H>Wx98 zT-?09+_2bu70|@=e+>4!j2MKB{Qn~7??GmW^NAsh7##gfbkb=?d?Lxm!)!yufqsg< z;rL$(^!H}-kzfLcq}g;H08lR=`FMq+WUD+mP)-pxS_I!5s z&OO$PR-%N(C|EjXnlp!riWSjZ6$ z8}G@PXQa(`be^LaWSx03_G$G|FK}LZ3=EB91kcwb1|9;KtL*6lo z`0^zZm6Q9ReBzDUg*YXl>vhtp(%RX>%~eOl4Ijc+ti!&JPLXS3XSd0o_D8`Q0n6HN zfW`(IHLER6XJ$luyzf=})Pr3Ot+TsD!g=21F)JgDW#yj0JPg%D)&pqeA-FajK}6+D z&RC#H=5@564r_%&-iQFl0N&i7Rb+&{FWjc*r~3syP3Kw%AIiay4%9 zGA2zqbcnU!+G+ug?dEac0Vl_Xwir6Bh!ufdl5Pcb>kH|+t4`d%KP(cQTL;IyKyuP4 z7r6B%k#|X(Eg6~Ma5`7sVV@A@A^A4$7?JEsnKF1Av7$UqSjL4{ z#qqn2_!z~{-m7BGFTT5`o0UI2gWmIDjt=Kfju}igL=4aT$v;>~m-ZG_??iKxQi2W9 z{p+j|pl4EsLYAkX^?+~K{h=N-{WtG`TAoWGvpS>T%!|;Xn#kl~^Rm*|T{Mold%Is0 zC|9bWu@l2QrBDVX8g?als3prsNZT8bTv`02#e-;_4G(i~lKTh?(5c4!cMElz{E0~4 zK8o-(A$M74;DCi!uVoMhZMnZlY5_x?JDy@K+}E99tXI14*5D2%Jjt(r=fjvVVjov4 zQ-AHln!i4hg0F-ez5&5-NQ(?`xx4Cf5|t-!crRv>eksg#(sjM7T}lY-VW8^?{sP~P ztKVNHv^Ktb3Ba9G$%*KC94v6&eRe4Oul>tQj+NGl3^Y`GNhLchT%TbdkZ(N%rv08q z9r^i%BYi^k`l7QYPBqZrohXf3XVztqVaTWFH<;}z>)0MyOsO3rY}QwMDTmd zApx|deu{N!;xvCheY4H=Vtlj7smkJE8)AXk`fB4&^>mOMPc5{8^0TdxNA0)vrAGPC z>sEiOY5Dw^pUko3i(b1#v;2hLV2RTakew2LNx>2|)!UfxGZuPi zq|R5tERDi(L>zods+A5cr()2Y7D`(jY+C>WiV;1?xnPwrU@aS*&*GXtcc^O_u{)~@ zsfc~PdXe>8)!mfrC=-WQP>W!g>eBLa;T8NN|Mo?#_jhWJn?bFtcT1jI_HY5+LhN zEzteKQRSR-Hf3a_deW|Pwo{%Bv-;c`O*PWgxF>2go|s*#>U^d#N(gh%$=kji_+CxU znNdTA;YMYP{XSkIP48#_ytO>BZ+dqSUDn>+=eEiHg>;knxsV`k+iR`8q=hK612~-k z!9fFL!mWe*bRi!=mo`~!p^hA#m!zHBeru*Fh_!YtfarX{+#GNC!~ypbvqRi+ruLmLb(8Oi)j?|%fuCiJ-~Z$ZR0l}v-Bap+3)s5xsR1M+ L&8LQN{Kx+Qi}Hb> diff --git a/layout/style/ua.css b/layout/style/ua.css index 2ec8ac19f3b1..efe81d3c4403 100644 --- a/layout/style/ua.css +++ b/layout/style/ua.css @@ -325,8 +325,8 @@ div:-moz-native-anonymous.moz-selectioncaret-left, div:-moz-native-anonymous.moz-selectioncaret-right, div:-moz-native-anonymous.moz-selectioncaret-left > div, div:-moz-native-anonymous.moz-selectioncaret-right > div { - width: 29px; - height: 31px; + width: 44px; + height: 47px; background-position: center center; background-size: 100% 100%; z-index: 2147483647; @@ -341,17 +341,17 @@ div:-moz-native-anonymous.moz-selectioncaret-right > div { div:-moz-native-anonymous.moz-touchcaret, div:-moz-native-anonymous.moz-selectioncaret-left, div:-moz-native-anonymous.moz-selectioncaret-right { - margin-left: -15px; + margin-left: -23px; } div:-moz-native-anonymous.moz-selectioncaret-left.tilt > div { background-image: url("resource://gre/res/text_caret_tilt_left.png"); - margin-left: -14px; + margin-left: -17px; } div:-moz-native-anonymous.moz-selectioncaret-right.tilt > div { background-image: url("resource://gre/res/text_caret_tilt_right.png"); - margin-left: 14px; + margin-left: 18px; } @media (min-resolution: 1.5dppx) { From 97d46f9e72c6b8e193f5677d31051fce37621b5b Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Thu, 12 Feb 2015 01:05:00 +0100 Subject: [PATCH 42/48] Bug 1096185 - Part 2 - Change hit test in tilt mode. r=automatedtester Due to the caret images changed, we need to change this test accordingly. It's sufficient to perform hit tests only targeting the left edge of the left tilted caret and the right edge of the right tilted caret. It also reduces the running time of the tests. It's sad that we cannot retrieve the CSS style of the carets from ua.css directly. We need to copy them to the test file by hand. --- .../tests/marionette/test_selectioncarets.py | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/layout/base/tests/marionette/test_selectioncarets.py b/layout/base/tests/marionette/test_selectioncarets.py index bf283e5f02bb..b2e1f591ba40 100644 --- a/layout/base/tests/marionette/test_selectioncarets.py +++ b/layout/base/tests/marionette/test_selectioncarets.py @@ -6,6 +6,7 @@ from by import By from marionette import Actions from marionette_test import MarionetteTestCase +from math import ceil, floor from selection import SelectionManager from gestures import long_press_without_contextmenu @@ -185,17 +186,24 @@ class SelectionCaretsTest(MarionetteTestCase): (caret1_x, caret1_y), (caret2_x, caret2_y) = sel.selection_carets_location() self.actions.flick(el, caret1_x, caret1_y, caret2_x, caret2_y).perform() - # Caret width is 29px, so we make a series of hit tests for the two - # tilted carets. If any of the hits is missed, selection would be - # collapsed and both two carets should not be draggable. + # We make two hit tests targeting the left edge of the left tilted caret + # and the right edge of the right tilted caret. If either of the hits is + # missed, selection would be collapsed and both carets should not be + # draggable. (caret3_x, caret3_y), (caret4_x, caret4_y) = sel.selection_carets_location() - right_x = int(caret4_x + 0.5) - for i in range (right_x, right_x + 29, + 1): - self.actions.press(el, i, caret4_y).release().perform() - left_x = int(caret3_x - 0.5) - for i in range (left_x, left_x - 29, - 1): - self.actions.press(el, i, caret3_y).release().perform() + # The following values are from ua.css. + caret_width = 44 + caret_margin_left = -23 + tilt_right_margin_left = 18 + tilt_left_margin_left = -17 + + left_caret_left_edge_x = caret3_x + caret_margin_left + tilt_left_margin_left + el.tap(ceil(left_caret_left_edge_x), caret3_y) + + right_caret_right_edge_x = (caret4_x + caret_margin_left + + tilt_right_margin_left + caret_width) + el.tap(floor(right_caret_right_edge_x), caret4_y) # Drag the left caret back to the initial selection, the first word. self.actions.flick(el, caret3_x, caret3_y, caret1_x, caret1_y).perform() From 565ac9a1093864e575dc18d3c61fc088c11d095a Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Wed, 11 Feb 2015 23:33:00 +0100 Subject: [PATCH 43/48] Bug 1096185 - Part 3 - Fix function redefinition in test_selectioncarets.py. r=automatedtester --- layout/base/tests/marionette/test_selectioncarets.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/layout/base/tests/marionette/test_selectioncarets.py b/layout/base/tests/marionette/test_selectioncarets.py index b2e1f591ba40..2780d2ae3a0e 100644 --- a/layout/base/tests/marionette/test_selectioncarets.py +++ b/layout/base/tests/marionette/test_selectioncarets.py @@ -388,8 +388,6 @@ class SelectionCaretsTest(MarionetteTestCase): ######################################################################## #
contenteditable2 test cases with selection carets enabled ######################################################################## - def test_contenteditable_minimum_select_one_character(self): + def test_contenteditable2_minimum_select_one_character(self): self.openTestHtml(enabled=True) self._test_minimum_select_one_character(self._contenteditable2, self.assertEqual) - - From cb1d0197666bbbddd0e5aa82d7beb59e09505764 Mon Sep 17 00:00:00 2001 From: Blake Date: Tue, 10 Feb 2015 11:34:02 +0800 Subject: [PATCH 44/48] Bug 1115241 - Release video buffer in a dedicated thread. r=sotaro --- dom/media/omx/OmxDecoder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dom/media/omx/OmxDecoder.cpp b/dom/media/omx/OmxDecoder.cpp index cf9f68cda9d2..57d7ca1b2b77 100644 --- a/dom/media/omx/OmxDecoder.cpp +++ b/dom/media/omx/OmxDecoder.cpp @@ -600,7 +600,7 @@ bool OmxDecoder::ReadVideo(VideoFrame *aFrame, int64_t aTimeUs, // For some codecs, the length of first decoded frame after seek is 0. // Need to ignore it and continue to find the next one if (mVideoBuffer->range_length() == 0) { - ReleaseVideoBuffer(); + PostReleaseVideoBuffer(mVideoBuffer, FenceHandle()); findNextBuffer = true; } } From a8674499c48d42216af6cde2ebcdeb67aa5df4f2 Mon Sep 17 00:00:00 2001 From: Alexandre Lissy Date: Thu, 12 Feb 2015 23:51:00 +0100 Subject: [PATCH 45/48] Bug 1129164 - Disable some failing mochitests on mulet. r=bent --- dom/xbl/test/mochitest.ini | 1 + embedding/test/mochitest.ini | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dom/xbl/test/mochitest.ini b/dom/xbl/test/mochitest.ini index a37b7437e3b0..670414338665 100644 --- a/dom/xbl/test/mochitest.ini +++ b/dom/xbl/test/mochitest.ini @@ -37,6 +37,7 @@ skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop spec [test_bug639338.xhtml] [test_bug790265.xhtml] [test_bug821850.html] +skip-if = buildapp == 'mulet' [test_bug844783.html] [test_bug872273.xhtml] [test_bug946815.html] diff --git a/embedding/test/mochitest.ini b/embedding/test/mochitest.ini index 897fc6db196e..bc1df2ae8309 100644 --- a/embedding/test/mochitest.ini +++ b/embedding/test/mochitest.ini @@ -9,6 +9,6 @@ support-files = [test_private_window_from_content.html] # Next two tests are disabled in e10s because of bug 989501. [test_window_open_position_constraint.html] -skip-if = toolkit == 'android' || e10s +skip-if = toolkit == 'android' || e10s || buildapp == 'mulet' [test_window_open_units.html] -skip-if = toolkit == 'android' || e10s +skip-if = toolkit == 'android' || e10s || buildapp == 'mulet' From 80dfe5a761f2c331909d77a1ed6ed18690bcdc7e Mon Sep 17 00:00:00 2001 From: Wayne Chen Date: Mon, 16 Feb 2015 10:12:34 +0800 Subject: [PATCH 46/48] Bug 1130196 - Update audio output device enum for L porting. r=mwu --- dom/system/gonk/android_audio/AudioSystem.h | 129 +++++++++++++++++++- 1 file changed, 128 insertions(+), 1 deletion(-) diff --git a/dom/system/gonk/android_audio/AudioSystem.h b/dom/system/gonk/android_audio/AudioSystem.h index 16f79b55be9b..7282baf056bd 100644 --- a/dom/system/gonk/android_audio/AudioSystem.h +++ b/dom/system/gonk/android_audio/AudioSystem.h @@ -314,7 +314,7 @@ typedef enum { AUDIO_DEVICE_IN_DEFAULT), AUDIO_DEVICE_IN_ALL_SCO = AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET, } audio_devices_t; -#else +#elif ANDROID_VERSION < 21 enum { AUDIO_DEVICE_NONE = 0x0, /* reserved bits */ @@ -415,6 +415,133 @@ enum { AUDIO_DEVICE_IN_ALL_SCO = AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET, }; +typedef uint32_t audio_devices_t; +#else +enum { + AUDIO_DEVICE_NONE = 0x0, + /* reserved bits */ + AUDIO_DEVICE_BIT_IN = 0x80000000, + AUDIO_DEVICE_BIT_DEFAULT = 0x40000000, + /* output devices */ + AUDIO_DEVICE_OUT_EARPIECE = 0x1, + AUDIO_DEVICE_OUT_SPEAKER = 0x2, + AUDIO_DEVICE_OUT_WIRED_HEADSET = 0x4, + AUDIO_DEVICE_OUT_WIRED_HEADPHONE = 0x8, + AUDIO_DEVICE_OUT_BLUETOOTH_SCO = 0x10, + AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET = 0x20, + AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT = 0x40, + AUDIO_DEVICE_OUT_BLUETOOTH_A2DP = 0x80, + AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES = 0x100, + AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER = 0x200, + AUDIO_DEVICE_OUT_AUX_DIGITAL = 0x400, + AUDIO_DEVICE_OUT_HDMI = AUDIO_DEVICE_OUT_AUX_DIGITAL, + /* uses an analog connection (multiplexed over the USB connector pins for instance) */ + AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET = 0x800, + AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET = 0x1000, + /* USB accessory mode: your Android device is a USB device and the dock is a USB host */ + AUDIO_DEVICE_OUT_USB_ACCESSORY = 0x2000, + /* USB host mode: your Android device is a USB host and the dock is a USB device */ + AUDIO_DEVICE_OUT_USB_DEVICE = 0x4000, + AUDIO_DEVICE_OUT_REMOTE_SUBMIX = 0x8000, + /* Telephony voice TX path */ + AUDIO_DEVICE_OUT_TELEPHONY_TX = 0x10000, + /* Analog jack with line impedance detected */ + AUDIO_DEVICE_OUT_LINE = 0x20000, + /* HDMI Audio Return Channel */ + AUDIO_DEVICE_OUT_HDMI_ARC = 0x40000, + /* S/PDIF out */ + AUDIO_DEVICE_OUT_SPDIF = 0x80000, + /* FM transmitter out */ + AUDIO_DEVICE_OUT_FM = 0x100000, + /* Line out for av devices */ + AUDIO_DEVICE_OUT_AUX_LINE = 0x200000, + /* limited-output speaker device for acoustic safety */ + AUDIO_DEVICE_OUT_SPEAKER_SAFE = 0x400000, + AUDIO_DEVICE_OUT_DEFAULT = AUDIO_DEVICE_BIT_DEFAULT, + AUDIO_DEVICE_OUT_ALL = (AUDIO_DEVICE_OUT_EARPIECE | + AUDIO_DEVICE_OUT_SPEAKER | + AUDIO_DEVICE_OUT_WIRED_HEADSET | + AUDIO_DEVICE_OUT_WIRED_HEADPHONE | + AUDIO_DEVICE_OUT_BLUETOOTH_SCO | + AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET | + AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT | + AUDIO_DEVICE_OUT_BLUETOOTH_A2DP | + AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES | + AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER | + AUDIO_DEVICE_OUT_AUX_DIGITAL | + AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET | + AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET | + AUDIO_DEVICE_OUT_USB_ACCESSORY | + AUDIO_DEVICE_OUT_USB_DEVICE | + AUDIO_DEVICE_OUT_REMOTE_SUBMIX | + AUDIO_DEVICE_OUT_TELEPHONY_TX | + AUDIO_DEVICE_OUT_LINE | + AUDIO_DEVICE_OUT_HDMI_ARC | + AUDIO_DEVICE_OUT_SPDIF | + AUDIO_DEVICE_OUT_FM | + AUDIO_DEVICE_OUT_AUX_LINE | + AUDIO_DEVICE_OUT_SPEAKER_SAFE | + AUDIO_DEVICE_OUT_DEFAULT), + AUDIO_DEVICE_OUT_ALL_A2DP = (AUDIO_DEVICE_OUT_BLUETOOTH_A2DP | + AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES | + AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER), + AUDIO_DEVICE_OUT_ALL_SCO = (AUDIO_DEVICE_OUT_BLUETOOTH_SCO | + AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET | + AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT), + AUDIO_DEVICE_OUT_ALL_USB = (AUDIO_DEVICE_OUT_USB_ACCESSORY | + AUDIO_DEVICE_OUT_USB_DEVICE), + /* input devices */ + AUDIO_DEVICE_IN_COMMUNICATION = AUDIO_DEVICE_BIT_IN | 0x1, + AUDIO_DEVICE_IN_AMBIENT = AUDIO_DEVICE_BIT_IN | 0x2, + AUDIO_DEVICE_IN_BUILTIN_MIC = AUDIO_DEVICE_BIT_IN | 0x4, + AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET = AUDIO_DEVICE_BIT_IN | 0x8, + AUDIO_DEVICE_IN_WIRED_HEADSET = AUDIO_DEVICE_BIT_IN | 0x10, + AUDIO_DEVICE_IN_AUX_DIGITAL = AUDIO_DEVICE_BIT_IN | 0x20, + AUDIO_DEVICE_IN_HDMI = AUDIO_DEVICE_IN_AUX_DIGITAL, + /* Telephony voice RX path */ + AUDIO_DEVICE_IN_VOICE_CALL = AUDIO_DEVICE_BIT_IN | 0x40, + AUDIO_DEVICE_IN_BACK_MIC = AUDIO_DEVICE_BIT_IN | 0x80, + AUDIO_DEVICE_IN_REMOTE_SUBMIX = AUDIO_DEVICE_BIT_IN | 0x100, + AUDIO_DEVICE_IN_ANLG_DOCK_HEADSET = AUDIO_DEVICE_BIT_IN | 0x200, + AUDIO_DEVICE_IN_DGTL_DOCK_HEADSET = AUDIO_DEVICE_BIT_IN | 0x400, + AUDIO_DEVICE_IN_USB_ACCESSORY = AUDIO_DEVICE_BIT_IN | 0x800, + AUDIO_DEVICE_IN_USB_DEVICE = AUDIO_DEVICE_BIT_IN | 0x1000, + /* FM tuner input */ + AUDIO_DEVICE_IN_FM_TUNER = AUDIO_DEVICE_BIT_IN | 0x2000, + /* TV tuner input */ + AUDIO_DEVICE_IN_TV_TUNER = AUDIO_DEVICE_BIT_IN | 0x4000, + /* Analog jack with line impedance detected */ + AUDIO_DEVICE_IN_LINE = AUDIO_DEVICE_BIT_IN | 0x8000, + /* S/PDIF in */ + AUDIO_DEVICE_IN_SPDIF = AUDIO_DEVICE_BIT_IN | 0x10000, + AUDIO_DEVICE_IN_BLUETOOTH_A2DP = AUDIO_DEVICE_BIT_IN | 0x20000, + AUDIO_DEVICE_IN_LOOPBACK = AUDIO_DEVICE_BIT_IN | 0x40000, + AUDIO_DEVICE_IN_DEFAULT = AUDIO_DEVICE_BIT_IN | AUDIO_DEVICE_BIT_DEFAULT, + AUDIO_DEVICE_IN_ALL = (AUDIO_DEVICE_IN_COMMUNICATION | + AUDIO_DEVICE_IN_AMBIENT | + AUDIO_DEVICE_IN_BUILTIN_MIC | + AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET | + AUDIO_DEVICE_IN_WIRED_HEADSET | + AUDIO_DEVICE_IN_AUX_DIGITAL | + AUDIO_DEVICE_IN_VOICE_CALL | + AUDIO_DEVICE_IN_BACK_MIC | + AUDIO_DEVICE_IN_REMOTE_SUBMIX | + AUDIO_DEVICE_IN_ANLG_DOCK_HEADSET | + AUDIO_DEVICE_IN_DGTL_DOCK_HEADSET | + AUDIO_DEVICE_IN_USB_ACCESSORY | + AUDIO_DEVICE_IN_USB_DEVICE | + AUDIO_DEVICE_IN_FM_TUNER | + AUDIO_DEVICE_IN_TV_TUNER | + AUDIO_DEVICE_IN_LINE | + AUDIO_DEVICE_IN_SPDIF | + AUDIO_DEVICE_IN_BLUETOOTH_A2DP | + AUDIO_DEVICE_IN_LOOPBACK | + AUDIO_DEVICE_IN_DEFAULT), + AUDIO_DEVICE_IN_ALL_SCO = AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET, + AUDIO_DEVICE_IN_ALL_USB = (AUDIO_DEVICE_IN_USB_ACCESSORY | + AUDIO_DEVICE_IN_USB_DEVICE), +}; + typedef uint32_t audio_devices_t; #endif From c031d9fc7fb63aa8f0e9e5fea864c7dbe334a471 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Mon, 16 Feb 2015 02:54:55 -0800 Subject: [PATCH 47/48] Bumping gaia.json for 3 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/62d026a98ea4 Author: autolander Desc: Bug 1127954 - merge pull request #28242 from mancas:bug1127954 to mozilla-b2g:master ======== https://hg.mozilla.org/integration/gaia-central/rev/15a080760c05 Author: Manuel Desc: Bug 1127954 - [Homescreen] [Text Selection] Text Selection options (cut, copy, paste, select all) appear on the homescreen when long-pressing empty areas of the screen in homescreen edit mode. ======== https://hg.mozilla.org/integration/gaia-central/rev/30cf8da64ed7 Author: Dave Hunt Desc: Bug 1132703 - Update test webapp to not rely on a directory listing. r=fstrugariu --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index b833f8b26cd8..c73075937418 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "5a42fcb9e3e9b0a78ad0c3c780b33ede9a6e730a", + "git_revision": "ae02fbdeae77b2002cebe33c61aedeee4b9439fd", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "5f7ed4b9091387f7ec4f55d5fc9d24f88342d054", + "revision": "62d026a98ea42f2b93de000e8d0d4f1254f86730", "repo_path": "integration/gaia-central" } From ee04db83615fa29cadc52ed50c3c1f5813d80704 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Mon, 16 Feb 2015 02:57:17 -0800 Subject: [PATCH 48/48] Bumping manifests a=b2g-bump --- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/flame/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 3aa3363e0c65..2ab9d60285f2 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 5776573a515b..5d1005ce96a6 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 99c035035598..e1958ce2195a 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 2e5b002d2e6d..6d5f368a1b6c 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 5776573a515b..5d1005ce96a6 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 7e4ee9d063f0..3226add737d5 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index db7f673c78fc..4a038bce8fb5 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 0091eacf172c..a2133b5047eb 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 0707d2bd28cc..dd2582296886 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - +