| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 DEFINE_STATIC_LOCAL(EmptySpellCheckerClient, client, ()); | 101 DEFINE_STATIC_LOCAL(EmptySpellCheckerClient, client, ()); |
| 102 return client; | 102 return client; |
| 103 } | 103 } |
| 104 | 104 |
| 105 SpellCheckerClient& SpellChecker::spellCheckerClient() const { | 105 SpellCheckerClient& SpellChecker::spellCheckerClient() const { |
| 106 if (Page* page = frame().page()) | 106 if (Page* page = frame().page()) |
| 107 return page->spellCheckerClient(); | 107 return page->spellCheckerClient(); |
| 108 return emptySpellCheckerClient(); | 108 return emptySpellCheckerClient(); |
| 109 } | 109 } |
| 110 | 110 |
| 111 static TextCheckerClient& emptyTextCheckerClient() { |
| 112 DEFINE_STATIC_LOCAL(EmptyTextCheckerClient, client, ()); |
| 113 return client; |
| 114 } |
| 115 |
| 111 TextCheckerClient& SpellChecker::textChecker() const { | 116 TextCheckerClient& SpellChecker::textChecker() const { |
| 112 return spellCheckerClient().textChecker(); | 117 if (TextCheckerClient* textChecker = frame().client()->textCheckerClient()) |
| 118 return *textChecker; |
| 119 return emptyTextCheckerClient(); |
| 113 } | 120 } |
| 114 | 121 |
| 115 SpellChecker::SpellChecker(LocalFrame& frame) | 122 SpellChecker::SpellChecker(LocalFrame& frame) |
| 116 : m_frame(&frame), | 123 : m_frame(&frame), |
| 117 m_spellCheckRequester(SpellCheckRequester::create(frame)), | 124 m_spellCheckRequester(SpellCheckRequester::create(frame)), |
| 118 m_idleSpellCheckCallback(IdleSpellCheckCallback::create(frame)) {} | 125 m_idleSpellCheckCallback(IdleSpellCheckCallback::create(frame)) {} |
| 119 | 126 |
| 120 bool SpellChecker::isSpellCheckingEnabled() const { | 127 bool SpellChecker::isSpellCheckingEnabled() const { |
| 121 return spellCheckerClient().isSpellCheckingEnabled(); | 128 return spellCheckerClient().isSpellCheckingEnabled(); |
| 122 } | 129 } |
| (...skipping 1053 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1176 if (!input.isFocusedElementInDocument()) | 1183 if (!input.isFocusedElementInDocument()) |
| 1177 return false; | 1184 return false; |
| 1178 } | 1185 } |
| 1179 } | 1186 } |
| 1180 HTMLElement* element = | 1187 HTMLElement* element = |
| 1181 Traversal<HTMLElement>::firstAncestorOrSelf(*position.anchorNode()); | 1188 Traversal<HTMLElement>::firstAncestorOrSelf(*position.anchorNode()); |
| 1182 return element && element->isSpellCheckingEnabled(); | 1189 return element && element->isSpellCheckingEnabled(); |
| 1183 } | 1190 } |
| 1184 | 1191 |
| 1185 } // namespace blink | 1192 } // namespace blink |
| OLD | NEW |