]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/AfterFrameset.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / vendor / wikimedia / remex-html / RemexHtml / TreeBuilder / AfterFrameset.php
1 <?php
2
3 namespace RemexHtml\TreeBuilder;
4 use RemexHtml\Tokenizer\Attributes;
5
6 /**
7  * The "after frameset" insertion mode
8  */
9 class AfterFrameset extends InsertionMode {
10         public function characters( $text, $start, $length, $sourceStart, $sourceLength ) {
11                 $this->handleFramesetWhitespace( false, $text, $start, $length, $sourceStart, $sourceLength );
12         }
13
14         public function startTag( $name, Attributes $attrs, $selfClose, $sourceStart, $sourceLength ) {
15                 $builder = $this->builder;
16                 $dispatcher = $this->dispatcher;
17
18                 switch ( $name ) {
19                 case 'html':
20                         $dispatcher->inBody->startTag(
21                                 $name, $attrs, $selfClose, $sourceStart, $sourceLength );
22                         break;
23
24                 case 'noframes':
25                         $dispatcher->inHead->startTag(
26                                 $name, $attrs, $selfClose, $sourceStart, $sourceLength );
27                         break;
28
29                 default:
30                         $builder->error( "unexpected start tag after frameset, ignoring", $sourceStart );
31                         return;
32                 }
33         }
34
35         public function endTag( $name, $sourceStart, $sourceLength ) {
36                 $builder = $this->builder;
37                 $dispatcher = $this->dispatcher;
38
39                 switch ( $name ) {
40                 case 'html':
41                         $dispatcher->switchMode( Dispatcher::AFTER_AFTER_FRAMESET );
42                         break;
43
44                 default:
45                         $builder->error( "unexpected end tag after frameset, ignoring", $sourceStart );
46                 }
47         }
48
49         public function endDocument( $pos ) {
50                 $this->builder->stopParsing( $pos );
51         }
52 }