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, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. | 4 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
5 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 5 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
6 * Copyright (C) 2011 Motorola Mobility. All rights reserved. | 6 * Copyright (C) 2011 Motorola Mobility. All rights reserved. |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
328 { | 328 { |
329 Node* firstChild = node->firstChild(); | 329 Node* firstChild = node->firstChild(); |
330 return firstChild && !firstChild->nextSibling(); | 330 return firstChild && !firstChild->nextSibling(); |
331 } | 331 } |
332 | 332 |
333 static inline bool hasOneTextChild(ContainerNode* node) | 333 static inline bool hasOneTextChild(ContainerNode* node) |
334 { | 334 { |
335 return hasOneChild(node) && node->firstChild()->isTextNode(); | 335 return hasOneChild(node) && node->firstChild()->isTextNode(); |
336 } | 336 } |
337 | 337 |
338 static void replaceChildrenWithFragment(HTMLElement* element, PassRefPtr<Documen
tFragment> fragment, ExceptionCode& ec) | 338 static void replaceChildrenWithFragment(HTMLElement* elementNode, PassRefPtr<Doc
umentFragment> fragment, ExceptionCode& ec) |
339 { | 339 { |
| 340 RefPtr<HTMLElement> element(elementNode); |
340 #if ENABLE(MUTATION_OBSERVERS) | 341 #if ENABLE(MUTATION_OBSERVERS) |
341 ChildListMutationScope mutation(element); | 342 ChildListMutationScope mutation(element.get()); |
342 #endif | 343 #endif |
343 | 344 |
344 if (!fragment->firstChild()) { | 345 if (!fragment->firstChild()) { |
345 element->removeChildren(); | 346 element->removeChildren(); |
346 return; | 347 return; |
347 } | 348 } |
348 | 349 |
349 if (hasOneTextChild(element) && hasOneTextChild(fragment.get())) { | 350 if (hasOneTextChild(element.get()) && hasOneTextChild(fragment.get())) { |
350 static_cast<Text*>(element->firstChild())->setData(static_cast<Text*>(fr
agment->firstChild())->data(), ec); | 351 static_cast<Text*>(element->firstChild())->setData(static_cast<Text*>(fr
agment->firstChild())->data(), ec); |
351 return; | 352 return; |
352 } | 353 } |
353 | 354 |
354 if (hasOneChild(element)) { | 355 if (hasOneChild(element.get())) { |
355 element->replaceChild(fragment, element->firstChild(), ec); | 356 element->replaceChild(fragment, element->firstChild(), ec); |
356 return; | 357 return; |
357 } | 358 } |
358 | 359 |
359 element->removeChildren(); | 360 element->removeChildren(); |
360 element->appendChild(fragment, ec); | 361 element->appendChild(fragment, ec); |
361 } | 362 } |
362 | 363 |
363 static void replaceChildrenWithText(HTMLElement* element, const String& text, Ex
ceptionCode& ec) | 364 static void replaceChildrenWithText(HTMLElement* elementNode, const String& text
, ExceptionCode& ec) |
364 { | 365 { |
| 366 RefPtr<HTMLElement> element(elementNode); |
365 #if ENABLE(MUTATION_OBSERVERS) | 367 #if ENABLE(MUTATION_OBSERVERS) |
366 ChildListMutationScope mutation(element); | 368 ChildListMutationScope mutation(element.get()); |
367 #endif | 369 #endif |
368 | 370 |
369 if (hasOneTextChild(element)) { | 371 if (hasOneTextChild(element.get())) { |
370 static_cast<Text*>(element->firstChild())->setData(text, ec); | 372 static_cast<Text*>(element->firstChild())->setData(text, ec); |
371 return; | 373 return; |
372 } | 374 } |
373 | 375 |
374 RefPtr<Text> textNode = Text::create(element->document(), text); | 376 RefPtr<Text> textNode = Text::create(element->document(), text); |
375 | 377 |
376 if (hasOneChild(element)) { | 378 if (hasOneChild(element.get())) { |
377 element->replaceChild(textNode.release(), element->firstChild(), ec); | 379 element->replaceChild(textNode.release(), element->firstChild(), ec); |
378 return; | 380 return; |
379 } | 381 } |
380 | 382 |
381 element->removeChildren(); | 383 element->removeChildren(); |
382 element->appendChild(textNode.release(), ec); | 384 element->appendChild(textNode.release(), ec); |
383 } | 385 } |
384 | 386 |
385 // We may want to move a version of this function into DocumentFragment.h/cpp | 387 // We may want to move a version of this function into DocumentFragment.h/cpp |
386 static PassRefPtr<DocumentFragment> createFragmentFromSource(const String& marku
p, Element* contextElement, ExceptionCode& ec) | 388 static PassRefPtr<DocumentFragment> createFragmentFromSource(const String& marku
p, Element* contextElement, ExceptionCode& ec) |
(...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1043 #ifndef NDEBUG | 1045 #ifndef NDEBUG |
1044 | 1046 |
1045 // For use in the debugger | 1047 // For use in the debugger |
1046 void dumpInnerHTML(WebCore::HTMLElement*); | 1048 void dumpInnerHTML(WebCore::HTMLElement*); |
1047 | 1049 |
1048 void dumpInnerHTML(WebCore::HTMLElement* element) | 1050 void dumpInnerHTML(WebCore::HTMLElement* element) |
1049 { | 1051 { |
1050 printf("%s\n", element->innerHTML().ascii().data()); | 1052 printf("%s\n", element->innerHTML().ascii().data()); |
1051 } | 1053 } |
1052 #endif | 1054 #endif |
OLD | NEW |