OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/renderer/render_view_impl.h" | 5 #include "content/renderer/render_view_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 1085 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1096 | 1096 |
1097 /*static*/ | 1097 /*static*/ |
1098 RenderViewImpl* RenderViewImpl::Create( | 1098 RenderViewImpl* RenderViewImpl::Create( |
1099 int32 opener_id, | 1099 int32 opener_id, |
1100 const RendererPreferences& renderer_prefs, | 1100 const RendererPreferences& renderer_prefs, |
1101 const WebPreferences& webkit_prefs, | 1101 const WebPreferences& webkit_prefs, |
1102 int32 routing_id, | 1102 int32 routing_id, |
1103 int32 main_frame_routing_id, | 1103 int32 main_frame_routing_id, |
1104 int32 surface_id, | 1104 int32 surface_id, |
1105 int64 session_storage_namespace_id, | 1105 int64 session_storage_namespace_id, |
1106 const string16& frame_name, | 1106 const base::string16& frame_name, |
1107 bool is_renderer_created, | 1107 bool is_renderer_created, |
1108 bool swapped_out, | 1108 bool swapped_out, |
1109 bool hidden, | 1109 bool hidden, |
1110 int32 next_page_id, | 1110 int32 next_page_id, |
1111 const blink::WebScreenInfo& screen_info, | 1111 const blink::WebScreenInfo& screen_info, |
1112 AccessibilityMode accessibility_mode, | 1112 AccessibilityMode accessibility_mode, |
1113 bool allow_partial_swap) { | 1113 bool allow_partial_swap) { |
1114 DCHECK(routing_id != MSG_ROUTING_NONE); | 1114 DCHECK(routing_id != MSG_ROUTING_NONE); |
1115 RenderViewImplParams params( | 1115 RenderViewImplParams params( |
1116 opener_id, | 1116 opener_id, |
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1690 } | 1690 } |
1691 | 1691 |
1692 void RenderViewImpl::OnRedo() { | 1692 void RenderViewImpl::OnRedo() { |
1693 if (!webview()) | 1693 if (!webview()) |
1694 return; | 1694 return; |
1695 | 1695 |
1696 webview()->focusedFrame()->executeCommand(WebString::fromUTF8("Redo"), | 1696 webview()->focusedFrame()->executeCommand(WebString::fromUTF8("Redo"), |
1697 GetFocusedNode()); | 1697 GetFocusedNode()); |
1698 } | 1698 } |
1699 | 1699 |
1700 void RenderViewImpl::OnReplace(const string16& text) { | 1700 void RenderViewImpl::OnReplace(const base::string16& text) { |
1701 if (!webview()) | 1701 if (!webview()) |
1702 return; | 1702 return; |
1703 | 1703 |
1704 WebFrame* frame = webview()->focusedFrame(); | 1704 WebFrame* frame = webview()->focusedFrame(); |
1705 if (!frame->hasSelection()) | 1705 if (!frame->hasSelection()) |
1706 frame->selectWordAroundCaret(); | 1706 frame->selectWordAroundCaret(); |
1707 | 1707 |
1708 frame->replaceSelection(text); | 1708 frame->replaceSelection(text); |
1709 } | 1709 } |
1710 | 1710 |
1711 void RenderViewImpl::OnReplaceMisspelling(const string16& text) { | 1711 void RenderViewImpl::OnReplaceMisspelling(const base::string16& text) { |
1712 if (!webview()) | 1712 if (!webview()) |
1713 return; | 1713 return; |
1714 | 1714 |
1715 WebFrame* frame = webview()->focusedFrame(); | 1715 WebFrame* frame = webview()->focusedFrame(); |
1716 if (!frame->hasSelection()) | 1716 if (!frame->hasSelection()) |
1717 return; | 1717 return; |
1718 | 1718 |
1719 frame->replaceMisspelledRange(text); | 1719 frame->replaceMisspelledRange(text); |
1720 } | 1720 } |
1721 | 1721 |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1774 | 1774 |
1775 #if defined(OS_MACOSX) | 1775 #if defined(OS_MACOSX) |
1776 void RenderViewImpl::OnCopyToFindPboard() { | 1776 void RenderViewImpl::OnCopyToFindPboard() { |
1777 if (!webview()) | 1777 if (!webview()) |
1778 return; | 1778 return; |
1779 | 1779 |
1780 // Since the find pasteboard supports only plain text, this can be simpler | 1780 // Since the find pasteboard supports only plain text, this can be simpler |
1781 // than the |OnCopy()| case. | 1781 // than the |OnCopy()| case. |
1782 WebFrame* frame = webview()->focusedFrame(); | 1782 WebFrame* frame = webview()->focusedFrame(); |
1783 if (frame->hasSelection()) { | 1783 if (frame->hasSelection()) { |
1784 string16 selection = frame->selectionAsText(); | 1784 base::string16 selection = frame->selectionAsText(); |
1785 RenderThread::Get()->Send( | 1785 RenderThread::Get()->Send( |
1786 new ClipboardHostMsg_FindPboardWriteStringAsync(selection)); | 1786 new ClipboardHostMsg_FindPboardWriteStringAsync(selection)); |
1787 } | 1787 } |
1788 } | 1788 } |
1789 #endif | 1789 #endif |
1790 | 1790 |
1791 void RenderViewImpl::OnSetName(const std::string& name) { | 1791 void RenderViewImpl::OnSetName(const std::string& name) { |
1792 if (!webview()) | 1792 if (!webview()) |
1793 return; | 1793 return; |
1794 | 1794 |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1984 params.referrer = Referrer(params.redirects[0], | 1984 params.referrer = Referrer(params.redirects[0], |
1985 GetReferrerPolicyFromRequest(frame, ds->request())); | 1985 GetReferrerPolicyFromRequest(frame, ds->request())); |
1986 params.transition = static_cast<PageTransition>( | 1986 params.transition = static_cast<PageTransition>( |
1987 params.transition | PAGE_TRANSITION_CLIENT_REDIRECT); | 1987 params.transition | PAGE_TRANSITION_CLIENT_REDIRECT); |
1988 } else { | 1988 } else { |
1989 // Bug 654101: the referrer will be empty on https->http transitions. It | 1989 // Bug 654101: the referrer will be empty on https->http transitions. It |
1990 // would be nice if we could get the real referrer from somewhere. | 1990 // would be nice if we could get the real referrer from somewhere. |
1991 params.referrer = GetReferrerFromRequest(frame, original_request); | 1991 params.referrer = GetReferrerFromRequest(frame, original_request); |
1992 } | 1992 } |
1993 | 1993 |
1994 string16 method = request.httpMethod(); | 1994 base::string16 method = request.httpMethod(); |
1995 if (EqualsASCII(method, "POST")) { | 1995 if (EqualsASCII(method, "POST")) { |
1996 params.is_post = true; | 1996 params.is_post = true; |
1997 params.post_id = ExtractPostId(item); | 1997 params.post_id = ExtractPostId(item); |
1998 } | 1998 } |
1999 | 1999 |
2000 // Send the user agent override back. | 2000 // Send the user agent override back. |
2001 params.is_overriding_user_agent = internal_data->is_overriding_user_agent(); | 2001 params.is_overriding_user_agent = internal_data->is_overriding_user_agent(); |
2002 | 2002 |
2003 // Track the URL of the original request. We use the first entry of the | 2003 // Track the URL of the original request. We use the first entry of the |
2004 // redirect chain if it exists because the chain may have started in another | 2004 // redirect chain if it exists because the chain may have started in another |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2041 last_page_id_sent_to_browser_ = | 2041 last_page_id_sent_to_browser_ = |
2042 std::max(last_page_id_sent_to_browser_, page_id_); | 2042 std::max(last_page_id_sent_to_browser_, page_id_); |
2043 | 2043 |
2044 // If we end up reusing this WebRequest (for example, due to a #ref click), | 2044 // If we end up reusing this WebRequest (for example, due to a #ref click), |
2045 // we don't want the transition type to persist. Just clear it. | 2045 // we don't want the transition type to persist. Just clear it. |
2046 navigation_state->set_transition_type(PAGE_TRANSITION_LINK); | 2046 navigation_state->set_transition_type(PAGE_TRANSITION_LINK); |
2047 } | 2047 } |
2048 | 2048 |
2049 // Tell the embedding application that the title of the active page has changed | 2049 // Tell the embedding application that the title of the active page has changed |
2050 void RenderViewImpl::UpdateTitle(WebFrame* frame, | 2050 void RenderViewImpl::UpdateTitle(WebFrame* frame, |
2051 const string16& title, | 2051 const base::string16& title, |
2052 WebTextDirection title_direction) { | 2052 WebTextDirection title_direction) { |
2053 // Ignore all but top level navigations. | 2053 // Ignore all but top level navigations. |
2054 if (frame->parent()) | 2054 if (frame->parent()) |
2055 return; | 2055 return; |
2056 | 2056 |
2057 base::debug::TraceLog::GetInstance()->UpdateProcessLabel( | 2057 base::debug::TraceLog::GetInstance()->UpdateProcessLabel( |
2058 routing_id_, UTF16ToUTF8(title)); | 2058 routing_id_, UTF16ToUTF8(title)); |
2059 | 2059 |
2060 string16 shortened_title = title.substr(0, kMaxTitleChars); | 2060 base::string16 shortened_title = title.substr(0, kMaxTitleChars); |
2061 Send(new ViewHostMsg_UpdateTitle(routing_id_, page_id_, shortened_title, | 2061 Send(new ViewHostMsg_UpdateTitle(routing_id_, page_id_, shortened_title, |
2062 title_direction)); | 2062 title_direction)); |
2063 } | 2063 } |
2064 | 2064 |
2065 void RenderViewImpl::UpdateEncoding(WebFrame* frame, | 2065 void RenderViewImpl::UpdateEncoding(WebFrame* frame, |
2066 const std::string& encoding_name) { | 2066 const std::string& encoding_name) { |
2067 // Only update main frame's encoding_name. | 2067 // Only update main frame's encoding_name. |
2068 if (webview()->mainFrame() == frame && | 2068 if (webview()->mainFrame() == frame && |
2069 last_encoding_name_ != encoding_name) { | 2069 last_encoding_name_ != encoding_name) { |
2070 // Save the encoding name for later comparing. | 2070 // Save the encoding name for later comparing. |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2162 error_html = &alt_html; | 2162 error_html = &alt_html; |
2163 } | 2163 } |
2164 | 2164 |
2165 frame->loadHTMLString(*error_html, | 2165 frame->loadHTMLString(*error_html, |
2166 GURL(kUnreachableWebDataURL), | 2166 GURL(kUnreachableWebDataURL), |
2167 error.unreachableURL, | 2167 error.unreachableURL, |
2168 replace); | 2168 replace); |
2169 } | 2169 } |
2170 | 2170 |
2171 bool RenderViewImpl::RunJavaScriptMessage(JavaScriptMessageType type, | 2171 bool RenderViewImpl::RunJavaScriptMessage(JavaScriptMessageType type, |
2172 const string16& message, | 2172 const base::string16& message, |
2173 const string16& default_value, | 2173 const base::string16& default_value, |
2174 const GURL& frame_url, | 2174 const GURL& frame_url, |
2175 string16* result) { | 2175 base::string16* result) { |
2176 // Don't allow further dialogs if we are waiting to swap out, since the | 2176 // Don't allow further dialogs if we are waiting to swap out, since the |
2177 // PageGroupLoadDeferrer in our stack prevents it. | 2177 // PageGroupLoadDeferrer in our stack prevents it. |
2178 if (suppress_dialogs_until_swap_out_) | 2178 if (suppress_dialogs_until_swap_out_) |
2179 return false; | 2179 return false; |
2180 | 2180 |
2181 bool success = false; | 2181 bool success = false; |
2182 string16 result_temp; | 2182 base::string16 result_temp; |
2183 if (!result) | 2183 if (!result) |
2184 result = &result_temp; | 2184 result = &result_temp; |
2185 | 2185 |
2186 SendAndRunNestedMessageLoop(new ViewHostMsg_RunJavaScriptMessage( | 2186 SendAndRunNestedMessageLoop(new ViewHostMsg_RunJavaScriptMessage( |
2187 routing_id_, message, default_value, frame_url, type, &success, result)); | 2187 routing_id_, message, default_value, frame_url, type, &success, result)); |
2188 return success; | 2188 return success; |
2189 } | 2189 } |
2190 | 2190 |
2191 bool RenderViewImpl::SendAndRunNestedMessageLoop(IPC::SyncMessage* message) { | 2191 bool RenderViewImpl::SendAndRunNestedMessageLoop(IPC::SyncMessage* message) { |
2192 // Before WebKit asks us to show an alert (etc.), it takes care of doing the | 2192 // Before WebKit asks us to show an alert (etc.), it takes care of doing the |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2303 // and rely on the browser sending a WasHidden / WasShown message if it | 2303 // and rely on the browser sending a WasHidden / WasShown message if it |
2304 // disagrees. | 2304 // disagrees. |
2305 RenderViewImpl* view = RenderViewImpl::Create( | 2305 RenderViewImpl* view = RenderViewImpl::Create( |
2306 routing_id_, | 2306 routing_id_, |
2307 renderer_preferences_, | 2307 renderer_preferences_, |
2308 transferred_preferences, | 2308 transferred_preferences, |
2309 routing_id, | 2309 routing_id, |
2310 main_frame_routing_id, | 2310 main_frame_routing_id, |
2311 surface_id, | 2311 surface_id, |
2312 cloned_session_storage_namespace_id, | 2312 cloned_session_storage_namespace_id, |
2313 string16(), // WebCore will take care of setting the correct name. | 2313 base::string16(), // WebCore will take care of setting the correct name. |
2314 true, // is_renderer_created | 2314 true, // is_renderer_created |
2315 false, // swapped_out | 2315 false, // swapped_out |
2316 params.disposition == NEW_BACKGROUND_TAB, // hidden | 2316 params.disposition == NEW_BACKGROUND_TAB, // hidden |
2317 1, // next_page_id | 2317 1, // next_page_id |
2318 screen_info_, | 2318 screen_info_, |
2319 accessibility_mode_, | 2319 accessibility_mode_, |
2320 allow_partial_swap_); | 2320 allow_partial_swap_); |
2321 view->opened_by_user_gesture_ = params.user_gesture; | 2321 view->opened_by_user_gesture_ = params.user_gesture; |
2322 | 2322 |
2323 // Record whether the creator frame is trying to suppress the opener field. | 2323 // Record whether the creator frame is trying to suppress the opener field. |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2575 ipc_params.capture = params.useMediaCapture; | 2575 ipc_params.capture = params.useMediaCapture; |
2576 #endif | 2576 #endif |
2577 | 2577 |
2578 return ScheduleFileChooser(ipc_params, chooser_completion); | 2578 return ScheduleFileChooser(ipc_params, chooser_completion); |
2579 } | 2579 } |
2580 | 2580 |
2581 void RenderViewImpl::runModalAlertDialog(WebFrame* frame, | 2581 void RenderViewImpl::runModalAlertDialog(WebFrame* frame, |
2582 const WebString& message) { | 2582 const WebString& message) { |
2583 RunJavaScriptMessage(JAVASCRIPT_MESSAGE_TYPE_ALERT, | 2583 RunJavaScriptMessage(JAVASCRIPT_MESSAGE_TYPE_ALERT, |
2584 message, | 2584 message, |
2585 string16(), | 2585 base::string16(), |
2586 frame->document().url(), | 2586 frame->document().url(), |
2587 NULL); | 2587 NULL); |
2588 } | 2588 } |
2589 | 2589 |
2590 bool RenderViewImpl::runModalConfirmDialog(WebFrame* frame, | 2590 bool RenderViewImpl::runModalConfirmDialog(WebFrame* frame, |
2591 const WebString& message) { | 2591 const WebString& message) { |
2592 return RunJavaScriptMessage(JAVASCRIPT_MESSAGE_TYPE_CONFIRM, | 2592 return RunJavaScriptMessage(JAVASCRIPT_MESSAGE_TYPE_CONFIRM, |
2593 message, | 2593 message, |
2594 string16(), | 2594 base::string16(), |
2595 frame->document().url(), | 2595 frame->document().url(), |
2596 NULL); | 2596 NULL); |
2597 } | 2597 } |
2598 | 2598 |
2599 bool RenderViewImpl::runModalPromptDialog(WebFrame* frame, | 2599 bool RenderViewImpl::runModalPromptDialog(WebFrame* frame, |
2600 const WebString& message, | 2600 const WebString& message, |
2601 const WebString& default_value, | 2601 const WebString& default_value, |
2602 WebString* actual_value) { | 2602 WebString* actual_value) { |
2603 string16 result; | 2603 base::string16 result; |
2604 bool ok = RunJavaScriptMessage(JAVASCRIPT_MESSAGE_TYPE_PROMPT, | 2604 bool ok = RunJavaScriptMessage(JAVASCRIPT_MESSAGE_TYPE_PROMPT, |
2605 message, | 2605 message, |
2606 default_value, | 2606 default_value, |
2607 frame->document().url(), | 2607 frame->document().url(), |
2608 &result); | 2608 &result); |
2609 if (ok) | 2609 if (ok) |
2610 actual_value->assign(result); | 2610 actual_value->assign(result); |
2611 return ok; | 2611 return ok; |
2612 } | 2612 } |
2613 | 2613 |
(...skipping 15 matching lines...) Expand all Loading... |
2629 return true; | 2629 return true; |
2630 | 2630 |
2631 // Don't allow further dialogs if we are waiting to swap out, since the | 2631 // Don't allow further dialogs if we are waiting to swap out, since the |
2632 // PageGroupLoadDeferrer in our stack prevents it. | 2632 // PageGroupLoadDeferrer in our stack prevents it. |
2633 if (suppress_dialogs_until_swap_out_) | 2633 if (suppress_dialogs_until_swap_out_) |
2634 return false; | 2634 return false; |
2635 | 2635 |
2636 bool success = false; | 2636 bool success = false; |
2637 // This is an ignored return value, but is included so we can accept the same | 2637 // This is an ignored return value, but is included so we can accept the same |
2638 // response as RunJavaScriptMessage. | 2638 // response as RunJavaScriptMessage. |
2639 string16 ignored_result; | 2639 base::string16 ignored_result; |
2640 SendAndRunNestedMessageLoop(new ViewHostMsg_RunBeforeUnloadConfirm( | 2640 SendAndRunNestedMessageLoop(new ViewHostMsg_RunBeforeUnloadConfirm( |
2641 routing_id_, frame->document().url(), message, is_reload, | 2641 routing_id_, frame->document().url(), message, is_reload, |
2642 &success, &ignored_result)); | 2642 &success, &ignored_result)); |
2643 return success; | 2643 return success; |
2644 } | 2644 } |
2645 | 2645 |
2646 void RenderViewImpl::showContextMenu( | 2646 void RenderViewImpl::showContextMenu( |
2647 WebFrame* frame, const WebContextMenuData& data) { | 2647 WebFrame* frame, const WebContextMenuData& data) { |
2648 ContextMenuParams params = ContextMenuParamsBuilder::Build(data); | 2648 ContextMenuParams params = ContextMenuParamsBuilder::Build(data); |
2649 params.source_type = context_menu_source_type_; | 2649 params.source_type = context_menu_source_type_; |
(...skipping 1149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3799 } | 3799 } |
3800 | 3800 |
3801 void RenderViewImpl::didFailLoad(WebFrame* frame, const WebURLError& error) { | 3801 void RenderViewImpl::didFailLoad(WebFrame* frame, const WebURLError& error) { |
3802 WebDataSource* ds = frame->dataSource(); | 3802 WebDataSource* ds = frame->dataSource(); |
3803 DCHECK(ds); | 3803 DCHECK(ds); |
3804 | 3804 |
3805 | 3805 |
3806 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidFailLoad(frame, error)); | 3806 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidFailLoad(frame, error)); |
3807 | 3807 |
3808 const WebURLRequest& failed_request = ds->request(); | 3808 const WebURLRequest& failed_request = ds->request(); |
3809 string16 error_description; | 3809 base::string16 error_description; |
3810 GetContentClient()->renderer()->GetNavigationErrorStrings( | 3810 GetContentClient()->renderer()->GetNavigationErrorStrings( |
3811 frame, | 3811 frame, |
3812 failed_request, | 3812 failed_request, |
3813 error, | 3813 error, |
3814 renderer_preferences_.accept_languages, | 3814 renderer_preferences_.accept_languages, |
3815 NULL, | 3815 NULL, |
3816 &error_description); | 3816 &error_description); |
3817 Send(new ViewHostMsg_DidFailLoadWithError(routing_id_, | 3817 Send(new ViewHostMsg_DidFailLoadWithError(routing_id_, |
3818 frame->identifier(), | 3818 frame->identifier(), |
3819 failed_request.url(), | 3819 failed_request.url(), |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4101 Send(new ViewHostMsg_Find_Reply(routing_id_, | 4101 Send(new ViewHostMsg_Find_Reply(routing_id_, |
4102 request_id, | 4102 request_id, |
4103 match_count, | 4103 match_count, |
4104 selection_rect, | 4104 selection_rect, |
4105 ordinal, | 4105 ordinal, |
4106 final_status_update)); | 4106 final_status_update)); |
4107 } | 4107 } |
4108 | 4108 |
4109 // static | 4109 // static |
4110 bool RenderViewImpl::ShouldUpdateSelectionTextFromContextMenuParams( | 4110 bool RenderViewImpl::ShouldUpdateSelectionTextFromContextMenuParams( |
4111 const string16& selection_text, | 4111 const base::string16& selection_text, |
4112 size_t selection_text_offset, | 4112 size_t selection_text_offset, |
4113 const gfx::Range& selection_range, | 4113 const gfx::Range& selection_range, |
4114 const ContextMenuParams& params) { | 4114 const ContextMenuParams& params) { |
4115 string16 trimmed_selection_text; | 4115 base::string16 trimmed_selection_text; |
4116 if (!selection_text.empty() && !selection_range.is_empty()) { | 4116 if (!selection_text.empty() && !selection_range.is_empty()) { |
4117 const int start = selection_range.GetMin() - selection_text_offset; | 4117 const int start = selection_range.GetMin() - selection_text_offset; |
4118 const size_t length = selection_range.length(); | 4118 const size_t length = selection_range.length(); |
4119 if (start >= 0 && start + length <= selection_text.length()) { | 4119 if (start >= 0 && start + length <= selection_text.length()) { |
4120 TrimWhitespace(selection_text.substr(start, length), TRIM_ALL, | 4120 TrimWhitespace(selection_text.substr(start, length), TRIM_ALL, |
4121 &trimmed_selection_text); | 4121 &trimmed_selection_text); |
4122 } | 4122 } |
4123 } | 4123 } |
4124 string16 trimmed_params_text; | 4124 base::string16 trimmed_params_text; |
4125 TrimWhitespace(params.selection_text, TRIM_ALL, &trimmed_params_text); | 4125 TrimWhitespace(params.selection_text, TRIM_ALL, &trimmed_params_text); |
4126 return trimmed_params_text != trimmed_selection_text; | 4126 return trimmed_params_text != trimmed_selection_text; |
4127 } | 4127 } |
4128 | 4128 |
4129 void RenderViewImpl::reportFindInPageMatchCount(int request_id, | 4129 void RenderViewImpl::reportFindInPageMatchCount(int request_id, |
4130 int count, | 4130 int count, |
4131 bool final_update) { | 4131 bool final_update) { |
4132 NOTREACHED(); | 4132 NOTREACHED(); |
4133 } | 4133 } |
4134 | 4134 |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4322 if (pepper_module.get()) | 4322 if (pepper_module.get()) |
4323 return new PepperWebPluginImpl(pepper_module.get(), params, AsWeakPtr()); | 4323 return new PepperWebPluginImpl(pepper_module.get(), params, AsWeakPtr()); |
4324 } | 4324 } |
4325 | 4325 |
4326 return new WebPluginImpl(frame, params, info.path, AsWeakPtr()); | 4326 return new WebPluginImpl(frame, params, info.path, AsWeakPtr()); |
4327 #else | 4327 #else |
4328 return NULL; | 4328 return NULL; |
4329 #endif | 4329 #endif |
4330 } | 4330 } |
4331 | 4331 |
4332 void RenderViewImpl::EvaluateScript(const string16& frame_xpath, | 4332 void RenderViewImpl::EvaluateScript(const base::string16& frame_xpath, |
4333 const string16& jscript, | 4333 const base::string16& jscript, |
4334 int id, | 4334 int id, |
4335 bool notify_result) { | 4335 bool notify_result) { |
4336 v8::HandleScope handle_scope(v8::Isolate::GetCurrent()); | 4336 v8::HandleScope handle_scope(v8::Isolate::GetCurrent()); |
4337 v8::Handle<v8::Value> result; | 4337 v8::Handle<v8::Value> result; |
4338 WebFrame* web_frame = GetChildFrame(frame_xpath); | 4338 WebFrame* web_frame = GetChildFrame(frame_xpath); |
4339 if (web_frame) | 4339 if (web_frame) |
4340 result = web_frame->executeScriptAndReturnValue(WebScriptSource(jscript)); | 4340 result = web_frame->executeScriptAndReturnValue(WebScriptSource(jscript)); |
4341 if (notify_result) { | 4341 if (notify_result) { |
4342 base::ListValue list; | 4342 base::ListValue list; |
4343 if (!result.IsEmpty() && web_frame) { | 4343 if (!result.IsEmpty() && web_frame) { |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4437 | 4437 |
4438 const WebHistoryItem& item = webview()->mainFrame()->currentHistoryItem(); | 4438 const WebHistoryItem& item = webview()->mainFrame()->currentHistoryItem(); |
4439 SendUpdateState(item); | 4439 SendUpdateState(item); |
4440 } | 4440 } |
4441 | 4441 |
4442 void RenderViewImpl::SyncSelectionIfRequired() { | 4442 void RenderViewImpl::SyncSelectionIfRequired() { |
4443 WebFrame* frame = webview()->focusedFrame(); | 4443 WebFrame* frame = webview()->focusedFrame(); |
4444 if (!frame) | 4444 if (!frame) |
4445 return; | 4445 return; |
4446 | 4446 |
4447 string16 text; | 4447 base::string16 text; |
4448 size_t offset; | 4448 size_t offset; |
4449 gfx::Range range; | 4449 gfx::Range range; |
4450 #if defined(ENABLE_PLUGINS) | 4450 #if defined(ENABLE_PLUGINS) |
4451 if (main_render_frame_->focused_pepper_plugin()) { | 4451 if (main_render_frame_->focused_pepper_plugin()) { |
4452 main_render_frame_->focused_pepper_plugin()->GetSurroundingText( | 4452 main_render_frame_->focused_pepper_plugin()->GetSurroundingText( |
4453 &text, &range); | 4453 &text, &range); |
4454 offset = 0; // Pepper API does not support offset reporting. | 4454 offset = 0; // Pepper API does not support offset reporting. |
4455 // TODO(kinaba): cut as needed. | 4455 // TODO(kinaba): cut as needed. |
4456 } else | 4456 } else |
4457 #endif | 4457 #endif |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4565 | 4565 |
4566 const WebURLRequest& request = ds->request(); | 4566 const WebURLRequest& request = ds->request(); |
4567 return request.url(); | 4567 return request.url(); |
4568 } | 4568 } |
4569 | 4569 |
4570 blink::WebPlugin* RenderViewImpl::GetWebPluginFromPluginDocument() { | 4570 blink::WebPlugin* RenderViewImpl::GetWebPluginFromPluginDocument() { |
4571 return webview()->mainFrame()->document().to<WebPluginDocument>().plugin(); | 4571 return webview()->mainFrame()->document().to<WebPluginDocument>().plugin(); |
4572 } | 4572 } |
4573 | 4573 |
4574 void RenderViewImpl::OnFind(int request_id, | 4574 void RenderViewImpl::OnFind(int request_id, |
4575 const string16& search_text, | 4575 const base::string16& search_text, |
4576 const WebFindOptions& options) { | 4576 const WebFindOptions& options) { |
4577 WebFrame* main_frame = webview()->mainFrame(); | 4577 WebFrame* main_frame = webview()->mainFrame(); |
4578 | 4578 |
4579 // Check if the plugin still exists in the document. | 4579 // Check if the plugin still exists in the document. |
4580 if (main_frame->document().isPluginDocument() && | 4580 if (main_frame->document().isPluginDocument() && |
4581 GetWebPluginFromPluginDocument()) { | 4581 GetWebPluginFromPluginDocument()) { |
4582 if (options.findNext) { | 4582 if (options.findNext) { |
4583 // Just navigate back/forward. | 4583 // Just navigate back/forward. |
4584 GetWebPluginFromPluginDocument()->selectFindResult(options.forward); | 4584 GetWebPluginFromPluginDocument()->selectFindResult(options.forward); |
4585 } else { | 4585 } else { |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4851 | 4851 |
4852 void RenderViewImpl::OnSetPageEncoding(const std::string& encoding_name) { | 4852 void RenderViewImpl::OnSetPageEncoding(const std::string& encoding_name) { |
4853 webview()->setPageEncoding(WebString::fromUTF8(encoding_name)); | 4853 webview()->setPageEncoding(WebString::fromUTF8(encoding_name)); |
4854 } | 4854 } |
4855 | 4855 |
4856 void RenderViewImpl::OnResetPageEncodingToDefault() { | 4856 void RenderViewImpl::OnResetPageEncodingToDefault() { |
4857 WebString no_encoding; | 4857 WebString no_encoding; |
4858 webview()->setPageEncoding(no_encoding); | 4858 webview()->setPageEncoding(no_encoding); |
4859 } | 4859 } |
4860 | 4860 |
4861 WebFrame* RenderViewImpl::GetChildFrame(const string16& xpath) const { | 4861 WebFrame* RenderViewImpl::GetChildFrame(const base::string16& xpath) const { |
4862 if (xpath.empty()) | 4862 if (xpath.empty()) |
4863 return webview()->mainFrame(); | 4863 return webview()->mainFrame(); |
4864 | 4864 |
4865 // xpath string can represent a frame deep down the tree (across multiple | 4865 // xpath string can represent a frame deep down the tree (across multiple |
4866 // frame DOMs). | 4866 // frame DOMs). |
4867 // Example, /html/body/table/tbody/tr/td/iframe\n/frameset/frame[0] | 4867 // Example, /html/body/table/tbody/tr/td/iframe\n/frameset/frame[0] |
4868 // should break into 2 xpaths | 4868 // should break into 2 xpaths |
4869 // /html/body/table/tbody/tr/td/iframe & /frameset/frame[0] | 4869 // /html/body/table/tbody/tr/td/iframe & /frameset/frame[0] |
4870 std::vector<string16> xpaths; | 4870 std::vector<base::string16> xpaths; |
4871 base::SplitString(xpath, '\n', &xpaths); | 4871 base::SplitString(xpath, '\n', &xpaths); |
4872 | 4872 |
4873 WebFrame* frame = webview()->mainFrame(); | 4873 WebFrame* frame = webview()->mainFrame(); |
4874 for (std::vector<string16>::const_iterator i = xpaths.begin(); | 4874 for (std::vector<base::string16>::const_iterator i = xpaths.begin(); |
4875 frame && i != xpaths.end(); ++i) { | 4875 frame && i != xpaths.end(); ++i) { |
4876 frame = frame->findChildByExpression(*i); | 4876 frame = frame->findChildByExpression(*i); |
4877 } | 4877 } |
4878 | 4878 |
4879 return frame; | 4879 return frame; |
4880 } | 4880 } |
4881 | 4881 |
4882 void RenderViewImpl::OnScriptEvalRequest(const string16& frame_xpath, | 4882 void RenderViewImpl::OnScriptEvalRequest(const base::string16& frame_xpath, |
4883 const string16& jscript, | 4883 const base::string16& jscript, |
4884 int id, | 4884 int id, |
4885 bool notify_result) { | 4885 bool notify_result) { |
4886 TRACE_EVENT_INSTANT0("test_tracing", "OnScriptEvalRequest", | 4886 TRACE_EVENT_INSTANT0("test_tracing", "OnScriptEvalRequest", |
4887 TRACE_EVENT_SCOPE_THREAD); | 4887 TRACE_EVENT_SCOPE_THREAD); |
4888 EvaluateScript(frame_xpath, jscript, id, notify_result); | 4888 EvaluateScript(frame_xpath, jscript, id, notify_result); |
4889 } | 4889 } |
4890 | 4890 |
4891 void RenderViewImpl::OnPostMessageEvent( | 4891 void RenderViewImpl::OnPostMessageEvent( |
4892 const ViewMsg_PostMessage_Params& params) { | 4892 const ViewMsg_PostMessage_Params& params) { |
4893 // TODO(nasko): Support sending to subframes. | 4893 // TODO(nasko): Support sending to subframes. |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4926 // We must pass in the target_origin to do the security check on this side, | 4926 // We must pass in the target_origin to do the security check on this side, |
4927 // since it may have changed since the original postMessage call was made. | 4927 // since it may have changed since the original postMessage call was made. |
4928 WebSecurityOrigin target_origin; | 4928 WebSecurityOrigin target_origin; |
4929 if (!params.target_origin.empty()) { | 4929 if (!params.target_origin.empty()) { |
4930 target_origin = | 4930 target_origin = |
4931 WebSecurityOrigin::createFromString(WebString(params.target_origin)); | 4931 WebSecurityOrigin::createFromString(WebString(params.target_origin)); |
4932 } | 4932 } |
4933 frame->dispatchMessageEventWithOriginCheck(target_origin, msg_event); | 4933 frame->dispatchMessageEventWithOriginCheck(target_origin, msg_event); |
4934 } | 4934 } |
4935 | 4935 |
4936 void RenderViewImpl::OnCSSInsertRequest(const string16& frame_xpath, | 4936 void RenderViewImpl::OnCSSInsertRequest(const base::string16& frame_xpath, |
4937 const std::string& css) { | 4937 const std::string& css) { |
4938 WebFrame* frame = GetChildFrame(frame_xpath); | 4938 WebFrame* frame = GetChildFrame(frame_xpath); |
4939 if (!frame) | 4939 if (!frame) |
4940 return; | 4940 return; |
4941 | 4941 |
4942 frame->document().insertUserStyleSheet( | 4942 frame->document().insertUserStyleSheet( |
4943 WebString::fromUTF8(css), | 4943 WebString::fromUTF8(css), |
4944 WebDocument::UserStyleAuthorLevel); | 4944 WebDocument::UserStyleAuthorLevel); |
4945 } | 4945 } |
4946 | 4946 |
(...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5545 #if defined(ENABLE_PLUGINS) | 5545 #if defined(ENABLE_PLUGINS) |
5546 // Inform plugins that their window's frame has changed. | 5546 // Inform plugins that their window's frame has changed. |
5547 std::set<WebPluginDelegateProxy*>::iterator plugin_it; | 5547 std::set<WebPluginDelegateProxy*>::iterator plugin_it; |
5548 for (plugin_it = plugin_delegates_.begin(); | 5548 for (plugin_it = plugin_delegates_.begin(); |
5549 plugin_it != plugin_delegates_.end(); ++plugin_it) { | 5549 plugin_it != plugin_delegates_.end(); ++plugin_it) { |
5550 (*plugin_it)->WindowFrameChanged(window_frame, view_frame); | 5550 (*plugin_it)->WindowFrameChanged(window_frame, view_frame); |
5551 } | 5551 } |
5552 #endif | 5552 #endif |
5553 } | 5553 } |
5554 | 5554 |
5555 void RenderViewImpl::OnPluginImeCompositionCompleted(const string16& text, | 5555 void RenderViewImpl::OnPluginImeCompositionCompleted(const base::string16& text, |
5556 int plugin_id) { | 5556 int plugin_id) { |
5557 // WebPluginDelegateProxy is responsible for figuring out if this event | 5557 // WebPluginDelegateProxy is responsible for figuring out if this event |
5558 // applies to it or not, so inform all the delegates. | 5558 // applies to it or not, so inform all the delegates. |
5559 std::set<WebPluginDelegateProxy*>::iterator plugin_it; | 5559 std::set<WebPluginDelegateProxy*>::iterator plugin_it; |
5560 for (plugin_it = plugin_delegates_.begin(); | 5560 for (plugin_it = plugin_delegates_.begin(); |
5561 plugin_it != plugin_delegates_.end(); ++plugin_it) { | 5561 plugin_it != plugin_delegates_.end(); ++plugin_it) { |
5562 (*plugin_it)->ImeCompositionCompleted(text, plugin_id); | 5562 (*plugin_it)->ImeCompositionCompleted(text, plugin_id); |
5563 } | 5563 } |
5564 } | 5564 } |
5565 #endif // OS_MACOSX | 5565 #endif // OS_MACOSX |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5702 } | 5702 } |
5703 } | 5703 } |
5704 main_render_frame_->OnSetFocus(enable); | 5704 main_render_frame_->OnSetFocus(enable); |
5705 #endif | 5705 #endif |
5706 // Notify all BrowserPlugins of the RenderView's focus state. | 5706 // Notify all BrowserPlugins of the RenderView's focus state. |
5707 if (browser_plugin_manager_.get()) | 5707 if (browser_plugin_manager_.get()) |
5708 browser_plugin_manager_->UpdateFocusState(); | 5708 browser_plugin_manager_->UpdateFocusState(); |
5709 } | 5709 } |
5710 | 5710 |
5711 void RenderViewImpl::OnImeSetComposition( | 5711 void RenderViewImpl::OnImeSetComposition( |
5712 const string16& text, | 5712 const base::string16& text, |
5713 const std::vector<blink::WebCompositionUnderline>& underlines, | 5713 const std::vector<blink::WebCompositionUnderline>& underlines, |
5714 int selection_start, | 5714 int selection_start, |
5715 int selection_end) { | 5715 int selection_end) { |
5716 #if defined(ENABLE_PLUGINS) | 5716 #if defined(ENABLE_PLUGINS) |
5717 if (main_render_frame_->focused_pepper_plugin()) { | 5717 if (main_render_frame_->focused_pepper_plugin()) { |
5718 main_render_frame_->OnImeSetComposition( | 5718 main_render_frame_->OnImeSetComposition( |
5719 text, underlines, selection_start, selection_end); | 5719 text, underlines, selection_start, selection_end); |
5720 return; | 5720 return; |
5721 } | 5721 } |
5722 | 5722 |
(...skipping 23 matching lines...) Expand all Loading... |
5746 } | 5746 } |
5747 #endif // OS_WIN | 5747 #endif // OS_WIN |
5748 #endif // ENABLE_PLUGINS | 5748 #endif // ENABLE_PLUGINS |
5749 RenderWidget::OnImeSetComposition(text, | 5749 RenderWidget::OnImeSetComposition(text, |
5750 underlines, | 5750 underlines, |
5751 selection_start, | 5751 selection_start, |
5752 selection_end); | 5752 selection_end); |
5753 } | 5753 } |
5754 | 5754 |
5755 void RenderViewImpl::OnImeConfirmComposition( | 5755 void RenderViewImpl::OnImeConfirmComposition( |
5756 const string16& text, | 5756 const base::string16& text, |
5757 const gfx::Range& replacement_range, | 5757 const gfx::Range& replacement_range, |
5758 bool keep_selection) { | 5758 bool keep_selection) { |
5759 #if defined(ENABLE_PLUGINS) | 5759 #if defined(ENABLE_PLUGINS) |
5760 if (main_render_frame_->focused_pepper_plugin()) { | 5760 if (main_render_frame_->focused_pepper_plugin()) { |
5761 main_render_frame_->OnImeConfirmComposition( | 5761 main_render_frame_->OnImeConfirmComposition( |
5762 text, replacement_range, keep_selection); | 5762 text, replacement_range, keep_selection); |
5763 return; | 5763 return; |
5764 } | 5764 } |
5765 #if defined(OS_WIN) | 5765 #if defined(OS_WIN) |
5766 // Same as OnImeSetComposition(), we send the text from IMEs directly to | 5766 // Same as OnImeSetComposition(), we send the text from IMEs directly to |
(...skipping 685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6452 for (size_t i = 0; i < icon_urls.size(); i++) { | 6452 for (size_t i = 0; i < icon_urls.size(); i++) { |
6453 WebURL url = icon_urls[i].iconURL(); | 6453 WebURL url = icon_urls[i].iconURL(); |
6454 if (!url.isEmpty()) | 6454 if (!url.isEmpty()) |
6455 urls.push_back(FaviconURL(url, | 6455 urls.push_back(FaviconURL(url, |
6456 ToFaviconType(icon_urls[i].iconType()))); | 6456 ToFaviconType(icon_urls[i].iconType()))); |
6457 } | 6457 } |
6458 SendUpdateFaviconURL(urls); | 6458 SendUpdateFaviconURL(urls); |
6459 } | 6459 } |
6460 | 6460 |
6461 } // namespace content | 6461 } // namespace content |
OLD | NEW |