OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "chrome/renderer/render_view.h" | 5 #include "chrome/renderer/render_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 #include "third_party/WebKit/WebKit/chromium/public/WebDragData.h" | 80 #include "third_party/WebKit/WebKit/chromium/public/WebDragData.h" |
81 #include "third_party/WebKit/WebKit/chromium/public/WebFileChooserParams.h" | 81 #include "third_party/WebKit/WebKit/chromium/public/WebFileChooserParams.h" |
82 #include "third_party/WebKit/WebKit/chromium/public/WebFormElement.h" | 82 #include "third_party/WebKit/WebKit/chromium/public/WebFormElement.h" |
83 #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h" | 83 #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h" |
84 #include "third_party/WebKit/WebKit/chromium/public/WebHistoryItem.h" | 84 #include "third_party/WebKit/WebKit/chromium/public/WebHistoryItem.h" |
85 #include "third_party/WebKit/WebKit/chromium/public/WebImage.h" | 85 #include "third_party/WebKit/WebKit/chromium/public/WebImage.h" |
86 #include "third_party/WebKit/WebKit/chromium/public/WebInputElement.h" | 86 #include "third_party/WebKit/WebKit/chromium/public/WebInputElement.h" |
87 #include "third_party/WebKit/WebKit/chromium/public/WebNode.h" | 87 #include "third_party/WebKit/WebKit/chromium/public/WebNode.h" |
88 #include "third_party/WebKit/WebKit/chromium/public/WebNodeList.h" | 88 #include "third_party/WebKit/WebKit/chromium/public/WebNodeList.h" |
89 #include "third_party/WebKit/WebKit/chromium/public/WebPageSerializer.h" | 89 #include "third_party/WebKit/WebKit/chromium/public/WebPageSerializer.h" |
| 90 #include "third_party/WebKit/WebKit/chromium/public/WebPlugin.h" |
| 91 #include "third_party/WebKit/WebKit/chromium/public/WebPluginDocument.h" |
90 #include "third_party/WebKit/WebKit/chromium/public/WebPoint.h" | 92 #include "third_party/WebKit/WebKit/chromium/public/WebPoint.h" |
91 #include "third_party/WebKit/WebKit/chromium/public/WebRange.h" | 93 #include "third_party/WebKit/WebKit/chromium/public/WebRange.h" |
92 #include "third_party/WebKit/WebKit/chromium/public/WebRect.h" | 94 #include "third_party/WebKit/WebKit/chromium/public/WebRect.h" |
93 #include "third_party/WebKit/WebKit/chromium/public/WebScriptSource.h" | 95 #include "third_party/WebKit/WebKit/chromium/public/WebScriptSource.h" |
94 #include "third_party/WebKit/WebKit/chromium/public/WebSearchableFormData.h" | 96 #include "third_party/WebKit/WebKit/chromium/public/WebSearchableFormData.h" |
95 #include "third_party/WebKit/WebKit/chromium/public/WebSecurityOrigin.h" | 97 #include "third_party/WebKit/WebKit/chromium/public/WebSecurityOrigin.h" |
96 #include "third_party/WebKit/WebKit/chromium/public/WebSize.h" | 98 #include "third_party/WebKit/WebKit/chromium/public/WebSize.h" |
97 #include "third_party/WebKit/WebKit/chromium/public/WebStorageNamespace.h" | 99 #include "third_party/WebKit/WebKit/chromium/public/WebStorageNamespace.h" |
98 #include "third_party/WebKit/WebKit/chromium/public/WebString.h" | 100 #include "third_party/WebKit/WebKit/chromium/public/WebString.h" |
99 #include "third_party/WebKit/WebKit/chromium/public/WebURL.h" | 101 #include "third_party/WebKit/WebKit/chromium/public/WebURL.h" |
(...skipping 10 matching lines...) Expand all Loading... |
110 #include "webkit/glue/image_decoder.h" | 112 #include "webkit/glue/image_decoder.h" |
111 #include "webkit/glue/media/buffered_data_source.h" | 113 #include "webkit/glue/media/buffered_data_source.h" |
112 #include "webkit/glue/media/simple_data_source.h" | 114 #include "webkit/glue/media/simple_data_source.h" |
113 #include "webkit/glue/password_form.h" | 115 #include "webkit/glue/password_form.h" |
114 #include "webkit/glue/plugins/plugin_list.h" | 116 #include "webkit/glue/plugins/plugin_list.h" |
115 #include "webkit/glue/plugins/webplugin_delegate_impl.h" | 117 #include "webkit/glue/plugins/webplugin_delegate_impl.h" |
116 #include "webkit/glue/media/video_renderer_impl.h" | 118 #include "webkit/glue/media/video_renderer_impl.h" |
117 #include "webkit/glue/webdropdata.h" | 119 #include "webkit/glue/webdropdata.h" |
118 #include "webkit/glue/webkit_glue.h" | 120 #include "webkit/glue/webkit_glue.h" |
119 #include "webkit/glue/webmediaplayer_impl.h" | 121 #include "webkit/glue/webmediaplayer_impl.h" |
| 122 #include "webkit/glue/webplugin_delegate.h" |
120 #include "webkit/glue/webplugin_impl.h" | 123 #include "webkit/glue/webplugin_impl.h" |
121 | 124 |
122 #if defined(OS_WIN) | 125 #if defined(OS_WIN) |
123 // TODO(port): these files are currently Windows only because they concern: | 126 // TODO(port): these files are currently Windows only because they concern: |
124 // * theming | 127 // * theming |
125 #include "gfx/native_theme_win.h" | 128 #include "gfx/native_theme_win.h" |
126 #elif defined(USE_X11) | 129 #elif defined(USE_X11) |
127 #include "third_party/WebKit/WebKit/chromium/public/linux/WebRenderTheme.h" | 130 #include "third_party/WebKit/WebKit/chromium/public/linux/WebRenderTheme.h" |
128 #endif | 131 #endif |
129 | 132 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 using WebKit::WebMediaPlayer; | 164 using WebKit::WebMediaPlayer; |
162 using WebKit::WebMediaPlayerAction; | 165 using WebKit::WebMediaPlayerAction; |
163 using WebKit::WebMediaPlayerClient; | 166 using WebKit::WebMediaPlayerClient; |
164 using WebKit::WebNavigationPolicy; | 167 using WebKit::WebNavigationPolicy; |
165 using WebKit::WebNavigationType; | 168 using WebKit::WebNavigationType; |
166 using WebKit::WebNode; | 169 using WebKit::WebNode; |
167 using WebKit::WebPageSerializer; | 170 using WebKit::WebPageSerializer; |
168 using WebKit::WebPageSerializerClient; | 171 using WebKit::WebPageSerializerClient; |
169 using WebKit::WebPlugin; | 172 using WebKit::WebPlugin; |
170 using WebKit::WebPluginParams; | 173 using WebKit::WebPluginParams; |
| 174 using WebKit::WebPluginDocument; |
171 using WebKit::WebPoint; | 175 using WebKit::WebPoint; |
172 using WebKit::WebPopupMenuInfo; | 176 using WebKit::WebPopupMenuInfo; |
173 using WebKit::WebRange; | 177 using WebKit::WebRange; |
174 using WebKit::WebRect; | 178 using WebKit::WebRect; |
175 using WebKit::WebScriptSource; | 179 using WebKit::WebScriptSource; |
176 using WebKit::WebSearchableFormData; | 180 using WebKit::WebSearchableFormData; |
177 using WebKit::WebSecurityOrigin; | 181 using WebKit::WebSecurityOrigin; |
178 using WebKit::WebSettings; | 182 using WebKit::WebSettings; |
179 using WebKit::WebSharedWorker; | 183 using WebKit::WebSharedWorker; |
180 using WebKit::WebSize; | 184 using WebKit::WebSize; |
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
500 | 504 |
501 IPC_BEGIN_MESSAGE_MAP(RenderView, message) | 505 IPC_BEGIN_MESSAGE_MAP(RenderView, message) |
502 IPC_MESSAGE_HANDLER(ViewMsg_CaptureThumbnail, SendThumbnail) | 506 IPC_MESSAGE_HANDLER(ViewMsg_CaptureThumbnail, SendThumbnail) |
503 IPC_MESSAGE_HANDLER(ViewMsg_CaptureSnapshot, SendSnapshot) | 507 IPC_MESSAGE_HANDLER(ViewMsg_CaptureSnapshot, SendSnapshot) |
504 IPC_MESSAGE_HANDLER(ViewMsg_PrintPages, OnPrintPages) | 508 IPC_MESSAGE_HANDLER(ViewMsg_PrintPages, OnPrintPages) |
505 IPC_MESSAGE_HANDLER(ViewMsg_PrintingDone, OnPrintingDone) | 509 IPC_MESSAGE_HANDLER(ViewMsg_PrintingDone, OnPrintingDone) |
506 IPC_MESSAGE_HANDLER(ViewMsg_Navigate, OnNavigate) | 510 IPC_MESSAGE_HANDLER(ViewMsg_Navigate, OnNavigate) |
507 IPC_MESSAGE_HANDLER(ViewMsg_Stop, OnStop) | 511 IPC_MESSAGE_HANDLER(ViewMsg_Stop, OnStop) |
508 IPC_MESSAGE_HANDLER(ViewMsg_ReloadFrame, OnReloadFrame) | 512 IPC_MESSAGE_HANDLER(ViewMsg_ReloadFrame, OnReloadFrame) |
509 IPC_MESSAGE_HANDLER(ViewMsg_LoadAlternateHTMLText, OnLoadAlternateHTMLText) | 513 IPC_MESSAGE_HANDLER(ViewMsg_LoadAlternateHTMLText, OnLoadAlternateHTMLText) |
510 IPC_MESSAGE_HANDLER(ViewMsg_StopFinding, OnStopFinding) | |
511 IPC_MESSAGE_HANDLER(ViewMsg_Undo, OnUndo) | 514 IPC_MESSAGE_HANDLER(ViewMsg_Undo, OnUndo) |
512 IPC_MESSAGE_HANDLER(ViewMsg_Redo, OnRedo) | 515 IPC_MESSAGE_HANDLER(ViewMsg_Redo, OnRedo) |
513 IPC_MESSAGE_HANDLER(ViewMsg_Cut, OnCut) | 516 IPC_MESSAGE_HANDLER(ViewMsg_Cut, OnCut) |
514 IPC_MESSAGE_HANDLER(ViewMsg_Copy, OnCopy) | 517 IPC_MESSAGE_HANDLER(ViewMsg_Copy, OnCopy) |
515 #if defined(OS_MACOSX) | 518 #if defined(OS_MACOSX) |
516 IPC_MESSAGE_HANDLER(ViewMsg_CopyToFindPboard, OnCopyToFindPboard) | 519 IPC_MESSAGE_HANDLER(ViewMsg_CopyToFindPboard, OnCopyToFindPboard) |
517 #endif | 520 #endif |
518 IPC_MESSAGE_HANDLER(ViewMsg_Paste, OnPaste) | 521 IPC_MESSAGE_HANDLER(ViewMsg_Paste, OnPaste) |
519 IPC_MESSAGE_HANDLER(ViewMsg_Replace, OnReplace) | 522 IPC_MESSAGE_HANDLER(ViewMsg_Replace, OnReplace) |
520 IPC_MESSAGE_HANDLER(ViewMsg_ToggleSpellPanel, OnToggleSpellPanel) | 523 IPC_MESSAGE_HANDLER(ViewMsg_ToggleSpellPanel, OnToggleSpellPanel) |
521 IPC_MESSAGE_HANDLER(ViewMsg_AdvanceToNextMisspelling, | 524 IPC_MESSAGE_HANDLER(ViewMsg_AdvanceToNextMisspelling, |
522 OnAdvanceToNextMisspelling) | 525 OnAdvanceToNextMisspelling) |
523 IPC_MESSAGE_HANDLER(ViewMsg_ToggleSpellCheck, OnToggleSpellCheck) | 526 IPC_MESSAGE_HANDLER(ViewMsg_ToggleSpellCheck, OnToggleSpellCheck) |
524 IPC_MESSAGE_HANDLER(ViewMsg_Delete, OnDelete) | 527 IPC_MESSAGE_HANDLER(ViewMsg_Delete, OnDelete) |
525 IPC_MESSAGE_HANDLER(ViewMsg_SelectAll, OnSelectAll) | 528 IPC_MESSAGE_HANDLER(ViewMsg_SelectAll, OnSelectAll) |
526 IPC_MESSAGE_HANDLER(ViewMsg_CopyImageAt, OnCopyImageAt) | 529 IPC_MESSAGE_HANDLER(ViewMsg_CopyImageAt, OnCopyImageAt) |
527 IPC_MESSAGE_HANDLER(ViewMsg_ExecuteEditCommand, OnExecuteEditCommand) | 530 IPC_MESSAGE_HANDLER(ViewMsg_ExecuteEditCommand, OnExecuteEditCommand) |
528 IPC_MESSAGE_HANDLER(ViewMsg_Find, OnFind) | 531 IPC_MESSAGE_HANDLER(ViewMsg_Find, OnFind) |
| 532 IPC_MESSAGE_HANDLER(ViewMsg_StopFinding, OnStopFinding) |
| 533 IPC_MESSAGE_HANDLER(ViewMsg_FindReplyACK, OnFindReplyAck) |
529 IPC_MESSAGE_HANDLER(ViewMsg_Zoom, OnZoom) | 534 IPC_MESSAGE_HANDLER(ViewMsg_Zoom, OnZoom) |
530 IPC_MESSAGE_HANDLER(ViewMsg_SetContentSettingsForLoadingHost, | 535 IPC_MESSAGE_HANDLER(ViewMsg_SetContentSettingsForLoadingHost, |
531 OnSetContentSettingsForLoadingHost) | 536 OnSetContentSettingsForLoadingHost) |
532 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForLoadingHost, | 537 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForLoadingHost, |
533 OnSetZoomLevelForLoadingHost) | 538 OnSetZoomLevelForLoadingHost) |
534 IPC_MESSAGE_HANDLER(ViewMsg_SetPageEncoding, OnSetPageEncoding) | 539 IPC_MESSAGE_HANDLER(ViewMsg_SetPageEncoding, OnSetPageEncoding) |
535 IPC_MESSAGE_HANDLER(ViewMsg_ResetPageEncodingToDefault, | 540 IPC_MESSAGE_HANDLER(ViewMsg_ResetPageEncodingToDefault, |
536 OnResetPageEncodingToDefault) | 541 OnResetPageEncodingToDefault) |
537 IPC_MESSAGE_HANDLER(ViewMsg_SetupDevToolsClient, OnSetupDevToolsClient) | 542 IPC_MESSAGE_HANDLER(ViewMsg_SetupDevToolsClient, OnSetupDevToolsClient) |
538 IPC_MESSAGE_HANDLER(ViewMsg_DownloadFavIcon, OnDownloadFavIcon) | 543 IPC_MESSAGE_HANDLER(ViewMsg_DownloadFavIcon, OnDownloadFavIcon) |
539 IPC_MESSAGE_HANDLER(ViewMsg_ScriptEvalRequest, OnScriptEvalRequest) | 544 IPC_MESSAGE_HANDLER(ViewMsg_ScriptEvalRequest, OnScriptEvalRequest) |
540 IPC_MESSAGE_HANDLER(ViewMsg_CSSInsertRequest, OnCSSInsertRequest) | 545 IPC_MESSAGE_HANDLER(ViewMsg_CSSInsertRequest, OnCSSInsertRequest) |
541 IPC_MESSAGE_HANDLER(ViewMsg_AddMessageToConsole, OnAddMessageToConsole) | 546 IPC_MESSAGE_HANDLER(ViewMsg_AddMessageToConsole, OnAddMessageToConsole) |
542 IPC_MESSAGE_HANDLER(ViewMsg_ReservePageIDRange, OnReservePageIDRange) | 547 IPC_MESSAGE_HANDLER(ViewMsg_ReservePageIDRange, OnReservePageIDRange) |
543 IPC_MESSAGE_HANDLER(ViewMsg_FillPasswordForm, OnFillPasswordForm) | 548 IPC_MESSAGE_HANDLER(ViewMsg_FillPasswordForm, OnFillPasswordForm) |
544 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDragEnter, OnDragTargetDragEnter) | 549 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDragEnter, OnDragTargetDragEnter) |
545 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDragOver, OnDragTargetDragOver) | 550 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDragOver, OnDragTargetDragOver) |
546 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDragLeave, OnDragTargetDragLeave) | 551 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDragLeave, OnDragTargetDragLeave) |
547 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDrop, OnDragTargetDrop) | 552 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDrop, OnDragTargetDrop) |
548 IPC_MESSAGE_HANDLER(ViewMsg_AllowBindings, OnAllowBindings) | 553 IPC_MESSAGE_HANDLER(ViewMsg_AllowBindings, OnAllowBindings) |
549 IPC_MESSAGE_HANDLER(ViewMsg_SetDOMUIProperty, OnSetDOMUIProperty) | 554 IPC_MESSAGE_HANDLER(ViewMsg_SetDOMUIProperty, OnSetDOMUIProperty) |
550 IPC_MESSAGE_HANDLER(ViewMsg_DragSourceEndedOrMoved, | 555 IPC_MESSAGE_HANDLER(ViewMsg_DragSourceEndedOrMoved, |
551 OnDragSourceEndedOrMoved) | 556 OnDragSourceEndedOrMoved) |
552 IPC_MESSAGE_HANDLER(ViewMsg_DragSourceSystemDragEnded, | 557 IPC_MESSAGE_HANDLER(ViewMsg_DragSourceSystemDragEnded, |
553 OnDragSourceSystemDragEnded) | 558 OnDragSourceSystemDragEnded) |
554 IPC_MESSAGE_HANDLER(ViewMsg_SetInitialFocus, OnSetInitialFocus) | 559 IPC_MESSAGE_HANDLER(ViewMsg_SetInitialFocus, OnSetInitialFocus) |
555 IPC_MESSAGE_HANDLER(ViewMsg_FindReplyACK, OnFindReplyAck) | |
556 IPC_MESSAGE_HANDLER(ViewMsg_UpdateTargetURL_ACK, OnUpdateTargetURLAck) | 560 IPC_MESSAGE_HANDLER(ViewMsg_UpdateTargetURL_ACK, OnUpdateTargetURLAck) |
557 IPC_MESSAGE_HANDLER(ViewMsg_UpdateWebPreferences, OnUpdateWebPreferences) | 561 IPC_MESSAGE_HANDLER(ViewMsg_UpdateWebPreferences, OnUpdateWebPreferences) |
558 IPC_MESSAGE_HANDLER(ViewMsg_SetAltErrorPageURL, OnSetAltErrorPageURL) | 562 IPC_MESSAGE_HANDLER(ViewMsg_SetAltErrorPageURL, OnSetAltErrorPageURL) |
559 IPC_MESSAGE_HANDLER(ViewMsg_InstallMissingPlugin, OnInstallMissingPlugin) | 563 IPC_MESSAGE_HANDLER(ViewMsg_InstallMissingPlugin, OnInstallMissingPlugin) |
560 IPC_MESSAGE_HANDLER(ViewMsg_RunFileChooserResponse, OnFileChooserResponse) | 564 IPC_MESSAGE_HANDLER(ViewMsg_RunFileChooserResponse, OnFileChooserResponse) |
561 IPC_MESSAGE_HANDLER(ViewMsg_EnableViewSourceMode, OnEnableViewSourceMode) | 565 IPC_MESSAGE_HANDLER(ViewMsg_EnableViewSourceMode, OnEnableViewSourceMode) |
562 IPC_MESSAGE_HANDLER(ViewMsg_GetAllSavableResourceLinksForCurrentPage, | 566 IPC_MESSAGE_HANDLER(ViewMsg_GetAllSavableResourceLinksForCurrentPage, |
563 OnGetAllSavableResourceLinksForCurrentPage) | 567 OnGetAllSavableResourceLinksForCurrentPage) |
564 IPC_MESSAGE_HANDLER( | 568 IPC_MESSAGE_HANDLER( |
565 ViewMsg_GetSerializedHtmlDataForCurrentPageWithLocalLinks, | 569 ViewMsg_GetSerializedHtmlDataForCurrentPageWithLocalLinks, |
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
985 | 989 |
986 webview()->focusedFrame()->executeCommand( | 990 webview()->focusedFrame()->executeCommand( |
987 WebString::fromUTF8(name), WebString::fromUTF8(value)); | 991 WebString::fromUTF8(name), WebString::fromUTF8(value)); |
988 } | 992 } |
989 | 993 |
990 void RenderView::OnSetupDevToolsClient() { | 994 void RenderView::OnSetupDevToolsClient() { |
991 DCHECK(!devtools_client_.get()); | 995 DCHECK(!devtools_client_.get()); |
992 devtools_client_.reset(new DevToolsClient(this)); | 996 devtools_client_.reset(new DevToolsClient(this)); |
993 } | 997 } |
994 | 998 |
995 void RenderView::OnStopFinding(const ViewMsg_StopFinding_Params& params) { | |
996 WebView* view = webview(); | |
997 if (!view) | |
998 return; | |
999 | |
1000 bool clear_selection = | |
1001 params.action == ViewMsg_StopFinding_Params::kClearSelection; | |
1002 if (clear_selection) | |
1003 view->focusedFrame()->executeCommand(WebString::fromUTF8("Unselect")); | |
1004 | |
1005 WebFrame* frame = view->mainFrame(); | |
1006 while (frame) { | |
1007 frame->stopFinding(clear_selection); | |
1008 frame = frame->traverseNext(false); | |
1009 } | |
1010 | |
1011 if (params.action == ViewMsg_StopFinding_Params::kActivateSelection) { | |
1012 WebFrame* focused_frame = view->focusedFrame(); | |
1013 if (focused_frame) { | |
1014 WebDocument doc = focused_frame->document(); | |
1015 if (!doc.isNull()) { | |
1016 WebNode node = doc.focusedNode(); | |
1017 if (!node.isNull()) | |
1018 node.simulateClick(); | |
1019 } | |
1020 } | |
1021 } | |
1022 } | |
1023 | |
1024 void RenderView::OnFindReplyAck() { | |
1025 // Check if there is any queued up request waiting to be sent. | |
1026 if (queued_find_reply_message_.get()) { | |
1027 // Send the search result over to the browser process. | |
1028 Send(queued_find_reply_message_.get()); | |
1029 queued_find_reply_message_.release(); | |
1030 } | |
1031 } | |
1032 | |
1033 void RenderView::OnUpdateTargetURLAck() { | 999 void RenderView::OnUpdateTargetURLAck() { |
1034 // Check if there is a targeturl waiting to be sent. | 1000 // Check if there is a targeturl waiting to be sent. |
1035 if (target_url_status_ == TARGET_PENDING) { | 1001 if (target_url_status_ == TARGET_PENDING) { |
1036 Send(new ViewHostMsg_UpdateTargetURL(routing_id_, page_id_, | 1002 Send(new ViewHostMsg_UpdateTargetURL(routing_id_, page_id_, |
1037 pending_target_url_)); | 1003 pending_target_url_)); |
1038 } | 1004 } |
1039 | 1005 |
1040 target_url_status_ = TARGET_NONE; | 1006 target_url_status_ = TARGET_NONE; |
1041 } | 1007 } |
1042 | 1008 |
(...skipping 1936 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2979 const WebRect& selection_rect) { | 2945 const WebRect& selection_rect) { |
2980 // Send the search result over to the browser process. | 2946 // Send the search result over to the browser process. |
2981 Send(new ViewHostMsg_Find_Reply(routing_id_, | 2947 Send(new ViewHostMsg_Find_Reply(routing_id_, |
2982 request_id, | 2948 request_id, |
2983 -1, | 2949 -1, |
2984 selection_rect, | 2950 selection_rect, |
2985 active_match_ordinal, | 2951 active_match_ordinal, |
2986 false)); | 2952 false)); |
2987 } | 2953 } |
2988 | 2954 |
| 2955 void RenderView::ReportNoFindInPageResults(int request_id) { |
| 2956 Send(new ViewHostMsg_Find_Reply(routing_id_, |
| 2957 request_id, |
| 2958 0, |
| 2959 gfx::Rect(), |
| 2960 0, |
| 2961 true)); |
| 2962 } |
| 2963 |
2989 // webkit_glue::WebPluginPageDelegate ----------------------------------------- | 2964 // webkit_glue::WebPluginPageDelegate ----------------------------------------- |
2990 | 2965 |
2991 webkit_glue::WebPluginDelegate* RenderView::CreatePluginDelegate( | 2966 webkit_glue::WebPluginDelegate* RenderView::CreatePluginDelegate( |
2992 const GURL& url, | 2967 const GURL& url, |
2993 const std::string& mime_type, | 2968 const std::string& mime_type, |
2994 std::string* actual_mime_type) { | 2969 std::string* actual_mime_type) { |
2995 if (!PluginChannelHost::IsListening()) | 2970 if (!PluginChannelHost::IsListening()) |
2996 return NULL; | 2971 return NULL; |
2997 | 2972 |
2998 GURL policy_url; | 2973 GURL policy_url; |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3245 NOTREACHED() << "unknown ErrorPageType"; | 3220 NOTREACHED() << "unknown ErrorPageType"; |
3246 } | 3221 } |
3247 | 3222 |
3248 // OK, build the final url to return. | 3223 // OK, build the final url to return. |
3249 GURL::Replacements link_doctor_params; | 3224 GURL::Replacements link_doctor_params; |
3250 link_doctor_params.SetQueryStr(params); | 3225 link_doctor_params.SetQueryStr(params); |
3251 GURL url = alternate_error_page_url_.ReplaceComponents(link_doctor_params); | 3226 GURL url = alternate_error_page_url_.ReplaceComponents(link_doctor_params); |
3252 return url; | 3227 return url; |
3253 } | 3228 } |
3254 | 3229 |
| 3230 webkit_glue::WebPluginDelegate* RenderView::GetDelegateForPluginDocument() { |
| 3231 WebPlugin* plugin = webview()->mainFrame()->document(). |
| 3232 toElement<WebPluginDocument>().plugin(); |
| 3233 return static_cast<webkit_glue::WebPluginImpl*>(plugin)->delegate(); |
| 3234 } |
| 3235 |
3255 void RenderView::OnFind(int request_id, const string16& search_text, | 3236 void RenderView::OnFind(int request_id, const string16& search_text, |
3256 const WebFindOptions& options) { | 3237 const WebFindOptions& options) { |
3257 WebFrame* main_frame = webview()->mainFrame(); | 3238 WebFrame* main_frame = webview()->mainFrame(); |
| 3239 |
| 3240 if (main_frame->document().isPluginDocument()) { |
| 3241 webkit_glue::WebPluginDelegate* delegate = GetDelegateForPluginDocument(); |
| 3242 if (options.findNext) { |
| 3243 // Just navigate back/forward. |
| 3244 delegate->SelectFindResult(options.forward); |
| 3245 } else { |
| 3246 if (delegate->SupportsFind()) { |
| 3247 delegate->StartFind(UTF16ToUTF8(search_text), |
| 3248 options.matchCase, |
| 3249 request_id); |
| 3250 } else { |
| 3251 ReportNoFindInPageResults(request_id); |
| 3252 } |
| 3253 } |
| 3254 return; |
| 3255 } |
| 3256 |
3258 WebFrame* frame_after_main = main_frame->traverseNext(true); | 3257 WebFrame* frame_after_main = main_frame->traverseNext(true); |
3259 WebFrame* focused_frame = webview()->focusedFrame(); | 3258 WebFrame* focused_frame = webview()->focusedFrame(); |
3260 WebFrame* search_frame = focused_frame; // start searching focused frame. | 3259 WebFrame* search_frame = focused_frame; // start searching focused frame. |
3261 | 3260 |
3262 bool multi_frame = (frame_after_main != main_frame); | 3261 bool multi_frame = (frame_after_main != main_frame); |
3263 | 3262 |
3264 // If we have multiple frames, we don't want to wrap the search within the | 3263 // If we have multiple frames, we don't want to wrap the search within the |
3265 // frame, so we check here if we only have main_frame in the chain. | 3264 // frame, so we check here if we only have main_frame in the chain. |
3266 bool wrap_within_frame = !multi_frame; | 3265 bool wrap_within_frame = !multi_frame; |
3267 | 3266 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3350 true); // reset the tickmarks | 3349 true); // reset the tickmarks |
3351 } | 3350 } |
3352 | 3351 |
3353 // Iterate to the next frame. The frame will not necessarily scope, for | 3352 // Iterate to the next frame. The frame will not necessarily scope, for |
3354 // example if it is not visible. | 3353 // example if it is not visible. |
3355 search_frame = search_frame->traverseNext(true); | 3354 search_frame = search_frame->traverseNext(true); |
3356 } while (search_frame != main_frame); | 3355 } while (search_frame != main_frame); |
3357 } | 3356 } |
3358 } | 3357 } |
3359 | 3358 |
| 3359 void RenderView::OnStopFinding(const ViewMsg_StopFinding_Params& params) { |
| 3360 WebView* view = webview(); |
| 3361 if (!view) |
| 3362 return; |
| 3363 |
| 3364 WebDocument doc = view->mainFrame()->document(); |
| 3365 if (doc.isPluginDocument()) { |
| 3366 GetDelegateForPluginDocument()->StopFind(); |
| 3367 return; |
| 3368 } |
| 3369 |
| 3370 bool clear_selection = |
| 3371 params.action == ViewMsg_StopFinding_Params::kClearSelection; |
| 3372 if (clear_selection) |
| 3373 view->focusedFrame()->executeCommand(WebString::fromUTF8("Unselect")); |
| 3374 |
| 3375 WebFrame* frame = view->mainFrame(); |
| 3376 while (frame) { |
| 3377 frame->stopFinding(clear_selection); |
| 3378 frame = frame->traverseNext(false); |
| 3379 } |
| 3380 |
| 3381 if (params.action == ViewMsg_StopFinding_Params::kActivateSelection) { |
| 3382 WebFrame* focused_frame = view->focusedFrame(); |
| 3383 if (focused_frame) { |
| 3384 WebDocument doc = focused_frame->document(); |
| 3385 if (!doc.isNull()) { |
| 3386 WebNode node = doc.focusedNode(); |
| 3387 if (!node.isNull()) |
| 3388 node.simulateClick(); |
| 3389 } |
| 3390 } |
| 3391 } |
| 3392 } |
| 3393 |
| 3394 void RenderView::OnFindReplyAck() { |
| 3395 // Check if there is any queued up request waiting to be sent. |
| 3396 if (queued_find_reply_message_.get()) { |
| 3397 // Send the search result over to the browser process. |
| 3398 Send(queued_find_reply_message_.get()); |
| 3399 queued_find_reply_message_.release(); |
| 3400 } |
| 3401 } |
| 3402 |
3360 // static | 3403 // static |
3361 std::string RenderView::DetermineTextLanguage(const std::wstring& text) { | 3404 std::string RenderView::DetermineTextLanguage(const std::wstring& text) { |
3362 // Text with less than 100 bytes will probably not provide good results. | 3405 // Text with less than 100 bytes will probably not provide good results. |
3363 // Report it as unknown language. | 3406 // Report it as unknown language. |
3364 if (text.length() < 100) | 3407 if (text.length() < 100) |
3365 return kUnknownLanguageCode; | 3408 return kUnknownLanguageCode; |
3366 | 3409 |
3367 std::string language = kUnknownLanguageCode; | 3410 std::string language = kUnknownLanguageCode; |
3368 int num_languages = 0; | 3411 int num_languages = 0; |
3369 bool is_reliable = false; | 3412 bool is_reliable = false; |
(...skipping 1372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4742 gfx::PluginWindowHandle window) { | 4785 gfx::PluginWindowHandle window) { |
4743 Send(new ViewHostMsg_AcceleratedSurfaceBuffersSwapped(routing_id(), window)); | 4786 Send(new ViewHostMsg_AcceleratedSurfaceBuffersSwapped(routing_id(), window)); |
4744 } | 4787 } |
4745 #endif | 4788 #endif |
4746 | 4789 |
4747 WebKit::WebGeolocationServiceInterface* RenderView::getGeolocationService() { | 4790 WebKit::WebGeolocationServiceInterface* RenderView::getGeolocationService() { |
4748 if (!geolocation_dispatcher_.get()) | 4791 if (!geolocation_dispatcher_.get()) |
4749 geolocation_dispatcher_.reset(new GeolocationDispatcher(this)); | 4792 geolocation_dispatcher_.reset(new GeolocationDispatcher(this)); |
4750 return geolocation_dispatcher_.get(); | 4793 return geolocation_dispatcher_.get(); |
4751 } | 4794 } |
OLD | NEW |