A New FTP Implementation Goes Live

Thursday, September 03, 2009

Starting in the Dev channel release 4.0.203.2, we are using our new FTP implementation by default on Windows. (It was already enabled by default on Linux and Mac.) This switchover is an important milestone in the development of our network stack. We'd like to acknowledge two Chromium contributors who made this possible.

The new FTP implementation was initially written by Ibrar Ahmed single–handedly. It was a long journey for him because he worked on it in his spare time. Ibrar has a master's degree in computer science from International Islamic University. After working as software engineer and associate architect at other companies, he recently started his own tele-medicine company. We thank Ibrar for his contribution to the Chromium network stack!

Paweł Hajdan Jr. started to work on the new FTP code in July as one of his summer intern projects at Google. Paweł added new unit tests, fixed bugs and compatibility issues, and is taking the lead in bringing the new FTP code to production quality.

Finally, we used Mozilla code for parsing and formatting FTP directory listings (ParseFTPList.cpp), which was originally written by Cyrus Patel.

In the near term, the original WinInet-based FTP implementation will still be available as an option on Windows. Specify the --wininet-ftp command-line option to enable it. (The original --new-ftp option is now obsolete and ignored.) During this period we will fix FTP bugs only in the new FTP implementation. When we're happy with the quality of the new FTP code, we will remove the original WinInet-based implementation, finally eliminating our dependency on WinInet.

Please help us achieve that goal by testing FTP with a Dev channel release and filing bug reports. Follow these guidelines when reporting bugs:
  • Please don't add a comment like "Here is another URL that doesn't work for me" to a bug. Always open a new bug, and give a link to another bug if you think they are similar.
  • Make the steps to reproduce as detailed as possible, and always include the version number of Chrome.
  • Check if the problem can be reproduced with --wininet-ftp on Windows and include that information in the bug report.

8 comments:

Fabio Turati said...

Why exactly do you want to have a new FTP stack? Wasn't the old one good enough? Or is it because you want one that is not Windows-specific, so that you have to maintain only one version across all versions of Chrome?

pkasting said...

@Fabio Turati: Not only will this let us maintain a single stack across all platforms, but it's also code in which we can fix bugs and improve performance. If something about WinInet is broken, we can't fix it; we need to report it to Microsoft and hope for them to fix + release to users.

Jason said...

Can someone tell me if --new-http is deprecated?

Thanks :)

Mohamed Mansour said...

@Jason: according to this blog post "The original --new-ftp option is now obsolete and ignored."

Jason said...

@Mohamed
I asked about the HTTP parameter: --new-http, not the FTP parameter: --new-ftp

Anyone? :)

I would check the SVN repository, however I do not know what file the parameters are in.

Mohamed Mansour said...

@Jason: I have no idea of a "new-http" switch. The only switches "currently" are located in chrome/common/chrome_switches.cc file.

Darin Fisher (Google) said...

@Jason, --new-http has been obsolete for some time now. The new HTTP stack is the only HTTP stack in Chrome now-a-days :)

Josh14Cory said...

Greetings! We are offering service of paper writers to everyone specially students who needs guidelines in essays. If you are interested just click the link for more information and details.