Bug 924846 - [Keyboard][V1.2] Selected keyboard cannot be displayed while switching the keyboard between built-in keyboard and third party keyboard
Bug 929059 - Update pdf.js to version 0.8.629.
[Bug 914591] make sure sessions get re-inited after expiration [r=ranbena]
Bug 929840 - [Settings] Use CSS for fake select elements
Bug916183 - Fix of Done button target is off
bug 930469, malformed properties file.
Remove leftover merge conflict marker
Bug 921685: Read device geometry info from cookie to avoid sync reflows.
Bug 917344 - [Dialer] Turn off speaker if bluetooth headphone is connected during a call
Bug 930545 - Re-enable test_browser_bookmark.py
Merge pull request #12993 from punamdahiya/Bug916183

Bug916183 - Fix of Done button target is off r=alive
Bug 928281 - Add a setting entry to enable keyboard app run as Out-of-Process (OOP)
Merge pull request #13115 from RudyLu/keyboard/Bug928281-keyboard_OOP

Bug 928281 - Run keyboard app Out-of-Process (OOP). r=timdream
Merge pull request #13016 from KevinGrandon/bug_929840_use_css_for_settings_select

Bug 929840 - [Settings] Use CSS for fake select elements r=evelyn,ivanovpavel
Merge pull request #13066 from Pike/bug-930469-malformed-properties

bug 930469, malformed properties file.
Merge pull request #12529 from EverythingMe/session-reinit

[Bug 914591] make sure sessions get re-inited after expiration [r=ranbena]
Bug 921424 - Replace wait for landing page after unlocking with wait for displayed app to be homescreen
Bug 911947 - Handle out-of-order message reception r=julienw
Bug 931555 - [Bluetooth] - wrong button style on file transfer failed screen
Bug 920546 - [Messages] Short-term fixes for the recipient panel r=julienw

https://bugzilla.mozilla.org/show_bug.cgi?id=920546

- Apply new "invalid recipient" indicator style
- Decouple searchContact from list display
- Create ThreadUI.listContact(...)
- Create ThreadUI.validateContact(...)
- Adds two level validation:
    - Is the entry questionable?
        - This kicks off a silent search for matching contacts
        - If there are one or more matches, use the first to create a Recipient
    - Is the entry invalid?
        - This state is reached if no contacts could be found
          for the typed value.
        - Prevents enableSend
        - Prevents "export" of recipient entry at Send
          (when mixed with multiple valid recipients)
- Refactor Utils.getContactDisplayInfo logic
- Adds tests for enableSend
- Adds tests for questionable Recipient detection.

Changes, post review:

> Bug 1:
>  - enter a bogus recipient, press enter to "accept" it
>  - press backspace => the cursor is correctly inside the contenteditable element, but it's still "red" and the keyboard is hiding

Fixed by adding CSS rules:
  [contenteditable=false].attention
  [contenteditable=true].attention

---

> Bug 2:
>  - with the recipient light workload, that has a "Adam L. Card" contact
>  - typing exactly "Adam L. Card" => no match
>  - typing "Adam Card" => match

Yep, this has always been true. See also: https://bugzilla.mozilla.org/show_bug.cgi?id=860804

---

> Bug 3:
>  - add text in the composer
>  - add a bogus contact => the send button is enabled, should be disabled

Fixed by being more explicit in enableSend:

Set hasRecipients to true based on the following conditions:

 1. There is a valid recipients object
 2. One of the following is true:
     - The recipients object contains at least 1 valid recipient
       - OR -
     - There is >1 character typed and the value will not
       evaluate to a NaN

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
Bug 929921 - [Settings-Passcode] Screen Update