[chromium-dev] Re: Changes to using threads in the browser process

2009-11-03 Thread Paweł Hajdan Jr .
On Tue, Nov 3, 2009 at 06:50, John Abd-El-Malek j...@chromium.org wrote:

 *The solution*
 1+2: Use ChromeThread::PostTask and friends (i.e. PostDelayedTask,
 DeleteSoon, ReleaseSoon) which are safe and efficient: no locks are grabbed
 if the target thread is known to outlive the current thread.  The four
 static methods have the same signature as the ones from MessageLoop, with
 the addition of the first parameter to indicate the target thread.

 ChromeThread::PostTask(ChromeThread::FILE, FROM_HERE, task);

 3: If your object must be destructed on a specific thread, use a trait from
 ChromeThread:

 class Foo : public base::RefCountedThreadSafeFoo,
 ChromeThread::DeleteOnIOThread


Awesome!


 4: I've removed all the special casing and always made the objects in the
 browser code behave in one way.  If you're writing a unit test and need to
 use an object that goes to a file thread (where before it would proceed
 synchronously), you just need:

 ChromeThread file_thread(ChromeThread::FILE, MessageLoop::current());
 foo-StartAsyncTaskOnFileThread();
 MessageLoop::current()-RunAllPending();

 There are plenty of examples now in the tests.


Are there any examples for asynchronous processing (with a real backend
thread)?

I think that chrome/browser/privacy_blacklist/blacklist_manager.cc uses some
of the anti-patterns you described (it caches base::Thread* instead of
MessageLoop*, but I understand it's equally bad). And it will benefit a lot
from ChromeThread::DeleteOnIOThread. The good part is that BlacklistManager
is not yet used in the browser. I will fix the issues before the final
integration of BlacklistManager.

--~--~-~--~~~---~--~~
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: Chromium security UI choices

2009-11-03 Thread Mike Hearn

Yeah, I understood :) I haven't seen much discussion of these issues
so figured I'd try and start some - perhaps a lurker would be
motivated to work on it. Or maybe the Chrome team in a later release.

The force-ssl stuff seems like good progress. Still, Chrome takes a
less aggressive stance than Firefox on things like click-through
warnings and that doesn't seem like needing academic study to resolve.

On Nov 3, 4:56 am, Adam Barth aba...@chromium.org wrote:
 I'm sorry if my email came off as dismissive.  I really would like to
 see some serious study of user interfaces for certificate errors.  I
 think everyone agrees that the current designs can be improved.  We
 even know how to measure success 
 (e.g.,http://www.usenix.org/events/sec09/tech/full_papers/sunshine.pdf).
 What we don't know is how to design something measurably better.

 Adam



 On Mon, Nov 2, 2009 at 6:19 PM, Evan Stade est...@chromium.org wrote:
  I now have a new response ready for the next click to select all thread:

  the best way to make your case is to write an academic paper and
  conduct a user study that shows how the new UI out-performs the
  current UI.

  -- Evan Stade
--~--~-~--~~~---~--~~
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: How much RAM needed to get past linking? (Linux)

2009-11-03 Thread 黒鉄章
Hi Adam/Evan/Pawell, thanks for the useful feedback.

This gold sounds good, although if I want to install it on Fedora I note
that there isn't package (yet) and the src/build/install-build-deps.sh
script is apparently only for Ubuntu 8/9, so I will have to go the 'hard
way' mentioned on the LinuxFasterBuilding wiki. (Accordingly I don't think
it should be specified as a chromium build requirement until most
distributions are supported.)

By the sounds of it 2Gb of physical memory really is the minimum, and I
better get upgrade my hardware. Technically my motherboard should support
that (as a max) but I failed to boot the other day when trying to add
different-sized DIMM. I will track down two identical 1Gb DIMMs and put them
in.

Reporting back later,

Akira

On Tue, Nov 3, 2009 at 3:02 AM, Paweł Hajdan Jr. phajdan...@chromium.orgwrote:

 If you have less than 1 GB of RAM, I wouldn't even try to link the biggest
 binaries. 2 GB of RAM should be sufficient, although with 4 and more it's
 better. And you will notice the change after switching to gold.

 On Mon, Nov 2, 2009 at 18:58, Adam Langley a...@chromium.org wrote:


 On Fri, Oct 30, 2009 at 9:10 AM, Akira ak...@yayakoshi.net wrote:
 I was building on Fedora 10 and was able to compile but the
  linking stage (see below) consumes more and more memory- the 500Mb of
  remaining memory, then another 1Gb of swap- before being killed.

 Are you using gold?


 http://code.google.com/p/chromium/wiki/LinuxFasterBuilds#Linking_using_gold

 If not, that's the single biggest win for linking size and speed. I
 know Evan builds on his laptop using gold, but I don't know the exact
 specs.


 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: Chromium security UI choices

2009-11-03 Thread Adam Barth

On Tue, Nov 3, 2009 at 12:54 AM, Mike Hearn mh.in.engl...@gmail.com wrote:
 Yeah, I understood :) I haven't seen much discussion of these issues
 so figured I'd try and start some - perhaps a lurker would be
 motivated to work on it. Or maybe the Chrome team in a later release.

We had a lot of discussion on this topic before we released the first
beta because we wanted to get security right out of the box.  I'd
certainly be happy to revisit this topic when we have new information.
 It's tempting to re-arrange the deck chairs, so to speak, but we'd
like to have solid data showing that we're going in the right
direction first.

 The force-ssl stuff seems like good progress. Still, Chrome takes a
 less aggressive stance than Firefox on things like click-through
 warnings and that doesn't seem like needing academic study to resolve.

You say what, but we have numbers on how often users click through the
certificate errors, and they're commensurate with the data in this
study:

http://www.usenix.org/events/sec09/tech/full_papers/sunshine.pdf

I'm not sure the extra clicks are buying Firefox users much, if any,
security.  That particular study is really interesting because the
authors find that users learned how to get past their
even-more-elaborate error dialogs during the course of the study.  Now
imagine if they were to use the browser for more than an afternoon...

I'd encourage you to think about this issue, come up with great ideas,
and get the data to convince us.  If there's one thing I've learned
working on this project, it's that data trumps opinion every time.

Adam

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



[chromium-dev] Hard Refresh UI Option

2009-11-03 Thread Meok

Is it feasible to get an easy way to initiate a hard refresh
(bypassing the cache)? There's a key-combo (CTRL + Refresh) in other
browsers, not sure if it works in Chrome, but has anyone ever thought
of building this functionality right into the button? Would be helpful
if you could simply right-click the refresh button to bypass the
cache.
--~--~-~--~~~---~--~~
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: Changes to using threads in the browser process

2009-11-03 Thread Mike Pinkerton

Can you put this information, as well as some examples for proper
usage, on dev.chromium.org. I doubt this stuff is very well documented
from the perspective of someone trying to use it, and this looks like
a great start!!!

On Tue, Nov 3, 2009 at 12:50 AM, John Abd-El-Malek j...@chromium.org wrote:
 Over the last week, I've been making some changes to how threads are used in
 the browser process, with the goal of simplifying cross-thread access and
 improving stability.

-- 
Mike Pinkerton
Mac Weenie
pinker...@google.com

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



[chromium-dev] Perf tests to run?

2009-11-03 Thread Anton Muhin

Dear chromiumers,

I've got a change (see https://bugs.webkit.org/show_bug.cgi?id=31051
solution for crbug.com/16821) which might have performance
implications (it invokes WinAPI via couple of levels of indirection
and might trigger V8's GC).

There are various ways to make this check faster, but I am not sure if
we should do it more complex right now (current simple approach might
be good enough.)

So the question: how could I check that I won't (notably) regress
Chromium performance with this change?

Overall, is it fine to commit this change now?  It solves an important
problem and could dramatically reduce memory usage for some scenarios,
but might be too risky.  Ideally I'd like to stage this change for
some time, but not sure if the beta is a right place.

Any advice is most appreciated.

yours,
anton.

--~--~-~--~~~---~--~~
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: How much RAM needed to get past linking? (Linux)

2009-11-03 Thread Dan Kegel

On Tue, Nov 3, 2009 at 1:01 AM, 黒鉄章 ak...@yayakoshi.net wrote:
 This gold sounds good, although if I want to install it on Fedora I note
 that there isn't package (yet) and the src/build/install-build-deps.sh
 script is apparently only for Ubuntu 8/9

Patches to fix this would be welcome.

 so I will have to go the 'hard
 way' mentioned on the LinuxFasterBuilding wiki.

The gold-building part of that script is more distro-agnostic
than http://code.google.com/p/chromium/wiki/LinuxFasterBuilds#Linking_using_gold
so I'd run that part of the shell script if I were you.

 (Accordingly I don't think
 it should be specified as a chromium build requirement until most
 distributions are supported.)

gold runs on all versions of Linux.  (Or were you talking about the script?)
- 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: refactoring and git

2009-11-03 Thread Evan Martin

I'm not sure which news you're referring to.  :)

To answer Jeremy's request: briefly, git doesn't track renames at all
(which are conceptually differences between versions) which makes
sense when you consider what it does track (conceptually, only
collections of files and an ordering between collections).  Instead,
tools like git diff know how to infer renames from the content, and
then the Rietveld uploader sorta knows how to munge them into a
Subversion-compatible format.  (And when you dcommit to svn it
converts those inferred renames into real renames.)  It usually works
pretty well except when it doesn't.

If you can convince git diff through some combination of flags that
a rename or copy happened, then that info can be communicated to svn.

So two sources of glitches: (1) can't convince git that two files are
related, typically because the text between them is too different; (2)
the Rietveld uploader isn't synthesizing Subversion renames well
enough.  (2) is a bug that I (or realistically, you) can fix, while
(1) frequently means that tracking that history doesn't really matter
too much.

On Mon, Nov 2, 2009 at 10:28 PM, Paweł Hajdan Jr.
phajdan...@chromium.org wrote:
 That's a good news. Can that info be put somewhere in the UsingGit wiki
 page?

 On Mon, Nov 2, 2009 at 23:56, Evan Martin e...@chromium.org wrote:

 On Mon, Nov 2, 2009 at 2:47 PM, Drew Wilson atwil...@chromium.org wrote:
  I'm doing some refactoring in the chromium worker code, and I got the
  following review feedback:
  small request: can the files that were branched from existing files be
  svn
  copy'd instead of copying manually and svn added?  This will preserve
  history
  and will make it easier to see what changed in the review.
  Is there a way to do this with git? I do want to make my reviewers happy
  :)

 Git has an ...odd... way of thinking about renames.  The pieces you
 need to know are:
 1) Does git believe you did a rename?  Consult git diff -M -C --stat
 origin... and see if it prints renames.
 2) If no, ping me off-list and I'll help you out.
 3) If yes, Rietveld should be able to display the diff properly.
 However, this code is relatively untested (we have to convert the Git
 renames into SVN-style renames -- SVN doesn't actually support true
 renames, oddly enough) so it could be wrong.  In that case, also ping
 me off-list.  :)

 



--~--~-~--~~~---~--~~
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: refactoring and git

2009-11-03 Thread Paweł Hajdan Jr .
On Tue, Nov 3, 2009 at 16:58, Evan Martin e...@chromium.org wrote:

 I'm not sure which news you're referring to.  :)


To the one that the files are supposed to by svn-copied by git, that there
is a command to check for that, and that you offered to help in case of
problems. :)

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



[chromium-dev] Can't build chrome; NameError: name '_toolset' is not defined. Can't sync webkit. :-(

2009-11-03 Thread Dan Kegel

I get

NameError: name '_toolset' is not defined while loading dependencies
of base/base.gyp while loading dependencies of app/app.gyp while
loading dependencies of build/all.gyp while trying to load
build/all.gyp

when building or even just running 'gclient runhooks --force'.

Also, when I do 'gclient sync', it does the usual syncing...
until it comes to webkit, where it hangs for a while, then reports
svn: Can't read from connection: Connection reset by peer
(This is with the committer repo from my home machine over
the public internet.)

Wonder if there's some connection between the two problems...

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



[chromium-dev] Chrome UI Jank Task Force Status Update

2009-11-03 Thread Glenn Wilson
*Chrome UI Jank Task Force Status*

The Chrome UI Jank Task Force is out to fix UI Jank and slowness in the
browser.  A list of open Jank bugs is here:
http://code.google.com/p/chromium/issues/list?q=label:Jank (feel free to
take one!)

*Updates*
*
*
Chase: working on disk access on startup, has a log of all disk accesses
happening.

   - Cookie reads happening on UI thread?
   - Investigating more, will sync with Brett.
   - updated the windows reference build.
   - Enabled new tab warm load perf tests.


Carlos: re-writing chrome.exe from scratch (lots of cruft.)

   - Some reading of DLL before DLL loads - rewrite will eliminate some
   I/Os.
   - Need another builder box for PGO on official builds (takes a long
   time.)
  - No good way to know the improvement without doing the build.
  - Need to choose how we want to optimize - can only optimize for one
  type of process...and some tests won't work.


John: done with patch to simplify threading in browser process.

   - Simplifies moving things to different threads (won't have to hop
   threads to see if things are still alive.)


Tony: killing off the theme.dll, may make cold startup faster.

Evan: started moving spellchecker to renderer, lots of work to be done, in
progress.

--~--~-~--~~~---~--~~
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: refactoring and git

2009-11-03 Thread Erik Kay

Are there best practices we can follow that will help the scripts be
more accurate?  For example, if we move the file, make sure that we
commit it in the new location before making any text changes?  If so,
we could at least document that.

Erik


On Tue, Nov 3, 2009 at 7:58 AM, Evan Martin e...@chromium.org wrote:

 I'm not sure which news you're referring to.  :)

 To answer Jeremy's request: briefly, git doesn't track renames at all
 (which are conceptually differences between versions) which makes
 sense when you consider what it does track (conceptually, only
 collections of files and an ordering between collections).  Instead,
 tools like git diff know how to infer renames from the content, and
 then the Rietveld uploader sorta knows how to munge them into a
 Subversion-compatible format.  (And when you dcommit to svn it
 converts those inferred renames into real renames.)  It usually works
 pretty well except when it doesn't.

 If you can convince git diff through some combination of flags that
 a rename or copy happened, then that info can be communicated to svn.

 So two sources of glitches: (1) can't convince git that two files are
 related, typically because the text between them is too different; (2)
 the Rietveld uploader isn't synthesizing Subversion renames well
 enough.  (2) is a bug that I (or realistically, you) can fix, while
 (1) frequently means that tracking that history doesn't really matter
 too much.

 On Mon, Nov 2, 2009 at 10:28 PM, Paweł Hajdan Jr.
 phajdan...@chromium.org wrote:
 That's a good news. Can that info be put somewhere in the UsingGit wiki
 page?

 On Mon, Nov 2, 2009 at 23:56, Evan Martin e...@chromium.org wrote:

 On Mon, Nov 2, 2009 at 2:47 PM, Drew Wilson atwil...@chromium.org wrote:
  I'm doing some refactoring in the chromium worker code, and I got the
  following review feedback:
  small request: can the files that were branched from existing files be
  svn
  copy'd instead of copying manually and svn added?  This will preserve
  history
  and will make it easier to see what changed in the review.
  Is there a way to do this with git? I do want to make my reviewers happy
  :)

 Git has an ...odd... way of thinking about renames.  The pieces you
 need to know are:
 1) Does git believe you did a rename?  Consult git diff -M -C --stat
 origin... and see if it prints renames.
 2) If no, ping me off-list and I'll help you out.
 3) If yes, Rietveld should be able to display the diff properly.
 However, this code is relatively untested (we have to convert the Git
 renames into SVN-style renames -- SVN doesn't actually support true
 renames, oddly enough) so it could be wrong.  In that case, also ping
 me off-list.  :)

 



 


--~--~-~--~~~---~--~~
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: refactoring and git

2009-11-03 Thread Evan Martin

Generally it should Just Work.  If it doesn't, I'd like to hear about it.

http://code.google.com/p/chromium/wiki/UsingGit#Renames_and_Copies

On Tue, Nov 3, 2009 at 9:16 AM, Erik Kay erik...@chromium.org wrote:
 Are there best practices we can follow that will help the scripts be
 more accurate?  For example, if we move the file, make sure that we
 commit it in the new location before making any text changes?  If so,
 we could at least document that.

 Erik


 On Tue, Nov 3, 2009 at 7:58 AM, Evan Martin e...@chromium.org wrote:

 I'm not sure which news you're referring to.  :)

 To answer Jeremy's request: briefly, git doesn't track renames at all
 (which are conceptually differences between versions) which makes
 sense when you consider what it does track (conceptually, only
 collections of files and an ordering between collections).  Instead,
 tools like git diff know how to infer renames from the content, and
 then the Rietveld uploader sorta knows how to munge them into a
 Subversion-compatible format.  (And when you dcommit to svn it
 converts those inferred renames into real renames.)  It usually works
 pretty well except when it doesn't.

 If you can convince git diff through some combination of flags that
 a rename or copy happened, then that info can be communicated to svn.

 So two sources of glitches: (1) can't convince git that two files are
 related, typically because the text between them is too different; (2)
 the Rietveld uploader isn't synthesizing Subversion renames well
 enough.  (2) is a bug that I (or realistically, you) can fix, while
 (1) frequently means that tracking that history doesn't really matter
 too much.

 On Mon, Nov 2, 2009 at 10:28 PM, Paweł Hajdan Jr.
 phajdan...@chromium.org wrote:
 That's a good news. Can that info be put somewhere in the UsingGit wiki
 page?

 On Mon, Nov 2, 2009 at 23:56, Evan Martin e...@chromium.org wrote:

 On Mon, Nov 2, 2009 at 2:47 PM, Drew Wilson atwil...@chromium.org wrote:
  I'm doing some refactoring in the chromium worker code, and I got the
  following review feedback:
  small request: can the files that were branched from existing files be
  svn
  copy'd instead of copying manually and svn added?  This will preserve
  history
  and will make it easier to see what changed in the review.
  Is there a way to do this with git? I do want to make my reviewers happy
  :)

 Git has an ...odd... way of thinking about renames.  The pieces you
 need to know are:
 1) Does git believe you did a rename?  Consult git diff -M -C --stat
 origin... and see if it prints renames.
 2) If no, ping me off-list and I'll help you out.
 3) If yes, Rietveld should be able to display the diff properly.
 However, this code is relatively untested (we have to convert the Git
 renames into SVN-style renames -- SVN doesn't actually support true
 renames, oddly enough) so it could be wrong.  In that case, also ping
 me off-list.  :)

 



 



--~--~-~--~~~---~--~~
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: Can't build chrome; NameError: name '_toolset' is not defined. Can't sync webkit. :-(

2009-11-03 Thread Evan Martin

On Tue, Nov 3, 2009 at 8:06 AM, Dan Kegel d...@kegel.com wrote:
 I get

 NameError: name '_toolset' is not defined while loading dependencies
 of base/base.gyp while loading dependencies of app/app.gyp while
 loading dependencies of build/all.gyp while trying to load
 build/all.gyp

 when building or even just running 'gclient runhooks --force'.

 Also, when I do 'gclient sync', it does the usual syncing...
 until it comes to webkit, where it hangs for a while, then reports
 svn: Can't read from connection: Connection reset by peer
 (This is with the committer repo from my home machine over
 the public internet.)

 Wonder if there's some connection between the two problems...

It's possible that some of your svn checkouts weren't fully synced.
Try gclient sync --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] Re: Which editor do you recommend on Mac OS X?

2009-11-03 Thread Paweł Hajdan Jr .
On Tue, Nov 3, 2009 at 19:08, Drew Wilson atwil...@chromium.org wrote:

 I've also been known to use the built-in GNU emacs from a terminal shell
 (especially when working remotely/SSH-ing). I see no reason why you can't
 have the same experience that you do with your Linux box, although you'd
 have to find a way to drag the google3 elisp over.


I have it working. For reference, the file can be downloaded from
http://google-styleguide.googlecode.com/svn/trunk/google-c-style.el

Maybe I should try the non-aqua Emacs, hm...

How about building? Is using xcodebuild slower than running the build from
Xcode? My simple testing shows that there is no big difference.

--~--~-~--~~~---~--~~
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: Which editor do you recommend on Mac OS X?

2009-11-03 Thread Drew Wilson
I've been using Aquamacs, although I don't like the fact that it has *so
many* modes built-in and turned-on by default, and I also don't like the
fact that it doesn't lend itself well to customization (it has its own set
of initialization files it keeps hidden off). It's decent, though (but
again, I've devolved over the years to using almost vanilla emacs bindings
to allow moving to new platforms easier).

I've also been known to use the built-in GNU emacs from a terminal shell
(especially when working remotely/SSH-ing). I see no reason why you can't
have the same experience that you do with your Linux box, although you'd
have to find a way to drag the google3 elisp over.

-atw

On Tue, Nov 3, 2009 at 9:56 AM, Paweł Hajdan Jr. phajdan...@chromium.orgwrote:

 Recently I started working more and more on Mac OS X, and I'm trying to
 find an editor that would work the best for me.

 On Linux I used GNU Emacs with many customizations. Some of the most handy
 ones for working on Chromium were Google Style script and launching the
 compilation from the editor. I also used Vim keybindings (Viper) a lot.

 On Mac, I tried Aquamacs, but some of my customizations broke. Also, the
 Vim emulation seems to be only half-working (selecting text in Vim visual
 mode isn't working).

 I also tried Xcode, but it seems that the editor isn't powerful enough. I
 don't know how to quickly remove an entire line (2 keystrokes in Vim), or a
 few lines (3 keystrokes). However, the Open Quickly option (cmd-shift-d)
 is very nice. I also couldn't find an easy solution to automatically remove
 trailing whitespace in Xcode.

 Do you have any tips about effective editing on Mac? Which solution would
 you recommend?

 


--~--~-~--~~~---~--~~
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: Which editor do you recommend on Mac OS X?

2009-11-03 Thread Nico Weber

I heartily recommend MacVim ( http://code.google.com/p/macvim/ ). I
hear its fullscreen mode is pretty rad :-P

Having said that, XCode – like most OS X apps – support some emacs
keybindings. Your Remove entire line example is ctrl-a ctrl-k ctrl-k
in XCode.

I usually use some mix of MacVim and XCode.

On Tue, Nov 3, 2009 at 9:56 AM, Paweł Hajdan Jr.
phajdan...@chromium.org wrote:
 Recently I started working more and more on Mac OS X, and I'm trying to find
 an editor that would work the best for me.
 On Linux I used GNU Emacs with many customizations. Some of the most handy
 ones for working on Chromium were Google Style script and launching the
 compilation from the editor. I also used Vim keybindings (Viper) a lot.
 On Mac, I tried Aquamacs, but some of my customizations broke. Also, the Vim
 emulation seems to be only half-working (selecting text in Vim visual mode
 isn't working).
 I also tried Xcode, but it seems that the editor isn't powerful enough. I
 don't know how to quickly remove an entire line (2 keystrokes in Vim), or a
 few lines (3 keystrokes). However, the Open Quickly option (cmd-shift-d)
 is very nice. I also couldn't find an easy solution to automatically remove
 trailing whitespace in Xcode.
 Do you have any tips about effective editing on Mac? Which solution would
 you recommend?
 


--~--~-~--~~~---~--~~
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: Which editor do you recommend on Mac OS X?

2009-11-03 Thread Andrew Scherkus
TextMate is pretty solid and very customizable.  I wonder if we can get gyp
to generate .tmproj files :P

I also like it's command line tool mate for opening files from the
Terminal.

On Tue, Nov 3, 2009 at 9:56 AM, Paweł Hajdan Jr. phajdan...@chromium.orgwrote:

 Recently I started working more and more on Mac OS X, and I'm trying to
 find an editor that would work the best for me.

 On Linux I used GNU Emacs with many customizations. Some of the most handy
 ones for working on Chromium were Google Style script and launching the
 compilation from the editor. I also used Vim keybindings (Viper) a lot.

 On Mac, I tried Aquamacs, but some of my customizations broke. Also, the
 Vim emulation seems to be only half-working (selecting text in Vim visual
 mode isn't working).

 I also tried Xcode, but it seems that the editor isn't powerful enough. I
 don't know how to quickly remove an entire line (2 keystrokes in Vim), or a
 few lines (3 keystrokes). However, the Open Quickly option (cmd-shift-d)
 is very nice. I also couldn't find an easy solution to automatically remove
 trailing whitespace in Xcode.

 Do you have any tips about effective editing on Mac? Which solution would
 you recommend?

 


--~--~-~--~~~---~--~~
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: refactoring and git

2009-11-03 Thread Finnur Thorarinsson
 Another option is to do one TBR commit where you just fork the file
 with no changes, then work again as normal.

May I suggest using gcl instead for this changelist... Would that be
possible?

I don't like the idea of losing all the commit history of the file he's
working on, just because git doesn't correctly implement this...


On Tue, Nov 3, 2009 at 09:50, Evan Martin e...@chromium.org wrote:


 Another option is to do one TBR commit where you just fork the file
 with no changes, then work again as normal.
 Pretty ugly though.  :)

 On Tue, Nov 3, 2009 at 9:29 AM, Drew Wilson atwil...@chromium.org wrote:
  In my case, git didn't quite figure out that my refactoring (splitting a
  file into two) should also link up the new file to the history of the
 old.
  There are magic flags I could pass (-Cn) to make git more aggressive
 about
  matching up files to histories, but it turns out that passing those flags
  also generates a bunch of false positives (at least in my case): git
 thought
  that unrelated files were actually copies of one another.
  In the end, I'm probably just going to land the patch via svn and
 manually
  setup the history linkage via svn copy.
  -atw
 
  On Tue, Nov 3, 2009 at 9:18 AM, Evan Martin e...@chromium.org wrote:
 
  Generally it should Just Work.  If it doesn't, I'd like to hear about
 it.
 
  http://code.google.com/p/chromium/wiki/UsingGit#Renames_and_Copies
 
  On Tue, Nov 3, 2009 at 9:16 AM, Erik Kay erik...@chromium.org wrote:
   Are there best practices we can follow that will help the scripts be
   more accurate?  For example, if we move the file, make sure that we
   commit it in the new location before making any text changes?  If so,
   we could at least document that.
  
   Erik
  
  
   On Tue, Nov 3, 2009 at 7:58 AM, Evan Martin e...@chromium.org
 wrote:
  
   I'm not sure which news you're referring to.  :)
  
   To answer Jeremy's request: briefly, git doesn't track renames at all
   (which are conceptually differences between versions) which makes
   sense when you consider what it does track (conceptually, only
   collections of files and an ordering between collections).  Instead,
   tools like git diff know how to infer renames from the content, and
   then the Rietveld uploader sorta knows how to munge them into a
   Subversion-compatible format.  (And when you dcommit to svn it
   converts those inferred renames into real renames.)  It usually works
   pretty well except when it doesn't.
  
   If you can convince git diff through some combination of flags that
   a rename or copy happened, then that info can be communicated to svn.
  
   So two sources of glitches: (1) can't convince git that two files are
   related, typically because the text between them is too different;
 (2)
   the Rietveld uploader isn't synthesizing Subversion renames well
   enough.  (2) is a bug that I (or realistically, you) can fix, while
   (1) frequently means that tracking that history doesn't really matter
   too much.
  
   On Mon, Nov 2, 2009 at 10:28 PM, Paweł Hajdan Jr.
   phajdan...@chromium.org wrote:
   That's a good news. Can that info be put somewhere in the UsingGit
   wiki
   page?
  
   On Mon, Nov 2, 2009 at 23:56, Evan Martin e...@chromium.org
 wrote:
  
   On Mon, Nov 2, 2009 at 2:47 PM, Drew Wilson atwil...@chromium.org
 
   wrote:
I'm doing some refactoring in the chromium worker code, and I got
the
following review feedback:
small request: can the files that were branched from existing
files be
svn
copy'd instead of copying manually and svn added?  This will
preserve
history
and will make it easier to see what changed in the review.
Is there a way to do this with git? I do want to make my
 reviewers
happy
:)
  
   Git has an ...odd... way of thinking about renames.  The pieces you
   need to know are:
   1) Does git believe you did a rename?  Consult git diff -M -C
 --stat
   origin... and see if it prints renames.
   2) If no, ping me off-list and I'll help you out.
   3) If yes, Rietveld should be able to display the diff properly.
   However, this code is relatively untested (we have to convert the
 Git
   renames into SVN-style renames -- SVN doesn't actually support
 true
   renames, oddly enough) so it could be wrong.  In that case, also
 ping
   me off-list.  :)
  
   
  
  
  

  
  
 
 

 


--~--~-~--~~~---~--~~
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: Perf tests to run?

2009-11-03 Thread Peter Kasting
On Tue, Nov 3, 2009 at 7:30 AM, Anton Muhin ant...@chromium.org wrote:

 So the question: how could I check that I won't (notably) regress
 Chromium performance with this change?


We have perf bots; you can check in and look at the effects there, and there
might even be a way to get perf results from the tryservers.

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: Which editor do you recommend on Mac OS X?

2009-11-03 Thread Erik Corry

2009/11/3 Paweł Hajdan Jr. phajdan...@chromium.org:
 Recently I started working more and more on Mac OS X, and I'm trying to find
 an editor that would work the best for me.
 On Linux I used GNU Emacs with many customizations. Some of the most handy
 ones for working on Chromium were Google Style script and launching the
 compilation from the editor. I also used Vim keybindings (Viper) a lot.
 On Mac, I tried Aquamacs, but some of my customizations broke. Also, the Vim
 emulation seems to be only half-working (selecting text in Vim visual mode
 isn't working).
 I also tried Xcode, but it seems that the editor isn't powerful enough. I
 don't know how to quickly remove an entire line (2 keystrokes in Vim), or a
 few lines (3 keystrokes). However, the Open Quickly option (cmd-shift-d)
 is very nice. I also couldn't find an easy solution to automatically remove
 trailing whitespace in Xcode.
 Do you have any tips about effective editing on Mac? Which solution would
 you recommend?

Vim?

 


--~--~-~--~~~---~--~~
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: Can't build chrome; NameError: name '_toolset' is not defined. Can't sync webkit. :-(

2009-11-03 Thread Dan Kegel

On Tue, Nov 3, 2009 at 9:21 AM, Evan Martin e...@chromium.org wrote:
 On Tue, Nov 3, 2009 at 8:06 AM, Dan Kegel d...@kegel.com wrote:
 NameError: name '_toolset' is not defined while loading dependencies
 when building or even just running 'gclient runhooks --force'.

 Also, when I do 'gclient sync', it does the usual syncing...
 until it comes to webkit, where it hangs for a while, then reports
 svn: Can't read from connection: Connection reset by peer
 (This is with the committer repo from my home machine over
 the public internet.)

 It's possible that some of your svn checkouts weren't fully synced.
 Try gclient sync --force.

See above :-)  It fails with

 running 'svn update /home/dank/chromium/src/testing/gtest
--revision 336' in '/home/dank/chromium'
At revision 336.
svn: Can't read from connection: Connection reset by peer
Error: failed to run command: svn update
/home/dank/chromium/src/third_party/WebKit --revision 27313

This is very strange, since syncing works in all other
directories up to that point.

Do we have an svn server 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: refactoring and git

2009-11-03 Thread Drew Wilson
In my case, git didn't quite figure out that my refactoring (splitting a
file into two) should also link up the new file to the history of the old.

There are magic flags I could pass (-Cn) to make git more aggressive about
matching up files to histories, but it turns out that passing those flags
also generates a bunch of false positives (at least in my case): git thought
that unrelated files were actually copies of one another.

In the end, I'm probably just going to land the patch via svn and manually
setup the history linkage via svn copy.

-atw

On Tue, Nov 3, 2009 at 9:18 AM, Evan Martin e...@chromium.org wrote:

 Generally it should Just Work.  If it doesn't, I'd like to hear about it.

 http://code.google.com/p/chromium/wiki/UsingGit#Renames_and_Copies

 On Tue, Nov 3, 2009 at 9:16 AM, Erik Kay erik...@chromium.org wrote:
  Are there best practices we can follow that will help the scripts be
  more accurate?  For example, if we move the file, make sure that we
  commit it in the new location before making any text changes?  If so,
  we could at least document that.
 
  Erik
 
 
  On Tue, Nov 3, 2009 at 7:58 AM, Evan Martin e...@chromium.org wrote:
 
  I'm not sure which news you're referring to.  :)
 
  To answer Jeremy's request: briefly, git doesn't track renames at all
  (which are conceptually differences between versions) which makes
  sense when you consider what it does track (conceptually, only
  collections of files and an ordering between collections).  Instead,
  tools like git diff know how to infer renames from the content, and
  then the Rietveld uploader sorta knows how to munge them into a
  Subversion-compatible format.  (And when you dcommit to svn it
  converts those inferred renames into real renames.)  It usually works
  pretty well except when it doesn't.
 
  If you can convince git diff through some combination of flags that
  a rename or copy happened, then that info can be communicated to svn.
 
  So two sources of glitches: (1) can't convince git that two files are
  related, typically because the text between them is too different; (2)
  the Rietveld uploader isn't synthesizing Subversion renames well
  enough.  (2) is a bug that I (or realistically, you) can fix, while
  (1) frequently means that tracking that history doesn't really matter
  too much.
 
  On Mon, Nov 2, 2009 at 10:28 PM, Paweł Hajdan Jr.
  phajdan...@chromium.org wrote:
  That's a good news. Can that info be put somewhere in the UsingGit wiki
  page?
 
  On Mon, Nov 2, 2009 at 23:56, Evan Martin e...@chromium.org wrote:
 
  On Mon, Nov 2, 2009 at 2:47 PM, Drew Wilson atwil...@chromium.org
 wrote:
   I'm doing some refactoring in the chromium worker code, and I got
 the
   following review feedback:
   small request: can the files that were branched from existing files
 be
   svn
   copy'd instead of copying manually and svn added?  This will
 preserve
   history
   and will make it easier to see what changed in the review.
   Is there a way to do this with git? I do want to make my reviewers
 happy
   :)
 
  Git has an ...odd... way of thinking about renames.  The pieces you
  need to know are:
  1) Does git believe you did a rename?  Consult git diff -M -C --stat
  origin... and see if it prints renames.
  2) If no, ping me off-list and I'll help you out.
  3) If yes, Rietveld should be able to display the diff properly.
  However, this code is relatively untested (we have to convert the Git
  renames into SVN-style renames -- SVN doesn't actually support true
  renames, oddly enough) so it could be wrong.  In that case, also ping
  me off-list.  :)
 
  
 
 
 
   
 
 


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



[chromium-dev] Which editor do you recommend on Mac OS X?

2009-11-03 Thread Paweł Hajdan Jr .
Recently I started working more and more on Mac OS X, and I'm trying to find
an editor that would work the best for me.

On Linux I used GNU Emacs with many customizations. Some of the most handy
ones for working on Chromium were Google Style script and launching the
compilation from the editor. I also used Vim keybindings (Viper) a lot.

On Mac, I tried Aquamacs, but some of my customizations broke. Also, the Vim
emulation seems to be only half-working (selecting text in Vim visual mode
isn't working).

I also tried Xcode, but it seems that the editor isn't powerful enough. I
don't know how to quickly remove an entire line (2 keystrokes in Vim), or a
few lines (3 keystrokes). However, the Open Quickly option (cmd-shift-d)
is very nice. I also couldn't find an easy solution to automatically remove
trailing whitespace in Xcode.

Do you have any tips about effective editing on Mac? Which solution would
you recommend?

--~--~-~--~~~---~--~~
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: Which editor do you recommend on Mac OS X?

2009-11-03 Thread Kenneth Russell

There's a Carbon-based, non-Aquamacs Emacs available for Mac OS X. Recommended.

http://www.emacswiki.org/emacs/EmacsForMacOS
http://www.emacswiki.org/emacs/CarbonEmacsPackage

-Ken

On Tue, Nov 3, 2009 at 10:08 AM, Drew Wilson atwil...@chromium.org wrote:
 I've been using Aquamacs, although I don't like the fact that it has *so
 many* modes built-in and turned-on by default, and I also don't like the
 fact that it doesn't lend itself well to customization (it has its own set
 of initialization files it keeps hidden off). It's decent, though (but
 again, I've devolved over the years to using almost vanilla emacs bindings
 to allow moving to new platforms easier).
 I've also been known to use the built-in GNU emacs from a terminal shell
 (especially when working remotely/SSH-ing). I see no reason why you can't
 have the same experience that you do with your Linux box, although you'd
 have to find a way to drag the google3 elisp over.
 -atw

 On Tue, Nov 3, 2009 at 9:56 AM, Paweł Hajdan Jr. phajdan...@chromium.org
 wrote:

 Recently I started working more and more on Mac OS X, and I'm trying to
 find an editor that would work the best for me.
 On Linux I used GNU Emacs with many customizations. Some of the most handy
 ones for working on Chromium were Google Style script and launching the
 compilation from the editor. I also used Vim keybindings (Viper) a lot.
 On Mac, I tried Aquamacs, but some of my customizations broke. Also, the
 Vim emulation seems to be only half-working (selecting text in Vim visual
 mode isn't working).
 I also tried Xcode, but it seems that the editor isn't powerful enough. I
 don't know how to quickly remove an entire line (2 keystrokes in Vim), or a
 few lines (3 keystrokes). However, the Open Quickly option (cmd-shift-d)
 is very nice. I also couldn't find an easy solution to automatically remove
 trailing whitespace in Xcode.
 Do you have any tips about effective editing on Mac? Which solution would
 you recommend?



 


--~--~-~--~~~---~--~~
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: revert now, ask questions later? WAS: Reverting a change, the fast way

2009-11-03 Thread John Abd-El-Malek
But this means that the person didn't use the trybot.

I think we need to be harsher on people who commit with changes that didn't
complete or failed on the trybot.  They need to have a really good reason as
to why they want to try their change on the buildbot and possibly delay many
other engineers.

On Tue, Nov 3, 2009 at 3:11 PM, Ben Goodger (Google) b...@chromium.orgwrote:


 The most common case of  5 minute bustage fix is file was omitted
 from changelist.

 -Ben

 On Tue, Nov 3, 2009 at 2:34 PM, Peter Kasting pkast...@google.com wrote:
  On Tue, Nov 3, 2009 at 2:08 PM, Ojan Vafai o...@chromium.org wrote:
 
  To be clear, here's the proposed policy: Any change that would close the
  tree can be reverted if it can't be fixed in 2 minutes.
 
  How about:
  If a change closes the tree, the change author has 1 or 2 minutes to
 respond
  to a ping.  The change should be reverted if the author doesn't respond,
 if
  he says to revert, or if he does not say he has a fix within the next 5
  minutes.
  I can't fix _any_ problem in 2 minutes.  But I can fix most of them in 5.
   The goal is to allow the author a reasonable chance to fix trivial
 problems
  before we revert.  And I think the tree should go ahead and close during
  that interval.
  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: refactoring and git

2009-11-03 Thread Aaron Boodman

On Tue, Nov 3, 2009 at 9:18 AM, Evan Martin e...@chromium.org wrote:

 Generally it should Just Work.  If it doesn't, I'd like to hear about it.

 http://code.google.com/p/chromium/wiki/UsingGit#Renames_and_Copies

FWIW, it never used to work at all for me, but it recently started
working. Did you change something recently? (I also have been messing
around with my env recently -- I may have been using an older version
of git-cl accidentally).

- a

--~--~-~--~~~---~--~~
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: Changes to using threads in the browser process

2009-11-03 Thread Brett Wilson

On Tue, Nov 3, 2009 at 6:01 AM, Mike Pinkerton pinker...@chromium.org wrote:

 Can you put this information, as well as some examples for proper
 usage, on dev.chromium.org. I doubt this stuff is very well documented
 from the perspective of someone trying to use it, and this looks like
 a great start!!!

The place to put it is here:
http://dev.chromium.org/developers/design-documents/threading

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: refactoring and git

2009-11-03 Thread Evan Martin

Another option is to do one TBR commit where you just fork the file
with no changes, then work again as normal.
Pretty ugly though.  :)

On Tue, Nov 3, 2009 at 9:29 AM, Drew Wilson atwil...@chromium.org wrote:
 In my case, git didn't quite figure out that my refactoring (splitting a
 file into two) should also link up the new file to the history of the old.
 There are magic flags I could pass (-Cn) to make git more aggressive about
 matching up files to histories, but it turns out that passing those flags
 also generates a bunch of false positives (at least in my case): git thought
 that unrelated files were actually copies of one another.
 In the end, I'm probably just going to land the patch via svn and manually
 setup the history linkage via svn copy.
 -atw

 On Tue, Nov 3, 2009 at 9:18 AM, Evan Martin e...@chromium.org wrote:

 Generally it should Just Work.  If it doesn't, I'd like to hear about it.

 http://code.google.com/p/chromium/wiki/UsingGit#Renames_and_Copies

 On Tue, Nov 3, 2009 at 9:16 AM, Erik Kay erik...@chromium.org wrote:
  Are there best practices we can follow that will help the scripts be
  more accurate?  For example, if we move the file, make sure that we
  commit it in the new location before making any text changes?  If so,
  we could at least document that.
 
  Erik
 
 
  On Tue, Nov 3, 2009 at 7:58 AM, Evan Martin e...@chromium.org wrote:
 
  I'm not sure which news you're referring to.  :)
 
  To answer Jeremy's request: briefly, git doesn't track renames at all
  (which are conceptually differences between versions) which makes
  sense when you consider what it does track (conceptually, only
  collections of files and an ordering between collections).  Instead,
  tools like git diff know how to infer renames from the content, and
  then the Rietveld uploader sorta knows how to munge them into a
  Subversion-compatible format.  (And when you dcommit to svn it
  converts those inferred renames into real renames.)  It usually works
  pretty well except when it doesn't.
 
  If you can convince git diff through some combination of flags that
  a rename or copy happened, then that info can be communicated to svn.
 
  So two sources of glitches: (1) can't convince git that two files are
  related, typically because the text between them is too different; (2)
  the Rietveld uploader isn't synthesizing Subversion renames well
  enough.  (2) is a bug that I (or realistically, you) can fix, while
  (1) frequently means that tracking that history doesn't really matter
  too much.
 
  On Mon, Nov 2, 2009 at 10:28 PM, Paweł Hajdan Jr.
  phajdan...@chromium.org wrote:
  That's a good news. Can that info be put somewhere in the UsingGit
  wiki
  page?
 
  On Mon, Nov 2, 2009 at 23:56, Evan Martin e...@chromium.org wrote:
 
  On Mon, Nov 2, 2009 at 2:47 PM, Drew Wilson atwil...@chromium.org
  wrote:
   I'm doing some refactoring in the chromium worker code, and I got
   the
   following review feedback:
   small request: can the files that were branched from existing
   files be
   svn
   copy'd instead of copying manually and svn added?  This will
   preserve
   history
   and will make it easier to see what changed in the review.
   Is there a way to do this with git? I do want to make my reviewers
   happy
   :)
 
  Git has an ...odd... way of thinking about renames.  The pieces you
  need to know are:
  1) Does git believe you did a rename?  Consult git diff -M -C --stat
  origin... and see if it prints renames.
  2) If no, ping me off-list and I'll help you out.
  3) If yes, Rietveld should be able to display the diff properly.
  However, this code is relatively untested (we have to convert the Git
  renames into SVN-style renames -- SVN doesn't actually support true
  renames, oddly enough) so it could be wrong.  In that case, also ping
  me off-list.  :)
 
  
 
 
 
   
 
 



--~--~-~--~~~---~--~~
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: Perf tests to run?

2009-11-03 Thread Anton Muhin

Thanks a lot, Peter.

Yes, I am aware of those.  Just wanted to run something before committing :)

I actually ran some DOM related tests.  Adam (on IM) suggested to run
SunSpider, V8 and page load cyclers.  I am going to do it and if
numbers are fine, then would try to commit my change.

yours,
anton.

On Tue, Nov 3, 2009 at 9:25 PM, Peter Kasting pkast...@google.com wrote:
 On Tue, Nov 3, 2009 at 7:30 AM, Anton Muhin ant...@chromium.org wrote:

 So the question: how could I check that I won't (notably) regress
 Chromium performance with this change?

 We have perf bots; you can check in and look at the effects there, and there
 might even be a way to get perf results from the tryservers.
 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: Can't build chrome; NameError: name '_toolset' is not defined. Can't sync webkit. :-(

2009-11-03 Thread Antoine Labour
On Tue, Nov 3, 2009 at 8:06 AM, Dan Kegel d...@kegel.com wrote:

 I get

 NameError: name '_toolset' is not defined while loading dependencies
 of base/base.gyp while loading dependencies of app/app.gyp while
 loading dependencies of build/all.gyp while trying to load
 build/all.gyp

 when building or even just running 'gclient runhooks --force'.

 Also, when I do 'gclient sync', it does the usual syncing...
 until it comes to webkit, where it hangs for a while, then reports
 svn: Can't read from connection: Connection reset by peer
 (This is with the committer repo from my home machine over
 the public internet.)

 Wonder if there's some connection between the two problems...


How old was your former checkout ?
Could you check the version on src/tools/gyp (with svn info) ?

The change introducing toolsets in chrome was more than a week ago I
believe, so I don't know if there is something else going on here.

Antoine

--~--~-~--~~~---~--~~
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: revert now, ask questions later? WAS: Reverting a change, the fast way

2009-11-03 Thread Nicolas Sylvain
On Tue, Nov 3, 2009 at 7:08 PM, Ben Goodger (Google) b...@chromium.orgwrote:

 I am supportive of auto-revert as long as we apply it universally. So many
 times the tree has been busted forever because of a vacuum of action by the
 sheriff.

 Also FYI - the trybots never work for me on my home system. No idea why.

From home you to type something like :

gcl try CHANGENAME --use_svn --svn_repo=svn://svn.chromium.org/chrome-try/try


Nicolas


 -Ben


 On Tue, Nov 3, 2009 at 7:05 PM, John Abd-El-Malek j...@chromium.orgwrote:

 But this means that the person didn't use the trybot.

 I think we need to be harsher on people who commit with changes that
 didn't complete or failed on the trybot.  They need to have a really good
 reason as to why they want to try their change on the buildbot and possibly
 delay many other engineers.


 On Tue, Nov 3, 2009 at 3:11 PM, Ben Goodger (Google) 
 b...@chromium.orgwrote:


 The most common case of  5 minute bustage fix is file was omitted
 from changelist.

 -Ben

 On Tue, Nov 3, 2009 at 2:34 PM, Peter Kasting pkast...@google.com
 wrote:
  On Tue, Nov 3, 2009 at 2:08 PM, Ojan Vafai o...@chromium.org wrote:
 
  To be clear, here's the proposed policy: Any change that would close
 the
  tree can be reverted if it can't be fixed in 2 minutes.
 
  How about:
  If a change closes the tree, the change author has 1 or 2 minutes to
 respond
  to a ping.  The change should be reverted if the author doesn't
 respond, if
  he says to revert, or if he does not say he has a fix within the next 5
  minutes.
  I can't fix _any_ problem in 2 minutes.  But I can fix most of them in
 5.
   The goal is to allow the author a reasonable chance to fix trivial
 problems
  before we revert.  And I think the tree should go ahead and close
 during
  that interval.
  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: revert now, ask questions later? WAS: Reverting a change, the fast way

2009-11-03 Thread Ben Goodger (Google)

The most common case of  5 minute bustage fix is file was omitted
from changelist.

-Ben

On Tue, Nov 3, 2009 at 2:34 PM, Peter Kasting pkast...@google.com wrote:
 On Tue, Nov 3, 2009 at 2:08 PM, Ojan Vafai o...@chromium.org wrote:

 To be clear, here's the proposed policy: Any change that would close the
 tree can be reverted if it can't be fixed in 2 minutes.

 How about:
 If a change closes the tree, the change author has 1 or 2 minutes to respond
 to a ping.  The change should be reverted if the author doesn't respond, if
 he says to revert, or if he does not say he has a fix within the next 5
 minutes.
 I can't fix _any_ problem in 2 minutes.  But I can fix most of them in 5.
  The goal is to allow the author a reasonable chance to fix trivial problems
 before we revert.  And I think the tree should go ahead and close during
 that interval.
 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: Reverting a change, the fast way

2009-11-03 Thread Anthony LaForge
Drover is actually an order of magnitude faster than a standard svn
merge/reverse, merge since it only affects the files that are involved with
the CL (as opposed to trying to descending the entire trunk).  A normal
merge would take in the space of 8 minutes on my box (which required an
existing working copy).  In the case of drover, the same merge/revert can be
performed in approximately 30 seconds to 1 minute (w/ out a pre existing
working copy).

Kind Regards,

Anthony Laforge
Technical Program Manager
Mountain View, CA


On Tue, Nov 3, 2009 at 2:01 PM, Eric Seidel esei...@chromium.org wrote:


 Interesting.  WebKit has similar functionality as:
 bugzilla-tool rollout 12345

 We've found that git reverts are at least an order of magnitude faster
 than SVN reverse merges.

 I wonder what bugzilla-tool/drover can learn from one another.

 -eric

 On Tue, Nov 3, 2009 at 1:53 PM, Nicolas Sylvain nsylv...@chromium.org
 wrote:
  Hi
  One of the goal of the Green Tree Task Force was to make reverting a
 change
  easy and fast.
  This is really important to keep the tree green and open. The old saying
  is Revert now, think later... If a change broke the build and the fix
  would
  take more than 1 or 2 minutes to be committed, or if the committer is not
  answering pings, then the change needs to be reverted asap.
  Turns out it was already easy and fast with Anthony's drover tool.
  If you have depot_tools in your path, just type :
  drover --revert 
  where  is the revision you want to revert.
  Since the tool creates temporary files, I suggest you go to the temp
  directory first.
  It should take only a few seconds, even for a really big change. You
 don't
  even need
  to have a chrome checkout on your machine.
  This tool should work on all platforms. You need svn 1.5 or above in your
  path.
  If you run into any issues with the tool, please let me know.
  Thank you,
  Nicolas
 
  
  If the tool does not work, you can revert the long way by doing:
  cd src/
  svn update
  svn merge -c - .
  (the dot at the end of the previous line is important)
 
  
 

 


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



[chromium-dev] Reverting a change, the fast way

2009-11-03 Thread Nicolas Sylvain
Hi

One of the goal of the Green Tree Task Force was to make reverting a change
easy and fast.

This is really important to keep the tree green and open. The old saying
is Revert now, think later... If a change broke the build and the fix
would
take more than 1 or 2 minutes to be committed, or if the committer is not
answering pings, then the change needs to be reverted asap.

Turns out it was already easy and fast with Anthony's drover tool.

If you have depot_tools in your path, just type :

*drover --revert *

where  is the revision you want to revert.

Since the tool creates temporary files, I suggest you go to the temp
directory first.

It should take only a few seconds, even for a really big change. You don't
even need
to have a chrome checkout on your machine.

This tool should work on all platforms. You need svn 1.5 or above in your
path.

If you run into any issues with the tool, please let me know.

Thank you,

Nicolas




If the tool does not work, you can revert the long way by doing:
cd src/
svn update
svn merge -c - .
(the dot at the end of the previous line is important)

--~--~-~--~~~---~--~~
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: Compiling error after I did a 'gclient sync'

2009-11-03 Thread n179911

Thanks Kenneth.

I tried this. But I get

I/Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/Debug/webcore_bindings.build/DerivedSources/i386
-I/Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/Debug/webcore_bindings.build/DerivedSources
-c 
/Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/DerivedSources/Debug/webkit/HTMLElementFactory.cpp
-o 
/Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/Debug/webcore_bindings.build/Objects-normal/i386/HTMLElementFactory.o
command-line: error: ENABLE_3D_CANVAS redefined
command-line: error: this is the location of the previous definition
command-line: error: this is the location of the previous definition

and also:

/Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8Console.cpp:49:
error: no matching function for call to
'WebCore::ScriptCallStack::ScriptCallStack(const v8::Arguments, int)'
../bindings/v8/ScriptCallStack.h:58: note: candidates are:
WebCore::ScriptCallStack::ScriptCallStack(const v8::Arguments,
unsigned int, WebCore::String, int)
../bindings/v8/ScriptCallStack.h:46: note:
WebCore::ScriptCallStack::ScriptCallStack(const
WebCore::ScriptCallStack)



On Mon, Nov 2, 2009 at 10:38 PM, Kenneth Russell k...@chromium.org wrote:
 On Mon, Nov 2, 2009 at 10:27 PM, n179911 n179...@gmail.com wrote:

 Hi,

 I have tried syncing up chromium HEAD by doing this (since i use git
 for chromium and webkit).
 $ git pull (update chromium)
 $ gclient sync
 $ tools/sync-webkit-git.py (update webkit)

 But i got the following errors when I compile it. It appears the
 method 'CanvasRenderingContext3D::attachShader' is called with the
 wrong number of parameters.
 Does anyone know how to fix it?

 Thank you.

 chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8CanvasRenderingContext3D.cpp:90:
 error: no matching function for call to
 'WebCore::CanvasRenderingContext3D::attachShader(WebCore::CanvasProgram*,
 WebCore::CanvasShader*)'
        ../html/canvas/CanvasRenderingContext3D.h:64: note: candidates are:
 void WebCore::CanvasRenderingContext3D::attachShader(WebCore::CanvasProgram*,
 WebCore::CanvasShader*, WebCore::ExceptionCode)
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8CanvasRenderingContext3D.cpp:101:
 error: no matching function for call to
 'WebCore::CanvasRenderingContext3D::bindAttribLocation(WebCore::CanvasProgram*,
 unsigned int, WebCore::String)'
 ../html/canvas/CanvasRenderingContext3D.h:65: note: candidates are:
 void 
 WebCore::CanvasRenderingContext3D::bindAttribLocation(WebCore::CanvasProgram*,
 long unsigned int, const WebCore::String, WebCore::ExceptionCode)
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8CanvasRenderingContext3D.cpp:111:
 error: no matching function for call to
 'WebCore::CanvasRenderingContext3D::bindBuffer(unsigned int,
 WebCore::CanvasBuffer*)'
 ../html/canvas/CanvasRenderingContext3D.h:66: note: candidates are:
 void WebCore::CanvasRenderingContext3D::bindBuffer(long unsigned int,
 WebCore::CanvasBuffer*, WebCore::ExceptionCode)

 It looks like upstream WebKit changes have broken our WebGL
 implementation again. The reason you're running into this is probably
 that you synced a more recent version of WebKit than is described in
 the DEPS file. Your best bet to get things compiling again quickly is
 to set ENABLE_3D_CANVAS=0 in src/build/features_override.gypi, run
 gclient runhooks --force, and rebuild.

 -Ken


--~--~-~--~~~---~--~~
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: Inheritance in gyp configurations

2009-11-03 Thread Bradley Nelson
I'd be willing to consider alternatives. The key thing here is that we need
a way to generate multiple configurations within a single expansion,
currently at least.
I suppose an alternative would be to have gyp expand things multiple times
with CONF or somesuch being each value from a list of config names. Then we
could use conditions gated the value of CONF.
This would have the drawback that we'd might have to expand large chunks of
the gyp files multiple times. But it might be more homogenous. Definitely
more major surgery.

For the example from before it would look something like:
'configurations': ['Debug', 'Debug_x64', 'Release', 'Release_x64'],
'configurations_settings': {
  # bunch of global settings.
  'conditions': [
['x64 in CONF', {
  'defines': [
   # bunch of 64-bit defines.
  ],
}, {
  'defines': [
   # bunch of 32-bit defines.
  ],
}],
  ],
  ['Debug' in CONF', {
# debug specific settings
  }, {
# release specific settings
  }],
},

I admit this syntax is slightly nicer, but I'm a little scared of the work
to get there.
Also, you'd still have the weird merging behavior for targets which alter
this per config. Though I guess that could also get changed:
'configurations': {
  'Debug': {
 'defines': ['extra_for_my_target_on_debug'],
  },
},
==
'configuration_settings': [
  'conditionals': {
[Debug in CONF': {
   'defines': ['extra_for_my_target_on_debug'],
}],
  ],
},

I suppose the other route would be to refrain from configs altogether. This
is for instance how the linux folks have added 64-bit. They generate
different scons/make files at gyp time. Configurations are more limited, but
the IDE folks like being able to switch from a drop down.

-BradN


On Tue, Nov 3, 2009 at 1:33 PM, Albert J. Wong (王重傑) ajw...@chromium.orgwrote:

 On Mon, Nov 2, 2009 at 3:37 PM, Bradley Nelson bradnel...@google.comwrote:

 S,o as it happens, I just had someone on nacl make the first use of
 multiple inheritance this morning.
 He hasn't checked it in yet, but the use case is:

 'Common': {
   # bunch of global stuff
   'defines': [
 # bunch of 32-bit defines.
   ],
 },
 'Debug': {
   # bunch of general debug stuff assumes 32-bit
   'inherit_from': ['Common'],
 },
 'Release': {
   # bunch of general release stuff assumes 32-bit
   'inherit_from': ['Common'],
 },
 'Common_x64': {
   # Customizations to change 32-bit - 64-bit
   'abstract': 1,
   'defines!': [
 # bunch of 32-bit defines
   ],
   'defines': [
  # bunch of 64-bit defines
   ],
 },
 'Debug_x64': {
   'inherit_from': ['Debug', 'Common_x64'],
 },
 'Release_x64': {
'inherit_from': ['Release', 'Common_x64'],
 },

 This use case seems reasonable enough.
 It might fit into something like (b), but at least as currently conceived,
 'Common_x64' has overrides of stuff in 'Common'.
 It might be possible to refactor Common and Common_x64 to avoid
 collisions, maybe pull out all the 32-bit stuff into Common_x86 and leave
 Common with truly common stuff. On the other hand, the current arrangement
 allowed a fairly small modification while 64-bit is being experimented with.
 Suggestions?


 Sorry for the slow response to this...missed it in my inbox. :(

 It's hard to see w/o a concrete example, but in general I would have wanted
 to do it via conditionals inside 'Common.'

 Why rely on shadowing when you can explicitly do it via conditionals here?

 IMO, the more dimensions in which we have to alter how the final dictionary
 is created, the harder it will be to maintain -- especially if there
 construct is one which relies on order of lookup, and doesn't encourage
 co-locating where the decision is made for which modifications are included
 (with conditionals, you know the else portion is likely in the same file.
  With inheritance, it's all over the place.)

 -Albert


--~--~-~--~~~---~--~~
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: Lifehacker browser tests say Chrome uses the most memory

2009-11-03 Thread Peter Kasting
On Tue, Nov 3, 2009 at 12:55 PM, John Munro ghost...@gmail.com wrote:

 Lifehacker posted a series of browser benchmarks here
 http://lifehacker.com/539/browser-speed-tests-the-windows-7-results
 and in their memory use test Chrome came out using the most.

 It's entirely possible their benchmarking methodology was flawed, but
 in any case I thought you should be aware.


Yes, we've long been aware that Chrome uses lots of memory.  That's why
there's a memory task force right now looking at memory use.

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: Compiling error after I did a 'gclient sync'

2009-11-03 Thread n179911

Thanks. Kenneth,

I fixed the ENABLE_3D_CANVAS redefined error. But I still get the
following compilation error:

In file included from
/Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../bindings/v8/DerivedSourcesAllInOne.cpp:65:

/Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8Console.cpp:40:
error: no matching function for call to
'WebCore::ScriptCallStack::ScriptCallStack(const v8::Arguments, int)'
../bindings/v8/ScriptCallStack.h:58: note: candidates are:
WebCore::ScriptCallStack::ScriptCallStack(const v8::Arguments,
unsigned int, WebCore::String, int)
../bindings/v8/ScriptCallStack.h:46: note:
WebCore::ScriptCallStack::ScriptCallStack(const
WebCore::ScriptCallStack)



On Tue, Nov 3, 2009 at 6:40 PM, n179911 n179...@gmail.com wrote:
 Thanks Kenneth.

 I tried this. But I get

 I/Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/Debug/webcore_bindings.build/DerivedSources/i386
 -I/Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/Debug/webcore_bindings.build/DerivedSources
 -c 
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/DerivedSources/Debug/webkit/HTMLElementFactory.cpp
 -o 
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/Debug/webcore_bindings.build/Objects-normal/i386/HTMLElementFactory.o
 command-line: error: ENABLE_3D_CANVAS redefined
 command-line: error: this is the location of the previous definition
        command-line: error: this is the location of the previous definition

 and also:

 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8Console.cpp:49:
 error: no matching function for call to
 'WebCore::ScriptCallStack::ScriptCallStack(const v8::Arguments, int)'
 ../bindings/v8/ScriptCallStack.h:58: note: candidates are:
 WebCore::ScriptCallStack::ScriptCallStack(const v8::Arguments,
 unsigned int, WebCore::String, int)
 ../bindings/v8/ScriptCallStack.h:46: note:
 WebCore::ScriptCallStack::ScriptCallStack(const
 WebCore::ScriptCallStack)



 On Mon, Nov 2, 2009 at 10:38 PM, Kenneth Russell k...@chromium.org wrote:
 On Mon, Nov 2, 2009 at 10:27 PM, n179911 n179...@gmail.com wrote:

 Hi,

 I have tried syncing up chromium HEAD by doing this (since i use git
 for chromium and webkit).
 $ git pull (update chromium)
 $ gclient sync
 $ tools/sync-webkit-git.py (update webkit)

 But i got the following errors when I compile it. It appears the
 method 'CanvasRenderingContext3D::attachShader' is called with the
 wrong number of parameters.
 Does anyone know how to fix it?

 Thank you.

 chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8CanvasRenderingContext3D.cpp:90:
 error: no matching function for call to
 'WebCore::CanvasRenderingContext3D::attachShader(WebCore::CanvasProgram*,
 WebCore::CanvasShader*)'
        ../html/canvas/CanvasRenderingContext3D.h:64: note: candidates are:
 void 
 WebCore::CanvasRenderingContext3D::attachShader(WebCore::CanvasProgram*,
 WebCore::CanvasShader*, WebCore::ExceptionCode)
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8CanvasRenderingContext3D.cpp:101:
 error: no matching function for call to
 'WebCore::CanvasRenderingContext3D::bindAttribLocation(WebCore::CanvasProgram*,
 unsigned int, WebCore::String)'
 ../html/canvas/CanvasRenderingContext3D.h:65: note: candidates are:
 void 
 WebCore::CanvasRenderingContext3D::bindAttribLocation(WebCore::CanvasProgram*,
 long unsigned int, const WebCore::String, WebCore::ExceptionCode)
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8CanvasRenderingContext3D.cpp:111:
 error: no matching function for call to
 'WebCore::CanvasRenderingContext3D::bindBuffer(unsigned int,
 WebCore::CanvasBuffer*)'
 ../html/canvas/CanvasRenderingContext3D.h:66: note: candidates are:
 void WebCore::CanvasRenderingContext3D::bindBuffer(long unsigned int,
 WebCore::CanvasBuffer*, WebCore::ExceptionCode)

 It looks like upstream WebKit changes have broken our WebGL
 implementation again. The reason you're running into this is probably
 that you synced a more recent version of WebKit than is described in
 the DEPS file. Your best bet to get things compiling again quickly is
 to set ENABLE_3D_CANVAS=0 in src/build/features_override.gypi, run
 gclient runhooks --force, and rebuild.

 -Ken



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

[chromium-dev] Re: revert now, ask questions later? WAS: Reverting a change, the fast way

2009-11-03 Thread Kenneth Russell

On Tue, Nov 3, 2009 at 6:05 PM, John Abd-El-Malek j...@chromium.org wrote:
 But this means that the person didn't use the trybot.
 I think we need to be harsher on people who commit with changes that didn't
 complete or failed on the trybot.  They need to have a really good reason as
 to why they want to try their change on the buildbot and possibly delay many
 other engineers.

For the record, I completely support immediate backouts of changes
that break the tree, and agree that all changes should go through the
trybots -- but sometimes the trybots don't work. I don't know anything
about the architectural differences between the trybots and buildbots,
but from recent experience I think the trybots are trying to do
incremental builds, when that isn't guaranteed to always work.

If it's just a matter of throwing hardware at the problem of making
the trybots nearly 100% reliable I think we should make that
investment.

-Ken

 On Tue, Nov 3, 2009 at 3:11 PM, Ben Goodger (Google) b...@chromium.org
 wrote:

 The most common case of  5 minute bustage fix is file was omitted
 from changelist.

 -Ben

 On Tue, Nov 3, 2009 at 2:34 PM, Peter Kasting pkast...@google.com wrote:
  On Tue, Nov 3, 2009 at 2:08 PM, Ojan Vafai o...@chromium.org wrote:
 
  To be clear, here's the proposed policy: Any change that would close
  the
  tree can be reverted if it can't be fixed in 2 minutes.
 
  How about:
  If a change closes the tree, the change author has 1 or 2 minutes to
  respond
  to a ping.  The change should be reverted if the author doesn't respond,
  if
  he says to revert, or if he does not say he has a fix within the next 5
  minutes.
  I can't fix _any_ problem in 2 minutes.  But I can fix most of them in
  5.
   The goal is to allow the author a reasonable chance to fix trivial
  problems
  before we revert.  And I think the tree should go ahead and close during
  that interval.
  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: Perf tests to run?

2009-11-03 Thread Jim Roskind
One trick that I've regularly done when concerned about the perf impact of
a patch is to:

a) Wait till late at night pacific time, when very few checkins are landing
(often there are multi-hour gaps).

b) Land your change, and wait till the build bots all start building (about
a minute later).

c) Revert your change.

You then get a PILE of perf stats with minimal effort. It is MUCH harder to
try to emulate this effect on your own machine(s), as the perf bots are
dedicated to the chore, and you have a control build to watch... and a
before/after set of results to compare with.  By doing this late at night
you have the highest probability of getting the impact of ONLY your change,
and not having a second contemporaneous landing add noise to your results.

:-) If you don't use those computer cycles late at night... we were going to
have to waste them!

YMMV.

Jim

p.s., Be sure you are good at doing reverts before playing this game ;-).
On Tue, Nov 3, 2009 at 2:04 PM, Anton Muhin ant...@chromium.org wrote:


 Thanks, James.

 So I ran SunSpider, V8 and page_cyclers.  SunSpider and V8 are roughly the
 same.

 page_cyclers trickier.  First of all, I failed to run some tests on my
 box (for both clean and patched builds)---all *Http tests just hang.
 I hope it's missetup on my part, but hopefully not crucial.  Of tests
 ran for reference build second run (patched version) was slightly
 faster, so numbers of patched version should be higher just due to
 somewhat different state of my box.  Still for most of the tests
 patched version performed slightly faster, the only problematic test
 was the first one (MozFile): 35326 ms total for clean vs. 38936 ms
 total for patched.  Given that's the only one (e.g. Intl1File ran
 115913 ms on clean vs. 94831 ms on patched), that might have been a
 spike.

 If that sounds reasonable to you all, I'd ask to commit-queue+ a patch
 and see how it'd perform on real buildbots.

 tia and yours,
 anton.

 On Tue, Nov 3, 2009 at 11:31 PM, James Robinson jam...@google.com wrote:
  Essentially this. Some of the page cyclers have fairly interesting data
  sets.
  I think we are fairly lacking in good real-world performance tests to do
  comparisons like this, which is kind of unfortunate.  I'd love to be able
 to
  point a build with a speculative patch in it at the internet and then
 have
  it report back how well it did but there are a lot of variables to
 control.
  - James
 
  On Tue, Nov 3, 2009 at 10:38 AM, Anton Muhin ant...@chromium.org
 wrote:
 
  Thanks a lot, Peter.
 
  Yes, I am aware of those.  Just wanted to run something before
 committing
  :)
 
  I actually ran some DOM related tests.  Adam (on IM) suggested to run
  SunSpider, V8 and page load cyclers.  I am going to do it and if
  numbers are fine, then would try to commit my change.
 
  yours,
  anton.
 
  On Tue, Nov 3, 2009 at 9:25 PM, Peter Kasting pkast...@google.com
 wrote:
   On Tue, Nov 3, 2009 at 7:30 AM, Anton Muhin ant...@chromium.org
 wrote:
  
   So the question: how could I check that I won't (notably) regress
   Chromium performance with this change?
  
   We have perf bots; you can check in and look at the effects there, and
   there
   might even be a way to get perf results from the tryservers.
   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: Which editor do you recommend on Mac OS X?

2009-11-03 Thread Drew Wilson
I've heard this suggested a few times (not just in this thread) - is there
an advantage to running Carbon Emacs instead of
plain-old-GNU-Emacs-in-a-terminal?

-atw

On Tue, Nov 3, 2009 at 1:14 PM, Scott Hess sh...@chromium.org wrote:

 +1.  I found Aquamacs weird/annoying.  Carbon Emacs seemed a lot
 better.  [I come from a Linux background.]

 -scott


 On Tue, Nov 3, 2009 at 11:16 AM, Kenneth Russell k...@chromium.org wrote:
 
  There's a Carbon-based, non-Aquamacs Emacs available for Mac OS X.
 Recommended.
 
  http://www.emacswiki.org/emacs/EmacsForMacOS
  http://www.emacswiki.org/emacs/CarbonEmacsPackage
 
  -Ken
 
  On Tue, Nov 3, 2009 at 10:08 AM, Drew Wilson atwil...@chromium.org
 wrote:
  I've been using Aquamacs, although I don't like the fact that it has *so
  many* modes built-in and turned-on by default, and I also don't like the
  fact that it doesn't lend itself well to customization (it has its own
 set
  of initialization files it keeps hidden off). It's decent, though (but
  again, I've devolved over the years to using almost vanilla emacs
 bindings
  to allow moving to new platforms easier).
  I've also been known to use the built-in GNU emacs from a terminal shell
  (especially when working remotely/SSH-ing). I see no reason why you
 can't
  have the same experience that you do with your Linux box, although you'd
  have to find a way to drag the google3 elisp over.
  -atw
 
  On Tue, Nov 3, 2009 at 9:56 AM, Paweł Hajdan Jr. 
 phajdan...@chromium.org
  wrote:
 
  Recently I started working more and more on Mac OS X, and I'm trying to
  find an editor that would work the best for me.
  On Linux I used GNU Emacs with many customizations. Some of the most
 handy
  ones for working on Chromium were Google Style script and launching the
  compilation from the editor. I also used Vim keybindings (Viper) a lot.
  On Mac, I tried Aquamacs, but some of my customizations broke. Also,
 the
  Vim emulation seems to be only half-working (selecting text in Vim
 visual
  mode isn't working).
  I also tried Xcode, but it seems that the editor isn't powerful enough.
 I
  don't know how to quickly remove an entire line (2 keystrokes in Vim),
 or a
  few lines (3 keystrokes). However, the Open Quickly option
 (cmd-shift-d)
  is very nice. I also couldn't find an easy solution to automatically
 remove
  trailing whitespace in Xcode.
  Do you have any tips about effective editing on Mac? Which solution
 would
  you recommend?
 
 
 
  
 
 
   
 


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



[chromium-dev] revert now, ask questions later? WAS: Reverting a change, the fast way

2009-11-03 Thread Ojan Vafai
On Tue, Nov 3, 2009 at 1:53 PM, Nicolas Sylvain nsylv...@chromium.orgwrote:

 This is really important to keep the tree green and open. The old saying
 is Revert now, think later... If a change broke the build and the fix
 would
 take more than 1 or 2 minutes to be committed, or if the committer is not
 answering pings, then the change needs to be reverted asap.


We waver on this policy. Firstly, when does a fix ever take 2 minutes to
commit? Maybe 1% of the time.

More than that, this has happened a number of times already. A small subset
of people who are responsible for keeping the tree healthy institute a
revert-early policy. Then a small subset of people who get reverted get
vocal and upset. Then we end up in the middle again where some reverts
happen quickly and others take 30 minutes. Can we agree on this as a formal
policy that we add to documentation somewhere?

To be clear, here's the proposed policy: Any change that would close the
tree can be reverted if it can't be fixed in 2 minutes.

The first part is important. We shouldn't be rolling back changes that
wouldn't close the tree (e.g. a change that causes a single test to fail).

Ojan

--~--~-~--~~~---~--~~
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: revert now, ask questions later? WAS: Reverting a change, the fast way

2009-11-03 Thread Evan Martin

On Tue, Nov 3, 2009 at 2:34 PM, Peter Kasting pkast...@google.com wrote:
 If a change closes the tree, the change author has 1 or 2 minutes to respond
 to a ping.  The change should be reverted if the author doesn't respond, if
 he says to revert, or if he does not say he has a fix within the next 5
 minutes.

Pinging the author is important, especially if there are special
circumstances (like it only fails on the bot and they want to ssh in
to examine something).

--~--~-~--~~~---~--~~
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: Which editor do you recommend on Mac OS X?

2009-11-03 Thread Scott Hess

Carbon Emacs makes the Alt key work right, and copy/paste to the
system pasteboard works like I expect w/in emacs.  I find using emacs
w/in Terminal.app to be annoying enough that I use emacsclient to
throw edits out to Emacs.app.

-scott


On Tue, Nov 3, 2009 at 2:21 PM, Drew Wilson atwil...@chromium.org wrote:
 I've heard this suggested a few times (not just in this thread) - is there
 an advantage to running Carbon Emacs instead of
 plain-old-GNU-Emacs-in-a-terminal?
 -atw

 On Tue, Nov 3, 2009 at 1:14 PM, Scott Hess sh...@chromium.org wrote:

 +1.  I found Aquamacs weird/annoying.  Carbon Emacs seemed a lot
 better.  [I come from a Linux background.]

 -scott


 On Tue, Nov 3, 2009 at 11:16 AM, Kenneth Russell k...@chromium.org wrote:
 
  There's a Carbon-based, non-Aquamacs Emacs available for Mac OS X.
  Recommended.
 
  http://www.emacswiki.org/emacs/EmacsForMacOS
  http://www.emacswiki.org/emacs/CarbonEmacsPackage
 
  -Ken
 
  On Tue, Nov 3, 2009 at 10:08 AM, Drew Wilson atwil...@chromium.org
  wrote:
  I've been using Aquamacs, although I don't like the fact that it has
  *so
  many* modes built-in and turned-on by default, and I also don't like
  the
  fact that it doesn't lend itself well to customization (it has its own
  set
  of initialization files it keeps hidden off). It's decent, though (but
  again, I've devolved over the years to using almost vanilla emacs
  bindings
  to allow moving to new platforms easier).
  I've also been known to use the built-in GNU emacs from a terminal
  shell
  (especially when working remotely/SSH-ing). I see no reason why you
  can't
  have the same experience that you do with your Linux box, although
  you'd
  have to find a way to drag the google3 elisp over.
  -atw
 
  On Tue, Nov 3, 2009 at 9:56 AM, Paweł Hajdan Jr.
  phajdan...@chromium.org
  wrote:
 
  Recently I started working more and more on Mac OS X, and I'm trying
  to
  find an editor that would work the best for me.
  On Linux I used GNU Emacs with many customizations. Some of the most
  handy
  ones for working on Chromium were Google Style script and launching
  the
  compilation from the editor. I also used Vim keybindings (Viper) a
  lot.
  On Mac, I tried Aquamacs, but some of my customizations broke. Also,
  the
  Vim emulation seems to be only half-working (selecting text in Vim
  visual
  mode isn't working).
  I also tried Xcode, but it seems that the editor isn't powerful
  enough. I
  don't know how to quickly remove an entire line (2 keystrokes in Vim),
  or a
  few lines (3 keystrokes). However, the Open Quickly option
  (cmd-shift-d)
  is very nice. I also couldn't find an easy solution to automatically
  remove
  trailing whitespace in Xcode.
  Do you have any tips about effective editing on Mac? Which solution
  would
  you recommend?
 
 
 
  
 
 
   
 



--~--~-~--~~~---~--~~
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: FYI: Linux interactive_ui_tests a bit hosed

2009-11-03 Thread Rafael Weinstein
FYI: http://codereview.chromium.org/341078

http://codereview.chromium.org/341078Linux interactive tests have finally
gone green.

On Mon, Nov 2, 2009 at 10:08 AM, John Abd-El-Malek j...@chromium.org wrote:

 (CCing today's sheriffs + Jay)

 I was thinking of marking the bug to P1, except that won't change much if
 no one has the time to work on it now.

 I think to keep tree green, the entire test should be disabled until
 singletons are cleared between each test, or it's switched to browser_tests
 launcher.


 On Mon, Nov 2, 2009 at 12:44 AM, Paweł Hajdan Jr. phajdan...@chromium.org
  wrote:

 I think that the right fix is to switch interactive_ui_tests to
 browser_tests launcher (jcampan did some great work to make the launcher
 more flexible, it may be quite simple to do the switch now - if there are no
 UI tests in interactive_ui_tests).

 I also suggest bumping the priority of http://crbug.com/25997 to P1 and
 possibly marking it with FlakyTest label.

 On Mon, Nov 2, 2009 at 09:37, John Abd-El-Malek j...@chromium.org wrote:

 This is related to bug 25997.  The tests are inherently flakey because
 singeltons aren't released between runs, so cached MessageLoop pointers are
 bogus.  Sometimes they're ok when the order of construction/destruction of
 MessageLoop pointers is the same.  But if that changes, or other memory
 allocations change, the tests start failing.

 Just wanted to send a heads up since I spent a day debugging this last
 week, and now they're failing again.

 




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



[chromium-dev] Layout tests can now be run on Win 7

2009-11-03 Thread Dirk Pranke

Hi all,

I have just checked in a new set of baselines that should allow you to
run the layout tests on Win 7 as well as Vista and XP.

For those of you playing along at home, this means that if you have a
baseline that is windows 7 specific, or is the same across 7, Vista,
and XP, check it into
src/webkit/data/platform/chromium-win. If you have a baseline that is
specific to Vista or is the same on Vista and XP, check it into
src/webkit/data/platform/chromium-win-vista, and if you have an
XP-specific baseline, check it into
src/webkit/data/platform/chromium-win-xp.

99.9% of all of your baselines will be generic, so you can probably
just check it into chromium-win and let me fix diffs when they crop up
down the road.

Also, if you have a test that only fails on Win 7, you can specify
WIN-7 in test_expectations.txt. But, I wouldn't expect any of those.

Cheers, and any questions or problems on this should go to me,

-- Dirk

--~--~-~--~~~---~--~~
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: Why is Linux Chrome so fast?

2009-11-03 Thread Jeremy Orlow
Ha.
http://tech.slashdot.org/story/09/11/03/1334203/X11-Chrome-Reportedly-Outperforms-Windows-and-Mac-Versions

On Fri, Oct 30, 2009 at 9:44 AM, Linus Upson li...@google.com wrote:

 scrolling jank in gmail
 http://crbug.com/25741

 Linus


 On Wed, Oct 28, 2009 at 12:05 PM, Adam Barth aba...@chromium.org wrote:


 On Wed, Oct 28, 2009 at 8:05 AM, Evan Martin e...@chromium.org wrote:
  General comments: Linux tends to be lighter which means it does
  better on older hardware, so depending on what sorts of laptops you're
  talking about that could be a major factor.  Windowses later than 2000
  or so need surprising amounts of hardware to run well.  (I don't
  mention Mac below because there hasn't been much performance work
  there yet.)

 I pulled out the laptops side-by-side to be more scientific about
 this.  Here are the stats:

 XP: 2GB RAM, Core2 Duo, 2.00 GHz
 Ubuntu 9.10: 2GB RAM, Core 2 Duo, 2.40 GHz

 So, the Linux machine as 20% more CPU to work with.

  1) Scroll performance is extremely good.  Even on Gmail, I can only
  get the mouse to lead the scroll bar by a dozen pixels.  On Slashdot,
  it doesn't even look like I can do that.
 
  On plain pages (one scrollbar on the right, no Flash) scrolling is
  literally shifting the pixels down.  On Linux we do this by sending a
  command to the X server, which is a single process that even has the
  graphics drivers built in so it talks directly to your graphics card
  and can in theory do a hardware-accelerated copy.  I would expect this
  to be pretty fast.

 Looking at this more carefully, scroll performance on Slashdot is
 great in both Windows and Linux.  On Gmail (no chat mole), there's a
 noticeable difference.  Here's a visualization of the numb on the
 scroll bar:

 ||
 ||
 ||
 ||
 ||
 ||
 --  -- Click here and pull down
 --
 --  -- Linux: mouse latency gets to here
 ||
 ||  -- Windows: mouse latency gets to here
 ||
 ||
 ||
 ||

 Admittedly, it's hard to see precisely, but it affects the feel.
 Scroll on Windows feels slightly heavier.

  2) Tab creation is very fast.  Maybe the zygote is helping here?  Can
  we pre-render the NTP on other platforms?
 
  The zygote is paused right at process start, before we've even started
  a renderer.  On the other hand Windows process creation is more
  expensive.
 
  There is a new tab graph that attempts to measure this.  The various
  lines on the graph are tracking how quickly we get to each stage in
  constructing the page.  We hit the first line 20ms faster on Linux
  than Windows likely due to the zygote and slow Windows process
  creation, but process startup seems to be a relatively small part of
  the total time.  Linux hits other lines later and Linux and Windows
  hit the finish line at around the same time.

 So, I retried this with a fresh profile on both.  The differences are
 not as dramatic as I remember.  I can't actually see a difference when
 I run them side-by-side.

  3) Startup time is faster than calculator.
 
  I'm not sure if you're kidding.  Do you mean Windows calculator?

 I meant Linux calculator.

  In the limit, I'd expect us to pay a lot more on Linux due to using
  more libraries, GTK initialization, round trips to the X server, etc.
  but I don't know much about Windows here.

 I tried turning on the GTK theme.  That killed startup performance.

 Side-by-side startup easily noticeably faster in Linux.  To be more
 precise, drawing the first pixel is noticeably faster.  Total startup
 time is harder to say.

 Interestingly startup drawing is different between Windows and Linux.
 We might want to film with a high-speed camera to see exactly what's
 going on, but here are my impressions:

 Linux draw order:
 1) Fill entire window with blue (This looks bad, can we use a
 different color? White?).
 2) Paint main UI widgets, including NTP.
 3) Paint NTP thumbnails.
 I bet that (2) is actually broken in to two pieces, I just can't see it.

 Window draw order:
 1) Paint NC region (the blue border around the edge).
 2) Paint main UI widgets (without omnibox).
 3) Blit NTP content area (the sweep from top to bottom is noticeable).
 4) Paint omnibox.
 5) Paint NTP thumbnails.

 Keep in mind that this all happens very fast, so I could be imagining
 things.

 Ideas for improving perceived windows startup time:

 1) Draw a fake omnibox with the rest of the main UI widgets.
 Currently we draw the omnibox really late and it looks slow and bad.
 You can see this if you have a dark desktop wallpaper and you focus on
 where the omnibox will be.  You'll see a dark rectangle inside the
 main toolbar which is the desktop showing through.  We should never
 show a dark rectangle there.

 2) Fill the main content area with white when drawing the main UI
 widgets.  You can see this if you focus on the bottom of where the
 bookmark bar is going to be (especially when the bookmark bar is set
 to show only on the NTP).  You'll see an edge there when the bookmark
 bar is draw by while the main 

[chromium-dev] Re: Which editor do you recommend on Mac OS X?

2009-11-03 Thread Kenneth Russell

In Carbon emacs, the command key works as Meta, and copying/pasting is
integrated with the system clipboard. There are probably other
advantages.

-Ken

On Tue, Nov 3, 2009 at 1:21 PM, Drew Wilson atwil...@chromium.org wrote:
 I've heard this suggested a few times (not just in this thread) - is there
 an advantage to running Carbon Emacs instead of
 plain-old-GNU-Emacs-in-a-terminal?
 -atw

 On Tue, Nov 3, 2009 at 1:14 PM, Scott Hess sh...@chromium.org wrote:

 +1.  I found Aquamacs weird/annoying.  Carbon Emacs seemed a lot
 better.  [I come from a Linux background.]

 -scott


 On Tue, Nov 3, 2009 at 11:16 AM, Kenneth Russell k...@chromium.org wrote:
 
  There's a Carbon-based, non-Aquamacs Emacs available for Mac OS X.
  Recommended.
 
  http://www.emacswiki.org/emacs/EmacsForMacOS
  http://www.emacswiki.org/emacs/CarbonEmacsPackage
 
  -Ken
 
  On Tue, Nov 3, 2009 at 10:08 AM, Drew Wilson atwil...@chromium.org
  wrote:
  I've been using Aquamacs, although I don't like the fact that it has
  *so
  many* modes built-in and turned-on by default, and I also don't like
  the
  fact that it doesn't lend itself well to customization (it has its own
  set
  of initialization files it keeps hidden off). It's decent, though (but
  again, I've devolved over the years to using almost vanilla emacs
  bindings
  to allow moving to new platforms easier).
  I've also been known to use the built-in GNU emacs from a terminal
  shell
  (especially when working remotely/SSH-ing). I see no reason why you
  can't
  have the same experience that you do with your Linux box, although
  you'd
  have to find a way to drag the google3 elisp over.
  -atw
 
  On Tue, Nov 3, 2009 at 9:56 AM, Paweł Hajdan Jr.
  phajdan...@chromium.org
  wrote:
 
  Recently I started working more and more on Mac OS X, and I'm trying
  to
  find an editor that would work the best for me.
  On Linux I used GNU Emacs with many customizations. Some of the most
  handy
  ones for working on Chromium were Google Style script and launching
  the
  compilation from the editor. I also used Vim keybindings (Viper) a
  lot.
  On Mac, I tried Aquamacs, but some of my customizations broke. Also,
  the
  Vim emulation seems to be only half-working (selecting text in Vim
  visual
  mode isn't working).
  I also tried Xcode, but it seems that the editor isn't powerful
  enough. I
  don't know how to quickly remove an entire line (2 keystrokes in Vim),
  or a
  few lines (3 keystrokes). However, the Open Quickly option
  (cmd-shift-d)
  is very nice. I also couldn't find an easy solution to automatically
  remove
  trailing whitespace in Xcode.
  Do you have any tips about effective editing on Mac? Which solution
  would
  you recommend?
 
 
 
  
 
 
   
 



--~--~-~--~~~---~--~~
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: Reverting a change, the fast way

2009-11-03 Thread Eric Seidel

Interesting.  WebKit has similar functionality as:
bugzilla-tool rollout 12345

We've found that git reverts are at least an order of magnitude faster
than SVN reverse merges.

I wonder what bugzilla-tool/drover can learn from one another.

-eric

On Tue, Nov 3, 2009 at 1:53 PM, Nicolas Sylvain nsylv...@chromium.org wrote:
 Hi
 One of the goal of the Green Tree Task Force was to make reverting a change
 easy and fast.
 This is really important to keep the tree green and open. The old saying
 is Revert now, think later... If a change broke the build and the fix
 would
 take more than 1 or 2 minutes to be committed, or if the committer is not
 answering pings, then the change needs to be reverted asap.
 Turns out it was already easy and fast with Anthony's drover tool.
 If you have depot_tools in your path, just type :
 drover --revert 
 where  is the revision you want to revert.
 Since the tool creates temporary files, I suggest you go to the temp
 directory first.
 It should take only a few seconds, even for a really big change. You don't
 even need
 to have a chrome checkout on your machine.
 This tool should work on all platforms. You need svn 1.5 or above in your
 path.
 If you run into any issues with the tool, please let me know.
 Thank you,
 Nicolas

 
 If the tool does not work, you can revert the long way by doing:
 cd src/
 svn update
 svn merge -c - .
 (the dot at the end of the previous line is important)

 


--~--~-~--~~~---~--~~
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: revert now, ask questions later? WAS: Reverting a change, the fast way

2009-11-03 Thread Aaron Boodman

IMO, I wouldn't mind draconian reverts in the interest of keeping the
tree open and allowing the sheriffs some semblance of productivity.

OTOH, git makes it really easy for me to un-revert and try again, so
maybe I'm biased there.

- a

On Tue, Nov 3, 2009 at 3:03 PM, Eric Seidel esei...@chromium.org wrote:

 Could we just automate rollouts and this 5-minute timer?  If we have
 the tools to do automated rollouts, would it be reasonable to add them
 as a phase in the buildbot?

 On Tue, Nov 3, 2009 at 2:52 PM, Nicolas Sylvain nsylv...@chromium.org wrote:
 +1

 On Tue, Nov 3, 2009 at 3:38 PM, Avi Drissman a...@chromium.org wrote:

 I'm OK with that.

 Just make it clear that the sheriff does have authority. One time when I
 was sheriff I wanted to revert a broken patch. The author insisted on
 patching it over and over. He finally got it working about about seven
 patches and nearly three hours or so, when I was insisting on backing it out
 after the first 30m.

 Yes, this is exactly what we want to avoid.
 The 2-minute rule usually includes:
 Oops, I forgot to commit a file
 Let me disable the test I just added, it clearly does not work
 Oops, before committing I renamed a variable and forgot to change it at one
 place
 It also use to mean:
 Oops, I forgot an include. But this one has been biting us to much in the
 past, so I leave it at the discretion of the sheriff.
 I think people need to use their good judgement too. The length of a minute
 should be inversely proportional to the number of people trying to commit
 during this time of the day.
 Nicolas

 Avi

 On Tue, Nov 3, 2009 at 5:34 PM, Peter Kasting pkast...@google.com wrote:

 On Tue, Nov 3, 2009 at 2:08 PM, Ojan Vafai o...@chromium.org wrote:

 To be clear, here's the proposed policy: Any change that would close the
 tree can be reverted if it can't be fixed in 2 minutes.

 How about:
 If a change closes the tree, the change author has 1 or 2 minutes to
 respond to a ping.  The change should be reverted if the author doesn't
 respond, if he says to revert, or if he does not say he has a fix within 
 the
 next 5 minutes.
 I can't fix _any_ problem in 2 minutes.  But I can fix most of them in 5.
  The goal is to allow the author a reasonable chance to fix trivial 
 problems
 before we revert.  And I think the tree should go ahead and close during
 that interval.
 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: Perf tests to run?

2009-11-03 Thread Anton Muhin

Thanks, James.

So I ran SunSpider, V8 and page_cyclers.  SunSpider and V8 are roughly the same.

page_cyclers trickier.  First of all, I failed to run some tests on my
box (for both clean and patched builds)---all *Http tests just hang.
I hope it's missetup on my part, but hopefully not crucial.  Of tests
ran for reference build second run (patched version) was slightly
faster, so numbers of patched version should be higher just due to
somewhat different state of my box.  Still for most of the tests
patched version performed slightly faster, the only problematic test
was the first one (MozFile): 35326 ms total for clean vs. 38936 ms
total for patched.  Given that's the only one (e.g. Intl1File ran
115913 ms on clean vs. 94831 ms on patched), that might have been a
spike.

If that sounds reasonable to you all, I'd ask to commit-queue+ a patch
and see how it'd perform on real buildbots.

tia and yours,
anton.

On Tue, Nov 3, 2009 at 11:31 PM, James Robinson jam...@google.com wrote:
 Essentially this. Some of the page cyclers have fairly interesting data
 sets.
 I think we are fairly lacking in good real-world performance tests to do
 comparisons like this, which is kind of unfortunate.  I'd love to be able to
 point a build with a speculative patch in it at the internet and then have
 it report back how well it did but there are a lot of variables to control.
 - James

 On Tue, Nov 3, 2009 at 10:38 AM, Anton Muhin ant...@chromium.org wrote:

 Thanks a lot, Peter.

 Yes, I am aware of those.  Just wanted to run something before committing
 :)

 I actually ran some DOM related tests.  Adam (on IM) suggested to run
 SunSpider, V8 and page load cyclers.  I am going to do it and if
 numbers are fine, then would try to commit my change.

 yours,
 anton.

 On Tue, Nov 3, 2009 at 9:25 PM, Peter Kasting pkast...@google.com wrote:
  On Tue, Nov 3, 2009 at 7:30 AM, Anton Muhin ant...@chromium.org wrote:
 
  So the question: how could I check that I won't (notably) regress
  Chromium performance with this change?
 
  We have perf bots; you can check in and look at the effects there, and
  there
  might even be a way to get perf results from the tryservers.
  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: Changes to using threads in the browser process

2009-11-03 Thread John Abd-El-Malek
On Tue, Nov 3, 2009 at 12:03 AM, Paweł Hajdan Jr.
phajdan...@chromium.orgwrote:

 On Tue, Nov 3, 2009 at 06:50, John Abd-El-Malek j...@chromium.org wrote:

 *The solution*
 1+2: Use ChromeThread::PostTask and friends (i.e. PostDelayedTask,
 DeleteSoon, ReleaseSoon) which are safe and efficient: no locks are grabbed
 if the target thread is known to outlive the current thread.  The four
 static methods have the same signature as the ones from MessageLoop, with
 the addition of the first parameter to indicate the target thread.

 ChromeThread::PostTask(ChromeThread::FILE, FROM_HERE, task);

 3: If your object must be destructed on a specific thread, use a trait
 from ChromeThread:

 class Foo : public base::RefCountedThreadSafeFoo,
 ChromeThread::DeleteOnIOThread


 Awesome!


 4: I've removed all the special casing and always made the objects in the
 browser code behave in one way.  If you're writing a unit test and need to
 use an object that goes to a file thread (where before it would proceed
 synchronously), you just need:

 ChromeThread file_thread(ChromeThread::FILE, MessageLoop::current());
 foo-StartAsyncTaskOnFileThread();
 MessageLoop::current()-RunAllPending();

 There are plenty of examples now in the tests.


 Are there any examples for asynchronous processing (with a real backend
 thread)?


Sure, look at BufferedResourceHandler or ResourceMessageFilter, which both
need to load plugins on the file thread.



 I think that chrome/browser/privacy_blacklist/blacklist_manager.cc uses
 some of the anti-patterns you described (it caches base::Thread* instead of
 MessageLoop*, but I understand it's equally bad). And it will benefit a lot
 from ChromeThread::DeleteOnIOThread. The good part is that BlacklistManager
 is not yet used in the browser. I will fix the issues before the final
 integration of BlacklistManager.


Great, I missed that one since I was just looking for caching of MessageLoop
pointers.  Thanks.

--~--~-~--~~~---~--~~
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: Which editor do you recommend on Mac OS X?

2009-11-03 Thread Jeremy Orlow
On Tue, Nov 3, 2009 at 10:12 AM, Paweł Hajdan Jr.
phajdan...@chromium.orgwrote:

 On Tue, Nov 3, 2009 at 19:08, Drew Wilson atwil...@chromium.org wrote:

 I've also been known to use the built-in GNU emacs from a terminal shell
 (especially when working remotely/SSH-ing). I see no reason why you can't
 have the same experience that you do with your Linux box, although you'd
 have to find a way to drag the google3 elisp over.


 I have it working. For reference, the file can be downloaded from
 http://google-styleguide.googlecode.com/svn/trunk/google-c-style.el

 Maybe I should try the non-aqua Emacs, hm...

 How about building? Is using xcodebuild slower than running the build from
 Xcode? My simple testing shows that there is no big difference.


On both my MacBook Pro and Mac Pro, I found that there was a
fairly sizable difference doing incremental builds since XCode keeps track
of dependencies between builds.  When doing a full build, there's not much
difference though.

--~--~-~--~~~---~--~~
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: Reverting a change, the fast way

2009-11-03 Thread Nico Weber

I tried that a few days ago, and drover died with me with something
along the lines of Can't talk to chrome-svn (which as far as I
understand is some internal svn repo?). A quick glance at the source
confirms that this is still the case.

On Tue, Nov 3, 2009 at 1:53 PM, Nicolas Sylvain nsylv...@chromium.org wrote:
 Hi
 One of the goal of the Green Tree Task Force was to make reverting a change
 easy and fast.
 This is really important to keep the tree green and open. The old saying
 is Revert now, think later... If a change broke the build and the fix
 would
 take more than 1 or 2 minutes to be committed, or if the committer is not
 answering pings, then the change needs to be reverted asap.
 Turns out it was already easy and fast with Anthony's drover tool.
 If you have depot_tools in your path, just type :
 drover --revert 
 where  is the revision you want to revert.
 Since the tool creates temporary files, I suggest you go to the temp
 directory first.
 It should take only a few seconds, even for a really big change. You don't
 even need
 to have a chrome checkout on your machine.
 This tool should work on all platforms. You need svn 1.5 or above in your
 path.
 If you run into any issues with the tool, please let me know.
 Thank you,
 Nicolas

 
 If the tool does not work, you can revert the long way by doing:
 cd src/
 svn update
 svn merge -c - .
 (the dot at the end of the previous line is important)

 


--~--~-~--~~~---~--~~
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: Inheritance in gyp configurations

2009-11-03 Thread 王重傑
On Mon, Nov 2, 2009 at 3:37 PM, Bradley Nelson bradnel...@google.comwrote:

 S,o as it happens, I just had someone on nacl make the first use of
 multiple inheritance this morning.
 He hasn't checked it in yet, but the use case is:

 'Common': {
   # bunch of global stuff
   'defines': [
 # bunch of 32-bit defines.
   ],
 },
 'Debug': {
   # bunch of general debug stuff assumes 32-bit
   'inherit_from': ['Common'],
 },
 'Release': {
   # bunch of general release stuff assumes 32-bit
   'inherit_from': ['Common'],
 },
 'Common_x64': {
   # Customizations to change 32-bit - 64-bit
   'abstract': 1,
   'defines!': [
 # bunch of 32-bit defines
   ],
   'defines': [
  # bunch of 64-bit defines
   ],
 },
 'Debug_x64': {
   'inherit_from': ['Debug', 'Common_x64'],
 },
 'Release_x64': {
   'inherit_from': ['Release', 'Common_x64'],
 },

 This use case seems reasonable enough.
 It might fit into something like (b), but at least as currently conceived,
 'Common_x64' has overrides of stuff in 'Common'.
 It might be possible to refactor Common and Common_x64 to avoid collisions,
 maybe pull out all the 32-bit stuff into Common_x86 and leave Common with
 truly common stuff. On the other hand, the current arrangement allowed a
 fairly small modification while 64-bit is being experimented with.
 Suggestions?


Sorry for the slow response to this...missed it in my inbox. :(

It's hard to see w/o a concrete example, but in general I would have wanted
to do it via conditionals inside 'Common.'

Why rely on shadowing when you can explicitly do it via conditionals here?

IMO, the more dimensions in which we have to alter how the final dictionary
is created, the harder it will be to maintain -- especially if there
construct is one which relies on order of lookup, and doesn't encourage
co-locating where the decision is made for which modifications are included
(with conditionals, you know the else portion is likely in the same file.
 With inheritance, it's all over the place.)

-Albert

--~--~-~--~~~---~--~~
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: Hard Refresh UI Option

2009-11-03 Thread Peter Kasting
On Tue, Nov 3, 2009 at 4:21 AM, Meok meok...@gmail.com wrote:

 Is it feasible to get an easy way to initiate a hard refresh
 (bypassing the cache)? There's a key-combo (CTRL + Refresh) in other
 browsers, not sure if it works in Chrome, but has anyone ever thought
 of building this functionality right into the button? Would be helpful
 if you could simply right-click the refresh button to bypass the
 cache.


Please send these sorts of questions/comments to chromium-discuss or the
help center.

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: Reverting a change, the fast way

2009-11-03 Thread Nicolas Sylvain
On Tue, Nov 3, 2009 at 3:01 PM, Nico Weber tha...@chromium.org wrote:

 I tried that a few days ago, and drover died with me with something
 along the lines of Can't talk to chrome-svn (which as far as I
 understand is some internal svn repo?). A quick glance at the source
 confirms that this is still the case.


Good point, it should have a way to specify which url it should use to
checkout from.

by default it uses the internal url. I'll try to find a way to fix that.

Nicolas




 On Tue, Nov 3, 2009 at 1:53 PM, Nicolas Sylvain nsylv...@chromium.org
 wrote:
  Hi
  One of the goal of the Green Tree Task Force was to make reverting a
 change
  easy and fast.
  This is really important to keep the tree green and open. The old saying
  is Revert now, think later... If a change broke the build and the fix
  would
  take more than 1 or 2 minutes to be committed, or if the committer is not
  answering pings, then the change needs to be reverted asap.
  Turns out it was already easy and fast with Anthony's drover tool.
  If you have depot_tools in your path, just type :
  drover --revert 
  where  is the revision you want to revert.
  Since the tool creates temporary files, I suggest you go to the temp
  directory first.
  It should take only a few seconds, even for a really big change. You
 don't
  even need
  to have a chrome checkout on your machine.
  This tool should work on all platforms. You need svn 1.5 or above in your
  path.
  If you run into any issues with the tool, please let me know.
  Thank you,
  Nicolas
 
  
  If the tool does not work, you can revert the long way by doing:
  cd src/
  svn update
  svn merge -c - .
  (the dot at the end of the previous line is important)
 
   
 


--~--~-~--~~~---~--~~
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: revert now, ask questions later? WAS: Reverting a change, the fast way

2009-11-03 Thread Nicolas Sylvain
On Tue, Nov 3, 2009 at 7:46 PM, Kenneth Russell k...@chromium.org wrote:

 On Tue, Nov 3, 2009 at 6:05 PM, John Abd-El-Malek j...@chromium.org
 wrote:
  But this means that the person didn't use the trybot.
  I think we need to be harsher on people who commit with changes that
 didn't
  complete or failed on the trybot.  They need to have a really good reason
 as
  to why they want to try their change on the buildbot and possibly delay
 many
  other engineers.

 For the record, I completely support immediate backouts of changes
 that break the tree, and agree that all changes should go through the
 trybots -- but sometimes the trybots don't work. I don't know anything
 about the architectural differences between the trybots and buildbots,
 but from recent experience I think the trybots are trying to do
 incremental builds, when that isn't guaranteed to always work.

even the bots on the main waterfall do incremental builds (except some of
them).
If the change requires a clobber, use gcl try CHANGENAME -c to run the
code
on the try bot doing a full build.


 If it's just a matter of throwing hardware at the problem of making
 the trybots nearly 100% reliable I think we should make that
 investment.


 -Ken

  On Tue, Nov 3, 2009 at 3:11 PM, Ben Goodger (Google) b...@chromium.org
  wrote:
 
  The most common case of  5 minute bustage fix is file was omitted
  from changelist.
 
  -Ben
 
  On Tue, Nov 3, 2009 at 2:34 PM, Peter Kasting pkast...@google.com
 wrote:
   On Tue, Nov 3, 2009 at 2:08 PM, Ojan Vafai o...@chromium.org wrote:
  
   To be clear, here's the proposed policy: Any change that would close
   the
   tree can be reverted if it can't be fixed in 2 minutes.
  
   How about:
   If a change closes the tree, the change author has 1 or 2 minutes to
   respond
   to a ping.  The change should be reverted if the author doesn't
 respond,
   if
   he says to revert, or if he does not say he has a fix within the next
 5
   minutes.
   I can't fix _any_ problem in 2 minutes.  But I can fix most of them in
   5.
The goal is to allow the author a reasonable chance to fix trivial
   problems
   before we revert.  And I think the tree should go ahead and close
 during
   that interval.
   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: revert now, ask questions later? WAS: Reverting a change, the fast way

2009-11-03 Thread Avi Drissman
I'm OK with that.

Just make it clear that the sheriff does have authority. One time when I was
sheriff I wanted to revert a broken patch. The author insisted on patching
it over and over. He finally got it working about about seven patches and
nearly three hours or so, when I was insisting on backing it out after the
first 30m.

Avi

On Tue, Nov 3, 2009 at 5:34 PM, Peter Kasting pkast...@google.com wrote:

 On Tue, Nov 3, 2009 at 2:08 PM, Ojan Vafai o...@chromium.org wrote:

 To be clear, here's the proposed policy: Any change that would close the
 tree can be reverted if it can't be fixed in 2 minutes.


 How about:

 If a change closes the tree, the change author has 1 or 2 minutes to
 respond to a ping.  The change should be reverted if the author doesn't
 respond, if he says to revert, or if he does not say he has a fix within the
 next 5 minutes.

 I can't fix _any_ problem in 2 minutes.  But I can fix most of them in 5.
  The goal is to allow the author a reasonable chance to fix trivial problems
 before we revert.  And I think the tree should go ahead and close during
 that interval.

 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: revert now, ask questions later? WAS: Reverting a change, the fast way

2009-11-03 Thread Scott Hess

+100.

This is very similar to getting paged about a production problem.
Sometimes you get sucked into wasting an hour on easy fixes which
don't fix anything.  That sets you up for stupid mistakes.

So, you broke the build.  Take it like a man/woman, revert your
change, and land it again when you've got it right.  It happens to
everyone.  The goal here isn't to save YOU ten minutes of time, the
goal is to save 5 minutes for each of the couple dozen co-workers
which will be impacted by the broken tree.  Only ask for grace to fix
the breakage if you're 100% certain you can fix it right the first
time.

-scott


On Tue, Nov 3, 2009 at 3:52 PM, Nicolas Sylvain nsylv...@chromium.org wrote:
 +1

 On Tue, Nov 3, 2009 at 3:38 PM, Avi Drissman a...@chromium.org wrote:

 I'm OK with that.

 Just make it clear that the sheriff does have authority. One time when I
 was sheriff I wanted to revert a broken patch. The author insisted on
 patching it over and over. He finally got it working about about seven
 patches and nearly three hours or so, when I was insisting on backing it out
 after the first 30m.

 Yes, this is exactly what we want to avoid.
 The 2-minute rule usually includes:
 Oops, I forgot to commit a file
 Let me disable the test I just added, it clearly does not work
 Oops, before committing I renamed a variable and forgot to change it at one
 place
 It also use to mean:
 Oops, I forgot an include. But this one has been biting us to much in the
 past, so I leave it at the discretion of the sheriff.
 I think people need to use their good judgement too. The length of a minute
 should be inversely proportional to the number of people trying to commit
 during this time of the day.
 Nicolas

 Avi

 On Tue, Nov 3, 2009 at 5:34 PM, Peter Kasting pkast...@google.com wrote:

 On Tue, Nov 3, 2009 at 2:08 PM, Ojan Vafai o...@chromium.org wrote:

 To be clear, here's the proposed policy: Any change that would close the
 tree can be reverted if it can't be fixed in 2 minutes.

 How about:
 If a change closes the tree, the change author has 1 or 2 minutes to
 respond to a ping.  The change should be reverted if the author doesn't
 respond, if he says to revert, or if he does not say he has a fix within the
 next 5 minutes.
 I can't fix _any_ problem in 2 minutes.  But I can fix most of them in 5.
  The goal is to allow the author a reasonable chance to fix trivial problems
 before we revert.  And I think the tree should go ahead and close during
 that interval.
 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: Compiling error after I did a 'gclient sync'

2009-11-03 Thread Evan Martin

It has been working fine for me.  Is it possible you have the wrong
version of WebKit?  What does tools/sync-webkit-git.py say?

On Tue, Nov 3, 2009 at 6:46 PM, n179911 n179...@gmail.com wrote:

 Thanks. Kenneth,

 I fixed the ENABLE_3D_CANVAS redefined error. But I still get the
 following compilation error:

 In file included from
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../bindings/v8/DerivedSourcesAllInOne.cpp:65:
        
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8Console.cpp:40:
 error: no matching function for call to
 'WebCore::ScriptCallStack::ScriptCallStack(const v8::Arguments, int)'
 ../bindings/v8/ScriptCallStack.h:58: note: candidates are:
 WebCore::ScriptCallStack::ScriptCallStack(const v8::Arguments,
 unsigned int, WebCore::String, int)
 ../bindings/v8/ScriptCallStack.h:46: note:
 WebCore::ScriptCallStack::ScriptCallStack(const
 WebCore::ScriptCallStack)



 On Tue, Nov 3, 2009 at 6:40 PM, n179911 n179...@gmail.com wrote:
 Thanks Kenneth.

 I tried this. But I get

 I/Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/Debug/webcore_bindings.build/DerivedSources/i386
 -I/Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/Debug/webcore_bindings.build/DerivedSources
 -c 
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/DerivedSources/Debug/webkit/HTMLElementFactory.cpp
 -o 
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/Debug/webcore_bindings.build/Objects-normal/i386/HTMLElementFactory.o
 command-line: error: ENABLE_3D_CANVAS redefined
 command-line: error: this is the location of the previous definition
        command-line: error: this is the location of the previous definition

 and also:

 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8Console.cpp:49:
 error: no matching function for call to
 'WebCore::ScriptCallStack::ScriptCallStack(const v8::Arguments, int)'
 ../bindings/v8/ScriptCallStack.h:58: note: candidates are:
 WebCore::ScriptCallStack::ScriptCallStack(const v8::Arguments,
 unsigned int, WebCore::String, int)
 ../bindings/v8/ScriptCallStack.h:46: note:
 WebCore::ScriptCallStack::ScriptCallStack(const
 WebCore::ScriptCallStack)



 On Mon, Nov 2, 2009 at 10:38 PM, Kenneth Russell k...@chromium.org wrote:
 On Mon, Nov 2, 2009 at 10:27 PM, n179911 n179...@gmail.com wrote:

 Hi,

 I have tried syncing up chromium HEAD by doing this (since i use git
 for chromium and webkit).
 $ git pull (update chromium)
 $ gclient sync
 $ tools/sync-webkit-git.py (update webkit)

 But i got the following errors when I compile it. It appears the
 method 'CanvasRenderingContext3D::attachShader' is called with the
 wrong number of parameters.
 Does anyone know how to fix it?

 Thank you.

 chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8CanvasRenderingContext3D.cpp:90:
 error: no matching function for call to
 'WebCore::CanvasRenderingContext3D::attachShader(WebCore::CanvasProgram*,
 WebCore::CanvasShader*)'
        ../html/canvas/CanvasRenderingContext3D.h:64: note: candidates are:
 void 
 WebCore::CanvasRenderingContext3D::attachShader(WebCore::CanvasProgram*,
 WebCore::CanvasShader*, WebCore::ExceptionCode)
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8CanvasRenderingContext3D.cpp:101:
 error: no matching function for call to
 'WebCore::CanvasRenderingContext3D::bindAttribLocation(WebCore::CanvasProgram*,
 unsigned int, WebCore::String)'
 ../html/canvas/CanvasRenderingContext3D.h:65: note: candidates are:
 void 
 WebCore::CanvasRenderingContext3D::bindAttribLocation(WebCore::CanvasProgram*,
 long unsigned int, const WebCore::String, WebCore::ExceptionCode)
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8CanvasRenderingContext3D.cpp:111:
 error: no matching function for call to
 'WebCore::CanvasRenderingContext3D::bindBuffer(unsigned int,
 WebCore::CanvasBuffer*)'
 ../html/canvas/CanvasRenderingContext3D.h:66: note: candidates are:
 void WebCore::CanvasRenderingContext3D::bindBuffer(long unsigned int,
 WebCore::CanvasBuffer*, WebCore::ExceptionCode)

 It looks like upstream WebKit changes have broken our WebGL
 implementation again. The reason you're running into this is probably
 that you synced a more recent version of WebKit than is described in
 the DEPS file. Your best bet to get things compiling again quickly is
 to set ENABLE_3D_CANVAS=0 in src/build/features_override.gypi, run
 gclient runhooks --force, and rebuild.

 -Ken



 



[chromium-dev] Re: revising the output from run_webkit_tests

2009-11-03 Thread Dirk Pranke

Anyone who wants to follow along on this, I've filed
http://code.google.com/p/chromium/issues/detail?id=26659 to track it.

-- Dirk

On Sat, Oct 24, 2009 at 5:01 PM, Dirk Pranke dpra...@chromium.org wrote:
 Sure. I was floating the idea first before doing any work, but I'll
 just grab an existing text run and hack it up for comparison ...

 -- Dirk

 On Fri, Oct 23, 2009 at 3:51 PM, Ojan Vafai o...@chromium.org wrote:
 Can you give example outputs for the common cases? It would be easier to
 discuss those.

 On Fri, Oct 23, 2009 at 3:43 PM, Dirk Pranke dpra...@chromium.org wrote:

 If you've never run run_webkit_tests to run the layout test
 regression, or don't care about it, you can stop reading ...

 If you have run it, and you're like me, you've probably wondered a lot
 about the output ... questions like:

 1) what do the numbers printed at the beginning of the test mean?
 2) what do all of these test failed messages mean, and are they bad?
 3) what do the numbers printed at the end of the test mean?
 4) why are the numbers at the end different from the numbers at the
 beginning?
 5) did my regression run cleanly, or not?

 You may have also wondered a couple of other things:
 6) What do we expect this test to do?
 7) Where is the baseline for this test?
 8) What is the baseline search path for this test?

 Having just spent a week trying (again), to reconcile the numbers I'm
 getting on the LTTF dashboard with what we print out in the test, I'm
 thinking about drastically revising the output from the script,
 roughly as follows:

 * print the information needed to reproduce the test and look at the
 results
 * print the expected results in summary form (roughly the expanded
 version of the first table in the dashboard - # of tests by
 (wontfix/fix/defer x pass/fail/are flaky).
 * don't print out failure text to the screen during the run
 * print out any *unexpected* results at the end (like we do today)

 The goal would be that if all of your tests pass, you get less than a
 small screenful of output from running the tests.

 In addition, we would record a full log of (test,expectation,result)
 to the results directory (and this would also be available onscreen
 with --verbose)

 Lastly, I'll add a flag to re-run the tests that just failed, so it's
 easy to test if the failures were flaky.

 Then I'll rip out as much of the set logic in test_expectations.py as
 we can possibly get away with, so that no one has to spend the week I
 just did again. I'll probably replace it with much of the logic I use
 to generate the dashboard, which is much more flexible in terms of
 extracting different types of queries and numbers.

 I think the net result will be the same level of information that we
 get today, just in much more meaningful form.

 Thoughts? Comments? Is anyone particularly wedded to the existing
 output, or worried about losing a particular piece of info?

 -- Dirk




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



[chromium-dev] Lifehacker browser tests say Chrome uses the most memory

2009-11-03 Thread John Munro

Forgive me if I shouldn't be posting this kind of thing to this group,
but I've seen similar things posted here before.

Lifehacker posted a series of browser benchmarks here
http://lifehacker.com/539/browser-speed-tests-the-windows-7-results
and in their memory use test Chrome came out using the most.

It's entirely possible their benchmarking methodology was flawed, but
in any case I thought you should be aware.

John
--~--~-~--~~~---~--~~
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: Changes to using threads in the browser process

2009-11-03 Thread John Abd-El-Malek
I've updated the wiki.  I was wary of putting this stuff up because of bit
rot, but since there's already documentation we won't be worse off.

As for the renderer process: this object would have to be recreated.  I'd
prefer to keep ChromeThread just for one process to keep things clearer.  I
think this pattern doesn't happen often in child processes (yours is the
first example I hear of), so it seems a one-off solution is ok for now.

On Tue, Nov 3, 2009 at 11:49 AM, Andrew Scherkus scher...@chromium.orgwrote:

 Very cool!

 Could this idea be done in the render process?  We try to keep the media
 processing code off the render thread but we've been bitten using cached
 MessageLoops which have been destructed (usually on tab close when the
 render thread goes away).

 On Mon, Nov 2, 2009 at 9:50 PM, John Abd-El-Malek j...@chromium.orgwrote:

 Over the last week, I've been making some changes to how threads are used
 in the browser process, with the goal of simplifying cross-thread access and
 improving stability.

 *The problem*
 We were using a number of patterns that were problematic:

 1) using ChromeThread::GetMessageLoop
   -this isn't safe, since it could return a valid pointer, but since the
 caller isn't holding on to a lock anymore, the target MessageLoop could be
 destructed while it's being used

 2) caching of MessageLoop pointers in order to use them later for PostTask
 and friends
   -this was more efficient previously (more on that later) since using
 ChromeThread::GetMessageLoop involved a lock
   -but it spread logic about the order of thread destruction all over the
 code.  Code that moved from the IO thread to the file thread and back, in
 order to avoid doing disk access on the IO thread, ended up having to do an
 extra hop through the UI thread on the way back to the IO thread since the
 file thread outlives the Io thread.  Of course, most code learnt this the
 hard way, after doing the straight forward IO-file-IO thread hop and
 updating the code after seeing reliability or user crashes
   -it made the browser shutdown fragile and hence difficult to update

 3) file thread hops using RefCountedThreadSafe objects which have
 non-trivial destructors
   -to reduce jank, frequently an object on the UI or IO thread would
 execute some code on the file thread, then post the result back to the
 original thread.  We make this easy using RefCountedThreadSafe and
 NewRunnableMethod so this pattern happened often, but it's not always
 safe: NewRunnableMethod holds an extra reference on the object to ensure
 that it doesn't invoke a method on a deleted object.  But it's quite
 possible that before the file thread's stack unwinds and it releases the
 extra reference, that the response task on the original thread executed and
 released its own additional reference.  The file thread is then left with
 the remaining reference and the object gets destructed there.  While for
 most objects this is ok, many have non-trivial destructors, with the worst
 being ones that register with the per-thread NotificationService.  Dangling
 pointers would be left behind and tracking these crashes from ChromeBot or
 the crash dumps has wasted several days at least for me.

 4) having browser code take different code paths if a thread didn't exist
   -this could be either deceptively harmless  (i.e. execute synchronously
 when it was normally asynchronous), when in fact it makes shutdown slower
 because disk access is moved to the UI thread
   -it could lead to data loss, if tasks are silently not posted because
 the code assumes this only happens in unit tests, when it could occur on
 browser shutdown as well


 *The solution*
 1+2: Use ChromeThread::PostTask and friends (i.e. PostDelayedTask,
 DeleteSoon, ReleaseSoon) which are safe and efficient: no locks are grabbed
 if the target thread is known to outlive the current thread.  The four
 static methods have the same signature as the ones from MessageLoop, with
 the addition of the first parameter to indicate the target thread.

 ChromeThread::PostTask(ChromeThread::FILE, FROM_HERE, task);

 3: If your object must be destructed on a specific thread, use a trait
 from ChromeThread:

 class Foo : public base::RefCountedThreadSafeFoo,
 ChromeThread::DeleteOnIOThread

 4: I've removed all the special casing and always made the objects in the
 browser code behave in one way.  If you're writing a unit test and need to
 use an object that goes to a file thread (where before it would proceed
 synchronously), you just need:

 ChromeThread file_thread(ChromeThread::FILE, MessageLoop::current());
 foo-StartAsyncTaskOnFileThread();
 MessageLoop::current()-RunAllPending();

 There are plenty of examples now in the tests.


 *Gotchas*
 -PostTask will silently delete a task if the thread doesn't exist.  This
 is done to avoid having all the code that uses it have special cases if the
 target thread exists or not, and to make Valgrind happy.  As usual, the task
 for 

[chromium-dev] Re: Compiling error after I did a 'gclient sync'

2009-11-03 Thread n179911

Thanks for your help.

It seems everything is in sync, but I still get the same compiling errors.

~/chromium3/src(trunk) $ git pull
Already up-to-date.
~/chromium3/src(trunk) $ tools/sync-webkit-git.py
Desired revision: r50487.
Already on correct revision.
~/chromium3/src(trunk) $ gclient sync
 found .git directory; skipping src

 running
'/System/Library/Frameworks/Python.framework/Versions/2.5/Resources/Python.app/Contents/MacOS/Python
src/build/gyp_chromium' in '/Users/samuel/chromium3'
Updating projects from gyp files...

 running
'/System/Library/Frameworks/Python.framework/Versions/2.5/Resources/Python.app/Contents/MacOS/Python
src/build/win/clobber_generated_headers.py' in
'/Users/samuel/chromium3'

 running
'/System/Library/Frameworks/Python.framework/Versions/2.5/Resources/Python.app/Contents/MacOS/Python
src/build/mac/clobber_generated_headers.py' in
'/Users/samuel/chromium3'
~/chromium3/src(trunk)

And when i got to a different directory trying to use git to get
Webkit code, I get this error possible repository corruption on the
remote side, not sure if these 2 are related.

 git clone git://git.webkit.org/WebKit.git .
Initialized empty Git repository in /Users/samuel/Webkit/.git/
remote: error: failed to unpack compressed delta at offset 486539223
from ./objects/pack/pack-c7fcbbd90f8a0e469e7e218ffcef0bb43aa4114d.pack
remote: error: failed to read object
23c5a57a8a0c94e1b895d432e8799dbf5533dc18 at offset 486539219 from
./objects/pack/pack-c7fcbbd90f8a0e469e7e218ffcef0bb43aa4114d.pack
remote: fatal: object 23c5a57a8a0c94e1b895d432e8799dbf5533dc18 is corrupted
remote: aborting due to possible repository corruption on the remote side.
fatal: early EOF
fatal: index-pack failed


On Tue, Nov 3, 2009 at 8:20 PM, Evan Martin e...@chromium.org wrote:
 It has been working fine for me.  Is it possible you have the wrong
 version of WebKit?  What does tools/sync-webkit-git.py say?

 On Tue, Nov 3, 2009 at 6:46 PM, n179911 n179...@gmail.com wrote:

 Thanks. Kenneth,

 I fixed the ENABLE_3D_CANVAS redefined error. But I still get the
 following compilation error:

 In file included from
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../bindings/v8/DerivedSourcesAllInOne.cpp:65:
        
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8Console.cpp:40:
 error: no matching function for call to
 'WebCore::ScriptCallStack::ScriptCallStack(const v8::Arguments, int)'
 ../bindings/v8/ScriptCallStack.h:58: note: candidates are:
 WebCore::ScriptCallStack::ScriptCallStack(const v8::Arguments,
 unsigned int, WebCore::String, int)
 ../bindings/v8/ScriptCallStack.h:46: note:
 WebCore::ScriptCallStack::ScriptCallStack(const
 WebCore::ScriptCallStack)



 On Tue, Nov 3, 2009 at 6:40 PM, n179911 n179...@gmail.com wrote:
 Thanks Kenneth.

 I tried this. But I get

 I/Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/Debug/webcore_bindings.build/DerivedSources/i386
 -I/Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/Debug/webcore_bindings.build/DerivedSources
 -c 
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/DerivedSources/Debug/webkit/HTMLElementFactory.cpp
 -o 
 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/Debug/webcore_bindings.build/Objects-normal/i386/HTMLElementFactory.o
 command-line: error: ENABLE_3D_CANVAS redefined
 command-line: error: this is the location of the previous definition
        command-line: error: this is the location of the previous 
 definition

 and also:

 /Users/samuel/chromium3/src/third_party/WebKit/WebCore/WebCore.gyp/../../../../xcodebuild/WebCore.build/DerivedSources/Debug/bindings/V8Console.cpp:49:
 error: no matching function for call to
 'WebCore::ScriptCallStack::ScriptCallStack(const v8::Arguments, int)'
 ../bindings/v8/ScriptCallStack.h:58: note: candidates are:
 WebCore::ScriptCallStack::ScriptCallStack(const v8::Arguments,
 unsigned int, WebCore::String, int)
 ../bindings/v8/ScriptCallStack.h:46: note:
 WebCore::ScriptCallStack::ScriptCallStack(const
 WebCore::ScriptCallStack)



 On Mon, Nov 2, 2009 at 10:38 PM, Kenneth Russell k...@chromium.org wrote:
 On Mon, Nov 2, 2009 at 10:27 PM, n179911 n179...@gmail.com wrote:

 Hi,

 I have tried syncing up chromium HEAD by doing this (since i use git
 for chromium and webkit).
 $ git pull (update chromium)
 $ gclient sync
 $ tools/sync-webkit-git.py (update webkit)

 But i got the following errors when I compile it. It appears the
 method 'CanvasRenderingContext3D::attachShader' is called with the
 wrong number of parameters.
 Does anyone know how to fix it?

 Thank you.

 

[chromium-dev] Re: Compiling error after I did a 'gclient sync'

2009-11-03 Thread Evan Martin

On Tue, Nov 3, 2009 at 8:36 PM, n179911 n179...@gmail.com wrote:
 And when i got to a different directory trying to use git to get
 Webkit code, I get this error possible repository corruption on the
 remote side, not sure if these 2 are related.

  git clone git://git.webkit.org/WebKit.git .
 Initialized empty Git repository in /Users/samuel/Webkit/.git/
 remote: error: failed to unpack compressed delta at offset 486539223
 from ./objects/pack/pack-c7fcbbd90f8a0e469e7e218ffcef0bb43aa4114d.pack
 remote: error: failed to read object
 23c5a57a8a0c94e1b895d432e8799dbf5533dc18 at offset 486539219 from
 ./objects/pack/pack-c7fcbbd90f8a0e469e7e218ffcef0bb43aa4114d.pack
 remote: fatal: object 23c5a57a8a0c94e1b895d432e8799dbf5533dc18 is corrupted
 remote: aborting due to possible repository corruption on the remote side.
 fatal: early EOF
 fatal: index-pack failed

I wonder if you've ran out of disk space.

If not, it is probably worth bringing that up on webkit-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] Re: Compiling error after I did a 'gclient sync'

2009-11-03 Thread n179911

On Tue, Nov 3, 2009 at 8:39 PM, Evan Martin e...@chromium.org wrote:
 On Tue, Nov 3, 2009 at 8:36 PM, n179911 n179...@gmail.com wrote:
 And when i got to a different directory trying to use git to get
 Webkit code, I get this error possible repository corruption on the
 remote side, not sure if these 2 are related.

  git clone git://git.webkit.org/WebKit.git .
 Initialized empty Git repository in /Users/samuel/Webkit/.git/
 remote: error: failed to unpack compressed delta at offset 486539223
 from ./objects/pack/pack-c7fcbbd90f8a0e469e7e218ffcef0bb43aa4114d.pack
 remote: error: failed to read object
 23c5a57a8a0c94e1b895d432e8799dbf5533dc18 at offset 486539219 from
 ./objects/pack/pack-c7fcbbd90f8a0e469e7e218ffcef0bb43aa4114d.pack
 remote: fatal: object 23c5a57a8a0c94e1b895d432e8799dbf5533dc18 is corrupted
 remote: aborting due to possible repository corruption on the remote side.
 fatal: early EOF
 fatal: index-pack failed

 I wonder if you've ran out of disk space.

 If not, it is probably worth bringing that up on webkit-dev.


Thanks. But I have 27GB left.

--~--~-~--~~~---~--~~
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: How much RAM needed to get past linking? (Linux)

2009-11-03 Thread Yuta Kitamura
Hi,

I've experienced the same problem before. As far as I tested, building
Release mode binary (hammer --mode=Release) would require much less memory
than Debug binary. If it's sufficient for you, you may want to try this.

Thanks,
Yuta

On Tue, Nov 3, 2009 at 6:01 PM, 黒鉄章 ak...@yayakoshi.net wrote:

 Hi Adam/Evan/Pawell, thanks for the useful feedback.

 This gold sounds good, although if I want to install it on Fedora I note
 that there isn't package (yet) and the src/build/install-build-deps.sh
 script is apparently only for Ubuntu 8/9, so I will have to go the 'hard
 way' mentioned on the LinuxFasterBuilding wiki. (Accordingly I don't think
 it should be specified as a chromium build requirement until most
 distributions are supported.)

 By the sounds of it 2Gb of physical memory really is the minimum, and I
 better get upgrade my hardware. Technically my motherboard should support
 that (as a max) but I failed to boot the other day when trying to add
 different-sized DIMM. I will track down two identical 1Gb DIMMs and put them
 in.

 Reporting back later,

 Akira


 On Tue, Nov 3, 2009 at 3:02 AM, Paweł Hajdan Jr. 
 phajdan...@chromium.orgwrote:

 If you have less than 1 GB of RAM, I wouldn't even try to link the biggest
 binaries. 2 GB of RAM should be sufficient, although with 4 and more it's
 better. And you will notice the change after switching to gold.

 On Mon, Nov 2, 2009 at 18:58, Adam Langley a...@chromium.org wrote:


 On Fri, Oct 30, 2009 at 9:10 AM, Akira ak...@yayakoshi.net wrote:
 I was building on Fedora 10 and was able to compile but the
  linking stage (see below) consumes more and more memory- the 500Mb of
  remaining memory, then another 1Gb of swap- before being killed.

 Are you using gold?


 http://code.google.com/p/chromium/wiki/LinuxFasterBuilds#Linking_using_gold

 If not, that's the single biggest win for linking size and speed. I
 know Evan builds on his laptop using gold, but I don't know the exact
 specs.


 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: revert now, ask questions later? WAS: Reverting a change, the fast way

2009-11-03 Thread Drew Wilson
Do the trybots build the release version? Because I had a build break last
week that passed the 3 basic trybots, but failed to compile on the release
buildbots because of a missing include which was apparently pulled in
through other means in the debug version.

-atw

On Tue, Nov 3, 2009 at 7:30 PM, Nicolas Sylvain nsylv...@chromium.orgwrote:



 On Tue, Nov 3, 2009 at 7:46 PM, Kenneth Russell k...@chromium.org wrote:

 On Tue, Nov 3, 2009 at 6:05 PM, John Abd-El-Malek j...@chromium.org
 wrote:
  But this means that the person didn't use the trybot.
  I think we need to be harsher on people who commit with changes that
 didn't
  complete or failed on the trybot.  They need to have a really good
 reason as
  to why they want to try their change on the buildbot and possibly delay
 many
  other engineers.

 For the record, I completely support immediate backouts of changes
 that break the tree, and agree that all changes should go through the
 trybots -- but sometimes the trybots don't work. I don't know anything
 about the architectural differences between the trybots and buildbots,
 but from recent experience I think the trybots are trying to do
 incremental builds, when that isn't guaranteed to always work.

 even the bots on the main waterfall do incremental builds (except some of
 them).
 If the change requires a clobber, use gcl try CHANGENAME -c to run the
 code
 on the try bot doing a full build.


 If it's just a matter of throwing hardware at the problem of making
 the trybots nearly 100% reliable I think we should make that
 investment.


 -Ken

  On Tue, Nov 3, 2009 at 3:11 PM, Ben Goodger (Google) b...@chromium.org
  wrote:
 
  The most common case of  5 minute bustage fix is file was omitted
  from changelist.
 
  -Ben
 
  On Tue, Nov 3, 2009 at 2:34 PM, Peter Kasting pkast...@google.com
 wrote:
   On Tue, Nov 3, 2009 at 2:08 PM, Ojan Vafai o...@chromium.org
 wrote:
  
   To be clear, here's the proposed policy: Any change that would close
   the
   tree can be reverted if it can't be fixed in 2 minutes.
  
   How about:
   If a change closes the tree, the change author has 1 or 2 minutes to
   respond
   to a ping.  The change should be reverted if the author doesn't
 respond,
   if
   he says to revert, or if he does not say he has a fix within the next
 5
   minutes.
   I can't fix _any_ problem in 2 minutes.  But I can fix most of them
 in
   5.
The goal is to allow the author a reasonable chance to fix trivial
   problems
   before we revert.  And I think the tree should go ahead and close
 during
   that interval.
   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: Reverting a change, the fast way

2009-11-03 Thread Darin Fisher
Yeah, does anyone know why SVN does that?  It seems like it could easily
inspect the revision to see what files changed, and then only merge those
files :-/

depot_tools/revert also works this way.  Should we remove
depot_tools/revert, or re-implement it on top of drover?

-Darin


On Tue, Nov 3, 2009 at 4:34 PM, Anthony LaForge lafo...@google.com wrote:

 Drover is actually an order of magnitude faster than a standard svn
 merge/reverse, merge since it only affects the files that are involved with
 the CL (as opposed to trying to descending the entire trunk).  A normal
 merge would take in the space of 8 minutes on my box (which required an
 existing working copy).  In the case of drover, the same merge/revert can be
 performed in approximately 30 seconds to 1 minute (w/ out a pre existing
 working copy).

 Kind Regards,

 Anthony Laforge
 Technical Program Manager
 Mountain View, CA



 On Tue, Nov 3, 2009 at 2:01 PM, Eric Seidel esei...@chromium.org wrote:


 Interesting.  WebKit has similar functionality as:
 bugzilla-tool rollout 12345

 We've found that git reverts are at least an order of magnitude faster
 than SVN reverse merges.

 I wonder what bugzilla-tool/drover can learn from one another.

 -eric

 On Tue, Nov 3, 2009 at 1:53 PM, Nicolas Sylvain nsylv...@chromium.org
 wrote:
  Hi
  One of the goal of the Green Tree Task Force was to make reverting a
 change
  easy and fast.
  This is really important to keep the tree green and open. The old saying
  is Revert now, think later... If a change broke the build and the fix
  would
  take more than 1 or 2 minutes to be committed, or if the committer is
 not
  answering pings, then the change needs to be reverted asap.
  Turns out it was already easy and fast with Anthony's drover tool.
  If you have depot_tools in your path, just type :
  drover --revert 
  where  is the revision you want to revert.
  Since the tool creates temporary files, I suggest you go to the temp
  directory first.
  It should take only a few seconds, even for a really big change. You
 don't
  even need
  to have a chrome checkout on your machine.
  This tool should work on all platforms. You need svn 1.5 or above in
 your
  path.
  If you run into any issues with the tool, please let me know.
  Thank you,
  Nicolas
 
  
  If the tool does not work, you can revert the long way by doing:
  cd src/
  svn update
  svn merge -c - .
  (the dot at the end of the previous line is important)
 
  
 




 


--~--~-~--~~~---~--~~
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: Layout tests can now be run on Win 7

2009-11-03 Thread Darin Fisher
Great to see this!  Thanks,
-Darin

On Tue, Nov 3, 2009 at 6:31 PM, Dirk Pranke dpra...@chromium.org wrote:


 Hi all,

 I have just checked in a new set of baselines that should allow you to
 run the layout tests on Win 7 as well as Vista and XP.

 For those of you playing along at home, this means that if you have a
 baseline that is windows 7 specific, or is the same across 7, Vista,
 and XP, check it into
 src/webkit/data/platform/chromium-win. If you have a baseline that is
 specific to Vista or is the same on Vista and XP, check it into
 src/webkit/data/platform/chromium-win-vista, and if you have an
 XP-specific baseline, check it into
 src/webkit/data/platform/chromium-win-xp.

 99.9% of all of your baselines will be generic, so you can probably
 just check it into chromium-win and let me fix diffs when they crop up
 down the road.

 Also, if you have a test that only fails on Win 7, you can specify
 WIN-7 in test_expectations.txt. But, I wouldn't expect any of those.

 Cheers, and any questions or problems on this should go to me,

 -- Dirk

 


--~--~-~--~~~---~--~~
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: Layout tests can now be run on Win 7

2009-11-03 Thread Dimitri Glazkov

Great stuff! Thanks for working on this. No longer do I have to add
--nocheck-sys-deps to all of my commands.
fetch me a cofee no fetch me a coffee --nocheck-sys-deps ok.

:DG

On Tue, Nov 3, 2009 at 6:31 PM, Dirk Pranke dpra...@chromium.org wrote:

 Hi all,

 I have just checked in a new set of baselines that should allow you to
 run the layout tests on Win 7 as well as Vista and XP.

 For those of you playing along at home, this means that if you have a
 baseline that is windows 7 specific, or is the same across 7, Vista,
 and XP, check it into
 src/webkit/data/platform/chromium-win. If you have a baseline that is
 specific to Vista or is the same on Vista and XP, check it into
 src/webkit/data/platform/chromium-win-vista, and if you have an
 XP-specific baseline, check it into
 src/webkit/data/platform/chromium-win-xp.

 99.9% of all of your baselines will be generic, so you can probably
 just check it into chromium-win and let me fix diffs when they crop up
 down the road.

 Also, if you have a test that only fails on Win 7, you can specify
 WIN-7 in test_expectations.txt. But, I wouldn't expect any of those.

 Cheers, and any questions or problems on this should go to me,

 -- Dirk

 


--~--~-~--~~~---~--~~
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: Changes to using threads in the browser process

2009-11-03 Thread Andrew Scherkus
Very cool!

Could this idea be done in the render process?  We try to keep the media
processing code off the render thread but we've been bitten using cached
MessageLoops which have been destructed (usually on tab close when the
render thread goes away).

On Mon, Nov 2, 2009 at 9:50 PM, John Abd-El-Malek j...@chromium.org wrote:

 Over the last week, I've been making some changes to how threads are used
 in the browser process, with the goal of simplifying cross-thread access and
 improving stability.

 *The problem*
 We were using a number of patterns that were problematic:

 1) using ChromeThread::GetMessageLoop
   -this isn't safe, since it could return a valid pointer, but since the
 caller isn't holding on to a lock anymore, the target MessageLoop could be
 destructed while it's being used

 2) caching of MessageLoop pointers in order to use them later for PostTask
 and friends
   -this was more efficient previously (more on that later) since using
 ChromeThread::GetMessageLoop involved a lock
   -but it spread logic about the order of thread destruction all over the
 code.  Code that moved from the IO thread to the file thread and back, in
 order to avoid doing disk access on the IO thread, ended up having to do an
 extra hop through the UI thread on the way back to the IO thread since the
 file thread outlives the Io thread.  Of course, most code learnt this the
 hard way, after doing the straight forward IO-file-IO thread hop and
 updating the code after seeing reliability or user crashes
   -it made the browser shutdown fragile and hence difficult to update

 3) file thread hops using RefCountedThreadSafe objects which have
 non-trivial destructors
   -to reduce jank, frequently an object on the UI or IO thread would
 execute some code on the file thread, then post the result back to the
 original thread.  We make this easy using RefCountedThreadSafe and
 NewRunnableMethod so this pattern happened often, but it's not always
 safe: NewRunnableMethod holds an extra reference on the object to ensure
 that it doesn't invoke a method on a deleted object.  But it's quite
 possible that before the file thread's stack unwinds and it releases the
 extra reference, that the response task on the original thread executed and
 released its own additional reference.  The file thread is then left with
 the remaining reference and the object gets destructed there.  While for
 most objects this is ok, many have non-trivial destructors, with the worst
 being ones that register with the per-thread NotificationService.  Dangling
 pointers would be left behind and tracking these crashes from ChromeBot or
 the crash dumps has wasted several days at least for me.

 4) having browser code take different code paths if a thread didn't exist
   -this could be either deceptively harmless  (i.e. execute synchronously
 when it was normally asynchronous), when in fact it makes shutdown slower
 because disk access is moved to the UI thread
   -it could lead to data loss, if tasks are silently not posted because the
 code assumes this only happens in unit tests, when it could occur on browser
 shutdown as well


 *The solution*
 1+2: Use ChromeThread::PostTask and friends (i.e. PostDelayedTask,
 DeleteSoon, ReleaseSoon) which are safe and efficient: no locks are grabbed
 if the target thread is known to outlive the current thread.  The four
 static methods have the same signature as the ones from MessageLoop, with
 the addition of the first parameter to indicate the target thread.

 ChromeThread::PostTask(ChromeThread::FILE, FROM_HERE, task);

 3: If your object must be destructed on a specific thread, use a trait from
 ChromeThread:

 class Foo : public base::RefCountedThreadSafeFoo,
 ChromeThread::DeleteOnIOThread

 4: I've removed all the special casing and always made the objects in the
 browser code behave in one way.  If you're writing a unit test and need to
 use an object that goes to a file thread (where before it would proceed
 synchronously), you just need:

 ChromeThread file_thread(ChromeThread::FILE, MessageLoop::current());
 foo-StartAsyncTaskOnFileThread();
 MessageLoop::current()-RunAllPending();

 There are plenty of examples now in the tests.


 *Gotchas*
 -PostTask will silently delete a task if the thread doesn't exist.  This is
 done to avoid having all the code that uses it have special cases if the
 target thread exists or not, and to make Valgrind happy.  As usual, the task
 for DeleteSoon/ReleaseSoon doesn't do anything in its destructor, so this
 won't cause unexpected behavior with them.  But be wary of posted Task
 objects which have non-trivial destructors or smart pointers as members.
  I'm still on the fence about this, since while the latter is theoretical
 now, it could lead to problems in the future.  I might change it so that the
 tasks are not deleted when I'm ready for more Valgrind fun.

 If you absolutely must know if a task was posted or not, you can check the
 return value of PostTask 

[chromium-dev] Singleton, LazyInstance, and testability

2009-11-03 Thread Paweł Hajdan Jr .
I encountered another problem related to Singletons in unit tests.
PluginService is a Singleton, and it listens to extensions notifications. In
one of my tests when I was using the extensions notifications the
PluginService crashed because I passed NULL as the Extension* - because the
listener I was testing didn't even read that value, but PluginService did
(it was unexpected).

I tried to fix the issue by adding a shadow AtExitManager to the test which
instantiated PluginService (resource_dispatcher_host_unittest.cc). And then
another crash appeared on Windows: NPAPI::PluginList is a LazyInstance,
which means that the shadow AtExitManager destroyed it, but it didn't
re-instantiate itself the next time it was used.

Is there a big difference between a Singleton and LazyInstance? I was
thinking about making NPAPI::PluginList a Singleton instead...

By the way, I have a more general fix in the queue (an unwanted Singleton
detector). If you're interested, please star http://crbug.com/12710. It
seems that the most recent gtest (1.4.0) has necessary support.

--~--~-~--~~~---~--~~
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: Singleton, LazyInstance, and testability

2009-11-03 Thread Aaron Boodman

Why don't you pass an Extension instance? It seems like you are
violating the contract of that notification by not doing so, and even
if you solve this problem, other similar problems would be likely to
happen again in the future.

- a

On Tue, Nov 3, 2009 at 11:49 PM, Paweł Hajdan Jr.
phajdan...@chromium.org wrote:
 I encountered another problem related to Singletons in unit tests.
 PluginService is a Singleton, and it listens to extensions notifications. In
 one of my tests when I was using the extensions notifications the
 PluginService crashed because I passed NULL as the Extension* - because the
 listener I was testing didn't even read that value, but PluginService did
 (it was unexpected).
 I tried to fix the issue by adding a shadow AtExitManager to the test which
 instantiated PluginService (resource_dispatcher_host_unittest.cc). And then
 another crash appeared on Windows: NPAPI::PluginList is a LazyInstance,
 which means that the shadow AtExitManager destroyed it, but it didn't
 re-instantiate itself the next time it was used.
 Is there a big difference between a Singleton and LazyInstance? I was
 thinking about making NPAPI::PluginList a Singleton instead...
 By the way, I have a more general fix in the queue (an unwanted Singleton
 detector). If you're interested, please star http://crbug.com/12710. It
 seems that the most recent gtest (1.4.0) has necessary support.
 


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