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

Side by Side Diff: third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.cpp

Issue 2794453002: [Bindings] Replace V8HiddenValue in generated code with V8PrivateProperty (Closed)
Patch Set: . Created 3 years, 8 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file has been auto-generated by code_generator_v8.py. 5 // This file has been auto-generated by code_generator_v8.py.
6 // DO NOT MODIFY! 6 // DO NOT MODIFY!
7 7
8 // This file has been generated from the Jinja2 template in 8 // This file has been generated from the Jinja2 template in
9 // third_party/WebKit/Source/bindings/templates/interface.cpp.tmpl 9 // third_party/WebKit/Source/bindings/templates/interface.cpp.tmpl
10 10
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 59
60 static void testInterfaceAttributeAttributeGetter(const v8::FunctionCallbackInfo <v8::Value>& info) { 60 static void testInterfaceAttributeAttributeGetter(const v8::FunctionCallbackInfo <v8::Value>& info) {
61 v8::Local<v8::Object> holder = info.Holder(); 61 v8::Local<v8::Object> holder = info.Holder();
62 62
63 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 63 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
64 64
65 v8SetReturnValueFast(info, WTF::getPtr(impl->testInterfaceAttribute()), impl); 65 v8SetReturnValueFast(info, WTF::getPtr(impl->testInterfaceAttribute()), impl);
66 } 66 }
67 67
68 static void testInterfaceAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) { 68 static void testInterfaceAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
69 v8::Isolate* isolate = info.GetIsolate();
70 ALLOW_UNUSED_LOCAL(isolate);
71
69 v8::Local<v8::Object> holder = info.Holder(); 72 v8::Local<v8::Object> holder = info.Holder();
70 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 73 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
71 74
72 ExceptionState exceptionState(info.GetIsolate(), ExceptionState::SetterContext , "TestInterface5", "testInterfaceAttribute"); 75 ExceptionState exceptionState(isolate, ExceptionState::SetterContext, "TestInt erface5", "testInterfaceAttribute");
73 76
74 // Prepare the value to be set. 77 // Prepare the value to be set.
75 TestInterface5Implementation* cppValue = V8TestInterface5::toImplWithTypeCheck (info.GetIsolate(), v8Value); 78 TestInterface5Implementation* cppValue = V8TestInterface5::toImplWithTypeCheck (info.GetIsolate(), v8Value);
76 79
77 // Type check per: http://heycam.github.io/webidl/#es-interface 80 // Type check per: http://heycam.github.io/webidl/#es-interface
78 if (!cppValue) { 81 if (!cppValue) {
79 exceptionState.throwTypeError("The provided value is not of type 'TestInterf ace5'."); 82 exceptionState.throwTypeError("The provided value is not of type 'TestInterf ace5'.");
80 return; 83 return;
81 } 84 }
82 85
83 impl->setTestInterfaceAttribute(cppValue); 86 impl->setTestInterfaceAttribute(cppValue);
84 } 87 }
85 88
86 static void doubleAttributeAttributeGetter(const v8::FunctionCallbackInfo<v8::Va lue>& info) { 89 static void doubleAttributeAttributeGetter(const v8::FunctionCallbackInfo<v8::Va lue>& info) {
87 v8::Local<v8::Object> holder = info.Holder(); 90 v8::Local<v8::Object> holder = info.Holder();
88 91
89 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 92 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
90 93
91 v8SetReturnValue(info, impl->doubleAttribute()); 94 v8SetReturnValue(info, impl->doubleAttribute());
92 } 95 }
93 96
94 static void doubleAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v 8::FunctionCallbackInfo<v8::Value>& info) { 97 static void doubleAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v 8::FunctionCallbackInfo<v8::Value>& info) {
98 v8::Isolate* isolate = info.GetIsolate();
99 ALLOW_UNUSED_LOCAL(isolate);
100
95 v8::Local<v8::Object> holder = info.Holder(); 101 v8::Local<v8::Object> holder = info.Holder();
96 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 102 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
97 103
98 ExceptionState exceptionState(info.GetIsolate(), ExceptionState::SetterContext , "TestInterface5", "doubleAttribute"); 104 ExceptionState exceptionState(isolate, ExceptionState::SetterContext, "TestInt erface5", "doubleAttribute");
99 105
100 // Prepare the value to be set. 106 // Prepare the value to be set.
101 double cppValue = NativeValueTraits<IDLDouble>::nativeValue(info.GetIsolate(), v8Value, exceptionState); 107 double cppValue = NativeValueTraits<IDLDouble>::nativeValue(info.GetIsolate(), v8Value, exceptionState);
102 if (exceptionState.hadException()) 108 if (exceptionState.hadException())
103 return; 109 return;
104 110
105 impl->setDoubleAttribute(cppValue); 111 impl->setDoubleAttribute(cppValue);
106 } 112 }
107 113
108 static void floatAttributeAttributeGetter(const v8::FunctionCallbackInfo<v8::Val ue>& info) { 114 static void floatAttributeAttributeGetter(const v8::FunctionCallbackInfo<v8::Val ue>& info) {
109 v8::Local<v8::Object> holder = info.Holder(); 115 v8::Local<v8::Object> holder = info.Holder();
110 116
111 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 117 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
112 118
113 v8SetReturnValue(info, impl->floatAttribute()); 119 v8SetReturnValue(info, impl->floatAttribute());
114 } 120 }
115 121
116 static void floatAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8 ::FunctionCallbackInfo<v8::Value>& info) { 122 static void floatAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8 ::FunctionCallbackInfo<v8::Value>& info) {
123 v8::Isolate* isolate = info.GetIsolate();
124 ALLOW_UNUSED_LOCAL(isolate);
125
117 v8::Local<v8::Object> holder = info.Holder(); 126 v8::Local<v8::Object> holder = info.Holder();
118 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 127 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
119 128
120 ExceptionState exceptionState(info.GetIsolate(), ExceptionState::SetterContext , "TestInterface5", "floatAttribute"); 129 ExceptionState exceptionState(isolate, ExceptionState::SetterContext, "TestInt erface5", "floatAttribute");
121 130
122 // Prepare the value to be set. 131 // Prepare the value to be set.
123 float cppValue = NativeValueTraits<IDLFloat>::nativeValue(info.GetIsolate(), v 8Value, exceptionState); 132 float cppValue = NativeValueTraits<IDLFloat>::nativeValue(info.GetIsolate(), v 8Value, exceptionState);
124 if (exceptionState.hadException()) 133 if (exceptionState.hadException())
125 return; 134 return;
126 135
127 impl->setFloatAttribute(cppValue); 136 impl->setFloatAttribute(cppValue);
128 } 137 }
129 138
130 static void unrestrictedDoubleAttributeAttributeGetter(const v8::FunctionCallbac kInfo<v8::Value>& info) { 139 static void unrestrictedDoubleAttributeAttributeGetter(const v8::FunctionCallbac kInfo<v8::Value>& info) {
131 v8::Local<v8::Object> holder = info.Holder(); 140 v8::Local<v8::Object> holder = info.Holder();
132 141
133 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 142 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
134 143
135 v8SetReturnValue(info, impl->unrestrictedDoubleAttribute()); 144 v8SetReturnValue(info, impl->unrestrictedDoubleAttribute());
136 } 145 }
137 146
138 static void unrestrictedDoubleAttributeAttributeSetter(v8::Local<v8::Value> v8Va lue, const v8::FunctionCallbackInfo<v8::Value>& info) { 147 static void unrestrictedDoubleAttributeAttributeSetter(v8::Local<v8::Value> v8Va lue, const v8::FunctionCallbackInfo<v8::Value>& info) {
148 v8::Isolate* isolate = info.GetIsolate();
149 ALLOW_UNUSED_LOCAL(isolate);
150
139 v8::Local<v8::Object> holder = info.Holder(); 151 v8::Local<v8::Object> holder = info.Holder();
140 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 152 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
141 153
142 ExceptionState exceptionState(info.GetIsolate(), ExceptionState::SetterContext , "TestInterface5", "unrestrictedDoubleAttribute"); 154 ExceptionState exceptionState(isolate, ExceptionState::SetterContext, "TestInt erface5", "unrestrictedDoubleAttribute");
143 155
144 // Prepare the value to be set. 156 // Prepare the value to be set.
145 double cppValue = NativeValueTraits<IDLUnrestrictedDouble>::nativeValue(info.G etIsolate(), v8Value, exceptionState); 157 double cppValue = NativeValueTraits<IDLUnrestrictedDouble>::nativeValue(info.G etIsolate(), v8Value, exceptionState);
146 if (exceptionState.hadException()) 158 if (exceptionState.hadException())
147 return; 159 return;
148 160
149 impl->setUnrestrictedDoubleAttribute(cppValue); 161 impl->setUnrestrictedDoubleAttribute(cppValue);
150 } 162 }
151 163
152 static void unrestrictedFloatAttributeAttributeGetter(const v8::FunctionCallback Info<v8::Value>& info) { 164 static void unrestrictedFloatAttributeAttributeGetter(const v8::FunctionCallback Info<v8::Value>& info) {
153 v8::Local<v8::Object> holder = info.Holder(); 165 v8::Local<v8::Object> holder = info.Holder();
154 166
155 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 167 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
156 168
157 v8SetReturnValue(info, impl->unrestrictedFloatAttribute()); 169 v8SetReturnValue(info, impl->unrestrictedFloatAttribute());
158 } 170 }
159 171
160 static void unrestrictedFloatAttributeAttributeSetter(v8::Local<v8::Value> v8Val ue, const v8::FunctionCallbackInfo<v8::Value>& info) { 172 static void unrestrictedFloatAttributeAttributeSetter(v8::Local<v8::Value> v8Val ue, const v8::FunctionCallbackInfo<v8::Value>& info) {
173 v8::Isolate* isolate = info.GetIsolate();
174 ALLOW_UNUSED_LOCAL(isolate);
175
161 v8::Local<v8::Object> holder = info.Holder(); 176 v8::Local<v8::Object> holder = info.Holder();
162 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 177 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
163 178
164 ExceptionState exceptionState(info.GetIsolate(), ExceptionState::SetterContext , "TestInterface5", "unrestrictedFloatAttribute"); 179 ExceptionState exceptionState(isolate, ExceptionState::SetterContext, "TestInt erface5", "unrestrictedFloatAttribute");
165 180
166 // Prepare the value to be set. 181 // Prepare the value to be set.
167 float cppValue = NativeValueTraits<IDLUnrestrictedFloat>::nativeValue(info.Get Isolate(), v8Value, exceptionState); 182 float cppValue = NativeValueTraits<IDLUnrestrictedFloat>::nativeValue(info.Get Isolate(), v8Value, exceptionState);
168 if (exceptionState.hadException()) 183 if (exceptionState.hadException())
169 return; 184 return;
170 185
171 impl->setUnrestrictedFloatAttribute(cppValue); 186 impl->setUnrestrictedFloatAttribute(cppValue);
172 } 187 }
173 188
174 static void staticStringAttributeAttributeGetter(const v8::FunctionCallbackInfo< v8::Value>& info) { 189 static void staticStringAttributeAttributeGetter(const v8::FunctionCallbackInfo< v8::Value>& info) {
175 v8SetReturnValueString(info, TestInterface5Implementation::staticStringAttribu te(), info.GetIsolate()); 190 v8SetReturnValueString(info, TestInterface5Implementation::staticStringAttribu te(), info.GetIsolate());
176 } 191 }
177 192
178 static void staticStringAttributeAttributeSetter(v8::Local<v8::Value> v8Value, c onst v8::FunctionCallbackInfo<v8::Value>& info) { 193 static void staticStringAttributeAttributeSetter(v8::Local<v8::Value> v8Value, c onst v8::FunctionCallbackInfo<v8::Value>& info) {
194 v8::Isolate* isolate = info.GetIsolate();
195 ALLOW_UNUSED_LOCAL(isolate);
196
179 // Prepare the value to be set. 197 // Prepare the value to be set.
180 V8StringResource<> cppValue = v8Value; 198 V8StringResource<> cppValue = v8Value;
181 if (!cppValue.prepare()) 199 if (!cppValue.prepare())
182 return; 200 return;
183 201
184 TestInterface5Implementation::setStaticStringAttribute(cppValue); 202 TestInterface5Implementation::setStaticStringAttribute(cppValue);
185 } 203 }
186 204
187 static void lengthAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& inf o) { 205 static void lengthAttributeGetter(const v8::FunctionCallbackInfo<v8::Value>& inf o) {
188 v8::Local<v8::Object> holder = info.Holder(); 206 v8::Local<v8::Object> holder = info.Holder();
189 207
190 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 208 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
191 209
192 v8SetReturnValueUnsigned(info, impl->length()); 210 v8SetReturnValueUnsigned(info, impl->length());
193 } 211 }
194 212
195 static void alwaysExposedAttributeAttributeGetter(const v8::FunctionCallbackInfo <v8::Value>& info) { 213 static void alwaysExposedAttributeAttributeGetter(const v8::FunctionCallbackInfo <v8::Value>& info) {
196 v8::Local<v8::Object> holder = info.Holder(); 214 v8::Local<v8::Object> holder = info.Holder();
197 215
198 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 216 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
199 217
200 v8SetReturnValueInt(info, impl->alwaysExposedAttribute()); 218 v8SetReturnValueInt(info, impl->alwaysExposedAttribute());
201 } 219 }
202 220
203 static void alwaysExposedAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) { 221 static void alwaysExposedAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
222 v8::Isolate* isolate = info.GetIsolate();
223 ALLOW_UNUSED_LOCAL(isolate);
224
204 v8::Local<v8::Object> holder = info.Holder(); 225 v8::Local<v8::Object> holder = info.Holder();
205 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 226 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
206 227
207 ExceptionState exceptionState(info.GetIsolate(), ExceptionState::SetterContext , "TestInterface5", "alwaysExposedAttribute"); 228 ExceptionState exceptionState(isolate, ExceptionState::SetterContext, "TestInt erface5", "alwaysExposedAttribute");
208 229
209 // Prepare the value to be set. 230 // Prepare the value to be set.
210 int32_t cppValue = NativeValueTraits<IDLLong>::nativeValue(info.GetIsolate(), v8Value, exceptionState, NormalConversion); 231 int32_t cppValue = NativeValueTraits<IDLLong>::nativeValue(info.GetIsolate(), v8Value, exceptionState, NormalConversion);
211 if (exceptionState.hadException()) 232 if (exceptionState.hadException())
212 return; 233 return;
213 234
214 impl->setAlwaysExposedAttribute(cppValue); 235 impl->setAlwaysExposedAttribute(cppValue);
215 } 236 }
216 237
217 static void workerExposedAttributeAttributeGetter(const v8::FunctionCallbackInfo <v8::Value>& info) { 238 static void workerExposedAttributeAttributeGetter(const v8::FunctionCallbackInfo <v8::Value>& info) {
218 v8::Local<v8::Object> holder = info.Holder(); 239 v8::Local<v8::Object> holder = info.Holder();
219 240
220 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 241 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
221 242
222 v8SetReturnValueInt(info, impl->workerExposedAttribute()); 243 v8SetReturnValueInt(info, impl->workerExposedAttribute());
223 } 244 }
224 245
225 static void workerExposedAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) { 246 static void workerExposedAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
247 v8::Isolate* isolate = info.GetIsolate();
248 ALLOW_UNUSED_LOCAL(isolate);
249
226 v8::Local<v8::Object> holder = info.Holder(); 250 v8::Local<v8::Object> holder = info.Holder();
227 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 251 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
228 252
229 ExceptionState exceptionState(info.GetIsolate(), ExceptionState::SetterContext , "TestInterface5", "workerExposedAttribute"); 253 ExceptionState exceptionState(isolate, ExceptionState::SetterContext, "TestInt erface5", "workerExposedAttribute");
230 254
231 // Prepare the value to be set. 255 // Prepare the value to be set.
232 int32_t cppValue = NativeValueTraits<IDLLong>::nativeValue(info.GetIsolate(), v8Value, exceptionState, NormalConversion); 256 int32_t cppValue = NativeValueTraits<IDLLong>::nativeValue(info.GetIsolate(), v8Value, exceptionState, NormalConversion);
233 if (exceptionState.hadException()) 257 if (exceptionState.hadException())
234 return; 258 return;
235 259
236 impl->setWorkerExposedAttribute(cppValue); 260 impl->setWorkerExposedAttribute(cppValue);
237 } 261 }
238 262
239 static void windowExposedAttributeAttributeGetter(const v8::FunctionCallbackInfo <v8::Value>& info) { 263 static void windowExposedAttributeAttributeGetter(const v8::FunctionCallbackInfo <v8::Value>& info) {
240 v8::Local<v8::Object> holder = info.Holder(); 264 v8::Local<v8::Object> holder = info.Holder();
241 265
242 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 266 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
243 267
244 v8SetReturnValueInt(info, impl->windowExposedAttribute()); 268 v8SetReturnValueInt(info, impl->windowExposedAttribute());
245 } 269 }
246 270
247 static void windowExposedAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) { 271 static void windowExposedAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::FunctionCallbackInfo<v8::Value>& info) {
272 v8::Isolate* isolate = info.GetIsolate();
273 ALLOW_UNUSED_LOCAL(isolate);
274
248 v8::Local<v8::Object> holder = info.Holder(); 275 v8::Local<v8::Object> holder = info.Holder();
249 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder); 276 TestInterface5Implementation* impl = V8TestInterface5::toImpl(holder);
250 277
251 ExceptionState exceptionState(info.GetIsolate(), ExceptionState::SetterContext , "TestInterface5", "windowExposedAttribute"); 278 ExceptionState exceptionState(isolate, ExceptionState::SetterContext, "TestInt erface5", "windowExposedAttribute");
252 279
253 // Prepare the value to be set. 280 // Prepare the value to be set.
254 int32_t cppValue = NativeValueTraits<IDLLong>::nativeValue(info.GetIsolate(), v8Value, exceptionState, NormalConversion); 281 int32_t cppValue = NativeValueTraits<IDLLong>::nativeValue(info.GetIsolate(), v8Value, exceptionState, NormalConversion);
255 if (exceptionState.hadException()) 282 if (exceptionState.hadException())
256 return; 283 return;
257 284
258 impl->setWindowExposedAttribute(cppValue); 285 impl->setWindowExposedAttribute(cppValue);
259 } 286 }
260 287
261 static void voidMethodTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo <v8::Value>& info) { 288 static void voidMethodTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo <v8::Value>& info) {
(...skipping 643 matching lines...) Expand 10 before | Expand all | Expand 10 after
905 if (executionContext && (executionContext->isDocument() || executionContext->i sServiceWorkerGlobalScope())) { 932 if (executionContext && (executionContext->isDocument() || executionContext->i sServiceWorkerGlobalScope())) {
906 const V8DOMConfiguration::MethodConfiguration windowAndServiceWorkerExposedM ethodMethodConfiguration[] = { 933 const V8DOMConfiguration::MethodConfiguration windowAndServiceWorkerExposedM ethodMethodConfiguration[] = {
907 {"windowAndServiceWorkerExposedMethod", V8TestInterface5::windowAndService WorkerExposedMethodMethodCallback, 0, v8::None, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder, V8DOMConfiguration::DoNotCheckAccess, V8DOMCon figuration::AllWorlds} 934 {"windowAndServiceWorkerExposedMethod", V8TestInterface5::windowAndService WorkerExposedMethodMethodCallback, 0, v8::None, V8DOMConfiguration::OnPrototype, V8DOMConfiguration::CheckHolder, V8DOMConfiguration::DoNotCheckAccess, V8DOMCon figuration::AllWorlds}
908 }; 935 };
909 for (const auto& methodConfig : windowAndServiceWorkerExposedMethodMethodCon figuration) 936 for (const auto& methodConfig : windowAndServiceWorkerExposedMethodMethodCon figuration)
910 V8DOMConfiguration::installMethod(isolate, world, v8::Local<v8::Object>(), prototypeObject, interfaceObject, signature, methodConfig); 937 V8DOMConfiguration::installMethod(isolate, world, v8::Local<v8::Object>(), prototypeObject, interfaceObject, signature, methodConfig);
911 } 938 }
912 } 939 }
913 940
914 } // namespace blink 941 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698