Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(139)

Side by Side Diff: chrome/renderer/render_thread.cc

Issue 660118: Merge the LINUX_TC_MALLOC #define with the existing TC_MALLOC #define.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/memory_purger.cc ('k') | webkit/extensions/v8/heap_profiler_extension.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/render_thread.h" 5 #include "chrome/renderer/render_thread.h"
6 6
7 #include <v8.h> 7 #include <v8.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <limits>
10 #include <map> 11 #include <map>
11 #include <vector> 12 #include <vector>
12 13
13 #if defined(USE_SYSTEM_SQLITE) 14 #if defined(USE_SYSTEM_SQLITE)
14 #include <sqlite3.h> 15 #include <sqlite3.h>
15 #else 16 #else
16 #include "third_party/sqlite/preprocessed/sqlite3.h" 17 #include "third_party/sqlite/preprocessed/sqlite3.h"
17 #endif 18 #endif
18 19
19 #include "base/command_line.h" 20 #include "base/command_line.h"
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 366
366 void RenderThread::WidgetHidden() { 367 void RenderThread::WidgetHidden() {
367 DCHECK(hidden_widget_count_ < widget_count_); 368 DCHECK(hidden_widget_count_ < widget_count_);
368 hidden_widget_count_++; 369 hidden_widget_count_++;
369 if (!is_extension_process() && 370 if (!is_extension_process() &&
370 widget_count_ && hidden_widget_count_ == widget_count_) 371 widget_count_ && hidden_widget_count_ == widget_count_)
371 ScheduleIdleHandler(kInitialIdleHandlerDelayS); 372 ScheduleIdleHandler(kInitialIdleHandlerDelayS);
372 } 373 }
373 374
374 void RenderThread::WidgetRestored() { 375 void RenderThread::WidgetRestored() {
375 DCHECK(hidden_widget_count_ > 0); 376 DCHECK_GT(hidden_widget_count_, 0);
376 hidden_widget_count_--; 377 hidden_widget_count_--;
377 if (!is_extension_process()) 378 if (!is_extension_process())
378 idle_timer_.Stop(); 379 idle_timer_.Stop();
379 } 380 }
380 381
381 void RenderThread::DoNotSuspendWebKitSharedTimer() { 382 void RenderThread::DoNotSuspendWebKitSharedTimer() {
382 do_not_suspend_webkit_shared_timer_ = true; 383 do_not_suspend_webkit_shared_timer_ = true;
383 } 384 }
384 385
385 void RenderThread::DoNotNotifyWebKitOfModalLoop() { 386 void RenderThread::DoNotNotifyWebKitOfModalLoop() {
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
765 !command_line.HasSwitch(switches::kDisableSessionStorage)); 766 !command_line.HasSwitch(switches::kDisableSessionStorage));
766 767
767 WebRuntimeFeatures::enableIndexedDatabase( 768 WebRuntimeFeatures::enableIndexedDatabase(
768 command_line.HasSwitch(switches::kEnableIndexedDatabase)); 769 command_line.HasSwitch(switches::kEnableIndexedDatabase));
769 770
770 WebRuntimeFeatures::enableGeolocation( 771 WebRuntimeFeatures::enableGeolocation(
771 command_line.HasSwitch(switches::kEnableGeolocation)); 772 command_line.HasSwitch(switches::kEnableGeolocation));
772 } 773 }
773 774
774 void RenderThread::IdleHandler() { 775 void RenderThread::IdleHandler() {
775 #if defined(OS_WIN) && defined(USE_TCMALLOC) 776 #if (defined(OS_WIN) || defined(OS_LINUX)) && defined(USE_TCMALLOC)
776 MallocExtension::instance()->ReleaseFreeMemory(); 777 MallocExtension::instance()->ReleaseFreeMemory();
777 #endif 778 #endif
778 779
779 LOG(INFO) << "RenderThread calling v8 IdleNotification for " << this; 780 LOG(INFO) << "RenderThread calling v8 IdleNotification for " << this;
780 v8::V8::IdleNotification(); 781 v8::V8::IdleNotification();
781 782
782 // Schedule next invocation. 783 // Schedule next invocation.
783 // Dampen the delay using the algorithm: 784 // Dampen the delay using the algorithm:
784 // delay = delay + 1 / (delay + 2) 785 // delay = delay + 1 / (delay + 2)
785 // Using floor(delay) has a dampening effect such as: 786 // Using floor(delay) has a dampening effect such as:
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
839 while (sqlite3_release_memory(std::numeric_limits<int>::max()) > 0) { 840 while (sqlite3_release_memory(std::numeric_limits<int>::max()) > 0) {
840 } 841 }
841 842
842 // Repeatedly call the V8 idle notification until it returns true ("nothing 843 // Repeatedly call the V8 idle notification until it returns true ("nothing
843 // more to free"). Note that it makes more sense to do this than to implement 844 // more to free"). Note that it makes more sense to do this than to implement
844 // a new "delete everything" pass because object references make it difficult 845 // a new "delete everything" pass because object references make it difficult
845 // to free everything possible in just one pass. 846 // to free everything possible in just one pass.
846 while (!v8::V8::IdleNotification()) { 847 while (!v8::V8::IdleNotification()) {
847 } 848 }
848 849
849 #if defined(OS_WIN) && defined(USE_TCMALLOC) 850 #if (defined(OS_WIN) || defined(OS_LINUX)) && defined(USE_TCMALLOC)
850 // Tell tcmalloc to release any free pages it's still holding. 851 // Tell tcmalloc to release any free pages it's still holding.
851 MallocExtension::instance()->ReleaseFreeMemory(); 852 MallocExtension::instance()->ReleaseFreeMemory();
852 #endif 853 #endif
853 } 854 }
854 855
855 void RenderThread::OnPurgePluginListCache(bool reload_pages) { 856 void RenderThread::OnPurgePluginListCache(bool reload_pages) {
856 EnsureWebKitInitialized(); 857 EnsureWebKitInitialized();
857 // The call below will cause a GetPlugins call with refresh=true, but at this 858 // The call below will cause a GetPlugins call with refresh=true, but at this
858 // point we already know that the browser has refreshed its list, so disable 859 // point we already know that the browser has refreshed its list, so disable
859 // refresh temporarily to prevent each renderer process causing the list to be 860 // refresh temporarily to prevent each renderer process causing the list to be
(...skipping 13 matching lines...) Expand all
873 spellchecker_->EnableAutoSpellCorrect(auto_spell_correct); 874 spellchecker_->EnableAutoSpellCorrect(auto_spell_correct);
874 } 875 }
875 876
876 void RenderThread::OnSpellCheckWordAdded(const std::string& word) { 877 void RenderThread::OnSpellCheckWordAdded(const std::string& word) {
877 spellchecker_->WordAdded(word); 878 spellchecker_->WordAdded(word);
878 } 879 }
879 880
880 void RenderThread::OnSpellCheckEnableAutoSpellCorrect(bool enable) { 881 void RenderThread::OnSpellCheckEnableAutoSpellCorrect(bool enable) {
881 spellchecker_->EnableAutoSpellCorrect(enable); 882 spellchecker_->EnableAutoSpellCorrect(enable);
882 } 883 }
OLDNEW
« no previous file with comments | « chrome/browser/memory_purger.cc ('k') | webkit/extensions/v8/heap_profiler_extension.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698