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

Side by Side Diff: sky/engine/core/html/parser/HTMLSrcsetParser.h

Issue 1215103007: Remove remaining HTML elements (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 5 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
OLDNEW
(Empty)
1 /*
2 * Copyright (C) 2013 Apple Inc. All rights reserved.
3 * Copyright (C) 2013 Google Inc. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met:
8 *
9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * * Redistributions in binary form must reproduce the above
12 * copyright notice, this list of conditions and the following disclaimer
13 * in the documentation and/or other materials provided with the
14 * distribution.
15 * * Neither the name of Google Inc. nor the names of its
16 * contributors may be used to endorse or promote products derived from
17 * this software without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 */
31
32 #ifndef SKY_ENGINE_CORE_HTML_PARSER_HTMLSRCSETPARSER_H_
33 #define SKY_ENGINE_CORE_HTML_PARSER_HTMLSRCSETPARSER_H_
34
35 #include "sky/engine/wtf/text/WTFString.h"
36
37 namespace blink {
38
39 enum { UninitializedDescriptor = -1 };
40
41 class DescriptorParsingResult {
42 public:
43 DescriptorParsingResult()
44 : m_density(UninitializedDescriptor)
45 , m_resourceWidth(UninitializedDescriptor)
46 , m_resourceHeight(UninitializedDescriptor)
47 {
48 }
49
50 bool hasDensity() const { return m_density >= 0; }
51 bool hasWidth() const { return m_resourceWidth >= 0; }
52 bool hasHeight() const { return m_resourceHeight >= 0; }
53
54 float density() const { ASSERT(hasDensity()); return m_density; }
55 unsigned resourceWidth() const { ASSERT(hasWidth()); return m_resourceWidth; }
56 unsigned resourceHeight() const { ASSERT(hasHeight()); return m_resourceHeig ht; }
57
58 void setResourceWidth(int width) { ASSERT(width >= 0); m_resourceWidth = (un signed)width; }
59 void setResourceHeight(int height) { ASSERT(height >= 0); m_resourceHeight = (unsigned)height; }
60 void setDensity(float densityToSet) { ASSERT(densityToSet >= 0); m_density = densityToSet; }
61
62 private:
63 float m_density;
64 int m_resourceWidth;
65 int m_resourceHeight;
66 };
67
68 class ImageCandidate {
69 public:
70 enum OriginAttribute {
71 SrcsetOrigin,
72 SrcOrigin
73 };
74
75 ImageCandidate()
76 : m_density(1.0)
77 , m_resourceWidth(UninitializedDescriptor)
78 , m_originAttribute(SrcsetOrigin)
79 {
80 }
81
82 ImageCandidate(const String& source, unsigned start, unsigned length, const DescriptorParsingResult& result, OriginAttribute originAttribute)
83 : m_string(source.createView(start, length))
84 , m_density(result.hasDensity()?result.density():UninitializedDescriptor )
85 , m_resourceWidth(result.hasWidth()?result.resourceWidth():Uninitialized Descriptor)
86 , m_originAttribute(originAttribute)
87 {
88 }
89
90 String toString() const
91 {
92 return String(m_string.toString());
93 }
94
95 AtomicString url() const
96 {
97 return AtomicString(m_string.toString());
98 }
99
100 void setDensity(float factor)
101 {
102 m_density = factor;
103 }
104
105 float density() const
106 {
107 return m_density;
108 }
109
110 int resourceWidth() const
111 {
112 return m_resourceWidth;
113 }
114
115 bool srcOrigin() const
116 {
117 return (m_originAttribute == SrcOrigin);
118 }
119
120 inline bool isEmpty() const
121 {
122 return m_string.isEmpty();
123 }
124
125 private:
126 StringView m_string;
127 float m_density;
128 int m_resourceWidth;
129 OriginAttribute m_originAttribute;
130 };
131
132 ImageCandidate bestFitSourceForSrcsetAttribute(float deviceScaleFactor, unsigned sourceSize, const String& srcsetAttribute);
133
134 ImageCandidate bestFitSourceForImageAttributes(float deviceScaleFactor, unsigned sourceSize, const String& srcAttribute, const String& srcsetAttribute);
135
136 String bestFitSourceForImageAttributes(float deviceScaleFactor, unsigned sourceS ize, const String& srcAttribute, ImageCandidate& srcsetImageCandidate);
137
138 }
139
140 #endif // SKY_ENGINE_CORE_HTML_PARSER_HTMLSRCSETPARSER_H_
OLDNEW
« no previous file with comments | « sky/engine/core/html/parser/HTMLScriptRunner.cpp ('k') | sky/engine/core/html/parser/HTMLSrcsetParser.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698