[chromium-dev] Re: Unable to download Chrome Source Code

2009-07-21 Thread Pradeep

Hi Nakro,

Thank you for the reply..

Can you please guide me through the procedure to download via gclient
tool, since I found no info regarding same on the website.

Regards
Pradeep


On Jul 21, 1:20 am, nakro yoav.zilberb...@gmail.com wrote:
 Pradeep, i was also never able to download the source via the tarball
 what i did in the end was use gclient sync

 as it continues from where it left off, if the download is interrupted
 also a friend of mine could only get the source code like this
--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Unable to download Chrome Source Code

2009-07-21 Thread Mohamed Mansour
It is explained here, read the section regarding To check out directly from
SVN::http://dev.chromium.org/developers/how-tos/get-the-code

Or you could use the awesomeness git.
http://code.google.com/p/chromium/wiki/UsingGit

http://dev.chromium.org/developers/how-tos/get-the-code
-- Mohamed Mansour


On Tue, Jul 21, 2009 at 2:04 AM, Pradeep moluchan...@gmail.com wrote:


 Hi Nakro,

 Thank you for the reply..

 Can you please guide me through the procedure to download via gclient
 tool, since I found no info regarding same on the website.

 Regards
 Pradeep


 On Jul 21, 1:20 am, nakro yoav.zilberb...@gmail.com wrote:
  Pradeep, i was also never able to download the source via the tarball
  what i did in the end was use gclient sync
 
  as it continues from where it left off, if the download is interrupted
  also a friend of mine could only get the source code like this
 


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



[chromium-dev] Re: Unable to download Chrome Source Code

2009-07-21 Thread Pradeep

Thank you Mohamed fro your answer. I will definitely follow this link.

Thanks  Regards
Pradeep

On Jul 21, 11:16 am, Mohamed Mansour m...@chromium.org wrote:
 It is explained here, read the section regarding To check out directly from
 SVN::http://dev.chromium.org/developers/how-tos/get-the-code

 Or you could use the awesomeness 
 git.http://code.google.com/p/chromium/wiki/UsingGit

 http://dev.chromium.org/developers/how-tos/get-the-code
 -- Mohamed Mansour

 On Tue, Jul 21, 2009 at 2:04 AM, Pradeep moluchan...@gmail.com wrote:

  Hi Nakro,

  Thank you for the reply..

  Can you please guide me through the procedure to download via gclient
  tool, since I found no info regarding same on the website.

  Regards
  Pradeep

  On Jul 21, 1:20 am, nakro yoav.zilberb...@gmail.com wrote:
   Pradeep, i was also never able to download the source via the tarball
   what i did in the end was use gclient sync

   as it continues from where it left off, if the download is interrupted
   also a friend of mine could only get the source code like this
--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Mozilla design challenge

2009-07-21 Thread Dean McNamee

I feel like people are using tabs as a replacement for a good history
system.  At least in all current browser implementations, tabs are
running.  Even if we can make the UI scale to 1000 tabs, the 500
flash instances that are likely running aren't really going to
perform.  The making tab performance scale is a separate technical
issue that will hopefully also improve.

Looking at a lot of these design videos, they looked more like good
ideas to me for history navigation than tab navigation.  If history
was good, I think people wouldn't be so worried about losing
something by closing a tab.  Having had bad history systems for so
many years, people are now trained to keep tabs open if they ever
might want to look at that page again in the future :\

On Sat, Jul 18, 2009 at 1:16 AM, Peter Kastingpkast...@google.com wrote:
 http://design-challenge.mozilla.com/summer09/
 The results of the Reinventing Tabs in the Browser challenge have been
 announced.
 Collapsible Tab Groups includes among others some things I've proposed,
 including grouping and collapsing groups.
 Favitabs reminds me of some old brainstorming ideas from pamg about
 converting certain tabs into favicon buttons.
 Folks considering the future of tabs (e.g. Ben, Glen, Scott) might do well
 to take a look at some of these.
 PK
 


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



[chromium-dev] No more buildbot auto-refresh - Update your bookmark!

2009-07-21 Thread Nicolas Sylvain
Hi,
Last week a lot of people on this list said that they like the idea of
disabling the auto-reload for
our buildbot waterfall and console view. This is now implemented.

If you do want to keep the page auto-refreshing, please update your
bookmark. just add the
query parameter reload=X, where X is the number of second to wait between
each reloads.

X used to be 90. Depending on your needs, you can increase or decrease this
number.

Examples:

console view:
http://build.chromium.org/buildbot/waterfall/console?reload=180
waterfall :
http://build.chromium.org/buildbot/waterfall/waterfall?reload=180

For sheriffs:
http://build.chromium.org/buildbot/waterfall/waterfall?failures=1reload=30

Thanks

Nicolas

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



[chromium-dev] Re: Please keep TOOLKIT_VIEWS green!

2009-07-21 Thread Paweł Hajdan Jr .
Can we have a trybot with that configuration, which would just compile the
code? I think it would really save people's time. I never build with
TOOLKIT_VIEWS, and in case of breakage I would have to immediately revert
and then investigate. If I got a trybot failure, I would know much more
before committing.
On Mon, Jul 20, 2009 at 17:50, Ben Goodger (Google) b...@chromium.orgwrote:


 This mostly applies to people working on UI.

 Sometime tonight or tomorrow we'll be moving the TOOLKIT_VIEWS builder
 to the front page of the waterfall. Right now it's building just the
 chrome target, and running no tests, but in time we'll build this out.
 This is an experimental build distinct from the standard Chromium
 linux which we will ship but a codepath which we will support as first
 class for other purposes. So please keep it green! If it goes red, the
 same rules that apply to any other builder on the front page will
 apply.

 To build,

 export GYP_DEFINES=toolkit_views=1
 gclient runhooks --force
 hammer chrome

 Thanks,

 -Ben

 


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



[chromium-dev] Re: Please keep TOOLKIT_VIEWS green!

2009-07-21 Thread Nicolas Sylvain
On Mon, Jul 20, 2009 at 5:50 PM, Ben Goodger (Google) b...@chromium.orgwrote:


 This mostly applies to people working on UI.

 Sometime tonight or tomorrow we'll be moving the TOOLKIT_VIEWS builder
 to the front page of the waterfall. Right now it's building just the
 chrome target, and running no tests, but in time we'll build this out.
 This is an experimental build distinct from the standard Chromium
 linux which we will ship but a codepath which we will support as first
 class for other purposes. So please keep it green! If it goes red, the
 same rules that apply to any other builder on the front page will
 apply.


Now available at  :
http://build.chromium.org/buildbot/waterfall/waterfall?builder=Linux%20Builder%20(Toolkit%20dbg)




 To build,

 export GYP_DEFINES=toolkit_views=1
 gclient runhooks --force
 hammer chrome

 Thanks,

 -Ben

 


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



[chromium-dev] Re: Please keep TOOLKIT_VIEWS green!

2009-07-21 Thread Nicolas Sylvain
On Tue, Jul 21, 2009 at 8:31 AM, Paweł Hajdan Jr.
phajdan...@chromium.orgwrote:

 Can we have a trybot with that configuration, which would just compile the
 code? I think it would really save people's time. I never build with
 TOOLKIT_VIEWS, and in case of breakage I would have to immediately revert
 and then investigate. If I got a trybot failure, I would know much more
 before committing.


Ben: How likely is this to break?

I'm reluctant to add yet another try bot because they do take a lot of
resources.  There are maybe 200-300 try changes sent every day. That means
we need enough resources to build this configuration that many times, and it
needs to answer fast enough.

I think we should create this try bot, but make it on demand only. We are
already planning to do this for valgrind, purify and layout tests. That
won't help much catching random errors at the first place, but at least
you'll be able to see if you fixed it correctly. And if you think your code
might be breaking it, you can always pre-emptively trigger a try run on this
try bot.

I'm not sure yet when this kind of infrastructure is going to be ready. I
think it's on maruel's plate.

Nicolas


 On Mon, Jul 20, 2009 at 17:50, Ben Goodger (Google) b...@chromium.orgwrote:


 This mostly applies to people working on UI.

 Sometime tonight or tomorrow we'll be moving the TOOLKIT_VIEWS builder
 to the front page of the waterfall. Right now it's building just the
 chrome target, and running no tests, but in time we'll build this out.
 This is an experimental build distinct from the standard Chromium
 linux which we will ship but a codepath which we will support as first
 class for other purposes. So please keep it green! If it goes red, the
 same rules that apply to any other builder on the front page will
 apply.

 To build,

 export GYP_DEFINES=toolkit_views=1
 gclient runhooks --force
 hammer chrome

 Thanks,

 -Ben




 


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



[chromium-dev] Re: Please keep TOOLKIT_VIEWS green!

2009-07-21 Thread Brett Wilson

On Tue, Jul 21, 2009 at 8:42 AM, Nicolas Sylvainnsylv...@chromium.org wrote:
 On Tue, Jul 21, 2009 at 8:31 AM, Paweł Hajdan Jr. phajdan...@chromium.org
 wrote:

 Can we have a trybot with that configuration, which would just compile the
 code? I think it would really save people's time. I never build with
 TOOLKIT_VIEWS, and in case of breakage I would have to immediately revert
 and then investigate. If I got a trybot failure, I would know much more
 before committing.

 Ben: How likely is this to break?
 I'm reluctant to add yet another try bot because they do take a lot of
 resources.  There are maybe 200-300 try changes sent every day. That means
 we need enough resources to build this configuration that many times, and it
 needs to answer fast enough.

I don't think an automatically-running trybot is very critical for
this build at the moment. Most of the things that break it are pretty
simple (need to add a file to GYP, or maybe a stub for something) so
the breakage won't be super complicated. Most errors will be caught by
the regular trybots.

Brett

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



[chromium-dev] Re: Mozilla design challenge

2009-07-21 Thread Erik Kay
You may be on to something, but I think it's more complex than this.  For
example bookmark systems don't work because people use them for a number of
conflicting purposes (my list of things to read every day, a simple history
system, a 'to read' list, a collection of links for research), which have
different UI requirements.  I think the same thing has happened with tabs
(and there's a surprising amount of overlap).  Here are the use cases I know
I wind up using: - a few long running apps that need to keep running,
potentially notifying me of new events (calendar, mail, chat, buildbot,
etc.)
- a few pages that I'm currently actively using (a screenshot from a bug I'm
looking at, some reference documentation, a writely page I'm editing between
compiles, etc.)
- a to read list of pages that I started reading but didn't finish yet
(sometimes this is a collection of related pages when researching something)
- I'm sure there are others.

In my use case, 80% of my tabs could easily be killed / suspended (or even
hidden altogether) without any downside to me.  The problem is that there
isn't a way to automatically figure out which ones are which.  Which ones
have pending state that might be lost? (yes, some of this is bad app design,
but there are many like this)  Which ones do I expect to keep running all of
the time because of notifications?  What about that flash game that I left
running in the background?

Maybe we could come up with some heuristics that could detect some of this
automatically, but I worry that there will be so many exceptions that it
won't work.  That means we'd need to come up with a better UI to express
these concepts where the user chose to treat tabs differently in some
explicit way.  There are a number of extensions that try to do this for some
specific use cases (to read lists, pinned tabs, etc.).  I'm not sure that
these are better than bandaids though.

Erik


On Tue, Jul 21, 2009 at 8:28 AM, Dean McNamee de...@chromium.org wrote:


 I feel like people are using tabs as a replacement for a good history
 system.  At least in all current browser implementations, tabs are
 running.  Even if we can make the UI scale to 1000 tabs, the 500
 flash instances that are likely running aren't really going to
 perform.  The making tab performance scale is a separate technical
 issue that will hopefully also improve.

 Looking at a lot of these design videos, they looked more like good
 ideas to me for history navigation than tab navigation.  If history
 was good, I think people wouldn't be so worried about losing
 something by closing a tab.  Having had bad history systems for so
 many years, people are now trained to keep tabs open if they ever
 might want to look at that page again in the future :\

 On Sat, Jul 18, 2009 at 1:16 AM, Peter Kastingpkast...@google.com wrote:
  http://design-challenge.mozilla.com/summer09/
  The results of the Reinventing Tabs in the Browser challenge have been
  announced.
  Collapsible Tab Groups includes among others some things I've proposed,
  including grouping and collapsing groups.
  Favitabs reminds me of some old brainstorming ideas from pamg about
  converting certain tabs into favicon buttons.
  Folks considering the future of tabs (e.g. Ben, Glen, Scott) might do
 well
  to take a look at some of these.
  PK
  
 

 


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



[chromium-dev] Re: Mozilla design challenge

2009-07-21 Thread Scott Hess

+1.

There are tabs which I am using and will use consistently all the time
(mail, calendar, things like that).  For awhile on Firefox I had those
pinned and turned into favicon-only tabs using extensions, and it
mostly worked well.  Then there are collections of on deck tabs
associated with things I'm doing.  These might be documentation and
the like, and mostly I don't need them to be live, I just need them to
be easily available, and I'd like them to be grouped together.  And
then there are one-off tabs like watching a video and looking at
someone's photos or reading news, where I'm just going to grind
through their contents and dismiss them.

There may be new and interesting presentation ideas in there.  For a
collection of documentation tabs, I might be happy to freeze-dry them
in a form which will let me easily come back to them, but which
doesn't have to be live at all.  Like PDFifying them, except I'd still
want them to be resizable and stuff.  I'd be very happy if I could do
searches over the entire group, or have the browser show me snippets
from other docs in the group which might reflect on the doc I'm
reading, I'd be super happy if these docs were optimized such that I
could flip between them super-duper fast.

-scott


On Tue, Jul 21, 2009 at 8:28 AM, Dean McNameede...@chromium.org wrote:

 I feel like people are using tabs as a replacement for a good history
 system.  At least in all current browser implementations, tabs are
 running.  Even if we can make the UI scale to 1000 tabs, the 500
 flash instances that are likely running aren't really going to
 perform.  The making tab performance scale is a separate technical
 issue that will hopefully also improve.

 Looking at a lot of these design videos, they looked more like good
 ideas to me for history navigation than tab navigation.  If history
 was good, I think people wouldn't be so worried about losing
 something by closing a tab.  Having had bad history systems for so
 many years, people are now trained to keep tabs open if they ever
 might want to look at that page again in the future :\

 On Sat, Jul 18, 2009 at 1:16 AM, Peter Kastingpkast...@google.com wrote:
 http://design-challenge.mozilla.com/summer09/
 The results of the Reinventing Tabs in the Browser challenge have been
 announced.
 Collapsible Tab Groups includes among others some things I've proposed,
 including grouping and collapsing groups.
 Favitabs reminds me of some old brainstorming ideas from pamg about
 converting certain tabs into favicon buttons.
 Folks considering the future of tabs (e.g. Ben, Glen, Scott) might do well
 to take a look at some of these.
 PK
 


 


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



[chromium-dev] Re: Mozilla design challenge

2009-07-21 Thread Amanda Walker

On Tue, Jul 21, 2009 at 12:32 PM, Erik Kayerik...@chromium.org wrote:
 In my use case, 80% of my tabs could easily be killed / suspended (or even
 hidden altogether) without any downside to me.  The problem is that there
 isn't a way to automatically figure out which ones are which.  Which ones
 have pending state that might be lost?

Well, to a first approximation, ones which have had user interaction
besides scrolling since they were opened? (typing, navigating a link,
etc.)

--Amanda

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



[chromium-dev] Re: Mozilla design challenge

2009-07-21 Thread Peter Kasting
On Tue, Jul 21, 2009 at 9:52 AM, Amanda Walker ama...@chromium.org wrote:

 On Tue, Jul 21, 2009 at 12:32 PM, Erik Kayerik...@chromium.org wrote:
  In my use case, 80% of my tabs could easily be killed / suspended (or
 even
  hidden altogether) without any downside to me.  The problem is that there
  isn't a way to automatically figure out which ones are which.  Which ones
  have pending state that might be lost?

 Well, to a first approximation, ones which have had user interaction
 besides scrolling since they were opened? (typing, navigating a link,
 etc.)


I frequently avoid interacting with articles from popular news sites for
thirty seconds or so (as they sit in the background) to let their stupid
interstitial ad timeouts fire.

Scott Hess' comment that some tabs could be changed into static documents is
accurate from a UX perspective, but as this thread has already mentioned
it's hard to decide which tabs those are.  For example, today we load tabs
opened from gmail in the same renderer process as gmail because we don't
realize that those two pages are never going to script each other.  If we
don't know page A and page B won't script each other, how can we freeze A or
B?  To put it even more simply, if given a tab A, how do we know it won't
run script at some point in the future?

My own claim is that multiselection of tabs is implementable and useful, and
we should start by implementing that (which in fact Ben is currently doing,
I think), and then see if it helps any of our organization issues.  After
that, perhaps some concept of tab pinning would be useful.  The idea here is
to add things we know we can do in hopes that better usage patterns emerge,
instead of trying to envision the ideal design from nothing :)

PK

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



[chromium-dev] Re: Question about V8 bindings

2009-07-21 Thread Drew Wilson
Sigh. I keep sending this with the wrong email address. I wish Gmail would
just use the address from the last time I replied to the thread.
-=-=-

It seems like that would have some undesirable side-effects, aside from the
fact that WebKit frowns on using virtual functions unnecessarily.
So, let's imagine that I have two derived classes, SharedWorkerContext and
DedicatedWorkerContext. DedicatedWorkerContext wants to expose postMessage()
as a public callable function, but SharedWorkerContext would not.

If we only have a single V8 class for both of these (WORKERCONTEXT) then
that implies:

1) I have to define postMessage() as a virtual function on the base WebCore
class (WorkerContext). In fact, WorkerContext ends up containing the union
of all exposed APIs for every future derived class, which seems ugly.

2) From javascript, if I have a SharedWorkerContext, and I do this typeof
postMessage, it should return undefined (since SharedWorkerContext does
not define this attribute) - however, since SharedWorkerContext is actually
just a vanilla WORKERCONTEXT behind the scenes, it would return function,
which violates the spec.

It seems like the right way to do this is to actually have separate V8
items. The alternative is to have just a single WORKERCONTEXT, but instead
of using polymorphism have custom getters/setters for every attribute that
check the type of the impl class and do the appropriate thing. But it seems
like the whole point of having the V8ClassIndex enum is to avoid this kind
of manual polymorphism.

-atw

On Mon, Jul 20, 2009 at 8:22 PM, Jeremy Orlow jor...@chromium.org wrote:

 In other words, make all workers appear the same to V8 (i.e. as a
 WORKERCONTEXT) and then implement polymorphism in the implementations being
 wrapped by V8.

 On Mon, Jul 20, 2009 at 8:19 PM, Jeremy Orlow jor...@chromium.org wrote:

 Sorry if this is a dumb question, but why woudn't you simply have a
 WORKERCONTEXT and let virtual dispatch do its job for the rest?  Shared
 methods can be implemented on the base class and the rest can be purely
 virtual with implementations in the sub classes.

 J

 On Mon, Jul 20, 2009 at 3:21 PM, Drew Wilson atwil...@chromium.orgwrote:

 Following up on this. Let's imagine that I don't define a V8ClassIndex
 enum for the common base class (so, in my case, I get rid of WORKERCONTEXT,
 and have only DEDICATEDWORKERCONTEXT and SHAREDWORKERCONTEXT (the derived
 classes).
 Now, let's say I'm defining an ACCESSOR_GETTER on the base class - the
 first thing I want to do is get a pointer to the native object. I don't know
 which concrete class the native object is (DedicatedWorkerContext or
 SharedWorkerContext), but I do know that it's guaranteed to be an instance
 of the base native class (WorkerContext).

 Currently I'm doing this:

 WorkerContext* workerContext =
 V8DOMWrapper::convertToNativeObjectWorkerContext(V8ClassIndex::WORKERCONTEXT,
 info.Holder());

 If I remove V8ClassIndex::WORKERCONTEXT, then I can't pass that in to
 convertToNativeObject. It looks like the passed-in enum is only used for
 error checking currently, so I guess what I should use instead is
 convertDOMWrapperToNative()?:

 WorkerContext* workerContext =
 V8DOMWrapper::convertDOMWrapperToNativeWorkerContext(info.Holder());

 Is that the general pattern people use for cases like this?

 -atw

 On Mon, Jul 20, 2009 at 3:21 PM, Drew Wilson atwil...@chromium.orgwrote:

 resending from correct acct:

 Currently, Web Workers have a class (WorkerContext) which represents the
 global scope for a worker. The custom V8 bindings for this class are 
 defined
 in V8WorkerContextCustom, and we also define V8ClassIndex::WORKERCONTEXT 
 for
 the wrapper object.
 I'm refactoring the WebCore impl class, so WorkerContext becomes
 (essentially) an abstract base class, and the actual worker context will be
 one of two derived classes: DedicatedWorkerContext or SharedWorkerContext.
 In my refactoring, I've only implemented a single derived class
 (DedicatedWorkerContext) for now.

 I'm trying to figure out the correct way to structure the V8 bindings -
 I've already made a pass at it that passes all of the unit tests:

 https://bugs.webkit.org/show_bug.cgi?id=27420

 I've defined V8ClassIndex::DEDICATEDWORKERCONTEXT, but I'm not certain
 if I need to remove V8ClassIndex::WORKERCONTEXT or not, since there
 shouldn't ever be a wrapper object created for that base class. Are the
 wrapper types defined in V8Index.h only for actually instantiable wrapper
 objects (in which case I should only define them for the leaves of the
 tree), or is it used for other things like instanceof?

 -atw



 




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



[chromium-dev] Re: Question about V8 bindings

2009-07-21 Thread Jeremy Orlow
On Tue, Jul 21, 2009 at 10:19 AM, Drew Wilson atwil...@google.com wrote:

 It seems like that would have some undesirable side-effects, aside from the
 fact that WebKit frowns on using virtual functions unnecessarily.
 So, let's imagine that I have two derived classes, SharedWorkerContext and
 DedicatedWorkerContext. DedicatedWorkerContext wants to expose postMessage()
 as a public callable function, but SharedWorkerContext would not.

 If we only have a single V8 class for both of these (WORKERCONTEXT) then
 that implies:

 1) I have to define postMessage() as a virtual function on the base WebCore
 class (WorkerContext). In fact, WorkerContext ends up containing the union
 of all exposed APIs for every future derived class, which seems ugly.

 2) From javascript, if I have a SharedWorkerContext, and I do this typeof
 postMessage, it should return undefined (since SharedWorkerContext does
 not define this attribute) - however, since SharedWorkerContext is actually
 just a vanilla WORKERCONTEXT behind the scenes, it would return function,
 which violates the spec.

 It seems like the right way to do this is to actually have separate V8
 items. The alternative is to have just a single WORKERCONTEXT, but instead
 of using polymorphism have custom getters/setters for every attribute that
 check the type of the impl class and do the appropriate thing. But it seems
 like the whole point of having the V8ClassIndex enum is to avoid this kind
 of manual polymorphism.


Good points.

Are there other use cases for building polymorphism into V8?  Is there any
notion of polymorphism in the IDL files?  Maybe the best answer is to just
make them two completely different classes.  It kind of seems like doing
this elegantly is going to cost us performance wise one way or another.

J


On Mon, Jul 20, 2009 at 8:22 PM, Jeremy Orlow jor...@chromium.org wrote:

 In other words, make all workers appear the same to V8 (i.e. as a
 WORKERCONTEXT) and then implement polymorphism in the implementations being
 wrapped by V8.

 On Mon, Jul 20, 2009 at 8:19 PM, Jeremy Orlow jor...@chromium.orgwrote:

 Sorry if this is a dumb question, but why woudn't you simply have a
 WORKERCONTEXT and let virtual dispatch do its job for the rest?  Shared
 methods can be implemented on the base class and the rest can be purely
 virtual with implementations in the sub classes.

 J

 On Mon, Jul 20, 2009 at 3:21 PM, Drew Wilson atwil...@chromium.orgwrote:

 Following up on this. Let's imagine that I don't define a V8ClassIndex
 enum for the common base class (so, in my case, I get rid of WORKERCONTEXT,
 and have only DEDICATEDWORKERCONTEXT and SHAREDWORKERCONTEXT (the derived
 classes).
 Now, let's say I'm defining an ACCESSOR_GETTER on the base class - the
 first thing I want to do is get a pointer to the native object. I don't 
 know
 which concrete class the native object is (DedicatedWorkerContext or
 SharedWorkerContext), but I do know that it's guaranteed to be an instance
 of the base native class (WorkerContext).

 Currently I'm doing this:

 WorkerContext* workerContext =
 V8DOMWrapper::convertToNativeObjectWorkerContext(V8ClassIndex::WORKERCONTEXT,
 info.Holder());

 If I remove V8ClassIndex::WORKERCONTEXT, then I can't pass that in to
 convertToNativeObject. It looks like the passed-in enum is only used for
 error checking currently, so I guess what I should use instead is
 convertDOMWrapperToNative()?:

 WorkerContext* workerContext =
 V8DOMWrapper::convertDOMWrapperToNativeWorkerContext(info.Holder());

 Is that the general pattern people use for cases like this?

 -atw

 On Mon, Jul 20, 2009 at 3:21 PM, Drew Wilson atwil...@chromium.orgwrote:

 resending from correct acct:

 Currently, Web Workers have a class (WorkerContext) which represents
 the global scope for a worker. The custom V8 bindings for this class are
 defined in V8WorkerContextCustom, and we also define
 V8ClassIndex::WORKERCONTEXT for the wrapper object.
 I'm refactoring the WebCore impl class, so WorkerContext becomes
 (essentially) an abstract base class, and the actual worker context will 
 be
 one of two derived classes: DedicatedWorkerContext or SharedWorkerContext.
 In my refactoring, I've only implemented a single derived class
 (DedicatedWorkerContext) for now.

 I'm trying to figure out the correct way to structure the V8 bindings -
 I've already made a pass at it that passes all of the unit tests:

 https://bugs.webkit.org/show_bug.cgi?id=27420

 I've defined V8ClassIndex::DEDICATEDWORKERCONTEXT, but I'm not certain
 if I need to remove V8ClassIndex::WORKERCONTEXT or not, since there
 shouldn't ever be a wrapper object created for that base class. Are the
 wrapper types defined in V8Index.h only for actually instantiable wrapper
 objects (in which case I should only define them for the leaves of the
 tree), or is it used for other things like instanceof?

 -atw



 





--~--~-~--~~~---~--~~
Chromium Developers mailing list: 

[chromium-dev] Re: Question about V8 bindings

2009-07-21 Thread Jeremy Orlow
On Tue, Jul 21, 2009 at 10:27 AM, Drew Wilson atwil...@chromium.org wrote:

 Sigh. I keep sending this with the wrong email address. I wish Gmail would
 just use the address from the last time I replied to the thread.


Settings - Accounts - When receiving a message:Reply from the same address
the message was sent to



 -=-=-

 It seems like that would have some undesirable side-effects, aside from the
 fact that WebKit frowns on using virtual functions unnecessarily.
 So, let's imagine that I have two derived classes, SharedWorkerContext and
 DedicatedWorkerContext. DedicatedWorkerContext wants to expose postMessage()
 as a public callable function, but SharedWorkerContext would not.

 If we only have a single V8 class for both of these (WORKERCONTEXT) then
 that implies:

 1) I have to define postMessage() as a virtual function on the base WebCore
 class (WorkerContext). In fact, WorkerContext ends up containing the union
 of all exposed APIs for every future derived class, which seems ugly.

 2) From javascript, if I have a SharedWorkerContext, and I do this typeof
 postMessage, it should return undefined (since SharedWorkerContext does
 not define this attribute) - however, since SharedWorkerContext is actually
 just a vanilla WORKERCONTEXT behind the scenes, it would return function,
 which violates the spec.

 It seems like the right way to do this is to actually have separate V8
 items. The alternative is to have just a single WORKERCONTEXT, but instead
 of using polymorphism have custom getters/setters for every attribute that
 check the type of the impl class and do the appropriate thing. But it seems
 like the whole point of having the V8ClassIndex enum is to avoid this kind
 of manual polymorphism.

 -atw

 On Mon, Jul 20, 2009 at 8:22 PM, Jeremy Orlow jor...@chromium.org wrote:

 In other words, make all workers appear the same to V8 (i.e. as a
 WORKERCONTEXT) and then implement polymorphism in the implementations being
 wrapped by V8.

 On Mon, Jul 20, 2009 at 8:19 PM, Jeremy Orlow jor...@chromium.orgwrote:

 Sorry if this is a dumb question, but why woudn't you simply have a
 WORKERCONTEXT and let virtual dispatch do its job for the rest?  Shared
 methods can be implemented on the base class and the rest can be purely
 virtual with implementations in the sub classes.

 J

 On Mon, Jul 20, 2009 at 3:21 PM, Drew Wilson atwil...@chromium.orgwrote:

 Following up on this. Let's imagine that I don't define a V8ClassIndex
 enum for the common base class (so, in my case, I get rid of WORKERCONTEXT,
 and have only DEDICATEDWORKERCONTEXT and SHAREDWORKERCONTEXT (the derived
 classes).
 Now, let's say I'm defining an ACCESSOR_GETTER on the base class - the
 first thing I want to do is get a pointer to the native object. I don't 
 know
 which concrete class the native object is (DedicatedWorkerContext or
 SharedWorkerContext), but I do know that it's guaranteed to be an instance
 of the base native class (WorkerContext).

 Currently I'm doing this:

 WorkerContext* workerContext =
 V8DOMWrapper::convertToNativeObjectWorkerContext(V8ClassIndex::WORKERCONTEXT,
 info.Holder());

 If I remove V8ClassIndex::WORKERCONTEXT, then I can't pass that in to
 convertToNativeObject. It looks like the passed-in enum is only used for
 error checking currently, so I guess what I should use instead is
 convertDOMWrapperToNative()?:

 WorkerContext* workerContext =
 V8DOMWrapper::convertDOMWrapperToNativeWorkerContext(info.Holder());

 Is that the general pattern people use for cases like this?

 -atw

 On Mon, Jul 20, 2009 at 3:21 PM, Drew Wilson atwil...@chromium.orgwrote:

 resending from correct acct:

 Currently, Web Workers have a class (WorkerContext) which represents
 the global scope for a worker. The custom V8 bindings for this class are
 defined in V8WorkerContextCustom, and we also define
 V8ClassIndex::WORKERCONTEXT for the wrapper object.
 I'm refactoring the WebCore impl class, so WorkerContext becomes
 (essentially) an abstract base class, and the actual worker context will 
 be
 one of two derived classes: DedicatedWorkerContext or SharedWorkerContext.
 In my refactoring, I've only implemented a single derived class
 (DedicatedWorkerContext) for now.

 I'm trying to figure out the correct way to structure the V8 bindings -
 I've already made a pass at it that passes all of the unit tests:

 https://bugs.webkit.org/show_bug.cgi?id=27420

 I've defined V8ClassIndex::DEDICATEDWORKERCONTEXT, but I'm not certain
 if I need to remove V8ClassIndex::WORKERCONTEXT or not, since there
 shouldn't ever be a wrapper object created for that base class. Are the
 wrapper types defined in V8Index.h only for actually instantiable wrapper
 objects (in which case I should only define them for the leaves of the
 tree), or is it used for other things like instanceof?

 -atw



 





--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, 

[chromium-dev] Re: Question about V8 bindings

2009-07-21 Thread Drew Wilson
Yes, there's polymorphism in the IDL files. For example, the IDL for
DedicatedWorkerContext is:
interface [
bunch of random attributes
] DedicatedWorkerContext : WorkerContext {

void postMessage(in DOMString message, in [Optional] MessagePort
messagePort)
raises(DOMException);
 attribute EventListener onmessage;

};

The JSC bindings reflect this nicely, because there's a class hierarchy in
JSC that matches the hierarchy in the IDL files.

-atw



On Tue, Jul 21, 2009 at 10:32 AM, Jeremy Orlow jor...@chromium.org wrote:

 On Tue, Jul 21, 2009 at 10:19 AM, Drew Wilson atwil...@google.com wrote:

 It seems like that would have some undesirable side-effects, aside from
 the fact that WebKit frowns on using virtual functions unnecessarily.
 So, let's imagine that I have two derived classes, SharedWorkerContext and
 DedicatedWorkerContext. DedicatedWorkerContext wants to expose postMessage()
 as a public callable function, but SharedWorkerContext would not.

 If we only have a single V8 class for both of these (WORKERCONTEXT) then
 that implies:

 1) I have to define postMessage() as a virtual function on the base
 WebCore class (WorkerContext). In fact, WorkerContext ends up containing the
 union of all exposed APIs for every future derived class, which seems ugly.

 2) From javascript, if I have a SharedWorkerContext, and I do this typeof
 postMessage, it should return undefined (since SharedWorkerContext does
 not define this attribute) - however, since SharedWorkerContext is actually
 just a vanilla WORKERCONTEXT behind the scenes, it would return function,
 which violates the spec.

 It seems like the right way to do this is to actually have separate V8
 items. The alternative is to have just a single WORKERCONTEXT, but instead
 of using polymorphism have custom getters/setters for every attribute that
 check the type of the impl class and do the appropriate thing. But it seems
 like the whole point of having the V8ClassIndex enum is to avoid this kind
 of manual polymorphism.


 Good points.

 Are there other use cases for building polymorphism into V8?  Is there any
 notion of polymorphism in the IDL files?  Maybe the best answer is to just
 make them two completely different classes.  It kind of seems like doing
 this elegantly is going to cost us performance wise one way or another.

 J


 On Mon, Jul 20, 2009 at 8:22 PM, Jeremy Orlow jor...@chromium.org wrote:

 In other words, make all workers appear the same to V8 (i.e. as a
 WORKERCONTEXT) and then implement polymorphism in the implementations being
 wrapped by V8.

 On Mon, Jul 20, 2009 at 8:19 PM, Jeremy Orlow jor...@chromium.orgwrote:

 Sorry if this is a dumb question, but why woudn't you simply have a
 WORKERCONTEXT and let virtual dispatch do its job for the rest?  Shared
 methods can be implemented on the base class and the rest can be purely
 virtual with implementations in the sub classes.

 J

 On Mon, Jul 20, 2009 at 3:21 PM, Drew Wilson atwil...@chromium.orgwrote:

 Following up on this. Let's imagine that I don't define a V8ClassIndex
 enum for the common base class (so, in my case, I get rid of 
 WORKERCONTEXT,
 and have only DEDICATEDWORKERCONTEXT and SHAREDWORKERCONTEXT (the derived
 classes).
 Now, let's say I'm defining an ACCESSOR_GETTER on the base class - the
 first thing I want to do is get a pointer to the native object. I don't 
 know
 which concrete class the native object is (DedicatedWorkerContext or
 SharedWorkerContext), but I do know that it's guaranteed to be an instance
 of the base native class (WorkerContext).

 Currently I'm doing this:

 WorkerContext* workerContext =
 V8DOMWrapper::convertToNativeObjectWorkerContext(V8ClassIndex::WORKERCONTEXT,
 info.Holder());

 If I remove V8ClassIndex::WORKERCONTEXT, then I can't pass that in to
 convertToNativeObject. It looks like the passed-in enum is only used for
 error checking currently, so I guess what I should use instead is
 convertDOMWrapperToNative()?:

 WorkerContext* workerContext =
 V8DOMWrapper::convertDOMWrapperToNativeWorkerContext(info.Holder());

 Is that the general pattern people use for cases like this?

 -atw

 On Mon, Jul 20, 2009 at 3:21 PM, Drew Wilson atwil...@chromium.orgwrote:

 resending from correct acct:

 Currently, Web Workers have a class (WorkerContext) which represents
 the global scope for a worker. The custom V8 bindings for this class are
 defined in V8WorkerContextCustom, and we also define
 V8ClassIndex::WORKERCONTEXT for the wrapper object.
 I'm refactoring the WebCore impl class, so WorkerContext becomes
 (essentially) an abstract base class, and the actual worker context will 
 be
 one of two derived classes: DedicatedWorkerContext or 
 SharedWorkerContext.
 In my refactoring, I've only implemented a single derived class
 (DedicatedWorkerContext) for now.

 I'm trying to figure out the correct way to structure the V8 bindings
 - I've already made a pass at it that 

[chromium-dev] Re: Question about V8 bindings

2009-07-21 Thread Adam Barth

I think the way this works in general is that you create the wrapper
for the derived class.  You can see all the switch statements in
V8DOMWrapper.cpp that try to do this for Nodes, etc.

Adam


On Tue, Jul 21, 2009 at 10:32 AM, Jeremy Orlowjor...@chromium.org wrote:
 On Tue, Jul 21, 2009 at 10:19 AM, Drew Wilson atwil...@google.com wrote:

 It seems like that would have some undesirable side-effects, aside from
 the fact that WebKit frowns on using virtual functions unnecessarily.
 So, let's imagine that I have two derived classes, SharedWorkerContext and
 DedicatedWorkerContext. DedicatedWorkerContext wants to expose postMessage()
 as a public callable function, but SharedWorkerContext would not.
 If we only have a single V8 class for both of these (WORKERCONTEXT) then
 that implies:
 1) I have to define postMessage() as a virtual function on the base
 WebCore class (WorkerContext). In fact, WorkerContext ends up containing the
 union of all exposed APIs for every future derived class, which seems ugly.
 2) From javascript, if I have a SharedWorkerContext, and I do this typeof
 postMessage, it should return undefined (since SharedWorkerContext does
 not define this attribute) - however, since SharedWorkerContext is actually
 just a vanilla WORKERCONTEXT behind the scenes, it would return function,
 which violates the spec.
 It seems like the right way to do this is to actually have separate V8
 items. The alternative is to have just a single WORKERCONTEXT, but instead
 of using polymorphism have custom getters/setters for every attribute that
 check the type of the impl class and do the appropriate thing. But it seems
 like the whole point of having the V8ClassIndex enum is to avoid this kind
 of manual polymorphism.

 Good points.
 Are there other use cases for building polymorphism into V8?  Is there any
 notion of polymorphism in the IDL files?  Maybe the best answer is to just
 make them two completely different classes.  It kind of seems like doing
 this elegantly is going to cost us performance wise one way or another.
 J

 On Mon, Jul 20, 2009 at 8:22 PM, Jeremy Orlow jor...@chromium.org wrote:

 In other words, make all workers appear the same to V8 (i.e. as a
 WORKERCONTEXT) and then implement polymorphism in the implementations being
 wrapped by V8.
 On Mon, Jul 20, 2009 at 8:19 PM, Jeremy Orlow jor...@chromium.org
 wrote:

 Sorry if this is a dumb question, but why woudn't you simply have a
 WORKERCONTEXT and let virtual dispatch do its job for the rest?  Shared
 methods can be implemented on the base class and the rest can be purely
 virtual with implementations in the sub classes.
 J

 On Mon, Jul 20, 2009 at 3:21 PM, Drew Wilson atwil...@chromium.org
 wrote:

 Following up on this. Let's imagine that I don't define a V8ClassIndex
 enum for the common base class (so, in my case, I get rid of 
 WORKERCONTEXT,
 and have only DEDICATEDWORKERCONTEXT and SHAREDWORKERCONTEXT (the derived
 classes).
 Now, let's say I'm defining an ACCESSOR_GETTER on the base class - the
 first thing I want to do is get a pointer to the native object. I don't 
 know
 which concrete class the native object is (DedicatedWorkerContext or
 SharedWorkerContext), but I do know that it's guaranteed to be an instance
 of the base native class (WorkerContext).
 Currently I'm doing this:
     WorkerContext* workerContext =
 V8DOMWrapper::convertToNativeObjectWorkerContext(V8ClassIndex::WORKERCONTEXT,
 info.Holder());
 If I remove V8ClassIndex::WORKERCONTEXT, then I can't pass that in to
 convertToNativeObject. It looks like the passed-in enum is only used for
 error checking currently, so I guess what I should use instead is
 convertDOMWrapperToNative()?:
 WorkerContext* workerContext =
 V8DOMWrapper::convertDOMWrapperToNativeWorkerContext(info.Holder());
 Is that the general pattern people use for cases like this?
 -atw
 On Mon, Jul 20, 2009 at 3:21 PM, Drew Wilson atwil...@chromium.org
 wrote:

 resending from correct acct:
 Currently, Web Workers have a class (WorkerContext) which represents
 the global scope for a worker. The custom V8 bindings for this class are
 defined in V8WorkerContextCustom, and we also define
 V8ClassIndex::WORKERCONTEXT for the wrapper object.
 I'm refactoring the WebCore impl class, so WorkerContext becomes
 (essentially) an abstract base class, and the actual worker context will 
 be
 one of two derived classes: DedicatedWorkerContext or 
 SharedWorkerContext.
 In my refactoring, I've only implemented a single derived class
 (DedicatedWorkerContext) for now.
 I'm trying to figure out the correct way to structure the V8 bindings
 - I've already made a pass at it that passes all of the unit tests:
 https://bugs.webkit.org/show_bug.cgi?id=27420
 I've defined V8ClassIndex::DEDICATEDWORKERCONTEXT, but I'm not certain
 if I need to remove V8ClassIndex::WORKERCONTEXT or not, since there
 shouldn't ever be a wrapper object created for that base class. Are the
 wrapper types defined in V8Index.h only 

[chromium-dev] Re: Question about V8 bindings

2009-07-21 Thread Drew Wilson
The other unanswered question is whether it's useful to define the base
type in V8Index.h.
If a wrapper of the base type (WRAPPERCONTEXT) is never instantiated, do I
still need to define it for the purposes of things like instanceof and
prototype chains? Or is it *only* used to specify the type of wrapper
instances?

-atw

On Tue, Jul 21, 2009 at 10:58 AM, Adam Barth aba...@chromium.org wrote:

 I think the way this works in general is that you create the wrapper
 for the derived class.  You can see all the switch statements in
 V8DOMWrapper.cpp that try to do this for Nodes, etc.

 Adam


 On Tue, Jul 21, 2009 at 10:32 AM, Jeremy Orlowjor...@chromium.org wrote:
  On Tue, Jul 21, 2009 at 10:19 AM, Drew Wilson atwil...@google.com
 wrote:
 
  It seems like that would have some undesirable side-effects, aside from
  the fact that WebKit frowns on using virtual functions unnecessarily.
  So, let's imagine that I have two derived classes, SharedWorkerContext
 and
  DedicatedWorkerContext. DedicatedWorkerContext wants to expose
 postMessage()
  as a public callable function, but SharedWorkerContext would not.
  If we only have a single V8 class for both of these (WORKERCONTEXT)
 then
  that implies:
  1) I have to define postMessage() as a virtual function on the base
  WebCore class (WorkerContext). In fact, WorkerContext ends up containing
 the
  union of all exposed APIs for every future derived class, which seems
 ugly.
  2) From javascript, if I have a SharedWorkerContext, and I do this
 typeof
  postMessage, it should return undefined (since SharedWorkerContext
 does
  not define this attribute) - however, since SharedWorkerContext is
 actually
  just a vanilla WORKERCONTEXT behind the scenes, it would return
 function,
  which violates the spec.
  It seems like the right way to do this is to actually have separate V8
  items. The alternative is to have just a single WORKERCONTEXT, but
 instead
  of using polymorphism have custom getters/setters for every attribute
 that
  check the type of the impl class and do the appropriate thing. But it
 seems
  like the whole point of having the V8ClassIndex enum is to avoid this
 kind
  of manual polymorphism.
 
  Good points.
  Are there other use cases for building polymorphism into V8?  Is there
 any
  notion of polymorphism in the IDL files?  Maybe the best answer is to
 just
  make them two completely different classes.  It kind of seems like doing
  this elegantly is going to cost us performance wise one way or another.
  J
 
  On Mon, Jul 20, 2009 at 8:22 PM, Jeremy Orlow jor...@chromium.org
 wrote:
 
  In other words, make all workers appear the same to V8 (i.e. as a
  WORKERCONTEXT) and then implement polymorphism in the implementations
 being
  wrapped by V8.
  On Mon, Jul 20, 2009 at 8:19 PM, Jeremy Orlow jor...@chromium.org
  wrote:
 
  Sorry if this is a dumb question, but why woudn't you simply have a
  WORKERCONTEXT and let virtual dispatch do its job for the rest?
  Shared
  methods can be implemented on the base class and the rest can be
 purely
  virtual with implementations in the sub classes.
  J
 
  On Mon, Jul 20, 2009 at 3:21 PM, Drew Wilson atwil...@chromium.org
  wrote:
 
  Following up on this. Let's imagine that I don't define a
 V8ClassIndex
  enum for the common base class (so, in my case, I get rid of
 WORKERCONTEXT,
  and have only DEDICATEDWORKERCONTEXT and SHAREDWORKERCONTEXT (the
 derived
  classes).
  Now, let's say I'm defining an ACCESSOR_GETTER on the base class -
 the
  first thing I want to do is get a pointer to the native object. I
 don't know
  which concrete class the native object is (DedicatedWorkerContext or
  SharedWorkerContext), but I do know that it's guaranteed to be an
 instance
  of the base native class (WorkerContext).
  Currently I'm doing this:
  WorkerContext* workerContext =
 
 V8DOMWrapper::convertToNativeObjectWorkerContext(V8ClassIndex::WORKERCONTEXT,
  info.Holder());
  If I remove V8ClassIndex::WORKERCONTEXT, then I can't pass that in to
  convertToNativeObject. It looks like the passed-in enum is only used
 for
  error checking currently, so I guess what I should use instead is
  convertDOMWrapperToNative()?:
  WorkerContext* workerContext =
 
 V8DOMWrapper::convertDOMWrapperToNativeWorkerContext(info.Holder());
  Is that the general pattern people use for cases like this?
  -atw
  On Mon, Jul 20, 2009 at 3:21 PM, Drew Wilson atwil...@chromium.org
  wrote:
 
  resending from correct acct:
  Currently, Web Workers have a class (WorkerContext) which represents
  the global scope for a worker. The custom V8 bindings for this class
 are
  defined in V8WorkerContextCustom, and we also define
  V8ClassIndex::WORKERCONTEXT for the wrapper object.
  I'm refactoring the WebCore impl class, so WorkerContext becomes
  (essentially) an abstract base class, and the actual worker context
 will be
  one of two derived classes: DedicatedWorkerContext or
 SharedWorkerContext.
  In my refactoring, I've only 

[chromium-dev] Re: No more buildbot auto-refresh - Update your bookmark!

2009-07-21 Thread Aaron Boodman

Nicolas,

Are you going to be turning back on the extension support at any
point? If not, just let us know so that we can remove the feature from
the sample. Right now it looks broken.

- a

On Tue, Jul 21, 2009 at 8:27 AM, Nicolas Sylvainnsylv...@chromium.org wrote:
 Hi,
 Last week a lot of people on this list said that they like the idea of
 disabling the auto-reload for
 our buildbot waterfall and console view. This is now implemented.
 If you do want to keep the page auto-refreshing, please update your
 bookmark. just add the
 query parameter reload=X, where X is the number of second to wait between
 each reloads.
 X used to be 90. Depending on your needs, you can increase or decrease this
 number.
 Examples:
 console view:
 http://build.chromium.org/buildbot/waterfall/console?reload=180
 waterfall
 : http://build.chromium.org/buildbot/waterfall/waterfall?reload=180
 For sheriffs:
  http://build.chromium.org/buildbot/waterfall/waterfall?failures=1reload=30
 Thanks
 Nicolas
 


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



[chromium-dev] Re: No more buildbot auto-refresh - Update your bookmark!

2009-07-21 Thread Nicolas Sylvain
On Tue, Jul 21, 2009 at 11:37 AM, Aaron Boodman a...@chromium.org wrote:

 Nicolas,

 Are you going to be turning back on the extension support at any
 point? If not, just let us know so that we can remove the feature from
 the sample. Right now it looks broken.


Is the reload in the extension still 30secs?  If it can be changed to 2 or 5
minutes I will reenable it.

Nicolas




 - a

 On Tue, Jul 21, 2009 at 8:27 AM, Nicolas Sylvainnsylv...@chromium.org
 wrote:
  Hi,
  Last week a lot of people on this list said that they like the idea of
  disabling the auto-reload for
  our buildbot waterfall and console view. This is now implemented.
  If you do want to keep the page auto-refreshing, please update your
  bookmark. just add the
  query parameter reload=X, where X is the number of second to wait
 between
  each reloads.
  X used to be 90. Depending on your needs, you can increase or decrease
 this
  number.
  Examples:
  console view:
  http://build.chromium.org/buildbot/waterfall/console?reload=180
  waterfall
  : http://build.chromium.org/buildbot/waterfall/waterfall?reload=180
  For sheriffs:
 
 http://build.chromium.org/buildbot/waterfall/waterfall?failures=1reload=30
  Thanks
  Nicolas
   
 


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



[chromium-dev] Re: Please keep TOOLKIT_VIEWS green!

2009-07-21 Thread Ben Goodger (Google)

What brett said. When the infrastructure is available to easily
configure an on-demand one, go ahead and do it then.

-Ben

On Tue, Jul 21, 2009 at 3:56 PM, Brett Wilsonbre...@chromium.org wrote:

 On Tue, Jul 21, 2009 at 8:42 AM, Nicolas Sylvainnsylv...@chromium.org wrote:
 On Tue, Jul 21, 2009 at 8:31 AM, Paweł Hajdan Jr. phajdan...@chromium.org
 wrote:

 Can we have a trybot with that configuration, which would just compile the
 code? I think it would really save people's time. I never build with
 TOOLKIT_VIEWS, and in case of breakage I would have to immediately revert
 and then investigate. If I got a trybot failure, I would know much more
 before committing.

 Ben: How likely is this to break?
 I'm reluctant to add yet another try bot because they do take a lot of
 resources.  There are maybe 200-300 try changes sent every day. That means
 we need enough resources to build this configuration that many times, and it
 needs to answer fast enough.

 I don't think an automatically-running trybot is very critical for
 this build at the moment. Most of the things that break it are pretty
 simple (need to add a file to GYP, or maybe a stub for something) so
 the breakage won't be super complicated. Most errors will be caught by
 the regular trybots.

 Brett

 


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



[chromium-dev] Re: Mozilla design challenge

2009-07-21 Thread Ryosuke Niwa
Is it possible to provide an intuitive UI that allows users to choose which
tabs to be suspended?For example, just like users can click buttons on
taskbar to pop up a particular window, we could provide a small window that
pop-in tabs / windows.  And then we can suspend all windows / tab that
are popped into.

Ryosuke

On Tue, Jul 21, 2009 at 9:32 AM, Erik Kay erik...@chromium.org wrote:

 You may be on to something, but I think it's more complex than this.  For
 example bookmark systems don't work because people use them for a number of
 conflicting purposes (my list of things to read every day, a simple history
 system, a 'to read' list, a collection of links for research), which have
 different UI requirements.  I think the same thing has happened with tabs
 (and there's a surprising amount of overlap).  Here are the use cases I know
 I wind up using: - a few long running apps that need to keep running,
 potentially notifying me of new events (calendar, mail, chat, buildbot,
 etc.)
 - a few pages that I'm currently actively using (a screenshot from a bug
 I'm looking at, some reference documentation, a writely page I'm editing
 between compiles, etc.)
 - a to read list of pages that I started reading but didn't finish yet
 (sometimes this is a collection of related pages when researching something)
 - I'm sure there are others.

 In my use case, 80% of my tabs could easily be killed / suspended (or even
 hidden altogether) without any downside to me.  The problem is that there
 isn't a way to automatically figure out which ones are which.  Which ones
 have pending state that might be lost? (yes, some of this is bad app design,
 but there are many like this)  Which ones do I expect to keep running all of
 the time because of notifications?  What about that flash game that I left
 running in the background?

 Maybe we could come up with some heuristics that could detect some of this
 automatically, but I worry that there will be so many exceptions that it
 won't work.  That means we'd need to come up with a better UI to express
 these concepts where the user chose to treat tabs differently in some
 explicit way.  There are a number of extensions that try to do this for some
 specific use cases (to read lists, pinned tabs, etc.).  I'm not sure that
 these are better than bandaids though.

 Erik


 On Tue, Jul 21, 2009 at 8:28 AM, Dean McNamee de...@chromium.org wrote:


 I feel like people are using tabs as a replacement for a good history
 system.  At least in all current browser implementations, tabs are
 running.  Even if we can make the UI scale to 1000 tabs, the 500
 flash instances that are likely running aren't really going to
 perform.  The making tab performance scale is a separate technical
 issue that will hopefully also improve.

 Looking at a lot of these design videos, they looked more like good
 ideas to me for history navigation than tab navigation.  If history
 was good, I think people wouldn't be so worried about losing
 something by closing a tab.  Having had bad history systems for so
 many years, people are now trained to keep tabs open if they ever
 might want to look at that page again in the future :\

 On Sat, Jul 18, 2009 at 1:16 AM, Peter Kastingpkast...@google.com
 wrote:
  http://design-challenge.mozilla.com/summer09/
  The results of the Reinventing Tabs in the Browser challenge have been
  announced.
  Collapsible Tab Groups includes among others some things I've
 proposed,
  including grouping and collapsing groups.
  Favitabs reminds me of some old brainstorming ideas from pamg about
  converting certain tabs into favicon buttons.
  Folks considering the future of tabs (e.g. Ben, Glen, Scott) might do
 well
  to take a look at some of these.
  PK
  
 




 


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



[chromium-dev] Re: Mozilla design challenge

2009-07-21 Thread Scott Hess

I don't think it's reasonable to require the user to specify which
tabs to suspend, except, perhaps, if we develop a metric for
power-hungry tabs and expose that.

I think there is some potential for UI geared towards particular
use-cases which could be overloaded to also allow more aggressive
suspend.  For instance, WRT my earlier posting, I would expect my
pinned tabs to be given stronger priority, and my on-deck-to-read tabs
to be treated more like preloaded/rendered bookmarks.  There could be
other UI advantages in there, like the on-deck tabs for a particular
project could group under a single tab with other UI widgets to select
which document within the group.

-scott


On Tue, Jul 21, 2009 at 1:50 PM, Ryosuke Niwarn...@google.com wrote:
 Is it possible to provide an intuitive UI that allows users to choose which
 tabs to be suspended?
 For example, just like users can click buttons on taskbar to pop up a
 particular window, we could provide a small window that pop-in tabs /
 windows.  And then we can suspend all windows / tab that are popped into.
 Ryosuke

 On Tue, Jul 21, 2009 at 9:32 AM, Erik Kay erik...@chromium.org wrote:

 You may be on to something, but I think it's more complex than this.  For
 example bookmark systems don't work because people use them for a number of
 conflicting purposes (my list of things to read every day, a simple history
 system, a 'to read' list, a collection of links for research), which have
 different UI requirements.  I think the same thing has happened with tabs
 (and there's a surprising amount of overlap).  Here are the use cases I know
 I wind up using:
 - a few long running apps that need to keep running, potentially notifying
 me of new events (calendar, mail, chat, buildbot, etc.)
 - a few pages that I'm currently actively using (a screenshot from a bug
 I'm looking at, some reference documentation, a writely page I'm editing
 between compiles, etc.)
 - a to read list of pages that I started reading but didn't finish yet
 (sometimes this is a collection of related pages when researching something)
 - I'm sure there are others.
 In my use case, 80% of my tabs could easily be killed / suspended (or even
 hidden altogether) without any downside to me.  The problem is that there
 isn't a way to automatically figure out which ones are which.  Which ones
 have pending state that might be lost? (yes, some of this is bad app design,
 but there are many like this)  Which ones do I expect to keep running all of
 the time because of notifications?  What about that flash game that I left
 running in the background?
 Maybe we could come up with some heuristics that could detect some of this
 automatically, but I worry that there will be so many exceptions that it
 won't work.  That means we'd need to come up with a better UI to express
 these concepts where the user chose to treat tabs differently in some
 explicit way.  There are a number of extensions that try to do this for some
 specific use cases (to read lists, pinned tabs, etc.).  I'm not sure that
 these are better than bandaids though.
 Erik

 On Tue, Jul 21, 2009 at 8:28 AM, Dean McNamee de...@chromium.org wrote:

 I feel like people are using tabs as a replacement for a good history
 system.  At least in all current browser implementations, tabs are
 running.  Even if we can make the UI scale to 1000 tabs, the 500
 flash instances that are likely running aren't really going to
 perform.  The making tab performance scale is a separate technical
 issue that will hopefully also improve.

 Looking at a lot of these design videos, they looked more like good
 ideas to me for history navigation than tab navigation.  If history
 was good, I think people wouldn't be so worried about losing
 something by closing a tab.  Having had bad history systems for so
 many years, people are now trained to keep tabs open if they ever
 might want to look at that page again in the future :\

 On Sat, Jul 18, 2009 at 1:16 AM, Peter Kastingpkast...@google.com
 wrote:
  http://design-challenge.mozilla.com/summer09/
  The results of the Reinventing Tabs in the Browser challenge have
  been
  announced.
  Collapsible Tab Groups includes among others some things I've
  proposed,
  including grouping and collapsing groups.
  Favitabs reminds me of some old brainstorming ideas from pamg about
  converting certain tabs into favicon buttons.
  Folks considering the future of tabs (e.g. Ben, Glen, Scott) might do
  well
  to take a look at some of these.
  PK
  
 







 


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



[chromium-dev] Re: Hacking on WebKit is easier than ever

2009-07-21 Thread Peter Kasting
On Wed, Jul 15, 2009 at 12:39 PM, Adam Barth aba...@chromium.org wrote:

 Thanks to some recent work by Dimitri, Victor, and others, hacking on
 WebKit is now easier than ever.  If you work on WebKit and Chromium, I
 recommend using a hybrid source tree:

 http://dev.chromium.org/developers/contributing-to-webkit


With the patches I have landed, combined with the four patches awaiting
review on https://bugs.webkit.org/show_bug.cgi?id=27323 , I have been able
to successfully check out WebKit inside Chromium using the depot_tools (not
Cygwin) SVN; update it; prepare, create, apply, unapply, and submit patches;
and build WebKit cleanly and run Safari with it.

Therefore, once those four patches land (might be a little while, one may
cause problems for Apple folks), I claim that this setup is finally ready
for Windows developers to use.  There are still a few rough edges (creating
patches to files that don't have svn:eol-style set may result in patches
that don't apply/unapply cleanly, due to an apparent SVN bug; I haven't
tested all the scripts [e.g. bugzilla-tool], just the ones I use), but by
and large things work.

PK

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



[chromium-dev] Re: Hacking on WebKit is easier than ever

2009-07-21 Thread Jeremy Orlow
On Tue, Jul 21, 2009 at 3:35 PM, Peter Kasting pkast...@chromium.orgwrote:

 On Wed, Jul 15, 2009 at 12:39 PM, Adam Barth aba...@chromium.org wrote:

 Thanks to some recent work by Dimitri, Victor, and others, hacking on
 WebKit is now easier than ever.  If you work on WebKit and Chromium, I
 recommend using a hybrid source tree:

 http://dev.chromium.org/developers/contributing-to-webkit


 With the patches I have landed, combined with the four patches awaiting
 review on https://bugs.webkit.org/show_bug.cgi?id=27323 , I have been able
 to successfully check out WebKit inside Chromium using the depot_tools (not
 Cygwin) SVN; update it; prepare, create, apply, unapply, and submit patches;
 and build WebKit cleanly and run Safari with it.


Nice!  Thanks a lot Peter!


 Therefore, once those four patches land (might be a little while, one may
 cause problems for Apple folks), I claim that this setup is finally ready
 for Windows developers to use.  There are still a few rough edges (creating
 patches to files that don't have svn:eol-style set may result in patches
 that don't apply/unapply cleanly, due to an apparent SVN bug; I haven't
 tested all the scripts [e.g. bugzilla-tool], just the ones I use), but by
 and large things work.


Would it be safe for the script to just automatically apply that flag on any
file it's touching?

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



[chromium-dev] Re: Hacking on WebKit is easier than ever

2009-07-21 Thread Darin Fisher
On Tue, Jul 21, 2009 at 3:35 PM, Peter Kasting pkast...@chromium.orgwrote:

 On Wed, Jul 15, 2009 at 12:39 PM, Adam Barth aba...@chromium.org wrote:

 Thanks to some recent work by Dimitri, Victor, and others, hacking on
 WebKit is now easier than ever.  If you work on WebKit and Chromium, I
 recommend using a hybrid source tree:

 http://dev.chromium.org/developers/contributing-to-webkit


 With the patches I have landed, combined with the four patches awaiting
 review on https://bugs.webkit.org/show_bug.cgi?id=27323 , I have been able
 to successfully check out WebKit inside Chromium using the depot_tools (not
 Cygwin) SVN; update it; prepare, create, apply, unapply, and submit patches;
 and build WebKit cleanly and run Safari with it.

 Therefore, once those four patches land (might be a little while, one may
 cause problems for Apple folks), I claim that this setup is finally ready
 for Windows developers to use.  There are still a few rough edges (creating
 patches to files that don't have svn:eol-style set may result in patches
 that don't apply/unapply cleanly, due to an apparent SVN bug; I haven't
 tested all the scripts [e.g. bugzilla-tool], just the ones I use), but by
 and large things work.

 PK



This is awesome news!  Thanks Peter :-)
-Darin

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



[chromium-dev] Re: Hacking on WebKit is easier than ever

2009-07-21 Thread Peter Kasting
On Tue, Jul 21, 2009 at 3:40 PM, Jeremy Orlow jor...@google.com wrote:

 Therefore, once those four patches land (might be a little while, one may
 cause problems for Apple folks), I claim that this setup is finally ready
 for Windows developers to use.  There are still a few rough edges (creating
 patches to files that don't have svn:eol-style set may result in patches
 that don't apply/unapply cleanly, due to an apparent SVN bug; I haven't
 tested all the scripts [e.g. bugzilla-tool], just the ones I use), but by
 and large things work.


 Would it be safe for the script to just automatically apply that flag on
 any file it's touching?


Which script?  Which flag?

It would be nice if every file in the WK repo had svn:eol-style set to an
appropriate value.  We have this in Chromium, and enforce it with a commit
hook (and make life easier on developers by listing some auto-props for them
to use).  According to eseidel, darin (that's Darin Adler) used to keep
eol-style set on most things in WebKit, but stopped some time ago.  So if
you look in the tree, a large number of files have this, but another large
number don't.

Changing WebKit to work like Chromium in this regard would require four
things:
(1) Agreement that this is valuable to WebKit (e.g. because it makes Windows
hacking much saner)
(2) Someone to run scripts over the tree to correct all existing files, as
pamg (?) did for Chromium.
(3) A commit hook to ensure things don't regress.
(4) Clear instructions for developers about how to set up SVN to apply the
right eol-style automatically, so people don't have to do it manually.

I don't have the ability to do any of those, except for maybe trying for the
first one.  And there I think I might rather not push my luck right now :)

PK

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



[chromium-dev] Re: Hacking on WebKit is easier than ever

2009-07-21 Thread Peter Kasting
On Tue, Jul 21, 2009 at 3:56 PM, Jeremy Orlow jor...@google.com wrote:

 I was suggesting that any scripts that depend on the eol style could set
 the flag on any files it's touching.  For example, svn-create-patch could
 set it on all the files that have been modified.  This could even be done
 only when running on Windows not under cygwin to
 minimize compatibility issues.  But, given that so many of the files already
 have the flag set, it's probably OK to do, right?


This isn't really a feasible solution.  Among other things, the rules for
what eol-style goes on what file can be complex, it may not be possible to
set this property without first modifying the file's line endings, this
would add runtime penalties and code complexity to a number of scripts, and
users would be surprised to have some of these scripts causing further
modifications to their checkout.

I have sent a message to webkit-dev regarding eol-style, mentioning how we
handle it for Chromium, which is pretty much the way things would have to
work if we wanted to address this issue.

PK

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



[chromium-dev] Re: Mozilla design challenge

2009-07-21 Thread Alex Russell

On Tue, Jul 21, 2009 at 8:28 AM, Dean McNameede...@chromium.org wrote:

 I feel like people are using tabs as a replacement for a good history
 system.  At least in all current browser implementations, tabs are
 running.  Even if we can make the UI scale to 1000 tabs, the 500
 flash instances that are likely running aren't really going to
 perform.  The making tab performance scale is a separate technical
 issue that will hopefully also improve.

Guess we should continue to remove more and more reasons for people to
build things in Flash, then = )

 Looking at a lot of these design videos, they looked more like good
 ideas to me for history navigation than tab navigation.  If history
 was good, I think people wouldn't be so worried about losing
 something by closing a tab.  Having had bad history systems for so
 many years, people are now trained to keep tabs open if they ever
 might want to look at that page again in the future :\

 On Sat, Jul 18, 2009 at 1:16 AM, Peter Kastingpkast...@google.com wrote:
 http://design-challenge.mozilla.com/summer09/
 The results of the Reinventing Tabs in the Browser challenge have been
 announced.
 Collapsible Tab Groups includes among others some things I've proposed,
 including grouping and collapsing groups.
 Favitabs reminds me of some old brainstorming ideas from pamg about
 converting certain tabs into favicon buttons.
 Folks considering the future of tabs (e.g. Ben, Glen, Scott) might do well
 to take a look at some of these.
 PK
 


 


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



[chromium-dev] Proposal for adding ChangeLog files to Chromium

2009-07-21 Thread Anthony LaForge
In order to make it easier for the community to see the changes are going on
inside Chromium I'd like to propose that we add one or more ChangeLog files
into our code base.  The proposed usage would go something like this:

   - When a developer completes a visible or notable change, they'd add an
   entry to the ChangeLog along with their commit.
   - The entry would have the date, author, a plain English description
   (suitable for release notes) of the change, along with a reference to any
   related bugs.
  - Example: 2009-07-21 [lafo...@chromium.org]: Creating a patch to
  make change tracking easier (Bugs:12345,67890)

*Immediate Benefits:*

   - Assuming that changes were checked in with the code they were mapped
   to, ChangeLogs would stay up to date even through reverts and branch merges.
   - It would be very easy, given a range of revisions to see what precisely
   changed in Chromium.


Overall, I think this would make it much simpler to view the team's progress
and help us improve our overall level of transparency.

Kind Regards,

Anthony Laforge
Technical Program Manager
Mountain View, CA

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



[chromium-dev] Re: Proposal for adding ChangeLog files to Chromium

2009-07-21 Thread Jeremy Orlow
On Tue, Jul 21, 2009 at 9:37 PM, Anthony LaForge lafo...@google.com wrote:

 In order to make it easier for the community to see the changes are going
 on inside Chromium I'd like to propose that we add one or more ChangeLog
 files into our code base.  The proposed usage would go something like this:

- When a developer completes a visible or notable change, they'd add an
entry to the ChangeLog along with their commit.
- The entry would have the date, author, a plain English description
(suitable for release notes) of the change, along with a reference to any
related bugs.
   - Example: 2009-07-21 [lafo...@chromium.org]: Creating a patch to
   make change tracking easier (Bugs:12345,67890)

 *Immediate Benefits:*

- Assuming that changes were checked in with the code they were mapped
to, ChangeLogs would stay up to date even through reverts and branch 
 merges.
- It would be very easy, given a range of revisions to see what
precisely changed in Chromium.


 Overall, I think this would make it much simpler to view the team's
 progress and help us improve our overall level of transparency.


I am very against adding ChangeLogs unless absolutely necessary.  They're a
major pain in WebKit development...enough so that there have been pushes to
get rid of them there.

It's nice that you're only asking for major changes to be added to the
ChangeLog, but I still think it's going to add a lot of overhead.
 ChangeLogs mean that you can only have one (change-log-worthy) change per
client at a time.  They also mean that every time you sync your client,
you're going to have to resolve conflicts.  WebKit has a script to do this
for you, but it's still a pain.

I don't understand why the svn commit logs aren't enough for
our purposes here.  Especially if we use the RELEASE_NOTE annotation Aaron
suggested.  Does this information not get carried forward with branches?
 Could we create a script that automatically generates ChangeLogs based on
the svn commit logs if not?

J

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



[chromium-dev] Re: Proposal for adding ChangeLog files to Chromium

2009-07-21 Thread Adam Langley

On Tue, Jul 21, 2009 at 9:37 PM, Anthony LaForgelafo...@google.com wrote:
 In order to make it easier for the community to see the changes are going on
 inside Chromium I'd like to propose that we add one or more ChangeLog files
 into our code base.  The proposed usage would go something like this:

I'm not saying anything that Jeremy and Adam haven't already said,
just reinforcing their point in case there's any question.

What you want is `git log | grep RELEASE_NOTE`


AGL

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



[chromium-dev] Re: Question about V8 bindings

2009-07-21 Thread Mads Sig Ager

If you don't need the base 'type' in the binding layer code, you don't
have to specify it in the V8Index file.  Prototype chains and
instanceof operations are all handled by V8 based on the code
generated from the IDL files and it is independent of the 'type'
declarations in the V8Index file.

Cheers,-- Mads

On Tue, Jul 21, 2009 at 6:13 PM, Drew Wilsonatwil...@chromium.org wrote:
 The other unanswered question is whether it's useful to define the base
 type in V8Index.h.
 If a wrapper of the base type (WRAPPERCONTEXT) is never instantiated, do I
 still need to define it for the purposes of things like instanceof and
 prototype chains? Or is it *only* used to specify the type of wrapper
 instances?
 -atw

 On Tue, Jul 21, 2009 at 10:58 AM, Adam Barth aba...@chromium.org wrote:

 I think the way this works in general is that you create the wrapper
 for the derived class.  You can see all the switch statements in
 V8DOMWrapper.cpp that try to do this for Nodes, etc.

 Adam


 On Tue, Jul 21, 2009 at 10:32 AM, Jeremy Orlowjor...@chromium.org wrote:
  On Tue, Jul 21, 2009 at 10:19 AM, Drew Wilson atwil...@google.com
  wrote:
 
  It seems like that would have some undesirable side-effects, aside from
  the fact that WebKit frowns on using virtual functions unnecessarily.
  So, let's imagine that I have two derived classes, SharedWorkerContext
  and
  DedicatedWorkerContext. DedicatedWorkerContext wants to expose
  postMessage()
  as a public callable function, but SharedWorkerContext would not.
  If we only have a single V8 class for both of these (WORKERCONTEXT)
  then
  that implies:
  1) I have to define postMessage() as a virtual function on the base
  WebCore class (WorkerContext). In fact, WorkerContext ends up
  containing the
  union of all exposed APIs for every future derived class, which seems
  ugly.
  2) From javascript, if I have a SharedWorkerContext, and I do this
  typeof
  postMessage, it should return undefined (since SharedWorkerContext
  does
  not define this attribute) - however, since SharedWorkerContext is
  actually
  just a vanilla WORKERCONTEXT behind the scenes, it would return
  function,
  which violates the spec.
  It seems like the right way to do this is to actually have separate V8
  items. The alternative is to have just a single WORKERCONTEXT, but
  instead
  of using polymorphism have custom getters/setters for every attribute
  that
  check the type of the impl class and do the appropriate thing. But it
  seems
  like the whole point of having the V8ClassIndex enum is to avoid this
  kind
  of manual polymorphism.
 
  Good points.
  Are there other use cases for building polymorphism into V8?  Is there
  any
  notion of polymorphism in the IDL files?  Maybe the best answer is to
  just
  make them two completely different classes.  It kind of seems like doing
  this elegantly is going to cost us performance wise one way or another.
  J
 
  On Mon, Jul 20, 2009 at 8:22 PM, Jeremy Orlow jor...@chromium.org
  wrote:
 
  In other words, make all workers appear the same to V8 (i.e. as a
  WORKERCONTEXT) and then implement polymorphism in the implementations
  being
  wrapped by V8.
  On Mon, Jul 20, 2009 at 8:19 PM, Jeremy Orlow jor...@chromium.org
  wrote:
 
  Sorry if this is a dumb question, but why woudn't you simply have a
  WORKERCONTEXT and let virtual dispatch do its job for the rest?
   Shared
  methods can be implemented on the base class and the rest can be
  purely
  virtual with implementations in the sub classes.
  J
 
  On Mon, Jul 20, 2009 at 3:21 PM, Drew Wilson atwil...@chromium.org
  wrote:
 
  Following up on this. Let's imagine that I don't define a
  V8ClassIndex
  enum for the common base class (so, in my case, I get rid of
  WORKERCONTEXT,
  and have only DEDICATEDWORKERCONTEXT and SHAREDWORKERCONTEXT (the
  derived
  classes).
  Now, let's say I'm defining an ACCESSOR_GETTER on the base class -
  the
  first thing I want to do is get a pointer to the native object. I
  don't know
  which concrete class the native object is (DedicatedWorkerContext or
  SharedWorkerContext), but I do know that it's guaranteed to be an
  instance
  of the base native class (WorkerContext).
  Currently I'm doing this:
      WorkerContext* workerContext =
 
  V8DOMWrapper::convertToNativeObjectWorkerContext(V8ClassIndex::WORKERCONTEXT,
  info.Holder());
  If I remove V8ClassIndex::WORKERCONTEXT, then I can't pass that in
  to
  convertToNativeObject. It looks like the passed-in enum is only used
  for
  error checking currently, so I guess what I should use instead is
  convertDOMWrapperToNative()?:
  WorkerContext* workerContext =
 
  V8DOMWrapper::convertDOMWrapperToNativeWorkerContext(info.Holder());
  Is that the general pattern people use for cases like this?
  -atw
  On Mon, Jul 20, 2009 at 3:21 PM, Drew Wilson atwil...@chromium.org
  wrote:
 
  resending from correct acct:
  Currently, Web Workers have a class (WorkerContext) which
  represents
  the global