W3C

- DRAFT -

WebApps F2F Meeting @ TPAC 2013

11 Nov 2013

Agenda

See also: IRC log

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


<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> 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 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 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> http://www.w3.org/wiki/Webapps/Charter

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

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

<shepazu> oops, 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 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> 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> 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> 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> 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: 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: 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> 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> http://www.w3.org/TR/DOM-Level-3-Events/#events-keyboardevents and 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: 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> http://www.w3.org/TR/streams-api/ -> WD published 5-Oct-2013

<Travis> <crickets>

XHR and Progress Events

<jungkees> 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> 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 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> 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 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 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> 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 http://www.w3.org/2013/11/11-webapps-minutes.html#action02]
[NEW] ACTION: barstow start CfC to publish PR of Progress Events [recorded in 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 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 http://www.w3.org/2013/11/11-webapps-minutes.html#action01]
 
[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.138 (CVS log)
$Date: 2013-11-11 10:13:01 $

Scribe.perl diagnostic output

[Delete this section before finalizing the minutes.]
This is scribe.perl Revision: 1.138  of Date: 2013-04-25 13:59:11  
Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/

Guessing input format: RRSAgent_Text_Format (score 1.00)

Succeeded: s/aaa:/kinuko/
Succeeded: s/xxx(paypal)/Daniel/
Succeeded: s/vvv/rniwa/
Succeeded: s/(question missed)/What are use cases for enableEditingEvents and disableEditingEvents?/
Succeeded: s/Ryoskue/Ryosuke/
Succeeded: i/We welcome any review/scribe: Travis_
WARNING: Bad s/// command: s/help get these tests/prepared/help identify those tests that are mandatory for CR/
Succeeded: i/jungkees: looking at XHR1/scribe: Travis
Succeeded: s/jonas;/jonas:/
Succeeded: i/We can identify the best and brightest tests/scribe: Travis_
Succeeded: s/DS:/Cam:/
Succeeded: s/[we drop the naming issue]/Let's not name it now./
Succeeded: s/ajvascript/javascript/
Succeeded: s/the object/something behind the object/
Found ScribeNick: heycam
Found Scribe: Cameron
Found ScribeNick: bryan
Found ScribeNick: bryan
Found ScribeNick: ArtB
WARNING: No scribe lines found matching ScribeNick pattern: <ArtB> ...
Found ScribeNick: abarsto
Found ScribeNick: adrianba
Found ScribeNick: Travis
Found Scribe: Travis_
Inferring ScribeNick: Travis_
Found Scribe: Travis_
Inferring ScribeNick: Travis_
Found ScribeNick: Travis_
Found Scribe: Travis
Inferring ScribeNick: Travis
WARNING: No scribe lines found matching previous ScribeNick pattern: <Travis_> ...
Found Scribe: Travis_
Inferring ScribeNick: Travis_
Found ScribeNick: chaals
Scribes: Cameron, Travis_, Travis
ScribeNicks: heycam, bryan, ArtB, abarsto, adrianba, Travis, Travis_, chaals
Default Present: +1.503.264.aaaa, [IPcaller], Shenzhen, +1.503.264.aabb, James_Craig, Rich_Schwerdtfeger
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
Agenda: http://www.w3.org/wiki/Webapps/November2013Meeting
Got date from IRC log name: 11 Nov 2013
Guessing minutes URL: http://www.w3.org/2013/11/11-webapps-minutes.html
People with action items: barstow cfc dimitri reply start

[End of scribe.perl diagnostic output]