[chromium-dev] Re: Chromium WebKit.org builder is now live

2009-09-09 Thread Darin Fisher
Nice work!  Seems like a good thing to post to webkit-dev too :)-Darin

On Tue, Sep 8, 2009 at 8:50 PM, Dimitri Glazkov dglaz...@chromium.orgwrote:


 Dear Chromiumites and friends of the show,

 We now have a builder upstream that builds Chromium webkit port:
 http://build.webkit.org/waterfall (look to the very right of the
 columns).

 Granted, the road to the actual complete Chromium WebKit port is still
 long and winding (https://trac.webkit.org/wiki/Chromium), since this
 builder simply builds the webcore project in the Chromium repository
 (kudos to nice WebKit folks allowed us to modify their master config
 to patch in Chromium-specific gclient sync and compile.py commands for
 us).

 Nevertheless, it's progress. Now you can watch all things WebKit blow
 up faster than ever before! :)

 More entertainment is coming soon to your ... whatever you're reading this
 on.

 :DG

 


--~--~-~--~~~---~--~~
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: WebKit Chromium Port

2009-09-09 Thread Jeremy Orlow
On Wed, Sep 9, 2009 at 2:47 PM, Eric Seidel esei...@chromium.org wrote:

 On Tue, Sep 8, 2009 at 10:39 PM, Jeremy Orlow jor...@chromium.org wrote:

 If it does work, we could definitely let them know it's an option for
 those who might want to.  We'd have to phrase it delicately though.  They're
 generally quite allergic to us even coming _close_ to pushing
 our infrastructure on them.


 Google has it's own fair dose of not invented here. :)


True.


 WebKit has been quite receptive of the recent script additions we've made,
 including check-webkit-style (originally cpplint.py) which was entirely
 Google code.  The entire commit-queue architecture they're now using was
 written by Google employed WebKit contributers (myself, Adam Barth and Dave
 Levin).

 I don't mean to pick a fight, but I just don't think this should be a we
 vs. they argument.  Google employs 4 WebKit reviewers (myself, Adam Barth,
 Dimitri Glazkov and Darin Fisher).  Reviewers tend to make the decisions in
 WebKit land.  Furthermore, Apple tends to follow the saying code wins,
 meaning: given two ideas, one of which is coded and the other which is not
 the coded one wins. :)  If a Googler produces functioning WebKit try bots,
 the WebKit community certainly isn't going to turn them down.


I hope your right.  I'm not convinced this is a given though.


  I think Google employed WebKit contributers should feel full license to
 set up try bots integrated with WebKit's buildbot.  I think Googlers should
 also feel welcome to augment/replace parts of WebKit's buildbot architecture
 with our improved versions from build.webkit.org.


This has not always been true in the past.  I think we (people working on
Chromium) made a good effort to help bring real code review infrastructure
to WebKit and that was a disaster (though maybe I don't know the full story
and we were in the wrong).

I agree that things are getting better, but I don't think the picture is
quite as rosy as you paint it.  (And I know many who think I paint the
picture rosier than it actually is.)

--~--~-~--~~~---~--~~
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: WebKit Chromium Port

2009-09-09 Thread David Levin
On Tue, Sep 8, 2009 at 11:02 PM, Jeremy Orlow jor...@chromium.org wrote:

 This has not always been true in the past.  I think we (people working on
 Chromium) made a good effort to help bring real code review infrastructure
 to WebKit and that was a disaster (though maybe I don't know the full story
 and we were in the wrong).


Sounds like us vs them again.

From what I saw in this case, things were done quickly without getting buy
in. I saw at least one irc conversation in which folks had expressed their
concerns about being asked about changes and then things done in less than
an hour without giving time for a response. From this, it appeared to me
that the effort may not have been handled in the best way.

I have seen several WebKit reviewers who appear to be willing to consider a
new code review tool, but there are lot of things to fix in the process, and
there are a fair number of concerns about how some new would fit into the
WebKit process. There was an email that outlined an approach to addressing
process issues in WebKit, and it had evaluating new code review tools in
there.

I have also seen folks try to push chromium solutions on webkit in cases
where it didn't make sense.

This reminds me of the debates of git vs svn (or emacs vs vi, etc.). Each
has their potential advantages, but adopting something new requires changes
that may be painful so change takes time.

Dave

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



[chromium-dev] Windows trybot issue.

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


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

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

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

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

-- Done --

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



Regards
James Su

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



[chromium-dev] Re: Windows trybot issue.

2009-09-09 Thread Jeremy Orlow
Please follow the instructions on the email you get from the try bot

On Wed, Sep 9, 2009 at 8:55 PM, James Su su...@chromium.org wrote:

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


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

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

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

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

 -- Done --

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



 Regards
 James Su


 


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



[chromium-dev] Re: Windows trybot issue.

2009-09-09 Thread Marc-Antoine Ruel

I got a ping yesterday about a failed slave but I assumed it was still
icu breakage so I just manually cleaned it. James did the right thing
and replied to the email earlier today but I didn't realize all the
try slaves needed a clobber until now.

Since I had an errand, I couldn't do it before anyway. They should all
be fixed now.

M-A

On Wed, Sep 9, 2009 at 9:32 AM, Mike Pinkertonpinker...@chromium.org wrote:

 I don't follow. Lots of people seem to be getting this error when they
 submit to the win trybot. What is he supposed to do that's specific to
 his CL when others see the same thing?

 On Wed, Sep 9, 2009 at 8:09 AM, Jeremy Orlowjor...@chromium.org wrote:
 Please follow the instructions on the email you get from the try bot

 On Wed, Sep 9, 2009 at 8:55 PM, James Su su...@chromium.org wrote:

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

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

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

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

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

 -- Done --

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


 Regards
 James Su



 




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

 


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



[chromium-dev] Re: Windows trybot issue.

2009-09-09 Thread Jeremy Orlow
I'm just following instructions:



TRY FAILED

*If you think the try slave is broken (it happens!), please REPLY to this
email, don't ask on irc, mailing list or IM.*

Thanks!



I doubt emailing the list here asking what's up is going to help things
much.  Marc-Antoine is quite responsive about such issues.

J

On Wed, Sep 9, 2009 at 10:32 PM, Mike Pinkerton pinker...@chromium.orgwrote:

 I don't follow. Lots of people seem to be getting this error when they
 submit to the win trybot. What is he supposed to do that's specific to
 his CL when others see the same thing?

 On Wed, Sep 9, 2009 at 8:09 AM, Jeremy Orlowjor...@chromium.org wrote:
  Please follow the instructions on the email you get from the try bot
 
  On Wed, Sep 9, 2009 at 8:55 PM, James Su su...@chromium.org wrote:
 
  Hi,
I tried a CL on trybot. Linux and Mac trybots finished without any
  problem very soon. But windows trybot spent more than 40 minutes to
 compile
  and failed with following error:
 
  Compiling...
  ui_test_utils.cc
  profile_sync_service_test_harness.cc
  Compiling resources...
  Linking...
 Creating library
  C:\b\slave\win\build\src\chrome\Debug\lib\sync_integration_tests.lib and
  object
 C:\b\slave\win\build\src\chrome\Debug\lib\sync_integration_tests.exp
  LINK : fatal error LNK1210: exceeded internal ILK size limit; link with
  /INCREMENTAL:NO
 
  Error executing link.exe (tool returned code: 1210)
 
  sync_integration_tests - 1 error(s), 0 warning(s)
 
  1 build system warning(s):
 - PDB instance limit is enabled
 
  -- Done --
 
  Build: 219 succeeded, 1 failed, 0 skipped
  program finished with exit code 1
 
 
  Regards
  James Su
 
 
 
   
 



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


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



[chromium-dev] icu was upgraded to 4.2.1 : you want to clobber on Windows

2009-09-09 Thread 신정식, 申政湜
Hi,
I pulled in ICU 4.2.1 upgrade l http://codereview.chromium.org/172031ast
night/this morning. To avoid link errors, you need to clobber your build on
Windows. You may not hit upon link errors if icuuc.lib, icui18n.lib from the
previous build in your build directory, but they need to be clobbered so
that new ones will be built. Also make sure to remove src/third_party/icu38
directory.

I hope this email is not too late and am sorry if some of you took had to
scratch your heads about links errors blah_blah_3_8 symbols not found.

In addition, C++ names in ICU always have to be qualified with 'icu::' as I
wrote a couple of weeks ago. Our copy of ICU does not throw all C++ names
into the global namespace any more, which is to avoid the name collision
between our StringPiece and icu's StringPiece (they're different).

Also, if you add a new gyp file that uses ICU,  you have to use 'icu.gyp'
instead of 'icu38.gyp'.  We decided to use 'icu.gyp'  (rather than
icuNN.gyp) to avoid having to track down them all and change next time we
upgrade ICU.  I haven't yet done the same with 'icudtNN.dll' on Windows, but
perhaps I have to do that, too.


Once again, sorry if this email is too late to prevent you from wasting some
time today.

Cheers,

Jungshik

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



[chromium-dev] Re: [Chrome-team] understanding layout test flakiness

2009-09-09 Thread Ojan Vafai
I'm including at the top concrete tasks people can take to help identify and
reduce flakiness. Read below for more details.

   1. Mark slow tests as SLOW and reduce the timeout on the bots to 2
   seconds.
   2. Look into the cause of the timeouts on HTTP tests, especially on
   Mac/Windows
   3. Look at the actual results off the bots for the non-timeout flaky
   failures and identify the cause of the flakiness (likely the test itself).
   4. Make test_expectations.txt match what's actually happening on the bots
   (see the flakiness dashboard for tests with incorrect expectations).

All the data I use below is from:
http://src.chromium.org/viewvc/chrome/trunk/src/webkit/tools/layout_tests/flakiness_dashboard.html

On Tue, Sep 8, 2009 at 5:52 PM, David Levin le...@chromium.org wrote:

 I agree that the chromium buildbot seems to have more flakiness on layout
 tests that webkit buildbots.


While there is definitely more flakiness, I'm not sure how much more. I
think the Chromium bots are primarily more flaky on the HTTP tests. What
flakiness there is gets less noticed on the webkit buildbots since they
don't close the tree.


 Here's two things that may help us to understand this:
 1. It would be nice to save crash logs from OSX into the zip file. For
 example, this run

 http://build.chromium.org/buildbot/waterfall/builders/Webkit%20Mac10.5%20(dbg)(2)/builds/3323/steps/webkit_tests/logs/stdio
 had a crash and likely generated a crash log at
 ~/Library/Logs/CrashReporter/TestShell*.crash which would help point to a
 culprit.


+1 This would be very useful. That said, it won't benefit with decreasing
flakiness much. Very few of the flaky tests are flaky crashers. They're
almost entirely flaky timeouts or failures, even in debug builders.

2. If we suspect that tests may pass if given more time, then increase the
 timeout and see if more tests pass but exceed this old timeout (log
 something when this happens so we can validate that it is working).


-1 The test dashboard prints the out the amount of time a test takes to run
if it takes 1 second. I don't think the timing out tests would pass if we
just gave them more time. Specifically, there are tests that always timeout
and there are flaky timeout tests. The flaky timeout tests, when they do
pass, consistently take less than 10 seconds to run, most of them take less
than 1 second.

Increasing the test timeout also *considerably* increases how long it takes
for the bots to cycle. In fact, I think we should be *decreasing* it to
something like 2 seconds. This would actually shave minutes off of the
current bot cycle times.

We have ~100 tests that are slow, many of which timeout at 20 seconds. We
should mark all the slow, but passing tests as SLOW in the test expectations
file. This will give them more time to run than the other tests. Then we
should bring the timeout down to something like 2 seconds. This will make
the bots run a lot faster and distinguish between the tests that timeout
versus just taking a long time to pass.


 On Tue, Sep 8, 2009 at 5:41 PM, Dirk Pranke dpra...@chromium.org wrote:

 From what I've poked around at, many of the LayoutTest flaky failures
 are timeout-related.


While more than half of the flaky tests on Windows and Mac are timeouts,
many of them are crashes or failures. You can see this pretty clearly on the
layout test dashboard. I'll note that on Linux, a very small percentage of
the flakiness is timeouts. Almost all of these timeouts on Windows/Mac are
HTTP tests. There is likely one or two causes for all the flakiness with the
HTTP tests.

There's something in the test harness and web
 server configurations that cause tests to be unpredictably slower. I
 don't think Apple has this problem, and I think that's because they
 use the built in apache instance in OS X,


We switched away from apache to lighttp because of flakiness it was causing
on cygwin (cygwin and apache don't play well together). Maybe it makes sense
to use lighttp on Windows and Apache on Mac? I think we should identify the
cause of the flakiness on Windows. Fixing that might fix the flakiness on
Mac as well and we wouldn't need to support two http servers.


 and also because they have a
 very different model for test execution (how we run tests in
 parallel).


Running tests in parallel did seem to make things a bit more flaky, but not
much. I haven't verified this, but I think it probably just magnified
existing flakiness by putting higher load on the machine. Linux, the least
flaky bot, is the only bot that has 4 cores instead of just 2, which means
it runs using more TestShell instances in parallel.

--~--~-~--~~~---~--~~
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: Are we going to support active FTP?

2009-09-09 Thread Amanda Walker

The main problem is that it doesn't work through NAT routers or
firewalls, since it relies on the remote end opening a connection back
to the client.  There's no big advantage unless you're talking to an
old FTP server that doesn't support passive FTP.

--Amanda

On Wed, Sep 9, 2009 at 1:53 PM, Paweł Hajdan Jr.
phajdan...@chromium.org wrote:
 This is http://code.google.com/p/chromium/issues/detail?id=3073 . I think
 it's not so hard to implement it (and probably not so high priority either),
 but are there any potential security (or other) problems?
 




-- 
Portability is generally the result of advance planning rather than trench
warfare involving #ifdef -- Henry Spencer (1992)

--~--~-~--~~~---~--~~
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: Are we going to support active FTP?

2009-09-09 Thread Amanda Walker

On Wed, Sep 9, 2009 at 1:56 PM, Peter Kasting pkast...@google.com wrote:
 I can't think of any.  It would be nice to have active support.  I'm not
 sure how easy it is to auto-detect which one we should use (since all the
 FTP clients I've ever used have forced me to specify manually).

It should be fairly easy.  Send the PASV command--if the server sends
back a failure result code, fall back on active FTP and send a PORT
command.

--Amanda

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



[chromium-dev] Re: Are we going to support active FTP?

2009-09-09 Thread Benjamin Smedberg

 This is http://code.google.com/p/chromium/issues/detail?id=3073 . I think
 it's not so hard to implement it (and probably not so high priority either),
 but are there any potential security (or other) problems?

 I can't think of any.  It would be nice to have active support.  I'm not
 sure how easy it is to auto-detect which one we should use (since all the
 FTP clients I've ever used have forced me to specify manually).

If it matters, Mozilla hasn't ever implemented Active FTP and is
seriously considering making FTP a non-browseable protocol (you may
browse and download files, but we won't render them in-browser).

--BDS

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



[chromium-dev] Just got a backtrace from flaky RenderViewTest

2009-09-09 Thread Paweł Hajdan Jr .
So, RenderViewTest crashes very often. Now, thanks to maruel, we have a
stack trace:

[--] 16 tests from RenderViewTest
[ RUN  ] RenderViewTest.OnLoadAlternateHTMLText
Backtrace:
GetStackFrames [0x00FF6085+306229]
_sbrk [0x00A7E5EE+70254]
_sbrk [0x00A7E63E+70334]
_sbrk [0x00A7E763+70627]
_sbrk [0x00AB052E+274862]
_sbrk [0x00A7EA20+71328]
_sbrk [0x00A7EE50+72400]
_sbrk [0x00A7F747+74695]
(No symbol) [0x00431868]
MallocExtension::SetMemoryReleaseRate [0x00924756+2127654]
MallocExtension::SetMemoryReleaseRate [0x00925699+2131561]
MallocExtension::SetMemoryReleaseRate [0x0091FCB5+2108549]
MallocExtension::SetMemoryReleaseRate [0x00925E93+2133603]
MallocExtension::SetMemoryReleaseRate [0x00925FFC+2133964]
MallocExtension::SetMemoryReleaseRate [0x008CF119+1777897]
MallocExtension::SetMemoryReleaseRate [0x008CF34E+1778462]
(No symbol) [0x005D66E9]
RegisterWaitForInputIdle [0x7C817067+73]


Does anyone have some ideas why is it failing?

--~--~-~--~~~---~--~~
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: Are we going to support active FTP?

2009-09-09 Thread Chris Evans
On Wed, Sep 9, 2009 at 10:53 AM, Paweł Hajdan Jr.
phajdan...@chromium.orgwrote:

 This is http://code.google.com/p/chromium/issues/detail?id=3073 . I think
 it's not so hard to implement it (and probably not so high priority either),
 but are there any potential security (or other) problems?


Like with PASV, you need to do validation on the IP address. With PORT, when
you accept the incoming connection, check that the IP address matches that
of the control connection. Otherwise, an attacker could be racing with the
real FTP server to send you a fake download.

Cheers
Chris

--~--~-~--~~~---~--~~
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: icu was upgraded to 4.2.1 : Please, clobber your build.

2009-09-09 Thread 신정식, 申政湜
Yeah, it seems that in some cases, Mac/Linux also need clobber.  Given
these, I agree with Mike that it's best to clobber everywhere.
Sorry again for the loss of the productivity.

Jungshik

2009/9/9 Mike Pinkerton pinker...@chromium.org

 I had to clobber on Mac this morning as well. Go figure.

 Probably best to clobber everything everywhere.

 2009/9/9 Jungshik Shin (신정식, 申政湜) js...@chromium.org:
 
  Hi,
  I pulled in ICU 4.2.1 upgrade last night/this morning. To avoid link
 errors,
  you need to clobber your build on Windows. You may not hit upon link
 errors
  if icuuc.lib, icui18n.lib from the previous build in your build
 directory,
  but they need to be clobbered so that new ones will be built. Also make
 sure
  to remove src/third_party/icu38 directory.
  I hope this email is not too late and am sorry if some of you took had to
  scratch your heads about links errors blah_blah_3_8 symbols not found.
  In addition, C++ names in ICU always have to be qualified with 'icu::' as
 I
  wrote a couple of weeks ago. Our copy of ICU does not throw all C++ names
  into the global namespace any more, which is to avoid the name collision
  between our StringPiece and icu's StringPiece (they're different).
  Also, if you add a new gyp file that uses ICU,  you have to use 'icu.gyp'
  instead of 'icu38.gyp'.  We decided to use 'icu.gyp'  (rather than
  icuNN.gyp) to avoid having to track down them all and change next time we
  upgrade ICU.  I haven't yet done the same with 'icudtNN.dll' on Windows,
 but
  perhaps I have to do that, too.
 
  Once again, sorry if this email is too late to prevent you from wasting
 some
  time today.
  Cheers,
  Jungshik
 
 
 
 
 
   
 



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


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



[chromium-dev] Re: Are we going to support active FTP?

2009-09-09 Thread Paweł Hajdan Jr .
The bug is about a firewall forbidding the connection. Why the trick won't
work? If I can't connect to the PASV port, I'd try PORT, even on successful
PASV response.
On Wed, Sep 9, 2009 at 12:52, Michal Zalewski lcam...@gmail.com wrote:

  I can't think of any.  It would be nice to have active support.  I'm not
  sure how easy it is to auto-detect which one we should use (since all
 the
  FTP clients I've ever used have forced me to specify manually).
  It should be fairly easy.  Send the PASV command--if the server sends
  back a failure result code, fall back on active FTP and send a PORT
  command.

 Are we trying to solve the problem of the server having no passive FTP
 support (how common would that be?), or of the server's firewall / NAT
 device not having FTP traffic inspection helpers?

 If the latter, which I suspect might be marginally more common, just
 probing for PASV and falling over to active mode then is not going to
 do the trick.

 /mz


--~--~-~--~~~---~--~~
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: Are we going to support active FTP?

2009-09-09 Thread Amanda Walker

On Wed, Sep 9, 2009 at 4:02 PM, Michal Zalewski lcam...@gmail.com wrote:
 My reading of the bug is the former, since the latter would be fairly
 astonishing.  Passive FTP does not require any special inspection by
 NAT, while active does.

 Likewise, passive mode requires inspection on
 client end if firewalls or NAT is present, but no inspection on server

Hmm.  NAT itself shouldn't require inspection (that's why PASV was
created). But yes, if the firewall does not allow general outbound
TCP, it would have to inspect the command connection just as it would
in order to set up inbound rules for active FTP.  That still strikes
me as unlikely, but more data from the bug filer would be good.

--Amanda

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



[chromium-dev] Re: Are we going to support active FTP?

2009-09-09 Thread Amanda Walker

On Wed, Sep 9, 2009 at 3:52 PM, Michal Zalewski lcam...@gmail.com wrote:
 Are we trying to solve the problem of the server having no passive FTP
 support (how common would that be?), or of the server's firewall / NAT
 device not having FTP traffic inspection helpers?

My reading of the bug is the former, since the latter would be fairly
astonishing.  Passive FTP does not require any special inspection by
NAT, while active does.  It's possible that they're using an
application-level FTP proxy, but in that case, if it's what's
enforcing active only, I'd expect it to reject the PASV command.

But it wouldn't hurt to get more detail before we leap into it.

--Amanda

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



[chromium-dev] Re: Are we going to support active FTP?

2009-09-09 Thread Amanda Walker

On Wed, Sep 9, 2009 at 4:11 PM, Michal Zalewski lcam...@gmail.com wrote:
 Err, the other way round obviously (passive requires server-side
 support to rewrite IP and port data in FTP command responses behind
 NAT, and punch a temporary hole in the firewall allowing the client to
 connect back to the server on a high port;

Er, shouldn't it just need to do the latter?  I've certainly done
plenty of passive FTP through NAT that isn't rewriting anything.

 active requires a
 client-side support to rewrite PORT command if behind NAT, and punch a
 hole for the server to connect back to the client).

Right.

--Amanda

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



[chromium-dev] Chromium SharedWorker design doc

2009-09-09 Thread Drew Wilson
Hi all,
I've put together a design doc for my upcoming SharedWorker implementation.
The original lives here:

http://docs.google.com/a/chromium.org/Doc?id=dgfs7fcc_0f32q7xdd

and I'll migrate it to dev.chromium.org once it's less draft-y.

I'd appreciate any feedback - there are a few highlighted open issues (how
do we report worker exceptions, how do we report unexpected worker process
termination) that I'd be particularly interested in getting some input on.

Thanks,

-atw

-=-=-
Chromium SharedWorkers designThis document describes the Chromium
implementation of SharedWorkers. A useful background document is the WebKit
SharedWorkers Doc?docid=0AaSJ7ekxGiStZGNuazV2MnZfMThjYjI0M2hnNwhl=en design
document, which goes into more depth about the differences between
SharedWorkers and dedicated Workers and the underlying WebKit
implementation/interfaces. Additionally, the HTML5 Web
Workershttp://www.whatwg.org/specs/web-workers/current-work/#shared-workers
specification
contains the formal definition of SharedWorker behavior.
OverviewSharedWorkershttp://www.whatwg.org/specs/web-workers/current-work/#shared-workers
are
similar to dedicated workers, but with a simplified interface and lifecycle
definition. SharedWorkers do not need their own messaging implementations -
instead, they use MessagePorts to communicate with their parents. Likewise,
SharedWorkers do not need to report their pending activity back to their
parents to enable garbage collection of unreferenced workers - instead, the
lifecycle of SharedWorkers depends solely on the lifecycle of their parent
documents and not on the reachability of the associated SharedWorker
objects. Ultimately, we will adopt this same lifecycle mechanism for all
workers, because the current reachability mechanism used for dedicated
workers starts to break down when you have nested workers.

The WebKit page-context code interacts with SharedWorkers via the
SharedWorkerRepository class, which has a very simple interface:

// Connects the passed SharedWorker object with the specified worker
thread, creating a new thread if necessary.
static void connect(PassRefPtrSharedWorker,
PassOwnPtrMessagePortChannel, const KURL, const String name,
ExceptionCode);

// Invoked when a document has been detached.
static void documentDetached(Document*);

// Returns true if the passed document is associated with any
SharedWorkers.
static bool hasSharedWorkers(Document*);

SharedWorker threads interact with the system through WorkerReportingProxy
and WorkerLoaderProxy objects, just like the current dedicated Worker
objects do.

SharedWorkerRepositoryImplThe WebKit code is structured to allow different
ports (like Chrome) to supply their own implementations of the
SharedWorkerRepository interface (it consists only of a set of static
functions). The Chromium implementation will split the
SharedWorkerRepository implementation into two pieces: multiple
SharedWorkerRepositoryImpl instances, one of which runs in each of the
renderer processes as a singleton, and the WorkerService which runs in the
browser process and controls the lifecycle of all SharedWorkers, and ensures
that only a single instance of a given SharedWorker exists at any time.
SharedWorkerRepositoryImpl::hasSharedWorkers()This is invoked by the
FrameLoader code in WebKit to determine whether a given page is cacheable
(for the purposes of the user clicking the back button) - essentially, a
page is cacheable if it has ever created a SharedWorker (ideally, when all
of a SharedWorker's pages are in the cache, we would suspend the worker,
then resume it if the user goes back to the page). Since we cannot suspend
workers, we treat Documents that have associated SharedWorkers as
uncacheable.

This is implemented by just keeping a HashMap of every document in the
current process that has called SharedWorkerRepository::connect(), then
returning true if the map contains an entry for a given document. When a
document is detached (documentDetached() is called) we can remove it from
the map.

SharedWorkerRepositoryImpl::documentDetached()
When a document is detached, we update our hasSharedWorkersHashMap as
described previously. If the Document was in the hasSharedWorkersHashMap, we
also notify the browser process via an IPC (passing the associated
document_id - see below) so the WorkerService can shutdown any associated
workers.

SharedWorkerRepositoryImpl::connect()
Invoked when the page script creates a SharedWorker via the SharedWorker()
constructor. This makes a blocking ConnectToSharedWorker IPC to the
SharedWorkerRepositoryHost to see if the SharedWorker already exists, and to
validate the parameters (the HTML5 spec requires that we throw an exception
if the client passes the wrong URL to a named SharedWorker, so this has to
be a blocking call).

The ConnectToSharedWorker IPC will have the following parameters:

int message_port_route_id
int document_id
std::string script_url
std::string 

[chromium-dev] Re: WebKit Chromium Port

2009-09-09 Thread Jeremy Orlow
On Thu, Sep 10, 2009 at 2:10 AM, Dimitri Glazkov dglaz...@chromium.orgwrote:

 Marc-Antoine, you will forever have a special place in every WebKit
 committer's heart if you can pull of setting up these trybots.


+100


 Given that this thread quickly discombobulated into a general WebKit
 rant, I want to wind it back to the topic: Yaar, I think your plan is
 good. Keep it coming.


+1

And sorry about derailing things...was having a bad day.  I'm not normally
that pessimistic.  :-)



 :DG

 On Wed, Sep 9, 2009 at 9:35 AM, Marc-Antoine Ruelmar...@chromium.org
 wrote:
 
  On Wed, Sep 9, 2009 at 1:19 AM, Ojan Vafaio...@chromium.org wrote:
  This is easily my biggest painpoint with doing webkit development. If I
  could just grab windows baselines off a trybot and not need to built/run
  tests on Windows for WebKit, I honestly think I would be order of
 magnitude
  more productive doing webkit patches. In fact, all I really want is a
  Windows trybot (a Mac one wouldn't hurt).
 
  You know how much I like patches. You should definitely create your
  how try server with a spare workstation.
 
 http://dev.chromium.org/developers/testing/chromium-build-infrastructure/getting-the-buildbot-source
 
  How hard would it be to just set these up ourselves on a chromium.orgsite
  for our own use? (obviously we'd make it available to the broader WebKit
  community)
 
  See https://bugs.webkit.org/show_bug.cgi?id=29062
 
  M-A
 
   
 


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



[chromium-dev] Re: Are we going to support active FTP?

2009-09-09 Thread Amanda Walker

On Wed, Sep 9, 2009 at 4:31 PM, Michal Zalewski lcam...@gmail.com wrote:
 Well, let's say the server has an internal IP of 1.2.3.4, and along
 with several other nodes in its cluster, is publicly NATed to 4.3.2.1.
 The client says PASV, and the server, unless explicitly aware of its
 current public IP, replies along the lines of:

 227 Entering Passive Mode (1,2,3,4,200,200)

 NAT device should rewrite this to 4,3,2,1, and may also need to tweak
 the port to avoid collisions with holes punched for other hosts.

Ah, right.  I was only considering the browser's point of view :-),
since a server responding with an incorrect address would be broken
from the point of view of the Internet.

--Amanda

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



[chromium-dev] Help needed reproducing a crash

2009-09-09 Thread Peter Kasting
I'm trying to track down a crash (bug 20511) which no one on the team has
been able to figure out how to reproduce.
If you ever have the browser crash on you right when you hit enter in the
address bar, or when you hover the Go button, and can remember anything
about what you were doing at the time, please add a comment to that bug or
let me know.  If you find a way to reproduce it on command, that would be
super amazingly awesome.

PK

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



[chromium-dev] Argh: Rebuilding installer_util on every F5

2009-09-09 Thread Peter Kasting
Somehow, starting today, I'm now rebuilding installer_util (recompiling a
half dozen files, which then causes me to relink chrome.dll) every time I
hit F5.  Deleting chrome.{ncb,suo} and rm -rfing Debug/ and Release/ do not
help.
Did someone goof with these recently?  Did the ICU change somehow touch
this?  It makes my retest cycle a lot slower :(

PK

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



[chromium-dev] Re: Argh: Rebuilding installer_util on every F5

2009-09-09 Thread Nicolas Sylvain
+maruel, who changed this code yesterday
Nicolas

On Wed, Sep 9, 2009 at 5:29 PM, Peter Kasting pkast...@google.com wrote:

 Somehow, starting today, I'm now rebuilding installer_util (recompiling a
 half dozen files, which then causes me to relink chrome.dll) every time I
 hit F5.  Deleting chrome.{ncb,suo} and rm -rfing Debug/ and Release/ do not
 help.
 Did someone goof with these recently?  Did the ICU change somehow touch
 this?  It makes my retest cycle a lot slower :(

 PK

 


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



[chromium-dev] Re: autolinking BUG= lines in Rietveld

2009-09-09 Thread Mohamed Mansour
Very nice, no longer I have to put crbug.com/#.  Whoever did that autolink,
can you support multiple bugs as well? The format bugdroid uses is BUG=1, 2,
3
- Mohamed Mansour


On Wed, Sep 9, 2009 at 8:58 PM, Paweł Hajdan Jr. phajdan...@chromium.orgwrote:

 I just noticed that BUG=1234 lines are autolinked to the correct bug when
 viewed in Rietveld (codereview.chromium.org). This is very useful, thanks!
 


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



[chromium-dev] found corrupted db

2009-09-09 Thread cpu

Larson gave me a profile that can consistently crash windows chrome
(beta). I haven't tried loading the profile myself but we have crash
dumps from it.

It crashes in:

0x69db6e5d   [chrome.dll - fts2.c:453]   getVarint   --- access
violation at 0x0
0x69db6ef0   [chrome.dll - fts2.c:468]   getVarint32
0x69dbacbf   [chrome.dll - fts2.c:5078]  leavesReaderDataBytes
0x69dbb1d7   [chrome.dll - fts2.c:5407]  segmentMerge
0x69dbb0f9   [chrome.dll - fts2.c:5359]  segdirNextIndex
0x69dbba45   [chrome.dll - fts2.c:5932]  writeZeroSegment
0x69dbbbf5   [chrome.dll - fts2.c:5966]  flushPendingTerms
0x69dbbc3c   [chrome.dll - fts2.c:5984]  initPendingTerms
0x69dba135   [chrome.dll - fts2.c:4050]  index_delete
0x69dbbca4   [chrome.dll - fts2.c:6005]  fulltextUpdate
0x69dc284a   [chrome.dll - vdbe.c:4945]  sqlite3VdbeExec
0x69da170f   [chrome.dll - vdbeapi.c:476]sqlite3Step
0x69da1856   [chrome.dll - vdbeapi.c:544]sqlite3_step
0x6a09c1ab   [chrome.dll - text_database.cc:290]
history::TextDatabase::DeletePageData(..)
0x6a07d145   [chrome.dll - text_database_manager.cc:338]
history::TextDatabaseManager::DeletePageData(...)
0x6a081c4a   [chrome.dll - expire_history_backend.cc:366]
history::ExpireHistoryBackend::DeleteVisitRelatedInfo(..);
0x6a082496   [chrome.dll - expire_history_backend.cc:592]
history::ExpireHistoryBackend::ArchiveSomeOldHistory(..)
0x6a0822fa   [chrome.dll - expire_history_backend.cc:553]
history::ExpireHistoryBackend::DoArchiveIteration()
0x69ee8de1   [chrome.dll - message_loop.cc:313]  MessageLoop::RunTask
(Task *)

The novel part is that sqlite can detect corruption:

D:\testsqlite3.exe zzz\User Data\Default\History Index 2009-09
SQLite version 3.6.17
sqlite PRAGMA integrity_check;
wrong # of entries in index info_time


--~--~-~--~~~---~--~~
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: autolinking BUG= lines in Rietveld

2009-09-09 Thread Jeremy Orlow
Would be nice if it still handled http://crbug.com/ and crbug.com/ since
people probably will continue using them for a while.
Also split(', ') ONLY works for when you do 'blah, blah'.  Not 'blah,blah'.
 Not 'blah blah'.  Or any other crazy things people might do.

I didn't know that you could give re.sub a callback to format the replace
text though.  That's cool and could probably make my code simpler.

J


On Thu, Sep 10, 2009 at 12:27 PM, Mohamed Mansour m...@chromium.org wrote:

 How about just this:
 def repl(m):
 issues = m.group(1).split(', ')
 return , .join(a href='
 http://code.google.com/p/chromium/issues/detail?id=%s'%s/a % (s, s)
 for s in issues)

 if __name__ == '__main__':
 description = \nBUG=2, 3
 description = re.sub(\nBUG=(\d+[, \d+]*), repl, description)
 print description


 Works great!

 - Mohamed Mansour



 On Wed, Sep 9, 2009 at 11:25 PM, Jeremy Orlow jor...@chromium.org wrote:

 I don't have a rietveld dev environment set up, so I wrote a quick script
 to test the general algorithm.  It's not as pythony as I'd like, but it
 seems to be fairly robust:
 #!/usr/bin/python
 import re

 description = \
 Blah blah blah.
 Blaaa

 TEST=none
 BUG=123,456, 798,0
 BUG=888
 BUG=none
  BUG = none, 2349,2,asdf
 BUG = http://crbug.com/123
 BUG = crbug.com/234 crbug/82
 

 LINK = a href='http://code.google.com/p/chromium/issues/detail?id=%s
 '%s/a
 def rewrite_bug_numbers(string):
   if ',' in string:
 right, left = string.split(',', 1)
 return rewrite_bug_numbers(right) + ',' + rewrite_bug_numbers(left)
   if ' ' in string:
 right, left = string.split(' ', 1)
 return rewrite_bug_numbers(right) + ' ' + rewrite_bug_numbers(left)

   # Base cases:
   if string.isdigit():
 return LINK % (string, string)
   match = re.search(r'^(http://|)crbug.com/(\d+)', string)
   if match:
 return LINK % (match.group(2), string)
   return string

 output = []
 for line in description.splitlines():
   match = re.search(r'^(\s*BUG\s*=)(.*)$', line)
   if match:
 line = match.group(1) + rewrite_bug_numbers(match.group(2))
   output.append(line)
 print br\n.join(output)



 Prints out

 Blah blah blah.br
 Blaaabr
 br
 TEST=nonebr
 BUG=a 
 href='http://code.google.com/p/chromium/issues/detail?id=123'123/a,a
 href='http://code.google.com/p/chromium/issues/detail?id=456'456/a, a
 href='http://code.google.com/p/chromium/issues/detail?id=798'798/a,a
 href='http://code.google.com/p/chromium/issues/detail?id=0'0/abr
 BUG=a href='http://code.google.com/p/chromium/issues/detail?id=888
 '888/abr
 BUG=nonebr
   BUG = none, a href='
 http://code.google.com/p/chromium/issues/detail?id=2349'2349/a,a
 href='http://code.google.com/p/chromium/issues/detail?id=2
 '2/a,asdfbr
 BUG = a href='http://code.google.com/p/chromium/issues/detail?id=123'
 http://crbug.com/123/abr
 BUG = a href='http://code.google.com/p/chromium/issues/detail?id=234'
 crbug.com/234/a crbug/82


 If we weren't concerned about preserving formatting, you could do it with
 replace and split:

 line = 1234, 23 , 2
 bugs = line.replace(,,  ).split()


 But it's not t much more work to keep in all the formatting.


 On Thu, Sep 10, 2009 at 11:01 AM, John Abd-El-Malek j...@chromium.orgwrote:

 Thanks, glad you enjoy it :)
 This was a side distraction to fix the annoying issue of having to
 manually copying and pasting the bug ids.  It severely tested my regex-fu
 and since the multiple bugs case should be rare, I'll hide behind the excuse
 that if they're duplicates they should be marked as such and only end up
 with one, and if they're different bugs there should be separate changelists
 ;)  The rietveld change is at
 http://code.google.com/p/rietveld/source/detail?r=455, if anyone sends
 me a patch to make it work with multiple bug ids, I'd be happy to push it.


 On Wed, Sep 9, 2009 at 6:15 PM, Mohamed Mansour m...@chromium.orgwrote:

 Very nice, no longer I have to put crbug.com/#.  Whoever did that
 autolink, can you support multiple bugs as well? The format bugdroid uses 
 is
 BUG=1, 2, 3
 - Mohamed Mansour



 On Wed, Sep 9, 2009 at 8:58 PM, Paweł Hajdan Jr. 
 phajdan...@chromium.org wrote:

 I just noticed that BUG=1234 lines are autolinked to the correct bug
 when viewed in Rietveld (codereview.chromium.org). This is very
 useful, thanks!






 




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



[chromium-dev] Re: autolinking BUG= lines in Rietveld

2009-09-09 Thread Mohamed Mansour
Then it would just be a simple regular expression:

 def repl(m):

issues = re.split('\,|\s', m.group(1))

return , .join(a href='
 http://code.google.com/p/chromium/issues/detail?id=%s'%s/a % (s, s)
 for s in issues)


 if __name__ == '__main__':

description = \nBUG=1,2, 3,4

description = re.sub(\nBUG=(\d+[\,\s?\d+]*), repl, description)

 print description


- Mohamed Mansour


On Wed, Sep 9, 2009 at 11:32 PM, Jeremy Orlow jor...@chromium.org wrote:

 Would be nice if it still handled http://crbug.com/ and crbug.com/ since
 people probably will continue using them for a while.
 Also split(', ') ONLY works for when you do 'blah, blah'.  Not 'blah,blah'.
  Not 'blah blah'.  Or any other crazy things people might do.

 I didn't know that you could give re.sub a callback to format the replace
 text though.  That's cool and could probably make my code simpler.

 J


 On Thu, Sep 10, 2009 at 12:27 PM, Mohamed Mansour m...@chromium.orgwrote:

 How about just this:
 def repl(m):
 issues = m.group(1).split(', ')
 return , .join(a href='
 http://code.google.com/p/chromium/issues/detail?id=%s'%s/a % (s, s)
 for s in issues)

 if __name__ == '__main__':
 description = \nBUG=2, 3
 description = re.sub(\nBUG=(\d+[, \d+]*), repl, description)
 print description


 Works great!

 - Mohamed Mansour



 On Wed, Sep 9, 2009 at 11:25 PM, Jeremy Orlow jor...@chromium.orgwrote:

 I don't have a rietveld dev environment set up, so I wrote a quick script
 to test the general algorithm.  It's not as pythony as I'd like, but it
 seems to be fairly robust:
 #!/usr/bin/python
 import re

 description = \
 Blah blah blah.
 Blaaa

 TEST=none
 BUG=123,456, 798,0
 BUG=888
 BUG=none
  BUG = none, 2349,2,asdf
 BUG = http://crbug.com/123
 BUG = crbug.com/234 crbug/82
 

 LINK = a href='http://code.google.com/p/chromium/issues/detail?id=%s
 '%s/a
 def rewrite_bug_numbers(string):
   if ',' in string:
 right, left = string.split(',', 1)
 return rewrite_bug_numbers(right) + ',' + rewrite_bug_numbers(left)
   if ' ' in string:
 right, left = string.split(' ', 1)
 return rewrite_bug_numbers(right) + ' ' + rewrite_bug_numbers(left)

   # Base cases:
   if string.isdigit():
 return LINK % (string, string)
   match = re.search(r'^(http://|)crbug.com/(\d+)', string)
   if match:
 return LINK % (match.group(2), string)
   return string

 output = []
 for line in description.splitlines():
   match = re.search(r'^(\s*BUG\s*=)(.*)$', line)
   if match:
 line = match.group(1) + rewrite_bug_numbers(match.group(2))
   output.append(line)
 print br\n.join(output)



 Prints out

 Blah blah blah.br
 Blaaabr
 br
 TEST=nonebr
 BUG=a 
 href='http://code.google.com/p/chromium/issues/detail?id=123'123/a,a
 href='http://code.google.com/p/chromium/issues/detail?id=456'456/a,
 a href='http://code.google.com/p/chromium/issues/detail?id=798'798/a,a
 href='http://code.google.com/p/chromium/issues/detail?id=0'0/abr
 BUG=a href='http://code.google.com/p/chromium/issues/detail?id=888
 '888/abr
 BUG=nonebr
   BUG = none, a href='
 http://code.google.com/p/chromium/issues/detail?id=2349'2349/a,a
 href='http://code.google.com/p/chromium/issues/detail?id=2
 '2/a,asdfbr
 BUG = a href='http://code.google.com/p/chromium/issues/detail?id=123'
 http://crbug.com/123/abr
 BUG = a href='http://code.google.com/p/chromium/issues/detail?id=234'
 crbug.com/234/a crbug/82


 If we weren't concerned about preserving formatting, you could do it with
 replace and split:

 line = 1234, 23 , 2
 bugs = line.replace(,,  ).split()


 But it's not t much more work to keep in all the formatting.


 On Thu, Sep 10, 2009 at 11:01 AM, John Abd-El-Malek 
 j...@chromium.orgwrote:

 Thanks, glad you enjoy it :)
 This was a side distraction to fix the annoying issue of having to
 manually copying and pasting the bug ids.  It severely tested my regex-fu
 and since the multiple bugs case should be rare, I'll hide behind the 
 excuse
 that if they're duplicates they should be marked as such and only end up
 with one, and if they're different bugs there should be separate 
 changelists
 ;)  The rietveld change is at
 http://code.google.com/p/rietveld/source/detail?r=455, if anyone sends
 me a patch to make it work with multiple bug ids, I'd be happy to push it.


 On Wed, Sep 9, 2009 at 6:15 PM, Mohamed Mansour m...@chromium.orgwrote:

 Very nice, no longer I have to put crbug.com/#.  Whoever did that
 autolink, can you support multiple bugs as well? The format bugdroid uses 
 is
 BUG=1, 2, 3
 - Mohamed Mansour



 On Wed, Sep 9, 2009 at 8:58 PM, Paweł Hajdan Jr. 
 phajdan...@chromium.org wrote:

 I just noticed that BUG=1234 lines are autolinked to the correct bug
 when viewed in Rietveld (codereview.chromium.org). This is very
 useful, thanks!






 





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

[chromium-dev] Re: found corrupted db

2009-09-09 Thread Scott Hess

fts uses what is effectively a form of compression for the index, so
most any stream of data will decode at some level.  My bet in this
case is that the segdir is referencing a segment block which doesn't
exist, so someone inappropriately tries to decode NULL.

From what I recall of debugging such things in Gears, that case does
tend to go along with being able to detect via PRAGMA integrity_check,
because it happens when a page containing SQLite metadata has been
corrupted.  For instance, if an interior node of a b-tree is replaced
by a random other page (perhaps a node was split and the target page
did not get overwritten due to lying disk cache).

What's puzzling is how I know this, but we still see the crash.  I'm
pretty sure we fixed something or other around this.  That was a year
or more back, though, so maybe I'm not remembering right.  Regardless,
best-case scenario for something like this would be someone throwing
SQLITE_CORRUPT and higher-level code doing something like poisoning
(*) or deletion or mount some sort of salvage operation.

-scott

(*) This is what Gears did, it marked the database unusable in a way
that would be recognized by all outstanding handles, and bumped the
version in the mapping so that on next open a fresh new database would
be created.  Probably not appropriate in this case.


On Wed, Sep 9, 2009 at 6:34 PM, cpuc...@chromium.org wrote:

 Larson gave me a profile that can consistently crash windows chrome
 (beta). I haven't tried loading the profile myself but we have crash
 dumps from it.

 It crashes in:

 0x69db6e5d       [chrome.dll     - fts2.c:453]   getVarint       --- access
 violation at 0x0
 0x69db6ef0       [chrome.dll     - fts2.c:468]   getVarint32
 0x69dbacbf       [chrome.dll     - fts2.c:5078]  leavesReaderDataBytes
 0x69dbb1d7       [chrome.dll     - fts2.c:5407]  segmentMerge
 0x69dbb0f9       [chrome.dll     - fts2.c:5359]  segdirNextIndex
 0x69dbba45       [chrome.dll     - fts2.c:5932]  writeZeroSegment
 0x69dbbbf5       [chrome.dll     - fts2.c:5966]  flushPendingTerms
 0x69dbbc3c       [chrome.dll     - fts2.c:5984]  initPendingTerms
 0x69dba135       [chrome.dll     - fts2.c:4050]  index_delete
 0x69dbbca4       [chrome.dll     - fts2.c:6005]  fulltextUpdate
 0x69dc284a       [chrome.dll     - vdbe.c:4945]  sqlite3VdbeExec
 0x69da170f       [chrome.dll     - vdbeapi.c:476]        sqlite3Step
 0x69da1856       [chrome.dll     - vdbeapi.c:544]        sqlite3_step
 0x6a09c1ab       [chrome.dll     - text_database.cc:290]
 history::TextDatabase::DeletePageData(..)
 0x6a07d145       [chrome.dll     - text_database_manager.cc:338]
 history::TextDatabaseManager::DeletePageData(...)
 0x6a081c4a       [chrome.dll     - expire_history_backend.cc:366]
 history::ExpireHistoryBackend::DeleteVisitRelatedInfo(..);
 0x6a082496       [chrome.dll     - expire_history_backend.cc:592]
 history::ExpireHistoryBackend::ArchiveSomeOldHistory(..)
 0x6a0822fa       [chrome.dll     - expire_history_backend.cc:553]
 history::ExpireHistoryBackend::DoArchiveIteration()
 0x69ee8de1       [chrome.dll     - message_loop.cc:313]  MessageLoop::RunTask
 (Task *)

 The novel part is that sqlite can detect corruption:

 D:\testsqlite3.exe zzz\User Data\Default\History Index 2009-09
 SQLite version 3.6.17
 sqlite PRAGMA integrity_check;
 wrong # of entries in index info_time


 


--~--~-~--~~~---~--~~
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: autolinking BUG= lines in Rietveld

2009-09-09 Thread Mohamed Mansour
Hmm I was looking at my code, and its flawed (the usage of brackets). This
one should work better:

import re


def replace_bug(m):

bugs = re.split(r[\s,]+, m.group(1))

return , .join(a
href='http://code.google.com/p/chromium/issues/detail?id=%s'%s/a %
(i, i) for i in bugs if i != )
bug_pattern = r(?=BUG=)(\s*\d+\s*(?:,\s*\d+\s*)*)
result = re.sub(bug_pattern, replace_bug, \nBUG=1 , 2, 3 )
print result

 http://codepad.org/DmH9r8I6I submitted the patch to rietveld:
 http://codereview.appspot.com/115083
http://codereview.appspot.com/115083
-- Mohamed Mansour


On Wed, Sep 9, 2009 at 11:44 PM, Mohamed Mansour m...@chromium.org wrote:

 Then it would just be a simple regular expression:

 def repl(m):

 issues = re.split('\,|\s', m.group(1))

 return , .join(a href='
 http://code.google.com/p/chromium/issues/detail?id=%s'%s/a % (s, s)
 for s in issues)


 if __name__ == '__main__':

 description = \nBUG=1,2, 3,4

 description = re.sub(\nBUG=(\d+[\,\s?\d+]*), repl, description)

  print description


 - Mohamed Mansour



 On Wed, Sep 9, 2009 at 11:32 PM, Jeremy Orlow jor...@chromium.org wrote:

 Would be nice if it still handled http://crbug.com/ and crbug.com/ since
 people probably will continue using them for a while.
 Also split(', ') ONLY works for when you do 'blah, blah'.  Not
 'blah,blah'.  Not 'blah blah'.  Or any other crazy things people might do.

 I didn't know that you could give re.sub a callback to format the replace
 text though.  That's cool and could probably make my code simpler.

 J


 On Thu, Sep 10, 2009 at 12:27 PM, Mohamed Mansour m...@chromium.orgwrote:

 How about just this:
 def repl(m):
 issues = m.group(1).split(', ')
 return , .join(a href='
 http://code.google.com/p/chromium/issues/detail?id=%s'%s/a % (s, s)
 for s in issues)

 if __name__ == '__main__':
 description = \nBUG=2, 3
 description = re.sub(\nBUG=(\d+[, \d+]*), repl, description)
 print description


 Works great!

 - Mohamed Mansour



 On Wed, Sep 9, 2009 at 11:25 PM, Jeremy Orlow jor...@chromium.orgwrote:

 I don't have a rietveld dev environment set up, so I wrote a quick
 script to test the general algorithm.  It's not as pythony as I'd like, but
 it seems to be fairly robust:
 #!/usr/bin/python
 import re

 description = \
 Blah blah blah.
 Blaaa

 TEST=none
 BUG=123,456, 798,0
 BUG=888
 BUG=none
  BUG = none, 2349,2,asdf
 BUG = http://crbug.com/123
 BUG = crbug.com/234 crbug/82
 

 LINK = a href='http://code.google.com/p/chromium/issues/detail?id=%s
 '%s/a
 def rewrite_bug_numbers(string):
   if ',' in string:
 right, left = string.split(',', 1)
 return rewrite_bug_numbers(right) + ',' + rewrite_bug_numbers(left)
   if ' ' in string:
 right, left = string.split(' ', 1)
 return rewrite_bug_numbers(right) + ' ' + rewrite_bug_numbers(left)

   # Base cases:
   if string.isdigit():
 return LINK % (string, string)
   match = re.search(r'^(http://|)crbug.com/(\d+)', string)
   if match:
 return LINK % (match.group(2), string)
   return string

 output = []
 for line in description.splitlines():
   match = re.search(r'^(\s*BUG\s*=)(.*)$', line)
   if match:
 line = match.group(1) + rewrite_bug_numbers(match.group(2))
   output.append(line)
 print br\n.join(output)



 Prints out

 Blah blah blah.br
 Blaaabr
 br
 TEST=nonebr
 BUG=a 
 href='http://code.google.com/p/chromium/issues/detail?id=123'123/a,a
 href='http://code.google.com/p/chromium/issues/detail?id=456'456/a,
 a href='http://code.google.com/p/chromium/issues/detail?id=798'798/a,a
 href='http://code.google.com/p/chromium/issues/detail?id=0'0/abr
 BUG=a href='http://code.google.com/p/chromium/issues/detail?id=888
 '888/abr
 BUG=nonebr
   BUG = none, a href='
 http://code.google.com/p/chromium/issues/detail?id=2349'2349/a,a
 href='http://code.google.com/p/chromium/issues/detail?id=2
 '2/a,asdfbr
 BUG = a href='http://code.google.com/p/chromium/issues/detail?id=123'
 http://crbug.com/123/abr
 BUG = a href='http://code.google.com/p/chromium/issues/detail?id=234'
 crbug.com/234/a crbug/82


 If we weren't concerned about preserving formatting, you could do it
 with replace and split:

 line = 1234, 23 , 2
 bugs = line.replace(,,  ).split()


 But it's not t much more work to keep in all the formatting.


 On Thu, Sep 10, 2009 at 11:01 AM, John Abd-El-Malek 
 j...@chromium.orgwrote:

 Thanks, glad you enjoy it :)
 This was a side distraction to fix the annoying issue of having to
 manually copying and pasting the bug ids.  It severely tested my regex-fu
 and since the multiple bugs case should be rare, I'll hide behind the 
 excuse
 that if they're duplicates they should be marked as such and only end up
 with one, and if they're different bugs there should be separate 
 changelists
 ;)  The rietveld change is at
 http://code.google.com/p/rietveld/source/detail?r=455, if anyone sends
 me a patch to make it work with multiple bug ids, I'd be happy to push it.


 On Wed, Sep 9, 

[chromium-dev] Re: Are we going to support active FTP?

2009-09-09 Thread Darin Fisher
Ah, I see it in the Advanced prefs.  On my system, PASV is the default.
-Darin

On Wed, Sep 9, 2009 at 9:45 PM, Michal Zalewski lcam...@gmail.com wrote:

  Does IE support active mode?

 Yup - there's a manual toggle, but no auto-detection. Not sure which
 mode is on by default.

 /mz


--~--~-~--~~~---~--~~
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: Are we going to support active FTP?

2009-09-09 Thread Darin Fisher
For reference, this is https://bugzilla.mozilla.org/show_bug.cgi?id=465.  A
3 digit Mozilla bug!
Personally, I don't think we should spend much time on active mode FTP.  It
doesn't seem that valuable given that it is not supported by Firefox and
only available in IE through an advanced option.

-Darin



On Wed, Sep 9, 2009 at 9:58 PM, Darin Fisher da...@chromium.org wrote:

 Ah, I see it in the Advanced prefs.  On my system, PASV is the default.
 -Darin


 On Wed, Sep 9, 2009 at 9:45 PM, Michal Zalewski lcam...@gmail.com wrote:

  Does IE support active mode?

 Yup - there's a manual toggle, but no auto-detection. Not sure which
 mode is on by default.

 /mz




--~--~-~--~~~---~--~~
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: autolinking BUG= lines in Rietveld

2009-09-09 Thread PhistucK
Are we only talking about when it is viewed in Rietveld?What about when it
is actually committed, can the change log be tweaked that way,
automatically, too?
That would be nice when reading change logs.

Thank you!

☆PhistucK


On Thu, Sep 10, 2009 at 05:01, John Abd-El-Malek j...@chromium.org wrote:

 Thanks, glad you enjoy it :)
 This was a side distraction to fix the annoying issue of having to manually
 copying and pasting the bug ids.  It severely tested my regex-fu and since
 the multiple bugs case should be rare, I'll hide behind the excuse that if
 they're duplicates they should be marked as such and only end up with one,
 and if they're different bugs there should be separate changelists ;)  The
 rietveld change is at
 http://code.google.com/p/rietveld/source/detail?r=455, if anyone sends me
 a patch to make it work with multiple bug ids, I'd be happy to push it.


 On Wed, Sep 9, 2009 at 6:15 PM, Mohamed Mansour m...@chromium.org wrote:

 Very nice, no longer I have to put crbug.com/#.  Whoever did that
 autolink, can you support multiple bugs as well? The format bugdroid uses is
 BUG=1, 2, 3
 - Mohamed Mansour



 On Wed, Sep 9, 2009 at 8:58 PM, Paweł Hajdan Jr. phajdan...@chromium.org
  wrote:

 I just noticed that BUG=1234 lines are autolinked to the correct bug when
 viewed in Rietveld (codereview.chromium.org). This is very useful,
 thanks!






 


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