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

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: 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
Index: content/renderer/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index a3c5cf06cdfb593c863ad1e65c982822e8a2a58d..28043f6974a94bbf9a0cf60cecfa736af9178a64 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -536,7 +536,7 @@ int64 ExtractPostId(const WebHistoryItem& item) {
} // namespace
-RenderViewImpl::RenderViewImpl(
+RenderViewImplParams::RenderViewImplParams(
int32 opener_id,
const RendererPreferences& renderer_prefs,
const WebPreferences& webkit_prefs,
@@ -550,8 +550,28 @@ RenderViewImpl::RenderViewImpl(
int32 next_page_id,
const WebKit::WebScreenInfo& screen_info,
AccessibilityMode accessibility_mode)
- : RenderWidget(WebKit::WebPopupTypeNone, screen_info, swapped_out),
- webkit_preferences_(webkit_prefs),
+ : opener_id(opener_id),
+ renderer_prefs(renderer_prefs),
+ webkit_prefs(webkit_prefs),
+ counter(counter),
+ routing_id(routing_id),
+ surface_id(surface_id),
+ session_storage_namespace_id(session_storage_namespace_id),
+ frame_name(frame_name),
+ is_renderer_created(is_renderer_created),
+ swapped_out(swapped_out),
+ next_page_id(next_page_id),
+ screen_info(screen_info),
+ accessibility_mode(accessibility_mode) {
+}
+
+RenderViewImplParams::~RenderViewImplParams() {}
+
+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 +581,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 +611,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 +621,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 +658,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 +685,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 +715,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 +728,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 +813,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 +827,12 @@ RenderViewImpl* RenderViewImpl::Create(
next_page_id,
screen_info,
accessibility_mode);
+ RenderViewImpl* render_view = NULL;
+ if (GetContentClient()->renderer()->OverrideCreateRenderViewImpl(
+ &params, &render_view)) {
+ return render_view;
+ }
+ return new RenderViewImpl(&params);
}
void RenderViewImpl::AddObserver(RenderViewObserver* observer) {

Powered by Google App Engine
This is Rietveld 408576698