OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * Copyright (C) 2004-2008, 2013, 2014 Apple Inc. All rights reserved. | 4 * Copyright (C) 2004-2008, 2013, 2014 Apple Inc. All rights reserved. |
5 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. | 5 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. |
6 * (http://www.torchmobile.com/) | 6 * (http://www.torchmobile.com/) |
7 * Copyright (C) 2011 Motorola Mobility. All rights reserved. | 7 * Copyright (C) 2011 Motorola Mobility. All rights reserved. |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
(...skipping 28 matching lines...) Expand all Loading... | |
39 #include "core/dom/ElementTraversal.h" | 39 #include "core/dom/ElementTraversal.h" |
40 #include "core/dom/ExceptionCode.h" | 40 #include "core/dom/ExceptionCode.h" |
41 #include "core/dom/NodeTraversal.h" | 41 #include "core/dom/NodeTraversal.h" |
42 #include "core/dom/StyleChangeReason.h" | 42 #include "core/dom/StyleChangeReason.h" |
43 #include "core/dom/Text.h" | 43 #include "core/dom/Text.h" |
44 #include "core/dom/shadow/ElementShadow.h" | 44 #include "core/dom/shadow/ElementShadow.h" |
45 #include "core/dom/shadow/FlatTreeTraversal.h" | 45 #include "core/dom/shadow/FlatTreeTraversal.h" |
46 #include "core/dom/shadow/ShadowRoot.h" | 46 #include "core/dom/shadow/ShadowRoot.h" |
47 #include "core/editing/EditingUtilities.h" | 47 #include "core/editing/EditingUtilities.h" |
48 #include "core/editing/serializers/Serialization.h" | 48 #include "core/editing/serializers/Serialization.h" |
49 #include "core/editing/spellcheck/SpellChecker.h" | |
49 #include "core/events/EventListener.h" | 50 #include "core/events/EventListener.h" |
50 #include "core/events/KeyboardEvent.h" | 51 #include "core/events/KeyboardEvent.h" |
51 #include "core/frame/Settings.h" | 52 #include "core/frame/Settings.h" |
52 #include "core/frame/UseCounter.h" | 53 #include "core/frame/UseCounter.h" |
53 #include "core/html/HTMLBRElement.h" | 54 #include "core/html/HTMLBRElement.h" |
54 #include "core/html/HTMLDimension.h" | 55 #include "core/html/HTMLDimension.h" |
55 #include "core/html/HTMLFormElement.h" | 56 #include "core/html/HTMLFormElement.h" |
56 #include "core/html/HTMLInputElement.h" | 57 #include "core/html/HTMLInputElement.h" |
57 #include "core/html/HTMLMenuElement.h" | 58 #include "core/html/HTMLMenuElement.h" |
58 #include "core/html/HTMLTemplateElement.h" | 59 #include "core/html/HTMLTemplateElement.h" |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
429 void HTMLElement::attributeChanged(const AttributeModificationParams& params) { | 430 void HTMLElement::attributeChanged(const AttributeModificationParams& params) { |
430 Element::attributeChanged(params); | 431 Element::attributeChanged(params); |
431 if (params.reason != AttributeModificationReason::kDirectly) | 432 if (params.reason != AttributeModificationReason::kDirectly) |
432 return; | 433 return; |
433 // adjustedFocusedElementInTreeScope() is not trivial. We should check | 434 // adjustedFocusedElementInTreeScope() is not trivial. We should check |
434 // attribute names, then call adjustedFocusedElementInTreeScope(). | 435 // attribute names, then call adjustedFocusedElementInTreeScope(). |
435 if (params.name == hiddenAttr && !params.newValue.isNull()) { | 436 if (params.name == hiddenAttr && !params.newValue.isNull()) { |
436 if (adjustedFocusedElementInTreeScope() == this) | 437 if (adjustedFocusedElementInTreeScope() == this) |
437 blur(); | 438 blur(); |
438 } else if (params.name == contenteditableAttr) { | 439 } else if (params.name == contenteditableAttr) { |
440 if (!isEditable(*this)) | |
Xiaocheng
2017/01/26 05:12:33
Please do not use |isEditable| inside Blink. Inste
| |
441 document().frame()->spellChecker().removeSpellingAndGrammarMarkers(*this); | |
439 if (adjustedFocusedElementInTreeScope() != this) | 442 if (adjustedFocusedElementInTreeScope() != this) |
440 return; | 443 return; |
441 // The attribute change may cause supportsFocus() to return false | 444 // The attribute change may cause supportsFocus() to return false |
442 // for the element which had focus. | 445 // for the element which had focus. |
443 // | 446 // |
444 // TODO(tkent): We should avoid updating style. We'd like to check only | 447 // TODO(tkent): We should avoid updating style. We'd like to check only |
445 // DOM-level focusability here. | 448 // DOM-level focusability here. |
446 document().updateStyleAndLayoutTreeForNode(this); | 449 document().updateStyleAndLayoutTreeForNode(this); |
447 if (!supportsFocus()) | 450 if (!supportsFocus()) |
448 blur(); | 451 blur(); |
(...skipping 766 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1215 | 1218 |
1216 #ifndef NDEBUG | 1219 #ifndef NDEBUG |
1217 | 1220 |
1218 // For use in the debugger | 1221 // For use in the debugger |
1219 void dumpInnerHTML(blink::HTMLElement*); | 1222 void dumpInnerHTML(blink::HTMLElement*); |
1220 | 1223 |
1221 void dumpInnerHTML(blink::HTMLElement* element) { | 1224 void dumpInnerHTML(blink::HTMLElement* element) { |
1222 printf("%s\n", element->innerHTML().ascii().data()); | 1225 printf("%s\n", element->innerHTML().ascii().data()); |
1223 } | 1226 } |
1224 #endif | 1227 #endif |
OLD | NEW |