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

Unified Diff: content/renderer/render_thread.cc

Issue 6873014: Clear RenderThread of any Chrome specific code, and move a bunch of stuff out of RenderView. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/render_thread.h ('k') | content/renderer/render_view.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_thread.cc
===================================================================
--- content/renderer/render_thread.cc (revision 81801)
+++ content/renderer/render_thread.cc (working copy)
@@ -18,16 +18,12 @@
#include "base/metrics/stats_table.h"
#include "base/process_util.h"
#include "base/shared_memory.h"
-#include "base/string_util.h"
#include "base/task.h"
#include "base/threading/thread_local.h"
-#include "base/utf_string_conversions.h"
#include "base/values.h"
-#include "chrome/common/chrome_switches.h"
-#include "chrome/common/render_messages.h"
-#include "chrome/common/safe_browsing/safebrowsing_messages.h"
-#include "chrome/common/url_constants.h"
+// DO NOT ADD ANY MORE INCLUDES TO "chrome/"!
#include "content/common/appcache/appcache_dispatcher.h"
+#include "content/common/content_switches.h"
#include "content/common/database_messages.h"
#include "content/common/db_message_filter.h"
#include "content/common/dom_storage_messages.h"
@@ -39,7 +35,6 @@
#include "content/common/web_database_observer_impl.h"
#include "content/plugin/npobject_util.h"
#include "content/renderer/content_renderer_client.h"
-#include "content/renderer/cookie_message_filter.h"
#include "content/renderer/gpu_channel_host.h"
#include "content/renderer/gpu_video_service_host.h"
#include "content/renderer/indexed_db_dispatcher.h"
@@ -54,19 +49,14 @@
#include "ipc/ipc_platform_file.h"
#include "net/base/net_errors.h"
#include "net/base/net_util.h"
-#include "third_party/sqlite/sqlite3.h"
#include "third_party/tcmalloc/chromium/src/google/malloc_extension.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebCache.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebColor.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebCrossOriginPreflightResultCache.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebDatabase.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebFontCache.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebKit.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebRuntimeFeatures.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebScriptController.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityPolicy.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageEventDispatcher.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
@@ -92,12 +82,8 @@
#include "ipc/ipc_channel_posix.h"
#endif
-using WebKit::WebCache;
-using WebKit::WebCrossOriginPreflightResultCache;
-using WebKit::WebFontCache;
using WebKit::WebFrame;
using WebKit::WebRuntimeFeatures;
-using WebKit::WebSecurityPolicy;
using WebKit::WebScriptController;
using WebKit::WebString;
using WebKit::WebStorageEventDispatcher;
@@ -111,27 +97,6 @@
static base::LazyInstance<base::ThreadLocalPointer<RenderThread> > lazy_tls(
base::LINKER_INITIALIZED);
-class RenderViewContentSettingsSetter : public RenderViewVisitor {
- public:
- RenderViewContentSettingsSetter(const GURL& url,
- const ContentSettings& content_settings)
- : url_(url),
- content_settings_(content_settings) {
- }
-
- virtual bool Visit(RenderView* render_view) {
- if (GURL(render_view->webview()->mainFrame()->url()) == url_)
- render_view->SetContentSettings(content_settings_);
- return true;
- }
-
- private:
- GURL url_;
- ContentSettings content_settings_;
-
- DISALLOW_COPY_AND_ASSIGN(RenderViewContentSettingsSetter);
-};
-
class RenderViewZoomer : public RenderViewVisitor {
public:
RenderViewZoomer(const GURL& url, double zoom_level)
@@ -189,7 +154,6 @@
#endif
// In single process the single process is all there is.
- is_incognito_process_ = false;
suspend_webkit_shared_timer_ = true;
notify_webkit_of_modal_loop_ = true;
plugin_refresh_allowed_ = true;
@@ -204,9 +168,6 @@
db_message_filter_ = new DBMessageFilter();
AddFilter(db_message_filter_.get());
- cookie_message_filter_ = new CookieMessageFilter();
- AddFilter(cookie_message_filter_.get());
-
content::GetContentClient()->renderer()->RenderThreadStarted();
TRACE_EVENT_END("RenderThread::Init", 0, "");
@@ -273,31 +234,17 @@
// opportunity for re-entrancy into WebKit, so we need to take care to disable
// callbacks, timers, and pending network loads that could trigger such
// callbacks.
- bool pumping_events = false, may_show_cookie_prompt = false;
+ bool pumping_events = false;
if (msg->is_sync()) {
if (msg->is_caller_pumping_messages()) {
pumping_events = true;
} else {
- // We only need to pump events for chrome frame processes as the
- // cookie policy is controlled by the host browser (IE). If the
- // policy is set to prompt then the host would put up UI which
- // would require plugins if any to also pump to ensure that we
- // don't have a deadlock.
- if (CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kChromeFrame)) {
- switch (msg->type()) {
- case ViewHostMsg_GetCookies::ID:
- case ViewHostMsg_GetRawCookies::ID:
- case ViewHostMsg_CookiesEnabled::ID:
- case DOMStorageHostMsg_SetItem::ID:
- case ResourceHostMsg_SyncLoad::ID:
- case DatabaseHostMsg_Allow::ID:
- may_show_cookie_prompt = true;
- pumping_events = true;
- break;
- default:
- break;
- }
+ if ((msg->type() == ViewHostMsg_GetCookies::ID ||
+ msg->type() == ViewHostMsg_GetRawCookies::ID ||
+ msg->type() == ViewHostMsg_CookiesEnabled::ID) &&
+ content::GetContentClient()->renderer()->
+ ShouldPumpEventsDuringCookieMessage()) {
+ pumping_events = true;
}
}
}
@@ -311,12 +258,6 @@
gfx::NativeViewId host_window = 0;
if (pumping_events) {
- // See ViewMsg_SignalCookiePromptEvent.
- if (may_show_cookie_prompt) {
- static_cast<IPC::SyncMessage*>(msg)->set_pump_messages_event(
- cookie_message_filter_->pump_messages_event());
- }
-
if (suspend_webkit_shared_timer)
webkit_client_->SuspendSharedTimer();
@@ -345,15 +286,6 @@
if (suspend_webkit_shared_timer)
webkit_client_->ResumeSharedTimer();
-
- // We may end up nesting calls to Send, so we defer the reset until we
- // return to the top-most message loop.
- if (may_show_cookie_prompt &&
- cookie_message_filter_->pump_messages_event()->IsSignaled()) {
- MessageLoop::current()->PostNonNestableTask(FROM_HERE,
- NewRunnableMethod(cookie_message_filter_.get(),
- &CookieMessageFilter::ResetPumpMessagesEvent));
- }
}
return rv;
@@ -402,10 +334,6 @@
idle_timer_.Stop();
}
-bool RenderThread::IsIncognitoProcess() const {
- return is_incognito_process_;
-}
-
void RenderThread::AddObserver(RenderProcessObserver* observer) {
observers_.AddObserver(observer);
}
@@ -422,13 +350,6 @@
notify_webkit_of_modal_loop_ = false;
}
-void RenderThread::OnSetContentSettingsForCurrentURL(
- const GURL& url,
- const ContentSettings& content_settings) {
- RenderViewContentSettingsSetter setter(url, content_settings);
- RenderView::ForEach(&setter);
-}
-
void RenderThread::OnSetZoomLevelForCurrentURL(const GURL& url,
double zoom_level) {
RenderViewZoomer zoomer(url, zoom_level);
@@ -460,24 +381,13 @@
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(RenderThread, msg)
- IPC_MESSAGE_HANDLER(ViewMsg_SetContentSettingsForCurrentURL,
- OnSetContentSettingsForCurrentURL)
IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForCurrentURL,
OnSetZoomLevelForCurrentURL)
- IPC_MESSAGE_HANDLER(ViewMsg_SetIsIncognitoProcess, OnSetIsIncognitoProcess)
IPC_MESSAGE_HANDLER(ViewMsg_SetNextPageID, OnSetNextPageID)
IPC_MESSAGE_HANDLER(ViewMsg_SetCSSColors, OnSetCSSColors)
// TODO(port): removed from render_messages_internal.h;
// is there a new non-windows message I should add here?
IPC_MESSAGE_HANDLER(ViewMsg_New, OnCreateNewView)
- IPC_MESSAGE_HANDLER(ViewMsg_SetCacheCapacities, OnSetCacheCapacities)
- IPC_MESSAGE_HANDLER(ViewMsg_ClearCache, OnClearCache)
-#if defined(USE_TCMALLOC)
- IPC_MESSAGE_HANDLER(ViewMsg_GetRendererTcmalloc, OnGetRendererTcmalloc)
-#endif
- IPC_MESSAGE_HANDLER(ViewMsg_GetV8HeapStats, OnGetV8HeapStats)
- IPC_MESSAGE_HANDLER(ViewMsg_GetCacheResourceStats, OnGetCacheResourceStats)
- IPC_MESSAGE_HANDLER(ViewMsg_PurgeMemory, OnPurgeMemory)
IPC_MESSAGE_HANDLER(ViewMsg_PurgePluginListCache, OnPurgePluginListCache)
IPC_MESSAGE_HANDLER(DOMStorageMsg_Event, OnDOMStorageEvent)
IPC_MESSAGE_HANDLER(GpuMsg_GpuChannelEstablished, OnGpuChannelEstablished)
@@ -528,44 +438,6 @@
params.frame_name);
}
-void RenderThread::OnSetCacheCapacities(size_t min_dead_capacity,
- size_t max_dead_capacity,
- size_t capacity) {
- EnsureWebKitInitialized();
- WebCache::setCapacities(
- min_dead_capacity, max_dead_capacity, capacity);
-}
-
-void RenderThread::OnClearCache() {
- EnsureWebKitInitialized();
- WebCache::clear();
-}
-
-void RenderThread::OnGetCacheResourceStats() {
- EnsureWebKitInitialized();
- WebCache::ResourceTypeStats stats;
- WebCache::getResourceTypeStats(&stats);
- Send(new ViewHostMsg_ResourceTypeStats(stats));
-}
-
-#if defined(USE_TCMALLOC)
-void RenderThread::OnGetRendererTcmalloc() {
- std::string result;
- char buffer[1024 * 32];
- base::ProcessId pid = base::GetCurrentProcId();
- MallocExtension::instance()->GetStats(buffer, sizeof(buffer));
- result.append(buffer);
- Send(new ViewHostMsg_RendererTcmalloc(pid, result));
-}
-#endif
-
-void RenderThread::OnGetV8HeapStats() {
- v8::HeapStatistics heap_stats;
- v8::V8::GetHeapStatistics(&heap_stats);
- Send(new ViewHostMsg_V8HeapStats(heap_stats.total_heap_size(),
- heap_stats.used_heap_size()));
-}
-
void RenderThread::CloseCurrentConnections() {
Send(new ViewHostMsg_CloseCurrentConnections());
}
@@ -663,16 +535,6 @@
webkit_glue::EnableWebCoreLogChannels(
command_line.GetSwitchValueASCII(switches::kWebCoreLogChannels));
- // chrome: pages should not be accessible by normal content, and should
- // also be unable to script anything but themselves (to help limit the damage
- // that a corrupt chrome: page could cause).
- WebString chrome_ui_scheme(ASCIIToUTF16(chrome::kChromeUIScheme));
- WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(chrome_ui_scheme);
-
- // chrome-extension: resources shouldn't trigger insecure content warnings.
- WebString extension_scheme(ASCIIToUTF16(chrome::kExtensionScheme));
- WebSecurityPolicy::registerURLSchemeAsSecure(extension_scheme);
-
if (command_line.HasSwitch(switches::kEnableBenchmarking))
RegisterExtension(extensions_v8::BenchmarkingExtension::Get());
@@ -772,37 +634,6 @@
this, &RenderThread::IdleHandler);
}
-void RenderThread::OnPurgeMemory() {
- EnsureWebKitInitialized();
-
- // Clear the object cache (as much as possible; some live objects cannot be
- // freed).
- WebCache::clear();
-
- // Clear the font/glyph cache.
- WebFontCache::clear();
-
- // Clear the Cross-Origin Preflight cache.
- WebCrossOriginPreflightResultCache::clear();
-
- // Release all freeable memory from the SQLite process-global page cache (a
- // low-level object which backs the Connection-specific page caches).
- while (sqlite3_release_memory(std::numeric_limits<int>::max()) > 0) {
- }
-
- // Repeatedly call the V8 idle notification until it returns true ("nothing
- // more to free"). Note that it makes more sense to do this than to implement
- // a new "delete everything" pass because object references make it difficult
- // to free everything possible in just one pass.
- while (!v8::V8::IdleNotification()) {
- }
-
-#if (defined(OS_WIN) || defined(OS_LINUX)) && defined(USE_TCMALLOC)
- // Tell tcmalloc to release any free pages it's still holding.
- MallocExtension::instance()->ReleaseFreeMemory();
-#endif
-}
-
void RenderThread::OnPurgePluginListCache(bool reload_pages) {
EnsureWebKitInitialized();
// The call below will cause a GetPlugins call with refresh=true, but at this
@@ -814,10 +645,6 @@
plugin_refresh_allowed_ = true;
}
-void RenderThread::OnSetIsIncognitoProcess(bool is_incognito_process) {
- is_incognito_process_ = is_incognito_process;
-}
-
void RenderThread::OnGpuChannelEstablished(
const IPC::ChannelHandle& channel_handle,
base::ProcessHandle renderer_process_for_gpu,
« no previous file with comments | « content/renderer/render_thread.h ('k') | content/renderer/render_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698