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

Side by Side Diff: third_party/WebKit/Source/web/WebLocalFrameImpl.cpp

Issue 2888203006: Move the logic to retrieve the WebPluginContainer to LocalFrame and Node. (Closed)
Patch Set: Ensure we have a valid PluginView before using it. Created 3 years, 6 months 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 unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/WebLocalFrameImpl.h ('k') | third_party/WebKit/Source/web/WebNode.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698