<?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>158496</bug_id>
          
          <creation_ts>2016-06-07 14:53:30 -0700</creation_ts>
          <short_desc>WKWebView should expose API for disabling/enabling navigating Universal Links to native applications</short_desc>
          <delta_ts>2020-02-26 17:53:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>Other</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 12</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>michaeldo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>eugenebut</cc>
    
    <cc>ggaren</cc>
    
    <cc>krzysztof.modras</cc>
    
    <cc>mjs</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1200203</commentid>
    <comment_count>0</comment_count>
    <who name="">michaeldo</who>
    <bug_when>2016-06-07 14:53:30 -0700</bug_when>
    <thetext>Summary:
There are situations when applications do not want Universal Links to be handled by the System, but prefer the link to be opened in the WKWebView itself. For example, when using a WKWebView in a &quot;private browsing&quot; mode as specified by [WKWebsiteDataStore nonPersistentDataStore], the hosting WKWebView application should be able to prevent opening the Universal Link from opening the native application.

Steps to Reproduce:
1. Install and log into the LinkedIn app
2. Create WKWebView with [WKWebsiteDataStore nonPersistentDataStore]
3. Navigate to search engine and search for a LinkedIn user&apos;s profile
4. Click on the user&apos;s profile

Expected Results:
Application should be able to disable the system opening the LinkedIn app.

Actual Results:
LinkedIn app is launched, user unexpectedly looses private context.

Version:
iOS 9.3.2 (13F69)

radar://26683207</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506693</commentid>
    <comment_count>1</comment_count>
      <attachid>362139</attachid>
    <who name="">michaeldo</who>
    <bug_when>2019-02-15 11:48:58 -0800</bug_when>
    <thetext>Created attachment 362139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508013</commentid>
    <comment_count>2</comment_count>
    <who name="">michaeldo</who>
    <bug_when>2019-02-19 23:43:28 -0800</bug_when>
    <thetext>achristensen@, please take a look. This was the suggested method to support blocking universal links from opening native applications when a user is within a &quot;private&quot; browsing mode. Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508114</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-02-20 10:10:49 -0800</bug_when>
    <thetext>This is absolutely the approach I suggested, and I think it looks good.  However, adding private functions won&apos;t help you.  We will have to do the internal process to get new public API approved, which will not be documented in Bugzilla.  This patch gives us a starting point, though.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508135</commentid>
    <comment_count>4</comment_count>
    <who name="">michaeldo</who>
    <bug_when>2019-02-20 10:40:07 -0800</bug_when>
    <thetext>Yes,, they would need to be made public. No problem, please let me know if there is anything I can do to help. Thank you for taking a look!

(Should I follow up on submitting this change or will it remain in this state and just be replicated later on if the internal processes approves a public version?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620577</commentid>
    <comment_count>5</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2020-02-19 01:52:21 -0800</bug_when>
    <thetext>I think it would be a more flexible design to control this through a delegate method. Perhaps decidePolicyForNavigationAction can make the choice? That way, apps could decide on a case by case basis whether to open a webpage inline or open an associated app.

Poking around, it seems there is already a private _WKNavigationActionPolicyAllowWithoutTryingAppLink which would continue the navigation without trying universal links. I suspect making that public is the right approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622784</commentid>
    <comment_count>6</comment_count>
    <who name="Eugene But">eugenebut</who>
    <bug_when>2020-02-25 15:30:16 -0800</bug_when>
    <thetext>Thanks! Making _WKNavigationActionPolicyAllowWithoutTryingAppLink public works for Chrome.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362139</attachid>
            <date>2019-02-15 11:48:58 -0800</date>
            <delta_ts>2019-02-15 11:48:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158496-20190215114857.patch</filename>
            <type>text/plain</type>
            <size>4645</size>
            <attacher>michaeldo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxMzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZhM2Y3Y2FjN2EzNGY4OGRi
Yzg4NzczYzQ0ODc2OWQ1OWQxNTQzYzcuLjkxMmUzZmJiZTdmZjY1NjA4NTExNWM3NzkwMTc2M2I3
Yzc1NDZkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMDItMTUgIE1pa2UgRG91
Z2hlcnR5ICA8bWljaGFlbGRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgcHJlZmVyZW5j
ZSB0byBjb250cm9sIG9wZW5pbmcgdW5pdmVyc2FsIGxpbmtzIGluIG5hdnRpdmUgYXBwbGljYXRp
b25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4
NDk2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjY4MzIwNz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlcy55
YW1sOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbToKKyAg
ICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0TGF1bmNoTmF0aXZlQXBwbGljYXRpb25zRW5hYmxl
ZDpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfbGF1bmNoTmF0aXZlQXBwbGljYXRpb25z
RW5hYmxlZF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1By
aXZhdGUuaDoKKyAgICAgICAgQWRkIHByaXZhdGUgcHJlZmVyZW5jZSB0byBjb250cm9sIHdoZXRo
ZXIgb3Igbm90IG5hdGl2ZSBhcHBsaWNhdGlvbnMgY2FuIGhhbmRsZSBuYXZpZ2F0aW9ucyB0byB1
bml2ZXJzYWwgbGlua3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLm1tOgorICAgICAgICAoV2ViS2l0Ojp0cnlJbnRlcmNlcHROYXZpZ2F0aW9uKToKKyAgICAg
ICAgQ2hlY2sgbmV3bHkgYWRkZWQgcHJlZmVyZW5jZSB2YWx1ZSB0byBkZXRlcm1pbmUgaWYgYSBu
YXRpdmUgYXBwbGljYXRpb24gc2hvdWxkIGhhbmRsZSB0aGUgbmF2aWdhdGlvbi4KKwogMjAxOS0w
Mi0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlbW92ZSBzZXREZWZlcnNMb2FkaW5nIGluZnJhc3RydWN0dXJlIGZyb20gV2ViS2l0Mgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggY2NlNGFjZTgzNTYz
MjVlN2EwYTAwZTUyM2Y5ZTRjOTkyZjkxNTJmZi4uYjZkMGRlMDVhZGQ2ZGFlM2JkNjE3ZmFmM2Zi
ZmI5MTc5OTE4NzhlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1s
CkBAIC0xMDA5LDYgKzEwMDksMTEgQEAgU2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0OgogICB0eXBl
OiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZmFsc2UKIAorTGF1bmNoTmF0aXZlQXBwbGljYXRpb25z
RW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IHRydWUKKyAgd2ViY29yZUJp
bmRpbmc6IG5vbmUKKwogIyBEZWJ1ZyBQcmVmZXJlbmNlcwogCiBBY2NlbGVyYXRlZERyYXdpbmdF
bmFibGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5tbQppbmRleCA0NjFjODc1NGY5NDA3M2MxNzc4OGNmN2FlOWNlN2NiYTk3MDY0MTI1
Li4wOTYzYTUyMTZmNGI3NjNiZDkzN2ZmZGYzMDlmZjRiYTkwMGQ0Mzk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtMTM3
Miw2ICsxMzcyLDE2IEBAIC0gKEJPT0wpX2RldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkCiAj
ZW5kaWYKIH0KIAorLSAodm9pZClfc2V0TGF1bmNoTmF0aXZlQXBwbGljYXRpb25zRW5hYmxlZDoo
Qk9PTCllbmFibGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+c2V0TGF1bmNoTmF0aXZl
QXBwbGljYXRpb25zRW5hYmxlZChlbmFibGVkKTsKK30KKworLSAoQk9PTClfbGF1bmNoTmF0aXZl
QXBwbGljYXRpb25zRW5hYmxlZAoreworICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmxhdW5jaE5h
dGl2ZUFwcGxpY2F0aW9uc0VuYWJsZWQoKTsKK30KKwogQGVuZAogCiAjZW5kaWYgLy8gV0tfQVBJ
X0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggY2IzOWZhOGUwNGUxMjhiOWJlM2M2YzFhNzAz
ZDIxZjIyNDRkMjFhOS4uMzYzM2U5N2E0YzQ2ZWU0ZjVjYTBlNzUwM2EyM2E1NWYzNGFlNGQxZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXNQcml2YXRlLmgKQEAgLTE1NCw2ICsxNTQsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvcikgewogQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3M6KSBCT09MIF9uZWVkc1NpdGVTcGVj
aWZpY1F1aXJrcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKFdLX0lPU19U
QkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEl0cERlYnVnTW9kZUVuYWJs
ZWQ6KSBCT09MIF9pdHBEZWJ1Z01vZGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRNZWRpYVNvdXJjZUVuYWJsZWQ6KSBCT09MIF9tZWRpYVNvdXJjZUVuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRMYXVuY2hOYXRpdmVBcHBsaWNhdGlvbnNFbmFibGVkOikg
Qk9PTCBfbGF1bmNoTmF0aXZlQXBwbGljYXRpb25zRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjaWYgIVRBUkdFVF9PU19JUEhP
TkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFdlYkdMRW5hYmxlZDopIEJPT0wg
X3dlYkdMRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KaW5kZXggYjA1
MGI2ZDA3ZWZjMDhjMGIyMGNhOWRlMTM1Y2E5YWEzNDEwZGI0NC4uOTAwYjlhZDFlMzRlNWRiMjhm
ODIzODMzZWJmZTZjYWI5NTFiZjA4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQpAQCAtNDc4LDcgKzQ3OCw3IEBAIHN0YXRpYyB2b2lk
IHRyeU9wdGltaXppbmdMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYlBh
Z2VQcm94eSYsIEZ1CiBzdGF0aWMgdm9pZCB0cnlJbnRlcmNlcHROYXZpZ2F0aW9uKFJlZjxBUEk6
Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgV2ViUGFnZVByb3h5JiBwYWdl
LCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYg
SEFWRShBUFBfTElOS1MpCi0gICAgaWYgKG5hdmlnYXRpb25BY3Rpb24tPnNob3VsZE9wZW5BcHBM
aW5rcygpKSB7CisgICAgaWYgKG5hdmlnYXRpb25BY3Rpb24tPnNob3VsZE9wZW5BcHBMaW5rcygp
ICYmIHBhZ2UucHJlZmVyZW5jZXMoKS5sYXVuY2hOYXRpdmVBcHBsaWNhdGlvbnNFbmFibGVkKCkp
IHsKICAgICAgICAgYXV0byogbG9jYWxDb21wbGV0aW9uSGFuZGxlciA9IG5ldyBXVEY6OkZ1bmN0
aW9uPHZvaWQgKGJvb2wpPihbcmVxdWVzdCA9IG5hdmlnYXRpb25BY3Rpb24tPnJlcXVlc3QoKS5p
c29sYXRlZENvcHkoKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGJvb2wgc3VjY2VzcykgbXV0YWJs
ZSB7CiAgICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICAgICAg
aWYgKCFzdWNjZXNzICYmIHdlYWtQYWdlKSB7Cg==
</data>
<flag name="review"
          id="378784"
          type_id="1"
          status="?"
          setter="michaeldo"
    />
          </attachment>
      

    </bug>

</bugzilla>