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

Side by Side Diff: Source/core/html/HTMLTextFormControlElement.cpp

Issue 195813003: Use new is*Element() helper functions further more in HTML code (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix bad assertion Created 6 years, 9 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 | Annotate | Revision Log
OLDNEW
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 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. 5 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved.
6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com)
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 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 return nullptr; 435 return nullptr;
436 436
437 if (!innerText->firstChild()) 437 if (!innerText->firstChild())
438 return Range::create(document(), innerText, 0, innerText, 0); 438 return Range::create(document(), innerText, 0, innerText, 0);
439 439
440 int offset = 0; 440 int offset = 0;
441 Node* startNode = 0; 441 Node* startNode = 0;
442 Node* endNode = 0; 442 Node* endNode = 0;
443 for (Node* node = innerText->firstChild(); node; node = NodeTraversal::next( *node, innerText)) { 443 for (Node* node = innerText->firstChild(); node; node = NodeTraversal::next( *node, innerText)) {
444 ASSERT(!node->firstChild()); 444 ASSERT(!node->firstChild());
445 ASSERT(node->isTextNode() || node->hasTagName(brTag)); 445 ASSERT(node->isTextNode() || isHTMLBRElement(*node));
446 int length = node->isTextNode() ? lastOffsetInNode(node) : 1; 446 int length = node->isTextNode() ? lastOffsetInNode(node) : 1;
447 447
448 if (offset <= start && start <= offset + length) 448 if (offset <= start && start <= offset + length)
449 setContainerAndOffsetForRange(node, start - offset, startNode, start ); 449 setContainerAndOffsetForRange(node, start - offset, startNode, start );
450 450
451 if (offset <= end && end <= offset + length) { 451 if (offset <= end && end <= offset + length) {
452 setContainerAndOffsetForRange(node, end - offset, endNode, end); 452 setContainerAndOffsetForRange(node, end - offset, endNode, end);
453 break; 453 break;
454 } 454 }
455 455
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 529
530 String HTMLTextFormControlElement::innerTextValue() const 530 String HTMLTextFormControlElement::innerTextValue() const
531 { 531 {
532 ASSERT(!hasAuthorShadowRoot()); 532 ASSERT(!hasAuthorShadowRoot());
533 HTMLElement* innerText = innerTextElement(); 533 HTMLElement* innerText = innerTextElement();
534 if (!innerText || !isTextFormControl()) 534 if (!innerText || !isTextFormControl())
535 return emptyString(); 535 return emptyString();
536 536
537 StringBuilder result; 537 StringBuilder result;
538 for (Node* node = innerText; node; node = NodeTraversal::next(*node, innerTe xt)) { 538 for (Node* node = innerText; node; node = NodeTraversal::next(*node, innerTe xt)) {
539 if (node->hasTagName(brTag)) 539 if (isHTMLBRElement(*node))
540 result.append(newlineCharacter); 540 result.append(newlineCharacter);
541 else if (node->isTextNode()) 541 else if (node->isTextNode())
542 result.append(toText(node)->data()); 542 result.append(toText(node)->data());
543 } 543 }
544 return finishText(result); 544 return finishText(result);
545 } 545 }
546 546
547 static void getNextSoftBreak(RootInlineBox*& line, Node*& breakNode, unsigned& b reakOffset) 547 static void getNextSoftBreak(RootInlineBox*& line, Node*& breakNode, unsigned& b reakOffset)
548 { 548 {
549 RootInlineBox* next; 549 RootInlineBox* next;
(...skipping 26 matching lines...) Expand all
576 Node* breakNode; 576 Node* breakNode;
577 unsigned breakOffset; 577 unsigned breakOffset;
578 RootInlineBox* line = renderer->firstRootBox(); 578 RootInlineBox* line = renderer->firstRootBox();
579 if (!line) 579 if (!line)
580 return value(); 580 return value();
581 581
582 getNextSoftBreak(line, breakNode, breakOffset); 582 getNextSoftBreak(line, breakNode, breakOffset);
583 583
584 StringBuilder result; 584 StringBuilder result;
585 for (Node* node = innerText->firstChild(); node; node = NodeTraversal::next( *node, innerText)) { 585 for (Node* node = innerText->firstChild(); node; node = NodeTraversal::next( *node, innerText)) {
586 if (node->hasTagName(brTag)) 586 if (isHTMLBRElement(*node))
587 result.append(newlineCharacter); 587 result.append(newlineCharacter);
588 else if (node->isTextNode()) { 588 else if (node->isTextNode()) {
589 String data = toText(node)->data(); 589 String data = toText(node)->data();
590 unsigned length = data.length(); 590 unsigned length = data.length();
591 unsigned position = 0; 591 unsigned position = 0;
592 while (breakNode == node && breakOffset <= length) { 592 while (breakNode == node && breakOffset <= length) {
593 if (breakOffset > position) { 593 if (breakOffset > position) {
594 result.append(data, position, breakOffset - position); 594 result.append(data, position, breakOffset - position);
595 position = breakOffset; 595 position = breakOffset;
596 result.append(newlineCharacter); 596 result.append(newlineCharacter);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 647
648 return "ltr"; 648 return "ltr";
649 } 649 }
650 650
651 HTMLElement* HTMLTextFormControlElement::innerTextElement() const 651 HTMLElement* HTMLTextFormControlElement::innerTextElement() const
652 { 652 {
653 return toHTMLElement(userAgentShadowRoot()->getElementById(ShadowElementName s::innerEditor())); 653 return toHTMLElement(userAgentShadowRoot()->getElementById(ShadowElementName s::innerEditor()));
654 } 654 }
655 655
656 } // namespace Webcore 656 } // namespace Webcore
OLDNEW
« Source/core/html/HTMLMediaElement.cpp ('K') | « Source/core/html/HTMLTableRowElement.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698