17:04:14 RRSAgent has joined #webdriver 17:04:14 logging to https://www.w3.org/2017/11/09-webdriver-irc 17:04:23 RRSAgent: make minutes 17:04:23 I have made the request to generate https://www.w3.org/2017/11/09-webdriver-minutes.html jgraham 17:04:40 Agenda: https://www.w3.org/wiki/WebDriver/2017-TPAC-F2F 17:04:47 Meeting: Browser Tools- and Testing WG meeting, Thursday 9 November 17:04:58 q+ 17:04:58 Present+ jgraham 17:05:02 present+ ato 17:05:02 present+ jimevans 17:05:07 present+ clmartin 17:05:08 Zakim has joined #webdriver 17:05:10 present+ soareschen 17:05:12 q- 17:05:18 present+ AutomatedTester 17:05:23 present+ alrra 17:05:46 scribenick: clmartin 17:05:53 present+ simonstewart 17:05:57 JohnJansen has joined #webdriver 17:06:11 auchenberg has joined #webdriver 17:06:11 brrian: We are starting the meeting momentarily. 17:06:20 Present+ JohnJansen 17:06:38 juangj has joined #webdriver 17:06:50 Bbrian is in the car. I’m going to call him when we start. 17:06:58 OK 17:07:19 simonste_ has joined #webdriver 17:07:20 sho has joined #webdriver 17:07:23 present+ juangj 17:07:35 tboyles has joined #webdriver 17:07:56 https://www.w3.org/wiki/WebDriver/2017-TPAC-F2F 17:07:56 present+ 17:08:07 agenda: https://www.w3.org/wiki/WebDriver/2017-TPAC-F2F 17:08:24 ato: need to discuss what we have to complete first/prioritization of the agenda 17:08:34 alrra_ has joined #webdriver 17:08:40 present+ rbyers 17:08:58 present+ auchenberg 17:09:26 Hexcles has joined #webdriver 17:10:42 AutomatedTester: doing introductions 17:13:06 jrossi has joined #webdriver 17:13:19 lucast has joined #webdriver 17:14:35 AutomatedTester: Moving on to the next item in the list, we have a state of the union so we can describe where we are 17:14:37 titusfortner has joined #webdriver 17:16:05 simonstewart: We are currently at candidate rec. in order to transition from cr to pr (proposed rec) we need the w3c to give us the thumbs up. 17:16:08 snishimura has joined #webdriver 17:16:32 simonstewart: to do that we need proof of interoperable implementations of the standard. we have w3c versions of the protocol via iedriver and geckodriver 17:16:36 JohnJansen_ has joined #webdriver 17:16:37 jgraham: do we have a url? 17:16:59 simonstewart: we do and david will get you those. we need to come up with a convincing argument for why this is good enough or we need more demonstrations of interoperable implementations 17:17:06 simonstewart: that's where we are 17:17:20 simonstewart: do you have anything else to add david? 17:17:44 AutomatedTester: I don't think so. we have other things we want to move forward on but we want a better understanding of the process before we do that which is why there are a large number of pr's on the GitHub repo 17:17:55 AutomatedTester: they're on a separate branch 17:18:12 jgraham: for example we're waiting on new features that can be merged however they all need tests 17:18:23 Test results can be found here: https://w3c.github.io/webdriver/results/2017-10/html/all.html 17:18:39 ato: to expand on what jgraham just said, we now have a policy that any change to the spec needs to be coupled with tests going into the web platform tests which seems reasonable as we now have our test suite up and running 17:19:37 ato: I wrote an email to the mailing list because as an implementor i'm not concerned about it moving to rec so much as having a living document that reflects the current reality. there are pr's in the queue that actively prevent marionette from implementing and it's only going to get worse. automatedtester branched off so we can merge things from the queue into that branch 17:19:45 rbyers: i assume the test match the master branch? 17:19:50 ato: that's correct 17:20:01 rbyers: what are firefox's results? 17:20:09 simonstewart: I've posted a link to that 17:20:34 JohnJansen has joined #WebDriver 17:20:34 AutomatedTester: that's where we are currently. the key part is moving forward we need to see where everyone's implementations are 17:20:41 There's also live results here: https://wpt.fyi/webdriver 17:20:46 brendyna has joined #webdriver 17:21:01 AutomatedTester: we can see between geckodriver and iedriver what's passing/failing. feel like it's doing a bit of disservice as we don't have something for chrome 17:21:18 AutomatedTester: or for edge or for safari, we should expand on that 17:21:37 https://w3c.github.io/webdriver/results/2017-10/html/all.html 17:21:50 JohnJansen: mind pasting the link for the results? 17:21:59 simonstewart: that's really easy to generate btw 17:22:04 jgraham: if you want we can project the results 17:23:19 AutomatedTester: i'll start with geckodriver implementation. for the most part we are doing quite well. we've been from the wd spec tests passing a large majority of it. there are a few parts where some things have changed and we need to fix those up but in general terms it looks like if we kind of implement a major feature of the specification our implementation results goes up quite significantly which is around alert handling 17:24:06 AutomatedTester: which we don't have support for yet. it is a priority and we are going to be working on it sometime soon. i'm not sure how much detail people would want to go into from geckodriver's point of view but feel free to ask any questions on what you feel might be missing. i do think in general terms that the test suite needs to be expanded where possible because we need more coverage/better coverage 17:24:35 jgraham: there's two things, one is do we think that the testing could be better? yes. do we think that that should be a prerequisite? 17:24:50 AutomatedTester: no i don't think we should gate necessarily on this being a full test suite 17:26:31 ato: can i expand on that. as AutomatedTester said we are passing a majority as we wrote them, but i do suspect as more vendors right more tests will run into problems. over the last year we have made some strides on the spec, navigation, page load strategies, pointer interactability with help from google for edge cases 17:27:14 ato: in addition to that in the past year we've done lots of refactoring on how marionette does window tracking 17:27:32 ato: I've seen the light and think we'll make progress into the next year 17:28:04 Ah, I forgot to talk about wpt.fyi. 17:28:44 rbyers: let me do a quick framing from google. big picture - we aren't investing enough. this group knows sam, he's no longer at google. john started recently on our interop team but that focuses on our interop tests. i think we should be investing more but i want to understand the arguments/where everything else is to sell back to the larger org. with that john has been working on webdriver 17:29:15 kereliuk: one of the things that took a while is actions 17:30:18 kereliuk: i have to go through all the commands in our current implementation and verify that they conform to the spec. a lot of the code in chromedriver is written by people i have to track down. aside from that the next steps from me would be (once that is merged/good) is making sure i can get a good sense on the interop suite. ran into some issues, there's a lot of overhead to that like set window rec 17:30:29 kereliuk: very soon we should be able to have a nice interoperable implementation in the next 2-3 months 17:31:11 simonstewart: one of the things we've tried to do with the spec is make the delta between the json wire protocol/w3c as small as possible. new session/actions are where we diverted. a successful result for instance look the same. 17:31:31 simonstewart: hopefully when kereliuk says you need to go through and review that it's mostly painless. 17:31:46 kereliuk: I've done a solid 50% of that and most of what I've encountered is around error codes/error messages 17:31:57 jimevans: we don't properly check for the tlbc being closed 17:32:07 kereliuk: setting timeouts is different 17:32:09 simonstewart: yeah 17:32:32 kereliuk: should be some fixes in the next release for the ruby bindings 17:32:46 kereliuk: if anyone has any specific questions please ask 17:32:52 kereliuk: i'm the one who works on chromedriver right now 17:33:06 simonstewart: would you like if i flipped the selenium project to run the w3c tests against chromedriver? 17:33:14 AutomatedTester: how would one do that for chromedriver? 17:33:21 ato: i don't think a selenium discussion is relvenat 17:33:39 jgraham: a lot of the fixes won't be there as we're using the latest release chromedriver and not the latest master build 17:34:18 kereliuk: i want to have nightly release for a project like wpt. they are available now but you have to login with a google account. we did this so we could fix wpt quicker. 17:34:33 ato: sounds like there is a little plumbing we need to do 17:35:11 jgraham: for wpt.fyi in particular as some people are interested in the conformance report more than that, there's a url we can get at that has a link to the nightly and that is kept up to date and kereliuk could consider providing the same 17:35:43 rbyers: we should also be clear that at the moment our priority is not to pass all the wpt (web platform tests) but ensuring we can automate wpt with webdriver, which is why we did pointer events first. 17:35:50 rbyers: tell me if you think that's the wrong priority 17:36:27 alex: not on irc, i represent CoSmo, we develop a tool called kite to test for webrtc. we want to test with webdriver 17:36:51 alex: don't know you guys yet so come meet me at the break so we can work together on bugs when we find them for webrtc testing 17:36:56 ato: are we done with the chromedriver update? 17:36:57 https://bugzilla.mozilla.org/showdependencytree.cgi?id=721859&hide_resolved=1 17:37:42 dr_alex has joined #webdriver 17:38:34 JohnJansen: for edge we have an interesting case for wpt.fyi in that our webdriver has to match the branch/build we're testing against. we have fairly current availability on browserstack but there are still some hiccups but i can submit them locally and get the results. i have a guy debugging it right now back in redmond. i think the tests do a check for the session to see if it's a w3c session and if it's not it'll stop. we'll pass 80% right 17:38:34 now but we're not w3c compliant. 17:38:49 JohnJansen: we're at about 80% but i don't know if that accounts for the current failures 17:39:32 jgraham: for what it's worth previously for chrome i was happy to add a hack to wptrun which is what wpt.fyi is using in the tests to say you can start an old style session so you can have the tests run. in the end chromedriver fixed it but i'm personally not opposed a failure in new session fails the new session tests not stopping the rest from running 17:39:50 ato: i think for slightly different reasons that making everything run on wpt.fyi is the right priority for the working group 17:40:05 jgraham: i think having it run there is relevant for moving the specification forward but it's just good in general 17:40:20 rbyers: when you change code you want to see how that impacts results. 17:40:38 rbyers: can't see how you would move forward without those results. 17:41:15 ato: not disagreeing but we have internal tests we pass that fail in wpt.fyi because of issues in wpt.fyi 17:41:42 JohnJansen: wpt.fyi is new so we can't rely on it yet for results 17:42:14 jgraham: i don't think the people who are working on making the drivers better are not the same people working on bug fixing wpt.fyi. it makes sense that we both have people work on the driver to make the conformance better and also working on wpt.fyi 17:42:36 jgraham: i mean the shared testing stack for wptrunning, the fixtures, the build port, etc. 17:43:24 AutomatedTester: we can finish discussing wpt.fyi in a minute, want to get through impl status 17:44:11 JohnJansen: we need to prioritize. we've been looking at internally running the tests that exist on the w3c GitHub wpt repo as well as our internal so we make sure we don't break things as we move forward. i have no worry about the high level interop, it's in production/being used by lots of teams across msft. 17:44:26 JohnJansen: not concerned with rec moving forward/being able to be interoperable it's just a matter of prioritization/time 17:44:34 AutomatedTester: any more question for john? no. 17:44:45 brrian: i'm here now 17:44:56 JohnJansen: we were doing status, what is apple's impl status? 17:45:34 brrian: not there yet but it's started. we'll be using the same engine hooks that the gtk driver uses. 17:45:56 ato: we should get an update from jim 17:46:10 GTK WebDriver: https://blogs.igalia.com/carlosgc/2017/09/09/webdriver-support-in-webkitgtk-2-18/ 17:46:13 jimevans: one of the biggest challenges was that for a while the wpt tests used a js construct that ie didn't support 17:46:26 jimevans: got some stuff he needs to fix and get merged back in 17:46:38 jimevans: other than that it's a matter of allocating the time to fix up the bugs that are the failures in the test 17:46:57 jimevans: i'm committed to getting it done. if there is a failure in the tests right now then it's a bug. 17:46:58 JohnJansen: 17:47:15 JohnJansen: do you know any that can be fixed? are you worried about risky bugs/ 17:47:20 jimevans: you mean bugs from the impl standpoint? 17:47:23 JohnJansen: yeah 17:47:34 jimevans: no, only a couple that are real challenges such as fullscreen 17:47:45 boazsender has joined #webdriver 17:47:54 ato: i think that should be fine as the fullscreen endpoint is one of the few commands we allow an error if it's not supported 17:48:09 jimevans: right, i don't think i have anything blocking my impl. it's just a matter of fixing bugs. 17:48:26 jimevans: nothing i know of that would cause regression behavior that i know about 17:48:39 rbyers: can we also hear from the people using webdriver 17:48:48 rbyers: things like how well it's meeting needs in terms of functionality 17:49:13 rbyers: i'm trying to understand separate from moving the spec to rec how well we're doing 17:49:43 ato: it's a good question but the only impls we have right now are geckodriver/iedriver. most of the bugs we've had in the last 12 months have been due to selenium problems such as something hasn't been wired up in geckodriver or selenium 17:50:38 simonstewart: i think one of the things that's really important here is from a users point of view they're using selenium, they don't care about the protocol. they don't care if it's json wire of w3c, it all just works. the actions api are a significant step forward. 17:50:53 ato: the actions api is what we inherited from before in that selenium hasn't exposed everything 17:50:56 simonstewart: the java ones do now 17:50:59 ato: excellent 17:51:18 simonstewart: you can do new actions.tick and you can specify anything you want and it will run at the same time. 17:51:25 rbyers: that's not supported in any browser yet right? 17:51:34 simonstewart: geckodriver/iedriver support it and soon chrome 17:52:10 AutomatedTester: the new design is awesome because we can do new things. 17:52:18 jgraham: should we hear from the people using it now, we've gotten derailed 17:53:33 juangj: it's not perfect yet. it may be that complex gestures work with the new api but until it works in every browser people aren't interested in using it. from surveying existing actions users no one is making an action change longer than about 3 things as it's complex/risky. moving forward that should improve and it should meet peoples needs. rbyers mentioned people wanted pinch gestures and the like. optimistic about it meeting peoples 17:53:33 demands but that's still in the future. 17:53:54 juangj: there isn't a good way in expressing that in the old apis so until the new things are ready they're hesitant to move off of the old api 17:54:33 JohnJansen: from sharepoint they aren't ready to move off of it/emails i have from sharepoint guys they're happy with how it works right now and aren't keen on putting risk into the system at the moment until later. 17:54:41 rbyers: i feel like we're de-railed on actions 17:56:09 rbyers: how is adoption going for webdriver across google juangj ? 17:56:30 juangj: mobile is the biggest complaint we get, with mobile it's touch actions. as far as other things it's permission apis/geolocation 17:57:06 juangj: similar kinds of things where there is a user prompts outside of the DOM/in the browser chrome. although those aren't really things you need to cover in the test. 17:57:10 jgraham: you can disable that in chrome yeah? 17:57:11 juangj: yeah 17:57:24 simonstewart: fixing that comes under the door hangers 17:57:33 juangj: that particular feature you wouldn't expect webdriver to addres 17:57:36 ato: it's on the agenda 17:57:39 https://www.w3.org/wiki/WebDriver/2017-TPAC-F2F 17:57:40 https://www.w3.org/wiki/WebDriver/2017-TPAC-F2F 17:57:45 JohnJansen: can someone paste the agenda 17:58:04 RRSAgent: make minutes 17:58:05 I have made the request to generate https://www.w3.org/2017/11/09-webdriver-minutes.html AutomatedTester 17:58:24 juangj: when you say are people successfully using it? yes but they're coping with the features that are available. if there are grand features that people wish existed/have dreams they can do something they have given up as this is what we have/what we can do now 17:58:34 rbyers: what about interop, do they have issues with cross browser 17:59:01 juangj: from a webdriver perspective no, for interops sake most people expect that they will work across browsers and they mostly do except that they use the legacy firefox driver. among people who have migrated interop has been good. 17:59:19 simonstewart: how many selenium tests are still being run. when i left google every team had a project being run. 17:59:38 juangj: there are no tests using selenium, they use the api 18:00:02 juangj: there are several thousand webdriver tests 18:00:46 JohnJansen: internally the thing that i hear about the most is not a bug in webdriver. we've joked about having a conversation in visibility. the edge browser itself reports things as being obfuscated/not seen on the screen. displayedness is tough. 18:01:39 ato: like i said earlier to do with pointer interaction, we had google run geckodriver with a special capability that has the new pointer work and we have found more problems but those aren't problems in geckodriver but problems in the spec/impl of other things 18:01:52 rbyers: how often does juangj take new chromedriver release 18:02:19 juangj: they do cause problems, we don't take new chromedriver drops as quickly as kereliuk updates as they cause problems. if there's a bug fixed then someone inevitably was accidently relying on that bug. 18:02:28 jgraham: do you still have people using firefox 47/old firefox driver? 18:02:36 juangj: yes about a quarter of them are still using the firefox driver 18:03:25 juangj: some people were waiting of geckodriver to implement. mostly it's people procrastinating. there are a lot of tests relying on pointer interact ability not being implemented. 18:03:41 AutomatedTester: moving on to sauce labs 18:04:17 titusfortner: i think most of the interop things i see are timing issues between how the DOM is rendered. i don't anything specific to the protocol that causes issues. most users swapped from firefox to chrome. 18:04:24 titusfortner: maybe that will move back with w3c, i'm not sure 18:04:35 juangj: i see people moving from firefox to chrome as they wanted to avoid the change. 18:04:54 titusfortner: a lot of people defaulted to firefox when running locally because it didn't require an extra download. 18:05:25 simonstewart: i think people find the upgrade process from legacy firefox/selenium to be tough. they change everything at once and they get burnt and blame geckodriver unfairly. 18:05:35 juangj: it's a bit daunting, there are some cases where you can't change only one thing at a time. 18:05:47 RRSAgent, make logs public 18:05:53 AutomatedTester: are there any other questions for sauce labs 18:06:35 AutomatedTester: mike since you're back, we have an implementation updates/how people are working. people have offered to create impl reports. what are the things required of this group to move forward? what will be expected? how do we make everyones life simpler 18:06:41 RRSAgent: make minutes 18:06:41 I have made the request to generate https://www.w3.org/2017/11/09-webdriver-minutes.html ato 18:06:57 MikeSmith: we need to evaluate our exit criteria and see how we are doing 18:07:00 Chair: AutomatedTester 18:07:04 MikeSmith: can we look at the exact language in that 18:07:38 rbyers: it's similar to other groups. every test must be passing in at least 2 places. 18:07:58 AutomatedTester: so there are a number of things that are failing at the moment or we need to fix our failures. 18:09:23 jgraham: if you look at the current impl report there are two classes of things you see. one is things that are unimplemented, you're not going to convince anyone that something without two implementations can go to rec. if the goal is to get to rec in the shortest time possible we should drop the things that aren't implemented. 18:10:00 jgraham: for the other things we have implementations but we have a strange situation such as some of the tests failing in iedriver not because of the tests but because iedriver is buggy. 18:10:56 https://w3c.github.io/webdriver/results/2017-10/html/all.html 18:11:07 jrossi: i agree, one thing we've done in other working groups in the second phase is the opportunity to provide comments. for pointer events we didn't have two tests passing because it was a browser bug but if that's the case then plh was okay with that. 18:11:29 https://w3c.github.io/webdriver/results/2017-10/html/less-than-2.html 18:11:52 AutomatedTester: i don't feel like we need to remove things to ship. 18:12:31 jgraham: it depends on what you want to happen. if you want to reach rec before the time it would take to implement those features. it's quite meaningless to do. you move them from the rec to the living doc. 18:12:41 https://w3c.github.io/webdriver/results/2017-10/html/complete-fails.html 18:13:02 jgraham: i agree aesthetically it's not pleasing but the reality is that we'll be gated on getting to rec on having those things impl'd. 18:13:27 JohnJansen has joined #webdriver 18:13:48 rbyers: we did that for chrome, moved things that didn't work out of spec into incubation 18:13:54 simonstewart: seems like it's mainly around alert handling 18:14:27 jgraham: there are issues with the report 18:14:37 simonstewart: we need to update our drop from wpt 18:15:12 ato: about user prompts it wouldn't be extremely hard to add to firefox but when it comes to returning web windows/frames the serialization of that when returning from execute script, we won't be able to do that in a reasonable time 18:15:29 simonstewart: sounds like we should yank execute script window handles from level 1 18:15:37 simonstewart: and leave alerts there 18:15:54 jgraham: if we do that we need to get commitments 18:16:04 simonstewart: agreed we need to chat with people setting priorities 18:16:23 ato: don't care either way as we have something that works but the safe call seems to be yanking from level 1 and put it in master 18:16:32 rbyers: you should always yank it and if someone implements bring it back 18:17:01 simonstewart: the user expectation around returning window id's from script isn't there. 18:17:05 simonstewart: prompts however are 18:17:20 titusfortner: different drivers implements that differently 18:17:24 simonstewart: they all do it 18:17:28 titusfortner: chrome doesn't 18:17:38 ato: if that is true than that puts us in a slightly different position 18:17:47 titusfortner: we have bugs around this 18:18:17 jrossi: one of the things we did in pointer events was amending the test results table to add in link to everybody's issue tracker to see what's failing 18:18:40 ato: you mean for making the report more valuable to plh? 18:18:53 jrossi: more in a way to track where the pain points are but it would also be helpful for reporting to plh 18:19:44 MikeSmith: ideally as far as test results go we don't want to see any red. right now superficially for anyone who doesn't know anything about webdriver won't be confident about those results as there is a ton of red there. you can explain individually why it's there or. there are two things we can do is either yank the things that aren't there and re-generate the results and go back to cr 18:19:55 MikeSmith: if we make substantive changes to the spec we have to go back to cr 18:20:09 MikeSmith: we could make the argument that removing things shouldn't require going back to cr 18:20:23 MikeSmith: we need to wait 4 weeks after publishing a draft for comments to come in 18:20:44 MikeSmith: when we remove features from the spec it invalidates previous reviews. when someone approves the cr based on old version they need a heads up on us removing features. 18:20:53 MikeSmith: in practice people may not care but it's more time 18:21:16 MikeSmith: we're out of time already, so we'll need to take more time anyways, it's just a matter of what we need to do 18:21:34 MikeSmith: we can remove those features and restart the cr with the new test results which may mean we get through cr fairly quickly and move on 18:21:42 simonstewart: we should have a convo around priority setting and find out 18:21:57 AutomatedTester: we remove it from the spec and move it into master, it seems silly to remove the tests and then regen the report. 18:22:11 MikeSmith: we can keep the tests but to generate the impl report we'll need to generate from a subset of the tests 18:22:37 jgraham: right that's trivial, keep a set of tests that we know apply to level 1 and filter the rest out 18:23:01 MikeSmith: right we just need to filter them out. if we have a few cases of red that's okay but we need the report overall to look good/green. 18:23:08 ato: for example ie11 has a bug that's okay? 18:23:31 MikeSmith: right we can have that ready to go but normally this is explained over the phone and as long as we're confident in that explanation we should be okay 18:23:50 jgraham: sounds like we should get the latest chromedriver into the impl report as it might add passing results for tests 18:24:07 kereliuk: at least publicly you can go to the chromedriver website and click a link 18:24:18 jgraham: someone should generate those results 18:24:23 rbyers: is it different from what we have on wpt.fyi 18:24:30 kereliuk: trying to think of what was released previously 18:24:43 jgraham: wpt.fyi downloads it for each run 18:24:57 Latest stable release: https://sites.google.com/a/chromium.org/chromedriver/downloads 18:24:58 MikeSmith: okay so as far as discussion with plh goes he said he can be available after lunch. he can be available at 1 18:25:04 Latest master: 18:25:14 MikeSmith: he has something at 3 so if not 1 then some time before 3 18:25:15 https://sites.google.com/a/chromium.org/chromedriver/chromedriver-canary 18:25:31 MikeSmith: it's 10:30 so we should break? 18:25:38 jgraham: why are we still here? 18:25:41 AutomatedTester: we'll be back at 11 18:25:48 RRSAgent: make minutes 18:25:48 I have made the request to generate https://www.w3.org/2017/11/09-webdriver-minutes.html AutomatedTester 18:25:55 amending earlier statement that “there are no tests using selenium” — this is not accurate as I misinterpreted the question. The vast majority of browser tests that we run use WebDriver, and virtually all of those tests use Selenium. There may be a handful of people attempting to use the WebDriver API directly but they’re negligible. 18:26:04 for whatever that's worth. 18:32:06 Hexcles has joined #webdriver 18:59:02 Hexcles has joined #webdriver 19:02:10 boazsender has joined #webdriver 19:05:01 soareschen has joined #webdriver 19:07:19 we're resuming 19:07:31 tboyles has joined #webdriver 19:07:32 brendyna has joined #webdriver 19:07:32 AutomatedTester: moving on, the next steps are to fix up the agenda and items that we want to discuss 19:07:38 https://www.w3.org/wiki/WebDriver/2017-TPAC-F2F 19:07:40 titusfortner has joined #webdriver 19:07:56 AutomatedTester: there's a whole bunch of things at the bottom that people would like to discuss at some point today 19:08:38 AutomatedTester: We're going through the topic bank and move them up to what we think are important and flesh those out 19:08:50 isobe has joined #webdriver 19:09:30 clmartin: can we move new tab/delete history up, they're not controversial 19:09:38 simonstewart: in an equally uncontroversial world, file upload 19:09:49 ato: just to make it clear to everyone, we're now talking about features that will make it into webdriver in level 2 19:10:03 ato: this will be stuff that if potentially agreed to will go into the master branch 19:10:25 JohnJansen: for clarification, the full path to the branch that has v1 is that a branch or a url? 19:10:29 jgraham: what's the question? 19:10:38 JohnJansen: i want to make sure i'm looking at the v1 version of the spec or the v2 version of the spec 19:10:39 https://github.com/w3c/webdriver/tree/level-1 19:11:00 clmartin: master is latest? 19:11:03 simonstewart: master is the living spec 19:11:16 jrossi: do you want to add to the v1 branch, change the title to say level 1? 19:11:26 ato: i have an action item to fix the url 19:11:35 action: ato fix the urls for the spec 19:11:51 AutomatedTester: computer problems :( 19:12:06 simonstewart: are you building Mozilla? 19:12:09 AutomatedTester: i might be :) 19:12:23 AutomatedTester: stopping from the top, copy/paste/selection 19:12:41 rbyers: are we still talking about the agenda? do we want to summarize what we're going to do with devtools 19:12:58 simonstewart: can we break these into things that are amendments, brand new features and amendments to existing features 19:13:08 simonstewart: as right now we're randomly cherry picking 19:13:25 jgraham: if rbyers is here for the moment to talk about the debug protocol we should do that 19:13:54 rbyers: we're talking WebVR at some point, would we want this group to discuss the bigger picture of test adoption requirements? 19:14:03 jgraham: let's prioritize that first then 19:14:12 AutomatedTester: we'll start with re-chartering and proposed debug protocol stuff 19:14:33 AutomatedTester: as part of when we started the work to move to pr, i created the draft for re-chartering this group for this work 19:14:44 AutomatedTester: one of the things i have suggested which used to be part of this group was how we do debug protocols 19:14:58 I’ve updated the agenda: https://www.w3.org/wiki/WebDriver/2017-TPAC-F2F#Thursday 19:15:07 AutomatedTester: wilhelm originally added it for the opera debug work and now I've added it for the cdp 19:15:14 Topic: Rechartering and proposed debug protocol standardisation 19:15:32 AutomatedTester: last night there was an informal chat on if we were to do this how it would look. the consensus was to remove it from the working group charter and move it to an incubator group and build it out that way 19:15:55 q+ to speak about rechartering 19:15:57 AutomatedTester: because while people agree that working towards a standard for the debug protocol is what we want, the process around what we want to do in a meaningful way isn't there yet 19:16:07 AutomatedTester: which is what's expected when trying to do things through consensus 19:16:20 Christian has joined #webdriver 19:16:21 AutomatedTester: from that point of view we'll be setting up an incubator group, working with rbyers and others to set this up 19:16:25 MikeSmith: by that you mean a community group? 19:16:27 AutomatedTester: yeah 19:16:56 rbyers: key thing i wanted to see is, we create community groups when we want to collaborate, and the goal is to have a place where we can discuss/share docs/etc. 19:17:18 auchenberg: should we go ahead and make a suggestion here that we create an incubator group and each vendor can say whether they support that? 19:17:41 ato: yes and mike will talk about this later but that the debug protocol won't be a part of the re-charter 19:22:57 q+ 19:23:18 q- 19:23:26 ack MikeSmith 19:23:26 MikeSmith, you wanted to speak about rechartering 19:23:32 rbyers: we see good engineering as being more important as it needs to come first before the process/legal stuff 19:23:39 rbyers: the DevTools team in particular wants us to focus on code 19:24:42 jgraham: there's a few things there, one is the debug protocol stuff which is unrelated to the existing webdriver work which there is agreement on that happening separately. and then the other is that mike is saying we could also move all of webdriver into a community group and not have a working group until later when ready to publish. i'm not clear on what the tradeoffs are there on whether we can still have meetings 19:24:49 MikeSmith: we can still have space for those at TPAC 19:25:03 ack jrossi 19:25:16 jgraham: my understanding is that the space is limited for that 19:25:27 MikeSmith: no it should be viable. jrossi has a question 19:25:34 jrossi: we'll need to re-charter 19:25:38 MikeSmith: no we just need to extend 19:25:56 jrossi: i view the webdriver work as very different from cdp. cdp is very nascent, webdriver is fairly mature from an adopted perspective. 19:26:04 q+ 19:26:11 q+ 19:26:37 jrossi: our perspective would be continue webdriver in a working group but the DevTools stuff on the other hand is a perfect example of what should be incubated 19:26:50 AutomatedTester: webdriver has goals to move forward with 19:26:52 q? 19:27:36 jgraham: now that there exists a spec and it's clear what the requirement is for the editing process, the group has now learned how to write a spec/tests, we can potentially focus on a few things that everyone has agreed to implement in the short term and publish a new rec more often 19:28:01 jgraham: if we believe we can move towards that model then it doesn't make sense to shut down the working group and then spin it up again. it just makes sense to publish stuff more often. personally i'd like to see it go in that direction 19:28:11 AutomatedTester: i'd like to see it go in that direction for webdriver 19:28:12 ack ato 19:28:19 AutomatedTester: ato 19:28:30 ato: what is the cost from Microsoft to move from a working group to a community group? 19:28:52 jrossi: any group we join requires a legal process, it's totally doable, but webdriver's scope/deliverables are fairly straightforward/rubber stamped 19:29:05 jrossi: if there was a good consensus we could make that happen 19:29:15 rbyers: if we do incubation in the wicg there's no additional cost to the user? 19:29:24 jrossi: there is 19:31:28 ack ato 19:31:29 ato: i think speaking for myself that over these 6 years there has been overhead in having a wg (working group) for webdriver and the value isn't clear to me. however i see jgraham's point that we now have the right information. so if we adopt a model where we can ship faster that seems reasonable. that said the wg model for webdriver has historically been important because we started with this not having all the browser vendors onboard. 6 19:31:29 years ago Microsoft/apple were very different so historically having the patent protection was important. if browser vendors are happy i'm okay to continue the current model, i just want this to move forward and have investment from everyone 19:31:32 ack auchenberg 19:31:34 AutomatedTester: auchenberg 19:31:49 q? 19:32:02 q+ 19:32:17 auchenberg: i'd like to separate the convos here. there's one about webdriver and it's future and one about cdp and it's future. there are a lot of people here for cdp incubation. my suggestion is we move the incubation work for cdp forward and then allow the webdriver work to continue after that. 19:32:25 AutomatedTester: so rbyers wants the vendors to agree 19:32:33 rbyers: i just want to see who want to work in the wicg 19:32:54 ato: i'd note this group doesn't have everyone who's interested in working in the wicg. we have a DevTools team and we don't want to speak for them. 19:33:01 rbyers: i just want to see who has interest 19:33:10 jgraham: the point is to get the official consent 19:33:38 brendyna: Microsoft agrees 19:33:40 Resolution: CDP is going into an incubator group/CG. There is sufficient support from vendors and independent parties. 19:33:43 rbyers: Google agrees 19:33:48 titusfortner: Sauce agrees 19:33:56 boazsender: Bocoup agrees 19:33:57 q+ boazsender 19:34:01 ack ato 19:34:08 rbyers: next step is get a repo created and continue the convo on an email thread 19:34:13 q- boazsender 19:34:21 JohnJansen: do community groups have chairs? 19:34:34 rbyers: no, wicg does but not per subset 19:34:40 brendyna: one last question, do we have Mozilla interested/ 19:34:51 AutomatedTester: i think so but since Harald isn't here I don't want to speak for him 19:35:01 AutomatedTester: the general consensus is yes but need to verify 19:35:05 auchenberg: any comment from apple? 19:35:11 brrian: i'd need to ask the DevTools team 19:35:20 AutomatedTester: fair, we got the two we needed and we can move forward 19:35:24 jgraham: we can move forward now 19:35:41 rbyers: second one was about the process for other groups to ... 19:35:47 ato: one second, can we have a resolution on what we're doing with this wg 19:35:54 JohnJansen: yeah 19:36:13 jgraham: it sounds like Microsoft want to keep publishing recs and that therefore means there has to be a wg 19:36:28 JohnJansen: we care about recs 19:36:38 RRSAgent: make minutes 19:36:38 I have made the request to generate https://www.w3.org/2017/11/09-webdriver-minutes.html AutomatedTester 19:36:47 jgraham: so does it make sense to continue the wg or drop out and spin something else up 19:37:15 JohnJansen: keep the working group, don't drop other things. we should extend the charter in a way that allows apple/Microsoft to continue their participation in a way that it's royalty free 19:37:33 AutomatedTester: are we happy to do the extension? Microsoft has agreed, Mozilla will, my sense is apple needs it 19:37:38 brrian: we need it 19:37:40 AutomatedTester: that's fine 19:37:54 jrossi: do we want to re-charter for what we do after webdriver 19:38:10 jgraham: MikeSmith what's the difference between extending and re-chartering? 19:38:31 MikeSmith: we need to extend first, then get to rec, then declare victory. that's separate from re-charter 19:38:48 MikeSmith: after we extend, if we're going to have another charter. we can't extend the same charter we've had for 6 years. 19:39:04 MikeSmith: i'd also say it's not a given that if we decide we want to re-charter, that the w3c will say we can re-charter 19:39:17 MikeSmith: we'll need the w3c to decide if it's something we want to re-charter for 19:39:44 MikeSmith: w3c will take into account if vendors want to continue, and if we do then that'll be take into account 19:39:59 AutomatedTester: how do we do webdriver extensions for other wg's to add to webdriver for testing 19:40:20 AutomatedTester: will it be better to have a wg for that scenario or will this fizzle out and hope you speak to the right people? how does that play out? 19:41:08 MikeSmith: it doesn't make any difference. e.g. in reality the technical group for html has been outside of the w3c so it's quite possible to have solid technical communication about work that isn't in the w3c. whether it helps across wg's i'm not sure it makes a difference. 19:41:37 Hexcles has joined #webdriver 19:41:45 AutomatedTester: what i mean is, potentially there could be no one to do those technical reviews for other wg's 19:41:58 jgraham: the question is does the work depend on there being a wg? 19:42:02 jgraham: i think the answer is no 19:42:23 AutomatedTester: WebVR as an example. will it be easy for a technical review to have a wg to reference? 19:42:34 MikeSmith: i don't think that will matter 19:42:49 AutomatedTester: if it doesn't matter then that is fine 19:43:04 jrossi: I've been in groups before where there were questions about the state of other specs 19:43:55 MikeSmith: the current policy does favor on normative reference/specs published in w3c space. the gist is from the w3c side the group doesn't have to be in complete agreement that a wg is necessary but we need a least a couple of people feeling strongly about a wg being necessary to tell us that 19:44:48 AutomatedTester: okay, we at least got 2 groups that could say that. apple want an extension. we want to move to a level 2 and have a list of goals. to me i don't think re-chartering sounds like a bad idea. we have goals we can work towards/ship. i agree with jgraham that we'd want to do things faster but to our defense we've been learning a lot along the way and i think we can now work faster moving forward. 19:45:00 AutomatedTester: so i guess if people are happy we can put it to a vote 19:45:08 JohnJansen: we should vote on the extension and then the re-charter 19:45:24 jgraham: does anyone reject a renew? 19:45:34 Resolution: Agreement to extend the charter until the specification goes to re. 19:45:36 +c 19:45:56 s/re./rec 19:46:04 AutomatedTester: we'll have a mailing list later about re-charter 19:46:10 jgraham: sounds like though in the room that's what people want 19:46:31 JohnJansen: from a policy perspective does MikeSmith take an action? 19:46:32 MikeSmith: 19:46:35 MikeSmith: yeah 19:46:45 Action: MikeSmith to follow up on renewing the charter 19:47:25 jgraham: the sense in the room is we're on board for re-chartering even if that's later 19:47:34 JohnJansen: next thing we need to do is decide if we can get to rec in 3 months or 6 months 19:47:42 JohnJansen: last time was 6 months and that was long 19:47:53 jgraham: think we're running out of good will 19:48:06 jrossi: I think that's why having a re-charter plan will be meaningful 19:48:41 ato: as long as the w3c is okay with us then we can continue otherwise we need to go somewhere else 19:49:16 MikeSmith: we're happy to continue having the wg but it's been delayed for quite a while/longer than it should have but i blame myself for not driving this. 19:49:36 MikeSmith: I need to come back with an answer and say we have strong support for keeping the wg going and that we won't make the same mistakes 19:49:40 MikeSmith: but we got that so we're okay 19:49:50 jgraham: specifically for charter extension do we need to pick an amount of time? 19:50:13 MikeSmith: we should say 6 months, plh may have problems but we have 4 weeks after we return to cr and then more time after. realistically we need more time 19:50:18 JohnJansen: plus holidays, 6 makes sense 19:50:48 jgraham: practically, to set the right exptectations around decisions. that gives us a maximum window of time to make adjustments like getting implementations done and/or removing stuff from the spec 19:51:05 titusfortner has joined #webdriver 19:51:08 jgraham: seems like 2 months of just process, which means that, with buffer, probably anything we're talking about should be implemented in the next 2 months 19:51:35 jgraham: so in regards to removing things or can we do it, it will be can we get it done by end of the year. mid january 19:52:09 jgraham: if this is a thing implementers are going to do quickly then we don't need to remove it, otherwise we do 19:52:22 JohnJansen: we also need to fix bugs in the test which cause us to think we're failing things we aren't 19:52:46 jgraham: for the details i agree, for other things like user prompt handlers, when people have this conversations had elsewhere, the framing people need to keep is that we have 2 months 19:53:30 scribenick: boazsender 19:53:40 Topic: Hooks into WebDriver from other specs 19:54:52 rbyers: the next item is, as we're pushing for web-platform-tests be the only way we do integration tests, and the biggest blocker has been automation. and we finally have a way to call testautomation.click() and it works. now we want to open the flood gates, to give a path for new features in chromium to use webdriver extensions. 19:55:09 q+ 19:55:33 rbyers: so the advice we've given for now is, look what we did for click, coordinate with BTT group, and write a web driver extension spec. 19:55:45 scribenick: clmartin 19:56:18 rbyers: wanted to make sure this group was okay with that 19:56:40 AutomatedTester: this group agreed in TPAC/japan that this group wants to do that 19:56:45 boazsender: wanted to do? 19:57:38 AutomatedTester: the idea was the group would do extensions to webdriver. obviously some things are webdriver specific that possibly people will need help with but ideally just sending it to the mailing list and we can help will get things into somewhat of a process without it being to heavy handed. ideally it won't be heavy handed at all. 19:58:13 rbyers: i'm hoping to make this work effectively that we're close to telling every engineer that you can't make changes without wpt and we'd need webdriver to be ready 19:59:04 jgraham: i think this is a question about the policy here. if it doesn't make sense for web developers to use they should use dom apis, but we're also bad at what web developers needs. Bluetooth has a dom api but there are use cases to test Bluetooth that maybe should end up in webdriver 19:59:51 q+ boazsender 19:59:54 clmartin: if it's vendor specific it can also go behind a vendor specific webdriver command/capabilitiy 20:00:07 jgraham: right but it's more about it if it makes sense for webdriver 20:00:51 ato: for existing features finally webdriver is coming into play for automating wpt 20:01:37 https://github.com/w3c/permissions/pull/151 20:01:39 ato: i think the next question is what to do for other wg's who need to test their spec. e.g. webdriver doesn't have a great story for permissions. bocoup had an example of an improvement for the permissions spec. it's very exciting. 20:01:48 https://bocoup.github.io/permissions/index.html#automation 20:02:17 ato: been trying to follow up with bocoup as there is some confusion about how they hook into webdriver. it's in the spec that webdriver wants to allow other wg to add it in their own spec 20:02:47 ato: we have a job to do on following up with wg who want to use webdriver that we have the primitives necessary to adopt webdriver. 20:02:56 ato: so far we've had issues around things like errors 20:03:21 q? 20:03:27 ack ato 20:03:33 ^the bocoup link is out of date from the current automation branch on bocoup github 20:03:34 ato: had a meeting with WebVR and they seem to have a fairly solid testing strategy as fair as i could tell and nothing that conflicts with the way webdriver works so they're going to drop by tomorrow 20:03:40 AutomatedTester: boazsender ? 20:03:45 ack boazsender 20:04:24 q+ 20:04:26 boazsender: the thing that we experienced making this proposal was a lack of clarity on where it should happen. so an agreement from this group on how to do this it would unblock a lot of other people doing this. yesterday in the testing breakout Vincent was asking similar questions on Bluetooth/usb. 20:04:51 jgraham: i think the agreement exists in principal, the idea that people should be able to extend it in their own specs isn't something people have been opposed to. 20:04:56 jgraham: are you asking for documentation? 20:05:39 ato: the way that the terminology around extension commands is currently phrased, it's about vendor extensions, but in another chapter we talk about extension commands in a different context to be used 20:05:46 ato: we need to tighten that up as well 20:06:04 simonstewart: the original idea was to use a vendor prefix for experimental commands, and then move it to the spec when you're ready 20:06:13 simonstewart: however it's also totally legit to do that in your own spec 20:07:02 jgraham: this should be clear in the spec, you must not use the extension point because it's for vendor specific thing 20:07:26 boazsender: for documentation/direction. even as early as the wicg people should be thinking about how they create a testing interface for that 20:07:32 boazsender: it'd be great to hear an example 20:08:19 rbyers: everything that comes will be standardized but part of incubation is we want it to be safe to fail. web Bluetooth is chrome only right now but we want to be able to fail but still be plausible to be a spec 20:08:35 simonstewart: so if web Bluetooth is a spec then define it there, if it's chrome specific then use the vendor specific 20:08:55 Action: simonstewart to clean up documentation on how to hook into the spec. 20:09:05 boazsender: and documentation for how to think about testing your spec 20:09:48 clmartin: we care about this looking holistic/uniform across the api 20:09:54 simonstewart: i'll clear that up in the spec 20:10:26 q- 20:10:41 AutomatedTester: ideally if a chromium engineer wants to do web Bluetooth and they write a command and JohnJansen says it needs work we can iterate on that 20:10:47 clmartin: what about if there's a disagreement 20:10:57 AutomatedTester: w3c should have process to settle disputes reasonably 20:10:59 RRSAgent: make minutes 20:10:59 I have made the request to generate https://www.w3.org/2017/11/09-webdriver-minutes.html boazsender 20:11:02 AutomatedTester: should we break for lunch? 20:11:06 lunch time! 20:11:19 titusfortner has joined #webdriver 20:11:36 soareschen1 has joined #webdriver 20:58:04 Hexcles has joined #webdriver 21:01:17 soareschen has joined #webdriver 21:06:21 soareschen has joined #webdriver 21:08:25 tboyles has joined #webdriver 21:15:16 titusfortner has joined #webdriver 21:16:47 brendyna has joined #webdriver 21:18:59 Hexcles has joined #webdriver 21:21:54 Scribe: ato 21:22:22 Topic: plh explains process 21:22:44 plh: Besides two features, my understanding is that you are almost ready to move to recommendation. 21:22:52 AutomatedTester: Yes, but not everything is green. 21:22:57 plh: There are edge cases, sure. 21:23:06 AutomatedTester: For all of those we have bugs on file, and we expect people to implement it. 21:23:14 plh: So besides these two features you would be able to move to rec? 21:23:20 JohnJansen: I believe so. 21:23:35 plh: If it makes sense to you, I can try to make sure it makes sense to the director as well. 21:23:46 AutomatedTester: We got some tests that are failing, but we have bugs on file that show that people are going to do that implementation. 21:24:15 isobe has joined #webdriver 21:24:52 ato: Was there agreement over lunch what to do about these features? 21:25:03 ato: Do we rip the features out? Would that make it easier to move to rec? 21:25:29 plh: I think you should publish without these two features. 21:25:45 plh: I am not asking you to remove it from the master branch. 21:25:54 plh: In the mean time you continue work on v2. 21:26:07 titusfortner has joined #webdriver 21:26:12 AutomatedTester: We do want to have those features. 21:26:26 plh: I would like the master branch to be the v2 right away. 21:26:28 RRSAgent, make minutes 21:26:28 I have made the request to generate https://www.w3.org/2017/11/09-webdriver-minutes.html MikeSmith 21:26:54 plh: Can you publish an editor’s draft of v2 next week? 21:26:56 AutomatedTester: Yes. 21:27:08 plh: It is independent from the CR goingto rec. 21:27:30 plh: You can publish another rec right away, if it is supported by vendors. It would not take you two years. 21:27:40 simonstewart: If we drop these two features, we could move to rec right away? 21:27:49 plh: Yes, this means the specification is not at risk. 21:28:08 plh: In two months you would get another approval from the director. 21:28:14 plh: Then you would get your recommendation. 21:28:27 plh: You will keep focussing on master and the features you want to have in the browsers. 21:29:06 AutomatedTester: If we are dropping these features and it kicks off process, it is going to be two months/four months? 21:29:10 soareschen has joined #webdriver 21:29:13 plh: I am going to give you precise dates. 21:29:51 clmartin: If we remove something from the CR, does that retrigger the CR process? 21:29:54 plh: I will ask legal. 21:30:06 MikeSmith: Is it really a legal thing? 21:30:07 plh: Yes. 21:30:17 MikeSmith: We would prefer not to go back to CR. 21:30:46 plh is showing a presentation with an astounding amount of detail. 21:32:15 plh has joined #webdriver 21:32:19 https://w3c.github.io/spec-releases/milestones/?cr=2017-11-16&noFPWD=true 21:33:17 JohnJansen has joined #webdriver 21:33:56 AutomatedTester: Thank you, but I’m not after specifics. 21:34:25 plh: 60 days exclusion opportunity last date with a PR 12/14/2017 will be January 15 2018. 21:35:12 Action: plh to check with legal if we can move to PR. 21:35:31 simonstewart: Answer today would be nice. 21:35:35 plh: I will check. 21:36:16 AutomatedTester: The next thing, if we go through this process, we also need our charter extended. 21:36:38 plh: If you can guarantee how long it will take, I am willing to argue you should get the extension. 21:36:57 plh: I wanted to know what guarantees you can offer me. 21:37:13 plh: I have invested interest in making this successful. 21:37:22 AutomatedTester: We want an extension so we can get to recommendation. 21:37:30 JohnJansen_ has joined #WebDriver 21:37:38 AutomatedTester: When, say we remove these two features, what are the potential next sticking points that might come up? 21:37:52 AutomatedTester: Not knowing enough of the process, history has shown us we have gotten stuck. 21:38:15 plh: You will have to make a choice, do you address any incoming comments in level 1 or you do so in level 2, the master branch? 21:38:24 plh: My suggestion is you address them in v2. 21:38:33 AutomatedTester: We want to get patent protection. 21:38:46 plh: But if v2 is upcoming, that is what they will see. 21:39:25 plh: The bottom line is, in the worst case scenario, you have to go through the CR period again, and we should extend the group until the end of February. 21:39:29 plh: The best case, mid January. 21:40:11 AutomatedTester: Saying we do all these things, will the dates be moved back because of Christmas or Thanksgiving or things like that? 21:40:16 plh: The tool is smart. 21:40:39 plh: Publication moratorium is built in to the tool, so it pushes the different dates back. 21:41:44 plh: If I extend the group, the next question is going to be what is next after that? 21:41:51 soareschen1 has joined #webdriver 21:41:54 AutomatedTester: We have a set of goals we want to hit. 21:42:15 AutomatedTester: We have been slow in the past, but this is because we had no idea what we were doing. 21:42:23 plh: I would _love_ if you could go to rec every six months. 21:42:56 boazsender has joined #webdriver 21:44:22 plh: Can we produce a CR, or can we go forward with a PR? 21:44:25 s/a/the/ 21:45:24 plh: That is what we need to figure out, and I will do that for you. 21:46:51 AutomatedTester: We need to finish this off, but we have general concensus that the WG will move on. 21:48:53 ato: Let us discuss the technical options. 21:49:23 scribenick: automatedtester 21:49:32 scribenick automatedtester 21:49:46 jimevans: what does Geckodriver do when there is a prompt? 21:50:09 ato: at the moment it doesnt act. We have return an error when a prompt is hit 21:50:25 jimevans: I can move the IEDriver to match how GeckoDriver does things 21:51:09 jgraham: We need to update the spec to say return an error when a prompt has hit 21:51:16 Resolution: We rip out web window, web frame et al. from the level-1 branch. 21:51:33 ato: for the frame/window returned from executescript we can remove since no one has implemented it 21:51:36 Action: jimevans to adjust IEDriver to match geckodriver’s behaviour. 21:51:58 Action: Adjust wording of user prompt handler to match behaviour of geckodriver so we can move to rec. 21:51:58 jgraham: it feels like we can have a patch by the end of today on this 21:52:20 RRSAgent: make minutes 21:52:20 I have made the request to generate https://www.w3.org/2017/11/09-webdriver-minutes.html AutomatedTester 21:53:23 scribe: JohnJansen_ 21:53:42 https://www.w3.org/wiki/WebDriver/2017-TPAC-F2F#Thursday 21:53:46 https://www.w3.org/wiki/WebDriver/2017-TPAC-F2F 21:54:04 simonstewart: break up the agenda easily 21:54:10 ... changes to actions 21:54:14 ... things not controversial 21:54:20 ... new features 21:54:38 ... let's do new thigns first then uncontroversial 21:54:44 s/thigns/things 21:54:48 ... or easy first 21:54:51 cl 21:55:01 clmartin: easy first! 21:55:04 simonstewart: ok 21:55:13 simonstewart: lists stuff 21:55:25 s/stuff/agenda items 21:55:38 ato: new tab command 21:55:45 Topic: New Tab Command 21:55:56 ato: users of selenium are working around this currently 21:56:13 ... geckodriver does not allow keyboard input to affect the os 21:56:33 ... alternative "window.open()" does not actually open a new window 21:56:51 ... so we need a primitive for enabling users to open a new TLBC 21:57:00 simonstewart: people want to do both 21:57:08 ... (new window, new tab) 21:57:31 jgraham: agree there are some cases where you might prefer one or the other 21:57:42 ... difficult to know how to talk about that 21:57:54 ... say, a browser that does not have "tabs" or "windows" 21:58:28 simonstewart: suggest if you don't have tabs/windows ignore the command 21:58:37 ato: good idea for this 21:58:53 ... what do you return for a browser that has neither? 21:59:09 simonstewart: if you are stuck with TLBC, return illegal argument 21:59:30 s/illegal argument/unsupported command 21:59:42 clmartin: and give them back a window handle id 21:59:56 ... we have hacky workarounds 22:00:03 ato: volunteering to do the PR? 22:00:15 ACTION: clmartin submit a pr for this 22:00:15 Action: clmartin to draft PR on New Window command 22:00:29 Scribe: ato 22:00:43 Topic: Delete History 22:00:47 AutomatedTester: This is from clmartin. 22:00:55 clmartin: we have a vendor specific command for this today. 22:01:10 clmartin: How can we clear out data for a fresh session? 22:01:20 clmartin: Because, with Edge, we can’t do that. 22:01:29 clmartin: We have ability to nuke the entire session. 22:01:33 clmartin: But that is too crude. 22:02:32 ato: more things than history that you want to delete 22:02:46 ... cookies is covered already 22:02:59 ... but not all browsers support all these features that people might want to delete 22:03:08 ... and allow browsers to add new things to the list of things 22:03:13 scribe: JohnJansen_ 22:03:25 ... or maybe just have history 22:03:52 simonstewart: you have cookies, maybe then cookies shoudl be in this general delete as well 22:03:57 s/shoudl/should 22:04:12 ato: I don't think including cookies in this is the right approach 22:04:25 ... even delete all cookies is just for domain 22:04:36 jgraham: localstorage as well 22:05:05 clmartin: starting point would be doing what happens when users click "Delete History" 22:05:12 ... goal is to be in a clean state 22:05:26 ... not mimic user clicking the button 22:05:39 ato: new browsers may not even have this command 22:05:53 jgraham: is the problem that Edge does not support clean sessions 22:06:30 clmartin: I've seen that users want to have a clean session at the start, plus also clear the session in the middle 22:07:03 clmartin: edge does not use a clean session, it uses current users 22:07:07 s/users/users 22:07:11 s/users/user 22:07:16 q+ to provide a non-answer to the question of CR/PR 22:07:39 jgraham; new private window as well 22:07:41 ack plh 22:07:41 plh, you wanted to provide a non-answer to the question of CR/PR 22:08:09 AutomatedTester: will you know more tomorrow? 22:08:37 plh: we may not need to go back to CR 22:08:49 simonstewart: how should we tell you 22:09:11 now back to history discussion 22:09:32 clmartin: even if we had multi session, this probably still has value 22:09:37 https://github.com/operasoftware/operaprestodriver/blob/master/protos/core.proto 22:10:04 ato: lines 13-28 are examples of different things we'd clear 22:10:25 ... i think we need ot have an api that is vendor specific 22:10:48 ... if we have specific endpoints for each type of data 22:11:03 ... I'm a bit skeptical about that because we could add 15-20 commands 22:11:27 clmartin: yeah, it's better to have a command that can be browser specific 22:11:39 jgraham: usecase: just start a test with a clean state 22:11:54 ... do people have specific use cases that are different? 22:12:15 jrossi: our UI does not allow granular deletion 22:12:23 clmartin: we would match what the UI does 22:12:32 ato: this is not really about acting like a user 22:13:03 jgraham: deleting history is something that a user can do 22:13:08 ... maybe there are wpt cases for this 22:13:17 ... delete history, cache in the middle of a test 22:13:28 clmartin: dev wanting to delete a storage mechanism 22:13:29 correction: Edge UI does allow granular deletion. Ignore me :-) 22:13:45 ato: if we are adding this so edge can delete data, then not a strong use case 22:13:56 ... but if there is general interest from devs, then we should consider it 22:14:08 jgraham: vendor specific tests that are doing this via vendor api 22:14:17 ... maybe google has layout tests that do this 22:14:24 ... maybe this would help them 22:14:33 ... could be start of the storage spec 22:14:39 s/start/part 22:15:02 clmartin: i've seen a few people ask, but that COULD be Edge specific 22:15:17 ... definitely a use case for vendors, though 22:15:38 AutomatedTester: concern at the moment is: no one wants to restart the browser, it's expensive 22:16:07 ... users might call this and expect it to nuke all, but some state comes through and breaks them without them knowing why 22:16:25 ... new features, for example, that are in a browser but not added to webdriver 22:16:38 ... restarting is a good clean start 22:16:56 ... could create a bad state 22:17:03 ato: i feel like I'm lacking data on this 22:17:12 ... I'd like to help solve Edge's problem here 22:17:16 ... but need more input 22:17:23 ... are there tests in chrome? 22:17:34 ... are there tests at Moz where'd you want this 22:17:54 soareschen has joined #webdriver 22:17:55 ... testing a feature, it would be helpful to delete storage 22:18:19 brrian: these things would be great for WPT, but not necessarily for website testing 22:18:45 juangj: from a selenium perspective: people are using Edge and attempt to get a clean state 22:18:54 ... very difficult to manage 22:19:01 ... tell people to "give up, start a new VM" 22:19:16 ... like brrian said, this is subtle 22:19:33 ... maybe a product like selenium should not expose them 22:20:09 Scribe: ato 22:20:23 clmartin: I wouldn’t exactly create a defined list. 22:20:57 ato: There’s a simple solution: You add a getter returning a list of topics you could delete. 22:21:08 jgraham: Potentially this is a Selenium question. 22:21:28 jgraham: If we think it is required in WPT, we could expose it only through the protocol but not in Selenium. 22:21:53 jgraham: Option 2 is a case where we don’t add a WebDriver command for testing in WPT, but we invent some web API privileged API. 22:22:16 jgraham: That is a fine consensus if we don’t think we should expose this to developers due to the reason it could be a footgun. 22:22:48 jgraham: We shouldn’t reject a feature that is useful for testing browsers because we think it could be confusing to a subset of users. 22:23:18 jgraham: We should assume that it is a good idea to add new commands, but only if those are useful to developers. 22:23:49 clmartin: I’ve seen devs come ask for things I was surprised about. 22:24:35 jgraham: I don’t want to haveanother discussion about CDP, but perhaps the lesson from to be learned that people want low level access. 22:24:59 JohnJansen_: We have implemented this feature in a vendor specific endpoint. 22:25:23 JohnJansen_: We have web devs who want it and people who will use it. 22:25:31 JohnJansen_: I don’t see the harm is that someone uses it incorrectly. 22:25:47 JohnJansen_: We not allow people who do understand it use it, and let those who don’t be surprised. 22:25:57 AutomatedTester: It’s a foot gun and this is what I want to prevent. 22:26:03 jrossi: At a granular level? 22:26:19 JohnJansen_: The only way to clear state in Edge is to nuke all cache. 22:26:30 jgraham: Are doing this at the start of a test? 22:26:36 JohnJansen_: No, people are also doing it in the middle of a test. 22:26:43 RRSAgent, make minutes 22:26:43 I have made the request to generate https://www.w3.org/2017/11/09-webdriver-minutes.html MikeSmith 22:27:06 ato: Yes, and I guess that would be the exact use case one would have writing WPT tests. 22:27:16 brrian: Why not just open another window? 22:27:26 JohnJansen_: There are certain types of cache that exist globally. 22:27:42 JohnJansen_: There is persistent user data as well, which is not web platform things. 22:27:55 AutomatedTester: I have never seen a request like this before. 22:28:02 jgraham: This is a request, to be fair. 22:28:38 AutomatedTester: In 10-15 years I have not gotten this request. 22:28:43 ato: There are multiple data points here. 22:28:48 jgraham: For all we know it is exposed in CDP. 22:28:57 jgraham: It is true that web apps are becoming more complicated. 22:29:17 brrian: I don’t understand why you could not rewrite the test to open a new session that is clean, and you log back into Sharepoint, and you do the whole thing again. 22:29:44 [jgraham explains a testing scenario] 22:31:45 AutomatedTester: OK, let’s file an issue/PR for this and continue the discussion there. 22:31:56 JohnJansen_: You should include concrete examples. 22:32:10 brrian: For validating utility I want to see concrete data points. 22:32:24 brrian: Alternatively we can offer a clean session capability. 22:33:06 Action clmartin: Write issue/PR about deleting history &c. 22:33:56 Topic: File upload API (not based on send keys) 22:34:35 simonstewart: The way Selenium works, not WebDriver, is that we have a thing that looks at what you pass in to Element Send Keys, and if it is a file then it uploads that file to the Selenium server. 22:34:44 simonstewart: Send Keys does not do a file upload in the spec. 22:36:45 simonstewart: You want an upload file command moves the file to the server. 22:36:48 simonstewart: Then one to upload it to the driver. 22:37:35 simonstewart: For this existing WebDriver session, upload file. 22:38:32 simonstewart: We want a generic command to upload an apk to the remote machine. 22:38:40 simonstewart: I believe safaridriver has it. 22:38:46 brrian: Of? 22:39:27 AutomatedTester: No one has done it except the Java/Grid. 22:39:35 AutomatedTester: It sends it to the specific machine. 22:39:43 AutomatedTester: But none of the remote ends have historically had to know. 22:40:00 simonstewart: It is common behaviour for the intermediary nodes, so we can put in specification text that is specific to that node. 22:40:42 clmartin: My concern is that you don’t type into . 22:40:54 brrian: But you also don’t type a file path. 22:40:59 AutomatedTester: It’s because it’s an . 22:41:16 AutomatedTester: Each OS will open its own widget for . 22:41:40 simonstewart: I think I would like to have something in there that for intermediary nodes. 22:41:47 AutomatedTester: I’m not saying no. 22:42:12 brrian: safaridriver is the only thing that can put a file on that device. 22:42:26 brrian: I don’t think we could run the Selenium server there. 22:42:31 ato: Good use case. 22:42:32 AutomatedTester: Yes. 22:42:43 AutomatedTester: And we need to do more mobile friendly in the future. 22:43:10 simonstewart: You would like to have equivalent of Send Keys endpoint to upload a blob. 22:44:53 ato: I like the idea of the Element Send Keys blob. 22:45:03 boazsender has joined #webdriver 22:45:19 soareschen has joined #webdriver 22:46:35 simonstewart: The payload to Send Keys is {"text": "…"}. 22:47:12 simonstewart: We could have {"file": […, …]}. 22:47:22 simonstewart: I think this covers brrian use case. 22:47:44 brrian: Current semantics is that you make multiple calls to Element Send Keys to select multiple files. 22:47:49 tboyles has joined #webdriver 22:48:36 "titusfortner" 22:48:48 AutomatedTester: The question to Sauce was: a lot of this is going to be intermediary node heavy. 22:48:53 AutomatedTester: What would you want? 22:49:00 AutomatedTester: This will influence you quite heavily. 22:50:01 titusfortner: It’s not really any difference. 22:50:47 AutomatedTester: Then the other use case is to upload resource files, such as apks. 22:51:25 ato: Is that something people actually use? 22:52:05 titusfortner: Yes it is. 22:52:25 ato: Putting in a file transfer protocol in WebDriver sounds very scary. 22:52:35 boazsender has joined #webdriver 22:52:38 ato: For Android I would use an adb debug bridge to move the file. 22:52:44 ato: I don’t know about iOS. 22:53:05 boazsender: Uploading a file to a file element sounds like something the driver could do. 22:53:20 boazsender: If you just want the file to exist on the filesystem, it does not sound like WebDriver’s job. 22:53:31 juangj 22:53:33 JohnJansen_: I don’t think we should be uploading arbitrary files to an endpoint. 22:53:35 s/boazsender/juangj 22:53:50 simonstewart has joined #webdriver 22:54:29 AutomatedTester: People are not sure about intermediary node endpoint for uploading arbitrary files. 22:54:37 AutomatedTester: If there was a /upload. 22:54:45 simonstewart: How do you get the apks to the machine? 22:55:04 titusfortner: I think we would prefer that to not be a concern of WeBDriver. 22:55:08 juangj: [agrees] 22:55:57 simonstewart: Maybe what we want is to have interop between browser stack and sauce. 22:56:07 jgraham: Cloud provide API spec is not really related to WebDriver. 22:56:25 jgraham: The browser driving protocol is our domain and I think this requires different expertise. 22:56:39 tboyles: If you gave us a standard, we would definitely use that standard. 22:56:50 tboyles: We have worked around it so it is not something that blocks us. 22:56:58 tboyles: We don’t need this today. We have solved this problem. 22:57:20 simonstewart: Array of file blob and file name. 22:58:04 ato: Just to be clear, we can’t change the current behaviour of Element Send Keys passing a file name to . 22:58:26 brrian: If you write your test in Python, it can encode it or it cannot. 22:59:28 JohnJansen_: Break? 22:59:35 Yes. 23:07:32 simonstewart has joined #webdriver 23:14:11 JohnJansen has joined #webdriver 23:20:29 titusfortner has joined #webdriver 23:21:15 boazsender has joined #webdriver 23:23:45 simonstewart has joined #webdriver 23:24:59 soareschen has joined #webdriver 23:28:25 Hexcles has joined #webdriver 23:31:59 Action: simonstewart to write proposal for Element Send Keys to take new "file" field. 23:32:21 Topic: Copy/paste & text node selection 23:32:32 scribenick: clmartin 23:33:09 ato: it came up in the wpt testing session that webdriver should have a separate command for cutting/copying/pasting in the browser 23:33:16 isobe has joined #webdriver 23:33:40 ato: if we want to be more mobile friendly then we need to handle text selection more nicely 23:33:55 jgraham: implementing selecting text will be a disaster because it's complicated 23:34:25 jgraham: is there an existing platform api for selecting text so that the minimal change would be to copy the current selected text 23:34:37 jgraham: and a command for pasting it from the clipboard 23:34:49 ato: what you're suggesting is have some script that uses the platform apis 23:34:54 jgraham: yes 23:34:59 AutomatedTester: so like dom range? 23:35:05 jgraham: yes 23:35:19 jgraham: ideally we do this without creating an alternative to the DOM range API. 23:36:04 ato: Add a whole new range of serialization methods for different types of nodes. 23:36:26 jgraham: The point is you pass in I want the selection to cover this point in this node to this other point in this other node 23:36:43 titusfortner: Is it relevant that we have an atom for selecting text? 23:36:45 jgraham: Yes 23:37:02 titusfortner: We have an atom implementation in the ruby atoms 23:37:09 simonstewart: What does it look like? 23:37:12 titusfortner: Let me check 23:37:27 https://github.com/SeleniumHQ/selenium/blob/master/javascript/watir-atoms/watir.js 23:37:30 ato: So the thing we want to make WebDriver do is take that selection (whatever selection is made in the browser) and put that on the clipboard. 23:37:37 simonstewart: I guess you want to post the keyboard and get the keyboard. 23:37:47 ato: It's not necessarily related to keyboard. 23:37:48 s/keyboard/clipboard/ 23:37:55 simonstewart: Clipboard* 23:38:11 simonstewart: So posting would be "I want to modify the clipboard" and getting would be... 23:38:25 jgraham: That's the wrong model, you don't want to know the value of what's on the clipboard 23:38:32 simonstewart: Well you want to do copy/paste right? 23:39:01 jgraham: Yes exactly. So you should do two commands. One is to put something onto the clipboard, and the other is paste where we put it into something. 23:39:16 brrian: I've asked ryusuke to come over here to describe the ask. 23:39:38 brrian: When you're copying you're copying everything whatever the OS does. 23:39:47 jimevans: Clipboard formats are not fun. 23:39:56 jimevans: We should not expose the clipboard formats 23:40:06 jgraham: Is what you're saying is that there are multiple kinds of paste. 23:40:09 ato: So how do you trigger those? 23:40:32 simonstewart: If you do apple-v paste you get one kind of paste, if you hold different keys you get other pasting formats 23:40:45 ato: But the use case is that they have an action sequence you can push the keys you want to validate 23:41:02 JohnJansen: When you paste into a spreadsheet you get options on what you want to paste. 23:41:11 jgraham: So it sounds like there is browser specific options when you go to paste 23:41:18 JohnJansen: Yes it is browser specific. 23:41:53 JohnJansen: We have a clipboard API for testing. Our browser inspects what is being pasted and tries to determine how you'd want to paste that. 23:42:09 JohnJansen: So you may want to paste a number vs. a string, or raw value vs html. 23:42:20 jgraham: Right, the difficult part is there might be multiple possible paste options. 23:42:32 JohnJansen: In Edge you get a table and the table changes size based on how complicated what you're pasting is. 23:42:37 jgraham: So the options are actually context specific. 23:42:39 JohnJansen: Yeah 23:42:47 gsnedders: It turns out browsers are complex 23:42:50 titusfortner: *laughs* 23:43:26 jgraham: I'm not sure if anybody implements the paste part of that 23:43:41 ato: It is entirely possible that we want to hook in at a deeper level. 23:43:50 jgraham: Yeah but that API is, clipboard access turns out to not be very secure 23:44:03 ato: brrian For that to be shippable, you'd have to null it out before you start the session. 23:44:18 brrian: If you want access to the real clipboard that's very dicey. 23:44:20 JohnJansen has joined #webdriver 23:44:29 brrian: and how do you abstract that in a way the browser works, idk 23:44:39 titusfortner: Is there a reason we can't just do cmd+c and cmd+v 23:44:52 jgraham: The problem John is describing is that the clipboard isn't as simple as you like. 23:45:03 gsnedders: Also which clipboard 23:45:16 titusfortner: I get what you're saying, if you want to emulate what a user would do then that wouldn't work. 23:45:24 jgraham: A vendor could do that if they want to. 23:45:48 tboyles: Would it make sense to do that? 23:46:03 ato: If something does ascii now and we release a new version that's differnet that's a problem 23:46:11 brrian: We're talking about clipboards 23:46:25 boazsender has joined #webdriver 23:46:31 rniwa has joined the room 23:46:35 i/Is what you're saying is that/gsnedders: there's also "paste & match style" 23:46:44 ato: We were talking about how different clipboards on different browser on different OS's are different 23:46:48 rniwa: correct 23:47:01 ato: John was talking about how copy/pasting depends on the context you're in. 23:47:07 rniwa has joined #webdriver 23:47:16 JohnJansen: I was saying that we shouldn't try to implement this as it's more complex than simple copy/paste 23:47:32 JohnJansen: We also have security alerts when copying/pasting data 23:47:55 JohnJansen: Makes it hard to standardize 23:47:59 jgraham: but is it impossible? 23:48:05 JohnJansen: No it's just code but 23:48:19 jgraham: But we've agreed that browsers can be different. 23:48:28 jgraham: Edge could pick a default option and go with that 23:48:31 JohnJansen: Yeah we can do that 23:48:54 boazsender has joined #webdriver 23:49:03 ato: I was curious about preventing business content from getting copied/pasting. Is that something that gets prevented at the os level? 23:49:49 rniwa: Content editors have the requirements that they can copy/paste stuff from Microsoft Word. For those you can't mimic the content that Word generates. 23:50:27 rniwa: With clipboards there are things that are very different between platforms. In Windows you have one impl. I don't know if Windows has a way to archive, store images. 23:50:59 rniwa: On a Mac this is different. Not only do we support plain HTML but we also have an archive format that can contain all the data for the file which means the mechanism by which things are serialized can be very differen.t 23:51:10 rniwa: So if you're using WebDriver to test copy/paste behavior it's important this works. 23:51:18 rniwa: If you're just copying within the page you almost don't need an API for this. 23:51:26 simonstewart: So you do need to modify the system clipboard? 23:51:28 rniwa: Right 23:51:38 ato: We brought this up because you brought this up on Tuesday (rniwa) 23:52:11 jgraham: I think things outside of the browser window are out of scope 23:52:40 jgraham: You have the use case you want to copy from Word, I think that's valid but standardizing that via WebDriver isn't going to work. 23:52:47 simonstewart: Setting the caret position might be helpful. 23:52:49 AutomatedTester: You can do that 23:52:58 ato: We can do the select via the DOM API's 23:53:20 simonstewart: What we see are users using the browser automation, then swap to a lower level automation, then swap back 23:53:24 ato: Right but we still need a way 23:53:50 simonstewart: So what you'd do is use it to copy then use a different tool to paste 23:54:12 ato: If I were to implement in geckodriver then I'd look at what copy does and I'd abstract that away, I'd call that endpoint 23:54:25 simonstewart: I agree with jgraham and ato but I'm saying this is one way people would do it 23:54:42 simonstewart: Everything we do today allows you to test in parallel. The minute you start operating on the system clipboard you break that. 23:54:54 ato: I wouldn't expect geckodriver to work like that 23:54:58 jgraham: It's not about that 23:55:02 gsnedders: It's about global state 23:55:17 JohnJansen: I confirmed any web content, copied html content and tried to paste it to Microsoft.com and I got a warning 23:55:28 JohnJansen: If i paste the same text into a word doc in the browser it maintained the formatting 23:55:31 JohnJansen: It's very complex 23:55:38 rniwa: In general the two use cases are: 23:55:42 rniwa: 1 is copy paste in the wpt 23:56:14 rniwa: at the end of the day if we don't support any ability to test the system clipboard, then all authors that work on web properties that utilize the clipboard then they wouldn't be able to test it. 23:56:28 simonstewart: They will be via other tools 23:57:45 rniwa: I would prefer the approach that by default you use a synthetic clipboard, but provide some way to test the system clipboard. One tricky thing with the system clipboard is that there is an order of types. What the browser exposes and what is the default behavior would be different. Adding the ability to order these things in the system clipboard would be complicated. 23:57:58 jgraham: Do we think the use case of a synthetic clipboard makes any sense 23:58:17 jgraham: It sounds like the system clipboard is complicated but some allow you to create a per-app clipboard 23:58:27 rniwa: The system does 23:58:30 simonstewart: Does Windows? 23:58:32 JohnJansen: idk 23:58:42 gsnedders: Idk if Linux test environments do that 23:58:52 rniwa: For global no, but regular copy paste would 23:58:52 tboyles has joined #webdriver 23:59:02 jgraham: If that exists then it would make things easier. 23:59:35 jgraham: If you want to interact with the system then you'd need a vendor extension. It's not worth spec'ing that. 23:59:59 ato: So I just checked on MDN and gecko has this concept of logical clipboards. A subset of those are mapped to the system clipboard. 00:00:02 JohnJansen: In the browser? 00:00:03 ato: Yes 00:00:13 jgraham: Not expose to content. 00:00:39 rniwa: It would be nice to trigger copy/paste without having to hard code the command (shortcut keys) 00:00:43 jgraham: Well that doesn't work. 00:00:50 rniwa: Right, so it would be good to... 00:01:10 ato: I agree it would be useful to add to WebDriver. I sense there's an action coming on that we need to do some more research. 00:01:27 JohnJansen: Yeah we need more research. I'm hesitant to access the clipboard right now. 00:01:32 rniwa: The system clipboard? 00:01:34 JohnJansen: I'm not sure. 00:01:45 gsnedders: If we do nothing then people will keep using ctrl+c 00:01:48 brrian: It doesn't work anymore 00:01:59 gsnedders: So it only works in some browsers 00:02:18 jgraham: From a security point of view if that does to work in MicrosoftWebDriver then you add a capability 00:02:36 AutomatedTester: Are we all agreeing that if we're going to do this we need to do more research? 00:02:50 boazsender has joined #webdriver 00:03:11 ato: I will file an issue 00:03:15 clmartin: Thanks! 00:03:21 AutomatedTester: It's 3 minutes past 4, how's everyone doing? 00:03:30 AutomatedTester: What can we handle? 00:04:02 simonstewart: The two additions to the actions API which don't feel terribly controversial 00:04:21 ato: Who added that? 00:04:22 simonstewart: I did 00:04:40 ato: If the element you want to reach is outside the viewport youc an't do that 00:04:50 simonstewart: Right what youw ant to do have is have it scroll into view so you can interact with it 00:04:57 simonstewart: or even if not that the ability to scroll the view port 00:05:22 jgraham: For elements it can work like the existing click command so for the start you can find where it is and scroll that amount 00:05:36 simonstewart: The problem is imagine you're doing drag and drop 00:06:17 jgraham: That will work, before you do scroll into view, you ask where the element is on the page which has a set of coordinates and you say in order to have that in view you need to scroll by x and y and that's how much you scroll 00:06:24 jgraham: Because as you scroll you can also get scroll events 00:06:32 simonstewart: But we do want to be able to scroll? 00:06:33 jgraham: Yes 00:06:38 ato: What kind of primitive? 00:06:59 jgraham: A scroll primitive that works like point to move in the sense that you either provide it an offset relative to the top of the viewport or an element 00:07:05 simonstewart: So this is exactly like the origin astuff we have 00:07:09 jgraham: Like input type scroll 00:07:16 rniwa: One question, why does scroll to not work in this case? 00:07:31 simonstewart: The actions api is a sequence of events you fire off simultaneously so you don't pause in the middle of that 00:07:33 rniwa: I see 00:07:52 juangj: What I hear jgraham saying is that the primitive is we'll compute and do that and if it doesn't result in it coming into view that's okay 00:07:54 ato: Yeah 00:08:02 jgraham: That's how the existing stuff works so I would expect it to work like that 00:08:08 simonstewart: When we do a pointer move action we have an origin 00:08:08 https://w3c.github.io/webdriver/webdriver-spec.html#dfn-dispatch-a-pointermove-action 00:08:13 jgraham: Right I'd expect it to be the same 00:08:23 ato: What kind of value or metric would we be passing that 00:08:28 simonstewart: We'd probably use the null input device 00:08:34 ato: Right but how much do I scroll 00:08:43 jgraham: It works like something, you give it an x/y or an element 00:08:51 jgraham: and it computes the amount for you 00:09:05 ato: So the x/y calling is fine, but in the case of an element you'd have to invoke the is pointer interactable 00:09:06 simonstewart: no 00:09:07 jgraham: no 00:09:24 jgraham: You just query the layout for where is this element and scroll to that position and if it moves during that then bad luck 00:09:27 simonstewart: I'm on board with that 00:09:28 ato: that works 00:09:37 jgraham: You have to choose where you want it to end up 00:09:47 jgraham: In the element case you copy the semantics of scroll into view as closely as possible 00:09:55 gsnedders: Which is what click already does 00:10:05 simonstewart: Yeah, we'd want element click to be implementable on top of the actions api 00:10:13 titusfortner: Does scroll into view move it into the center 00:10:15 ato: Because!!!! 00:10:23 jgraham: Okay, but... 00:10:27 jgraham: Lots of other words 00:10:39 jgraham: Do what the semantics are and stick to what is already being used for other thing 00:10:57 titusfortner: I just want to avoid static headers/footers if they exist because sometimes scroll into view will be hidden 00:11:03 AutomatedTester: If that happens we can't solve that 00:11:11 titusfortner: Well offset, if we have an offset then that's good 00:11:28 ato: How do you do that as an atomic action 00:11:40 ato: You can do it to an element but by an x/y there's nothing in the api that allows that 00:11:44 simonstewart: You treat it like a pause 00:11:50 ato: How do you move those few extra pixels 00:11:54 jgraham: Scroll into view does that 00:11:58 juangj: There's a way to do that 00:12:05 jgraham: regardless it's possible to scroll in the web browser by an amount 00:12:14 ato: But that's different. First you call the dom api for scroll into view 00:12:21 simonstewart: there's nothing conceptually difficult here right 00:12:34 tboyles has joined #webdriver 00:12:39 jgraham: the DOM API may or may not allow thos eoptions, then you'd call the underlying API your scroll into view api is using 00:12:49 soareschen has joined #webdriver 00:12:55 simonstewart: Yeah scroll into view with the element as the origin as 0,0 00:13:18 simonstewart: If you called scroll into view with an origin that was relative you need an x,y 00:13:23 ato: But it doesn't support that 00:13:36 simonstewart: I need a new name, scroll action, with an x/y 00:13:39 jgraham: Just call it scroll 00:13:48 ato: We can scroll by line but not by pixel in gecko 00:13:57 AutomatedTester: You can scroll to a point, scroll to, and pass an x/y 00:14:04 ato: Yeah scroll by offset 00:14:08 jgraham: Any other issues? 00:14:19 ato: Just want to make sure we can do this 00:14:36 jgraham: Is it instant or smooth scroll? 00:14:39 simonstewart: It doesn't matter 00:14:44 jgraham: You might get different behavior 00:14:48 jgraham: You might want an option 00:14:57 rniwa: Hit testing will happen in browsers if you aren't doing an instant jump 00:15:03 rniwa: For drag/drop you'd get events 00:15:09 simonstewart: You'd allow scroll options to be passed in 00:15:16 jgraham: Especially if it's already int he scroll into view apis 00:15:21 juangj: scroll into view will give you that 00:15:27 ato: Scroll into view does, scroll by doesn't 00:15:35 ato: I think we can do that 00:16:09 An action to add this to the spec 00:16:21 simonstewart: The second suggestion is wait until interactable 00:16:27 simonstewart: This is for suckerfish style menus 00:16:39 simonstewart: When you move the mouse onto the element, hover and then wait 00:16:48 jgraham: How do you tell when that happened? 00:16:49 https://w3c.github.io/webdriver/webdriver-spec.html#dfn-interactable 00:17:01 juangj: Give a CSS selector to an element you'd expect to appear and wait for it to appear 00:17:08 ato: It's technically possible I guess 00:17:19 ato: With a pointer source because we have that definitioin 00:17:28 simonstewart: You do the test with the pointer interactability 00:17:34 simonstewart: It would be a pause of an undefined length 00:17:37 AutomatedTester: How long is that wait 00:17:44 AutomatedTester: If that thing doesn't appear 00:17:47 gsnedders: A frame or two 00:17:55 jgraham: It might never appear 00:18:00 AutomatedTester: I don't care how we do it we need a way 00:18:24 simonstewart: 2 ways to do it, 1 specify the timeout and wait for it, 2 allow an upperbound on wait for interactability 00:18:33 simonstewart: If you were to put it on the global timeout it would work that way 00:18:39 jgraham: It uses the implicit wait timeout 00:18:42 ato: No 00:18:46 simonstewart: No that's very different 00:19:00 jgraham: We have a note in the spec that says implicitly wait until it's interactable 00:19:02 ato: That's wrong 00:19:07 simonstewart: That's what it was originally 00:19:13 ato: It would wait for the element to be locatable 00:19:32 simonstewart: We can use the implicit wait timeout 00:19:37 simonstewart: But ideally set it to 0 00:19:40 AutomatedTester: Always be 0 00:19:40 Zakim has left #webdriver 00:19:47 simonstewart: But with this it might take a while 00:20:05 jgraham: I'd strongly prefer you can specify a timeout for this action with the global state is the fallback 00:20:18 titusfortner: Interactability is not something you can query right 00:20:26 simonstewart: The spec has some clear definitions on what pointer interactable is 00:20:35 titusfortner: https://w3c.github.io/webdriver/webdriver-spec.html#dfn-pointer-interactable 00:20:35 rniwa: Does it make sense to wait for an event to be fired 00:20:39 AutomatedTester: What event? 00:20:53 Interactable definition is here: https://w3c.github.io/webdriver/webdriver-spec.html#dfn-interactable 00:21:04 rniwa: You name an event and maybe while doing the test you need to do a query that takes an arbitrary amount of time and when you're done you fire 00:21:13 Pointer interactable: https://w3c.github.io/webdriver/webdriver-spec.html#dfn-pointer-interactable 00:21:17 jgraham: WebDriver isn't built to handle that easily but you could do that via execute script 00:21:37 jgraham: In the middle of an action sequence I don't know what the use case is on waiting for an event 00:22:02 soareschen has joined #webdriver 00:22:08 rniwa: Something about drag and drop 00:22:19 simonstewart: Wrong level, WebDriver is at the browser level 00:22:25 jgraham: I don't understand it but I don't think it should be dismissed 00:22:36 simonstewart: I'm not saying it's not in scope, I'm saying the mental model for how webdriver works doesn.t... 00:22:41 jgraham: What would async drag and drop look like 00:23:06 rniwa: Drag and drop we don't do this, but let's supposed we did. In that case maybe in a drag start you'd add something, then the browser would make a callback that I've added it, but 00:23:09 jgraham: What something? 00:23:24 rniwa: Like actual data to drag. In that case you'd want to wait for that thing to be done before it drops 00:23:29 jgraham: How would that work if a user drags/drops? 00:23:43 rniwa: There's an idea of a promise 00:23:54 rniwa: We might not have it in a browser but it's conceivable 00:24:03 simonstewart: So why wouldn't WebDriver use that, it's supposed to be a user 00:24:09 simonstewart: Drag and drop should work and if it doesn't there's a bug 00:24:21 jgraham: If you drop something that needs to wait on data it should get a promise back 00:24:24 rniwa: This isn't a good example 00:24:31 simonstewart: I can see wanting to wait for a mutation event 00:24:33 jgraham: interesting! 00:24:35 ato: Yes 00:24:41 simonstewart: This is another primitive 00:24:50 simonstewart: Which we may have consensus around 00:25:04 titusfortner: We can't wait for interactable outside of specific commands 00:25:14 jgraham: The theory is you can do this via the actions API 00:25:27 titusfortner: I'm thinking of the concept of a string of stuff but in actions 00:25:42 ato: Do we think that it's a useful primitive 00:25:44 simonstewart: Yes 00:25:51 jimevans: I think it's amazingly useful but we don't have it in place 00:25:56 ato: I wrote this thing, there are dragons 00:26:17 simonstewart: Add a definition for pointer interactable 00:26:26 AutomatedTester: Clay got lost 00:27:09 ato: The spec says you can set the timeout to 0 and wait indefinitely 00:27:11 simonstewart: That's fine 00:27:20 juangj: You'd expect most callers to set an explicit timeout 00:27:37 ato: With an unlimited wait they'll hit the HTTP timeout 00:27:39 simonstewart: Right 00:27:45 ato: I was thinking it was unrecoverable 00:27:48 ato: But it isn't 00:28:07 juangj: What we're saying is if you don't set a timeout we hit the implicit wait timeout why not jus tmake the timeout necessary 00:28:13 simonstewart: There's a different between should and must 00:28:27 simonstewart: The spec should just default to the implicit 00:28:31 juangj: Why can't the spec require it 00:28:35 simonstewart: Nowhere else do we require it 00:28:42 ato: What do you mean by the upperbound? 00:28:51 simonstewart: A timeframe that youc an wait 00:29:00 ato: If it can be indefinite why would you have an upper bound 00:29:06 AutomatedTester: Where is it indefinite? 00:29:13 simonstewart: If you don't set an implicit wait timeout... 00:29:21 AutomatedTester: If implicit wait isn't there, set it to 0 00:29:41 ato: I was talking about script timeout 00:30:00 juangj: If you do this implicit wait timeout falls to 0 and the default timeout on wait to interactable is 0 but a 0 timeout isn't userful 00:30:06 simonstewart: No but there's a mechanism to override that 00:30:15 AutomatedTester: And client bindings can set that for them 00:30:23 simonstewart: Not everyone sets it to 0, if you see it set to 30 seconds hteen 00:30:40 juangj: The purpose of this primitive is that running it once isn't useful 00:30:59 simonstewart: Click in actions just does it 00:31:35 simonstewart: We have a new action, wait until pointer interactable, and that waits for a set amount of time for an element to become pointer interactable, by default that time is the implicit wait timeout, but you can set an upperbound independently. 00:31:56 ato: Can we get the resolution on whether the is pointer interactable primitive is... 00:32:07 ato: I've tried implementing keyboard interactable and haven't been able to 00:32:08 simonstewart: How come? 00:32:12 ato: It's hard 00:32:21 ato: Had to dig through a lot of specs 00:32:41 ato: So the question is, wether you want the command for whether it's interactable in a keyboard and click, or independent 00:32:46 titusfortner: I don't need what I was asking for 00:33:01 ato: The intention of "is interactable" is can I, using the keyboard in any way interact with an element 00:33:07 titusfortner: Well yeah the idea was clicking on it 00:33:14 ato: I could see a use case for someone 00:33:19 simonstewart: I can see a wait command 00:33:28 ato: If you're working on google ads I could see this being useful 00:33:38 titusfortner: Sometimes I have users that would like to automatically retry when it fails, others don't 00:33:45 titusfortner: When I was coming up with a solution it was tough 00:33:53 titusfortner: If we had a wait for interactable that would be good 00:34:05 simonstewart: Would that be pointer && keyboard or pointer || keyboard 00:34:26 AutomatedTester: An object would be much better 00:34:44 ato: It's not bad but it's more complicated than it ought to be 00:34:50 ato: Could see two separate commands for pointer/keyboard 00:34:53 simonstewart: But then webvr 00:35:01 AutomatedTester: No but people throw it into a lambda 00:35:04 boazsender has joined #webdriver 00:35:39 jgraham: I don't understand the use case for knowing is this thing... presumable the next thing you're going to do is interact with it with the keyboard or something else. but not at runtime 00:35:53 simonstewart: Yes you're right, I think AutomatedTester is quite elegant 00:36:01 simonstewart: Because it allows for other variations 00:36:08 jgraham: I think that's a good reason not to do it like that 00:36:20 jgraham: I don't want this thing to have to fire up the VR subsystem to check if it was VR click interactable 00:36:28 jgraham: When you haven't been doing anything with VR up to that point 00:36:43 AutomatedTester: So that one is easily solved by checking "is subsystem x enabled" no 00:36:53 AutomatedTester: But if you're in a VR mode and ask if it's interactable it would be possible to do that 00:37:05 AutomatedTester: And you can gate it on the subsystem being running 00:37:10 jgraham: That's a lot of work for the browser 00:37:22 simonstewart: It is a separate endpoint, it's doing a full HTTP roundrip just to say yes/no 00:37:47 jgraham: I feel like if this was a thing you think it would be extended, i feel like telling people "oh yeah just put it in there" seems like it doesn't scale 00:37:54 jgraham: I don't want to say doesn't scale but doesn't scale 00:38:07 simonstewart: This is where David's point comes in, if you aren't using a subsystem then don't run those checks 00:38:15 s/doesn't scale but doesn't scale/"doesn't scale" but "doesn't scale"/ 00:38:16 jgraham: Then it pushes complexity onto extension spec authors to properly define that 00:38:38 jgraham: A specific endpoint solves the use case 00:38:47 simonstewart: You're suggestion is a separate endpoint for each type? 00:38:49 jgraham: Yeah 00:38:54 juangj: You know what you want to do 00:39:08 ato: It's also more in style with the other web element specific methods 00:39:12 simonstewart: Is displayed, enabled 00:39:18 simonstewart: attribute as well 00:39:28 jgraham: There aren't other cases like that 00:39:32 simonstewart: Which way would people prefer? 00:39:42 simonstewart: Should we take a vote? 00:40:12 simonstewart: Is there a problem with multiple endpoints? 00:40:14 No one disagrees 00:40:18 simonstewart: Do we add the endpoints at all? 00:40:45 ato: I think if we're exposing them through the Actions API, I guess it would make sense to also expose them as endpoints. No one has asked us though. 00:41:18 titusfortner: I have a use case. A transition is happening, try to click it, it's not interactable, it throws an exception. In Watir we abstract that at a high enough level that if we try to do that it's complicated. If we let the user specify it works better 00:41:21 RRSAgent: make minutes 00:41:21 I have made the request to generate https://www.w3.org/2017/11/09-webdriver-minutes.html AutomatedTester 00:41:28 ato: Do we think it could be confusing to test this in a way that's interactable? 00:41:34 q? 00:41:37 ato: I could see someone going "I want to click this button but it's disabled" 00:41:44 ato: But the is interactable will return true 00:41:49 simonstewart: Oh that's fine 00:41:54 ato: But do people understand that difference? 00:41:59 simonstewart: I see what you're saying 00:42:03 titusfortner: But it's in the spec what it means 00:42:04 yeah 00:42:13 simonstewart: Imagine you're not a good developer 00:42:16 titusfortner: Such a stretch 00:42:34 simonstewart: and you what developers always do and they don't read the docs, and you have the option between interactable and not 00:42:40 simonstewart: If you named the method ... 00:42:45 titusfortner: You can click a disable elemenet 00:42:47 element* 00:43:15 ato: I don't care what you expose it as 00:43:31 ato: I like juangj idea doing it in a restful way 00:43:39 ato: You could do AutomatedTester's thing as well 00:43:44 jgraham: I vote against clever 00:44:10 juangj: Coming back to the question whether it satisfies your use case, waiting for it to be interactable, that's not what this would do. It would just return if it's interactable. 00:44:14 titusfortner: That's fine 00:44:17 ato: I'm in favor of adding this 00:44:44 resolution: add interactable check command 00:45:58 RRSAgent: make minutes 00:45:58 I have made the request to generate https://www.w3.org/2017/11/09-webdriver-minutes.html AutomatedTester 00:46:16 RRSAgent: good bye 00:46:16 I'm logging. I don't understand 'good bye', AutomatedTester. Try /msg RRSAgent help 00:46:19 RRSAgent: goodbye 00:46:19 I'm logging. I don't understand 'goodbye', AutomatedTester. Try /msg RRSAgent help 00:46:21 We're done for the day! 00:46:25 RRSAgent: dismiss 00:46:25 I'm logging. I don't understand 'dismiss', AutomatedTester. Try /msg RRSAgent help 00:46:30 RRSAgent: gtfo 00:46:30 I'm logging. I don't understand 'gtfo', juangj. Try /msg RRSAgent help 00:46:54 RRSAgent: bye 00:46:54 I see 10 open action items saved in https://www.w3.org/2017/11/09-webdriver-actions.rdf : 00:46:54 ACTION: ato fix the urls for the spec [1] 00:46:54 recorded in https://www.w3.org/2017/11/09-webdriver-irc#T19-11-35 00:46:54 ACTION: MikeSmith to follow up on renewing the charter [2] 00:46:54 recorded in https://www.w3.org/2017/11/09-webdriver-irc#T19-46-45 00:46:54 ACTION: simonstewart to clean up documentation on how to hook into the spec. [3] 00:46:54 recorded in https://www.w3.org/2017/11/09-webdriver-irc#T20-08-55 00:46:54 ACTION: plh to check with legal if we can move to PR. [4] 00:46:54 recorded in https://www.w3.org/2017/11/09-webdriver-irc#T21-35-12 00:46:54 ACTION: jimevans to adjust IEDriver to match geckodriver’s behaviour. [5] 00:46:54 recorded in https://www.w3.org/2017/11/09-webdriver-irc#T21-51-36 00:46:54 ACTION: Adjust wording of user prompt handler to match behaviour of geckodriver so we can move to rec. [6] 00:46:54 recorded in https://www.w3.org/2017/11/09-webdriver-irc#T21-51-58 00:46:54 ACTION: clmartin submit a pr for this [7] 00:46:54 recorded in https://www.w3.org/2017/11/09-webdriver-irc#T22-00-15 00:46:54 ACTION: clmartin to draft PR on New Window command [8] 00:46:54 recorded in https://www.w3.org/2017/11/09-webdriver-irc#T22-00-15-1 00:46:54 ACTION: clmartin to Write issue/PR about deleting history &c. [9] 00:46:54 recorded in https://www.w3.org/2017/11/09-webdriver-irc#T22-33-06 00:46:54 ACTION: simonstewart to write proposal for Element Send Keys to take new "file" field. [10] 00:46:54 recorded in https://www.w3.org/2017/11/09-webdriver-irc#T23-31-59 00:47:05 RRSAgent: sod off 00:47:05 I'm logging. I don't understand 'sod off', ato. Try /msg RRSAgent help 00:47:27 RSSAgent: Don't worry about all the angry people. You just be you