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

Side by Side Diff: Source/core/html/parser/HTMLTreeBuilder.cpp

Issue 96653004: Remove support for the obsolete <isindex> tag. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Test. 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) 2010 Google, Inc. All Rights Reserved. 2 * Copyright (C) 2010 Google, Inc. All Rights Reserved.
3 * Copyright (C) 2011 Apple Inc. All rights reserved. 3 * Copyright (C) 2011 Apple Inc. All rights reserved.
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 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 } 466 }
467 467
468 void HTMLTreeBuilder::processFakePEndTagIfPInButtonScope() 468 void HTMLTreeBuilder::processFakePEndTagIfPInButtonScope()
469 { 469 {
470 if (!m_tree.openElements()->inButtonScope(pTag.localName())) 470 if (!m_tree.openElements()->inButtonScope(pTag.localName()))
471 return; 471 return;
472 AtomicHTMLToken endP(HTMLToken::EndTag, pTag.localName()); 472 AtomicHTMLToken endP(HTMLToken::EndTag, pTag.localName());
473 processEndTag(&endP); 473 processEndTag(&endP);
474 } 474 }
475 475
476 Vector<Attribute> HTMLTreeBuilder::attributesForIsindexInput(AtomicHTMLToken* to ken)
477 {
478 Vector<Attribute> attributes = token->attributes();
479 for (int i = attributes.size() - 1; i >= 0; --i) {
480 const QualifiedName& name = attributes.at(i).name();
481 if (name.matches(nameAttr) || name.matches(actionAttr) || name.matches(p romptAttr))
482 attributes.remove(i);
483 }
484
485 attributes.append(Attribute(nameAttr, isindexTag.localName()));
486 return attributes;
487 }
488
489 void HTMLTreeBuilder::processIsindexStartTagForInBody(AtomicHTMLToken* token)
490 {
491 ASSERT(token->type() == HTMLToken::StartTag);
492 ASSERT(token->name() == isindexTag);
493
494 if (m_parser->useCounter())
495 m_parser->useCounter()->count(UseCounter::IsIndexElement);
496
497 parseError(token);
498 if (m_tree.form())
499 return;
500 notImplemented(); // Acknowledge self-closing flag
501 processFakeStartTag(formTag);
502 Attribute* actionAttribute = token->getAttributeItem(actionAttr);
503 if (actionAttribute)
504 m_tree.form()->setAttribute(actionAttr, actionAttribute->value());
505 processFakeStartTag(hrTag);
506 processFakeStartTag(labelTag);
507 Attribute* promptAttribute = token->getAttributeItem(promptAttr);
508 if (promptAttribute)
509 processFakeCharacters(promptAttribute->value());
510 else
511 processFakeCharacters(Locale::defaultLocale().queryString(blink::WebLoca lizedString::SearchableIndexIntroduction));
512 processFakeStartTag(inputTag, attributesForIsindexInput(token));
513 notImplemented(); // This second set of characters may be needed by non-engl ish locales.
514 processFakeEndTag(labelTag);
515 processFakeStartTag(hrTag);
516 processFakeEndTag(formTag);
517 }
518
519 namespace { 476 namespace {
520 477
521 bool isLi(const HTMLStackItem* item) 478 bool isLi(const HTMLStackItem* item)
522 { 479 {
523 return item->hasTagName(liTag); 480 return item->hasTagName(liTag);
524 } 481 }
525 482
526 bool isDdOrDt(const HTMLStackItem* item) 483 bool isDdOrDt(const HTMLStackItem* item)
527 { 484 {
528 return item->hasTagName(ddTag) 485 return item->hasTagName(ddTag)
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 || token->name() == trackTag) { 806 || token->name() == trackTag) {
850 m_tree.insertSelfClosingHTMLElement(token); 807 m_tree.insertSelfClosingHTMLElement(token);
851 return; 808 return;
852 } 809 }
853 if (token->name() == hrTag) { 810 if (token->name() == hrTag) {
854 processFakePEndTagIfPInButtonScope(); 811 processFakePEndTagIfPInButtonScope();
855 m_tree.insertSelfClosingHTMLElement(token); 812 m_tree.insertSelfClosingHTMLElement(token);
856 m_framesetOk = false; 813 m_framesetOk = false;
857 return; 814 return;
858 } 815 }
859 if (token->name() == isindexTag) {
860 processIsindexStartTagForInBody(token);
861 return;
862 }
863 if (token->name() == textareaTag) { 816 if (token->name() == textareaTag) {
864 m_tree.insertHTMLElement(token); 817 m_tree.insertHTMLElement(token);
865 m_shouldSkipLeadingNewline = true; 818 m_shouldSkipLeadingNewline = true;
866 if (m_parser->tokenizer()) 819 if (m_parser->tokenizer())
867 m_parser->tokenizer()->setState(HTMLTokenizer::RCDATAState); 820 m_parser->tokenizer()->setState(HTMLTokenizer::RCDATAState);
868 m_originalInsertionMode = m_insertionMode; 821 m_originalInsertionMode = m_insertionMode;
869 m_framesetOk = false; 822 m_framesetOk = false;
870 setInsertionMode(TextMode); 823 setInsertionMode(TextMode);
871 return; 824 return;
872 } 825 }
(...skipping 1970 matching lines...) Expand 10 before | Expand all | Expand 10 after
2843 ASSERT(m_isAttached); 2796 ASSERT(m_isAttached);
2844 // Warning, this may detach the parser. Do not do anything else after this. 2797 // Warning, this may detach the parser. Do not do anything else after this.
2845 m_tree.finishedParsing(); 2798 m_tree.finishedParsing();
2846 } 2799 }
2847 2800
2848 void HTMLTreeBuilder::parseError(AtomicHTMLToken*) 2801 void HTMLTreeBuilder::parseError(AtomicHTMLToken*)
2849 { 2802 {
2850 } 2803 }
2851 2804
2852 } // namespace WebCore 2805 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/html/parser/HTMLStackItem.h ('k') | Source/devtools/front_end/ElementsTreeOutline.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698