diff --git a/nci/jni/NativeNfcManager.cpp b/nci/jni/NativeNfcManager.cpp
index 6d35982..0f16572 100755
--- a/nci/jni/NativeNfcManager.cpp
+++ b/nci/jni/NativeNfcManager.cpp
@@ -64,6 +64,8 @@
     extern void nativeNfcTag_abortWaits ();
     extern void nativeLlcpConnectionlessSocket_abortWait ();
     extern void nativeNfcTag_registerNdefTypeHandler ();
+    extern void nativeNfcTag_acquireRfInterfaceMutexLock();
+    extern void nativeNfcTag_releaseRfInterfaceMutexLock();
     extern void nativeLlcpConnectionlessSocket_receiveData (uint8_t* data, uint32_t len, uint32_t remote_sap);
 }
 
@@ -1955,6 +1957,7 @@
     tNFA_STATUS status = NFA_STATUS_FAILED;
 
     ALOGV("%s: is start=%d", __func__, isStart);
+    nativeNfcTag_acquireRfInterfaceMutexLock();
     SyncEventGuard guard (sNfaEnableDisablePollingEvent);
     status  = isStart ? NFA_StartRfDiscovery () : NFA_StopRfDiscovery ();
     if (status == NFA_STATUS_OK)
@@ -1966,6 +1969,7 @@
     {
         ALOGE("%s: Failed to start/stop RF discovery; error=0x%X", __func__, status);
     }
+    nativeNfcTag_releaseRfInterfaceMutexLock();
 }
 
 
@@ -2077,6 +2081,7 @@
         tech_mask = num;
     else if (tech_mask == 0) tech_mask = DEFAULT_TECH_MASK;
 
+    nativeNfcTag_acquireRfInterfaceMutexLock();
     SyncEventGuard guard (sNfaEnableDisablePollingEvent);
     ALOGV("%s: enable polling", __func__);
     stat = NFA_EnablePolling (tech_mask);
@@ -2090,6 +2095,7 @@
     {
         ALOGE("%s: fail enable polling; error=0x%X", __func__, stat);
     }
+    nativeNfcTag_releaseRfInterfaceMutexLock();
 
     return stat;
 }
@@ -2097,6 +2103,7 @@
 static tNFA_STATUS stopPolling_rfDiscoveryDisabled() {
     tNFA_STATUS stat = NFA_STATUS_FAILED;
 
+    nativeNfcTag_acquireRfInterfaceMutexLock();
     SyncEventGuard guard (sNfaEnableDisablePollingEvent);
     ALOGV("%s: disable polling", __func__);
     stat = NFA_DisablePolling ();
@@ -2106,6 +2113,7 @@
     } else {
         ALOGE("%s: fail disable polling; error=0x%X", __func__, stat);
     }
+    nativeNfcTag_releaseRfInterfaceMutexLock();
 
     return stat;
 }
diff --git a/nci/jni/NativeNfcTag.cpp b/nci/jni/NativeNfcTag.cpp
index ece0ce5..96faa62 100644
--- a/nci/jni/NativeNfcTag.cpp
+++ b/nci/jni/NativeNfcTag.cpp
@@ -1844,6 +1844,36 @@
     sNdefTypeHandlerHandle = NFA_HANDLE_INVALID;
 }
 
+/*******************************************************************************
+**
+** Function:        nativeNfcTag_acquireRfInterfaceMutexLock
+**
+** Description:     acquire sRfInterfaceMutex
+**
+** Returns:         None
+**
+*******************************************************************************/
+void nativeNfcTag_acquireRfInterfaceMutexLock()
+{
+    ALOGD("%s: try to acquire lock", __func__);
+    sRfInterfaceMutex.lock();
+    ALOGD("%s: sRfInterfaceMutex lock", __func__);
+}
+
+/*******************************************************************************
+**
+** Function:       nativeNfcTag_releaseRfInterfaceMutexLock
+**
+** Description:    release the sRfInterfaceMutex
+**
+** Returns:        None
+**
+*******************************************************************************/
+void nativeNfcTag_releaseRfInterfaceMutexLock()
+{
+    sRfInterfaceMutex.unlock();
+    ALOGD("%s: sRfInterfaceMutex unlock", __func__);
+}
 
 /*****************************************************************************
 **
diff --git a/res/drawable/ic_weblink_nfc.xml b/res/drawable/ic_weblink_nfc.xml
new file mode 100644
index 0000000..60f83c7
--- /dev/null
+++ b/res/drawable/ic_weblink_nfc.xml
@@ -0,0 +1,19 @@
+<vector android:height="180dp" android:viewportHeight="180.0"
+        android:viewportWidth="180.0" android:width="180dp" xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillColor="#F1F3F4" android:pathData="M90,90m-90,0a90,90 0,1 1,180 0a90,90 0,1 1,-180 0"/>
+    <path android:fillColor="#E0E0E0" android:pathData="M64.2,107.5m-28,0a28,28 0,1 1,56 0a28,28 0,1 1,-56 0"/>
+    <path android:fillColor="#2196F3" android:pathData="M64.2,105.5m-28,0a28,28 0,1 1,56 0a28,28 0,1 1,-56 0"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M74.3,92.4h-21.2c-1.5,0 -2.7,1.2 -2.7,2.6v21.2c0,1.5 1.2,2.7 2.6,2.7h21.2c1.5,0 2.7,-1.2 2.7,-2.6l0.1,-21.3C77,93.6 75.8,92.4 74.3,92.4zM74.3,116.2h-21.2L53.1,95h21.2L74.3,116.2zM71.7,97.7h-6.6c-1.5,0 -2.7,1.2 -2.7,2.6v3c-0.8,0.5 -1.3,1.3 -1.3,2.3c0,1.5 1.2,2.7 2.6,2.7s2.7,-1.2 2.7,-2.6c0,-1 -0.5,-1.8 -1.3,-2.3v-3h4L69.1,111h-10.6v-10.6h2.7v-2.7h-5.3v15.9h15.9L71.7,97.7z"/>
+    <path android:fillColor="#FAC88B" android:pathData="M166.7,137.1c-6.6,-5.9 -13.7,-12.7 -18.6,-18.5c-4.5,-5.4 -6.1,-30.2 -6.1,-30.2c0,-1.8 -0.9,-5.5 -1.4,-5.8c-1.6,-0.9 -3,-0.1 -3.1,1.7l-0.1,0.8c0,0 0.1,2.9 -4.9,0.9l0,0c-0.2,-0.1 -6.3,-3.7 -10.5,-7.7l0,0l-10.9,-10.3l-0.4,-0.4l-26.5,-24.1c-1.9,-1.6 -4,-3 -6,-3.3c-1,-0.1 -2,-0.2 -2.9,0.7l0,0c-0.7,0.7 -0.7,1.4 -0.8,2.1c-0.2,2.2 1.5,4.6 3.2,6.9l23.4,26.9l0.5,0.6l3.2,3.4c0.2,0.2 0.3,0.5 0.2,0.8l-15.4,27c-0.4,0.7 -0.6,1.1 -0.1,1.8c0.6,0.8 2.2,2.9 2.3,3c1.5,1.7 13.2,10.3 34.9,22.1c0.1,0.1 2.8,2.8 2.9,2.9c0,0 0.1,0.1 0.1,0.2c0,0 0,0 -0.1,-0.1c1.2,1.3 6,6.5 12.5,13.3c0.2,0.2 0.4,0.4 0.6,0.7c0.1,0.1 0.1,0.1 0.2,0.2c1.8,1.8 3.7,3.8 5.6,5.8C155.6,152.3 161.8,145.1 166.7,137.1z"/>
+    <path android:fillColor="#FF000000" android:pathData="M86.9,122.3c-2.3,0 -6.1,-0.7 -6.8,-4.9l0,0c0,-0.2 -0.1,-0.4 -0.1,-0.7l0,0c0,-0.4 0,-0.7 0,-1.1l0.6,-77.4c0,-2.1 0.6,-3.7 1.8,-4.9c1.2,-1.1 2.9,-1.7 5.1,-1.7l0,0h0.1l0,0l32.3,0.2c2.2,0 4,0.6 5.1,1.8c1.2,1.1 1.8,2.8 1.7,4.9l-0.6,77.4c0,0.3 0,0.7 0,1.1l0,0c0,0.2 0,0.5 -0.1,0.7l0,0l0,0c-0.7,4.2 -4.6,4.8 -6.9,4.8L86.9,122.3z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M123.6,114.2l-41.8,-0.6c-0.4,0 -0.8,-0.4 -0.8,-0.8l1,-70.5c0,-0.4 0.4,-0.8 0.8,-0.8l41.9,0.5c0.4,0 0.8,0.4 0.8,0.8l-1,70.5C124.4,113.9 124.1,114.2 123.6,114.2z"/>
+    <path android:fillColor="#939393" android:pathData="M87.6,31.9L87.6,31.9h0.8l0,0l30.7,0.2h0.7h0.1c2.1,0 3.8,0.6 4.9,1.7c1.1,1.1 1.7,2.7 1.7,4.7v0.1v0.6l-0.6,76.7c0,0.4 0,0.7 0,1.1l0,0l0,0c0,0.2 0,0.5 -0.1,0.7l0,0c-0.7,4 -4.4,4.6 -6.6,4.6h-0.1h-0.7l-30.7,-0.3h-0.7h-0.1c-2.2,0 -5.9,-0.6 -6.5,-4.7l0,0c0,-0.2 -0.1,-0.4 -0.1,-0.7l0,0l0,0c0,-0.4 0,-0.7 0,-1.1l0.6,-76.7v-0.6v-0.1c0,-2 0.6,-3.6 1.7,-4.7C83.7,32.4 85.4,31.9 87.6,31.9C87.5,31.9 87.5,31.9 87.6,31.9C87.5,31.9 87.6,31.9 87.6,31.9L87.6,31.9M87.7,31.4L87.7,31.4L87.7,31.4h-0.2l0,0c-2.3,0 -4,0.6 -5.3,1.8c-1.2,1.2 -1.9,2.9 -1.9,5.1v0.1v0.6l-0.6,76.7c0,0.4 0,0.7 0,1.1l0,0l0,0c0,0.2 0,0.5 0.1,0.7l0,0l0,0l0,0l0,0c0.3,1.9 1.3,3.4 3,4.2c1.4,0.7 3,0.9 4.1,0.9h0.1h0.7l30.7,0.2h0.7h0.1c1.1,0 2.7,-0.1 4.1,-0.8c1.7,-0.8 2.7,-2.2 3,-4.2l0,0l0,0l0,0l0,0c0,-0.2 0.1,-0.4 0.1,-0.7l0,0l0,0c0,-0.4 0,-0.7 0,-1.1l0.6,-76.7v-0.6v-0.1c0,-2.2 -0.6,-3.9 -1.8,-5.1c-1.2,-1.2 -3,-1.8 -5.3,-1.8h-0.1h-0.7l-30.7,-0.2l0,0L87.7,31.4L87.7,31.4L87.7,31.4z"/>
+    <path android:fillColor="#2196F3" android:pathData="M111.7,63.9l-16.9,-0.1c-1.2,0 -2.1,0.9 -2.1,2.1l-0.1,16.9c0,1.2 0.9,2.1 2.1,2.1l16.9,0.1c1.2,0 2.1,-0.9 2.1,-2.1l0.1,-16.9C113.8,64.9 112.9,63.9 111.7,63.9zM111.6,83l-16.9,-0.1l0.1,-16.9l16.9,0.1L111.6,83zM109.6,68.1h-5.3c-1.2,0 -2.1,0.9 -2.1,2.1v2.4c-0.6,0.4 -1.1,1 -1.1,1.8c0,1.2 0.9,2.1 2.1,2.1s2.1,-0.9 2.1,-2.1c0,-0.8 -0.4,-1.5 -1,-1.8v-2.4h3.2v8.5h-8.5v-8.5h2.1v-2.1h-4.2l-0.1,12.7l12.7,0.1L109.6,68.1z"/>
+    <path android:fillColor="#E0E0E0" android:pathData="M96.4,91.7c0.6,-0.1 2.3,-0.3 2.7,-3.1c0.4,-2.7 -3.1,-6.4 -4.4,-7.6l-10.9,-10.7c-2.3,-2.1 -7.1,5.9 -4.8,8l13.4,12C93.5,91.4 95,91.8 96.4,91.7z"/>
+    <path android:fillColor="#E0E0E0" android:pathData="M95.3,101.7c0.6,-0.1 2.3,-0.3 2.7,-3.1c0.4,-2.7 -3.1,-6.4 -4.4,-7.6l-10.9,-10.7c-2.3,-2.1 -6.7,5.5 -4.4,7.6l13,12.4C92.5,101.4 93.9,101.8 95.3,101.7z"/>
+    <path android:fillColor="#E0E0E0" android:pathData="M76.1,87.2c-0.4,0 2.1,8.2 3.5,12.7c0.4,1.3 1.1,4.4 1.1,4.4c2,2.5 6,5.4 8.3,3.2s1.2,-5.6 -0.8,-8l-7.5,-10.2C79.7,88 77.5,87.3 76.1,87.2z"/>
+    <path android:fillColor="#FAC88B" android:pathData="M136.6,114.6l4.4,-23.2c0,0 3,-6.7 -0.9,-10.3c-3.9,-3.6 -14.4,-18.2 -14.4,-18.2s-6.7,-9.6 -11.5,-4.1c-2.9,3.3 3.1,11.1 3.1,11.1l8.5,14.4c-6.1,14.2 -5.7,26 1.5,36.1C127.4,120.4 132.6,125.3 136.6,114.6z"/>
+    <path android:fillColor="#FFCC80" android:pathData="M96.5,91c0.6,-0.1 2.3,-0.3 2.7,-3.1c0.4,-2.7 -3.1,-6.4 -4.4,-7.6l-10.8,-10.7c-2.3,-2.1 -6.7,-4.3 -8.6,-1.8c-2,2.5 -0.4,5.7 1.9,7.8l15.3,14.1C93.7,90.7 95.1,91.2 96.5,91z"/>
+    <path android:fillColor="#FFCC80" android:pathData="M95.3,100.9c0.6,-0.1 2.3,-0.3 2.7,-3.1c0.4,-2.7 -3.1,-6.4 -4.4,-7.6l-10.8,-10.7c-2.3,-2.1 -6.7,-4.3 -8.6,-1.8c-2,2.5 -0.4,5.7 1.9,7.8l15.3,14.1C92.5,100.6 93.9,101 95.3,100.9z"/>
+    <path android:fillColor="#FFCC80" android:pathData="M76.1,86.4c-0.6,0 -2.3,0 -3.1,2.7c-0.8,2.6 2.1,6.8 3.3,8.3l4.4,6.2c2,2.5 6,5.4 8.3,3.2c2.3,-2.2 1.2,-5.6 -0.8,-8l-7.5,-10.2C79.8,87.3 77.5,86.5 76.1,86.4z"/>
+</vector>
diff --git a/res/layout/url_open_confirmation.xml b/res/layout/url_open_confirmation.xml
new file mode 100644
index 0000000..98ff5d2
--- /dev/null
+++ b/res/layout/url_open_confirmation.xml
@@ -0,0 +1,35 @@
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:gravity="start"
+    android:layout_width="wrap_content"
+    android:layout_height="400dp"
+    android:orientation="vertical"
+    android:paddingTop="24dp"
+    android:paddingStart="24dp"
+    android:paddingEnd="24dp">
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAlignment="viewStart"
+        android:paddingBottom="24dp"
+        android:text="@string/summary_confirm_url_open"
+        android:textColor="?android:attr/textColorPrimaryInverse"/>
+    <TextView
+        android:id="@+id/url_open_confirmation_link"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAlignment="viewStart"
+        android:textColor="?android:attr/colorAccent"/>
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingTop="24dp"
+        android:paddingBottom="24dp">
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:src="@drawable/ic_weblink_nfc"/>
+    </FrameLayout>
+
+</LinearLayout>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index df05221..eb0aa82 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -14,7 +14,7 @@
     <string name="beam_tap_to_view" msgid="7430394753262448349">"देखने के लिए टैप करें"</string>
     <string name="beam_handover_not_supported" msgid="4083165921751489015">"प्राप्तकर्ता का डिवाइस, बीम द्वारा बड़ी फ़ाइल के स्थानांतरण का समर्थन नहीं करता."</string>
     <string name="beam_try_again" msgid="3364677301009783455">"डिवाइस को पुन: एक साथ लाएं"</string>
-    <string name="beam_busy" msgid="5253335587620612576">"Beam वर्तमान में व्‍यस्‍त है. पिछला ट्रांसफर पूर्ण हो जाने पर पुन: प्रयास करें."</string>
+    <string name="beam_busy" msgid="5253335587620612576">"बीम अभी व्‍यस्‍त है. पिछला ट्रांसफर पूरा हो जाने पर फिर से कोशिश करें."</string>
     <string name="device" msgid="4459621591392478151">"डिवाइस"</string>
     <string name="connecting_peripheral" msgid="1296182660525660935">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> को कनेक्‍ट किया जा रहा है"</string>
     <string name="connected_peripheral" msgid="20748648543160091">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> को कनेक्‍ट किया गया"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 0f7e5a2..70bc08e 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -24,7 +24,7 @@
     <string name="pairing_peripheral" msgid="6983626861540899365">"מבצע התאמה עם <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="pairing_peripheral_failed" msgid="6087643307743264679">"לא ניתן לבצע התאמה עם <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="failed_to_enable_bt" msgid="7229153323594758077">"‏לא ניתן להפעיל Bluetooth"</string>
-    <string name="confirm_pairing" msgid="4112568077038265363">"‏האם אתה בטוח שברצונך להתאים את מכשיר ה-Bluetooth <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
+    <string name="confirm_pairing" msgid="4112568077038265363">"‏בטוח שברצונך להתאים את מכשיר ה-Bluetooth <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="pair_yes" msgid="3525614878559994448">"כן"</string>
     <string name="pair_no" msgid="5022308368904055020">"לא"</string>
     <string name="tap_again_to_pay" msgid="5754988005412859897">"הקש שוב כדי לשלם באמצעות <xliff:g id="APP">%1$s</xliff:g>"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 6b1e4da..83ff3d7 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -35,7 +35,7 @@
     <string name="complete_with" msgid="6797459104103012992">"ഇതുപയോഗിച്ച് പൂർത്തിയാക്കുക"</string>
     <string name="default_pay_app_removed" msgid="4108250545457437360">"\'ടാപ്പുചെയ്‌ത് പണമടയ്‌ക്കുക\' എന്നതിനായി നിങ്ങൾ തിരഞ്ഞെടുത്ത സേവനം നീക്കംചെയ്‌തു. മറ്റൊന്ന് തിരഞ്ഞെടുക്കണോ?"</string>
     <string name="ask_nfc_tap" msgid="2925239870458286340">"പൂർത്തിയാക്കുന്നതിന് മറ്റൊരു ഉപകരണം ടാപ്പുചെയ്യുക"</string>
-    <string name="wifi_connect" msgid="6250727951843550671">"കണക്റ്റുചെയ്യുക"</string>
+    <string name="wifi_connect" msgid="6250727951843550671">"കണക്റ്റ് ചെയ്യുക"</string>
     <string name="status_unable_to_connect" msgid="9183908200295307657">"നെറ്റ്‌വർക്കിലേക്ക് കണക്റ്റുചെയ്യാനായില്ല"</string>
     <string name="status_wifi_connected" msgid="5893022897732105739">"കണക്റ്റുചെയ്‌തു"</string>
     <string name="title_connect_to_network" msgid="2474034615817280146">"നെ‌റ്റ്‌വർക്കിൽ കണക്‌റ്റുചെയ്യുക"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 0d69e30..9c71c9d 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -12,10 +12,10 @@
     <string name="beam_canceled" msgid="5425192751826544741">"बीम रद्द"</string>
     <string name="cancel" msgid="61873902552555096">"रद्द करा"</string>
     <string name="beam_tap_to_view" msgid="7430394753262448349">"पाहण्यासाठी टॅप करा"</string>
-    <string name="beam_handover_not_supported" msgid="4083165921751489015">"प्राप्तकर्त्याचे डीव्हाइस बीमद्वारे मोठी फाईल स्थानांतरीत करण्यास सपोर्ट करत नाही."</string>
+    <string name="beam_handover_not_supported" msgid="4083165921751489015">"प्राप्तकर्त्याचे डिव्हाइस बीमद्वारे मोठी फाईल स्थानांतरीत करण्यास सपोर्ट करत नाही."</string>
     <string name="beam_try_again" msgid="3364677301009783455">"डिव्हाइसेस पुन्हा एकत्र आणा"</string>
     <string name="beam_busy" msgid="5253335587620612576">"बीम करणे सध्या व्यस्त आहे. मागील स्थानांतरीत करणे पूर्ण झाल्यानंतर पुन्हा प्रयत्न करा."</string>
-    <string name="device" msgid="4459621591392478151">"डीव्हाइस"</string>
+    <string name="device" msgid="4459621591392478151">"डिव्हाइस"</string>
     <string name="connecting_peripheral" msgid="1296182660525660935">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> कनेक्‍ट करीत आहे"</string>
     <string name="connected_peripheral" msgid="20748648543160091">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> कनेक्‍ट केले"</string>
     <string name="connect_peripheral_failed" msgid="7925702596242839275">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> कनेक्‍ट करणे शक्य झाले नाही"</string>
@@ -24,7 +24,7 @@
     <string name="pairing_peripheral" msgid="6983626861540899365">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> पेअर करत आहे"</string>
     <string name="pairing_peripheral_failed" msgid="6087643307743264679">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> जोडणे शक्य झाले नाही"</string>
     <string name="failed_to_enable_bt" msgid="7229153323594758077">"ब्लूटूथ सक्षम करू शकलो नाही"</string>
-    <string name="confirm_pairing" msgid="4112568077038265363">"तुम्ही <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ब्लूटूथ डीव्हाइस जोडू इच्छिता याची तुम्हाला खात्री आहे?"</string>
+    <string name="confirm_pairing" msgid="4112568077038265363">"तुम्ही <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ब्लूटूथ डिव्हाइस जोडू इच्छिता याची तुम्हाला खात्री आहे?"</string>
     <string name="pair_yes" msgid="3525614878559994448">"होय"</string>
     <string name="pair_no" msgid="5022308368904055020">"नाही"</string>
     <string name="tap_again_to_pay" msgid="5754988005412859897">"<xliff:g id="APP">%1$s</xliff:g> सह देय देण्यासाठी पुन्हा टॅप करा"</string>
@@ -34,7 +34,7 @@
     <string name="pay_with" msgid="5531545488795798945">"यासह देय द्या"</string>
     <string name="complete_with" msgid="6797459104103012992">"यासह पूर्ण करा"</string>
     <string name="default_pay_app_removed" msgid="4108250545457437360">"टॅप आणि पे साठीची आपली अग्रमानांकित सेवा काढली. दुसरी निवडायची?"</string>
-    <string name="ask_nfc_tap" msgid="2925239870458286340">"पूर्ण करण्यासाठी दुसरे डीव्हाइस टॅप करा"</string>
+    <string name="ask_nfc_tap" msgid="2925239870458286340">"पूर्ण करण्यासाठी दुसरे डिव्हाइस टॅप करा"</string>
     <string name="wifi_connect" msgid="6250727951843550671">"कनेक्ट करा"</string>
     <string name="status_unable_to_connect" msgid="9183908200295307657">"नेटवर्कशी कनेक्‍ट करण्‍यात अक्षम"</string>
     <string name="status_wifi_connected" msgid="5893022897732105739">"कनेक्ट केले"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index db1a5fd..a0e61e3 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -11,7 +11,7 @@
     <string name="beam_failed" msgid="5116241718189888630">"ਬੀਮ ਪੂਰਾ ਨਹੀਂ ਕੀਤਾ"</string>
     <string name="beam_canceled" msgid="5425192751826544741">"ਬੀਮ ਰੱਦ ਕੀਤਾ"</string>
     <string name="cancel" msgid="61873902552555096">"ਰੱਦ ਕਰੋ"</string>
-    <string name="beam_tap_to_view" msgid="7430394753262448349">"ਵੇਖਣ ਲਈ ਟੈਪ ਕਰੋ"</string>
+    <string name="beam_tap_to_view" msgid="7430394753262448349">"ਦੇਖਣ ਲਈ ਟੈਪ ਕਰੋ"</string>
     <string name="beam_handover_not_supported" msgid="4083165921751489015">"ਪ੍ਰਾਪਤਕਰਤਾ ਦਾ ਡੀਵਾਈਸ ਬੀਮ ਰਾਹੀਂ ਵੱਡੀ ਫ਼ਾਈਲ ਟ੍ਰਾਂਸਫਰ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ।"</string>
     <string name="beam_try_again" msgid="3364677301009783455">"ਡਿਵਾਈਸਾਂ ਨੂੰ ਦੁਬਾਰਾ ਇਕੱਠੇ ਨਾਲ ਲਿਆਓ"</string>
     <string name="beam_busy" msgid="5253335587620612576">"ਬੀਮ ਇਸ ਵੇਲੇ ਰੁੱਝਾ ਹੋਇਆ ਹੈ। ਜਦੋਂ ਪਿਛਲਾ ਟ੍ਰਾਂਸਫਰ ਪੂਰਾ ਹੋ ਜਾਏ ਤਾਂ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
diff --git a/res/values/config.xml b/res/values/config.xml
index 7a4803e..c6654dd 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
     <string name="bluetooth_package" translatable="false">com.android.bluetooth</string>
+    <bool name="enable_nfc_url_open_dialog">false</bool>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 34faf5b..9d812d9 100755
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -84,4 +84,13 @@
     <!-- Message shown in a toast when user wants to Beam a file, but application doesn't have required permission -->
     <string name="beam_requires_external_storage_permission">Application does not have External Storage Permission. This is required to Beam this file</string>
 
+    <!-- Strings for a dialog informing the user a URL was read from an NFC tag, and allowing confirmation that they want to open it -->
+    <!-- Title of the dialog -->
+    <string name="title_confirm_url_open">Open link?</string>
+    <!-- Summary text appearing before the URL -->
+    <string name="summary_confirm_url_open" product="tablet">Your tablet received a link through NFC:</string>
+    <string name="summary_confirm_url_open" product="default">Your phone received a link through NFC:</string>
+    <!-- Label for the button which causes the URL to be opened -->
+    <string name="action_confirm_url_open">Open link</string>
+
 </resources>
diff --git a/src/com/android/nfc/NfcDispatcher.java b/src/com/android/nfc/NfcDispatcher.java
index 0f921f1..934baf7 100644
--- a/src/com/android/nfc/NfcDispatcher.java
+++ b/src/com/android/nfc/NfcDispatcher.java
@@ -16,6 +16,7 @@
 
 package com.android.nfc;
 
+import android.Manifest;
 import android.app.ActivityManager;
 import android.bluetooth.BluetoothAdapter;
 import android.os.UserManager;
@@ -26,12 +27,14 @@
 
 import android.app.Activity;
 import android.app.ActivityManager;
+import android.app.AlertDialog;
 import android.app.IActivityManager;
 import android.app.PendingIntent;
 import android.app.PendingIntent.CanceledException;
 import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.pm.PackageManager;
@@ -48,6 +51,10 @@
 import android.os.RemoteException;
 import android.os.UserHandle;
 import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.WindowManager;
+import android.widget.TextView;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -56,6 +63,7 @@
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Locale;
 
 /**
  * Dispatch of NFC events to start activities
@@ -198,6 +206,14 @@
             return intent;
         }
 
+        public boolean isWebIntent() {
+            return ndefUri != null && ndefUri.normalizeScheme().getScheme().startsWith("http");
+        }
+
+        public String getUri() {
+            return ndefUri.toString();
+        }
+
         /**
          * Launch the activity via a (single) NFC root task, so that it
          * creates a new task stack instead of interfering with any existing
@@ -536,6 +552,13 @@
 
         // regular launch
         dispatch.intent.setPackage(null);
+
+        if (dispatch.isWebIntent()) {
+            if (DBG) Log.i(TAG, "matched Web link - prompting user");
+            showWebLinkConfirmation(dispatch);
+            return true;
+        }
+
         if (dispatch.tryStartActivity()) {
             if (DBG) Log.i(TAG, "matched NDEF");
             return true;
@@ -706,6 +729,33 @@
         return enabled;
     }
 
+    void showWebLinkConfirmation(DispatchInfo dispatch) {
+        if (!mContext.getResources().getBoolean(R.bool.enable_nfc_url_open_dialog)) {
+            dispatch.tryStartActivity();
+            return;
+        }
+        AlertDialog.Builder builder = new AlertDialog.Builder(
+                mContext.getApplicationContext(),
+                android.R.style.Theme_DeviceDefault_Light_Dialog_Alert);
+        builder.setTitle(R.string.title_confirm_url_open);
+        LayoutInflater inflater = LayoutInflater.from(mContext);
+        View view = inflater.inflate(R.layout.url_open_confirmation, null);
+        if (view != null) {
+            TextView url = view.findViewById(R.id.url_open_confirmation_link);
+            if (url != null) {
+                url.setText(dispatch.getUri());
+            }
+            builder.setView(view);
+        }
+        builder.setNegativeButton(R.string.cancel, (dialog, which) -> {});
+        builder.setPositiveButton(R.string.action_confirm_url_open, (dialog, which) -> {
+            dispatch.tryStartActivity();
+        });
+        AlertDialog dialog = builder.create();
+        dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
+        dialog.show();
+    }
+
     void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
         synchronized (this) {
             pw.println("mOverrideIntent=" + mOverrideIntent);
