Re: [chromium-dev] Process Model Extension API Proposal

2010-01-16 Thread Darin Fisher
On Fri, Jan 15, 2010 at 1:27 PM, Charlie Reis cr...@chromium.org wrote:



 On Fri, Jan 15, 2010 at 12:04 PM, Rafael Weinstein 
 rafa...@chromium.orgwrote:

 LGTM also.

 One thought: I've seen a few requests on the crx-dev mailing list for
 API capabilities for both finding out when a process has crashed and
 also when it has become unresponsive. I'm unfamiliar with our code
 that checks for a hung renderer. Would the process.cpu value be a
 proxy for this? Would there be another way to expose it?


 I have the onExited event to listen for crashed tabs.

 For hung tabs, I don't think cpu is a good proxy for it.  Maybe we could
 add a onHung event that fires when Chrome decides a process is unresponsive?


This would be fairly easy to support.  You can just
observe NotificationType::RENDERER_PROCESS_HANG.

-Darin




 Also, my preference would be for avoiding adding processId to Tab and
 using processes.get(tabId) instead, just for the sake of keeping the
 API completely contained within the experimental namespace.

 R


 Darn, I was just getting ready to submit that CL for review.  :)

 I'd like to still pass a process ID to the get() method, so that it can be
 useful for browser, plugin, and renderer processes as well.  Maybe
 chrome.experimental.processes.getProcessId(tabId), with the expectation that
 it will be removed when processId is later added to Tab?

 Charlie





 On Wed, Jan 13, 2010 at 2:49 PM, Erik Kay erik...@chromium.org wrote:
  On Wed, Jan 13, 2010 at 1:21 PM, Charlie Reis cr...@chromium.org
 wrote:
 
  Thanks.  I've updated the proposal doc based on suggestions from this
  discussion, including a global onUpdated event, notes about only
 providing
  cross-platform statistics, and adding a tabs array to each Process for
 the
  tabs associated with it (at least for renderer processes).
  http://docs.google.com/View?id=dhr988kp_4f76886hc
  As Aaron mentions, most of this can start out in the
 chrome.experimental
  namespace.  I'd like to add the processId property to Tab, which has
 value
  on its own without the rest of the chrome.experimental.processes
 module.
   (e.g., I used it to build the first example use case: a Browser Action
 that
  shows all the tabs sharing the current tab's process.)  Can I add that
  property to Tab directly, or should I temporarily add an experimental
 API to
  get a processId given a tabId?
 
  Yeah, unfortunately we don't have a way of adding experimental fields to
  non-experimental APIs.  In this case, I'd say processId is a relatively
 safe
  addition, so go for it.
  Erik
 
 
  Charlie
 
 
  On Tue, Jan 12, 2010 at 5:09 PM, Erik Kay erik...@chromium.org
 wrote:
 
  LGTM.
  I agree that you should look into the broad (global, not per-process)
  onUpdated event.  For any active monitoring extension (vs. static
 display),
  I would wager that this would result in a more efficient
 implementation than
  having them poll.
  I also agree with Aaron's answers to your open questions.
  Erik
 
  On Tue, Jan 12, 2010 at 1:08 PM, Charlie Reis cr...@chromium.org
 wrote:
 
  On Tue, Jan 12, 2010 at 12:44 PM, James Robinson jam...@google.com
  wrote:
 
  Getting this information in a cross-platform way is a huge pain (do
 we
  even do it properly for mac yet?), so it seems like a decent idea to
 let
  extensions reuse the work done rather than reimplementing
 everything.
 
  I agree.  Plus NPAPI is a really big hammer that throws out most of
  the protections that Chromium's process model and sandbox offer
 extensions,
  so I'd find it ironic to rely on that for people interested in data
 about
  the process model...
 
 
  I'd suggest having the browser fire some sort of update event to the
  extension whenever the metrics are updated rather than forcing the
 extension
  to poll.  This is how the task manager works currently.
 
  - James
 
  I'm happy to add an onUpdated event, but I thought it might be fired
 too
  often to expose it as an extension event.  If we're not concerned
 about the
  frequency, I'll put it in the proposal.
  Charlie
 
 
 
  On Tue, Jan 12, 2010 at 12:38 PM, Matt Perry 
 mpcompl...@chromium.org
  wrote:
 
  Would it be possible to implement the same functionality using an
  NPAPI plugin? Extensions are allowed to bundle native plugins and
 interact
  with them from script.
  On Tue, Jan 12, 2010 at 10:48 AM, Charlie Reis cr...@chromium.org
 
  wrote:
 
  Hi folks--
I've put together a proposal for a Chromium extensions module
 that
  exposes
  data about the browser's processes.  I think this could be useful
 for
  things
  like per-tab CPU/memory utilization graphs, custom task managers,
 or
  visualizing which tabs are sharing processes.
  http://docs.google.com/View?id=dhr988kp_4f76886hc
  Please let me know what you think.
  Thanks!
  Charlie Reis
  --
  Chromium Developers mailing list: chromium-dev@googlegroups.com
  View archives, change email options, or unsubscribe:
 http://groups.google.com/group/chromium-dev
 
 
  --
  

Re: [chromium-dev] Process Model Extension API Proposal

2010-01-15 Thread Rafael Weinstein
LGTM also.

One thought: I've seen a few requests on the crx-dev mailing list for
API capabilities for both finding out when a process has crashed and
also when it has become unresponsive. I'm unfamiliar with our code
that checks for a hung renderer. Would the process.cpu value be a
proxy for this? Would there be another way to expose it?

Also, my preference would be for avoiding adding processId to Tab and
using processes.get(tabId) instead, just for the sake of keeping the
API completely contained within the experimental namespace.

R

On Wed, Jan 13, 2010 at 2:49 PM, Erik Kay erik...@chromium.org wrote:
 On Wed, Jan 13, 2010 at 1:21 PM, Charlie Reis cr...@chromium.org wrote:

 Thanks.  I've updated the proposal doc based on suggestions from this
 discussion, including a global onUpdated event, notes about only providing
 cross-platform statistics, and adding a tabs array to each Process for the
 tabs associated with it (at least for renderer processes).
 http://docs.google.com/View?id=dhr988kp_4f76886hc
 As Aaron mentions, most of this can start out in the chrome.experimental
 namespace.  I'd like to add the processId property to Tab, which has value
 on its own without the rest of the chrome.experimental.processes module.
  (e.g., I used it to build the first example use case: a Browser Action that
 shows all the tabs sharing the current tab's process.)  Can I add that
 property to Tab directly, or should I temporarily add an experimental API to
 get a processId given a tabId?

 Yeah, unfortunately we don't have a way of adding experimental fields to
 non-experimental APIs.  In this case, I'd say processId is a relatively safe
 addition, so go for it.
 Erik


 Charlie


 On Tue, Jan 12, 2010 at 5:09 PM, Erik Kay erik...@chromium.org wrote:

 LGTM.
 I agree that you should look into the broad (global, not per-process)
 onUpdated event.  For any active monitoring extension (vs. static display),
 I would wager that this would result in a more efficient implementation than
 having them poll.
 I also agree with Aaron's answers to your open questions.
 Erik

 On Tue, Jan 12, 2010 at 1:08 PM, Charlie Reis cr...@chromium.org wrote:

 On Tue, Jan 12, 2010 at 12:44 PM, James Robinson jam...@google.com
 wrote:

 Getting this information in a cross-platform way is a huge pain (do we
 even do it properly for mac yet?), so it seems like a decent idea to let
 extensions reuse the work done rather than reimplementing everything.

 I agree.  Plus NPAPI is a really big hammer that throws out most of
 the protections that Chromium's process model and sandbox offer extensions,
 so I'd find it ironic to rely on that for people interested in data about
 the process model...


 I'd suggest having the browser fire some sort of update event to the
 extension whenever the metrics are updated rather than forcing the 
 extension
 to poll.  This is how the task manager works currently.

 - James

 I'm happy to add an onUpdated event, but I thought it might be fired too
 often to expose it as an extension event.  If we're not concerned about the
 frequency, I'll put it in the proposal.
 Charlie



 On Tue, Jan 12, 2010 at 12:38 PM, Matt Perry mpcompl...@chromium.org
 wrote:

 Would it be possible to implement the same functionality using an
 NPAPI plugin? Extensions are allowed to bundle native plugins and 
 interact
 with them from script.
 On Tue, Jan 12, 2010 at 10:48 AM, Charlie Reis cr...@chromium.org
 wrote:

 Hi folks--
   I've put together a proposal for a Chromium extensions module that
 exposes
 data about the browser's processes.  I think this could be useful for
 things
 like per-tab CPU/memory utilization graphs, custom task managers, or
 visualizing which tabs are sharing processes.
 http://docs.google.com/View?id=dhr988kp_4f76886hc
 Please let me know what you think.
 Thanks!
 Charlie Reis
 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
    http://groups.google.com/group/chromium-dev


 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
    http://groups.google.com/group/chromium-dev



 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
    http://groups.google.com/group/chromium-dev




 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
    http://groups.google.com/group/chromium-dev

-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] Process Model Extension API Proposal

2010-01-15 Thread Charlie Reis
On Fri, Jan 15, 2010 at 12:04 PM, Rafael Weinstein rafa...@chromium.orgwrote:

 LGTM also.

 One thought: I've seen a few requests on the crx-dev mailing list for
 API capabilities for both finding out when a process has crashed and
 also when it has become unresponsive. I'm unfamiliar with our code
 that checks for a hung renderer. Would the process.cpu value be a
 proxy for this? Would there be another way to expose it?


I have the onExited event to listen for crashed tabs.

For hung tabs, I don't think cpu is a good proxy for it.  Maybe we could add
a onHung event that fires when Chrome decides a process is unresponsive?


 Also, my preference would be for avoiding adding processId to Tab and
 using processes.get(tabId) instead, just for the sake of keeping the
 API completely contained within the experimental namespace.

 R


Darn, I was just getting ready to submit that CL for review.  :)

I'd like to still pass a process ID to the get() method, so that it can be
useful for browser, plugin, and renderer processes as well.  Maybe
chrome.experimental.processes.getProcessId(tabId), with the expectation that
it will be removed when processId is later added to Tab?

Charlie





 On Wed, Jan 13, 2010 at 2:49 PM, Erik Kay erik...@chromium.org wrote:
  On Wed, Jan 13, 2010 at 1:21 PM, Charlie Reis cr...@chromium.org
 wrote:
 
  Thanks.  I've updated the proposal doc based on suggestions from this
  discussion, including a global onUpdated event, notes about only
 providing
  cross-platform statistics, and adding a tabs array to each Process for
 the
  tabs associated with it (at least for renderer processes).
  http://docs.google.com/View?id=dhr988kp_4f76886hc
  As Aaron mentions, most of this can start out in the chrome.experimental
  namespace.  I'd like to add the processId property to Tab, which has
 value
  on its own without the rest of the chrome.experimental.processes module.
   (e.g., I used it to build the first example use case: a Browser Action
 that
  shows all the tabs sharing the current tab's process.)  Can I add that
  property to Tab directly, or should I temporarily add an experimental
 API to
  get a processId given a tabId?
 
  Yeah, unfortunately we don't have a way of adding experimental fields to
  non-experimental APIs.  In this case, I'd say processId is a relatively
 safe
  addition, so go for it.
  Erik
 
 
  Charlie
 
 
  On Tue, Jan 12, 2010 at 5:09 PM, Erik Kay erik...@chromium.org wrote:
 
  LGTM.
  I agree that you should look into the broad (global, not per-process)
  onUpdated event.  For any active monitoring extension (vs. static
 display),
  I would wager that this would result in a more efficient implementation
 than
  having them poll.
  I also agree with Aaron's answers to your open questions.
  Erik
 
  On Tue, Jan 12, 2010 at 1:08 PM, Charlie Reis cr...@chromium.org
 wrote:
 
  On Tue, Jan 12, 2010 at 12:44 PM, James Robinson jam...@google.com
  wrote:
 
  Getting this information in a cross-platform way is a huge pain (do
 we
  even do it properly for mac yet?), so it seems like a decent idea to
 let
  extensions reuse the work done rather than reimplementing everything.
 
  I agree.  Plus NPAPI is a really big hammer that throws out most of
  the protections that Chromium's process model and sandbox offer
 extensions,
  so I'd find it ironic to rely on that for people interested in data
 about
  the process model...
 
 
  I'd suggest having the browser fire some sort of update event to the
  extension whenever the metrics are updated rather than forcing the
 extension
  to poll.  This is how the task manager works currently.
 
  - James
 
  I'm happy to add an onUpdated event, but I thought it might be fired
 too
  often to expose it as an extension event.  If we're not concerned
 about the
  frequency, I'll put it in the proposal.
  Charlie
 
 
 
  On Tue, Jan 12, 2010 at 12:38 PM, Matt Perry 
 mpcompl...@chromium.org
  wrote:
 
  Would it be possible to implement the same functionality using an
  NPAPI plugin? Extensions are allowed to bundle native plugins and
 interact
  with them from script.
  On Tue, Jan 12, 2010 at 10:48 AM, Charlie Reis cr...@chromium.org
  wrote:
 
  Hi folks--
I've put together a proposal for a Chromium extensions module
 that
  exposes
  data about the browser's processes.  I think this could be useful
 for
  things
  like per-tab CPU/memory utilization graphs, custom task managers,
 or
  visualizing which tabs are sharing processes.
  http://docs.google.com/View?id=dhr988kp_4f76886hc
  Please let me know what you think.
  Thanks!
  Charlie Reis
  --
  Chromium Developers mailing list: chromium-dev@googlegroups.com
  View archives, change email options, or unsubscribe:
 http://groups.google.com/group/chromium-dev
 
 
  --
  Chromium Developers mailing list: chromium-dev@googlegroups.com
  View archives, change email options, or unsubscribe:
 http://groups.google.com/group/chromium-dev
 
 
 
  --
  Chromium Developers 

Re: [chromium-dev] Process Model Extension API Proposal

2010-01-15 Thread Rafael Weinstein
On Fri, Jan 15, 2010 at 1:27 PM, Charlie Reis cr...@chromium.org wrote:


 On Fri, Jan 15, 2010 at 12:04 PM, Rafael Weinstein rafa...@chromium.org
 wrote:

 LGTM also.

 One thought: I've seen a few requests on the crx-dev mailing list for
 API capabilities for both finding out when a process has crashed and
 also when it has become unresponsive. I'm unfamiliar with our code
 that checks for a hung renderer. Would the process.cpu value be a
 proxy for this? Would there be another way to expose it?

 I have the onExited event to listen for crashed tabs.
 For hung tabs, I don't think cpu is a good proxy for it.  Maybe we could add
 a onHung event that fires when Chrome decides a process is unresponsive?

Sounds good.


 Also, my preference would be for avoiding adding processId to Tab and
 using processes.get(tabId) instead, just for the sake of keeping the
 API completely contained within the experimental namespace.

 R

 Darn, I was just getting ready to submit that CL for review.  :)
 I'd like to still pass a process ID to the get() method, so that it can be
 useful for browser, plugin, and renderer processes as well.  Maybe
 chrome.experimental.processes.getProcessId(tabId), with the expectation that
 it will be removed when processId is later added to Tab?
 Charlie

Sorry, I didn't noticed that get() was taking a processId (duh).

Sound good. Or even getProcessForTab(tabId), just because it's most
likely you'll just turn around and call processes.get() on the result
of getProcessId()




 On Wed, Jan 13, 2010 at 2:49 PM, Erik Kay erik...@chromium.org wrote:
  On Wed, Jan 13, 2010 at 1:21 PM, Charlie Reis cr...@chromium.org
  wrote:
 
  Thanks.  I've updated the proposal doc based on suggestions from this
  discussion, including a global onUpdated event, notes about only
  providing
  cross-platform statistics, and adding a tabs array to each Process for
  the
  tabs associated with it (at least for renderer processes).
  http://docs.google.com/View?id=dhr988kp_4f76886hc
  As Aaron mentions, most of this can start out in the
  chrome.experimental
  namespace.  I'd like to add the processId property to Tab, which has
  value
  on its own without the rest of the chrome.experimental.processes
  module.
   (e.g., I used it to build the first example use case: a Browser Action
  that
  shows all the tabs sharing the current tab's process.)  Can I add that
  property to Tab directly, or should I temporarily add an experimental
  API to
  get a processId given a tabId?
 
  Yeah, unfortunately we don't have a way of adding experimental fields to
  non-experimental APIs.  In this case, I'd say processId is a relatively
  safe
  addition, so go for it.
  Erik
 
 
  Charlie
 
 
  On Tue, Jan 12, 2010 at 5:09 PM, Erik Kay erik...@chromium.org wrote:
 
  LGTM.
  I agree that you should look into the broad (global, not per-process)
  onUpdated event.  For any active monitoring extension (vs. static
  display),
  I would wager that this would result in a more efficient
  implementation than
  having them poll.
  I also agree with Aaron's answers to your open questions.
  Erik
 
  On Tue, Jan 12, 2010 at 1:08 PM, Charlie Reis cr...@chromium.org
  wrote:
 
  On Tue, Jan 12, 2010 at 12:44 PM, James Robinson jam...@google.com
  wrote:
 
  Getting this information in a cross-platform way is a huge pain (do
  we
  even do it properly for mac yet?), so it seems like a decent idea to
  let
  extensions reuse the work done rather than reimplementing
  everything.
 
  I agree.  Plus NPAPI is a really big hammer that throws out most of
  the protections that Chromium's process model and sandbox offer
  extensions,
  so I'd find it ironic to rely on that for people interested in data
  about
  the process model...
 
 
  I'd suggest having the browser fire some sort of update event to the
  extension whenever the metrics are updated rather than forcing the
  extension
  to poll.  This is how the task manager works currently.
 
  - James
 
  I'm happy to add an onUpdated event, but I thought it might be fired
  too
  often to expose it as an extension event.  If we're not concerned
  about the
  frequency, I'll put it in the proposal.
  Charlie
 
 
 
  On Tue, Jan 12, 2010 at 12:38 PM, Matt Perry
  mpcompl...@chromium.org
  wrote:
 
  Would it be possible to implement the same functionality using an
  NPAPI plugin? Extensions are allowed to bundle native plugins and
  interact
  with them from script.
  On Tue, Jan 12, 2010 at 10:48 AM, Charlie Reis cr...@chromium.org
  wrote:
 
  Hi folks--
    I've put together a proposal for a Chromium extensions module
  that
  exposes
  data about the browser's processes.  I think this could be useful
  for
  things
  like per-tab CPU/memory utilization graphs, custom task managers,
  or
  visualizing which tabs are sharing processes.
  http://docs.google.com/View?id=dhr988kp_4f76886hc
  Please let me know what you think.
  Thanks!
  Charlie Reis
  --
  Chromium Developers mailing list: 

Re: [chromium-dev] Process Model Extension API Proposal

2010-01-15 Thread Charlie Reis
On Fri, Jan 15, 2010 at 1:33 PM, Rafael Weinstein rafa...@chromium.orgwrote:

 On Fri, Jan 15, 2010 at 1:27 PM, Charlie Reis cr...@chromium.org wrote:
 
 
  On Fri, Jan 15, 2010 at 12:04 PM, Rafael Weinstein rafa...@chromium.org
 
  wrote:
 
  LGTM also.
 
  One thought: I've seen a few requests on the crx-dev mailing list for
  API capabilities for both finding out when a process has crashed and
  also when it has become unresponsive. I'm unfamiliar with our code
  that checks for a hung renderer. Would the process.cpu value be a
  proxy for this? Would there be another way to expose it?
 
  I have the onExited event to listen for crashed tabs.
  For hung tabs, I don't think cpu is a good proxy for it.  Maybe we could
 add
  a onHung event that fires when Chrome decides a process is unresponsive?

 Sounds good.

 
  Also, my preference would be for avoiding adding processId to Tab and
  using processes.get(tabId) instead, just for the sake of keeping the
  API completely contained within the experimental namespace.
 
  R
 
  Darn, I was just getting ready to submit that CL for review.  :)
  I'd like to still pass a process ID to the get() method, so that it can
 be
  useful for browser, plugin, and renderer processes as well.  Maybe
  chrome.experimental.processes.getProcessId(tabId), with the expectation
 that
  it will be removed when processId is later added to Tab?
  Charlie

 Sorry, I didn't noticed that get() was taking a processId (duh).

 Sound good. Or even getProcessForTab(tabId), just because it's most
 likely you'll just turn around and call processes.get() on the result
 of getProcessId()


Makes sense-- it's easy it get the processId from the Process object if
that's what you want.

I added it to the doc, along with a new onUnresponsive event (rather than
onHung).

Charlie



 
 
 
  On Wed, Jan 13, 2010 at 2:49 PM, Erik Kay erik...@chromium.org wrote:
   On Wed, Jan 13, 2010 at 1:21 PM, Charlie Reis cr...@chromium.org
   wrote:
  
   Thanks.  I've updated the proposal doc based on suggestions from this
   discussion, including a global onUpdated event, notes about only
   providing
   cross-platform statistics, and adding a tabs array to each Process
 for
   the
   tabs associated with it (at least for renderer processes).
   http://docs.google.com/View?id=dhr988kp_4f76886hc
   As Aaron mentions, most of this can start out in the
   chrome.experimental
   namespace.  I'd like to add the processId property to Tab, which has
   value
   on its own without the rest of the chrome.experimental.processes
   module.
(e.g., I used it to build the first example use case: a Browser
 Action
   that
   shows all the tabs sharing the current tab's process.)  Can I add
 that
   property to Tab directly, or should I temporarily add an experimental
   API to
   get a processId given a tabId?
  
   Yeah, unfortunately we don't have a way of adding experimental fields
 to
   non-experimental APIs.  In this case, I'd say processId is a
 relatively
   safe
   addition, so go for it.
   Erik
  
  
   Charlie
  
  
   On Tue, Jan 12, 2010 at 5:09 PM, Erik Kay erik...@chromium.org
 wrote:
  
   LGTM.
   I agree that you should look into the broad (global, not
 per-process)
   onUpdated event.  For any active monitoring extension (vs. static
   display),
   I would wager that this would result in a more efficient
   implementation than
   having them poll.
   I also agree with Aaron's answers to your open questions.
   Erik
  
   On Tue, Jan 12, 2010 at 1:08 PM, Charlie Reis cr...@chromium.org
   wrote:
  
   On Tue, Jan 12, 2010 at 12:44 PM, James Robinson 
 jam...@google.com
   wrote:
  
   Getting this information in a cross-platform way is a huge pain
 (do
   we
   even do it properly for mac yet?), so it seems like a decent idea
 to
   let
   extensions reuse the work done rather than reimplementing
   everything.
  
   I agree.  Plus NPAPI is a really big hammer that throws out most
 of
   the protections that Chromium's process model and sandbox offer
   extensions,
   so I'd find it ironic to rely on that for people interested in data
   about
   the process model...
  
  
   I'd suggest having the browser fire some sort of update event to
 the
   extension whenever the metrics are updated rather than forcing the
   extension
   to poll.  This is how the task manager works currently.
  
   - James
  
   I'm happy to add an onUpdated event, but I thought it might be
 fired
   too
   often to expose it as an extension event.  If we're not concerned
   about the
   frequency, I'll put it in the proposal.
   Charlie
  
  
  
   On Tue, Jan 12, 2010 at 12:38 PM, Matt Perry
   mpcompl...@chromium.org
   wrote:
  
   Would it be possible to implement the same functionality using an
   NPAPI plugin? Extensions are allowed to bundle native plugins and
   interact
   with them from script.
   On Tue, Jan 12, 2010 at 10:48 AM, Charlie Reis 
 cr...@chromium.org
   wrote:
  
   Hi folks--
 I've put together a 

Re: [chromium-dev] Process Model Extension API Proposal

2010-01-13 Thread Charlie Reis
Thanks.  I've updated the proposal doc based on suggestions from this
discussion, including a global onUpdated event, notes about only providing
cross-platform statistics, and adding a tabs array to each Process for the
tabs associated with it (at least for renderer processes).

http://docs.google.com/View?id=dhr988kp_4f76886hc

As Aaron mentions, most of this can start out in the chrome.experimental
namespace.  I'd like to add the processId property to Tab, which has value
on its own without the rest of the chrome.experimental.processes module.
 (e.g., I used it to build the first example use case: a Browser Action that
shows all the tabs sharing the current tab's process.)  Can I add that
property to Tab directly, or should I temporarily add an experimental API to
get a processId given a tabId?

Charlie


On Tue, Jan 12, 2010 at 5:09 PM, Erik Kay erik...@chromium.org wrote:

 LGTM.

 I agree that you should look into the broad (global, not per-process)
 onUpdated event.  For any active monitoring extension (vs. static display),
 I would wager that this would result in a more efficient implementation than
 having them poll.

 I also agree with Aaron's answers to your open questions.

 Erik


 On Tue, Jan 12, 2010 at 1:08 PM, Charlie Reis cr...@chromium.org wrote:

 On Tue, Jan 12, 2010 at 12:44 PM, James Robinson jam...@google.comwrote:

 Getting this information in a cross-platform way is a huge pain (do we
 even do it properly for mac yet?), so it seems like a decent idea to let
 extensions reuse the work done rather than reimplementing everything.


 I agree.  Plus NPAPI is a really big hammer that throws out most of the
 protections that Chromium's process model and sandbox offer extensions, so
 I'd find it ironic to rely on that for people interested in data about the
 process model...


 I'd suggest having the browser fire some sort of update event to the
 extension whenever the metrics are updated rather than forcing the extension
 to poll.  This is how the task manager works currently.

 - James


 I'm happy to add an onUpdated event, but I thought it might be fired too
 often to expose it as an extension event.  If we're not concerned about the
 frequency, I'll put it in the proposal.

 Charlie





 On Tue, Jan 12, 2010 at 12:38 PM, Matt Perry mpcompl...@chromium.orgwrote:

 Would it be possible to implement the same functionality using an NPAPI
 plugin? Extensions are allowed to bundle native plugins and interact with
 them from script.

 On Tue, Jan 12, 2010 at 10:48 AM, Charlie Reis cr...@chromium.orgwrote:

 Hi folks--
   I've put together a proposal for a Chromium extensions module that
 exposes
 data about the browser's processes.  I think this could be useful for
 things
 like per-tab CPU/memory utilization graphs, custom task managers, or
 visualizing which tabs are sharing processes.

 http://docs.google.com/View?id=dhr988kp_4f76886hc

 Please let me know what you think.

 Thanks!
 Charlie Reis

 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev



 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev




 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev



-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] Process Model Extension API Proposal

2010-01-13 Thread Erik Kay
On Wed, Jan 13, 2010 at 1:21 PM, Charlie Reis cr...@chromium.org wrote:

 Thanks.  I've updated the proposal doc based on suggestions from this
 discussion, including a global onUpdated event, notes about only providing
 cross-platform statistics, and adding a tabs array to each Process for the
 tabs associated with it (at least for renderer processes).

 http://docs.google.com/View?id=dhr988kp_4f76886hc

 As Aaron mentions, most of this can start out in the chrome.experimental
 namespace.  I'd like to add the processId property to Tab, which has value
 on its own without the rest of the chrome.experimental.processes module.
  (e.g., I used it to build the first example use case: a Browser Action that
 shows all the tabs sharing the current tab's process.)  Can I add that
 property to Tab directly, or should I temporarily add an experimental API to
 get a processId given a tabId?


Yeah, unfortunately we don't have a way of adding experimental fields to
non-experimental APIs.  In this case, I'd say processId is a relatively safe
addition, so go for it.

Erik




 Charlie


 On Tue, Jan 12, 2010 at 5:09 PM, Erik Kay erik...@chromium.org wrote:

 LGTM.

 I agree that you should look into the broad (global, not per-process)
 onUpdated event.  For any active monitoring extension (vs. static display),
 I would wager that this would result in a more efficient implementation than
 having them poll.

 I also agree with Aaron's answers to your open questions.

 Erik


 On Tue, Jan 12, 2010 at 1:08 PM, Charlie Reis cr...@chromium.org wrote:

 On Tue, Jan 12, 2010 at 12:44 PM, James Robinson jam...@google.comwrote:

 Getting this information in a cross-platform way is a huge pain (do we
 even do it properly for mac yet?), so it seems like a decent idea to let
 extensions reuse the work done rather than reimplementing everything.


 I agree.  Plus NPAPI is a really big hammer that throws out most of the
 protections that Chromium's process model and sandbox offer extensions, so
 I'd find it ironic to rely on that for people interested in data about the
 process model...


 I'd suggest having the browser fire some sort of update event to the
 extension whenever the metrics are updated rather than forcing the 
 extension
 to poll.  This is how the task manager works currently.

 - James


 I'm happy to add an onUpdated event, but I thought it might be fired too
 often to expose it as an extension event.  If we're not concerned about the
 frequency, I'll put it in the proposal.

 Charlie





 On Tue, Jan 12, 2010 at 12:38 PM, Matt Perry 
 mpcompl...@chromium.orgwrote:

 Would it be possible to implement the same functionality using an NPAPI
 plugin? Extensions are allowed to bundle native plugins and interact with
 them from script.

 On Tue, Jan 12, 2010 at 10:48 AM, Charlie Reis cr...@chromium.orgwrote:

 Hi folks--
   I've put together a proposal for a Chromium extensions module that
 exposes
 data about the browser's processes.  I think this could be useful for
 things
 like per-tab CPU/memory utilization graphs, custom task managers, or
 visualizing which tabs are sharing processes.

 http://docs.google.com/View?id=dhr988kp_4f76886hc

 Please let me know what you think.

 Thanks!
 Charlie Reis

 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev



 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev




 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev




-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] Process Model Extension API Proposal

2010-01-12 Thread Matt Perry
Would it be possible to implement the same functionality using an NPAPI
plugin? Extensions are allowed to bundle native plugins and interact with
them from script.

On Tue, Jan 12, 2010 at 10:48 AM, Charlie Reis cr...@chromium.org wrote:

 Hi folks--
   I've put together a proposal for a Chromium extensions module that
 exposes
 data about the browser's processes.  I think this could be useful for
 things
 like per-tab CPU/memory utilization graphs, custom task managers, or
 visualizing which tabs are sharing processes.

 http://docs.google.com/View?id=dhr988kp_4f76886hc

 Please let me know what you think.

 Thanks!
 Charlie Reis

 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev

-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] Process Model Extension API Proposal

2010-01-12 Thread James Robinson
Getting this information in a cross-platform way is a huge pain (do we even
do it properly for mac yet?), so it seems like a decent idea to let
extensions reuse the work done rather than reimplementing everything.

I'd suggest having the browser fire some sort of update event to the
extension whenever the metrics are updated rather than forcing the extension
to poll.  This is how the task manager works currently.

- James

On Tue, Jan 12, 2010 at 12:38 PM, Matt Perry mpcompl...@chromium.orgwrote:

 Would it be possible to implement the same functionality using an NPAPI
 plugin? Extensions are allowed to bundle native plugins and interact with
 them from script.

 On Tue, Jan 12, 2010 at 10:48 AM, Charlie Reis cr...@chromium.org wrote:

 Hi folks--
   I've put together a proposal for a Chromium extensions module that
 exposes
 data about the browser's processes.  I think this could be useful for
 things
 like per-tab CPU/memory utilization graphs, custom task managers, or
 visualizing which tabs are sharing processes.

 http://docs.google.com/View?id=dhr988kp_4f76886hc

 Please let me know what you think.

 Thanks!
 Charlie Reis

 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev



 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev

-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] Process Model Extension API Proposal

2010-01-12 Thread Charlie Reis
On Tue, Jan 12, 2010 at 12:44 PM, James Robinson jam...@google.com wrote:

 Getting this information in a cross-platform way is a huge pain (do we even
 do it properly for mac yet?), so it seems like a decent idea to let
 extensions reuse the work done rather than reimplementing everything.


I agree.  Plus NPAPI is a really big hammer that throws out most of the
protections that Chromium's process model and sandbox offer extensions, so
I'd find it ironic to rely on that for people interested in data about the
process model...


 I'd suggest having the browser fire some sort of update event to the
 extension whenever the metrics are updated rather than forcing the extension
 to poll.  This is how the task manager works currently.

 - James


I'm happy to add an onUpdated event, but I thought it might be fired too
often to expose it as an extension event.  If we're not concerned about the
frequency, I'll put it in the proposal.

Charlie





 On Tue, Jan 12, 2010 at 12:38 PM, Matt Perry mpcompl...@chromium.orgwrote:

 Would it be possible to implement the same functionality using an NPAPI
 plugin? Extensions are allowed to bundle native plugins and interact with
 them from script.

 On Tue, Jan 12, 2010 at 10:48 AM, Charlie Reis cr...@chromium.orgwrote:

 Hi folks--
   I've put together a proposal for a Chromium extensions module that
 exposes
 data about the browser's processes.  I think this could be useful for
 things
 like per-tab CPU/memory utilization graphs, custom task managers, or
 visualizing which tabs are sharing processes.

 http://docs.google.com/View?id=dhr988kp_4f76886hc

 Please let me know what you think.

 Thanks!
 Charlie Reis

 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev



 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev



-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] Process Model Extension API Proposal

2010-01-12 Thread Nico Weber
(re-sending from chromium address)

On Tue, Jan 12, 2010 at 12:44 PM, James Robinson jam...@google.com wrote:
 Getting this information in a cross-platform way is a huge pain (do we even
 do it properly for mac yet?),

Yes, since yesterday (at least most of it).

Note that some of the memory columns might be win-specific (they are
always 0 on linux, I haven't yet looked at if they can be computed on
OS X), so don't just expose every column in an extension api without
checking if it works cross-platform.

 so it seems like a decent idea to let
 extensions reuse the work done rather than reimplementing everything.
 I'd suggest having the browser fire some sort of update event to the
 extension whenever the metrics are updated rather than forcing the extension
 to poll.  This is how the task manager works currently.

 - James

 On Tue, Jan 12, 2010 at 12:38 PM, Matt Perry mpcompl...@chromium.org
 wrote:

 Would it be possible to implement the same functionality using an NPAPI
 plugin? Extensions are allowed to bundle native plugins and interact with
 them from script.
 On Tue, Jan 12, 2010 at 10:48 AM, Charlie Reis cr...@chromium.org wrote:

 Hi folks--
   I've put together a proposal for a Chromium extensions module that
 exposes
 data about the browser's processes.  I think this could be useful for
 things
 like per-tab CPU/memory utilization graphs, custom task managers, or
 visualizing which tabs are sharing processes.
 http://docs.google.com/View?id=dhr988kp_4f76886hc
 Please let me know what you think.
 Thanks!
 Charlie Reis
 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
    http://groups.google.com/group/chromium-dev


 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
    http://groups.google.com/group/chromium-dev


 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
    http://groups.google.com/group/chromium-dev

-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] Process Model Extension API Proposal

2010-01-12 Thread Erik Kay
LGTM.

I agree that you should look into the broad (global, not per-process)
onUpdated event.  For any active monitoring extension (vs. static display),
I would wager that this would result in a more efficient implementation than
having them poll.

I also agree with Aaron's answers to your open questions.

Erik


On Tue, Jan 12, 2010 at 1:08 PM, Charlie Reis cr...@chromium.org wrote:

 On Tue, Jan 12, 2010 at 12:44 PM, James Robinson jam...@google.comwrote:

 Getting this information in a cross-platform way is a huge pain (do we
 even do it properly for mac yet?), so it seems like a decent idea to let
 extensions reuse the work done rather than reimplementing everything.


 I agree.  Plus NPAPI is a really big hammer that throws out most of the
 protections that Chromium's process model and sandbox offer extensions, so
 I'd find it ironic to rely on that for people interested in data about the
 process model...


 I'd suggest having the browser fire some sort of update event to the
 extension whenever the metrics are updated rather than forcing the extension
 to poll.  This is how the task manager works currently.

 - James


 I'm happy to add an onUpdated event, but I thought it might be fired too
 often to expose it as an extension event.  If we're not concerned about the
 frequency, I'll put it in the proposal.

 Charlie





 On Tue, Jan 12, 2010 at 12:38 PM, Matt Perry mpcompl...@chromium.orgwrote:

 Would it be possible to implement the same functionality using an NPAPI
 plugin? Extensions are allowed to bundle native plugins and interact with
 them from script.

 On Tue, Jan 12, 2010 at 10:48 AM, Charlie Reis cr...@chromium.orgwrote:

 Hi folks--
   I've put together a proposal for a Chromium extensions module that
 exposes
 data about the browser's processes.  I think this could be useful for
 things
 like per-tab CPU/memory utilization graphs, custom task managers, or
 visualizing which tabs are sharing processes.

 http://docs.google.com/View?id=dhr988kp_4f76886hc

 Please let me know what you think.

 Thanks!
 Charlie Reis

 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev



 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev




 --
 Chromium Developers mailing list: chromium-dev@googlegroups.com
 View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev

-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev