1 2016-11-28 Jiewen Tan <jiewen_tan@apple.com>
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>
7 Reviewed by Daniel Bates.
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.
12 Covered by existing tests.
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):
24 2016-11-28 Darin Adler <darin@apple.com>
26 Streamline and speed up tokenizer and segmented string classes
27 https://bugs.webkit.org/show_bug.cgi?id=165003
29 Reviewed by Sam Weinig.
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:
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.
40 - Simplified the SegmentedString advance functions so they are small
41 enough to get inlined in the HTML tokenizer.
43 - Updated callers to call the simpler SegmentedString advance functions
44 that don't handle newlines in as many cases as possible.
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.
50 - Simplified segmented string functions, removing some branches, mostly
51 from the non-fast paths.
53 - Removed small unused functions and small functions used in only one
54 or two places, made more functions private and renamed for clarity.
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.
64 * css/parser/CSSTokenizer.cpp: Added now-needed include.
65 * css/parser/CSSTokenizer.h: Removed unneeded include.
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.
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
77 (WebCore::Document::writeln): Use a single write call instead of two.
79 * dom/Document.h: Changed write to take an rvalue reference to SegmentedString
80 rather than a const reference.
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.
86 * dom/RawDataDocumentParser.h: Updated for change to DocumentParser.
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
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.
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.
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.
113 * html/parser/HTMLMetaCharsetParser.cpp:
114 (WebCore::HTMLMetaCharsetParser::checkForMetaCharset): Removed unneeded
115 construction of a SegmentedString, just to append a string.
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.
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.
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
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.
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.
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.
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.
170 * html/track/InbandTextTrack.h: Updated since parseWebVTTFileHeader now
171 takes an rvalue reference.
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.
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.
189 * platform/graphics/InbandTextTrackPrivateClient.h: Updated since
190 parseWebVTTFileHeader takes an rvalue reference.
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.
197 (WebCore::SegmentedString::operator=): Defined a move assignment operator
198 rather than an ordinary assignment operator, since that's what the call
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.
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
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.
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.
287 * xml/parser/MarkupTokenizerInlines.h: Added ADVANCE_PAST_NON_NEWLINE_TO.
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
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.
302 2016-11-28 Chris Dumez <cdumez@apple.com>
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
307 Reviewed by Simon Fraser.
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.
312 * platform/ValidationBubble.h:
313 * platform/ios/ValidationBubbleIOS.mm:
314 (WebCore::ValidationBubble::setAnchorRect):
315 (-[WebValidationBubbleDelegate adaptivePresentationStyleForPresentationController:traitCollection:]): Deleted.
316 * platform/spi/ios/UIKitSPI.h:
318 2016-11-28 Chris Dumez <cdumez@apple.com>
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>
324 Reviewed by Simon Fraser.
326 Clicking on an HTML validation bubble should dismiss it. It previously
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.
332 * platform/mac/ValidationBubbleMac.mm:
333 (-[WebValidationPopover mouseDown:]):
334 (WebCore::ValidationBubble::ValidationBubble):
336 2016-11-27 Sam Weinig <sam@webkit.org>
338 Make CanvasRenderingContext2D use WebIDL unions / Variants for createPattern and drawImage
339 https://bugs.webkit.org/show_bug.cgi?id=165086
341 Reviewed by Darin Adler.
343 * html/canvas/CanvasRenderingContext2D.cpp:
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.
352 2016-11-28 Beth Dakin <bdakin@apple.com>
354 Blacklist Netflix for TouchBar support
355 https://bugs.webkit.org/show_bug.cgi?id=165104
357 rdar://problem/29404778
359 Reviewed by Tim Horton.
361 This patch moves the algorithm to
362 bestMediaElementForShowingPlaybackControlsManager() so that Now Playing can also
364 * html/HTMLMediaElement.cpp:
365 (WebCore::needsPlaybackControlsManagerQuirk):
366 (WebCore::HTMLMediaElement::bestMediaElementForShowingPlaybackControlsManager):
367 (WebCore::HTMLMediaElement::updatePlaybackControlsManager):
369 2016-11-28 Mark Lam <mark.lam@apple.com>
371 Fix exception scope verification failures in more miscellaneous files.
372 https://bugs.webkit.org/show_bug.cgi?id=165102
374 Reviewed by Saam Barati.
376 No new tests because these are fixes to failures detected by existing tests when
377 exception check verification is enabled.
379 * bindings/js/IDBBindingUtilities.cpp:
381 * bindings/js/JSCommandLineAPIHostCustom.cpp:
382 (WebCore::getJSListenerFunctions):
383 * bindings/js/JSCryptoKeySerializationJWK.cpp:
384 (WebCore::buildJSONForRSAComponents):
385 (WebCore::addUsagesToJSON):
386 * bindings/js/JSDOMBinding.h:
388 * bridge/runtime_array.cpp:
389 (JSC::RuntimeArray::put):
391 2016-11-28 Dave Hyatt <hyatt@apple.com>
393 [CSS Parser] Fix bugs in the @supports parser
394 https://bugs.webkit.org/show_bug.cgi?id=165115
396 Reviewed by Zalan Bujtas.
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.
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
411 Fix the supports parser to allow the whitespace after not/or/and to
412 be optional. Allow the whitespace following parenthetical conditions
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.
421 Fix the general enclosure FunctionToken for forward compatibility to require that
422 the function still be enclosed within parentheses.
424 2016-11-28 Mark Lam <mark.lam@apple.com>
426 Fix exception scope verification failures in ObjectConstructor.cpp and ObjectPrototype.cpp.
427 https://bugs.webkit.org/show_bug.cgi?id=165051
429 Reviewed by Saam Barati.
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.
435 Fixed jsDOMWindowGetOwnPropertySlotRestrictedAccess() to return false when it
438 * bindings/js/JSDOMWindowCustom.cpp:
439 (WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
441 2016-11-28 Tim Horton <timothy_horton@apple.com>
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>
447 Reviewed by Simon Fraser.
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.
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).
459 2016-11-28 Chris Dumez <cdumez@apple.com>
461 Unreviewed, fix crashes on Yosemite after r209009
463 NSTextField's maximumNumberOfLines was introduced in ElCapitan so
464 disable it at compile-time on previous OSes for now.
466 * platform/mac/ValidationBubbleMac.mm:
467 (WebCore::ValidationBubble::ValidationBubble):
469 2016-11-28 Keith Rollin <krollin@apple.com>
471 Unreviewed, rolling out r208607.
473 The actual changes aren't inline with what was requested.
477 "Reduce number of platformMemoryUsage calls"
478 https://bugs.webkit.org/show_bug.cgi?id=164375
479 http://trac.webkit.org/changeset/208607
481 2016-11-28 Beth Dakin <bdakin@apple.com>
483 Blacklist Netflix for TouchBar support
484 https://bugs.webkit.org/show_bug.cgi?id=165104
486 rdar://problem/29404778
488 Reviewed by Darin Adler.
490 * html/HTMLMediaElement.cpp:
491 (WebCore::needsPlaybackControlsManagerQuirk):
492 (WebCore::HTMLMediaElement::updatePlaybackControlsManager):
494 2016-11-28 Chris Dumez <cdumez@apple.com>
496 Limit HTML Form validation popovers to 4 lines
497 https://bugs.webkit.org/show_bug.cgi?id=165098
498 <rdar://problem/29403286>
500 Reviewed by Darin Adler.
502 Limit HTML Form validation popovers to 4 lines as per recent feedback.
504 * platform/ios/ValidationBubbleIOS.mm:
505 (WebCore::ValidationBubble::ValidationBubble):
506 * platform/mac/ValidationBubbleMac.mm:
507 (WebCore::ValidationBubble::ValidationBubble):
509 2016-11-28 Dave Hyatt <hyatt@apple.com>
511 [CSS Parser] Filters and Reflections Fixes
512 https://bugs.webkit.org/show_bug.cgi?id=165103
514 Reviewed by Zalan Bujtas.
516 * css/parser/CSSPropertyParser.cpp:
517 (WebCore::consumeReflect):
518 Support the "none" keyword for box-reflect.
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.
526 2016-11-28 Brent Fulgham <bfulgham@apple.com>
528 ImageData does not match specification
529 https://bugs.webkit.org/show_bug.cgi?id=164663
531 Reviewed by Simon Fraser.
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.
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.
540 This change simply updates the IDL and impelemntation to match the spec.
542 Test coverage is already provided by fast/canvas/canvas-imageData.html
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.
548 2016-11-28 Dave Hyatt <hyatt@apple.com>
550 [CSS Parser] flex-basis should be pixel units not percentages.
551 https://bugs.webkit.org/show_bug.cgi?id=165100
553 Reviewed by Zalan Bujtas.
555 * css/parser/CSSPropertyParser.cpp:
556 (WebCore::CSSPropertyParser::consumeFlex):
558 2016-11-28 Daniel Bates <dabates@apple.com>
560 Replace CSSPropertyNames.in with a JSON file
561 https://bugs.webkit.org/show_bug.cgi?id=164691
563 Reviewed by Simon Fraser.
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
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
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
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.
604 2016-11-28 Dave Hyatt <hyatt@apple.com>
606 [CSS Parser] Support -webkit-animation-trigger
607 https://bugs.webkit.org/show_bug.cgi?id=165095
609 Reviewed by Zalan Bujtas.
611 * css/CSSValueKeywords.in:
612 * css/parser/CSSPropertyParser.cpp:
613 (WebCore::consumeWebkitAnimationTrigger):
614 (WebCore::consumeAnimationValue):
615 (WebCore::CSSPropertyParser::parseSingleValue):
617 2016-11-28 Antti Koivisto <antti@apple.com>
619 Remove FIRST_LINE_INHERITED fake pseudo style
620 https://bugs.webkit.org/show_bug.cgi?id=165071
622 Reviewed by Andreas Kling.
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.
627 * rendering/RenderElement.cpp:
628 (WebCore::RenderElement::RenderElement):
629 (WebCore::RenderElement::computeFirstLineStyle):
630 (WebCore::RenderElement::firstLineStyle):
632 Cache the first line style.
634 (WebCore::RenderElement::invalidateCachedFirstLineStyle):
635 (WebCore::RenderElement::styleWillChange):
637 Invalidate subtree if we have cached first line style.
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:
649 Stop copying rare data objects.
651 * rendering/style/RenderStyle.cpp:
652 (WebCore::RenderStyle::changeRequiresLayout):
654 Use the normal mechanism for invalidating layout for first-line instead of a hack in pseudoStyleCacheIsInvalid.
656 * rendering/style/RenderStyleConstants.h:
657 * style/RenderTreeUpdater.cpp:
658 (WebCore::pseudoStyleCacheIsInvalid):
662 2016-11-28 Miguel Gomez <magomez@igalia.com>
664 [GTK] Dramatic increase on memory usage since 2.14.x
665 https://bugs.webkit.org/show_bug.cgi?id=164049
667 Reviewed by Žan Doberšek.
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.
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:
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:
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):
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:
712 2016-11-24 Sergio Villar Senin <svillar@igalia.com>
714 [css-grid] Move attributes from RenderGrid to the new Grid class
715 https://bugs.webkit.org/show_bug.cgi?id=165065
717 Reviewed by Darin Adler.
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.
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.
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.
729 No new tests required as this is a refactoring.
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:
753 2016-11-27 Sam Weinig <sam@webkit.org>
755 Remove unused DOMRequestState
756 https://bugs.webkit.org/show_bug.cgi?id=165085
758 Reviewed by Simon Fraser.
760 Remove DOMRequestState. It was unused.
762 * Modules/fetch/FetchBody.cpp:
763 * WebCore.xcodeproj/project.pbxproj:
764 * bindings/js/DOMRequestState.h: Removed.
766 2016-11-27 Csaba Osztrogonác <ossy@webkit.org>
768 Fix various --minimal build issues
769 https://bugs.webkit.org/show_bug.cgi?id=165060
771 Reviewed by Darin Adler.
773 * css/parser/CSSPropertyParser.cpp:
775 * loader/EmptyClients.cpp:
777 2016-11-26 Yusuke Suzuki <utatane.tea@gmail.com>
779 [WTF] Import std::optional reference implementation as WTF::Optional
780 https://bugs.webkit.org/show_bug.cgi?id=164199
782 Reviewed by Saam Barati and Sam Weinig.
784 Rename valueOr to value_or. This is specified in C++17 proposal.
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.
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
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):
841 (WebCore::setCredentials):
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:
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:
1111 (WebCore::FontFace::fontStateChanged):
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:
1140 (WebCore::Document::lastModified):
1142 (WebCore::Element::scrollBy):
1143 (WebCore::Element::getIntegralAttribute):
1144 (WebCore::Element::getUnsignedIntegralAttribute):
1145 (WebCore::Element::resolveCustomStyle):
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:
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):
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):
1387 * page/DOMWindow.cpp:
1388 (WebCore::DOMWindow::scrollBy):
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):
1400 (WebCore::Page::takeAnyMediaCanStartListener):
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:
1464 (WebCore::Theme::controlFont):
1466 (WebCore::TimerBase::alignedFireTime):
1468 (WebCore::URL::port):
1469 (WebCore::defaultPortForProtocol):
1470 (WebCore::portAllowed):
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):
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):
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:
1913 * xml/XMLHttpRequest.cpp:
1914 (WebCore::XMLHttpRequest::prepareToSend):
1915 (WebCore::XMLHttpRequest::didFinishLoading):
1916 * xml/XMLHttpRequest.h:
1918 2016-11-26 Csaba Osztrogonác <ossy@webkit.org>
1920 Fix build warnings in WebCore/Modules/indexeddb/server/IDBSerialization.cp
1921 https://bugs.webkit.org/show_bug.cgi?id=165070
1923 Reviewed by Brady Eidson.
1925 * Modules/indexeddb/server/IDBSerialization.cpp:
1927 2016-11-26 Sam Weinig <sam@webkit.org>
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
1932 Reviewed by Simon Fraser.
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.
1941 * page/IntersectionObserver.idl:
1942 * page/IntersectionObserverEntry.idl:
1943 Convert to use EnabledAtRuntime extended attribute.
1946 Remove the old intersection observer setting.
1948 2016-11-26 Simon Fraser <simon.fraser@apple.com>
1950 Migrate some layout timer-related code from std::chrono to Seconds and MonotonicTime
1951 https://bugs.webkit.org/show_bug.cgi?id=164992
1953 Reviewed by Darin Adler.
1955 std::chrono::milliseconds -> Seconds.
1957 Rename Document::elapsedTime() to timeSinceDocumentCreation() which is more explicit.
1959 Replace INSTRUMENT_LAYOUT_SCHEDULING with LOG(Layout...).
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.
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):
1980 (WebCore::Settings::layoutInterval):
1981 * style/StyleScope.cpp:
1982 (WebCore::Style::Scope::removePendingSheet):
1983 * workers/WorkerRunLoop.cpp:
1984 (WebCore::WorkerRunLoop::runInMode):
1986 2016-11-26 Simon Fraser <simon.fraser@apple.com>
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
1992 Reviewed by Zalan Bujtas.
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.
1999 Fix by sharing some code from RenderBox related to whether the body's renderer
2000 paints its background.
2002 Tests cover the buggy case, and the case where the <html> has its own background color.
2004 Tests: compositing/backgrounds/negative-z-index-behind-body-non-propagated.html
2005 compositing/backgrounds/negative-z-index-behind-body.html
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):
2016 2016-11-25 Myles C. Maxfield <mmaxfield@apple.com>
2018 [CSS Font Loading] FontFace.load() promises don't always fire
2019 https://bugs.webkit.org/show_bug.cgi?id=165037
2021 Reviewed by Simon Fraser.
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.
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.
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.)
2047 Because of the above reasons, this patch simply stops clearing the promise during the
2050 Tests: fast/text/fontface-rebuild-during-loading.html
2051 fast/text/fontface-rebuild-during-loading-2.html
2054 (WebCore::FontFace::adopt):
2056 2016-11-25 Andreas Kling <akling@apple.com>
2058 MemoryPressureHandler should only trigger synchronous GC on iOS
2059 <https://webkit.org/b/165043>
2060 <rdar://problem/29312684>
2062 Reviewed by Sam Weinig.
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.
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.
2071 Fix this by using garbageCollectSoon() on non-iOS platforms.
2073 * page/MemoryRelease.cpp:
2074 (WebCore::releaseCriticalMemory):
2076 2016-11-23 Sergio Villar Senin <svillar@igalia.com>
2078 [css-grid] Convert grid representation into a class
2079 https://bugs.webkit.org/show_bug.cgi?id=165042
2081 Reviewed by Manuel Rego Casasnovas.
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.
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.
2093 No new tests required as this is a refactoring.
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:
2111 2016-11-24 Antti Koivisto <antti@apple.com>
2113 Remove unused bool return from Element::willRecalcStyle
2114 https://bugs.webkit.org/show_bug.cgi?id=165059
2116 Reviewed by Andreas Kling.
2121 (WebCore::Element::willRecalcStyle):
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):
2134 * svg/SVGUseElement.cpp:
2135 (WebCore::SVGUseElement::willRecalcStyle):
2136 * svg/SVGUseElement.h:
2138 2016-11-22 Antti Koivisto <antti@apple.com>
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
2143 Reviewed by Darin Adler.
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.
2148 Test: fast/shadow-dom/shadow-host-move-to-different-document.html
2150 * dom/ShadowRoot.cpp:
2151 (WebCore::ShadowRoot::didMoveToNewDocument):
2156 * style/StyleScope.cpp:
2157 (WebCore::Style::Scope::resolver):
2159 Some more assertions.
2161 * style/StyleScope.h:
2162 (WebCore::Style::Scope::document):
2164 2016-11-22 Darin Adler <darin@apple.com>
2166 Make normal case fast in the input element limitString function
2167 https://bugs.webkit.org/show_bug.cgi?id=165023
2169 Reviewed by Dan Bernstein.
2171 When running Speedometer, the limitLength function was showing up as hot.
2172 Fixed a couple obvious problems with that function's performance.
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
2184 (WebCore::TextFieldInputType::handleBeforeTextInsertedEvent): Ditto.
2186 * platform/LocalizedStrings.cpp: Use auto a lot more rather than writing out
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.
2192 * rendering/RenderText.cpp:
2193 (WebCore::mapLineBreakToIteratorMode): Updated for change to LineBreakIteratorMode.
2194 * rendering/SimpleLineLayoutTextFragmentIterator.cpp:
2195 (WebCore::SimpleLineLayout::TextFragmentIterator::nextBreakablePosition): Ditto.
2197 2016-11-21 Sergio Villar Senin <svillar@igalia.com>
2199 [css-grid] Isolate size of internal representation from actual grid size
2200 https://bugs.webkit.org/show_bug.cgi?id=165006
2202 Reviewed by Manuel Rego Casasnovas.
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.
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.
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.
2218 No new tests as this is just a code refactoring.
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:
2232 2016-11-21 Konstantin Tokarev <annulen@yandex.ru>
2234 Disable #line markers in bison output on Windows
2235 https://bugs.webkit.org/show_bug.cgi?id=164973
2237 Reviewed by Darin Adler.
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.
2244 No new tests needed.
2246 * css/makegrammar.pl:
2248 2016-11-21 Olivier Blin <olivier.blin@softathome.com>
2250 [cmake][OpenWebRTC] Move SDPProcessorScriptResource rules to common WebCore
2251 https://bugs.webkit.org/show_bug.cgi?id=164937
2253 Reviewed by Youenn Fablet.
2255 SDPProcessorScriptResource has been moved in common mediastream directory (bug 163940).
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.
2260 This is needed to build OpenWebRTC support in other ports, WPE in my case,
2261 probably Mac, EFL and Qt as well.
2263 This also fixes the path in SDP scripts dependencies, the old openwebrtc subdir
2264 was still being used.
2266 No new tests, build fix only
2269 * PlatformGTK.cmake:
2271 2016-11-21 Carlos Garcia Campos <cgarcia@igalia.com>
2273 Add URL::hostAndPort()
2274 https://bugs.webkit.org/show_bug.cgi?id=164907
2276 Reviewed by Alex Christensen.
2278 As a convenient way of getting the host and port (if any) as a string.
2281 (WebCore::URLUtils<T>::host): Use URL::hostAndPort().
2282 * page/Location.cpp:
2283 (WebCore::Location::host): Ditto.
2285 (WebCore::URL::hostAndPort): Return host:port or just host if there isn't a port.
2287 * platform/network/CredentialStorage.cpp:
2288 (WebCore::originStringFromURL): Use URL::hostAndPort().
2289 * workers/WorkerLocation.cpp:
2290 (WebCore::WorkerLocation::host): Ditto.
2292 2016-11-21 Philippe Normand <pnormand@igalia.com>
2294 [WebRTC][OpenWebRTC] parse turns urls
2295 https://bugs.webkit.org/show_bug.cgi?id=164587
2297 Reviewed by Alejandro G. Castro.
2299 * platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
2300 (WebCore::MediaEndpointOwr::ensureTransportAgentAndTransceivers):
2301 Hook turns servers between the RTCConfiguration and the underlying
2304 2016-11-21 Philippe Normand <pnormand@igalia.com>
2306 [Gstreamer] Add volume and mute support to the WebRTC mediaplayer
2307 https://bugs.webkit.org/show_bug.cgi?id=153828
2309 Reviewed by Darin Adler.
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:
2318 2016-11-21 Alejandro G. Castro <alex@igalia.com> and Philippe Normand <pnormand@igalia.com>
2320 [WebRTC][OpenWebRTC] RTP bundling support
2321 https://bugs.webkit.org/show_bug.cgi?id=162333
2323 Reviewed by Alejandro G. Castro.
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
2330 * platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
2331 (WebCore::MediaEndpointOwr::updateReceiveConfiguration):
2332 (WebCore::MediaEndpointOwr::updateSendConfiguration):
2333 (WebCore::MediaEndpointOwr::ensureTransportAgentAndTransceivers):
2335 2016-11-20 Zan Dobersek <zdobersek@igalia.com>
2337 [EncryptedMedia] Make EME API runtime-enabled
2338 https://bugs.webkit.org/show_bug.cgi?id=164927
2340 Reviewed by Jer Noble.
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.
2346 The corresponding getter, setter and member boolean are added to
2347 the RuntimeEnabledFeatures class.
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:
2361 2016-11-20 Eric Carlson <eric.carlson@apple.com>
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>
2367 Reviewed by Alexey Proskuryakov.
2369 No new tests, fixes an existing test crash.
2371 * Modules/mediastream/UserMediaRequest.cpp:
2372 (WebCore::UserMediaRequest::contextDestroyed): Call base class method before clearing m_controller
2373 because it nullifies the security context.
2375 2016-11-19 Chris Dumez <cdumez@apple.com>
2377 Update HTML form validation messages
2378 https://bugs.webkit.org/show_bug.cgi?id=164957
2379 <rdar://problem/29338669>
2381 Reviewed by Darin Adler.
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.
2388 No new tests, rebaselined existing tests.
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):
2408 2016-11-19 Joanmarie Diggs <jdiggs@igalia.com>
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
2413 Reviewed by Chris Fleizach.
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.
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
2426 Tests: accessibility/aria-combobox-hierarchy.html
2427 accessibility/aria-selected-menu-items.html
2428 accessibility/aria-selected.html
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:
2448 (getInterfaceMaskFromObject):
2449 * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2450 (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2452 2016-11-19 Simon Fraser <simon.fraser@apple.com>
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
2457 Reviewed by Sam Weinig.
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.
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.
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).
2473 This allows us to remmove "viewportIsStable" from GraphicsLayer flushing, and FrameView.
2475 SetOrSyncScrollingLayerPosition is made into an enum class.
2477 Tested by scrollingcoordinator/ios/non-stable-viewport-scroll.html
2479 * page/FrameView.cpp:
2480 (WebCore::FrameView::reset):
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):
2544 2016-11-19 Joanmarie Diggs <jdiggs@igalia.com>
2546 AX: [ATK] Expose aria-busy via ATK_STATE_BUSY
2547 https://bugs.webkit.org/show_bug.cgi?id=164909
2549 Reviewed by Chris Fleizach.
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
2555 Test: accessibility/aria-busy.html
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):
2573 2016-11-19 Ryosuke Niwa <rniwa@webkit.org>
2575 REGRESSION(r200964): Tab focus navigation is broken on results.en.voyages-sncf.com
2576 https://bugs.webkit.org/show_bug.cgi?id=164888
2578 Reviewed by Antti Koivisto.
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.
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
2588 * page/FocusController.cpp:
2589 (WebCore::FocusNavigationScope::parentInScope):
2591 2016-11-18 Simon Fraser <simon.fraser@apple.com>
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
2596 Reviewed by Chris Dumez.
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.
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().
2605 Add a nullable internals property so that a test can specify responsive, unresponsive or default behavior.
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
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:
2620 2016-11-18 Chris Dumez <cdumez@apple.com>
2622 Unreviewed attempt to fix the build after r208917.
2624 * dom/CustomElementReactionQueue.cpp:
2625 (WebCore::CustomElementReactionStack::ElementQueue::invokeAll):
2627 2016-11-18 Chris Dumez <cdumez@apple.com>
2629 Unreviewed attempt to fix the build after r208917.
2631 * dom/CustomElementReactionQueue.cpp:
2633 2016-11-18 Jiewen Tan <jiewen_tan@apple.com>
2635 Update SubtleCrypto::decrypt to match the latest spec
2636 https://bugs.webkit.org/show_bug.cgi?id=164739
2637 <rdar://problem/29257848>
2639 Reviewed by Brent Fulgham.
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.
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
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):
2700 2016-11-18 Chris Dumez <cdumez@apple.com>
2702 Unreviewed, rolling out r208837.
2704 The bots did not show a progression
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
2712 2016-11-18 Simon Fraser <simon.fraser@apple.com>
2714 Remove use of std::chrono in WebPage and entrained code
2715 https://bugs.webkit.org/show_bug.cgi?id=164967
2717 Reviewed by Tim Horton.
2719 Replace std::chrono with Seconds and Monotonic Time.
2721 Use more C++11 initialization for WebPage data members.
2723 * page/ChromeClient.h:
2724 * page/FrameView.cpp:
2725 (WebCore::FrameView::scrollPositionChanged):
2726 (WebCore::FrameView::setScrollVelocity):
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):
2738 2016-11-18 Dean Jackson <dino@apple.com>
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>
2744 Reviewed by Simon Fraser.
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.
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
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):
2763 (WebCore::Page::accessibilitySettingsDidChange):
2766 2016-11-18 Anders Carlsson <andersca@apple.com>
2768 Rename the 'other' Apple Pay Button type to 'donate'
2769 https://bugs.webkit.org/show_bug.cgi?id=164978
2771 Reviewed by Dean Jackson.
2773 * DerivedSources.make:
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:
2787 2016-11-18 Myles C. Maxfield <mmaxfield@apple.com>
2789 [WebGL2] Implement texStorage2D()
2790 https://bugs.webkit.org/show_bug.cgi?id=164493
2792 Reviewed by Dean Jackson.
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.
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.
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.
2811 Test: fast/canvas/webgl/webgl2-texStorage.html
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):
2845 2016-11-18 Alex Christensen <achristensen@webkit.org>
2847 TextDecoder constructor should not accept replacement encodings
2848 https://bugs.webkit.org/show_bug.cgi?id=164903
2850 Reviewed by Chris Dumez.
2852 Covered by newly passing web platform tests.
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".
2861 2016-11-18 Chris Dumez <cdumez@apple.com>
2863 Assertion failures in ActiveDOMObject::~ActiveDOMObject under Database destructor
2864 https://bugs.webkit.org/show_bug.cgi?id=164955
2865 <rdar://problem/29336715>
2867 Reviewed by Brady Eidson.
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.
2874 No new tests, already covered by existing tests.
2876 * Modules/webdatabase/Database.cpp:
2877 (WebCore::Database::~Database):
2879 2016-11-18 Enrica Casucci <enrica@apple.com>
2881 Refactor drag and drop for WebKit2 to encode DragData message exchange.
2882 https://bugs.webkit.org/show_bug.cgi?id=164945
2884 Reviewed by Tim Horton.
2886 No new tests. No change in functionality.
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):
2921 2016-11-18 Jeremy Jones <jeremyj@apple.com>
2923 Add runtime flag to enable pointer lock. Enable pointer lock feature for mac.
2924 https://bugs.webkit.org/show_bug.cgi?id=163801
2926 Reviewed by Simon Fraser.
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
2934 PointerLockController::requestPointerLock now protects against synchronous callback
2935 to allowPointerLock().
2937 Add pointerLockEnabled setting.
2939 * Configurations/FeatureDefines.xcconfig:
2941 (WebCore::Document::exitPointerLock): Fix existing typo.
2942 (WebCore::Document::pointerLockElement):
2944 * page/EventHandler.cpp:
2945 * page/PointerLockController.cpp:
2946 (WebCore::PointerLockController::requestPointerLock):
2947 (WebCore::PointerLockController::requestPointerUnlock):
2950 2016-11-17 Alex Christensen <achristensen@webkit.org>
2952 Support IDN2008 with UTS #46 instead of IDN2003
2953 https://bugs.webkit.org/show_bug.cgi?id=144194
2955 Reviewed by Darin Adler.
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.
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.
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.
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.
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.
2977 * platform/URLParser.cpp:
2978 (WebCore::URLParser::domainToASCII):
2979 (WebCore::URLParser::internationalDomainNameTranscoder):
2980 * platform/URLParser.h:
2981 * platform/mac/WebCoreNSURLExtras.mm:
2982 (WebCore::mapHostNameWithRange):
2984 2016-11-18 Dean Jackson <dino@apple.com>
2986 Better testing for accessibility media queries
2987 https://bugs.webkit.org/show_bug.cgi?id=164954
2988 <rdar://problem/29338292>
2990 Reviewed by Myles Maxfield.
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.
2996 Tests: fast/media/mq-inverted-colors-forced-value.html
2997 fast/media/mq-monochrome-forced-value.html
2999 * css/MediaQueryEvaluator.cpp: Query the Settings to see if we're
3001 (WebCore::monochromeEvaluate):
3002 (WebCore::invertedColorsEvaluate):
3003 (WebCore::prefersReducedMotionEvaluate):
3005 * testing/InternalSettings.cpp: Add new forcing values for inverted-colors
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:
3022 2016-11-18 Myles C. Maxfield <mmaxfield@apple.com>
3024 Unsupported emoji are invisible
3025 https://bugs.webkit.org/show_bug.cgi?id=164944
3026 <rdar://problem/28591608>
3028 Reviewed by Dean Jackson.
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").
3035 Test: fast/text/emoji-draws.html
3037 * platform/graphics/WidthIterator.cpp:
3038 (WebCore::characterMustDrawSomething):
3039 (WebCore::WidthIterator::advanceInternal):
3041 2016-11-18 Sam Weinig <sam@webkit.org>
3043 [WebIDL] Add support for record types
3044 https://bugs.webkit.org/show_bug.cgi?id=164935
3046 Reviewed by Tim Horton.
3048 Add support for WebIDLs record types. We map them to HashMap<String, {OtherType}>.
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.
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.
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.
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.
3076 * bindings/scripts/CodeGenerator.pm:
3078 Add record and union types to the list of things that aren't RefPtrs.
3081 Add predicate for testing if a type is a record.
3084 Remove check for union. This is now handled in the IsRefPtrType check.
3086 (SkipIncludeHeader): Deleted.
3087 (GetSequenceInnerType): Deleted.
3088 (GetFrozenArrayInnerType): Deleted.
3089 (GetSequenceOrFrozenArrayInnerType): Deleted.
3090 Remove no longer necessary functions.
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
3097 (AddToIncludesForIDLType):
3098 Add includes and recursive includes for record types.
3100 (GenerateOverloadedFunctionOrConstructor):
3101 Update to account for records.
3103 (GetGnuVTableRefForInterface):
3104 (GetGnuVTableNameForInterface):
3105 (GetGnuMangledNameForInterface):
3106 (GetWinVTableNameForInterface):
3107 (GetWinMangledNameForInterface):
3108 Strength-reduce GetNativeTypeForConversions and GetNamespaceForInterface into their callers.
3111 Add support for IDLRecord. Remove call to GetIDLInterfaceName now that is simply the type name.
3114 Simplify sequence/FrozenArray support and add record support.
3116 (GetNativeInnerType):
3117 Generalize GetNativeVectorInnerType to work for record types as well.
3119 (ShouldPassWrapperByReference):
3120 Moved so native type accessors can be together.
3122 (NativeToJSValueDOMConvertNeedsState):
3123 (NativeToJSValueDOMConvertNeedsGlobalObject):
3126 (GetNativeTypeForConversions): Deleted.
3127 (GetNamespaceForInterface): Deleted.
3128 (GetNativeVectorType): Deleted.
3129 (GetIDLInterfaceName): Deleted.
3130 (GetNativeVectorInnerType): Deleted.
3131 Remove unneeded functions.
3133 * bindings/scripts/IDLParser.pm:
3135 Add helper useful for debugging, that constructs the string form of a type.
3137 (typeByApplyingTypedefs):
3138 Add missing call to typeByApplyingTypedefs (this is noted by a fix in JSTestCallbackFunctionWithTypedefs.h)
3141 Remove unused $subtypeName variables and add support for parsing record types.
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.
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.
3159 2016-11-18 Dave Hyatt <hyatt@apple.com>
3161 [CSS Parser] Support font-variation-settings
3162 https://bugs.webkit.org/show_bug.cgi?id=164947
3164 Reviewed by Myles Maxfield.
3166 * css/parser/CSSPropertyParser.cpp:
3167 (WebCore::consumeFontVariationTag):
3168 (WebCore::consumeFontVariationSettings):
3169 (WebCore::CSSPropertyParser::parseSingleValue):
3171 2016-11-17 Jiewen Tan <jiewen_tan@apple.com>
3173 Update SubtleCrypto::encrypt to match the latest spec
3174 https://bugs.webkit.org/show_bug.cgi?id=164738
3175 <rdar://problem/29257812>
3177 Reviewed by Brent Fulgham.
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.
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
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.
3283 2016-11-18 Ryan Haddad <ryanhaddad@apple.com>
3285 Attempt to fix iOS build again.
3286 <rdar://problem/29312689>
3288 Unreviewed build fix.
3290 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3291 (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack):
3292 (WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack):
3294 2016-11-18 Myles C. Maxfield <mmaxfield@apple.com>
3296 [CSS Font Loading] FontFaceSet.load() promises don't always fire
3297 https://bugs.webkit.org/show_bug.cgi?id=164902
3299 Reviewed by David Hyatt.
3301 Test: fast/text/fontfaceset-rebuild-during-loading.html
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.
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.
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.
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.
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.
3328 This patch also adds a lengthy comment explaining how the migration works.
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:
3341 2016-11-18 Myles C. Maxfield <mmaxfield@apple.com>
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>
3347 Reviewed by Darin Adler.
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.
3352 Covered by existing tests.
3354 * svg/SVGToOTFFontConversion.cpp:
3356 2016-11-18 Ryan Haddad <ryanhaddad@apple.com>
3358 Attempt to fix iOS build.
3359 <rdar://problem/29312689>
3361 Unreviewed build fix.
3363 * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:
3364 (WebCore::MediaSelectionGroupAVFObjC::updateOptions):
3366 2016-11-18 Dave Hyatt <hyatt@apple.com>
3368 [CSS Parser] Hook up InspectorStyleSheet to the new CSS parser.
3369 https://bugs.webkit.org/show_bug.cgi?id=164886
3371 Reviewed by Dean Jackson.
3373 * css/CSSGrammar.y.in:
3374 Get rid of the CSSRuleSourceData type enum, since StyleRule's type
3375 enum is exactly the same.
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.
3383 (WebCore::CSSRuleSourceData::create):