summaryrefslogtreecommitdiffstats
path: root/base/message_loop.cc
Commit message (Collapse)AuthorAgeFilesLines
* MessageLoop's RUN method will pass a const ref to PendingTask whenrtenneti@chromium.org2013-02-031-2/+2
| | | | | | | | | | | | | | | | | TaskObserver's WillProcessTask and DidProcessTask methods are called. User's of TaskObserver get time_posted by accessing pending_task.time_posted. User's of TaskObserver get time_posted by accessing pending_task.time_posted. (would like to use this with SpdySession testing to verify a task is posted or not). R=jar@chromium.org, darin@chromium.org TESTS= all unit tests Review URL: https://chromiumcodereview.appspot.com/12161002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180302 0039d316-1c4b-4281-b951-d872f2087c98
* Relanding "Add apk for running content_browsertests"nileshagrawal@chromium.org2013-01-291-2/+5
| | | | | | | | | | | | | | | | | | Revert "Revert 179189" This reverts commit 5844ab0c6a41cc9d306f8c355cc7ceb5e290cbb1. Original CL:https://codereview.chromium.org/12047068/ was reverted as we failed to update the bot scripts with the new package name for content_shell_apk TBR=mark@chromium.org,jam@chromium.org BUG=138275 Review URL: https://chromiumcodereview.appspot.com/12091033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179428 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 179189nileshagrawal@chromium.org2013-01-281-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Failed to rename package name in buildbot scripts. Broke buildbots. > Add apk for running content_browsertests > > Split off org.chromium.content_shell into: > org.chromium.content_shell - content shell java code, builds a jar, directory structure similar to other jar targets > org.chromium.content_shell_apk - application code to build content_shell_apk, directory structure similar to that of android application > org.chromium.content_browsertests_apk - application code to build content_browsertests_apk > > Also splitting content/shell/android/res into: > - content/shell/android/java/res > - content/shell/android/shell_apk/res > > Both content_shell_apk and content_browsertests_apk will depend on content_shell_java target to include java/res needed to show a shell based browser. > > I will do another CL to move The java files for content_shell_tests_apk to content_shell_apk package. > > BUG=138275 > > > Review URL: https://chromiumcodereview.appspot.com/12047068 TBR=nileshagrawal@chromium.org Review URL: https://codereview.chromium.org/12088031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179211 0039d316-1c4b-4281-b951-d872f2087c98
* Add apk for running content_browsertestsnileshagrawal@chromium.org2013-01-281-2/+5
| | | | | | | | | | | | | | | | | | | | | | Split off org.chromium.content_shell into: org.chromium.content_shell - content shell java code, builds a jar, directory structure similar to other jar targets org.chromium.content_shell_apk - application code to build content_shell_apk, directory structure similar to that of android application org.chromium.content_browsertests_apk - application code to build content_browsertests_apk Also splitting content/shell/android/res into: - content/shell/android/java/res - content/shell/android/shell_apk/res Both content_shell_apk and content_browsertests_apk will depend on content_shell_java target to include java/res needed to show a shell based browser. I will do another CL to move The java files for content_shell_tests_apk to content_shell_apk package. BUG=138275 Review URL: https://chromiumcodereview.appspot.com/12047068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179189 0039d316-1c4b-4281-b951-d872f2087c98
* Provide an iOS message pump for IO implementation.blundell@chromium.org2012-11-301-2/+20
| | | | | | | | | 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
* Histogram type support in HistogramBase and remove SetRangeDescription functionkaiwang@chromium.org2012-10-311-3/+3
| | | | | | | | | BUG=139612 Review URL: https://chromiumcodereview.appspot.com/11342060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165116 0039d316-1c4b-4281-b951-d872f2087c98
* Remove base/metrics/* code from NaCl IPC proxy build.bbudge@chromium.org2012-10-281-0/+4
| | | | | | | | | | This makes the IPC IRT nexes quite a bit smaller. BUG=116317 TEST=compiles Review URL: https://chromiumcodereview.appspot.com/11313014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164566 0039d316-1c4b-4281-b951-d872f2087c98
* Trace PostTasks from post to run.jbates@chromium.org2012-09-181-7/+20
| | | | | | | | | | | | 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
* [Chromoting] Launch the host process elevated via ShellExecuteEx().alexeypa@chromium.org2012-08-161-0/+4
| | | | | | | | | | | | | | 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
* 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
* Move StatisticsRecorder out of histogram.cc/h for further refactoring.kaiwang@chromium.org2012-07-131-0/+1
| | | | | | Review URL: https://chromiumcodereview.appspot.com/10703037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146659 0039d316-1c4b-4281-b951-d872f2087c98
* Adds MessageLoopUIApplication for use on iOS.rohitrao@chromium.org2012-07-131-0/+6
| | | | | | | | | | 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
* Add base::RunLoop and update ui_test_utils to use it to reduce flakinessjbates@chromium.org2012-06-281-60/+23
| | | | | | | | | | | | | | 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-31/+20
| | | | | | | | | | | | 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-18/+30
| | | | | | | | | | | | | | | | 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-30/+18
| | | | | | | | | 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
* PPAPI/NaCl: Re-land speculative implementation for ipc_channel_nacl.ccdmichael@chromium.org2012-05-311-3/+5
| | | | | | | | | | | | | Original CL: http://codereview.chromium.org/10174048/ Was committed at 139635, reverted at 139646 due to a flake. BUG=116317 TEST= TBR=dmichael@chromium.org Review URL: https://chromiumcodereview.appspot.com/10442112 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139840 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 139635 - PPAPI/NaCl: Speculative implementation for ipc_channel_nacl.ccrch@chromium.org2012-05-301-5/+3
| | | | | | | | | | | | | BUG=116317 TEST= Review URL: https://chromiumcodereview.appspot.com/10174048 TBR=dmichael@chromium.org Review URL: https://chromiumcodereview.appspot.com/10456039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139646 0039d316-1c4b-4281-b951-d872f2087c98
* PPAPI/NaCl: Speculative implementation for ipc_channel_nacl.ccdmichael@chromium.org2012-05-301-3/+5
| | | | | | | | | | BUG=116317 TEST= Review URL: https://chromiumcodereview.appspot.com/10174048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139635 0039d316-1c4b-4281-b951-d872f2087c98
* Add base::ThreadTaskRunnerHandler class.sergeyu@chromium.org2012-05-091-0/+5
| | | | | | | | 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
* Remove TOOLKIT_USES_GTK and consolidate it into TOOLKIT_GTKoshima@chromium.org2012-04-051-2/+3
| | | | | | | | | | | Add gtk dependency to base.gyp for android host_os="linux" case BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/9969080 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130784 0039d316-1c4b-4281-b951-d872f2087c98
* base: Remove should_leak_tasks_ from MessageLoopsatorux@chromium.org2012-03-291-14/+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
* Allow task tracing in official chrome.jbates@chromium.org2012-02-231-3/+3
| | | | | | | | | | | We have had various bug reports where it would have been helpful to see tasks in about:tracing reports. R=jar Review URL: http://codereview.chromium.org/9405034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123293 0039d316-1c4b-4281-b951-d872f2087c98
* base::Bind: Remove Task.jhawkins@chromium.org2012-01-051-63/+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-0/+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-0/+6
| | | | | | | | | | | | 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-1/+30
| | | | | | | | | | | | | | | | | | 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-6/+0
| | | | | | | | | | | | | | | 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-0/+6
| | | | | | | | | | 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
* Refactor MessagePumpX to dispatch events inside of the source Dispatch function.piman@chromium.org2011-12-141-10/+1
| | | | | | | | | | | | | | Also clean up MessagePumpGlib. BUG=None TEST=None Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=114168 Review URL: http://codereview.chromium.org/8872055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114439 0039d316-1c4b-4281-b951-d872f2087c98
* Detect child tasks born during a profiled tasksjar@chromium.org2011-12-141-1/+1
| | | | | | | r=rtenneti Review URL: http://codereview.chromium.org/8894022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114336 0039d316-1c4b-4281-b951-d872f2087c98
* Revert r114168 "Refactor MessagePumpX to dispatch events inside of the ↵oshima@chromium.org2011-12-131-1/+10
| | | | | | | | | | | | | | source Dispatch function." This reverts commit bae6675d851184f2be0ac117c1a847289c1c7bd9. TBR=piman@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org/8931009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114245 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor MessagePumpX to dispatch events inside of the source Dispatch function.piman@chromium.org2011-12-131-10/+1
| | | | | | | | | | | | Also clean up MessagePumpGlib. BUG=None TEST=None Review URL: http://codereview.chromium.org/8872055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114168 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
* base: Refactor PendingTask out of MessageLoop.jhawkins@chromium.org2011-11-151-42/+9
| | | | | | | | | | | | | 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
* Allow linker initialization of lazy instancejoth@chromium.org2011-11-151-2/+2
| | | | | | | | | | | | | | Using the initializer list construct = {0} allows the object to be linker initialized. Modify the LazyInstance class design to make it a pod aggregate type that can be linker initialized this way. Also combines the instance and state members, in line with the Singleton<> class design. Introduces a new LAZY_INSTANCE_INITIALIZER macro specifically for using to init all lazy instances + modify all existing callsites to use it. (Old code would no longer compile) BUG=94925 TEST=existing tests pass. http://build.chromium.org/f/chromium/perf/linux-release/sizes/report.html?history=150&header=chrome-si&graph=chrome-si&rev=-1 should step downward. TBR=jam@chromium.org,rvargas@chromium.org,darin@chromium.org,ben@chromium.org,apatrick@chromium.org,akalin@chromium.org Review URL: http://codereview.chromium.org/8491043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110076 0039d316-1c4b-4281-b951-d872f2087c98
* Adjust interfaces to indicate when tracking is in progressjar@chromium.org2011-11-141-2/+3
| | | | | | | | | | | | | | | This should have no change whatever in function, but simply changes the names of calls for tracking time so that the ThreadData can know if a new trackig has started or ended. This will be helpful in (a future CL) measuring when the thread is doing something that is not tracked at all (e.g., processing UI events, etc.) r=rtenneti Review URL: http://codereview.chromium.org/8548005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109846 0039d316-1c4b-4281-b951-d872f2087c98
* Add CHECK to catch places where BrowserProcessImpl's refcount goes to 0.willchan@chromium.org2011-11-011-0/+5
| | | | | | | | | | | | 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/+6
| | | | | | | | | | | | | | | | | | | 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-6/+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/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-20/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-15/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Replace most LOG/CHECK statements with DLOG/DCHECK statements in base.brettw@chromium.org2011-10-261-8/+8
| | | | | | | | | | | [ Reland of 107042 http://codereview.chromium.org/8368009 ] I tried hard not to change CHECKs that had side effects. I kept fatal checks that seemed security or debugging-info (in crash reports) sensitive, and ones that seems particularly well-conceived. Review URL: http://codereview.chromium.org/8341026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107434 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 107042 - Replace most LOG/CHECK statements with DLOG/DCHECK ↵brettw@chromium.org2011-10-251-8/+8
| | | | | | | | | | | | | | statements in base. I tried hard not to change CHECKs that had side effects. I kept fatal checks that seemed security or debugging-info (in crash reports) sensitive, and ones that seems particularly well-conceived. Review URL: http://codereview.chromium.org/8368009 TBR=brettw@chromium.org Review URL: http://codereview.chromium.org/8351025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107051 0039d316-1c4b-4281-b951-d872f2087c98
* Replace most LOG/CHECK statements with DLOG/DCHECK statements in base.brettw@chromium.org2011-10-251-8/+8
| | | | | | | | | I tried hard not to change CHECKs that had side effects. I kept fatal checks that seemed security or debugging-info (in crash reports) sensitive, and ones that seems particularly well-conceived. Review URL: http://codereview.chromium.org/8368009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107042 0039d316-1c4b-4281-b951-d872f2087c98
* Support JSON encoding of data for about:tracking informationjar@chromium.org2011-10-241-1/+2
| | | | | | | | | | | I also fought a terrible (but educational) fight with Thread Local Store, and its ability to do cleanup (call destructors) at thread exit (notably applicable to Worker Threads). Thta is why there were soooo many test bot runs and tiny checkins. I now have a plan in mind that won't rely on that functionality. The code seems to work cross-platform, but if I have trouble with Linux, I'll repeatedly leak ThreadData contexts temporarily on that platform. Given that the code is only enabled under Debug, this is not yet a real problem. Each CL I write for this code also includes a bunch of cleanup. In this case, I changed the Write() methods to WriteHTML(), since I didn't want any confusion with JSON writing etc. I also did a bunch of tiny cleanups which should not have changed what the code does. r=rtenneti Review URL: http://codereview.chromium.org/8313013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106952 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