ASSERTION FAILED: m_scriptExecutionContext->isContextThread() seen with LayoutTest...
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2016-11-28  Jiewen Tan  <jiewen_tan@apple.com>
2
3         ASSERTION FAILED: m_scriptExecutionContext->isContextThread() seen with LayoutTest crypto/subtle/rsa-oaep-generate-key-encrypt-decrypt.html
4         https://bugs.webkit.org/show_bug.cgi?id=165124
5         <rdar://problem/29413805>
6
7         Reviewed by Daniel Bates.
8
9         We should only dereference callbacks after being back to the Document/Worker threads as
10         it might destroy promises in the work queue which will then trigger the assertion.
11
12         Covered by existing tests.
13
14         * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
15         (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
16         (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
17         * crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp:
18         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
19         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
20         * crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:
21         (WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
22         (WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):
23
24 2016-11-28  Darin Adler  <darin@apple.com>
25
26         Streamline and speed up tokenizer and segmented string classes
27         https://bugs.webkit.org/show_bug.cgi?id=165003
28
29         Reviewed by Sam Weinig.
30
31         Profiling Speedometer on my iMac showed the tokenizer as one of the
32         hottest functions. This patch streamlines the segmented string class,
33         removing various unused features, and also improves some other functions
34         seen on the Speedometer profile. On my iMac I measured a speedup of
35         about 3%. Changes include:
36
37         - Removed m_pushedChar1, m_pushedChar2, and m_empty data members from the
38           SegmentedString class and all the code that used to handle them.
39
40         - Simplified the SegmentedString advance functions so they are small
41           enough to get inlined in the HTML tokenizer.
42
43         - Updated callers to call the simpler SegmentedString advance functions
44           that don't handle newlines in as many cases as possible.
45
46         - Cut down on allocations of SegmentedString and made code move the
47           segmented string and the strings that are moved into it rather than
48           copying them whenever possible.
49
50         - Simplified segmented string functions, removing some branches, mostly
51           from the non-fast paths.
52
53         - Removed small unused functions and small functions used in only one
54           or two places, made more functions private and renamed for clarity.
55
56         * bindings/js/JSHTMLDocumentCustom.cpp:
57         (WebCore::documentWrite): Moved a little more of the common code in here
58         from the two functions belwo. Removed obsolete comment saying this was not
59         following the DOM specification because it is. Removed unneeded special
60         cases for 1 argument and no arguments. Take a reference instead of a pointer.
61         (WebCore::JSHTMLDocument::write): Updated for above.
62         (WebCore::JSHTMLDocument::writeln): Ditto.
63
64         * css/parser/CSSTokenizer.cpp: Added now-needed include.
65         * css/parser/CSSTokenizer.h: Removed unneeded include.
66
67         * css/parser/CSSTokenizerInputStream.h: Added definition of kEndOfFileMarker
68         here; this is now separate from the use in the HTMLParser. In the long run,
69         unclear to me whether it is really needed in either.
70
71         * dom/Document.cpp:
72         (WebCore::Document::prepareToWrite): Added. Helper function used by the three
73         different variants of write. Using this may prevent us from having to construct
74         a SegmentedString just to append one string after future refactoring.
75         (WebCore::Document::write): Updated to take an rvalue reference and move the
76         value through.
77         (WebCore::Document::writeln): Use a single write call instead of two.
78
79         * dom/Document.h: Changed write to take an rvalue reference to SegmentedString
80         rather than a const reference.
81
82         * dom/DocumentParser.h: Changed insert to take an rvalue reference to
83         SegmentedString. In the future, should probably overload to take a single
84         string since that is the normal case.
85
86         * dom/RawDataDocumentParser.h: Updated for change to DocumentParser.
87
88         * html/FTPDirectoryDocument.cpp:
89         (WebCore::FTPDirectoryDocumentParser::append): Refactored a bit, just enough
90         so that we don't need an assignment operator for SegmentedString that can
91         copy a String.
92
93         * html/parser/HTMLDocumentParser.cpp:
94         (WebCore::HTMLDocumentParser::insert): Updated to take an rvalue reference,
95         and move the value through.
96         * html/parser/HTMLDocumentParser.h: Updated for the above.
97
98         * html/parser/HTMLEntityParser.cpp:
99         (WebCore::HTMLEntityParser::consumeNamedEntity): Updated for name changes.
100         Changed the twao calls to advance here to call advancePastNonNewline; no
101         change in behavior, but asserts what the code was assuming before, that the
102         character was not a newline.
103
104         * html/parser/HTMLInputStream.h:
105         (WebCore::HTMLInputStream::appendToEnd): Updated to take an rvalue reference,
106         and move the value through.
107         (WebCore::HTMLInputStream::insertAtCurrentInsertionPoint): Ditto.
108         (WebCore::HTMLInputStream::markEndOfFile): Removed the code to construct a
109         SegmentedString, overkill since we can just append an individual string.
110         (WebCore::HTMLInputStream::splitInto): Rewrote the move idiom here to actually
111         use move, which will reduce reference count churn and other unneeded work.
112
113         * html/parser/HTMLMetaCharsetParser.cpp:
114         (WebCore::HTMLMetaCharsetParser::checkForMetaCharset): Removed unneeded
115         construction of a SegmentedString, just to append a string.
116
117         * html/parser/HTMLSourceTracker.cpp:
118         (WebCore::HTMLSourceTracker::HTMLSourceTracker): Moved to the class definition.
119         (WebCore::HTMLSourceTracker::source): Updated for function name change.
120         * html/parser/HTMLSourceTracker.h: Updated for above.
121
122         * html/parser/HTMLTokenizer.cpp: Added now-needed include.
123         (WebCore::HTMLTokenizer::emitAndResumeInDataState): Use advancePastNonNewline,
124         since this function is never called in response to a newline character.
125         (WebCore::HTMLTokenizer::commitToPartialEndTag): Ditto.
126         (WebCore::HTMLTokenizer::commitToCompleteEndTag): Ditto.
127         (WebCore::HTMLTokenizer::processToken): Use ADVANCE_PAST_NON_NEWLINE_TO macro
128         instead of ADVANCE_TO in cases where the character we are advancing past is
129         known not to be a newline, so we can use the more efficient advance function
130         that doesn't check for the newline character.
131
132         * html/parser/InputStreamPreprocessor.h: Moved kEndOfFileMarker to
133         SegmentedString.h; not sure that's a good place for it either. In the long run,
134         unclear to me whether this is really needed.
135         (WebCore::InputStreamPreprocessor::peek): Added UNLIKELY for the empty check.
136         Added LIKELY for the not-special character check.
137         (WebCore::InputStreamPreprocessor::advance): Updated for the new name of the
138         advanceAndUpdateLineNumber function.
139         (WebCore::InputStreamPreprocessor::advancePastNonNewline): Added. More
140         efficient than advance for cases where the last characer is known not to be
141         a newline character.
142         (WebCore::InputStreamPreprocessor::skipNextNewLine): Deleted. Was unused.
143         (WebCore::InputStreamPreprocessor::reset): Deleted. Was unused except in the
144         constructor; added initial values for the data members to replace.
145         (WebCore::InputStreamPreprocessor::processNextInputCharacter): Removed long
146         FIXME comment that didn't really need to be here. Reorganized a bit.
147         (WebCore::InputStreamPreprocessor::isAtEndOfFile): Renamed and made static.
148
149         * html/track/BufferedLineReader.cpp:
150         (WebCore::BufferedLineReader::nextLine): Updated to not use the poorly named
151         scanCharacter function to advance past a newline. Also renamed from getLine
152         and changed to return Optional<String> instead of using a boolean to indicate
153         failure and an out argument.
154
155         * html/track/BufferedLineReader.h:
156         (WebCore::BufferedLineReader::BufferedLineReader): Use the default, putting
157         initial values on each data member below.
158         (WebCore::BufferedLineReader::append): Updated to take an rvalue reference,
159         and move the value through.
160         (WebCore::BufferedLineReader::scanCharacter): Deleted. Was poorly named,
161         and easy to replace with two lines of code at its two call sites.
162         (WebCore::BufferedLineReader::reset): Rewrote to correctly clear all the
163         data members of the class, not just the segmented string.
164
165         * html/track/InbandGenericTextTrack.cpp:
166         (WebCore::InbandGenericTextTrack::parseWebVTTFileHeader): Updated to take
167         an rvalue reference and move the value through.
168         * html/track/InbandGenericTextTrack.h: Updated for the above.
169
170         * html/track/InbandTextTrack.h: Updated since parseWebVTTFileHeader now
171         takes an rvalue reference.
172
173         * html/track/WebVTTParser.cpp:
174         (WebCore::WebVTTParser::parseFileHeader): Updated to take an rvalue reference
175         and move the value through.
176         (WebCore::WebVTTParser::parseBytes): Updated to pass ownership of the string
177         in to the line reader append function.
178         (WebCore::WebVTTParser::parseCueData): Use auto and WTFMove for WebVTTCueData.
179         (WebCore::WebVTTParser::flush): More of the same.
180         (WebCore::WebVTTParser::parse): Changed to use nextLine instead of getLine.
181         * html/track/WebVTTParser.h: Updated for the above.
182
183         * html/track/WebVTTTokenizer.cpp:
184         (WebCore::advanceAndEmitToken): Use advanceAndUpdateLineNumber by its new
185         name, just advance. No change in behavior.
186         (WebCore::WebVTTTokenizer::WebVTTTokenizer): Pass a String, not a
187         SegmentedString, to add the end of file marker.
188
189         * platform/graphics/InbandTextTrackPrivateClient.h: Updated since
190         parseWebVTTFileHeader takes an rvalue reference.
191
192         * platform/text/SegmentedString.cpp:
193         (WebCore::SegmentedString::Substring::appendTo): Moved here from the header.
194         The only caller is SegmentedString::toString, inside this file.
195         (WebCore::SegmentedString::SegmentedString): Deleted the copy constructor.
196         No longer needed.
197         (WebCore::SegmentedString::operator=): Defined a move assignment operator
198         rather than an ordinary assignment operator, since that's what the call
199         sites really need.
200         (WebCore::SegmentedString::length): Simplified since we no longer need to
201         support pushed characters.
202         (WebCore::SegmentedString::setExcludeLineNumbers): Simplified, since we
203         can just iterate m_otherSubstrings without an extra check. Also changed to
204         write directly to the data member of Substring instead of using a function.
205         (WebCore::SegmentedString::updateAdvanceFunctionPointersForEmptyString):
206         Added. Used when we run out of characters.
207         (WebCore::SegmentedString::clear): Removed code to clear now-deleted members.
208         Updated for changes to other member names.
209         (WebCore::SegmentedString::appendSubstring): Renamed from just append to
210         avoid ambiguity with the public append function. Changed to take an rvalue
211         reference, and move in, and added code to set m_currentCharacter properly,
212         so the caller doesn't have to deal with that.
213         (WebCore::SegmentedString::close): Updated to use m_isClosed by its new name.
214         Also removed unneeded comment about assertion that fires when trying to close
215         an already closed string.
216         (WebCore::SegmentedString::append): Added overloads for rvalue references of
217         both entire SegmentedString objects and of String. Streamlined to just call
218         appendSubstring and append to the deque.
219         (WebCore::SegmentedString::pushBack): Tightened up since we don't allow empty
220         strings and changed to take just a string, not an entire segmented string.
221         (WebCore::SegmentedString::advanceSubstring): Moved logic into the
222         advancePastSingleCharacterSubstringWithoutUpdatingLineNumber function.
223         (WebCore::SegmentedString::toString): Simplified now that we don't need to
224         support pushed characters.
225         (WebCore::SegmentedString::advancePastNonNewlines): Deleted.
226         (WebCore::SegmentedString::advance8): Deleted.
227         (WebCore::SegmentedString::advanceWithoutUpdatingLineNumber16): Renamed from
228         advance16. Simplified now that there are no pushed characters. Also changed to
229         access data members of m_currentSubstring directly instead of calling a function.
230         (WebCore::SegmentedString::advanceAndUpdateLineNumber8): Deleted.
231         (WebCore::SegmentedString::advanceAndUpdateLineNumber16): Ditto.
232         (WebCore::SegmentedString::advancePastSingleCharacterSubstringWithoutUpdatingLineNumber):
233         Renamed from advanceSlowCase. Removed uneeded logic to handle pushed characters.
234         Moved code in here from advanceSubstring.
235         (WebCore::SegmentedString::advancePastSingleCharacterSubstring): Renamed from
236         advanceAndUpdateLineNumberSlowCase. Simplified by calling the function above.
237         (WebCore::SegmentedString::advanceEmpty): Broke assertion up into two.
238         (WebCore::SegmentedString::updateSlowCaseFunctionPointers): Updated for name changes.
239         (WebCore::SegmentedString::advancePastSlowCase): Changed name and meaning of
240         boolean argument. Rewrote to use the String class less; it's now used only when
241         we fail to match after the first character rather than being used for the actual
242         comparison with the literal.
243
244         * platform/text/SegmentedString.h: Moved all non-trivial function bodies out of
245         the class definition to make things easier to read. Moved the SegmentedSubstring
246         class inside the SegmentedString class, making it a private struct named Substring.
247         Removed the m_ prefix from data members of the struct, removed many functions from
248         the struct and made its union be anonymous instead of naming it m_data. Removed
249         unneeded StringBuilder.h include.
250         (WebCore::SegmentedString::isEmpty): Changed to use the length of the substring
251         instead of a separate boolean. We never create an empty substring, nor leave one
252         in place as the current substring unless the entire segmented string is empty.
253         (WebCore::SegmentedString::advancePast): Updated to use the new member function
254         template instead of a non-template member function. The new member function is
255         entirely rewritten and does the matching directly rather than allocating a string
256         just to do prefix matching.
257         (WebCore::SegmentedString::advancePastLettersIgnoringASCIICase): Renamed to make
258         it clear that the literal must be all non-letters or lowercase letters as with
259         the other "letters ignoring ASCII case" functions. The three call sites all fit
260         the bill. Implement by calling the new function template.
261         (WebCore::SegmentedString::currentCharacter): Renamed from currentChar.
262         (WebCore::SegmentedString::Substring::Substring): Use an rvalue reference and
263         move the string in.
264         (WebCore::SegmentedString::Substring::currentCharacter): Simplified since this
265         is never used on an empty substring.
266         (WebCore::SegmentedString::Substring::incrementAndGetCurrentCharacter): Ditto.
267         (WebCore::SegmentedString::SegmentedString): Overload to take an rvalue reference.
268         Simplified since there are now fewer data members.
269         (WebCore::SegmentedString::advanceWithoutUpdatingLineNumber): Renamed from
270         advance, since this is only safe to use if there is some reason it is OK to skip
271         updating the line number.
272         (WebCore::SegmentedString::advance): Renamed from advanceAndUpdateLineNumber,
273         since doing that is the normal desired behavior and not worth mentioning in the
274         public function name.
275         (WebCore::SegmentedString::advancePastNewline): Renamed from
276         advancePastNewlineAndUpdateLineNumber.
277         (WebCore::SegmentedString::numberOfCharactersConsumed): Greatly simplified since
278         pushed characters are no longer supported.
279         (WebCore::SegmentedString::characterMismatch): Added. Used by advancePast.
280
281         * xml/parser/CharacterReferenceParserInlines.h:
282         (WebCore::unconsumeCharacters): Use toString rather than toStringPreserveCapacity
283         because the SegmentedString is going to take ownership of the string.
284         (WebCore::consumeCharacterReference): Updated to use the pushBack that takes just
285         a String, not a SegmentedString. Also use advancePastNonNewline.
286
287         * xml/parser/MarkupTokenizerInlines.h: Added ADVANCE_PAST_NON_NEWLINE_TO.
288
289         * xml/parser/XMLDocumentParser.cpp:
290         (WebCore::XMLDocumentParser::insert): Updated since this takes an rvalue reference.
291         (WebCore::XMLDocumentParser::append): Removed unnecessary code to create a
292         SegmentedString.
293         * xml/parser/XMLDocumentParser.h: Updated for above. Also fixed indentation
294         and initialized most data members.
295         * xml/parser/XMLDocumentParserLibxml2.cpp:
296         (WebCore::XMLDocumentParser::XMLDocumentParser): Moved most data member
297         initialization into the class definition.
298         (WebCore::XMLDocumentParser::resumeParsing): Removed code that copied a
299         segmented string, but converted the whole thing into a string before using it.
300         Now we convert to a string right away.
301
302 2016-11-28  Chris Dumez  <cdumez@apple.com>
303
304         [iOS] Use UIKit SPI to force popover presentation style on iPhone for html validation popovers
305         https://bugs.webkit.org/show_bug.cgi?id=165107
306
307         Reviewed by Simon Fraser.
308
309         Use UIKit SPI to force popover presentation style on iPhone for html validation
310         popovers as this results in simpler code and achieves the same behavior.
311
312         * platform/ValidationBubble.h:
313         * platform/ios/ValidationBubbleIOS.mm:
314         (WebCore::ValidationBubble::setAnchorRect):
315         (-[WebValidationBubbleDelegate adaptivePresentationStyleForPresentationController:traitCollection:]): Deleted.
316         * platform/spi/ios/UIKitSPI.h:
317
318 2016-11-28  Chris Dumez  <cdumez@apple.com>
319
320         [Mac] Clicking on an HTML validation bubble should dismiss it
321         https://bugs.webkit.org/show_bug.cgi?id=165117
322         <rdar://problem/29409837>
323
324         Reviewed by Simon Fraser.
325
326         Clicking on an HTML validation bubble should dismiss it. It previously
327         did nothing.
328
329         No new tests, this is not easily testable as EventSender.keyDown() sends
330         the event to the view, not to a particular screen location.
331
332         * platform/mac/ValidationBubbleMac.mm:
333         (-[WebValidationPopover mouseDown:]):
334         (WebCore::ValidationBubble::ValidationBubble):
335
336 2016-11-27  Sam Weinig  <sam@webkit.org>
337
338         Make CanvasRenderingContext2D use WebIDL unions / Variants for createPattern and drawImage
339         https://bugs.webkit.org/show_bug.cgi?id=165086
340
341         Reviewed by Darin Adler.
342
343         * html/canvas/CanvasRenderingContext2D.cpp:
344         (WebCore::size):
345         Add overloads of size for each type of CanvasSource.
346         (WebCore::CanvasRenderingContext2D::drawImage):
347         (WebCore::CanvasRenderingContext2D::createPattern):
348         * html/canvas/CanvasRenderingContext2D.h:
349         * html/canvas/CanvasRenderingContext2D.idl:
350         Use variants to reduce code duplication and match spec language in drawImage and createPattern.
351
352 2016-11-28  Beth Dakin  <bdakin@apple.com>
353
354         Blacklist Netflix for TouchBar support
355         https://bugs.webkit.org/show_bug.cgi?id=165104
356         -and corresponding-
357         rdar://problem/29404778
358
359         Reviewed by Tim Horton.
360
361         This patch moves the algorithm to 
362         bestMediaElementForShowingPlaybackControlsManager() so that Now Playing can also 
363         use it.
364         * html/HTMLMediaElement.cpp:
365         (WebCore::needsPlaybackControlsManagerQuirk):
366         (WebCore::HTMLMediaElement::bestMediaElementForShowingPlaybackControlsManager):
367         (WebCore::HTMLMediaElement::updatePlaybackControlsManager):
368
369 2016-11-28  Mark Lam  <mark.lam@apple.com>
370
371         Fix exception scope verification failures in more miscellaneous files.
372         https://bugs.webkit.org/show_bug.cgi?id=165102
373
374         Reviewed by Saam Barati.
375
376         No new tests because these are fixes to failures detected by existing tests when
377         exception check verification is enabled.
378
379         * bindings/js/IDBBindingUtilities.cpp:
380         (WebCore::toJS):
381         * bindings/js/JSCommandLineAPIHostCustom.cpp:
382         (WebCore::getJSListenerFunctions):
383         * bindings/js/JSCryptoKeySerializationJWK.cpp:
384         (WebCore::buildJSONForRSAComponents):
385         (WebCore::addUsagesToJSON):
386         * bindings/js/JSDOMBinding.h:
387         (WebCore::toJS):
388         * bridge/runtime_array.cpp:
389         (JSC::RuntimeArray::put):
390
391 2016-11-28  Dave Hyatt  <hyatt@apple.com>
392
393         [CSS Parser] Fix bugs in the @supports parser
394         https://bugs.webkit.org/show_bug.cgi?id=165115
395
396         Reviewed by Zalan Bujtas.
397
398         * css/parser/CSSParserFastPaths.cpp:
399         (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
400         Clean up the display property to match the old parser to ensure
401         that @supports conditions on display are the same.
402
403         * css/parser/CSSSupportsParser.cpp:
404         (WebCore::CSSSupportsParser::consumeCondition):
405         (WebCore::CSSSupportsParser::consumeNegation):
406         (WebCore::CSSSupportsParser::consumeConditionInParenthesis):
407         * css/parser/CSSSupportsParser.h:
408         What follows are all bugs in Blink that need to be fixed to pass our
409         tests.
410
411         Fix the supports parser to allow the whitespace after not/or/and to
412         be optional. Allow the whitespace following parenthetical conditions
413         to be optional.
414
415         With whitespace being optional, this means that "not(" will parse
416         as a FunctionToken type, as will "or(" and "and(". Handle this situation
417         by checking for FunctionToken along with IdentToken and parameterizing
418         consumeConditionInParenthesis to do the right thing when it starts with
419         a FunctionToken instead of an IdentToken.
420
421         Fix the general enclosure FunctionToken for forward compatibility to require that
422         the function still be enclosed within parentheses.
423
424 2016-11-28  Mark Lam  <mark.lam@apple.com>
425
426         Fix exception scope verification failures in ObjectConstructor.cpp and ObjectPrototype.cpp.
427         https://bugs.webkit.org/show_bug.cgi?id=165051
428
429         Reviewed by Saam Barati.
430
431         No new tests because this is covered by the existing test
432         http/tests/security/cross-frame-access-object-prototype.html with the help of a
433         new ASSERT in ObjectPrototype.cpp.
434
435         Fixed jsDOMWindowGetOwnPropertySlotRestrictedAccess() to return false when it
436         throws an exception.
437
438         * bindings/js/JSDOMWindowCustom.cpp:
439         (WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
440
441 2016-11-28  Tim Horton  <timothy_horton@apple.com>
442
443         Obvious change in saturation/color when swiping to a previously visited page
444         https://bugs.webkit.org/show_bug.cgi?id=165112
445         <rdar://problem/29257229>
446
447         Reviewed by Simon Fraser.
448
449         * platform/graphics/cocoa/IOSurface.mm:
450         (WebCore::IOSurface::createFromImage):
451         IOSurface::createFromImage should take into account the colorspace of the
452         originating image, instead of just hardcoding sRGB.
453
454         Otherwise, on a non-sRGB display, the display-space snapshot that we take
455         for back-forward swipe is converted to sRGB, then the colorspace information
456         is lost (without a way to maintain it inside the IOSurface), and displayed
457         as layer contents interpreted as display space (instead of sRGB).
458
459 2016-11-28  Chris Dumez  <cdumez@apple.com>
460
461         Unreviewed, fix crashes on Yosemite after r209009
462
463         NSTextField's maximumNumberOfLines was introduced in ElCapitan so
464         disable it at compile-time on previous OSes for now.
465
466         * platform/mac/ValidationBubbleMac.mm:
467         (WebCore::ValidationBubble::ValidationBubble):
468
469 2016-11-28  Keith Rollin  <krollin@apple.com>
470
471         Unreviewed, rolling out r208607.
472
473         The actual changes aren't inline with what was requested.
474
475         Reverted changeset:
476
477         "Reduce number of platformMemoryUsage calls"
478         https://bugs.webkit.org/show_bug.cgi?id=164375
479         http://trac.webkit.org/changeset/208607
480
481 2016-11-28  Beth Dakin  <bdakin@apple.com>
482
483         Blacklist Netflix for TouchBar support
484         https://bugs.webkit.org/show_bug.cgi?id=165104
485         -and corresponding-
486         rdar://problem/29404778
487
488         Reviewed by Darin Adler.
489
490         * html/HTMLMediaElement.cpp:
491         (WebCore::needsPlaybackControlsManagerQuirk):
492         (WebCore::HTMLMediaElement::updatePlaybackControlsManager):
493
494 2016-11-28  Chris Dumez  <cdumez@apple.com>
495
496         Limit HTML Form validation popovers to 4 lines
497         https://bugs.webkit.org/show_bug.cgi?id=165098
498         <rdar://problem/29403286>
499
500         Reviewed by Darin Adler.
501
502         Limit HTML Form validation popovers to 4 lines as per recent feedback.
503
504         * platform/ios/ValidationBubbleIOS.mm:
505         (WebCore::ValidationBubble::ValidationBubble):
506         * platform/mac/ValidationBubbleMac.mm:
507         (WebCore::ValidationBubble::ValidationBubble):
508
509 2016-11-28  Dave Hyatt  <hyatt@apple.com>
510
511         [CSS Parser] Filters and Reflections Fixes
512         https://bugs.webkit.org/show_bug.cgi?id=165103
513
514         Reviewed by Zalan Bujtas.
515
516         * css/parser/CSSPropertyParser.cpp:
517         (WebCore::consumeReflect):
518         Support the "none" keyword for box-reflect.
519
520         * css/parser/CSSPropertyParserHelpers.cpp:
521         (WebCore::CSSPropertyParserHelpers::isValidPrimitiveFilterFunction):
522         (WebCore::CSSPropertyParserHelpers::consumeFilterFunction):
523         Don't rely on range checking, since invert isn't grouped with the other
524         function values. Actually check every keyword.
525
526 2016-11-28  Brent Fulgham  <bfulgham@apple.com>
527
528         ImageData does not match specification
529         https://bugs.webkit.org/show_bug.cgi?id=164663
530
531         Reviewed by Simon Fraser.
532
533         The W3C specification https://www.w3.org/TR/2dcontext/ clearly states that
534         the width and height attributes of the ImageData type should be unsigned.
535         Our current implementation has signed integer values.
536
537         In practice, we have enforced the unsigned requirement by throwing a TypeError
538         if you attempt to construct an ImageData with negative width or height.
539
540         This change simply updates the IDL and impelemntation to match the spec.
541
542         Test coverage is already provided by fast/canvas/canvas-imageData.html
543
544         * bindings/js/SerializedScriptValue.cpp:
545         (WebCore::CloneDeserializer::readTerminal): Serialize as uint32_t values.
546         * html/ImageData.idl: Revise width and height to be unsigned long.
547
548 2016-11-28  Dave Hyatt  <hyatt@apple.com>
549
550         [CSS Parser] flex-basis should be pixel units not percentages.
551         https://bugs.webkit.org/show_bug.cgi?id=165100
552
553         Reviewed by Zalan Bujtas.
554
555         * css/parser/CSSPropertyParser.cpp:
556         (WebCore::CSSPropertyParser::consumeFlex):
557
558 2016-11-28  Daniel Bates  <dabates@apple.com>
559
560         Replace CSSPropertyNames.in with a JSON file
561         https://bugs.webkit.org/show_bug.cgi?id=164691
562
563         Reviewed by Simon Fraser.
564
565         Convert CSSPropertyNames.in to a structured JSON file. This is the first step towards
566         exposing a CSS feature status dashboard and generating more of the boilerplate code
567         for a CSS property.
568
569         A side effect of this change is that makeprop.pl no longer detects duplicate CSS property
570         definitions. We will look to bring such duplication detection back in a subsequent
571         commit.
572
573         * CMakeLists.txt: Substitute CSSProperties.json for CSSPropertyNames.in and update the
574         invocation of makeprop.pl as we no longer need to pass the bindings/scripts/preprocessor.pm
575         Perl module. Makeprop.pl supports conditional CSS properties and values without the need
576         to preprocess CSSProperties.json using the C preprocessor.
577         * DerivedSources.make: Ditto. Pass WTF_PLATFORM_IOS to makeprop.pl when building for iOS
578         as we no longer make use of bindings/scripts/preprocessor.pm.
579         * css/CSSProperties.json: Added.
580         * css/CSSPropertyNames.in: Removed.
581         * css/StyleResolver.cpp: Remove variable lastHighPriorityProperty as we now generate it.
582         * css/makeprop.pl: Extracted the input file name, now CSSProperties.json, into a global variable
583         and referenced this variable throughout this script instead of hardcoding the input file name at
584         each call site. Updated code to handle CSS longhand names being encoded in a JSON array as opposed
585         to a string of '|'-separated values. I added a FIXME comment to do the same for the codegen property
586         "custom". Fixed Perl uninitialized variable warnings when die()-ing with error "Unknown CSS property
587         used in all shorthand ..." or "Unknown CSS property used in longhands ...".
588         (isPropertyEnabled): Added. Determine whether code should be generated for a property.
589         (addProperty): Added.
590         (sortByDescendingPriorityAndName): Added.
591         (getScopeForFunction): Lowercase option names so that we can use a consistent case throughout
592         the JSON file.
593         (getNameForMethods): Ditto.
594         (generateColorValueSetter):
595         (generateAnimationPropertyInitialValueSetter): Ditto.
596         (generateAnimationPropertyInheritValueSetter): Ditto.
597         (generateFillLayerPropertyInitialValueSetter): Ditto.
598         (generateFillLayerPropertyInheritValueSetter): Ditto.
599         (generateSetValueStatement): Ditto.
600         (generateInitialValueSetter): Ditto.
601         (generateInheritValueSetter): Ditto.
602         (generateValueSetter): Ditto.
603
604 2016-11-28  Dave Hyatt  <hyatt@apple.com>
605
606         [CSS Parser] Support -webkit-animation-trigger
607         https://bugs.webkit.org/show_bug.cgi?id=165095
608
609         Reviewed by Zalan Bujtas.
610
611         * css/CSSValueKeywords.in:
612         * css/parser/CSSPropertyParser.cpp:
613         (WebCore::consumeWebkitAnimationTrigger):
614         (WebCore::consumeAnimationValue):
615         (WebCore::CSSPropertyParser::parseSingleValue):
616
617 2016-11-28  Antti Koivisto  <antti@apple.com>
618
619         Remove FIRST_LINE_INHERITED fake pseudo style
620         https://bugs.webkit.org/show_bug.cgi?id=165071
621
622         Reviewed by Andreas Kling.
623
624         These are create during layout an then cached to the RenderStyle. Cache computed first line style to
625         RenderObject rare data instead, avoiding style mutation an other confusing messiness.
626
627         * rendering/RenderElement.cpp:
628         (WebCore::RenderElement::RenderElement):
629         (WebCore::RenderElement::computeFirstLineStyle):
630         (WebCore::RenderElement::firstLineStyle):
631
632             Cache the first line style.
633
634         (WebCore::RenderElement::invalidateCachedFirstLineStyle):
635         (WebCore::RenderElement::styleWillChange):
636
637             Invalidate subtree if we have cached first line style.
638
639         (WebCore::RenderElement::getUncachedPseudoStyle):
640         (WebCore::RenderElement::uncachedFirstLineStyle): Deleted.
641         (WebCore::RenderElement::cachedFirstLineStyle): Deleted.
642         * rendering/RenderElement.h:
643         * rendering/RenderObject.cpp:
644         (WebCore::RenderObject::rareDataMap):
645         (WebCore::RenderObject::rareData):
646         (WebCore::RenderObject::ensureRareData):
647         * rendering/RenderObject.h:
648
649             Stop copying rare data objects.
650
651         * rendering/style/RenderStyle.cpp:
652         (WebCore::RenderStyle::changeRequiresLayout):
653
654             Use the normal mechanism for invalidating layout for first-line instead of a hack in pseudoStyleCacheIsInvalid.
655
656         * rendering/style/RenderStyleConstants.h:
657         * style/RenderTreeUpdater.cpp:
658         (WebCore::pseudoStyleCacheIsInvalid):
659
660             Simplify.
661
662 2016-11-28  Miguel Gomez  <magomez@igalia.com>
663
664         [GTK] Dramatic increase on memory usage since 2.14.x
665         https://bugs.webkit.org/show_bug.cgi?id=164049
666
667         Reviewed by Žan Doberšek.
668
669         Use OpenGL version 3.2 Core for rendering when available.
670         Update some operations that have changed when using 3.2 Core:
671         - Use glGetStringi to get the extensions list.
672         - Do not use GL_POINT_SPRITE.
673         - Always use a VAO when rendering.
674         - Use a GLSL 1.50 compatible shader.
675
676         No new tests needed.
677
678         * platform/graphics/GLContext.cpp:
679         (WebCore::GLContext::version):
680         Add a method to get OpenGL version we are using.
681         * platform/graphics/GLContext.h:
682         Ditto.
683         * platform/graphics/GraphicsContext3D.h:
684         Add an attribute to store the VAO used for rendering.
685         * platform/graphics/OpenGLShims.cpp:
686         (WebCore::initializeOpenGLShims):
687         Add glGetStringi to the list of functions.
688         * platform/graphics/OpenGLShims.h:
689         Ditto.
690         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
691         (WebCore::GraphicsContext3D::GraphicsContext3D):
692         Set appropriate output to the shader compiler and initalize the VAO if needed.
693         (WebCore::GraphicsContext3D::~GraphicsContext3D):
694         Delete the VAO if needed.
695         (WebCore::GraphicsContext3D::getExtensions):
696         Use glGetExtensionsi for OpenGL versions >= 3.2.
697         * platform/graphics/glx/GLContextGLX.cpp:
698         (WebCore::hasGLXARBCreateContextExtension):
699         Check whether the GLX_ARB_create_context extension is available.
700         (WebCore::GLContextGLX::createWindowContext):
701         Use glXCreateContextAttribsARB() if possible to request an OpenGL 3.2 context.
702         (WebCore::GLContextGLX::createPbufferContext):
703         Ditto.
704         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
705         (WebCore::Extensions3DOpenGLCommon::initializeAvailableExtensions):
706         Enable glGetStringi for GTK.
707         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
708         Do not use default getExtensions() method for GTK.
709         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
710         Ditto.
711
712 2016-11-24  Sergio Villar Senin  <svillar@igalia.com>
713
714         [css-grid] Move attributes from RenderGrid to the new Grid class
715         https://bugs.webkit.org/show_bug.cgi?id=165065
716
717         Reviewed by Darin Adler.
718
719         A new class called Grid was added in 208973. This is the first of a couple of patches moving
720         private attributes from RenderGrid to Grid.
721
722         Apart from that this is adding a couple of new helper functions that will decouple the
723         existence of in-flow items from the actual data structures storing that information.
724
725         Last but not least, the Grid::insert() method does not only insert the item in the m_grid
726         data structure, but also stores the GridArea associated to that item, so there is no need to
727         do it in two different calls.
728
729         No new tests required as this is a refactoring.
730
731         * rendering/RenderGrid.cpp:
732         (WebCore::RenderGrid::Grid::insert): Added a new parameter.
733         (WebCore::RenderGrid::Grid::setSmallestTracksStart):
734         (WebCore::RenderGrid::Grid::smallestTrackStart):
735         (WebCore::RenderGrid::Grid::gridItemArea):
736         (WebCore::RenderGrid::Grid::setGridItemArea):
737         (WebCore::RenderGrid::Grid::clear): Clear the newly added attributes.
738         (WebCore::RenderGrid::repeatTracksSizingIfNeeded):
739         (WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
740         (WebCore::RenderGrid::rawGridTrackSize):
741         (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
742         (WebCore::RenderGrid::computeEmptyTracksForAutoRepeat):
743         (WebCore::RenderGrid::placeItemsOnGrid):
744         (WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
745         (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
746         (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
747         (WebCore::RenderGrid::clearGrid):
748         (WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
749         (WebCore::RenderGrid::cachedGridSpan):
750         (WebCore::RenderGrid::cachedGridArea): Deleted.
751         * rendering/RenderGrid.h:
752
753 2016-11-27  Sam Weinig  <sam@webkit.org>
754
755         Remove unused DOMRequestState
756         https://bugs.webkit.org/show_bug.cgi?id=165085
757
758         Reviewed by Simon Fraser.
759
760         Remove DOMRequestState. It was unused.
761
762         * Modules/fetch/FetchBody.cpp:
763         * WebCore.xcodeproj/project.pbxproj:
764         * bindings/js/DOMRequestState.h: Removed.
765
766 2016-11-27  Csaba Osztrogonác  <ossy@webkit.org>
767
768         Fix various --minimal build issues
769         https://bugs.webkit.org/show_bug.cgi?id=165060
770
771         Reviewed by Darin Adler.
772
773         * css/parser/CSSPropertyParser.cpp:
774         * dom/Document.cpp:
775         * loader/EmptyClients.cpp:
776
777 2016-11-26  Yusuke Suzuki  <utatane.tea@gmail.com>
778
779         [WTF] Import std::optional reference implementation as WTF::Optional
780         https://bugs.webkit.org/show_bug.cgi?id=164199
781
782         Reviewed by Saam Barati and Sam Weinig.
783
784         Rename valueOr to value_or. This is specified in C++17 proposal.
785
786         Use Optional::emplace. C++17 Optional::operator=(Optional&&) requires
787         either copy assignment operator or move assignment operator. But
788         DFG::JSValueOperand etc. only defines move constructors and drop
789         implicit copy assignment operators.
790
791         It was OK in the previous WTF::Optional since it always uses move
792         constructors. But it is not valid in C++17 Optional. We use Optional::emplace
793         instead. This function has the same semantics to the previous WTF::Optional's
794         operator=.
795
796         No behavior change.
797
798         * Modules/applepay/ApplePaySession.cpp:
799         (WebCore::parseAmount):
800         (WebCore::createContactFields):
801         (WebCore::toLineItemType):
802         (WebCore::createLineItem):
803         (WebCore::createLineItems):
804         (WebCore::createMerchantCapabilities):
805         (WebCore::createSupportedNetworks):
806         (WebCore::toShippingType):
807         (WebCore::createShippingMethod):
808         (WebCore::createShippingMethods):
809         (WebCore::createPaymentRequest):
810         (WebCore::toPaymentAuthorizationStatus):
811         * Modules/applepay/PaymentContact.h:
812         * Modules/applepay/PaymentCoordinator.cpp:
813         (WebCore::PaymentCoordinator::completeShippingMethodSelection):
814         (WebCore::PaymentCoordinator::completeShippingContactSelection):
815         (WebCore::PaymentCoordinator::completePaymentMethodSelection):
816         * Modules/applepay/PaymentCoordinator.h:
817         * Modules/applepay/PaymentCoordinatorClient.h:
818         * Modules/applepay/PaymentMerchantSession.h:
819         * Modules/applepay/PaymentRequest.h:
820         * Modules/applepay/cocoa/PaymentContactCocoa.mm:
821         (WebCore::PaymentContact::fromJS):
822         * Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm:
823         (WebCore::PaymentMerchantSession::fromJS):
824         * Modules/encryptedmedia/MediaKeyStatusMap.cpp:
825         (WebCore::MediaKeyStatusMap::Iterator::next):
826         * Modules/encryptedmedia/MediaKeyStatusMap.h:
827         * Modules/fetch/FetchBody.cpp:
828         (WebCore::FetchBody::extract):
829         * Modules/fetch/FetchBody.h:
830         * Modules/fetch/FetchBodyOwner.cpp:
831         (WebCore::FetchBodyOwner::FetchBodyOwner):
832         (WebCore::FetchBodyOwner::loadBlob):
833         (WebCore::FetchBodyOwner::finishBlobLoading):
834         * Modules/fetch/FetchBodyOwner.h:
835         * Modules/fetch/FetchHeaders.cpp:
836         (WebCore::FetchHeaders::Iterator::next):
837         * Modules/fetch/FetchHeaders.h:
838         * Modules/fetch/FetchRequest.cpp:
839         (WebCore::setReferrerPolicy):
840         (WebCore::setMode):
841         (WebCore::setCredentials):
842         (WebCore::setCache):
843         (WebCore::setRedirect):
844         (WebCore::setMethod):
845         (WebCore::setReferrer):
846         (WebCore::buildOptions):
847         (WebCore::FetchRequest::clone):
848         * Modules/fetch/FetchRequest.h:
849         (WebCore::FetchRequest::FetchRequest):
850         * Modules/fetch/FetchResponse.cpp:
851         (WebCore::FetchResponse::FetchResponse):
852         (WebCore::FetchResponse::cloneForJS):
853         (WebCore::FetchResponse::fetch):
854         (WebCore::FetchResponse::BodyLoader::didSucceed):
855         (WebCore::FetchResponse::BodyLoader::didFail):
856         (WebCore::FetchResponse::BodyLoader::didReceiveResponse):
857         (WebCore::FetchResponse::BodyLoader::stop):
858         * Modules/fetch/FetchResponse.h:
859         * Modules/geolocation/Coordinates.cpp:
860         (WebCore::Coordinates::altitude):
861         (WebCore::Coordinates::altitudeAccuracy):
862         (WebCore::Coordinates::heading):
863         (WebCore::Coordinates::speed):
864         * Modules/geolocation/Coordinates.h:
865         * Modules/indexeddb/IDBCursor.cpp:
866         (WebCore::IDBCursor::stringToDirection):
867         * Modules/indexeddb/IDBCursor.h:
868         * Modules/indexeddb/IDBDatabase.h:
869         * Modules/indexeddb/IDBDatabaseIdentifier.h:
870         (WebCore::IDBDatabaseIdentifier::hash):
871         * Modules/indexeddb/IDBFactory.cpp:
872         (WebCore::IDBFactory::open):
873         * Modules/indexeddb/IDBFactory.h:
874         * Modules/indexeddb/IDBIndex.cpp:
875         (WebCore::IDBIndex::getAll):
876         (WebCore::IDBIndex::getAllKeys):
877         * Modules/indexeddb/IDBIndex.h:
878         * Modules/indexeddb/IDBKeyPath.h:
879         (WebCore::isolatedCopy):
880         * Modules/indexeddb/IDBObjectStore.cpp:
881         (WebCore::IDBObjectStore::keyPath):
882         (WebCore::IDBObjectStore::getAll):
883         (WebCore::IDBObjectStore::getAllKeys):
884         * Modules/indexeddb/IDBObjectStore.h:
885         * Modules/indexeddb/IDBTransaction.cpp:
886         (WebCore::IDBTransaction::requestGetAllObjectStoreRecords):
887         (WebCore::IDBTransaction::requestGetAllIndexRecords):
888         * Modules/indexeddb/IDBTransaction.h:
889         * Modules/indexeddb/IDBVersionChangeEvent.cpp:
890         (WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
891         * Modules/indexeddb/IDBVersionChangeEvent.h:
892         * Modules/indexeddb/server/IDBSerialization.cpp:
893         (WebCore::serializeIDBKeyPath):
894         (WebCore::deserializeIDBKeyPath):
895         * Modules/indexeddb/server/IDBSerialization.h:
896         * Modules/indexeddb/server/MemoryIndex.cpp:
897         (WebCore::IDBServer::MemoryIndex::getAllRecords):
898         * Modules/indexeddb/server/MemoryIndex.h:
899         * Modules/indexeddb/server/MemoryObjectStore.cpp:
900         (WebCore::IDBServer::MemoryObjectStore::getAllRecords):
901         * Modules/indexeddb/server/MemoryObjectStore.h:
902         * Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:
903         (WebCore::IDBServer::MemoryObjectStoreCursor::objectStoreCleared):
904         (WebCore::IDBServer::MemoryObjectStoreCursor::keyDeleted):
905         (WebCore::IDBServer::MemoryObjectStoreCursor::setFirstInRemainingRange):
906         (WebCore::IDBServer::MemoryObjectStoreCursor::setForwardIteratorFromRemainingRange):
907         (WebCore::IDBServer::MemoryObjectStoreCursor::setReverseIteratorFromRemainingRange):
908         (WebCore::IDBServer::MemoryObjectStoreCursor::incrementForwardIterator):
909         (WebCore::IDBServer::MemoryObjectStoreCursor::incrementReverseIterator):
910         * Modules/indexeddb/server/MemoryObjectStoreCursor.h:
911         * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
912         (WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo):
913         * Modules/indexeddb/shared/IDBDatabaseInfo.cpp:
914         (WebCore::IDBDatabaseInfo::createNewObjectStore):
915         * Modules/indexeddb/shared/IDBDatabaseInfo.h:
916         * Modules/indexeddb/shared/IDBGetAllRecordsData.h:
917         * Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:
918         (WebCore::IDBObjectStoreInfo::IDBObjectStoreInfo):
919         * Modules/indexeddb/shared/IDBObjectStoreInfo.h:
920         (WebCore::IDBObjectStoreInfo::keyPath):
921         * Modules/mediacontrols/MediaControlsHost.cpp:
922         (WebCore::MediaControlsHost::displayNameForTrack):
923         * Modules/mediacontrols/MediaControlsHost.h:
924         * Modules/mediasource/MediaSource.cpp:
925         (WebCore::MediaSource::endOfStream):
926         (WebCore::MediaSource::streamEndedWithError):
927         * Modules/mediasource/MediaSource.h:
928         * Modules/mediastream/MediaStreamTrack.h:
929         * Modules/mediastream/PeerConnectionBackend.cpp:
930         (WebCore::PeerConnectionBackend::createOfferSucceeded):
931         (WebCore::PeerConnectionBackend::createOfferFailed):
932         (WebCore::PeerConnectionBackend::createAnswerSucceeded):
933         (WebCore::PeerConnectionBackend::createAnswerFailed):
934         (WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
935         (WebCore::PeerConnectionBackend::setLocalDescriptionFailed):
936         (WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
937         (WebCore::PeerConnectionBackend::setRemoteDescriptionFailed):
938         (WebCore::PeerConnectionBackend::addIceCandidateSucceeded):
939         (WebCore::PeerConnectionBackend::addIceCandidateFailed):
940         (WebCore::PeerConnectionBackend::stop):
941         * Modules/mediastream/PeerConnectionBackend.h:
942         * Modules/mediastream/RTCDTMFSender.cpp:
943         (WebCore::RTCDTMFSender::insertDTMF):
944         * Modules/mediastream/RTCDTMFSender.h:
945         * Modules/mediastream/RTCIceCandidate.cpp:
946         (WebCore::RTCIceCandidate::create):
947         (WebCore::RTCIceCandidate::RTCIceCandidate):
948         * Modules/mediastream/RTCIceCandidate.h:
949         (WebCore::RTCIceCandidate::sdpMLineIndex):
950         * Modules/mediastream/SDPProcessor.cpp:
951         (WebCore::iceCandidateFromJSON):
952         * Modules/proximity/DeviceProximityEvent.h:
953         * Modules/streams/ReadableStreamSource.h:
954         (WebCore::ReadableStreamSource::startFinished):
955         (WebCore::ReadableStreamSource::pullFinished):
956         (WebCore::ReadableStreamSource::clean):
957         * Modules/webaudio/AudioBufferSourceNode.cpp:
958         (WebCore::AudioBufferSourceNode::start):
959         * Modules/webaudio/AudioBufferSourceNode.h:
960         * Modules/webdatabase/SQLResultSet.h:
961         * Modules/websockets/WebSocket.cpp:
962         (WebCore::WebSocket::close):
963         * Modules/websockets/WebSocket.h:
964         * Modules/websockets/WebSocketChannel.cpp:
965         (WebCore::WebSocketChannel::didReceiveSocketStreamData):
966         * Modules/websockets/WebSocketChannel.h:
967         * bindings/generic/IDLTypes.h:
968         (WebCore::IDLType::nullValue):
969         * bindings/js/CachedModuleScript.h:
970         (WebCore::CachedModuleScript::error):
971         * bindings/js/Dictionary.h:
972         (WebCore::Dictionary::get):
973         * bindings/js/IDBBindingUtilities.cpp:
974         (WebCore::toJS):
975         * bindings/js/IDBBindingUtilities.h:
976         * bindings/js/JSCryptoKeySerializationJWK.cpp:
977         (WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
978         * bindings/js/JSCryptoKeySerializationJWK.h:
979         * bindings/js/JSDOMConvert.h:
980         (WebCore::Detail::VariadicConverterBase::convert):
981         (WebCore::Detail::VariadicConverterBase<IDLInterface<T>>::convert):
982         (WebCore::convertVariadicArguments):
983         * bindings/js/JSDOMIterator.h:
984         (WebCore::IteratorTraits>::next):
985         * bindings/js/JSDOMPromise.h:
986         (WebCore::DOMPromise::DOMPromise):
987         (WebCore::DOMPromise::operator=):
988         * bindings/js/JSDOMWindowCustom.cpp:
989         (WebCore::JSDOMWindow::getOwnPropertySlot):
990         * bindings/js/JSDictionary.h:
991         (WebCore::JSDictionary::convertValue):
992         * bindings/js/JSFileCustom.cpp:
993         (WebCore::constructJSFile):
994         * bindings/js/JSHTMLAllCollectionCustom.cpp:
995         (WebCore::callHTMLAllCollection):
996         (WebCore::JSHTMLAllCollection::item):
997         * bindings/js/JSHTMLCanvasElementCustom.cpp:
998         (WebCore::JSHTMLCanvasElement::toDataURL):
999         * bindings/js/JSImageConstructor.cpp:
1000         (WebCore::JSImageConstructor::construct):
1001         * bindings/js/JSMediaDevicesCustom.cpp:
1002         (WebCore::createStringConstraint):
1003         (WebCore::createBooleanConstraint):
1004         (WebCore::createDoubleConstraint):
1005         (WebCore::createIntConstraint):
1006         * bindings/js/JSWebKitSubtleCryptoCustom.cpp:
1007         (WebCore::importKey):
1008         * bindings/js/ScriptController.cpp:
1009         (WebCore::ScriptController::setupModuleScriptHandlers):
1010         (WebCore::ScriptController::executeScriptInWorld):
1011         (WebCore::ScriptController::executeScript):
1012         * bindings/scripts/CodeGeneratorJS.pm:
1013         (GenerateGetOwnPropertySlotBody):
1014         (GenerateEnumerationImplementationContent):
1015         (GenerateEnumerationHeaderContent):
1016         (GenerateDefaultValue):
1017         (GenerateImplementation):
1018         (GenerateParametersCheck):
1019         * bindings/scripts/test/JS/JSFloat64Array.cpp:
1020         (WebCore::JSFloat64Array::getOwnPropertySlot):
1021         (WebCore::JSFloat64Array::getOwnPropertyDescriptor):
1022         (WebCore::JSFloat64Array::put):
1023         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
1024         (WebCore::JSTestEventTarget::getOwnPropertySlot):
1025         * bindings/scripts/test/JS/JSTestObj.cpp:
1026         (WebCore::parseEnumeration<TestObj::EnumType>):
1027         (WebCore::parseEnumeration<TestObj::Optional>):
1028         (WebCore::parseEnumeration<AlternateEnumName>):
1029         (WebCore::parseEnumeration<TestObj::EnumA>):
1030         (WebCore::parseEnumeration<TestObj::EnumB>):
1031         (WebCore::parseEnumeration<TestObj::EnumC>):
1032         (WebCore::parseEnumeration<TestObj::Kind>):
1033         (WebCore::parseEnumeration<TestObj::Size>):
1034         (WebCore::parseEnumeration<TestObj::Confidence>):
1035         (WebCore::convertDictionary<TestObj::Dictionary>):
1036         (WebCore::JSTestObj::getOwnPropertySlot):
1037         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgCaller):
1038         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgCaller):
1039         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArgCaller):
1040         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgsCaller):
1041         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongCaller):
1042         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongCaller):
1043         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceCaller):
1044         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanCaller):
1045         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalRecordCaller):
1046         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2Caller):
1047         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2Caller):
1048         (WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
1049         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentCaller):
1050         * bindings/scripts/test/JS/JSTestObj.h:
1051         * bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:
1052         (WebCore::parseEnumeration<TestStandaloneDictionary::EnumInStandaloneDictionaryFile>):
1053         * bindings/scripts/test/JS/JSTestStandaloneDictionary.h:
1054         * bindings/scripts/test/JS/JSTestStandaloneEnumeration.cpp:
1055         (WebCore::parseEnumeration<TestStandaloneEnumeration>):
1056         * bindings/scripts/test/JS/JSTestStandaloneEnumeration.h:
1057         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1058         (WebCore::jsTestTypedefsPrototypeFunctionSetShadowCaller):
1059         (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampCaller):
1060         * bridge/runtime_array.cpp:
1061         (JSC::RuntimeArray::getOwnPropertySlot):
1062         (JSC::RuntimeArray::put):
1063         * crypto/CryptoAlgorithmRegistry.cpp:
1064         (WebCore::CryptoAlgorithmRegistry::identifier):
1065         * crypto/CryptoAlgorithmRegistry.h:
1066         * crypto/CryptoKeySerialization.h:
1067         * crypto/JsonWebKey.h:
1068         * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
1069         (WebCore::CryptoAlgorithmAES_CBC::importKey):
1070         * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
1071         (WebCore::CryptoAlgorithmAES_KW::importKey):
1072         * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
1073         (WebCore::CryptoAlgorithmHMAC::generateKey):
1074         (WebCore::CryptoAlgorithmHMAC::importKey):
1075         * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
1076         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::importKey):
1077         * crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp:
1078         (WebCore::calculateSignature):
1079         * crypto/keys/CryptoKeyAES.h:
1080         * crypto/keys/CryptoKeyHMAC.h:
1081         * crypto/keys/CryptoKeyRSA.cpp:
1082         (WebCore::CryptoKeyRSA::importJwk):
1083         * crypto/keys/CryptoKeyRSA.h:
1084         * crypto/keys/CryptoKeySerializationRaw.cpp:
1085         (WebCore::CryptoKeySerializationRaw::reconcileAlgorithm):
1086         * crypto/keys/CryptoKeySerializationRaw.h:
1087         * crypto/mac/CryptoAlgorithmHMACMac.cpp:
1088         (WebCore::commonCryptoHMACAlgorithm):
1089         * crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
1090         (WebCore::cryptoDigestAlgorithm):
1091         * crypto/parameters/CryptoAlgorithmHmacKeyParams.h:
1092         * crypto/parameters/CryptoAlgorithmRsaOaepParams.h:
1093         * css/CSSFontFace.cpp:
1094         (WebCore::CSSFontFace::calculateStyleMask):
1095         (WebCore::CSSFontFace::calculateWeightMask):
1096         * css/CSSFontFace.h:
1097         * css/CSSFontFaceSet.cpp:
1098         (WebCore::computeFontTraitsMask):
1099         * css/CSSPrimitiveValue.cpp:
1100         (WebCore::CSSPrimitiveValue::doubleValue):
1101         (WebCore::CSSPrimitiveValue::doubleValueInternal):
1102         * css/CSSPrimitiveValue.h:
1103         * css/CSSPropertyNames.in:
1104         * css/CSSSegmentedFontFace.cpp:
1105         * css/CSSStyleSheet.cpp:
1106         (WebCore::CSSStyleSheet::create):
1107         (WebCore::CSSStyleSheet::CSSStyleSheet):
1108         (WebCore::CSSStyleSheet::addRule):
1109         * css/CSSStyleSheet.h:
1110         * css/FontFace.cpp:
1111         (WebCore::FontFace::fontStateChanged):
1112         * css/FontFace.h:
1113         * css/FontFaceSet.cpp:
1114         (WebCore::FontFaceSet::completedLoading):
1115         * css/FontFaceSet.h:
1116         * css/MediaQueryEvaluator.cpp:
1117         (WebCore::doubleValue):
1118         * css/StyleBuilderConverter.h:
1119         (WebCore::StyleBuilderConverter::convertGridPosition):
1120         (WebCore::StyleBuilderConverter::convertWordSpacing):
1121         (WebCore::StyleBuilderConverter::convertPerspective):
1122         (WebCore::StyleBuilderConverter::convertMarqueeIncrement):
1123         (WebCore::StyleBuilderConverter::convertFilterOperations):
1124         (WebCore::StyleBuilderConverter::convertLineHeight):
1125         * css/StyleBuilderCustom.h:
1126         (WebCore::StyleBuilderCustom::applyValueLineHeight):
1127         * css/StyleRuleImport.cpp:
1128         (WebCore::StyleRuleImport::requestStyleSheet):
1129         * css/parser/CSSParser.cpp:
1130         (WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
1131         (WebCore::CSSParser::parseSpringTimingFunctionValue):
1132         (WebCore::CSSParser::parseColorFunctionParameters):
1133         (WebCore::CSSParser::parseColorFromValue):
1134         * css/parser/CSSParser.h:
1135         * cssjit/SelectorCompiler.cpp:
1136         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAddStyleRelationIfResolvingStyle):
1137         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAddStyleRelation):
1138         * dom/CustomElementReactionQueue.cpp:
1139         * dom/Document.cpp:
1140         (WebCore::Document::lastModified):
1141         * dom/Element.cpp:
1142         (WebCore::Element::scrollBy):
1143         (WebCore::Element::getIntegralAttribute):
1144         (WebCore::Element::getUnsignedIntegralAttribute):
1145         (WebCore::Element::resolveCustomStyle):
1146         * dom/Element.h:
1147         * dom/ElementIteratorAssertions.h:
1148         (WebCore::ElementIteratorAssertions::dropEventDispatchAssertion):
1149         (WebCore::ElementIteratorAssertions::clear):
1150         * dom/ExceptionOr.h:
1151         * dom/InlineStyleSheetOwner.cpp:
1152         (WebCore::makeInlineStyleSheetCacheKey):
1153         * dom/KeyboardEvent.h:
1154         * dom/LoadableClassicScript.cpp:
1155         (WebCore::LoadableClassicScript::error):
1156         * dom/LoadableClassicScript.h:
1157         * dom/LoadableModuleScript.cpp:
1158         (WebCore::LoadableModuleScript::error):
1159         * dom/LoadableModuleScript.h:
1160         * dom/LoadableScript.h:
1161         * dom/MessageEvent.cpp:
1162         (WebCore::MessageEvent::MessageEvent):
1163         (WebCore::MessageEvent::create):
1164         (WebCore::MessageEvent::initMessageEvent):
1165         * dom/MessageEvent.h:
1166         * dom/MutationObserver.cpp:
1167         (WebCore::MutationObserver::observe):
1168         * dom/MutationObserver.h:
1169         * dom/ProcessingInstruction.cpp:
1170         (WebCore::ProcessingInstruction::checkStyleSheet):
1171         * dom/PseudoElement.cpp:
1172         (WebCore::PseudoElement::resolveCustomStyle):
1173         * dom/PseudoElement.h:
1174         * dom/RangeBoundaryPoint.h:
1175         (WebCore::RangeBoundaryPoint::setToBeforeChild):
1176         (WebCore::RangeBoundaryPoint::setToAfterChild):
1177         (WebCore::RangeBoundaryPoint::setToEndOfNode):
1178         (WebCore::RangeBoundaryPoint::invalidateOffset):
1179         * dom/ScriptElement.cpp:
1180         (WebCore::ScriptElement::determineScriptType):
1181         (WebCore::ScriptElement::prepareScript):
1182         (WebCore::ScriptElement::executeScriptAndDispatchEvent):
1183         * dom/ScriptElement.h:
1184         * dom/TextDecoder.cpp:
1185         (WebCore::TextDecoder::decode):
1186         * dom/TextDecoder.h:
1187         * dom/UserGestureIndicator.cpp:
1188         (WebCore::UserGestureIndicator::UserGestureIndicator):
1189         * dom/UserGestureIndicator.h:
1190         * editing/CompositeEditCommand.cpp:
1191         (WebCore::CompositeEditCommand::moveParagraphs):
1192         * editing/CompositeEditCommand.h:
1193         * fileapi/File.h:
1194         * history/CachedFrame.h:
1195         (WebCore::CachedFrame::hasInsecureContent):
1196         * html/DOMTokenList.cpp:
1197         (WebCore::DOMTokenList::toggle):
1198         * html/DOMTokenList.h:
1199         * html/HTMLAnchorElement.cpp:
1200         (WebCore::HTMLAnchorElement::handleClick):
1201         * html/HTMLCanvasElement.cpp:
1202         (WebCore::HTMLCanvasElement::toDataURL):
1203         * html/HTMLCanvasElement.h:
1204         * html/HTMLElement.cpp:
1205         (WebCore::HTMLElement::parseBorderWidthAttribute):
1206         (WebCore::HTMLElement::parseAttribute):
1207         * html/HTMLImageElement.cpp:
1208         (WebCore::HTMLImageElement::createForJSConstructor):
1209         (WebCore::HTMLImageElement::width):
1210         (WebCore::HTMLImageElement::height):
1211         * html/HTMLImageElement.h:
1212         * html/HTMLInputElement.cpp:
1213         (WebCore::HTMLInputElement::findClosestTickMarkValue):
1214         (WebCore::HTMLInputElement::maxLengthAttributeChanged):
1215         (WebCore::HTMLInputElement::minLengthAttributeChanged):
1216         * html/HTMLInputElement.h:
1217         * html/HTMLLinkElement.cpp:
1218         (WebCore::HTMLLinkElement::process):
1219         (WebCore::HTMLLinkElement::initializeStyleSheet):
1220         (WebCore::HTMLLinkElement::iconType):
1221         * html/HTMLLinkElement.h:
1222         * html/HTMLOListElement.h:
1223         * html/HTMLOptionsCollection.cpp:
1224         (WebCore::HTMLOptionsCollection::add):
1225         * html/HTMLOptionsCollection.h:
1226         * html/HTMLSelectElement.cpp:
1227         (WebCore::HTMLSelectElement::add):
1228         (WebCore::HTMLSelectElement::setLength):
1229         * html/HTMLSelectElement.h:
1230         * html/HTMLTextAreaElement.cpp:
1231         (WebCore::HTMLTextAreaElement::maxLengthAttributeChanged):
1232         (WebCore::HTMLTextAreaElement::minLengthAttributeChanged):
1233         * html/ImageInputType.cpp:
1234         (WebCore::ImageInputType::height):
1235         (WebCore::ImageInputType::width):
1236         * html/InputType.cpp:
1237         (WebCore::InputType::findClosestTickMarkValue):
1238         * html/InputType.h:
1239         * html/LinkIconCollector.cpp:
1240         * html/LinkRelAttribute.h:
1241         * html/RangeInputType.cpp:
1242         (WebCore::RangeInputType::findClosestTickMarkValue):
1243         * html/RangeInputType.h:
1244         * html/canvas/CanvasRenderingContext2D.cpp:
1245         (WebCore::CanvasRenderingContext2D::restore):
1246         (WebCore::CanvasRenderingContext2D::setStrokeColor):
1247         (WebCore::CanvasRenderingContext2D::setFillColor):
1248         (WebCore::CanvasRenderingContext2D::isPointInPathInternal):
1249         (WebCore::CanvasRenderingContext2D::isPointInStrokeInternal):
1250         (WebCore::CanvasRenderingContext2D::setShadow):
1251         (WebCore::CanvasRenderingContext2D::fillText):
1252         (WebCore::CanvasRenderingContext2D::strokeText):
1253         (WebCore::CanvasRenderingContext2D::drawTextInternal):
1254         * html/canvas/CanvasRenderingContext2D.h:
1255         * html/canvas/WebGL2RenderingContext.cpp:
1256         (WebCore::arrayBufferViewElementSize):
1257         * html/canvas/WebGLRenderingContextBase.cpp:
1258         (WebCore::WebGLRenderingContextBase::bufferData):
1259         (WebCore::WebGLRenderingContextBase::bufferSubData):
1260         (WebCore::WebGLRenderingContextBase::texSubImage2D):
1261         (WebCore::WebGLRenderingContextBase::validateArrayBufferType):
1262         (WebCore::WebGLRenderingContextBase::validateTexFuncData):
1263         (WebCore::WebGLRenderingContextBase::texImage2D):
1264         * html/canvas/WebGLRenderingContextBase.h:
1265         * html/parser/HTMLConstructionSite.cpp:
1266         (WebCore::HTMLConstructionSite::indexOfFirstUnopenFormattingElement):
1267         (WebCore::HTMLConstructionSite::reconstructTheActiveFormattingElements):
1268         * html/parser/HTMLConstructionSite.h:
1269         * html/parser/HTMLParserIdioms.cpp:
1270         (WebCore::parseHTMLIntegerInternal):
1271         (WebCore::parseHTMLInteger):
1272         (WebCore::parseHTMLNonNegativeInteger):
1273         (WebCore::parseValidHTMLNonNegativeIntegerInternal):
1274         (WebCore::parseValidHTMLNonNegativeInteger):
1275         (WebCore::parseValidHTMLFloatingPointNumberInternal):
1276         (WebCore::parseValidHTMLFloatingPointNumber):
1277         (WebCore::parseHTTPRefreshInternal):
1278         * html/parser/HTMLParserIdioms.h:
1279         (WebCore::limitToOnlyHTMLNonNegative):
1280         * html/parser/HTMLSrcsetParser.cpp:
1281         (WebCore::parseDescriptors):
1282         * html/shadow/SliderThumbElement.cpp:
1283         (WebCore::SliderThumbElement::setPositionFromPoint):
1284         (WebCore::SliderThumbElement::resolveCustomStyle):
1285         (WebCore::SliderContainerElement::resolveCustomStyle):
1286         * html/shadow/SliderThumbElement.h:
1287         * html/shadow/TextControlInnerElements.cpp:
1288         (WebCore::TextControlInnerElement::resolveCustomStyle):
1289         (WebCore::TextControlInnerTextElement::resolveCustomStyle):
1290         (WebCore::TextControlPlaceholderElement::resolveCustomStyle):
1291         * html/shadow/TextControlInnerElements.h:
1292         * html/track/TrackEvent.h:
1293         * inspector/InspectorIndexedDBAgent.cpp:
1294         * inspector/InspectorInstrumentation.cpp:
1295         (WebCore::InspectorInstrumentation::didFinishXHRLoadingImpl):
1296         * inspector/InspectorInstrumentation.h:
1297         (WebCore::InspectorInstrumentation::didFinishXHRLoading):
1298         * inspector/InspectorStyleSheet.cpp:
1299         (WebCore::InspectorStyleSheet::addRule):
1300         * inspector/InspectorTimelineAgent.cpp:
1301         (WebCore::InspectorTimelineAgent::setInstruments):
1302         * loader/DocumentLoader.cpp:
1303         (WebCore::DocumentLoader::startIconLoading):
1304         * loader/DocumentThreadableLoader.cpp:
1305         (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
1306         (WebCore::DocumentThreadableLoader::clearResource):
1307         (WebCore::DocumentThreadableLoader::preflightSuccess):
1308         (WebCore::DocumentThreadableLoader::preflightFailure):
1309         * loader/DocumentThreadableLoader.h:
1310         * loader/EmptyClients.cpp:
1311         * loader/EmptyClients.h:
1312         * loader/FrameLoader.cpp:
1313         (WebCore::FrameLoader::urlSelected):
1314         (WebCore::FrameLoader::receivedFirstData):
1315         (WebCore::FrameLoader::commitProvisionalLoad):
1316         (WebCore::FrameLoader::open):
1317         (WebCore::FrameLoader::dispatchDidCommitLoad):
1318         (WebCore::FrameLoader::clearTestingOverrides):
1319         * loader/FrameLoader.h:
1320         * loader/FrameLoaderClient.h:
1321         * loader/LinkLoader.cpp:
1322         (WebCore::LinkLoader::resourceTypeFromAsAttribute):
1323         (WebCore::LinkLoader::loadLink):
1324         * loader/LinkLoader.h:
1325         * loader/SubresourceLoader.cpp:
1326         (WebCore::SubresourceLoader::SubresourceLoader):
1327         (WebCore::SubresourceLoader::didReceiveResponse):
1328         (WebCore::SubresourceLoader::notifyDone):
1329         * loader/SubresourceLoader.h:
1330         * loader/cache/CachedResource.cpp:
1331         (WebCore::CachedResource::setLoadPriority):
1332         * loader/cache/CachedResource.h:
1333         * loader/cache/CachedResourceRequest.cpp:
1334         (WebCore::CachedResourceRequest::CachedResourceRequest):
1335         * loader/cache/CachedResourceRequest.h:
1336         (WebCore::CachedResourceRequest::priority):
1337         * mathml/MathMLElement.h:
1338         (WebCore::MathMLElement::specifiedDisplayStyle):
1339         (WebCore::MathMLElement::specifiedMathVariant):
1340         * mathml/MathMLFractionElement.cpp:
1341         (WebCore::MathMLFractionElement::cachedFractionAlignment):
1342         (WebCore::MathMLFractionElement::parseAttribute):
1343         * mathml/MathMLFractionElement.h:
1344         * mathml/MathMLMathElement.cpp:
1345         (WebCore::MathMLMathElement::specifiedDisplayStyle):
1346         (WebCore::MathMLMathElement::parseAttribute):
1347         * mathml/MathMLMathElement.h:
1348         * mathml/MathMLMencloseElement.cpp:
1349         (WebCore::MathMLMencloseElement::parseAttribute):
1350         * mathml/MathMLMencloseElement.h:
1351         * mathml/MathMLOperatorDictionary.cpp:
1352         (WebCore::MathMLOperatorDictionary::search):
1353         * mathml/MathMLOperatorDictionary.h:
1354         * mathml/MathMLOperatorElement.cpp:
1355         (WebCore::MathMLOperatorElement::computeOperatorFlag):
1356         (WebCore::MathMLOperatorElement::childrenChanged):
1357         (WebCore::attributeNameToPropertyFlag):
1358         (WebCore::MathMLOperatorElement::parseAttribute):
1359         * mathml/MathMLOperatorElement.h:
1360         * mathml/MathMLPaddedElement.cpp:
1361         (WebCore::MathMLPaddedElement::parseAttribute):
1362         * mathml/MathMLPaddedElement.h:
1363         * mathml/MathMLPresentationElement.cpp:
1364         (WebCore::MathMLPresentationElement::cachedBooleanAttribute):
1365         (WebCore::MathMLPresentationElement::cachedMathMLLength):
1366         (WebCore::MathMLPresentationElement::specifiedDisplayStyle):
1367         (WebCore::MathMLPresentationElement::specifiedMathVariant):
1368         (WebCore::MathMLPresentationElement::parseAttribute):
1369         * mathml/MathMLPresentationElement.h:
1370         (WebCore::MathMLPresentationElement::toOptionalBool):
1371         * mathml/MathMLScriptsElement.cpp:
1372         (WebCore::MathMLScriptsElement::parseAttribute):
1373         * mathml/MathMLScriptsElement.h:
1374         * mathml/MathMLSpaceElement.cpp:
1375         (WebCore::MathMLSpaceElement::parseAttribute):
1376         * mathml/MathMLSpaceElement.h:
1377         * mathml/MathMLTokenElement.cpp:
1378         (WebCore::MathMLTokenElement::convertToSingleCodePoint):
1379         * mathml/MathMLTokenElement.h:
1380         * mathml/MathMLUnderOverElement.cpp:
1381         (WebCore::MathMLUnderOverElement::parseAttribute):
1382         * mathml/MathMLUnderOverElement.h:
1383         * page/ChromeClient.h:
1384         * page/DOMTimer.cpp:
1385         (WebCore::DOMTimer::alignedFireTime):
1386         * page/DOMTimer.h:
1387         * page/DOMWindow.cpp:
1388         (WebCore::DOMWindow::scrollBy):
1389         * page/DOMWindow.h:
1390         * page/EventSource.cpp:
1391         (WebCore::EventSource::parseEventStream):
1392         (WebCore::EventSource::parseEventStreamLine):
1393         * page/EventSource.h:
1394         * page/FrameView.cpp:
1395         (WebCore::FrameView::recalculateScrollbarOverlayStyle):
1396         (WebCore::FrameView::setLayoutViewportOverrideRect):
1397         (WebCore::FrameView::setViewExposedRect):
1398         * page/FrameView.h:
1399         * page/Page.cpp:
1400         (WebCore::Page::takeAnyMediaCanStartListener):
1401         * page/Page.h:
1402         (WebCore::Page::eventThrottlingBehaviorOverride):
1403         (WebCore::Page::setEventThrottlingBehaviorOverride):
1404         * page/ScrollToOptions.h:
1405         * page/SecurityOrigin.cpp:
1406         (WebCore::SecurityOrigin::SecurityOrigin):
1407         (WebCore::SecurityOrigin::create):
1408         * page/SecurityOrigin.h:
1409         (WebCore::SecurityOrigin::port):
1410         * page/SecurityOriginData.cpp:
1411         (WebCore::SecurityOriginData::debugString):
1412         (WebCore::SecurityOriginData::databaseIdentifier):
1413         (WebCore::SecurityOriginData::fromDatabaseIdentifier):
1414         * page/SecurityOriginData.h:
1415         (WebCore::SecurityOriginData::SecurityOriginData):
1416         (WebCore::SecurityOriginData::isEmpty):
1417         (WebCore::SecurityOriginDataHash::hash):
1418         * page/SecurityOriginHash.h:
1419         (WebCore::SecurityOriginHash::hash):
1420         * page/WindowFeatures.cpp:
1421         (WebCore::parseDialogFeatures):
1422         (WebCore::boolFeature):
1423         (WebCore::floatFeature):
1424         * page/WindowFeatures.h:
1425         * page/csp/ContentSecurityPolicySource.cpp:
1426         (WebCore::ContentSecurityPolicySource::ContentSecurityPolicySource):
1427         (WebCore::ContentSecurityPolicySource::portMatches):
1428         * page/csp/ContentSecurityPolicySource.h:
1429         * page/csp/ContentSecurityPolicySourceList.cpp:
1430         (WebCore::ContentSecurityPolicySourceList::parse):
1431         (WebCore::ContentSecurityPolicySourceList::parseSource):
1432         (WebCore::ContentSecurityPolicySourceList::parsePort):
1433         * page/csp/ContentSecurityPolicySourceList.h:
1434         * page/scrolling/AsyncScrollingCoordinator.cpp:
1435         (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
1436         (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
1437         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
1438         (WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
1439         * page/scrolling/AsyncScrollingCoordinator.h:
1440         (WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::ScheduledScrollUpdate):
1441         * page/scrolling/ScrollingCoordinator.h:
1442         * page/scrolling/ScrollingTree.cpp:
1443         (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
1444         * page/scrolling/ScrollingTree.h:
1445         * page/scrolling/ScrollingTreeScrollingNode.cpp:
1446         (WebCore::ScrollingTreeScrollingNode::setScrollPositionWithoutContentEdgeConstraints):
1447         * page/scrolling/ThreadedScrollingTree.cpp:
1448         (WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
1449         * page/scrolling/ThreadedScrollingTree.h:
1450         * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
1451         (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
1452         * page/scrolling/ios/ScrollingTreeIOS.cpp:
1453         (WebCore::ScrollingTreeIOS::scrollingTreeNodeDidScroll):
1454         * page/scrolling/ios/ScrollingTreeIOS.h:
1455         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
1456         (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
1457         * platform/DragImage.cpp:
1458         * platform/LinkIcon.h:
1459         * platform/MemoryPressureHandler.h:
1460         * platform/ScrollView.cpp:
1461         (WebCore::ScrollView::handleDeferredScrollUpdateAfterContentSizeChange):
1462         * platform/ScrollView.h:
1463         * platform/Theme.h:
1464         (WebCore::Theme::controlFont):
1465         * platform/Timer.h:
1466         (WebCore::TimerBase::alignedFireTime):
1467         * platform/URL.cpp:
1468         (WebCore::URL::port):
1469         (WebCore::defaultPortForProtocol):
1470         (WebCore::portAllowed):
1471         * platform/URL.h:
1472         * platform/URLParser.cpp:
1473         (WebCore::URLParser::defaultPortForProtocol):
1474         (WebCore::findLongestZeroSequence):
1475         (WebCore::URLParser::parseIPv4Piece):
1476         (WebCore::URLParser::parseIPv4Host):
1477         (WebCore::URLParser::parseIPv4PieceInsideIPv6):
1478         (WebCore::URLParser::parseIPv4AddressInsideIPv6):
1479         (WebCore::URLParser::parseIPv6Host):
1480         (WebCore::URLParser::domainToASCII):
1481         (WebCore::URLParser::formURLDecode):
1482         * platform/URLParser.h:
1483         * platform/graphics/BitmapImage.h:
1484         * platform/graphics/Color.h:
1485         (WebCore::colorWithOverrideAlpha):
1486         * platform/graphics/DisplayRefreshMonitorClient.h:
1487         * platform/graphics/Font.h:
1488         * platform/graphics/FontCascade.cpp:
1489         (WebCore::FontCascade::drawText):
1490         (WebCore::FontCascade::drawEmphasisMarks):
1491         (WebCore::FontCascade::adjustSelectionRectForText):
1492         (WebCore::FontCascade::getEmphasisMarkGlyphData):
1493         (WebCore::FontCascade::emphasisMarkAscent):
1494         (WebCore::FontCascade::emphasisMarkDescent):
1495         (WebCore::FontCascade::emphasisMarkHeight):
1496         * platform/graphics/FontCascade.h:
1497         * platform/graphics/GraphicsContext.cpp:
1498         (WebCore::GraphicsContext::drawText):
1499         (WebCore::GraphicsContext::drawEmphasisMarks):
1500         (WebCore::GraphicsContext::drawBidiText):
1501         * platform/graphics/GraphicsContext.h:
1502         (WebCore::InterpolationQualityMaintainer::InterpolationQualityMaintainer):
1503         * platform/graphics/GraphicsLayer.h:
1504         (WebCore::GraphicsLayer::setPosition):
1505         (WebCore::GraphicsLayer::setApproximatePosition):
1506         * platform/graphics/Image.h:
1507         (WebCore::Image::hotSpot):
1508         * platform/graphics/ImageBuffer.h:
1509         * platform/graphics/ImageFrameCache.cpp:
1510         (WebCore::ImageFrameCache::clearMetadata):
1511         (WebCore::ImageFrameCache::metadata):
1512         (WebCore::ImageFrameCache::frameMetadataAtIndex):
1513         (WebCore::ImageFrameCache::hotSpot):
1514         * platform/graphics/ImageFrameCache.h:
1515         * platform/graphics/ImageSource.h:
1516         (WebCore::ImageSource::hotSpot):
1517         * platform/graphics/PathUtilities.cpp:
1518         (WebCore::rectFromPolygon):
1519         (WebCore::PathUtilities::pathWithShrinkWrappedRectsForOutline):
1520         * platform/graphics/ShadowBlur.cpp:
1521         (WebCore::ShadowBlur::calculateLayerBoundingRect):
1522         * platform/graphics/TiledBacking.h:
1523         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1524         (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
1525         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
1526         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
1527         (WebCore::SourceBufferPrivateAVFObjC::flush):
1528         (WebCore::SourceBufferPrivateAVFObjC::naturalSize):
1529         * platform/graphics/ca/GraphicsLayerCA.cpp:
1530         (WebCore::GraphicsLayerCA::computeVisibleAndCoverageRect):
1531         * platform/graphics/ca/TileController.cpp:
1532         (WebCore::TileController::setLayoutViewportRect):
1533         * platform/graphics/ca/TileController.h:
1534         * platform/graphics/cairo/ImageBufferCairo.cpp:
1535         (WebCore::ImageBuffer::toDataURL):
1536         * platform/graphics/cg/ImageBufferCG.cpp:
1537         (WebCore::encodeImage):
1538         (WebCore::dataURL):
1539         (WebCore::ImageBuffer::toDataURL):
1540         * platform/graphics/cg/ImageDecoderCG.cpp:
1541         (WebCore::ImageDecoder::hotSpot):
1542         * platform/graphics/cg/ImageDecoderCG.h:
1543         * platform/graphics/cocoa/FontCocoa.mm:
1544         (WebCore::openTypeFeature):
1545         (WebCore::advanceForColorBitmapFont):
1546         * platform/graphics/displaylists/DisplayListItems.cpp:
1547         (WebCore::DisplayList::DrawGlyphs::localBounds):
1548         (WebCore::DisplayList::DrawLine::localBounds):
1549         (WebCore::DisplayList::DrawLinesForText::localBounds):
1550         (WebCore::DisplayList::DrawLineForDocumentMarker::localBounds):
1551         (WebCore::DisplayList::DrawFocusRingPath::localBounds):
1552         (WebCore::DisplayList::DrawFocusRingRects::localBounds):
1553         (WebCore::DisplayList::StrokeRect::localBounds):
1554         (WebCore::DisplayList::StrokePath::localBounds):
1555         (WebCore::DisplayList::StrokeEllipse::localBounds):
1556         * platform/graphics/displaylists/DisplayListItems.h:
1557         (WebCore::DisplayList::DrawingItem::localBounds):
1558         * platform/graphics/displaylists/DisplayListRecorder.cpp:
1559         (WebCore::DisplayList::Recorder::updateItemExtent):
1560         (WebCore::DisplayList::Recorder::ContextState::rotate):
1561         (WebCore::DisplayList::Recorder::ContextState::concatCTM):
1562         * platform/graphics/efl/ImageBufferEfl.cpp:
1563         (WebCore::encodeImageJPEG):
1564         (WebCore::ImageBuffer::toDataURL):
1565         * platform/graphics/filters/Filter.h:
1566         (WebCore::Filter::mapAbsolutePointToLocalPoint):
1567         * platform/graphics/gtk/ImageBufferGtk.cpp:
1568         (WebCore::encodeImage):
1569         (WebCore::ImageBuffer::toDataURL):
1570         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
1571         (WebCore::HarfBuzzShaper::selectionRect):
1572         * platform/graphics/mac/ComplexTextController.cpp:
1573         (WebCore::capitalized):
1574         (WebCore::shouldSynthesize):
1575         * platform/graphics/texmap/TextureMapperLayer.cpp:
1576         (WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
1577         (WebCore::TextureMapperLayer::replicaTransform):
1578         (WebCore::TextureMapperLayer::mapScrollOffset):
1579         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
1580         (WebCore::CoordinatedGraphicsLayer::transformedVisibleRect):
1581         (WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
1582         * platform/graphics/transforms/AffineTransform.cpp:
1583         (WebCore::AffineTransform::inverse):
1584         * platform/graphics/transforms/AffineTransform.h:
1585         * platform/graphics/transforms/TransformState.cpp:
1586         (WebCore::TransformState::mappedPoint):
1587         (WebCore::TransformState::mappedSecondaryQuad):
1588         (WebCore::TransformState::mapQuad):
1589         (WebCore::TransformState::flattenWithTransform):
1590         * platform/graphics/transforms/TransformState.h:
1591         * platform/graphics/transforms/TransformationMatrix.cpp:
1592         (WebCore::TransformationMatrix::inverse):
1593         * platform/graphics/transforms/TransformationMatrix.h:
1594         * platform/graphics/win/ImageBufferDirect2D.cpp:
1595         (WebCore::ImageBuffer::toDataURL):
1596         * platform/graphics/win/ImageDecoderDirect2D.cpp:
1597         (WebCore::ImageDecoder::hotSpot):
1598         * platform/graphics/win/ImageDecoderDirect2D.h:
1599         * platform/graphics/x11/PlatformDisplayX11.cpp:
1600         (WebCore::PlatformDisplayX11::supportsXDamage):
1601         * platform/graphics/x11/PlatformDisplayX11.h:
1602         * platform/image-decoders/ImageDecoder.h:
1603         (WebCore::ImageDecoder::hotSpot):
1604         * platform/image-decoders/ico/ICOImageDecoder.cpp:
1605         (WebCore::ICOImageDecoder::hotSpot):
1606         (WebCore::ICOImageDecoder::hotSpotAtIndex):
1607         * platform/image-decoders/ico/ICOImageDecoder.h:
1608         * platform/image-encoders/JPEGImageEncoder.cpp:
1609         (WebCore::compressRGBABigEndianToJPEG):
1610         * platform/image-encoders/JPEGImageEncoder.h:
1611         * platform/ios/LegacyTileCache.h:
1612         * platform/ios/LegacyTileCache.mm:
1613         (WebCore::LegacyTileCache::setOverrideVisibleRect):
1614         * platform/ios/LegacyTileLayer.mm:
1615         (-[LegacyTileHostLayer renderInContext:]):
1616         * platform/linux/MemoryPressureHandlerLinux.cpp:
1617         * platform/mac/ThemeMac.h:
1618         * platform/mac/ThemeMac.mm:
1619         (WebCore::ThemeMac::controlFont):
1620         * platform/mediastream/MediaConstraints.cpp:
1621         (WebCore::MediaTrackConstraintSetMap::set):
1622         * platform/mediastream/MediaConstraints.h:
1623         (WebCore::MediaTrackConstraintSetMap::width):
1624         (WebCore::MediaTrackConstraintSetMap::height):
1625         (WebCore::MediaTrackConstraintSetMap::sampleRate):
1626         (WebCore::MediaTrackConstraintSetMap::sampleSize):
1627         (WebCore::MediaTrackConstraintSetMap::aspectRatio):
1628         (WebCore::MediaTrackConstraintSetMap::frameRate):
1629         (WebCore::MediaTrackConstraintSetMap::volume):
1630         (WebCore::MediaTrackConstraintSetMap::echoCancellation):
1631         (WebCore::MediaTrackConstraintSetMap::facingMode):
1632         (WebCore::MediaTrackConstraintSetMap::deviceId):
1633         (WebCore::MediaTrackConstraintSetMap::groupId):
1634         * platform/mediastream/RealtimeMediaSource.cpp:
1635         (WebCore::RealtimeMediaSource::supportsSizeAndFrameRate):
1636         (WebCore::RealtimeMediaSource::applySizeAndFrameRate):
1637         (WebCore::RealtimeMediaSource::applyConstraints):
1638         * platform/mediastream/RealtimeMediaSource.h:
1639         * platform/mediastream/mac/AVVideoCaptureSource.h:
1640         * platform/mediastream/mac/AVVideoCaptureSource.mm:
1641         (WebCore::AVVideoCaptureSource::applySizeAndFrameRate):
1642         (WebCore::AVVideoCaptureSource::bestSessionPresetForVideoDimensions):
1643         (WebCore::AVVideoCaptureSource::supportsSizeAndFrameRate):
1644         * platform/mediastream/openwebrtc/MediaEndpointOwr.h:
1645         * platform/network/CacheValidation.cpp:
1646         (WebCore::computeCurrentAge):
1647         (WebCore::computeFreshnessLifetimeForHTTPFamily):
1648         * platform/network/CacheValidation.h:
1649         * platform/network/DataURLDecoder.h:
1650         * platform/network/HTTPHeaderMap.h:
1651         (WebCore::HTTPHeaderMap::HTTPHeaderMapConstIterator::updateKeyValue):
1652         * platform/network/HTTPParsers.cpp:
1653         (WebCore::parseHTTPDate):
1654         * platform/network/HTTPParsers.h:
1655         * platform/network/ResourceHandle.cpp:
1656         (WebCore::ResourceHandle::didReceiveResponse):
1657         * platform/network/ResourceResponseBase.cpp:
1658         (WebCore::ResourceResponseBase::cacheControlMaxAge):
1659         (WebCore::parseDateValueInHeader):
1660         (WebCore::ResourceResponseBase::date):
1661         (WebCore::ResourceResponseBase::age):
1662         (WebCore::ResourceResponseBase::expires):
1663         (WebCore::ResourceResponseBase::lastModified):
1664         * platform/network/ResourceResponseBase.h:
1665         (WebCore::ResourceResponseBase::certificateInfo):
1666         * platform/network/SocketStreamHandle.h:
1667         * platform/network/SocketStreamHandleClient.h:
1668         * platform/network/cf/SocketStreamHandleImpl.h:
1669         * platform/network/cf/SocketStreamHandleImplCFNet.cpp:
1670         (WebCore::SocketStreamHandleImpl::readStreamCallback):
1671         (WebCore::SocketStreamHandleImpl::platformSend):
1672         * platform/network/curl/SocketStreamHandleImpl.h:
1673         * platform/network/curl/SocketStreamHandleImplCurl.cpp:
1674         (WebCore::SocketStreamHandleImpl::platformSend):
1675         * platform/network/mac/CookieJarMac.mm:
1676         (WebCore::cookiesInPartitionForURL):
1677         * platform/network/soup/SocketStreamHandleImpl.h:
1678         * platform/network/soup/SocketStreamHandleImplSoup.cpp:
1679         (WebCore::SocketStreamHandleImpl::readBytes):
1680         (WebCore::SocketStreamHandleImpl::platformSend):
1681         * rendering/BreakLines.h:
1682         (WebCore::nextBreakablePositionNonLoosely):
1683         (WebCore::nextBreakablePositionLoosely):
1684         (WebCore::isBreakable):
1685         * rendering/HitTestingTransformState.cpp:
1686         (WebCore::HitTestingTransformState::flattenWithTransform):
1687         * rendering/ImageQualityController.cpp:
1688         (WebCore::ImageQualityController::interpolationQualityFromStyle):
1689         (WebCore::ImageQualityController::chooseInterpolationQuality):
1690         * rendering/ImageQualityController.h:
1691         * rendering/InlineIterator.h:
1692         (WebCore::InlineIterator::moveTo):
1693         (WebCore::InlineIterator::nextBreakablePosition):
1694         (WebCore::InlineIterator::setNextBreakablePosition):
1695         * rendering/InlineTextBox.cpp:
1696         (WebCore::InlineTextBox::paintSelection):
1697         (WebCore::InlineTextBox::substringToRender):
1698         (WebCore::InlineTextBox::hyphenatedStringForTextRun):
1699         (WebCore::InlineTextBox::constructTextRun):
1700         * rendering/InlineTextBox.h:
1701         (WebCore::InlineTextBox::substringToRender):
1702         (WebCore::InlineTextBox::hyphenatedStringForTextRun):
1703         (WebCore::InlineTextBox::constructTextRun):
1704         * rendering/OrderIterator.cpp:
1705         (WebCore::OrderIterator::reset):
1706         * rendering/OrderIterator.h:
1707         * rendering/PaintInfo.h:
1708         (WebCore::PaintInfo::applyTransform):
1709         * rendering/RenderBlock.cpp:
1710         (WebCore::RenderBlockRareData::RenderBlockRareData):
1711         (WebCore::RenderBlock::baselinePosition):
1712         (WebCore::RenderBlock::firstLineBaseline):
1713         (WebCore::RenderBlock::inlineBlockBaseline):
1714         (WebCore::RenderBlock::setCachedFlowThreadContainingBlockNeedsUpdate):
1715         * rendering/RenderBlock.h:
1716         * rendering/RenderBlockFlow.cpp:
1717         (WebCore::RenderBlockFlow::firstLineBaseline):
1718         (WebCore::RenderBlockFlow::inlineBlockBaseline):
1719         * rendering/RenderBlockFlow.h:
1720         * rendering/RenderBox.cpp:
1721         (WebCore::RenderBox::constrainLogicalHeightByMinMax):
1722         (WebCore::RenderBox::constrainContentBoxLogicalHeightByMinMax):
1723         (WebCore::RenderBox::overrideContainingBlockContentLogicalWidth):
1724         (WebCore::RenderBox::overrideContainingBlockContentLogicalHeight):
1725         (WebCore::RenderBox::setOverrideContainingBlockContentLogicalWidth):
1726         (WebCore::RenderBox::setOverrideContainingBlockContentLogicalHeight):
1727         (WebCore::RenderBox::adjustContentBoxLogicalHeightForBoxSizing):
1728         (WebCore::RenderBox::computeLogicalHeight):
1729         (WebCore::RenderBox::computeLogicalHeightUsing):
1730         (WebCore::RenderBox::computeContentLogicalHeight):
1731         (WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing):
1732         (WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing):
1733         (WebCore::RenderBox::computePercentageLogicalHeight):
1734         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
1735         (WebCore::RenderBox::availableLogicalHeight):
1736         (WebCore::RenderBox::availableLogicalHeightUsing):
1737         * rendering/RenderBox.h:
1738         (WebCore::RenderBox::firstLineBaseline):
1739         (WebCore::RenderBox::inlineBlockBaseline):
1740         * rendering/RenderCombineText.cpp:
1741         (WebCore::RenderCombineText::computeTextOrigin):
1742         * rendering/RenderCombineText.h:
1743         * rendering/RenderDeprecatedFlexibleBox.cpp:
1744         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
1745         * rendering/RenderFlexibleBox.cpp:
1746         (WebCore::RenderFlexibleBox::baselinePosition):
1747         (WebCore::RenderFlexibleBox::firstLineBaseline):
1748         (WebCore::RenderFlexibleBox::inlineBlockBaseline):
1749         (WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
1750         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
1751         (WebCore::RenderFlexibleBox::marginBoxAscentForChild):
1752         (WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing):
1753         (WebCore::RenderFlexibleBox::adjustChildSizeForAspectRatioCrossAxisMinAndMax):
1754         (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
1755         * rendering/RenderFlexibleBox.h:
1756         * rendering/RenderFlowThread.cpp:
1757         (WebCore::RenderFlowThread::addForcedRegionBreak):
1758         * rendering/RenderGrid.cpp:
1759         (WebCore::GridTrack::setGrowthLimit):
1760         (WebCore::GridTrack::setGrowthLimitCap):
1761         (WebCore::GridTrack::growthLimitCap):
1762         (WebCore::RenderGrid::GridSizingData::freeSpace):
1763         (WebCore::RenderGrid::GridSizingData::availableSpace):
1764         (WebCore::RenderGrid::GridSizingData::setAvailableSpace):
1765         (WebCore::RenderGrid::GridSizingData::setFreeSpace):
1766         (WebCore::RenderGrid::layoutBlock):
1767         (WebCore::RenderGrid::computeIntrinsicLogicalWidths):
1768         (WebCore::RenderGrid::computeIntrinsicLogicalHeight):
1769         (WebCore::RenderGrid::computeIntrinsicLogicalContentHeightUsing):
1770         (WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
1771         (WebCore::overrideContainingBlockContentSizeForChild):
1772         (WebCore::setOverrideContainingBlockContentSizeForChild):
1773         (WebCore::RenderGrid::logicalHeightForChild):
1774         (WebCore::RenderGrid::minSizeForChild):
1775         (WebCore::RenderGrid::minContentForChild):
1776         (WebCore::RenderGrid::maxContentForChild):
1777         (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForNonSpanningItems):
1778         (WebCore::sortByGridTrackGrowthPotential):
1779         (WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
1780         (WebCore::RenderGrid::computeAutoRepeatTracksCount):
1781         (WebCore::RenderGrid::applyStretchAlignmentToTracksIfNeeded):
1782         (WebCore::RenderGrid::layoutGridItems):
1783         * rendering/RenderGrid.h:
1784         * rendering/RenderLayer.cpp:
1785         (WebCore::RenderLayer::paintLayerByApplyingTransform):
1786         (WebCore::RenderLayer::hitTestLayer):
1787         * rendering/RenderLayerBacking.cpp:
1788         * rendering/RenderListBox.cpp:
1789         (WebCore::RenderListBox::paintItem):
1790         (WebCore::RenderListBox::listIndexIsVisible):
1791         (WebCore::RenderListBox::computeFirstIndexesVisibleInPaddingTopBottomAreas):
1792         * rendering/RenderListBox.h:
1793         * rendering/RenderMenuList.h:
1794         * rendering/RenderMultiColumnSet.cpp:
1795         (WebCore::RenderMultiColumnSet::calculateMaxColumnHeight):
1796         * rendering/RenderTable.cpp:
1797         (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
1798         (WebCore::RenderTable::baselinePosition):
1799         (WebCore::RenderTable::inlineBlockBaseline):
1800         (WebCore::RenderTable::firstLineBaseline):
1801         * rendering/RenderTable.h:
1802         * rendering/RenderTableCell.cpp:
1803         (WebCore::RenderTableCell::cellBaselinePosition):
1804         * rendering/RenderTableSection.cpp:
1805         (WebCore::RenderTableSection::firstLineBaseline):
1806         * rendering/RenderTableSection.h:
1807         * rendering/RenderText.cpp:
1808         (WebCore::RenderText::computePreferredLogicalWidths):
1809         (WebCore::RenderText::stringView):
1810         * rendering/RenderText.h:
1811         * rendering/RenderTextControl.h:
1812         * rendering/RenderView.cpp:
1813         (WebCore::RenderView::setSelection):
1814         (WebCore::RenderView::splitSelectionBetweenSubtrees):
1815         (WebCore::RenderView::getSelection):
1816         (WebCore::RenderView::clearSelection):
1817         * rendering/RenderView.h:
1818         * rendering/SelectionSubtreeRoot.h:
1819         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::SelectionSubtreeData):
1820         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::selectionStartPos):
1821         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::selectionEndPos):
1822         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::setSelectionStartPos):
1823         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::setSelectionEndPos):
1824         (WebCore::SelectionSubtreeRoot::SelectionSubtreeData::clearSelection):
1825         * rendering/SimpleLineLayout.cpp:
1826         (WebCore::SimpleLineLayout::LineState::lastFragment):
1827         (WebCore::SimpleLineLayout::closeLineEndingAndAdjustRuns):
1828         (WebCore::SimpleLineLayout::createTextRuns):
1829         * rendering/SimpleLineLayoutFunctions.cpp:
1830         (WebCore::SimpleLineLayout::paintFlow):
1831         * rendering/line/BreakingContext.h:
1832         (WebCore::WordTrailingSpace::width):
1833         (WebCore::BreakingContext::commitLineBreakAtCurrentWidth):
1834         (WebCore::BreakingContext::InlineIteratorHistory::nextBreakablePosition):
1835         (WebCore::BreakingContext::InlineIteratorHistory::moveTo):
1836         (WebCore::tryHyphenating):
1837         (WebCore::BreakingContext::computeAdditionalBetweenWordsWidth):
1838         (WebCore::BreakingContext::handleText):
1839         (WebCore::BreakingContext::optimalLineBreakLocationForTrailingWord):
1840         * rendering/mathml/MathMLStyle.cpp:
1841         (WebCore::MathMLStyle::resolveMathMLStyle):
1842         * rendering/mathml/RenderMathMLBlock.cpp:
1843         (WebCore::RenderMathMLBlock::baselinePosition):
1844         (WebCore::RenderMathMLTable::firstLineBaseline):
1845         * rendering/mathml/RenderMathMLBlock.h:
1846         (WebCore::RenderMathMLBlock::ascentForChild):
1847         * rendering/mathml/RenderMathMLFraction.cpp:
1848         (WebCore::RenderMathMLFraction::firstLineBaseline):
1849         * rendering/mathml/RenderMathMLFraction.h:
1850         * rendering/mathml/RenderMathMLOperator.cpp:
1851         (WebCore::RenderMathMLOperator::firstLineBaseline):
1852         * rendering/mathml/RenderMathMLOperator.h:
1853         * rendering/mathml/RenderMathMLPadded.cpp:
1854         (WebCore::RenderMathMLPadded::firstLineBaseline):
1855         * rendering/mathml/RenderMathMLPadded.h:
1856         * rendering/mathml/RenderMathMLRow.cpp:
1857         (WebCore::RenderMathMLRow::firstLineBaseline):
1858         * rendering/mathml/RenderMathMLRow.h:
1859         * rendering/mathml/RenderMathMLScripts.cpp:
1860         (WebCore::RenderMathMLScripts::validateAndGetReferenceChildren):
1861         (WebCore::RenderMathMLScripts::firstLineBaseline):
1862         * rendering/mathml/RenderMathMLScripts.h:
1863         * rendering/mathml/RenderMathMLSpace.cpp:
1864         (WebCore::RenderMathMLSpace::firstLineBaseline):
1865         * rendering/mathml/RenderMathMLSpace.h:
1866         * rendering/mathml/RenderMathMLToken.cpp:
1867         (WebCore::RenderMathMLToken::updateMathVariantGlyph):
1868         (WebCore::RenderMathMLToken::firstLineBaseline):
1869         * rendering/mathml/RenderMathMLToken.h:
1870         * rendering/svg/RenderSVGContainer.cpp:
1871         (WebCore::RenderSVGContainer::nodeAtFloatPoint):
1872         * rendering/svg/RenderSVGForeignObject.cpp:
1873         (WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
1874         * rendering/svg/RenderSVGImage.cpp:
1875         (WebCore::RenderSVGImage::nodeAtFloatPoint):
1876         * rendering/svg/RenderSVGResourceClipper.cpp:
1877         (WebCore::RenderSVGResourceClipper::hitTestClipContent):
1878         * rendering/svg/RenderSVGResourceFilter.cpp:
1879         (WebCore::RenderSVGResourceFilter::postApplyResource):
1880         * rendering/svg/RenderSVGRoot.cpp:
1881         (WebCore::RenderSVGRoot::nodeAtPoint):
1882         * rendering/svg/RenderSVGShape.cpp:
1883         (WebCore::RenderSVGShape::setupNonScalingStrokeContext):
1884         (WebCore::RenderSVGShape::nodeAtFloatPoint):
1885         (WebCore::RenderSVGShape::calculateStrokeBoundingBox):
1886         * rendering/svg/RenderSVGText.cpp:
1887         (WebCore::RenderSVGText::nodeAtFloatPoint):
1888         * rendering/svg/SVGRenderSupport.cpp:
1889         (WebCore::SVGRenderSupport::intersectRepaintRectWithShadows):
1890         * rendering/svg/SVGRenderingContext.cpp:
1891         (WebCore::SVGRenderingContext::clipToImageBuffer):
1892         * rendering/svg/SVGTextQuery.cpp:
1893         (WebCore::SVGTextQuery::modifyStartEndPositionsRespectingLigatures):
1894         * style/RenderTreeUpdater.cpp:
1895         (WebCore::RenderTreeUpdater::Parent::Parent):
1896         * style/RenderTreeUpdater.h:
1897         * style/StyleScope.h:
1898         * svg/SVGElement.cpp:
1899         (WebCore::SVGElement::parseAttribute):
1900         (WebCore::SVGElement::resolveCustomStyle):
1901         * svg/SVGElement.h:
1902         * svg/SVGToOTFFontConversion.cpp:
1903         (WebCore::SVGToOTFFontConverter::transcodeGlyphPaths):
1904         (WebCore::SVGToOTFFontConverter::processGlyphElement):
1905         (WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):
1906         (WebCore::convertSVGToOTFFont):
1907         * svg/SVGToOTFFontConversion.h:
1908         * testing/Internals.cpp:
1909         (WebCore::Internals::setEventThrottlingBehaviorOverride):
1910         (WebCore::Internals::eventThrottlingBehaviorOverride):
1911         * testing/Internals.h:
1912         * workers/Worker.h:
1913         * xml/XMLHttpRequest.cpp:
1914         (WebCore::XMLHttpRequest::prepareToSend):
1915         (WebCore::XMLHttpRequest::didFinishLoading):
1916         * xml/XMLHttpRequest.h:
1917
1918 2016-11-26  Csaba Osztrogonác  <ossy@webkit.org>
1919
1920         Fix build warnings in WebCore/Modules/indexeddb/server/IDBSerialization.cp
1921         https://bugs.webkit.org/show_bug.cgi?id=165070
1922
1923         Reviewed by Brady Eidson.
1924
1925         * Modules/indexeddb/server/IDBSerialization.cpp:
1926
1927 2016-11-26  Sam Weinig  <sam@webkit.org>
1928
1929         Convert IntersectionObserver over to using RuntimeEnabledFeatures so it can be properly excluded from script
1930         https://bugs.webkit.org/show_bug.cgi?id=164965
1931
1932         Reviewed by Simon Fraser.
1933
1934         * bindings/generic/RuntimeEnabledFeatures.cpp:
1935         (WebCore::RuntimeEnabledFeatures::reset):
1936         * bindings/generic/RuntimeEnabledFeatures.h:
1937         (WebCore::RuntimeEnabledFeatures::setIntersectionObserverEnabled):
1938         (WebCore::RuntimeEnabledFeatures::intersectionObserverEnabled):
1939         Add intersection observer setting.
1940
1941         * page/IntersectionObserver.idl:
1942         * page/IntersectionObserverEntry.idl:
1943         Convert to use EnabledAtRuntime extended attribute.
1944
1945         * page/Settings.in:
1946         Remove the old intersection observer setting.
1947
1948 2016-11-26  Simon Fraser  <simon.fraser@apple.com>
1949
1950         Migrate some layout timer-related code from std::chrono to Seconds and MonotonicTime
1951         https://bugs.webkit.org/show_bug.cgi?id=164992
1952
1953         Reviewed by Darin Adler.
1954
1955         std::chrono::milliseconds -> Seconds.
1956         
1957         Rename Document::elapsedTime() to timeSinceDocumentCreation() which is more explicit.
1958         
1959         Replace INSTRUMENT_LAYOUT_SCHEDULING with LOG(Layout...).
1960
1961         * dom/Document.cpp:
1962         (WebCore::Document::Document):
1963         (WebCore::Document::implicitClose):
1964         (WebCore::Document::isLayoutTimerActive):
1965         (WebCore::Document::minimumLayoutDelay):
1966         (WebCore::Document::timeSinceDocumentCreation):
1967         (WebCore::Document::elapsedTime): Deleted.
1968         * dom/Document.h:
1969         * page/ChromeClient.h:
1970         * page/FrameView.cpp:
1971         (WebCore::FrameView::layout):
1972         (WebCore::FrameView::scrollPositionChanged):
1973         (WebCore::FrameView::layoutTimerFired):
1974         (WebCore::FrameView::scheduleRelayout):
1975         (WebCore::FrameView::scheduleRelayoutOfSubtree):
1976         (WebCore::FrameView::unscheduleRelayout):
1977         * page/Settings.cpp:
1978         (WebCore::Settings::setLayoutInterval):
1979         * page/Settings.h:
1980         (WebCore::Settings::layoutInterval):
1981         * style/StyleScope.cpp:
1982         (WebCore::Style::Scope::removePendingSheet):
1983         * workers/WorkerRunLoop.cpp:
1984         (WebCore::WorkerRunLoop::runInMode):
1985
1986 2016-11-26  Simon Fraser  <simon.fraser@apple.com>
1987
1988         Composited negative z-index elements are hidden behind the body sometimes
1989         https://bugs.webkit.org/show_bug.cgi?id=165080
1990         rdar://problem/22260229
1991
1992         Reviewed by Zalan Bujtas.
1993
1994         If the <body> falls into the "directly composited background color" code path
1995         (say, because it's composited because of composited negative z-index children,
1996         and has content of its own), then we failed to take root background propagation
1997         into account, and put the opaque root background color on the body's layer.
1998
1999         Fix by sharing some code from RenderBox related to whether the body's renderer
2000         paints its background.
2001         
2002         Tests cover the buggy case, and the case where the <html> has its own background color.
2003
2004         Tests: compositing/backgrounds/negative-z-index-behind-body-non-propagated.html
2005                compositing/backgrounds/negative-z-index-behind-body.html
2006
2007         * rendering/RenderBox.cpp:
2008         (WebCore::RenderBox::paintsOwnBackground):
2009         (WebCore::RenderBox::paintBackground):
2010         (WebCore::RenderBox::backgroundIsKnownToBeOpaqueInRect):
2011         (WebCore::skipBodyBackground): Deleted.
2012         * rendering/RenderBox.h:
2013         * rendering/RenderLayerBacking.cpp:
2014         (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor):
2015
2016 2016-11-25  Myles C. Maxfield  <mmaxfield@apple.com>
2017
2018         [CSS Font Loading] FontFace.load() promises don't always fire
2019         https://bugs.webkit.org/show_bug.cgi?id=165037
2020
2021         Reviewed by Simon Fraser.
2022
2023         We currently handle web fonts in two phases. The first phase is building up
2024         StyleRuleFontFace objects which reflect the style on the page. The second is creating
2025         CSSFontFace objects from those StyleRuleFontFace objects. When script modifies the
2026         style on the page, we can often update the CSSFontFace objects, but there are some
2027         modifications which we don't know how to model. For these operations, we destroy the
2028         CSSFontFace objects and rebuild them from the newly modified StyleRuleFontFace objects.
2029
2030         Normally, this is fine. However, with the CSS font loading API, the CSSFontFaces back
2031         Javascript objects which will persist across the rebuilding step mentioned above. This
2032         means that the FontFace objects need to adopt the new CSSFontFace objects and forget
2033         the old CSSFontFace objects.
2034
2035         This gets a little tricky because the operation which caused the rebuild may actually
2036         be a modification to the specific @font-face block which backs a Javascript FontFace
2037         object. Because the CSSOM can be used to change the src: attribute of the FontFace
2038         object, I decided in r201971 to clear the FontFace's promise in case an old load would
2039         cause the promise to resolve. However, this would never happen because the old
2040         CSSFontFace is unparented during the FontFace::adopt()ion of the new CSSFontFace.
2041         Therefore, old loads may still complete, but the signal would never make it to the
2042         FontFace and therefore would not cause the promise to resolve. In addition, clearing
2043         the promise during a rebuild is problematic because that rebuild may be caused by
2044         operations which have nothing to do with the specific FontFace object in question (so
2045         the FontFace object should be observably uneffected.)
2046
2047         Because of the above reasons, this patch simply stops clearing the promise during the
2048         rebuild phase.
2049
2050         Tests: fast/text/fontface-rebuild-during-loading.html
2051                fast/text/fontface-rebuild-during-loading-2.html
2052
2053         * css/FontFace.cpp:
2054         (WebCore::FontFace::adopt):
2055
2056 2016-11-25  Andreas Kling  <akling@apple.com>
2057
2058         MemoryPressureHandler should only trigger synchronous GC on iOS
2059         <https://webkit.org/b/165043>
2060         <rdar://problem/29312684>
2061
2062         Reviewed by Sam Weinig.
2063
2064         On iOS we know that there is really only one web process in play at a time,
2065         so it's okay to do a synchronous GC immediately in response to high memory pressure.
2066
2067         On other platforms, we may have tens or hundreds of web processes, and if they
2068         all start doing full GCs at the same time, it can easily bring a system to its knees
2069         if it's already under pressure.
2070
2071         Fix this by using garbageCollectSoon() on non-iOS platforms.
2072
2073         * page/MemoryRelease.cpp:
2074         (WebCore::releaseCriticalMemory):
2075
2076 2016-11-23  Sergio Villar Senin  <svillar@igalia.com>
2077
2078         [css-grid] Convert grid representation into a class
2079         https://bugs.webkit.org/show_bug.cgi?id=165042
2080
2081         Reviewed by Manuel Rego Casasnovas.
2082
2083         So far grids are represented as Vectors of Vectors. There are a couple of issues associated
2084         to that decision. First or all, the source code in RenderGrid assumes the existence of that
2085         data structure, meaning that we cannot eventually change it without changing a lot of
2086         code. Apart from the coupling there is another issue, RenderGrid is full of methods to
2087         access and manipulate that data structure.
2088
2089         Instead, it'd be much better to have a Grid class encapsulating both the data structures and
2090         the methods required to access/manipulate it. Note that follow-up patches will move even
2091         more data and procedures into this new class from the RenderGrid code.
2092
2093         No new tests required as this is a refactoring.
2094
2095         * rendering/RenderGrid.cpp:
2096         (WebCore::RenderGrid::Grid::ensureGridSize): Moved from RenderGrid.
2097         (WebCore::RenderGrid::Grid::insert): Ditto.
2098         (WebCore::RenderGrid::Grid::clear): Ditto.
2099         (WebCore::RenderGrid::GridIterator::GridIterator):
2100         (WebCore::RenderGrid::gridColumnCount): Use Grid's methods.
2101         (WebCore::RenderGrid::gridRowCount): Ditto.
2102         (WebCore::RenderGrid::placeItemsOnGrid): Use Grid's methods to insert children.
2103         (WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Ditto.
2104         (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid): Ditto.
2105         (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid): Ditto.
2106         (WebCore::RenderGrid::numTracks): Use Grid's methods.
2107         (WebCore::RenderGrid::ensureGridSize): Deleted. Moved to Grid class.
2108         (WebCore::RenderGrid::insertItemIntoGrid): Deleted. Moved to Grid class.
2109         * rendering/RenderGrid.h:
2110
2111 2016-11-24  Antti Koivisto  <antti@apple.com>
2112
2113         Remove unused bool return from Element::willRecalcStyle
2114         https://bugs.webkit.org/show_bug.cgi?id=165059
2115
2116         Reviewed by Andreas Kling.
2117
2118         It is always true.
2119
2120         * dom/Element.cpp:
2121         (WebCore::Element::willRecalcStyle):
2122         * dom/Element.h:
2123         * html/HTMLFrameSetElement.cpp:
2124         (WebCore::HTMLFrameSetElement::willRecalcStyle):
2125         * html/HTMLFrameSetElement.h:
2126         * html/HTMLPlugInImageElement.cpp:
2127         (WebCore::HTMLPlugInImageElement::willRecalcStyle):
2128         * html/HTMLPlugInImageElement.h:
2129         * style/StyleTreeResolver.cpp:
2130         (WebCore::Style::TreeResolver::resolveComposedTree):
2131         * svg/SVGElement.cpp:
2132         (WebCore::SVGElement::willRecalcStyle):
2133         * svg/SVGElement.h:
2134         * svg/SVGUseElement.cpp:
2135         (WebCore::SVGUseElement::willRecalcStyle):
2136         * svg/SVGUseElement.h:
2137
2138 2016-11-22  Antti Koivisto  <antti@apple.com>
2139
2140         CrashTracer: [USER] com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::ExtensionStyleSheets::pageUserSheet + 14
2141         https://bugs.webkit.org/show_bug.cgi?id=165030
2142
2143         Reviewed by Darin Adler.
2144
2145         We failed to reset the style scope when an element was moved to a different document. This could lead to having dangling
2146         document pointers in style scope and style resolver.
2147
2148         Test: fast/shadow-dom/shadow-host-move-to-different-document.html
2149
2150         * dom/ShadowRoot.cpp:
2151         (WebCore::ShadowRoot::didMoveToNewDocument):
2152
2153             Reset style scope.
2154
2155         * dom/ShadowRoot.h:
2156         * style/StyleScope.cpp:
2157         (WebCore::Style::Scope::resolver):
2158
2159             Some more assertions.
2160
2161         * style/StyleScope.h:
2162         (WebCore::Style::Scope::document):
2163
2164 2016-11-22  Darin Adler  <darin@apple.com>
2165
2166         Make normal case fast in the input element limitString function
2167         https://bugs.webkit.org/show_bug.cgi?id=165023
2168
2169         Reviewed by Dan Bernstein.
2170
2171         When running Speedometer, the limitLength function was showing up as hot.
2172         Fixed a couple obvious problems with that function's performance.
2173
2174         * html/TextFieldInputType.cpp:
2175         (WebCore::isASCIILineBreak): Deleted. The isHTMLLineBreak function does
2176         the same thing, but faster.
2177         (WebCore::limitLength): Added a FIXME comment explaining that the function
2178         isn't really a good idea. Don't call through to numCharactersInGraphemeClusters
2179         at all for 8-bit strings since we don't allow CR or LF characters in the string
2180         anyway, so there are no grapheme clusters more than a single code unit. Removed
2181         optimization when the length is the string's length that String::left already does.
2182         (WebCore::TextFieldInputType::sanitizeValue): Use isHTMLLineBreak instead of
2183         isASCIILineBreak.
2184         (WebCore::TextFieldInputType::handleBeforeTextInsertedEvent): Ditto.
2185
2186         * platform/LocalizedStrings.cpp: Use auto a lot more rather than writing out
2187         RetainPtr.
2188         (WebCore::truncatedStringForLookupMenuItem): Removed unneeded special case for
2189         empty strings. Removed unneeded string with the ellipsis character in it, since
2190         the makeString function already knows how to append a character to a string.
2191
2192         * rendering/RenderText.cpp:
2193         (WebCore::mapLineBreakToIteratorMode): Updated for change to LineBreakIteratorMode.
2194         * rendering/SimpleLineLayoutTextFragmentIterator.cpp:
2195         (WebCore::SimpleLineLayout::TextFragmentIterator::nextBreakablePosition): Ditto.
2196
2197 2016-11-21  Sergio Villar Senin  <svillar@igalia.com>
2198
2199         [css-grid] Isolate size of internal representation from actual grid size
2200         https://bugs.webkit.org/show_bug.cgi?id=165006
2201
2202         Reviewed by Manuel Rego Casasnovas.
2203
2204         RenderGrid has an internal representation of a grid used to place grid items, compute grid
2205         positions, run the track sizing algorithm etc. That data structure normally has exactly the
2206         same size as the actual grid specified using the grid-template-xxx properties (or any other
2207         shorthand). But in some cases, like for example when the grid is empty, the internal data
2208         structure does not really match the actual grid. In the particular case of empty grids no
2209         memory allocations are done to create a grid representation as it is not needed.
2210
2211         From now on both gridColumnCount() and gridRowCount() will always return the size of the
2212         data structure representing the grid whereas the newly added numTracks() will always return
2213         the actual size of the grid.
2214
2215         This is the first required step of the process of isolating the data used by the grid track
2216         sizing algorithm from the actual internal state of the LayoutGrid object.
2217
2218         No new tests as this is just a code refactoring.
2219
2220         * rendering/RenderGrid.cpp:
2221         (WebCore::RenderGrid::gridColumnCount): Always return the number of columns of the internal
2222         data structure to represent the grid.
2223         (WebCore::RenderGrid::layoutBlock):
2224         (WebCore::RenderGrid::computeIntrinsicLogicalWidths): Use the actual size of the grid to
2225         create the GridSizingData structure.
2226         (WebCore::RenderGrid::placeItemsOnGrid): Use the actual size of the grid to create the
2227         GridSizingData structure.
2228         (WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
2229         (WebCore::RenderGrid::numTracks): New method which returns the actual size of the grid.
2230         * rendering/RenderGrid.h:
2231
2232 2016-11-21  Konstantin Tokarev  <annulen@yandex.ru>
2233
2234         Disable #line markers in bison output on Windows
2235         https://bugs.webkit.org/show_bug.cgi?id=164973
2236
2237         Reviewed by Darin Adler.
2238
2239         New bison versions since 3.0 have bug that causes unescaped paths
2240         to be printed in #line directives. On Windows CMake passes absolute
2241         paths to bison that have backslashes in them, leading to compiler
2242         errors or warnings because of unrecognized escape sequences.
2243
2244         No new tests needed.
2245
2246         * css/makegrammar.pl:
2247
2248 2016-11-21  Olivier Blin  <olivier.blin@softathome.com>
2249
2250         [cmake][OpenWebRTC] Move SDPProcessorScriptResource rules to common WebCore
2251         https://bugs.webkit.org/show_bug.cgi?id=164937
2252
2253         Reviewed by Youenn Fablet.
2254
2255         SDPProcessorScriptResource has been moved in common mediastream directory (bug 163940).
2256
2257         Since it is not specific to the GTK port, the matching cmake rules should be
2258         moved out from PlatformGTK.cmake to the main WebCore CMakeLists.txt.
2259
2260         This is needed to build OpenWebRTC support in other ports, WPE in my case,
2261         probably Mac, EFL and Qt as well.
2262
2263         This also fixes the path in SDP scripts dependencies, the old openwebrtc subdir
2264         was still being used.
2265
2266         No new tests, build fix only
2267
2268         * CMakeLists.txt:
2269         * PlatformGTK.cmake:
2270
2271 2016-11-21  Carlos Garcia Campos  <cgarcia@igalia.com>
2272
2273         Add URL::hostAndPort()
2274         https://bugs.webkit.org/show_bug.cgi?id=164907
2275
2276         Reviewed by Alex Christensen.
2277
2278         As a convenient way of getting the host and port (if any) as a string.
2279
2280         * html/URLUtils.h:
2281         (WebCore::URLUtils<T>::host): Use URL::hostAndPort().
2282         * page/Location.cpp:
2283         (WebCore::Location::host): Ditto.
2284         * platform/URL.cpp:
2285         (WebCore::URL::hostAndPort): Return host:port or just host if there isn't a port.
2286         * platform/URL.h:
2287         * platform/network/CredentialStorage.cpp:
2288         (WebCore::originStringFromURL): Use URL::hostAndPort().
2289         * workers/WorkerLocation.cpp:
2290         (WebCore::WorkerLocation::host): Ditto.
2291
2292 2016-11-21  Philippe Normand  <pnormand@igalia.com>
2293
2294         [WebRTC][OpenWebRTC] parse turns urls
2295         https://bugs.webkit.org/show_bug.cgi?id=164587
2296
2297         Reviewed by Alejandro G. Castro.
2298
2299         * platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
2300         (WebCore::MediaEndpointOwr::ensureTransportAgentAndTransceivers):
2301         Hook turns servers between the RTCConfiguration and the underlying
2302         OpenWebRTC layer.
2303
2304 2016-11-21  Philippe Normand  <pnormand@igalia.com>
2305
2306         [Gstreamer] Add volume and mute support to the WebRTC mediaplayer
2307         https://bugs.webkit.org/show_bug.cgi?id=153828
2308
2309         Reviewed by Darin Adler.
2310
2311         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:
2312         (WebCore::MediaPlayerPrivateGStreamerOwr::setVolume): New implementation setting the OWR source volume property.
2313         (WebCore::MediaPlayerPrivateGStreamerOwr::setMuted): New implementation setting the OWR source mute property.
2314         (WebCore::MediaPlayerPrivateGStreamerOwr::maybeHandleChangeMutedState): Also set audio OWR source mute state depending on the track enabled state.
2315         (WebCore::MediaPlayerPrivateGStreamerOwr::trackEnabledChanged): chain to maybeHandleChangeMuteState.
2316         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.h:
2317
2318 2016-11-21  Alejandro G. Castro  <alex@igalia.com> and Philippe Normand  <pnormand@igalia.com>
2319
2320         [WebRTC][OpenWebRTC] RTP bundling support
2321         https://bugs.webkit.org/show_bug.cgi?id=162333
2322
2323         Reviewed by Alejandro G. Castro.
2324
2325         Configure the OpenWebRTC transport agent bundle policy according
2326         to the RTCConfiguration and pass the receive SSRCs over to
2327         OpenWebRTC as well. Those are needed so the agent is aware of the
2328         bundle layout.
2329
2330         * platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
2331         (WebCore::MediaEndpointOwr::updateReceiveConfiguration):
2332         (WebCore::MediaEndpointOwr::updateSendConfiguration):
2333         (WebCore::MediaEndpointOwr::ensureTransportAgentAndTransceivers):
2334
2335 2016-11-20  Zan Dobersek  <zdobersek@igalia.com>
2336
2337         [EncryptedMedia] Make EME API runtime-enabled
2338         https://bugs.webkit.org/show_bug.cgi?id=164927
2339
2340         Reviewed by Jer Noble.
2341
2342         Update the EME API IDL definitions to use the EnabledAtRuntime
2343         attribute on the relevant interfaces, attributes and operations.
2344         EncryptedMediaAPI is used as the attribute value.
2345
2346         The corresponding getter, setter and member boolean are added to
2347         the RuntimeEnabledFeatures class.
2348
2349         * Modules/encryptedmedia/MediaKeyMessageEvent.idl:
2350         * Modules/encryptedmedia/MediaKeySession.idl:
2351         * Modules/encryptedmedia/MediaKeyStatusMap.idl:
2352         * Modules/encryptedmedia/MediaKeySystemAccess.idl:
2353         * Modules/encryptedmedia/MediaKeys.idl:
2354         * Modules/encryptedmedia/NavigatorEME.idl:
2355         * bindings/generic/RuntimeEnabledFeatures.h:
2356         (WebCore::RuntimeEnabledFeatures::setEncryptedMediaAPIEnabled):
2357         (WebCore::RuntimeEnabledFeatures::encryptedMediaAPIEnabled):
2358         * html/HTMLMediaElement.idl:
2359         * html/MediaEncryptedEvent.idl:
2360
2361 2016-11-20  Eric Carlson  <eric.carlson@apple.com>
2362
2363         REGRESSION (r208606?): LayoutTest fast/mediastream/enumerating-crash.html is a flaky crash
2364         https://bugs.webkit.org/show_bug.cgi?id=164715
2365         <rdar://problem/29277180>
2366
2367         Reviewed by Alexey Proskuryakov.
2368
2369         No new tests, fixes an existing test crash.
2370
2371         * Modules/mediastream/UserMediaRequest.cpp:
2372         (WebCore::UserMediaRequest::contextDestroyed): Call base class method before clearing m_controller
2373           because it nullifies the security context.
2374
2375 2016-11-19  Chris Dumez  <cdumez@apple.com>
2376
2377         Update HTML form validation messages
2378         https://bugs.webkit.org/show_bug.cgi?id=164957
2379         <rdar://problem/29338669>
2380
2381         Reviewed by Darin Adler.
2382
2383         Update HTML form validation messages as per recent feedback:
2384         - Drop the "Please".
2385         - Drop the period at the end.
2386         - Drop the "if you want to proceed" that was used only for the checkbox.
2387
2388         No new tests, rebaselined existing tests.
2389
2390         * English.lproj/Localizable.strings:
2391         * platform/LocalizedStrings.cpp:
2392         (WebCore::validationMessageValueMissingText):
2393         (WebCore::validationMessageValueMissingForCheckboxText):
2394         (WebCore::validationMessageValueMissingForFileText):
2395         (WebCore::validationMessageValueMissingForRadioText):
2396         (WebCore::validationMessageValueMissingForSelectText):
2397         (WebCore::validationMessageTypeMismatchText):
2398         (WebCore::validationMessageTypeMismatchForEmailText):
2399         (WebCore::validationMessageTypeMismatchForURLText):
2400         (WebCore::validationMessagePatternMismatchText):
2401         (WebCore::validationMessageTooShortText):
2402         (WebCore::validationMessageTooLongText):
2403         (WebCore::validationMessageRangeUnderflowText):
2404         (WebCore::validationMessageRangeOverflowText):
2405         (WebCore::validationMessageStepMismatchText):
2406         (WebCore::validationMessageBadInputForNumberText):
2407
2408 2016-11-19  Joanmarie Diggs  <jdiggs@igalia.com>
2409
2410         AX: [ATK] Implement selection interface and states for elements supporting aria-selected and for menu roles
2411         https://bugs.webkit.org/show_bug.cgi?id=164865
2412
2413         Reviewed by Chris Fleizach.
2414
2415         Implement AtkSelection and support ATK_STATE_SELECTABLE and ATK_STATE_SELECTED
2416         for elements supporting aria-selected and for menu-related roles. Also enable the
2417         equivalent support for the Mac because NSAccessibilitySelectedChildrenAttribute is
2418         included as supported on the same roles.
2419
2420         In addition, fix several bugs discovered along the way: Call isSelected() on role
2421         tab, because tab supports aria-selected; not aria-checked. Correct ATK mapping
2422         of ListBoxRole and ListBoxOptionRole for combobox descendants. Always defer to
2423         WebCore for inclusion/exclusion decisions related to elements with an explicit
2424         ARIA role.
2425
2426         Tests: accessibility/aria-combobox-hierarchy.html
2427                accessibility/aria-selected-menu-items.html
2428                accessibility/aria-selected.html
2429
2430         * accessibility/AccessibilityNodeObject.cpp:
2431         (WebCore::AccessibilityNodeObject::selectedTabItem):
2432         (WebCore::AccessibilityNodeObject::canSetSelectedAttribute):
2433         * accessibility/AccessibilityObject.cpp:
2434         (WebCore::AccessibilityObject::isDescendantOfRole):
2435         * accessibility/AccessibilityObject.h:
2436         (WebCore::AccessibilityObject::canHaveSelectedChildren):
2437         * accessibility/AccessibilityRenderObject.cpp:
2438         (WebCore::AccessibilityRenderObject::isSelected):
2439         (WebCore::AccessibilityRenderObject::canHaveSelectedChildren):
2440         (WebCore::AccessibilityRenderObject::selectedChildren):
2441         * accessibility/AccessibilityRenderObject.h:
2442         * accessibility/atk/AccessibilityObjectAtk.cpp:
2443         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
2444         * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
2445         (webkitAccessibleSelectionGetSelectionCount):
2446         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
2447         (atkRole):
2448         (getInterfaceMaskFromObject):
2449         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2450         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2451
2452 2016-11-19  Simon Fraser  <simon.fraser@apple.com>
2453
2454         [iOS WK2] When zoomed in and panning on pages with fixed bars, parts of the bars are sometimes missing
2455         https://bugs.webkit.org/show_bug.cgi?id=164855
2456
2457         Reviewed by Sam Weinig.
2458
2459         During UI-process panning and zooming, we send visible rect updates to the web process
2460         with inStableState=false, and don't update GraphicsLayers until we get into a stable state.
2461
2462         This causes a problem where the web process has a stale notion of where the GraphicsLayers
2463         for position:fixed elements are, but is then told to update tiling coverage with an up-to-date
2464         visible rect. The existing "sync layer positions" path isn't useful to fix this, because it
2465         breaks the relationship between the GraphicsLayer positions and their FixedPositionViewportConstraints
2466         in the scrolling tree.
2467
2468         To address this, add the notion of an Optional<> approximatePosition on GraphicsLayers. This is used
2469         only by the coverageRect computation code path, and is cleared by a setPosition(). ApproximatePositions
2470         are pushed onto GraphicsLayers via the syncViewportConstrainedLayerPositions() code path (renamed to
2471         reconcileViewportConstrainedLayerPositions).
2472
2473         This allows us to remmove "viewportIsStable" from GraphicsLayer flushing, and FrameView.
2474
2475         SetOrSyncScrollingLayerPosition is made into an enum class.
2476
2477         Tested by scrollingcoordinator/ios/non-stable-viewport-scroll.html
2478
2479         * page/FrameView.cpp:
2480         (WebCore::FrameView::reset):
2481         * page/FrameView.h:
2482         * page/scrolling/AsyncScrollingCoordinator.cpp:
2483         (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
2484         (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
2485         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
2486         (WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
2487         (WebCore::AsyncScrollingCoordinator::reconcileViewportConstrainedLayerPositions):
2488         (WebCore::AsyncScrollingCoordinator::syncViewportConstrainedLayerPositions): Deleted.
2489         * page/scrolling/AsyncScrollingCoordinator.h:
2490         (WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::ScheduledScrollUpdate):
2491         * page/scrolling/ScrollingCoordinator.cpp:
2492         (WebCore::operator<<):
2493         * page/scrolling/ScrollingCoordinator.h:
2494         (WebCore::ScrollingCoordinator::reconcileScrollingState):
2495         (WebCore::ScrollingCoordinator::reconcileViewportConstrainedLayerPositions):
2496         (WebCore::ScrollingCoordinator::syncViewportConstrainedLayerPositions): Deleted.
2497         * page/scrolling/ScrollingStateFixedNode.cpp:
2498         (WebCore::ScrollingStateFixedNode::reconcileLayerPositionForViewportRect):
2499         (WebCore::ScrollingStateFixedNode::syncLayerPositionForViewportRect): Deleted.
2500         * page/scrolling/ScrollingStateFixedNode.h:
2501         * page/scrolling/ScrollingStateNode.h:
2502         (WebCore::ScrollingStateNode::reconcileLayerPositionForViewportRect):
2503         (WebCore::ScrollingStateNode::syncLayerPositionForViewportRect): Deleted.
2504         * page/scrolling/ScrollingStateStickyNode.cpp:
2505         (WebCore::ScrollingStateStickyNode::reconcileLayerPositionForViewportRect):
2506         (WebCore::ScrollingStateStickyNode::syncLayerPositionForViewportRect): Deleted.
2507         * page/scrolling/ScrollingStateStickyNode.h:
2508         * page/scrolling/ScrollingTree.cpp:
2509         (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
2510         * page/scrolling/ScrollingTree.h:
2511         * page/scrolling/ThreadedScrollingTree.cpp:
2512         (WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
2513         * page/scrolling/ThreadedScrollingTree.h:
2514         * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
2515         (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
2516         * page/scrolling/ios/ScrollingTreeIOS.cpp:
2517         (WebCore::ScrollingTreeIOS::scrollingTreeNodeDidScroll):
2518         * page/scrolling/ios/ScrollingTreeIOS.h:
2519         * page/scrolling/mac/ScrollingTreeFixedNode.mm:
2520         (WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange):
2521         * platform/graphics/GraphicsLayer.cpp:
2522         (WebCore::GraphicsLayer::dumpProperties):
2523         * platform/graphics/GraphicsLayer.h:
2524         (WebCore::GraphicsLayer::setPosition):
2525         (WebCore::GraphicsLayer::approximatePosition):
2526         (WebCore::GraphicsLayer::setApproximatePosition):
2527         (WebCore::GraphicsLayer::flushCompositingState):
2528         (WebCore::GraphicsLayer::flushCompositingStateForThisLayerOnly):
2529         * platform/graphics/ca/GraphicsLayerCA.cpp:
2530         (WebCore::GraphicsLayerCA::flushCompositingState):
2531         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly):
2532         (WebCore::GraphicsLayerCA::computeVisibleAndCoverageRect):
2533         (WebCore::GraphicsLayerCA::setVisibleAndCoverageRects): No longer bail for viewportConstained layers when the viewport is unstable.
2534         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
2535         * platform/graphics/ca/GraphicsLayerCA.h:
2536         (WebCore::GraphicsLayerCA::CommitState::CommitState): Deleted.
2537         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
2538         (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
2539         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
2540         (WebCore::CoordinatedGraphicsLayer::flushCompositingState):
2541         * rendering/RenderLayerCompositor.cpp:
2542         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
2543
2544 2016-11-19  Joanmarie Diggs  <jdiggs@igalia.com>
2545
2546         AX: [ATK] Expose aria-busy via ATK_STATE_BUSY
2547         https://bugs.webkit.org/show_bug.cgi?id=164909
2548
2549         Reviewed by Chris Fleizach.
2550
2551         Expose aria-busy via ATK_STATE_BUSY. Also rename ariaLiveRegionBusy()
2552         to isBusy() because in ARIA 1.1 aria-busy is no longer limited to live
2553         regions.
2554
2555         Test: accessibility/aria-busy.html
2556
2557         * accessibility/AccessibilityObject.h:
2558         (WebCore::AccessibilityObject::isBusy):
2559         (WebCore::AccessibilityObject::ariaLiveRegionBusy): Deleted.
2560         * accessibility/AccessibilityRenderObject.cpp:
2561         (WebCore::AccessibilityRenderObject::isBusy):
2562         (WebCore::AccessibilityRenderObject::ariaLiveRegionBusy): Deleted.
2563         * accessibility/AccessibilityRenderObject.h:
2564         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
2565         (setAtkStateSetFromCoreObject):
2566         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
2567         (-[WebAccessibilityObjectWrapper accessibilityARIAIsBusy]):
2568         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2569         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2570         * inspector/InspectorDOMAgent.cpp:
2571         (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
2572
2573 2016-11-19  Ryosuke Niwa  <rniwa@webkit.org>
2574
2575         REGRESSION(r200964): Tab focus navigation is broken on results.en.voyages-sncf.com
2576         https://bugs.webkit.org/show_bug.cgi?id=164888
2577
2578         Reviewed by Antti Koivisto.
2579
2580         The bug was caused by FocusNavigationScope::parentInScope incorrectly returning nullptr when moving out of
2581         a user agent shadow tree of a SVG use element. Fixed the bug by explicitly checking against the focus scope's
2582         root node or its slot element. Also removed a superfluous early return when the parent node is a focus scope.
2583
2584         Tests: fast/shadow-dom/focus-navigation-out-of-slot.html
2585                fast/shadow-dom/focus-navigation-passes-shadow-host.html
2586                fast/shadow-dom/focus-navigation-passes-svg-use-element.html
2587
2588         * page/FocusController.cpp:
2589         (WebCore::FocusNavigationScope::parentInScope):
2590
2591 2016-11-18  Simon Fraser  <simon.fraser@apple.com>
2592
2593         [iOS WK2] Eliminate a source of flakiness in layout tests by forcing WebPage into "responsive" mode for all tests, with an internals override
2594         https://bugs.webkit.org/show_bug.cgi?id=164980
2595
2596         Reviewed by Chris Dumez.
2597
2598         WebPage::eventThrottlingDelay() uses a latency estimate based on the round-trip time from the UI process
2599         to affect behavior, including whether scroll events are fired. This also affects the FrameView "scrolledByUser"
2600         flag that impacts tile coverage.
2601
2602         During testing, latency falling above or below the 16ms threshold could affect behavior. Fix by forcing
2603         WebPage into "responsive" mode while running tests, via InjectedBundlePage::prepare().
2604
2605         Add a nullable internals property so that a test can specify responsive, unresponsive or default behavior.
2606
2607         Tests: fast/scrolling/ios/scroll-events-default.html
2608                fast/scrolling/ios/scroll-events-responsive.html
2609                fast/scrolling/ios/scroll-events-unresponsive.html
2610
2611         * page/Page.h:
2612         (WebCore::Page::eventThrottlingBehaviorOverride):
2613         (WebCore::Page::setEventThrottlingBehaviorOverride):
2614         * testing/Internals.cpp:
2615         (WebCore::Internals::setEventThrottlingBehaviorOverride):
2616         (WebCore::Internals::eventThrottlingBehaviorOverride):
2617         * testing/Internals.h:
2618         * testing/Internals.idl:
2619
2620 2016-11-18  Chris Dumez  <cdumez@apple.com>
2621
2622         Unreviewed attempt to fix the build after r208917.
2623
2624         * dom/CustomElementReactionQueue.cpp:
2625         (WebCore::CustomElementReactionStack::ElementQueue::invokeAll):
2626
2627 2016-11-18  Chris Dumez  <cdumez@apple.com>
2628
2629         Unreviewed attempt to fix the build after r208917.
2630
2631         * dom/CustomElementReactionQueue.cpp:
2632
2633 2016-11-18  Jiewen Tan  <jiewen_tan@apple.com>
2634
2635         Update SubtleCrypto::decrypt to match the latest spec
2636         https://bugs.webkit.org/show_bug.cgi?id=164739
2637         <rdar://problem/29257848>
2638
2639         Reviewed by Brent Fulgham.
2640
2641         This patch does following few things:
2642         1. It updates the SubtleCrypto::decrypt method to match the latest spec:
2643            https://www.w3.org/TR/WebCryptoAPI/#SubtleCrypto-method-decrypt.
2644            It also refers to the latest Editor's Draft to a certain degree:
2645            https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-decrypt.
2646         2. It implements decrypt operations of the following algorithms: AES-CBC,
2647            RSAES-PKCS1-V1_5, and RSA-OAEP.
2648
2649         Tests: crypto/subtle/aes-cbc-decrypt-malformed-parameters.html
2650                crypto/subtle/aes-cbc-generate-key-encrypt-decrypt.html
2651                crypto/subtle/aes-cbc-import-key-decrypt.html
2652                crypto/subtle/decrypt-malformed-parameters.html
2653                crypto/subtle/rsa-oaep-decrypt-malformed-parameters.html
2654                crypto/subtle/rsa-oaep-generate-key-encrypt-decrypt-label.html
2655                crypto/subtle/rsa-oaep-generate-key-encrypt-decrypt.html
2656                crypto/subtle/rsa-oaep-import-key-decrypt-label.html
2657                crypto/subtle/rsa-oaep-import-key-decrypt.html
2658                crypto/subtle/rsaes-pkcs1-v1_5-generate-key-encrypt-decrypt.html
2659                crypto/subtle/rsaes-pkcs1-v1_5-import-key-decrypt.html
2660                crypto/workers/subtle/aes-cbc-import-key-decrypt.html
2661                crypto/workers/subtle/rsa-oaep-import-key-decrypt.html
2662                crypto/workers/subtle/rsaes-pkcs1-v1_5-import-key-decrypt.html
2663
2664         * bindings/js/JSSubtleCryptoCustom.cpp:
2665         (WebCore::normalizeCryptoAlgorithmParameters):
2666         (WebCore::toCryptoKey):
2667         (WebCore::toVector):
2668         (WebCore::jsSubtleCryptoFunctionEncryptPromise):
2669         (WebCore::jsSubtleCryptoFunctionDecryptPromise):
2670         (WebCore::jsSubtleCryptoFunctionExportKeyPromise):
2671         (WebCore::JSSubtleCrypto::decrypt):
2672         * crypto/CryptoAlgorithm.cpp:
2673         (WebCore::CryptoAlgorithm::decrypt):
2674         * crypto/CryptoAlgorithm.h:
2675         * crypto/SubtleCrypto.idl:
2676         * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
2677         (WebCore::CryptoAlgorithmAES_CBC::decrypt):
2678         * crypto/algorithms/CryptoAlgorithmAES_CBC.h:
2679         * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
2680         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt):
2681         * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
2682         * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
2683         (WebCore::CryptoAlgorithmRSA_OAEP::decrypt):
2684         * crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
2685         * crypto/gnutls/CryptoAlgorithmAES_CBCGnuTLS.cpp:
2686         (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
2687         * crypto/gnutls/CryptoAlgorithmRSAES_PKCS1_v1_5GnuTLS.cpp:
2688         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
2689         * crypto/gnutls/CryptoAlgorithmRSA_OAEPGnuTLS.cpp:
2690         (WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):
2691         * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
2692         (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
2693         * crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp:
2694         (WebCore::decryptRSAES_PKCS1_v1_5):
2695         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
2696         * crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:
2697         (WebCore::decryptRSA_OAEP):
2698         (WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):
2699
2700 2016-11-18  Chris Dumez  <cdumez@apple.com>
2701
2702         Unreviewed, rolling out r208837.
2703
2704         The bots did not show a progression
2705
2706         Reverted changeset:
2707
2708         "REGRESSION(r208082): 1% Speedometer regression on iOS"
2709         https://bugs.webkit.org/show_bug.cgi?id=164852
2710         http://trac.webkit.org/changeset/208837
2711
2712 2016-11-18  Simon Fraser  <simon.fraser@apple.com>
2713
2714         Remove use of std::chrono in WebPage and entrained code
2715         https://bugs.webkit.org/show_bug.cgi?id=164967
2716
2717         Reviewed by Tim Horton.
2718
2719         Replace std::chrono with Seconds and Monotonic Time.
2720
2721         Use more C++11 initialization for WebPage data members.
2722
2723         * page/ChromeClient.h:
2724         * page/FrameView.cpp:
2725         (WebCore::FrameView::scrollPositionChanged):
2726         (WebCore::FrameView::setScrollVelocity):
2727         * page/FrameView.h:
2728         * platform/Timer.h:
2729         (WebCore::TimerBase::startRepeating):
2730         (WebCore::TimerBase::startOneShot):
2731         (WebCore::TimerBase::augmentFireInterval):
2732         (WebCore::TimerBase::augmentRepeatInterval):
2733         * platform/graphics/TiledBacking.h:
2734         (WebCore::VelocityData::VelocityData):
2735         * platform/graphics/ca/TileController.cpp:
2736         (WebCore::TileController::adjustTileCoverageRect):
2737
2738 2016-11-18  Dean Jackson  <dino@apple.com>
2739
2740         AX: "(inverted-colors)" media query only matches on page reload; should match on change
2741         https://bugs.webkit.org/show_bug.cgi?id=163564
2742         <rdar://problem/28807350>
2743
2744         Reviewed by Simon Fraser.
2745
2746         Mark some media queries as responding to notifications that
2747         system accessibility settings have changed. When Page gets told
2748         that has happened, check if any of the results have changed.
2749
2750         Tests: fast/media/mq-inverted-colors-live-update.html
2751                fast/media/mq-monochrome-live-update.html
2752                fast/media/mq-prefers-reduced-motion-live-update.html
2753
2754         * css/MediaQueryEvaluator.cpp:
2755         (WebCore::isAccessibilitySettingsDependent):
2756         (WebCore::MediaQueryEvaluator::evaluate):
2757         * css/StyleResolver.cpp:
2758         (WebCore::StyleResolver::addAccessibilitySettingsDependentMediaQueryResult):
2759         (WebCore::StyleResolver::hasMediaQueriesAffectedByAccessibilitySettingsChange):
2760         * css/StyleResolver.h:
2761         (WebCore::StyleResolver::hasAccessibilitySettingsDependentMediaQueries):
2762         * page/Page.cpp:
2763         (WebCore::Page::accessibilitySettingsDidChange):
2764         * page/Page.h:
2765
2766 2016-11-18  Anders Carlsson  <andersca@apple.com>
2767
2768         Rename the 'other' Apple Pay Button type to 'donate'
2769         https://bugs.webkit.org/show_bug.cgi?id=164978
2770
2771         Reviewed by Dean Jackson.
2772
2773         * DerivedSources.make:
2774         * WebCorePrefix.h:
2775         * css/CSSPrimitiveValueMappings.h:
2776         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2777         (WebCore::CSSPrimitiveValue::operator ApplePayButtonType):
2778         * css/CSSValueKeywords.in:
2779         * css/parser/CSSParser.cpp:
2780         (WebCore::isValidKeywordPropertyAndValue):
2781         * css/parser/CSSParserFastPaths.cpp:
2782         (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
2783         * rendering/RenderThemeCocoa.mm:
2784         (WebCore::toPKPaymentButtonType):
2785         * rendering/style/RenderStyleConstants.h:
2786
2787 2016-11-18  Myles C. Maxfield  <mmaxfield@apple.com>
2788
2789         [WebGL2] Implement texStorage2D()
2790         https://bugs.webkit.org/show_bug.cgi?id=164493
2791
2792         Reviewed by Dean Jackson.
2793
2794         Create a new validation function which only accepts sized internalFormats.
2795         After running texStorage2D(), we also texSubImage2D() to zero-fill it. This
2796         is to compensate for potentially buggy drivers.
2797
2798         Because glTexStorage2D() was only added to OpenGL in version 4.2, not all
2799         OpenGL 3.2+ contexts can implement this command. However, according to
2800         https://developer.apple.com/opengl/capabilities/ all Apple GPUs have the
2801         GL_ARB_texture_storage which implements this call. In the future, we could
2802         implement texStorage2D() on top of texImage2D() if there are any ports which
2803         want WebGL2 but don't have 4.2 and don't have the extension.
2804
2805         Also, when calling texStorage2D, callers specify an internalFormat but not a
2806         type/format pair. This means that storing the texture's type is only valid
2807         for WebGL 1 contexts. This patch surrounds all calls to reading the texture
2808         type with guards and adds an ASSERT() at the read site to make sure the
2809         right thing is happening.
2810
2811         Test: fast/canvas/webgl/webgl2-texStorage.html
2812
2813         * html/canvas/WebGL2RenderingContext.cpp:
2814         (WebCore::WebGL2RenderingContext::validateTexStorageFuncParameters):
2815         (WebCore::WebGL2RenderingContext::texStorage2D):
2816         * html/canvas/WebGL2RenderingContext.h:
2817         * html/canvas/WebGLRenderingContext.cpp:
2818         (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
2819         * html/canvas/WebGLRenderingContextBase.cpp:
2820         (WebCore::WebGLRenderingContextBase::create):
2821         (WebCore::WebGLRenderingContextBase::copyTexSubImage2D):
2822         (WebCore::WebGLRenderingContextBase::validateTexFunc):
2823         (WebCore::WebGLRenderingContextBase::validateTexFuncData):
2824         (WebCore::WebGLRenderingContextBase::texImage2D):
2825         * html/canvas/WebGLTexture.cpp:
2826         (WebCore::WebGLTexture::WebGLTexture):
2827         (WebCore::WebGLTexture::getType):
2828         (WebCore::WebGLTexture::needToUseBlackTexture):
2829         (WebCore::WebGLTexture::canGenerateMipmaps):
2830         (WebCore::internalFormatIsFloatType):
2831         (WebCore::internalFormatIsHalfFloatType):
2832         (WebCore::WebGLTexture::update):
2833         * html/canvas/WebGLTexture.h:
2834         * platform/graphics/GraphicsContext3D.cpp:
2835         (WebCore::GraphicsContext3D::texImage2DResourceSafe):
2836         (WebCore::GraphicsContext3D::packImageData):
2837         (WebCore::GraphicsContext3D::extractImageData):
2838         * platform/graphics/GraphicsContext3D.h:
2839         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
2840         (WebCore::Extensions3DOpenGLCommon::initializeAvailableExtensions):
2841         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
2842         (WebCore::GraphicsContext3D::texStorage2D):
2843         (WebCore::GraphicsContext3D::texStorage3D):
2844
2845 2016-11-18  Alex Christensen  <achristensen@webkit.org>
2846
2847         TextDecoder constructor should not accept replacement encodings
2848         https://bugs.webkit.org/show_bug.cgi?id=164903
2849
2850         Reviewed by Chris Dumez.
2851
2852         Covered by newly passing web platform tests.
2853
2854         * dom/TextDecoder.cpp:
2855         (WebCore::TextDecoder::create):
2856         https://encoding.spec.whatwg.org/#textdecoder says about the constructor:
2857         "If label is either not a label or is a label for replacement, throws a RangeError."
2858         See https://bugs.webkit.org/show_bug.cgi?id=159180 for the mapping of the replacement
2859         codec names to "replacement".
2860
2861 2016-11-18  Chris Dumez  <cdumez@apple.com>
2862
2863         Assertion failures in ActiveDOMObject::~ActiveDOMObject under Database destructor
2864         https://bugs.webkit.org/show_bug.cgi?id=164955
2865         <rdar://problem/29336715>
2866
2867         Reviewed by Brady Eidson.
2868
2869         Make sure the Database's DatabaseContext object is destroyed on the context
2870         thread given that DatabaseContext is an ActiveDOMObject and there is an
2871         assertion in the ActiveDOMObject destructor that it should be destroyed on
2872         on the context thread.
2873
2874         No new tests, already covered by existing tests.
2875
2876         * Modules/webdatabase/Database.cpp:
2877         (WebCore::Database::~Database):
2878
2879 2016-11-18  Enrica Casucci  <enrica@apple.com>
2880
2881         Refactor drag and drop for WebKit2 to encode DragData message exchange.
2882         https://bugs.webkit.org/show_bug.cgi?id=164945
2883
2884         Reviewed by Tim Horton.
2885
2886         No new tests. No change in functionality.
2887
2888         * loader/EmptyClients.h:
2889         * page/DragClient.h:
2890         * page/DragController.cpp:
2891         (WebCore::createMouseEvent):
2892         (WebCore::documentFragmentFromDragData):
2893         (WebCore::DragController::dragIsMove):
2894         (WebCore::DragController::dragEntered):
2895         (WebCore::DragController::dragExited):
2896         (WebCore::DragController::dragUpdated):
2897         (WebCore::DragController::performDragOperation):
2898         (WebCore::DragController::dragEnteredOrUpdated):
2899         (WebCore::DragController::tryDocumentDrag):
2900         (WebCore::DragController::operationForLoad):
2901         (WebCore::DragController::dispatchTextInputEventFor):
2902         (WebCore::DragController::concludeEditDrag):
2903         (WebCore::DragController::canProcessDrag):
2904         (WebCore::DragController::tryDHTMLDrag):
2905         * page/DragController.h:
2906         * page/efl/DragControllerEfl.cpp:
2907         (WebCore::DragController::isCopyKeyDown):
2908         (WebCore::DragController::dragOperation):
2909         * page/gtk/DragControllerGtk.cpp:
2910         (WebCore::DragController::isCopyKeyDown):
2911         (WebCore::DragController::dragOperation):
2912         * page/mac/DragControllerMac.mm:
2913         (WebCore::DragController::isCopyKeyDown):
2914         (WebCore::DragController::dragOperation):
2915         * page/win/DragControllerWin.cpp:
2916         (WebCore::DragController::dragOperation):
2917         (WebCore::DragController::isCopyKeyDown):
2918         * platform/DragData.h:
2919         (WebCore::DragData::DragData):
2920
2921 2016-11-18  Jeremy Jones  <jeremyj@apple.com>
2922
2923         Add runtime flag to enable pointer lock. Enable pointer lock feature for mac.
2924         https://bugs.webkit.org/show_bug.cgi?id=163801
2925
2926         Reviewed by Simon Fraser.
2927
2928         These tests now pass with DumpRenderTree.
2929         LayoutTests/pointer-lock/lock-already-locked.html
2930         LayoutTests/pointer-lock/lock-element-not-in-dom.html
2931         LayoutTests/pointer-lock/locked-element-iframe-removed-from-dom.html
2932         LayoutTests/pointer-lock/mouse-event-api.html
2933
2934         PointerLockController::requestPointerLock now protects against synchronous callback
2935         to allowPointerLock().
2936
2937         Add pointerLockEnabled setting.
2938
2939         * Configurations/FeatureDefines.xcconfig:
2940         * dom/Document.cpp:
2941         (WebCore::Document::exitPointerLock): Fix existing typo.
2942         (WebCore::Document::pointerLockElement):
2943         * features.json:
2944         * page/EventHandler.cpp:
2945         * page/PointerLockController.cpp:
2946         (WebCore::PointerLockController::requestPointerLock):
2947         (WebCore::PointerLockController::requestPointerUnlock):
2948         * page/Settings.in:
2949
2950 2016-11-17  Alex Christensen  <achristensen@webkit.org>
2951
2952         Support IDN2008 with UTS #46 instead of IDN2003
2953         https://bugs.webkit.org/show_bug.cgi?id=144194
2954
2955         Reviewed by Darin Adler.
2956
2957         Use uidna_nameToASCII instead of the deprecated uidna_IDNToASCII.
2958         It uses IDN2008 instead of IDN2003, and it uses UTF #46 when used with a UIDNA opened with uidna_openUTS46.
2959         This follows https://url.spec.whatwg.org/#concept-domain-to-ascii except we do not use Transitional_Processing
2960         to prevent homograph attacks on german domain names with "ß" and "ss" in them.  These are now treated as separate domains.
2961         Firefox also doesn't use Transitional_Processing. Chrome and the current specification use Transitional_processing,
2962         but https://github.com/whatwg/url/issues/110 might change the spec.
2963         
2964         In addition, http://unicode.org/reports/tr46/ says:
2965         "implementations are encouraged to apply the Bidi and ContextJ validity criteria"
2966         Bidi checks prevent domain names with bidirectional text, such as latin and hebrew characters in the same domain.  Chrome and Firefox do this.
2967
2968         ContextJ checks prevent code points such as U+200D, which is a zero-width joiner which users would not see when looking at the domain name.
2969         Firefox currently enables ContextJ checks and it is suggested by UTS #46, so we'll do it.
2970
2971         ContextO checks, which we do not use and neither does any other browser nor the spec, would fail if a domain contains code points such as U+30FB,
2972         which looks somewhat like a dot.  We can investigate enabling these checks later.
2973
2974         Covered by new API tests and rebased LayoutTests.
2975         The new API tests verify that we do not use transitional processing, that we do apply the Bidi and ContextJ checks, but not ContextO checks.
2976
2977         * platform/URLParser.cpp:
2978         (WebCore::URLParser::domainToASCII):
2979         (WebCore::URLParser::internationalDomainNameTranscoder):
2980         * platform/URLParser.h:
2981         * platform/mac/WebCoreNSURLExtras.mm:
2982         (WebCore::mapHostNameWithRange):
2983
2984 2016-11-18  Dean Jackson  <dino@apple.com>
2985
2986         Better testing for accessibility media queries
2987         https://bugs.webkit.org/show_bug.cgi?id=164954
2988         <rdar://problem/29338292>
2989
2990         Reviewed by Myles Maxfield.
2991
2992         Provide an override mode for the accessibility media queries
2993         that rely on system settings. This way we can test that they
2994         are least responding to something.
2995
2996         Tests: fast/media/mq-inverted-colors-forced-value.html
2997                fast/media/mq-monochrome-forced-value.html
2998
2999         * css/MediaQueryEvaluator.cpp: Query the Settings to see if we're
3000         forcing a value.
3001         (WebCore::monochromeEvaluate):
3002         (WebCore::invertedColorsEvaluate):
3003         (WebCore::prefersReducedMotionEvaluate):
3004         * page/Settings.h:
3005         * testing/InternalSettings.cpp: Add new forcing values for inverted-colors
3006         and monochrome.
3007         (WebCore::InternalSettings::Backup::Backup):
3008         (WebCore::InternalSettings::Backup::restoreTo):
3009         (WebCore::settingsToInternalSettingsValue):
3010         (WebCore::internalSettingsToSettingsValue):
3011         (WebCore::InternalSettings::forcedColorsAreInvertedAccessibilityValue):
3012         (WebCore::InternalSettings::setForcedColorsAreInvertedAccessibilityValue):
3013         (WebCore::InternalSettings::forcedDisplayIsMonochromeAccessibilityValue):
3014         (WebCore::InternalSettings::setForcedDisplayIsMonochromeAccessibilityValue):
3015         (WebCore::InternalSettings::forcedPrefersReducedMotionAccessibilityValue):
3016         (WebCore::InternalSettings::setForcedPrefersReducedMotionAccessibilityValue):
3017         (WebCore::InternalSettings::forcedPrefersReducedMotionValue): Deleted.
3018         (WebCore::InternalSettings::setForcedPrefersReducedMotionValue): Deleted.
3019         * testing/InternalSettings.h:
3020         * testing/InternalSettings.idl:
3021
3022 2016-11-18  Myles C. Maxfield  <mmaxfield@apple.com>
3023
3024         Unsupported emoji are invisible
3025         https://bugs.webkit.org/show_bug.cgi?id=164944
3026         <rdar://problem/28591608>
3027
3028         Reviewed by Dean Jackson.
3029
3030         In WidthIterator, we explicitly skip characters which the OS has no font
3031         to render with. However, for emoji, we should draw something to show that
3032         there is missing content. Because we have nothing to draw, we can draw
3033         the .notdef glyph (empty box, or "tofu").
3034
3035         Test: fast/text/emoji-draws.html
3036
3037         * platform/graphics/WidthIterator.cpp:
3038         (WebCore::characterMustDrawSomething):
3039         (WebCore::WidthIterator::advanceInternal):
3040
3041 2016-11-18  Sam Weinig  <sam@webkit.org>
3042
3043         [WebIDL] Add support for record types
3044         https://bugs.webkit.org/show_bug.cgi?id=164935
3045
3046         Reviewed by Tim Horton.
3047
3048         Add support for WebIDLs record types. We map them to HashMap<String, {OtherType}>.
3049
3050         * bindings/generic/IDLTypes.h:
3051         - Add IDLRecord type and helper predicate.
3052         - Remove IDLRegExp which is no longer in WebIDL and we never supported.
3053
3054         * bindings/js/JSDOMBinding.cpp:
3055         (WebCore::stringToByteString):
3056         (WebCore::identifierToByteString):
3057         (WebCore::valueToByteString):
3058         (WebCore::hasUnpairedSurrogate):
3059         (WebCore::stringToUSVString):
3060         (WebCore::identifierToUSVString):
3061         (WebCore::valueToUSVString):
3062         * bindings/js/JSDOMBinding.h:
3063         Refactor ByteString and USVString conversion to support converting from
3064         either a JSValue or Identifier.
3065
3066         * bindings/js/JSDOMConvert.h:
3067         (WebCore::DetailConverter<IDLRecord<K, V>>):
3068         (WebCore::JSConverter<IDLRecord<K, V>>):
3069         Add conversion support for record types. Use Detail::IdentifierConverter helper
3070         to convert identifiers to strings using the correct conversion rules.
3071
3072         (WebCore::Converter<IDLUnion<T...>>::convert):
3073         Update comments in union conversion to match current spec. Remove check
3074         for regular expressions and add support for record types.
3075
3076         * bindings/scripts/CodeGenerator.pm:
3077         (IsRefPtrType):
3078         Add record and union types to the list of things that aren't RefPtrs.
3079
3080         (IsRecordType):
3081         Add predicate for testing if a type is a record.
3082
3083         (IsWrapperType):
3084         Remove check for union. This is now handled in the IsRefPtrType check.
3085
3086         (SkipIncludeHeader): Deleted.
3087         (GetSequenceInnerType): Deleted.
3088         (GetFrozenArrayInnerType): Deleted.
3089         (GetSequenceOrFrozenArrayInnerType): Deleted.
3090         Remove no longer necessary functions.
3091
3092         * bindings/scripts/CodeGeneratorJS.pm:
3093         (AddIncludesForImplementationType):
3094         Remove check for includes to skip. This is now only called for interfaces, which should be included
3095         unconditionally.
3096
3097         (AddToIncludesForIDLType):
3098         Add includes and recursive includes for record types.
3099
3100         (GenerateOverloadedFunctionOrConstructor):
3101         Update to account for records.
3102
3103         (GetGnuVTableRefForInterface):
3104         (GetGnuVTableNameForInterface):
3105         (GetGnuMangledNameForInterface):
3106         (GetWinVTableNameForInterface):
3107         (GetWinMangledNameForInterface):
3108         Strength-reduce GetNativeTypeForConversions and GetNamespaceForInterface into their callers.
3109
3110         (GetBaseIDLType):
3111         Add support for IDLRecord. Remove call to GetIDLInterfaceName now that is simply the type name.
3112
3113         (GetNativeType):
3114         Simplify sequence/FrozenArray support and add record support.
3115
3116         (GetNativeInnerType):
3117         Generalize GetNativeVectorInnerType to work for record types as well.
3118
3119         (ShouldPassWrapperByReference):
3120         Moved so native type accessors can be together.
3121
3122         (NativeToJSValueDOMConvertNeedsState):
3123         (NativeToJSValueDOMConvertNeedsGlobalObject):
3124         Add record support.
3125
3126         (GetNativeTypeForConversions): Deleted.
3127         (GetNamespaceForInterface): Deleted.
3128         (GetNativeVectorType): Deleted.
3129         (GetIDLInterfaceName): Deleted.
3130         (GetNativeVectorInnerType): Deleted.
3131         Remove unneeded functions.
3132
3133         * bindings/scripts/IDLParser.pm:
3134         (typeDescription):
3135         Add helper useful for debugging, that constructs the string form of a type.
3136
3137         (typeByApplyingTypedefs):
3138         Add missing call to typeByApplyingTypedefs (this is noted by a fix in JSTestCallbackFunctionWithTypedefs.h)
3139
3140         (parseNonAnyType):
3141         Remove unused $subtypeName variables and add support for parsing record types.
3142
3143         * bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.cpp:
3144         * bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.h:
3145         * bindings/scripts/test/JS/JSTestObj.cpp:
3146         * bindings/scripts/test/TestObj.idl:
3147         Add tests for records and update results.
3148
3149         * testing/TypeConversions.h:
3150         (WebCore::TypeConversions::testLongRecord):
3151         (WebCore::TypeConversions::setTestLongRecord):
3152         (WebCore::TypeConversions::testNodeRecord):
3153         (WebCore::TypeConversions::setTestNodeRecord):
3154         (WebCore::TypeConversions::testSequenceRecord):
3155         (WebCore::TypeConversions::setTestSequenceRecord):
3156         * testing/TypeConversions.idl:
3157         Add record types so it can be tested from layout tests.
3158
3159 2016-11-18  Dave Hyatt  <hyatt@apple.com>
3160
3161         [CSS Parser] Support font-variation-settings
3162         https://bugs.webkit.org/show_bug.cgi?id=164947
3163
3164         Reviewed by Myles Maxfield.
3165
3166         * css/parser/CSSPropertyParser.cpp:
3167         (WebCore::consumeFontVariationTag):
3168         (WebCore::consumeFontVariationSettings):
3169         (WebCore::CSSPropertyParser::parseSingleValue):
3170
3171 2016-11-17  Jiewen Tan  <jiewen_tan@apple.com>
3172
3173         Update SubtleCrypto::encrypt to match the latest spec
3174         https://bugs.webkit.org/show_bug.cgi?id=164738
3175         <rdar://problem/29257812>
3176
3177         Reviewed by Brent Fulgham.
3178
3179         This patch does following few things:
3180         1. It updates the SubtleCrypto::encrypt method to match the latest spec:
3181            https://www.w3.org/TR/WebCryptoAPI/#SubtleCrypto-method-encrypt.
3182            It also refers to the latest Editor's Draft to a certain degree:
3183            https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-encrypt.
3184         2. It implements encrypt operations of the following algorithms: AES-CBC,
3185            RSAES-PKCS1-V1_5, and RSA-OAEP.
3186         3. It addes ASSERT(parameters) for every method that accepts a
3187            std::unique_ptr<CryptoAlgorithmParameters>&& type parameter.
3188         4. It changes RefPtr<CryptoKey>&& to Ref<CryptoKey>&& for every method that
3189            accepts a CryptoKey.
3190
3191         Tests: crypto/subtle/aes-cbc-encrypt-malformed-parameters.html
3192                crypto/subtle/aes-cbc-import-key-encrypt.html
3193                crypto/subtle/encrypt-malformed-parameters.html
3194                crypto/subtle/rsa-oaep-encrypt-malformed-parameters.html
3195                crypto/subtle/rsa-oaep-import-key-encrypt-label.html
3196                crypto/subtle/rsa-oaep-import-key-encrypt.html
3197                crypto/subtle/rsaes-pkcs1-v1_5-import-key-encrypt.html
3198                crypto/workers/subtle/aes-cbc-import-key-encrypt.html
3199                crypto/workers/subtle/rsa-oaep-import-key-encrypt.html
3200                crypto/workers/subtle/rsaes-pkcs1-v1_5-import-key-encrypt.html
3201
3202         * CMakeLists.txt:
3203         * DerivedSources.make:
3204         * WebCore.xcodeproj/project.pbxproj:
3205         * bindings/js/BufferSource.h:
3206         (WebCore::BufferSource::BufferSource):
3207         Add a default constructor for initializing an empty BufferSource object.
3208         * bindings/js/JSSubtleCryptoCustom.cpp:
3209         (WebCore::normalizeCryptoAlgorithmParameters):
3210         (WebCore::jsSubtleCryptoFunctionEncryptPromise):
3211         (WebCore::JSSubtleCrypto::encrypt):
3212         * crypto/CryptoAlgorithm.cpp:
3213         (WebCore::CryptoAlgorithm::encrypt):
3214         (WebCore::CryptoAlgorithm::exportKey):
3215         * crypto/CryptoAlgorithm.h:
3216         * crypto/CryptoAlgorithmParameters.h:
3217         * crypto/CryptoKey.h:
3218         * crypto/SubtleCrypto.cpp:
3219         (WebCore::SubtleCrypto::SubtleCrypto):
3220         * crypto/SubtleCrypto.h:
3221         (WebCore::SubtleCrypto::workQueue):
3222         * crypto/SubtleCrypto.idl:
3223         * crypto/gnutls/CryptoAlgorithmAES_CBCGnuTLS.cpp:
3224         (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
3225         * crypto/gnutls/CryptoAlgorithmRSAES_PKCS1_v1_5GnuTLS.cpp:
3226         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
3227         * crypto/gnutls/CryptoAlgorithmRSA_OAEPGnuTLS.cpp:
3228         (WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
3229         * crypto/gnutls/CryptoKeyRSAGnuTLS.cpp:
3230         (WebCore::CryptoKeyRSA::generatePair):
3231         * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
3232         (WebCore::CryptoAlgorithmAES_CBC::encrypt):
3233         (WebCore::CryptoAlgorithmAES_CBC::generateKey):
3234         (WebCore::CryptoAlgorithmAES_CBC::importKey):
3235         (WebCore::CryptoAlgorithmAES_CBC::exportKey):
3236         * crypto/algorithms/CryptoAlgorithmAES_CBC.h:
3237         * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
3238         (WebCore::CryptoAlgorithmAES_KW::generateKey):
3239         (WebCore::CryptoAlgorithmAES_KW::importKey):
3240         (WebCore::CryptoAlgorithmAES_KW::exportKey):
3241         * crypto/algorithms/CryptoAlgorithmAES_KW.h:
3242         * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
3243         (WebCore::CryptoAlgorithmHMAC::generateKey):
3244         (WebCore::CryptoAlgorithmHMAC::importKey):
3245         (WebCore::CryptoAlgorithmHMAC::exportKey):
3246         * crypto/algorithms/CryptoAlgorithmHMAC.h:
3247         * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
3248         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt):
3249         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey):
3250         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::importKey):
3251         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::exportKey):
3252         * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
3253         * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
3254         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey):
3255         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):
3256         (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::exportKey):
3257         * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
3258         * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
3259         (WebCore::CryptoAlgorithmRSA_OAEP::encrypt):
3260         (WebCore::CryptoAlgorithmRSA_OAEP::generateKey):
3261         (WebCore::CryptoAlgorithmRSA_OAEP::importKey):
3262         (WebCore::CryptoAlgorithmRSA_OAEP::exportKey):
3263         * crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
3264         * crypto/keys/CryptoKeyRSA.h:
3265         * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
3266         (WebCore::transformAES_CBC):
3267         (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
3268         (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
3269         * crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp:
3270         (WebCore::encryptRSAES_PKCS1_v1_5):
3271         (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
3272         * crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:
3273         (WebCore::encryptRSA_OAEP):
3274         (WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
3275         * crypto/mac/CryptoKeyRSAMac.cpp:
3276         (WebCore::CryptoKeyRSA::generatePair):
3277         * crypto/parameters/AesCbcParams.idl: Added.
3278         * crypto/parameters/CryptoAlgorithmAesCbcParams.h: Added.
3279         * crypto/parameters/CryptoAlgorithmAesCbcParamsDeprecated.h:
3280         * crypto/parameters/CryptoAlgorithmRsaOaepParams.h: Added.
3281         * crypto/parameters/RsaOaepParams.idl: Added.
3282
3283 2016-11-18  Ryan Haddad  <ryanhaddad@apple.com>
3284
3285         Attempt to fix iOS build again.
3286         <rdar://problem/29312689>
3287
3288         Unreviewed build fix.
3289
3290         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3291         (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack):
3292         (WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack):
3293
3294 2016-11-18  Myles C. Maxfield  <mmaxfield@apple.com>
3295
3296         [CSS Font Loading] FontFaceSet.load() promises don't always fire
3297         https://bugs.webkit.org/show_bug.cgi?id=164902
3298
3299         Reviewed by David Hyatt.
3300
3301         Test: fast/text/fontfaceset-rebuild-during-loading.html
3302
3303         We currently handle web fonts in two phases. The first phase is building up
3304         StyleRuleFontFace objects which reflect the style on the page. The second is creating
3305         CSSFontFace objects from those StyleRuleFontFace objects. When script modifies the
3306         style on the page, we can often update the CSSFontFace objects, but there are some
3307         modifications which we don't know how to model. For these operations, we destroy the
3308         CSSFontFace objects and rebuild them from the newly modified StyleRuleFontFace objects.
3309
3310         Normally, this is fine. However, with the CSS font loading API, the CSSFontFaces back
3311         Javascript objects which will persist across the rebuilding step mentioned above. This
3312         means that the FontFace objects need to adopt the new CSSFontFace objects and forget
3313         the old CSSFontFace objects.
3314
3315         There was one bit of state which I forgot to update during this rebuilding phase. The
3316         FontFaceSet object contains an internal HashMap where a reference to a CSSFontFace
3317         is used as a key. After the rebuilding phase, this reference wasn't updated to point
3318         to the new CSSFontFace.
3319
3320         The solution is to instead use a reference to the higher-level FontFace as the key to
3321         the HashMap. This object is persistent across the rebuilding phase (and it adopts
3322         the new CSSFontFaces). There is not a lifetime problem because the FontFace holds a
3323         strong reference to its backing CSSFontFace object.
3324
3325         This bug didn't cause a memory problem because the HashMap was keeping the old
3326         CSSFontFace alive because the key was a strong reference.
3327
3328         This patch also adds a lengthy comment explaining how the migration works.
3329
3330         * css/CSSFontFace.cpp:
3331         (WebCore::CSSFontFace::initializeWrapper): This is another bit of state which didn't
3332         survive the rebuilding phase. Moving it here causes it to survive.
3333         (WebCore::CSSFontFace::wrapper):
3334         * css/CSSFontSelector.cpp:
3335         (WebCore::CSSFontSelector::addFontFaceRule):
3336         * css/FontFaceSet.cpp:
3337         (WebCore::FontFaceSet::load):
3338         (WebCore::FontFaceSet::faceFinished):
3339         * css/FontFaceSet.h:
3340
3341 2016-11-18  Myles C. Maxfield  <mmaxfield@apple.com>
3342
3343         [SVG -> OTF Font Converter] Fonts advances are not internally consistent inside the generated font file
3344         https://bugs.webkit.org/show_bug.cgi?id=164846
3345         <rdar://problem/29031509>
3346
3347         Reviewed by Darin Adler.
3348
3349         The fonts I'm generating in the SVG -> OTF converter have fractional FUnit values for their advances.
3350         The CFF table can encode that, but hmtx can't, which means the font isn't internally consistent.
3351
3352         Covered by existing tests.
3353
3354         * svg/SVGToOTFFontConversion.cpp:
3355
3356 2016-11-18  Ryan Haddad  <ryanhaddad@apple.com>
3357
3358         Attempt to fix iOS build.
3359         <rdar://problem/29312689>
3360
3361         Unreviewed build fix.
3362
3363         * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:
3364         (WebCore::MediaSelectionGroupAVFObjC::updateOptions):
3365
3366 2016-11-18  Dave Hyatt  <hyatt@apple.com>
3367
3368         [CSS Parser] Hook up InspectorStyleSheet to the new CSS parser.
3369         https://bugs.webkit.org/show_bug.cgi?id=164886
3370
3371         Reviewed by Dean Jackson.
3372
3373         * css/CSSGrammar.y.in:
3374         Get rid of the CSSRuleSourceData type enum, since StyleRule's type
3375         enum is exactly the same.
3376
3377         * css/CSSPropertySourceData.cpp:
3378         (WebCore::CSSPropertySourceData::CSSPropertySourceData):
3379         * css/CSSPropertySourceData.h:
3380         Add a concept of disabled to CSSPropertySourceData. This is used for
3381         commented out properties.
3382
3383         (WebCore::CSSRuleSourceData::create):