Skip to content

Instantly share code, notes, and snippets.

@rafaelbrandao
Created February 28, 2013 17:11
Show Gist options
  • Save rafaelbrandao/5058315 to your computer and use it in GitHub Desktop.
Save rafaelbrandao/5058315 to your computer and use it in GitHub Desktop.
[18:28] <othermaciej> abarth: specifically the reason I'm asking this stuff is I'm wondering if the Chrome model leads to natural memory cache sharing in the "cmd-click a same-site link" case
[18:28] <othermaciej> abarth: sounds like no
[18:29] <-- noamr has left this server (Read error: No route to host).
[18:29] <CoverSlide> does webkit have an equivalent to Firefox's "moz-chunked-arraybuffer" xhr responseType?
[18:29] <-- loislo1 has left this server (Ping timeout: 255 seconds).
[18:29] <vollick> krit, smfr: It appears that https://bugs.webkit.org/show_bug.cgi?id=108508 is causing some chromium failures. Here's one http://build.chromium.org/p/chromium.webkit/builders/WebKit%20XP%20%28deps%29/builds/3170
[18:30] --> loislo1 has joined this channel (~Adium@178.252.112.146).
[18:30] <othermaciej> abarth: I don't know if anyone but Apple will even use the third-party data blocking feature at all - we haven't tried to promote it for other ports in part because we want to ne confident that it's reasonably effective first
[18:30] --> steveire has joined this channel (~quassel@g231114202.adsl.alicedsl.de).
[18:30] <-- steveire has left this server (Changing host).
[18:30] --> steveire has joined this channel (~quassel@kde/skelly).
[18:30] <vollick> krit, smfr: In particular, these are the tests that now continue to fail: canvas-currentPath.html canvas-path-constructors.html canvas-currentPath.html canvas-path-constructors.html
[18:31] <-- jkjiangDesk has left this server (Remote host closed the connection).
[18:31] <vollick> krit, smfr: Do you recommend updating expectations, or should I rollout?
[18:31] <-- steveire has left this server (Remote host closed the connection).
[18:32] <rouslan> tony^work: should i just change the test to use a word that is going to be marked as misspelling? spellcheck is timing out because i wait until it marks at least one word as a misspelling. gtk and qt do not mark "cheher" misspelled
[18:32] <jamesr> vollick, hmm, does that bot not report to the flakiness dashboard?
[18:33] <abarth> othermaciej: the process model is a matter of policy. you can use different process models depending on what you'd like to tune for
[18:33] <vollick> jamesr: I was wondering the same thing. Dashboard looks as clean as can be.
[18:33] <abarth> othermaciej: some of it is technology limited. for example, I don't expect webkit2 to support out-of-process iframes anytime soon
[18:34] <tony^work> rouslan: sure. although I think it'll still fail on some platforms because of some testRunner methods that aren't implemented.
[18:34] <abarth> othermaciej: but oop iframes unlock a bunch of interesting process models
[18:34] <jamesr> vollick, can you find the actual diff? should be in here: http://build.chromium.org/f/chromium/layout_test_results/WebKit_XP__deps_/183788/
[18:34] <rouslan> tony^work: https://bugs.webkit.org/show_bug.cgi?id=108528 says that's the case for efl (they do not have async spellcheck)
[18:34] <abarth> othermaciej: even it were effective, people won't don't need to support WebKit1 as an OS API would implement the feature differently
[18:35] <abarth> othermaciej: (and it's not effective---just to be clear)
[18:35] --> Glan has joined this channel (~glan@2620:149:4:1a01:596f:384b:3854:fc74).
[18:35] <othermaciej> abarth: well, my theory was that you wouldn't want to pin links opened in new tabs to the same process because it would be bad for responsiveness and fault isolation; I was curious what Chrome does in that case to understand if you guys had found differently
[18:35] <tony^work> rouslan: Yeah, so for EFL, we probably want to keep the Failure tag. Maybe we can use a different misspelled word to get the test to run on Gtk and Qt.
[18:35] <esprehn> ojan: ping
[18:36] --> jkjiangDesk has joined this channel (~quassel@c73-215.rim.net).
[18:36] <ojan> esprehn: pong
[18:36] <esprehn> ojan: so new counters seem reasonably fast in some benchmarks, but you can easily construct a pathological case
[18:36] <rouslan> tony^work: I think the word "wellcome" should work. it's used in many other spelling tests
[18:36] <othermaciej> abarth: I'm more curious about the sidetrack "which process model is best for good cache sharing vs other factors" issue than the cache partitioning feature - I already know you don't like cache partitioning (but are grudgingly ok with landing it in ifdefs) and don't expect to learn anything new about your thoughts on that topic
[18:36] <tony^work> rouslan: SGTM
[18:37] <rouslan> tony^work: should we mark my earlier spelling tests Failure instead of Skip on efl?
[18:37] <-- saki007ster has left this server (Remote host closed the connection).
[18:37] <esprehn> ojan: ie. adding a counter and triggering a layout in a loop: for (...) addCounter(); offsetTop; would be crazy slow
[18:37] <tony^work> rouslan: I prefer Failure if it doesn't timeout since you can see the results on the waterfall, but Skip is also OK.
[18:37] <esprehn> ojan: for some definition of crazy slow
[18:38] <ojan> esprehn: that specific case doesn't bother me
[18:38] *** jernoble is now known as jernoble|afk.
[18:38] *** jernoble|afk is now known as jernoble.
[18:38] <pdr> sheriffbot: gardeners
[18:38] <ojan> esprehn: did you try the view-source of the html spec?
[18:38] <sheriffbot> pdr: The current Chromium Webkit sheriffs are: toyoshim, vollick
[18:38] <othermaciej> abarth: I guess the Chromium model that would lead to sharing between explicitly opened tabs on the same site would be the "process-per-site" model
[18:38] <WKR> https://trac.webkit.org/r143648 by Philip Rogers (pdr) Fix duplicate TestExpecataions entry for svg/custom/foreign-object-skew.svg Unreviewed gardening of TestExpecations * platform/chromium/TestExpectations:
[18:38] <othermaciej> abarth: but I presume you wouldn't recommend that as the best overall approach?
[18:39] <pdr> toyoshim, vollick: svg/custom/foreign-object-skew.svg was failing because there were duplicate entries in TestExpectations. Has been fixed while the bots catch up.
[18:39] <othermaciej> abarth: I read the Site Isolation design doc too btw http://www.chromium.org/developers/design-documents/site-isolation
[18:39] --> abinader has joined this channel (~abinader@share.basyskom.com).
[18:39] <othermaciej> abarth: I think it is a good long-term goal though clearly there are hard issues to resolve
[18:39] --> isherman-book has joined this channel (Adium@nat/google/x-hzskymwhvvvcgvdv).
[18:40] <-- nduca has left this server (Quit: nduca).
[18:40] <esprehn> ojan: that's next, just been fixing bugs. Sorting is expensive, I had to add dirty bits and get the deferred update working first.
[18:40] <esprehn> ojan: my original attempt made some tests run in 4 seconds :)
[18:41] --> krit has joined this channel (~krit@216-75-239-90.static.wiline.com).
[18:41] <vollick> pdr: Thanks!
[18:41] --> kbrgg has joined this channel (~kbr@216.239.45.77).
[18:41] <esprehn> ojan: so far it's 240 lines to implement counters vs 1240 lines with the old stuff
[18:42] <abarth> othermaciej: right, that's why the default is process-per-site-instance
[18:42] <abarth> or rather, the "instance" part means
[18:42] <abarth> that we can have multiple processes for the same site
[18:42] <-- lmclister has left this server.
[18:42] <abarth> if we consider them to be different instances of that site (e.g., if there isn't any script connection)
[18:43] <abarth> process-per-site cannot be implemented without oop iframes
[18:43] <abarth> because without oop iframes, child frames must be in the same process as their parent
[18:43] <abarth> even if they belong to different sites
[18:43] <-- ryumiel has left this server (Ping timeout: 255 seconds).
[18:43] <othermaciej> abarth: I think what we do in WebKit2 right now is somewhere between Chromim's process-per-tab and process-per-site-instance -- we swap processes on some but not all UI-process-initiated navigations
[18:44] <abarth> process-per-tab is not a good process model
[18:44] <abarth> the doc is polite about it
[18:44] <abarth> but it's a pretty bad set of trade-offs
[18:44] <othermaciej> from what I can tell from the docs, the only difference is whether it swaps processes on navigation
[18:44] <othermaciej> but I may be misreading the docs
[18:44] <WKR> https://trac.webkit.org/r143649 by Tony Gentilcore (tonyg-cr) Tune BackgroundHTMLParser's pendingTokenLimit based on a benchmark https://webkit.org/b/110408 Reviewed by Adam Barth (abarth).
[18:45] <abarth> yes, swapping on navigation makes a big difference :)
[18:45] --> ryumiel has joined this channel (~ryumiel@210.217.28.15).
[18:45] <esprehn> othermaciej: there's issues with that like <a ... target=" x">Link</a> and then window.open(..., "x") gives access to the window directly
[18:45] <othermaciej> and specifically only UI-process-initiated navigation afaict
[18:46] <othermaciej> esprehn: yeah, I was thinking particularly of cmd-click (or on windows I guess it's middle click?) to explicitly open a link in a new tab
[18:46] --> Zoltan has joined this channel (~Zoltan@83.166.209.226).
[18:46] <esprehn> othermaciej: yes, that's what I mean
[18:46] <esprehn> othermaciej: you can get access to it with window.open if you specify the same name
[18:46] <othermaciej> esprehn: no, I'm thinking of a regular link with no target=
[18:46] <othermaciej> esprehn: I realize target= is special
[18:47] <othermaciej> like if I go down the Hacker News front page and cmd-click every link to open a new tab
[18:47] <abarth> othermaciej: you should try it and see
[18:47] <abarth> the task manage in chrome will tell you how the processes are grouped
[18:47] <abarth> manager
[18:47] <esprehn> ah, then I don't think they're accessible
[18:47] <othermaciej> OK, I did not realize there was an easy way to tell in the UI
[18:48] <abarth> yes, you can also try different process models with a command line swithc
[18:48] <abarth> I think it's --process-model
[18:48] <abarth> the doc on the web site might say
[18:48] --> nduca has joined this channel (nduca@nat/google/x-aallnmiwisiwyxhu).
[18:48] <jamesr> also keep in mind we have overall process count limits based on system memory, etc
[18:48] <othermaciej> abarth: anyway, although we call our model process-per-tab, we do swap processes on some UI-initiated navigations and will probably over time do it on all
[18:49] <othermaciej> abarth: is there a deep reason Chrome doesn
[18:49] <othermaciej> t process-swap on renderer-initiated navigations or is that just implementation accident?
[18:49] <abarth> there are compatibility issues
[18:50] <othermaciej> jamesr: yes - we have a process count cap for similar reasons (though I think tabs that need to be isolated for security reasons would be able to bust the cap)
[18:50] <abarth> because using a new process moves to a different unit of related browsing contexts
[18:50] <abarth> which effects things like named window resolution
[18:50] <esprehn> othermaciej: Webkit2 will create mere than one Web Content Process now?
[18:50] <othermaciej> esprehn: it has a mode where it can do so, yeah - not enabled in any shipping browser yet afaik
[18:51] <esprehn> ok
[18:51] <jochen__> also, depending on the navigation, we create a new process
[18:51] <WKR> https://trac.webkit.org/r143650 by Dean Jackson (dino) Plug-in snapshotting code always accepts first snapshot https://webkit.org/b/110495 Reviewed by Tim Horton (thorton).
[18:51] <othermaciej> it sounds like it has ended up surprisingly similar to Chrome's model though not yet as mature or as advanced and perhaps different in some minor details
[18:52] --> jbrianceau has joined this channel (52e5b577@gateway/web/freenode/ip.82.229.181.119).
[18:52] <esprehn> from a security perspective you'd want all origin changes to process swap
[18:52] <esprehn> so you couldn't get a user to go to site A, load up a bunch of autofill data for origin A, navigate to B and compromise it
[18:53] <othermaciej> yeah but you can also do that with frames
[18:53] <esprehn> I think right now Chrome's process model doesn't sandbox autofill data per origin like that yet
[18:53] <othermaciej> which is why <http://www.chromium.org/developers/design-documents/site-isolation> is the presumed security ideal
[18:53] <esprehn> right, process per tab is part of that effort
[18:53] <esprehn> err frame I mean :)
[18:53] <abarth> othermaciej: right, that's why you need out of process iframes
[18:53] <jbrianceau> olliej: ping
[18:53] --> lmclister has joined this channel (~lmclister@216-75-239-90.static.wiline.com).
[18:54] <-- loislo1 has left this server (Quit: Leaving.).
[18:55] <jamesr> anyone here know about CachedFrame?
[18:55] <jamesr> i'm trying to understand its relationship with a FrameView
[18:55] <jamesr> smfr, maybe you know?
[18:56] <othermaciej> abarth, esprehn, jamesr: thanks for the discussion, I feel like I learned something
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment