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

Unified Diff: content/renderer/render_view_impl.cc

Issue 11362161: Use the WebTestProxy for layout tests in content_shell (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: patch Created 8 years, 1 month 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_view_impl.h ('k') | content/renderer/render_view_impl_params.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 6c4573fb75aecf16a14461ae0f5f84b162823718..b70206ba961168936d15852c22f4825424fdca15 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -88,6 +88,7 @@
#include "content/renderer/plugin_channel_host.h"
#include "content/renderer/render_process.h"
#include "content/renderer/render_thread_impl.h"
+#include "content/renderer/render_view_impl_params.h"
#include "content/renderer/render_view_mouse_lock_dispatcher.h"
#include "content/renderer/render_widget_fullscreen_pepper.h"
#include "content/renderer/renderer_accessibility.h"
@@ -359,6 +360,9 @@ static const float kScalingIncrementForGesture = 0.01f;
static const size_t kContentIntentDelayMilliseconds = 700;
#endif
+static RenderViewImpl* (*g_create_render_view_impl)(RenderViewImplParams*) =
+ NULL;
+
static RenderViewImpl* FromRoutingID(int32 routing_id) {
return static_cast<RenderViewImpl*>(
ChildThread::current()->ResolveRoute(routing_id));
@@ -536,22 +540,11 @@ int64 ExtractPostId(const WebHistoryItem& item) {
} // namespace
-RenderViewImpl::RenderViewImpl(
- int32 opener_id,
- const RendererPreferences& renderer_prefs,
- const WebPreferences& webkit_prefs,
- SharedRenderViewCounter* counter,
- int32 routing_id,
- int32 surface_id,
- int64 session_storage_namespace_id,
- const string16& frame_name,
- bool is_renderer_created,
- bool swapped_out,
- int32 next_page_id,
- const WebKit::WebScreenInfo& screen_info,
- AccessibilityMode accessibility_mode)
- : RenderWidget(WebKit::WebPopupTypeNone, screen_info, swapped_out),
- webkit_preferences_(webkit_prefs),
+RenderViewImpl::RenderViewImpl(RenderViewImplParams* params)
+ : RenderWidget(WebKit::WebPopupTypeNone,
+ params->screen_info,
+ params->swapped_out),
+ webkit_preferences_(params->webkit_prefs),
send_content_state_immediately_(false),
enabled_bindings_(0),
send_preferred_size_changes_(false),
@@ -561,7 +554,7 @@ RenderViewImpl::RenderViewImpl(
opener_suppressed_(false),
page_id_(-1),
last_page_id_sent_to_browser_(-1),
- next_page_id_(next_page_id),
+ next_page_id_(params->next_page_id),
history_list_offset_(-1),
history_list_length_(0),
target_url_status_(TARGET_NONE),
@@ -591,7 +584,7 @@ RenderViewImpl::RenderViewImpl(
ALLOW_THIS_IN_INITIALIZER_LIST(
load_progress_tracker_(new LoadProgressTracker(this))),
#endif
- session_storage_namespace_id_(session_storage_namespace_id),
+ session_storage_namespace_id_(params->session_storage_namespace_id),
handling_select_range_(false),
#if defined(OS_WIN)
focused_plugin_id_(-1),
@@ -601,11 +594,11 @@ RenderViewImpl::RenderViewImpl(
target_process_id_(0),
target_routing_id_(0),
ALLOW_THIS_IN_INITIALIZER_LIST(pepper_delegate_(this)) {
- set_throttle_input_events(renderer_prefs.throttle_input_events);
- routing_id_ = routing_id;
- surface_id_ = surface_id;
- if (opener_id != MSG_ROUTING_NONE && is_renderer_created)
- opener_id_ = opener_id;
+ set_throttle_input_events(params->renderer_prefs.throttle_input_events);
+ routing_id_ = params->routing_id;
+ surface_id_ = params->surface_id;
+ if (params->opener_id != MSG_ROUTING_NONE && params->is_renderer_created)
+ opener_id_ = params->opener_id;
// Ensure we start with a valid next_page_id_ from the browser.
DCHECK_GE(next_page_id_, 0);
@@ -638,10 +631,10 @@ RenderViewImpl::RenderViewImpl(
new EmailDetector()));
#endif
- if (counter) {
- shared_popup_counter_ = counter;
+ if (params->counter) {
+ shared_popup_counter_ = params->counter;
// Only count this if it isn't swapped out upon creation.
- if (!swapped_out)
+ if (!params->swapped_out)
shared_popup_counter_->data++;
decrement_shared_popup_at_destruction_ = true;
} else {
@@ -665,13 +658,13 @@ RenderViewImpl::RenderViewImpl(
webview()->setDeviceScaleFactor(device_scale_factor_);
webkit_preferences_.Apply(webview());
webview()->initializeMainFrame(this);
- if (!frame_name.empty())
- webview()->mainFrame()->setName(frame_name);
+ if (!params->frame_name.empty())
+ webview()->mainFrame()->setName(params->frame_name);
webview()->settings()->setMinimumTimerInterval(
is_hidden() ? webkit_glue::kBackgroundTabTimerInterval :
webkit_glue::kForegroundTabTimerInterval);
- OnSetRendererPrefs(renderer_prefs);
+ OnSetRendererPrefs(params->renderer_prefs);
#if defined(ENABLE_WEBRTC)
if (!media_stream_dispatcher_)
@@ -695,7 +688,7 @@ RenderViewImpl::RenderViewImpl(
intents_host_ = new WebIntentsHost(this);
// Create renderer_accessibility_ if needed.
- OnSetAccessibilityMode(accessibility_mode);
+ OnSetAccessibilityMode(params->accessibility_mode);
new IdleUserDetector(this);
@@ -708,8 +701,8 @@ RenderViewImpl::RenderViewImpl(
// If we have an opener_id but we weren't created by a renderer, then
// it's the browser asking us to set our opener to another RenderView.
- if (opener_id != MSG_ROUTING_NONE && !is_renderer_created) {
- RenderViewImpl* opener_view = FromRoutingID(opener_id);
+ if (params->opener_id != MSG_ROUTING_NONE && !params->is_renderer_created) {
+ RenderViewImpl* opener_view = FromRoutingID(params->opener_id);
if (opener_view)
webview()->mainFrame()->setOpener(opener_view->webview()->mainFrame());
}
@@ -793,7 +786,7 @@ RenderViewImpl* RenderViewImpl::Create(
const WebKit::WebScreenInfo& screen_info,
AccessibilityMode accessibility_mode) {
DCHECK(routing_id != MSG_ROUTING_NONE);
- return new RenderViewImpl(
+ RenderViewImplParams params(
opener_id,
renderer_prefs,
webkit_prefs,
@@ -807,6 +800,16 @@ RenderViewImpl* RenderViewImpl::Create(
next_page_id,
screen_info,
accessibility_mode);
+ if (g_create_render_view_impl)
+ return g_create_render_view_impl(&params);
+ return new RenderViewImpl(&params);
+}
+
+// static
+void RenderViewImpl::InstallCreateHook(
+ RenderViewImpl* (*create_render_view_impl)(RenderViewImplParams*)) {
+ CHECK(!g_create_render_view_impl);
+ g_create_render_view_impl = create_render_view_impl;
}
void RenderViewImpl::AddObserver(RenderViewObserver* observer) {
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | content/renderer/render_view_impl_params.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698