Draft minutes: 11 November 2013

The Draft minutes from WebApps' November 11 f2f meeting [Agenda] are at 
the following and copied below:

<http://www.w3.org/2013/11/11-webapps-minutes.html>

Corrections, comments, etc., are welcome.

Thanks very much to the various scribes.

-AB

[Agenda] <http://www.w3.org/wiki/Webapps/November2013Meeting>

    [1]W3C

       [1] http://www.w3.org/

                                - DRAFT -

                     WebApps F2F Meeting @ TPAC 2013

11 Nov 2013

    [2]Agenda

       [2] http://www.w3.org/wiki/Webapps/November2013Meeting

    See also: [3]IRC log

       [3] http://www.w3.org/2013/11/11-webapps-irc

Attendees

    Present
           +1.503.264.aaaa, [IPcaller], Shenzhen, +1.503.264.aabb,
           James_Craig, Rich_Schwerdtfeger, Art_Barstow, aizu,
           Arnaud_Braud, Mete_Balci, Chaals_Nevile, Jungkee_Song,
           Bryan_Sullivan, Jonas_Sicking, Cameron_McCormack,
           Adam_Boyet, Adrian_Bateman, Daniel_Austin, Ed_OConnor,
           Elit_Graff, Gary_Kacmarcik, James_Graham, Ryosuke_Niwa,
           Travis_Leithead, Paul_cotton, Xiaoqian_Wu, Robin_Berjon,
           Takayoshi_Kochi, Kinuko_Yasuda, Anne_van_Kesteren,
           Alex_Russell, Richard_Tibbett, Mark_Nottingham,
           Dirk_Schulze, Rik_Cabanier

    Regrets
    Chair
           Art, Chaals

    Scribe
           Cameron, Travis_, Travis

Contents

      * [4]Topics
          1. [5]Agenda bashing
          2. [6]PubStatus
          3. [7]SSE status
          4. [8]Charter Status
          5. [9]IME
          6. [10]Joint Meeting with IndieUI WG
          7. [11]DOM 3 Events & UI Events
          8. [12]D3E and UI Events
          9. [13]Quota API
         10. [14]ServiceWorkers
         11. [15]Streams
         12. [16]XHR and Progress Events
         13. [17]WebIDL
         14. [18]Readonly/ writeable interfaces
      * [19]Summary of Action Items
      __________________________________________________________

    <tomoyuki> +Present Tomoyuki_Shimizu

    <tomoyuki> -Present Tomoyuki_Shimizu

    <ArtB> ScribeNick: heycam

    <ArtB> Scribe: Cameron

Agenda bashing

    chaals: we have a couple of items already fixed
    ... at 1:30 the Indie UI people will come and talk to us
    ... they sent us a new proposal
    ... they'll talk about that
    ... at 5:00pm we have a couple of things locked in
    ... there's also a pile of topics we want
    ... DOM 3 Events, File API, ....
    ... we have a couple of requests to have Streams/XHR
    discussions after lunch, not between 2 and 2:30
    ... I suggest we push them later
    ... any preferences for discussing any topics?

    shepazu: I think for people who aren't native English speakers,
    we're on IRC
    ... anyone need help getting started with that?
    ... IRC is helpful as the scribe types what everyone is saying
    ... find me and I can help you

    chaals: so Streams and XHR, between those two do we want an
    hour?
    ... half an hour each?
    ... jungkee does that sound right?

    jungkee: I also want to join Sys Apps for service worker
    introduction, which will happen this afternoon
    ... I don't really know what time that will be
    ... I'll speak to the SysApps chairs to organise a time
    ... so I'm OK with that
    ... can I talk about Progress Events at the same time?

    chaals: yes
    ... do we want to talk about URLs?
    ... next, Interop and Testing issues
    ... tomorrow afternoon

    ArtB: I can't get to the page right now; we have I think about
    6 specs that are in CR right now
    ... including Progress Events
    ... for each of those I'd like to get a sense of where we're
    going with those
    ... who's interested in helping, what are the issues
    ... that's a bit different from the block set aside for
    tomorrow afternoon
    ... jgraham agreed to split that session into the test
    framework we use, reviewing tests
    ... and the second half creating tests
    ... for today's agenda, interop and testing, I think I'd rather
    do that tomorrow morning

    chaals: we can more or less randomly distribute the rest of the
    topics
    ... unless someone has a preference
    ... so let's just put them in in the order they appear
    ... we have DOM 3 Events, File APIs, IME API, Quota API
    ... Streams/XHR we've already git
    ... and UI Events

    Travis_MSFT: I think we can probably combine the discussion on
    DOM 3 Events with UI Events
    ... so don't need separate blocks for those

    chaals: should we just do that first?
    ... first we'll go through all of our specs
    ... for a status update; then we'll deal with the specs that
    need discussion
    ... first will be DOM 3 Events & UI

    ArtB: that OK Gary?

    gary: sounds fine

    Travis_MSFT: can we do that in the afternoon? I want to attend
    WebRTC in the morning

    <paulc> Time difference between Shenzhen and Eastern Time is
    currently + 13 hours.

    sicking: if we can do it early he could call in. 11:30.

    chaals: IME at 12?

    ArtB: we need Mike Smith for that

    chaals: let's put it provisionally at 12

    gary: he's busy in the Testing thing

    ArtB: Quota API at 14:30
    ... will we do the File System API at the same time as File
    API?

    sicking: yes

    hober: Mike is fine for that time

    <shepazu> /me can people on the phone hear us?

    <wayneCarr> heard nothing before

PubStatus

    <wayneCarr> can hear now but not understand

    chaals: we'll go through each of the specs we work on

    <ArtB> [20]http://www.w3.org/2008/webapps/wiki/PubStatus

      [20] http://www.w3.org/2008/webapps/wiki/PubStatus

    chaals: the first spec is AppCache NG
    ... we have a proposal from Jonas
    ... and we have Service Workers that Alex is working on
    somewhere
    ... do we know what his plan is?

    ArtB: jungkee you said Alex was going to go through it at
    SysApps?
    ... can we get him to present here?

    jungkees: SysApps WG is working on some runtime design and
    speccing etc.
    ... and now a concept like Google's Event Page has been
    proposed at the last F2F
    ... after that, Marcos from Mozilla proposed we align our
    efforts with Service Workers
    ... since that covers basically the same requirements and use
    cases
    ... making the application offline
    ... so that's the bottom line
    ... the co-chair of SysApps invited Alex Russell to introduce
    his Service Worker work this afternoon
    ... I heard that Alex has a meeting with the TAG this morning
    ... not sure about the schedule

    chaals: we have an open session at 3pm
    ... can we do that together with Sys Apps then?

    jungkees: I think that'd be really nice
    ... SysApps are also talking about an application model

    jungkee: SysApps' charter was for application manifests, etc.
    like on FirefoxOS
    ... IMO they are two different ways of implementing the same
    goals
    ... for offline webapps
    ... so at some point we need to talk about that together

    chaals: let's hope to do that at 3pm
    ... next items is CORS
    ... we don't have Anne

    ArtB: I talked to Wendy a bit about this
    ... Brad is trying to organise a call with the Director
    ... the sticking point will be normative references
    ... one of which is to the Fetch spec
    ... not sure how that will be resolved
    ... hopefully PR will be published by the end of this month

    chaals: next, Clipboard APIs and events
    ... we don't have Hallvord

    <ArtB> ACTION: dimitri reply to Ryosuke's comments re Custom
    Element as part of LC comments [recorded in
    [21]http://www.w3.org/2013/11/11-webapps-minutes.html#action01]

    <trackbot> Created ACTION-700 - Reply to ryosuke's comments re
    custom element as part of lc comments [on Dimitri Glazkov - due
    2013-11-18].

    <ArtB> ACTION: barstow start a CfC to publish LCWD of DOM
    Parsing and Serialization [recorded in
    [22]http://www.w3.org/2013/11/11-webapps-minutes.html#action02]

    <trackbot> Created ACTION-701 - Start a cfc to publish lcwd of
    dom parsing and serialization [on Arthur Barstow - due
    2013-11-18].

    chaals: it's in work still?

    ArtB: on Oct 17 Hallvord sent a status email
    ... requesting developer feedback
    ... nearly right to go to LC, still some bugs open
    ... only Firefox implements the whole spec, some partial
    implementations
    ... an action for Chaals and I to chase those bugs down

    chaals: custom elements in in LC
    ... comments due by 21st

    travis: generally do we have any Web Components discussions
    planned?

    rniwa: we have sent some comments
    ... for Custom elements about declarative syntax
    ... we have an issue with the register function taking a
    prototype
    ... there's no guarantee that the prototype is an HTML element
    ... you could inherit from random HTML elements which also
    could be a concern
    ... I'd like some time to talk about these issues

    chaals: we don't have Dmitry here
    ... next, DOM Parsing & Serialization

    travis: I havent' seen any activity in about a year
    ... maybe we should just consider moving it along to LC/CR and
    see if it brings up any feedback?

    ArtB: do you want to fix this one bug before LC?

    travis: I think it's already fixed in the Living Standard
    version
    ... I just need to do the work
    ... LC next week maybe?

    chaals: CfC for LC next week

    paulcotton: to go back to DOM 3, are you having a meeting with
    the Indie UI people?
    ... there's an overlap between the Indie & PF consistuency
    ... they've asked for an agenda item in HTML on the
    relationship between DOM 3, DOM 4 and UI Events
    ... I wonder if it might make sense to bundle that with the
    Indie UI item this afternoon

    gary: I don't mind covering that
    ... I won't be around on Thursday
    ... so definitely on Monday/Tuesday

    chaals: I think it is a 2 min discussion

    shepazu: 15-30 mins
    ... I don't think there's a 2 min discussion. it'll take 5 mins
    to get settled in etc.
    ... there'll be information shared on both sides

    ArtB: we have D3E right after Indie UI
    ... we can go right into that

    chaals: we hope it'll fit in to the agenda
    ... File API we will discuss after the break
    ... next: Full Screen API
    ... do we know anything about that?
    ... no Tantek

    ArtB: if anyone is willing to work on the W3C's version of
    Anne's Full Screen spec let me or Chaals know about it
    ... Game Pad, we don't have Scott/Ted in the room
    ... the WG members know I attempted to get status in advance
    for this meeting
    ... Ted did reply that the spec is being implemented by at
    least Gecko
    ... is there interest from other vendors?
    ... I know Scott works for Google
    ... any idea about interest in implementation in Chrome? IE,
    WebKit?
    ... do you WebKit guys have something like the Chrome Status
    page?

    rniwa: we don't plan to implement Gamepad
    ... I think there was some suggestion in the past in the WebKit
    community, but I don't think we have a plan or a proposal to

    ArtB: one reason for having this conversation is about process
    ... chaals has been working on getting testing/requirements
    done earlier in the W3C Process
    ... I'm just trying to get a sense on this one
    ... sounds like it might be iffy moving forwards

    adrianba: so we've looked at the spec
    ... it doesn't necessarily map to the way we think about
    gamepad
    ... I know we've thought about how some of the aspects of
    gamepad, and the buttons etc., mesh with something like DOM
    Events
    ... so we don't have any plans for this specific API
    ... it's an area we've been thinking about
    ... i don't have anything else right now

    gary: one comment to add, from the DOM 3 perspective, looking
    at the keyboard events
    ... we assumed some sort of gamepad api would take over for
    joystick buttons etc.

    shepazu: an earlier draft did consider it

    adrianba: I wasn't suggesting for DOM 3, since we want to get
    that done
    ... there's some thinking around multiple users using a common
    application,
    ... and if there's more than one keyboard device provided, you
    might want to take presses from different places
    ... gamepad takes a simpler model

    gary: with buttons, we wanted that to happen
    ... e.g. click events to fire for buttons
    ... a recent change in DOM 3 click and dblclick events are
    fired only for the primary button
    ... so that doesn't work for gamepad, with a dozen buttons
    ... that's another area where DOM 3 isn't going to work for
    gamepad inputs

    chaals: HTML Imports
    ... Dmitry says the essence might go into HTML
    ... IndexedDB we'll talk about tomorrow
    ... IME later today
    ... Pointer Lock, we're in LC
    ... if you have a comment on that spec, please make it
    ... well before the end of this month
    ... do we know impl status for that?

    ArtB: I don't have a link to the latest effort

    chaals: progress events we'll come back to
    ... Push API
    ... Bryan Sullivan?

    bryan: the status is accurate
    ... Art asked a question on the list
    ... I don't know that we have anybody specifically signed up to
    be a test facilitator
    ... afaik no tests have been created yet
    ... afaik Mozilla is still working on an implementation, for
    Firefox OS?
    ... the PAG has done their report
    ... I think the spec has been pretty stable, for several months
    now, no outstanding bugs
    ... not much traffic on the list
    ... just trying to get through the PAG phase
    ... and the PAG report was that the exclusions didn't read upon
    the spec

    sicking: there's two challenges
    ... the first is that the first spec we did, that the PAG
    looked at, is significantly different from the current draft
    ... don't know if that's important

    chaals: the general principle is, if you change the spec
    between FPWD and LCWD, when you CfE again at last call, people
    may exclude patents against the new bits of work
    ... whether that happens or not...
    ... I think the PAG actually looked at the spec as it is now

    <paulc> test

    <bryan> scribenick: bryan

    <ArtB> Scribe+ Bryan

SSE status

    topic for tomorrow

    Shadow DOM, working...

    chaals: Screen Orientation API, TAG has issues with it...
    ... URL spec, chaals is editor and no change in 6 months. not a
    massive lot ot work to do, but some horrible edge cases.
    co-editor welcome. expect help on URLs from IETF
    ... Web IDL, an hour this afternoon
    ... Web Manifest, a work of webapps and sysapps. Marcos
    indicated there is some research to do. A joint meeting will be
    planned.
    ... Web Storage, at REC. Hixie is making changes to his
    version. Any interest in the next version?
    ... taking an errata approach, we are required to note them but
    bothering to do something is another decision

Charter Status

    chaals: charter expires in 6 months. proposed changes is to
    remove stuff.

    artb: no proposed additions at this time.

    <jeff_> Doug, can we get a link to the Charter?

    <heycam> @@ [continuing on Push API after "I think the PAG
    actually looked at the spec as it is now"] ... not the initial
    spec

    <heycam> bryan: that's correct

    <heycam> ... the spec as it stands now is considerably simpler
    than it was at FPWD

    <heycam> chaals: the assumption is the risk of further
    exclusion is reduced

    <heycam> sicking: the other challenge is, while we're defining
    an API, it's actually undefined how to fire a callback

    <heycam> ... the best idea we have is to use service workers

    <heycam> ... seems like it's going to be hard to get to Rec
    without Service Workers

    <heycam> bryan: it also depends on DOM 4

    <heycam> ... the events are based on Promises

    <heycam> travis: Promises definition is moving to the ES spec

    <heycam> ... so might be slightly easier to depend on there

    <heycam> shepazu: I think it was accepted into the next draft
    of ES6 @@ [end of previous discussion on Push API]

    adrianba: can we just ask for an extension?

    <ArtB> [23]http://www.w3.org/wiki/Webapps/Charter

      [23] http://www.w3.org/wiki/Webapps/Charter

    <shepazu> [24]http://www.w3.org/2010/webapps/charter/

      [24] http://www.w3.org/2010/webapps/charter/

    chaals: we may have some work per results from the supergroup
    discussion underway in AC

    <shepazu> oops, [25]http://www.w3.org/2012/webapps/charter/

      [25] http://www.w3.org/2012/webapps/charter/

    chaals: any other items we want to fold back in?
    ... we could request an extension if it will make life easier,
    but a proper charter is better and not that hard

    shepazu: suggest to push the boundaries re what is allowed in
    the charter for a supergroup

    chaals: that work started last week and we don't know what will
    result. another issue raised was the doc license; should we
    follow HTML example, or wait for theirs to complete
    ... if we push for open doc license earlier its unclear what
    would happen - W3C and members need to decide what they would
    like on this

    jgraham: tomorrow afternoon there will be a session on testing;
    with agenda (1) reviewing - this group has a large backlog
    ... (2) writing tests

    jeff: back on the charter; did not see too many deliverable
    with dates much beyond today; if we send a charter like that to
    the AC we may get pushback on where are the deliverables
    ... discussion should include what are the deliverables in the
    14-15 timeframe

    chaals: our pubstatus wiki page gives that info; including this
    in the charter is trivial but a first approximation
    ... we have some guesses in the charter but unsuccessful in
    having actuality match the charter

    jeff: to provide at least a guess is good

    paulc: selectors API Level 1 is in DOM4?

    chaals: no

    paulc: can someone explain the relationship?

    chaals: Selectors Level 1 is REC; we were working on Selectors
    Level 2 and since DOM4 is doing that we are assuming it will be
    done there

    paulc: the pubstatus page says something else

    artb: the table has old info

    paulc: to Jeff's point, that was confusing

    <ArtB> scribenick: bryan

    sicking: should be able to move to CR on File API soon, all
    issues have been addressed. Implemented in Firefox and (blink,
    ?webkit, IE
    ... last minute changes are relatively small so expect that to
    be implemented quickly
    ... sync API is not implemented by more than one
    ... expect a short CR; no test suite yet, but can contribute FF
    test suite

    darobin: think there is a test suite, for at least part of it

    jgraham: the test suite there is almost all for blob; half of
    the spec

    chaals: File System APIs...

    sicking: that is more controversial; two proposals (google &
    mozilla); we have not reached out for other implementers
    ... same status mostly as last TPAC
    ... difference in the APIs is mainly in syntax
    ... the mozilla one is smaller and uses promises

    adrianba: one use case we are interested in; being able to pick
    a folder or a set of files/folders e.g. for upload - access to
    a structure that allows tht
    ... looking at the google API, the notion of a directory entry
    is only missing the interface to a picker for that purpose

    sicking: both support the idea, but the syntax for bringing up
    the picker is considered out of scope
    ... input-type = multiple files is supported by both, but the
    use case may not be fully supported

    adrianba: do you plan to use promises for filesystem as well?

    sicking: we should deprecate file reader after implementation,
    and add this to the filesystem API using streams tied into
    promises
    ... expect this to be a difficult discussion; once we have
    streams it should be trivial to add

    kinuko chrome allows apps to recursively select files in
    directories; is mozilla interested in that?

    scribe: directory enumeration to filesystem:

    sicking: the goal is to have the filesystem protocol supported
    the same across implementations

    <rniwa> ArtB: i think so.

    chaals: any input from the room on directions this should go;
    what people would like to see implemented

    adrianba: seems we want to move this to promises, and expect
    revisiting async path APIs; seems difficult to see us
    implementing something that does not use the promises pattern
    ... highest priority is the read-only structure

    sicking: an alternative approach not discussed much so far is
    to add this to the IndexedDB; the feature set diffs is very
    small, mostly around the fileysystem scheme, and inline editing
    of files
    ... a feature that is unclear re implementation is inline
    editing of files

    chaals: other things is the ability to share files between
    apps; using IndexedDB that may be hard; external filesystem
    based sharing raises security concerns
    ... any other plans or uses of filesystem APIs?

    <ArtB> Bryan: re Web and TV, need to store large files

    <ArtB> … e.g. videos

    <ArtB> … one way is file system skin over IDB

    <ArtB> … this is an important UC for us

    <ArtB> … Want to build a media library

    <ArtB> Jonas: have you tried storing large files in IDB?

    <ArtB> … think perf will not be good

    <ArtB> Daniel: thinks SysApps is doing related work in Phase 2

    bryan: we still see the use case coming from web & TV re
    performance and scale as a key goal, but have not yet tested it

    <ArtB> Arun's spec is
    [26]http://w3c.github.io/filesystem-api/Overview.html

      [26] http://w3c.github.io/filesystem-api/Overview.html

    sicking: the performance is expected to be good even for large
    files

    Daniel: the media storage API in sysapps is intended to support
    the use case for media

    (missed question)

IME

    <Daniel_Austin> xxx(paypal) = Daniel_Austin

    kochi: current status is 3rd WD aug 15
    ... (showing example onf contenteditable with IME)
    ... issues with implementation include that the suggestions UI
    (system window) conflicts with the UI of the text being edited
    ... (discussing more changes from latest ED on slide)

    travis: we are pleased that the changes have been moved into
    the spec; some open questions about the UI overlap issue -
    would like to avoid issues for IMEs and google's search
    suggestions

    <MikeSmith>
    [27]https://dvcs.w3.org/hg/ime-api/raw-file/tip/proposals/IMEPr
    oposal.html

      [27] https://dvcs.w3.org/hg/ime-api/raw-file/tip/proposals/IMEProposal.html

    travis: also for handling IME for custom editors, we are
    skeptical of the use cases. it's been suggested that we split
    that out into a different REC track docs, and get closure on
    the rest first

    kochi: canvas-based editor may make sense to split out

    What are use cases for enableEditingEvents and
    disableEditingEvents?

    kochi: this spec was drafted in the age of windows desktop -
    though the current API seems desktop-oriented, use in mobiles
    should address the difference between use of on-screen keyboard
    and real keyboard

    rniwa: we would like one solution, and not have unique APIs for
    different device use cases; this will be hard for developers
    otherwise
    ... also please explain the use case for enable/disable editing

    kochi: a single API may be not useful for all platforms
    ... 2nd question re enable/disable; if some extend capabilities
    beyond what contenteditable provides, it gets complicated to
    support that with IME

    chaals: chair hat off; re the UI blocking issue, it makes sense
    that an onscreen keyboard taking the UI space is the same issue
    as the IME suggestions blocking concern; two solutions for that
    may seem annoying

    kochi: we would like to see a unified API to get notice about
    blocking events and get window region info
    ... for devs who want to optimize for desktop vs mobile, we
    need ways to customize for different platforms

    travis: there are not a lot of standards on how on-screen
    keyboards work
    ... not sure if addressing that falls under IME APIs, but this
    sounds like a good space to establish standards

    <rniwa> ArtB: thanks for the url!

    <rniwa> MikeSmith: thanks for the url!

    kochi: for getting to last call, we may split the spec into
    UI-related issues, and the editing issues
    ... we have also had discussion on events; composition events
    and locale; beforeinput event and order of events
    ... for future items; writing tests will start once the API is
    complete
    ... API for providing IME for webapps; it makes sense to split
    this out; having an IME for webapps to invoke makes sense;
    chrome provides this through a browser extension

    sicking: our keyboard API addresses a very different use case;
    it does not allow a webapp to build its own IME, rather for an
    app to be the IME for other web pages
    ... there are some APIs on some platforms that allow apps to
    act as IMEs, in the web platform we had to build a new API for
    that

    kochi: so you mean providing IME by the platform and providing
    IME for specific webapps is different

    chaals: that seams reasonable; the accessibility folks are
    concerned about webapps getting this wrong, whereas the system
    may do a better job

    kochi: we see some use cases e.g. web chat apps that may want
    to have their own IME

    chaals: for our use cases for russian and english etc, we can
    see the power of the webapp IME

    kochi: that's all the input for today

    rniwa: are you proposing the events issues be addressed in the
    DOM events?

    travis: we should discuss that in the DOM discussion

    chaals: the sense seems to be to separate the parts of the spec

    <richardschwerdtfeger> I can't really hear anything either

    <abarsto> scribenick: ArtB

    <abarsto> Scribe+ ArtB

Joint Meeting with IndieUI WG

    <abarsto> ArtB: notes, new people include Jania, Michael
    Cooper, RichS (phone), and some others

    <abarsto> CN: introduces the Indie UI people

    <abarsto> … basic topic is IndieUI spec

    <abarsto> … was rewritten last week

    <abarsto> Jania: thanks for meeting with us

    <abarsto> … we want to share Early in our spec dev

    <jcraig>
    [28]https://dvcs.w3.org/hg/IndieUI/raw-file/default/src/indie-u
    i-context.html#intro

      [28] https://dvcs.w3.org/hg/IndieUI/raw-file/default/src/indie-ui-context.html#intro

    <abarsto> … perhaps WebApps will take some of this over at some
    point

    <abarsto> … User Prefs is one spec

    <abarsto> … called "User Context"

    <jcraig> From intro: "The specification below adds several new
    "Media Features" to detect user settings, using existing syntax
    defined in the CSS3 Media Queries specification, and provides
    an access control extension to the MediaQueryList interface
    defined in the CSSOM View Model. "

    <abarsto> … now looking at using Media Queries

    <jcraig> "Because this approach relies so heavily on features
    that overlap with work maintained by the CSS Working Group and
    Web Applications Working Group, it is likely that portions or
    all of this specification may move under the purview these
    other groups. At a minimum, the IndieUI Working Group requests
    guidance and a collaborative working relationship with CSS and
    WebApps."

    <abarsto> JC: I posted some things into IRC

    <abarsto> Scribenick: abarsto

    … some overlaps with CSS WG and WebApps

    … there is a new privacy model

    … limit set of MQ features

    … want to customize UX

    … for some web sites

    … want to use MQ syntax if it fits in

    <annevk> jcraig: enums should use hyphens

    <annevk> jcraig: or just be words

    <annevk> jcraig: e.g. "arraybuffer", not "arrayBuffer"

    <jcraig>
    [29]https://dvcs.w3.org/hg/IndieUI/raw-file/default/src/indie-u
    i-context.html#example-restricted-call-to-matchmedia

      [29] https://dvcs.w3.org/hg/IndieUI/raw-file/default/src/indie-ui-context.html#example-restricted-call-to-matchmedia

    JC: <scribe misses pretty much all of what James says; needs
    help scribing>

    <jcraig> If you're asking me anything, please scribe, b/c I
    cannot hear the phone.

    JS: we met with CSS WG today

    … they will look at our spec and give us feedback

    <jcraig> When the author first attempts to check the 'matches'
    property of the query, the user agent will determine that this
    is a restricted setting, and immediately return false, so the
    first call to this function on the initial page load will never
    result in audio descriptions being enabled.

    Gary: re D3E, wondering about fingerprinting and keyboard
    layout

    <jcraig> Note: The immediate return is critical to prevent
    blocking threads, as well as eliminating potential abuse by
    fingerprinting scripts attempting to determine uniqueness using
    execution time of the synchronous call to mql.matches.

    <jcraig> However, at the same time, the user will be prompted
    to decide whether or not to share their media alternative
    settings with the requesting web site.

    … we need to support customized keyboards

    <jcraig> The web author can register for a change listener on
    this media query list, and the event handler will be called
    asynchronously when the user agrees to share their media
    settings.

    … need some UX for that

    … We should talk with you in the D3E context

    CN: not sure this effectively solves the fingerprinting prob

    <jcraig> When the user prompted, matchMedia returns false (or
    default value) immediately, and only provides the updated match
    asynchronously through matchMedia().addEventListener or
    subsequent requests to matchMedia().matches (e.g. on page
    reload) so there is never any detectable difference between
    "No" and "You don't need to know."

    … my concern is that you have uninformed and no consent

    … forces user to give consent

    <jcraig> A restricted @media block never prompts the user
    unless both the @media block and an included selector matches.

    <jcraig> For example:L

    Katie: under privacy laws, have to give consent

    … on what can be done with fingerprint info

    … otherwise, can get legal suits

    CN: not sure international laws re fingerprinting will work

    <jcraig> @media (subtitles) { .videoCaptions { display: block;
    /* custom rendered captions */ } }

    … the tech approach of using MQ for detailed browser sniffing

    … MQ can do the job

    … Don't think anyone is saying no, don't use that

    … but I am skeptical about the privacy story

    Ryosuke: agree with Chaals

    … can't rely on the laws to save us here

    Gary: if we expose this in any way, you won't be satisfied?

    <jcraig> When we spoke with CSS, they agreed that some of these
    media features made sense, but the privacy/restriction model
    may be outside the scope of CSS WG. We think its within the
    scope of WebApps…

    … not sure it is quite so clear

    … is there an impasse here

    … not sure where we go with this

    CN: not about acceptable or not

    … but saying it will protect your privacy is overselling

    <jcraig> The other aspect about this that I'd like to bring to
    the WG's attention is currently a todo in the draft:

    … don't see it as an impasse

    … but if the privacy system doesn't protect privacy

    <jcraig> Add justification interface on a per-category setting
    (possibly meta tag or a partial interface on document).
    Justification string may be defined by an new JavaScript
    interface, or perhaps by a meta tag in the document head, such
    as:

    <jcraig> <meta name="userMediaSettings" content="Used to enable
    captions and display them in your preferred font size and
    color.">

    … need to recognize their are implications of providing more
    info

    <jcraig> Justification string would be included in the user
    prompt.

    CN: I'm not saying `don't do this`

    <jcraig> We think this is broader in scope than just this MQ
    proposal.

    … but *I* am unconvinced

    <annevk> baaaah

    <annevk> We already lost the fingerprinting battle

    … privacy protection is sufficient

    <annevk> With HTTP

    <annevk> It's called etag

    CN: encourage you to take this to Privacy Interest Group

    <jcraig> For example, there is currently no way for a site to
    explain to the user, when prompted, why it's requesting
    Location data. Map sites are obvious, but others not as much.

    AvK: I think we already lost the fingerprinting battle

    … don't think we can win this

    Travis: but we should try

    CN: agree fundamentally the fingerprinting battle is lost

    … this could minmize the fingerprinting

    … agree with Travis and this approach can help minimize
    exposure

    … but there will always be some unprotection

    Katie: technology is not the way privacy is protected currently

    … at some point that may change

    <jcraig> WG, do you agree the "justification" string idea may
    be useful for Location sharing as well as this idea?

    … If some org doesn't do what they said they will do, there can
    be

    … reprucussions

    CN: this could be reasonably protective in some countries

    … in some countries there aren't good laws

    Gary: if there a bunch of MQs, is there going to be just one
    dialog?

    … or some choice?

    … is that all in scope

    JS: I don't think we have worked that out

    … but I don't think we want to overburden the user

    CN: I would expect that to be an impl detail for the browsers

    JC: if there are many MQs, I expect just one dialog

    <jcraig> Add justification interface on a per-category setting
    (possibly meta tag or a partial interface on document).
    Justification string may be defined by an new JavaScript
    interface, or perhaps by a meta tag in the document head, such
    as:

    <jcraig> <meta name="userMediaSettings" content="Used to enable
    captions and display them in your preferred font size and
    color.">

    … take a look at the ToC

    <jcraig>
    [30]https://dvcs.w3.org/hg/IndieUI/raw-file/default/src/indie-u
    i-context.html#toc

      [30] https://dvcs.w3.org/hg/IndieUI/raw-file/default/src/indie-ui-context.html#toc

    … there are diff categories

    CN: if user changes devices or device state often (e.g. sound
    on/off)

    … don't want to constrain the browser

    … Good impls will decide to make it easy for user

    <jcraig> For example, matchMedia('(subtitles)') and
    matchMedia('(subtitle-type: cc)') would only prompt the user
    once, because the media feature types are related.

    … or to provide power control to the user

    <jcraig> specifics of prompt will be UA implementation details

    … but I don't think the spec should constrain the options

    <jcraig> For example, there is currently no way for a site to
    explain to the user, when prompted, why it's requesting
    Location data. Map sites are obvious, but others not as much.

    JC: <something about location data; scribed missed comment>

    <jcraig> the "justification" string idea could be used in
    Location prompts as well.

    Cynthina: IE uses vendor prefix for MQ and high constrast

    … setting part of OS

    … UA can use that setting

    <jcraig> So the site can specify to the user why it wants to
    use this information

    … simple from authoring perspective

    CN: I haven't heard anyone say `no, this approach is not sound`

    <jcraig> -ms-high-contrast values are *very* specific to
    Microsoft's implementation

    JS: summary … go ahead; nuance the privacy story

    … tell the story correctly

    … go talk to PING

    <jcraig> and I think -ms-high-contrast can generalized into
    media features for contrast-increased, user-color, and
    user-background-color.

    Ryosuke: re the requests, different syntax than in DOM spec

    … would be good to consolidate the events that are now in diff
    specs

    CN: re the events stuff, yes, we need serious coordination

    Jania: I accept the request to coordinate with the events

    … we are hoping to get to LC by EoYear

    James: did you mean UIEvents spec or Context spec?

    CN: we should have a separate discussion about events

    Gary: keyboard layout is another coordination point

    … I should be the contact point

    <jcraig> Or something else related to "Events", IRC log is
    limited and phone call is unintelligible

    CN: James, that's Gary you should talk to

DOM 3 Events & UI Events

    <annevk> (For the record, it's done here:
    [31]http://dom.spec.whatwg.org/ )

      [31] http://dom.spec.whatwg.org/

    <Daniel_Austin_> lol @abarsto

    CN: < a bit of a digression on why D3E is done in one WG and
    DOM4 done in a separate group >

    Rich: what about the device specific events?

    CN: we are about to talk about DOM 3 Events now

    <adrianba> ScribeNick: adrianba

D3E and UI Events

    gary: we have another LCWD for DOM3 Events
    ... we think this is really the last one
    ... we just released a WD a week or two ago

    <abarsto> Scribe+ Adrian

    gary: expect to have another LCWD in dec or jan
    ... we have made a bunch of changes we'd like people to review
    ... so that we have a good LCWD draft
    ... want to summarise the changes
    ... not to discuss but so you know where to read if you have
    comments
    ... we took the deprecated stuff and put it into an appendix
    ... examples don't use deprecated stuff

    <abarsto> D3E bugs:
    [32]https://www.w3.org/Bugs/Public/buglist.cgi?component=DOM3%2
    0Events&list_id=29721&product=WebAppsWG&resolution=---

      [32] https://www.w3.org/Bugs/Public/buglist.cgi?component=DOM3%20Events&list_id=29721&product=WebAppsWG&resolution=---

    gary: for example char went away
    ... locale got removed from D3E
    ... currently a BCP47 string which is too general

    <annevk> I'm confused. Isn't char implemented?

    gary: need to think about this so we move it into UIEvents to
    do later
    ... this is the first version that talks about beforeinput and
    input
    ... we rely on them as a replacement for keypress event
    ... keypress is deprecated event
    ... beforeinput is fired, then DOM is updated, then input is
    fired
    ... click and double-click suggested all buttons should fire
    click and double-click
    ... this is only for primary button
    ... on composition events we spent time on order of firing
    events
    ... composition events relative to input events
    ... dead keys are handled like small IMEs with composition
    events
    ... earlier versions had special handling for dead key values
    ... tried to specify event ordering - little more formal than
    before
    ... the last thing is the relationship with DOM 2 Events
    ... DOM2 had unspecified keycode attribute
    ... in general DOM3 is an improvement, superset of DOM2
    ... but it isn't for some key character information
    ... previously you could tell which physical key was pressed -
    cannot do this with key event in DOM3
    ... code attribute in UI Events will handle this scenario
    ... if we want DOM3 to be full superset then we should consider
    moving code into DOM3
    ... if people have thoughts on that they should let us know
    ... i think we should move it in but others want to avoid
    delays
    ... biggest concern is lack of test coverage
    ... that is an area of focus now

    annevk: question about legacy stuff
    ... do you think you can get it removed from chrome?

    gary: which legacy stuff?

    annevk: the things you're proposing to remove

    <richardschwerdtfeger> I will ask my question here:

    gary: you're wondering when we're likely to get rid of keychar
    and keycode?
    ... they will live as long as web sites need them to be around
    - we need a good spec to replace them
    ... don't see them going away soon
    ... i don't have a timeframe on that

    <richardschwerdtfeger> rich: Why is there a MouseEvent
    Constructor in UIEvents and not with the MouseEvent in DOM3?

    <annevk> garykac: so that seems kinda contrary to how we define
    many features

    <annevk> garykac: basically, if a user agent needs to implement
    in order to be competitive, we should define how it works

    gary: i think people were trying to finish DOM3 and other new
    stuff went into UI Events

    <annevk> garykac: not defining how the web works is bad for
    newcomers, and we've had that situation for these events for a
    long time

    gary: i think we should merge but this would delay DOM3

    richardschwerdtfeger: the problem with this is we don't know
    what to refer to - is one going to go away

    <annevk> (Referring to this as DOM3 is hugely confusing btw. We
    should really name both "UI Events".)

    chaals: when figuring this out for SVG you don't know which
    spec to rely on

    gary: we have an appendix telling you the old way and saying
    don't do this

    <richardschwerdtfeger> Rich: In SVG2 we are trying to know what
    to refer to with respect to events as they are defined in two
    separate places. What should we reference for mouse events?

    gary: but this is a good example of why moving things from UI
    Events into D3E would help
    ... for the constructor I don't think there is a big risk - we
    could move them into D3E

    <richardschwerdtfeger> Rich: I agree with Adrian

    Travis: if we can get things in and stabilise them then that
    sounds good

    <richardschwerdtfeger> adrian: you stated: but this is a good
    example of why moving things from UI Events into D3E would help

    <richardschwerdtfeger> Rich: I agreed

    chaals: the question was about constructors and code attribute

    annevk: that suggestion has been made for ages

    <annevk> garykac: name it UI Events too then!

    heycam: i think one of the problems with the question which
    version do we reference from SVG

    <annevk> garykac: backport the name

    heycam: it really doesn't matter

    <richardschwerdtfeger> Rich: SVG2 is going to last call at the
    end of the year. we need something that is clear

    heycam: we don't rely on the constructor
    ... so whichever you care about
    ... so reference the latest one and consider earlier ones if
    you want

    chaals: known issue at W3C of having specs out of sync
    ... sounds like the sensible thing is to look at the modern
    spec and use it as your working reference
    ... if you run into trouble you can consider process hoops for
    changing reference

    <richardschwerdtfeger> Rich: what is "modern"?

    chaals: but now it is more common to publish Rec based on draft
    spec if the part you depend on is stable enough

    gary: considering UI Events was primary given constructors and
    code attribute
    ... it was a dumping ground for feautures we didn't think would
    make it into D3E
    ... we would only have a couple of small things left

    <chaals> [UIEvents is more modern than DOM3, DOM4 is more
    modern again, If I got it right...]

    <richardschwerdtfeger> Rich: but keyboard events is now fully
    specified in UI events separate from the DOM3 spec.

    chaals: questions on D3E or UI Events?

Quota API

    kinuko: quota api status
    ... just published new WD beginning of this month
    ... API is still very small
    ... two apis - query current usage status and to request new
    quota for application
    ... in the new draft they are both promises
    ... previously callback based
    ... also added quota storage change events

    <garykac> richardschwerdtfeger: keyboard events are not fully
    specified in UI Events. Only the additional KeyboardEvent info
    live there at the moment.

    kinuko: so apps can watch how usage is increased

    <myakura> [33]http://www.w3.org/TR/quota-api/

      [33] http://www.w3.org/TR/quota-api/

    <scribe> ... new draft has changes that lose compat from old
    version

    <richardschwerdtfeger> We need to reference the actual event
    interface definition

    UNKNOWN_SPEAKER: we wanted to make it work better with other
    promise based apis
    ... including imagined ones like service worker

    <garykac> Once we move |code| into DOM3, then DOM3 will have a
    complete KeyboardEvent specification

    UNKNOWN_SPEAKER: previous api was only implemented by chrome -
    would like to get more support from other browser vendors on
    new version
    ... think this api is very important for mobile web apps using
    local storage

    <richardschwerdtfeger>
    [34]http://www.w3.org/TR/DOM-Level-3-Events/#events-keyboardeve
    nts and
    [35]https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm#k
    eyboard-event-interface

      [34] http://www.w3.org/TR/DOM-Level-3-Events/#events-keyboardevents
      [35] https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm#keyboard-event-interface

    <richardschwerdtfeger> so it is defined in two different places

    UNKNOWN_SPEAKER: for web apps and user to agree on how much
    data can be stored on local device
    ... should be addressed in unified way not in each storage api
    ... would appreciate comments

    chaals: obvious question is to implementors

    sicking: mozilla are very interested in implementing this -
    doesn't mean we are fully happy with api
    ... looks great so far but need the person actually
    implementing to review

    <richardschwerdtfeger> rich: which this?

    chaals: does that mean you have someone on this?

    sicking: not yet

    chaals: no current plans or comments from others?
    ... probably two implementations at some point
    ... sounds like we will get comments and presumably the spec
    will move forward

    Travis: haven't looked at the spec in detail
    ... most browsers will have a quota management experience, not
    sure about the API, i know in IE the browser will prompt me

    annevk: one comment on the IDL - it uses array that is going
    away
    ... seems like some of this will need to change - not sure how
    ... what travis said sort of makes sense - pretty hard to ask
    the user about amount of space
    ... platforms we compete with don't do this
    ... seems like we should strive for this if we want to compete
    with native platforms
    ... for example heuristics about how often the app or site is
    used

    chaals: Flash apps annoy me because they ask me to allocate
    memory all the time
    ... agree with anne that the implementation is going to be
    combination of talking to the user and doing things for the
    user
    ... overspecifying is probably not going to be helpful but
    being able to request more memory for an app seems like an okay
    thing to do
    ... basic idea seems okay
    ... perhaps browser can grant request without the user
    ... [some examples given]
    ... does seem like makes sense and important to compete with
    other platforms

    kinuko: this API defines two types of storage
    ... temporary and persistent
    ... temp can probably be used without prompt but could be
    deleted
    ... slightly different experience to native apps
    ... for web apps people might visit site and then never return
    ... browsers need a way to know to delete data if they want

    sicking: to answer a couple of questions
    ... our goal is to prompt users as little as possible for
    current apis
    ... we have temporary storage and because we're doing apps
    thing
    ... for apps installed or bookmarked or whatever we can provide
    persistent storage
    ... blown away when user uninstalls
    ... what travis said about prompting is what we did in firefox
    so far
    ... devs don't have to worry but bad that many developers want
    to manage when prompts come up
    ... they want to forewarn users to let them know why they get a
    prompt
    ... have thought about ability to put quota manager in
    automatic mode
    ... whether that should be default behaviour i don't know
    ... that's not in draft - only thing i think might be missing
    ... being able to say that persistent storage doesn't deny when
    hitting quota then the browser just prompts
    ... adds complexity for implementation

    kinuko: we thought about this and tried to implement but
    suspending execution of storage api while showing prompts
    tended to make things very complicated
    ... also cannot predict when prompts will be shown
    ... we share same experience but this is why we excluded this
    option
    ... if we did this in an automatic way do you mean we wouldn't
    need api?

    sicking: this would be an additional piece of the api

    chaals: this would be an addition to make browser keep
    prompting when anyone else would be denied
    ... worth thinking about but can see issues in practice

    sicking: that behaviour is in gecko right now
    ... was default behaviour in indexed db
    ... we would keep prompting - eventually if you keep saying yes
    then we give you whatever you want
    ... developers were not in control of when prompts happen which
    was bad

    chaals: not sure how bad it was
    ... not in control of when you run out of memory

    kinuko: spec doesn't explicitly say when to show prompt
    ... in chrome we don't show every time
    ... might be session based
    ... not sure if it should be more specifically speced - left to
    implementations

    <Zakim> annevk, you wanted to ask what's the story for Chrome
    OS?

    annevk: could imagine model where every web page gets 100MB of
    temp space
    ... browser might drop this
    ... if you bookmark something then you get persistent storage
    ... site might advocate to the user to bookmark to make it part
    of the user's ecosystem
    ... seems hard to prompt user for 100MB -what does this mean?
    ... how did you solve this in chrome os?

    kinuko: we don't really solve the problem - we have two types
    of apps
    ... installed and linked

    <slightlyoff> abarsto: I have no slides. was informed I'd be
    leading this only this morning

    kinuko: app can say it wants storage and is prompted during
    installation
    ... we build many important apps as installed packaged apps

    sicking: we do similar in firefox os

    <slightlyoff> abarsto: but if you have the projector, might be
    useful to have this document up on screen:
    [36]https://github.com/slightlyoff/ServiceWorker/blob/master/ex
    plainer.md

      [36] https://github.com/slightlyoff/ServiceWorker/blob/master/explainer.md

    chaals: there are some apps that i want to store lots of data
    even though i only use them every 6 months
    ... not sure how to solve that automatically or by asking users
    questions they understand
    ... we are expecting sysapps in 5 mins - suggest 5 min break
    ... let's have a break

    <abarsto> … that's a *5* min break!

    <Travis> scripe: Travis

    <Travis> scribeNick: Travis

ServiceWorkers

    Alex: Will provide brief explainer of Service Workers
    ... attempt to provide background scripting to manage stuff
    that is hard to capture/handle.
    ... offline bootstrapping is hard--Service Workers can address
    this concern
    ... they are like shared workers, but lifetime is versioned.
    ... like background extensions in Chrome
    ... general idea is core of the system is to register a script
    that can run with a url pattern
    ... handle events in an async way.
    ... no synchronous APIs (unlike shared workers)
    ... status-- happening in github
    ... intent is to bring the work to Web Apps WG
    ... since webapps wanted to handle the offline use case,
    service workers should be a good fit.
    ... Chrome is prototyping to see if it's suitable

    Ryu: what are the use cases?

    Alex: primary use case is offline problem
    ... didn't scale well
    ... appcache didn't quite work for all the scnearios that apps
    needed.
    ... had to either use IDB or local storage, but these aren't
    well suited for URL management and fetching.
    ... you want to have hierarchy or list of caches to
    independently manage.
    ... other use cases: alarms API, push notifications, data sync
    in background (less fleshed out)
    ... there was a name change, but not so far along on the
    details of those use cases

    shepazu: Does it persist from navigation to navigation?
    ... one use case may go beyond offline, and provide animations,
    or persistent audio?
    ... have you thought about using it like a proxy between page
    loads?

    Alex: no visual component (just background execution context)
    ... it can coordinate between pages, etc.
    ... to smoothly move from online -> offline world, you need to
    bootstrap the service worker.
    ... first need to install the service worker.
    ... after that you get the next doc installed under the service
    worker.
    ... there will just be one instance of the service worker (not
    multiple)

    shepazu: CSS resources? How would it work with it?

    Alex: not sure.
    ... CSS is local to a single running doc.
    ... but without rendering, not sure how it would integrate.

    adrianba: If the app is listening for fetching... does this
    have perf implications on network requests?

    Alex: Still trying to get data on this.
    ... the async nature makes this feel a lot like Node.js
    authoring.
    ... fetch event can only respond with promises.
    ... a storm of requests will block based on the service worker
    being a single thread.

    Daniel (ebay): What are the security implications, threats, and
    countermeasures you are planning?

    Alex: Jonas has helped look into the security issues.
    ... biggest impacting problem is...

    <inserted> scribe: Travis_

    Alex: We welcome any review.

    Daniel (ebay): what is the physically security of a
    local-stored service worker?

    Alex: Service worker is backed by HTTP cache-like thing. Code
    itself is stored as per browser's code storage permission
    model.

    <annevk> HTTP cache is dead, long live HTTP cache /cc mnot

    Alex: should be comperable to the browser's local security
    model. Not sure there's more security layers to add on top of
    that.
    ... It's a cache-wide problem, not just for service-worker

    chaals: When a CSS page refers to other pages @import.
    ... how are these managed?

    Alex: Initial service worker kicks in.
    ... initial CSS goes to the service worker...
    ... sub-downloads hit the sevice worker serially as they come
    in.
    ... like the service worker is a virutal networking layer. It
    sees the fully-formed request.

    Bryan: Says you can defer loading.
    ... Tell me more?

    Alex: The service worker will see all requests once it's set
    up.
    ... non-http requests are not speced to be handled.

    chaals: not data:

    bryan: <clarifying behavoir>
    ... does it interact with XHR?

    Alex: yes
    ... think about this like Mod.Proxy for the browser.

    <annevk> Come on, someone ask something tricky

    <annevk> Like how this works with sync XHR

    <annevk> (it doesn't)

    Alex: XHR requests eventually filter through to service worker

    <slightlyoff> annevk: wait, I thought you said "hard"

    bryan: For offline: you should be able to package server code
    in the client

    Alex: yes, but the patterns for app construction in flux.
    ... today we think of server requests first, but with service
    workers, alternative scenarios are enabled.
    ... we're not defining the cannonical way of doing offline.

    plh: Is there a use case for the web app to know what is
    offline?

    Alex: yes, it's specifically designed into the system.
    ... so that when you're offline, you can have a pre-populated
    set of data (part of the installation model)

    Mark: Service worker will not go to the browser's cache?
    ... you could create your own cache?

    Alex: If you hit the network, you still go through the normal
    network, including the http cache
    ... it's only a detail that service worker updates themselves
    work around this.
    ... otherwise, its the burden/logic of the service worker to
    handle any other case like fallback to missing live info.

    Mark: there is lots of flexibility. Coolness.

    Richt: Sounds like 4 things merged into one.
    ... seems like you've invented http primitives.
    ... could we use that outside of service workers?

    Alex: goal is to enable offline and than abstract it out.
    ... we're trying to make sure we're aligned with Anne's Fetch
    algorithm.
    ... so we may also be able to expose caches objects... but
    these are secondary goals.
    ... primarily it needs to solve the main use case, first.

    heycam`: How does the service worker determine to fallback to
    the network?

    Alex: Service worker can't include XHR (because of it's
    sync-option)
    ... the service worker allows you to connect requests with
    responses arbitrarily.

    heycam`: Are you forced to use fetch, or can you do something
    else?

    Alex: just ignore the request.

    <slightlyoff> Travis_: yeah, explicitly, don't call
    e.respondWith()

    heycam`: Seems like many new scenarios come out of this...

    Alex: yes.

    Jonas: Allows a lot of combinations of scenarios. You don't
    have to respone 1:1 with each request now.
    ... can do server-side templating.

    MikeSmith: Notices we don't have a spec???!!!!

    <annevk> slightlyoff: so what is the idea for sync XHR again?

    MikeSmith: Expected a WebIDL????!!!!

    <slightlyoff> annevk: sync is only sync from the perspective of
    the document

    <annevk> oh MikeSmith <3

    chaals: Already covered :0)

    Alex: I'll get the spec together after we get through the
    existing github bugs

    <annevk> slightlyoff: I guess, but if the SW messages the
    document and awaits a reply, it's dead

    mnot: How do you minimize duplication between http-cache and
    synthetic caches. Also resource management: do you prompt the
    user.

    Alex: On duplication. Could be cheap.
    ... on the storage level, you can have more persistent info
    that doesn't get cache-evicted.
    ... on storage limits, we don't have this solved.
    ... there's no distinction for some storage technologies for
    persistent vs. not (it's all just file-system)
    ... and other open issues. Working on fleshing these out.

    mnot: de-dup in http-caches. This could solve it. I really like
    the way this is going. It's coolness.

    bryan: Service workers can't use XHR?
    ... what else can't they use?

    Alex: It's limited to much fewer things you think (all sync
    stuff is blocked)

    avk: why not just remove the sync-bit?

    Alex: we could entertain that. We didn't go that direction.
    ... think about a worker with all sync-stuff removed (with
    importScript as the exception)

    bryan: So, it can't be used to build offline apps?

    Alex: No.
    ... You can handle request in any way you like, you can
    postMessage, you can manage storage locations, etc.

    chaals: the app can still use XHR, of course. It's just not in
    service worker.

    heycam`: Can you stream a response back from the service
    worker?

    Alex: No answer to that now.

    <MikeSmith> audible sigh from slightlyoff

    Alex: Seems like we need something like Streams...??

    <annevk> Weird to say no to XHR based on a theoretical fetch
    API but say this here slightlyoff

    Ted: [muted]
    ... Fetch vs. XHR: XHR is platform for http-requests. Fetch is
    the way for how the network requests stuff.

    Alex: XHR != fetch

    Ted: seems like a terrible approach to have both.

    <slightlyoff> yes!

    <slightlyoff> was about to say that = )

    Jonas: XHR doesn't have a great way to represent requests (not
    just response) and stuff for CORS.

    paul: How does service worker work "upwords"?

    Alex: whichever core capabilities are plumbed into it. For
    example other services that could be put into it.
    ... Alarms, etc., another service layer for the web. For things
    that don't need UI.

    <scribe> Scribe: Travis_

    <scribe> ScribeNick: Travis_

Streams

    <abarsto> [37]http://www.w3.org/TR/streams-api/ -> WD published
    5-Oct-2013

      [37] http://www.w3.org/TR/streams-api/

    <Travis> <crickets>

XHR and Progress Events

    <jungkees>
    [38]https://dvcs.w3.org/hg/xhr/raw-file/tip/xhr-1/Overview.html

      [38] https://dvcs.w3.org/hg/xhr/raw-file/tip/xhr-1/Overview.html

    <inserted> scribe: Travis

    jungkees: looking at XHR1
    ... in spec history section
    ... some features left out of the living standard...
    ... fetching data uris and anonymous flag
    ... some behaviors are not compatible

    <jungkees> jungkees.github.io/XMLHttpRequest-test

    jungkees: looking at test cases in W3C test repo
    ... current status of browser implementation

    <myakura> [39]http://jungkees.github.io/XMLHttpRequest-test/

      [39] http://jungkees.github.io/XMLHttpRequest-test/

    jungkees: covers 95%+ of spec
    ... compat numbers are 50-60%
    ... now filing bugs with relevant implementations
    ... path to interop and CR.
    ... this is our current status.
    ... we have ~11 issues in bug list.
    ... only 1/2 are issues we need to solve for L1 XHR spec
    ... (1 or 2) not 1/2
    ... One of these 21650:
    ... xhr has a limitation in responseType==document
    ... other issues are related to bleeding edge features that can
    be handled in next version.

    <bryan> quit

    Art: are you marking the bugs for v1 and v2?

    jungkees: having an issue with the alignment with the fetch
    spec.
    ... need to discuss how to handle referencing the fetch spec in
    the W3C spec.
    ... not sure how to deal with that.

    chaals: not a technical issue, just a doc/process spec.

    jungkees: we are referencing WHATWG at the moment.
    ... we should be ready for LC soon.
    ... during LC we can resolve the issue with
    responseType==document and focus on browser interop and bugs.

    chaals: what are the implementation plans.

    jungkees: some interop differences: one browser fires
    "progress" other's don't.
    ... there are some subtle differences.

    abarsto: Are there any tests for v2 (in the list of test from
    the w3c site)

    ?

    jungkees: All of the tests are based on the living standard. We
    will see which will drop for the v1 spec.

    adrianba: On why don't browsers fix these bugs: these are the
    set of "interop" issues we talk about for a long time. Do these
    interop issues really matter to web compat?

    <inserted> scribe: Travis_

    <Eliot> Robin: We can identify the best and brightest tests.

    Robin: Might be worth looking into library code (jQuery) to
    prioritize bugs to fix.

    abarsto: Will Robin/James work with jungkees to help get these
    tests prepared?

    <abarsto> s/help get these tests/prepared/help identify those
    tests that are mandatory for CR/

    adrianba: To Robin on the question of interop bugs worked
    around in jQuery: is the 'we' the working group?

    Robin: I think they're likely working around real problems.
    ... if this delays the spec a little while, then OK.

    adrianba: still trying to understand the priority. I think this
    is about having a good spec.
    ... these tests don't need to be fixed at the same rate as
    implementations move forward.
    ... I think we can look at the spec at a high-level and say
    that it's "implementable" and not have to hold up CR.

    jungkees: The core editors came to the conclusions that the
    issues shown in test cases must be resolved because they are a
    major part of the Fetch behavior.
    ... without resolving this, XHR authors may have to work around
    bugs.

    chaals: there are different authors for the spec.
    ... implementers are one categories. Authors want to look at
    the spec and write to that.
    ... may be nice to have the spec speak to the reliability of
    certain features in the spec.

    <annevk> o_O

    <annevk> (need bigger O)

    chaals: it's nice to have the next version coming so that we
    can look forward to it's more specific requirements.

    paul: I think robin is saying that web devs have seen issues,
    and that we can use libraries to find what the pain points are.

    <hober> annevk: o_O

    Daniel (ebay): Since XHR came out, it's not just browser user
    agents, but having a reliable spec is good.

    jgraham: post re-writing the spec to be more vague is a really
    bad idea.

    <annevk> hober: nice

    <annevk> darobin: could just remove the conformance section

    <annevk> darobin: would also make it shorter

    <hober> annevk darobin: we could start using other RFC 2119
    terms like "UAs MIGHT AS WELL ..."

    <annevk> hober: MUST GO TO REC SO YOU MAY IMPLEMENT

    <darobin> hober: I think you mean RFC 6919
    [40]https://www.rfc-editor.org/rfc/rfc6919.txt

      [40] https://www.rfc-editor.org/rfc/rfc6919.txt

    jgraham: The right way of solving the problem is to use a test
    suite to show authors how reliable and interoperable is the
    spec.
    ... I don't think the right solution is to change the spec.

    adrianba: I agree.

    <Daniel_Austin> RFC 6919

    <annevk> "MUST (BUT WE KNOW YOU WON'T)" hahaha, forgot about
    that RFC

    adrianba: it seems odd to update the spec according to where
    implementations are at some moment in time.
    ... via MUST to SHOULD update.

    chaals: well, we shouldn't change must to should just to squeak
    out of a process requirements.

    <annevk> abarsto: but it's his favorite proposal

    <annevk> abarsto: he makes it at least once a year

    chaals: going from test->spec can be challenging.

    jgraham: historically we've done a poor job of having a test
    suite.
    ... we need to work on test suite results and how we present
    them.
    ... as implementation run the tests we can gather the data more
    reliably.

    adrianba: we have some places where we want to correlate this
    data, like in Web Platform Docs.

    chaals: my basic goal is to get what is needed now, and not
    wait while we develop our test suites and tools.

    jungkees: Initial intention was to exclude features not running
    well across the board.
    ... our findings uncovered that some things are running fine in
    2 of the browsers.
    ... the core editors found that these are the pimitives of the
    fetching of resources.
    ... we want to keep going with current set of features.

    chaals: What happens now? LC and long wait?

    jungkees: and working on test suites until CR exit. Want to
    start LC now.
    ... we don't see too many issues in the spec itself, but want
    to focus on solving implementation gaps.
    ... perhaps Q2 of next year we can review the bugs to see how
    browser interop is improving.
    ... interop will improve, libraries will be easier to maintain,
    etc.
    ... that's our current viewpoint.

    paulc: Q on original stats: only 50% of the results give
    consistent results... at least 2 browsers pass each of them?

    chaals: what is the intersection for at least two
    implementations?

    israelh: how do we prioritize? Put my high priority tests
    together, then the bugs that don't impact most sites, this
    could work.

    chaals: We could take the spec to the director and show that
    there are some places with dragons, so beware, but we need
    better coverage than we have now.

    jungkees: Given major implementations, pass ratio is much
    higher (than 50%).
    ... we've tested three major tests: blink, gecko, trident.

    paulc: my personal opinion: we'll never get a spec published if
    we expect 100% interop.
    ... if this spec is to goto CR, what is the exit criteria.
    ... the WG needs to define what it believes is necessary.

    <Daniel_Austin> +1 to Paul's comments

    <jungkees>
    [41]http://www.w3.org/wiki/Webapps/Interop/ProgressEvents

      [41] http://www.w3.org/wiki/Webapps/Interop/ProgressEvents

    chaals: how much progress are we making on progress events?

    jungkees: Looking at progress events test results.
    ... waiting on bug fixes for Blink to improve the test results.
    ... if we do have concensus, we need to try to get it on the
    list.

    <abarsto> ACTION: barstow start CfC to publish PR of Progress
    Events [recorded in
    [42]http://www.w3.org/2013/11/11-webapps-minutes.html#action03]

    <trackbot> Created ACTION-702 - Start cfc to publish pr of
    progress events [on Arthur Barstow - due 2013-11-18].

    jungkees: We _could_ add more examples to the spec from other
    use-cases.
    ... if not required I'd prefer not to.

    <abarsto> ACTION: barstow work with AvK and Jungkee re the
    Attribution of the Progress Events spec [recorded in
    [43]http://www.w3.org/2013/11/11-webapps-minutes.html#action04]

    <trackbot> Created ACTION-703 - Work with avk and jungkee re
    the attribution of the progress events spec [on Arthur Barstow
    - due 2013-11-18].

WebIDL

    heycam`: Test suite progress?

    scribe: I started working on tests for webidl v1. These have
    been reviewed.
    ... I now need to revise tests that have issues.
    ... I thought I did a fairly complete job, but it would be good
    to hear from the people who did the reviews.

    abarsto: 5 reviewers did 20%.
    ... what are we going to consider implementations?

    plh: I recall two levels of implementations--first to find
    implementations (in other specs) of each feature, and 2nd to
    build up the test suite.

    heycam`: The tests use features that are available in other
    specs.

    jonas: two things I know that are programmatic.
    ... arrays - people wonder what this means.

    heycam`: generally, people are not happy with array-ness.

    scribe: one test used messageport arrayness, but managed to
    convince hixie to change it.

    jonas: my proposal was to just use JS arrays or frozen arrays.
    ... nodelist and other live-lists may just stay as
    host-objects.
    ... we shouldn't add more ways of replicating those behaviors.
    ... otherwise, we should just use iterable objects (ES6 syntax)

    <annevk> NodeList can still be an iterable

    heycam`: to defend [] syntax: to handle nodelist-like objects.

    scribe: if we don't like that concept, than it doesn't make
    sense to allow/expose it.

    heycam`: There's still a bunch of new things to align with ES6
    features (iterables, proper classes)

    <annevk> For NodeList we can add @@iterator from ES6

    heycam`: At the Mozilla summit a few things were discussed:
    JS-IDL, what's left to finish.

    scribe: for JSIDL - I don't really have the time to re-write
    for that.
    ... better use of my time to find/fix the major problems wrong
    with WebIDL.
    ... seven items were discussed
    ... 1 - typearray, promises, etc., stuff that moves in ES6
    ... 2 - no custom exception objects; building it in.
    ... 3 - proper ES classes, maybe replace interface with class
    ... 4 - deprecating indexed and named properties and stuff that
    required proxies.
    ... 5 - fixing array-ness
    ... and other stuff.
    ... with some new focus time, I can get after these.

    chaals: done by Christmas.
    ... ?

    heycam`: Any other high-priority items to finish?

    jonas: can we get rid of overloading?
    ... with union types why do we need it?
    ... other than drawImage?

    Alex: WebGL?

    heycam`: overloading is the most complex part of the spec. It
    would be nice to remove it...

    abarsto: heycam` can you draft up a message on what's next?

    heycam`: need to update the list of "what's new" to aggregate
    into the history of the spec.

    <adrianba> WebSocket API uses overloading for send()

    scribe: Do we want to hold up v1 of the spec on some of the
    larger issues?

    Travis: I don't want to implement stuff that's going to change.

    heycam`: If you stick to the spec + bugs + list of things I
    mentioned, you should be safe.

    <chaals> scribeNick: chaals

    Scribe+ chaals

Readonly/ writeable interfaces

    DS: We have interfaces for SVG / CSS DOM - there is readonly
    and writeable versions.

    … readonly has no setters, attributes are readonly. Writeable
    have setters, and attributes are not readonly

    DS: Can't do that in WebIDL. Had a short discussion on the
    issue. 2 possibilities; inherited structure, or have 2
    interfaces.

    … for nihersited structure, the writeable version would inherit
    from the readonly version.

    Travis: Do you need the interfaceto swap between
    readonly/writeable, or is a given object always going to be one
    or the other?

    … We had objects that changes in IE

    DS: The interface doesn't change between readonly / writeable.

    <krit> [44]http://dev.w3.org/fxtf/geometry/#DOMRect

      [44] http://dev.w3.org/fxtf/geometry/#DOMRect

    JG: Readonly is not user-modifiable, but the values may be
    changed?

    DS: Correct.
    ... DOMRect is writeable, DOMrectReadonly isn't, so writeable
    inherits from it.

    … which means that things inherited do weird stuff @@

    … solution could be to rename rDOMRectReadonly so people don't
    think it is always readonly.

    … other solution is use typedef and different interfaces and
    specify if you have a readonly or writeable version

    Cam: renaming sounds sensible, compared to duplicating
    interfaces

    JG: View has another meaning - arrayBufferView is writeable.

    …bad choice of colours

    DS: The iidea of calling it that was so people wouldn't get bad
    ideas.

    JG: but confusing is bad.

    DS: Right. Whey we are discussing.

    AvK: Instanceof doesn't work with cross-@@ and isn't good
    practice accoring to JS spec editor.

    Dino: It's all good.

    Travis: Can you give some use cases for DOMRect for context?

    DS: SVG DOM is a bit complicated.

    <myakura> MikeSmith, there was nobody in the room who could
    talk about current state of Stream proposals. so we moved on to
    XHR/PE

    <krit> <rect>

    <krit> var e

    … you have different attributes. a rect in SVG is one element,
    you can test its attributes.

    <krit> e.x

    … e.g. the x property.

    <krit> e.x.animVal baseVal

    … these are different kinds of objects. BaseVal stay set,
    animVal includes current value under current animation.

    … other examples in CSS Object model

    Cam: Also clientRect….

    … maybe not a great example, could return a plain object.

    DS: Think that was the use case I was thinking of.

    Cam: Want to avoid a proliferation of rectangle objects. We
    have SVG rectangles, clientRect, and maybe more APIs that want
    rectangles.

    … would be goo to have a single (or dual) rectangle interface.

    Travis: How does SVG do it today?

    Cam: With a single interface and a flag to say if it is
    readonly or not.

    … it's writeable in the intereface and setting it when the
    reaonly flag is set will throw.

    Travis: Saying readonly is to say when you never want to allow
    writing to something. Think in this case it would be OK to have
    2 rectangles (which is better than dozens) - one readonly, one
    writeable.

    JG: Sort of what I was going to ask. Where you have
    DOMRectAbstract and the 2 types of rectangle inherit from it
    but you never pass one directly.

    … Not hugely pretty, but would allow people to check @@@

    DS: Would not share anything with the inherited classes. Also,
    there are multiple interfaces like this in SVG.

    … that are currently incompatible with WebIDL.

    Cam: Not that you cannot express this in the SVG spec, can add
    process. But people don't love it.

    DS: People objected and said it is not possible… but is
    implementable.

    Cam: Thinks what they said was it is impossible to have a base
    class with getter/setter, and a derived class that has the
    getter and no setter.

    JS: Trying to do that in JS, it isn't possible - this is a
    limitation of javascript. So the base has to have a getter and
    the derived class a getter/settter.

    DS: So we need to define a getter separately for the defined
    class?

    JS: 2 qusestions. What do we write in WebIDL, what can you do
    in Javascript?

    … in JS you need a property on the derived intereface with a
    getter and a setter

    Cam: Not a huge burden. But WebIDL has a features where you an
    avoid having the extra getter.

    DS: So, should we continue with the inherited part?

    … and whatcolour should we paint it?

    … not "readonly", "not View"...

    Let's not name it now.

    JS: If inherit describes a property re-using the getter from
    the base class it sounds like a feature created to solve this
    problem, and seemingly it does.

    … so yes. Use it.

    Cam: Thought the question is whether to have a heirarchy of
    DOMRect, not just for getters specifically.
    ... Seems sensible

    AvK: Is clientRect live?

    [no]

    AvK: So they seem two different things. If one is live and
    another not, they are not so related.

    DS: The ability to make something live doesn't force it to be
    live, so I don't think there is a real difference.

    AvK: For static object you don't need to use getters, because
    you're not returning internal state. That would be much more
    sane.

    DS: DOMRect only has values...@@@@

    <slightlyoff> annevk: just "property"

    AvK: You can define objects in two ways - getter/setter or
    (not)

    … That alternative might be better.

    <annevk> slightlyoff: k

    Travis: Starting to sound like arrayness problems for WebIDL -
    arrays that are sometimes static, or maybe not...

    <annevk> slightlyoff: so how do you distinguish that from a
    getter/setter property?

    … if we were ok doing that in WebIDL for arrays, seems OK to
    have an object that has a flag to describe if it is readonly or
    not?

    … if it works...

    Cam: But we want to get rid of arrays with internal flags too.

    Travis: Agree, but for the SVG stuff, I don't think there is a
    problem except that we want to consolidate everything of the
    same kinds.

    Cam: Think we do.

    DS: I have no problem with it, but there were objections from
    e.g. Webapps

    JS: Wasthere objection to a subclass that is writeable?

    DS: No

    JS: So we could move forward on that

    Travis: WfM

    AvK: If we don't need getters, we should avoid using them.

    … have a data property instead.

    DS: Don't have dictionaries

    AvK: Doesn't matter

    Cam: That would be the WebIDL way to do this.

    … If we make a @@@@@ for an unchanging object, you can use the
    dictionary version to get.

    … We don't want to have a new version changing values all the
    time.

    Alex: By default WebIDL uses getters/setters, whereas
    javascript uses properties. Seems Anne was saying start with
    the obvious thing from javascript.

    … not clear that the base class and then setting a flag to
    force readonly, is a good way. Not natural in Javascript.

    … Concerned that there is a performance argument I would like
    to understand

    Trav: Getter argument is that the platform should not update a
    data value from underneath the JS code. If the value of a
    property is 5, it shouldn't change to 6 without you knowing.

    … for that you have tohave an accessor. DOM attributes are that
    way, but makes sense that the workd is oriented to
    getters/setters.

    <Daniel_Austin> +1 readonly descends from readable/writeable

    AR: But the single point of truth being something behind the
    object seems like a broken assumption

    JS: Problem is talking about a wide range of objects - lots of
    different behaviours.

    … many objects returning would not make sense with data
    properties.

    … seems in many cases but not all getters make sense. Maybe not
    as often as we use them.

    … Exception objects are one of the few objects with properties,
    and had getters. That'sthe pattern, but people don't use them
    much.

    … If we can return dictionary objects, inertia is why we keep
    using interfaces everywhere.

    Cam: With objects, you use a different construct to get data
    properties instead of accessors. You can't have a data property
    without devolving to prose.

    … Makes sense to use a data property...

    Alex: What's behind the curtain. If there is an IDL that claims
    to say what there is in JS, that doesn't seem to hold. But if
    there is a value where JS isn't privy to it, that would not be
    a fair assumption.

    Cam: If functions that implement getters/setters have access to
    other properties...

    Alex: What are they?

    Cam, Alex: @@@

    [scribe missed this]

    Ryo: You can do something as if ther is a private state and
    getters/setters use that.

    … so they aren't all that rettible. So there are elements where
    it makes sense.

    Alex: Sure. But to implement a class for this I would only have
    getters/setters as an exceptional process.

    … would support @@@@@@@

    <slightlyoff> ...adding properties to itnerfaces in WebIDL

    Cam: For these objects, data properties are more liekly to make
    sense that things in the DOM that need to do computation or
    return non-simple values.

    … depends on the APIs you are talking about which makes more
    sense.

    [should we keep going...?]

    JS: Seems like if we are going with getters and setters,
    inheritance is the way to go, but think we're not looking
    closely enough at using data properties instead.

    … Don't know for the specific case of Rectangles.

    Cam: Think the proposal was to have both the dictionary and the
    data properties.

    [scribe may have recorded that backwards]

Summary of Action Items

    [NEW] ACTION: barstow start a CfC to publish LCWD of DOM
    Parsing and Serialization [recorded in
    [45]http://www.w3.org/2013/11/11-webapps-minutes.html#action02]
    [NEW] ACTION: barstow start CfC to publish PR of Progress
    Events [recorded in
    [46]http://www.w3.org/2013/11/11-webapps-minutes.html#action03]
    [NEW] ACTION: barstow work with AvK and Jungkee re the
    Attribution of the Progress Events spec [recorded in
    [47]http://www.w3.org/2013/11/11-webapps-minutes.html#action04]
    [NEW] ACTION: dimitri reply to Ryosuke's comments re Custom
    Element as part of LC comments [recorded in
    [48]http://www.w3.org/2013/11/11-webapps-minutes.html#action01]

    [End of minutes]

Received on Wednesday, 13 November 2013 09:11:40 UTC