On Jan 20, 2013, at 1:44 PM, Adam Barth <aba...@webkit.org> wrote: > On Sun, Jan 20, 2013 at 1:30 PM, Oliver Hunt <oli...@apple.com> wrote: >>>> I take your word for it that it's not possible on Windows. >>> >>> Given that Chromium has many users on Windows (and other non-Mac >>> platforms), you should now understand why this design does not fit >>> well with Chromium's design constraints. >> >> But chromium doesn't use webkit or webkit2, so i'm not entirely sure why >> webkit2 design decisions should consider chromium's (pre-wk2) design >> decisions. > > The reason discussed earlier in this thread is because they have > implications for how the loader works in WebCore. In particular, > folks working on the NetworkProcess have been shoehorning it into > WebCore by adding numerous #ifdefs throughout WebCore. Are you > offerring to implement the NetworkProcess without adding a bunch of > WebKit2-specific #ifdefs to WebCore?
The choice of load interception point is completely orthogonal to the decision to make the network process is a process or a thread. > >> One thing that I'm unclear on is how having a distinct network process can >> possibly be less secure than a single thread in _any_ circumstance. >> Fundamentally any sandbox model that allows a single thread to be sandboxed, >> can just sandbox the main appropriate threads in the separate networking >> process, vice versa is not true however. > > According to Maciej, one of the motivations for having a > NetworkProcess is that it can be sandboxed more tightly on Mac OS X. > Unfortunately, the NetworkProcess, as currently designed, cannot be > sandboxed on other platforms, such as Windows. That's why the current > design is not a good fit for other platforms. > > To be clear, I think it's fine if you want to use a Mac OS X-centric > design for WebKit2. However, you shouldn't be surprised later when > other ports that run on more platforms don't want to adopt your > designs. Moreover, if sometime in the future, I want to implement a > Chromium-centric design that involves adding a bunch of #ifdefs to > WebCore, I expect that you won't mind not having input either. As I understand it, here's the payoff matrix for how much sandboxing of networking code you get, if you take the process vs thread decision in isolation: | Mac | Windows ---------------------------------------------------------------------------------- Networking in dedicated process | fs can be sandboxed | no meaningful sandbox ---------------------------------------------------------------------------------- Networking in thread in UI process | no meaningful sandbox | no meaningful sandbox Just to be absolutely clear, are you saying that the Chromium project sees the second row as a better payoff? In other words, you'd consider it bad to make Mac security better in a way that can't be applied to Windows, even if it makes Windows security no worse? I really hope that I'm just misunderstanding what you are saying. Regards, Maciej
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo/webkit-dev