[chromium-dev] UI test proposal

2009-01-12 Thread Scott Violet

The ui tests have long been a thorn in the side of Chrome
developers. The pain is most acute when a developer commits a change
and a ui test starts failing, only to pass on the next cycle. In
looking through recently failing ui tests it seems the tests fail for
the folowing reasons:

. A bug in Chrome the UI test occasionally hits. For example,
  BrowserTest.JavascriptAlertActivatesTab occasionally triggers a
  NOTREACHED in AtExitManager::RegisterCallback. This doesn't appear
  to be a bug in the test, rather a real bug in Chrome that is tricky
  to fix. These failures are the most frustrating as they are
  typically hard to reproduce outside of the buildbot.

. The UI test expects something to happen in a certain amount of time
  and for various reasons it doesn't. This can happen for any number
  of reasons, most often because the test isn't giving enough time
  for a condition to occur before asserting the condition occurred.

To address these pains I propose the following:

. Ignore any failures that are the result of:
  [580:1948:983267734:FATAL:object_watcher.cc(62)] Check failed:
false. RegisterWaitForSingleObject failed: 1299
  This seems to be the cause of a number of ui test failures and
  needs to be investigated. Until then, we shouldn't show failures
  that are the result of this.

. Have the bots maintain a flakey test list. The list will initially
  contain the set of tests Niranjan has identified. If a test on the
  list fails the buildbot becomes yellow, and only becomes red if
  the test fails again during the next run. We may want to require
  three failures in a row, but two is a good place to start at. The
  flakey ui test list will exist in the repository and can be
  modified over time as necessary. Similarly, if the ui tests timeout
  during an exception, only make the tree red if they timeout
  again. Hopefully this can leverage the same scripts used for
  tests_fixable.

. Analyze the set of tests that have recently failed in hopes of
  fixing the bugs or tests. Niranjan has a compiled a list of these
  bugs. This won't be easy as many of these bugs are hard to
  reproduce outside of the bots.

. Some of the UI tests poll until some criteria is matched. For
  example, until the number of tabs becomes X. This makes for tests
  that take longer than they need to. 250ms doesn't seem like much,
  but it quickly adds up as our test base grows. Instead, the test
  should issue a command so that the browser sends back a response
  when done so that the tests can run as fast as possible.

These recommendations make for a greener tree, but they won't make it
any easier to write, debug and maintain UI tests. The UI tests are
end-to-end tests, and have their place, but for the most part we've
written ui tests because we haven't had a more convenient way to bring
up the browser in a unit test setting. To that end I propose
we expand the unit tests to enable bringing up the browser in the unit
test, with the unit test having direct handles to all live
objects. Additionally we'll write mocks for prominent classes so that
you can create a Browser with only the parts you care about testing
(for example, no window, or no renderer...). This has the following
advantages:

. Easier to debug.
. You have handles to real objects, so that there is no need to add
  automation messages for new functionality you want to test.
. Tests should run faster as there can be less delays.
. You can mock out parts you don't need, resulting in more focused
  tests, for example, you need not have any history or bookmarks if
  you're not going to test them.

There are disadvantages to this approach though:

. If a test crashes, no tests after the crashing test will run (unit
  tests already have this property, but not the existing ui tests).
. The test runs on the ui thread, so you still need to write code that
  waits for a condition to be met. Helpers will need to be written to
  ease this.
. The startup process needs to be refactored to allow for ui tests to
  use it.

None-the-less, I think the advantages out weigh the negatives.

Thoughts?

  -Scott

--~--~-~--~~~---~--~~
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-checkins] r4633 - in trunk/src/chrome: app browser browser/importer browser/views

2009-01-12 Thread Dean McNamee

This added a bunch of startup time static initializers.  Specifically
there are many things like:

 const std::string Toolbar5Importer::kUrlXmlTag = url;

These all need to run the std::string constructor on startup, which
should be considered a regression...

Here is the complete list:

_dynamic_initializer_for__Toolbar5Importer__kXmlApiReplyXmlTag__
_dynamic_initializer_for__Toolbar5Importer__kBookmarksXmlTag__
_dynamic_initializer_for__Toolbar5Importer__kBookmarkXmlTag__
_dynamic_initializer_for__Toolbar5Importer__kTitleXmlTag__
_dynamic_initializer_for__Toolbar5Importer__kUrlXmlTag__
_dynamic_initializer_for__Toolbar5Importer__kTimestampXmlTag__
_dynamic_initializer_for__Toolbar5Importer__kLabelsXmlTag__
_dynamic_initializer_for__Toolbar5Importer__kLabelsXmlCloseTag__
_dynamic_initializer_for__Toolbar5Importer__kLabelXmlTag__
_dynamic_initializer_for__Toolbar5Importer__kAttributesXmlTag__
_dynamic_initializer_for__Toolbar5Importer__kRandomNumberToken__
_dynamic_initializer_for__Toolbar5Importer__kAuthorizationToken__
_dynamic_initializer_for__Toolbar5Importer__kAuthorizationTokenPrefix__
_dynamic_initializer_for__Toolbar5Importer__kAuthorizationTokenSuffix__
_dynamic_initializer_for__Toolbar5Importer__kMaxNumToken__
_dynamic_initializer_for__Toolbar5Importer__kMaxTimestampToken__
_dynamic_initializer_for__Toolbar5Importer__kT5AuthorizationTokenUrl__
_dynamic_initializer_for__Toolbar5Importer__kT5FrontEndUrlTemplate__


On Tue, Nov 4, 2008 at 8:54 PM,  b...@chromium.com wrote:

 Author: b...@chromium.com
 Date: Tue Nov  4 11:54:49 2008
 New Revision: 4633

 Log:
 Toolbar Import - Issue 8801, migrated from public tree to svn enlistment.

 Added:
   trunk/src/chrome/browser/importer/toolbar_importer.cc
   trunk/src/chrome/browser/importer/toolbar_importer.h
 Modified:
   trunk/src/chrome/app/generated_resources.grd
   trunk/src/chrome/browser/browser.vcproj
   trunk/src/chrome/browser/importer/importer.cc
   trunk/src/chrome/browser/importer/importer.h
   trunk/src/chrome/browser/views/importer_view.cc
   trunk/src/chrome/browser/views/importer_view.h

 Modified: trunk/src/chrome/app/generated_resources.grd
 ==
 --- trunk/src/chrome/app/generated_resources.grd(original)
 +++ trunk/src/chrome/app/generated_resources.grdTue Nov  4 11:54:49 
 2008
 @@ -1768,6 +1768,9 @@
   message name=IDS_IMPORT_FROM_FIREFOX desc=browser combo box: 
 Mozilla Firefox
 Mozilla Firefox
   /message
 +  message name=IDS_IMPORT_FROM_GOOGLE_TOOLBAR desc=browser combo 
 box: Google Toolbar
 +Google Toolbar
 +  /message
   message name=IDS_IMPORT_ITEMS_LABEL desc=Label before item select 
 checkboxes
 Select items to import:
   /message
 @@ -1791,6 +1794,10 @@
 Import
   /message

 +  message name=IDS_IMPORTER_GOOGLE_LOGIN_TEXT desc=The message to be 
 displayed on dialog
 +In order to import Toolbar bookmarks into Chrome, you must be logged 
 into your Google account.  Please log in and try to import again.
 +  /message
 +
   !-- Import progress popup --
   message name=IDS_IMPORT_PROGRESS_TITLE desc=Title for the importing 
 progress dialog
 Importing
 @@ -2032,7 +2039,7 @@
   message name=IDS_BOOKMARKS_NO_ITEMS desc=Text shown when the user 
 has no bookmarks
 For quick access, place your bookmarks here in the bookmarks bar.
   /message
 -
 +
   !-- The location for special bookmark groups --
   message name=IDS_BOOKMARK_GROUP_FROM_IE desc=The group name of 
 bookmarks from Internet Explorer
 Imported From IE
 @@ -2040,11 +2047,14 @@
   message name=IDS_BOOKMARK_GROUP_FROM_FIREFOX desc=The group name of 
 bookmarks from Firefox
 Imported From Firefox
   /message
 +  message name=IDS_BOOKMARK_GROUP_FROM_GOOGLE_TOOLBAR desc=The group 
 name of bookmarks from Google Toolbar
 +Imported From Google Toolbar
 +  /message
   message name=IDS_BOOKMARK_GROUP desc=The group name of bookmarks 
 imported from a file
 Imported
   /message

 -  !-- bookmark editor messages--
 +  !-- bookmark editor messages--
   message name=IDS_BOOMARK_EDITOR_NAME_LABEL desc=Label shown before 
 the title/name of the URL.
 Name:
   /message

 Modified: trunk/src/chrome/browser/browser.vcproj
 ==
 --- trunk/src/chrome/browser/browser.vcproj (original)
 +++ trunk/src/chrome/browser/browser.vcproj Tue Nov  4 11:54:49 2008
 @@ -722,19 +722,19 @@
Name=Bookmarks

File
 -   
 RelativePath=.\bookmarks\bookmark_context_menu.cc
 +   RelativePath=.\bookmarks\bookmark_codec.cc

/File
File
 -   

[chromium-dev] If you're feeling bored

2009-01-12 Thread Dean McNamee

There are some static initializers that should be fixed.

UI:

_dynamic_initializer_for__views__DialogClientView__dialog_button_font___
_dynamic_initializer_for__views__DefaultNonClientView__title_font___
_dynamic_initializer_for__BrowserView__default_favicon___
_dynamic_initializer_for__BrowserView__otr_avatar___
_dynamic_initializer_for__ConstrainedWindowNonClientView__title_font___
_dynamic_initializer_for__SadTabView__title_font___
_dynamic_initializer_for__SadTabView__message_font___
_dynamic_initializer_for__SadTabView__title___
_dynamic_initializer_for__SadTabView__message___
_dynamic_initializer_for__title_font__
_dynamic_initializer_for__AeroGlassWindowResources__app_top_left___
_dynamic_initializer_for__AeroGlassWindowResources__app_top_center___
_dynamic_initializer_for__AeroGlassWindowResources__app_top_right___
_dynamic_initializer_for__AeroGlassNonClientView__distributor_logo___
_dynamic_initializer_for__OpaqueNonClientView__distributor_logo___
_dynamic_initializer_for__OpaqueNonClientView__app_top_left___
_dynamic_initializer_for__OpaqueNonClientView__app_top_center___
_dynamic_initializer_for__OpaqueNonClientView__app_top_right___
_dynamic_initializer_for__OpaqueNonClientView__title_font___
_anonymous_namespacedynamic_initializer_for__smallSystemFont__
_anonymous_namespacedynamic_initializer_for__menuFont__
_anonymous_namespacedynamic_initializer_for__labelFont__


others (a few of these might be v8):

anonymous_namespacedynamic_initializer_for___Module__
_dynamic_initializer_for__g_plugin_channels___
_anonymous_namespacedynamic_initializer_for__all_hosts__
_dynamic_initializer_for__CacheManagerHost__kRendererInactiveThreshold__
chrome_browser_net___dynamic_initializer_for__off_the_record_observer__
chrome_browser_net___dynamic_initializer_for__dns_resolution_observer__
_dynamic_initializer_for__chrome_url_data_manager__
_dynamic_initializer_for__BrowserList__browsers___
_dynamic_initializer_for__BrowserList__observers___
_dynamic_initializer_for__BrowserList__dependent_windows___
_dynamic_initializer_for__BrowserList__last_active_browsers___
_dynamic_initializer_for__ChromeThread__lock___
_dynamic_initializer_for__chrome_browser_net__DnsHostInfo__kNullDuration__
_dynamic_initializer_for__chrome_browser_net__DnsHostInfo__kCacheExpirationDuration__
_dynamic_initializer_for__chrome_browser_net__DnsHostInfo__kMaxNonNetworkDnsLookupDuration__
_dynamic_initializer_for__URLFetcherProtectManager__protect_manager___
_dynamic_initializer_for__URLFetcherProtectManager__lock___
_dynamic_initializer_for__g_process_template__
_dynamic_initializer_for__URLRequestMockHTTPJob__base_path___
_dynamic_initializer_for__URLRequestSlowDownloadJob__kPendingRequests__
_anonymous_namespacedynamic_initializer_for__canonical_encoding_name_map_singleton__
_dynamic_initializer_for___anonymous_namespace___PaintTimer__kTimeout__
_dynamic_initializer_for__kGoogleDomainUrl__
_dynamic_initializer_for__kGoogleDomainSecureCookieId__
_dynamic_initializer_for__BrowsingInstance__profile_site_instance_map___
_dynamic_initializer_for__BrowserURLHandler__url_handlers___
_dynamic_initializer_for__kHistoryHost__
_dynamic_initializer_for__g_live_objects__
_dynamic_initializer_for__g_root_objects__
_dynamic_initializer_for__static_template_map__
_dynamic_initializer_for__static_npobject_map__
IPC___dynamic_initializer_for__dummy_event__
_dynamic_initializer_for__ThumbnailScore__kUpdateThumbnailTime__
sub_1901EA0
sub_1902010
_dynamic_initializer_for__NPAPI__PluginHost__singleton___
_dynamic_initializer_for__windowless_queue__
_dynamic_initializer_for__WebPluginDelegateImpl__throttle_queue___
_dynamic_initializer_for__WebPluginDelegateImpl__iat_patch_track_popup_menu___
_dynamic_initializer_for__WebPluginDelegateImpl__iat_patch_set_cursor___
_dynamic_initializer_for__NPAPI__PluginList__singleton___
_dynamic_initializer_for__NPAPI__PluginInstance__plugin_instance_tls_index___
webkit_glue___dynamic_initializer_for__html_entity_map_singleton__
webkit_glue___dynamic_initializer_for__xml_entity_map_singleton__
_dynamic_initializer_for__reg__
_dynamic_initializer_for__gLinearGradientReg__
_dynamic_initializer_for__gRadialGradientReg__
_dynamic_initializer_for__gSweepGradientReg__
_dynamic_initializer_for__gPixelRefMutex__
_dynamic_initializer_for__gGCGlobals__
_dynamic_initializer_for__gBitmapProcShaderReg__
_dynamic_initializer_for__gBootStrap__
_dynamic_initializer_for__BaseShellDialogImpl__owners___
_dynamic_initializer_for__FileDisplayArea__default_folder_icon___
_dynamic_initializer_for__CustomHomePagesTableModel__default_favicon___
_dynamic_initializer_for__Tab__kTabClassName__
std___dynamic_initializer_for__classic_locale__
_dynamic_initializer_for__Watchdog__static_lock___
_dynamic_initializer_for__tracked_objects__ThreadData__list_lock___
WebCore___dynamic_initializer_for__pluginCache__
WebCore___dynamic_initializer_for__outlineCache__
_dynamic_initializer_for__g_url_request_job_tracker__

[chromium-dev] Skia YUV support

2009-01-12 Thread Andrew Scherkus
Anyone a Skia expert and know if it supports YUV?
From poking around it looks like SkBitmap assumes planar RGB and
SkColorMatrix has a YUV - RGB matrix but I can't find any examples of how
to use it.

Thanks,
Andrew

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

2009-01-12 Thread Evan Martin

Hi,

Some of the people working on Linux have set up a weekly meeting* to sync up.
I put some meeting notes up here:
  http://code.google.com/p/chromium/wiki/LinuxWeeklyNotes

I likely won't announce future updates to it, so try checking back in
a week or so if you're really interested.


* It's at Google now, but we could probably figure something out for
non-Googlers if we really need to.

--~--~-~--~~~---~--~~
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: Problems compiling with xcode 3.1

2009-01-12 Thread Jon
You probably used svn directly instead of gclient.
http://dev.chromium.org/developers/how-tos/get-the-code

I think you can recover by going into your repository directory (not into
src) and using:

  gclient config http://src.chromium.org/svn/trunk/src

Then use:

  gclient sync

Then always use gclient sync instead of svn sync.

Jon

On Mon, Jan 12, 2009 at 9:19 AM, kc kec...@gmail.com wrote:


 Hi,
I am kind of new to this. Could someone pls kindly help  provide
 me
 with some guidance?

I ran into tons and tons of compilation errors with xcode 3.1. (I
 downloaded the tarball base
 and did a sync while tree is opened). The first error I ran into said
 it couldnt find the header file
 carbon/carbon.h in an include of one of the cc files. What I noticed
 is that Carbon/Carbon.h (Upper Case)
 will rid of that particular error. Lot of errors look like it doesnt
 know how to handle header files.
 I speculate one can fix this in the Build Settings (under Project 
 Edit Project Settings).
 I went there and under the Build tab,  I am wondering why it only
 contained user defined settings,
 and missing all the others (eg. Compiler Version, Search Paths).

 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: Skia YUV support

2009-01-12 Thread jhaas

1. Create an SkColorMatrix, call setYUV2RGB()
2. Create an SkColorMatrixFilter, call setMatrix()
3. When you're ready to draw, call setColorFilter() on the SkPaint
you're using.

I think this will work.

--J

On Jan 12, 3:33 pm, Andrew Scherkus scher...@chromium.org wrote:
 Anyone a Skia expert and know if it supports YUV?
 From poking around it looks like SkBitmap assumes planar RGB and
 SkColorMatrix has a YUV - RGB matrix but I can't find any examples of how
 to use it.

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



[chromium-dev] dtrace and chromium?

2009-01-12 Thread Dan Kegel

Hey mac chrome developers,
how useful is / will dtrace be for chrome development on macosx?
(Beyond things like dtruss, I mean.)
Is it going to be important for tracking down performance
issues?
Thanks,
Dan

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



[chromium-dev] Re: Problems compiling with xcode 3.1

2009-01-12 Thread kc

1) I installed xcode 3.1 in default location, /Developer/Applications.
I am running leopard 10.5.6

2) Under Xcode's Project  Set Active SDK, I have
- Device - Iphone OS 2.0
- Device - Iphone OS 2.1
- Device - Iphone OS 2.2

- Simulator - same as above

- Mac OS X 10.4
- Mac OS X 10.5

Note: the All project in Chrome was set to Use Project Settings,
whose Base SDK is set to Current Mac OS

3) I don't remember if I have. Is there a quick way to verify?

-Kelvin

On Jan 12, 12:22 pm, Thomas Van Lenten thoma...@chromium.org wrote:
 Where did you install xcode?
 What os sdks did you install?
 Did you let it install the command line tools also?

 TVL

 On Mon, Jan 12, 2009 at 12:19 PM, kc kec...@gmail.com wrote:

  Hi,
     I am kind of new to this. Could someone pls kindly help  provide
  me
  with some guidance?

     I ran into tons and tons of compilation errors with xcode 3.1. (I
  downloaded the tarball base
  and did a sync while tree is opened). The first error I ran into said
  it couldnt find the header file
  carbon/carbon.h in an include of one of the cc files. What I noticed
  is that Carbon/Carbon.h (Upper Case)
  will rid of that particular error. Lot of errors look like it doesnt
  know how to handle header files.
  I speculate one can fix this in the Build Settings (under Project 
  Edit Project Settings).
  I went there and under the Build tab,  I am wondering why it only
  contained user defined settings,
  and missing all the others (eg. Compiler Version, Search Paths).

  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: Problems compiling with xcode 3.1

2009-01-12 Thread kc

I actually did use gclient sync after untarring.
but i will give your suggestion a try also.

On Jan 12, 7:21 pm, Jon j...@chromium.org wrote:
 You probably used svn directly instead of 
 gclient.http://dev.chromium.org/developers/how-tos/get-the-code

 I think you can recover by going into your repository directory (not into
 src) and using:

   gclient confighttp://src.chromium.org/svn/trunk/src

 Then use:

   gclient sync

 Then always use gclient sync instead of svn sync.

 Jon

 On Mon, Jan 12, 2009 at 9:19 AM, kc kec...@gmail.com wrote:

  Hi,
     I am kind of new to this. Could someone pls kindly help  provide
  me
  with some guidance?

     I ran into tons and tons of compilation errors with xcode 3.1. (I
  downloaded the tarball base
  and did a sync while tree is opened). The first error I ran into said
  it couldnt find the header file
  carbon/carbon.h in an include of one of the cc files. What I noticed
  is that Carbon/Carbon.h (Upper Case)
  will rid of that particular error. Lot of errors look like it doesnt
  know how to handle header files.
  I speculate one can fix this in the Build Settings (under Project 
  Edit Project Settings).
  I went there and under the Build tab,  I am wondering why it only
  contained user defined settings,
  and missing all the others (eg. Compiler Version, Search Paths).

  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: dtrace and chromium?

2009-01-12 Thread Amanda Walker

I expect dtrace to be downright crucial once we get to performance
measurement and improvement, especially in an execution environment
that involves communication among multiple processes.  Apple ships
both dtrace and a nice graphical frontend to it called Instruments
as a part of the Xcode development environment.

Is there a specific aspect you're interested in?

--Amanda

On Mon, Jan 12, 2009 at 7:27 PM, Dan Kegel daniel.r.ke...@gmail.com wrote:

 Hey mac chrome developers,
 how useful is / will dtrace be for chrome development on macosx?
 (Beyond things like dtruss, I mean.)
 Is it going to be important for tracking down performance
 issues?
 Thanks,
 Dan

 




-- 
--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: If you're feeling bored

2009-01-12 Thread Mohamed Mansour
I sent a review to see what I did is correct, if so, I will follow the same
approach and complete the rest. If not, I hope someone will lead me to the
right direction.

On IRC:jamesr yeah - declare a static accessor for that field and then
when it is first called initialize a pointer or something like that
Then
evmar or use base::lazy_instance
evmar m0, jamesr: usually you should just use a pointer unless you need
thread safety

I didn't know how to use lazy_instance, if someone can clarify that for me.

Thanks!

On Mon, Jan 12, 2009 at 6:01 PM, Dean McNamee de...@chromium.org wrote:


 There are some static initializers that should be fixed.

 UI:

 _dynamic_initializer_for__views__DialogClientView__dialog_button_font___
 _dynamic_initializer_for__views__DefaultNonClientView__title_font___
 _dynamic_initializer_for__BrowserView__default_favicon___
 _dynamic_initializer_for__BrowserView__otr_avatar___
 _dynamic_initializer_for__ConstrainedWindowNonClientView__title_font___
 _dynamic_initializer_for__SadTabView__title_font___
 _dynamic_initializer_for__SadTabView__message_font___
 _dynamic_initializer_for__SadTabView__title___
 _dynamic_initializer_for__SadTabView__message___
 _dynamic_initializer_for__title_font__
 _dynamic_initializer_for__AeroGlassWindowResources__app_top_left___
 _dynamic_initializer_for__AeroGlassWindowResources__app_top_center___
 _dynamic_initializer_for__AeroGlassWindowResources__app_top_right___
 _dynamic_initializer_for__AeroGlassNonClientView__distributor_logo___
 _dynamic_initializer_for__OpaqueNonClientView__distributor_logo___
 _dynamic_initializer_for__OpaqueNonClientView__app_top_left___
 _dynamic_initializer_for__OpaqueNonClientView__app_top_center___
 _dynamic_initializer_for__OpaqueNonClientView__app_top_right___
 _dynamic_initializer_for__OpaqueNonClientView__title_font___
 _anonymous_namespacedynamic_initializer_for__smallSystemFont__
 _anonymous_namespacedynamic_initializer_for__menuFont__
 _anonymous_namespacedynamic_initializer_for__labelFont__


 others (a few of these might be v8):

 anonymous_namespacedynamic_initializer_for___Module__
 _dynamic_initializer_for__g_plugin_channels___
 _anonymous_namespacedynamic_initializer_for__all_hosts__
 _dynamic_initializer_for__CacheManagerHost__kRendererInactiveThreshold__
 chrome_browser_net___dynamic_initializer_for__off_the_record_observer__
 chrome_browser_net___dynamic_initializer_for__dns_resolution_observer__
 _dynamic_initializer_for__chrome_url_data_manager__
 _dynamic_initializer_for__BrowserList__browsers___
 _dynamic_initializer_for__BrowserList__observers___
 _dynamic_initializer_for__BrowserList__dependent_windows___
 _dynamic_initializer_for__BrowserList__last_active_browsers___
 _dynamic_initializer_for__ChromeThread__lock___
 _dynamic_initializer_for__chrome_browser_net__DnsHostInfo__kNullDuration__

 _dynamic_initializer_for__chrome_browser_net__DnsHostInfo__kCacheExpirationDuration__

 _dynamic_initializer_for__chrome_browser_net__DnsHostInfo__kMaxNonNetworkDnsLookupDuration__
 _dynamic_initializer_for__URLFetcherProtectManager__protect_manager___
 _dynamic_initializer_for__URLFetcherProtectManager__lock___
 _dynamic_initializer_for__g_process_template__
 _dynamic_initializer_for__URLRequestMockHTTPJob__base_path___
 _dynamic_initializer_for__URLRequestSlowDownloadJob__kPendingRequests__

 _anonymous_namespacedynamic_initializer_for__canonical_encoding_name_map_singleton__
 _dynamic_initializer_for___anonymous_namespace___PaintTimer__kTimeout__
 _dynamic_initializer_for__kGoogleDomainUrl__
 _dynamic_initializer_for__kGoogleDomainSecureCookieId__
 _dynamic_initializer_for__BrowsingInstance__profile_site_instance_map___
 _dynamic_initializer_for__BrowserURLHandler__url_handlers___
 _dynamic_initializer_for__kHistoryHost__
 _dynamic_initializer_for__g_live_objects__
 _dynamic_initializer_for__g_root_objects__
 _dynamic_initializer_for__static_template_map__
 _dynamic_initializer_for__static_npobject_map__
 IPC___dynamic_initializer_for__dummy_event__
 _dynamic_initializer_for__ThumbnailScore__kUpdateThumbnailTime__
 sub_1901EA0
 sub_1902010
 _dynamic_initializer_for__NPAPI__PluginHost__singleton___
 _dynamic_initializer_for__windowless_queue__
 _dynamic_initializer_for__WebPluginDelegateImpl__throttle_queue___

 _dynamic_initializer_for__WebPluginDelegateImpl__iat_patch_track_popup_menu___
 _dynamic_initializer_for__WebPluginDelegateImpl__iat_patch_set_cursor___
 _dynamic_initializer_for__NPAPI__PluginList__singleton___

 _dynamic_initializer_for__NPAPI__PluginInstance__plugin_instance_tls_index___
 webkit_glue___dynamic_initializer_for__html_entity_map_singleton__
 webkit_glue___dynamic_initializer_for__xml_entity_map_singleton__
 _dynamic_initializer_for__reg__
 _dynamic_initializer_for__gLinearGradientReg__
 _dynamic_initializer_for__gRadialGradientReg__
 _dynamic_initializer_for__gSweepGradientReg__
 _dynamic_initializer_for__gPixelRefMutex__
 

[chromium-dev] Re: If you're feeling bored

2009-01-12 Thread Mohamed Mansour
One more thing, Concerning this: http://codereview.chromium.org/17637/show

For instance I just converted
static SkBitmap default_favicon_;

to a pointer
static SkBitmap* default_favicon_;

and removed this:
SkBitmap BrowserView::default_favicon_;

Should I have done this instead?
static LazyInstanceSkBitmap default_favicon_(base::LINKER_INITIALIZER);

SkBitmap* BrowserView::default_favicon() {
  return rb.GetBitmapNamed(IDR_DEFAULT_FAVICON);
}

Then when I instantiate it, I should just do the following:
default_favicon_.Get().default_favicon();

I was following the lazy_instance.h, so any help is appreciated!

On Tue, Jan 13, 2009 at 12:13 AM, Mohamed Mansour
m0.interact...@gmail.comwrote:

 I sent a review to see what I did is correct, if so, I will follow the same
 approach and complete the rest. If not, I hope someone will lead me to the
 right direction.

 On IRC:jamesr yeah - declare a static accessor for that field and then
 when it is first called initialize a pointer or something like that
 Then
 evmar or use base::lazy_instance
 evmar m0, jamesr: usually you should just use a pointer unless you need
 thread safety

 I didn't know how to use lazy_instance, if someone can clarify that for me.

 Thanks!

 On Mon, Jan 12, 2009 at 6:01 PM, Dean McNamee de...@chromium.org wrote:


 There are some static initializers that should be fixed.

 UI:

 _dynamic_initializer_for__views__DialogClientView__dialog_button_font___
 _dynamic_initializer_for__views__DefaultNonClientView__title_font___
 _dynamic_initializer_for__BrowserView__default_favicon___
 _dynamic_initializer_for__BrowserView__otr_avatar___
 _dynamic_initializer_for__ConstrainedWindowNonClientView__title_font___
 _dynamic_initializer_for__SadTabView__title_font___
 _dynamic_initializer_for__SadTabView__message_font___
 _dynamic_initializer_for__SadTabView__title___
 _dynamic_initializer_for__SadTabView__message___
 _dynamic_initializer_for__title_font__
 _dynamic_initializer_for__AeroGlassWindowResources__app_top_left___
 _dynamic_initializer_for__AeroGlassWindowResources__app_top_center___
 _dynamic_initializer_for__AeroGlassWindowResources__app_top_right___
 _dynamic_initializer_for__AeroGlassNonClientView__distributor_logo___
 _dynamic_initializer_for__OpaqueNonClientView__distributor_logo___
 _dynamic_initializer_for__OpaqueNonClientView__app_top_left___
 _dynamic_initializer_for__OpaqueNonClientView__app_top_center___
 _dynamic_initializer_for__OpaqueNonClientView__app_top_right___
 _dynamic_initializer_for__OpaqueNonClientView__title_font___
 _anonymous_namespacedynamic_initializer_for__smallSystemFont__
 _anonymous_namespacedynamic_initializer_for__menuFont__
 _anonymous_namespacedynamic_initializer_for__labelFont__


 others (a few of these might be v8):

 anonymous_namespacedynamic_initializer_for___Module__
 _dynamic_initializer_for__g_plugin_channels___
 _anonymous_namespacedynamic_initializer_for__all_hosts__
 _dynamic_initializer_for__CacheManagerHost__kRendererInactiveThreshold__
 chrome_browser_net___dynamic_initializer_for__off_the_record_observer__
 chrome_browser_net___dynamic_initializer_for__dns_resolution_observer__
 _dynamic_initializer_for__chrome_url_data_manager__
 _dynamic_initializer_for__BrowserList__browsers___
 _dynamic_initializer_for__BrowserList__observers___
 _dynamic_initializer_for__BrowserList__dependent_windows___
 _dynamic_initializer_for__BrowserList__last_active_browsers___
 _dynamic_initializer_for__ChromeThread__lock___
 _dynamic_initializer_for__chrome_browser_net__DnsHostInfo__kNullDuration__

 _dynamic_initializer_for__chrome_browser_net__DnsHostInfo__kCacheExpirationDuration__

 _dynamic_initializer_for__chrome_browser_net__DnsHostInfo__kMaxNonNetworkDnsLookupDuration__
 _dynamic_initializer_for__URLFetcherProtectManager__protect_manager___
 _dynamic_initializer_for__URLFetcherProtectManager__lock___
 _dynamic_initializer_for__g_process_template__
 _dynamic_initializer_for__URLRequestMockHTTPJob__base_path___
 _dynamic_initializer_for__URLRequestSlowDownloadJob__kPendingRequests__

 _anonymous_namespacedynamic_initializer_for__canonical_encoding_name_map_singleton__
 _dynamic_initializer_for___anonymous_namespace___PaintTimer__kTimeout__
 _dynamic_initializer_for__kGoogleDomainUrl__
 _dynamic_initializer_for__kGoogleDomainSecureCookieId__
 _dynamic_initializer_for__BrowsingInstance__profile_site_instance_map___
 _dynamic_initializer_for__BrowserURLHandler__url_handlers___
 _dynamic_initializer_for__kHistoryHost__
 _dynamic_initializer_for__g_live_objects__
 _dynamic_initializer_for__g_root_objects__
 _dynamic_initializer_for__static_template_map__
 _dynamic_initializer_for__static_npobject_map__
 IPC___dynamic_initializer_for__dummy_event__
 _dynamic_initializer_for__ThumbnailScore__kUpdateThumbnailTime__
 sub_1901EA0
 sub_1902010
 _dynamic_initializer_for__NPAPI__PluginHost__singleton___
 _dynamic_initializer_for__windowless_queue__
 

[chromium-dev] how to hide navigate bar

2009-01-12 Thread if-ifone
it is known that popup browser with maxsize and no navigate bar can use
script like below

 
window.open('test.html','blank','fullscreen=1,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,status=no');
how ever chrome always show white location bar like attach shows.
how to hide it.

thanks

-- 
thinking

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

inline: navigate.JPG

[chromium-dev] Re: how to hide navigate bar

2009-01-12 Thread Brett Wilson

On Mon, Jan 12, 2009 at 9:41 PM, if-ifone hello...@gmail.com wrote:
 it is known that popup browser with maxsize and no navigate bar can use
 script like below

  
 window.open('test.html','blank','fullscreen=1,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,status=no');
 how ever chrome always show white location bar like attach shows.
 how to hide it.

For security reasons, it is not possible to hide the URL bar (much
like the latest versions of Firefox and IE, if I recall).

Brett

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



[chromium-dev] Re: how to hide navigate bar

2009-01-12 Thread if-ifone
thanks,

2009/1/13 Brett Wilson bre...@chromium.org


 On Mon, Jan 12, 2009 at 9:41 PM, if-ifone hello...@gmail.com wrote:
  it is known that popup browser with maxsize and no navigate bar can use
  script like below
 
 
  
 window.open('test.html','blank','fullscreen=1,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,status=no');
  how ever chrome always show white location bar like attach shows.
  how to hide it.

 For security reasons, it is not possible to hide the URL bar (much
 like the latest versions of Firefox and IE, if I recall).

 Brett

 



-- 
thinking

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