New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 520391 link

Starred by 64 users

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature

Blocked on:
issue 525738
issue 640892


Show other hotlists

Hotlists containing this issue:
NFC


Sign in to add a comment

Support for Web NFC.

Project Member Reported by rijubrat...@intel.com, Aug 13 2015

Issue description

Change description:

This feature gives developers the ability to access Near Field Communication (NFC) functionality of a device, such as reading and writing NFC tags as well as exchanging data between NFC capable devices. 


Changes to API surface:
Web NFC API[1] is added and could be accessed through navigator.nfc object.

Examples:

// Pushes message to passive NFC tag or active NFC device (e.g., mobile device)
navigator.nfc.push("Hello NFC!").then(() => { console.log("Completed"); });

// Watches for NFC tags / active devices in proximity.
navigator.nfc.watch(message => { console.log("Message: " + JSON.stringify(message)); });

Links:
[1] http://w3c.github.io/web-nfc/ 

Support in other browsers:
Internet Explorer: No
Firefox:  No
Safari:  No


 

Comment 1 by rbyers@chromium.org, Aug 13 2015

Have any patches landed for this yet?  If/when there are other bugs tracking implementation then this bug should be marked as blocked on those.

Comment 2 by rbyers@chromium.org, Aug 13 2015

Owner: kenneth....@intel.com
Assigning to Kenneth (spec editor) since the engineers working on this don't appear to have chromium bug tracker accounts (I can get that fixed once a couple patches have landed - feel free to e-mail me privately).
Project Member

Comment 3 by bugdroid1@chromium.org, Aug 21 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=200966

------------------------------------------------------------------
r200966 | rijubrata.bhaumik@intel.com | 2015-08-21T05:59:24.609186Z

Changed paths:
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/nfc/NFC.h?r1=200966&r2=200965&pathrev=200966
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/nfc/NFC.idl?r1=200966&r2=200965&pathrev=200966
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/nfc/OWNERS?r1=200966&r2=200965&pathrev=200966
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/nfc?r1=200966&r2=200965&pathrev=200966
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/nfc/idl-NavigatorNFC.html?r1=200966&r2=200965&pathrev=200966
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/nfc/NavigatorNFC.cpp?r1=200966&r2=200965&pathrev=200966
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/nfc/idl-NFC.html?r1=200966&r2=200965&pathrev=200966
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/nfc/NFC.cpp?r1=200966&r2=200965&pathrev=200966
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/nfc/NavigatorNFC.h?r1=200966&r2=200965&pathrev=200966
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/nfc?r1=200966&r2=200965&pathrev=200966
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/nfc/NavigatorNFC.idl?r1=200966&r2=200965&pathrev=200966
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/RuntimeEnabledFeatures.in?r1=200966&r2=200965&pathrev=200966
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-expected.txt?r1=200966&r2=200965&pathrev=200966
   M http://src.chromium.org/viewvc/blink/trunk/Source/modules/modules.gypi?r1=200966&r2=200965&pathrev=200966

[webnfc]: Step 1: Add NavigatorNfc, Nfc and Layout tests.

Add IDL for Navigator.Nfc and Nfc. Add the supporting .h|cpp files.
Add simple Layout tests.
Add nfc in webexposed layout test.

Intent to Implement:
https://mail.google.com/mail/u/1/#label/blink-dev/14f261c80935592e

BUG=520391

Review URL: https://codereview.chromium.org/1291663004
-----------------------------------------------------------------

Comment 4 by owe...@chromium.org, Aug 27 2015

Blockedon: chromium:525738
Cc: rbyers@chromium.org
This is great to see starting!

As NFC has some security implications we will need to make sure it is reviewed by Chrome's security and privacy teams before being enabled by default in Chrome - I have created an issue (http://crbug.com/525738) to track these process aspects, but unfortunately this is only visible to Googlers so I will duplicate content and pass any questions over to this bug.

For a bit of context, I'm a PM working on the relevant area inside Chrome and will lend a hand on these process aspects. Feel free to email me directly if you have any questions or want to chat, I want us to make this as easy as possible.

The main point is that you should ensure this feature is only available behind a flag until we have confirmed that the security and privacy teams have LGTMd.

Comment 5 by owe...@chromium.org, Aug 27 2015

Cc: jyasskin@chromium.org nparker@chromium.org
cc jyasskin and nparker, engineers on the Chrome team who have offered to be additional points of contact. Feel free to contact any of us if we can help with anything.
Project Member

Comment 6 by bugdroid1@chromium.org, Sep 23 2015

Labels: merge-merged-2490
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3701a07848c53d9a5f1d9ec06f6390fac312d56c

commit 3701a07848c53d9a5f1d9ec06f6390fac312d56c
Author: rijubrata.bhaumik@intel.com <rijubrata.bhaumik@intel.com>
Date: Fri Aug 21 05:59:24 2015

[webnfc]: Step 1: Add NavigatorNfc, Nfc and Layout tests.

Add IDL for Navigator.Nfc and Nfc. Add the supporting .h|cpp files.
Add simple Layout tests.
Add nfc in webexposed layout test.

Intent to Implement:
https://mail.google.com/mail/u/1/#label/blink-dev/14f261c80935592e

BUG=520391

Review URL: https://codereview.chromium.org/1291663004

git-svn-id: svn://svn.chromium.org/blink/trunk@200966 bbb929c8-8fbe-4397-9dbb-9b2b20218538

[add] http://crrev.com/3701a07848c53d9a5f1d9ec06f6390fac312d56c/third_party/WebKit/LayoutTests/nfc/idl-NFC.html
[add] http://crrev.com/3701a07848c53d9a5f1d9ec06f6390fac312d56c/third_party/WebKit/LayoutTests/nfc/idl-NavigatorNFC.html
[modify] http://crrev.com/3701a07848c53d9a5f1d9ec06f6390fac312d56c/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] http://crrev.com/3701a07848c53d9a5f1d9ec06f6390fac312d56c/third_party/WebKit/Source/modules/modules.gypi
[add] http://crrev.com/3701a07848c53d9a5f1d9ec06f6390fac312d56c/third_party/WebKit/Source/modules/nfc/NFC.cpp
[add] http://crrev.com/3701a07848c53d9a5f1d9ec06f6390fac312d56c/third_party/WebKit/Source/modules/nfc/NFC.h
[add] http://crrev.com/3701a07848c53d9a5f1d9ec06f6390fac312d56c/third_party/WebKit/Source/modules/nfc/NFC.idl
[add] http://crrev.com/3701a07848c53d9a5f1d9ec06f6390fac312d56c/third_party/WebKit/Source/modules/nfc/NavigatorNFC.cpp
[add] http://crrev.com/3701a07848c53d9a5f1d9ec06f6390fac312d56c/third_party/WebKit/Source/modules/nfc/NavigatorNFC.h
[add] http://crrev.com/3701a07848c53d9a5f1d9ec06f6390fac312d56c/third_party/WebKit/Source/modules/nfc/NavigatorNFC.idl
[add] http://crrev.com/3701a07848c53d9a5f1d9ec06f6390fac312d56c/third_party/WebKit/Source/modules/nfc/OWNERS
[modify] http://crrev.com/3701a07848c53d9a5f1d9ec06f6390fac312d56c/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in

Labels: Hotlist-Recharge
This issue likely requires triage.  The current issue owner maybe inactive (i.e. hasn't fixed an issue in the last 30 days).  Thanks for helping out!

-Anthony
Project Member

Comment 9 by bugdroid1@chromium.org, Oct 13 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/47f74ffa7fb97338cab582aeffab45d817ea10b6

commit 47f74ffa7fb97338cab582aeffab45d817ea10b6
Author: rijubrata.bhaumik <rijubrata.bhaumik@intel.com>
Date: Tue Oct 13 11:04:31 2015

[webnfc] Step 2.

Add NFCPushOptions
Add NFCRecord
Add NFCWatchOptions

enum NFCPushTarget {"tag", "peer"};

dictionary NFCPushOptions {
  NFCPushTarget target;
  unsigned long timeout;
};

enum NFCRecordType { "empty", "text", "url", "json", "opaque" };

dictionary NFCRecord {
  NFCRecordType kind;
  USVString type;
  any data;
};

dictionary NFCWatchOptions {
  USVString    url = "";
  USVString    kind = "";
  USVString    type = "";
  NFCWatchMode mode = "web-nfc-only";
};

enum NFCWatchMode {"web-nfc-only", "any"};

BUG=520391

Review URL: https://codereview.chromium.org/1375483002

Cr-Commit-Position: refs/heads/master@{#353717}

[modify] http://crrev.com/47f74ffa7fb97338cab582aeffab45d817ea10b6/third_party/WebKit/Source/modules/modules.gypi
[add] http://crrev.com/47f74ffa7fb97338cab582aeffab45d817ea10b6/third_party/WebKit/Source/modules/nfc/NFCPushOptions.idl
[add] http://crrev.com/47f74ffa7fb97338cab582aeffab45d817ea10b6/third_party/WebKit/Source/modules/nfc/NFCRecord.idl
[add] http://crrev.com/47f74ffa7fb97338cab582aeffab45d817ea10b6/third_party/WebKit/Source/modules/nfc/NFCWatchOptions.idl

Project Member

Comment 10 by bugdroid1@chromium.org, Oct 13 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/afc79861e426b234bab879188748c0eca3b82bc5

commit afc79861e426b234bab879188748c0eca3b82bc5
Author: rijubrata.bhaumik <rijubrata.bhaumik@intel.com>
Date: Tue Oct 13 18:19:03 2015

[webnfc] : Dictionaries in IDL are not Web exposed, so remove RuntimeEnabled= .

Remove the RuntimeEnabled=WebNFC from IDL files containing dictionaries,
as they are not Web exposed, so no need for RuntimeEnabled= on them.

Remove some comments which make code more convoluted.
Add some more information about the blink IDL compiler bug,
because of which we have to use "any" for now.

BUG=520391

Review URL: https://codereview.chromium.org/1403933003

Cr-Commit-Position: refs/heads/master@{#353792}

[modify] http://crrev.com/afc79861e426b234bab879188748c0eca3b82bc5/third_party/WebKit/Source/modules/nfc/NFCPushOptions.idl
[modify] http://crrev.com/afc79861e426b234bab879188748c0eca3b82bc5/third_party/WebKit/Source/modules/nfc/NFCRecord.idl

Project Member

Comment 11 by bugdroid1@chromium.org, Nov 13 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e2cea06427fc1904111f7a0dc28d1f052d9f52a5

commit e2cea06427fc1904111f7a0dc28d1f052d9f52a5
Author: alexander.shalamov <alexander.shalamov@intel.com>
Date: Fri Nov 13 10:43:22 2015

[webnfc] NFC is not required to be ActiveDOMObject.

NFC object is a member of NavigatorNFC that is supplement for Navigator.
Therefore, NFC object will be alive as long as Navigator object exists.
Because of that, inheritance from ActiveDOMObject is not required.

PageLifeCycleObserer is used to fullfill visibility use-case.
https://w3c.github.io/web-nfc/#handling-window-visibility-and-focus

BUG=520391

Review URL: https://codereview.chromium.org/1439063002

Cr-Commit-Position: refs/heads/master@{#359531}

[modify] http://crrev.com/e2cea06427fc1904111f7a0dc28d1f052d9f52a5/AUTHORS
[modify] http://crrev.com/e2cea06427fc1904111f7a0dc28d1f052d9f52a5/third_party/WebKit/Source/modules/nfc/NFC.cpp
[modify] http://crrev.com/e2cea06427fc1904111f7a0dc28d1f052d9f52a5/third_party/WebKit/Source/modules/nfc/NFC.h
[modify] http://crrev.com/e2cea06427fc1904111f7a0dc28d1f052d9f52a5/third_party/WebKit/Source/modules/nfc/NFC.idl
[modify] http://crrev.com/e2cea06427fc1904111f7a0dc28d1f052d9f52a5/third_party/WebKit/Source/modules/nfc/NavigatorNFC.cpp
[modify] http://crrev.com/e2cea06427fc1904111f7a0dc28d1f052d9f52a5/third_party/WebKit/Source/modules/nfc/NavigatorNFC.h
[modify] http://crrev.com/e2cea06427fc1904111f7a0dc28d1f052d9f52a5/third_party/WebKit/Source/modules/nfc/NavigatorNFC.idl

Project Member

Comment 12 by bugdroid1@chromium.org, Nov 13 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6f231d3c705d47b0d6102d86c1f4d408efa0647

commit e6f231d3c705d47b0d6102d86c1f4d408efa0647
Author: sigbjornf <sigbjornf@opera.com>
Date: Fri Nov 13 12:47:21 2015

Oilpan: fix build after r359531.

~ScriptWrappable is only provided !OILPAN.

R=haraken
BUG=520391
NOTRY=true
NOPRESUBMIT=true
NOTREECHECKS=true

Review URL: https://codereview.chromium.org/1441303002

Cr-Commit-Position: refs/heads/master@{#359533}

[modify] http://crrev.com/e6f231d3c705d47b0d6102d86c1f4d408efa0647/third_party/WebKit/Source/modules/nfc/NFC.h

Project Member

Comment 13 by bugdroid1@chromium.org, Nov 23 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a59c14f4aededac3580756cec407d587f3d4351b

commit a59c14f4aededac3580756cec407d587f3d4351b
Author: alexander.shalamov <alexander.shalamov@intel.com>
Date: Mon Nov 23 11:05:24 2015

[webnfc] Align NFC interface with latest specification.

Based on review feedback, WebNFC specification was modified
and requestAdapter() method was removed from NFC interface.
Methods from NFCAdapter were moved to NFC interface.
This patch adds new methods to NFC interface and aligns
corresponding idl files with latest specification.

https://w3c.github.io/web-nfc/#dom-nfc-push
https://w3c.github.io/web-nfc/#dom-nfc-cancelpush
https://w3c.github.io/web-nfc/#dom-nfc-watch
https://w3c.github.io/web-nfc/#dom-nfc-cancelwatch

BUG=520391

Review URL: https://codereview.chromium.org/1444303002

Cr-Commit-Position: refs/heads/master@{#361085}

[modify] http://crrev.com/a59c14f4aededac3580756cec407d587f3d4351b/third_party/WebKit/LayoutTests/nfc/idl-NFC.html
[modify] http://crrev.com/a59c14f4aededac3580756cec407d587f3d4351b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] http://crrev.com/a59c14f4aededac3580756cec407d587f3d4351b/third_party/WebKit/Source/modules/modules.gypi
[add] http://crrev.com/a59c14f4aededac3580756cec407d587f3d4351b/third_party/WebKit/Source/modules/nfc/MessageCallback.h
[add] http://crrev.com/a59c14f4aededac3580756cec407d587f3d4351b/third_party/WebKit/Source/modules/nfc/MessageCallback.idl
[modify] http://crrev.com/a59c14f4aededac3580756cec407d587f3d4351b/third_party/WebKit/Source/modules/nfc/NFC.cpp
[modify] http://crrev.com/a59c14f4aededac3580756cec407d587f3d4351b/third_party/WebKit/Source/modules/nfc/NFC.h
[modify] http://crrev.com/a59c14f4aededac3580756cec407d587f3d4351b/third_party/WebKit/Source/modules/nfc/NFC.idl
[add] http://crrev.com/a59c14f4aededac3580756cec407d587f3d4351b/third_party/WebKit/Source/modules/nfc/NFCMessage.idl
[modify] http://crrev.com/a59c14f4aededac3580756cec407d587f3d4351b/third_party/WebKit/Source/modules/nfc/NFCPushOptions.idl
[modify] http://crrev.com/a59c14f4aededac3580756cec407d587f3d4351b/third_party/WebKit/Source/modules/nfc/NFCRecord.idl
[modify] http://crrev.com/a59c14f4aededac3580756cec407d587f3d4351b/third_party/WebKit/Source/modules/nfc/NFCWatchOptions.idl

Project Member

Comment 14 by bugdroid1@chromium.org, Dec 7 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3e3f71c7c789109fa49aa9818620551025ddfed1

commit 3e3f71c7c789109fa49aa9818620551025ddfed1
Author: alexander.shalamov <alexander.shalamov@intel.com>
Date: Mon Dec 07 12:04:37 2015

[webnfc] Introduce NFC mojo service.

This patch adds NFC mojo service interface definition
that will be used to implement functionality required
by the W3C WebNFC module.

BUG=520391

Review URL: https://codereview.chromium.org/1486033002

Cr-Commit-Position: refs/heads/master@{#363455}

[modify] http://crrev.com/3e3f71c7c789109fa49aa9818620551025ddfed1/device/nfc/BUILD.gn
[modify] http://crrev.com/3e3f71c7c789109fa49aa9818620551025ddfed1/device/nfc/nfc.gyp
[add] http://crrev.com/3e3f71c7c789109fa49aa9818620551025ddfed1/device/nfc/nfc.mojom

Project Member

Comment 15 by bugdroid1@chromium.org, Dec 7 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7fe6f67a165a2b5a5c1a574add1af61f4a70b25f

commit 7fe6f67a165a2b5a5c1a574add1af61f4a70b25f
Author: alexander.shalamov <alexander.shalamov@intel.com>
Date: Mon Dec 07 13:22:10 2015

[webnfc] Add public interfaces.

Add public interfaces for embedder.
WebNFCClient.h
WebNFCError.h
WebNFCMessage.h
WebNFCObserver.h
WebNFCPushOptions.h
WebNFCPushTarget.h
WebNFCWatchOptions.h

BUG=520391

Review URL: https://codereview.chromium.org/1481763005

Cr-Commit-Position: refs/heads/master@{#363465}

[modify] http://crrev.com/7fe6f67a165a2b5a5c1a574add1af61f4a70b25f/third_party/WebKit/public/blink_headers.gypi
[add] http://crrev.com/7fe6f67a165a2b5a5c1a574add1af61f4a70b25f/third_party/WebKit/public/platform/modules/nfc/OWNERS
[add] http://crrev.com/7fe6f67a165a2b5a5c1a574add1af61f4a70b25f/third_party/WebKit/public/platform/modules/nfc/WebNFCClient.h
[add] http://crrev.com/7fe6f67a165a2b5a5c1a574add1af61f4a70b25f/third_party/WebKit/public/platform/modules/nfc/WebNFCError.h
[add] http://crrev.com/7fe6f67a165a2b5a5c1a574add1af61f4a70b25f/third_party/WebKit/public/platform/modules/nfc/WebNFCMessage.h
[add] http://crrev.com/7fe6f67a165a2b5a5c1a574add1af61f4a70b25f/third_party/WebKit/public/platform/modules/nfc/WebNFCObserver.h
[add] http://crrev.com/7fe6f67a165a2b5a5c1a574add1af61f4a70b25f/third_party/WebKit/public/platform/modules/nfc/WebNFCPushOptions.h
[add] http://crrev.com/7fe6f67a165a2b5a5c1a574add1af61f4a70b25f/third_party/WebKit/public/platform/modules/nfc/WebNFCPushTarget.h
[add] http://crrev.com/7fe6f67a165a2b5a5c1a574add1af61f4a70b25f/third_party/WebKit/public/platform/modules/nfc/WebNFCWatchOptions.h

Project Member

Comment 16 by bugdroid1@chromium.org, Jun 8 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5058e32db5582978f60a28bc0ccbeed0a7421283

commit 5058e32db5582978f60a28bc0ccbeed0a7421283
Author: alexander.shalamov <alexander.shalamov@intel.com>
Date: Wed Jun 08 13:44:08 2016

[webnfc] Implement push() method in blink nfc module.

This patch implements nfc.push() and nfc.cancelPush() methods in nfc module.

https://w3c.github.io/web-nfc/#dom-nfc-push
https://w3c.github.io/web-nfc/#dom-nfc-cancelpush

Mock mojo service and simple layout test is added to validate input parameters
as well as conversion between WebNFC and corresponding mojo data structures.

BUG=520391

Review-Url: https://codereview.chromium.org/1708543002
Cr-Commit-Position: refs/heads/master@{#398538}

[modify] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/content/content_tests.gypi
[modify] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/content/test/BUILD.gn
[modify] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/device/nfc/nfc.gyp
[modify] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/device/nfc/nfc.mojom
[add] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/third_party/WebKit/LayoutTests/nfc/mock-nfc.html
[add] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/third_party/WebKit/LayoutTests/nfc/push.html
[add] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/third_party/WebKit/LayoutTests/nfc/resources/nfc-helpers.js
[modify] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/third_party/WebKit/Source/modules/BUILD.gn
[modify] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/third_party/WebKit/Source/modules/modules.gyp
[modify] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/third_party/WebKit/Source/modules/modules.gypi
[add] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/third_party/WebKit/Source/modules/nfc/DEPS
[modify] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/third_party/WebKit/Source/modules/nfc/NFC.cpp
[modify] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/third_party/WebKit/Source/modules/nfc/NFC.h
[add] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/third_party/WebKit/Source/modules/nfc/NFCError.cpp
[add] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/third_party/WebKit/Source/modules/nfc/NFCError.h
[modify] https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283/third_party/WebKit/public/blink_headers.gypi
[delete] https://crrev.com/a8f64cb037cd9b5c9eda8419d6ab778662702a6e/third_party/WebKit/public/platform/modules/nfc/OWNERS
[delete] https://crrev.com/a8f64cb037cd9b5c9eda8419d6ab778662702a6e/third_party/WebKit/public/platform/modules/nfc/WebNFCClient.h
[delete] https://crrev.com/a8f64cb037cd9b5c9eda8419d6ab778662702a6e/third_party/WebKit/public/platform/modules/nfc/WebNFCError.h
[delete] https://crrev.com/a8f64cb037cd9b5c9eda8419d6ab778662702a6e/third_party/WebKit/public/platform/modules/nfc/WebNFCMessage.h
[delete] https://crrev.com/a8f64cb037cd9b5c9eda8419d6ab778662702a6e/third_party/WebKit/public/platform/modules/nfc/WebNFCObserver.h
[delete] https://crrev.com/a8f64cb037cd9b5c9eda8419d6ab778662702a6e/third_party/WebKit/public/platform/modules/nfc/WebNFCPushOptions.h
[delete] https://crrev.com/a8f64cb037cd9b5c9eda8419d6ab778662702a6e/third_party/WebKit/public/platform/modules/nfc/WebNFCPushTarget.h
[delete] https://crrev.com/a8f64cb037cd9b5c9eda8419d6ab778662702a6e/third_party/WebKit/public/platform/modules/nfc/WebNFCWatchOptions.h

Project Member

Comment 17 by bugdroid1@chromium.org, Jun 8 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8

commit e8253395b514c1187f4615f3bcfc31b7b5d8b6b8
Author: xidachen <xidachen@chromium.org>
Date: Wed Jun 08 14:39:57 2016

Revert of [webnfc] Implement push() method in blink nfc module. (patchset #17 id:380001 of https://codereview.chromium.org/1708543002/ )

Reason for revert:
The tests:
nfc/mock-nfc.html
nfc/push.html

added by this CL timed out on these two bots:
https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux/builds/65781

https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.10/builds/18764

Original issue's description:
> [webnfc] Implement push() method in blink nfc module.
>
> This patch implements nfc.push() and nfc.cancelPush() methods in nfc module.
>
> https://w3c.github.io/web-nfc/#dom-nfc-push
> https://w3c.github.io/web-nfc/#dom-nfc-cancelpush
>
> Mock mojo service and simple layout test is added to validate input parameters
> as well as conversion between WebNFC and corresponding mojo data structures.
>
> BUG=520391
>
> Committed: https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283
> Cr-Commit-Position: refs/heads/master@{#398538}

TBR=jochen@chromium.org,kenneth.christiansen@gmail.com,mikhail.pozdnyakov@intel.com,mlamouri@chromium.org,nick@chromium.org,reillyg@chromium.org,rijubrata.bhaumik@intel.com,rockot@chromium.org,tsepez@chromium.org,alexander.shalamov@intel.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=520391

Review-Url: https://codereview.chromium.org/2052473002
Cr-Commit-Position: refs/heads/master@{#398548}

[modify] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/content/content_tests.gypi
[modify] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/content/test/BUILD.gn
[modify] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/device/nfc/nfc.gyp
[modify] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/device/nfc/nfc.mojom
[delete] https://crrev.com/b543c2dcaa099f117d2ae56867ed37a05f8807a1/third_party/WebKit/LayoutTests/nfc/mock-nfc.html
[delete] https://crrev.com/b543c2dcaa099f117d2ae56867ed37a05f8807a1/third_party/WebKit/LayoutTests/nfc/push.html
[delete] https://crrev.com/b543c2dcaa099f117d2ae56867ed37a05f8807a1/third_party/WebKit/LayoutTests/nfc/resources/nfc-helpers.js
[modify] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/third_party/WebKit/Source/modules/BUILD.gn
[modify] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/third_party/WebKit/Source/modules/modules.gyp
[modify] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/third_party/WebKit/Source/modules/modules.gypi
[delete] https://crrev.com/b543c2dcaa099f117d2ae56867ed37a05f8807a1/third_party/WebKit/Source/modules/nfc/DEPS
[modify] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/third_party/WebKit/Source/modules/nfc/NFC.cpp
[modify] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/third_party/WebKit/Source/modules/nfc/NFC.h
[delete] https://crrev.com/b543c2dcaa099f117d2ae56867ed37a05f8807a1/third_party/WebKit/Source/modules/nfc/NFCError.cpp
[delete] https://crrev.com/b543c2dcaa099f117d2ae56867ed37a05f8807a1/third_party/WebKit/Source/modules/nfc/NFCError.h
[modify] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/third_party/WebKit/public/blink_headers.gypi
[add] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/third_party/WebKit/public/platform/modules/nfc/OWNERS
[add] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/third_party/WebKit/public/platform/modules/nfc/WebNFCClient.h
[add] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/third_party/WebKit/public/platform/modules/nfc/WebNFCError.h
[add] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/third_party/WebKit/public/platform/modules/nfc/WebNFCMessage.h
[add] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/third_party/WebKit/public/platform/modules/nfc/WebNFCObserver.h
[add] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/third_party/WebKit/public/platform/modules/nfc/WebNFCPushOptions.h
[add] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/third_party/WebKit/public/platform/modules/nfc/WebNFCPushTarget.h
[add] https://crrev.com/e8253395b514c1187f4615f3bcfc31b7b5d8b6b8/third_party/WebKit/public/platform/modules/nfc/WebNFCWatchOptions.h

This is the error message that probably caused the timeout:

07:21:56.080 20335   [4:4:0608/072150:987999322:ERROR:mojo_context_state.cc(183)] Failed to fetch source for module "device/nfc/nfc.mojom"
Project Member

Comment 19 by bugdroid1@chromium.org, Jun 10 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5c52ef129e520de01aa36728a4b0529b31e8467b

commit 5c52ef129e520de01aa36728a4b0529b31e8467b
Author: alexander.shalamov <alexander.shalamov@intel.com>
Date: Fri Jun 10 09:02:55 2016

[webnfc] Implement push() method in blink nfc module.

This patch implements nfc.push() and nfc.cancelPush() methods in nfc module.

https://w3c.github.io/web-nfc/#dom-nfc-push
https://w3c.github.io/web-nfc/#dom-nfc-cancelpush

Mock mojo service and simple layout test is added to validate input parameters
as well as conversion between WebNFC and corresponding mojo data structures.

BUG=520391

Committed: https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283
Review-Url: https://codereview.chromium.org/1708543002
Cr-Original-Commit-Position: refs/heads/master@{#398538}
Cr-Commit-Position: refs/heads/master@{#399139}

[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/content/content_tests.gypi
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/content/test/BUILD.gn
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/device/nfc/nfc.gyp
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/device/nfc/nfc.mojom
[add] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/LayoutTests/nfc/mock-nfc.html
[add] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/LayoutTests/nfc/push.html
[add] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/LayoutTests/nfc/resources/nfc-helpers.js
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/BUILD.gn
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/modules.gyp
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/modules.gypi
[add] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/nfc/DEPS
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/nfc/NFC.cpp
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/nfc/NFC.h
[add] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/nfc/NFCError.cpp
[add] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/nfc/NFCError.h
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/public/blink_headers.gypi
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/OWNERS
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/WebNFCClient.h
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/WebNFCError.h
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/WebNFCMessage.h
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/WebNFCObserver.h
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/WebNFCPushOptions.h
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/WebNFCPushTarget.h
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/WebNFCWatchOptions.h

Project Member

Comment 20 by bugdroid1@chromium.org, Jun 15 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5c52ef129e520de01aa36728a4b0529b31e8467b

commit 5c52ef129e520de01aa36728a4b0529b31e8467b
Author: alexander.shalamov <alexander.shalamov@intel.com>
Date: Fri Jun 10 09:02:55 2016

[webnfc] Implement push() method in blink nfc module.

This patch implements nfc.push() and nfc.cancelPush() methods in nfc module.

https://w3c.github.io/web-nfc/#dom-nfc-push
https://w3c.github.io/web-nfc/#dom-nfc-cancelpush

Mock mojo service and simple layout test is added to validate input parameters
as well as conversion between WebNFC and corresponding mojo data structures.

BUG=520391

Committed: https://crrev.com/5058e32db5582978f60a28bc0ccbeed0a7421283
Review-Url: https://codereview.chromium.org/1708543002
Cr-Original-Commit-Position: refs/heads/master@{#398538}
Cr-Commit-Position: refs/heads/master@{#399139}

[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/content/content_tests.gypi
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/content/test/BUILD.gn
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/device/nfc/nfc.gyp
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/device/nfc/nfc.mojom
[add] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/LayoutTests/nfc/mock-nfc.html
[add] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/LayoutTests/nfc/push.html
[add] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/LayoutTests/nfc/resources/nfc-helpers.js
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/BUILD.gn
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/modules.gyp
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/modules.gypi
[add] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/nfc/DEPS
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/nfc/NFC.cpp
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/nfc/NFC.h
[add] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/nfc/NFCError.cpp
[add] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/Source/modules/nfc/NFCError.h
[modify] https://crrev.com/5c52ef129e520de01aa36728a4b0529b31e8467b/third_party/WebKit/public/blink_headers.gypi
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/OWNERS
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/WebNFCClient.h
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/WebNFCError.h
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/WebNFCMessage.h
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/WebNFCObserver.h
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/WebNFCPushOptions.h
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/WebNFCPushTarget.h
[delete] https://crrev.com/87cce9c8913e03e5f2c6fa63be68ad063c8b15f5/third_party/WebKit/public/platform/modules/nfc/WebNFCWatchOptions.h

Project Member

Comment 21 by bugdroid1@chromium.org, Aug 19 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3466b6197a8071043533c7adde2b303438ff565d

commit 3466b6197a8071043533c7adde2b303438ff565d
Author: alexander.shalamov <alexander.shalamov@intel.com>
Date: Fri Aug 19 11:43:57 2016

[webnfc] Implement push method for Android nfc mojo service.

Initial implementation of Android NFC mojo service that
is used by blink nfc module. Follow-up patches will add
support for nfc.watch / nfc.cancelWatch methods.

BUG=520391
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/1486043002
Cr-Commit-Position: refs/heads/master@{#413108}

[modify] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/content/browser/mojo/interface_registrar_android.cc
[modify] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/content/browser/mojo/interface_registrar_android.h
[modify] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/content/content.gyp
[modify] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/content/public/android/BUILD.gn
[modify] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
[modify] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/content/public/android/java/src/org/chromium/content/browser/InterfaceRegistrar.java
[add] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/content/public/android/java/src/org/chromium/content/browser/WindowAndroidChangedObserver.java
[add] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/content/public/android/java/src/org/chromium/content/browser/WindowAndroidProvider.java
[add] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/device/nfc/OWNERS
[add] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/device/nfc/android/BUILD.gn
[add] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/device/nfc/android/java/src/org/chromium/device/nfc/InvalidNfcMessageException.java
[add] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/device/nfc/android/java/src/org/chromium/device/nfc/NfcImpl.java
[add] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/device/nfc/android/java/src/org/chromium/device/nfc/NfcTagHandler.java
[add] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/device/nfc/android/java/src/org/chromium/device/nfc/NfcTypeConverter.java
[add] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/device/nfc/android/java/src/org/chromium/device/nfc/OWNERS
[modify] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/device/nfc/nfc.gyp
[modify] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/device/nfc/nfc.mojom
[modify] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/third_party/WebKit/LayoutTests/nfc/resources/nfc-helpers.js
[modify] https://crrev.com/3466b6197a8071043533c7adde2b303438ff565d/third_party/WebKit/Source/modules/nfc/NFC.cpp

Comment 22 by wnwen@chromium.org, Aug 29 2016

Blockedon: 640892
Project Member

Comment 25 by bugdroid1@chromium.org, Nov 23 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b706a428c0ca98907c6ece6aa80f5ce215381acf

commit b706a428c0ca98907c6ece6aa80f5ce215381acf
Author: alexander.shalamov <alexander.shalamov@intel.com>
Date: Wed Nov 23 08:13:49 2016

[webnfc] Restrict NFC message size to 32KB

This patch limits maximum NFC message size for nfc.push() operation to
32KB. The 32KB limit is selected based on several factors: capacity of
consumer NFC tags, data transfer rate and IPC mechanism that is used by
mojo service. Layout test is modified to test that promise is rejected
for nfc.push() operation when message size exceeds 32KB.

BUG=520391

Review-Url: https://codereview.chromium.org/2524743002
Cr-Commit-Position: refs/heads/master@{#434131}

[modify] https://crrev.com/b706a428c0ca98907c6ece6aa80f5ce215381acf/device/nfc/nfc.mojom
[modify] https://crrev.com/b706a428c0ca98907c6ece6aa80f5ce215381acf/third_party/WebKit/LayoutTests/nfc/push.html
[modify] https://crrev.com/b706a428c0ca98907c6ece6aa80f5ce215381acf/third_party/WebKit/Source/modules/nfc/NFC.cpp

Project Member

Comment 27 by bugdroid1@chromium.org, Nov 30 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/55ac6a4ca3780a5c315a7014f43642e43c5245f0

commit 55ac6a4ca3780a5c315a7014f43642e43c5245f0
Author: alexander.shalamov <alexander.shalamov@intel.com>
Date: Wed Nov 30 09:04:17 2016

[webnfc] Implement watch method for Android nfc mojo service.

Implementation of nfc.watch [1] and nfc.cancelWatch [2] methods
for Android nfc mojo service that is used from W3C WebNFC module.

[1] https://w3c.github.io/web-nfc/#dom-nfc-watch
[2] https://w3c.github.io/web-nfc/#dom-nfc-cancelwatch

BUG=520391
BUG= 625589 

Review-Url: https://codereview.chromium.org/1765533004
Cr-Commit-Position: refs/heads/master@{#435189}

[modify] https://crrev.com/55ac6a4ca3780a5c315a7014f43642e43c5245f0/device/BUILD.gn
[modify] https://crrev.com/55ac6a4ca3780a5c315a7014f43642e43c5245f0/device/nfc/android/BUILD.gn
[modify] https://crrev.com/55ac6a4ca3780a5c315a7014f43642e43c5245f0/device/nfc/android/java/src/org/chromium/device/nfc/NfcImpl.java
[add] https://crrev.com/55ac6a4ca3780a5c315a7014f43642e43c5245f0/device/nfc/android/java/src/org/chromium/device/nfc/NfcMessageValidator.java
[modify] https://crrev.com/55ac6a4ca3780a5c315a7014f43642e43c5245f0/device/nfc/android/java/src/org/chromium/device/nfc/NfcTagHandler.java
[modify] https://crrev.com/55ac6a4ca3780a5c315a7014f43642e43c5245f0/device/nfc/android/java/src/org/chromium/device/nfc/NfcTypeConverter.java
[add] https://crrev.com/55ac6a4ca3780a5c315a7014f43642e43c5245f0/device/nfc/android/junit/src/org/chromium/device/nfc/NFCTest.java

Project Member

Comment 29 by bugdroid1@chromium.org, Feb 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6eef82663dd4619c7ea75db5bac1e87f37b64046

commit 6eef82663dd4619c7ea75db5bac1e87f37b64046
Author: alexander.shalamov <alexander.shalamov@intel.com>
Date: Thu Feb 02 08:45:25 2017

[webnfc] Allow access to WebNFC API only from main frame

This CL adds functionality that checks whether browsing context
is a main frame (top-level browsing context) as specified in
https://w3c.github.io/web-nfc/#security-policies

New layout test is added to verify new functionality.
- third_party/WebKit/LayoutTests/nfc/nfc-block-iframe.html

BUG=520391

Review-Url: https://codereview.chromium.org/2657023005
Cr-Commit-Position: refs/heads/master@{#447729}

[add] https://crrev.com/6eef82663dd4619c7ea75db5bac1e87f37b64046/third_party/WebKit/LayoutTests/nfc/nfc-block-iframe.html
[modify] https://crrev.com/6eef82663dd4619c7ea75db5bac1e87f37b64046/third_party/WebKit/LayoutTests/nfc/resources/nfc-helpers.js
[add] https://crrev.com/6eef82663dd4619c7ea75db5bac1e87f37b64046/third_party/WebKit/LayoutTests/nfc/resources/push-from-iframe.html
[modify] https://crrev.com/6eef82663dd4619c7ea75db5bac1e87f37b64046/third_party/WebKit/Source/modules/nfc/NFC.cpp

Owner: alexande...@intel.com
Description: Show this description
Project Member

Comment 32 by bugdroid1@chromium.org, Apr 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/588eca456e606a5697043317e5d777fad880c6f8

commit 588eca456e606a5697043317e5d777fad880c6f8
Author: alexander.shalamov <alexander.shalamov@intel.com>
Date: Thu Apr 20 13:32:42 2017

[webnfc] Add WebNFC feature flag

This CL adds WebNFC feature flag, so that API access can be controlled
separately from other experimental web platform features. This would
enable feature control during origin-trial process.

BUG=520391

Review-Url: https://codereview.chromium.org/2830643002
Cr-Commit-Position: refs/heads/master@{#465992}

[modify] https://crrev.com/588eca456e606a5697043317e5d777fad880c6f8/chrome/browser/about_flags.cc
[modify] https://crrev.com/588eca456e606a5697043317e5d777fad880c6f8/chrome/browser/flag_descriptions.cc
[modify] https://crrev.com/588eca456e606a5697043317e5d777fad880c6f8/chrome/browser/flag_descriptions.h
[modify] https://crrev.com/588eca456e606a5697043317e5d777fad880c6f8/content/browser/android/content_feature_list.cc
[modify] https://crrev.com/588eca456e606a5697043317e5d777fad880c6f8/content/child/runtime_features.cc
[modify] https://crrev.com/588eca456e606a5697043317e5d777fad880c6f8/content/public/android/java/src/org/chromium/content/browser/ContentFeatureList.java
[modify] https://crrev.com/588eca456e606a5697043317e5d777fad880c6f8/content/public/android/java/src/org/chromium/content/browser/InterfaceRegistrarImpl.java
[modify] https://crrev.com/588eca456e606a5697043317e5d777fad880c6f8/content/public/common/content_features.cc
[modify] https://crrev.com/588eca456e606a5697043317e5d777fad880c6f8/content/public/common/content_features.h
[modify] https://crrev.com/588eca456e606a5697043317e5d777fad880c6f8/third_party/WebKit/Source/web/WebRuntimeFeatures.cpp
[modify] https://crrev.com/588eca456e606a5697043317e5d777fad880c6f8/third_party/WebKit/public/web/WebRuntimeFeatures.h
[modify] https://crrev.com/588eca456e606a5697043317e5d777fad880c6f8/tools/metrics/histograms/histograms.xml

Components: Blink>NFC
Labels: migrated-launch-owp Type-Task
This issue has been automatically relabelled type=task because type=launch-owp issues are now officially deprecated. The deprecation is because they were creating confusion about how to get launch approvals, which should be instead done via type=launch issues.

We recommend this issue be used for implementation tracking (for public visibility), but if you already have an issue for that, you may mark this as duplicate.

For more details see here: https://docs.google.com/document/d/1JA6RohjtZQc26bTrGoIE_bSXGXUDQz8vc6G0n_sZJ2o/edit

For any questions, please contact owencm, sshruthi, larforge
Components: Privacy
On Chrome 66 for Android, there is no response when WebNFC pushes a URL to another mobile device. In contrast, pushing to a passive tag works fine, and tapping this tag to a second device also works fine, so there is no problem with a passive tag as an intermediary.

What is needed to make these peer-to-peer transfers work, and is there any timeline to get this working?

Without this feature, one must use QR Codes to exchange URLs between mobile devices, which are less reliable than NFC, and more poorly supported (on Android, but not now on iOS). I can't use the Web Share API (https://developers.google.com/web/updates/2016/09/navigator-share) either, because it doesn't support the sharing of arbitrary URLs, only the URL of the current page, and requires extra prompts to select and trigger NFC transmission via Android Beam.

I know that support for peer-to-peer NFC transfers is planned:
  https://docs.google.com/document/d/1-pfde7lzZqNQXdu1JkxWBywvG_fVcrmljdPbG99oHPY/edit#heading=h.430ahftk4vy

and that some work has already been done:
  https://codereview.chromium.org/1938393003/
  
There are appararently some modifications required to the default behaviour of Chrome's intent system. I don't currently understand how this stops peer-to-peer transmissions working when a passive intermediary works fine.

Also, if peer-to-peer is to trigger Android Beam, will this mean that there would be an extra "Tap to Beam" prompt? Writing to passive tags happens unprompted, and I think this is the preferred behaviour, since any additional prompts can be implemented by the sending website.

Is there anything I can do to encourage support for this feature, possibly by getting the existing work polished and committed? I've been told that the Chrome team were looking to schedule work on this after completing work on the Generic Sensor API.

Should I create a new bug for this, or leave this comment on this master WebNFC issue?
Owner: kenneth....@intel.com
Labels: Proj-Fugu
Cc: jsb...@chromium.org
rijubrata.bhaumik, can you provide an guestimate when this work will be done? Please mark the TargetIn Milestone.
Labels: Type-Feature

Sign in to add a comment