Re: [chromium-dev] Keyboard codes to use for a chrome extension api that enables automation?

2010-01-15 Thread James Su
What's the motivation of implementing such tests as extensions? The
automation framework already supports simulating keyboard events, can we
just use it for such kind of tests?

Regards
James Su

2010/1/16 Dominic Mazzoni 

> The problem I have with using only explicitly defined action functions
> is that the whole point of simulating keyboard events is to test
> whether or not the user interface is accessible using the keyboard!
> (This is not just an issue for people using assistive technology like
> a screen reader: there are a few things in Chrome that are impossible
> to access without using a mouse now.)
>
> I want to be able to write tests that try to edit bookmarks using the
> Bookmark Manager, or change settings using the Options dialog, for
> example. Having functions like selectNextBookmark() wouldn't help test
> that they're actually accessible via the keyboard.
>
> There aren't that many different keys needed for keyboard
> accessibility: off the top of my head, you mostly need tab, shift-tab,
> space, enter, and arrow keys - plus a few shortcuts to open a menu or
> move the focus to a certain panel.  What about having functions for
> each of these keys plus other actions that can be triggered via a
> keyboard shortcut?
>
>  tabToNextControl()
>  tabToPreviousControl()
>  pressSpaceBar()
>  pressEnterKey()
>  pressEscapeKey()
>  arrowUp()
>  arrowDown()
>  arrowLeft()
>  arrowRight()
>  openOptionsDialog()
>  openBookmarksManager()
>  focusLocationBar()
>  ...
>
> Then, in order to enter text into a text box in a dialog, perhaps a
> function that pastes unicode text at the current cursor position would
> be much easier than trying to deal with key codes and input methods.
>
> - Dominic
>
> On Fri, Jan 15, 2010 at 3:24 AM, James Su  wrote:
> > Hi Nico,
> >   I totally agree with your point. Using fake keyboard events for
> > accessibility things would lead to compatibility nightmare. We should
> > consider the approach of using explicitly defined action functions rather
> > than emulating keyboard events. The keyboard events approach has at least
> > following unsolvable problems:
> > 1. Compatibility issue among different OS platforms.
> > 2. Compatibility issue caused by user customized shortcuts.
> > 3. Supports of different keyboard layouts.
> > 4. Supports of inputting non-Latin text.
> > Regards
> > James Su
> > 2010/1/15 Nico Weber 
> >>
> >> On Thu, Jan 14, 2010 at 8:37 AM, Dominic Mazzoni 
> >> wrote:
> >> > On Thu, Jan 14, 2010 at 8:19 AM, Nico Weber 
> wrote:
> >> >> It probably depends if you want to use this for text input or
> "action"
> >> >> inputs. A text-to-speech extension would probably want to set unicode
> >> >> characters, while something that (say) hits cmd-f to open the find
> bar
> >> >> probably wants to use keycodes.
> >> >
> >> > Text-to-speech is a different problem; this is for actions.
> >> >
> >> >> For example, on OS X hitting cmd-"f" with a hiragana keyboard layout
> >> >> opens the findbar, while just pressing "f" opens an IME.
> >> >>
> >> >> If you want to use this for actons, I would find it more useful to
> >> >> have a "performUiAction()" function instead though, since keyboard
> >> >> shortcuts are different across platforms (all mac shortcuts use cmd
> >> >> instead of ctrl for example, and the letters for a few shortcuts are
> >> >> different on OS X too for various reasons).
> >> >
> >> > I completely agree; I would like to add many functions along the lines
> >> > of performUiAction. However, there are a few actions for which typing
> >> > a key really is the right thing to do - for example pressing Tab to
> >> > move to the next control.
> >>
> >> Maybe performUiAction('focusNextViewInKeyLoop')?
> >>
> >> (By the way, OS X has a system-level setting that configures if tab
> >> should focus only text fields or all controls such as buttons etc. I
> >> don't think Chrome/Mac honors it, but I think there are plans to
> >> support it. Stuff like this is surprising for a caller that sends
> >> "tab" characters, while an explicit "focus next element" function
> >> could have clearly defined semantics).
> >>
> >> >
> >> > There's also testing. This function will allow you to use only
> >> > javascript to test that a part

Re: [chromium-dev] "make all" doesn't work.

2009-12-03 Thread James Su
"make chrome" works as expected, it builds out the chrome binary. But "make"
or "make all" doesn't work at all.

- James Su

2009/12/4 Craig Schlenter 

> Hi
>
> One known problem with the make build is that you sometimes have to
> run it twice to rebuild the chrome target as the strings sometimes
> don't get rebuilt properly but if make chrome does something, then in
> theory make/make all should have built that too.
>
> What does make chrome build that make all doesn't? - that might give
> us some clues as to what is wrong.
>
> --Craig
>
> On Fri, Dec 4, 2009 at 7:53 AM, James Su  wrote:
> > Unfortunately, it doesn't work. Actually, "make" == "make all".
> >
> > - James Su
> >
> > 2009/12/4 Craig Schlenter 
> >>
> >> I think you don't need to specify a target to build everything i.e.
> >> just type make and it should work.
> >>
> >> --Craig
> >>
> >> On Fri, Dec 4, 2009 at 7:44 AM, James Su  wrote:
> >> > Hi,
> >> >   I just switched to use make to build chromium linux, but I found
> that
> >> > "make all" didn't work at all. It only told me: make: Nothing to be
> done
> >> > for
> >> > `all'. Though it works if I specify the target name explicitly, such
> as
> >> > "make chrome". Is it a known issue of gyp? Or I missed something?
> >> >
> >> > - James Su
> >> >
> >> > --
> >> > 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] "make all" doesn't work.

2009-12-03 Thread James Su
Unfortunately, it doesn't work. Actually, "make" == "make all".

- James Su

2009/12/4 Craig Schlenter 

> I think you don't need to specify a target to build everything i.e.
> just type make and it should work.
>
> --Craig
>
> On Fri, Dec 4, 2009 at 7:44 AM, James Su  wrote:
> > Hi,
> >   I just switched to use make to build chromium linux, but I found that
> > "make all" didn't work at all. It only told me: make: Nothing to be done
> for
> > `all'. Though it works if I specify the target name explicitly, such as
> > "make chrome". Is it a known issue of gyp? Or I missed something?
> >
> > - James Su
> >
> > --
> > 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-dev] "make all" doesn't work.

2009-12-03 Thread James Su
Hi,
  I just switched to use make to build chromium linux, but I found that
"make all" didn't work at all. It only told me: make: Nothing to be done for
`all'. Though it works if I specify the target name explicitly, such as
"make chrome". Is it a known issue of gyp? Or I missed something?

- James Su

-- 
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] Access keys are broken in 4.0

2009-11-12 Thread James Su
The accesskey logic is inside webkit, do we need discuss this issue with
webkit developers? This part is actually marked as FIXME in webkit code,
maybe they also want to fix it and already have some ideas.

Regards
James Su

2009/11/13 Peter Kasting 

> On Thu, Nov 12, 2009 at 4:37 PM, James Su  wrote:
>
>> This is caused by the fix of http://crbug.com/21624.
>
>
> Based on your comments on bug 27559, I'm not sure that issue is really
> relevant.  In any case, it seems like the goal is to match Firefox'
> behavior, at which point everything will be OK in the sense that alt+shift
> will trigger access keys.
>
> PK
>

-- 
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] Is it possible to configure/build chromium (linux) completely out of the source tree?

2009-11-12 Thread James Su
2009/11/12 Bradley Nelson 

> You have two options.
> Both _may_ be working on linux, there is an outstanding issue to fix a
> problem (at least on windows) in the second:
> 1. You could muck with gyp_chromium locally and change it so -S some_suffix
> is passed in. All generated stuff gets a suffix inserted.
>
This works great for make build.  Thanks a lot.


> 2. You can set GYP_GENERATOR_OUTPUT in your environment to redirect where
> things get generated.
>
This doesn't work at all. make generator just ignores it. scons generator
honors it but scons failed to build.


>
> maruel is really eager to get #2 working on windows for the trybots. A few
> stumbling blocks remain there. I think the other platforms work though. Let
> me know.
>
> -BradN
>
> On Wed, Nov 11, 2009 at 5:45 PM, James Su  wrote:
>
>> Hi all,
>>   Currently the build scripts is generated by gyp inside the source tree
>> and some options are fixed when generating the build scripts. If I want to
>> build both 32bit and 64bit binaries (or some other options, eg.
>> toolkit_views=1) in one tree, I need regenerate the build files again and
>> again with different options and output dir for each build, which is so
>> boring. I'm wondering if it's possible for gyp to support completely
>> out-of-tree build like autoconf/automake, which can store all generated
>> files (including the build scripts) in a separated directory and leave the
>> source tree untouched?
>>
>> Regards
>> James Su
>>
>> --
>> 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] Access keys are broken in 4.0

2009-11-12 Thread James Su
This is caused by the fix of http://crbug.com/21624. In that issue, we
agreed to let browser accelerators have higher priority than web accesskeys.

Regards
James Su

2009/11/13 Jeff Mikels 

> I don't know if people consider this a problem or not, but 4.0
> introduced new behavior for access keys. My computer just
> automatically upgraded Chrome to 4.0 (something I'm beginning to
> despise), and my workflow has been damaged.
>
> I use dokuwiki for document management, and it defaults to using
> access keys for editing pages.
>
> alt+e to edit a page
> alt+s to save a page
>
> etc.
>
> The problem is that with the new behavior, alt+e opens Chrome's "Page"
> menu. I have to hit ESC or click outside the popup menu to get it to
> disappear, and then the alt+e combination is passed to the content and
> I can edit the page.
>
> However, alt+s never does anything except cause a System Beep sound.
> It never gets passed to the content, and it doesn't do anything with
> the Chrome UI either.
>
> Please separate content keystrokes from UI keystrokes. Chrome is
> supposed to be all about the content and not about the app. It's the
> main reason I use it. At the very least, give us a way to change the
> settings for access key behavior.
>
> I was in Chrome nirvana for most of 3.x, but now with 4.x life is hard
> again.
>
> Thanks for listening to me whine.
>
> --
> 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-dev] What's the relationship between toolkit_views and chromeos gyp variables?

2009-11-11 Thread James Su
Hi,
  I know that if toolkit_views=1 then views will be used instead of the
implementation based on native gtk widgets. But how about chromeos? Seems
that either toolkit_views=1 or chromeos=1 will define OS_CHROMEOS=1. Is it
true that views will only be used by chromeos and desktop build will always
use the native gtk implementation?
  And I'm also wondering the situation of linux views implementation, will
it eventually replaces the native gtk implementation?

Regards
James Su

-- 
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] Is it possible to configure/build chromium (linux) completely out of the source tree?

2009-11-11 Thread James Su
Thanks, I'll have a try.

- James Su

2009/11/12 Bradley Nelson 

> You have two options.
> Both _may_ be working on linux, there is an outstanding issue to fix a
> problem (at least on windows) in the second:
> 1. You could muck with gyp_chromium locally and change it so -S some_suffix
> is passed in. All generated stuff gets a suffix inserted.
> 2. You can set GYP_GENERATOR_OUTPUT in your environment to redirect where
> things get generated.
>
> maruel is really eager to get #2 working on windows for the trybots. A few
> stumbling blocks remain there. I think the other platforms work though. Let
> me know.
>
> -BradN
>
> On Wed, Nov 11, 2009 at 5:45 PM, James Su  wrote:
>
>> Hi all,
>>   Currently the build scripts is generated by gyp inside the source tree
>> and some options are fixed when generating the build scripts. If I want to
>> build both 32bit and 64bit binaries (or some other options, eg.
>> toolkit_views=1) in one tree, I need regenerate the build files again and
>> again with different options and output dir for each build, which is so
>> boring. I'm wondering if it's possible for gyp to support completely
>> out-of-tree build like autoconf/automake, which can store all generated
>> files (including the build scripts) in a separated directory and leave the
>> source tree untouched?
>>
>> Regards
>> James Su
>>
>> --
>> 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-dev] Is it possible to configure/build chromium (linux) completely out of the source tree?

2009-11-11 Thread James Su
Hi all,
  Currently the build scripts is generated by gyp inside the source tree and
some options are fixed when generating the build scripts. If I want to build
both 32bit and 64bit binaries (or some other options, eg. toolkit_views=1)
in one tree, I need regenerate the build files again and again with
different options and output dir for each build, which is so boring. I'm
wondering if it's possible for gyp to support completely out-of-tree build
like autoconf/automake, which can store all generated files (including the
build scripts) in a separated directory and leave the source tree untouched?

Regards
James Su

-- 
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: A question regarding to the keyboard event flow in the browser process.

2009-11-09 Thread James Su
I'm confused by the code. Based on my understanding, the unhandled keyboard
events should all be handled in the TabContentsDelegate object rather than
the TabContentsView object. So, in normal browser, the Browser object should
receive all the keyboard events and then it should dispatch them to the
BrowserWindow object for real handling. Though I'm not sure if my
understanding is correct or not, I'm going to implement this logic to see if
it works. If you or somebody else have different understanding, please feel
free to tell me.

Regards
James Su

2009/11/10 Nico Weber 

> I think you're the keyboard handling expert – if I had that question, I
> would've asked you :-)
>
> Based on the response, it seems like this abstraction is not used.
>
>
> On Mon, Nov 9, 2009 at 1:41 AM, James Su  wrote:
>
>> Is anybody familiar this part?
>>
>> - James Su
>>
>> 2009/11/6 James Su 
>>
>> (Ask this question again, in case you know the answer but missed this
>>> thread.)
>>>
>>> Thanks for your clear explanation. Now I have some questions regarding to
>>> the keyboard event flow: As I understand, a keyboard event will firstly be
>>> sent to the RenderWidgetHostView object, which will forward the event to the
>>> renderer. And then if the event was not handled by the renderer, it'll be
>>> sent to the TabContentsView object through RenderViewHostDelegate::View
>>> interface. And I find that there is a HandleKeyboardEvent method in
>>> TabContentsDelegate interface, so seems that the keyboard event should be
>>> sent to the delegate object through this method and handled there. But the
>>> current implements are:
>>>
>>> 1. In windows and Linux toolkit_views implementations, the focus manager
>>> will be called directly inside TabContentsView's HandleKeyboardEvent method
>>> to handle the keyboard event. And TabContentsDelegate::HandleKeyboardEvent
>>> method only gets called in windows implementation.
>>> 2. In Linux gtk implementation, the keyboard event is delivered to the
>>> BrowserWindowGtk object directly in TabContentsViewGtk::HandleKeyboardEvent
>>> method. TabContentsDelegate::HandleKeyboardEvent never gets called.
>>> 3. The Mac implementation is just similar than the Linux gtk code, which
>>> never calls TabContentsDelegate::HandleKeyboardEvent method.
>>>
>>> The logic here looks a little messy to me. So I'm wondering which is the
>>> most apporpriate logic here. As you said, a TabContents might not always be
>>> attached to a browser window, so should the TabContentsDelegate object
>>> always take charge of the unhandled keyboard event? Is it appropriate for
>>> the TabContentsView object to handle the event instead (like the current
>>> code does)?
>>>
>>> Regards
>>> James Su
>>>
>>> 2009/11/5 Ben Goodger (Google) 
>>> - 隐藏引用文字 -
>>>
>>> As Mohammed notes, there are several diagrams in design docs under
>>>> dev.chromium.org
>>>>
>>>> I use Omnigraffle for all my diagrams, it's fab. I use the same template
>>>> for everything so the line styles etc all mean something. Lacking a
>>>> collaborative web based version of Omnigraffle, I simply attach the graffle
>>>> files to the docs so they can be edited later.
>>>>
>>>> A TabContentsView is the view portion of a TabContents. A TabContents is
>>>> not necessarily always associated with a Browser. This is a mistake many
>>>> people make - it's actually wrong to include browser.h etc in TabContents.
>>>> TabContents communicates with Browser via the TabContentsDelegate interface
>>>> which Browser implements. But sometimes the delegate is different... e.g.
>>>> when you detach a tab and drag it around on screen the TabContentsDelegate
>>>> is actually the DraggedTabController. And in ChromeFrame (which embeds a
>>>> TabContents), the TabContentsDelegate is the ExternalTabContainer I think.
>>>>
>>>> -Ben
>>>>
>>>> On Wed, Nov 4, 2009 at 8:54 PM, James Su  wrote:
>>>>
>>>>> Hi,
>>>>>   Recently, I'm studying the source code under chrome/browser and
>>>>> trying to understand the overall architecture, especially the relationship
>>>>> among those important classes, such as Browser, BrowserWindow, 
>>>>> TabContents,
>&

[chromium-dev] Re: A question regarding to the keyboard event flow in the browser process.

2009-11-09 Thread James Su
Is anybody familiar this part?

- James Su

2009/11/6 James Su 

> (Ask this question again, in case you know the answer but missed this
> thread.)
>
> Thanks for your clear explanation. Now I have some questions regarding to
> the keyboard event flow: As I understand, a keyboard event will firstly be
> sent to the RenderWidgetHostView object, which will forward the event to the
> renderer. And then if the event was not handled by the renderer, it'll be
> sent to the TabContentsView object through RenderViewHostDelegate::View
> interface. And I find that there is a HandleKeyboardEvent method in
> TabContentsDelegate interface, so seems that the keyboard event should be
> sent to the delegate object through this method and handled there. But the
> current implements are:
>
> 1. In windows and Linux toolkit_views implementations, the focus manager
> will be called directly inside TabContentsView's HandleKeyboardEvent method
> to handle the keyboard event. And TabContentsDelegate::HandleKeyboardEvent
> method only gets called in windows implementation.
> 2. In Linux gtk implementation, the keyboard event is delivered to the
> BrowserWindowGtk object directly in TabContentsViewGtk::HandleKeyboardEvent
> method. TabContentsDelegate::HandleKeyboardEvent never gets called.
> 3. The Mac implementation is just similar than the Linux gtk code, which
> never calls TabContentsDelegate::HandleKeyboardEvent method.
>
> The logic here looks a little messy to me. So I'm wondering which is the
> most apporpriate logic here. As you said, a TabContents might not always be
> attached to a browser window, so should the TabContentsDelegate object
> always take charge of the unhandled keyboard event? Is it appropriate for
> the TabContentsView object to handle the event instead (like the current
> code does)?
>
> Regards
> James Su
>
> 2009/11/5 Ben Goodger (Google) 
> - 隐藏引用文字 -
>
> As Mohammed notes, there are several diagrams in design docs under
>> dev.chromium.org
>>
>> I use Omnigraffle for all my diagrams, it's fab. I use the same template
>> for everything so the line styles etc all mean something. Lacking a
>> collaborative web based version of Omnigraffle, I simply attach the graffle
>> files to the docs so they can be edited later.
>>
>> A TabContentsView is the view portion of a TabContents. A TabContents is
>> not necessarily always associated with a Browser. This is a mistake many
>> people make - it's actually wrong to include browser.h etc in TabContents.
>> TabContents communicates with Browser via the TabContentsDelegate interface
>> which Browser implements. But sometimes the delegate is different... e.g.
>> when you detach a tab and drag it around on screen the TabContentsDelegate
>> is actually the DraggedTabController. And in ChromeFrame (which embeds a
>> TabContents), the TabContentsDelegate is the ExternalTabContainer I think.
>>
>> -Ben
>>
>> On Wed, Nov 4, 2009 at 8:54 PM, James Su  wrote:
>>
>>> Hi,
>>>   Recently, I'm studying the source code under chrome/browser and trying
>>> to understand the overall architecture, especially the relationship among
>>> those important classes, such as Browser, BrowserWindow, TabContents,
>>> TabContentsDelegate, TabContentsView, TabStripModel, RenderWidgetHost,
>>> RenderWidgetHostView, ExternalTabContainer, etc. Though I already have a
>>> rough picture of the architecture, there are still many aspects that I don't
>>> understand very well, such as:
>>>
>>> 1. The ownership among these classes.
>>> 2. The relationship between Browser and ExternalTabContainer classes,
>>> which both implement TabContentsDelegate interface. And how does an external
>>> tab work?
>>> 3. Does a TabContentsView always associate to a Browser?
>>>
>>>   I'm wondering if there is any document to help me understand these
>>> aspects? I searched on dev.chromium.org but found nothing related.
>>>
>>> Thanks
>>> James Su
>>>
>>> >>>
>>>
>>
>

--~--~-~--~~~---~--~~
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: Failed to run "gclient runhooks --force".

2009-11-08 Thread James Su
Thanks. I'll try.

James Su

2009/11/9 Dan Kegel 

> On Sun, Nov 8, 2009 at 6:27 PM, James Su  wrote:
> >   I tried to run "gclient runhooks --force" in a new copy of chromium
> code,
> > but got following error:
>
> If nobody gives better advice, I'd suggest just moving the old
> tree aside and getting a new one overnight :-(
>
> That's what I had to do about a week ago for a similar (but not
> identical) problem.
> - Dan
>

--~--~-~--~~~---~--~~
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: Failed to run "gclient runhooks --force".

2009-11-08 Thread James Su
I tried to find it in chromium-discuss group but found nothing related. Can
you please give me a link?

Thanks
James Su

2009/11/9 Abubakar 

> the chromium-discuss group (chromium-disc...@googlegroups.com) has this
> discussed several times I think, so if u head to google groups for that you
> will be able to search within the earlier posts. I wanted to post the link
> here for u but just shocked to discover that google groups is blocked in my
> office (new office for me [but just for few months :) ] !!).
>
> On 11/9/09, James Su  wrote:
>
>> Hi,
>>   I tried to run "gclient runhooks --force" in a new copy of chromium
>> code, but got following error:
>>
>> Updating projects from gyp files...
>> Traceback (most recent call last):
>>   File "src/build/gyp_chromium", line 79, in 
>> sys.exit(gyp.main(args))
>>   File "src/tools/gyp/pylib/gyp/__init__.py", line 422, in main
>> params, options.check)
>>   File "src/tools/gyp/pylib/gyp/__init__.py", line 83, in Load
>> depth, generator_input_info, check)
>>   File "src/tools/gyp/pylib/gyp/input.py", line 1981, in Load
>> depth, check)
>>   File "src/tools/gyp/pylib/gyp/input.py", line 392, in
>> LoadTargetBuildFile
>> includes, depth, check)
>>   File "src/tools/gyp/pylib/gyp/input.py", line 392, in
>> LoadTargetBuildFile
>> includes, depth, check)
>>   File "src/tools/gyp/pylib/gyp/input.py", line 392, in
>> LoadTargetBuildFile
>> includes, depth, check)
>>   File "src/tools/gyp/pylib/gyp/input.py", line 350, in
>> LoadTargetBuildFile
>> build_file_path)
>>   File "src/tools/gyp/pylib/gyp/input.py", line 837, in
>> ProcessVariablesAndConditionsInDict
>> ProcessConditionsInDict(the_dict, is_late, variables, build_file)
>>   File "src/tools/gyp/pylib/gyp/input.py", line 714, in
>> ProcessConditionsInDict
>> variables, build_file)
>>   File "src/tools/gyp/pylib/gyp/input.py", line 863, in
>> ProcessVariablesAndConditionsInDict
>> build_file)
>>   File "src/tools/gyp/pylib/gyp/input.py", line 878, in
>> ProcessVariablesAndConditionsInList
>> ProcessVariablesAndConditionsInDict(item, is_late, variables,
>> build_file)
>>   File "src/tools/gyp/pylib/gyp/input.py", line 863, in
>> ProcessVariablesAndConditionsInDict
>> build_file)
>>   File "src/tools/gyp/pylib/gyp/input.py", line 878, in
>> ProcessVariablesAndConditionsInList
>> ProcessVariablesAndConditionsInDict(item, is_late, variables,
>> build_file)
>>   File "src/tools/gyp/pylib/gyp/input.py", line 863, in
>> ProcessVariablesAndConditionsInDict
>> build_file)
>>   File "src/tools/gyp/pylib/gyp/input.py", line 882, in
>> ProcessVariablesAndConditionsInList
>> expanded = ExpandVariables(item, is_late, variables, build_file)
>>   File "src/tools/gyp/pylib/gyp/input.py", line 562, in ExpandVariables
>> ' in ' + build_file
>> KeyError: 'Undefined variable yasm_flags in
>> src/third_party/ffmpeg/ffmpeg.gyp while loading dependencies of
>> src/media/media.gyp while loading dependencies of src/chrome/chrome.gyp
>> while loading dependencies of src/build/all.gyp while trying to load
>> src/build/all.gyp'
>> failed to run command: /usr/bin/python src/build/gyp_chromium
>>
>> Anyone know how to solve it? My system is Ubuntu 8.04 64bit.
>>
>> Regards
>> James Su
>>
>> >>
>>
>

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



[chromium-dev] Failed to run "gclient runhooks --force".

2009-11-08 Thread James Su
Hi,
  I tried to run "gclient runhooks --force" in a new copy of chromium code,
but got following error:

Updating projects from gyp files...
Traceback (most recent call last):
  File "src/build/gyp_chromium", line 79, in 
sys.exit(gyp.main(args))
  File "src/tools/gyp/pylib/gyp/__init__.py", line 422, in main
params, options.check)
  File "src/tools/gyp/pylib/gyp/__init__.py", line 83, in Load
depth, generator_input_info, check)
  File "src/tools/gyp/pylib/gyp/input.py", line 1981, in Load
depth, check)
  File "src/tools/gyp/pylib/gyp/input.py", line 392, in LoadTargetBuildFile
includes, depth, check)
  File "src/tools/gyp/pylib/gyp/input.py", line 392, in LoadTargetBuildFile
includes, depth, check)
  File "src/tools/gyp/pylib/gyp/input.py", line 392, in LoadTargetBuildFile
includes, depth, check)
  File "src/tools/gyp/pylib/gyp/input.py", line 350, in LoadTargetBuildFile
build_file_path)
  File "src/tools/gyp/pylib/gyp/input.py", line 837, in
ProcessVariablesAndConditionsInDict
ProcessConditionsInDict(the_dict, is_late, variables, build_file)
  File "src/tools/gyp/pylib/gyp/input.py", line 714, in
ProcessConditionsInDict
variables, build_file)
  File "src/tools/gyp/pylib/gyp/input.py", line 863, in
ProcessVariablesAndConditionsInDict
build_file)
  File "src/tools/gyp/pylib/gyp/input.py", line 878, in
ProcessVariablesAndConditionsInList
ProcessVariablesAndConditionsInDict(item, is_late, variables,
build_file)
  File "src/tools/gyp/pylib/gyp/input.py", line 863, in
ProcessVariablesAndConditionsInDict
build_file)
  File "src/tools/gyp/pylib/gyp/input.py", line 878, in
ProcessVariablesAndConditionsInList
ProcessVariablesAndConditionsInDict(item, is_late, variables,
build_file)
  File "src/tools/gyp/pylib/gyp/input.py", line 863, in
ProcessVariablesAndConditionsInDict
build_file)
  File "src/tools/gyp/pylib/gyp/input.py", line 882, in
ProcessVariablesAndConditionsInList
expanded = ExpandVariables(item, is_late, variables, build_file)
  File "src/tools/gyp/pylib/gyp/input.py", line 562, in ExpandVariables
' in ' + build_file
KeyError: 'Undefined variable yasm_flags in
src/third_party/ffmpeg/ffmpeg.gyp while loading dependencies of
src/media/media.gyp while loading dependencies of src/chrome/chrome.gyp
while loading dependencies of src/build/all.gyp while trying to load
src/build/all.gyp'
failed to run command: /usr/bin/python src/build/gyp_chromium

Anyone know how to solve it? My system is Ubuntu 8.04 64bit.

Regards
James Su

--~--~-~--~~~---~--~~
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: Preventing keypress after accellerator?

2009-11-07 Thread James Su
2009/11/8 Peter Kasting 

> On Fri, Nov 6, 2009 at 6:51 PM, James Su  wrote:
>
>>  One example: the default behavior of Ctrl+M keypress event is
>>>> "insertNewLine", and it'll always be performed in editor_client_impl.cc if
>>>> the keypress event is not handled or prevented by the web app. Then the
>>>> result is we can never use Ctrl+M as an browser accelerator.
>>>>
>>>> Is above explanation clear enough?
>>>>
>>>
> If we're in an editable area, wouldn't we _want_ ctrl-m to insert a new
> line, and ctrl-b to toggle bold, etc.?  The description above sounds
> desirable rather than problematic.
>
ctrl-b behaves exactly like what you said, because the toggle bold action is
bound to its key down event. If we want ctrl-m to behave like it as well, we
can add an entry in keyDownEntries in editor_client_impl.cc to achieve it.


>
> 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: Preventing keypress after accellerator?

2009-11-05 Thread James Su
You might want to read http://crbug.com/21624 first. It's the root cause for
this change. I chose to fix that issue in such a generic way, because it's
much more elegant than dealing with specific key bindings. If you
encountered any issues caused by this change, please report them then let's
think about how to deal with them.

Regards
James Su

2009/11/6 Erik Arvidsson 

> On Thu, Nov 5, 2009 at 17:58, James Su  wrote:
>
>> You may refer to following bug reports:
>> http://crbug.com/21624
>> http://crbug.com/21471
>>
>> 2009/11/6 Erik Arvidsson 
>>
>> We have code to suppress the keypress event if keydown triggered a browser
>>> accelerator both inside and outside of WebKit. I don't understand why we
>>> want to prevent a keypress after a Ctrl+A or Ctrl+B keydown?
>>>
>> Because Ctrl+A and Ctrl+B are special key accelerators which will be
>> handled by the WebKit or the Browser. For example, Ctrl+B is for toggling
>> bookmark bar. When pressing Ctrl+B, the key down event will be sent to the
>> WebKit first, then it'll be forwarded to the Browser if the WebKit didn't
>> handle or prevent it. Then the Browser will handle it and open or close the
>> bookmark bar. Then if we still send the key press event of Ctrl+B to the
>> WebKit, it might be handled by some javascript code in the web page and
>> perform a specified action. Then the user will notice that two actions were
>> triggered by pressing Ctrl+B. In most time, such behavior will confuse the
>> user. Especially if the key triggers tab switching or other dramatic UI
>> change.
>>
>
> I don't really agree with that argument. Neither Firefox nor Safari
> prevents the keypress after a command. IE just don't fire keypress events
> for Ctrl+Key with some exceptions.
>
Why don't you consider it's an issue of firefox and Safari? And actually,
Safari on Windows does prevent the keypress after a command.


> We don't send Ctrl+n, Ctrl+t nor Ctrl+w to the render view which I'm not
> considering changing. These should not be sent to the current view since
> they all remove or moves the user to a new view.
>
>
>>
>>> --
>>> erik
>>>
>>> >>>
>>>
>>
>
>
> --
> erik
>

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



[chromium-dev] A question regarding to the keyboard event flow in the browser process.

2009-11-05 Thread James Su
(Ask this question again, in case you know the answer but missed this
thread.)

Thanks for your clear explanation. Now I have some questions regarding to
the keyboard event flow: As I understand, a keyboard event will firstly be
sent to the RenderWidgetHostView object, which will forward the event to the
renderer. And then if the event was not handled by the renderer, it'll be
sent to the TabContentsView object through RenderViewHostDelegate::View
interface. And I find that there is a HandleKeyboardEvent method in
TabContentsDelegate interface, so seems that the keyboard event should be
sent to the delegate object through this method and handled there. But the
current implements are:

1. In windows and Linux toolkit_views implementations, the focus manager
will be called directly inside TabContentsView's HandleKeyboardEvent method
to handle the keyboard event. And TabContentsDelegate::HandleKeyboardEvent
method only gets called in windows implementation.
2. In Linux gtk implementation, the keyboard event is delivered to the
BrowserWindowGtk object directly in TabContentsViewGtk::HandleKeyboardEvent
method. TabContentsDelegate::HandleKeyboardEvent never gets called.
3. The Mac implementation is just similar than the Linux gtk code, which
never calls TabContentsDelegate::HandleKeyboardEvent method.

The logic here looks a little messy to me. So I'm wondering which is the
most apporpriate logic here. As you said, a TabContents might not always be
attached to a browser window, so should the TabContentsDelegate object
always take charge of the unhandled keyboard event? Is it appropriate for
the TabContentsView object to handle the event instead (like the current
code does)?

Regards
James Su

2009/11/5 Ben Goodger (Google) 
- 隐藏引用文字 -

As Mohammed notes, there are several diagrams in design docs under
> dev.chromium.org
>
> I use Omnigraffle for all my diagrams, it's fab. I use the same template
> for everything so the line styles etc all mean something. Lacking a
> collaborative web based version of Omnigraffle, I simply attach the graffle
> files to the docs so they can be edited later.
>
> A TabContentsView is the view portion of a TabContents. A TabContents is
> not necessarily always associated with a Browser. This is a mistake many
> people make - it's actually wrong to include browser.h etc in TabContents.
> TabContents communicates with Browser via the TabContentsDelegate interface
> which Browser implements. But sometimes the delegate is different... e.g.
> when you detach a tab and drag it around on screen the TabContentsDelegate
> is actually the DraggedTabController. And in ChromeFrame (which embeds a
> TabContents), the TabContentsDelegate is the ExternalTabContainer I think.
>
> -Ben
>
> On Wed, Nov 4, 2009 at 8:54 PM, James Su  wrote:
>
>> Hi,
>>   Recently, I'm studying the source code under chrome/browser and trying
>> to understand the overall architecture, especially the relationship among
>> those important classes, such as Browser, BrowserWindow, TabContents,
>> TabContentsDelegate, TabContentsView, TabStripModel, RenderWidgetHost,
>> RenderWidgetHostView, ExternalTabContainer, etc. Though I already have a
>> rough picture of the architecture, there are still many aspects that I don't
>> understand very well, such as:
>>
>> 1. The ownership among these classes.
>> 2. The relationship between Browser and ExternalTabContainer classes,
>> which both implement TabContentsDelegate interface. And how does an external
>> tab work?
>> 3. Does a TabContentsView always associate to a Browser?
>>
>>   I'm wondering if there is any document to help me understand these
>> aspects? I searched on dev.chromium.org but found nothing related.
>>
>> Thanks
>> James Su
>>
>> >>
>>
>

--~--~-~--~~~---~--~~
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: Preventing keypress after accellerator?

2009-11-05 Thread James Su
You may refer to following bug reports:
http://crbug.com/21624
http://crbug.com/21471

2009/11/6 Erik Arvidsson 

> We have code to suppress the keypress event if keydown triggered a browser
> accelerator both inside and outside of WebKit. I don't understand why we
> want to prevent a keypress after a Ctrl+A or Ctrl+B keydown?
>
Because Ctrl+A and Ctrl+B are special key accelerators which will be handled
by the WebKit or the Browser. For example, Ctrl+B is for toggling bookmark
bar. When pressing Ctrl+B, the key down event will be sent to the WebKit
first, then it'll be forwarded to the Browser if the WebKit didn't handle or
prevent it. Then the Browser will handle it and open or close the bookmark
bar. Then if we still send the key press event of Ctrl+B to the WebKit, it
might be handled by some javascript code in the web page and perform a
specified action. Then the user will notice that two actions were triggered
by pressing Ctrl+B. In most time, such behavior will confuse the user.
Especially if the key triggers tab switching or other dramatic UI change.


> --
> erik
>
> >
>

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



[chromium-dev] Is there any document describing the overall architecture of the browser process?

2009-11-04 Thread James Su
Hi,
  Recently, I'm studying the source code under chrome/browser and trying to
understand the overall architecture, especially the relationship among those
important classes, such as Browser, BrowserWindow, TabContents,
TabContentsDelegate, TabContentsView, TabStripModel, RenderWidgetHost,
RenderWidgetHostView, ExternalTabContainer, etc. Though I already have a
rough picture of the architecture, there are still many aspects that I don't
understand very well, such as:

1. The ownership among these classes.
2. The relationship between Browser and ExternalTabContainer classes, which
both implement TabContentsDelegate interface. And how does an external tab
work?
3. Does a TabContentsView always associate to a Browser?

  I'm wondering if there is any document to help me understand these
aspects? I searched on dev.chromium.org but found nothing related.

Thanks
James Su

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



[chromium-dev] chromium with "toolkit_views=1" crashes when inputting anything in location entry.

2009-10-14 Thread James Su
Hi,
  I managed to build a chromium with "toolkit_views=1", however it crashes
when inputting anything in location entry. Digging into the code I found in
views/widget/widget_gtk.cc:

void WidgetGtk::Init(GtkWidget* parent,
 const gfx::Rect& bounds) {
  if (type_ != TYPE_CHILD)
ActiveWindowWatcherX::AddObserver(this);
  // Force creation of the RootView if it hasn't been created yet.
  GetRootView();

#if !defined(OS_CHROMEOS)
  default_theme_provider_.reset(new DefaultThemeProvider());
#endif
...

  Then default_theme_provider_ will be NULL when OS_CHROMEOS is defined, and
seems that it's defined when using "toolkit_views=1". However, there are
many places call WidgetGtk::GetThemeProvider() and access the theme provider
without check, thus cause crash. I'm wondering if it's a bug or I did
something wrong?

Regards
James Su

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



[chromium-dev] Error when trying to build chromium with toolkit_views=1.

2009-10-13 Thread James Su
Hi,
  I tried to build chromium with toolkit_views=1 but got error when
executing following commands:

$ export GYP_DEFINES="toolkit_views=1"
$ gclient runhooks --force

it complained: src/third_party/cros/cros_api.gyp not found. There is no cros
directory in my src/third_party, where can I get it?

Regards
James Su

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



[chromium-dev] How to print out log message on Windows?

2009-09-28 Thread James Su
Hi,
  I'd like to print some log information when running Chromium on Windows.
But when I ran chrome --log-level=0 in a shell, nothing was printed out.
What should I do then?

Regards
James Su

--~--~-~--~~~---~--~~
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: Chrome Keyboard Access, opinions?

2009-09-26 Thread James Su
2009/9/26 Jacob Mandelson 

>
> On Sat, Sep 26, 2009 at 11:40:07AM -0400, Mohamed Mansour wrote:
> > Hi all, (need UI team feedback and other keyboard guru's)
> > We need a more coherent story for accessing various toolbars. The current
> > toolbars that exist right now are:
> >
> >- Toolbar
> >- Bookmark bar
> >- Extension bar
> >- More in the future
> >
> > Currently ALT + SHIFT + T brings your focus to the toolbar, but there is
> no
> > way to get to the others. This blocks keyboard users accessing the other
> > bars which is kind of annoying if your a keyboard user. According to
> Jonas
> > Klink (Accessibility guru) he said that shortcut was only a temporary
> > solution and would like to get rid of it and replace it with something
> more
> > generic. So we need to think of a uniform access solution to all these
> > toolbars.
> [...]
>
> Maybe we could treat them akin to menus, and have Alt-SomeLetter go move
> the active focus to the bar?
> Alt-T and Alt-B seem unbound, but Alt-E (and not Alt-D) opens the Document
> menu.  Alt-F opens the Wrench menu.
>
Can we use some other key bindings rather than Alt- something? Alt is used
for activating accesskeys and already caused conflicts between some
accelerators. See http://crbug.com/21624.


> -- Jacob
>
> >
>

--~--~-~--~~~---~--~~
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: Is it possible to customize CXXFLAGS and CFLAGS when generating make file or invoking make?

2009-09-22 Thread James Su
Thanks, I'll try.
James Su

2009/9/22 Dan Kegel 

> On Tue, Sep 22, 2009 at 12:07 AM, James Su  wrote:
> >   I'd like to compile chromium with some special CFLAGS/CXXFLAGS, how can
> I
> > do? I'm using make build on 64bit Linux.
>
> Yes, e.g. create ~/.gyp/include.gypi
> {
>  'variables': {
>   'release_extra_cflags': '-g',
>   'debug_extra_cflags': '--fno-frobozz',
>  }
> }
>
> and then do gclient runhooks --force
>

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



[chromium-dev] Is it possible to customize CXXFLAGS and CFLAGS when generating make file or invoking make?

2009-09-22 Thread James Su
Hi,  I'd like to compile chromium with some special CFLAGS/CXXFLAGS, how can
I do? I'm using make build on 64bit Linux.

Regards
James Su

--~--~-~--~~~---~--~~
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: Is there any good tool on Linux to browser and cross reference chromium source code?

2009-09-16 Thread James Su
I just found DXR <http://dxr.proximity.on.ca/dxr/index.html>, which is
awesome. Might be worth to have a try.

Regards
James Su

2009/9/17 Evan Martin 

> I'd like to set up a web-based code browser on chromium.org, but I
> played around with a couple and wasn't too happy with any of them.
> Suggestions are welcome.
>
> On Tue, Sep 15, 2009 at 9:19 PM, James Su  wrote:
> > Hi,
> >   I'm currently using cscope + vim, but it's so slow and hard to use. Is
> > there any better choice?
> >
> > Regards
> > James Su
> > > >
> >
>

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



[chromium-dev] Is there any good tool on Linux to browser and cross reference chromium source code?

2009-09-15 Thread James Su
Hi,
  I'm currently using cscope + vim, but it's so slow and hard to use. Is
there any better choice?

Regards
James Su

--~--~-~--~~~---~--~~
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: What shall I do if a test runs on local Windows machine but fails on trybot?

2009-09-10 Thread James Su
I tried the tests again on trybot. Interestingly they ran without problem
this time. Nothing changed except that the initial timeout
of InProcessBrowserTest was increased from 30 seconds to 5 minutes. See:
http://build.chromium.org/buildbot/try-server/builders/win/builds/17863/steps/browser_tests/logs/stdio

The EscapeToDefaultMatch is expected to fail, because I haven't submit the
CL to fix this issue yet.

Them I'm wondering if it's still true that trybot doesn't support such kind
of interactive tests?

Regards
James Su

2009/9/11 James Su 

> Good news. I'll try it tomorrow. Will interactive_ui_tests runs on trybot
> (maybe in the future) ?
> Regards
> James Su
>
> 2009/9/11 Jay Campan 
>
> > Oh, I found it. So I'm wondering why not just move browser_focus_uitest
>> into
>> > browser_tests? Is it because the trybot limitation (no active desktop)?
>> If
>> > it's the case, then what should I do for my test? Moving it into
>> > interactive_ui_tests is apparently not a right solution.
>>
>> Yes, the browser focus tests need an active desktop.
>> I have just landed a change that makes interactive ui tests run like
>> browser tests (on Windows only for now).
>> This is not yet used by the build-bots or try bots but should be soon
>> (probably tomorrow).
>> That makes it OK to use any kind of tests (including
>> IN_PROC_BROWSER_TEST) inside the interactive UI tests.
>> Since you need to simulate keyboard events, interactive ui tests is
>> where you want your tests.
>> To add it to the new interactive ui tests, add them to the
>> interactive_ui_tests_dll target in chrome.gyp.
>> To run them, build the test_launcher project and run:
>> test_launcher --lib=interactive_ui_tests_dll
>>
>> Jay
>>
>
>

--~--~-~--~~~---~--~~
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: What shall I do if a test runs on local Windows machine but fails on trybot?

2009-09-10 Thread James Su
Good news. I'll try it tomorrow. Will interactive_ui_tests runs on trybot
(maybe in the future) ?
Regards
James Su

2009/9/11 Jay Campan 

> > Oh, I found it. So I'm wondering why not just move browser_focus_uitest
> into
> > browser_tests? Is it because the trybot limitation (no active desktop)?
> If
> > it's the case, then what should I do for my test? Moving it into
> > interactive_ui_tests is apparently not a right solution.
>
> Yes, the browser focus tests need an active desktop.
> I have just landed a change that makes interactive ui tests run like
> browser tests (on Windows only for now).
> This is not yet used by the build-bots or try bots but should be soon
> (probably tomorrow).
> That makes it OK to use any kind of tests (including
> IN_PROC_BROWSER_TEST) inside the interactive UI tests.
> Since you need to simulate keyboard events, interactive ui tests is
> where you want your tests.
> To add it to the new interactive ui tests, add them to the
> interactive_ui_tests_dll target in chrome.gyp.
> To run them, build the test_launcher project and run:
> test_launcher --lib=interactive_ui_tests_dll
>
> Jay
>

--~--~-~--~~~---~--~~
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: What shall I do if a test runs on local Windows machine but fails on trybot?

2009-09-10 Thread James Su
Oh, I found it. So I'm wondering why not just move browser_focus_uitest into
browser_tests? Is it because the trybot limitation (no active desktop)? If
it's the case, then what should I do for my test? Moving it into
interactive_ui_tests is apparently not a right solution.
Regards
James Su

2009/9/11 Scott Violet 

> Mixing IN_PROC_BROWSER_TEST with other tests causes problems (see
> earlier thread from Pawel on this).
>
>  -Scott
>
> On Thu, Sep 10, 2009 at 9:04 AM, James Su wrote:
> > Thanks a lot for your information.
> > I noticed that browser_focus_uitest.cc, which is in interactive ui tests,
> > also uses IN_PROC_BROWSER_TEST and simulates key events (Tab key). I
> tried
> > to move it into browser_tests and run on trybot, and amazingly it passed.
> I
> > can't see any real difference between browser_focus_uitest and my test in
> > simulating key events.
> > Regards
> > James Su
> >
> > 2009/9/10 Scott Violet 
> >>
> >> To add to what Eric says this is part of the reason for the
> >> interactive ui tests. Interactive ui tests run logged in so that you
> >> can generate key/mouse events and have everything work. I believe Jay
> >> is in the process of splitting these tests up so that we could have
> >> some interactive ui tests that use IN_PROC_BROWSER_TEST.
> >>
> >>  -Scott
> >>
> >> On Thu, Sep 10, 2009 at 7:37 AM, Erik Kay wrote:
> >> >
> >> > Another issue to be aware of is that on the bots, they're running
> >> > without an active desktop.  This can lead to a few things behaving
> >> > slightly differently than your local machine.  For example, there will
> >> > be no active window, so a call like
> >> > BrowserList::GetLastActiveWithProfile(...) will always return NULL.
> >> > One way you can simulate this behavior locally is to lock your screen
> >> > when you run your test.  Another (less reliable) way is to quickly
> >> > give another window focus when you launch your test.
> >> >
> >> > There are other differences as well, maybe others can weigh in with
> >> > more specifics.
> >> >
> >> > Erik
> >> >
> >> >
> >> > On Thu, Sep 10, 2009 at 3:15 AM, James Su  wrote:
> >> >> Hi,
> >> >>   Recently I'm working on an automated test of autocomplete edit
> view,
> >> >> see
> >> >> CL: http://codereview.chromium.org/177052. It's an in process
> browser
> >> >> test.
> >> >> It tests the functionalities of autocomplete edit view (omnibox) by
> >> >> simulating key events. It's supposed to run on both Linux and
> Windows,
> >> >> and
> >> >> it runs without any problem on both local Linux machine and Linux
> >> >> trybot. It
> >> >> also runs on local Windows machine, but it always fails on Windows
> >> >> trybot.
> >> >> Checking the log, I found that it's timed out when sending key event.
> >> >> Then
> >> >> I'm wondering if it's a bug or limitation of windows trybot, or I did
> >> >> something wrong?
> >> >>   And when I run the test on a local Windows machine, it sometimes
> >> >> fails
> >> >> with following error:
> >> >> [2820:5668:0910/131457:263873000:FATAL:navigation_controller.cc(492)]
> >> >> Check
> >> >> failed: !GetActiveEntry(). Got an invalid page ID but we seem to be
> >> >>  navigated to a valid page. This should be impossible.
> >> >> c:\chromium\src\base/test_suite.h(108): error: Failed
> >> >> [2820:5668:0910/131457:263873000:FATAL:navigation_controller.cc(492)]
> >> >> Check
> >> >> failed: !GetActiveEntry(). Got an invalid page ID but we seem to be
> >> >>  navigated to a valid page. This should be impossible.
> >> >> Backtrace:
> >> >> StackTrace::StackTrace [0x1029B651+33]
> >> >> (c:\chromium\src\base\debug_util_win.cc:226)
> >> >> logging::LogMessage::~LogMessage [0x1025DDFA+618]
> >> >> (c:\chromium\src\base\logging.cc:540)
> >> >> NavigationController::ClassifyNavigation [0x1055B094+180]
> >> >>
> >> >>
> (c:\chromium\src\chrome\browser\tab_contents\navigation_controller.cc:494)
> >> >> NavigationController::RendererDidNavigate [0x1055ACD6+198]
> >> >>
> >> >>
> (c:\chromium\src\chrome\browser\tab_contents\navigation_controller.cc:424)
> >> >> TabContents::DidNavigate [0x1062DF98+248]
> >> >> (c:\chromium\src\chrome\browser\tab_contents\tab_contents.cc:1953)
> >> >> RenderViewHost::OnMsgNavigate [0x105710EB+459]
> >> >>
> (c:\chromium\src\chrome\browser\renderer_host\render_view_host.cc:955)
> >> >> ...
> >> >>   Is it a bug of chrome or something wrong in my test?
> >> >> Regards
> >> >> James Su
> >> >> >
> >> >>
> >> >
> >> > > >> >
> >> >
> >
> >
>

--~--~-~--~~~---~--~~
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: What shall I do if a test runs on local Windows machine but fails on trybot?

2009-09-10 Thread James Su
Thanks a lot for your information.
I noticed that browser_focus_uitest.cc, which is in interactive ui tests,
also uses IN_PROC_BROWSER_TEST and simulates key events (Tab key). I tried
to move it into browser_tests and run on trybot, and amazingly it passed. I
can't see any real difference between browser_focus_uitest and my test in
simulating key events.
Regards
James Su

2009/9/10 Scott Violet 

> To add to what Eric says this is part of the reason for the
> interactive ui tests. Interactive ui tests run logged in so that you
> can generate key/mouse events and have everything work. I believe Jay
> is in the process of splitting these tests up so that we could have
> some interactive ui tests that use IN_PROC_BROWSER_TEST.
>
>  -Scott
>
> On Thu, Sep 10, 2009 at 7:37 AM, Erik Kay wrote:
> >
> > Another issue to be aware of is that on the bots, they're running
> > without an active desktop.  This can lead to a few things behaving
> > slightly differently than your local machine.  For example, there will
> > be no active window, so a call like
> > BrowserList::GetLastActiveWithProfile(...) will always return NULL.
> > One way you can simulate this behavior locally is to lock your screen
> > when you run your test.  Another (less reliable) way is to quickly
> > give another window focus when you launch your test.
> >
> > There are other differences as well, maybe others can weigh in with
> > more specifics.
> >
> > Erik
> >
> >
> > On Thu, Sep 10, 2009 at 3:15 AM, James Su  wrote:
> >> Hi,
> >>   Recently I'm working on an automated test of autocomplete edit view,
> see
> >> CL: http://codereview.chromium.org/177052. It's an in process browser
> test.
> >> It tests the functionalities of autocomplete edit view (omnibox) by
> >> simulating key events. It's supposed to run on both Linux and Windows,
> and
> >> it runs without any problem on both local Linux machine and Linux
> trybot. It
> >> also runs on local Windows machine, but it always fails on Windows
> trybot.
> >> Checking the log, I found that it's timed out when sending key event.
> Then
> >> I'm wondering if it's a bug or limitation of windows trybot, or I did
> >> something wrong?
> >>   And when I run the test on a local Windows machine, it sometimes fails
> >> with following error:
> >> [2820:5668:0910/131457:263873000:FATAL:navigation_controller.cc(492)]
> Check
> >> failed: !GetActiveEntry(). Got an invalid page ID but we seem to be
> >>  navigated to a valid page. This should be impossible.
> >> c:\chromium\src\base/test_suite.h(108): error: Failed
> >> [2820:5668:0910/131457:263873000:FATAL:navigation_controller.cc(492)]
> Check
> >> failed: !GetActiveEntry(). Got an invalid page ID but we seem to be
> >>  navigated to a valid page. This should be impossible.
> >> Backtrace:
> >> StackTrace::StackTrace [0x1029B651+33]
> >> (c:\chromium\src\base\debug_util_win.cc:226)
> >> logging::LogMessage::~LogMessage [0x1025DDFA+618]
> >> (c:\chromium\src\base\logging.cc:540)
> >> NavigationController::ClassifyNavigation [0x1055B094+180]
> >>
> (c:\chromium\src\chrome\browser\tab_contents\navigation_controller.cc:494)
> >> NavigationController::RendererDidNavigate [0x1055ACD6+198]
> >>
> (c:\chromium\src\chrome\browser\tab_contents\navigation_controller.cc:424)
> >> TabContents::DidNavigate [0x1062DF98+248]
> >> (c:\chromium\src\chrome\browser\tab_contents\tab_contents.cc:1953)
> >> RenderViewHost::OnMsgNavigate [0x105710EB+459]
> >> (c:\chromium\src\chrome\browser\renderer_host\render_view_host.cc:955)
> >> ...
> >>   Is it a bug of chrome or something wrong in my test?
> >> Regards
> >> James Su
> >> >
> >>
> >
> > > >
> >
>

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



[chromium-dev] What shall I do if a test runs on local Windows machine but fails on trybot?

2009-09-10 Thread James Su
Hi,  Recently I'm working on an automated test of autocomplete edit view,
see CL: http://codereview.chromium.org/177052. It's an in process browser
test. It tests the functionalities of autocomplete edit view (omnibox) by
simulating key events. It's supposed to run on both Linux and Windows, and
it runs without any problem on both local Linux machine and Linux trybot. It
also runs on local Windows machine, but it always fails on Windows trybot.
Checking the 
log<http://build.chromium.org/buildbot/try-server/builders/win/builds/17844/steps/browser_tests/logs/AltEnter>,
I found that it's timed out when sending key event. Then I'm wondering if
it's a bug or limitation of windows trybot, or I did something wrong?

  And when I run the test on a local Windows machine, it sometimes fails
with following error:

[2820:5668:0910/131457:263873000:FATAL:navigation_controller.cc(492)] Check
failed: !GetActiveEntry(). Got an invalid page ID but we seem to be
 navigated to a valid page. This should be impossible.
c:\chromium\src\base/test_suite.h(108): error: Failed
[2820:5668:0910/131457:263873000:FATAL:navigation_controller.cc(492)] Check
failed: !GetActiveEntry(). Got an invalid page ID but we seem to be
 navigated to a valid page. This should be impossible.
Backtrace:
StackTrace::StackTrace [0x1029B651+33]
(c:\chromium\src\base\debug_util_win.cc:226)
logging::LogMessage::~LogMessage [0x1025DDFA+618]
(c:\chromium\src\base\logging.cc:540)
NavigationController::ClassifyNavigation [0x1055B094+180]
(c:\chromium\src\chrome\browser\tab_contents\navigation_controller.cc:494)
NavigationController::RendererDidNavigate [0x1055ACD6+198]
(c:\chromium\src\chrome\browser\tab_contents\navigation_controller.cc:424)
TabContents::DidNavigate [0x1062DF98+248]
(c:\chromium\src\chrome\browser\tab_contents\tab_contents.cc:1953)
RenderViewHost::OnMsgNavigate [0x105710EB+459]
(c:\chromium\src\chrome\browser\renderer_host\render_view_host.cc:955)
...

  Is it a bug of chrome or something wrong in my test?

Regards
James Su

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



[chromium-dev] Windows trybot issue.

2009-09-09 Thread James Su
Hi,  I tried a CL on trybot. Linux and Mac trybots finished without any
problem very soon. But windows trybot spent more than 40 minutes to compile
and failed with following error:


Compiling...
ui_test_utils.cc
profile_sync_service_test_harness.cc
Compiling resources...
Linking...
   Creating library
C:\b\slave\win\build\src\chrome\Debug\lib\sync_integration_tests.lib
and object C:\b\slave\win\build\src\chrome\Debug\lib\sync_integration_tests.exp
LINK : fatal error LNK1210: exceeded internal ILK size limit; link
with /INCREMENTAL:NO

Error executing link.exe (tool returned code: 1210)

sync_integration_tests - 1 error(s), 0 warning(s)

1 build system warning(s):
   - PDB instance limit is enabled

-- Done --

Build: 219 succeeded, 1 failed, 0 skippedprogram finished with exit code 1



Regards
James Su

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



[chromium-dev] Is it possible to download the binary built by trybot?

2009-09-01 Thread James Su
Hi,
  I'm currently working on a CL to add some ui tests which are supposed to
run without problem on both Linux and Window, but it failed on windows
trybot. I'm currently have no Windows machine to build the windows binary.
So I'm wondering if there is any way to download the binary built by trybot,
so that I can test it in a virtual machine locally?

Regards

--~--~-~--~~~---~--~~
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: selection methods removed from WebFrame

2009-08-13 Thread James Su
Oh yes, you are right. So it might be safe to remove selectAll().

Regards
James Su

2009/8/14 Marshall Greenblatt 

> On Thu, Aug 13, 2009 at 1:07 PM, Darin Fisher  wrote:
>
>> Hmm... take a look at EditorCommands.cpp.  The executeSelectAll method
>> just calls frame->selection()->selectAll().  That's the same method that
>> WebFrameImpl::selectAll() calls.
>
>
> I just verified this in the debugger -- the Frame pointer is the same in
> both cases.
>
>
>>
>> -Darin
>>
>>
>> On Thu, Aug 13, 2009 at 10:05 AM, Darin Fisher wrote:
>>
>>> Oh, good catch.  If that is indeed the case, then eliminating
>>> WebFrame::selectAll would be a mistake.-Darin
>>>
>>>
>>> On Thu, Aug 13, 2009 at 9:58 AM, James Su  wrote:
>>>
>>>> If I understand correctly, selectAll() and executeCommand("SelectAll")
>>>> are different. The first one selects all text in the frame, while the 
>>>> second
>>>> one selects all text in an editor (input box).
>>>>
>>>> Regards
>>>> James Su
>>>>
>>>> 2009/8/14 Darin Fisher 
>>>>
>>>>>  Yeah, I agree.  Those are problems.  However, the intent is to match
>>>>> the set of commands reachable by script.  The values for execCommand are
>>>>> "well known".
>>>>>
>>>>> I also worry about having to keep the WebKit API in sync with WebCore.
>>>>>
>>>>> I agree that selectAll should be dropped in favor of
>>>>> executeCommand("SelectAll").
>>>>>
>>>>> -Darin
>>>>>
>>>>>
>>>>> On Thu, Aug 13, 2009 at 8:49 AM, Marshall Greenblatt <
>>>>> magreenbl...@gmail.com> wrote:
>>>>>
>>>>>> On Wed, Aug 12, 2009 at 5:49 PM, Darin Fisher wrote:
>>>>>>
>>>>>>> Yes, sorry about that.  Please see render_view.cc.  They are just
>>>>>>> implemented using WebFrame::executeCommand.
>>>>>>
>>>>>>
>>>>>> Ah, I see. As an API consumer I would prefer to have separate methods
>>>>>> for each supported command, or have executeCommand() take an enumeration
>>>>>> instead of a string argument. These are my qualms about the current
>>>>>> executeCommand() approach:
>>>>>>
>>>>>> 1. The set of available commands is non-obvious from viewing the
>>>>>> WebFrame header file.  Consumers of the API will need to keep track of
>>>>>> WebCore internals (EditorCommand.cpp), which logically violates the API
>>>>>> abstraction layer.
>>>>>>
>>>>>> 2. If the commands change, there is no compile-time notification to
>>>>>> the API consumer.
>>>>>>
>>>>>> 3. It's not clear which commands are meaningful/useful for Chromium.
>>>>>>
>>>>>> 4. (nit) The current implementation is inconsistent -- selectAll() is
>>>>>> functionally equivalent to executeCommand("SelectAll"), for instance.
>>>>>>
>>>>>> What do you think?
>>>>>>
>>>>>>
>>>>>>> -Darin
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Aug 12, 2009 at 1:58 PM, Marshall Greenblatt <
>>>>>>> magreenbl...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi Darin,
>>>>>>>>
>>>>>>>> The Undo(), Redo(), Cut(), Copy(), Paste() and Delete() methods were
>>>>>>>> removed from WebFrame when the class moved to the public API.  Is there
>>>>>>>> currently a way to perform these actions?
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Marshall
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>> >>>>>
>>>>>
>>>>
>>>
>>
>

--~--~-~--~~~---~--~~
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: selection methods removed from WebFrame

2009-08-13 Thread James Su
If I understand correctly, selectAll() and executeCommand("SelectAll") are
different. The first one selects all text in the frame, while the second one
selects all text in an editor (input box).

Regards
James Su

2009/8/14 Darin Fisher 

> Yeah, I agree.  Those are problems.  However, the intent is to match the
> set of commands reachable by script.  The values for execCommand are "well
> known".
>
> I also worry about having to keep the WebKit API in sync with WebCore.
>
> I agree that selectAll should be dropped in favor of
> executeCommand("SelectAll").
>
> -Darin
>
>
> On Thu, Aug 13, 2009 at 8:49 AM, Marshall Greenblatt <
> magreenbl...@gmail.com> wrote:
>
>> On Wed, Aug 12, 2009 at 5:49 PM, Darin Fisher  wrote:
>>
>>> Yes, sorry about that.  Please see render_view.cc.  They are just
>>> implemented using WebFrame::executeCommand.
>>
>>
>> Ah, I see. As an API consumer I would prefer to have separate methods for
>> each supported command, or have executeCommand() take an enumeration instead
>> of a string argument. These are my qualms about the current executeCommand()
>> approach:
>>
>> 1. The set of available commands is non-obvious from viewing the WebFrame
>> header file.  Consumers of the API will need to keep track of WebCore
>> internals (EditorCommand.cpp), which logically violates the API abstraction
>> layer.
>>
>> 2. If the commands change, there is no compile-time notification to the
>> API consumer.
>>
>> 3. It's not clear which commands are meaningful/useful for Chromium.
>>
>> 4. (nit) The current implementation is inconsistent -- selectAll() is
>> functionally equivalent to executeCommand("SelectAll"), for instance.
>>
>> What do you think?
>>
>>
>>> -Darin
>>>
>>>
>>> On Wed, Aug 12, 2009 at 1:58 PM, Marshall Greenblatt <
>>> magreenbl...@gmail.com> wrote:
>>>
>>>> Hi Darin,
>>>>
>>>> The Undo(), Redo(), Cut(), Copy(), Paste() and Delete() methods were
>>>> removed from WebFrame when the class moved to the public API.  Is there
>>>> currently a way to perform these actions?
>>>>
>>>> Thanks,
>>>> Marshall
>>>>
>>>
>>>
>>
>
> >
>

--~--~-~--~~~---~--~~
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: I'm setting up my chromium account.

2009-08-03 Thread James Su
Thanks for your suggestion. I just followed the second approach.

Regards
James Su

2009/8/4 Mohamed Mansour 

> Hi,
> If your source contents don't change, you can just copy the gcl_info
> directory (chrome\src\.svn\gcl_info) and it will keep the change lists
> intact.
>
> If the source contents change after your new source tree, just upload them
> to code review and fetch them back in when you got your clean tree. (you
> still need the gcl_info folder contents if you want to keep the connection
> between your cl's and rietveld)
>
> Welcome to chromium :)
>
> -- Mohamed Mansour
>
>
>
> On Thu, Jul 30, 2009 at 12:56 AM, James Su  wrote:
>
>> Hi,
>>   I'm so happy that I just got my chromium account, and going to rebuild
>> my local source tree with writable svn repository. But I have some pending
>> CLs in my old readonly source tree, so I'm wondering is it possible to
>> migrate those CLs to a new source tree?
>>
>> Regards
>> James Su
>>
>>
>>
>
> >
>

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



[chromium-dev] I'm setting up my chromium account.

2009-08-03 Thread James Su
Hi,
  I'm so happy that I just got my chromium account, and going to rebuild my
local source tree with writable svn repository. But I have some pending CLs
in my old readonly source tree, so I'm wondering is it possible to migrate
those CLs to a new source tree?

Regards
James Su

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



[chromium-dev] Error building chromium revision 22144.

2009-08-03 Thread James Su
Hi,
  After sync to revision 22144, following error occurs when executing
hammer:

scons: Reading SConscript files ...
KeyError: 'Default':
  File "/usr/local/google/home/suzhe/chrome/src/build/SConstruct", line 2:
SConscript('all_main.scons')
  File
"/usr/local/google/home/suzhe/chrome/src/third_party/scons/scons-local/SCons/Script/SConscript.py",
line 612:
return apply(method, args, kw)
  File
"/usr/local/google/home/suzhe/chrome/src/third_party/scons/scons-local/SCons/Script/SConscript.py",
line 549:
return apply(_SConscript, [self.fs,] + files, subst_kw)
  File
"/usr/local/google/home/suzhe/chrome/src/third_party/scons/scons-local/SCons/Script/SConscript.py",
line 259:
exec _file_ in call_stack[-1].globals
  File "/usr/local/google/home/suzhe/chrome/src/build/all_main.scons", line
293:
exports=['env'])
  File
"/usr/local/google/home/suzhe/chrome/src/third_party/scons/scons-local/SCons/Script/SConscript.py",
line 549:
return apply(_SConscript, [self.fs,] + files, subst_kw)
  File
"/usr/local/google/home/suzhe/chrome/src/third_party/scons/scons-local/SCons/Script/SConscript.py",
line 259:
exec _file_ in call_stack[-1].globals
  File "/usr/local/google/home/suzhe/chrome/src/skia/skia.scons", line 246:
config = configurations[env['CONFIG_NAME']]

Regards
James Su

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