Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 39bef48b803a6b165e10ca0fab5dc5d5e675189b..d6d922d96be90d58192fdb5d3a85fb791701f115 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -1973,7 +1973,7 @@ void RenderFrameImpl::didCommitProvisionalLoad( |
UpdateURL(frame); |
// Check whether we have new encoding name. |
- render_view_->UpdateEncoding(frame, frame->view()->pageEncoding().utf8()); |
+ UpdateEncoding(frame, frame->view()->pageEncoding().utf8()); |
} |
void RenderFrameImpl::didClearWindowObject(blink::WebLocalFrame* frame) { |
@@ -2013,8 +2013,20 @@ void RenderFrameImpl::didReceiveTitle(blink::WebLocalFrame* frame, |
const blink::WebString& title, |
blink::WebTextDirection direction) { |
DCHECK(!frame_ || frame_ == frame); |
- // TODO(nasko): Investigate wheather implementation should move here. |
- render_view_->didReceiveTitle(frame, title, direction); |
+ // Ignore all but top level navigations. |
+ if (!frame->parent()) { |
+ base::string16 title16 = title; |
+ base::debug::TraceLog::GetInstance()->UpdateProcessLabel( |
+ routing_id_, base::UTF16ToUTF8(title16)); |
+ |
+ base::string16 shortened_title = title16.substr(0, kMaxTitleChars); |
+ Send(new FrameHostMsg_UpdateTitle(routing_id_, |
+ render_view_->page_id_, |
+ shortened_title, direction)); |
+ } |
+ |
+ // Also check whether we have new encoding name. |
+ UpdateEncoding(frame, frame->view()->pageEncoding().utf8()); |
} |
void RenderFrameImpl::didChangeIcon(blink::WebLocalFrame* frame, |
@@ -2037,7 +2049,7 @@ void RenderFrameImpl::didFinishDocumentLoad(blink::WebLocalFrame* frame) { |
FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidFinishDocumentLoad()); |
// Check whether we have new encoding name. |
- render_view_->UpdateEncoding(frame, frame->view()->pageEncoding().utf8()); |
+ UpdateEncoding(frame, frame->view()->pageEncoding().utf8()); |
} |
void RenderFrameImpl::didHandleOnloadEvents(blink::WebLocalFrame* frame) { |
@@ -3301,6 +3313,13 @@ void RenderFrameImpl::OpenURL(WebFrame* frame, |
Send(new FrameHostMsg_OpenURL(routing_id_, params)); |
} |
+void RenderFrameImpl::UpdateEncoding(WebFrame* frame, |
+ const std::string& encoding_name) { |
+ // Only update main frame's encoding_name. |
+ if (!frame->parent()) |
+ Send(new FrameHostMsg_UpdateEncoding(routing_id_, encoding_name)); |
+} |
+ |
void RenderFrameImpl::SyncSelectionIfRequired() { |
base::string16 text; |
size_t offset; |