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