[Dialer] when searching for a number in contacts, display partial matches (matching the end of the number)

RESOLVED FIXED in Firefox 25

Status

defect
P2
critical
RESOLVED FIXED
6 years ago
6 years ago

People

(Reporter: gal, Assigned: gwagner)

Tracking

unspecified
1.1 QE4 (15jul)
ARM
Gonk (Firefox OS)
Dependency tree / graph
Bug Flags:
in-testsuite +

Firefox Tracking Flags

(blocking-b2g:-, firefox22 wontfix, firefox23 wontfix, firefox24 wontfix, firefox25 fixed, b2g18 fixed, b2g18-v1.0.0 wontfix, b2g18-v1.0.1 wontfix, b2g-v1.1hd fixed)

Details

(Whiteboard: [TD-27881], inarirun2 , MiniWW, [fixed-in-birch], [u=commsapps-user c=dialer p=0] )

Attachments

(4 attachments, 6 obsolete attachments)

+++ This bug was initially created as a clone of Bug #871939 +++

For a precise description please see Bug #871939. This bug is a placeholder in case Bug #871939 doesn't capture all of the issues.
leo team, please provide instructions in this bug how we should handle these cases and why they should match by default area code 11 (Sao Paulo):

87654321
909087654321

987654321
9090987654321
Flags: needinfo?(leo.bugzilla.gaia)
Target Milestone: --- → 1.1 QE2 (6jun)
Any updates here?
We ask scenario to tester. When I receive answer, I tell as soon as possible
Flags: needinfo?(leo.bugzilla.gaia)
Unfortunetely tester doesn't reply. But we already said scenario in Bug 871939, only care about below algorithm

Step 1. Find the matching number same as the back of 7-digits number in contacts
Step 2. If device find several matching numbers, shows number that get the first contact found.

So, you shouldn't care about other cases. Brazil operator only follow this algorithm.

87654321
909087654321

987654321
9090987654321

In these cases, number should be matched though number isn't really same.(Doesn't care about area code)
Ok, comment 4 is only about the searching-for-a-number case.
Summary: [Dialer] handle matching for local numbers without area code and 9090 collect calls → [Dialer] when searching for a number in contacts, display partial matches (matching the end of the number)
Etienne,
can you look at this bug? 
Essentially what the bug is looking for is that we only match the last 7 digits and not take consideration of any prefix. And in terms of displaying, the first hit from the search is displayed.
That's if Bug #871939 doesn't already cover what leo is looking for.
Flags: needinfo?(etienne)
bug 871939 doesn't do partial matching. It just makes sure the collect call prefix is stripped off for exact matches.
We need an owner for this bug.
Ok, so what we need here is as follows:

- create a new index telMatch8 that contains the last 8 digits of every number >= 8 digits (always).
- when doing a match and mcc == Brazil (change PhoneNumberUtils._getCountryName -> getCurrentCountry() == 'BR'), and telMatch didn't hit, and the number is >= digits, then look into telMatch8 with the last 8 digits and return that match.
Assignee: nobody → anygregor
There is another way of fixing this actually, at least potentially. In Brazil (where we need this strange hack) there is a mandatory requirement to send the local area code via cell broadcast on channel 50 (which we display on the lock screen). We could intercept such cell broadcast on channel 50 and extract the area code in Brazil. The format is "VIVO RJ 21", so operator space state space area-code. When in Brazil (mcc == Brazil) we could then successfully transform local numbers into national numbers.
Blocks: 877956
Ok, I got some more vendor feedback here. Comment #11 won't work since we need this to work for Venezuela and Columbia as well, and there is no CB there. Ugh.
Posted patch v1 (obsolete) — Splinter Review
Attachment #757518 - Flags: review?(bent.mozilla)
FWIW, the reason this is needed is reverse charge calls, see http://en.wikipedia.org/wiki/Collect_call#Brazil
We teseted this patch to leo device, bug is still reproduced.
Posted file Checking list
(In reply to Leo from comment #16)
> Created attachment 757811 [details]
Checking list

This excel file is not current status. So, please see only checking list(Don't care about Pass/Fail)

Current status : saved - 01187654321

87654321 : Fail
01187654321 : Pass
909087654321 : Fail
0411187654321 : Fail
90411187654321 : Fail
+551187654321 : Pass
(In reply to Leo from comment #17)
> (In reply to Leo from comment #16)
> > Created attachment 757811 [details]
> Checking list
> 
> This excel file is not current status. So, please see only checking
> list(Don't care about Pass/Fail)
> 
> Current status : saved - 01187654321
> 
> 87654321 : Fail
> 01187654321 : Pass
> 909087654321 : Fail
> 0411187654321 : Fail
> 90411187654321 : Fail
> +551187654321 : Pass

Yes this is expected. This patch only adds the functionality but it's not enabled by default. Do we want this feature enabled by default, country specific, network specific or maybe branch specific? Is it always 7 digits or sometimes 8 digits? I will add a followup patch that enables the feature by default so you can run the tests.
Flags: needinfo?(etienne)
Posted patch patch (obsolete) — Splinter Review
Attachment #757518 - Attachment is obsolete: true
Attachment #757518 - Flags: review?(bent.mozilla)
Could you try with the new patch?
I'll test this patch.
I tested this patch.

Current status : saved - 01187654321

87654321 : Pass
01187654321 : Pass
909087654321 : Fail
0411187654321 : Fail
90411187654321 : Fail
+551187654321 : Pass

But, Fail cases are not shown any informatioin.
I think it's problem of "SimplePhoneMatcher.bestMatch(variants, matches)" function.
When inputing "909087654321", gecko give correct result, but "SimplePhoneMatcher.bestMatch(variants, matches)" returns "null"
So, I input below code in contact.js(gaia/apps/communications/dialer, for test)
====================
var matchResult = SimplePhoneMatcher.bestMatch(variants, matches);

+if(matchResult.localIndex == null || matchResult.bestMatchIndex == null) {
+  matchResult.localIndex = 0;
+  matchResult.bestMatchIndex = 0;
+}
====================
When I input code, device can find numbers.
I request you check "contacts.js" file.
I attach issue image
Flags: needinfo?(anygregor)
Attachment #758432 - Flags: review?(anygregor)
Attachment #758432 - Flags: review?(anygregor) → review+
Gaia part of the fix: https://github.com/mozilla-b2g/gaia/commit/7b9ab1632c6036b00fd8795bf583cd581c10ba0c

(feel free to close once the gecko part lands)
(In reply to Leo from comment #22)
> I tested this patch.
> 
> Current status : saved - 01187654321
> 
> 87654321 : Pass
> 01187654321 : Pass
> 909087654321 : Fail
> 0411187654321 : Fail
> 90411187654321 : Fail
> +551187654321 : Pass
> 
> But, Fail cases are not shown any informatioin.
> I think it's problem of "SimplePhoneMatcher.bestMatch(variants, matches)"
> function.
> When inputing "909087654321", gecko give correct result, but
> "SimplePhoneMatcher.bestMatch(variants, matches)" returns "null"
> So, I input below code in contact.js(gaia/apps/communications/dialer, for
> test)
> ====================
> var matchResult = SimplePhoneMatcher.bestMatch(variants, matches);
> 
> +if(matchResult.localIndex == null || matchResult.bestMatchIndex == null) {
> +  matchResult.localIndex = 0;
> +  matchResult.bestMatchIndex = 0;
> +}
> ====================
> When I input code, device can find numbers.
> I request you check "contacts.js" file.

This should be fixed now with etiennes patch.
Please test again.
Flags: needinfo?(anygregor)
It's perfectly running!

Please lend this patch to v1-train.

Thanks for your help!
Attachment #757864 - Flags: review?(bent.mozilla)
Comment on attachment 757864 [details] [diff] [review]
patch

Review of attachment 757864 [details] [diff] [review]:
-----------------------------------------------------------------

::: b2g/app/b2g.js
@@ +388,5 @@
>  pref("dom.global-constructor.disable.mozContact", false);
>  
> +// Shortnumber matching needed for e.g. Brazil:
> +// 01187654321 can be found with 7654321
> +pref("dom.phonenumber.substringmatching", 7);

This seems wrong. Shouldn't we only enable this on a per-country basis? As I understand it this patch was for testing only.

::: dom/contacts/fallback/ContactDB.jsm
@@ +918,5 @@
>    },
>  
> +  observe: function(aSubject, aTopic, aData) {
> +    if (aTopic === 'nsPref:changed' && aData === "dom.phonenumber.substringmatching") {
> +       this.substringMatching = Services.prefs.getIntPref("dom.phonenumber.substringmatching");

You need to check that it's > 0 here too.

@@ +927,5 @@
> +    this.initDBHelper(DB_NAME, DB_VERSION, [STORE_NAME, SAVED_GETALL_STORE_NAME, REVISION_STORE], aGlobal);
> +    try {
> +      let val = Services.prefs.getIntPref("dom.phonenumber.substringmatching");
> +      if (val && val > 0)
> +        this.substringMatching = val;

Nit: braces

::: modules/libpref/src/init/all.js
@@ +4099,5 @@
>  pref("dom.mozContacts.enabled", false);
>  pref("dom.navigator-property.disable.mozContacts", true);
>  pref("dom.global-constructor.disable.mozContact", true);
>  
> +pref("dom.phonenumber.substringmatching", -1);

Should comment here that <=0 means "disabled"
Attachment #757864 - Flags: review?(bent.mozilla) → review-
Leo, can you provide us with a list of the countries where this special behavior is needed?
Flags: needinfo?(leo.bugzilla.gaia)
(In reply to ben turner [:bent] from comment #28)
> Comment on attachment 757864 [details] [diff] [review]
> patch
> 
> Review of attachment 757864 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> ::: b2g/app/b2g.js
> @@ +388,5 @@
> >  pref("dom.global-constructor.disable.mozContact", false);
> >  
> > +// Shortnumber matching needed for e.g. Brazil:
> > +// 01187654321 can be found with 7654321
> > +pref("dom.phonenumber.substringmatching", 7);
> 
> This seems wrong. Shouldn't we only enable this on a per-country basis? As I
> understand it this patch was for testing only.

Right we need some input here from leo. I wanted to get an OK for the rest of it :)
Thanks!
Posted patch patch (obsolete) — Splinter Review
Attachment #757864 - Attachment is obsolete: true
Attachment #759112 - Flags: review?(bent.mozilla)
Comment on attachment 759112 [details] [diff] [review]
patch

Review of attachment 759112 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/contacts/fallback/ContactService.jsm
@@ +22,5 @@
>                                     "@mozilla.org/parentprocessmessagemanager;1",
>                                     "nsIMessageListenerManager");
>  
>  let myGlobal = this;
> +let substringSearchCountryList = ['BR', 'CO', 'VE'];

Each of these could have a different number of required digits, right? 7 for Brazil, but others were greater iirc.

I think you're going to want to have a pref for each country where this is needed, e.g.:

  pref("dom.phonenumber.substringmatching.BR", 7);
  pref("dom.phonenumber.substringmatching.CO", 245); // kidding

@@ +45,5 @@
>      this._db.init(myGlobal);
>  
> +    let countryName = PhoneNumberUtils.getCountryName();
> +    if (substringSearchCountryList.indexOf(countryName) >= 0) {
> +      debug("Enable Substring Matching for Phone Numbers!");

if (DEBUG)

@@ +74,5 @@
> +      this._children = null;
> +      this._cursors = null;
> +    } else if (aTopic === 'nsPref:changed' && aData === "dom.phonenumber.substringmatching") {
> +      let countryName = PhoneNumberUtils.getCountryName();
> +      if (substringSearchCountryList.indexOf(countryName) >= 0) {

Should you always call 'this._db.enableSubstringMatching(0)' if the country isn't in the list? I'm not sure if that can change during runtime (if you swap SIMs for instance?)
(In reply to ben turner [:bent] from comment #32)
> Comment on attachment 759112 [details] [diff] [review]
> patch
> 
> Review of attachment 759112 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> ::: dom/contacts/fallback/ContactService.jsm
> @@ +22,5 @@
> >                                     "@mozilla.org/parentprocessmessagemanager;1",
> >                                     "nsIMessageListenerManager");
> >  
> >  let myGlobal = this;
> > +let substringSearchCountryList = ['BR', 'CO', 'VE'];
> 
> Each of these could have a different number of required digits, right? 7 for
> Brazil, but others were greater iirc.
> 
> I think you're going to want to have a pref for each country where this is
> needed, e.g.:
> 
>   pref("dom.phonenumber.substringmatching.BR", 7);
>   pref("dom.phonenumber.substringmatching.CO", 245); // kidding


The documents we got suggest 7 digits afaik.

> 
> @@ +74,5 @@
> > +      this._children = null;
> > +      this._cursors = null;
> > +    } else if (aTopic === 'nsPref:changed' && aData === "dom.phonenumber.substringmatching") {
> > +      let countryName = PhoneNumberUtils.getCountryName();
> > +      if (substringSearchCountryList.indexOf(countryName) >= 0) {
> 
> Should you always call 'this._db.enableSubstringMatching(0)' if the country
> isn't in the list? I'm not sure if that can change during runtime (if you
> swap SIMs for instance?)

I don't think we support sim swapping during runtime.
This action is needed in Brazil.

And other country, I already send email to Mr. Andreas(agal@mozilla.com) and Mr. Wayne (wchang@mozilla.com).

But, this matching algorithm is similar with Android matching algorithm
Flags: needinfo?(leo.bugzilla.gaia)
I'm not so sure Android does matching on the last 7 digits only. Brazilian phone numbers are 8 digits in all states but Sao Paulo, which recently moved to 9 digit numbers (by prepending "9" to all existing numbers). I'm not saying doing this is wrong, but there is a compromise, and I'm not sure if it's obvious to everyone involved.

If I type "4123 1234", and have contacts with numbers "4123 1234" and "3123 1234", I expect to see the former first, but it'll always be the latter with the current patch. Right now numbers in Sao Paulo all have "9" as their first digit, so it doesn't matter, but that will change soon.

Also, the patch is only adding the entire (length-7, length) substring to the "match" index, which means the matched contacts will not be shown until the person has entered all 7 digits. Why is the search not using contains? That would fix this problem without changing the behavior of "match", adding new prefs for every country, etc.
I agree with you. This operation miss some cases. 


But, each operator(each country) have different matching algorithm.
Let's have one default algorithm, which is for Brazil operator. And depending on the operator, a different algorithm can be provided to override the default one. Because Brazil operator algorithm is very simple and easy to expand
Depends on: 880644
No longer depends on: 880644
Posted patch patch (obsolete) — Splinter Review
Attachment #759112 - Attachment is obsolete: true
Attachment #759112 - Flags: review?(bent.mozilla)
Posted patch patch (obsolete) — Splinter Review
Attachment #761733 - Attachment is obsolete: true
Attachment #761735 - Flags: review?(bent.mozilla)
Comment on attachment 761735 [details] [diff] [review]
patch

Review of attachment 761735 [details] [diff] [review]:
-----------------------------------------------------------------

::: b2g/app/b2g.js
@@ +387,5 @@
>  pref("dom.navigator-property.disable.mozContacts", false);
>  pref("dom.global-constructor.disable.mozContact", false);
>  
> +// Shortnumber matching needed for e.g. Brazil:
> +// 01187654321 can be found with 7654321

nit: it says "e.g. Brazil", but then the example uses 7 digits. Either change it to "e.g. Venezuela" or make it 8 digits long.

::: dom/contacts/fallback/ContactDB.jsm
@@ +886,5 @@
> +
> +        // Some countries need special handling for number matching. Bug 877302
> +        if (this.substringMatching && normalized.length > this.substringMatching) {
> +          let length = normalized.length;
> +          normalized = normalized.substring(length - this.substringMatching, length);

You can do |normalized = normalized.slice(-this.substringMatching);| and avoid the length check and the arithmetic.

@@ +931,5 @@
>        }
>      }.bind(this);
>    },
>  
> +  enableSubstringMatching: function enableSubstringMatching(aDigits) {

Maybe add a comment explaining that this is here so we can test it, but it will not work at all if called after a database exists and contacts have been saved.

::: dom/contacts/fallback/ContactService.jsm
@@ +22,5 @@
>                                     "@mozilla.org/parentprocessmessagemanager;1",
>                                     "nsIMessageListenerManager");
>  
>  let myGlobal = this;
> +let substringSearchCountryList = ['BR', 'CO', 'VE'];

Why hardcode this list here? Can't we simply check if "dom.phonenumber.substringmatching." + countryName is set?

@@ +52,5 @@
> +        if (val && val > 0) {
> +          this._db.enableSubstringMatching(val);
> +        }
> +      } catch (ex) {
> +        dump("No substringmatching entry found for: " + countryName);

+ "\n"

@@ +62,4 @@
>    },
>  
>    observe: function(aSubject, aTopic, aData) {
> +    debug("OBSERVE: " + aTopic);

if (DEBUG) …

@@ +80,5 @@
> +    } else if (aTopic === 'nsPref:changed' && aData.contains("dom.phonenumber.substringmatching")) {
> +      let countryName = PhoneNumberUtils.getCountryName();
> +      if (substringSearchCountryList.indexOf(countryName) >= 0) {
> +        let val = Services.prefs.getIntPref("dom.phonenumber.substringmatching." + countryName);
> +        debug("Set Val" + val);

if (DEBUG) …

::: dom/contacts/tests/test_contacts_substringmatching.html
@@ +10,5 @@
> +  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
> +</head>
> +<body>
> +
> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=674720">Mozilla Bug 674720</a>

nit: Points to the wrong bug.

@@ +25,5 @@
> +  SpecialPowers.Cu.import("resource://gre/modules/ContactService.jsm");
> +}
> +
> +var substringLength = 7;
> +SpecialPowers.setIntPref("dom.phonenumber.substringmatching.BR", substringLength);

Why are we testing with a different value here? This should be 8, and should use SpecialPowers.pushPrefEnv.

@@ +79,5 @@
> +  },
> +  function () {
> +    ok(true, "Retrieving by substring 1");
> +    var length = prop.tel[0].value.length;
> +    var num = prop.tel[0].value.substring(length - substringLength, length);

Slice with negative index works for this too.

@@ +89,5 @@
> +    req.onsuccess = function () {
> +      is(req.result.length, 1, "Found exactly 1 contact.");
> +      findResult1 = req.result[0];
> +      ok(findResult1.id == sample_id1, "Same ID");
> +      dump("findResult: " + JSON.stringify(findResult1) + "\n");

This test has a leftover debugging spew, please remove.

@@ +239,5 @@
> +    req.onerror = onFailure;
> +  },
> +  function () {
> +    ok(true, "all done!\n");
> +    SpecialPowers.setIntPref("dom.phonenumber.substringmatching", -1);

Wrong pref?

::: modules/libpref/src/init/all.js
@@ +4105,5 @@
>  pref("dom.global-constructor.disable.mozContact", true);
>  
> +// WebContacts: Perform substring matching for the last N digits.
> +// -1 is disabled
> +pref("dom.phonenumber.substringmatching.BR", -1);

What about CO and VE? Instead, leave it unset and catch the exception in ContactService.
(In reply to Reuben Morais [:reuben] from comment #39)
> Comment on attachment 761735 [details] [diff] [review]
> patch
> 
> Review of attachment 761735 [details] [diff] [review]:

thx! I guess i missed the final qref for this patch.


> >  let myGlobal = this;
> > +let substringSearchCountryList = ['BR', 'CO', 'VE'];
> 
> Why hardcode this list here? Can't we simply check if
> "dom.phonenumber.substringmatching." + countryName is set?
>

I was worried about performance since this always runs during startup but prefs are loaded into memory so it shouldn't matter.
Posted patch patch (obsolete) — Splinter Review
Attachment #761735 - Attachment is obsolete: true
Attachment #761735 - Flags: review?(bent.mozilla)
Attachment #761989 - Flags: review?(bent.mozilla)
Posted patch patchSplinter Review
Attachment #761989 - Attachment is obsolete: true
Attachment #761989 - Flags: review?(bent.mozilla)
Attachment #761995 - Flags: review?(bent.mozilla)
Comment on attachment 761995 [details] [diff] [review]
patch

Review of attachment 761995 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/contacts/fallback/ContactService.jsm
@@ +44,5 @@
>      this._db.init(myGlobal);
>  
> +    let countryName = PhoneNumberUtils.getCountryName();
> +    try {
> +      if (Services.prefs.getPrefType("dom.phonenumber.substringmatching." + countryName)) {

You should either:

  1. test that getPrefType() == PREF_INT and lose the try/catch
  2. stop checking getPrefType() and just call getIntPref(), relying on try/catch

Exceptions can be expensive I think so doing 1 sounds better to me.

You'll need the same code below in the pref observer function so maybe move this to a helper function?

@@ +79,5 @@
> +      let countryName = PhoneNumberUtils.getCountryName();
> +      if (Services.prefs.getPrefType("dom.phonenumber.substringmatching." + countryName)) {
> +        let val = Services.prefs.getIntPref("dom.phonenumber.substringmatching." + countryName);
> +        if (val && val > 0) {
> +          this._db.enableSubstringMatching(val);

Wait, shouldn't this support disabling too?

::: modules/libpref/src/init/all.js
@@ +4116,5 @@
>  pref("dom.global-constructor.disable.mozContact", true);
>  
> +// WebContacts: Perform substring matching for the last N digits.
> +// -1 is disabled
> +pref("dom.phonenumber.substringmatching.BR", -1);

You shouldn't need this. Having an entry for "disabled" should be the same as not having an entry.
Comment on attachment 761995 [details] [diff] [review]
patch

r=me with those addressed.
Attachment #761995 - Flags: review?(bent.mozilla) → review+
https://hg.mozilla.org/projects/birch/rev/ab100d18b100
Whiteboard: [TD-27881], inarirun2 , MiniWW → [TD-27881], inarirun2 , MiniWW, [fixed-in-birch]
https://hg.mozilla.org/mozilla-central/rev/ab100d18b100
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Thanks for this patch.
But, I have to apply another country "ES"(Spain).
Please check this.

Thanks.
If the 'substringMatching' is enabled, problem occurs.
If the 'filtervalue' is not number, Gecko returns incorrect value.
-------------------------------------------------
1. Gaia Calls 'mozContacts.find(options)'
   options = {filterBy: ['tel'], filterOp: 'equals', filterValue: number};
   In this case, 'filterValue' is string.(ex. number = "Withheld number")
2. Gaia receive incorrect result from Gecko.
-------------------------------------------------

This issue depends on 'substringMatching'.
The value of 'substringMatching' is 'undefined' -> OK.
The value of 'substringMatching' is set -> Reproduced.

I'll attach log file.
Please check log.

Thanks.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
I'm sorry.
I can't upload file.
I'll copy important log.

----------------------------------------------
1. ContactManager: find! {"sortBy":"undefined","sortOrder":"undefined","filterValue":"Withheldnumber","filterOp":"match","filterBy":["tel"],"filterLimit":0}

2. Fallback ContactService component: Fallback DOMContactManager::receiveMessage Contacts:Find

3. ContactDB component: ContactDB:find val:Withheldnumber by: tel op: match
ContactDB component: _findWithIndex: Withheldnumber match tel 
ContactDB component: key: tel
ContactDB component: match

4. PhoneNumberutils: normalize(Withheldnumber): , true

5. ContactDB component: substringMatching: 8 (<- I was added)

6. ContactDB component: Request successful. Record count: 4

7. Fallback ContactService component: result:[{"properties":{"name":["Activar Buzon Movistar"],"honorificPrefix":[],"givenName":["Activar Buzon Movistar"],"additionalName":[],"familyName":[],"honorificSuffix":[],"nickname":[],"email":[],"photo":[],"url":[],"category":[],"adr":[],"tel":[{"type":"Other","value":"22500"}],"org":[],"jobTitle":[],"bday":null,"note":[],"impp":[],"anniversary":null,"sex":null,"genderIdentity":null},"updated":"1970-01-01T00:38:48.608Z","published":"1970-01-01T00:38:48.608Z","id":"921b0c5dffbf4b5fb31784eaddc4c690"},{"properties":{"name":["Atencion al Cliente"],"honorificPrefix":[],"givenName":["Atencion al Cliente"],"additionalName":[],"familyName":[],"honorificSuffix":[],"nickname":[],"email":[],"photo":[],"url":[],"category":[],"adr":[],"tel":[{"type":"Other","value":"1004"}],"org":[],"jobTitle":[],"bday":null,"note":[],"impp":[],"anniversary":null,"sex":null,"genderIdentity":null},"updated":"1970-01-01T00:38:48.643Z","published":"1970-01-01T00:38:48.643Z","id":"a73119
Whiteboard: [TD-27881], inarirun2 , MiniWW, [fixed-in-birch] → [TD-27881], inarirun2 , MiniWW, [fixed-in-birch], [u=commsapps-user c=dialer p=0]
Target Milestone: 1.1 QE2 (6jun) → 1.1 QE4 (15jul)
blocking-b2g: leo+ → leo?
Ryan, with the reopen in comment 50, should we modify the branch fix information as well?

(In reply to Ryan VanderMeulen [:RyanVM UTC-4] from comment #47)
> https://hg.mozilla.org/releases/mozilla-b2g18/rev/fdc97d987049
Flags: needinfo?(ryanvm)
Depends on: 890448
(In reply to leo.bugzilla.gecko from comment #50)
> If the 'substringMatching' is enabled, problem occurs.
> If the 'filtervalue' is not number, Gecko returns incorrect value.

Please open a new blocking bug.
Status: REOPENED → RESOLVED
blocking-b2g: leo? → -
Closed: 6 years ago6 years ago
Resolution: --- → FIXED
Duplicate of this bug: 881129
You need to log in before you can comment on or make changes to this bug.