OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 static int g_frame_count = 0; | 239 static int g_frame_count = 0; |
240 | 240 |
241 static HeapVector<ScriptSourceCode> CreateSourcesVector( | 241 static HeapVector<ScriptSourceCode> CreateSourcesVector( |
242 const WebScriptSource* sources_in, | 242 const WebScriptSource* sources_in, |
243 unsigned num_sources) { | 243 unsigned num_sources) { |
244 HeapVector<ScriptSourceCode> sources; | 244 HeapVector<ScriptSourceCode> sources; |
245 sources.Append(sources_in, num_sources); | 245 sources.Append(sources_in, num_sources); |
246 return sources; | 246 return sources; |
247 } | 247 } |
248 | 248 |
249 WebPluginContainerBase* WebLocalFrameImpl::PluginContainerFromFrame( | |
250 LocalFrame* frame) { | |
251 if (!frame) | |
252 return 0; | |
253 if (!frame->GetDocument() || !frame->GetDocument()->IsPluginDocument()) | |
254 return 0; | |
255 PluginDocument* plugin_document = ToPluginDocument(frame->GetDocument()); | |
256 return ToWebPluginContainerBase(plugin_document->GetPluginView()); | |
257 } | |
258 | |
259 WebPluginContainerBase* WebLocalFrameImpl::CurrentPluginContainer( | |
260 LocalFrame* frame, | |
261 Node* node) { | |
262 WebPluginContainerBase* plugin_container = PluginContainerFromFrame(frame); | |
263 if (plugin_container) | |
264 return plugin_container; | |
265 | |
266 if (!node) { | |
267 DCHECK(frame->GetDocument()); | |
268 node = frame->GetDocument()->FocusedElement(); | |
269 } | |
270 return ToWebPluginContainerBase(WebNode::PluginContainerFromNode(node)); | |
271 } | |
272 | |
273 // Simple class to override some of PrintContext behavior. Some of the methods | 249 // Simple class to override some of PrintContext behavior. Some of the methods |
274 // made virtual so that they can be overridden by ChromePluginPrintContext. | 250 // made virtual so that they can be overridden by ChromePluginPrintContext. |
275 class ChromePrintContext : public PrintContext { | 251 class ChromePrintContext : public PrintContext { |
276 WTF_MAKE_NONCOPYABLE(ChromePrintContext); | 252 WTF_MAKE_NONCOPYABLE(ChromePrintContext); |
277 | 253 |
278 public: | 254 public: |
279 explicit ChromePrintContext(LocalFrame* frame) | 255 explicit ChromePrintContext(LocalFrame* frame) |
280 : PrintContext(frame), printed_page_width_(0) {} | 256 : PrintContext(frame), printed_page_width_(0) {} |
281 | 257 |
282 ~ChromePrintContext() override {} | 258 ~ChromePrintContext() override {} |
(...skipping 774 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1057 // Make sure the first letter is upper case. | 1033 // Make sure the first letter is upper case. |
1058 command.replace(0, 1, command.Substring(0, 1).UpperASCII()); | 1034 command.replace(0, 1, command.Substring(0, 1).UpperASCII()); |
1059 | 1035 |
1060 // Remove the trailing ':' if existing. | 1036 // Remove the trailing ':' if existing. |
1061 if (command[command.length() - 1] == UChar(':')) | 1037 if (command[command.length() - 1] == UChar(':')) |
1062 command = command.Substring(0, command.length() - 1); | 1038 command = command.Substring(0, command.length() - 1); |
1063 | 1039 |
1064 Node* plugin_lookup_context_node = | 1040 Node* plugin_lookup_context_node = |
1065 context_menu_node_ && name == "Copy" ? context_menu_node_ : nullptr; | 1041 context_menu_node_ && name == "Copy" ? context_menu_node_ : nullptr; |
1066 WebPluginContainerBase* plugin_container = | 1042 WebPluginContainerBase* plugin_container = |
1067 CurrentPluginContainer(GetFrame(), plugin_lookup_context_node); | 1043 GetFrame()->GetWebPluginContainerBase(plugin_lookup_context_node); |
1068 if (plugin_container && plugin_container->ExecuteEditCommand(name)) | 1044 if (plugin_container && plugin_container->ExecuteEditCommand(name)) |
1069 return true; | 1045 return true; |
1070 | 1046 |
1071 return GetFrame()->GetEditor().ExecuteCommand(command); | 1047 return GetFrame()->GetEditor().ExecuteCommand(command); |
1072 } | 1048 } |
1073 | 1049 |
1074 bool WebLocalFrameImpl::ExecuteCommand(const WebString& name, | 1050 bool WebLocalFrameImpl::ExecuteCommand(const WebString& name, |
1075 const WebString& value) { | 1051 const WebString& value) { |
1076 DCHECK(GetFrame()); | 1052 DCHECK(GetFrame()); |
1077 | 1053 |
1078 WebPluginContainerBase* plugin_container = CurrentPluginContainer(GetFrame()); | 1054 WebPluginContainerBase* plugin_container = |
| 1055 GetFrame()->GetWebPluginContainerBase(); |
1079 if (plugin_container && plugin_container->ExecuteEditCommand(name, value)) | 1056 if (plugin_container && plugin_container->ExecuteEditCommand(name, value)) |
1080 return true; | 1057 return true; |
1081 | 1058 |
1082 return GetFrame()->GetEditor().ExecuteCommand(name, value); | 1059 return GetFrame()->GetEditor().ExecuteCommand(name, value); |
1083 } | 1060 } |
1084 | 1061 |
1085 bool WebLocalFrameImpl::IsCommandEnabled(const WebString& name) const { | 1062 bool WebLocalFrameImpl::IsCommandEnabled(const WebString& name) const { |
1086 DCHECK(GetFrame()); | 1063 DCHECK(GetFrame()); |
1087 return GetFrame()->GetEditor().CreateCommand(name).IsEnabled(); | 1064 return GetFrame()->GetEditor().CreateCommand(name).IsEnabled(); |
1088 } | 1065 } |
1089 | 1066 |
1090 void WebLocalFrameImpl::EnableSpellChecking(bool enable) { | 1067 void WebLocalFrameImpl::EnableSpellChecking(bool enable) { |
1091 if (enable == IsSpellCheckingEnabled()) | 1068 if (enable == IsSpellCheckingEnabled()) |
1092 return; | 1069 return; |
1093 GetFrame()->GetSpellChecker().ToggleSpellCheckingEnabled(); | 1070 GetFrame()->GetSpellChecker().ToggleSpellCheckingEnabled(); |
1094 } | 1071 } |
1095 | 1072 |
1096 bool WebLocalFrameImpl::IsSpellCheckingEnabled() const { | 1073 bool WebLocalFrameImpl::IsSpellCheckingEnabled() const { |
1097 return GetFrame()->GetSpellChecker().IsSpellCheckingEnabled(); | 1074 return GetFrame()->GetSpellChecker().IsSpellCheckingEnabled(); |
1098 } | 1075 } |
1099 | 1076 |
1100 void WebLocalFrameImpl::ReplaceMisspelledRange(const WebString& text) { | 1077 void WebLocalFrameImpl::ReplaceMisspelledRange(const WebString& text) { |
1101 // If this caret selection has two or more markers, this function replace the | 1078 // If this caret selection has two or more markers, this function replace the |
1102 // range covered by the first marker with the specified word as Microsoft Word | 1079 // range covered by the first marker with the specified word as Microsoft Word |
1103 // does. | 1080 // does. |
1104 if (PluginContainerFromFrame(GetFrame())) | 1081 if (GetFrame()->GetWebPluginContainerBase()) |
1105 return; | 1082 return; |
1106 | 1083 |
1107 // TODO(editing-dev): The use of updateStyleAndLayoutIgnorePendingStylesheets | 1084 // TODO(editing-dev): The use of updateStyleAndLayoutIgnorePendingStylesheets |
1108 // needs to be audited. see http://crbug.com/590369 for more details. | 1085 // needs to be audited. see http://crbug.com/590369 for more details. |
1109 GetFrame()->GetDocument()->UpdateStyleAndLayoutIgnorePendingStylesheets(); | 1086 GetFrame()->GetDocument()->UpdateStyleAndLayoutIgnorePendingStylesheets(); |
1110 | 1087 |
1111 GetFrame()->GetSpellChecker().ReplaceMisspelledRange(text); | 1088 GetFrame()->GetSpellChecker().ReplaceMisspelledRange(text); |
1112 } | 1089 } |
1113 | 1090 |
1114 void WebLocalFrameImpl::RemoveSpellingMarkers() { | 1091 void WebLocalFrameImpl::RemoveSpellingMarkers() { |
1115 GetFrame()->GetSpellChecker().RemoveSpellingMarkers(); | 1092 GetFrame()->GetSpellChecker().RemoveSpellingMarkers(); |
1116 } | 1093 } |
1117 | 1094 |
1118 void WebLocalFrameImpl::RemoveSpellingMarkersUnderWords( | 1095 void WebLocalFrameImpl::RemoveSpellingMarkersUnderWords( |
1119 const WebVector<WebString>& words) { | 1096 const WebVector<WebString>& words) { |
1120 Vector<String> converted_words; | 1097 Vector<String> converted_words; |
1121 converted_words.Append(words.Data(), words.size()); | 1098 converted_words.Append(words.Data(), words.size()); |
1122 GetFrame()->RemoveSpellingMarkersUnderWords(converted_words); | 1099 GetFrame()->RemoveSpellingMarkersUnderWords(converted_words); |
1123 } | 1100 } |
1124 | 1101 |
1125 bool WebLocalFrameImpl::HasSelection() const { | 1102 bool WebLocalFrameImpl::HasSelection() const { |
| 1103 DCHECK(GetFrame()); |
1126 WebPluginContainerBase* plugin_container = | 1104 WebPluginContainerBase* plugin_container = |
1127 PluginContainerFromFrame(GetFrame()); | 1105 GetFrame()->GetWebPluginContainerBase(); |
1128 if (plugin_container) | 1106 if (plugin_container) |
1129 return plugin_container->Plugin()->HasSelection(); | 1107 return plugin_container->Plugin()->HasSelection(); |
1130 | 1108 |
1131 // frame()->selection()->isNone() never returns true. | 1109 // frame()->selection()->isNone() never returns true. |
1132 return GetFrame() | 1110 return GetFrame() |
1133 ->Selection() | 1111 ->Selection() |
1134 .ComputeVisibleSelectionInDOMTreeDeprecated() | 1112 .ComputeVisibleSelectionInDOMTreeDeprecated() |
1135 .Start() != GetFrame() | 1113 .Start() != GetFrame() |
1136 ->Selection() | 1114 ->Selection() |
1137 .ComputeVisibleSelectionInDOMTreeDeprecated() | 1115 .ComputeVisibleSelectionInDOMTreeDeprecated() |
1138 .end(); | 1116 .end(); |
1139 } | 1117 } |
1140 | 1118 |
1141 WebRange WebLocalFrameImpl::SelectionRange() const { | 1119 WebRange WebLocalFrameImpl::SelectionRange() const { |
1142 // TODO(editing-dev): The use of updateStyleAndLayoutIgnorePendingStylesheets | 1120 // TODO(editing-dev): The use of updateStyleAndLayoutIgnorePendingStylesheets |
1143 // needs to be audited. See http://crbug.com/590369 for more details. | 1121 // needs to be audited. See http://crbug.com/590369 for more details. |
1144 GetFrame()->GetDocument()->UpdateStyleAndLayoutIgnorePendingStylesheets(); | 1122 GetFrame()->GetDocument()->UpdateStyleAndLayoutIgnorePendingStylesheets(); |
1145 | 1123 |
1146 return GetFrame() | 1124 return GetFrame() |
1147 ->Selection() | 1125 ->Selection() |
1148 .ComputeVisibleSelectionInDOMTreeDeprecated() | 1126 .ComputeVisibleSelectionInDOMTreeDeprecated() |
1149 .ToNormalizedEphemeralRange(); | 1127 .ToNormalizedEphemeralRange(); |
1150 } | 1128 } |
1151 | 1129 |
1152 WebString WebLocalFrameImpl::SelectionAsText() const { | 1130 WebString WebLocalFrameImpl::SelectionAsText() const { |
| 1131 DCHECK(GetFrame()); |
1153 WebPluginContainerBase* plugin_container = | 1132 WebPluginContainerBase* plugin_container = |
1154 PluginContainerFromFrame(GetFrame()); | 1133 GetFrame()->GetWebPluginContainerBase(); |
1155 if (plugin_container) | 1134 if (plugin_container) |
1156 return plugin_container->Plugin()->SelectionAsText(); | 1135 return plugin_container->Plugin()->SelectionAsText(); |
1157 | 1136 |
1158 // TODO(editing-dev): The use of updateStyleAndLayoutIgnorePendingStylesheets | 1137 // TODO(editing-dev): The use of updateStyleAndLayoutIgnorePendingStylesheets |
1159 // needs to be audited. See http://crbug.com/590369 for more details. | 1138 // needs to be audited. See http://crbug.com/590369 for more details. |
1160 GetFrame()->GetDocument()->UpdateStyleAndLayoutIgnorePendingStylesheets(); | 1139 GetFrame()->GetDocument()->UpdateStyleAndLayoutIgnorePendingStylesheets(); |
1161 | 1140 |
1162 String text = GetFrame()->Selection().SelectedText( | 1141 String text = GetFrame()->Selection().SelectedText( |
1163 TextIteratorBehavior::EmitsObjectReplacementCharacterBehavior()); | 1142 TextIteratorBehavior::EmitsObjectReplacementCharacterBehavior()); |
1164 #if OS(WIN) | 1143 #if OS(WIN) |
1165 ReplaceNewlinesWithWindowsStyleNewlines(text); | 1144 ReplaceNewlinesWithWindowsStyleNewlines(text); |
1166 #endif | 1145 #endif |
1167 ReplaceNBSPWithSpace(text); | 1146 ReplaceNBSPWithSpace(text); |
1168 return text; | 1147 return text; |
1169 } | 1148 } |
1170 | 1149 |
1171 WebString WebLocalFrameImpl::SelectionAsMarkup() const { | 1150 WebString WebLocalFrameImpl::SelectionAsMarkup() const { |
1172 WebPluginContainerBase* plugin_container = | 1151 WebPluginContainerBase* plugin_container = |
1173 PluginContainerFromFrame(GetFrame()); | 1152 GetFrame()->GetWebPluginContainerBase(); |
1174 if (plugin_container) | 1153 if (plugin_container) |
1175 return plugin_container->Plugin()->SelectionAsMarkup(); | 1154 return plugin_container->Plugin()->SelectionAsMarkup(); |
1176 | 1155 |
1177 // TODO(editing-dev): The use of updateStyleAndLayoutIgnorePendingStylesheets | 1156 // TODO(editing-dev): The use of updateStyleAndLayoutIgnorePendingStylesheets |
1178 // needs to be audited. See http://crbug.com/590369 for more details. | 1157 // needs to be audited. See http://crbug.com/590369 for more details. |
1179 // Selection normalization and markup generation require clean layout. | 1158 // Selection normalization and markup generation require clean layout. |
1180 GetFrame()->GetDocument()->UpdateStyleAndLayoutIgnorePendingStylesheets(); | 1159 GetFrame()->GetDocument()->UpdateStyleAndLayoutIgnorePendingStylesheets(); |
1181 | 1160 |
1182 return GetFrame()->Selection().SelectedHTMLForClipboard(); | 1161 return GetFrame()->Selection().SelectedHTMLForClipboard(); |
1183 } | 1162 } |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1375 GetFrame()->Selection().SetCaretVisible(visible); | 1354 GetFrame()->Selection().SetCaretVisible(visible); |
1376 } | 1355 } |
1377 | 1356 |
1378 VisiblePosition WebLocalFrameImpl::VisiblePositionForViewportPoint( | 1357 VisiblePosition WebLocalFrameImpl::VisiblePositionForViewportPoint( |
1379 const WebPoint& point_in_viewport) { | 1358 const WebPoint& point_in_viewport) { |
1380 return VisiblePositionForContentsPoint( | 1359 return VisiblePositionForContentsPoint( |
1381 GetFrame()->View()->ViewportToContents(point_in_viewport), GetFrame()); | 1360 GetFrame()->View()->ViewportToContents(point_in_viewport), GetFrame()); |
1382 } | 1361 } |
1383 | 1362 |
1384 WebPlugin* WebLocalFrameImpl::FocusedPluginIfInputMethodSupported() { | 1363 WebPlugin* WebLocalFrameImpl::FocusedPluginIfInputMethodSupported() { |
1385 WebPluginContainerBase* container = | 1364 WebPluginContainerBase* container = GetFrame()->GetWebPluginContainerBase(); |
1386 WebLocalFrameImpl::CurrentPluginContainer(GetFrame()); | |
1387 if (container && container->SupportsInputMethod()) | 1365 if (container && container->SupportsInputMethod()) |
1388 return container->Plugin(); | 1366 return container->Plugin(); |
1389 return 0; | 1367 return 0; |
1390 } | 1368 } |
1391 | 1369 |
1392 int WebLocalFrameImpl::PrintBegin(const WebPrintParams& print_params, | 1370 int WebLocalFrameImpl::PrintBegin(const WebPrintParams& print_params, |
1393 const WebNode& constrain_to_node) { | 1371 const WebNode& constrain_to_node) { |
1394 DCHECK(!GetFrame()->GetDocument()->IsFrameSet()); | 1372 DCHECK(!GetFrame()->GetDocument()->IsFrameSet()); |
1395 WebPluginContainerBase* plugin_container = nullptr; | 1373 WebPluginContainerBase* plugin_container = nullptr; |
1396 if (constrain_to_node.IsNull()) { | 1374 if (constrain_to_node.IsNull()) { |
1397 // If this is a plugin document, check if the plugin supports its own | 1375 // If this is a plugin document, check if the plugin supports its own |
1398 // printing. If it does, we will delegate all printing to that. | 1376 // printing. If it does, we will delegate all printing to that. |
1399 plugin_container = PluginContainerFromFrame(GetFrame()); | 1377 plugin_container = GetFrame()->GetWebPluginContainerBase(); |
1400 } else { | 1378 } else { |
1401 // We only support printing plugin nodes for now. | 1379 // We only support printing plugin nodes for now. |
1402 plugin_container = | 1380 plugin_container = |
1403 ToWebPluginContainerBase(constrain_to_node.PluginContainer()); | 1381 ToWebPluginContainerBase(constrain_to_node.PluginContainer()); |
1404 } | 1382 } |
1405 | 1383 |
1406 if (plugin_container && plugin_container->SupportsPaginatedPrint()) { | 1384 if (plugin_container && plugin_container->SupportsPaginatedPrint()) { |
1407 print_context_ = new ChromePluginPrintContext(GetFrame(), plugin_container, | 1385 print_context_ = new ChromePluginPrintContext(GetFrame(), plugin_container, |
1408 print_params); | 1386 print_params); |
1409 } else { | 1387 } else { |
(...skipping 23 matching lines...) Expand all Loading... |
1433 return print_context_->SpoolSinglePage(canvas, page); | 1411 return print_context_->SpoolSinglePage(canvas, page); |
1434 } | 1412 } |
1435 | 1413 |
1436 void WebLocalFrameImpl::PrintEnd() { | 1414 void WebLocalFrameImpl::PrintEnd() { |
1437 DCHECK(print_context_); | 1415 DCHECK(print_context_); |
1438 print_context_->EndPrintMode(); | 1416 print_context_->EndPrintMode(); |
1439 print_context_.Clear(); | 1417 print_context_.Clear(); |
1440 } | 1418 } |
1441 | 1419 |
1442 bool WebLocalFrameImpl::IsPrintScalingDisabledForPlugin(const WebNode& node) { | 1420 bool WebLocalFrameImpl::IsPrintScalingDisabledForPlugin(const WebNode& node) { |
| 1421 DCHECK(GetFrame()); |
1443 WebPluginContainerBase* plugin_container = | 1422 WebPluginContainerBase* plugin_container = |
1444 node.IsNull() ? PluginContainerFromFrame(GetFrame()) | 1423 node.IsNull() ? GetFrame()->GetWebPluginContainerBase() |
1445 : ToWebPluginContainerBase(node.PluginContainer()); | 1424 : ToWebPluginContainerBase(node.PluginContainer()); |
1446 | 1425 |
1447 if (!plugin_container || !plugin_container->SupportsPaginatedPrint()) | 1426 if (!plugin_container || !plugin_container->SupportsPaginatedPrint()) |
1448 return false; | 1427 return false; |
1449 | 1428 |
1450 return plugin_container->IsPrintScalingDisabled(); | 1429 return plugin_container->IsPrintScalingDisabled(); |
1451 } | 1430 } |
1452 | 1431 |
1453 bool WebLocalFrameImpl::GetPrintPresetOptionsForPlugin( | 1432 bool WebLocalFrameImpl::GetPrintPresetOptionsForPlugin( |
1454 const WebNode& node, | 1433 const WebNode& node, |
1455 WebPrintPresetOptions* preset_options) { | 1434 WebPrintPresetOptions* preset_options) { |
1456 WebPluginContainerBase* plugin_container = | 1435 WebPluginContainerBase* plugin_container = |
1457 node.IsNull() ? PluginContainerFromFrame(GetFrame()) | 1436 node.IsNull() ? GetFrame()->GetWebPluginContainerBase() |
1458 : ToWebPluginContainerBase(node.PluginContainer()); | 1437 : ToWebPluginContainerBase(node.PluginContainer()); |
1459 | 1438 |
1460 if (!plugin_container || !plugin_container->SupportsPaginatedPrint()) | 1439 if (!plugin_container || !plugin_container->SupportsPaginatedPrint()) |
1461 return false; | 1440 return false; |
1462 | 1441 |
1463 return plugin_container->GetPrintPresetOptionsFromDocument(preset_options); | 1442 return plugin_container->GetPrintPresetOptionsFromDocument(preset_options); |
1464 } | 1443 } |
1465 | 1444 |
1466 bool WebLocalFrameImpl::HasCustomPageSizeStyle(int page_index) { | 1445 bool WebLocalFrameImpl::HasCustomPageSizeStyle(int page_index) { |
1467 return GetFrame() | 1446 return GetFrame() |
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1909 | 1888 |
1910 void WebLocalFrameImpl::DidFail(const ResourceError& error, | 1889 void WebLocalFrameImpl::DidFail(const ResourceError& error, |
1911 bool was_provisional, | 1890 bool was_provisional, |
1912 HistoryCommitType commit_type) { | 1891 HistoryCommitType commit_type) { |
1913 if (!Client()) | 1892 if (!Client()) |
1914 return; | 1893 return; |
1915 WebURLError web_error = error; | 1894 WebURLError web_error = error; |
1916 WebHistoryCommitType web_commit_type = | 1895 WebHistoryCommitType web_commit_type = |
1917 static_cast<WebHistoryCommitType>(commit_type); | 1896 static_cast<WebHistoryCommitType>(commit_type); |
1918 | 1897 |
1919 if (WebPluginContainerBase* plugin = PluginContainerFromFrame(GetFrame())) | 1898 if (WebPluginContainerBase* plugin = GetFrame()->GetWebPluginContainerBase()) |
1920 plugin->DidFailLoading(error); | 1899 plugin->DidFailLoading(error); |
1921 | 1900 |
1922 if (was_provisional) | 1901 if (was_provisional) |
1923 Client()->DidFailProvisionalLoad(web_error, web_commit_type); | 1902 Client()->DidFailProvisionalLoad(web_error, web_commit_type); |
1924 else | 1903 else |
1925 Client()->DidFailLoad(web_error, web_commit_type); | 1904 Client()->DidFailLoad(web_error, web_commit_type); |
1926 } | 1905 } |
1927 | 1906 |
1928 void WebLocalFrameImpl::DidFinish() { | 1907 void WebLocalFrameImpl::DidFinish() { |
1929 if (!Client()) | 1908 if (!Client()) |
1930 return; | 1909 return; |
1931 | 1910 |
1932 if (WebPluginContainerBase* plugin = PluginContainerFromFrame(GetFrame())) | 1911 if (WebPluginContainerBase* plugin = GetFrame()->GetWebPluginContainerBase()) |
1933 plugin->DidFinishLoading(); | 1912 plugin->DidFinishLoading(); |
1934 | 1913 |
1935 Client()->DidFinishLoad(); | 1914 Client()->DidFinishLoad(); |
1936 } | 1915 } |
1937 | 1916 |
1938 void WebLocalFrameImpl::SetCanHaveScrollbars(bool can_have_scrollbars) { | 1917 void WebLocalFrameImpl::SetCanHaveScrollbars(bool can_have_scrollbars) { |
1939 if (FrameView* view = GetFrameView()) | 1918 if (FrameView* view = GetFrameView()) |
1940 view->SetCanHaveScrollbars(can_have_scrollbars); | 1919 view->SetCanHaveScrollbars(can_have_scrollbars); |
1941 } | 1920 } |
1942 | 1921 |
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2603 TextCheckerClient& WebLocalFrameImpl::GetTextCheckerClient() const { | 2582 TextCheckerClient& WebLocalFrameImpl::GetTextCheckerClient() const { |
2604 return *text_checker_client_; | 2583 return *text_checker_client_; |
2605 } | 2584 } |
2606 | 2585 |
2607 void WebLocalFrameImpl::SetTextCheckClient( | 2586 void WebLocalFrameImpl::SetTextCheckClient( |
2608 WebTextCheckClient* text_check_client) { | 2587 WebTextCheckClient* text_check_client) { |
2609 text_check_client_ = text_check_client; | 2588 text_check_client_ = text_check_client; |
2610 } | 2589 } |
2611 | 2590 |
2612 } // namespace blink | 2591 } // namespace blink |
OLD | NEW |