summaryrefslogtreecommitdiffstats
path: root/base/message_loop.h
Commit message (Collapse)AuthorAgeFilesLines
* Only HistogramBase is used outside of base/metrics.kaiwang@chromium.org2013-01-231-2/+2
| | | | | | | | | | | | | | So client code of histogram will see a simpler interface. This also makes adding SparseHistogram to existing metrics framework possible. This CL depends on https://codereview.chromium.org/11682003/ So please review that one first. TBR=sky@chromium.org,erikwright@chromium.org BUG=139612 Review URL: https://chromiumcodereview.appspot.com/11615008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178242 0039d316-1c4b-4281-b951-d872f2087c98
* Making most protected members of MessageLoop private.shibl@google.com2013-01-221-4/+5
| | | | | | | | | | BUG=149691 TEST=NONE Review URL: https://chromiumcodereview.appspot.com/12033022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178141 0039d316-1c4b-4281-b951-d872f2087c98
* Fix comments that reference the long since deleted TimerManager class.darin@chromium.org2013-01-161-9/+8
| | | | | | Review URL: https://chromiumcodereview.appspot.com/11913006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177062 0039d316-1c4b-4281-b951-d872f2087c98
* base: Remove deprecated RunAllPending() function from MessageLoop API.tfarina@chromium.org2012-12-191-3/+0
| | | | | | | | | | | | | All the calls to RunAllPending() were moved to RunUntilIdle(), so now we can remove this. BUG=131220 R=willchan@chromium.org TBR=maruel@chromium.org # for presubmit Review URL: https://chromiumcodereview.appspot.com/11635008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173939 0039d316-1c4b-4281-b951-d872f2087c98
* Add comments about memory behavior of SWP tasks with the same sequence tokenakalin@chromium.org2012-12-181-0/+3
| | | | | | | | | | | | | | | | Clarify comments about memory guarantees in SequencedTaskRunner. Make SWPSequencedTaskRunner::PostNonNestableDelayedTask forward to PostDelayedTask (to have the same shutdown behavior). Add comment in message_loop.h clarifying the equivalence of PostTask() and PostDelayedTask() with a zero delay. BUG=165590 Review URL: https://codereview.chromium.org/11554010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173596 0039d316-1c4b-4281-b951-d872f2087c98
* Provide an iOS message pump for IO implementation.blundell@chromium.org2012-11-301-1/+27
| | | | | | | | | The implementation is done as a subclass of MessagePumpNSRunLoop. It is conceptually quite similar to the libevent implementation (message_pump_libevent*), on which it is based. Review URL: https://chromiumcodereview.appspot.com/11412101 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170470 0039d316-1c4b-4281-b951-d872f2087c98
* Trace PostTasks from post to run.jbates@chromium.org2012-09-181-1/+2
| | | | | | | | | | | | To do this properly, we need a new type of trace event "FLOW" which will be drawn as lines in about:tracing from BEGIN to END. Also instruments SequencedWorkerPool and ChannelReader::DispatchInputData, which were not currently traced. BUG=79942 Review URL: https://codereview.chromium.org/10913242 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157288 0039d316-1c4b-4281-b951-d872f2087c98
* Replace PeekMessage for TSF awarenessyoichio@chromium.org2012-09-081-0/+11
| | | | | | | | | | | | | Replace PeekMessage with TSF interface's one in MessagePumpForIO Add MessagePumpTSFInternal class for above replacing. BUG=137627 TEST= Review URL: https://chromiumcodereview.appspot.com/10826223 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155589 0039d316-1c4b-4281-b951-d872f2087c98
* Desktop Aura: Allow tab drags out of window.erg@chromium.org2012-08-171-1/+5
| | | | | | | | | | | | | | | | | | | | | You can now drag tabs in and out of windows in linux_aura builds. This patch has a lot of moving parts and caveats though. Moving parts in the patch: - Added system location to aura::Events. - Forwarding move events from RootWindowHostLinux to the TabDragController through an observer. - MessagePumpAuraX11 now can block waiting for a window to be mapped. If we don't do this, we can't perform a grab on the new window. - The drag offset is threaded from TabDragController through the WindowMoveController interface. (There's no other non-racey way of getting this data locally from X.) - RootWindowHostLinux now has working Show()/Hide(). TODOs: - After releasing a new window, the window looks focused, but isn't. You have to click on it for it to receive input focus. BUG=133059 TEST=none Review URL: https://chromiumcodereview.appspot.com/10828133 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152180 0039d316-1c4b-4281-b951-d872f2087c98
* [Chromoting] Launch the host process elevated via ShellExecuteEx().alexeypa@chromium.org2012-08-161-1/+2
| | | | | | | | | | | | | | The host process is launched in in two steps now. An instance of remote_service.exe is launched in a user session (CreateProcessAsUser) and then it launches the host requesting elevation (ShellExecuteEx). This is needed because Windows 8 refuses to inject Alt+Tab unless uiAccess='true' is specified in the manifest, which in its turn requires ShellExecuteEx() to be used. Lifetime of launched processes is controlled by assigning them to a job object. Message loop changes are required to be able to process job object notifications on the I/O message loop. BUG=135217 Review URL: https://chromiumcodereview.appspot.com/10831271 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151973 0039d316-1c4b-4281-b951-d872f2087c98
* Fix Native Client untrusted build of base on ChromeOS.bbudge@chromium.org2012-08-151-1/+1
| | | | | | | | BUG=116317 TEST=compiles Review URL: https://chromiumcodereview.appspot.com/10823328 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151615 0039d316-1c4b-4281-b951-d872f2087c98
* Convert ProtocolHandlerRegistry to be a ProfileKeyedService.smckay@chromium.org2012-07-211-0/+4
| | | | | | | | | | | | | | | BUG=129200 TEST=protocol_handler_registry_browsertest.cc,protocol_handler_registry_unittest.cc willchan@ -> profile_io changes +bauerb -> content_settings changes Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=147597 Review URL: https://chromiumcodereview.appspot.com/10546083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147745 0039d316-1c4b-4281-b951-d872f2087c98
* A Speculative Revert for r147597 - Convert ProtocolHandlerRegistry to be a ↵hbono@chromium.org2012-07-201-4/+0
| | | | | | | | | | | | | | | | | | ProfileKeyedService. BUG=129200 TEST=protocol_handler_registry_browsertest.cc,protocol_handler_registry_unittest.cc willchan@ -> profile_io changes +bauerb -> content_settings changes Review URL: https://chromiumcodereview.appspot.com/10546083 TBR=smckay@chromium.org Review URL: https://chromiumcodereview.appspot.com/10815026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147612 0039d316-1c4b-4281-b951-d872f2087c98
* Convert ProtocolHandlerRegistry to be a ProfileKeyedService.smckay@chromium.org2012-07-201-0/+4
| | | | | | | | | | | | | BUG=129200 TEST=protocol_handler_registry_browsertest.cc,protocol_handler_registry_unittest.cc willchan@ -> profile_io changes +bauerb -> content_settings changes Review URL: https://chromiumcodereview.appspot.com/10546083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147597 0039d316-1c4b-4281-b951-d872f2087c98
* Adds MessageLoopUIApplication for use on iOS.rohitrao@chromium.org2012-07-131-0/+7
| | | | | | | | | | BUG=None TEST=None Review URL: https://chromiumcodereview.appspot.com/10689161 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146553 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the rest of #pragma once in one big CL.ajwong@chromium.org2012-07-111-1/+0
| | | | | | | | | For context see this thread: https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/chromium-dev/RMcVNGjB4II TBR=thakis,pkasting,jam git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146163 0039d316-1c4b-4281-b951-d872f2087c98
* Add base::RunLoop and update ui_test_utils to use it to reduce flakinessjbates@chromium.org2012-06-281-45/+39
| | | | | | | | | | | | | | Timeout flakiness has been observed in multiple tests that use Quit. This changes various test utility APIs to use QuitNow via base::RunLoop instead. Some instances of Quit are left as-is where it appears they may have a use case. The ui_test_utils QuitThisRunLoop function does a safer form of MessageLoop::QuitWhenIdle that allows a few generations of tasks to run before actually quitting the MessageLoop. This addresses the design assumptions of many existing tests while hopefully reducing flaky timeouts by moving away from QuitWhenIdle. This fixes throughput_tests.cc which is currently timing out on Mac. BUG=124906,130141,131220,128305,132932 Review URL: https://chromiumcodereview.appspot.com/10479018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144824 0039d316-1c4b-4281-b951-d872f2087c98
* Remove old Sleep and PostDelayedTask interfaces that use int ms instead of ↵tedvessenes@gmail.com2012-06-211-9/+1
| | | | | | | | | | | | TimeDelta. The previous version of this patch was reverted due to crashing cros_x86 and cros_tegra2 builds. See: http://codereview.chromium.org/9703053/ BUG=108171 Review URL: https://chromiumcodereview.appspot.com/10572030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143401 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 140102 - Remove old PostDelayedTask interfaces that use int ms ↵asanka@chromium.org2012-06-011-1/+9
| | | | | | | | | | | | | | | | instead of TimeDelta. Compile failed on ChromiumOS x86 and Tegra. BUG=108171 Review URL: https://chromiumcodereview.appspot.com/9703053 TBR=tedvessenes@gmail.com Review URL: https://chromiumcodereview.appspot.com/10496002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140109 0039d316-1c4b-4281-b951-d872f2087c98
* Remove old PostDelayedTask interfaces that use int ms instead of TimeDelta.tedvessenes@gmail.com2012-06-011-9/+1
| | | | | | | | | BUG=108171 Review URL: https://chromiumcodereview.appspot.com/9703053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140102 0039d316-1c4b-4281-b951-d872f2087c98
* aura/cros: Rename MessagePump{X => AuraX11}.erg@chromium.org2012-05-291-1/+1
| | | | | | | | | | | | So rename the MessagePumpX, which is an aurax11 only class now to MessagePumpAuraX11 (which also simplifies the gyp files). BUG=129075 TEST=none Review URL: https://chromiumcodereview.appspot.com/10441028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139421 0039d316-1c4b-4281-b951-d872f2087c98
* Add base::ThreadTaskRunnerHandler class.sergeyu@chromium.org2012-05-091-1/+3
| | | | | | | | The class will be used to hold a reference to the thread's task runner. Review URL: https://chromiumcodereview.appspot.com/10380016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136110 0039d316-1c4b-4281-b951-d872f2087c98
* Consolidate win/x dispatchersoshima@chromium.org2012-04-091-4/+2
| | | | | | | | | | BUG=116282 TEST=no functional change. All tests should pass. Review URL: http://codereview.chromium.org/9958152 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131412 0039d316-1c4b-4281-b951-d872f2087c98
* Remove WAYLAND portoshima@chromium.org2012-04-071-3/+1
| | | | | | | | | | | Also removed skia/ext/canvas_paint_x.h which is not in use. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/10009024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131219 0039d316-1c4b-4281-b951-d872f2087c98
* Added non-NULL DCHECK to MessageLoopForUI::current.jamiewalch@chromium.org2012-03-301-0/+1
| | | | | | | | | | | | | | | Having spent a little while tracking down a crash caused by not having a message loop when calling this function, it seems that this is worth having. I'm in two minds as to whether I prefer this approach to one where NULL is a valid return value in debug builds as it is in release builds. BUG= TEST= Review URL: http://codereview.chromium.org/9705073 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129899 0039d316-1c4b-4281-b951-d872f2087c98
* base: Remove should_leak_tasks_ from MessageLoopsatorux@chromium.org2012-03-291-4/+0
| | | | | | | | | | | The flag is no longer referenced. BUG=61131 TEST=base_unittests Review URL: http://codereview.chromium.org/9903003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129586 0039d316-1c4b-4281-b951-d872f2087c98
* Make new TaskRunner, SequencedTaskRunner, and SingleThreadTaskRunner interfacesakalin@chromium.org2012-02-151-3/+3
| | | | | | | | | | | | | | TaskRunner just has Post{,Delayed}Task(), SequencedTaskRunner extends Executor to have ordering guarantees and PostNonNestable{,Delayed}Task(), and SingleThreadTaskRunner extends SequencedTaskRunner and guarantees execution on a single thread. Move a bunch of methods from MessageLoopProxy into the TaskRunner classes and make it inherit from SingleThreadTaskRunner. BUG=110973 TEST= Review URL: https://chromiumcodereview.appspot.com/9169037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121999 0039d316-1c4b-4281-b951-d872f2087c98
* Prefer ScopedNestableTaskAllower over manual save/restoredhollowa@chromium.org2012-02-141-5/+10
| | | | | | | | | | | | | | Cleanup. Changes various calls sites to use the ScopedNestableTaskAllower class to save/restore nestable task state. BUG=None TEST=Existing unit tests R=jar@chromium.org, scottbyer@chromium.org, sky@chromium.org, akalin@chromium.org, rsleevi@chromium.org, brettw@chromium.org, tony@chromium.org Review URL: https://chromiumcodereview.appspot.com/9384024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121914 0039d316-1c4b-4281-b951-d872f2087c98
* Remove task.h and finish base::Bind() migration.ajwong@chromium.org2012-01-061-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Over 341 CLs, in ~3 months, touching 3251 unique files! Top 5 most CLs: (121) jhawkins ( 45) dcheng ( 24) achuith ( 23) csilv ( 12) tfarina ( 12) groby ~1000 files touched: (918) jhawkins 100+ files touched: (486) ajwong (385) willchan (372) dcheng (126) csilv (123) fischman (112) sergeyu 49+ files touched: (65) tfarina (57) acolwell (52) adamk (49) tzik BUG=35223 TEST=existing Review URL: http://codereview.chromium.org/9114020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116748 0039d316-1c4b-4281-b951-d872f2087c98
* base::Bind: Remove Task.jhawkins@chromium.org2012-01-051-31/+1
| | | | | | | | | | BUG=none TEST=none R=awong Review URL: http://codereview.chromium.org/9086002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116439 0039d316-1c4b-4281-b951-d872f2087c98
* Convert various ReleaseSoon methods to use base::Bind()dcheng@chromium.org2011-12-301-1/+7
| | | | | | | | | | BUG=none TEST=none TBR=brettw,atwilson Review URL: http://codereview.chromium.org/9022034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116030 0039d316-1c4b-4281-b951-d872f2087c98
* Replace MessageLoop::DeleteSoon implementation with one that uses base::Bind.dcheng@chromium.org2011-12-301-1/+9
| | | | | | | | | | | | BUG=none TEST=none TBR=willchan,brettw,tony Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=115997 Review URL: http://codereview.chromium.org/9004051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116026 0039d316-1c4b-4281-b951-d872f2087c98
* Add function support for Sleep with TimeDelta input.tedvessenes@gmail.com2011-12-301-0/+20
| | | | | | | | | | | | | | | | | | This is the first step of fixing issue 108171 (converting calls of Sleep() to use TimeDelta instead of ints in milliseconds). I checked platform_thread_unittests.cc for any tests explicitly for Sleep but found none, so I didn't add any for this interface. There will be a bit more implementation juggling here once the Sleep(int ms) interface is removed, but that's coming in a later CL. BUG=108171 TEST= Review URL: http://codereview.chromium.org/8965072 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116012 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 115997 - Replace MessageLoop::DeleteSoon implementation with one that ↵dcheng@chromium.org2011-12-291-9/+1
| | | | | | | | | | | | | | | uses base::Bind. BUG=none TEST=none TBR=willchan,brettw,tony Review URL: http://codereview.chromium.org/9004051 TBR=dcheng@chromium.org Review URL: http://codereview.chromium.org/9034029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@115999 0039d316-1c4b-4281-b951-d872f2087c98
* Replace MessageLoop::DeleteSoon implementation with one that uses base::Bind.dcheng@chromium.org2011-12-291-1/+9
| | | | | | | | | | BUG=none TEST=none TBR=willchan,brettw,tony Review URL: http://codereview.chromium.org/9004051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@115997 0039d316-1c4b-4281-b951-d872f2087c98
* Remove MessageLoop::QuitTask.dcheng@chromium.org2011-12-101-14/+4
| | | | | | | | | BUG=none TEST=compiles Review URL: http://codereview.chromium.org/8894033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113958 0039d316-1c4b-4281-b951-d872f2087c98
* callback_forward.h forward-declares base::Callback and base::Closure.erikwright@chromium.org2011-11-281-1/+1
| | | | | | | | | | | | | | This CL includes callback_forward.h and a number of files that depend on it. Other CLs have been sent to other reviewers, according to OWNERS files. This search shows the other CLs: http://goo.gl/vzQoJ See this chromium-dev thread for the rationale behind the change: http://goo.gl/I3kob BUG=None TEST=Compiles Review URL: http://codereview.chromium.org/8702019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111782 0039d316-1c4b-4281-b951-d872f2087c98
* Remove obsolete usage of TOUCH_UI.saintlou@chromium.org2011-11-231-1/+1
| | | | | | | | | | BUG=105046 TEST=none Review URL: http://codereview.chromium.org/8660001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111287 0039d316-1c4b-4281-b951-d872f2087c98
* ChromeFrame: Convert TaskMarshallerThroughMessageQueue to new Callback system.jhawkins@chromium.org2011-11-171-4/+1
| | | | | | | | | | | BUG=none TEST=none R=willchan@chromium.org,stoyan@chromium.org Review URL: http://codereview.chromium.org/8591009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110595 0039d316-1c4b-4281-b951-d872f2087c98
* Add OVERRIDE to base/.avi@chromium.org2011-11-161-4/+4
| | | | | | | | | BUG=104314 TEST=no change Review URL: http://codereview.chromium.org/8520018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110218 0039d316-1c4b-4281-b951-d872f2087c98
* base: Refactor PendingTask out of MessageLoop.jhawkins@chromium.org2011-11-151-44/+15
| | | | | | | | | | | | | Also removes copy/pasted instances of this class. BUG=none TEST=none R=willchan@chromium.org Review URL: http://codereview.chromium.org/8565024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110206 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove unneeded forward declarations in base, dbug, gpu, ipc, ↵thestig@chromium.org2011-11-151-6/+2
| | | | | | | | | | jingle, and media. BUG=none TEST=none Review URL: http://codereview.chromium.org/8511045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109998 0039d316-1c4b-4281-b951-d872f2087c98
* Add CHECK to catch places where BrowserProcessImpl's refcount goes to 0.willchan@chromium.org2011-11-011-0/+3
| | | | | | | | | | | | Specifically, catch it when MessageLoop is not running. BUG=96847 TEST=none Review URL: http://codereview.chromium.org/8343033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108177 0039d316-1c4b-4281-b951-d872f2087c98
* Enable tracking of objects by defaultjar@chromium.org2011-10-311-14/+2
| | | | | | | | | | | | | | | | | | | This is a reland of accumulated patches including CLs 8414036, 8425010, 8425013, 8424013. It fully enables tracking of objects, as seen in about:tracking in teh release build. The problem this had in its initaial landing centered on Mac instability in base_unittest. We were encountering crash on exit of the tests, with a stack dump involving pthreads. r=rtenneti BUG=101856 Review URL: http://codereview.chromium.org/8429009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108026 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 107895 - Fully enable about:tracking by defaultjoth@chromium.org2011-10-311-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a re-land of: http://codereview.chromium.org/8391019/ Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=107793 Original landing had trouble with message_loop_x.h, due to header include ordering. I pulled out the structure that was really needed by tracked_objects.h into a new file tracked_info.*. This allows tracked_objects to inlude this tracked_info, but not have to include the message_loop.h totality. I also removed a DCHECK that that was triggering on a test, and added yet one more file (browser_main.cc) where I removed a #ifdef for TRACKING_ALL_OBJECTS. The changes were minor, and I'm hoping to get clear perf runs with tihs landing, so I'm going to TBR it and reland early in the morning. Comments from original landing: Support is now controlled by the flag: --enable-tracking and the default is always on. To turn it off, use: --enable-tracking=0 All profiler code is compiled now in release and official builds (in addition to debug, where it was already active), but most entry points can be disabled (turned into no-ops) by a single const bool setting atop tracked_objects.cc (in case folks want to revert the perf-impact of this change). Transition to faster Now() service on Windows for the profiler use only. The TimeTicks::Now() function on Window uses locking to get a 64 bit time value. This CL transitions times used for profiling to more directly use a 32 bit Time interface, which is actually what drives the 64 bit TimeTicks. By using the smaller value, we avoid the need for locks, or even atomic operations for the most part in the tracking system. On linux, we just down-sample the standard TimeTicks to 32 bits for consistency (clean ability to snapshot asyncronously without atomics... but I should verify that such is helpful to performance). I've also put in yet more cleanup and refactoring. tbr=rtenneti bug=101856 Review URL: http://codereview.chromium.org/8414036 TBR=jar@chromium.org Review URL: http://codereview.chromium.org/8430004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107961 0039d316-1c4b-4281-b951-d872f2087c98
* Fully enable about:tracking by defaultjar@chromium.org2011-10-301-14/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a re-land of: http://codereview.chromium.org/8391019/ Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=107793 Original landing had trouble with message_loop_x.h, due to header include ordering. I pulled out the structure that was really needed by tracked_objects.h into a new file tracked_info.*. This allows tracked_objects to inlude this tracked_info, but not have to include the message_loop.h totality. I also removed a DCHECK that that was triggering on a test, and added yet one more file (browser_main.cc) where I removed a #ifdef for TRACKING_ALL_OBJECTS. The changes were minor, and I'm hoping to get clear perf runs with tihs landing, so I'm going to TBR it and reland early in the morning. Comments from original landing: Support is now controlled by the flag: --enable-tracking and the default is always on. To turn it off, use: --enable-tracking=0 All profiler code is compiled now in release and official builds (in addition to debug, where it was already active), but most entry points can be disabled (turned into no-ops) by a single const bool setting atop tracked_objects.cc (in case folks want to revert the perf-impact of this change). Transition to faster Now() service on Windows for the profiler use only. The TimeTicks::Now() function on Window uses locking to get a 64 bit time value. This CL transitions times used for profiling to more directly use a 32 bit Time interface, which is actually what drives the 64 bit TimeTicks. By using the smaller value, we avoid the need for locks, or even atomic operations for the most part in the tracking system. On linux, we just down-sample the standard TimeTicks to 32 bits for consistency (clean ability to snapshot asyncronously without atomics... but I should verify that such is helpful to performance). I've also put in yet more cleanup and refactoring. tbr=rtenneti bug=101856 Review URL: http://codereview.chromium.org/8414036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107895 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 107793 - Fully enable about:tracking by defaultjar@chromium.org2011-10-281-17/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support is now controlled by the flag: --enable-tracking and the default is always on. To turn it off, use: --enable-tracking=0 All profiler code is compiled now in release and official builds (in addition to debug, where it was already active), but most entry points can be disabled (turned into no-ops) by a single const bool setting atop tracked_objects.cc (in case folks want to revert the perf-impact of this change). Transition to faster Now() service on Windows for the profiler use only. The TimeTicks::Now() function on Window uses locking to get a 64 bit time value. This CL transitions times used for profiling to more directly use a 32 bit Time interface, which is actually what drives the 64 bit TimeTicks. By using the smaller value, we avoid the need for locks, or even atomic operations for the most part in the tracking system. On linux, we just down-sample the standard TimeTicks to 32 bits for consistency (clean ability to snapshot asyncronously without atomics... but I should verify that such is helpful to performance). I've also put in yet more cleanup and refactoring. r=rtenneti bug=101856 Review URL: http://codereview.chromium.org/8391019 TBR=jar@chromium.org Review URL: http://codereview.chromium.org/8400073 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107799 0039d316-1c4b-4281-b951-d872f2087c98
* Fully enable about:tracking by defaultjar@chromium.org2011-10-281-14/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support is now controlled by the flag: --enable-tracking and the default is always on. To turn it off, use: --enable-tracking=0 All profiler code is compiled now in release and official builds (in addition to debug, where it was already active), but most entry points can be disabled (turned into no-ops) by a single const bool setting atop tracked_objects.cc (in case folks want to revert the perf-impact of this change). Transition to faster Now() service on Windows for the profiler use only. The TimeTicks::Now() function on Window uses locking to get a 64 bit time value. This CL transitions times used for profiling to more directly use a 32 bit Time interface, which is actually what drives the 64 bit TimeTicks. By using the smaller value, we avoid the need for locks, or even atomic operations for the most part in the tracking system. On linux, we just down-sample the standard TimeTicks to 32 bits for consistency (clean ability to snapshot asyncronously without atomics... but I should verify that such is helpful to performance). I've also put in yet more cleanup and refactoring. r=rtenneti bug=101856 Review URL: http://codereview.chromium.org/8391019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107793 0039d316-1c4b-4281-b951-d872f2087c98
* rename Run in MessageLoopForUI to RunWithDispatcheroshima@google.com2011-10-241-1/+1
| | | | | | | | | BUG=99471 TEST=none Review URL: http://codereview.chromium.org/8343023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106896 0039d316-1c4b-4281-b951-d872f2087c98
* base::Bind: Cleanup in automation.jhawkins@chromium.org2011-10-171-5/+9
| | | | | | | | | | | BUG=none TEST=none R=csilv@chromium.org Review URL: http://codereview.chromium.org/8212006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105761 0039d316-1c4b-4281-b951-d872f2087c98