Pardon me for the late entry into this conversation, but as you'll be discussing this tomorrow in your meeting I wanted to add my perspective as a Mac developer for your consideration. Since I'm new on the list, a little background info to help understand that perspective. Like thousands of developers out there, I have a notebook app. This app, named Mori, is being upgraded from letting users create content strictly as rich-text notes to holding PDFs, web archives, and various other document types. The document type UI and programmability is contained within plugins which I and third-party developers have created. When Chromium was announced, its feature of forking each web page into a separate process struck me as an intelligent way to deal with plugin security, and I anticipated adding such functionality to Mori in a future release. Now with the arrival of WebKit2 Apple's advocating process management at an API level lower than content-handling, instead promoting a process API that while not invisible to the host app would seem to make it more difficult to cleanly manage processes for web-content types and non-web content. Or do I not fully understand the functionality provided by WebKit2 and WebCore (which I freely admit I do not)? Will I be able to fork and manage non-WebCore processes through this API? Will I be able to adjust process priorities to keep all processes of a certain MIME type (say application/x-shockwave-*flash) to receive no more than 15% cpu time or monitor its memory usage? Do I need to subsume all my app's content-related functionality into WebKit to cleanly inherit the process model or else implement another Chromium-like process management layer on top for non-web content and still oversee the sub-API processes of WebKit2's scheme?* On Fri, Apr 9, 2010 at 11:24 AM, Maciej Stachowiak <mjs at apple.com <http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev>> wrote:
Simply put, Chromium WebKit did not provide what we needed to build an API that handles multiprocess and can sanely be used by many applications. While we could have built the WebKit2 API on top of Chromium WebKit, that would just be an unnecessary level of indirection compared to building on WebCore, and would not help us solve the technical challenges involved.
I would think there are more technical and performance challenges involved in the IPC in the middle of the stack rather than at the top, but I'm not yet acquainted with how you've factored out the processes.
It was a reasonable choice for Google to build multiprocess and sandboxing outside WebKit instead of inside, given that Chrome started as a secret project, and you have no other clients for your API. But it makes the Chromium multiprocess code fundamentally not reusable for other WebKit clients or other WebKit port. With WebKit2, we are looking to build reusable multiprocess.
I believe Mori, and other rich-media (or multimedia or whatever we're calling it now) apps such as it, provide sufficient examples where that isn't to be the most likely case.
I hope this post clarifies why the Chromium WebKit port is not really
a viable solution for our needs as it stands today.
Not really. As a host-app developer, I can't justify supporting 2 process models for content handlers in my app in this way. And excepting purely web-browsing apps, I don't see the benefit over the Chromium model to apps which provide users access to other types of content. As I said before, I'm not well-versed with WebKit's architecture nor the issues the WebKit2 team have been tackling that led them to see this path as the most practical manner in which to proceed. And WebKit has its clients, inside and outside of Apple, to answer to for which I'm owed neither an explanation nor alteration of the team's roadmap (or anyone else's from the community, for that matter).
Will I be able to adjust process priorities to keep all processes of a certain MIME type (say application/x-shockwave-flash) to receive no more than 15% cpu time or monitor its memory usage?
All process management is behind the API layer, the goal being to shield app developers from the details of process management. I'm not sure how you'd control the details of process management. Geoff
Hi, What's the status of Webkit2? I've built the latest webkit version on Windows with --webkit2 option and I see that there is only one process shown in Task Manager irrespective of the number of Windows that I open. Reagrds, Nayan. On 4/13/10, Geoffrey Garen <ggaren@apple.com> wrote:
Will I be able to adjust process priorities to keep all processes of a certain MIME type (say application/x-shockwave-flash) to receive no more than 15% cpu time or monitor its memory usage?
All process management is behind the API layer, the goal being to shield app developers from the details of process management. I'm not sure how you'd control the details of process management.
Geoff
-- Regards, _Nayan_
----------------------------------------
Date: Wed, 28 Apr 2010 16:40:14 +0530 From: nayankk@gmail.com To: ggaren@apple.com CC: webkit-dev@lists.webkit.org Subject: Re: [webkit-dev] Announcing WebKit2
Hi, What's the status of Webkit2? I've built the latest webkit version on Windows with --webkit2 option and I see that there is only one process shown in Task Manager irrespective of the number of Windows that I open.
Reagrds, Nayan.
On 4/13/10, Geoffrey Garen wrote:
Will I be able to adjust process priorities to keep all processes of a certain MIME type (say application/x-shockwave-flash) to receive no more than 15% cpu time or monitor its memory usage?
All process management is behind the API layer, the goal being to shield app developers from the details of process management. I'm not sure how you'd control the details of process management.
This came up before in the context of security but resource allocation should be given some thought. I'm not always sure if the people who design web pages and serve thid party items care about the user's CPU. When we did java ads, this was a big deal but today it isn't hard to open a window or two and have all resources used doing stuff unrelated to browsing. Memory, CPU, and IO allocation should have some means for monitor if not control. Presonally I wouldn't mind a file in /etc/webkit to control this and other stuff. If you are making an alternative to IE, it may be helpful to remember all the things you don't like about IE and the importance of features in these other environments..
Geoff
-- Regards, _Nayan_ _______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
_________________________________________________________________ The New Busy is not the too busy. Combine all your e-mail accounts with Hotmail. http://www.windowslive.com/campaign/thenewbusy?tile=multiaccount&ocid=PID283...
On Wed, Apr 28, 2010 at 7:10 AM, Nayan <nayankk@gmail.com> wrote:
Hi, What's the status of Webkit2? I've built the latest webkit version on Windows with --webkit2 option and I see that there is only one process shown in Task Manager irrespective of the number of Windows that I open.
Reagrds, Nayan.
On Windows, the only way to build it right now is from within WebKit2.sln. -Sam
participants (5)
-
Alfonso Guerra
-
Geoffrey Garen
-
Mike Marchywka
-
Nayan
-
Sam Weinig