Re: [chromium-dev] How to rebuild after modifying extension_api.json?

2010-01-15 Thread Evan Martin
On Fri, Jan 15, 2010 at 9:57 AM, Thomas Van Lenten
 wrote:
> Actually, it think it's sorta captured --
> chrome.gyp has chrome_resources_inputs, which is created by running a script
> to figure out the input from the grd files.  Looking at my xcode project,
> there is a dependency on common/extensions/api/extension_api.json for the
> grd files listed in chrome_resources_grds.

I stand corrected!


In the makefile it ends up with a layer of indirection due to grit
having two outputs, so it works like this:
- gen/chrome/grit/browser_resources.h depends on the .json
- gen/chrome/browser_resources.pak depends on
gen/chrome/grit/browser_resources.h
- and then the eventual browser .pak files depend on those

I would try: build once, touch, the .json file, then build again and
see which piece is failing to rebuild.
(Also try the same but try running the build twice in a row; there are
probably still some bugs there.)
-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] How to rebuild after modifying extension_api.json?

2010-01-15 Thread Evan Martin
On Fri, Jan 15, 2010 at 9:19 AM, Dominic Mazzoni  wrote:
> I've observed that after modifying extension_api.json and rebuilding
> on Linux (using "make" via distcc), often the entire extension api
> stops working, with no error message. A clean build always solves the
> problem. Is there some file I need to touch after modifying
> extension_api.json in order for the correct dependencies to rebuild?

$ git grep extension_api.json -- '*.gyp*' | wc -l
0

That is, this file is not ever mentioned to the build system.
The problem is that a .grd file uses the .json file when building but
that isn't explicitly told to gyp.
In C++ we rely on the per-platform build system to figure out they do
the same thing (an #include); for gyp we should just require people to
keep the gyp file in sync.

The place to look at fixing this is the .gyp* files where
common_resources.grd is built; it should list this .json file as an
input and it doesn't.
-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

[chromium-dev] [linux] printing webcore strings in gdb

2010-01-14 Thread Evan Martin
We had a section of our wiki page with a GDB trick for printing webcore types.
I just cleaned up and checked in that code.

The wiki now just has the recipe on how to source this file into your
GDB.  It's easy, and now my GDB can display WebCore::AtomicString,
UChar*, etc. as nice Unicode strings!
  http://code.google.com/p/chromium/wiki/LinuxDebugging#Printing_Chromium_types

(You can still use commands x/10hc to inspect the UTF-16 memory
values, of course.)

If you have any other GDB extensions useful for Chrome, please add
them to that file/directory and send them my way for review.  I'm
considering adding printers for e.g. Harfbuzz strings.
-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] Re: Setting global preferences/settings in code

2010-01-14 Thread Evan Martin
On Thu, Jan 14, 2010 at 1:33 PM, Brian G. Merrell  wrote:
> Okay, I started looking into this.  After a bit of work, I'm to the
> point where I need to process the master_preferences json file.
> That is, I am currently writing a ProcessMasterPreferences function
> in first_run_gtk.cc.  It looks like for Windows much of the work for
> processing the file is done using install_util, which doesn't appear
> to even be included in the build for Linux.  So, I have a couple of
> questions...
>
> What would be the preferred approach to processing the
> master_preferences file in Linux?  At a glance, it looks like
> chrome/installer/util/master_preferences.cc might have everything
> needed if it was built it for Linux, but should the parsing be done
> somewhere more general and/or more portable?  Documentation says
> that chrome/installer has "source files and projects for making the
> installer (MSI package)."

I don't remember this code too well, but it sounds like perhaps
processing the master preferences belongs in a shared location.  Or
maybe it's already in the appropriate shared location and we can build
a minimal Linux installer_util library that just includes the master
preferences code you want.  See installer_util.gypi and chrome.gyp's
mention of intaller.gyp to see where you'd need to tweak this.

I'd take a look at the code that *uses* the master preferences to
judge what makes sense to do here.

> My other question is about the location of the master_preferences
> file.  In Windows, the file is required to be located in the same
> directory as the chrome EXE (DIR_EXE).  For Linux, I'm not sure that
> this would fit.  Any thoughts?

It doesn't seem too terrible to me.  We currently don't put any files
outside of /opt for the Google Chrome packages; I guess at some point
it would be nice to put data /usr/share, etc. at which point maybe
it'd make sense to extend PathService to provide additional
directories.  But that's probably outside the scope of the change
you're trying to make.

> I will attach what I've come up with so far, in case someone is
> interested.  There are probably things I've done already that are
> completely wrong :)

It is tons easier to look at patches if you upload them to our review
site.  It's pretty easy to do; see
  http://www.chromium.org/developers/contributing-code
if you're using svn.  You can set me as the reviewer and write in your
message "just looking for feedback, not ready to commit yet" and I can
look there.

One thing I'd consider is how this might work on the Mac.  I don't
think you should worry about implementing it, but I find considering
how code *could* be shared helps me think of the appropriate
abstraction layers and locations to implement these pieces.
-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] seeking c++ expertise for a tiny tricky bit of code

2010-01-13 Thread Evan Martin
On Wed, Jan 13, 2010 at 11:00 AM, Peter Kasting  wrote:
> On Wed, Jan 13, 2010 at 10:53 AM, Craig Schlenter
>  wrote:
>>
>> I'm one try-server run away from possibly turning -fno-strict-aliasing on
>> for
>> all linux/bsd gcc: http://codereview.chromium.org/519034
>>
>> From a "process" standpoint, given that there is some disagreement here
>> is someone going to come find me with a clue bat if I commit this?
>
> I don't think anyone will be rabid :)
> That said, my comment in my prior email stands: if we're basically capable
> of throwing -fstrict-aliasing for first-party code now, what do we gain by
> instead throwing -fno-strict-aliasing?  I would be sad to see us do this
> unless it really buys us something.

I believe it's just making the default setting explicit.


PS: I'd be willing to flip the flag just after we do the next beta
channel push and see how many more problems we get because of it.
But in general, if it doesn't buy us any performance and it does cause
hard-to-track-down crashes, I don't see why we should use it.  The
"correctness" gain doesn't buy us anything on other platforms anyway.
-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] seeking c++ expertise for a tiny tricky bit of code

2010-01-13 Thread Evan Martin
On Wed, Jan 13, 2010 at 9:22 AM, Mark Mentovai  wrote:
> Dan Kegel wrote:
>> On Wed, Jan 13, 2010 at 9:12 AM, Stephen White  
>> wrote:
>>> 2)  Most of the supposed performance advantage of strict aliasing rules is
>>> probably taken care of by memory disambiguation in modern (ie., Core2 and
>>> later) CPUs.
>>
>> I kind of doubt that.  Disallowing aliasing lets the compiler do
>> a number of high-level optimizations that the chip could never do on its own.
>> See e.g.
>> http://cellperformance.beyond3d.com/articles/2006/06/understanding-strict-aliasing.html
>>
>> I'm for -fstrict-aliasing except for third_party.
>
> Me too.
>
> I support -fstrict-aliasing or not specifying anything explicitly (as
> we presently do), and only using -fno-strict-aliasing for specific
> third_party libraries that are known to need it.

One argument for Stephen's side: much of our performance-critical code
is in WebKit, which relies on no-strict-aliasing.

At the code level I think it's not too hard for us to be aliasing
correct (people like Craig have already fixed all of the places where
we were wrong, and we have tools like bit_cast<> in basictypes.h to
make it not too painful), so I'm not too opposed to it.

But on a practical note, the default only matters on Linux with gcc
4.4, which is not a build configuration we (Google) yet use
extensively, which means that we break solely but frequently for
third-party builds:
  http://code.google.com/p/chromium/issues/list?can=1&q=strict+aliasing
 (note how much of those mention "fedora" or "ubuntu")

With that in mind I think we should explicitly use
-fno-strict-aliasing until someone is willing to take the time to run
buildbots, track down regressions, etc. for the other configuration.
(Consider https://bugs.webkit.org/show_bug.cgi?id=30827 as the sort of
bug we've run into.)  Albert has expressed some interest in getting us
to use gcc 4.4 as our baseline compiler so maybe that will happen in
the future.
-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] Interesting performance characteristics of http://a.qoid.us/google.html

2010-01-12 Thread Evan Martin
On Tue, Jan 12, 2010 at 10:17 AM, Brett Wilson  wrote:
> I imagine the problems on Linux are the same as they were on Windows,
> where the underlying graphics layer wants to place glyphs aligned on
> pixel boundaries. This gives rounding problems and the letters jump
> around. I spent several weeks making the rotations and transparency on
> Windows text and form controls look good.

Can you elaborate a bit on what you did?  (I write this as maybe the
person who will need to fight with this at some point, but practically
I wonder if it'll eventually fall on you.  :P)
-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

[chromium-dev] seeking c++ expertise for a tiny tricky bit of code

2010-01-12 Thread Evan Martin
In this bug
  http://code.google.com/p/chromium/issues/detail?id=28749
It seems we're running afoul of a more finicky compiler not liking
some tricks we're playing with objects and memory in LazyInstance.
(You can skip down to comment #30 or so to get to the meat of it --
above that point we were still trying to figure out what was causing
the crash.)

I know enough to say that it sounds like the solution to the problem
should involve placement new, but that is the extent of my C++ skill.
If you are a wizard, could you take a look at the patch Craig posted
on the bug (http://codereview.chromium.org/519045/show) and comment
there?
-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] Interesting performance characteristics of http://a.qoid.us/google.html

2010-01-11 Thread Evan Martin
On Mon, Jan 11, 2010 at 9:04 PM, Chris Evans  wrote:
> The other browsers do not support the CSS used / required for this demo.
> There was a similar version, but using SVG animation to do something very
> similar. (It's currently offline). Firefox and Opera were able to attempt
> the rotation of this one but both performed much worse that Safari and
> Chrome.
> Anyone know why Chrome, and to a certain extent Safari, are so much better
> on this non-JS test? Is the Skia library underpinning Chrome superior?

I'm not certain, but it sounds like you're comparing CSS rotations in
the Chrome/Safari case and SVG rotations in the other, so I'm not sure
it's a fair comparison.  (Unless you mean to say Chrome/Safari were
more performant for the SVG demo as well.)  Two anecdotal comments:
 - In my experience (on Linux) Firefox had really poor SVG
performance, and that (for example) canvas performs a lot better.  I
think none of the engines have done much work on SVG, in part because
basically nobody uses it on the web except for demos like this.
 - Also in my experience Chrome+Skia tends to be faster but sometimes
less smooth than Safari's CG.  See also all of Dean's Pre3d demos.

> There's also a difference between Chrome Windows and Chrome Linux. Whilst
> Chrome Linux performs smoothly, the text is clearly jiggling around and even
> getting more / less bold throughout the rotation cycle. Doesn't do that on
> Windows. Any ideas?

I don't know much about how this rotation business works, but if I had
to guess from looking at it I'd say hinting is getting involved.
-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] Where does documentation intended for non-developers go?

2010-01-08 Thread Evan Martin
On Thu, Jan 7, 2010 at 7:44 PM, Nico Weber  wrote:
> On Thu, Jan 7, 2010 at 5:31 PM, Evan Martin  wrote:
>> On Thu, Jan 7, 2010 at 2:31 PM, Nico Weber  wrote:
>>> I wrote up a document that's relevant not only for people working on
>>> chromium, but for (small parts of) the world in general ("under which
>>> circumstances does google chrome display idn urls as punycode?" I
>>> mean, who's not dying to know?).
>>>
>>> Where do documents like these go?
>>
>> We used to have a technical FAQ
>
> Where was it at?

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

Re: [chromium-dev] Where does documentation intended for non-developers go?

2010-01-07 Thread Evan Martin
On Thu, Jan 7, 2010 at 2:31 PM, Nico Weber  wrote:
> I wrote up a document that's relevant not only for people working on
> chromium, but for (small parts of) the world in general ("under which
> circumstances does google chrome display idn urls as punycode?" I
> mean, who's not dying to know?).
>
> Where do documents like these go?

We used to have a technical FAQ but I deleted it because it was
embarrassingly out of date ("When's the Mac port coming out?").  I
think we could profitably use one again.  For example, "Why does
Chrome give a warning about .exe downloads on Linux?" is definitely a
FAQ I get.
-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] Can we use a DOM ui page for ftp:/// and file:/// directory listings?

2010-01-05 Thread Evan Martin
I talked with Arv in person and I think I sufficiently convinced him
that getting DOMUI security right is tricky.  (Consider: XSSes in the
FTP display code, and that ftp sites containing HTML pages must not
have privs when displaying the HTML.)  That may still mean that DOMUI
is ok, but I would prefer to consider any other option available.

One idea is to say "we don't care if any old page can " to get a Photoshop icon.
Not sure.

On Tue, Jan 5, 2010 at 3:33 PM, Erik Arvidsson  wrote:
> I think it should be OK to move these to DOMUI. NTP can also link to
> local HTML files and we already mark the chrome protocol in such a way
> that it cannot be accessed by any other scheme.
>
> erik
>
>
>
> On Tue, Jan 5, 2010 at 15:19, Pierre-Antoine LaFayette
>  wrote:
>> That's why I wanted to check before starting any work. So the question is
>> now whether it we'd rather use a DOM UI page or create a similar API that
>> would be used solely by file:// and ftp://. What is needed for
>> http://crbug.com/24421 is simply access to the favicon data for file types.
>> I'm not sure if these are available through WebCore or not. The drag and
>> drop functionality required by http://crbug.com/27772 seems like it would be
>> a lot of work without using a DOM UI page.
>> Any opinions on this part of my original post?:
>> Is there any reason why ChromiumOS' chrome://filebrowse DOM ui page couldn't
>> be generalized to
>> be used for these other directory listing pages?
>> It just seems to me that it would be rather redundant handle 3 separate
>> instances of a file browse HTML page (ftp://, file:// and
>> chrome://filebrowse) in 3 separate ways.
>> Thanks.
>> 2010/1/5 Evan Martin 
>>>
>>> On Tue, Jan 5, 2010 at 2:44 PM, Glen Murphy  wrote:
>>> > I don't think anyone has any objection to DOMUIifying those pages, and
>>> > I don't think it would be a large amount of work. The only reason
>>> > they're not is that there hasn't been a reason to do so.
>>>
>>> DOM UI (at least when I last looked) just means that that renderer
>>> ("the page") gets extra privileges necessary for doing special browser
>>> calls, such as access to your browsing history for the History
>>> implementation.
>>>
>>> We went to some effort to keep these sorts of pages distinct from
>>> network content with the hope of reducing the security surface.  I
>>> worry changing this for FTP would be going in the wrong direction.
>>>
>>> It might make more sense to do something *like* DOM UI but with a
>>> different API just to keep things distinct.  But then we reencounter
>>> the same sorts of problems we have with DOM UI, like for example if
>>> you click a link from an FTP site to an HTML file, how to prevent the
>>> FTP privileges from bleeding into the HTML file.
>>>
>>> I feel like Darin is the person who would best know how to address this.
>>>  :)
>>
>>
>>
>> --
>> Pierre.
>>
>> --
>> Chromium Developers mailing list: chromium-dev@googlegroups.com
>> View archives, change email options, or unsubscribe:
>>    http://groups.google.com/group/chromium-dev
>>
>
-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] Can we use a DOM ui page for ftp:/// and file:/// directory listings?

2010-01-05 Thread Evan Martin
On Tue, Jan 5, 2010 at 2:44 PM, Glen Murphy  wrote:
> I don't think anyone has any objection to DOMUIifying those pages, and
> I don't think it would be a large amount of work. The only reason
> they're not is that there hasn't been a reason to do so.

DOM UI (at least when I last looked) just means that that renderer
("the page") gets extra privileges necessary for doing special browser
calls, such as access to your browsing history for the History
implementation.

We went to some effort to keep these sorts of pages distinct from
network content with the hope of reducing the security surface.  I
worry changing this for FTP would be going in the wrong direction.

It might make more sense to do something *like* DOM UI but with a
different API just to keep things distinct.  But then we reencounter
the same sorts of problems we have with DOM UI, like for example if
you click a link from an FTP site to an HTML file, how to prevent the
FTP privileges from bleeding into the HTML file.

I feel like Darin is the person who would best know how to address this.  :)
-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev

Re: [chromium-dev] chromium crash when load flash plugin

2010-01-04 Thread Evan Martin
On Mon, Jan 4, 2010 at 3:38 PM, Peter Kasting  wrote:
> On Mon, Jan 4, 2010 at 3:35 PM, if-ifone  wrote:
>>
>> Hi:
>>      I build a Release chromium from latest trunk code.my Chromium always
>> crash when page
>> contain flash elements.
>> on ubuntu 9.10
>> intel 32
>> build command
>>      make BUILDTYPE=Release
>>      and make chrome  BUILDTYPE=Release
>
> Please file bugs on crbug.com.
> In addition, if you build a binary yourself, it's pretty much your
> responsibility to first debug the issue to determine it's something that
> other people should care about/help with before reporting such bugs.

Peter is exactly right, but it's probably
  http://code.google.com/p/chromium/issues/detail?id=28749

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


Re: [chromium-dev] Shockwave and Flash high CPU usage

2010-01-03 Thread Evan Martin
On Sun, Jan 3, 2010 at 8:47 AM, ptr727  wrote:
> Hi, don't know if this is the right group, please redirect if not.

I think the best forum is the bug tracker.
In general, for Flash performance, if you have (1) something that
performs significantly differently in Chrome than in other browsers,
and (2) reproduction steps, that is a useful bug report.  In general,
if the bug only happens in Chrome it's a Chrome bug, otherwise:

> Does Chrome have any mechanism to help debug and report this bad
> behavior to Adobe?

Adobe has a bug tracker:
  http://bugs.adobe.com/flashplayer/
If your problem reproduces in multiple browsers that's a good place to
bring it up.
If it only occurs on one site, I'd bring it up with the site owner.

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


Re: [chromium-dev] Any reason why we can't use Google's codesearch in chromium code base?

2010-01-01 Thread Evan Martin
On Fri, Jan 1, 2010 at 10:05 AM, Mohamed Mansour
 wrote:
> Or even something that was deleted from our current state that still exists
> there:
> http://www.google.com/codesearch?q=package:"http://src.chromium.org/svn/trunk/src"+kEnableWebSockets
> That happens to everything. It seems it stopped indexing our source couple
> of months ago (~6 or so)

Ah, I see.  From looking at the DEPS file (search for [webkit_trunk])
it looks like it was last updated in early October.  I wonder how
frequently they intend to update it...

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


Re: [chromium-dev] Any reason why we can't use Google's codesearch in chromium code base?

2010-01-01 Thread Evan Martin
On Fri, Jan 1, 2010 at 1:23 AM, Mohamed Mansour
 wrote:
> Hi everyone, first I want to say Happy New Years!
> For the last year, it was very easy and super fast searching the code base
> of Chromium via http://www.google.com/codesearch, everything was there.
> Codesearch gave us nice set of code searching tools we can use. It was
> faster than grep, ack-grep, etc... If I wanted to search for a variable, all
> I do "package:src.chromium.org kSomePrefVariable" and instantaneously, it
> gives me the results.
> For the past month or so, I rarely get any results anymore. Try searching
> for something that was committed last week, even couple of month ago, you
> simply can't. Does anyone internal know whats wrong? Did we block some
> crawling (similar thing to what WebKit did to their repository)?
> It would be nice if we can re-enable whatever we disabled. It was a nice,
> well presented feature to explore Chromium's massive source code

I clicked around a bit and found that
  package:"http://src.chromium.org/svn/trunk/src";
seems to be our source tree.  I'm not sure if that counts as working
or not.  Maybe you can include a query that is failing that you think
ought to work?

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


Re: [chromium-dev] [linux] new shm drawing code, watch for glitches

2009-12-30 Thread Evan Martin
On Wed, Dec 30, 2009 at 3:21 PM, Evan Martin  wrote:
> On Wed, Dec 30, 2009 at 3:02 PM, Chris Evans  wrote:
>> I'm interested in a breakdown here. Is it dependent on X server version?
>> (e.g. can you say Ubuntu version 9.10+ has it)? Or is it more subtle,
>> involving exact gfx chipset and proprietary vs. X.org drivers?
>
> The latter, I believe.
>
> Build the attached program with g++ -o shm shm.cc -lXext and it will

Rather:
g++ -o shm shm.cc -lX11 -lXext


> dump what you have.
> My computer (karmic, nvidia 185.18.36, Quadro FX 380) says:
>  XSHM 1.1 (pixmaps: no).
>

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


Re: [chromium-dev] [linux] new shm drawing code, watch for glitches

2009-12-30 Thread Evan Martin
On Wed, Dec 30, 2009 at 3:02 PM, Chris Evans  wrote:
> I'm interested in a breakdown here. Is it dependent on X server version?
> (e.g. can you say Ubuntu version 9.10+ has it)? Or is it more subtle,
> involving exact gfx chipset and proprietary vs. X.org drivers?

The latter, I believe.

Build the attached program with g++ -o shm shm.cc -lXext and it will
dump what you have.
My computer (karmic, nvidia 185.18.36, Quadro FX 380) says:
  XSHM 1.1 (pixmaps: no).

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

int main(int argc, char* argv[]) {
  Display* dpy = XOpenDisplay(NULL);
  int major, minor;
  Bool pixmaps;
  Bool shm = XShmQueryVersion(dpy, &major, &minor, &pixmaps);

  if (shm) {
printf("XSHM %d.%d (pixmaps: %s).\n", major, minor, pixmaps ? "yes" : "no");
  } else {
printf("No SHM support.\n");
  }
  return 0;
}


[chromium-dev] [linux] new shm drawing code, watch for glitches

2009-12-30 Thread Evan Martin
tl;dr  I just landed a change that may improve drawing performance.
Because the code path depends on the machine, it is difficult to test
that I didn't break anything.  Please let me know if you notice a
drawing speed difference in Chrome builds after r35390/35392 (latter
was a build fix for the former).

Details:

Previously we had two paths for drawing:
1) via shared memory pixmaps:  image data -> shared memory -> copied
to backing store by X server
2) slow fallback case: image data -> XImage -> serialized to X server
pixmap -> copied to backing store by X server

It turns out the first one has relatively weak support on existing machines.

I just added one in the middle, for when the first one isn't supported:
1.5) shared memory putimage: image data -> XImage -> shared memory ->
copied to pixmap by X server -> copied to backing store by X server

It seems this is likely the code path that will run on most machines,
and it saves a couple of serialization/copy steps, so hopefully it'll
be faster.  If you were to notice it you would notice it on
drawing-heavy pages, like a canvas demo or some instances of Flash.

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


Re: [chromium-dev] Command Line switches persisted in Preferences

2009-12-24 Thread Evan Martin
On Thu, Dec 24, 2009 at 12:29 PM, Peter Kasting  wrote:
> Yes: It allows/encourages people to use more command-line switches.  The
> switches we have are generally for exceptional cases.  If people need to use
> them regularly, we need to know about it, not simply enable even more usage.

You must use switches for a pretty common pattern ("separate profile
that goes through my work proxy") and I believe that's been wontfixed
in the past, so I'm not entirely unsympathetic to Mohamed's
suggestion, but I think Peter is right in principle.

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


Re: [chromium-dev] Link error with chromium on ubuntu 9.10

2009-12-23 Thread Evan Martin
On Sun, Dec 20, 2009 at 2:57 AM, Evan Martin  wrote:
> On Sat, Dec 19, 2009 at 5:39 PM, Jacob Mandelson  wrote:
>> Probably the OOM killer.  Chrome takes a very large amount of memory to link.
>> You can add some swap, or trade a lot of link-time memory for a little 
>> startup
>> delay by building shared.  You can do that by putting this in your
>> ~/.gyp/include.gypi:
>> {'variables': {
>>    'library': 'shared_library',
>> }}
>
> Does this build still work?  Last time I tried it it was broken again
> (something in v8...).

Two people informed me off-list that it works for them, so I guess
it's just something wrong locally.  I again recommend using the shared
build if you're developing on a low-power computer.  Linking is super
fast unless you're working on WebCore.  :)

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


Re: [chromium-dev] Recovering from browser crashes

2009-12-22 Thread Evan Martin
On Tue, Dec 22, 2009 at 9:05 AM, Jim Roskind  wrote:
> I think it was a GIANT step forward when Chromium survived renderer crashes.
>  I'm not all that clear that another level of process-division would
> increase robustness, and more importantly, increase customer satisfaction.

I think renderer process separation was important in part because the
web is very complicated: the space of allowable web pages is infinite
and all of the parts are interlocking.  The rest of the application is
much more controllable in terms of complexity, and I think because of
that the browser-side crashes we see are of a different flavor that
can be pinned on bad test coverage and overly complex code.

So one way to approach this is more separation of concerns at "compile
time": that is, better factoring of separate modules (and fewer
singletons!) that would allow more relatively independent tests.

For example close to my heart: my last stab at refactoring the way we
query plugins ended up running into subtle issues with how the metrics
service shuts down relative to the UI and IO loops.  These pieces need
to talk to one another but our current system of needing to carefully
puzzle through relative lifetimes, races, and refcounts doesn't seem
scalable.

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


Re: [chromium-dev] Re: Setting global preferences/settings in code

2009-12-20 Thread Evan Martin
On Sat, Dec 19, 2009 at 9:32 PM, cpu  wrote:
> Yes, the MasterPreferences is what we use so far.  It is just a json
> file in a particular path. I am not sure if we have enabled this for
> the linux build.

It hasn't.

See browser_main.cc around line 540, the part that mentions
ProcessMasterPreferences:
http://src.chromium.org/cgi-bin/gitweb.cgi?p=chromium.git;a=blob;f=chrome/browser/browser_main.cc;h=ff1d17d7277b5df9a9e1d901adaf326ee6c2c6ff;hb=HEAD#l539

You could probably follow the Windows implementation of
ProcessMasterPreferences (see first_run_win) to make a Linux one, but
it will of course be rather different.

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


Re: [chromium-dev] Link error with chromium on ubuntu 9.10

2009-12-20 Thread Evan Martin
On Sat, Dec 19, 2009 at 5:39 PM, Jacob Mandelson  wrote:
> Probably the OOM killer.  Chrome takes a very large amount of memory to link.
> You can add some swap, or trade a lot of link-time memory for a little startup
> delay by building shared.  You can do that by putting this in your
> ~/.gyp/include.gypi:
> {'variables': {
>    'library': 'shared_library',
> }}

Does this build still work?  Last time I tried it it was broken again
(something in v8...).

I think you need somewhere around 2gb of RAM + some swap to build.

I note the WebKitGtk hackers (who are on relatively weak laptops) will
actually close down most of the software they're using when it comes
time to link, to make more memory available.  :~(

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


Re: [chromium-dev] Linux 32-bit build instructions

2009-12-19 Thread Evan Martin
On Sat, Dec 19, 2009 at 7:06 AM, Evan Martin  wrote:
> On Sat, Dec 19, 2009 at 6:59 AM, Kevin Millikin  
> wrote:
>> I'm trying to build Linux 32-bit on 64-bit Ubuntu 8.04.
>> The closest think I've found
>> is http://code.google.com/p/chromium/wiki/LinuxBuild32On64 , but unless I'm
>> just missing it, that doesn't seem to have actual build instructions.
>
> Yuck, it looks like the docs skewed.
>
> From the main build docs:
> On a 64-bit system, set GYP_DEFINES=target_arch=x64 and regenerate the
> Makefiles by doing gclient runhooks --force.
>
> Try setting that to ia32 instead (?) and see if that works.  (Check if
> gyp generates chrome/chrome.target.mk with an "-m32" flag.)  If so,
> can you update those docs?

BTW, I expect at this point we've probably removed any hacks we used
to have to make this works completely.  So if some bits don't work,
don't worry too much (I recall the file picker and IME) -- I assume
you're probably just touching something related to v8...

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


Re: [chromium-dev] Linux 32-bit build instructions

2009-12-19 Thread Evan Martin
On Sat, Dec 19, 2009 at 6:59 AM, Kevin Millikin  wrote:
> I'm trying to build Linux 32-bit on 64-bit Ubuntu 8.04.
> The closest think I've found
> is http://code.google.com/p/chromium/wiki/LinuxBuild32On64 , but unless I'm
> just missing it, that doesn't seem to have actual build instructions.

Yuck, it looks like the docs skewed.

>From the main build docs:
On a 64-bit system, set GYP_DEFINES=target_arch=x64 and regenerate the
Makefiles by doing gclient runhooks --force.

Try setting that to ia32 instead (?) and see if that works.  (Check if
gyp generates chrome/chrome.target.mk with an "-m32" flag.)  If so,
can you update those docs?

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


Re: [chromium-dev] Implementing the Chromium Webkit API

2009-12-18 Thread Evan Martin
On Fri, Dec 18, 2009 at 10:32 AM, Balaji Rao  wrote:
> I'm new to this list and I've joined after my discovery of the new Chromium
> WebKit API. Great work, it's awesome.

It's very new, so don't expect it to all quite work yet.

> I tried to compile a really stupid implementation (on Linux) with
> libWebKit.a, and it failed with a few thousand unresolved symbols. Using
> data from objdump, I figured out that functions annotated with WEBKIT_API
> were those in the list, which I figured out were due to '-fvisibility=false'
> being used for the static library case. Now I thought #defining WEBKIT_API
> to __attribute__ ((visibility("default"))) would help, but it didn't. I
> guess the encapsulating class needs to be annotated WEBKIT_API as well ? Can
> anyone please help me solve this ?

Something's confused here.
1) .a files are just archives of .o files, while visibility=hidden
only affects visibility beyond module boundaries.
2) -fvisibility=false doesn't exist, I assume you mean hidden (?)

> Also, I read somewhere in the webkit repo that gyp didn't support
> "shared_library" targets yet. Is it still true ? If yes, when can it be
> expected ?

gyp does support shared_library targets.  Where did you read that?

> Obviously, the thing that would help me most is a sample implementation -
> which I think could exist because that there must have been an
> implementation that was grown parallel to the API itself. Is it the
> DumpRender tree ? Or the test-shell ? Can anyone please tell me where can I
> find one ?

test_shell:

http://src.chromium.org/cgi-bin/gitweb.cgi?p=chromium.git;a=tree;f=webkit/tools/test_shell;h=d8c06ce190f8b2facf92162a690a647984e80c10;hb=HEAD

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


Re: [chromium-dev] Running multiple Google Chrome channels side-by-side (for testing)

2009-12-18 Thread Evan Martin
It's not quite the same thing, but run both Google Chrome (for the
beta channel) and the Ubuntu Chromium (for testing nightly builds).

You might be able to do a similar thing with one of the variants on
Windows (like, say, run Google Chrome beta channel and then a more
recent version of Iron).

On Fri, Dec 18, 2009 at 2:36 AM, PhistucK  wrote:
> No (as far as I know), this was requested several times already. Would you
> mind to try and give it some attention and let your friends know and help?
> :)
> ☆PhistucK
>
>
> On Fri, Dec 18, 2009 at 08:27, Aaron Boodman  wrote:
>>
>> On Windows, is there a way to hack the registry to allow multiple
>> channels of Chrome to be installed simultaneously and let them update?
>> It would be really useful for testing.
>>
>> - a
>>
>> --
>> Chromium Developers mailing list: chromium-dev@googlegroups.com
>> View archives, change email options, or unsubscribe:
>>    http://groups.google.com/group/chromium-dev
>
> --
> Chromium Developers mailing list: chromium-dev@googlegroups.com
> View archives, change email options, or unsubscribe:
> http://groups.google.com/group/chromium-dev

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


Re: [chromium-dev] Re: Proposal: Accessibility extension api

2009-12-16 Thread Evan Martin
(Disclaimer: I know very little about a11y.)

On Wed, Dec 16, 2009 at 10:20 PM, Erik Kay  wrote:
> On Wed, Dec 16, 2009 at 1:15 PM, Dominic Mazzoni 
>> This experimental API exposes information about focused controls in the
>> native ui, like dialog boxes and the location bar.  Specifically, it allows
>> an extension to determine the current focused control and listen to events
>> such as changing focus, selecting controls, and text editing.  It optionally
>> allows for generating keyboard events, too.
>> Existing screenreaders on Mac, Windows, and Linux do a good job of
>> exposing simple dialog boxes, but a poor job of exposing complicated web
>> pages.  Javascript-based screenreaders can often provide much better support
>> for browsing the web, but are poor at exposing the user interface of the
>> browser.  This solution empowers javascript-based screenreaders.
>> Use cases
>> 1. Build a complete screenreader as a Chrome extension, similar to the
>> "FireVox" screenreader for Firefox (see http://www.firevox.clcworld.net/).
>>  This would enable developers to create custom accessibility solutions for
>> people with all sorts of special needs, using JavaScript, that will run on
>> Chrome on any platform.

It's not clear to me who the intended target of this.  It would seem
users that already have accessibility needs will already be using the
native accessibility framework, and Chrome will need to fit into that.
 However, clearly someone saw the need for Fire Vox so I must be
missing something.

>> 2. Enable pure-javascript testing of browser user-interface elements, like
>> interacting with controls in a dialog box.  This could potentially simplify
>> some ui tests.

Another way to approach this is to provide a simplified JS interface
to the native accessibility libraries.  That would doubly service to
allow us to test our accessibility code.

There's a proposal from Adobe for using the native accessibility
framework for plugins (Flash), so if this goes through any API that
intends to cover plugins as well will eventually need to go through
the native API.  (Note that this I believe this is still in the draft
stage.)
https://wiki.mozilla.org/Plugins:NativeAccessibility

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


Re: [chromium-dev] Re: [chromium-reviews] Add the cmdline "-open-in-new-window" switch

2009-12-16 Thread Evan Martin
On Tue, Dec 15, 2009 at 4:45 PM, Evan Stade  wrote:
> a) We don't have good support for untabbed browsing; if we really wanted to
> support that we should have a --no-tabs mode which removes the tab strip and
> forces NEW_TAB to NEW_WINDOW, but I don't think we want to support it.

If anyone ever writes a patch for this, please send it my way.  I
don't think we'd commit such a patch but I'd use it locally.

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


Re: [chromium-dev] [extensions] bug gardening, stable version

2009-12-16 Thread Evan Martin
On Mon, Dec 14, 2009 at 6:13 PM, Aaron Boodman  wrote:
> I've gone through and gardened the bugs per our goals for stable:
>
> Win, linux: http://bit.ly/5s4lrp
> Mac: http://bit.ly/8hHpdO
>
> Surely I'm missing some, but this should be a start.

I know you had to decide to boot some stuff to make a reasonable goal
set, but if you weren't aware of it, this one is needed for the
"translate" extension to work, which is sorta one of the flagship
extensions.
http://code.google.com/p/chromium/issues/detail?id=29896
As they comment on the bug, it might not be too hard to fix, just
needs someone to poke at it.

BTW, if anyone takes a look at it, the language detector could use
some legal love as well:
http://code.google.com/p/chromium/issues/detail?id=29342

I think sidchat moved on, so there's no real owner for this stuff.

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


Re: [chromium-dev] Embedding chrome.pak in the chrome binary for Linux?

2009-12-12 Thread Evan Martin
On Sat, Dec 12, 2009 at 4:52 AM, Satoru Takabayashi
 wrote:
> The chrome binary for Linux seems to load resource bundles from a file named
> "chrome.pak", while the resource booundles are embedded in the chrome DLL in
> other platforms (correct me if I'm wrong). This makes me wonder if it's a
> good idea to embed chrome.pak in the chrome binary for Linux. This would
> save open+mmap cost (probably negligible though), and would make the package
> a bit simpler.  I guess it can be done with objcopy, without too much work.
> Any thoughts?

I thought about this for a while and I'm not sure there is enough of a
difference either way to make it matter.  It seems that having it
within the executable should be nearly identical in terms of startup
cost and memory usage.  I guess the code might be slightly less
complicated, but we already pay complexity anyway for locating the
locale data, which remains separate.

If I have any preference, I would prefer it either all one way (all
static data embedded within the executable) or the other (all static
data external to the executable).  Right now we're somewhere in the
middle (since ICU data is in the executable) and your proposed change
also leaves us in the middle (since it would leave locale data out of
the executable).

There's maybe one other benefit to consider: the simpler the
executable, the faster the iterative compile/link cycle will be.  But
again I wonder if the difference would be enough to measure, since the
resources data is only 1.4mb.  (The ICU data is something like 8mb, so
that ought to cost more.)

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


Re: [chromium-dev] Re: [chromium-reviews] Add the cmdline "-open-in-new-window" switch

2009-12-12 Thread Evan Martin
On Sat, Dec 12, 2009 at 1:01 AM, Peter Kasting  wrote:
> On Sat, Dec 12, 2009 at 12:54 AM, Clemens Fruhwirth 
> wrote:
>>
>> http://codereview.chromium.org/464060 adds the small one-line feature
>> to open an URL in a new window from commandline

I wonder if you could hack it without a code change by converting URLs
into something like "javascript:window.open('http://myurl')" or
however that function works.

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


Re: [chromium-dev] Re: [WebGL] Recommending --no-sandbox

2009-12-11 Thread Evan Martin
On Fri, Dec 11, 2009 at 9:56 AM, Darin Fisher  wrote:
> The goal is to annoy you so you will try to stop passing these arguments.
>  Don't we already have other infobars possibly showing at startup (e.g.,
> restore tabs)?

Yes.  It looks a little silly -- you get two of them stacked -- but
part of the point of this is that most users don't encounter it, it's
only the ones doing things that we're trying to discourage.

Since code speaks louder than words:
  http://codereview.chromium.org/490019
Screenshot:
  http://i.imgur.com/1mPST.png

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


Re: [chromium-dev] Re: [WebGL] Recommending --no-sandbox

2009-12-11 Thread Evan Martin
I also like the "infobar on start", especially if there's no way to
say "stop bugging me" on it, so every time you start it will annoy
you.

I would like to bring back --single-process as well in that case.  On
Linux users are much more comfortable sending in stack traces etc. but
trying to walk someone through getting a renderer subprocess crash
into gdb is a pain; if I could say "run 'gdb --args chrome
--single-process" it would save me a lot of time.


On Fri, Dec 11, 2009 at 8:06 AM, Darin Fisher  wrote:
> I don't understand the argument for a periodic indicator.  We don't have a
> periodic indicator telling the user when to restart their browser to pick up
> auto-updates.  The only time it makes sense for the user to re-consider
> the command line options is when restarting because they might have
> been upgraded to a version that makes the --no-sandbox option unnecessary
> for their usage.
> -Darin
>
> On Fri, Dec 11, 2009 at 3:02 AM, PhistucK  wrote:
>>
>> Yes, a periodic inforbar would be swell and fairly effective. in my
>> opinion.
>> ☆PhistucK
>>
>>
>> On Fri, Dec 11, 2009 at 11:57, Jeremy Orlow  wrote:
>>>
>>> On Fri, Dec 11, 2009 at 1:10 AM, Kenneth Russell 
>>> wrote:

 (Resending from chromium.org)

 On Thu, Dec 10, 2009 at 8:22 PM, Darin Fisher 
 wrote:
 > After reading the WebGL blog post today, and following the link to the
 > wiki,
 > it struck me as fairly *bad* that we are telling people to disable the
 > sandbox.  A good number of folks are going to disable the sandbox and
 > forget
 > that they had ever done so.

 I don't follow. The --no-sandbox command line argument only takes
 effect for the current invocation of the browser. Most people launch
 Chrome or Chromium from its icon, which will not have that argument
 associated with it.
>>>
>>> On Windows, the most common way for people to launch with arguments is to
>>> add them to a short cut.  The risk is that they'd do this to their main
>>> shortcut and then forget about it.
>>>

 > Once we can support WebGL in the sandbox, what will we do?  It would
 > be nice
 > if we could somehow restore the sandbox automatically.  But renaming
 > --no-sandbox doesn't seem like a great choice, and it isn't a scalable
 > solution for other things like this that come up in the future.

 We will just remove the --no-sandbox option from that wiki page, and
 people testing WebGL will eventually stop specifying it.
>>>
>>> _New_ users will stop specifying it, but I doubt people will be regularly
>>> checking the wiki page.
>>>

 > Perhaps --enable-webgl should instead implicitly disable the sandbox
 > today
 > so that "tomorrow," when WebGL just works, folks won't have to change
 > any
 > command line options to restore sandbox functionality.  I can see a
 > counter
 > argument that people should have to explicitly opt-in to disabling the
 > sandbox, but I'm not sure that out-weighs the cost of having a good
 > number
 > of dev channel users running *permanently* without the sandbox.
 > Was this idea considered?  Any other ideas?

 I considered this but rejected it because it might lull people into a
 false sense of security -- thinking that they had "just" enabled WebGL
 but were actually browsing without the sandbox.

 The best solution is to get the GPU process in place on all platforms,
 at which point WebGL can be run inside the sandbox; this is a high
 priority for me and others.
>>>
>>> We definitely know this is true, and I think it's even safe to assume
>>> this will be true for other features in the future that only work with the
>>> sandbox off initially.  The problem is the time before this is true.
>>>
>>> As for the info bar/modal dialog:  I've been thinking for a bit, and I'm
>>> not sure this is enough.  We have plenty of data that shows users often
>>> leave browsers open for a very long time.  The main risk is that someone
>>> sets the flag, starts their browser, trys out the new cool feature, and then
>>> leaves the browser window open...for a long time.  The next time they start
>>> it they'll see the warning again, but the period of time in between (that
>>> they're more vulnerable) could be non-trivial.
>>> The solution to this is either the annoying/scary UI can't be
>>> disabled/clicked-through/etc (like a red and white striped theme that can't
>>> be overridden) or to pop up a modal dialog or info bar periodically (it
>>> could even be once an hour or even day) in addition to popping it up
>>> initially.
>>>
>>> In http://code.google.com/p/chromium/issues/detail?id=24411, Finnur said
>>>
>>> Also, when thinking about options 1 and 2 above
>>> (changing the appearance of Chrome) I can't help but think of someone
>>> pitching WebGL
>>> (which currently doesn't work in the sandbox) to their development team
>>> and the
>>> audience asking 'why is you

Re: [chromium-dev] Extensions and the Mac

2009-12-10 Thread Evan Martin
On Thu, Dec 10, 2009 at 4:03 PM, Avi Drissman  wrote:
> If we had something like:
>
> "plugins": {
>   "mac": ...
>   "win": ...
>   "linux": ...
> }

FWIW, one reason to avoid this sort of thing is that there is really
no single thing called "linux" to target.  For example, because our
builds of Chrome off the buildbot are built against the Debian-derived
libnss so they will run on Debian and derivatives (Ubuntu, Mint) but
not any others (Fedora/SUSE/Gentoo/Arch/etc.) without hacks.  (I guess
you could have the manifest say you target LSB 3.2 or something.)
Distributing binaries on Linux = sadness, as the Flash guys will tell
you.

I imagine there are similar (though smaller scale) incompatibilities
between major revs of OS X and Windows.  Like say a plugin depends on
DirectX 17 which is only available on Windows 7.

In summary, all I offer you is more problems and the plea that we
should really really deter people from doing this kind of thing.  I
imagine a dystopian future where we have a per-extension appsupport
matrix on the install page ("Works on x86-based ChromeOS but not
arm-based ChromeOS" or whatever).

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


Re: [chromium-dev] Splitting off some pieces of chrome.gyp...

2009-12-10 Thread Evan Martin
On Thu, Dec 10, 2009 at 1:02 PM, oshima  wrote:
> I have similar concern about our build, in a way we handle different
> configurations.
> There are several ways to specify a set of files for different
> configurations, such as suffic (_gtk/_mac),
> "source!", "exclude"/"include", concat file lists, and I'm worrying that
> it's getting out of control.

I made some changes here recently to help more cleanup.  The suffix
rules are now all in build/common.gypi, so the per-project lists only
need tweaking when the suffix rules are wrong.  (In particular when
ChromeOS uses / doesn't use a _gtk file is never clear to me, but that
seems to be just because it's a work in progress.)

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


Re: [chromium-dev] Can't build r34152

2009-12-09 Thread Evan Martin
Try pasting a subphrase of that into a search engine.  :)

On Wed, Dec 9, 2009 at 6:55 AM, Gary Thomas  wrote:
> Fedora Linux host:
>
> make: *** No rule to make target `third_party/yasm/source/patched-yasm/
> modules/arch/x86/gen_x86_insn.py', needed by `out/Debug/obj/gen/
> third_party/yasm/x86insns.c'.  Stop.
>
> --
> Chromium Developers mailing list: chromium-dev@googlegroups.com
> View archives, change email options, or unsubscribe:
>    http://groups.google.com/group/chromium-dev
>

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


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

2009-12-08 Thread Evan Martin
I got through my mail backlog far enough to at least file a bug on this
  http://code.google.com/p/chromium/issues/detail?id=29230
so you can star that for updates.

On Thu, Sep 17, 2009 at 9:42 AM, <--v1c1ous-->  wrote:
>
> I use a Search engine too:
>
> http://www.google.com/codesearch?hl=en&lr=&q=package:chromium.org+%s
>
> Or just search in site: chromium trunk in Google.com.
>
> -v1c1ous
>
> On Sep 16, 1:19 am, James Su  wrote:
>> Hi,
>>   I'm currently using cscope + vim, but it's so slow and hard to use. Is
>> there any better choice?
>>
>> Regards
>> James Su
>
> --~--~-~--~~~---~--~~
> Chromium Developers mailing list: chromium-dev@googlegroups.com
> View archives, change email options, or unsubscribe:
>    http://groups.google.com/group/chromium-dev
> -~--~~~~--~~--~--~---
>
>

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


Re: [chromium-dev] Modifying .gyp files

2009-12-08 Thread Evan Martin
On Tue, Dec 8, 2009 at 12:23 PM, Igor Gatis  wrote:
> When I change a .gyp, do I need to call gyp or the build process does that
> for me? If it does, how does it detect the .gyp file has been modified?

On Linux, when you run "make" it will rerun gyp on your behalf if any
gyp files changed.
See the rule in the root Makefile that starts with "Makefile: ".

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


Re: [chromium-dev] Tryconsole

2009-12-08 Thread Evan Martin
On Tue, Dec 8, 2009 at 11:21 AM, Bradley Nelson  wrote:
> I've got a prototype summary view of the trybots up
> at http://tryconsole.appspot.com/
> This will let you monitor/find your try jobs without digging through the
> waterfall.
> The text prompt lets you search (username / builder / change name).
> The two summary graphs show load for the day, load for the hour.
> I'd love suggestions on how to make this more useful.

Not sure if it's exactly in this space, but it'd be nice to have the
try script dump the URLs of the try servers involved.  I would use
this when trying a patch from someone else, so I could paste the try
server URls into the code review.

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


Re: [chromium-dev] Plugin Manager UI Proposal

2009-12-08 Thread Evan Martin
On Mon, Dec 7, 2009 at 11:11 AM, Panayiotis  wrote:
> A plugin is identified by its path in the filesystem. Different paths are
> considered different plugins.

Can you discuss symlinks?  We have to do some weird hacks in this area
-- see webkit/glue/plugins/plugin_list_linux.cc and the call to
AbsolutePath() there.

> Once a plugin is disabled, all subsequent calls to create a plugin instance
> will fail. Similarly for enabling. Pages that have the plugin already loaded
> should still work.

How about if multiple plugins provide the same mime type?  Does
disabling one cause the other to surface?  For example, we currently
prioritize "real" Flash over nspluginwrapper-wrapped Flash, which
means that disabling just the Flash plugin will cause pages that use
Flash to still use Flash but with additional bugs.

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


Re: [chromium-dev] event.target is a copy of the element and doesn't validate with an equality test Options

2009-12-05 Thread Evan Martin
Generally, the decision tree for this sort of thing is:

1) Does it also happen in Firefox and IE?
If yes: not a bug.
2) Does it happen in one of Firefox or IE?
If yes: probably not a bug, might wanna bring it up if the behavior
seems really broken.
3) Does it happen in Safari but not Firefox/IE?
If yes: WebKit bug.  See their bug reporting guidelines:
http://webkit.org/quality/reporting.html
4) Does it happen in only Chrome, but not any of the above browsers?
If yes: file a Chrome bug.

I should put this up on the dev site somewhere.  The short answer to
your question is that no, this isn't the right forum, but I can't
blame you for not knowing that.  :)

On Sat, Dec 5, 2009 at 9:32 AM, nachumk  wrote:
> Hi,
>
> I hope this is the right forum for this question...
> I am using Chrome Dev 4.0.249.25.
>
> I am creating a small floating menu and I want to detect when someone
> clicks outside of it. The way I detect if someone clicks out of the
> menu is by registering a window click event (window.addEvent...
> ('click')) and I test if event.target is equal to the original menu
> object (or a child of it). This worked on the Chrome beta version
> that
> I previously installed, but now with the dev version I see that the
> event is not the original event element but some type of copy that no
> longer validates with a (event.target == paramElement).
>
> sample code:
> //creating menu:
> var menu = document.createElement('div');
> myAddChildren(menu);
> window.addEventListener('click', function(event) { removeMenu(event,
> menu); }, false);
> document.body.appendChild(menu);
>
> //removing menu:
> function removeMenu(event, menu) {
>  //event.target is never equal to menu even when it should be!!!
> if((event.target == menu) || (myIsChild(menu, event.target)))
>  return //don't remove if click is on menu itself or a child of menu
> window.removeEventListener('click', arguments.callee.caller, false);
> document.body.removeChild(menu);
>
> I also noticed that if I add a custom variable to the menu object it
> doesn't show up under event.target when clicked. I have also verified
> that the element clicked is the actual menu as opposed to a child. I
> can verify this via the className which is set to the menu class type.
> The test that previously passed and *** should *** pass is
> (event.target == menu).
>
> The effect is that I want the menu to stay open so long as I've not
> clicked out of it. A click inside of it should keep it open. I know
> this sounds strange and it's not the way it will be in the end, but
> it's important for now.
>
> Thanx,
> nachum
>
> --
> Chromium Developers mailing list: chromium-dev@googlegroups.com
> View archives, change email options, or unsubscribe:
>    http://groups.google.com/group/chromium-dev
>

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


Re: [chromium-dev] Re: Something smells weird on the buildbot

2009-12-04 Thread Evan Martin
On Thu, Dec 3, 2009 at 1:09 PM, Tei  wrote:
> Chromium is kind of awesome, but on my Ubuntu crash a bit too much. I
> am looking forward for a stable version. Dudes!, speed the thing. Will
> be this thing in the hoven for much longer? I grown impatient.

This is the wrong place to bring this up.

Note that non-Google builds of Chromium do not send crash reports and
that we can't fix bugs we don't hear about.

Please file bugs here:
  http://code.google.com/p/chromium/issues/entry?template=Defect%20on%20Linux

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


Re: [chromium-dev] Information about revisions

2009-12-02 Thread Evan Martin
It works for me.

Anton, are you perhaps using Linux Chrome in a locale where decimals
are written like "1,23"?
WebKit has a number of bugs in that area -- it'd be helpful to reduce
the problem you're encountering to a test case.
See e.g. https://bugs.webkit.org/show_bug.cgi?id=30342 and others.

On Wed, Dec 2, 2009 at 9:30 AM, Pam Greene  wrote:
> Is anybody else seeing this problem?
> - Pam
>
> On Wed, Dec 2, 2009 at 5:53 AM, Anton Muhin  wrote:
>>
>> On Tue, Dec 1, 2009 at 11:33 PM, Pam Greene  wrote:
>> > Hi, Anton,
>> > Thanks for the additional information. I tried several points on that
>> > graph.
>> > They didn't show any revision information at first, but a few seconds
>> > later
>> > the frame loaded. Now I can look at other data points without any delay.
>> > Since it works sometimes, I suspect that the problem is in the network
>> > (a
>> > timeout, partial result sent, proxy error, or something of that sort),
>> > rather than an actual bug in the data file or parsing.
>> > What happens if you click the "Show Changelog" button, either with or
>> > without changing the revision range? It should (re)load the svn log for
>> > the
>> > range shown.
>>
>> Alas, nothing.
>>
>> Ok, thanks a lot for your help, Pam.
>>
>> yours,
>> anton.
>>
>> > On Tue, Dec 1, 2009 at 12:19 PM, Anton Muhin 
>> > wrote:
>> >>
>> >> Good day, Pam.
>> >>
>> >> On Tue, Dec 1, 2009 at 11:13 PM, Pam Greene  wrote:
>> >> > Can you be more specific? I gather you mean the revision information
>> >> > at
>> >> > the
>> >> > bottom of the performance graphs, when you select a data point on the
>> >> > graph.
>> >>
>> >> Precisely, one with SVN path, revision range, etc.
>> >>
>> >> > I just tried one at random (Page Cycle Intl1 - XP Perf) and it seems
>> >> > to
>> >> > be
>> >> > working correctly. What exactly causes this error?
>> >>
>> >> I tried
>> >>
>> >> http://build.chromium.org/buildbot/perf/xp-release-dual-core/intl1/report.html?history=150
>> >> and for several random points (in Chrome, Safari and FF) it shows no
>> >> info for revisions (inside the big test field), it shows revision
>> >> range and pages info (if I click pages on the right).  For this URL I
>> >> see no errors in the log.
>> >>
>> >> yours,
>> >> anton.
>> >>
>> >> > On Tue, Dec 1, 2009 at 6:29 AM, Anton Muhin 
>> >> > wrote:>>
>> >> >> Dear chromiumers,
>> >> >>
>> >> >> Relatively recently I stopped seeing information about revisions for
>> >> >> build bot graphs.  If I open our debugger it reports something like:
>> >> >>
>> >> >> Uncaught TypeError: Cannot call method 'slice' of undefined.
>> >> >>
>> >> >> Line number it gives is incorrect.  Most probably it should be
>> >> >> actually
>> >> >> line 50:
>> >> >>
>> >> >> function received_data(data) {
>> >> >>  var tbody = document.getElementById("tbody");
>> >> >>  data.replace('\r', '');
>> >> >>
>> >> >>  var col_sums = [];
>> >> >>  var rows = data.split('\n');
>> >> >>
>> >> >>  for (var i = 0; i < rows.length; ++i) {
>> >> >>    var tr = document.createElement("TR");
>> >> >>
>> >> >>    var cols = rows[i].split(' ');
>> >> >>
>> >> >>    // cols[0] = page name
>> >> >>    // cols[1] = (mean+/-standard deviation):
>> >> >>    // cols[2...] = individual runs
>> >> >>
>> >> >>    // Require at least the page name and statistics.
>> >> >>    if (cols.length < 2)
>> >> >>      continue;
>> >> >>
>> >> >>    var page = cols[0];
>> >> >>    var values = cols[1].split('+/-');
>> >> >>    append_column(tr, page, col_sums, -1);
>> >> >>    append_column(tr, values[0].slice(1), col_sums, 0);  // HERE
>> >> >> WE'RE
>> >> >> FAILING
>> >> >>    append_column(tr, values[1].slice(0,-2), col_sums, 1);
>> >> >>
>> >> >>    for (var j = 2; j < cols.length; ++j)
>> >> >>      append_column(tr, cols[j], col_sums, j);
>> >> >>
>> >> >>    tbody.appendChild(tr);
>> >> >>  }
>> >> >>
>> >> >> It looks like data are returned in a wrong format.  Chances are it
>> >> >> is
>> >> >> a problem with DOM or Dromaeo benchmarks, but I cannot see rev info
>> >> >> for other build bots either (e.g. Page Cycler Moz), there is no
>> >> >> exception however.
>> >> >>
>> >> >> Any ideas what goes on?
>> >> >>
>> >> >> 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 Developers mailing list: chromium-dev@googlegroups.com
> View archives, change email options, or unsubscribe:
> http://groups.google.com/group/chromium-dev

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


Re: [chromium-dev] Design doc: Geolocation

2009-12-01 Thread Evan Martin
On Tue, Dec 1, 2009 at 4:13 PM, Glen Murphy  wrote:
>> 1) Why green?  The other infobars in the product are yellow.
>> Historically, green in browsers has signaled extended validation.
>
> We had intended to use a few differently-colored infobars for a while,
> but a more recent discussion (which got out of sync with the geo team;
> my fault) has trimmed it to two - a neutral color (chrome blue) and
> yellow. The latter being used for errors and warnings, the former for
> more functional messages like this.

What about users who are using themes?

(On Mac and Linux, the neutral color is typically gray, not blue.)

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


Re: [chromium-dev] Symbolized backtrace on Linux chromium?

2009-11-30 Thread Evan Martin
On Mon, Nov 30, 2009 at 11:16 AM, Michael Moss  wrote:
>> We have a test covering this:
>>  ./out/Debug/base_unittests --gtest_filter=StackTrace*
>> Running it locally reveals that it is broken -- but the bots still work?
>
> It looks like there isn't a debug builder that runs base_unittests.
> It's the release build that passes.

Since I (probably) broke this, I will fix it.

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


Re: [chromium-dev] Use of external libICU

2009-11-30 Thread Evan Martin
On Mon, Nov 30, 2009 at 9:50 AM, Mark Mentovai  wrote:
> nikuli...@gmail.com wrote:
>> LibICU is almost ubiquitous in non microsoft OS distributions, usually
>> more upstream and ahead of upstream with bugs subsequent to every ICU
>> release. Also it takes a lot of time to compile.
>>
>> Is there any point of having it bundled?
>
> Our version of ICU is patched relative to the upstream version.
> "Distribution" versions of ICU don't contain our patches.
>
> See http://crbug.com/28294 for the details.

And in general, see
  http://code.google.com/p/chromium/wiki/LinuxPackaging
for a description of which libraries we can't use from the system (ICU
is on that list for the above reason).  (Warning: info might be out of
date, but at least I'm tryin'.)

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


Re: [chromium-dev] Symbolized backtrace on Linux chromium?

2009-11-30 Thread Evan Martin
On Mon, Nov 30, 2009 at 9:37 AM, Chris Bentzel  wrote:
> When DCHECK's trigger on my debug chromium build, I get an unsymbolized
> stacktrace like
> [7036:25234:31462940569:FATAL:net/ocsp/nss_ocsp.cc(251)] Check failed:
> !request_.
> [7036:25234:31462940569:FATAL:net/ocsp/nss_ocsp.cc(251)] Check failed:
> !request_.
> Backtrace:
> out/Debug/chrome [0x8d7d9bc]
> out/Debug/chrome [0x8d99838]
> out/Debug/chrome [0x8fba726]
[...]
> Is there a reason I'm not getting symbols to display here?

We have a test covering this:
 ./out/Debug/base_unittests --gtest_filter=StackTrace*
Running it locally reveals that it is broken -- but the bots still work?
I am confused.  It was likely r32254.  Maybe you can experiment with
putting that flag into the Release-only section of the
build/common.gypi?

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


Re: [chromium-dev] Re: NameError: name 'ffmpeg_asm_lib' is not defined

2009-11-28 Thread Evan Martin
2009/11/27 Maciej Bliziński :
> The next problem: there's the /usr/bin/gcc path hardcoded somewhere:
>
[snip]
>
> sh: /usr/bin/gcc: not found
> Failed to read names from file: /home/maciej/src/opencsw/pkg/chromium/
> trunk/work/build-isa-sparcv8/chromium/src/third_party/WebKit/WebCore/
> html/HTMLTagNames.in at /home/maciej/src/opencsw/pkg/chromium/trunk/
> work/build-isa-sparcv8/chromium/src/third_party/WebKit/WebCore/dom/
> make_names.pl line 213.

It's printed right there.

$ grep gcc third_party/WebKit/WebCore/dom/make_names.pl
my $preprocessor = "/usr/bin/gcc -E -P -x c++";

It appears that make_names.pl takes a command-line argument to
override that, so you might be able to hack the caller of it (try
grepping the .gyp* files in third_party/WebKit).  Or, if you'd like to
fix it properly, open a bug with WebKit: http://bugs.webkit.org.

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


Re: [chromium-dev] Warning message when running chrome in gdb

2009-11-27 Thread Evan Martin
I have never encountered this.  Have you tried searching for the error message?

On Fri, Nov 27, 2009 at 4:31 PM, n179911  wrote:
> Hi,
> I am trying to run chrome under ubuntu. But I see a lot of 'internal error
> in the warning message'.  Can you please tell me what does those means and
> how can I fix those?
> Thank you.
> $ gdb out/Debug/chrome
>
> warning: (Internal error: pc 0xed21a0 in read in psymtab, but not in
> symtab.)
> warning: (Internal error: pc 0xed21a1 in read in psymtab, but not in
> symtab.)
> warning: (Internal error: pc 0xed21a0 in read in psymtab, but not in
> symtab.)
> warning: (Internal error: pc 0xed21a1 in read in psymtab, but not in
> symtab.)
> warning: (Internal error: pc 0xed21a0 in read in psymtab, but not in
> symtab.)
> warning: (Internal error: pc 0xed21a1 in read in psymtab, but not in
> symtab.)
>
> --
> Chromium Developers mailing list: chromium-dev@googlegroups.com
> View archives, change email options, or unsubscribe:
> http://groups.google.com/group/chromium-dev

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


Re: [chromium-dev] adding packages

2009-11-25 Thread Evan Martin
I think you've accidentally used the wrong mailing list.

Please see
http://www.chromium.org/chromium-os/discussion-groups

On Tue, Nov 24, 2009 at 3:45 PM, b23prodtm  wrote:
> HI!
> I'm adding packages to my local repo. Since I've read the doc
> tutorial : 
> http://sites.google.com/a/chromium.org/dev/chromium-os/how-tos-and-troubleshooting/add-a-new-package/package-management
> I'd like to suggest a modification (no WIKI ?) to the paragraph
> "Modify the package list for the chroot dev environment"
> by diff'ing the package repo it could be added :
>>>quote :
>    src/scripts/list_installed_packages.sh > /tmp/newpacks
>    diff -u ~/trunk/src/package_repo/repo_list_dev.txt /tmp/newpacks >
> repo_list_dev.diff
> make a backup :
>    cp src/package_repo/repo_list_dev.txt src/package_repo/
> repo_list_dev.old
> patch the repo list :
>    patch -p0 src/package_repo/repo_list_dev.txt < repo_list_dev.diff
> <<
> as made to patch the repo lists.
>
> thank you !
>
> --
> Chromium Developers mailing list: chromium-dev@googlegroups.com
> View archives, change email options, or unsubscribe:
>    http://groups.google.com/group/chromium-dev
>

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


Re: [chromium-dev] NameError: name 'ffmpeg_asm_lib' is not defined

2009-11-24 Thread Evan Martin
We currently won't build on Solaris; ffmpeg is the least of your
worries.  Someone contributed patches to build on FreeBSD that might
get you closer, but the patch is enormous (~100kb, I think?) so I've
been refactoring bits of it into reviewable chunks (very slowly in my
free time).

2009/11/24 Maciej Bliziński :
> Hello chromium-dev,
>
> I've started to work on building Chromium on Solaris.  I've recently
> finished completing the prerequisites (NSPR and NSS), and I'm moving
> forward with the Linux build descriptions.  I'm using a tarball
> distribution.  I don't run gclient sync, but gclient runhooks --
> force.  The instructions say that I'm going to miss on platform-
> specific dependencies, but I guess I'm going miss on them anyway.
>
> My current problem looks as follows:
>
> mac...@netra ~/src/opencsw/pkg/chromium/trunk $ gmake build
> gmake[1]: Entering directory `/home/maciej/src/opencsw/pkg/chromium/
> trunk'
> [= NOW BUILDING: chromium-0.32797 MODULATION isa-sparcv8:
> ISA=sparcv8 =]
>        [extract-modulated] complete for chromium.
>        [patch-modulated] complete for chromium.
> (cd work/build-isa-sparcv8/home/chrome-svn/tarball/chromium \
>                && \
>                PATH=$PATH:/home/maciej/src/opencsw/pkg/chromium/trunk/
> work/build-isa-sparcv8/depot_tools:/opt/csw/gcc4/bin \
>                GYP_GENERATORS=make \
>        gclient runhooks --force)
>
>  running '/opt/csw/bin/python src/build/gyp_chromium' in '/
> home/maciej/src/opencsw/pkg/chromium/trunk/work/build-isa-sparcv8/home/
> chrome-svn/tarball/chromium'
> Updating projects from gyp files...
> Traceback (most recent call last):
>  File "src/build/gyp_chromium", line 79, in 
>    sys.exit(gyp.main(args))
>  File "src/tools/gyp/pylib/gyp/__init__.py", line 423, in main
>    params, options.check)
>  File "src/tools/gyp/pylib/gyp/__init__.py", line 83, in Load
>    depth, generator_input_info, check)
>  File "src/tools/gyp/pylib/gyp/input.py", line 2004, in Load
>    depth, check)
>  File "src/tools/gyp/pylib/gyp/input.py", line 392, in
> LoadTargetBuildFile
>    includes, depth, check)
>  File "src/tools/gyp/pylib/gyp/input.py", line 392, in
> LoadTargetBuildFile
>    includes, depth, check)
>  File "src/tools/gyp/pylib/gyp/input.py", line 392, in
> LoadTargetBuildFile
>    includes, depth, check)
>  File "src/tools/gyp/pylib/gyp/input.py", line 350, in
> LoadTargetBuildFile
>    build_file_path)
>  File "src/tools/gyp/pylib/gyp/input.py", line 860, in
> ProcessVariablesAndConditionsInDict
>    ProcessConditionsInDict(the_dict, is_late, variables, build_file)
>  File "src/tools/gyp/pylib/gyp/input.py", line 737, in
> ProcessConditionsInDict
>    variables, build_file)
>  File "src/tools/gyp/pylib/gyp/input.py", line 886, in
> ProcessVariablesAndConditionsInDict
>    build_file)
>  File "src/tools/gyp/pylib/gyp/input.py", line 901, in
> ProcessVariablesAndConditionsInList
>    ProcessVariablesAndConditionsInDict(item, is_late, variables,
> build_file)
>  File "src/tools/gyp/pylib/gyp/input.py", line 860, in
> ProcessVariablesAndConditionsInDict
>    ProcessConditionsInDict(the_dict, is_late, variables, build_file)
>  File "src/tools/gyp/pylib/gyp/input.py", line 737, in
> ProcessConditionsInDict
>    variables, build_file)
>  File "src/tools/gyp/pylib/gyp/input.py", line 879, in
> ProcessVariablesAndConditionsInDict
>    build_file, key)
>  File "src/tools/gyp/pylib/gyp/input.py", line 860, in
> ProcessVariablesAndConditionsInDict
>    ProcessConditionsInDict(the_dict, is_late, variables, build_file)
>  File "src/tools/gyp/pylib/gyp/input.py", line 718, in
> ProcessConditionsInDict
>    if eval(ast_code, {'__builtins__': None}, variables):
>  File "", line 1, in 
> NameError: name 'ffmpeg_asm_lib' is not defined while evaluating
> condition 'ffmpeg_asm_lib==1' in src/third_party/ffmpeg/ffmpeg.gyp
> while loading dependencies of src/media/media.gyp while loading
> dependencies of src/chrome/chrome.gyp while loading dependencies of
> src/build/all.gyp while trying to load src/build/all.gyp
> failed to run command: /opt/csw/bin/python src/build/gyp_chromium
> gmake[1]: *** [gclient-runhooks] Error 2
> gmake[1]: Leaving directory `/home/maciej/src/opencsw/pkg/chromium/
> trunk'
> gmake: *** [build-isa-sparcv8] Error 2
>
> My guess is that I need to build chromium-specific ffmpeg on Solaris
> as a prerequisite, by following src/third_party/ffmpeg/
> README.chromium.  Is that correct?
>
> Maciej
>
> --
> Chromium Developers mailing list: chromium-dev@googlegroups.com
> View archives, change email options, or unsubscribe:
>    http://groups.google.com/group/chromium-dev
>

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


Re: [chromium-dev] SQLite compression in history database.

2009-11-24 Thread Evan Martin
Due to bugs we've seen users with 10gb history files, which may
contribute to complaints.
  http://code.google.com/p/chromium/issues/detail?id=24947

Even if compression ends up being pretty slow, you could imagine using
it for our archived history (history more than a month old).

On Tue, Nov 24, 2009 at 10:21 AM, Elliot Glaysher (Chromium)
 wrote:
> I'm all for it. I vaguely remember people complaining about the size
> of our history files, and most of my history files are over 50M.
>
> -- Elliot
>
> On Tue, Nov 24, 2009 at 10:13 AM, Scott Hess  wrote:
>> Long ago when developing fts1, I experimented with using zlib
>> compression as part of the implementation.  It fell by the wayside
>> because it really didn't provide enough performance improvement (I
>> needed an order of magnitude, it didn't provide it), and because of
>> licensing issues (fts1/2/3 are part of core SQLite, which does not
>> include zlib).
>>
>> Chromium already has zlib, and I don't think there's any particular
>> reason not to hack our version of fts to support it.  Looking at my
>> October history file, I get the following (numbers are in megabytes):
>>
>> ls -lh History\ Index\ 2009-10
>> # -rw-r--r--@ 1 shess  eng    66M Nov 24 09:38 History Index 2009-10
>> .../sqlite3 History\ Index\ 2009-10
>> select 
>> round(sum(length(c0url)+length(c1title)+length(c2body))/1024.0/1024.0,2)
>> from pages_content;
>> # 34.9
>> select 
>> round(sum(length(compress(c0url))+length(compress(c1title))+length(compress(c2body)))/1024.0/1024.0,2)
>> from pages_content;
>> # 12.29
>> select round(sum(length(block))/1024.0/1024.0,2) from pages_segments;
>> # 24.6
>> select round(sum(length(compress(block)))/1024.0/1024.0,2) from 
>> pages_segments;
>> # 14.3
>>
>> pages_segments is the fts index.  Since it is consulted very
>> frequently, I'd be slightly nervous about compressing it.
>> pages_content is the document data, which is hit after the index (or
>> when doing a lookup by document id), so compressing it shouldn't have
>> much performance impact.
>>
>> Does this seem like a win worth pursuing?
>>
>> -scott
>>
>> --
>> Chromium Developers mailing list: chromium-dev@googlegroups.com
>> View archives, change email options, or unsubscribe:
>>    http://groups.google.com/group/chromium-dev
>>
>
> --
> Chromium Developers mailing list: chromium-dev@googlegroups.com
> View archives, change email options, or unsubscribe:
>    http://groups.google.com/group/chromium-dev
>

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


Re: [chromium-dev] How can I remove .o objects in linux

2009-11-22 Thread Evan Martin
On Sun, Nov 22, 2009 at 1:43 PM, Antoine Labour  wrote:
> On Sun, Nov 22, 2009 at 1:35 PM, Adam Langley  wrote:
>>
>> On Sun, Nov 22, 2009 at 1:23 PM, hap 497  wrote:
>> > Can you please tell me how can I remove all .o after the build?
>> > I tried 'make clean', but it said there is no 'clean' target'.
>>
>> % find out -type f -name "*.o" | xargs rm
>
> Note that all .o go into the build directory, 'out', that you can simply
> wipe.

I would LGTM a gyp patch that aliases "make clean" to "rm -rf out".

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


Re: [chromium-dev] whitlisting compilers for -Werror

2009-11-21 Thread Evan Martin
On Sat, Nov 21, 2009 at 11:59 AM, Peter Kasting  wrote:
> There is another fix, which is to disable to warning within the file or
> globally for GCC versions less than X.  GCC exposes a number of different
> macros and switches that let you determine the version precisely either from
> script or in the preprocessor, and we already have a file that holds
> compiler-specific magic.
> The reason this would be nice compared to the whitelist proposal is that it
> wouldn't produce false negatives.  The assumption is that there are only a
> small number of these kinds of cases, so enumerating them is not going to do
> awful things to our code.

This works for warnings we know about now, but not warnings that will
occur in the future, which is the larger problem.
I'd say we break the automated Ubuntu builds every couple of weeks
(and get an additional report from users at about that same rate).

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


[chromium-dev] whitlisting compilers for -Werror

2009-11-21 Thread Evan Martin
On Sat, Nov 21, 2009 at 7:21 AM, rahul  wrote:
>>I happen to find this warning very useful, just as I find our policy
>>to make warnings hard errors in our own code helpful.
> Yes, of course. That's a good practice. But what about the end-users
> who have to deal with warnings as hard errors.

I have been meaning to bring this up again.  I think I proposed this
before but was shot down.

We should whitelist known compiler versions that build successfully
with -Werror, and then turn it off for the rest.  Unless we have a
buildbot tracking a given compiler version, it is likely that -Werror
makes us unable to build with that version of the compiler.

Concrete proposal:
 - whitelist the compiler version used on our buildbots to always use -Werror
 - turn off -Werror by default on other compilers
 - make it easy to turn on -Werror back on if someone wants to fight
some warnings

I have been particularly frustrated with gcc warning bugs that have
been fixed in newer versions of gcc.  In older gccs, the following
code produces a "variable may be used uninitialized" warning depending
on your optimization settings.
  int x;
  { x = 3; }
  printf("%d\n", x);
The fix is to put in a redundant initialization of x, but people
(reasonably) will remove them when working on the code.
Here's a patch I've been working on to add these redundant initializers:
  
http://build.chromium.org/buildbot/try-server/builders/linux/builds/9235/steps/gclient/logs/patch
Smarter compilers already recognize the existing code is correct, but gcc warns.


Some example changes I have made in this area recently:
  "This is needed to work around a gcc bug when building with -Os."
(on the older gcc 4.3 only)
  http://src.chromium.org/viewvc/chrome?view=rev&revision=32186

  "fix a warning in the process_util unittest" (that only came up on
fta's build, not on our builds on ghardy or karmic)
  http://src.chromium.org/viewvc/chrome?view=rev&revision=32648

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


Re: [chromium-dev] gcl upload error

2009-11-21 Thread Evan Martin
A guess, but it looks like it's attempting to find your email address
out of your SVN authorization data, and that the computer you're on
has no SVN auth data.  Try something like "svn ls
--username=mycommitern...@chromium.org svn://..." and log in if it
prompts you.

On Sat, Nov 21, 2009 at 12:46 AM, Munjal Doshi  wrote:
> I get the following error when running gcl upload when it tries to send the
> job to try server after successfully uploading files:
> Traceback (most recent call last):
>   File "C:\Tools\depot_tools\gcl.py", line 1273, in ?
>     sys.exit(main())
>   File "C:\Tools\depot_tools\gcl.py", line 1244, in main
>     UploadCL(change_info, argv[3:])
>   File "C:\Tools\depot_tools\gcl.py", line 865, in UploadCL
>     TryChange(change_info, trychange_args, swallow_exception=True)
>   File "C:\Tools\depot_tools\gcl.py", line 901, in TryChange
>     prog='gcl try')
>   File "C:\Tools\depot_tools\trychange.py", line 526, in TryChange
>     options.scm.ProcessOptions()
>   File "C:\Tools\depot_tools\trychange.py", line 177, in ProcessOptions
>     self.options.email = scm.SVN.GetEmail(gcl.GetRepositoryRoot())
>   File "C:\Tools\depot_tools\scm.py", line 450, in GetEmail
>     for credfile in os.listdir(auth_dir):
> WindowsError: [Errno 3] The system cannot find the path specified:
> 'C:\\Users\\munjal\\AppData\\Roaming\\auth\\svn.simpl
> e/*.*'
> Does anyone know what hte problem is?
> -Munjal
>
> --
> Chromium Developers mailing list: chromium-dev@googlegroups.com
> View archives, change email options, or unsubscribe:
> http://groups.google.com/group/chromium-dev

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


Re: [chromium-dev] class has virtual method but non-virtual destructor

2009-11-20 Thread Evan Martin
On Fri, Nov 20, 2009 at 4:23 AM, rahul  wrote:
> I was trying to compile chromium today on Linux and I got this error.
> This error occurred because of -Werror CFLAG set in the Makefile. I
> remedied by writing a one-liner to delete all occurrences of -Werror
> from CFLAGS in all Makefiles.
>
> However, this error intrigued me. I saw through the code and the
> classes in question have declared virtual methods but haven't declared
> a destructor. In that case, the compiler generates the destructor.
>
>
> Base *b = new Sub();
> delete b;
>
> To the best of my knowledge, if Base is the class which defines
> virtual methods but non-virtual destructor, delete can cause a memory
> leak if Sub happens to be taking more memory than Base. I think  that
> the destructor for a class with virtual methods has either to be
> "public virtual" or "protected non-virtual" for the proper freeing of
> memory.
>
>
> Would someone help me clarify this?
>
> I know there might be some scenarios where this can be done
> intentionally but looks like there are more arguments for adding a
> virtual destructor than not adding one. I see that this is done for
> the Delegates. Also, if this is one of the intended special cases, can
> someone explain how to compile chromium  then? Deleting -Werror from
> CFLAGS is an ugly hack at best.

Your analysis is correct.  However, a virtual destructor is not needed
in the case where you never delete through the Base*.  It turns out
for our codebase that is very common (due to lots of "observer"-like
patterns), so we decided to not rely on this compiler warning.  It's
only caused horrible bugs once or twice!  :)

The correct fix would be to disable this particular warning in
build/common.gypi.
However, I'm puzzled why nobody else has encountered the problem
you're mentioning.
Can you provide some details about your compiler, system configuration, etc.?

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


Re: [chromium-dev] Some people still making new toolstrip-based extensions

2009-11-20 Thread Evan Martin
On Thu, Nov 19, 2009 at 5:58 PM, Aaron Boodman  wrote:
> We're going to have to explain again when we actually remove
> toolstrips, because some people won't have seen the first announcement
> (understandably):
>
> http://www.guyvider.com/2009/11/i-love-chrome-extensions.html

It wouldn't be too hard to cook up a patch that makes all toolstrips
contain "WARNING: Toolstrips will be removed soon, migrate your
extensions" before the extensions are displayed.  After all, part of
the reason to remove them is because they have all of that extra empty
space...

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


[chromium-dev] StringPrintf and friends are now checked

2009-11-19 Thread Evan Martin
GCC-compiled code (Mac/Linux) will now warn / fail to compile if you
pass the wrong types to our printf-like functions (StringPrintf,
etc.).  This would have caught at least two bugs I've seen in the
past.

There is one twist to be aware of if you haven't seen it before.  The
% format specifiers for printing int64s and size_ts vary between
platforms, so they are wrapped in macros from C99.
See base/format_macros.h.  In brief, there are macros starting with
PRI that can be interpolated into format strings.
E.g.:
  printf("This is a percent-x-styled int64: %" PRIx64 "\n", my_int64);
If you run into any trouble feel free to ping me for help.  If you
develop on Windows, this checking will frequently only manifest as
trybot warnings, so please be careful.

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


[chromium-dev] user-contributed translations

2009-11-19 Thread Evan Martin
I persistently get questions from users wanting to provide
localization for Chrome.

I believe our answer is that we don't accept user-contributed translations.
Is there a FAQ somewhere I can link these users to?  Where would such
a FAQ belong?

Also, another option for these users is to write their own
translations and let downstream (Chromium distributors) ship them.
For example, note the hundreds of translations in Ubuntu:
  https://translations.launchpad.net/ubuntu/karmic/+translations
Does anyone have pointers on how they might be able to set up these
translations?

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


Re: [chromium-dev] support for WATCHLISTS in git-cl

2009-11-19 Thread Evan Martin
On Thu, Nov 19, 2009 at 12:56 PM, Paweł Hajdan Jr.
 wrote:
> It turns out that WATCHLISTS aren't fully effective because git-cl doesn't
> support them. It doesn't look very hard to implement the support for git-cl
> because there is already a watchlists.py file, but then there are some
> questions:
> - should the watchlists.py file (from depot_tools) be copied to the git-cl
> repo or should git-cl try to locate it (upload.py is copied)

Can we hook it into the PRESUBMIT script instead?  That seems cleaner to me.

> - should watchlists.py be integrated into upload.py (probably not)?

The metric I use is: is this something used by other users of git-cl?
I think watchlists are not.

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


Re: [chromium-dev] huge binary drop of native client code

2009-11-18 Thread Evan Martin
On Wed, Nov 18, 2009 at 4:43 PM, Bradley Nelson  wrote:
> Backing things out shortly.

No rush; if you need the code, it's ok.  (It'd be nice if you used
deps_os though.)

> It didn't break nacl's trybots or waterfall because they're less pared down,
> and probably got thru a try job on mac by chance on the DEPs roll.
> I think the right way to avoid this in the future would be a common source
> size check in both nacl and chrome's PRESUBMIT.py
> I'll add such a thing shortly.

Thank you!

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


[chromium-dev] huge binary drop of native client code

2009-11-18 Thread Evan Martin
It seems someone (not blaming them in particular) checked in 300mb of
Windows 64 binaries in the native client tree.
This check-in also seems to have hosed the trybots (they time out
while attempting to fetch this data).
  A
/b/slave/linux/build/src/native_client/src/third_party/mingw-w64/mingw-w64-src_20091116.tar.bz2
  command timed out: 300 seconds without output, killing pid 15342
  elapsedTime=978.505349
  update failed, trying 4 more times after 300 seconds


Rather than the obvious rant, I'd like to start a thread on something
constructive:
What can we do to protect our tree from this sort of thing in the future?
- Do we need a trybot for NaCL trunk like we do for WebKit?
- Would presubmit scripts help?  (I guess that won't help since
they're in DEPS?)
- Could a style guide that prohibits checking in large binaries help
reviewers catch this?
- Any other ideas?

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


Re: [chromium-dev] building without svg

2009-11-17 Thread Evan Martin
On Tue, Nov 17, 2009 at 10:49 AM, Jonathan Dixon  wrote:
> This is tangential to the core of your question, but just to check, are
> asserts disabled on linux release builds?

This is a good thing to check!  But it looks like they are.

> There are numerous calls to ASSERT within the templated functions in
> SVGAnimateedProperty so it seems they could easily blow up the binary size
> if the template is instantiated many times.

Eric the SVG master was not surprised this file shows up; he says it
is all templates and is instantiated once per property in SVG.  On the
other hand, he fairly points out that maybe there are other bits to
worry about first.  I was hoping there was some low hanging fruit.  (I
am still suspicious of logging.h.)

I am investigating further more and will post again once I have some
better results.

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


Re: [chromium-dev] new matrix-view perf dashboard

2009-11-16 Thread Evan Martin
On Mon, Nov 16, 2009 at 4:05 PM, Steven Knight  wrote:
> Let me know if you notice any problems or have any suggestions for making
> this more useful.

I've noticed it's basically impossible to load this page over a
moderately fast internet connection because of the quantity of data
displayed.
I see 13*19 = 117 iframes, each with HTML and a large JSON data file to load.

It'd be nice if there was a view that showed some higher-level
overviews that let you drill down.
Even splitting it by OS would be handy.

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


Re: [chromium-dev] building without svg

2009-11-16 Thread Evan Martin
You're off by a digit -- read only data is 2mb.

On Mon, Nov 16, 2009 at 3:27 PM, Eric Seidel  wrote:
> Yay data!  Thank you Evan.
>
> If I'm reading your email correctly, your script can only account for
> 3MB (7.5%) of our binary.  :(  26.5MB (67%) is unknown to your script
> and 20MB of what nm does see is labeled "read only data".  Of the 3MB
> nm does understand, 700K (1.7% of the total final binary) is
> SVGAnimatedProperty.h.
>
> Seems like we need to know where the other 92.5% of our binary is
> going before we take action against specific files.
>
> -eric
>
> On Mon, Nov 16, 2009 at 12:33 AM, Evan Martin  wrote:
>> I spent some quality time with nm.  With it I can take a release
>> binary (so all the inlining and optimizations like dead code removal
>> have been done) and display symbol sizes as well as which file they're
>> from.
>>
>> My Release Linux build stripped is 39.5mb.  (The size bots show ~44mb,
>> which I think is a Chrome vs Chromium thing.  It is curious how the
>> Windows binary is nearly half the size of the Linux or Mac one.)
>>
>> My hacky script managed to total up stats for only 23mb of the binary.
>>  I'm not sure where the rest is going but it could be the ICU data
>> tables or even just references to external functions in shared
>> objects.
>>
>> Below are the top offenders, in bytes, contributing to binary size
>> (recall again that this is a release build), as measured by how nm
>> attributes symbols to source files.  Note that it didn't attribute a
>> bunch of code (for reasons I don't understand) and those are summed in
>> the plain "code" entry below.
>>
>> And like I had guessed, SVG at the top!  I promise I didn't cook these
>> to confirm my own hypothesis.  Also note that much of the rest is
>> template-heavy code -- I was surprised to see logging.h scores almost
>> 100kb.
>>
>>  2043226 read only data
>>  762291 third_party/WebKit/WebCore/svg/SVGAnimatedProperty.h
>>  394334 /usr/include/c++/4.4/bits/vector.tcc
>>  270298 /usr/include/c++/4.4/bits/stl_tree.h
>>  262889 uninitialized data
>>  230389 code
>>  196369 ./base/task.h
>>  187574 third_party/WebKit/JavaScriptCore/wtf/HashTable.h
>>  184647 third_party/WebKit/JavaScriptCore/wtf/HashMap.h
>>  157126 ./ipc/ipc_message_utils.h
>>  140424 v8/src/x64/codegen-x64.cc
>>  136807 third_party/libxml/xmlschemas.c
>>  117240 third_party/WebKit/WebCore/css/CSSStyleSelector.cpp
>>  113895 v8/src/runtime.cc
>>  103056 chrome/renderer/render_view.cc
>>   97702 ./base/logging.h
>>   95653 third_party/glew/src/glew.c
>>   95389 third_party/libxml/parser.c
>>   89488 /usr/include/c++/4.4/bits/stl_algo.h
>>   84431 third_party/WebKit/JavaScriptCore/wtf/Vector.h
>>   83865 v8/src/objects.cc
>>   82528 third_party/icu/source/common/uchar_props_data.c
>>   82042 third_party/WebKit/WebCore/css/CSSParser.cpp
>>   81699 third_party/WebKit/WebCore/dom/Document.cpp
>>   79284 third_party/libxml/xpath.c
>>   73821 third_party/icu/source/i18n/ucol.cpp
>>   73796 third_party/WebKit/WebCore/rendering/RenderBlock.cpp
>>   68578 third_party/WebKit/WebCore/loader/FrameLoader.cpp
>>   59865 third_party/libxml/HTMLparser.c
>>   59048 third_party/WebKit/WebCore/svg/SVGAnimatedTemplate.h
>>   58057 third_party/libxml/relaxng.c
>>   57535 
>> out/Release/obj/gen/protoc_out/chrome/browser/sync/protocol/sync.pb.cc
>>   56253 v8/src/parser.cc
>>   56000 third_party/icu/source/i18n/decimfmt.cpp
>>   54954 global ctors
>>   51952 v8/src/api.cc
>>
>>
>> On Fri, Nov 13, 2009 at 2:39 PM, Evan Martin  wrote:
>>> We track total binary size here:
>>>  http://build.chromium.org/buildbot/perf/dashboard/sizes.html
>>>
>>> I don't know of any place we track per-module sizes.
>>>
>>> On Fri, Nov 13, 2009 at 2:33 PM, Eric Seidel  wrote:
>>>> Do we have any hard data about where our binary size goes?  It seems
>>>> such data would be very useful.
>>>>
>>>> On Fri, Nov 13, 2009 at 2:14 PM, Evan Martin  wrote:
>>>>> I measured that SVG is nearly a sixth of the binary size of a Chrome
>>>>> debug build.  That's not only more compile time, it's also more link
>>>>> time for each incremental link and more time for the debugger to grind
>>>>> it when starting gdb.  For my day-to-day debugging I would like to
>>>>> build without SVG (and many other bits, but let's start with SVG).
>>>>&

Re: [chromium-dev] building without svg

2009-11-16 Thread Evan Martin
I spent some quality time with nm.  With it I can take a release
binary (so all the inlining and optimizations like dead code removal
have been done) and display symbol sizes as well as which file they're
from.

My Release Linux build stripped is 39.5mb.  (The size bots show ~44mb,
which I think is a Chrome vs Chromium thing.  It is curious how the
Windows binary is nearly half the size of the Linux or Mac one.)

My hacky script managed to total up stats for only 23mb of the binary.
 I'm not sure where the rest is going but it could be the ICU data
tables or even just references to external functions in shared
objects.

Below are the top offenders, in bytes, contributing to binary size
(recall again that this is a release build), as measured by how nm
attributes symbols to source files.  Note that it didn't attribute a
bunch of code (for reasons I don't understand) and those are summed in
the plain "code" entry below.

And like I had guessed, SVG at the top!  I promise I didn't cook these
to confirm my own hypothesis.  Also note that much of the rest is
template-heavy code -- I was surprised to see logging.h scores almost
100kb.

 2043226 read only data
  762291 third_party/WebKit/WebCore/svg/SVGAnimatedProperty.h
  394334 /usr/include/c++/4.4/bits/vector.tcc
  270298 /usr/include/c++/4.4/bits/stl_tree.h
  262889 uninitialized data
  230389 code
  196369 ./base/task.h
  187574 third_party/WebKit/JavaScriptCore/wtf/HashTable.h
  184647 third_party/WebKit/JavaScriptCore/wtf/HashMap.h
  157126 ./ipc/ipc_message_utils.h
  140424 v8/src/x64/codegen-x64.cc
  136807 third_party/libxml/xmlschemas.c
  117240 third_party/WebKit/WebCore/css/CSSStyleSelector.cpp
  113895 v8/src/runtime.cc
  103056 chrome/renderer/render_view.cc
   97702 ./base/logging.h
   95653 third_party/glew/src/glew.c
   95389 third_party/libxml/parser.c
   89488 /usr/include/c++/4.4/bits/stl_algo.h
   84431 third_party/WebKit/JavaScriptCore/wtf/Vector.h
   83865 v8/src/objects.cc
   82528 third_party/icu/source/common/uchar_props_data.c
   82042 third_party/WebKit/WebCore/css/CSSParser.cpp
   81699 third_party/WebKit/WebCore/dom/Document.cpp
   79284 third_party/libxml/xpath.c
   73821 third_party/icu/source/i18n/ucol.cpp
   73796 third_party/WebKit/WebCore/rendering/RenderBlock.cpp
   68578 third_party/WebKit/WebCore/loader/FrameLoader.cpp
   59865 third_party/libxml/HTMLparser.c
   59048 third_party/WebKit/WebCore/svg/SVGAnimatedTemplate.h
   58057 third_party/libxml/relaxng.c
   57535 out/Release/obj/gen/protoc_out/chrome/browser/sync/protocol/sync.pb.cc
   56253 v8/src/parser.cc
   56000 third_party/icu/source/i18n/decimfmt.cpp
   54954 global ctors
   51952 v8/src/api.cc


On Fri, Nov 13, 2009 at 2:39 PM, Evan Martin  wrote:
> We track total binary size here:
>  http://build.chromium.org/buildbot/perf/dashboard/sizes.html
>
> I don't know of any place we track per-module sizes.
>
> On Fri, Nov 13, 2009 at 2:33 PM, Eric Seidel  wrote:
>> Do we have any hard data about where our binary size goes?  It seems
>> such data would be very useful.
>>
>> On Fri, Nov 13, 2009 at 2:14 PM, Evan Martin  wrote:
>>> I measured that SVG is nearly a sixth of the binary size of a Chrome
>>> debug build.  That's not only more compile time, it's also more link
>>> time for each incremental link and more time for the debugger to grind
>>> it when starting gdb.  For my day-to-day debugging I would like to
>>> build without SVG (and many other bits, but let's start with SVG).
>>>
>>> I put on one obvious patch and one patch I'm not sure about at
>>>  https://bugs.webkit.org/show_bug.cgi?id=31490
>>>
>>> Does anyone have thoughts about the right way to disable SVG in the GYP 
>>> files?
>>> Here's the hacky second patch mentioned above:
>>>  https://bug-31490-attachments.webkit.org/attachment.cgi?id=43196
>>> In particular, I'm not sure of the right way to conditionally build
>>> the SVGNames bits.
>>>
>>> I've seen in some cases files are completely wrapped with "#if
>>> ENABLE(FOO)"; do you know when that is appropriate?
>>>
>>> --
>>> Chromium Developers mailing list: chromium-dev@googlegroups.com
>>> View archives, change email options, or unsubscribe:
>>>    http://groups.google.com/group/chromium-dev
>>>
>>
>

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


Re: [chromium-dev] building without svg

2009-11-13 Thread Evan Martin
We track total binary size here:
  http://build.chromium.org/buildbot/perf/dashboard/sizes.html

I don't know of any place we track per-module sizes.

On Fri, Nov 13, 2009 at 2:33 PM, Eric Seidel  wrote:
> Do we have any hard data about where our binary size goes?  It seems
> such data would be very useful.
>
> On Fri, Nov 13, 2009 at 2:14 PM, Evan Martin  wrote:
>> I measured that SVG is nearly a sixth of the binary size of a Chrome
>> debug build.  That's not only more compile time, it's also more link
>> time for each incremental link and more time for the debugger to grind
>> it when starting gdb.  For my day-to-day debugging I would like to
>> build without SVG (and many other bits, but let's start with SVG).
>>
>> I put on one obvious patch and one patch I'm not sure about at
>>  https://bugs.webkit.org/show_bug.cgi?id=31490
>>
>> Does anyone have thoughts about the right way to disable SVG in the GYP 
>> files?
>> Here's the hacky second patch mentioned above:
>>  https://bug-31490-attachments.webkit.org/attachment.cgi?id=43196
>> In particular, I'm not sure of the right way to conditionally build
>> the SVGNames bits.
>>
>> I've seen in some cases files are completely wrapped with "#if
>> ENABLE(FOO)"; do you know when that is appropriate?
>>
>> --
>> Chromium Developers mailing list: chromium-dev@googlegroups.com
>> View archives, change email options, or unsubscribe:
>>    http://groups.google.com/group/chromium-dev
>>
>

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


[chromium-dev] building without svg

2009-11-13 Thread Evan Martin
I measured that SVG is nearly a sixth of the binary size of a Chrome
debug build.  That's not only more compile time, it's also more link
time for each incremental link and more time for the debugger to grind
it when starting gdb.  For my day-to-day debugging I would like to
build without SVG (and many other bits, but let's start with SVG).

I put on one obvious patch and one patch I'm not sure about at
  https://bugs.webkit.org/show_bug.cgi?id=31490

Does anyone have thoughts about the right way to disable SVG in the GYP files?
Here's the hacky second patch mentioned above:
  https://bug-31490-attachments.webkit.org/attachment.cgi?id=43196
In particular, I'm not sure of the right way to conditionally build
the SVGNames bits.

I've seen in some cases files are completely wrapped with "#if
ENABLE(FOO)"; do you know when that is appropriate?

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


Re: [chromium-dev] Re: refactoring and git

2009-11-10 Thread Evan Martin
On Fri, Nov 6, 2009 at 10:50 AM, Yaar Schnitman  wrote:
> Git is totally confusing my renames and new files. Take a look:
>  .../{WebSearchableFormData.h => WebElement.h}      |   49 -
>  webkit/api/public/WebSearchableFormData.h          |    4 +-
>  webkit/api/public/{WebNode.h => WebInputElement.h} |   51 --
>  webkit/api/public/WebNode.h                        |   39 ++--
>  ...sswordAutocompleteListener.h => WebElement.cpp} |   33 ---
>  .../WebPasswordAutocompleteListener.h}             |   14 ++-
>  .../api/src/{WebNode.cpp => WebInputElement.cpp}   |   56 +--
>  webkit/api/src/WebNode.cpp                         |   14 +++
> And I didn't even move or deleted the files that git thinks I renamed (e.g.
> WebNode.h is alive and well).
> Is there any way to fix that?

> Will it actually create that mess in svn too
> when I git cl dcommit? I did mess up git cl upload...

In general, yes.  I don't know your particular problem but I agree
"something looks messed up".

-- 
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: [gyp-developer] Coping with configurations differences in sources

2009-11-10 Thread Evan Martin
On Mon, Nov 9, 2009 at 6:38 PM, Bradley Nelson  wrote:
> Currently they are porting base + app to 64-bit for windows.
> They only need a limited subset of functionality for nacl, so they have only
> made some source files 64-bit clean.
> They would like to simply disable the rest for 64-bit (at least for now).

We are 64-bit clean on Linux; I would expect much of base is shared?
My recollection is it only took Dean (and Joel?) a week or two to get
us the rest of the way to 64-bit clean.

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


Re: [chromium-dev] Re: 437k files checked out for an official build

2009-11-10 Thread Evan Martin
BTW, the trick I always use for deleting directories on Windows 'cause
it's so slow is:
  mv dirname foo; rm -rf foo &
that way you can start your build or whatever again immediately,
because the target directory is "gone" immediately.

On Tue, Nov 10, 2009 at 10:39 AM, Evan Martin  wrote:
> Note in Anthony's mail he said he was clobbering the build directory,
> not the checkout.
>
> I do not have very many files in my build directories:
>
> $ find Debug | wc -l
> 10499
> $ find Release | wc -l
> 10290
>
> I think this is not "we have a lot of files because we do a lot of
> stuff" but rather that something has gone horribly wrong.
> Anthony, did you happen to notice any large collections of files that
> were in the delete list?
>
> On Mon, Nov 9, 2009 at 6:41 PM, Thomas Van Lenten  
> wrote:
>> Right, but the builds need these files to run the tests to make sure the
>> bits are good.
>> The problem is some tests leave logs and such in the tree after running, if
>> we could ensure nothing changes in the tree, we might be able to change the
>> scripts to simply update.  Or maybe we do the same gclient revert the
>> trybots do to make sure it is a completely clean tree for the build.
>> TVL
>>
>>
>> On Mon, Nov 9, 2009 at 9:35 PM, Jeremy Orlow  wrote:
>>>
>>> This is related to the thread (last Friday?) about making a light weight
>>> checkout of Chromium the default.
>>> Btw a quick look indicates that 100k are Google specific files (hermetic
>>> build environment and such).  200k are layout tests.  So that leaves "only"
>>> 150k filesprobably many of which are still test related.
>>> On Mon, Nov 9, 2009 at 5:37 PM, Anthony LaForge 
>>> wrote:
>>>>
>>>> Howdy,
>>>> Was just clobbering a build directory this morning, and noticed it was
>>>> deleting ~437 thousand files from a single Chrome official windows build
>>>> directory, which took approximately 20-30 minutes to do a delete.  Perhaps
>>>> my view isn't oriented correctly, but this seems like a very high number of
>>>> files.   This isn't a high priority issue for the 4.0 timeframe, indeed may
>>>> not be a high priority issue at all, but I'd like to turn it over to our
>>>> developer community to see if anyone has any thoughts on the matter.  So w/
>>>> that...
>>>> Kind Regards,
>>>>
>>>> Anthony Laforge
>>>> Technical Program Manager
>>>> Mountain View, CA
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>> --~--~-~--~~~---~--~~
>> Chromium Developers mailing list: chromium-dev@googlegroups.com
>> View archives, change email options, or unsubscribe:
>>     http://groups.google.com/group/chromium-dev
>>
>> -~--~~~~--~~--~--~---
>>
>>
>

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


Re: [chromium-dev] Re: 437k files checked out for an official build

2009-11-10 Thread Evan Martin
Note in Anthony's mail he said he was clobbering the build directory,
not the checkout.

I do not have very many files in my build directories:

$ find Debug | wc -l
10499
$ find Release | wc -l
10290

I think this is not "we have a lot of files because we do a lot of
stuff" but rather that something has gone horribly wrong.
Anthony, did you happen to notice any large collections of files that
were in the delete list?

On Mon, Nov 9, 2009 at 6:41 PM, Thomas Van Lenten  wrote:
> Right, but the builds need these files to run the tests to make sure the
> bits are good.
> The problem is some tests leave logs and such in the tree after running, if
> we could ensure nothing changes in the tree, we might be able to change the
> scripts to simply update.  Or maybe we do the same gclient revert the
> trybots do to make sure it is a completely clean tree for the build.
> TVL
>
>
> On Mon, Nov 9, 2009 at 9:35 PM, Jeremy Orlow  wrote:
>>
>> This is related to the thread (last Friday?) about making a light weight
>> checkout of Chromium the default.
>> Btw a quick look indicates that 100k are Google specific files (hermetic
>> build environment and such).  200k are layout tests.  So that leaves "only"
>> 150k filesprobably many of which are still test related.
>> On Mon, Nov 9, 2009 at 5:37 PM, Anthony LaForge 
>> wrote:
>>>
>>> Howdy,
>>> Was just clobbering a build directory this morning, and noticed it was
>>> deleting ~437 thousand files from a single Chrome official windows build
>>> directory, which took approximately 20-30 minutes to do a delete.  Perhaps
>>> my view isn't oriented correctly, but this seems like a very high number of
>>> files.   This isn't a high priority issue for the 4.0 timeframe, indeed may
>>> not be a high priority issue at all, but I'd like to turn it over to our
>>> developer community to see if anyone has any thoughts on the matter.  So w/
>>> that...
>>> Kind Regards,
>>>
>>> Anthony Laforge
>>> Technical Program Manager
>>> Mountain View, CA
>>>
>>>
>>
>>
>>
>
>
> --~--~-~--~~~---~--~~
> Chromium Developers mailing list: chromium-dev@googlegroups.com
> View archives, change email options, or unsubscribe:
>     http://groups.google.com/group/chromium-dev
>
> -~--~~~~--~~--~--~---
>
>

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


Re: [chromium-dev] Simulating keyboard input

2009-11-10 Thread Evan Martin
On Fri, Nov 6, 2009 at 8:16 AM, Simon Stewart  wrote:
> I've noticed a difference between firefox and chrome, and was
> wondering whether it was deliberate.

Generally, the way to resolve these issues is to also test Safari and IE.
We almost always match Safari, so differences there are frequently bugs.
If we match Safari but differ from IE/Firefox, then it's a WebKit bug.

If we match Safari and Safari matches IE, then that is likely intentional.

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


Re: [chromium-dev] Re: test_shell performance is bad compared to Chromium

2009-11-10 Thread Evan Martin
On Thu, Nov 5, 2009 at 3:34 PM, Alexander Teinum  wrote:
> I want to make it clear, and it might be obvious by now, but
> test_shell isn't interesting to me. I just want the fastest browser
> engine that I can get.
>
> What makes Chromium different than WebKitGTK+ for my project, is that
> Chromium renders the GTK stuff correctly with CSS transformations.
> It's also snappier.

Conceptually Chrome is a bunch of layers, from top to bottom

1) chrome+ui junk
2) multiprocess rendering
3) webkit API
4) webkit

Test shell covers layer 3 and down.  Unfortunately, all the
performance you like is in layer 2.  We don't have a simple place to
cut for that; however, since Chrome and test_shell are both just
clients of the WebKit API, you could write your own client (like
test_shell) and then copy the performant bits out of Chrome.  It will
require some work, but if it were easy then your job would be boring.
:)

-- 
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-04 Thread Evan Martin

On Tue, Nov 3, 2009 at 10:10 PM, Ben Goodger (Google)  wrote:
> Can there be a way to apply this to a local tree only so that you can revert
> then revert the revert quickly locally so you can figure out why your change
> broke?

I know this doesn't answer the question you are asking, but in case
other people had the same question I added a section to our Git
cookbook on how to do this:
  
http://code.google.com/p/chromium/wiki/GitCookbook#Reverting_and_undoing_reverts

--~--~-~--~~~---~--~~
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

On Tue, Nov 3, 2009 at 8:36 PM, n179911  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 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  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  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
>> : error: "ENABLE_3D_CANVAS" redefined
>> : error: this is the location of the previous definition
>>        : 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  wrote:
>>> On Mon, Nov 2, 2009 at 10:27 PM, n179911  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 b

[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  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: 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  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 (-C) 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  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  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  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.
>> >>  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  wrote:
>> >>>>
>> >>>> On Mon, Nov 2, 2009 at 2:47 PM, Drew Wilson 
>> >>>> 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  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: 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  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  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.
>>  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  wrote:
>>>>
>>>> On Mon, Nov 2, 2009 at 2:47 PM, Drew Wilson  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

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.
 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  wrote:
>>
>> On Mon, Nov 2, 2009 at 2:47 PM, Drew Wilson  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-02 Thread Evan Martin

On Mon, Nov 2, 2009 at 2:47 PM, Drew Wilson  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: readability extension (experience writeup)

2009-11-02 Thread Evan Martin

On Sat, Oct 31, 2009 at 3:41 PM, Aaron Boodman  wrote:
>>  - The docs are behind the code (had to read the code once or twice to
>> figure out what was going wrong).
>
> Were you using trunk or dev?

I was using dev.  I think I just searched on Google and clicked
through to whichever docs I found -- I didn't realize there were two
sets.  Should we always point users to trunk until extensions are in
beta?

But yes, the trunk docs look great, and I see they've also addressed
my prior complaint about organization.

--~--~-~--~~~---~--~~
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-02 Thread Evan Martin

On Fri, Oct 30, 2009 at 10:10 AM, Akira  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 (the new binutils linker)?  gold is significantly
faster and smaller.
If this problem is caused by using the old linker, we should update
the build instructions to just say that we require gold.

--~--~-~--~~~---~--~~
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: Compiler warning with Arch Linux and make

2009-11-02 Thread Evan Martin

On Sun, Nov 1, 2009 at 8:01 AM, Alexander Teinum  wrote:
> Success.

That's great!  If you have any notes that would be useful to other
Arch users, please update the instructions on the wiki at
  http://code.google.com/p/chromium/wiki/LinuxBuildInstructionsPrerequisites
(There's a section with distro-specific notes.)

> Adding 'remove_webcore_debug_symbols' to include.gypi probably solved
> my problem (although I did a debug build now). This is the first time
> that I have had success compiling Chromium in Arch Linux with make.
> And it's also the first time that I have gotten a debug build working
> in Arch Linux.

It is possible that your compile problem was a temporary problem that
was fixed.  Our tree tends to break and be repaired pretty rapidly, so
frequently you can run "gclient sync" and discover your problems have
been fixed.

> I don't know if it makes any difference, but I built with V=1.

That shouldn't matter.

--~--~-~--~~~---~--~~
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: readability extension (experience writeup)

2009-10-31 Thread Evan Martin

I've updated this to the browser actions API.

The diff is mostly deleting lines, since it is now much easier to do
this kind of thing:
  
http://neugierig.org/software/git/?url=chrome-readability/commit/&id=9768c8fa1f807f85a2387310214b7ff6b4153e1a

I was able to pack my extension and install it as well, all on Linux.

Pretty much everything was great -- my only points of confusion
follow.  I'm almost certain y'all already know about all of these, but
just in case...

 - The docs are behind the code (had to read the code once or twice to
figure out what was going wrong).
 - Not exactly clear sometimes which error console you're supposed to
look at; the workflow of "reload, see what error happened this time"
takes a few too many clicks.  Would be nice if chrome://extensions/
remembered whether I had the developer tools turned on or off.
 - Got one browser crash while developing.  But I think we've fixed
some crashers seen on the current dev channel on trunk, so I hope it
was one of those.

On Sat, Sep 12, 2009 at 7:02 PM, Evan Martin  wrote:
> [resend, I think I screwed up the previous three tries]
> I wrote an extension that adds a page action to trigger Readability:
>  http://lab.arc90.com/experiments/readability/
>
> It's basically just a glorified bookmarklet.
>
> Code is here:
>  http://neugierig.org/software/git/?url=chrome-readability/
> Browse it here:
>  http://neugierig.org/software/git/?url=chrome-readability/tree/
>
> I can't provide a .crx because I wasn't able to figure out how to
> build one, which I think means I can't actually install it.  :~(
>
> Here's some feedback on the process.  I know extensions are still
> under development, and that surely most if not all of these are
> already known bugs, and that others are probably my fault for doing it
> on Linux.  I thought it would still be helpful to give an overview of
> points of confusion I ran into, in case any of these aren't yet known
> bugs.
>
> - Weight.
> This feels like a *lot* of code (content script, page action,
> background page, manifest, message ports) just to make a bookmarklet
> appear in the URL bar.  I wonder if there's a place for a "simple"
> extension API for bookmarklet-y sorts of things?
>
> - Making my page action show up.
> It wasn't clear to me how to make my action just always show up.
> I think I may have done it wrong:
>  http://neugierig.org/software/git/?url=chrome-readability/tree/background.html
> since it feels unreliable (sometimes it doesn't show).
>
> - The failure modes are confusing.
> Sometimes it prints to the console (when I've made a typo in my
> manifest); other times it prints to the error console of the extension
> (bugs in my background js); other times it prints to the page's error
> console (bugs in my content script).  Many of those times there's no
> obvious way to map the error back to the line that is failing.
>
> - JS console.
> Do we really have no UI to get to the JS console?  I had to open the
> developer tools, then guess that one of the icons at the bottom of
> the window would show me the messages.
>
> - The docs around content scripts communicating with the embedding
> page aren't too clear.  See e.g.:
>  http://code.google.com/chrome/extensions/content_scripts.html#messaging
> That section is mostly just a big example but for example nowhere is
> the postMessage API described.  I'd prefer it to be laid out more
> like:
>  - how to make each endpoint listen for messages
>  - how to make each endpoint send a message
>
> - Doc organization.
> It would've been clearer to me if there is one more level of nesting.
> Sections like toolstrips, page actions are features with manifest
> edits as well as APIs, while sections like tabs and windows are just
> API references.
>
> - Building the .crx.
> strace -fo log chromium-browser --user-data-dir=/home/martine/test
> --pack-extension=`pwd`/readext
> --pack-extension-key=chrome-readability.pem
> Doesn't show it ever trying to create my .pem.  Maybe it's not implemented,
> but it'd be nice if it at least complained in that case.
>

--~--~-~--~~~---~--~~
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: git users and svn:eol-style

2009-10-29 Thread Evan Martin

On Thu, Oct 29, 2009 at 5:28 PM, Evan Martin  wrote:
> If you add the junk to your ~/.subversion/config that's specified on this page
>  http://dev.chromium.org/developers/coding-style
> then git will do the right thing as well.  (I just tested it on a
> local svn repo to be sure.)

BTW, it looks like Yaar helpfully added this to the commit
instructions a month ago!
  http://code.google.com/p/chromium/wiki/UsingGit#Committing

--~--~-~--~~~---~--~~
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: git users and svn:eol-style

2009-10-29 Thread Evan Martin

On Thu, Oct 29, 2009 at 5:13 PM, John Abd-El-Malek  wrote:
> Per the Chromium style guide
> (http://dev.chromium.org/developers/coding-style), we require all new files
> to have the svn:eol-style property set. We even have a presubmit check for
> it in case you don't configure Subversion to automatically add them per the
> above previous link.
> git users seem to not have such a presubmit check,

This is because eol-style is an SVN-specific concept, so there's no
real way to check it client-side.
The proper place to enforce this is the server.  *shrug*

> so nothing reminds them
> to add them. Can the git-cl script be modified to do this, and if not
> quickly, can git users please try to remember and follow this?

If you add the junk to your ~/.subversion/config that's specified on this page
  http://dev.chromium.org/developers/coding-style
then git will do the right thing as well.  (I just tested it on a
local svn repo to be sure.)

--~--~-~--~~~---~--~~
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: Fwd: Switching vs2008 to be preferred when present.

2009-10-29 Thread Evan Martin

On Thu, Oct 29, 2009 at 2:38 PM, Mike Belshe  wrote:
> 2) If you turn on Intellisense, it crashes like crazy very regularly.  I've
> turned off intellisense, but it is a big loss in productivity to do so

That was my experience with VS2005, but I am used to not having
Intellisense anyway.

--~--~-~--~~~---~--~~
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 can we kill scons?

2009-10-28 Thread Evan Martin

On Wed, Oct 28, 2009 at 1:23 PM, Albert J. Wong (王重傑)
 wrote:
> I actually got some weird warnings on the make build a while back when I
> specified the same file in two sources entries...something about circular
> dependencies and make ignore one. But don't remember the exact scenario.
> I betcha it isn't a problem in chrome cause it'd only trigger a bug if the
> file was compiled with different flags that modified behavior.  Since our
> defines and compiler options are so stable  (especially within one target),
> building once probably doesn't break stuff...

Currently, as far as I know, no files in Chrome require this "compile
twice" behavior.
I am skeptical of the utility of gyp features that are unused by
Chrome.  But this may be the magic bullet to make -fPIC on 64-bit
work.

I think I still see situations where the generated strings aren't
properly rebuilt in the make build.  You have to run it twice.  At
this point, given the number of people hammering on it, I suspect the
gyp rules are wrong and that the make build parallelizes too
aggressively, but that is likely just wishful thinking and there's a
subtle bug in there.  :(
That means for the build bots to switch, they need to always run make
twice to be sure everything was built.

(PS: currently every time you run make it rebuilds some NACL stuff
too.  I am so tired of NACL busting my build that I just turned it off
locally.)

--~--~-~--~~~---~--~~
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-10-28 Thread Evan Martin

On Wed, Oct 28, 2009 at 9:07 AM, Dan Kegel  wrote:
> On Wed, Oct 28, 2009 at 8:05 AM, Evan Martin  wrote:
>>> 3) Startup time is faster than calculator.
>>
>> I'm not sure if you're kidding.  Do you mean Windows calculator?
>
> On my home linux box (Jaunty, reasonably fast),
> warm startup time of chrome is less
> than the warm startup time of gnome calculator.
> Strange but true.

Yeah, that's why I was asking -- it wouldn't surprise me if we were
faster than the GNOME one.  Without any numbers I'd blame the icon
theme stuff (Elliot found it can do a truly ludicrous number of disk
accesses on startup).

--~--~-~--~~~---~--~~
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-10-28 Thread Evan Martin

On Tue, Oct 27, 2009 at 9:11 PM, Adam Barth  wrote:
> My three laptops have relatively comparable hardware and run Chrome on
> Windows, Mac, and Linux respectively.  The Linux version of Chrome
> feels ridiculously faster than Windows and Mac.  Do we understand why
> this is?  Can we make Windows and Mac feel that fast too?

My first instinct is to say because (1) we're awesome and (2) Linux is
awesome, but I'd prefer to have facts back it up.  :)

There's a "perf" link on http://build.chromium.org that has builders
tracking various metrics.  If we get perf tests for the behaviors you
care about, we can better compare and improve them.

On the other hand, I'm not sure if the hardware lines up between
platforms so maybe the comparisons I do below are not valid...

> General observations:

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.)

> 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.

However, Gmail is a "complicated" page (the main scrollbar is an
iframe) so in that case I guess rendering speed is getting involved.
There I'd expect Windows Chrome to be faster because the compiler is
better and there have been more people looking at performance (I saw
in another thread that tcmalloc, currently only used on Windows,
improved the page cycler by 50%?).

The page cycler perf graphs are intended to test rendering speed.  Do
the numbers match your perception?  I can't get the right graphs to
load right now.  It looks like spew from NOTIMPLEMENTED()s may be
obscuring the data.

> 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.

In your case, I wonder if you have more history accumulated on your
Windows profile, making the new tab computation more expensive than
the equivalent one on the Linux box.

I'd expect the faster file system on Linux to eventually be help here.
 (My experience with git has been you get an order of magnitude slower
each step from Linux->Mac->Windows, but that could be git or
hardware-specific.)

> 3) Startup time is faster than calculator.

I'm not sure if you're kidding.  Do you mean Windows calculator?
Maybe there's something wrong with your Windows box -- maybe a virus
scanner or disk indexer or some other crap procmon will show is
continually thrashing your computer.  Or maybe you have a spare Chrome
instance on another virtual desktop on your Linux box so clicking the
Chrome button is just telling it to show another window.

The startup tests are intended to track startup performance, and again
the Windows graphs are much better than the Linux ones.  However, the
difference between the two is milliseconds and my experience as a user
is that Chrome rarely starts that fast, so I wonder if these graphs
are really measuring what a user perceives (which frequently involves
disk).

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.

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



[chromium-dev] Re: A Dictionary-Evaluation Plan

2009-10-28 Thread Evan Martin

2009/10/28 Hironori Bono (坊野 博典) :
> Even though this is still a random thought, I would personally like to
> use chromium to evaluate the new dictionaries: i.e. uploading the new
> dictionaries to our dictionary server, changing the chromium code to
> use the updated ones, asking users to compare the new dictionaries
> with the old ones and give us their feedbacks (*1). If users like the
> new dictionaries, we would like to release the new ones. Otherwise we
> will keep the old ones.

In the web search world when we made changes like these, we'd try to
measure it without users giving explicit feedback.  For example: give
some users the new dictionary, and others the old one.  Log which
entry index from the dictionary suggestion list people are frequently
choosing, then compare the aggregate counts between the two sets of
users.  (Maybe call the "Add to Dictionary" menu option -1.)  For a
better dictionary, I'd expect people to use the earlier entries from
the suggestion list more frequently, and the "Add to Dictionary"
option less frequently.

This can be done with our existing histogram framework and I believe
Jim wrote a framework within that for doing these sorts of
experiments.

It still might be worth soliciting feedback from users directly.  For
example, if the new dictionary is missing a common word the above
measure would get a high count of "Add to Dictionary", and maybe users
could tell us about this.  But in general, you get higher quality data
when you involve more users, and a spreadsheet will be limited to
people who understand the English instructions.

--~--~-~--~~~---~--~~
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 linux' Native Client Plugin hides my NPAPI plugin

2009-10-27 Thread Evan Martin

On Tue, Oct 27, 2009 at 2:50 PM, Evan Martin  wrote:
> On Fri, Oct 23, 2009 at 1:58 AM, Anselm R Garbe  wrote:
>> However, I'm not sure if chrome resp. libnpGoogleNaClPluginChrome.a
>> does it right with exporting these symbols as plain C symbols because
>> this might conflict with other existing plugins as well in the same
>> way.
>
> I checked in a fix for this in r30253.  Thanks for bringing up the
> problem, and please let us know if you encounter any other problems.

Amusingly, this change apparently also made a bunch of Mac plugin
tests pass, so doubly thanks for bringing it up.  ;)

--~--~-~--~~~---~--~~
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 linux' Native Client Plugin hides my NPAPI plugin

2009-10-27 Thread Evan Martin

On Fri, Oct 23, 2009 at 1:58 AM, Anselm R Garbe  wrote:
> However, I'm not sure if chrome resp. libnpGoogleNaClPluginChrome.a
> does it right with exporting these symbols as plain C symbols because
> this might conflict with other existing plugins as well in the same
> way.

I checked in a fix for this in r30253.  Thanks for bringing up the
problem, and please let us know if you encounter any other problems.

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



  1   2   3   4   5   6   7   8   >