<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>217354</bug_id>
          
          <creation_ts>2020-10-05 17:04:34 -0700</creation_ts>
          <short_desc>[Contact Picker API] Add support for ContactsManager.getProperties()</short_desc>
          <delta_ts>2020-10-07 13:10:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1694959</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-05 17:04:34 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694960</commentid>
    <comment_count>1</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-05 17:04:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/69862099&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694963</commentid>
    <comment_count>2</comment_count>
      <attachid>410593</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-05 17:07:09 -0700</bug_when>
    <thetext>Created attachment 410593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695055</commentid>
    <comment_count>3</comment_count>
      <attachid>410593</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-06 00:57:24 -0700</bug_when>
    <thetext>Comment on attachment 410593
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=410593&amp;action=review

&gt; Source/WebCore/ChangeLog:10
&gt; +        by the API. These currently include name, email and tel.

Is there a spec available?

&gt; Source/WebCore/Modules/contact-picker/ContactsManager.cpp:59
&gt; +    Vector&lt;ContactProperty&gt; properties = { ContactProperty::Email, ContactProperty::Name, ContactProperty::Tel };

Is the order important? Should getProperties return a Set instead?

&gt; LayoutTests/contact-picker/contacts-manager-get-properties.html:18
&gt; +            shouldBeTrue(&quot;properties.includes(&apos;tel&apos;)&quot;);

If the order is important, we might want to validate email is first, then name, then tel.
If this test can be shared with other browsers as WPT, we could use resources/testharness.js.
This would be written as:

promise_test(async () =&gt; {
 ...
}, &quot;getProperties&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695157</commentid>
    <comment_count>4</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-06 08:32:50 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #3)
&gt; Comment on attachment 410593 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=410593&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        by the API. These currently include name, email and tel.
&gt; 
&gt; Is there a spec available?

The spec can be found here: https://wicg.github.io/contact-api/spec/#dom-contactsmanager-getproperties.
 
&gt; &gt; Source/WebCore/Modules/contact-picker/ContactsManager.cpp:59
&gt; &gt; +    Vector&lt;ContactProperty&gt; properties = { ContactProperty::Email, ContactProperty::Name, ContactProperty::Tel };
&gt; 
&gt; Is the order important? Should getProperties return a Set instead?

The spec does not place any restrictions on the order, but this implementation matches the Blink implementation.
 
&gt; &gt; LayoutTests/contact-picker/contacts-manager-get-properties.html:18
&gt; &gt; +            shouldBeTrue(&quot;properties.includes(&apos;tel&apos;)&quot;);
&gt; 
&gt; If the order is important, we might want to validate email is first, then
&gt; name, then tel.
&gt; If this test can be shared with other browsers as WPT, we could use
&gt; resources/testharness.js.
&gt; This would be written as:
&gt; 
&gt; promise_test(async () =&gt; {
&gt;  ...
&gt; }, &quot;getProperties&quot;);

These is a WPT for this method here: https://github.com/web-platform-tests/wpt/blob/master/contacts/contacts-select.https.window.js.

However that test simply verifies that properties.length &gt; 0, since it is up to the user agent to decide which properties are supported.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695643</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-07 13:10:41 -0700</bug_when>
    <thetext>Committed r268144: &lt;https://trac.webkit.org/changeset/268144&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410593.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410593</attachid>
            <date>2020-10-05 17:07:09 -0700</date>
            <delta_ts>2020-10-07 13:10:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217354-20201005200708.patch</filename>
            <type>text/plain</type>
            <size>4609</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTllNTdiMjQ2ZDIzZWJj
M2JjODZjMzQ5MmRjYWNjYzcxMDJkZWEzNy4uOTcwMjlhOTBmYzA3NmI0ZTlkNWVkZDEzYThmNjI0
ZThkNWE3OTlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTEwLTA1ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGFjdCBQaWNr
ZXIgQVBJXSBBZGQgc3VwcG9ydCBmb3IgQ29udGFjdHNNYW5hZ2VyLmdldFByb3BlcnRpZXMoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MzU0Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS82OTg2MjA5OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb250YWN0c01hbmFnZXIuZ2V0UHJvcGVydGllcygp
IHJldHVybnMgYSBsaXN0IG9mIHByb3BlcnRpZXMgc3VwcG9ydGVkCisgICAgICAgIGJ5IHRoZSBB
UEkuIFRoZXNlIGN1cnJlbnRseSBpbmNsdWRlIG5hbWUsIGVtYWlsIGFuZCB0ZWwuCisKKyAgICAg
ICAgVGVzdDogY29udGFjdC1waWNrZXIvY29udGFjdHMtbWFuYWdlci1nZXQtcHJvcGVydGllcy5o
dG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWN0c01hbmFnZXI6OmdldFByb3BlcnRpZXMpOgor
CiAyMDIwLTEwLTA1ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAg
ICAgTWFrZSBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCBhIHdlYWsgcG9pbnRlciBv
biBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c01hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c01hbmFnZXIuY3BwCmluZGV4IDA4ZTIy
ZjhlMTY1OTViMDYwYWU3YTkzMTU0N2MyZjQ5MjI1NGM2ZjAuLmFmOTkxYTU1MjdmOGJmNjg2YjEx
YmMyNTM1Y2QxYjJhNDUxMGM2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y29udGFjdC1waWNrZXIvQ29udGFjdHNNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5jcHAKQEAgLTU2LDcgKzU2LDgg
QEAgTmF2aWdhdG9yKiBDb250YWN0c01hbmFnZXI6Om5hdmlnYXRvcigpCiAKIHZvaWQgQ29udGFj
dHNNYW5hZ2VyOjpnZXRQcm9wZXJ0aWVzKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkK
IHsKLSAgICBwcm9taXNlLT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IpOworICAgIFZlY3RvcjxD
b250YWN0UHJvcGVydHk+IHByb3BlcnRpZXMgPSB7IENvbnRhY3RQcm9wZXJ0eTo6RW1haWwsIENv
bnRhY3RQcm9wZXJ0eTo6TmFtZSwgQ29udGFjdFByb3BlcnR5OjpUZWwgfTsKKyAgICBwcm9taXNl
LT5yZXNvbHZlPElETFNlcXVlbmNlPElETEVudW1lcmF0aW9uPENvbnRhY3RQcm9wZXJ0eT4+Pihw
cm9wZXJ0aWVzKTsKIH0KIAogdm9pZCBDb250YWN0c01hbmFnZXI6OnNlbGVjdChjb25zdCBWZWN0
b3I8Q29udGFjdFByb3BlcnR5PiYgcHJvcGVydGllcywgY29uc3QgQ29udGFjdHNTZWxlY3RPcHRp
b25zJiBvcHRpb25zLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDEw
YTQ4N2EyYzdlNjg1MzJhNTBkNjVmYTgzMWJhOTFkMmViNzI4My4uMzU1MmJlOWU3YjYwNDAyYmRi
MmVkNGFlZWUxODk2YTk2ZTEyZWEyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEwLTA1
ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGFj
dCBQaWNrZXIgQVBJXSBBZGQgc3VwcG9ydCBmb3IgQ29udGFjdHNNYW5hZ2VyLmdldFByb3BlcnRp
ZXMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3
MzU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82OTg2MjA5OT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIGxheW91dCB0ZXN0IHRvIGV4
ZXJjaXNlIHRoZSBtZXRob2QuCisKKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1t
YW5hZ2VyLWdldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29u
dGFjdC1waWNrZXIvY29udGFjdHMtbWFuYWdlci1nZXQtcHJvcGVydGllcy5odG1sOiBBZGRlZC4K
KwogMjAyMC0xMC0wNSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAg
IFVwZGF0ZSBUZXN0RXhwZWN0YXRpb25zIGZvciBsYXlvdXQgdGVzdHMgcmVsYXRlZCB0byBHUFUg
cHJvY2VzcyBmZWF0dXJlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIv
Y29udGFjdHMtbWFuYWdlci1nZXQtcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1tYW5hZ2VyLWdldC1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zMmQ0ZmRhZTFkNjk0NGY2NDkxZjE0ODM3ZjZlZjBjNDZlNjliZTcy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMt
bWFuYWdlci1nZXQtcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVz
dCBmb3IgQ29udGFjdHNNYW5hZ2VyLmdldFByb3BlcnRpZXMoKS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgcHJvcGVydGllcyBpcyBhbiBpbnN0YW5jZSBvZiBBcnJheQor
UEFTUyBwcm9wZXJ0aWVzLmxlbmd0aCBpcyAzCitQQVNTIHByb3BlcnRpZXMuaW5jbHVkZXMoJ2Vt
YWlsJykgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0aWVzLmluY2x1ZGVzKCduYW1lJykgaXMgdHJ1ZQor
UEFTUyBwcm9wZXJ0aWVzLmluY2x1ZGVzKCd0ZWwnKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtbWFuYWdlci1nZXQtcHJvcGVydGllcy5odG1sIGIv
TGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtbWFuYWdlci1nZXQtcHJvcGVydGll
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmYwNzc5ZjZjNDgyNWY4NDU0NGRkOTA2Y2U3YmI2ODdmOGY2N2I2
NTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0
cy1tYW5hZ2VyLWdldC1wcm9wZXJ0aWVzLmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBF
IGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNvbnRhY3RQaWNr
ZXJBUElFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4K
KyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBh
c3luYyBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzY3JpcHRp
b24oIlRlc3QgZm9yIENvbnRhY3RzTWFuYWdlci5nZXRQcm9wZXJ0aWVzKCkuIik7CisKKyAgICAg
ICAgICAgIHByb3BlcnRpZXMgPSBhd2FpdCBuYXZpZ2F0b3IuY29udGFjdHMuZ2V0UHJvcGVydGll
cygpOworICAgICAgICAgICAgc2hvdWxkQmVUeXBlKCJwcm9wZXJ0aWVzIiwgIkFycmF5Iik7Cisg
ICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9OdW1iZXIoInByb3BlcnRpZXMubGVuZ3RoIiwgMyk7
CisgICAgICAgICAgICBzaG91bGRCZVRydWUoInByb3BlcnRpZXMuaW5jbHVkZXMoJ2VtYWlsJyki
KTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgicHJvcGVydGllcy5pbmNsdWRlcygnbmFtZScp
Iik7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoInByb3BlcnRpZXMuaW5jbHVkZXMoJ3RlbCcp
Iik7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+CisgICAgPGJvZHkgb25sb2FkPXJ1blRlc3QoKT48L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>