[chromium-dev] UI test proposal
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
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
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
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
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
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
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?
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
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
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?
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
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
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
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
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
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 -~--~~~~--~~--~--~---