Implement system fonts FontDescription caching at RenderTheme level
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2015-01-23  Chris Dumez  <cdumez@apple.com>
2
3         Implement system fonts FontDescription caching at RenderTheme level
4         https://bugs.webkit.org/show_bug.cgi?id=140840
5
6         Reviewed by Andreas Kling.
7
8         Implement system fonts FontDescription caching at RenderTheme level
9         instead of duplicating the logic in its subclasses for each platform.
10         This reduces code / logic duplication and reduces the amount of
11         platform-specific code. This will also make the refactoring at
12         Bug 140577 a lot easier.
13
14         The caching logic remains in RenderThemeIOS class for iOS because:
15         - It supports different system font values than all other platforms
16         - It requires cache invalidation in some cases while other platforms
17           do not.
18
19         This patch is inspired by the following Blink revision:
20         https://src.chromium.org/viewvc/blink?view=rev&revision=184449
21
22         Test: fast/css/css2-system-fonts.html
23
24 2015-01-23  Zalan Bujtas  <zalan@apple.com>
25
26         Simple line layout: Refactor line wrapping logic.
27         https://bugs.webkit.org/show_bug.cgi?id=140834
28
29         Reviewed by Antti Koivisto.
30
31         Use a more readable structure to deal with wrapping logic. 
32
33         No change in functionality.
34
35         * rendering/SimpleLineLayout.cpp:
36         (WebCore::SimpleLineLayout::createLineRuns):
37
38 2015-01-23  Zalan Bujtas  <zalan@apple.com>
39
40         Simple line layout: Use only FlowContents::nextTextFragment() to read fragments from the text flow.
41         https://bugs.webkit.org/show_bug.cgi?id=140842
42
43         Reviewed by Antti Koivisto.
44
45         This is in preparation to make FlowContents a content iterator class.
46
47         No change in functionality.
48
49         * rendering/SimpleLineLayout.cpp:
50         (WebCore::SimpleLineLayout::initializeNewLine):
51         * rendering/SimpleLineLayoutFlowContents.h:
52
53 2015-01-23  Bartlomiej Gajda  <b.gajda@samsung.com>
54
55         [MSE] Implement Range Removal algorithm.
56         https://bugs.webkit.org/show_bug.cgi?id=140622.
57
58         Reviewed by Jer Noble.
59
60         This extract Range Removal algorithm (Editor's Draft version, bug:26316) from remove(),
61         to separate function to deal with old FIXME since bug in spec was resolved.
62         This should both guarantee good order of events, and prevent from switching to 'open' state
63         during end of stream.
64
65         Test: media/media-source/media-source-end-of-stream-readyState.html
66
67         * Modules/mediasource/MediaSource.cpp:
68         (WebCore::MediaSource::setDurationInternal): update to use rangeRemoval(), not remove()
69         (WebCore::MediaSource::streamEndedWithError): remove FIXME, brigning back correct order of events.
70         * Modules/mediasource/SourceBuffer.cpp:
71         (WebCore::SourceBuffer::remove): comments up to spec, extract rangeRemoval algorithm.
72         (WebCore::SourceBuffer::rangeRemoval):
73         (WebCore::SourceBuffer::removeTimerFired): comments up to spec.
74         * Modules/mediasource/SourceBuffer.h:
75
76 2015-01-23  Enrica Casucci  <enrica@apple.com>
77
78         Hit test returns incorrect results when performed in paginated content over the page gaps.
79         https://bugs.webkit.org/show_bug.cgi?id=140837
80         rdar://problem/17494390
81
82         Reviewed by Dave Hyatt.
83
84         Tests: fast/multicol/pagination/LeftToRight-tb-hittest.html
85                fast/multicol/pagination/RightToLeft-rl-hittest.html
86
87         When hittesting reaches the RenderView we need to check if we are
88         in paginated content and use the correct class to compute hittest results.
89
90         * rendering/RenderView.cpp:
91         (WebCore::RenderView::updateHitTestResult):
92
93 2015-01-23  Andreas Kling  <akling@apple.com>
94
95         Document should be a FontSelectorClient.
96         <https://webkit.org/b/140833>
97
98         Reviewed by Antti Koivisto.
99
100         Make Document a FontSelectorClient so it can listen to the invalidation
101         callbacks from FontSelector instead of having code in FontSelector that
102         calls out to Document on invalidation.
103
104         * css/CSSFontSelector.cpp:
105         (WebCore::CSSFontSelector::dispatchInvalidationCallbacks):
106         * dom/Document.cpp:
107         (WebCore::Document::fontsNeedUpdate):
108         (WebCore::Document::fontSelector):
109         (WebCore::Document::clearStyleResolver):
110         * dom/Document.h:
111
112 2015-01-23  Chris Dumez  <cdumez@apple.com>
113
114         Leverage CSSValuePool's font family cache in CSSComputedStyleDeclaration
115         https://bugs.webkit.org/show_bug.cgi?id=140829
116
117         Reviewed by Andreas Kling.
118
119         Leverage CSSValuePool's font family cache in CSSComputedStyleDeclaration
120         by calling CSSValuePool::createFontFamilyValue() to create the font
121         family CSSPrimitiveValue instead of cssValuePool().createValue().
122
123         * css/CSSComputedStyleDeclaration.cpp:
124         (WebCore::valueForFamily):
125
126 2015-01-23  Timothy Horton  <timothy_horton@apple.com>
127
128         QLPreviewMenuItem popovers don't close when the page scrolls
129         https://bugs.webkit.org/show_bug.cgi?id=140806
130         <rdar://problem/19555618>
131
132         Reviewed by Beth Dakin.
133
134         * platform/spi/mac/QuickLookMacSPI.h:
135         Add some SPI.
136
137 2015-01-23  Andreas Kling  <akling@apple.com>
138
139         Hang CSSFontSelector off Document instead of StyleResolver.
140         <https://webkit.org/b/140820>
141
142         Reviewed by Antti Koivisto.
143
144         Move the CSSFontSelector from StyleResolver to Document. This is the first
145         step towards making the CSSFontSelector be able to survive full style recalc.
146
147         Clearing a Document's StyleResolver will still nuke the CSSFontSelector,
148         though that is done in Document::clearStyleResolver() now.
149
150         * css/CSSFontSelector.cpp:
151         (WebCore::CSSFontSelector::CSSFontSelector):
152         * css/CSSFontSelector.h:
153
154             Modernize CSSFontSelector construction a bit by having create() return
155             a Ref and the constructor take a Document& instead of a Document*.
156             Also made the constructor explicit.
157
158         (WebCore::StyleResolver::~StyleResolver):
159         * dom/Document.cpp:
160         (WebCore::Document::clearStyleResolver):
161
162             Nuke the current CSSFontSelector in clearStyleResolver() instead of
163             in ~StyleResolver. It's a minor change, but shows the way forward.
164             Added a FIXME about how CSSFontSelector should eventually survive
165             this operation.
166
167         (WebCore::Document::fontSelector):
168         * css/FontLoader.cpp:
169         (WebCore::FontLoader::loadFont):
170         (WebCore::FontLoader::checkFont):
171         (WebCore::FontLoader::resolveFontStyle):
172         * css/RuleSet.cpp:
173         (WebCore::RuleSet::addChildRules):
174         * css/StyleResolver.h:
175         (WebCore::StyleResolver::fontSelector): Deleted.
176         * css/StyleResolver.cpp:
177         (WebCore::StyleResolver::StyleResolver):
178         (WebCore::StyleResolver::appendAuthorStyleSheets):
179         (WebCore::StyleResolver::styleForElement):
180         (WebCore::StyleResolver::defaultStyleForElement):
181         (WebCore::StyleResolver::updateFont):
182         * dom/Document.h:
183         * html/canvas/CanvasRenderingContext2D.cpp:
184         (WebCore::CanvasRenderingContext2D::setFont):
185         * rendering/RenderListBox.cpp:
186         (WebCore::RenderListBox::updateFromElement):
187         (WebCore::RenderListBox::paintItemForeground):
188         * rendering/RenderMenuList.cpp:
189         (RenderMenuList::fontSelector):
190         * rendering/RenderSearchField.cpp:
191         (WebCore::RenderSearchField::fontSelector):
192         * rendering/TextAutoSizing.cpp:
193         (WebCore::TextAutoSizingValue::adjustNodeSizes):
194         (WebCore::TextAutoSizingValue::reset):
195         * rendering/svg/RenderSVGInlineText.cpp:
196         (WebCore::RenderSVGInlineText::computeNewScaledFontForStyle):
197         * style/StyleResolveForDocument.cpp:
198         (WebCore::Style::resolveForDocument):
199         * style/StyleResolveTree.cpp:
200         (WebCore::Style::resolveTree):
201
202             Move CSSFontSelector ownership from StyleResolver to Document.
203
204 2015-01-23  Jer Noble  <jer.noble@apple.com>
205
206         Layout Test http/tests/media/track-in-band-hls-metadata.html is flaky
207         https://bugs.webkit.org/show_bug.cgi?id=140827
208
209         Reviewed by Eric Carlson.
210
211         Create the m_metadataTrack by calling prepareMetadataTrack() before deref-ing it.
212
213         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
214         (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
215
216 2015-01-23  Carlos Garcia Campos  <cgarcia@igalia.com>
217
218         [GTK] Add initial database process support
219         https://bugs.webkit.org/show_bug.cgi?id=139491
220
221         Reviewed by Sergio Villar Senin.
222
223         * platform/sql/SQLiteFileSystem.cpp:
224         (WebCore::SQLiteFileSystem::openDatabase): Use
225         WebCore::fileSystemRepresentation() for the database filename,
226         otherwise sqlite3_open() fails when the filename contains "%2E".
227
228 2015-01-23  Byeongha Cho  <byeongha.cho@samsung.com>
229
230         Initialization for some member variable of FontPlatformData
231         https://bugs.webkit.org/show_bug.cgi?id=136327
232
233         Reviewed by Myles C. Maxfield.
234
235         No new tests. There's no functional change.
236
237         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
238         (WebCore::FontPlatformData::FontPlatformData):
239         (WebCore::FontPlatformData::operator=):
240         (WebCore::FontPlatformData::~FontPlatformData):
241
242 2015-01-23  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
243
244         Rename ChildNodeRemovalNotifier::m_insertionPoint to m_removalPoint
245         https://bugs.webkit.org/show_bug.cgi?id=140766
246
247         Reviewed by Andreas Kling.
248
249         ChildNodeRemovalNotifier::ChildNodeRemovalNotifier(...) should take
250         a node as removal point.
251         It's probably Copy/Paste from ChildNodeInsertionNotifier::m_insertionPoint.
252
253         No new tests. No behavior change.
254
255         * dom/ContainerNodeAlgorithms.h:
256         (WebCore::ChildNodeRemovalNotifier::ChildNodeRemovalNotifier):
257         (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument):
258         (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromTree):
259
260 2015-01-23  Hunseop Jeong  <hs85.jeong@samsung.com>
261
262         [GTK] Fix debug build after r178940
263         https://bugs.webkit.org/show_bug.cgi?id=140814
264
265         Reviewed by Carlos Garcia Campos.
266
267         * platform/graphics/opentype/OpenTypeVerticalData.cpp:
268         (WebCore::OpenTypeVerticalData::substituteWithVerticalGlyphs):
269
270 2015-01-22  Zalan Bujtas  <zalan@apple.com>
271
272         Simple line layout: Move leading whitespace handling from removeTrailingWhitespace() to initializeNewLine().
273         https://bugs.webkit.org/show_bug.cgi?id=140757
274
275         Reviewed by Antti Koivisto.
276
277         Checking if overflowed pre-wrap whitespace needs to be ignored should not be part of the trailing whitespace handling.
278         Move it to initializeNewLine(). 
279
280         No change in functionality.
281
282         * rendering/SimpleLineLayout.cpp:
283         (WebCore::SimpleLineLayout::preWrap):
284         (WebCore::SimpleLineLayout::removeTrailingWhitespace):
285         (WebCore::SimpleLineLayout::initializeNewLine):
286         * rendering/SimpleLineLayoutFlowContents.h:
287         (WebCore::SimpleLineLayout::FlowContents::isLineBreak):
288
289 2015-01-22  Jer Noble  <jer.noble@apple.com>
290
291         [iOS] Media controls disappear when loading a HLS live stream
292         https://bugs.webkit.org/show_bug.cgi?id=140792
293         rdar://problem/19491658
294
295         Reviewed by Dean Jackson.
296
297         Overload reconnectControls to reconnect the "start playback" button
298         if the control type has been set to "StartPlaybackButton".
299
300         * Modules/mediacontrols/mediaControlsiOS.js:
301         (ControllerIOS.prototype.reconnectControls):
302
303 2015-01-22  peavo@outlook.com  <peavo@outlook.com>
304
305         [Win] No plugin content on some sites.
306         https://bugs.webkit.org/show_bug.cgi?id=140780
307
308         Reviewed by Anders Carlsson.
309
310         Return script instance from ScriptController::createScriptInstanceForWidget(),
311         instead of always returning null.
312
313         * bindings/js/ScriptController.cpp:
314         (WebCore::ScriptController::createScriptInstanceForWidget):
315         * plugins/PluginViewBase.h:
316         (WebCore::PluginViewBase::bindingInstance):
317
318 2015-01-22  Jer Noble  <jer.noble@apple.com>
319
320         [Mac][EME] Adopt changes to AVStreamSession class methods
321         https://bugs.webkit.org/show_bug.cgi?id=140778
322         rdar://problem/19458200
323
324         Reviewed by Eric Carlson.
325
326         AVStreamSession class methods have added a "storageDirectoryAtURL:" parameter so as to be able to
327         read and modify records stored at non-default storage locations.
328
329         * Modules/encryptedmedia/MediaKeySession.cpp:
330         (WebCore::MediaKeySession::mediaKeysStorageDirectory): Implement client method by querying document and settings.
331         * Modules/encryptedmedia/MediaKeySession.h:
332         * platform/graphics/CDMSession.h:
333         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:
334         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
335         (WebCore::CDMSessionMediaSourceAVFObjC::releaseKeys): Check whether the AVStreamSession class responds to new selector before calling.
336         (WebCore::CDMSessionMediaSourceAVFObjC::update): Ditto.
337         (WebCore::CDMSessionMediaSourceAVFObjC::generateKeyReleaseMessage): Ditto.
338         (WebCore::CDMSessionMediaSourceAVFObjC::storagePath): Fetch the storage path from the client.
339
340 2015-01-22  Michael Saboff  <msaboff@apple.com>
341
342         REGRESSION (174847): can't view NHK(Japan's national public broadcasting organization)’s news pages
343         https://bugs.webkit.org/show_bug.cgi?id=140794
344
345         Reviewed by Anders Carlsson.
346
347         If a document.open has been set, return it instead of always returning a new,
348         non-cached instance of jsHTMLDocumentPrototypeFunctionOpen.
349
350         Test: js/dom/document-overwrite-open.html
351
352         * bindings/js/JSHTMLDocumentCustom.cpp:
353         (WebCore::JSHTMLDocument::getOwnPropertySlot):
354
355 2015-01-22  Zalan Bujtas  <zalan@apple.com>
356
357         Simple line layout: Reset LineState when starting a new line.
358         https://bugs.webkit.org/show_bug.cgi?id=140789
359
360         Reviewed by Antti Koivisto.
361
362         Reset LineState when starting a new line to ensure we always
363         start with a clean state.
364
365         No change in functionality.
366
367         * rendering/SimpleLineLayout.cpp:
368         (WebCore::SimpleLineLayout::updateLineConstrains):
369         (WebCore::SimpleLineLayout::initializeNewLine):
370         (WebCore::SimpleLineLayout::splitFragmentToFitLine):
371         (WebCore::SimpleLineLayout::createTextRuns):
372
373 2015-01-22  Roger Fong  <roger_fong@apple.com>
374
375         [WebGL2] Create empty interface files for new WebGL2 objects.
376         https://bugs.webkit.org/show_bug.cgi?id=140779.
377         <rdar://problem/15002288>
378
379         Reviewed by Dean Jackson.
380
381         * CMakeLists.txt:
382         * DerivedSources.cpp:
383         * DerivedSources.make:
384         * WebCore.vcxproj/WebCore.vcxproj:
385         * WebCore.vcxproj/WebCore.vcxproj.filters:
386         * WebCore.xcodeproj/project.pbxproj:
387         * html/canvas/WebGLQuery.cpp: Added.
388         (WebCore::WebGLQuery::create):
389         (WebCore::WebGLQuery::~WebGLQuery):
390         (WebCore::WebGLQuery::WebGLQuery):
391         (WebCore::WebGLQuery::deleteObjectImpl):
392         * html/canvas/WebGLQuery.h: Added.
393         * html/canvas/WebGLQuery.idl: Added.
394         * html/canvas/WebGLSampler.cpp: Added.
395         (WebCore::WebGLSampler::create):
396         (WebCore::WebGLSampler::~WebGLSampler):
397         (WebCore::WebGLSampler::WebGLSampler):
398         (WebCore::WebGLSampler::deleteObjectImpl):
399         * html/canvas/WebGLSampler.h: Added.
400         * html/canvas/WebGLSampler.idl: Added.
401         * html/canvas/WebGLSharedObject.h:
402         (WebCore::WebGLSharedObject::isQuery):
403         (WebCore::WebGLSharedObject::isSampler):
404         (WebCore::WebGLSharedObject::isSync):
405         (WebCore::WebGLSharedObject::isTransformFeedback):
406         (WebCore::WebGLSharedObject::isVertexArrayObject):
407         * html/canvas/WebGLSync.cpp: Added.
408         (WebCore::WebGLSync::create):
409         (WebCore::WebGLSync::~WebGLSync):
410         (WebCore::WebGLSync::WebGLSync):
411         (WebCore::WebGLSync::deleteObjectImpl):
412         * html/canvas/WebGLSync.h: Added.
413         * html/canvas/WebGLSync.idl: Added.
414         * html/canvas/WebGLTransformFeedback.cpp: Added.
415         (WebCore::WebGLTransformFeedback::create):
416         (WebCore::WebGLTransformFeedback::~WebGLTransformFeedback):
417         (WebCore::WebGLTransformFeedback::WebGLTransformFeedback):
418         (WebCore::WebGLTransformFeedback::deleteObjectImpl):
419         * html/canvas/WebGLTransformFeedback.h: Added.
420         * html/canvas/WebGLTransformFeedback.idl: Added.
421         * html/canvas/WebGLVertexArrayObject.cpp: Added.
422         (WebCore::WebGLVertexArrayObject::create):
423         (WebCore::WebGLVertexArrayObject::~WebGLVertexArrayObject):
424         (WebCore::WebGLVertexArrayObject::WebGLVertexArrayObject):
425         (WebCore::WebGLVertexArrayObject::deleteObjectImpl):
426         * html/canvas/WebGLVertexArrayObject.h: Added.
427         * html/canvas/WebGLVertexArrayObject.idl: Added.
428
429 2015-01-22  Chris Dumez  <cdumez@apple.com>
430
431         Fix remaining multiple targets per rule issues in DerivedSources.make
432         https://bugs.webkit.org/show_bug.cgi?id=140790
433
434         Reviewed by David Kilzer.
435
436         Fix remaining multiple target per rule issues in DerivedSources.make,
437         similarly to Bug 140784 and Bug 140756.
438
439         This was causing us to run scripts several times to generate the same
440         files and may lead to malformed files in case of concurrency.
441
442         * DerivedSources.make:
443
444 2015-01-22  Ryosuke Niwa  <rniwa@webkit.org>
445
446         Add a build flag for ES6 class syntax
447         https://bugs.webkit.org/show_bug.cgi?id=140760
448
449         Reviewed by Michael Saboff.
450
451         * Configurations/FeatureDefines.xcconfig:
452
453 2015-01-22  Chris Dumez  <cdumez@apple.com>
454
455         SVGNames.cpp and HTMLNames.cpp are sometimes malformed
456         https://bugs.webkit.org/show_bug.cgi?id=140784
457         <rdar://problem/17701233>
458
459         Reviewed by David Kilzer.
460
461         Due to bad rules in DerivedSources.make, make_names.pl was called
462         several times with the same arguments during build. This is because
463         SVG/HTML/MathML each had several targets associated to the same
464         command. This would cause the command (make_names.pl) to be called
465         once per target. However, make_names.pl only needs to be executed
466         once to generate all of the files currently marked as target.
467
468         Calling make_names.pl several times for the same files is not only
469         wasteful, but it can also lead to malformed generated files if the
470         scripts instances are executed in parallel as they will read / write
471         from / to the same files.
472
473         This patch uses INTERMEDIATE targets instead so that we can still
474         indicate which files are generated by make_names.pl but only run
475         the script once.
476
477         This is a similar fix as for Bug 140756. There may several other
478         similar issues in DerivedSources.make but this patch focuses on
479         make_names.pl. I will take care of other in follow-ups if needed.
480
481         * DerivedSources.make:
482
483 2015-01-22  Chris Dumez  <cdumez@apple.com>
484
485         Have Counter::create() return a Ref<Counter>
486         https://bugs.webkit.org/show_bug.cgi?id=140777
487
488         Reviewed by Andreas Kling.
489
490         Have Counter::create() return a Ref<Counter> instead of a PassRefPtr.
491
492         The CSSPrimitiveValue class needed some updates as well to support
493         constructing a CSSPrimitiveValue object from a Ref<>.
494
495         * css/CSSPrimitiveValue.cpp:
496         (WebCore::CSSPrimitiveValue::init):
497         * css/CSSPrimitiveValue.h:
498         (WebCore::CSSPrimitiveValue::create):
499         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
500         * css/Counter.h:
501         (WebCore::Counter::create):
502         (WebCore::Counter::cloneForCSSOM):
503
504 2015-01-22  Chris Dumez  <cdumez@apple.com>
505
506         Drop the legacy FeatureCounter class
507         https://bugs.webkit.org/show_bug.cgi?id=140749
508
509         Reviewed by Andreas Kling.
510
511         Drop the legacy FeatureCounter class and use DiagnosticLoggingClient
512         instead.
513
514         * CMakeLists.txt:
515         * Configurations/WebCore.xcconfig:
516         * WebCore.exp.in:
517         * WebCore.vcxproj/WebCore.vcxproj:
518         * WebCore.vcxproj/WebCore.vcxproj.filters:
519         * WebCore.xcodeproj/project.pbxproj:
520         * html/HTMLMediaElement.cpp:
521         (WebCore::HTMLMediaElement::parseAttribute):
522         * loader/SubresourceLoader.cpp:
523         (WebCore::SubresourceLoader::willSendRequest):
524         (WebCore::SubresourceLoader::didReceiveResponse):
525         * loader/cache/CachedResource.cpp:
526         (WebCore::CachedResource::mustRevalidateDueToCacheHeaders):
527         * loader/cache/CachedResourceLoader.cpp:
528         (WebCore::logMemoryCacheResourceRequest):
529         (WebCore::CachedResourceLoader::requestResource):
530         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
531         * page/DiagnosticLoggingKeys.cpp:
532         (WebCore::DiagnosticLoggingKeys::mustRevalidateIsExpiredKey):
533         (WebCore::DiagnosticLoggingKeys::playedKey):
534         (WebCore::DiagnosticLoggingKeys::noCacheKey):
535         (WebCore::DiagnosticLoggingKeys::noStoreKey):
536         (WebCore::DiagnosticLoggingKeys::notInMemoryCacheKey):
537         (WebCore::DiagnosticLoggingKeys::mediaKey):
538         (WebCore::DiagnosticLoggingKeys::isExpiredKey):
539         (WebCore::DiagnosticLoggingKeys::loadingKey):
540         (WebCore::DiagnosticLoggingKeys::inMemoryCacheKey):
541         (WebCore::DiagnosticLoggingKeys::reasonKey):
542         (WebCore::DiagnosticLoggingKeys::audioKey):
543         (WebCore::DiagnosticLoggingKeys::cachedResourceRevalidationKey):
544         (WebCore::DiagnosticLoggingKeys::resourceRequestKey):
545         (WebCore::DiagnosticLoggingKeys::revalidatingKey):
546         (WebCore::DiagnosticLoggingKeys::unusedKey):
547         (WebCore::DiagnosticLoggingKeys::unusedReasonCredentialSettingsKey):
548         (WebCore::DiagnosticLoggingKeys::unusedReasonErrorKey):
549         (WebCore::DiagnosticLoggingKeys::unusedReasonMustRevalidateNoValidatorKey):
550         (WebCore::DiagnosticLoggingKeys::unusedReasonNoStoreKey):
551         (WebCore::DiagnosticLoggingKeys::unusedReasonRedirectChainKey):
552         (WebCore::DiagnosticLoggingKeys::unusedReasonReloadKey):
553         (WebCore::DiagnosticLoggingKeys::unusedReasonTypeMismatchKey):
554         (WebCore::DiagnosticLoggingKeys::usedKey):
555         (WebCore::DiagnosticLoggingKeys::userKey):
556         (WebCore::DiagnosticLoggingKeys::videoKey):
557         (WebCore::DiagnosticLoggingKeys::webViewKey):
558         (WebCore::DiagnosticLoggingKeys::zoomedKey):
559         * page/DiagnosticLoggingKeys.h:
560         * page/Settings.in:
561         * platform/FeatureCounter.cpp: Removed.
562         * platform/FeatureCounter.h: Removed.
563         * platform/FeatureCounterKeys.h: Removed.
564         * platform/ios/FeatureCounter.mm: Removed.
565
566 2015-01-22  Benjamin Poulain  <benjamin@webkit.org>
567
568         When extending the fallback transitions with their closure, we are modifying the Set while iterating it
569         https://bugs.webkit.org/show_bug.cgi?id=140785
570
571         Reviewed by Andreas Kling.
572
573         * contentextensions/NFAToDFA.cpp:
574         (WebCore::ContentExtensions::populateTransitions):
575         Make that in two steps: accumulate the fallback transitions then add the closure
576         of every element.
577
578 2015-01-21  Antti Koivisto  <antti@apple.com>
579
580         Rename SimpleFontData to Font
581         https://bugs.webkit.org/show_bug.cgi?id=140496
582
583         Reviewed by Zalan Bujtas.
584
585         The fallback supporting Font type was renamed FontCascade.
586         We can now rename SimpleFontData to Font matching the usual definition.
587
588 2015-01-22  Zalan Bujtas  <zalan@apple.com>
589
590         Simple line layout: Make trailing whitespace handling more explicit.
591         https://bugs.webkit.org/show_bug.cgi?id=140776
592
593         Reviewed by Antti Koivisto.
594
595         Differentiate between committed and uncommitted trailing whitespace.
596         This enables further cleanup in removeTrailingWhitespace().
597
598         No change in functionality.
599
600         * rendering/SimpleLineLayout.cpp:
601         (WebCore::SimpleLineLayout::LineState::commitAndCreateRun):
602         (WebCore::SimpleLineLayout::LineState::addUncommitted):
603         (WebCore::SimpleLineLayout::LineState::hasWhitespaceOnly):
604         (WebCore::SimpleLineLayout::LineState::removeTrailingWhitespace):
605         (WebCore::SimpleLineLayout::removeTrailingWhitespace):
606         (WebCore::SimpleLineLayout::LineState::LineState): Deleted.
607         (WebCore::SimpleLineLayout::LineState::removeCommittedTrailingWhitespace): Deleted.
608         (WebCore::SimpleLineLayout::LineState::resetTrailingWhitespace): Deleted.
609
610 2015-01-22  Alexey Proskuryakov  <ap@apple.com>
611
612         Crash in URL::protocol() after appcache load fails
613         https://bugs.webkit.org/show_bug.cgi?id=140755
614         rdar://problem/7881290
615
616         Reviewed by Dan Bates.
617
618         Test: http/tests/appcache/404-resource-with-slow-main-resource.php
619
620         Not every cache that isn't being updated is complete. It could also be in a zombie
621         state after failing to load. We get rid of the cache once the main resource finishes
622         loading, but while it's being loaded, the zombie still looks like a regular
623         candidate application cache.
624
625         * loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::isComplete):
626         * loader/appcache/ApplicationCache.h:
627         Removed const from isComplete(), because otherwise we couldn't use ApplicationCacheGroup::m_caches.contains().
628         Constness doesn't make a lot of sense for these objects anyway.
629
630         * loader/appcache/ApplicationCacheGroup.cpp:
631         (WebCore::ApplicationCacheGroup::failedLoadingMainResource): Toned down an assertion.
632         We can fail a main resource load when the document has a zombie appcache, too.
633
634         * loader/appcache/ApplicationCacheGroup.h:
635         (WebCore::ApplicationCacheGroup::cacheIsComplete):
636         (WebCore::ApplicationCacheGroup::cacheIsBeingUpdated): Deleted.
637         These functions are only used in ApplicationCache::isComplete().
638
639 2015-01-22  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
640
641         Avoid defining always empty Vector<TextCheckingResult>
642         https://bugs.webkit.org/show_bug.cgi?id=140765
643
644         Reviewed by Alexey Proskuryakov.
645
646         Pass an empty vector direclty instead.
647
648         No new tests. No behavior change.
649
650         * editing/SpellChecker.cpp:
651         (WebCore::SpellChecker::didCheckCancel):
652
653 2015-01-22  Chris Dumez  <cdumez@apple.com>
654
655         makeprop.pl script is called too many times during build
656         https://bugs.webkit.org/show_bug.cgi?id=140756
657         <rdar://problem/19467942>
658
659         Reviewed by David Kilzer.
660
661         The makeprop.pl script was called 4 times (instead of once) during
662         build due to a bad Makefile rule in DerivedSources.make. makeprop.pl
663         had 4 associated targets and thus was called 4 times (with the same
664         parameter). Calling it once is sufficient to generate all 4 files
665         that were marked as target. This patch uses an INTERMEDIATE target
666         instead so that we can indicate that several files are generated
667         by the same command.
668
669         I believe this may be the reason for the sporatic build failures
670         that look like:
671         """
672         CSSPropertyNames.gperf: No keywords in input file!
673         calling gperf failed: 256 at WebCore/css/makeprop.pl line 1036.
674         """
675         The makeprop.pl script is generating gperf's input file and calling the
676         gperf executable on this file. If the script is executed several times
677         in parallel, it would explain the build failures as several instances
678         of makeprop.pl may be writing / reading from the same
679         CSSPropertyNames.gperf file.
680
681         * DerivedSources.make:
682
683 2015-01-22  Commit Queue  <commit-queue@webkit.org>
684
685         Unreviewed, rolling out r178894.
686         https://bugs.webkit.org/show_bug.cgi?id=140775
687
688         Broke JSC and bindings tests (Requested by ap_ on #webkit).
689
690         Reverted changeset:
691
692         "put_by_val_direct need to check the property is index or not
693         for using putDirect / putDirectIndex"
694         https://bugs.webkit.org/show_bug.cgi?id=140426
695         http://trac.webkit.org/changeset/178894
696
697 2015-01-22  David Kilzer  <ddkilzer@apple.com>
698
699         [iOS] Fix iphoneos SDK builds for ios-ews queue
700         <http://webkit.org/b/140748>
701
702         Reviewed by Daniel Bates.
703
704         * WebCore.xcodeproj/project.pbxproj: Add new SPI headers.
705         * platform/graphics/cg/ImageBufferCG.cpp: Switch to using
706         "IOSurfaceSPI.h" from <IOSurface/IOSurface.h>.
707         * platform/graphics/cg/ImageBufferDataCG.cpp: Ditto.
708         * platform/graphics/cocoa/IOSurface.mm: Ditto.  Move definitions
709         in <IOSurface/IOSurfacePrivate.h> into "IOSurfaceSPI.h".
710         * platform/spi/cg/CoreGraphicsSPI.h: Switch to
711         WTF_EXTERN_C_{BEGIN,END}.  Add
712         CGContextGetFontAntialiasingStyle() and
713         CGContextSetFontAntialiasingStyle().
714         * platform/spi/cocoa/IOPMLibSPI.h: Switch to use IOReturnSPI.h.
715         * platform/spi/cocoa/IOReturnSPI.h: Add.
716         * platform/spi/cocoa/IOSurfaceSPI.h: Add.
717         * platform/spi/cocoa/IOTypesSPI.h: Add.
718
719 2015-01-21  Sergio Villar Senin  <svillar@igalia.com>
720
721         [CSS Grid Layout] Skip items spanning flex tracks when sizing content based tracks
722         https://bugs.webkit.org/show_bug.cgi?id=140720
723
724         Reviewed by David Hyatt.
725
726         Section "11.5. Resolve Intrinsic Track Sizes" of the specs forces
727         us to ignore items spanning tracks with flex sizing functions when
728         resolving the content-based track sizing functions. Items with
729         span < 2 are not affected by this rule (as they will belong to a
730         single track). This way the algorithm ensures that min-content and
731         max-content restrictions are fulfilled before distributing the
732         extra space.
733
734         Test: fast/css-grid-layout/flex-and-content-sized-resolution-columns.html
735
736         * rendering/RenderGrid.cpp:
737         (WebCore::RenderGrid::spanningItemCrossesFlexibleSizedTracks):
738         (WebCore::integerSpanForDirection):
739         (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
740         * rendering/RenderGrid.h:
741
742 2015-01-22  Yusuke Suzuki  <utatane.tea@gmail.com>
743
744         put_by_val_direct need to check the property is index or not for using putDirect / putDirectIndex
745         https://bugs.webkit.org/show_bug.cgi?id=140426
746
747         Reviewed by Geoffrey Garen.
748
749         Test: js/dfg-put-by-val-direct-with-edge-numbers.html
750
751         * bindings/js/JSDOMWindowCustom.cpp:
752         (WebCore::JSDOMWindow::getOwnPropertySlot):
753         * bindings/js/JSHTMLAllCollectionCustom.cpp:
754         (WebCore::callHTMLAllCollection):
755         (WebCore::JSHTMLAllCollection::item):
756         * bindings/scripts/CodeGeneratorJS.pm:
757         (GenerateGetOwnPropertySlotBody):
758         (GenerateImplementation):
759         * bindings/scripts/test/JS/JSFloat64Array.cpp:
760         (WebCore::JSFloat64Array::getOwnPropertySlot):
761         (WebCore::JSFloat64Array::getOwnPropertyDescriptor):
762         (WebCore::JSFloat64Array::put):
763         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
764         (WebCore::JSTestEventTarget::getOwnPropertySlot):
765         * bridge/runtime_array.cpp:
766         (JSC::RuntimeArray::getOwnPropertySlot):
767         (JSC::RuntimeArray::put):
768
769 2015-01-19  Sergio Villar Senin  <svillar@igalia.com>
770
771         [CSS Grid Layout] Size tracks using a list of all items sorted by span
772         https://bugs.webkit.org/show_bug.cgi?id=140615
773
774         Reviewed by Andreas Kling.
775
776         In r173620 we fixed
777         RenderGrid::resolveContentBasedTrackSizingFunctions() so that it
778         now collects all items spanning content-sized tracks and process
779         them one by one after sorting them by ascending span.
780
781         The problem is that it was incorrectly implemented, it has two
782         important bugs. First one is that the hash table that collects
783         items is regenerated after processing each track, so it's actually
784         doing nothing. Secondly we're only sorting the items on each
785         track, instead of all the items in the grid.
786
787         * rendering/RenderGrid.cpp:
788         (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
789
790 2015-01-21  Daniel Bates  <dabates@apple.com>
791
792         Fix the iOS release build after <http://trac.webkit.org/changeset/178868>
793         (https://bugs.webkit.org/show_bug.cgi?id=140742)
794
795         Substitute ASSERT_UNUSED() for ASSERT() since the parameter layer is used only in the assertion expression.
796
797         * rendering/RenderLayerBacking.cpp:
798         (WebCore::RenderLayerBacking::needsIOSDumpRenderTreeMainFrameRenderViewLayerIsAlwaysOpaqueHack):
799
800 2015-01-21  Daniel Bates  <dabates@apple.com>
801
802         [iOS] Many compositing tests fail in DumpRenderTree due to contentsOpaque difference
803         https://bugs.webkit.org/show_bug.cgi?id=140742
804
805         Reviewed by Simon Fraser.
806
807         Make RenderLayerBacking::layerTreeAsText() (including internals.layerTreeAsText()) always
808         report that the main frame's RenderView layer is opaque when running iOS DumpRenderTree to
809         avoid test failures and the need to maintain for iOS WebKit1 an almost identical copy of the
810         platform-independent compositing test results.
811
812         The main frame's RenderView layer is always transparent in iOS WebKit1 since it does
813         not make use of a tiled cache layer and defers to UIKit to handle the final compositing
814         of the web view, including applying the page scale factor.
815
816         * platform/RuntimeApplicationChecksIOS.mm:
817         (WebCore::applicationIsDumpRenderTree): The app bundle identifier of DumpRenderTree has
818         the form org.webkit.DumpRenderTreeX where X is some non-negative integer.
819         * platform/graphics/GraphicsLayer.cpp:
820         (WebCore::GraphicsLayer::dumpProperties): Modified to report that a layer is opaque when
821         GraphicsLayerClient::needsIOSDumpRenderTreeMainFrameRenderViewLayerIsAlwaysOpaqueHack() returns true.
822         * platform/graphics/GraphicsLayerClient.h:
823         (WebCore::GraphicsLayerClient::needsIOSDumpRenderTreeMainFrameRenderViewLayerIsAlwaysOpaqueHack): Added
824         default implementation (returns false).
825         * rendering/RenderLayerBacking.cpp:
826         (WebCore::RenderLayerBacking::needsIOSDumpRenderTreeMainFrameRenderViewLayerIsAlwaysOpaqueHack): Added;
827         returns true when running in DumpRenderTree and the passed GraphicsLayer corresponds to the main frame's
828         RenderView layer.
829         * rendering/RenderLayerBacking.h:
830
831 2015-01-21  Roger Fong  <roger_fong@apple.com>
832
833         WebGL2 (spec section 3.1): Add new types to WebGL2 API.
834         https://bugs.webkit.org/show_bug.cgi?id=140741.
835         <rdar://problem/19552962>
836
837         Reviewed by Dean Jackson.
838
839         * html/canvas/WebGL2RenderingContext.idl:
840
841 2015-01-21  Zalan Bujtas  <zalan@apple.com>
842
843         Simple line layout: Move nextTextFragment() to FlowContents class.
844         https://bugs.webkit.org/show_bug.cgi?id=140738
845
846         Reviewed by Antti Koivisto.
847
848         This is in preparation to make FlowContents an iterator class.
849         
850         No change in functionality.
851
852         * rendering/SimpleLineLayout.cpp:
853         (WebCore::SimpleLineLayout::LineState::addUncommitted):
854         (WebCore::SimpleLineLayout::LineState::addUncommittedWhitespace):
855         (WebCore::SimpleLineLayout::removeTrailingWhitespace):
856         (WebCore::SimpleLineLayout::initializeNewLine):
857         (WebCore::SimpleLineLayout::splitFragmentToFitLine):
858         (WebCore::SimpleLineLayout::createLineRuns):
859         (WebCore::SimpleLineLayout::TextFragment::TextFragment): Deleted.
860         (WebCore::SimpleLineLayout::TextFragment::isEmpty): Deleted.
861         (WebCore::SimpleLineLayout::nextFragment): Deleted.
862         * rendering/SimpleLineLayoutFlowContents.cpp:
863         (WebCore::SimpleLineLayout::FlowContents::nextTextFragment):
864         * rendering/SimpleLineLayoutFlowContents.h:
865         (WebCore::SimpleLineLayout::FlowContents::TextFragment::TextFragment):
866         (WebCore::SimpleLineLayout::FlowContents::TextFragment::isEmpty):
867
868 2015-01-21  Andreas Kling  <akling@apple.com>
869
870         DocumentLoader::timing() should return a reference.
871         <https://webkit.org/b/128272>
872
873         Reviewed by Antti Koivisto.
874
875         There is always a DocumentLoadTiming object, so return it by
876         reference since it can never be null.
877
878         * Modules/gamepad/NavigatorGamepad.cpp:
879         (WebCore::NavigatorGamepad::from):
880         * dom/ScriptedAnimationController.cpp:
881         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
882         * html/HTMLMediaElement.cpp:
883         (WebCore::HTMLMediaElement::parseAttribute):
884         * inspector/InspectorResourceAgent.cpp:
885         (WebCore::buildObjectForTiming):
886         * loader/DocumentLoader.cpp:
887         (WebCore::DocumentLoader::finishedLoading):
888         (WebCore::DocumentLoader::willSendRequest):
889         (WebCore::DocumentLoader::continueAfterNavigationPolicy):
890         (WebCore::DocumentLoader::startLoadingMainResource):
891         * loader/DocumentLoader.h:
892         (WebCore::DocumentLoader::timing):
893         * loader/FrameLoader.cpp:
894         (WebCore::FrameLoader::stopLoading):
895         (WebCore::FrameLoader::commitProvisionalLoad):
896         (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
897         * page/DOMWindow.cpp:
898         (WebCore::DOMWindow::dispatchLoadEvent):
899         * page/Performance.cpp:
900         (WebCore::Performance::now):
901         * page/PerformanceNavigation.cpp:
902         (WebCore::PerformanceNavigation::redirectCount):
903         * page/PerformanceResourceTiming.cpp:
904         (WebCore::monotonicTimeToDocumentMilliseconds):
905         (WebCore::PerformanceResourceTiming::resourceTimeToDocumentMilliseconds):
906         * page/PerformanceTiming.cpp:
907         (WebCore::PerformanceTiming::documentLoadTiming):
908
909 2015-01-21  Benjamin Poulain  <benjamin@webkit.org>
910
911         Handle the transition on any character as a separate type of transition
912         https://bugs.webkit.org/show_bug.cgi?id=140711
913
914         Reviewed by Andreas Kling.
915
916         Instead of considering the universal transition as 127 transitions, it is now
917         handled as a separate type of transition.
918
919         The goal is to reduce the number of exit edge to consider for each node. Instead
920         of having 127 for any partition containing one universal transition, we have
921         as few exit edges as necessary + one universal transition.
922
923         In the NFA, the universal transition is stored directly on NFANode in a new
924         HashSet (transitionsOnAnyCharacter).
925         The target nodes are made exclusive between "transitionsOnAnyCharacter" and "transitions"
926         by construction. That is not strictly needed but it simplify debugging at the moment.
927
928         When converting a NFA to a DFA, we first find all the node that transition on any character.
929         Then, when we iterate over "real" transition, we also augment that set with the set on
930         any character.
931
932         When creating the DFA node, we first consider each "real" transition, then we have a single
933         "fallback" transition for any character that has not been handled yet.
934
935         When matching, we first search for any real transition. If there is none but a fallback exists,
936         we take the fallback.
937
938         * contentextensions/DFA.cpp:
939         (WebCore::ContentExtensions::DFA::nextState):
940         (WebCore::ContentExtensions::printTransitions):
941         (WebCore::ContentExtensions::DFA::debugPrintDot):
942         (WebCore::ContentExtensions::printTransition): Deleted.
943         * contentextensions/DFANode.h:
944         * contentextensions/NFA.cpp:
945         (WebCore::ContentExtensions::NFA::addTransition):
946         (WebCore::ContentExtensions::NFA::addTransitionsOnAnyCharacter):
947         (WebCore::ContentExtensions::printTransitions):
948         (WebCore::ContentExtensions::NFA::debugPrintDot):
949         (WebCore::ContentExtensions::printTransition): Deleted.
950         * contentextensions/NFA.h:
951         * contentextensions/NFANode.h:
952         * contentextensions/NFAToDFA.cpp:
953         (WebCore::ContentExtensions::populateTransitions):
954         (WebCore::ContentExtensions::getOrCreateDFANode):
955         (WebCore::ContentExtensions::NFAToDFA::convert):
956         * contentextensions/URLFilterParser.cpp:
957         (WebCore::ContentExtensions::GraphBuilder::generateTransition):
958
959 2015-01-20  Antti Koivisto  <antti@apple.com>
960
961         REGRESSION(r178180): Membuster regressed ~4%
962         https://bugs.webkit.org/show_bug.cgi?id=140495
963
964         Reviewed by Andreas Kling.
965
966         After r178180 we keep system fallback fonts that are used on glyph pages alive.
967         Previously we would traverse the glyph pages and remove entries referencing system fallbacks.
968
969         * platform/graphics/FontCache.cpp:
970         (WebCore::FontCache::purgeInactiveFontData):
971         * platform/graphics/FontCascade.cpp:
972         (WebCore::pruneUnreferencedEntriesFromFontGlyphsCache):
973         (WebCore::pruneSystemFallbackFonts):
974         * platform/graphics/FontCascade.h:
975         * platform/graphics/FontGlyphs.cpp:
976         (WebCore::FontGlyphs::pruneSystemFallbacks):
977
978             When clearing the font cache also remove the cached glyph pages that may contain system fallback fonts
979             and release the fallbacks.
980
981         * platform/graphics/FontGlyphs.h:
982
983 2015-01-21  Manuel Rego Casasnovas  <rego@igalia.com>
984
985         first-letter pseudo-element from ancestors is not being ignored in grids and flexboxes
986         https://bugs.webkit.org/show_bug.cgi?id=138424
987
988         Reviewed by Benjamin Poulain.
989
990         Source/WebCore:
991
992         According to the grid and flexbox specs:
993         "::first-letter pseudo-element do not apply to grid/flex containers".
994         http://dev.w3.org/csswg/css-grid/#grid-containers
995         http://dev.w3.org/csswg/css-flexbox/#flex-containers
996
997         Check also the CSS WG mailing list discussion:
998         http://lists.w3.org/Archives/Public/www-style/2014Dec/0305.html
999
1000         This was almost working right, except in the case that an ancestor was
1001         setting the ::first-letter pseudo-element.
1002
1003         Added a few more cases to the current tests in order to check this
1004         behavior.
1005         Also created some new tests to increase coverage
1006
1007         Tests: fast/css/first-letter-from-ancestors-not-apply-inline-elements.html
1008                fast/css/first-letter-ignores-display-property.html
1009
1010         * rendering/RenderBlock.cpp:
1011         (WebCore::RenderBlock::getFirstLetter): Go to the next sibling when
1012         looking for the first text child if you reach a grid or flexbox.
1013
1014 2015-01-21  Csaba Osztrogonác  <ossy@webkit.org>
1015
1016         Fix cast-align warning in Source/WebCore/platform/efl/EflScreenUtilities.cpp
1017         https://bugs.webkit.org/show_bug.cgi?id=140670
1018
1019         Reviewed by Darin Adler.
1020
1021         * platform/efl/EflScreenUtilities.cpp:
1022         (WebCore::createCustomCursor):
1023
1024 2015-01-21  Csaba Osztrogonác  <ossy@webkit.org>
1025
1026         Remove ENABLE(INSPECTOR) ifdef guards
1027         https://bugs.webkit.org/show_bug.cgi?id=140668
1028
1029         Reviewed by Darin Adler.
1030
1031         * Configurations/FeatureDefines.xcconfig:
1032         * WebCore.exp.in:
1033         * bindings/js/JSCommandLineAPIHostCustom.cpp:
1034         * bindings/js/JSDOMWindowBase.cpp:
1035         (WebCore::JSDOMWindowBase::supportsProfiling):
1036         (WebCore::JSDOMWindowBase::supportsRichSourceInfo):
1037         * bindings/js/JSInspectorFrontendHostCustom.cpp:
1038         * bindings/js/ScriptController.cpp:
1039         (WebCore::ScriptController::collectIsolatedContexts):
1040         * bindings/js/ScriptController.h:
1041         * bindings/js/ScriptGlobalObject.cpp:
1042         (WebCore::ScriptGlobalObject::set):
1043         * bindings/js/ScriptGlobalObject.h:
1044         * bindings/js/WorkerScriptDebugServer.cpp:
1045         * bindings/js/WorkerScriptDebugServer.h:
1046         * dom/Node.cpp:
1047         (WebCore::Node::inspect):
1048         * inspector/CommandLineAPIHost.cpp:
1049         * inspector/CommandLineAPIHost.idl:
1050         * inspector/CommandLineAPIModule.cpp:
1051         * inspector/CommandLineAPIModule.h:
1052         * inspector/DOMEditor.cpp:
1053         * inspector/DOMEditor.h:
1054         * inspector/DOMPatchSupport.cpp:
1055         * inspector/DOMPatchSupport.h:
1056         * inspector/InspectorApplicationCacheAgent.cpp:
1057         * inspector/InspectorApplicationCacheAgent.h:
1058         * inspector/InspectorCSSAgent.cpp:
1059         * inspector/InspectorCSSAgent.h:
1060         * inspector/InspectorClient.cpp:
1061         * inspector/InspectorConsoleInstrumentation.h:
1062         (WebCore::InspectorInstrumentation::addMessageToConsole):
1063         (WebCore::InspectorInstrumentation::consoleCount):
1064         (WebCore::InspectorInstrumentation::startConsoleTiming):
1065         (WebCore::InspectorInstrumentation::stopConsoleTiming):
1066         (WebCore::InspectorInstrumentation::consoleTimeStamp):
1067         (WebCore::InspectorInstrumentation::startProfiling):
1068         (WebCore::InspectorInstrumentation::stopProfiling):
1069         * inspector/InspectorController.cpp:
1070         * inspector/InspectorController.h:
1071         * inspector/InspectorDOMAgent.cpp:
1072         * inspector/InspectorDOMAgent.h:
1073         * inspector/InspectorDOMDebuggerAgent.cpp:
1074         * inspector/InspectorDOMDebuggerAgent.h:
1075         * inspector/InspectorDOMStorageAgent.cpp:
1076         * inspector/InspectorDatabaseAgent.cpp:
1077         * inspector/InspectorDatabaseAgent.h:
1078         * inspector/InspectorDatabaseInstrumentation.h:
1079         (WebCore::InspectorInstrumentation::didOpenDatabase):
1080         * inspector/InspectorDatabaseResource.cpp:
1081         * inspector/InspectorDatabaseResource.h:
1082         * inspector/InspectorFrontendClientLocal.cpp:
1083         * inspector/InspectorFrontendHost.cpp:
1084         * inspector/InspectorFrontendHost.idl:
1085         * inspector/InspectorHistory.cpp:
1086         * inspector/InspectorHistory.h:
1087         * inspector/InspectorIndexedDBAgent.cpp:
1088         * inspector/InspectorIndexedDBAgent.h:
1089         * inspector/InspectorInstrumentation.cpp:
1090         * inspector/InspectorInstrumentation.h:
1091         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorld):
1092         (WebCore::InspectorInstrumentation::isDebuggerPaused):
1093         (WebCore::InspectorInstrumentation::willInsertDOMNode):
1094         (WebCore::InspectorInstrumentation::didInsertDOMNode):
1095         (WebCore::InspectorInstrumentation::willRemoveDOMNode):
1096         (WebCore::InspectorInstrumentation::didRemoveDOMNode):
1097         (WebCore::InspectorInstrumentation::willModifyDOMAttr):
1098         (WebCore::InspectorInstrumentation::didModifyDOMAttr):
1099         (WebCore::InspectorInstrumentation::didRemoveDOMAttr):
1100         (WebCore::InspectorInstrumentation::didInvalidateStyleAttr):
1101         (WebCore::InspectorInstrumentation::frameWindowDiscarded):
1102         (WebCore::InspectorInstrumentation::mediaQueryResultChanged):
1103         (WebCore::InspectorInstrumentation::didPushShadowRoot):
1104         (WebCore::InspectorInstrumentation::willPopShadowRoot):
1105         (WebCore::InspectorInstrumentation::didCreateNamedFlow):
1106         (WebCore::InspectorInstrumentation::willRemoveNamedFlow):
1107         (WebCore::InspectorInstrumentation::didChangeRegionOverset):
1108         (WebCore::InspectorInstrumentation::didRegisterNamedFlowContentElement):
1109         (WebCore::InspectorInstrumentation::didUnregisterNamedFlowContentElement):
1110         (WebCore::InspectorInstrumentation::mouseDidMoveOverElement):
1111         (WebCore::InspectorInstrumentation::handleTouchEvent):
1112         (WebCore::InspectorInstrumentation::handleMousePress):
1113         (WebCore::InspectorInstrumentation::forcePseudoState):
1114         (WebCore::InspectorInstrumentation::characterDataModified):
1115         (WebCore::InspectorInstrumentation::willSendXMLHttpRequest):
1116         (WebCore::InspectorInstrumentation::didInstallTimer):
1117         (WebCore::InspectorInstrumentation::didRemoveTimer):
1118         (WebCore::InspectorInstrumentation::willCallFunction):
1119         (WebCore::InspectorInstrumentation::didCallFunction):
1120         (WebCore::InspectorInstrumentation::willDispatchXHRReadyStateChangeEvent):
1121         (WebCore::InspectorInstrumentation::didDispatchXHRReadyStateChangeEvent):
1122         (WebCore::InspectorInstrumentation::willDispatchEvent):
1123         (WebCore::InspectorInstrumentation::didDispatchEvent):
1124         (WebCore::InspectorInstrumentation::willHandleEvent):
1125         (WebCore::InspectorInstrumentation::didHandleEvent):
1126         (WebCore::InspectorInstrumentation::willDispatchEventOnWindow):
1127         (WebCore::InspectorInstrumentation::didDispatchEventOnWindow):
1128         (WebCore::InspectorInstrumentation::willEvaluateScript):
1129         (WebCore::InspectorInstrumentation::didEvaluateScript):
1130         (WebCore::InspectorInstrumentation::scriptsEnabled):
1131         (WebCore::InspectorInstrumentation::willFireTimer):
1132         (WebCore::InspectorInstrumentation::didFireTimer):
1133         (WebCore::InspectorInstrumentation::didInvalidateLayout):
1134         (WebCore::InspectorInstrumentation::willLayout):
1135         (WebCore::InspectorInstrumentation::didLayout):
1136         (WebCore::InspectorInstrumentation::didScroll):
1137         (WebCore::InspectorInstrumentation::willDispatchXHRLoadEvent):
1138         (WebCore::InspectorInstrumentation::didDispatchXHRLoadEvent):
1139         (WebCore::InspectorInstrumentation::willPaint):
1140         (WebCore::InspectorInstrumentation::didPaint):
1141         (WebCore::InspectorInstrumentation::willScrollLayer):
1142         (WebCore::InspectorInstrumentation::didScrollLayer):
1143         (WebCore::InspectorInstrumentation::willRecalculateStyle):
1144         (WebCore::InspectorInstrumentation::didRecalculateStyle):
1145         (WebCore::InspectorInstrumentation::didScheduleStyleRecalculation):
1146         (WebCore::InspectorInstrumentation::applyEmulatedMedia):
1147         (WebCore::InspectorInstrumentation::willSendRequest):
1148         (WebCore::InspectorInstrumentation::continueAfterPingLoader):
1149         (WebCore::InspectorInstrumentation::markResourceAsCached):
1150         (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCache):
1151         (WebCore::InspectorInstrumentation::willReceiveResourceResponse):
1152         (WebCore::InspectorInstrumentation::didReceiveResourceResponse):
1153         (WebCore::InspectorInstrumentation::continueAfterXFrameOptionsDenied):
1154         (WebCore::InspectorInstrumentation::continueWithPolicyDownload):
1155         (WebCore::InspectorInstrumentation::continueWithPolicyIgnore):
1156         (WebCore::InspectorInstrumentation::didReceiveData):
1157         (WebCore::InspectorInstrumentation::didFinishLoading):
1158         (WebCore::InspectorInstrumentation::didFailLoading):
1159         (WebCore::InspectorInstrumentation::documentThreadableLoaderStartedLoadingForClient):
1160         (WebCore::InspectorInstrumentation::willLoadXHR):
1161         (WebCore::InspectorInstrumentation::didFailXHRLoading):
1162         (WebCore::InspectorInstrumentation::didFinishXHRLoading):
1163         (WebCore::InspectorInstrumentation::didReceiveXHRResponse):
1164         (WebCore::InspectorInstrumentation::willLoadXHRSynchronously):
1165         (WebCore::InspectorInstrumentation::didLoadXHRSynchronously):
1166         (WebCore::InspectorInstrumentation::scriptImported):
1167         (WebCore::InspectorInstrumentation::scriptExecutionBlockedByCSP):
1168         (WebCore::InspectorInstrumentation::didReceiveScriptResponse):
1169         (WebCore::InspectorInstrumentation::domContentLoadedEventFired):
1170         (WebCore::InspectorInstrumentation::loadEventFired):
1171         (WebCore::InspectorInstrumentation::frameDetachedFromParent):
1172         (WebCore::InspectorInstrumentation::didCommitLoad):
1173         (WebCore::InspectorInstrumentation::frameDocumentUpdated):
1174         (WebCore::InspectorInstrumentation::loaderDetachedFromFrame):
1175         (WebCore::InspectorInstrumentation::frameStartedLoading):
1176         (WebCore::InspectorInstrumentation::frameStoppedLoading):
1177         (WebCore::InspectorInstrumentation::frameScheduledNavigation):
1178         (WebCore::InspectorInstrumentation::frameClearedScheduledNavigation):
1179         (WebCore::InspectorInstrumentation::willRunJavaScriptDialog):
1180         (WebCore::InspectorInstrumentation::didRunJavaScriptDialog):
1181         (WebCore::InspectorInstrumentation::willDestroyCachedResource):
1182         (WebCore::InspectorInstrumentation::willWriteHTML):
1183         (WebCore::InspectorInstrumentation::didWriteHTML):
1184         (WebCore::InspectorInstrumentation::didDispatchDOMStorageEvent):
1185         (WebCore::InspectorInstrumentation::shouldPauseDedicatedWorkerOnStart):
1186         (WebCore::InspectorInstrumentation::didStartWorkerGlobalScope):
1187         (WebCore::InspectorInstrumentation::workerGlobalScopeTerminated):
1188         (WebCore::InspectorInstrumentation::didCreateWebSocket):
1189         (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
1190         (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
1191         (WebCore::InspectorInstrumentation::didCloseWebSocket):
1192         (WebCore::InspectorInstrumentation::didReceiveWebSocketFrame):
1193         (WebCore::InspectorInstrumentation::didReceiveWebSocketFrameError):
1194         (WebCore::InspectorInstrumentation::didSendWebSocketFrame):
1195         (WebCore::InspectorInstrumentation::sessionCreated):
1196         (WebCore::InspectorInstrumentation::sessionLoaded):
1197         (WebCore::InspectorInstrumentation::sessionModified):
1198         (WebCore::InspectorInstrumentation::segmentCreated):
1199         (WebCore::InspectorInstrumentation::segmentCompleted):
1200         (WebCore::InspectorInstrumentation::segmentLoaded):
1201         (WebCore::InspectorInstrumentation::segmentUnloaded):
1202         (WebCore::InspectorInstrumentation::captureStarted):
1203         (WebCore::InspectorInstrumentation::captureStopped):
1204         (WebCore::InspectorInstrumentation::playbackStarted):
1205         (WebCore::InspectorInstrumentation::playbackPaused):
1206         (WebCore::InspectorInstrumentation::playbackFinished):
1207         (WebCore::InspectorInstrumentation::playbackHitPosition):
1208         (WebCore::InspectorInstrumentation::networkStateChanged):
1209         (WebCore::InspectorInstrumentation::updateApplicationCacheStatus):
1210         (WebCore::InspectorInstrumentation::didRequestAnimationFrame):
1211         (WebCore::InspectorInstrumentation::didCancelAnimationFrame):
1212         (WebCore::InspectorInstrumentation::willFireAnimationFrame):
1213         (WebCore::InspectorInstrumentation::didFireAnimationFrame):
1214         (WebCore::InspectorInstrumentation::layerTreeDidChange):
1215         (WebCore::InspectorInstrumentation::renderLayerDestroyed):
1216         (WebCore::InspectorInstrumentation::pseudoElementDestroyed):
1217         (WebCore::InspectorInstrumentation::instrumentingAgentsForDocument):
1218         (WebCore::InspectorInstrumentation::hasFrontends): Deleted.
1219         (WebCore::InspectorInstrumentation::consoleAgentEnabled): Deleted.
1220         (WebCore::InspectorInstrumentation::runtimeAgentEnabled): Deleted.
1221         (WebCore::InspectorInstrumentation::timelineAgentEnabled): Deleted.
1222         (WebCore::InspectorInstrumentation::replayAgentEnabled): Deleted.
1223         * inspector/InspectorLayerTreeAgent.cpp:
1224         * inspector/InspectorLayerTreeAgent.h:
1225         * inspector/InspectorOverlay.cpp:
1226         * inspector/InspectorPageAgent.cpp:
1227         * inspector/InspectorPageAgent.h:
1228         * inspector/InspectorReplayAgent.cpp:
1229         * inspector/InspectorReplayAgent.h:
1230         * inspector/InspectorResourceAgent.cpp:
1231         * inspector/InspectorResourceAgent.h:
1232         * inspector/InspectorStyleSheet.cpp:
1233         * inspector/InspectorStyleSheet.h:
1234         * inspector/InspectorStyleTextEditor.cpp:
1235         * inspector/InspectorStyleTextEditor.h:
1236         * inspector/InspectorTimelineAgent.cpp:
1237         * inspector/InspectorTimelineAgent.h:
1238         * inspector/InspectorWorkerAgent.cpp:
1239         * inspector/InspectorWorkerResource.h:
1240         * inspector/InstrumentingAgents.cpp:
1241         * inspector/NetworkResourcesData.cpp:
1242         * inspector/NetworkResourcesData.h:
1243         * inspector/PageConsoleAgent.cpp:
1244         * inspector/PageConsoleAgent.h:
1245         * inspector/PageDebuggerAgent.cpp:
1246         * inspector/PageDebuggerAgent.h:
1247         * inspector/PageRuntimeAgent.cpp:
1248         * inspector/PageRuntimeAgent.h:
1249         * inspector/PageScriptDebugServer.cpp:
1250         * inspector/PageScriptDebugServer.h:
1251         * inspector/TimelineRecordFactory.cpp:
1252         * inspector/WebConsoleAgent.cpp:
1253         * inspector/WebConsoleAgent.h:
1254         * inspector/WebDebuggerAgent.cpp:
1255         * inspector/WebDebuggerAgent.h:
1256         * inspector/WebInjectedScriptHost.cpp:
1257         * inspector/WebInjectedScriptHost.h:
1258         * inspector/WebInjectedScriptManager.cpp:
1259         * inspector/WebInjectedScriptManager.h:
1260         * inspector/WorkerConsoleAgent.cpp:
1261         * inspector/WorkerConsoleAgent.h:
1262         * inspector/WorkerDebuggerAgent.cpp:
1263         * inspector/WorkerDebuggerAgent.h:
1264         * inspector/WorkerInspectorController.cpp:
1265         * inspector/WorkerInspectorController.h:
1266         * inspector/WorkerRuntimeAgent.cpp:
1267         * inspector/WorkerRuntimeAgent.h:
1268         * loader/DocumentThreadableLoader.cpp:
1269         (WebCore::DocumentThreadableLoader::didReceiveResponse):
1270         (WebCore::DocumentThreadableLoader::loadRequest):
1271         * loader/FrameLoader.cpp:
1272         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
1273         (WebCore::FrameLoader::dispatchDidClearWindowObjectInWorld):
1274         * loader/appcache/ApplicationCacheGroup.cpp:
1275         (WebCore::ApplicationCacheGroup::createResourceHandle):
1276         (WebCore::ApplicationCacheGroup::didReceiveResponse):
1277         * loader/appcache/ApplicationCacheHost.cpp:
1278         (WebCore::ApplicationCacheHost::applicationCacheInfo):
1279         * loader/appcache/ApplicationCacheHost.h:
1280         * loader/cache/CachedResourceLoader.cpp:
1281         (WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache):
1282         * page/ContextMenuController.cpp:
1283         (WebCore::ContextMenuController::showContextMenu):
1284         (WebCore::ContextMenuController::contextMenuItemSelected):
1285         (WebCore::ContextMenuController::populate):
1286         (WebCore::ContextMenuController::addInspectElementItem):
1287         (WebCore::ContextMenuController::checkOrEnableIfNeeded):
1288         * page/FrameView.cpp:
1289         (WebCore::FrameView::sendResizeEventIfNeeded):
1290         * page/Page.cpp:
1291         (WebCore::Page::Page):
1292         (WebCore::Page::~Page):
1293         * page/Page.h:
1294         * platform/ContextMenuItem.h:
1295         * platform/efl/EflInspectorUtilities.cpp:
1296         * platform/efl/EflInspectorUtilities.h:
1297         * platform/network/ResourceRequestBase.h:
1298         (WebCore::ResourceRequestBase::ResourceRequestBase):
1299         * platform/network/cf/ResourceRequestCFNet.cpp:
1300         (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):
1301         * platform/network/cocoa/ResourceRequestCocoa.mm:
1302         (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):
1303         * testing/Internals.cpp:
1304         (WebCore::InspectorFrontendChannelDummy::sendMessageToFrontend):
1305         (WebCore::Internals::resetToConsistentState):
1306         (WebCore::Internals::inspectorHighlightRects):
1307         (WebCore::Internals::inspectorHighlightObject):
1308         (WebCore::Internals::setInspectorIsUnderTest):
1309         * testing/Internals.h:
1310         * testing/Internals.idl:
1311         * workers/WorkerGlobalScope.cpp:
1312         (WebCore::WorkerGlobalScope::WorkerGlobalScope):
1313         * workers/WorkerGlobalScope.h:
1314         * workers/WorkerGlobalScopeProxy.h:
1315         * workers/WorkerMessagingProxy.cpp:
1316         (WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
1317         (WebCore::WorkerMessagingProxy::sendMessageToInspector):
1318         (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
1319         * workers/WorkerMessagingProxy.h:
1320         * workers/WorkerReportingProxy.h:
1321         * workers/WorkerThread.cpp:
1322         (WebCore::WorkerThread::workerThread):
1323
1324 2015-01-20  Chris Dumez  <cdumez@apple.com>
1325
1326         Simplify DiagnosticLoggingClient call sites
1327         https://bugs.webkit.org/show_bug.cgi?id=140701
1328
1329         Reviewed by Andreas Kling.
1330
1331         Simplify DiagnosticLoggingClient call sites by:
1332         - Moving the Settings::diagnosticLoggingEnabled() check inside the
1333           MainFrame::diagnosticLoggingClient() getter.
1334         - Having MainFrame::diagnosticLoggingClient() return a reference
1335           instead of a pointer (returning a dummy client if necessary).
1336
1337         Otherwise, each call site needs to both check the setting and do a
1338         null-check on the client which is a bit annoying.
1339
1340         * history/PageCache.cpp:
1341         (WebCore::logPageCacheFailureDiagnosticMessage):
1342         (WebCore::logCanCacheFrameDecision):
1343         (WebCore::logCanCachePageDecision):
1344         * html/HTMLMediaElement.cpp:
1345         (WebCore::HTMLMediaElement::parseAttribute):
1346         * loader/EmptyClients.h:
1347         * loader/FrameLoader.cpp:
1348         (WebCore::logNavigation):
1349         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
1350         * loader/SubframeLoader.cpp:
1351         (WebCore::logPluginRequest):
1352         * loader/SubresourceLoader.cpp:
1353         (WebCore::logResourceLoaded):
1354         * page/DiagnosticLoggingClient.h:
1355         (WebCore::DiagnosticLoggingClient::logDiagnosticMessage): Deleted.
1356         (WebCore::DiagnosticLoggingClient::logDiagnosticMessageWithResult): Deleted.
1357         (WebCore::DiagnosticLoggingClient::logDiagnosticMessageWithValue): Deleted.
1358         * page/MainFrame.cpp:
1359         (WebCore::MainFrame::diagnosticLoggingClient):
1360         * page/MainFrame.h:
1361
1362 2015-01-20  Joseph Pecoraro  <pecoraro@apple.com>
1363
1364         Web Inspector: Should show dynamic specificity values
1365         https://bugs.webkit.org/show_bug.cgi?id=140647
1366
1367         Reviewed by Benjamin Poulain.
1368
1369         Test: inspector/css/selector-dynamic-specificity.html
1370
1371         * inspector/InspectorCSSAgent.h:
1372         * inspector/InspectorCSSAgent.cpp:
1373         (WebCore::InspectorCSSAgent::setRuleSelector):
1374         (WebCore::InspectorCSSAgent::addRule):
1375         (WebCore::InspectorCSSAgent::buildObjectForRule):
1376         (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
1377         When building a response for a particular element, pass the element along.
1378
1379         * inspector/InspectorStyleSheet.h:
1380         * inspector/InspectorStyleSheet.cpp:
1381         (WebCore::hasDynamicSpecificity):
1382         (WebCore::buildObjectForSelectorHelper):
1383         (WebCore::selectorsFromSource):
1384         (WebCore::InspectorStyleSheet::buildObjectForSelector):
1385         (WebCore::InspectorStyleSheet::buildObjectForSelectorList):
1386         (WebCore::InspectorStyleSheet::buildObjectForRule):
1387         (WebCore::InspectorStyleSheet::buildArrayForRuleList):
1388         (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
1389         When building a response for a Selector, include the specificity if we know
1390         the element in context.
1391
1392 2015-01-20  Brent Fulgham  <bfulgham@apple.com>
1393
1394         [Win] Build fix after r178760.
1395
1396         Windows will not accept a variable as the size declaration for an array.
1397
1398         * svg/SVGToOTFFontConversion.cpp:
1399         (WebCore::SVGToOTFFontConverter::appendGSUBTable): Make size argument a const.
1400
1401 2015-01-20  Brent Fulgham  <bfulgham@apple.com>
1402
1403         [Win] Unreviewed Windows project file gardening.
1404
1405         * WebCore.vcxproj/WebCore.vcxproj: Add missing SVG files and put things in their proper
1406         folders.
1407         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
1408
1409 2015-01-20  Benjamin Poulain  <benjamin@webkit.org>
1410
1411         URLFilterParser dismisses the last atom when parsing a builtin character class
1412         https://bugs.webkit.org/show_bug.cgi?id=140695
1413
1414         Reviewed by Andreas Kling.
1415
1416         The pending atom was not sunk before creating the new atom.
1417
1418         * contentextensions/URLFilterParser.cpp:
1419         (WebCore::ContentExtensions::GraphBuilder::atomBuiltInCharacterClass):
1420
1421 2015-01-20  Andreas Kling  <akling@apple.com>
1422
1423         Fast path for casting JSValue to JSDocument*.
1424         <https://webkit.org/b/134655>
1425
1426         Add a custom JSType bit for JSDocument so we can quickly cast to it
1427         from JSValue in the DocumentPrototype functions. This removes a bunch
1428         of grunt work and branches from common functions like getElementById.
1429
1430         Also removed GetCastingHelperForBaseObject and replace it with
1431         simple jsCasts since we don't need dynamic type checks for the base.
1432
1433         Reviewed by Darin Adler.
1434
1435         * WebCore.xcodeproj/project.pbxproj:
1436         * bindings/js/JSDOMWrapper.h:
1437         * bindings/js/JSDocumentCustom.h:
1438         * bindings/scripts/CodeGeneratorJS.pm:
1439         (GenerateHeader):
1440         (GetCastingHelperForThisObject):
1441         (GenerateImplementation):
1442         (GetCastingHelperForBaseObject): Deleted.
1443         * dom/Document.idl:
1444
1445 2015-01-20  Commit Queue  <commit-queue@webkit.org>
1446
1447         Unreviewed, rolling out r178751.
1448         https://bugs.webkit.org/show_bug.cgi?id=140694
1449
1450         Caused 32-bit JSC test failures (Requested by JoePeck on
1451         #webkit).
1452
1453         Reverted changeset:
1454
1455         "put_by_val_direct need to check the property is index or not
1456         for using putDirect / putDirectIndex"
1457         https://bugs.webkit.org/show_bug.cgi?id=140426
1458         http://trac.webkit.org/changeset/178751
1459
1460 2015-01-20  Zalan Bujtas  <zalan@apple.com>
1461
1462         Simple line layout: Use FlowContents::Segment::text instead of renderer when possible.
1463         https://bugs.webkit.org/show_bug.cgi?id=140692
1464
1465         Reviewed by Myles C. Maxfield.
1466
1467         No change in functionality.
1468
1469         * rendering/SimpleLineLayoutResolver.cpp:
1470         (WebCore::SimpleLineLayout::RunResolver::Run::text):
1471
1472 2015-01-20  David Kilzer  <ddkilzer@apple.com>
1473
1474         Switch to comparing PLATFORM_NAME in terms of macosx
1475         <http://webkit.org/b/139516>
1476
1477         Reviewed by Timothy Hatcher.
1478
1479         * bindings/scripts/preprocessor.pm:
1480         (applyPreprocessor):
1481         * generate-export-file:
1482         (preprocessorMacros):
1483
1484 2015-01-20  Benjamin Poulain  <benjamin@webkit.org>
1485
1486         Attempt to fix 32bits builds after r178743
1487
1488         * contentextensions/ContentExtensionsBackend.cpp:
1489         (WebCore::ContentExtensions::ContentExtensionsBackend::shouldBlockURL):
1490
1491 2015-01-20  Yusuke Suzuki  <utatane.tea@gmail.com>
1492
1493         put_by_val_direct need to check the property is index or not for using putDirect / putDirectIndex
1494         https://bugs.webkit.org/show_bug.cgi?id=140426
1495
1496         Reviewed by Geoffrey Garen.
1497
1498         Test: js/dfg-put-by-val-direct-with-edge-numbers.html
1499
1500         * bindings/js/JSDOMWindowCustom.cpp:
1501         (WebCore::JSDOMWindow::getOwnPropertySlot):
1502         * bindings/js/JSHTMLAllCollectionCustom.cpp:
1503         (WebCore::callHTMLAllCollection):
1504         (WebCore::JSHTMLAllCollection::item):
1505         * bindings/scripts/CodeGeneratorJS.pm:
1506         (GenerateGetOwnPropertySlotBody):
1507         (GenerateImplementation):
1508         * bindings/scripts/test/JS/JSFloat64Array.cpp:
1509         (WebCore::JSFloat64Array::getOwnPropertySlot):
1510         (WebCore::JSFloat64Array::getOwnPropertyDescriptor):
1511         (WebCore::JSFloat64Array::put):
1512         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
1513         (WebCore::JSTestEventTarget::getOwnPropertySlot):
1514         * bridge/runtime_array.cpp:
1515         (JSC::RuntimeArray::getOwnPropertySlot):
1516         (JSC::RuntimeArray::put):
1517
1518 2015-01-20  Chris Dumez  <cdumez@apple.com>
1519
1520         Drop width / height shorthands code from StylePropertyShorthand.*
1521         https://bugs.webkit.org/show_bug.cgi?id=140686
1522
1523         Reviewed by Andreas Kling.
1524
1525         Drop width / height shorthands code from StylePropertyShorthand.*.
1526         width / height are not shorthands for min-width/max-width and
1527         min-height/max-height. Also, only matchingCustomShorthandsForLonghand()
1528         treats these as shorthands. For e.g, the reverse method
1529         (indexOfShorthandForLonghand()) does not.
1530
1531         * css/StylePropertyShorthand.cpp:
1532         (WebCore::widthShorthand): Deleted.
1533         (WebCore::heightShorthand): Deleted.
1534         * css/StylePropertyShorthand.h:
1535         (WebCore::matchingCustomShorthandsForLonghand):
1536
1537 2015-01-20  Benjamin Poulain  <benjamin@webkit.org>
1538
1539         Add a mechanism to ignore previous content extension rules
1540         https://bugs.webkit.org/show_bug.cgi?id=140663
1541
1542         Reviewed by Andreas Kling.
1543
1544         * contentextensions/ContentExtensionRule.h:
1545         * contentextensions/ContentExtensionsBackend.cpp:
1546         (WebCore::ContentExtensions::ContentExtensionsBackend::shouldBlockURL):
1547         * contentextensions/ContentExtensionsManager.cpp:
1548         (WebCore::ContentExtensions::ExtensionsManager::loadAction):
1549
1550 2015-01-20  Benjamin Poulain  <benjamin@webkit.org>
1551
1552         Resolve the epsilon transitions for each state upfront instead of dynamically
1553         https://bugs.webkit.org/show_bug.cgi?id=140654
1554
1555         Reviewed by Andreas Kling.
1556
1557         Instead of recomputing the epsilon-closure for each set, we compute the closure
1558         of every element at the beginning of the transformation.
1559
1560         We then remove the epsilon transitions from the NFA to simplify populateTransitions().
1561         The epsilon transitions are still there, but they are now in a separate graph we use
1562         in parallel.
1563
1564         * contentextensions/NFAToDFA.cpp:
1565         (WebCore::ContentExtensions::epsilonClosureExcludingSelf):
1566         (WebCore::ContentExtensions::resolveEpsilonClosures):
1567         (WebCore::ContentExtensions::extendSetWithClosure):
1568         (WebCore::ContentExtensions::populateTransitions):
1569         (WebCore::ContentExtensions::NFAToDFA::convert):
1570         (WebCore::ContentExtensions::epsilonClosure): Deleted.
1571         (WebCore::ContentExtensions::populateTransitionsExcludingEpsilon): Deleted.
1572         * contentextensions/NFAToDFA.h:
1573
1574 2015-01-20  Chris Dumez  <cdumez@apple.com>
1575
1576         Log types of resources being loaded using DiagnosticLoggingClient
1577         https://bugs.webkit.org/show_bug.cgi?id=140682
1578
1579         Reviewed by Andreas Kling.
1580
1581         Log types of resources being loaded using DiagnosticLoggingClient
1582         instead of the legacy FeatureCounter.
1583
1584         * loader/SubresourceLoader.cpp:
1585         (WebCore::logResourceLoaded):
1586         (WebCore::SubresourceLoader::didFinishLoading):
1587         (WebCore::logResourceLoadedUsingFeatureCounter): Deleted.
1588         * page/DiagnosticLoggingKeys.cpp:
1589         (WebCore::DiagnosticLoggingKeys::otherKey):
1590         (WebCore::DiagnosticLoggingKeys::mainResourceKey):
1591         (WebCore::DiagnosticLoggingKeys::loadedKey):
1592         (WebCore::DiagnosticLoggingKeys::imageKey):
1593         (WebCore::DiagnosticLoggingKeys::rawKey):
1594         (WebCore::DiagnosticLoggingKeys::resourceKey):
1595         (WebCore::DiagnosticLoggingKeys::scriptKey):
1596         (WebCore::DiagnosticLoggingKeys::styleSheetKey):
1597         (WebCore::DiagnosticLoggingKeys::svgDocumentKey):
1598         (WebCore::DiagnosticLoggingKeys::fontKey):
1599         * page/DiagnosticLoggingKeys.h:
1600         * platform/FeatureCounterKeys.h:
1601
1602 2015-01-20  Zalan Bujtas  <zalan@apple.com>
1603
1604         Simple line layout: Remove redundant style.preserveNewline check when collapsing trailing whitespace.
1605         https://bugs.webkit.org/show_bug.cgi?id=140684
1606
1607         Reviewed by Antti Koivisto.
1608
1609         FlowContents::isLineBreak() checks whether we are at a hard newline.
1610
1611         No change in functionality.
1612
1613         * rendering/SimpleLineLayout.cpp:
1614         (WebCore::SimpleLineLayout::removeTrailingWhitespace):
1615
1616 2015-01-19  Simon Fraser  <simon.fraser@apple.com>
1617
1618         Add a way to collect scrolling performance data (viewport tile coverage) with UI-side compositing
1619         https://bugs.webkit.org/show_bug.cgi?id=140474
1620
1621         Reviewed by Tim Horton.
1622
1623         Add accessors for standard names for container CALayer for each of the tile grids,
1624         and when tile grids are swapped, update those names as appropriate.
1625         
1626         * WebCore.exp.in:
1627         * platform/graphics/ca/TileController.cpp:
1628         (WebCore::TileController::tileGridContainerLayerName):
1629         (WebCore::TileController::zoomedOutTileGridContainerLayerName):
1630         (WebCore::TileController::setContentsScale):
1631         * platform/graphics/ca/TileController.h:
1632         * platform/graphics/ca/TileGrid.cpp:
1633         (WebCore::TileGrid::TileGrid):
1634         (WebCore::TileGrid::setIsZoomedOutTileGrid):
1635         * platform/graphics/ca/TileGrid.h:
1636
1637 2015-01-20  Csaba Osztrogonác  <ossy@webkit.org>
1638
1639         Fix unused-private-field warning in IconEfl.cpp
1640         https://bugs.webkit.org/show_bug.cgi?id=140676
1641
1642         Reviewed by Darin Adler.
1643
1644         * platform/graphics/Icon.h:
1645         * platform/graphics/efl/IconEfl.cpp:
1646         (WebCore::Icon::Icon): Deleted.
1647
1648 2015-01-20  Csaba Osztrogonác  <ossy@webkit.org>
1649
1650         Fix unused-private-field warning in FontCustomPlatformDataFreeType.cpp
1651         https://bugs.webkit.org/show_bug.cgi?id=140677
1652
1653         Reviewed by Martin Robinson.
1654
1655         * platform/graphics/cairo/FontCustomPlatformData.h:
1656         * platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
1657         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
1658         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
1659
1660 2015-01-20  peavo@outlook.com  <peavo@outlook.com>
1661
1662         Plugin content not loaded.
1663         https://bugs.webkit.org/show_bug.cgi?id=140672
1664
1665         Reviewed by Brent Fulgham.
1666
1667         It seems this is caused by a std::unique_ptr in CClass::methodNamed being moved,
1668         resetting its raw pointer. The raw pointer, which now is null, is then returned
1669         from the method.
1670
1671         * bridge/c/c_class.cpp:
1672         (JSC::Bindings::CClass::methodNamed):
1673         (JSC::Bindings::CClass::fieldNamed):
1674
1675 2015-01-20  Darin Adler  <darin@apple.com>
1676
1677         Remove SVGElementInstanceList, m_instanceUnderMouse, DUMP_INSTANCE_TREE, DUMP_SHADOW_TREE
1678         https://bugs.webkit.org/show_bug.cgi?id=140679
1679
1680         Reviewed by Anders Carlsson.
1681
1682         First step in removing the SVG instance tree.
1683         All based on redoing the same excellent work Rob Buis did to remove this in Blink in crbug.com/313438.
1684
1685         * CMakeLists.txt: Removed the source files.
1686         * DerivedSources.cpp: Ditto.
1687         * DerivedSources.make: Ditto.
1688         * WebCore.vcxproj/WebCore.vcxproj: Ditto.
1689         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
1690         * WebCore.xcodeproj/project.pbxproj: Ditto.
1691
1692         * page/EventHandler.cpp:
1693         (WebCore::EventHandler::clear): Removed code to set unused m_instanceUnderMouse.
1694         (WebCore::EventHandler::updateMouseEventTargetNode): Ditto.
1695         * page/EventHandler.h: Removed m_instanceUnderMouse.
1696
1697         * svg/SVGAllInOne.cpp: Removed the source files.
1698         * svg/SVGElementInstance.cpp:
1699         (WebCore::SVGElementInstance::childNodes): Deleted.
1700         * svg/SVGElementInstance.h: Removed childNodes.
1701         * svg/SVGElementInstance.idl: Ditto.
1702         * svg/SVGElementInstanceList.cpp: Removed.
1703         * svg/SVGElementInstanceList.h: Removed.
1704         * svg/SVGElementInstanceList.idl: Removed.
1705         * svg/SVGUseElement.cpp:
1706         (WebCore::dumpInstanceTree): Deleted.
1707         (WebCore::SVGUseElement::buildShadowAndInstanceTree): Removed DUMP_INSTANCE_TREE and
1708         DUMP_SHADOW_TREE code.
1709
1710 2015-01-19  Brian J. Burg  <burg@cs.washington.edu>
1711
1712         Web Replay: code generator should take supplemental specifications and allow cross-framework references
1713         https://bugs.webkit.org/show_bug.cgi?id=136312
1714
1715         Reviewed by Joseph Pecoraro.
1716
1717         Changes covered by existing input generator tests.
1718
1719         * DerivedSources.make: Add JSInputs.json as supplemental specification.
1720         * replay/WebInputs.json: Moved common types to JSInputs.json.
1721
1722 2015-01-20  Csaba Osztrogonác  <ossy@webkit.org>
1723
1724         Fix unused-const-variable warning in RenderLayerCompositor.cpp
1725         https://bugs.webkit.org/show_bug.cgi?id=140678
1726
1727         Reviewed by Simon Fraser.
1728
1729         * rendering/RenderLayerCompositor.cpp:
1730
1731 2015-01-20  Csaba Osztrogonác  <ossy@webkit.org>
1732
1733         [gstreamer] Fix expression result unused warning in GRefPtrGStreamer.cpp
1734         https://bugs.webkit.org/show_bug.cgi?id=140671
1735
1736         Reviewed by Philippe Normand.
1737
1738         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
1739         (WTF::refGPtr<GstToc>):
1740
1741 2015-01-19  Dean Jackson  <dino@apple.com>
1742
1743         Support "plus-darker" in mix-blend mode
1744         https://bugs.webkit.org/show_bug.cgi?id=140646
1745         <rdar://problem/19523370>
1746
1747         Reviewed by Simon Fraser.
1748
1749         Support the "plus-darker" blending mode to CSS.
1750         See: https://lists.w3.org/Archives/Public/public-fx/2015JanMar/0021.html
1751
1752         Test: css3/blending/svg-blend-plus-darker.html
1753
1754         * css/CSSParser.cpp:
1755         (WebCore::isValidKeywordPropertyAndValue): mix-blend-mode can now accept
1756         the new keyword.
1757         * css/CSSPrimitiveValueMappings.h: Add the mappings.
1758         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1759         (WebCore::CSSPrimitiveValue::operator BlendMode):
1760         * platform/graphics/GraphicsTypes.cpp: Add the new GraphicsType.
1761         * platform/graphics/GraphicsTypes.h:
1762         * platform/graphics/ca/mac/PlatformCAFiltersMac.mm: Map to the CA compositing filter.
1763         (PlatformCAFilters::setBlendingFiltersOnLayer):
1764         * platform/graphics/cg/GraphicsContextCG.cpp:
1765         (WebCore::GraphicsContext::setPlatformCompositeOperation): Map to the CG blending flag.
1766
1767 2015-01-20  Csaba Osztrogonác  <ossy@webkit.org>
1768
1769         Fix 'register' storage class specifier is deprecated warning
1770         https://bugs.webkit.org/show_bug.cgi?id=140669
1771
1772         Reviewed by Carlos Garcia Campos.
1773
1774         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
1775         (webKitWebAudioSrcLoop):
1776
1777 2015-01-20  Chris Dumez  <cdumez@apple.com>
1778
1779         Use DiagnosticLoggingClient to log page cache failures
1780         https://bugs.webkit.org/show_bug.cgi?id=140650
1781
1782         Reviewed by Andreas Kling.
1783
1784         Use DiagnosticLoggingClient to log page cache failures instead of the
1785         legacy FeatureCounter.
1786
1787         * history/PageCache.cpp:
1788         (WebCore::logPageCacheFailureDiagnosticMessage):
1789         (WebCore::logCanCacheFrameDecision):
1790         (WebCore::logCanCachePageDecision):
1791         (WebCore::PageCache::canCache):
1792         (WebCore::pruningReasonToDiagnosticLoggingKey):
1793         (WebCore::PageCache::take):
1794         (WebCore::PageCache::get):
1795         (WebCore::pruningReasonToFeatureCounterKey): Deleted.
1796         * page/DiagnosticLoggingKeys.cpp:
1797         (WebCore::DiagnosticLoggingKeys::successKey):
1798         (WebCore::DiagnosticLoggingKeys::failureKey):
1799         (WebCore::DiagnosticLoggingKeys::pageLoadedKey):
1800         (WebCore::DiagnosticLoggingKeys::engineFailedToLoadKey):
1801         (WebCore::DiagnosticLoggingKeys::navigationKey):
1802         (WebCore::DiagnosticLoggingKeys::pageCacheKey):
1803         (WebCore::DiagnosticLoggingKeys::noDocumentLoaderKey):
1804         (WebCore::DiagnosticLoggingKeys::mainDocumentErrorKey):
1805         (WebCore::DiagnosticLoggingKeys::isErrorPageKey):
1806         (WebCore::DiagnosticLoggingKeys::hasPluginsKey):
1807         (WebCore::DiagnosticLoggingKeys::httpsNoStoreKey):
1808         (WebCore::DiagnosticLoggingKeys::hasOpenDatabasesKey):
1809         (WebCore::DiagnosticLoggingKeys::noCurrentHistoryItemKey):
1810         (WebCore::DiagnosticLoggingKeys::quirkRedirectComingKey):
1811         (WebCore::DiagnosticLoggingKeys::loadingAPISenseKey):
1812         (WebCore::DiagnosticLoggingKeys::documentLoaderStoppingKey):
1813         (WebCore::DiagnosticLoggingKeys::cannotSuspendActiveDOMObjectsKey):
1814         (WebCore::DiagnosticLoggingKeys::applicationCacheKey):
1815         (WebCore::DiagnosticLoggingKeys::deniedByClientKey):
1816         (WebCore::DiagnosticLoggingKeys::deviceMotionKey):
1817         (WebCore::DiagnosticLoggingKeys::deviceOrientationKey):
1818         (WebCore::DiagnosticLoggingKeys::deviceProximityKey):
1819         (WebCore::DiagnosticLoggingKeys::reloadKey):
1820         (WebCore::DiagnosticLoggingKeys::reloadFromOriginKey):
1821         (WebCore::DiagnosticLoggingKeys::sameLoadKey):
1822         (WebCore::DiagnosticLoggingKeys::expiredKey):
1823         (WebCore::DiagnosticLoggingKeys::prunedDueToMemoryPressureKey):
1824         (WebCore::DiagnosticLoggingKeys::prunedDueToCapacityReached):
1825         (WebCore::DiagnosticLoggingKeys::prunedDueToProcessSuspended):
1826         (WebCore::DiagnosticLoggingKeys::passKey): Deleted.
1827         (WebCore::DiagnosticLoggingKeys::failKey): Deleted.
1828         (WebCore::DiagnosticLoggingKeys::noopKey): Deleted.
1829         * page/DiagnosticLoggingKeys.h:
1830         * platform/FeatureCounterKeys.h:
1831
1832 2015-01-19  Sergio Villar Senin  <svillar@igalia.com>
1833
1834         [CSS Grid Layout] Wrong arguments passed to computeNormalizedFractionBreadth
1835         https://bugs.webkit.org/show_bug.cgi?id=139058
1836
1837         Reviewed by Andreas Kling.
1838
1839         The method RenderGrid::computeNormalizedFractionBreadth() is
1840         supposed to get as fourth argument either the grid element's
1841         content box size or the max-size of a particular grid item. For
1842         the former we were incorrectly passing the free space after
1843         distributing the available space to tracks.
1844
1845         Apart from that, that method has a bug in its implementation. As
1846         we were using the free space instead of the grid element's content
1847         box size, we didn't have to subtract the usedBreadth of grid
1848         tracks from the passed in value. That did not work for the case of
1849         the caller passing the max-size of a particular item.
1850
1851         * rendering/RenderGrid.cpp:
1852         (WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
1853         (WebCore::RenderGrid::computeNormalizedFractionBreadth):
1854
1855 2015-01-19  Myles C. Maxfield  <mmaxfield@apple.com>
1856
1857         [SVG -> OTF Converter] Flip the switch on
1858         https://bugs.webkit.org/show_bug.cgi?id=140592
1859
1860         Reviewed by Antti Koivisto.
1861
1862         * Configurations/FeatureDefines.xcconfig:
1863
1864 2015-01-19  Commit Queue  <commit-queue@webkit.org>
1865
1866         Unreviewed, rolling out r178683.
1867         https://bugs.webkit.org/show_bug.cgi?id=140657
1868
1869         Lots of asserts in tests. (Requested by JoePeck on #webkit).
1870
1871         Reverted changeset:
1872
1873         "LayoutState and subtree layout code should use
1874         RenderElement."
1875         https://bugs.webkit.org/show_bug.cgi?id=126878
1876         http://trac.webkit.org/changeset/178683
1877
1878 2015-01-19  Brent Fulgham  <bfulgham@apple.com>
1879
1880         [Win] Unreviewed gardening.
1881
1882         Avoid compiling files twice when they are included in an 'AllInOne.cpp' file.
1883
1884         * WebCore.vcxproj/WebCore.vcxproj: Mark several files as 'not to be built', since
1885         they are also build as part of an 'AllInOne.cpp' file.
1886
1887 2015-01-19  Chris Dumez  <cdumez@apple.com>
1888
1889         Stop using FeatureCounter to log navigation types
1890         https://bugs.webkit.org/show_bug.cgi?id=140642
1891
1892         Reviewed by Andreas Kling.
1893
1894         Stop using FeatureCounter to log navigation types now that
1895         DiagnosticLoggingClient is working on iOS.
1896
1897         * loader/FrameLoader.cpp:
1898         (WebCore::logNavigation):
1899         * platform/FeatureCounterKeys.h:
1900
1901 2015-01-19  Andreas Kling  <akling@apple.com>
1902
1903         LayoutState and subtree layout code should use RenderElement.
1904         <https://webkit.org/b/126878>
1905
1906         Subtree layout will never begin at a RenderText, so tighten up
1907         the code to operate on RenderElements instead of RenderObjects.
1908
1909         Reviewed by Antti Koivisto.
1910
1911         * inspector/InspectorTimelineAgent.cpp:
1912         (WebCore::InspectorTimelineAgent::willLayout):
1913         * page/FrameView.cpp:
1914         (WebCore::FrameView::layoutRoot):
1915         (WebCore::FrameView::layout):
1916         * page/FrameView.h:
1917
1918             Make FrameView::layoutRoot() return RenderElement*.
1919
1920         * rendering/RenderElement.cpp:
1921         (WebCore::RenderElement::willBeDestroyed):
1922         * rendering/RenderObject.cpp:
1923         (WebCore::RenderObject::willBeDestroyed):
1924         * rendering/RenderObject.h:
1925
1926             Move subtree layout root clearing logic in willBeDestroyed()
1927             from RenderObject to RenderElement.
1928
1929         * rendering/LayoutState.cpp:
1930         (WebCore::LayoutState::LayoutState):
1931         * rendering/LayoutState.h:
1932         * rendering/RenderView.h:
1933         * rendering/RenderView.cpp:
1934         (WebCore::RenderView::pushLayoutState):
1935         (WebCore::RenderView::pushLayoutStateForCurrentFlowThread):
1936
1937             Make all of these functions take RenderElement instead of
1938             RenderObject since layout never starts from a RenderText.
1939
1940         (WebCore::RenderView::shouldDisableLayoutStateForSubtree):
1941
1942             Tweak loop since it's never null on first iteration.
1943
1944 2015-01-19  Beth Dakin  <bdakin@apple.com>
1945
1946         Speculative build fix.
1947
1948         * platform/spi/mac/NSViewSPI.h:
1949
1950 2015-01-19  Timothy Horton  <timothy_horton@apple.com>
1951
1952         Adjust naming of action menu SPI
1953         https://bugs.webkit.org/show_bug.cgi?id=140644
1954         <rdar://problem/19448129>
1955
1956         Reviewed by Brian Weinstein.
1957
1958         * platform/spi/mac/NSViewSPI.h:
1959         Add an underscore.
1960
1961 2015-01-19  Dhi Aurrahman  <diorahman@rockybars.com>
1962
1963         Canonicalization of :lang() should preserve the :lang()'s arguments representations
1964         https://bugs.webkit.org/show_bug.cgi?id=139928
1965
1966         Reviewed by Benjamin Poulain.
1967
1968         Preserve the representation of IDENT and STRING when serializing the
1969         :lang(). For example, :lang(foo,"bar", baz) should be serialize as
1970         :lang(foo, "bar", baz) instead of :lang(foo, bar, baz).
1971     
1972         Rename CSSParserSelector::setArgumentList, CSSSelector::setArgumentList
1973         and CSSSelector::argumentList to CSSParserSelector::setLangArgumentList,
1974         CSSSelector::setLangArgumentList and CSSSelector::langArgumentList
1975         respectively, since those methods are being exclusively used in respect
1976         with :lang().
1977
1978         Update the test of serializing :lang() with IDENT and STRING arguments.
1979
1980         * css/CSSGrammar.y.in:
1981         * css/CSSParserValues.cpp:
1982         (WebCore::CSSParserSelector::setLangArgumentList):
1983         (WebCore::CSSParserSelector::setArgumentList): Deleted.
1984         * css/CSSParserValues.h:
1985         (WebCore::CSSParserString::tokenType):
1986         (WebCore::CSSParserString::setTokenType):
1987         * css/CSSSelector.cpp:
1988         (WebCore::appendLangArgumentList):
1989         (WebCore::CSSSelector::selectorText):
1990         (WebCore::CSSSelector::setLangArgumentList):
1991         (WebCore::appendArgumentList): Deleted.
1992         (WebCore::CSSSelector::setArgumentList): Deleted.
1993         * css/CSSSelector.h:
1994         (WebCore::CSSSelector::langArgumentList):
1995         (WebCore::CSSSelector::argumentList): Deleted.
1996         * css/SelectorChecker.cpp:
1997         (WebCore::SelectorChecker::checkOne):
1998         * css/SelectorCheckerTestFunctions.h:
1999         (WebCore::matchesLangPseudoClass):
2000
2001 2015-01-16  Roger Fong  <roger_fong@apple.com>
2002
2003         WebGL2: Support webgl2 context creation.
2004         https://bugs.webkit.org/show_bug.cgi?id=126408
2005         <rdar://problem/15002170>
2006
2007         Reviewed by Dean Jackson.
2008
2009         Tests covered by existing Khronos tests for WebGL 1.0 conformance.
2010
2011         Create a WebGLRenderingContextBase class that extends to a WebGLRenderingContext and WebGL2RenderingContext.
2012         Replace all previous instances of WebGLRenderingContext usages with WebGLRenderingContextBase usages for now.
2013         As the first step, the WebGL1 and WebGL2 contexts will have the exact same functionality.
2014
2015         * CMakeLists.txt:
2016         * DerivedSources.cpp:
2017         * DerivedSources.make:
2018         * WebCore.vcxproj/WebCore.vcxproj:
2019         * WebCore.vcxproj/WebCore.vcxproj.filters:
2020         * WebCore.xcodeproj/project.pbxproj:
2021         * bindings/js/JSBindingsAllInOne.cpp:
2022         * bindings/js/JSCanvasRenderingContextCustom.cpp:
2023         (WebCore::toJS):
2024         * bindings/js/JSDocumentCustom.cpp:
2025         * bindings/js/JSHTMLCanvasElementCustom.cpp:
2026         * bindings/js/JSWebGL2RenderingContextCustom.cpp: Added.
2027         (WebCore::JSWebGL2RenderingContext::visitAdditionalChildren):
2028         * bindings/js/JSWebGLRenderingContextBaseCustom.cpp: Added.
2029         * bindings/js/JSWebGLRenderingContextCustom.cpp: Move code to JSWebGLRenderingContextBaseCustom.cpp.
2030         * bindings/scripts/CodeGeneratorJS.pm:
2031         (GenerateImplementation):
2032         * html/HTMLCanvasElement.cpp:
2033         (WebCore::HTMLCanvasElement::getContext):
2034         (WebCore::HTMLCanvasElement::reset):
2035         (WebCore::HTMLCanvasElement::paint):
2036         (WebCore::HTMLCanvasElement::getImageData):
2037         * html/canvas/ANGLEInstancedArrays.cpp:
2038         (WebCore::ANGLEInstancedArrays::ANGLEInstancedArrays):
2039         (WebCore::ANGLEInstancedArrays::supported):
2040         * html/canvas/ANGLEInstancedArrays.h:
2041         * html/canvas/CanvasRenderingContext.h:
2042         (WebCore::CanvasRenderingContext::isWebGL1):
2043         (WebCore::CanvasRenderingContext::isWebGL2):
2044         (WebCore::CanvasRenderingContext::is3d):
2045         * html/canvas/EXTBlendMinMax.cpp:
2046         (WebCore::EXTBlendMinMax::EXTBlendMinMax):
2047         * html/canvas/EXTBlendMinMax.h:
2048         * html/canvas/EXTFragDepth.cpp:
2049         (WebCore::EXTFragDepth::EXTFragDepth):
2050         * html/canvas/EXTFragDepth.h:
2051         * html/canvas/EXTShaderTextureLOD.cpp:
2052         (WebCore::EXTShaderTextureLOD::EXTShaderTextureLOD):
2053         * html/canvas/EXTShaderTextureLOD.h:
2054         * html/canvas/EXTTextureFilterAnisotropic.cpp:
2055         (WebCore::EXTTextureFilterAnisotropic::EXTTextureFilterAnisotropic):
2056         * html/canvas/EXTTextureFilterAnisotropic.h:
2057         * html/canvas/EXTsRGB.cpp:
2058         (WebCore::EXTsRGB::EXTsRGB):
2059         * html/canvas/EXTsRGB.h:
2060         * html/canvas/OESElementIndexUint.cpp:
2061         (WebCore::OESElementIndexUint::OESElementIndexUint):
2062         * html/canvas/OESElementIndexUint.h:
2063         * html/canvas/OESStandardDerivatives.cpp:
2064         (WebCore::OESStandardDerivatives::OESStandardDerivatives):
2065         * html/canvas/OESStandardDerivatives.h:
2066         * html/canvas/OESTextureFloat.cpp:
2067         (WebCore::OESTextureFloat::OESTextureFloat):
2068         * html/canvas/OESTextureFloat.h:
2069         * html/canvas/OESTextureFloatLinear.cpp:
2070         (WebCore::OESTextureFloatLinear::OESTextureFloatLinear):
2071         * html/canvas/OESTextureFloatLinear.h:
2072         * html/canvas/OESTextureHalfFloat.cpp:
2073         (WebCore::OESTextureHalfFloat::OESTextureHalfFloat):
2074         * html/canvas/OESTextureHalfFloat.h:
2075         * html/canvas/OESTextureHalfFloatLinear.cpp:
2076         (WebCore::OESTextureHalfFloatLinear::OESTextureHalfFloatLinear):
2077         * html/canvas/OESTextureHalfFloatLinear.h:
2078         * html/canvas/OESVertexArrayObject.cpp:
2079         (WebCore::OESVertexArrayObject::OESVertexArrayObject):
2080         * html/canvas/OESVertexArrayObject.h:
2081         * html/canvas/WebGL2RenderingContext.cpp: Added.
2082         (WebCore::WebGL2RenderingContext::WebGL2RenderingContext):
2083         * html/canvas/WebGL2RenderingContext.h: Added.
2084         * html/canvas/WebGL2RenderingContext.idl: Added.
2085         * html/canvas/WebGLBuffer.cpp:
2086         (WebCore::WebGLBuffer::create):
2087         (WebCore::WebGLBuffer::WebGLBuffer):
2088         * html/canvas/WebGLBuffer.h:
2089         * html/canvas/WebGLCompressedTextureATC.cpp:
2090         (WebCore::WebGLCompressedTextureATC::WebGLCompressedTextureATC):
2091         (WebCore::WebGLCompressedTextureATC::supported):
2092         * html/canvas/WebGLCompressedTextureATC.h:
2093         * html/canvas/WebGLCompressedTexturePVRTC.cpp:
2094         (WebCore::WebGLCompressedTexturePVRTC::WebGLCompressedTexturePVRTC):
2095         (WebCore::WebGLCompressedTexturePVRTC::supported):
2096         * html/canvas/WebGLCompressedTexturePVRTC.h:
2097         * html/canvas/WebGLCompressedTextureS3TC.cpp:
2098         (WebCore::WebGLCompressedTextureS3TC::WebGLCompressedTextureS3TC):
2099         (WebCore::WebGLCompressedTextureS3TC::supported):
2100         * html/canvas/WebGLCompressedTextureS3TC.h:
2101         * html/canvas/WebGLContextGroup.cpp:
2102         (WebCore::WebGLContextGroup::getAGraphicsContext3D):
2103         (WebCore::WebGLContextGroup::addContext):
2104         (WebCore::WebGLContextGroup::removeContext):
2105         (WebCore::WebGLContextGroup::loseContextGroup):
2106         * html/canvas/WebGLContextGroup.h:
2107         * html/canvas/WebGLContextObject.cpp:
2108         (WebCore::WebGLContextObject::WebGLContextObject):
2109         * html/canvas/WebGLContextObject.h:
2110         (WebCore::WebGLContextObject::context):
2111         * html/canvas/WebGLDebugRendererInfo.cpp:
2112         (WebCore::WebGLDebugRendererInfo::WebGLDebugRendererInfo):
2113         * html/canvas/WebGLDebugRendererInfo.h:
2114         * html/canvas/WebGLDebugShaders.cpp:
2115         (WebCore::WebGLDebugShaders::WebGLDebugShaders):
2116         * html/canvas/WebGLDebugShaders.h:
2117         * html/canvas/WebGLDepthTexture.cpp:
2118         (WebCore::WebGLDepthTexture::WebGLDepthTexture):
2119         * html/canvas/WebGLDepthTexture.h:
2120         * html/canvas/WebGLDrawBuffers.cpp:
2121         (WebCore::WebGLDrawBuffers::WebGLDrawBuffers):
2122         (WebCore::WebGLDrawBuffers::supported):
2123         (WebCore::WebGLDrawBuffers::satisfiesWebGLRequirements):
2124         * html/canvas/WebGLDrawBuffers.h:
2125         * html/canvas/WebGLExtension.cpp:
2126         (WebCore::WebGLExtension::WebGLExtension):
2127         * html/canvas/WebGLExtension.h:
2128         (WebCore::WebGLExtension::context):
2129         * html/canvas/WebGLFramebuffer.cpp:
2130         (WebCore::WebGLFramebuffer::create):
2131         (WebCore::WebGLFramebuffer::WebGLFramebuffer):
2132         * html/canvas/WebGLFramebuffer.h:
2133         * html/canvas/WebGLLoseContext.cpp:
2134         (WebCore::WebGLLoseContext::WebGLLoseContext):
2135         (WebCore::WebGLLoseContext::loseContext):
2136         * html/canvas/WebGLLoseContext.h:
2137         * html/canvas/WebGLObject.cpp:
2138         (WebCore::WebGLObject::WebGLObject):
2139         * html/canvas/WebGLObject.h:
2140         * html/canvas/WebGLProgram.cpp:
2141         (WebCore::WebGLProgram::create):
2142         (WebCore::WebGLProgram::WebGLProgram):
2143         * html/canvas/WebGLProgram.h:
2144         * html/canvas/WebGLRenderbuffer.cpp:
2145         (WebCore::WebGLRenderbuffer::create):
2146         (WebCore::WebGLRenderbuffer::WebGLRenderbuffer):
2147         * html/canvas/WebGLRenderbuffer.h:
2148         * html/canvas/WebGLRenderingContext.cpp: Move implementation to WebGLRenderingContextBase.cpp.
2149         * html/canvas/WebGLRenderingContext.h:  Move implementation to WebGLRenderingContextBase.h.
2150         * html/canvas/WebGLRenderingContext.idl:  Move implementation to WebGLRenderingContextBase.idl.
2151         * html/canvas/WebGLRenderingContextBase.cpp: Added.
2152         * html/canvas/WebGLRenderingContextBase.h: Added.
2153         * html/canvas/WebGLRenderingContextBase.idl: Added.
2154         * html/canvas/WebGLShader.cpp:
2155         (WebCore::WebGLShader::create):
2156         (WebCore::WebGLShader::WebGLShader):
2157         * html/canvas/WebGLShader.h:
2158         * html/canvas/WebGLSharedObject.cpp:
2159         (WebCore::WebGLSharedObject::WebGLSharedObject):
2160         * html/canvas/WebGLSharedObject.h:
2161         * html/canvas/WebGLTexture.cpp:
2162         (WebCore::WebGLTexture::create):
2163         (WebCore::WebGLTexture::WebGLTexture):
2164         * html/canvas/WebGLTexture.h:
2165         * html/canvas/WebGLVertexArrayObjectOES.cpp:
2166         (WebCore::WebGLVertexArrayObjectOES::create):
2167         (WebCore::WebGLVertexArrayObjectOES::WebGLVertexArrayObjectOES):
2168         * html/canvas/WebGLVertexArrayObjectOES.h:
2169
2170 2015-01-19  Antti Koivisto  <antti@apple.com>
2171
2172         REGRESSION(r178250): ~2% PLT regression
2173         https://bugs.webkit.org/show_bug.cgi?id=140640
2174
2175         Reviewed by Andreas Kling.
2176
2177         * platform/graphics/FontCache.cpp:
2178
2179         The patch accidentally contained a change to reduce the size of the cache (to verify that purgin works).
2180         Restore it back to the original value.
2181
2182 2015-01-19  peavo@outlook.com  <peavo@outlook.com>
2183
2184         [WinCairo][Video] Windows Media Foundation implementation is not completed.
2185         https://bugs.webkit.org/show_bug.cgi?id=140337
2186
2187         Reviewed by Alex Christensen.
2188
2189         This patch aims to complete some of the methods which are not implemented.
2190         Currently, only MP4 is supported.
2191         Video is rendered in a child window of the main window.
2192         We should eventually render the video directly in the main window,
2193         by reading and painting individual video frames from the stream.
2194
2195         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
2196         (WebCore::MediaPlayerPrivateMediaFoundation::MediaPlayerPrivateMediaFoundation):
2197         (WebCore::MediaPlayerPrivateMediaFoundation::~MediaPlayerPrivateMediaFoundation):
2198         (WebCore::MediaPlayerPrivateMediaFoundation::getSupportedTypes):
2199         (WebCore::MediaPlayerPrivateMediaFoundation::supportsType):
2200         (WebCore::MediaPlayerPrivateMediaFoundation::load):
2201         (WebCore::MediaPlayerPrivateMediaFoundation::play):
2202         (WebCore::MediaPlayerPrivateMediaFoundation::pause):
2203         (WebCore::MediaPlayerPrivateMediaFoundation::naturalSize):
2204         (WebCore::MediaPlayerPrivateMediaFoundation::hasVideo):
2205         (WebCore::MediaPlayerPrivateMediaFoundation::hasAudio):
2206         (WebCore::MediaPlayerPrivateMediaFoundation::setVisible):
2207         (WebCore::MediaPlayerPrivateMediaFoundation::paused):
2208         (WebCore::MediaPlayerPrivateMediaFoundation::readyState):
2209         (WebCore::MediaPlayerPrivateMediaFoundation::didLoadingProgress):
2210         (WebCore::MediaPlayerPrivateMediaFoundation::setSize):
2211         (WebCore::MediaPlayerPrivateMediaFoundation::paint):
2212         (WebCore::MediaPlayerPrivateMediaFoundation::createSession):
2213         (WebCore::MediaPlayerPrivateMediaFoundation::endSession):
2214         (WebCore::MediaPlayerPrivateMediaFoundation::startCreateMediaSource):
2215         (WebCore::MediaPlayerPrivateMediaFoundation::endCreatedMediaSource):
2216         (WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
2217         (WebCore::MediaPlayerPrivateMediaFoundation::createTopologyFromSource):
2218         (WebCore::MediaPlayerPrivateMediaFoundation::addBranchToPartialTopology):
2219         (WebCore::MediaPlayerPrivateMediaFoundation::VideoViewWndProc):
2220         (WebCore::MediaPlayerPrivateMediaFoundation::registerVideoWindowClass):
2221         (WebCore::MediaPlayerPrivateMediaFoundation::createVideoWindow):
2222         (WebCore::MediaPlayerPrivateMediaFoundation::destroyVideoWindow):
2223         (WebCore::MediaPlayerPrivateMediaFoundation::createOutputNode):
2224         (WebCore::MediaPlayerPrivateMediaFoundation::createSourceStreamNode):
2225         (WebCore::MediaPlayerPrivateMediaFoundation::onCreatedMediaSource):
2226         (WebCore::MediaPlayerPrivateMediaFoundation::onTopologySet):
2227         (WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::AsyncCallback):
2228         (WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::~AsyncCallback):
2229         (WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::QueryInterface):
2230         (WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::AddRef):
2231         (WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::Release):
2232         (WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::GetParameters):
2233         (WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::Invoke):
2234         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
2235
2236 2015-01-19  Brian J. Burg  <burg@cs.washington.edu>
2237
2238         Web Replay: convert to is<T> and downcast<T> for decoding replay inputs
2239         https://bugs.webkit.org/show_bug.cgi?id=140512
2240
2241         Reviewed by Chris Dumez.
2242
2243         No new tests, no behavior changed.
2244
2245         * replay/EventLoopInput.h: Make overridden methods public.
2246         * replay/MemoizedDOMResult.h: Add type trait specialization here. It is
2247         special-cased because the input type parameter doesn't work with macros.
2248         * replay/SerializationMethods.cpp:
2249         (JSC::EncodingTraits<NondeterministicInputBase>::encodeValue):
2250         Use is() and downcast() when dispatching to encoders based on type.
2251
2252 2015-01-19  Zan Dobersek  <zdobersek@igalia.com>
2253
2254         Replace use of WTF::bind() in MemoryPressureHandlerLinux.cpp with a C++ lambda
2255         https://bugs.webkit.org/show_bug.cgi?id=140614
2256
2257         Reviewed by Carlos Garcia Campos.
2258
2259         Use a C++ lambda instead of WTF::bind() in the MemoryPressureHandler
2260         implementation for Linux.
2261
2262         * platform/linux/MemoryPressureHandlerLinux.cpp:
2263         (WebCore::MemoryPressureHandler::waitForMemoryPressureEvent):
2264
2265 2015-01-19  Zan Dobersek  <zdobersek@igalia.com>
2266
2267         Replace uses of WTF::bind() in MockMediaPlayerMediaSource with C++ lambdas
2268         https://bugs.webkit.org/show_bug.cgi?id=140612
2269
2270         Reviewed by Philippe Normand.
2271
2272         Use C++ lambdas in place of WTF::bind() in the MockMediaPlayerMediaSource class.
2273
2274         * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
2275         (WebCore::MockMediaPlayerMediaSource::play):
2276         (WebCore::MockMediaPlayerMediaSource::seekWithTolerance):
2277         (WebCore::MockMediaPlayerMediaSource::seekCompleted):
2278
2279 2015-01-19  Commit Queue  <commit-queue@webkit.org>
2280
2281         Unreviewed, rolling out r178653.
2282         https://bugs.webkit.org/show_bug.cgi?id=140634
2283
2284         Broke multiple SVG tests on Mountain Lion (Requested by ap on
2285         #webkit).
2286
2287         Reverted changeset:
2288
2289         "[SVG -> OTF Converter] Flip the switch on"
2290         https://bugs.webkit.org/show_bug.cgi?id=140592
2291         http://trac.webkit.org/changeset/178653
2292
2293 2015-01-19  Brent Fulgham  <bfulgham@apple.com>
2294
2295         Layers need to be already updated before we call adjustViewSize
2296         https://bugs.webkit.org/show_bug.cgi?id=135514
2297
2298         Reviewed by Simon Fraser.
2299
2300         Tested by 'fast/dynamic/layer-no-longer-paginated.html'
2301
2302         Defer painting operations until we have finished layout. This
2303         has a couple of benefits:
2304         (1) We do not attempt to modify render layers during layout.
2305         (2) In WK1 we do not attempt to paint during layout.
2306
2307         Add a new virtual predicate to ScrollView indicating when we are in
2308         layout so that calls to setContentsSize do not attempt
2309         to adjust scrollbars.
2310
2311         Modify FrameView to set its ScrollView state to block paint
2312         operations during layout. Also add a post-layout handler to
2313         complete the scrollbar updates after layout is finished.
2314
2315         * WebCore.exp.in: Move linker symbol to ScrollView (from FrameView).
2316         * page/FrameView.cpp:
2317         (WebCore::FrameView::layout):
2318         (WebCore::FrameView::shouldDeferScrollUpdateAfterContentSizeChange): Added.
2319         (WebCore::FrameView::scrollPositionChangedViaPlatformWidget): Removed (Renamed).
2320         (WebCore::FrameView::scrollPositionChangedViaPlatformWidgetImpl): Added (Renamed)
2321         (WebCore::FrameView::paintContents): Do not paint if we are inside view size adjustment.
2322         * page/FrameView.h:
2323         * platform/ScrollView.cpp:
2324         (WebCore::ScrollView::scrollPositionChangedViaPlatformWidget): Added. Checks whether we need to defer
2325         painting, and calls virtual scrollPositionChangedViaPlatformWidgetImpl if we do not.
2326         (WebCore::FrameView::scrollPositionChangedViaPlatformWidgetImpl): Added.
2327         (WebCore::ScrollView::handleDeferredScrollUpdateAfterContentSizeChange): Added.
2328         (WebCore::ScrollView::scrollTo): If we should defer painting, cache the
2329         the scroll delta and apply it after the layout is complete.
2330         (WebCore::ScrollView::completeUpdatesAfterScrollTo): Split off part of 'scrollTo' into its own method
2331         so we can reuse it in handleDeferredScrollUpdateAfterContentSizeChange.
2332         * platform/ScrollView.h:
2333         (WebCore::ScrollView::shouldDeferScrollUpdateAfterContentSizeChange): Added.
2334
2335 2015-01-16  Ada Chan  <adachan@apple.com>
2336
2337         HTMLMediaElement::isPlayingAudio() should return false if the element is explicitly muted by script.
2338         https://bugs.webkit.org/show_bug.cgi?id=140524
2339
2340         Reviewed by Andreas Kling.
2341
2342         Test: media/muted-video-is-playing-audio.html
2343
2344         * html/HTMLMediaElement.cpp:
2345         (WebCore::HTMLMediaElement::setMuted):
2346         Call Document::updateIsPlayingAudio() to recalculate the overall audio playing state.
2347         (WebCore::HTMLMediaElement::isPlayingAudio):
2348         HTMLMediaElement::isPlayingAudio() should return false if the media element is explicitly muted.
2349
2350 2015-01-19  Myles C. Maxfield  <mmaxfield@apple.com>
2351
2352         [SVG -> OTF Converter] Flip the switch on
2353         https://bugs.webkit.org/show_bug.cgi?id=140592
2354
2355         Reviewed by Antti Koivisto.
2356
2357         * Configurations/FeatureDefines.xcconfig:
2358
2359 2015-01-16  Alexey Proskuryakov  <ap@apple.com>
2360
2361         Console log sometimes prefixed with line number
2362         https://bugs.webkit.org/show_bug.cgi?id=105280
2363
2364         Reviewed by Darin Adler.
2365
2366         Improve the logic for determining whether a console message should be associated
2367         with a source code location.
2368
2369         * dom/ScriptableDocumentParser.h:
2370         * html/parser/HTMLDocumentParser.cpp:
2371         (WebCore::HTMLDocumentParser::shouldAssociateConsoleMessagesWithTextPosition):
2372         * html/parser/HTMLDocumentParser.h:
2373         * page/PageConsoleClient.cpp:
2374         (WebCore::getParserLocationForConsoleMessage):
2375         (WebCore::PageConsoleClient::addMessage):
2376         * xml/parser/XMLDocumentParser.cpp:
2377         (WebCore::XMLDocumentParser::pauseParsing):
2378         * xml/parser/XMLDocumentParser.h:
2379         * xml/parser/XMLDocumentParserLibxml2.cpp:
2380         (WebCore::XMLDocumentParser::shouldAssociateConsoleMessagesWithTextPosition):
2381
2382 2015-01-19  Myles C. Maxfield  <mmaxfield@apple.com>
2383
2384         [SVG -> OTF Converter] Glyphs get clipped weirdly
2385         https://bugs.webkit.org/show_bug.cgi?id=137095
2386
2387         Reviewed by Antti Koivisto.
2388
2389         The Adobe CFF spec doesn't actually tell you how to serialize a
2390         "FontBBox." After trial and error, it seems to be (x, y, width,
2391         height).
2392
2393         Test: svg/text/kerning.svg
2394               svg/W3C-SVG-1.1/fonts-kern-01-t.svg
2395
2396         * svg/SVGToOTFFontConversion.cpp:
2397         (WebCore::SVGToOTFFontConverter::appendHEADTable):
2398         (WebCore::SVGToOTFFontConverter::appendCFFTable):
2399         (WebCore::SVGToOTFFontConverter::appendVHEATable):
2400         (WebCore::CFFBuilder::CFFBuilder):
2401         (WebCore::SVGToOTFFontConverter::transcodeGlyphPaths):
2402         (WebCore::SVGToOTFFontConverter::processGlyphElement):
2403
2404 2015-01-19  Csaba Osztrogonác  <ossy@webkit.org>
2405
2406         REGRESSION(r178486): It broke the !ENABLE(VIDEO) build
2407         https://bugs.webkit.org/show_bug.cgi?id=140611
2408
2409         Reviewed by Eric Carlson.
2410
2411         * testing/Internals.cpp:
2412         (WebCore::Internals::elementIsBlockingDisplaySleep):
2413         * testing/Internals.h:
2414
2415 2015-01-19  Sergio Villar Senin  <svillar@igalia.com>
2416
2417         [CSS Grid Layout] Tracks shrink sometimes with indefinite remaining space
2418         https://bugs.webkit.org/show_bug.cgi?id=139059
2419
2420         Reviewed by David Hyatt.
2421
2422         Test: fast/css-grid-layout/grid-grow-tracks-to-their-max.html
2423
2424         * rendering/RenderGrid.cpp:
2425         (WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
2426
2427 2015-01-18  Alexey Proskuryakov  <ap@apple.com>
2428
2429         Update bindings generation test results after <https://trac.webkit.org/changeset/178633>.
2430
2431         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
2432         (WebCore::JSTestEventConstructorConstructor::constructJSTestEventConstructor):
2433         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
2434         (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
2435         (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
2436         * bindings/scripts/test/JS/JSTestObj.cpp:
2437         (WebCore::jsTestObjPrototypeFunctionAddEventListener):
2438         (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
2439
2440 2015-01-18  Chris Dumez  <cdumez@apple.com>
2441
2442         Generate matchingShorthandsForLonghand() implementation from CSSPropertyNames.in
2443         https://bugs.webkit.org/show_bug.cgi?id=140599
2444
2445         Reviewed by Antti Koivisto.
2446
2447         Generate matchingShorthandsForLonghand() implementation from
2448         CSSPropertyNames.in. We already have all the information we need in
2449         CSSPropertyNames.in to generate the big switch() in
2450         matchingShorthandsForLonghand().
2451
2452         A few shorthands still aren't generated. I will look into getting rid
2453         of the custom code in a follow-up patch.
2454
2455         * css/StylePropertyShorthand.cpp:
2456         (WebCore::makeVector): Deleted.
2457         (WebCore::matchingShorthandsForLonghand): Deleted.
2458         * css/StylePropertyShorthand.h:
2459         (WebCore::matchingCustomShorthandsForLonghand):
2460         * css/makeprop.pl:
2461         (constructShorthandsVector):
2462
2463 2015-01-18  Dean Jackson  <dino@apple.com>
2464
2465         Out of bounds write in canvas.toDataURL
2466         https://bugs.webkit.org/show_bug.cgi?id=140594
2467         <rdar://problem/19449135>
2468
2469         Reviewed by Alexey Proskuryakov.
2470
2471         In the case where we have a canvas object that does
2472         not have premultiplied alpha (an option you can select
2473         when using WebGL) we have to multiply out the alpha when
2474         converting to JPEG via toDataURL.
2475
2476         For this we created a buffer, but were not accurately
2477         resizing it before flattening the alpha.
2478
2479         Test: fast/canvas/webgl/toDataURL-unpremultipliedAlpha.html
2480
2481         * platform/graphics/cg/ImageBufferCG.cpp:
2482         (WebCore::ImageDataToDataURL): Call resize once we've
2483         determined we have enough space.
2484
2485 2015-01-17  Sam Weinig  <sam@webkit.org>
2486
2487         Add initial experimental user content filtering API
2488         https://bugs.webkit.org/show_bug.cgi?id=140584
2489
2490         Reviewed by Benjamin Poulain.
2491
2492         Change content extensions to be managed through the UserContentController.
2493
2494         * WebCore.exp.in:
2495         Update exports.
2496
2497         * WebCore.xcodeproj/project.pbxproj:
2498         Update for removed files.
2499
2500         * contentextensions/ContentExtensionsBackend.cpp:
2501         (WebCore::ContentExtensions::ContentExtensionsBackend::removeAllRuleLists):
2502         (WebCore::ContentExtensions::ContentExtensionsBackend::sharedInstance): Deleted.
2503         * contentextensions/ContentExtensionsBackend.h:
2504         Remove concept of a shared instance and add a removeAllRuleLists() function.
2505         
2506         * contentextensions/ContentExtensionsInterface.cpp: Removed.
2507         * contentextensions/ContentExtensionsInterface.h: Removed.
2508         Since there is no shared instance anymore, checking if a URL should be blocked
2509         now has to go directly to the backend.
2510         
2511         * contentextensions/ContentExtensionsManager.cpp:
2512         (WebCore::ContentExtensions::ExtensionsManager::createRuleList):
2513         (WebCore::ContentExtensions::ExtensionsManager::loadExtension): Deleted.
2514         * contentextensions/ContentExtensionsManager.h:
2515         Update interface to accommodate the lack of a shared instance. Now, all this
2516         file does is take a serialized rule list and outputs the Vector of ContentExtensionRules
2517
2518         * loader/cache/CachedResourceLoader.cpp:
2519         (WebCore::CachedResourceLoader::requestResource):
2520         Check with the UserContentController to see if the URL should be blocked.
2521
2522         * page/UserContentController.cpp:
2523         (WebCore::UserContentController::addUserContentFilter):
2524         (WebCore::UserContentController::removeAllUserContentFilters):
2525         (WebCore::UserContentController::contentFilterBlocksURL):
2526         * page/UserContentController.h:
2527         Add single point of interaction for both the WebKit level to add and remove
2528         content filters and WebCore to check to see if URLs should be blocked.
2529
2530 2015-01-18  Darin Adler  <darin@apple.com>
2531
2532         REGRESSION (r125251): wrapper lifetimes of SVGElementInstance are incorrect
2533         https://bugs.webkit.org/show_bug.cgi?id=132148
2534
2535         Reviewed by Anders Carlsson.
2536
2537         Test: svg/custom/use-instanceRoot-event-listeners.xhtml
2538
2539         * bindings/js/JSDOMWindowCustom.cpp:
2540         (WebCore::JSDOMWindow::addEventListener): Updated for the new return type
2541         of JSListener::create. For the event type, use JSString::toAtomicString instead of
2542         calling JSString::value and then converting to an AtomicString.
2543         (WebCore::JSDOMWindow::removeEventListener): Same changes as for addEventListener.
2544
2545         * bindings/js/JSEventListener.cpp:
2546         (WebCore::forwardsEventListeners): Added. Helper to detect the special case needed
2547         for SVGElementInstance. In the future, for better encapsulation, we could use virtual
2548         functions, but for now hard coding this single class seems fine.
2549         (WebCore::correspondingElementWrapper): Added. For use if forwardsEventListeners
2550         returns true, to find out where event listeners will be forwarded.
2551         (WebCore::createJSEventListenerForAttribute): Added. Replaces the old function
2552         createJSAttributeEventListener, for SVGElementInstance attributes only.
2553         (WebCore::createJSEventListenerForAdd): Added. Helper function to avoid repeated
2554         generated code in the addElementListener bindings other than the DOMWindow one.
2555
2556         * bindings/js/JSEventListener.h:
2557         (WebCore::JSEventListener::create): Changed to return a Ref instead of a PassRefPtr.
2558         (WebCore::createJSEventListenerForAttribute): Renamed from createJSAttributeEventListener,
2559         changed to return a RefPtr instead of a PassRefPtr and to take references rather than
2560         pointers for non-null things.
2561         (WebCore::createJSEventListenerForRemove): Added. Small wrapper that calls
2562         createJSEventListenerForAdd since they are currently identical.
2563
2564         * bindings/scripts/CodeGeneratorJS.pm:
2565         (GenerateAttributeEventListenerCall): Removed the special case for JSSVGElementInstance
2566         and updated to call the new createJSEventListenerForAttribute. The special case for
2567         SVGElementInstance is now in JSEventListener.h/cpp, which is nicer since we prefer to
2568         keep the generated code simpler if possible.
2569         (GenerateEventListenerCall): Removed the special case for JSSVGElementInstance. This
2570         has been dead code since the explicit definition of add/removeEventListener was removed
2571         from SVGElementInstance.idl, and was also a problem if someone were to use the
2572         addEventListener function from EventTarget on an SVGElementInstance object. The function
2573         needs to be generic at runtime. Use toAtomicString as in JSDOMWindow::addEventListener above.
2574         Call the two new functions, createJSEventListenerForAdd and createJSEventListenerForRemove.
2575         Those new functions properly handle SVGElementInstance.
2576         (GenerateImplementation): Don't pass the class name to GenerateAttributeEventListenerCall
2577         or GenerateEventListenerCall any more.
2578         (GenerateConstructorDefinition): Use JSString::toAtomicString instead of calling
2579         JSString::value and then converting to AtomicString.
2580
2581 2015-01-17  Brian J. Burg  <burg@cs.washington.edu>
2582
2583         Web Inspector: highlight data for overlay should use protocol type builders
2584         https://bugs.webkit.org/show_bug.cgi?id=129441
2585
2586         Reviewed by Timothy Hatcher.
2587
2588         As a first step towards cleaning up the inspector overlay, convert highlight
2589         data construction to use protocol type builders. It's now really obvious what
2590         data is being sent to the inspector overlay page.
2591
2592         This change paves the way towards using inspector protocol commands and events
2593         if we want to support more interactive functionality in the inspector overlay.
2594
2595         This patch makes a few style cleanups, such as standardizing variable names,
2596         using default member initializers, passing by reference, and fixing casts.
2597
2598         No new tests, no behavior changed.
2599
2600         * WebCore.exp.in:
2601         * inspector/InspectorController.cpp:
2602         (WebCore::InspectorController::getHighlight):
2603         (WebCore::InspectorController::buildObjectForHighlightedNode):
2604         (WebCore::InspectorController::inspect): Deleted.
2605         * inspector/InspectorController.h:
2606         * inspector/InspectorOverlay.cpp:
2607         (WebCore::buildRendererHighlight):
2608         (WebCore::buildNodeHighlight):
2609         (WebCore::buildQuadHighlight):
2610         (WebCore::InspectorOverlay::InspectorOverlay):
2611         (WebCore::InspectorOverlay::getHighlight):
2612         (WebCore::buildObjectForPoint):
2613         (WebCore::buildObjectForRect):
2614         (WebCore::buildArrayForQuad):
2615         (WebCore::buildObjectForHighlight):
2616         (WebCore::buildObjectForRegion):
2617         (WebCore::buildObjectForFlowRegions):
2618         (WebCore::buildObjectForSize):
2619         (WebCore::buildQuadObjectForCSSRegionContentClip):
2620         Simplify how the clipping area is encoded. It's now 'regionClippingArea'
2621         stored on a FragmentHighlightData instance.
2622
2623         (WebCore::InspectorOverlay::updatePaintRectsTimerFired):
2624         (WebCore::InspectorOverlay::drawPaintRects):
2625         (WebCore::buildArrayForRendererFragments):
2626         (WebCore::appendPathCommandAndPoints):
2627         (WebCore::appendPathSegment):
2628         (WebCore::buildObjectForShapeOutside):
2629         (WebCore::buildObjectForElementData):
2630         (WebCore::InspectorOverlay::buildObjectForHighlightedNode):
2631         (WebCore::InspectorOverlay::drawNodeHighlight):
2632         (WebCore::InspectorOverlay::drawQuadHighlight):
2633         (WebCore::InspectorOverlay::reset):
2634         (WebCore::buildObjectForRegionHighlight): Deleted.
2635         (WebCore::buildObjectForCSSRegionsHighlight): Deleted.
2636         (WebCore::buildObjectForCSSRegionContentClip): Deleted.
2637         (WebCore::buildObjectForRendererFragments): Deleted.
2638         (WebCore::buildObjectForElementInfo): Deleted.
2639         * inspector/InspectorOverlay.h:
2640         (WebCore::Highlight::Highlight):
2641         * inspector/InspectorOverlayPage.js:
2642         (_createElementTitle):
2643         (_drawElementTitle):
2644         (_drawFragmentHighlight):
2645         (drawNodeHighlight):
2646         * testing/Internals.cpp:
2647         (WebCore::Internals::inspectorHighlightRects):
2648         (WebCore::Internals::inspectorHighlightObject):
2649
2650 2015-01-17  Myles C. Maxfield  <mmaxfield@apple.com>
2651
2652         [SVG -> OTF Converter] Crashes when SVG font is invalid
2653         https://bugs.webkit.org/show_bug.cgi?id=140378
2654
2655         Reviewed by Antti Koivisto.
2656
2657         Because CachedSVGFonts are cached, they have to be able to be used
2658         in subsequent documents regardless how the first document left it.
2659
2660         Tests: fast/css/font-face-svg-decoding-error.html
2661                svg/custom/svg-fonts-in-html.html
2662                svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures.html
2663
2664         * loader/cache/CachedFont.cpp:
2665         (WebCore::CachedFont::ensureCustomFontData):
2666         * loader/cache/CachedFont.h:
2667         * loader/cache/CachedSVGFont.cpp:
2668         (WebCore::CachedSVGFont::getFontData):
2669         (WebCore::CachedSVGFont::ensureCustomFontData):
2670         (WebCore::CachedSVGFont::maybeInitializeExternalSVGFontElement):
2671         * loader/cache/CachedSVGFont.h:
2672
2673 2015-01-17  Chris Dumez  <cdumez@apple.com>
2674
2675         Converting time, angle and frequency units in CSS calc() function
2676         https://bugs.webkit.org/show_bug.cgi?id=138356
2677
2678         Reviewed by Darin Adler.
2679
2680         Update CSSPrimitiveValue::primitiveType() to actually query the
2681         primitiveType of the CSSCalcValue instead of assuming a given
2682         type based on its category (e.g. If category is CalcTime, then
2683         assume type is CSS_MS, even though it would be CSS_S as well).
2684
2685         This would like to calculation errors such as:
2686         calc(4s + 1s) -> 5ms
2687
2688         Because we would assume the unit is CSS_MS without actually
2689         checking.
2690
2691         This patch is inspired by the following Blink revision
2692         by <rhodovan.u-szeged@partner.samsung.com> and initial WebKit
2693         patch from <tmeszaros.u-szeged@partner.samsung.com>:
2694         https://src.chromium.org/viewvc/blink?view=rev&revision=179101
2695
2696         Test: fast/css/calc-with-angle-time-frequency.html
2697
2698         * css/CSSCalculationValue.h:
2699         (WebCore::CSSCalcValue::primitiveType):
2700         * css/CSSPrimitiveValue.cpp:
2701         (WebCore::CSSPrimitiveValue::primitiveType):
2702
2703 2015-01-17  Chris Dumez  <cdumez@apple.com>
2704
2705         Generate shorthandForProperty() implementation from CSSPropertyNames.in
2706         https://bugs.webkit.org/show_bug.cgi?id=140556
2707
2708         Reviewed by Darin Adler.
2709
2710         Generate shorthandForProperty() implementation from CSSPropertyNames.in.
2711         This is just a big switch() statement calling the right
2712         StylePropertyShorthand factory function for a given CSSPropertyID.
2713
2714         * css/StylePropertyShorthand.cpp:
2715         (WebCore::shorthandForProperty): Deleted.
2716         * css/StylePropertyShorthand.h:
2717         * css/makeprop.pl:
2718
2719 2015-01-16  Brent Fulgham  <bfulgham@apple.com>
2720
2721         [Mac] Correct infinite loop in Wheel Handler code in EventHandlerMac
2722         https://bugs.webkit.org/show_bug.cgi?id=140564
2723         <rdar://problem/19386426.
2724
2725         Reviewed by Dean Jackson.
2726
2727         * page/mac/EventHandlerMac.mm:
2728         (WebCore::latchingIsLockedToAncestorOfThisFrame): Put missing assignment
2729         back into the loop!
2730
2731 2015-01-16  Zalan Bujtas  <zalan@apple.com>
2732
2733         When border-radius is present, inset/outset/groove/ridge border color changes.
2734         https://bugs.webkit.org/show_bug.cgi?id=140551
2735
2736         Reviewed by Simon Fraser.
2737
2738         This patch applies the same color lighten/darken adjustment on the radius borders
2739         that we use for non-radius border.
2740
2741         Test: fast/borders/wrong-border-color-when-radius-is-present.html
2742
2743         * rendering/RenderBoxModelObject.cpp:
2744         (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
2745         * rendering/RenderObject.cpp:
2746         (WebCore::RenderObject::calculateBorderStyleColor):
2747         * rendering/RenderObject.h:
2748
2749 2015-01-16  Pratik Solanki  <psolanki@apple.com>
2750
2751         Web pages fail to load using public iOS WebKit; ASSERT(!isMainThread()) in
2752         -[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]
2753         https://bugs.webkit.org/show_bug.cgi?id=140470
2754
2755         Reviewed by Alexey Proskuryakov.
2756
2757         Fixes an issue where a web page would fail to load in iOS WebKit2 built with the public iOS SDK
2758         because NSURLConnection callbacks were always being scheduled on the main thread.
2759
2760         Currently we always schedule NSURLConnection callbacks to occur on the WebThread or the main
2761         thread depending on whether the WebThread was started. In iOS WebKit2, the callbacks were
2762         always being scheduled on the main thread regardless of whether we were using the NetworkProcess
2763         (since the WebThread is only started when using WebKit1). This led to an assertion failure.
2764         Instead we want to schedule callbacks to an NSOperationsQueue queue when using WebKit2 with the
2765         NetworkProcess (i.e. ResourceHandleClient::usesAsyncCallbacks() is true), on the main thread when
2766         using WebKit2 without the NetworkProcess and on the WebThread when using WebKit1.
2767
2768         * platform/network/mac/ResourceHandleMac.mm:
2769         (WebCore::operationQueueForAsyncClients): Remove PLATFORM(IOS)-guards as we want to make use
2770         of this code for iOS WebKit2 with the NetworkProcess.
2771         (WebCore::ResourceHandle::start): Modified to use the existing Mac code path to conditionally
2772         schedule NSURLConnection callbacks to an operation queue when ResourceHandleClient::usesAsyncCallbacks()
2773         is true. Otherwise, schedule the callbacks on the run loop returned by WebThreadNSRunLoop(),
2774         which is either the WebThread or the main thread run loop when using WebKit1 and WebKit2 without
2775         the NetworkProcess, respectively.
2776
2777 2015-01-16  Brian J. Burg  <burg@cs.washington.edu>
2778
2779         Web Replay: purge remaining PassRefPtr uses and minor cleanup
2780         https://bugs.webkit.org/show_bug.cgi?id=140456
2781
2782         Reviewed by Andreas Kling.
2783
2784         Get rid of PassRefPtr. Introduce default initializers where it makes sense. Change
2785         uses of ASSERT to ASSERT_ARG when the assert is a precondition on an argument.
2786
2787         Remove mistaken uses of AtomicString that were not removed as part of r174113.
2788
2789         No new tests, no behavior changed.
2790
2791         * inspector/InspectorReplayAgent.cpp:
2792         (WebCore::SerializeInputToJSONFunctor::operator()):
2793         (WebCore::SerializeInputToJSONFunctor::returnValue):
2794         (WebCore::InspectorReplayAgent::sessionCreated):
2795         (WebCore::InspectorReplayAgent::sessionModified):
2796         (WebCore::InspectorReplayAgent::sessionLoaded):
2797         (WebCore::InspectorReplayAgent::segmentCreated):
2798         (WebCore::InspectorReplayAgent::segmentCompleted):
2799         (WebCore::InspectorReplayAgent::segmentLoaded):
2800         (WebCore::InspectorReplayAgent::switchSession):
2801         (WebCore::InspectorReplayAgent::insertSessionSegment):
2802         (WebCore::InspectorReplayAgent::removeSessionSegment):
2803         (WebCore::InspectorReplayAgent::findSession):
2804         (WebCore::InspectorReplayAgent::findSegment):
2805         * inspector/InspectorReplayAgent.h:
2806         * replay/CapturingInputCursor.cpp:
2807         (WebCore::CapturingInputCursor::CapturingInputCursor):
2808         (WebCore::CapturingInputCursor::create):
2809         (WebCore::CapturingInputCursor::loadInput):
2810         * replay/CapturingInputCursor.h:
2811         * replay/EventLoopInputDispatcher.cpp:
2812         (WebCore::EventLoopInputDispatcher::EventLoopInputDispatcher):
2813         * replay/EventLoopInputDispatcher.h:
2814         * replay/FunctorInputCursor.h:
2815         (WebCore::FunctorInputCursor::FunctorInputCursor):
2816         (WebCore::FunctorInputCursor::loadInput):
2817         * replay/ReplayController.cpp:
2818         (WebCore::ReplayController::ReplayController):
2819         (WebCore::ReplayController::setForceDeterministicSettings):
2820         (WebCore::ReplayController::setSessionState):
2821         (WebCore::ReplayController::setSegmentState):
2822         (WebCore::ReplayController::switchSession):
2823         (WebCore::ReplayController::createSegment):
2824         (WebCore::ReplayController::completeSegment):
2825         (WebCore::ReplayController::loadSegmentAtIndex):
2826         (WebCore::ReplayController::unloadSegment):
2827         (WebCore::ReplayController::frameNavigated):
2828         (WebCore::ReplayController::loadedSession):
2829         (WebCore::ReplayController::loadedSegment):
2830         (WebCore::ReplayController::activeInputCursor):
2831         (WebCore::ReplayController::dispatcher):
2832         * replay/ReplayController.h:
2833         * replay/ReplaySession.cpp:
2834         (WebCore::ReplaySession::create):
2835         (WebCore::ReplaySession::at):
2836         (WebCore::ReplaySession::appendSegment):
2837         (WebCore::ReplaySession::insertSegment):
2838         (WebCore::ReplaySession::removeSegment):
2839         * replay/ReplaySession.h:
2840         * replay/ReplaySessionSegment.cpp:
2841         (WebCore::ReplaySessionSegment::create):
2842         (WebCore::ReplaySessionSegment::ReplaySessionSegment):
2843         * replay/ReplaySessionSegment.h:
2844         * replay/ReplayingInputCursor.cpp:
2845         (WebCore::ReplayingInputCursor::ReplayingInputCursor):
2846         (WebCore::ReplayingInputCursor::create):
2847         (WebCore::ReplayingInputCursor::loadInput):
2848         * replay/ReplayingInputCursor.h:
2849         * replay/SegmentedInputStorage.cpp:
2850         (WebCore::SegmentedInputStorage::store):
2851         (WebCore::SegmentedInputStorage::queue):
2852         (WebCore::SegmentedInputStorage::SegmentedInputStorage): Deleted.
2853         * replay/SegmentedInputStorage.h:
2854
2855 2015-01-16  Andreas Kling  <akling@apple.com>
2856
2857         Remove assertion that Page::m_editorClient is non-null.
2858
2859         Unreviewed debug build fix. (It's a reference, it won't be null.)
2860
2861         * page/Page.cpp:
2862         (WebCore::Page::Page):
2863
2864 2015-01-16  Andreas Kling  <akling@apple.com>
2865
2866         Page::editorClient() should return a reference.
2867         <https://webkit.org/b/140552>
2868
2869         Reviewed by Chris Dumez.
2870
2871         Page always has an EditorClient, so make editorClient() return a reference.
2872
2873         * editing/AlternativeTextController.cpp:
2874         (WebCore::AlternativeTextController::editorClient):
2875         (WebCore::AlternativeTextController::textChecker):
2876         * editing/Editor.cpp:
2877         (WebCore::Editor::client):
2878         * editing/SpellChecker.cpp:
2879         (WebCore::SpellChecker::client):
2880         * page/FocusController.cpp:
2881         (WebCore::FocusController::setFocusedElement):
2882         * page/Page.cpp:
2883         (WebCore::Page::Page):
2884         (WebCore::Page::~Page):
2885         (WebCore::Page::clearUndoRedoOperations):
2886         * page/Page.h:
2887         (WebCore::Page::editorClient):
2888         * page/scrolling/AsyncScrollingCoordinator.cpp:
2889         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
2890
2891 2015-01-16  Benjamin Poulain  <benjamin@webkit.org>
2892
2893         Make URL filters case-insensitive by default
2894         https://bugs.webkit.org/show_bug.cgi?id=140531
2895
2896         Reviewed by Andreas Kling.
2897
2898         Safari's filters were case-insensitive. Adopt that convention in the engine,
2899         and add a flag in case someone ever need a case-sensitive filter.
2900
2901         * contentextensions/ContentExtensionRule.h:
2902         * contentextensions/ContentExtensionsBackend.cpp:
2903         (WebCore::ContentExtensions::ContentExtensionsBackend::setRuleList):
2904         * contentextensions/ContentExtensionsManager.cpp:
2905         (WebCore::ContentExtensions::ExtensionsManager::loadTrigger):
2906         * contentextensions/URLFilterParser.cpp:
2907         (WebCore::ContentExtensions::trivialAtomFromASCIICharacter):
2908         (WebCore::ContentExtensions::GraphBuilder::GraphBuilder):
2909         (WebCore::ContentExtensions::GraphBuilder::atomPatternCharacter):
2910         (WebCore::ContentExtensions::GraphBuilder::generateTransition):
2911         (WebCore::ContentExtensions::URLFilterParser::addPattern):
2912         * contentextensions/URLFilterParser.h:
2913
2914 2015-01-16  Benjamin Poulain  <bpoulain@apple.com>
2915
2916         Add the alternative syntax for CSS Selector's descendant combinator (">>")
2917         https://bugs.webkit.org/show_bug.cgi?id=140525
2918
2919         Reviewed by Antti Koivisto.
2920
2921         The latest Selector spec introduces the combinator ">>" as an alias for the descendant
2922         relation: http://dev.w3.org/csswg/selectors-4/#descendant-combinators
2923
2924         This patch implements that combinator as an alias of the existing one. For CSSOM's selector
2925         serialization, I use one bit of CSSSelector to store if that alternative syntax was used.
2926
2927         Tests: fast/css/descendant-combinator-doubled-child-syntax-styling.html
2928                fast/css/parsing-css-descendant-combinator-doubled-child-syntax.html
2929                fast/selectors/element-closest-descendant-combinator-doubled-child-syntax.html
2930                fast/selectors/element-matches-descendant-combinator-doubled-child-syntax.html
2931                fast/selectors/querySelector-descendant-combinator-doubled-child-syntax.html
2932
2933         * css/CSSGrammar.y.in:
2934         * css/CSSParserValues.cpp:
2935         (WebCore::CSSParserSelector::appendTagHistory):
2936         * css/CSSParserValues.h:
2937         (WebCore::CSSParserSelector::setDescendantUseDoubleChildSyntax):
2938         * css/CSSSelector.cpp:
2939         (WebCore::CSSSelector::selectorText):
2940         * css/CSSSelector.h:
2941         (WebCore::CSSSelector::setDescendantUseDoubleChildSyntax):
2942         (WebCore::CSSSelector::CSSSelector):
2943
2944 2015-01-16  Chris Dumez  <cdumez@apple.com>
2945
2946         Generate StylePropertyShorthand.* from CSSPropertyNames.in
2947         https://bugs.webkit.org/show_bug.cgi?id=140501
2948
2949         Reviewed by Darin Adler.
2950
2951         Add initial support for having makeprop.pl generate most of
2952         StylePropertyShorthand.* from CSSPropertyNames.in.
2953
2954         This patch replaces [Shorthand] parameter in CSSPropertyNames.in by a
2955         more descriptive [Longhands=property1|property2|...] parameter. With
2956         this information, makeprop.pl is now able to generate the
2957         StylePropertyShorthand factories for all CSS shorthand properties
2958         in a new StylePropertyShorthandFunctions.h header.
2959
2960         The switches in StylePropertyShorthand.cpp could also be generated
2961         but this will be taken care of in follow-up patches to reduce patch
2962         size.
2963
2964         * CMakeLists.txt:
2965         * DerivedSources.make:
2966         * WebCore.vcxproj/WebCore.vcxproj:
2967         * WebCore.vcxproj/WebCore.vcxproj.filters:
2968         * WebCore.xcodeproj/project.pbxproj:
2969         * css/CSSComputedStyleDeclaration.cpp:
2970         (WebCore::ComputedStyleExtractor::propertyValue):
2971         * css/CSSParser.cpp:
2972         (WebCore::CSSParser::parseValue):
2973         * css/CSSPropertyNames.in:
2974         * css/StyleProperties.cpp:
2975         (WebCore::StyleProperties::getPropertyValue):
2976         * css/StylePropertyShorthand.cpp:
2977         (WebCore::shorthandForProperty):
2978         (WebCore::matchingShorthandsForLonghand):
2979         (WebCore::backgroundShorthand): Deleted.
2980         (WebCore::backgroundPositionShorthand): Deleted.
2981         (WebCore::backgroundRepeatShorthand): Deleted.
2982         (WebCore::borderShorthand): Deleted.
2983         (WebCore::borderBottomShorthand): Deleted.
2984         (WebCore::borderColorShorthand): Deleted.
2985         (WebCore::borderImageShorthand): Deleted.
2986         (WebCore::borderLeftShorthand): Deleted.
2987         (WebCore::borderRadiusShorthand): Deleted.
2988         (WebCore::webkitBorderRadiusShorthand): Deleted.
2989         (WebCore::borderRightShorthand): Deleted.
2990         (WebCore::borderSpacingShorthand): Deleted.
2991         (WebCore::borderStyleShorthand): Deleted.
2992         (WebCore::borderTopShorthand): Deleted.
2993         (WebCore::borderWidthShorthand): Deleted.
2994         (WebCore::listStyleShorthand): Deleted.
2995         (WebCore::marginShorthand): Deleted.
2996         (WebCore::markerShorthand): Deleted.
2997         (WebCore::outlineShorthand): Deleted.
2998         (WebCore::overflowShorthand): Deleted.
2999         (WebCore::paddingShorthand): Deleted.
3000         (WebCore::transitionShorthand): Deleted.
3001         (WebCore::animationShorthand): Deleted.
3002         (WebCore::webkitAnimationShorthand): Deleted.
3003         (WebCore::webkitBorderAfterShorthand): Deleted.
3004         (WebCore::webkitBorderBeforeShorthand): Deleted.
3005         (WebCore::webkitBorderEndShorthand): Deleted.
3006         (WebCore::webkitBorderStartShorthand): Deleted.
3007         (WebCore::webkitColumnsShorthand): Deleted.
3008         (WebCore::webkitColumnRuleShorthand): Deleted.
3009         (WebCore::flexFlowShorthand): Deleted.
3010         (WebCore::flexShorthand): Deleted.
3011         (WebCore::webkitMarginCollapseShorthand): Deleted.
3012         (WebCore::webkitGridShorthand): Deleted.
3013         (WebCore::webkitGridTemplateShorthand): Deleted.
3014         (WebCore::webkitGridAreaShorthand): Deleted.
3015         (WebCore::webkitGridColumnShorthand): Deleted.
3016         (WebCore::webkitGridRowShorthand): Deleted.
3017         (WebCore::webkitMarqueeShorthand): Deleted.
3018         (WebCore::webkitMaskShorthand): Deleted.
3019         (WebCore::webkitMaskPositionShorthand): Deleted.
3020         (WebCore::webkitMaskRepeatShorthand): Deleted.
3021         (WebCore::webkitTextDecorationShorthand): Deleted.
3022         (WebCore::webkitTextEmphasisShorthand): Deleted.
3023         (WebCore::webkitTextStrokeShorthand): Deleted.
3024         (WebCore::webkitTransitionShorthand): Deleted.
3025         (WebCore::webkitPerspectiveOriginShorthand): Deleted.
3026         (WebCore::webkitTransformOriginShorthand): Deleted.
3027         * css/StylePropertyShorthand.h:
3028         * css/makeprop.pl:
3029
3030 2015-01-16  Commit Queue  <commit-queue@webkit.org>
3031
3032         Unreviewed, rolling out r178532.
3033         https://bugs.webkit.org/show_bug.cgi?id=140548
3034
3035         Broke fast/css/parsing-css-lang.html on some bots (Requested
3036         by ap on #webkit).
3037
3038         Reverted changeset:
3039
3040         "Canonicalization of :lang() should preserve the :lang()'s
3041         arguments representations"
3042         https://bugs.webkit.org/show_bug.cgi?id=139928
3043         http://trac.webkit.org/changeset/178532
3044
3045 2015-01-16  Commit Queue  <commit-queue@webkit.org>
3046
3047         Unreviewed, rolling out r178577.
3048         https://bugs.webkit.org/show_bug.cgi?id=140546
3049
3050         Broke fast/css-grid-layout/grid-content-sized-columns-
3051         resolution.html (Requested by ap on #webkit).
3052
3053         Reverted changeset:
3054
3055         "[CSS Grid Layout] Tracks shrink sometimes with indefinite
3056         remaining space"
3057         https://bugs.webkit.org/show_bug.cgi?id=139059
3058         http://trac.webkit.org/changeset/178577
3059
3060 2015-01-16  Andreas Kling  <akling@apple.com>
3061
3062         Some improvements to RuleSet shrinking.
3063         <https://webkit.org/b/140534>
3064
3065         Reviewed by Antti Koivisto.
3066
3067         Give an inline capacity (1) to the RuleData Vectors in RuleSet.
3068         The vast majority of Vectors have only a single entry, and this
3069         avoids having to allocate a separate Vector backing store for them.
3070
3071         Also make sure to shrink some Vectors that we weren't already,
3072         like those in RuleFeatureSet.
3073
3074         * css/ElementRuleCollector.cpp:
3075         (WebCore::ElementRuleCollector::collectMatchingRulesForList):
3076         * css/ElementRuleCollector.h:
3077         * css/RuleFeature.cpp:
3078         (WebCore::RuleFeatureSet::shrinkToFit):
3079         * css/RuleFeature.h:
3080         * css/RuleSet.cpp:
3081         (WebCore::RuleSet::addToRuleSet):
3082         (WebCore::rulesCountForName):
3083         (WebCore::shrinkMapVectorsToFit):
3084         (WebCore::RuleSet::shrinkToFit):
3085         * css/RuleSet.h:
3086         (WebCore::RuleSet::idRules):
3087         (WebCore::RuleSet::classRules):
3088         (WebCore::RuleSet::tagRules):
3089         (WebCore::RuleSet::shadowPseudoElementRules):
3090         (WebCore::RuleSet::linkPseudoClassRules):
3091         (WebCore::RuleSet::cuePseudoRules):
3092         (WebCore::RuleSet::focusPseudoClassRules):
3093         (WebCore::RuleSet::universalRules):
3094
3095 2015-01-16  Antti Koivisto  <antti@apple.com>
3096
3097         Correct naming for FontCascade implementation files
3098         https://bugs.webkit.org/show_bug.cgi?id=140544
3099
3100         Reviewed by Zalan Bujtas.
3101
3102         Also reduce their number.
3103
3104         Merge FontFastPath.cpp into FontCascade.cpp
3105         Merge FontMac.mm and FontComplexTextMac.cpp into FontCascadeCocoa.mm
3106
3107         * CMakeLists.txt:
3108         * WebCore.vcxproj/WebCore.vcxproj:
3109         * WebCore.xcodeproj/project.pbxproj:
3110         * platform/graphics/FontCascade.cpp:
3111         (WebCore::FontCascade::getEmphasisMarkGlyphData):
3112         (WebCore::FontCascade::emphasisMarkAscent):
3113         (WebCore::FontCascade::emphasisMarkDescent):
3114         (WebCore::FontCascade::emphasisMarkHeight):
3115         (WebCore::FontCascade::getGlyphsAndAdvancesForSimpleText):
3116         (WebCore::FontCascade::drawSimpleText):
3117         (WebCore::FontCascade::drawEmphasisMarksForSimpleText):
3118         (WebCore::FontCascade::drawGlyphBuffer):
3119         (WebCore::offsetToMiddleOfGlyph):
3120         (WebCore::offsetToMiddleOfGlyphAtIndex):
3121         (WebCore::FontCascade::drawEmphasisMarks):
3122         (WebCore::FontCascade::floatWidthForSimpleText):
3123         (WebCore::FontCascade::adjustSelectionRectForSimpleText):
3124         (WebCore::FontCascade::offsetForPositionForSimpleText):
3125         * platform/graphics/FontFastPath.cpp: Removed.
3126         * platform/graphics/cocoa/FontCascadeCocoa.mm: Copied from Source/WebCore/platform/graphics/mac/FontMac.mm.
3127         (WebCore::FontCascade::drawGlyphs):
3128         (WebCore::FontCascade::adjustSelectionRectForComplexText):
3129         (WebCore::FontCascade::getGlyphsAndAdvancesForComplexText):
3130         (WebCore::FontCascade::drawComplexText):
3131         (WebCore::FontCascade::drawEmphasisMarksForComplexText):
3132         (WebCore::FontCascade::floatWidthForComplexText):
3133         (WebCore::FontCascade::offsetForPositionForComplexText):
3134         (WebCore::FontCascade::fontDataForCombiningCharacterSequence):
3135         * platform/graphics/mac/FontComplexTextMac.cpp: Removed.
3136         * platform/graphics/mac/FontMac.mm: Removed.
3137
3138 2014-11-26  Sergio Villar Senin  <svillar@igalia.com>
3139
3140         [CSS Grid Layout] Tracks shrink sometimes with indefinite remaining space
3141         https://bugs.webkit.org/show_bug.cgi?id=139059
3142
3143         Reviewed by David Hyatt.
3144
3145         Test: fast/css-grid-layout/grid-grow-tracks-to-their-max.html
3146
3147         * rendering/RenderGrid.cpp:
3148         (WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
3149
3150 2015-01-15  Csaba Osztrogonác  <ossy@webkit.org>
3151
3152         Remove ENABLE(SQL_DATABASE) guards
3153         https://bugs.webkit.org/show_bug.cgi?id=140434
3154
3155         Reviewed by Darin Adler.
3156
3157         * Configurations/FeatureDefines.xcconfig:
3158         * Modules/webdatabase/AbstractDatabaseServer.h:
3159         * Modules/webdatabase/ChangeVersionData.h:
3160         * Modules/webdatabase/ChangeVersionWrapper.cpp:
3161         * Modules/webdatabase/ChangeVersionWrapper.h:
3162         * Modules/webdatabase/DOMWindowWebDatabase.cpp:
3163         * Modules/webdatabase/DOMWindowWebDatabase.h:
3164         * Modules/webdatabase/DOMWindowWebDatabase.idl:
3165         * Modules/webdatabase/Database.cpp:
3166         * Modules/webdatabase/Database.h:
3167         * Modules/webdatabase/Database.idl:
3168         * Modules/webdatabase/DatabaseBackend.cpp:
3169         * Modules/webdatabase/DatabaseBackend.h:
3170         * Modules/webdatabase/DatabaseBackendBase.cpp:
3171         * Modules/webdatabase/DatabaseBackendBase.h:
3172         * Modules/webdatabase/DatabaseBasicTypes.h:
3173         * Modules/webdatabase/DatabaseCallback.h:
3174         * Modules/webdatabase/DatabaseCallback.idl:
3175         * Modules/webdatabase/DatabaseContext.cpp:
3176         * Modules/webdatabase/DatabaseContext.h:
3177         * Modules/webdatabase/DatabaseDetails.h:
3178         * Modules/webdatabase/DatabaseError.h:
3179         * Modules/webdatabase/DatabaseManager.cpp:
3180         * Modules/webdatabase/DatabaseManager.h:
3181         * Modules/webdatabase/DatabaseManagerClient.h:
3182         * Modules/webdatabase/DatabaseServer.cpp:
3183         * Modules/webdatabase/DatabaseServer.h:
3184         * Modules/webdatabase/DatabaseTask.cpp:
3185         * Modules/webdatabase/DatabaseTask.h:
3186         * Modules/webdatabase/DatabaseThread.cpp:
3187         * Modules/webdatabase/DatabaseThread.h:
3188         * Modules/webdatabase/DatabaseTracker.cpp:
3189         * Modules/webdatabase/DatabaseTracker.h:
3190         * Modules/webdatabase/OriginLock.cpp:
3191         * Modules/webdatabase/OriginLock.h:
3192         * Modules/webdatabase/SQLCallbackWrapper.h:
3193         * Modules/webdatabase/SQLError.h:
3194         * Modules/webdatabase/SQLError.idl:
3195         * Modules/webdatabase/SQLException.cpp:
3196         * Modules/webdatabase/SQLException.h:
3197         * Modules/webdatabase/SQLException.idl:
3198         * Modules/webdatabase/SQLResultSet.cpp:
3199         * Modules/webdatabase/SQLResultSet.h:
3200         * Modules/webdatabase/SQLResultSet.idl:
3201         * Modules/webdatabase/SQLResultSetRowList.cpp:
3202         * Modules/webdatabase/SQLResultSetRowList.h:
3203         * Modules/webdatabase/SQLResultSetRowList.idl:
3204         * Modules/webdatabase/SQLStatement.cpp:
3205         * Modules/webdatabase/SQLStatement.h:
3206         * Modules/webdatabase/SQLStatementBackend.cpp:
3207         * Modules/webdatabase/SQLStatementBackend.h:
3208         * Modules/webdatabase/SQLStatementCallback.h:
3209         * Modules/webdatabase/SQLStatementCallback.idl:
3210         * Modules/webdatabase/SQLStatementErrorCallback.h:
3211         * Modules/webdatabase/SQLStatementErrorCallback.idl:
3212         * Modules/webdatabase/SQLTransaction.cpp:
3213         * Modules/webdatabase/SQLTransaction.h:
3214         * Modules/webdatabase/SQLTransaction.idl:
3215         * Modules/webdatabase/SQLTransactionBackend.cpp:
3216         * Modules/webdatabase/SQLTransactionBackend.h:
3217         * Modules/webdatabase/SQLTransactionCallback.h:
3218         * Modules/webdatabase/SQLTransactionCallback.idl:
3219         * Modules/webdatabase/SQLTransactionClient.cpp:
3220         * Modules/webdatabase/SQLTransactionClient.h:
3221         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
3222         * Modules/webdatabase/SQLTransactionCoordinator.h:
3223         * Modules/webdatabase/SQLTransactionErrorCallback.h:
3224         * Modules/webdatabase/SQLTransactionErrorCallback.idl:
3225         * Modules/webdatabase/SQLTransactionState.h:
3226         * Modules/webdatabase/SQLTransactionStateMachine.cpp:
3227         * Modules/webdatabase/SQLTransactionStateMachine.h:
3228         * bindings/js/JSCommandLineAPIHostCustom.cpp:
3229         (WebCore::JSCommandLineAPIHost::databaseId):
3230         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
3231         * bindings/js/JSExceptionBase.cpp:
3232         (WebCore::toExceptionBase):
3233         * bindings/js/JSSQLResultSetRowListCustom.cpp:
3234         * bindings/js/JSSQLTransactionCustom.cpp:
3235         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
3236         (webkit_dom_test_callback_finalize):
3237         (webkit_dom_test_callback_constructor):
3238         (webkit_dom_test_callback_callback_with_no_param):
3239         (webkit_dom_test_callback_callback_with_array_param):
3240         (webkit_dom_test_callback_callback_with_serialized_script_value_param):
3241         (webkit_dom_test_callback_callback_with_non_bool_return_type):
3242         (webkit_dom_test_callback_callback_with_string_list):
3243         (webkit_dom_test_callback_callback_with_boolean):
3244         (webkit_dom_test_callback_callback_requires_this_to_pass):
3245         * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
3246         * bindings/scripts/test/JS/JSTestCallback.cpp:
3247         * bindings/scripts/test/JS/JSTestCallback.h:
3248         * bindings/scripts/test/ObjC/DOMTestCallback.mm:
3249         * bindings/scripts/test/TestCallback.idl:
3250         * dom/DOMExceptions.in:
3251         * dom/ScriptExecutionContext.cpp:
3252         (WebCore::ScriptExecutionContext::setDatabaseContext):
3253         * dom/ScriptExecutionContext.h:
3254         * history/PageCache.cpp:
3255         (WebCore::logCanCacheFrameDecision):
3256         (WebCore::PageCache::canCachePageContainingThisFrame):
3257         * inspector/CommandLineAPIHost.cpp:
3258         (WebCore::CommandLineAPIHost::CommandLineAPIHost):
3259         (WebCore::CommandLineAPIHost::disconnect):
3260         (WebCore::CommandLineAPIHost::databaseIdImpl):
3261         * inspector/CommandLineAPIHost.h:
3262         (WebCore::CommandLineAPIHost::init):
3263         * inspector/InspectorController.cpp:
3264         (WebCore::InspectorController::InspectorController):
3265         * inspector/InspectorDatabaseAgent.cpp:
3266         * inspector/InspectorDatabaseAgent.h:
3267         * inspector/InspectorDatabaseInstrumentation.h:
3268         (WebCore::InspectorInstrumentation::didOpenDatabase):
3269         * inspector/InspectorDatabaseResource.cpp:
3270         * inspector/InspectorDatabaseResource.h:
3271         * inspector/InspectorInstrumentation.cpp:
3272         (WebCore::InspectorInstrumentation::didCommitLoadImpl):
3273         (WebCore::InspectorInstrumentation::didOpenDatabaseImpl):
3274         * inspector/InspectorInstrumentation.h:
3275         * inspector/InstrumentingAgents.cpp:
3276         (WebCore::InstrumentingAgents::InstrumentingAgents):
3277         (WebCore::InstrumentingAgents::reset):
3278         * inspector/InstrumentingAgents.h:
3279         * inspector/WorkerInspectorController.cpp:
3280         (WebCore::WorkerInspectorController::WorkerInspectorController):
3281         * loader/EmptyClients.h:
3282         * loader/FrameLoader.cpp:
3283         (WebCore::FrameLoader::stopLoading):
3284         * page/ChromeClient.h:
3285         * platform/FeatureCounterKeys.h:
3286
3287 2015-01-15  Zalan Bujtas  <zalan@apple.com>
3288
3289         Element appears correctly but does not receive event with a large translation.
3290         https://bugs.webkit.org/show_bug.cgi?id=139815
3291
3292         Reviewed by Simon Fraser.
3293
3294         When the hit point gets translated beyond the min/max value of LayoutRect (infiniteRect()),
3295         we fail to find the corresponding layer.
3296         When there's no clipping on a layer, we use min/max values to represent infiniteness.
3297         However it does not work well across types. With IntPoint(hittest) we can address a point that's outside
3298         of LayoutRect's boundary(clipping).
3299         This patch addresses the immediate issue of not being able to hittest transformed layers properly. 
3300         Fixing the representation of infiniteness is tracked here: webkit.org/b/140533
3301
3302         Test: transforms/hittest-translated-content-off-to-infinity-and-back.html
3303
3304         * rendering/ClipRect.cpp:
3305         (WebCore::ClipRect::intersects):
3306
3307 2015-01-15  Myles C. Maxfield  <mmaxfield@apple.com>
3308
3309         tables/mozilla/bugs/bug10633.html is flakey on Yosemite
3310         https://bugs.webkit.org/show_bug.cgi?id=140487
3311
3312         Reviewed by Simon Fraser.
3313
3314         The workaround in https://bugs.webkit.org/show_bug.cgi?id=140253 works
3315         on both OSes.
3316
3317         * platform/graphics/mac/SimpleFontDataMac.mm:
3318         (WebCore::SimpleFontData::platformInit):
3319
3320 2015-01-15  Ryosuke Niwa  <rniwa@webkit.org>
3321
3322         Removing an HTML element spends a lot of time in adjustDirectionalityIfNeededAfterChildrenChanged
3323         https://bugs.webkit.org/show_bug.cgi?id=140523
3324         <rdar://problem/19464329>
3325
3326         Reviewed by Chris Dumez.
3327
3328         The bug was caused by adjustDirectionalityIfNeededAfterChildrenChanged always traversing children to
3329         unset selfOrAncestorHasDirAutoAttribute flag while removing a child element.
3330
3331         Fixed the bug by removing this code. This code was no-op prior to being refactored in r154957 since
3332         we only entered a for loop with the invariant "counter < childCountDelta" when "childCountDelta < 0".
3333
3334         See http://trac.webkit.org/changeset/154957/trunk/Source/WebCore/html/HTMLElement.cpp.
3335
3336         * html/HTMLElement.cpp:
3337         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
3338
3339 2015-01-15  Brent Fulgham  <bfulgham@apple.com>
3340
3341         RenderLayerCompositor: Strange comparison of opacity (float) to boolean.
3342         https://bugs.webkit.org/show_bug.cgi?id=140477.
3343
3344         Reviewed by Simon Fraser.
3345
3346         * rendering/RenderLayerCompositor.cpp:
3347         (WebCore::styleChangeRequiresLayerRebuild): Add a cast to make the meaning of this
3348         code clearer.
3349
3350 2015-01-15  Joseph Pecoraro  <pecoraro@apple.com>
3351
3352         Unreviewed, rolling out r178531.
3353
3354         Caused LayoutTest ASSERTs/CRASHs on Debug Yosemite build-bot.
3355
3356         Reverted changeset:
3357
3358         "Layers need to be already updated before we call adjustViewSize."
3359         https://bugs.webkit.org/show_bug.cgi?id=135514
3360         http://trac.webkit.org/changeset/178531
3361
3362         * page/FrameView.cpp:
3363         (WebCore::FrameView::layout):
3364         (WebCore::FrameView::updateCompositingLayersAfterScrolling):
3365         (WebCore::FrameView::paintContents):
3366         (WebCore::FrameView::shouldDeferScrollUpdateAfterContentSizeChange): Deleted.
3367         * page/FrameView.h:
3368         * platform/ScrollView.cpp:
3369         (WebCore::ScrollView::scrollTo):
3370         (WebCore::ScrollView::handleDeferredScrollUpdateAfterContentSizeChange): Deleted.
3371         * platform/ScrollView.h:
3372         (WebCore::ScrollView::shouldDeferScrollUpdateAfterContentSizeChange): Deleted.
3373
3374 2015-01-15  Chris Dumez  <cdumez@apple.com>
3375
3376         [WK2] Wire diagnostic logging messages through the UIProcess
3377         https://bugs.webkit.org/show_bug.cgi?id=140486
3378
3379         Reviewed by Sam Weinig.
3380
3381         Wire diagnostic logging messages through the UIProcess.
3382         Eventually, the corresponding bundle API should go away.
3383
3384         * WebCore.vcxproj/WebCore.vcxproj:
3385         * WebCore.vcxproj/WebCore.vcxproj.filters:
3386         Add page/DiagnosticLoggingResultType.h to Windows project.
3387
3388         * WebCore.xcodeproj/project.pbxproj:
3389         Add page/DiagnosticLoggingResultType.h to XCode project.
3390
3391         * html/HTMLMediaElement.cpp:
3392         * loader/EmptyClients.h:
3393         * loader/FrameLoader.cpp:
3394         * page/DiagnosticLoggingClient.h:
3395         * page/DiagnosticLoggingResultType.h: Copied from Source/WebCore/page/DiagnosticLoggingClient.h.
3396         Use new DiagnosticLoggingResultType enum instead of old
3397         DiagnosticLoggingClient::LogType one.
3398
3399 2015-01-15  Zalan Bujtas  <zalan@apple.com>
3400
3401         Reduce LayoutRect::infiniteRect() usage.
3402         https://bugs.webkit.org/show_bug.cgi?id=140511
3403
3404         Reviewed by Simon Fraser.
3405
3406         This is in preparation to get rid of LayoutRect/FloatRect::infiniteRect().
3407
3408         No change in functionality.
3409
3410         * platform/graphics/LayoutRect.h:
3411         (WebCore::LayoutRect::isInfinite):
3412         * rendering/ClipRect.h:
3413         (WebCore::ClipRect::reset):
3414         (WebCore::ClipRect::isEmpty):
3415         (WebCore::ClipRect::isInfinite):
3416         (WebCore::ClipRect::setRect): Deleted.
3417         * rendering/PaintInfo.h:
3418         (WebCore::PaintInfo::applyTransform):
3419         * rendering/RenderLayer.cpp:
3420         (WebCore::RenderLayer::calculateClipRects):
3421         * rendering/RenderLayer.h:
3422         (WebCore::ClipRects::reset):
3423         * rendering/RenderLayerBacking.cpp:
3424         (WebCore::RenderLayerBacking::updateGeometry):
3425         * rendering/RenderLayerCompositor.cpp:
3426         (WebCore::RenderLayerCompositor::clippedByAncestor):
3427
3428 2015-01-15  Chris Dumez  <cdumez@apple.com>
3429
3430         Intermittent WebCore build failures - CSSPropertyNames.gperf: No keywords in input file! calling gperf failed: 256 at WebCore/css/makeprop.pl line 901
3431         https://bugs.webkit.org/show_bug.cgi?id=140521
3432
3433         Reviewed by Alexey Proskuryakov.
3434
3435         Close the CSSPropertyNames.gperf file before calling gperf on it
3436         to make sure the content we wrote was flushed. This was causing
3437         intermittent build failures.
3438
3439         * css/makeprop.pl:
3440
3441 2015-01-15  Zalan Bujtas  <zalan@apple.com>
3442
3443         LayerFragment should be able to intersect with ClipRect.
3444         https://bugs.webkit.org/show_bug.cgi?id=140498
3445
3446         Reviewed by Simon Fraser.
3447
3448         No change in functionality.
3449
3450         * rendering/LayerFragment.h:
3451         (WebCore::LayerFragment::intersect):
3452         * rendering/RenderLayer.cpp:
3453         (WebCore::RenderLayer::collectFragments):
3454
3455 2015-01-15  Zalan Bujtas  <zalan@apple.com>
3456
3457         Move ClipRects and ClipRectsCache classes to RenderLayer.cpp.
3458         https://bugs.webkit.org/show_bug.cgi?id=140461
3459
3460         Reviewed by Simon Fraser.
3461
3462         Move classes only used by RenderLayer to RenderLayer.cpp.
3463
3464         No change in functionality.
3465
3466         * rendering/RenderLayer.cpp:
3467         (WebCore::ClipRects::create):
3468         (WebCore::ClipRects::reset):
3469         (WebCore::ClipRects::overflowClipRect):
3470         (WebCore::ClipRects::setOverflowClipRect):
3471         (WebCore::ClipRects::fixedClipRect):
3472         (WebCore::ClipRects::setFixedClipRect):
3473         (WebCore::ClipRects::posClipRect):
3474         (WebCore::ClipRects::setPosClipRect):