Skip to content

Commit 0946b5a

Browse files
author
Anders Carlsson
committed
Remove threaded parser code from the preload scanners
https://bugs.webkit.org/show_bug.cgi?id=127222 Reviewed by Andreas Kling. * html/parser/CSSPreloadScanner.cpp: (WebCore::CSSPreloadScanner::CSSPreloadScanner): Use nullptr. (WebCore::CSSPreloadScanner::scan): Move scanCommon here and simplify the code. * html/parser/CSSPreloadScanner.h: Remove scanCommon. * html/parser/HTMLPreloadScanner.cpp: (WebCore::TokenPreloadScanner::tagIdFor): TagId is a strong enum now, update enum values. (WebCore::TokenPreloadScanner::initiatorFor): Ditto. (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes): Ditto. (WebCore::TokenPreloadScanner::StartTagScanner::match): Indent this. (WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): TagId is a strong enum now, update enum values. (WebCore::TokenPreloadScanner::StartTagScanner::charset): Ditto. (WebCore::TokenPreloadScanner::StartTagScanner::resourceType): Ditto. (WebCore::TokenPreloadScanner::StartTagScanner::shouldPreload): Ditto. (WebCore::TokenPreloadScanner::scan): Merge scan and scanCommon. * html/parser/HTMLPreloadScanner.h: Canonical link: https://commits.webkit.org/145216@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162257 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent a7e6881 commit 0946b5a

5 files changed

Lines changed: 109 additions & 141 deletions

File tree

Source/WebCore/ChangeLog

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,50 @@
1+
2014-01-18 Anders Carlsson <andersca@apple.com>
2+
3+
Remove threaded parser code from the preload scanners
4+
https://bugs.webkit.org/show_bug.cgi?id=127222
5+
6+
Reviewed by Andreas Kling.
7+
8+
* html/parser/CSSPreloadScanner.cpp:
9+
(WebCore::CSSPreloadScanner::CSSPreloadScanner):
10+
Use nullptr.
11+
12+
(WebCore::CSSPreloadScanner::scan):
13+
Move scanCommon here and simplify the code.
14+
15+
* html/parser/CSSPreloadScanner.h:
16+
Remove scanCommon.
17+
18+
* html/parser/HTMLPreloadScanner.cpp:
19+
(WebCore::TokenPreloadScanner::tagIdFor):
20+
TagId is a strong enum now, update enum values.
21+
22+
(WebCore::TokenPreloadScanner::initiatorFor):
23+
Ditto.
24+
25+
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
26+
Ditto.
27+
28+
(WebCore::TokenPreloadScanner::StartTagScanner::match):
29+
Indent this.
30+
31+
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
32+
TagId is a strong enum now, update enum values.
33+
34+
(WebCore::TokenPreloadScanner::StartTagScanner::charset):
35+
Ditto.
36+
37+
(WebCore::TokenPreloadScanner::StartTagScanner::resourceType):
38+
Ditto.
39+
40+
(WebCore::TokenPreloadScanner::StartTagScanner::shouldPreload):
41+
Ditto.
42+
43+
(WebCore::TokenPreloadScanner::scan):
44+
Merge scan and scanCommon.
45+
46+
* html/parser/HTMLPreloadScanner.h:
47+
148
2014-01-18 Lauro Neto <lauro.neto@openbossa.org>
249

350
Remove Nix files from WebCore

Source/WebCore/html/parser/CSSPreloadScanner.cpp

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2008, 2010, 2013 Apple Inc. All Rights Reserved.
2+
* Copyright (C) 2008, 2010, 2013, 2014 Apple Inc. All Rights Reserved.
33
* Copyright (C) 2009 Torch Mobile, Inc. http://www.torchmobile.com/
44
* Copyright (C) 2010 Google Inc. All Rights Reserved.
55
*
@@ -29,12 +29,13 @@
2929
#include "CSSPreloadScanner.h"
3030

3131
#include "HTMLParserIdioms.h"
32+
#include <wtf/TemporaryChange.h>
3233

3334
namespace WebCore {
3435

3536
CSSPreloadScanner::CSSPreloadScanner()
3637
: m_state(Initial)
37-
, m_requests(0)
38+
, m_requests(nullptr)
3839
{
3940
}
4041

@@ -49,33 +50,18 @@ void CSSPreloadScanner::reset()
4950
m_ruleValue.clear();
5051
}
5152

52-
template<typename Char>
53-
void CSSPreloadScanner::scanCommon(const Char* begin, const Char* end, PreloadRequestStream& requests)
54-
{
55-
m_requests = &requests;
56-
for (const Char* it = begin; it != end && m_state != DoneParsingImportRules; ++it)
57-
tokenize(*it);
58-
m_requests = 0;
59-
}
60-
6153
void CSSPreloadScanner::scan(const HTMLToken::DataVector& data, PreloadRequestStream& requests)
6254
{
63-
scanCommon(data.data(), data.data() + data.size(), requests);
64-
}
55+
ASSERT(!m_requests);
56+
TemporaryChange<PreloadRequestStream*> change(m_requests, &requests);
6557

66-
#if ENABLE(THREADED_HTML_PARSER)
67-
void CSSPreloadScanner::scan(const HTMLIdentifier& identifier, PreloadRequestStream& requests)
68-
{
69-
const StringImpl* data = identifier.asStringImpl();
70-
if (data->is8Bit()) {
71-
const LChar* begin = data->characters8();
72-
scanCommon(begin, begin + data->length(), requests);
73-
return;
58+
for (UChar c : data) {
59+
tokenize(c);
60+
61+
if (m_state == DoneParsingImportRules)
62+
break;
7463
}
75-
const UChar* begin = data->characters16();
76-
scanCommon(begin, begin + data->length(), requests);
7764
}
78-
#endif
7965

8066
inline void CSSPreloadScanner::tokenize(UChar c)
8167
{

Source/WebCore/html/parser/CSSPreloadScanner.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@
3333

3434
namespace WebCore {
3535

36-
class HTMLIdentifier;
37-
3836
class CSSPreloadScanner {
3937
WTF_MAKE_NONCOPYABLE(CSSPreloadScanner);
4038
public:
@@ -44,7 +42,6 @@ class CSSPreloadScanner {
4442
void reset();
4543

4644
void scan(const HTMLToken::DataVector&, PreloadRequestStream&);
47-
void scan(const HTMLIdentifier&, PreloadRequestStream&);
4845

4946
private:
5047
enum State {
@@ -60,9 +57,6 @@ class CSSPreloadScanner {
6057
DoneParsingImportRules,
6158
};
6259

63-
template<typename Char>
64-
void scanCommon(const Char* begin, const Char* end, PreloadRequestStream&);
65-
6660
inline void tokenize(UChar);
6761
void emitRule();
6862

0 commit comments

Comments
 (0)