bedc5b1163b8011fdf75f3e19d8cae677863fd5d
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-01-27  David Hyatt  <hyatt@apple.com>
2
3         [New Multicolumn] Add support for block progression axis and reverse direction
4         https://bugs.webkit.org/show_bug.cgi?id=127715
5
6         Reviewed by thorton.
7
8         This patch adds support for -webkit-progression-direction and -webkit-progression-axis
9         to the new column code. This allows columns to stack along the block axis instead of
10         the inline axis or to reverse directions along that progression axis.
11
12         Added fast/multicol/newmulticol/progression-reverse.html and
13               fast/multicol/newmulticol/progression-reverse-overflow.html
14
15         * rendering/RenderBlock.cpp:
16         (WebCore::RenderBlock::isTopLayoutOverflowAllowed):
17         (WebCore::RenderBlock::isLeftLayoutOverflowAllowed):
18         New functions have been added for top and left layout overflow in order to get
19         a bunch of code out of RenderBox that didn't belong there. RenderBlock is overriding
20         the functions for the old multicolumn layout code to keep it working.
21
22         * rendering/RenderBlock.h:
23         Added the new top/left overflow functions.
24
25         * rendering/RenderBlockFlow.cpp:
26         (WebCore::RenderBlockFlow::determineLogicalLeftPositionForChild):
27         Moved from RenderBlock, since it didn't belong there.
28
29         (WebCore::RenderBlockFlow::isTopLayoutOverflowAllowed):
30         (WebCore::RenderBlockFlow::isLeftLayoutOverflowAllowed):
31         * rendering/RenderBlockFlow.h:
32         Overridden for the new multi-column code to specify when top/left overflow are
33         allowed (e.g., when the columns go backwards).
34
35         * rendering/RenderBox.cpp:
36         (WebCore::RenderBox::addLayoutOverflow):
37         Overridden to use the new top/left overflow functions.
38
39         * rendering/RenderBox.h:
40         (WebCore::RenderBox::isTopLayoutOverflowAllowed):
41         (WebCore::RenderBox::isLeftLayoutOverflowAllowed):
42         Added base definitions that look at direction and writing-mode.
43
44         * rendering/RenderFlexibleBox.cpp:
45         (WebCore::RenderFlexibleBox::isTopLayoutOverflowAllowed):
46         (WebCore::RenderFlexibleBox::isLeftLayoutOverflowAllowed):
47         * rendering/RenderFlexibleBox.h:
48         Overrides for flexible box of the top/left overflow functions.
49
50         * rendering/RenderMultiColumnFlowThread.h:
51         Make sure requiresBalancing() is set to false if the axis of the columns
52         is block, since at least right now, we don't support balancing columns
53         along the block axis. (In theory we could support this in the future, but
54         nobody has requested it.)
55
56         * rendering/RenderMultiColumnSet.cpp:
57         (WebCore::RenderMultiColumnSet::updateLogicalWidth):
58         Remove the code that expands the width of multi column sets. We now always
59         let their logical width match the containing block's content width and instead
60         add the overflow to the set itself.
61
62         (WebCore::RenderMultiColumnSet::columnRectAt):
63         (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
64         (WebCore::RenderMultiColumnSet::paintColumnRules):
65         (WebCore::RenderMultiColumnSet::initialBlockOffsetForPainting):
66         (WebCore::RenderMultiColumnSet::collectLayerFragments):
67         (WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):
68         Patch all of these functions to know how to handle a block axis or reversed
69         direction.
70
71         (WebCore::RenderMultiColumnSet::addOverflowFromChildren):
72         * rendering/RenderMultiColumnSet.h:
73         Make multi-column set add in its overflow in the same way that the old
74         multi-column code did, by looking at the last column rect. (This is really
75         not a very good way to do it, but it's the same as the old code for now.)
76
77 2014-01-27  Daniel Bates  <dabates@apple.com>
78
79         Fix the Mac build following <http://trac.webkit.org/changeset/162887>
80         (https://bugs.webkit.org/show_bug.cgi?id=127703)
81
82         Export symbol for WebCore::AXObjectCache::enableAccessibility().
83
84         * WebCore.exp.in:
85
86 2014-01-27  Roger Fong  <roger_fong@apple.com>
87
88         [Mac] Unreviewed build fix. Add missing export symbol.
89
90         * WebCore.exp.in:
91
92 2014-01-27  Roger Fong  <roger_fong@apple.com>
93
94         [Windows] Tests crashing on Windows after r162816.
95         https://bugs.webkit.org/show_bug.cgi?id=127703.
96
97         Reviewed by Alexey Proskuryakov.
98
99         * accessibility/AXObjectCache.cpp:
100         (WebCore::AXObjectCache::enableAccessibility):
101         (WebCore::AXObjectCache::disableAccessibility):
102         * accessibility/AXObjectCache.h: Un-inline some methods so that they can be exported.
103
104 2014-01-27  Andy Estes  <aestes@apple.com>
105
106         Update bindings test expectations after r162872
107
108         * bindings/scripts/test/ObjC/DOMTestInterface.h:
109         * bindings/scripts/test/ObjC/DOMTestObj.h:
110
111 2014-01-27  Andy Estes  <aestes@apple.com>
112
113         Scrub WebKit API headers of WTF macros
114         https://bugs.webkit.org/show_bug.cgi?id=127706
115
116         Reviewed by David Kilzer.
117
118         * Configurations/FeatureDefines.xcconfig: Added ENABLE_INSPECTOR.
119         * bindings/objc/DOMEvents.h: Guarded include of
120         DOM{Gesture,Touch}Event.h with TARGET_OS_IPHONE, since those features
121         are always enabled on iOS.
122         * platform/graphics/mac/MediaPlayerProxy.h: Replaced PLATFORM(IOS) with
123         TARGET_OS_IPHONE and ensured ENABLE_IOS_AIRPLAY is defined.
124         * platform/ios/SystemMemory.h: Replaced PLATFORM(IOS) with
125         TARGET_OS_IPHONE.
126         * platform/ios/wak/WKGraphics.h: Replaced PLATFORM(IOS_SIMULATOR) with
127         TARGET_IPHONE_SIMULATOR.
128
129 2014-01-27  Jer Noble  <jer.noble@apple.com>
130
131         [iOS] Use callOnMainThread() not dispatch_async() in MediaPlayerPrivateAVFoundationObjC
132         https://bugs.webkit.org/show_bug.cgi?id=127701
133
134         Reviewed by Eric Carlson.
135
136         dispatch_async(dispatch_get_main_queue(), ...) used to be fine so long as the main
137         thread was also the web thread. But since that's not the case on iOS, we should be
138         using callOnMainThread() instead (because it dispatches to the web thread, not as
139         its name implies, the main thread).
140
141         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
142         (WebCore::MediaPlayerPrivateAVFoundationObjC::createWeakPtr):
143         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
144         (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
145         (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
146         (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime):
147         (-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
148         (-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]):
149         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
150         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForResponseToAuthenticationChallenge:]):
151         (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
152
153 2014-01-27  Maciej Stachowiak  <mjs@apple.com>
154
155         Move Conditional=BLOB from URL interface to Blob-related methods, to prepare for adding URL API
156         https://bugs.webkit.org/show_bug.cgi?id=127719
157
158         Reviewed by Sam Weinig.
159
160         * html/DOMURL.idl:
161
162 2014-01-27  Andreas Kling  <akling@apple.com>
163
164         Remove unused USE(OPENTYPE_SANITIZER) code.
165         <https://webkit.org/b/127710>
166
167         This code was only used by the Chromium port.
168
169         Reviewed by Darin Adler.
170
171         * GNUmakefile.list.am:
172         * WebCore.xcodeproj/project.pbxproj:
173         * loader/cache/CachedFont.cpp:
174         (WebCore::CachedFont::ensureCustomFontData):
175         * platform/graphics/WOFFFileFormat.cpp:
176         * platform/graphics/WOFFFileFormat.h:
177         * platform/graphics/opentype/OpenTypeSanitizer.cpp: Removed.
178         * platform/graphics/opentype/OpenTypeSanitizer.h: Removed.
179
180
181 2014-01-27  Andy Estes  <aestes@apple.com>
182
183         Stop the code generator from adding ENABLE() macros to Objective-C DOM headers
184         https://bugs.webkit.org/show_bug.cgi?id=127706
185
186         Reviewed by David Kilzer.
187
188         Instead of adding ENABLE() macros to generated Objective-C DOM
189         headers, which might become Public or Private headers, elide generated
190         code for disabled features.
191
192         * bindings/scripts/CodeGeneratorObjC.pm:
193         (GenerateInterface): Passed $defines to GenerateHeader.
194         (ConditionalIsEnabled): Checked if the given conditional is found in
195         $defines. Handled conditionals with '&' and '|'.
196         (GenerateHeader): Rather than calling GenerateConditionalString to
197         generate an "#if ENABLE(...)", called ConditionalIsEnabled() to see
198         whether we should generate code for the given constant, attribute, or
199         function.
200
201 2014-01-27  Zoltan Horvath  <zoltan@webkit.org>
202
203         [CSS Shapes] Remove restriction of negative values for inset parameters
204         https://bugs.webkit.org/show_bug.cgi?id=127704
205
206         Reviewed by Darin Adler.
207
208         The latest version of CSS Shapes (http://www.w3.org/TR/css-shapes/) specification
209         doesn't contain any restriction of using negative values for the inset sizing.
210         I removed the restriction from the code and added testing for them.
211
212         Existing tests have been extended with the new cases.
213
214         * css/CSSParser.cpp:
215         (WebCore::CSSParser::parseBasicShapeInset):
216
217 2014-01-27  Eric Carlson  <eric.carlson@apple.com>
218
219         [iOS] preload=none prevents play()
220         https://bugs.webkit.org/show_bug.cgi?id=127702
221
222         Reviewed by Jer Noble.
223
224         No new tests, covered by existing tests.
225
226         * html/HTMLMediaElement.cpp:
227         (WebCore::HTMLMediaElement::potentiallyPlaying): Cleanup logic to make it simpler to understand,
228             fix logic error introduced in r161973
229         (WebCore::HTMLMediaElement::updatePlayState): Conditionalize some iOS-only code on whether or not
230             we are using the plug-in proxy.
231
232 2014-01-27  Brady Eidson  <beidson@apple.com>
233
234         IDB: LevelDB backing store shouldn't know about IDBCursor or IDBCallbacks
235         https://bugs.webkit.org/show_bug.cgi?id=127708
236
237         Reviewed by Tim Horton.
238
239         Move that knowledge to the IDBCursorBackendOperations inside the callback.
240
241         * Modules/indexeddb/IDBCursorBackendOperations.cpp:
242         (WebCore::CursorAdvanceOperation::perform):
243         (WebCore::CursorIterationOperation::perform):
244         * Modules/indexeddb/IDBCursorBackendOperations.h:
245
246         * Modules/indexeddb/IDBServerConnection.h:
247         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
248         (WebCore::IDBServerConnectionLevelDB::cursorAdvance):
249         (WebCore::IDBServerConnectionLevelDB::cursorIterate):
250         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
251
252 2014-01-27  Brady Eidson  <beidson@apple.com>
253
254         IDB: Remove unused concept of "cursor prefetch"
255         https://bugs.webkit.org/show_bug.cgi?id=127700
256
257         Reviewed by Tim Horton.
258
259         * Modules/indexeddb/IDBCursorBackend.cpp:
260         * Modules/indexeddb/IDBCursorBackend.h:
261         * Modules/indexeddb/IDBCursorBackendOperations.cpp:
262         * Modules/indexeddb/IDBCursorBackendOperations.h:
263         * Modules/indexeddb/IDBServerConnection.h:
264         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
265         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
266
267 2014-01-27  Brady Eidson  <beidson@apple.com>
268
269         IDB: Refactor out the last of the operation callbacks that are called by the LevelDB backing store
270         https://bugs.webkit.org/show_bug.cgi?id=127592
271
272         Reviewed by Tim Horton.
273
274         For each of the 3 remaining operations where the backing store calls callbacks directly,
275         factor out the callbacks to the operation itself.
276
277
278         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
279         (WebCore::OpenCursorOperation::perform):
280         (WebCore::CountOperation::perform):
281         (WebCore::DeleteRangeOperation::perform):
282         * Modules/indexeddb/IDBTransactionBackendOperations.h:
283
284         * Modules/indexeddb/IDBServerConnection.h:
285         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
286         (WebCore::IDBServerConnectionLevelDB::openCursor):
287         (WebCore::IDBServerConnectionLevelDB::count):
288         (WebCore::IDBServerConnectionLevelDB::deleteRange):
289         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
290
291 2014-01-27  Commit Queue  <commit-queue@webkit.org>
292
293         Unreviewed, rolling out r162755.
294         http://trac.webkit.org/changeset/162755
295         https://bugs.webkit.org/show_bug.cgi?id=127696
296
297         not quite right, breaks subframe scrolling in some cases
298         (Requested by thorton on #webkit).
299
300         * page/scrolling/ScrollingTree.cpp:
301         (WebCore::ScrollingTree::ScrollingTree):
302         (WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
303         (WebCore::ScrollingTree::removeDestroyedNodes):
304         * page/scrolling/ScrollingTree.h:
305         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
306         (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
307
308 2014-01-27  Zoltan Horvath  <zoltan@webkit.org>
309
310         [CSS Shapes] inset() function with multiple spaces on element style
311         https://bugs.webkit.org/show_bug.cgi?id=127617
312
313         Reviewed by Dirk Schulze.
314
315         When only a subset of parameters were defined for an inset shape, the built
316         inset string contained some extra spaces. This patch fixes the behavior and
317         adds tests for the case. I also removed the string allocation optimization from
318         buildInsetString, since it's not worthwhile to always allocate as many memory
319         as needed for a fully defined inset.
320
321         I added the new test cases to the shapes parser code test.
322
323         * css/CSSBasicShapes.cpp:
324         (WebCore::buildInsetString):
325
326 2014-01-27  Antti Koivisto  <antti@apple.com>
327
328         * WebCore.exp.in: Add export needed for iOS.
329
330 2014-01-27  Antti Koivisto  <antti@apple.com>
331
332         REGRESSION(r133214): Don't invalidate style when adding classes that don't match rules
333         https://bugs.webkit.org/show_bug.cgi?id=126177
334
335         Reviewed by Anders Carlsson.
336         
337         Spotted by Elliott Sprehn in Chromium.
338
339         * dom/Element.cpp:
340         (WebCore::checkSelectorForClassChange):
341         
342             Remove unnecessary templating.
343
344         (WebCore::Element::classAttributeChanged):
345         
346             Fix logic error with 'continue'.
347
348 2014-01-27  Brendan Long  <b.long@cablelabs.com>
349
350         [GStreamer] Lockup when playing Icecast radio
351         https://bugs.webkit.org/show_bug.cgi?id=127452
352
353         Reviewed by Philippe Normand.
354
355         No new tests. This bug can only be demonstrated with an Icecast stream, and it's
356         not clear how to do that in our testing framework.
357
358         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
359         (StreamingClient::handleResponseReceived): Wait until we unlock to send notifications.
360
361 2014-01-27  Jessie Berlin  <jberlin@apple.com>
362
363         Build fix after r162838.
364
365         * page/FrameView.cpp:
366         Remove an unused constant.
367
368 2014-01-27  Antti Koivisto  <antti@apple.com>
369
370         Remove repaint throttling
371         https://bugs.webkit.org/show_bug.cgi?id=127681
372
373         Reviewed by Sam Weinig.
374
375         Nowadays we throttle layer flushes. This code is unnecessary.
376
377         * WebCore.exp.in:
378         * dom/Document.cpp:
379         (WebCore::Document::recalcStyle):
380         * dom/Element.cpp:
381         (WebCore::Element::classAttributeChanged):
382         * editing/AlternativeTextController.cpp:
383         (WebCore::AlternativeTextController::insertDictatedText):
384         * loader/FrameLoader.cpp:
385         (WebCore::FrameLoader::checkCompleted):
386         * page/EventHandler.cpp:
387         (WebCore::EventHandler::dispatchDragEvent):
388         (WebCore::EventHandler::dispatchMouseEvent):
389         (WebCore::EventHandler::keyEvent):
390         (WebCore::EventHandler::handleTextInputEvent):
391         * page/FrameView.cpp:
392         (WebCore::FrameView::FrameView):
393         (WebCore::FrameView::reset):
394         (WebCore::FrameView::flushCompositingStateForThisFrame):
395         (WebCore::FrameView::layout):
396         (WebCore::FrameView::repaintContentRectangle):
397         (WebCore::FrameView::disableLayerFlushThrottlingTemporarilyForInteraction):
398         (WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):
399         * page/FrameView.h:
400         * rendering/RenderView.cpp:
401         (WebCore::RenderView::setSelection):
402
403 2014-01-24  Eric Carlson  <eric.carlson@apple.com>
404
405         Merge Chromium TextTrack cleanups
406         https://bugs.webkit.org/show_bug.cgi?id=127483
407
408         Reviewed by Darin Adler.
409
410         Merge some TextTrack cleanups:
411         https://chromium.googlesource.com/chromium/blink/+/b571b9fbc6e62e05aa77a402cf8f447e681b8ee3
412         https://chromium.googlesource.com/chromium/blink/+/6b1940151258150ea01bcf21ebfd958e2af247f4
413         https://chromium.googlesource.com/chromium/blink/+/397c2a2d9416f5c0d79bca22d6979f174eefcce2
414         https://chromium.googlesource.com/chromium/blink/+/f42ad93e25c6310b2b0327ab7ce5d82d3c4a6c1b
415         https://chromium.googlesource.com/chromium/blink/+/d55b52b53b7da05bba5fe378a4278250b9347430
416         https://chromium.googlesource.com/chromium/blink/+/cac766ecaaac477a08879f0b3157d0327cc75d96
417         https://chromium.googlesource.com/chromium/blink/+/6197ce278696cdd52fc2ad81893f369492468ca0
418
419         * html/HTMLTrackElement.cpp:
420         (WebCore::HTMLTrackElement::loadTimerFired): Remove the LoadableTextTrack* parameter, it isn't used.
421         (WebCore::HTMLTrackElement::didCompleteLoad): Ditto.
422         * html/HTMLTrackElement.h: didCompleteLoad doesn't need to be virtual.
423
424         * html/track/LoadableTextTrack.cpp:
425         (WebCore::LoadableTextTrack::loadTimerFired): Pass a reference, not a pointer.
426         (WebCore::LoadableTextTrack::cueLoadingStarted): Removed, it wasn't used.
427         (WebCore::LoadableTextTrack::cueLoadingCompleted): Pass a reference, not a pointer.
428         * html/track/LoadableTextTrack.h: Delete LoadableTextTrackClient, it is no longer used.
429
430         * loader/TextTrackLoader.cpp:
431         (WebCore::TextTrackLoader::TextTrackLoader): Take a TextTrackLoaderClient reference.
432         (WebCore::TextTrackLoader::~TextTrackLoader): Rename m_cachedCueData m_resource.
433         (WebCore::TextTrackLoader::cueLoadTimerFired): m_client is a reference.
434         (WebCore::TextTrackLoader::cancelLoad): m_cachedCueData -> m_resource.
435         (WebCore::TextTrackLoader::processNewCueData): Ditto.
436         (WebCore::TextTrackLoader::deprecatedDidReceiveCachedResource): Ditto.
437         (WebCore::TextTrackLoader::notifyFinished): Ditto.
438         (WebCore::TextTrackLoader::load): shouldLoadCues was removed from the client interface because
439             the only implementation always returned true.
440         (WebCore::TextTrackLoader::newRegionsParsed): m_client is a reference
441         * loader/TextTrackLoader.h:
442
443         * loader/cache/CachedResourceLoader.cpp:
444         (WebCore::CachedResourceLoader::canRequest): Remove an outdated comment.
445
446 2014-01-27  Chris Fleizach  <cfleizach@apple.com>
447
448         AX: Disable accessibility after every test run
449         https://bugs.webkit.org/show_bug.cgi?id=127439
450
451         Reviewed by Csaba Osztrogonác.
452
453         Speculative fix for EFL build. Don't process these notifications unless accessibility is enabled.
454
455         * loader/FrameLoader.cpp:
456         (WebCore::FrameLoader::prepareForLoadStart):
457
458 2014-01-27  Csaba Osztrogonác  <ossy@webkit.org>
459
460         Buildfix for !ENABLE(COMPARE_AND_SWAP) platforms after r162774
461         https://bugs.webkit.org/show_bug.cgi?id=127678
462
463         Reviewed by Zoltan Herczeg.
464
465         * platform/text/TextBreakIterator.cpp:
466         (WebCore::compareAndSwapNonSharedCharacterBreakIterator):
467         Use std::mutex instead of Mutex and std::lock_guard instead of MutexLocker.
468
469 2014-01-26  Tim Horton  <timothy_horton@apple.com>
470
471         Fix the iOS build (failed to correctly revert some broken changes in the last patch).
472
473         * platform/graphics/cg/BitmapImageCG.cpp:
474
475 2014-01-26  Tim Horton  <timothy_horton@apple.com>
476
477         Start cleaning up iOS upstreaming #ifs in platform/graphics
478         https://bugs.webkit.org/show_bug.cgi?id=127641
479
480         Reviewed by Sam Weinig.
481
482         * platform/graphics/BitmapImage.h:
483         * platform/graphics/mac/ColorMac.h:
484         Use USE(APPKIT) instead of PLATFORM(MAC) && !PLATFORM(IOS) for NSImage/getNSImage().
485
486         * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
487         (WebCore::AVTrackPrivateAVFObjCImpl::label):
488         * platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm:
489         (WebCore::InbandTextTrackPrivateLegacyAVFObjC::label):
490         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
491         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
492         Remove some code that was only used on OS X on Lion or below.
493
494         * platform/graphics/cg/GraphicsContextCG.cpp:
495         (WebCore::GraphicsContext::platformInit):
496         ToT WebKit doesn't build on Lion or earlier anymore, so this code can always run.
497
498         * platform/graphics/cg/FloatPointCG.cpp:
499         * platform/graphics/cg/FloatRectCG.cpp:
500         * platform/graphics/cg/FloatSizeCG.cpp:
501         * platform/graphics/cg/GradientCG.cpp:
502         * platform/graphics/cg/ImageBufferCG.cpp:
503         * platform/graphics/cg/ImageCG.cpp:
504         * platform/graphics/cg/IntPointCG.cpp:
505         * platform/graphics/cg/IntRectCG.cpp:
506         * platform/graphics/cg/PathCG.cpp:
507         * platform/graphics/cg/PatternCG.cpp:
508         * platform/graphics/mac/FontCustomPlatformData.cpp:
509         Use CoreGraphics/CoreGraphics.h instead of ApplicationServices/ApplicationServices.h
510         even on Mac, so we can share the include.
511
512         * platform/graphics/cg/IntSizeCG.cpp:
513         Remove a random comment of a style we don't tend to use in WebKit,
514         and from a file not large enough to need it.
515
516         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
517         (WebCore::FontPlatformData::FontPlatformData):
518         (WebCore::FontPlatformData::setFont):
519         Remove some more always-true #ifs.
520
521         * platform/graphics/mac/WebLayer.mm:
522         Move a #if'd include out to its own block as per the style guide.
523
524 2014-01-26  David Hyatt  <hyatt@apple.com>
525
526         [New Multicolumn] Make sure the progression axis and direction are propagated to the new columns.
527         https://bugs.webkit.org/show_bug.cgi?id=127670
528
529         This patch makes sure that the progression axis and direction style properties
530         are properly propagated from the style to the multi-column flow thread. Virtualizing
531         and renaming updateColumnInfoFromStyle to updateColumnProgressionFromStyle lets us
532         share code between the old multi-column code and the new.
533
534         Reviewed by Sam Weinig.
535
536         * rendering/RenderBlock.cpp:
537         (WebCore::RenderBlock::updateColumnProgressionFromStyle):
538         * rendering/RenderBlock.h:
539         * rendering/RenderBlockFlow.cpp:
540         (WebCore::RenderBlockFlow::setComputedColumnCountAndWidth):
541         (WebCore::RenderBlockFlow::updateColumnProgressionFromStyle):
542         * rendering/RenderBlockFlow.h:
543         * rendering/RenderBox.cpp:
544         (WebCore::RenderBox::styleDidChange):
545         * rendering/RenderMultiColumnFlowThread.cpp:
546         (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
547         * rendering/RenderMultiColumnFlowThread.h:
548         * style/StyleResolveForDocument.cpp:
549         (WebCore::Style::resolveForDocument):
550
551 2014-01-26  David Hyatt  <hyatt@apple.com>
552
553         [New Multicolumn] Change the axis property to be a boolean like other isInline checks
554         https://bugs.webkit.org/show_bug.cgi?id=127661
555
556         Reviewed by Simon Fraser.
557
558         * rendering/ColumnInfo.h:
559         (WebCore::ColumnInfo::ColumnInfo):
560         (WebCore::ColumnInfo::progressionIsInline):
561         (WebCore::ColumnInfo::setProgressionIsInline):
562         * rendering/RenderBlock.cpp:
563         (WebCore::RenderBlock::paintColumnRules):
564         (WebCore::RenderBlock::initialBlockOffsetForPainting):
565         (WebCore::RenderBlock::blockDeltaForPaintingNextColumn):
566         (WebCore::RenderBlock::setComputedColumnCountAndWidth):
567         (WebCore::RenderBlock::updateColumnInfoFromStyle):
568         (WebCore::RenderBlock::columnRectAt):
569         (WebCore::RenderBlock::adjustPointToColumnContents):
570         (WebCore::RenderBlock::adjustRectForColumns):
571         (WebCore::RenderBlock::adjustForColumns):
572         * rendering/RenderMultiColumnFlowThread.h:
573         * rendering/RenderObject.cpp:
574         (WebCore::RenderObject::columnNumberForOffset):
575
576 2014-01-26  Benjamin Poulain  <benjamin@webkit.org>
577
578         Make DOMStringMap a typedef of DatasetDOMStringMap
579         https://bugs.webkit.org/show_bug.cgi?id=127658
580
581         Reviewed by Sam Weinig.
582
583         The only concrete implementation of DOMStringMap is DatasetDOMStringMap.
584         The abstract interface for a single definition is adding complexity for no gain.
585
586         This patch removes DOMStringMap and simply keeps the name through a typedef.
587         I used a typedef instead of just renaming DatasetDOMStringMap because I think
588         having both name has value. DatasetDOMStringMap is a better description of what
589         the implementation does. DOMStringMap is the public name and the classname is
590         the same as the JavaScript type by convention.
591
592         * CMakeLists.txt:
593         * GNUmakefile.list.am:
594         * WebCore.vcxproj/WebCore.vcxproj:
595         * WebCore.vcxproj/WebCore.vcxproj.filters:
596         * WebCore.xcodeproj/project.pbxproj:
597         * dom/DOMAllInOne.cpp:
598         * dom/DOMStringMap.cpp: Removed.
599         * dom/DOMStringMap.h:
600         * dom/DatasetDOMStringMap.h:
601         * dom/Element.cpp:
602         (WebCore::Element::dataset):
603         * dom/Element.h:
604
605 2014-01-26  David Kilzer  <ddkilzer@apple.com>
606
607         Part 2: Assertion failure in WebCore::PseudoElement::didRecalcStyle()
608         <https://bugs.webkit.org/show_bug.cgi?id=126761>
609         <rdar://problem/15793540>
610
611         Reviewed by Simon Fraser.
612
613         * bindings/objc/DOM.mm:
614         (-[DOMElement image]):
615         (-[DOMElement _imageTIFFRepresentation]):
616         * platform/gtk/PasteboardGtk.cpp:
617         (WebCore::Pasteboard::writeImage):
618         * platform/win/PasteboardWin.cpp:
619         (WebCore::Pasteboard::writeImage):
620         (WebCore::getCachedImage):
621         * rendering/HitTestResult.cpp:
622         (WebCore::HitTestResult::image):
623         - More places where toRenderImage() should be used instead of
624           toImage().
625         - Fixed last two places where static_cast<WebCore::RenderImage*>
626           was being used instead of toRenderImage().
627
628 2014-01-26  Chris Fleizach  <cfleizach@apple.com>
629
630         AX: Disable accessibility after every test run
631         https://bugs.webkit.org/show_bug.cgi?id=127439
632
633         Reviewed by Alexey Proskuryakov.
634
635         If accessibility is disabled, we may still need to return the existing 
636         AXObjectCache, so that objects can be cleaned up appropriately.
637
638         A such we have to be prepared to handle a nullptr return value in more cases.
639
640         * accessibility/AXObjectCache.h:
641         (WebCore::AXObjectCache::disableAccessibility):
642         * accessibility/AccessibilityNodeObject.cpp:
643         (WebCore::AccessibilityNodeObject::childrenChanged):
644         * accessibility/AccessibilityRenderObject.cpp:
645         (WebCore::AccessibilityRenderObject::remoteSVGRootElement):
646         * dom/Document.cpp:
647         (WebCore::Document::existingAXObjectCache):
648
649 2014-01-26  Anders Carlsson  <andersca@apple.com>
650
651         Move history item visit count handling to WebKit
652         https://bugs.webkit.org/show_bug.cgi?id=127659
653
654         Reviewed by Dan Bernstein.
655
656         Remove all members dealing with visit handling - they're going back to WebKit.
657
658         * WebCore.exp.in:
659         * history/HistoryItem.cpp:
660         (WebCore::HistoryItem::HistoryItem):
661         (WebCore::HistoryItem::reset):
662         (WebCore::HistoryItem::decodeBackForwardTree):
663         * history/HistoryItem.h:
664         (WebCore::HistoryItem::create):
665
666 2014-01-26  Anders Carlsson  <andersca@apple.com>
667
668         Move lastVisitWasHTTPNonGet out to WebHistoryItem
669         https://bugs.webkit.org/show_bug.cgi?id=127657
670
671         Reviewed by Dan Bernstein.
672
673         Remove m_lastVisitWasHTTPNonGet, it's only used by WebKit.
674
675         * history/HistoryItem.cpp:
676         (WebCore::HistoryItem::HistoryItem):
677         (WebCore::HistoryItem::reset):
678         * history/HistoryItem.h:
679
680 2014-01-26  Zalan Bujtas  <zalan@apple.com>
681
682         Subpixel Layout: Align <input type="button", submit etc (PushButtonPart) top and bottom paddings with <button>
683         https://bugs.webkit.org/show_bug.cgi?id=127640
684
685         Reviewed by Simon Fraser.
686
687         <button> sets padding-top: 2px and padding-bottom: 3px as default values (html.css),
688         while <input type="button" (submit, etc) has the hardcoded values of 0, 0 and we center the text using the available space.
689         This results in different baseline text position in normal cases. This adjustment puts the <input type='button'
690         rendering back to the pre-subpixel layout state.
691
692         * platform/mac/ThemeMac.mm:
693         (WebCore::ThemeMac::controlPadding):
694
695 2014-01-26  Benjamin Poulain  <bpoulain@apple.com>
696
697         Improve the bindings of NodeList's name accessor
698         https://bugs.webkit.org/show_bug.cgi?id=127358
699
700         Reviewed by Geoffrey Garen.
701
702         When accessing an item of NodeList by name, the default bindings was
703         going through the list of node twice:
704         -First, getOwnProperty calls canGetItemsForName() to find if a property exists for
705          the given name. This in turn used NodeList::namedItem() which is a slow operation.
706         -Then, the value itself was queried through nameGetter(), calling NodeList::namedItem()
707          a second time to find the same value.
708
709         This patch kills the default name getter in favor of a getOwnPropertySlotDelegate() returning
710         the value directly on the PropertySlot.
711
712         Ad Hoc testing show about 15% speed up for simple cases.
713
714         * bindings/js/JSNodeListCustom.cpp:
715         (WebCore::JSNodeList::getOwnPropertySlotDelegate):
716         * dom/NodeList.idl:
717
718 2014-01-26  Joseph Pecoraro  <pecoraro@apple.com>
719
720         Web Inspector: Move InspectorDebuggerAgent into JavaScriptCore
721         https://bugs.webkit.org/show_bug.cgi?id=127629
722
723         Rubber-stamped by Sam Weinig.
724
725         Test: inspector-protocol/debugger/pause-on-assert.html
726
727         * CMakeLists.txt:
728         * ForwardingHeaders/inspector/agents/InspectorDebuggerAgent.h: Added.
729         * GNUmakefile.list.am:
730         * WebCore.vcxproj/WebCore.vcxproj:
731         * WebCore.vcxproj/WebCore.vcxproj.filters:
732         * WebCore.xcodeproj/project.pbxproj:
733         * inspector/InspectorAllInOne.cpp:
734         - Remove InspectorDebuggerAgent.
735         - Add WebDebuggerAgent (shared between Page and Worker).
736
737         * inspector/WebDebuggerAgent.h: Added.
738         (WebCore::WebDebuggerAgent::~WebDebuggerAgent):
739         * inspector/WebDebuggerAgent.cpp: Added.
740         (WebCore::WebDebuggerAgent::WebDebuggerAgent):
741         (WebCore::WebDebuggerAgent::enable):
742         (WebCore::WebDebuggerAgent::disable):
743         Shared code for Page and Worker debugger agents.
744         Instrumenting agents is a concept in WebCore only,
745         and the Debugger agent is only in the instrumenting
746         agents list when it is enabled and removed when disabled.
747
748         * inspector/InstrumentingAgents.h:
749         (WebCore::InstrumentingAgents::inspectorDebuggerAgent):
750         (WebCore::InstrumentingAgents::setInspectorDebuggerAgent):
751         * inspector/InspectorDOMDebuggerAgent.cpp:
752         * inspector/InspectorDOMDebuggerAgent.h:
753         Update namespace for debugger agent.
754
755         * inspector/InspectorInstrumentation.cpp:
756         (WebCore::isConsoleAssertMessage):
757         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
758         DebuggerAgent in JavaScriptCore does not yet know about console
759         types. So temporarily handle it here. We need to give JavaScriptCore
760         some concept of Console messages and types.
761
762         * inspector/PageDebuggerAgent.cpp:
763         (WebCore::PageDebuggerAgent::PageDebuggerAgent):
764         (WebCore::PageDebuggerAgent::enable):
765         (WebCore::PageDebuggerAgent::disable):
766         (WebCore::PageDebuggerAgent::sourceMapURLForScript):
767         (WebCore::PageDebuggerAgent::injectedScriptForEval):
768         * inspector/PageDebuggerAgent.h:
769         * inspector/WorkerDebuggerAgent.cpp:
770         (WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent):
771         (WebCore::WorkerDebuggerAgent::injectedScriptForEval):
772         * inspector/WorkerDebuggerAgent.h:
773         Modernize the Page and Worker debugger agents.
774
775         * inspector/InspectorController.cpp:
776         (WebCore::InspectorController::InspectorController):
777         * inspector/InspectorController.h:
778         * inspector/WorkerInspectorController.cpp:
779         (WebCore::WorkerInspectorController::WorkerInspectorController):
780         New constructors for the debugger agents.
781
782 2014-01-25  Timothy Hatcher  <timothy@apple.com>
783
784         Remove dead code from the JSC profiler.
785
786         https://bugs.webkit.org/show_bug.cgi?id=127643
787
788         Reviewed by Mark Lam.
789
790         Passes existing tests in fast/profiler.
791
792         * bindings/js/ScriptProfile.cpp:
793         (WebCore::buildInspectorObjectFor): Remove visible.
794         * inspector/ScriptProfileNode.idl: Ditto.
795         * inspector/protocol/Profiler.json: Ditto.
796
797 2014-01-25  Sam Weinig  <sam@webkit.org>
798
799         Remove unused support for DRAGGABLE_REGION
800         https://bugs.webkit.org/show_bug.cgi?id=127642
801
802         Reviewed by Simon Fraser.
803
804         * Configurations/FeatureDefines.xcconfig:
805         * DerivedSources.make:
806         * WebCore.exp.in:
807         * css/CSSComputedStyleDeclaration.cpp:
808         (WebCore::ComputedStyleExtractor::propertyValue):
809         * css/CSSParser.cpp:
810         (WebCore::CSSParser::parseValue):
811         * css/CSSPropertyNames.in:
812         * css/CSSValueKeywords.in:
813         * css/StyleResolver.cpp:
814         (WebCore::StyleResolver::applyProperty):
815         * dom/Document.cpp:
816         (WebCore::Document::Document):
817         * dom/Document.h:
818         * page/Chrome.cpp:
819         * page/ChromeClient.h:
820         * page/FrameView.cpp:
821         (WebCore::FrameView::layout):
822         (WebCore::FrameView::paintContents):
823         * page/FrameView.h:
824         * rendering/RenderElement.cpp:
825         (WebCore::RenderElement::styleWillChange):
826         * rendering/RenderInline.cpp:
827         (WebCore::RenderInline::addAnnotatedRegions):
828         * rendering/RenderInline.h:
829         * rendering/RenderLayer.cpp:
830         (WebCore::RenderLayer::scrollTo):
831         (WebCore::RenderLayer::setHasHorizontalScrollbar):
832         (WebCore::RenderLayer::setHasVerticalScrollbar):
833         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
834         * rendering/RenderListBox.cpp:
835         (WebCore::RenderListBox::setHasVerticalScrollbar):
836         * rendering/RenderObject.cpp:
837         (WebCore::RenderObject::addAnnotatedRegions):
838         * rendering/RenderObject.h:
839         (WebCore::AnnotatedRegionValue::operator==):
840         * rendering/style/RenderStyle.h:
841         * rendering/style/RenderStyleConstants.h:
842         * rendering/style/StyleRareNonInheritedData.cpp:
843         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
844         (WebCore::StyleRareNonInheritedData::operator==):
845         * rendering/style/StyleRareNonInheritedData.h:
846
847 2014-01-25  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
848
849         Clean up SVGPatternElement::collectPatternAttributes 
850         https://bugs.webkit.org/show_bug.cgi?id=127612
851
852         Reviewed by Andreas Kling.
853
854         This patch refactors SVGPatternElement::collectPatternAttributes() by extracting
855         the setPatternAttributes logic into a new function. This patch also changes the
856         while loop to be easier to understand and similar to collectGradientAttributes.
857
858         * svg/SVGPatternElement.cpp:
859         (WebCore::setPatternAttributes):
860         (WebCore::SVGPatternElement::collectPatternAttributes):
861
862 2014-01-25  Zalan Bujtas  <zalan@apple.com>
863
864         Subpixel layout: RenderInline is not centered when child RenderTextControl's innerTextRenderer needs bias centering.
865         https://bugs.webkit.org/show_bug.cgi?id=125659
866
867         Reviewed by Andreas Kling
868
869         layoutMod(logicalHeightDiff, 2) fails to bias round when subpixel layout is enabled. It sets
870         the denominator value to 2, which returns incorrect modulo result.
871         (subpixel off: 3px % 2 = 1 vs subpixel on: (3px * 64) -> 192 % 2 = 0)
872
873         Covered by existing tests.
874
875         * platform/LayoutUnit.h:
876         * rendering/RenderSearchField.cpp:
877         (WebCore::RenderSearchField::centerContainerIfNeeded):
878         * rendering/RenderTextControlSingleLine.cpp:
879         (WebCore::RenderTextControlSingleLine::centerRenderer):
880         (WebCore::RenderTextControlSingleLine::layout):
881         * rendering/RenderTextControlSingleLine.h:
882
883 2014-01-25  Sam Weinig  <sam@webkit.org>
884
885         Remove more unnecessary #if PLATFORM(IOS)s in ApplicationCacheStorage.cpp
886         https://bugs.webkit.org/show_bug.cgi?id=127635
887
888         Reviewed by Antti Koivisto.
889
890         * loader/appcache/ApplicationCacheStorage.cpp:
891         (WebCore::ApplicationCacheStorage::executeSQLCommand):
892         (WebCore::ApplicationCacheStorage::verifySchemaVersion):
893         (WebCore::ApplicationCacheStorage::executeStatement):
894         (WebCore::ApplicationCacheStorage::store):
895         (WebCore::ApplicationCacheStorage::ensureOriginRecord):
896         (WebCore::ApplicationCacheStorage::loadCache):
897
898 2014-01-25  Sam Weinig  <sam@webkit.org>
899
900         Remove some iOS #ifdefs by adding SQLiteDatabaseTracker to all the builds
901         https://bugs.webkit.org/show_bug.cgi?id=127632
902
903         Reviewed by Darin Adler.
904
905         Move the SQLiteDatabaseTracker and client from platform/sql/ios to platform/sql,
906         as there is nothing iOS specific about it. Then, un-#ifdef all its uses. For
907         ports that don't setup a client, this has no change in behavior.
908
909         * CMakeLists.txt:
910         * GNUmakefile.list.am:
911         * Modules/webdatabase/DatabaseBackendBase.cpp:
912         * WebCore.vcxproj/WebCore.vcxproj:
913         * WebCore.vcxproj/WebCore.vcxproj.filters:
914         * WebCore.xcodeproj/project.pbxproj:
915         * loader/appcache/ApplicationCacheStorage.cpp:
916         * platform/ScrollableArea.h:
917         (WebCore::ScrollableArea::sendWillRevealEdgeEventsIfNeeded):
918         * platform/sql/SQLiteDatabaseTracker.cpp: Copied from Source/WebCore/platform/sql/ios/SQLiteDatabaseTracker.cpp.
919         * platform/sql/SQLiteDatabaseTracker.h: Copied from Source/WebCore/platform/sql/ios/SQLiteDatabaseTracker.h.
920         * platform/sql/SQLiteDatabaseTrackerClient.h: Copied from Source/WebCore/platform/sql/ios/SQLiteDatabaseTrackerClient.h.
921         * platform/sql/ios: Removed.
922         * platform/sql/ios/SQLiteDatabaseTracker.cpp: Removed.
923         * platform/sql/ios/SQLiteDatabaseTracker.h: Removed.
924         * platform/sql/ios/SQLiteDatabaseTrackerClient.h: Removed.
925         * storage/StorageAreaSync.cpp:
926         (WebCore::StorageAreaSync::openDatabase):
927         (WebCore::StorageAreaSync::sync):
928         * storage/StorageTracker.cpp:
929
930 2014-01-25  Anders Carlsson  <andersca@apple.com>
931
932         Remove an unused FrameLoaderClient function
933         https://bugs.webkit.org/show_bug.cgi?id=127628
934
935         Reviewed by Andreas Kling.
936
937         All implementations of FrameLoaderClient::shouldStopLoadingForHistoryItem return true and this function
938         was only used by Chromium so we can get rid of it.
939
940         * loader/EmptyClients.h:
941         * loader/FrameLoaderClient.h:
942         * loader/HistoryController.cpp:
943         (WebCore::HistoryController::shouldStopLoadingForHistoryItem):
944
945 2014-01-25  Darin Adler  <darin@apple.com>
946
947         Call deprecatedCharacters instead of characters at more call sites
948         https://bugs.webkit.org/show_bug.cgi?id=127631
949
950         Reviewed by Sam Weinig.
951
952         * bindings/objc/WebScriptObject.mm:
953         (+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):
954         * editing/CompositeEditCommand.cpp:
955         (WebCore::containsOnlyWhitespace):
956         * editing/TypingCommand.cpp:
957         (WebCore::TypingCommand::insertText):
958         * editing/VisibleUnits.cpp:
959         (WebCore::startOfParagraph):
960         (WebCore::endOfParagraph):
961         * html/parser/HTMLParserIdioms.cpp:
962         (WebCore::stripLeadingAndTrailingHTMLSpaces):
963         (WebCore::parseHTMLNonNegativeInteger):
964         * inspector/InspectorStyleSheet.cpp:
965         (WebCore::InspectorStyle::newLineAndWhitespaceDelimiters):
966         * inspector/InspectorStyleTextEditor.cpp:
967         (WebCore::InspectorStyleTextEditor::insertProperty):
968         (WebCore::InspectorStyleTextEditor::internalReplaceProperty):
969         * platform/Length.cpp:
970         (WebCore::newCoordsArray):
971         * platform/LinkHash.cpp:
972         (WebCore::visitedLinkHash):
973         * platform/graphics/Color.cpp:
974         (WebCore::Color::parseHexColor):
975         (WebCore::Color::Color):
976         * platform/graphics/TextRun.h:
977         (WebCore::TextRun::TextRun):
978         * platform/text/TextEncodingRegistry.cpp:
979         (WebCore::atomicCanonicalTextEncodingName):
980         * rendering/RenderBlock.cpp:
981         (WebCore::RenderBlock::constructTextRun):
982         * rendering/RenderCombineText.cpp:
983         (WebCore::RenderCombineText::width):
984         * svg/SVGFontElement.cpp:
985         (WebCore::SVGFontElement::registerLigaturesInGlyphCache):
986         * xml/XPathFunctions.cpp:
987         (WebCore::XPath::FunId::evaluate):
988         Use the new name.
989
990 2014-01-25  Darin Adler  <darin@apple.com>
991
992         Get rid of ICU_UNICODE and WCHAR_UNICODE remnants
993         https://bugs.webkit.org/show_bug.cgi?id=127623
994
995         Reviewed by Anders Carlsson.
996
997         * CMakeLists.txt: Removed SmartReplaceICU.cpp.
998         * GNUmakefile.list.am: Ditto.
999         * PlatformEfl.cmake: Ditto.
1000         * PlatformGTK.cmake: Ditto.
1001
1002         * editing/FrameSelection.cpp:
1003         (WebCore::FrameSelection::modifyMovingRight): Ditto.
1004         (WebCore::FrameSelection::modifyMovingLeft): Ditto.
1005
1006         * editing/SmartReplace.cpp: Moved code here from SmartReplaceICU,
1007         since we always support ICU now. Added some FIXME comments about
1008         bugs and mistakes I spotted in the code as I was moving it.
1009         * editing/SmartReplaceICU.cpp: Removed.
1010
1011         * editing/TextIterator.cpp: Removed unneeded checks.
1012         * platform/ThreadGlobalData.cpp:
1013         (WebCore::ThreadGlobalData::ThreadGlobalData): Ditto.
1014         (WebCore::ThreadGlobalData::destroy): Ditto.
1015         * platform/ThreadGlobalData.h: Ditto.
1016         * platform/URL.cpp:
1017         (WebCore::appendEncodedHostname): Ditto.
1018         * platform/graphics/SurrogatePairAwareTextIterator.cpp: Ditto.
1019         Also removed unneeded "using namespace".
1020         * platform/text/TextCodecICU.cpp: Ditto.
1021         * platform/text/TextEncoding.cpp:
1022         (WebCore::TextEncoding::encode): Ditto.
1023         * platform/text/TextEncodingRegistry.cpp:
1024         (WebCore::extendTextCodecMaps): Ditto.
1025
1026 2014-01-25  Darin Adler  <darin@apple.com>
1027
1028         Get rid of UnicodeRange.h/cpp, using ICU instead
1029         https://bugs.webkit.org/show_bug.cgi?id=127622
1030
1031         Reviewed by Anders Carlsson.
1032
1033         * CMakeLists.txt: Remove UnicodeRange.h/cpp.
1034         * GNUmakefile.list.am: Ditto.
1035         * WebCore.vcxproj/WebCore.vcxproj: Ditto.
1036         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
1037         * WebCore.xcodeproj/project.pbxproj: Ditto.
1038
1039         * platform/graphics/win/FontCacheWin.cpp:
1040         (WebCore::FontCache::systemFallbackForCharacters): To check if a character has
1041         multiple code pages, use UCHAR_UNIFIED_IDEOGRAPH instead of cRangeSetCJK.
1042         * platform/graphics/wince/FontCacheWinCE.cpp:
1043         (WebCore::FontCache::systemFallbackForCharacters): Ditto. Also, to check if a
1044         character is in the Thai block, use UBLOCK_THAI.
1045
1046         * platform/graphics/wince/FontPlatformData.cpp: Removed include of UnicodeRange.h.
1047
1048         * platform/text/UnicodeRange.cpp: Removed.
1049         * platform/text/UnicodeRange.h: Removed.
1050
1051         * rendering/svg/SVGTextLayoutEngineBaseline.cpp:
1052         (WebCore::SVGTextLayoutEngineBaseline::calculateGlyphOrientationAngle): To figure
1053         out if a character is full width, use UCHAR_EAST_ASIAN_WIDTH, instead of hard-coding
1054         "not Latin or Arabic" as the rule.
1055
1056 2014-01-25  Tim Horton  <timothy_horton@apple.com>
1057
1058         Remove an unnecessary platform #if in BitmapImage(CG)::checkForSolidColor()
1059         https://bugs.webkit.org/show_bug.cgi?id=127610
1060
1061         Reviewed by Simon Fraser.
1062
1063         * platform/graphics/cg/BitmapImageCG.cpp:
1064         (WebCore::BitmapImage::checkForSolidColor):
1065         Over time, the two sides of this #if !PLATFORM(IOS) converged. Remove the #if
1066         and merge the code. We explicitly use kCGBitmapByteOrder32Big to be correct everywhere.
1067
1068 2014-01-25  Tim Horton  <timothy_horton@apple.com>
1069
1070         [cg] Look in the PNG dictionary for image duration information
1071         https://bugs.webkit.org/show_bug.cgi?id=127611
1072         <rdar://problem/15408643>
1073
1074         Reviewed by Simon Fraser.
1075
1076         We should look in the PNG properties dictionary for frame duration and loop count data.
1077
1078         * platform/graphics/cg/ImageSourceCG.cpp:
1079         (WebCore::ImageSource::repetitionCount):
1080         Mush repetitionCount a bit more to make it easier to read (early returns, etc.)
1081         Also, look in the PNG properties dictionary for a loop count.
1082
1083         (WebCore::ImageSource::frameDurationAtIndex):
1084         Look in the PNG properties dictionary for delay time.
1085         Get rid of WebCoreCGImagePropertyGIFUnclampedDelayTime; it hasn't
1086         been needed since Snow Leopard.
1087
1088 2014-01-25  Anders Carlsson  <andersca@apple.com>
1089
1090         Remove atomicIncrement/atomicDecrement
1091         https://bugs.webkit.org/show_bug.cgi?id=127625
1092
1093         Reviewed by Andreas Kling.
1094
1095         Replace atomicIncrement/atomicDecrement with std::atomic.
1096
1097         * Modules/webaudio/AudioContext.cpp:
1098         (WebCore::AudioContext::incrementActiveSourceCount):
1099         (WebCore::AudioContext::decrementActiveSourceCount):
1100         * Modules/webaudio/AudioContext.h:
1101         * Modules/webaudio/AudioNode.cpp:
1102         (WebCore::AudioNode::~AudioNode):
1103         (WebCore::AudioNode::ref):
1104         (WebCore::AudioNode::finishDeref):
1105         * Modules/webaudio/AudioNode.h:
1106         * Modules/webdatabase/OriginLock.h:
1107
1108 2014-01-25  Alex Christensen  <achristensen@webkit.org>
1109
1110         Unreviewed build fix for WinCairo.
1111
1112         * platform/network/curl/CurlDownload.h:
1113         Included wtf/Threading.h for ThreadIdentifier definition.
1114
1115 2014-01-25  Anders Carlsson  <andersca@apple.com>
1116
1117         Modernize HashTable threading code
1118         https://bugs.webkit.org/show_bug.cgi?id=127621
1119
1120         Reviewed by Darin Adler.
1121
1122         Explicitly include headers that used to be brought in by HashTable.h
1123
1124         * platform/DragData.h:
1125         Change a Windows-specific typedef to avoid having to include WindDef.h from a header.
1126
1127         * platform/audio/AudioSession.h:
1128         * platform/network/cf/SocketStreamHandle.h:
1129
1130 2014-01-25  Zan Dobersek  <zdobersek@igalia.com>
1131
1132         Move CSSGroupingRule, CSSStyleSheet, ElementRuleCollector to std::unique_ptr
1133         https://bugs.webkit.org/show_bug.cgi?id=127575
1134
1135         Reviewed by Andreas Kling.
1136
1137         Use std::unique_ptr and std::make_unique in place of OwnPtr and adoptPtr
1138         in the CSSGroupingRule, CSSStyleSheet and ElementRuleCollector classes.
1139
1140         * css/CSSFunctionValue.cpp: Remove the unnecessary PassOwnPtr header inclusion.
1141         * css/CSSGroupingRule.cpp:
1142         (WebCore::CSSGroupingRule::cssRules):
1143         * css/CSSGroupingRule.h:
1144         * css/CSSStyleSheet.cpp:
1145         (WebCore::CSSStyleSheet::cssRules):
1146         * css/CSSStyleSheet.h:
1147         * css/ElementRuleCollector.cpp:
1148         (WebCore::ElementRuleCollector::addMatchedRule):
1149         * css/ElementRuleCollector.h:
1150
1151 2014-01-25  Zan Dobersek  <zdobersek@igalia.com>
1152
1153         Move MediaQueryMatcher, SelectorFilter to std::unique_ptr
1154         https://bugs.webkit.org/show_bug.cgi?id=127574
1155
1156         Reviewed by Andreas Kling.
1157
1158         Replace the use of OwnPtr and adoptPtr with std::unique_ptr and std::make_unique
1159         in the MediaQueryMatcher and SelectorFilter classes.
1160
1161         * css/MediaQueryMatcher.cpp:
1162         (WebCore::MediaQueryMatcher::prepareEvaluator):
1163         (WebCore::MediaQueryMatcher::evaluate):
1164         (WebCore::MediaQueryMatcher::addListener):
1165         (WebCore::MediaQueryMatcher::styleResolverChanged):
1166         * css/MediaQueryMatcher.h:
1167         * css/SelectorFilter.cpp:
1168         (WebCore::SelectorFilter::popParentStackFrame):
1169         (WebCore::SelectorFilter::setupParentStack):
1170         * css/SelectorFilter.h:
1171
1172 2014-01-25  Zan Dobersek  <zdobersek@igalia.com>
1173
1174         Move PropertySetCSSStyleDeclaration, WebKitCSSKeyframesRule to std::unique_ptr
1175         https://bugs.webkit.org/show_bug.cgi?id=127572
1176
1177         Reviewed by Andreas Kling.
1178
1179         Switch the PropertySetCSSStyleDeclaration and WebKitCSSKeyframesRule classes from using
1180         OwnPtr and adoptPtr to using std::unique_ptr and std::make_unique.
1181
1182         * css/PropertySetCSSStyleDeclaration.cpp:
1183         (WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
1184         (WebCore::StyleRuleCSSStyleDeclaration::didMutate):
1185         (WebCore::InlineCSSStyleDeclaration::didMutate):
1186         * css/PropertySetCSSStyleDeclaration.h:
1187         * css/WebKitCSSKeyframesRule.cpp:
1188         (WebCore::WebKitCSSKeyframesRule::cssRules):
1189         * css/WebKitCSSKeyframesRule.h:
1190
1191 2014-01-25  Zan Dobersek  <zdobersek@igalia.com>
1192
1193         Move StyleProperties, StyleResolver to std::unique_ptr
1194         https://bugs.webkit.org/show_bug.cgi?id=127570
1195
1196         Reviewed by Andreas Kling.
1197
1198         Move the StyleProperties and StyleResolver classes from using OwnPtr and adoptPtr
1199         to using std::unique_ptr and std::make_unique.
1200
1201         * css/StyleInvalidationAnalysis.h: Remove the PassOwnPtr.h header inclusion.
1202         * css/StyleProperties.cpp:
1203         (WebCore::MutableStyleProperties::ensureCSSStyleDeclaration):
1204         (WebCore::MutableStyleProperties::ensureInlineCSSStyleDeclaration):
1205         * css/StyleProperties.h:
1206         * css/StyleResolver.cpp:
1207         (WebCore::StyleResolver::StyleResolver):
1208         (WebCore::StyleResolver::addViewportDependentMediaQueryResult):
1209         * css/StyleResolver.h:
1210         * css/StyleScopeResolver.h:
1211
1212 2014-01-25  Zan Dobersek  <zdobersek@igalia.com>
1213
1214         Move CSSFontFace, CSSFontSelector to std::unique_ptr
1215         https://bugs.webkit.org/show_bug.cgi?id=127569
1216
1217         Reviewed by Andreas Kling.
1218
1219         Move the CSSFontFace and CSSFontSelector classes from using OwnPtr, PassOwnPtr and adoptPtr
1220         to using std::unique_ptr, move semantics and std::make_unique.
1221
1222         * css/CSSFontFace.cpp:
1223         (WebCore::CSSFontFace::addSource):
1224         * css/CSSFontFace.h:
1225         * css/CSSFontSelector.cpp:
1226         (WebCore::CSSFontSelector::addFontFaceRule):
1227         (WebCore::CSSFontSelector::getFontFace):
1228         * css/CSSFontSelector.h:
1229
1230 2014-01-24  Joseph Pecoraro  <pecoraro@apple.com>
1231
1232         Web Inspector: Move InspectorRuntimeAgent into JavaScriptCore
1233         https://bugs.webkit.org/show_bug.cgi?id=127605
1234
1235         Reviewed by Timothy Hatcher.
1236
1237         Covered by existing tests. No change in functionality.
1238
1239         * CMakeLists.txt:
1240         * GNUmakefile.list.am:
1241         * WebCore.vcxproj/WebCore.vcxproj:
1242         * WebCore.vcxproj/WebCore.vcxproj.filters:
1243         * WebCore.xcodeproj/project.pbxproj:
1244         * inspector/InspectorAllInOne.cpp:
1245         Remove WebCore InspectorRuntimeAgent.
1246
1247         * ForwardingHeaders/inspector/agents/InspectorRuntimeAgent.h: Added.
1248         Add JavaScriptCore InspectorRuntimeAgent.
1249
1250         * inspector/InspectorController.cpp:
1251         (WebCore::InspectorController::InspectorController):
1252         * inspector/WorkerInspectorController.h:
1253         * inspector/WorkerInspectorController.cpp:
1254         (WebCore::WorkerInspectorController::WorkerInspectorController):
1255         New constructors for the runtime agent.
1256
1257         * inspector/PageRuntimeAgent.h:
1258         * inspector/PageRuntimeAgent.cpp:
1259         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
1260         (WebCore::PageRuntimeAgent::enable):
1261         (WebCore::PageRuntimeAgent::disable):
1262         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
1263         (WebCore::PageRuntimeAgent::didCreateIsolatedContext):
1264         (WebCore::PageRuntimeAgent::globalVM):
1265         Modernize and implement globalVM.
1266
1267         * inspector/WorkerRuntimeAgent.h:
1268         * inspector/WorkerRuntimeAgent.cpp:
1269         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
1270         (WebCore::WorkerRuntimeAgent::injectedScriptForEval):
1271         (WebCore::WorkerRuntimeAgent::globalVM):
1272         Modernize and implement globalVM.
1273
1274 2014-01-25  Diego Pino Garcia  <dpino@igalia.com>
1275
1276         [GTK] Add parameters from 'DOM Object Model Core' spec and 'DOM CSS' spec that can be NULL
1277
1278         https://bugs.webkit.org/show_bug.cgi?id=117536
1279
1280         Reviewed by Xan Lopez.
1281
1282         * bindings/scripts/CodeGeneratorGObject.pm:
1283         (ParamCanBeNull): Add new pairs (function, parameter) that can be NULL
1284
1285 2014-01-25  Anders Carlsson  <andersca@apple.com>
1286
1287         Get rid of BackForwardController::isActive()
1288         https://bugs.webkit.org/show_bug.cgi?id=127604
1289
1290         Reviewed by Sam Weinig.
1291
1292         BackForwardController::isActive() used to mean "my page maintains a back forward
1293         list that has zero capacity". Move that logic into WebKit instead, namely the
1294         WebFrameLoaderClient::canCachePage function so we can simplify WebCore.
1295
1296         * history/BackForwardClient.h:
1297         * history/BackForwardController.cpp:
1298         * history/BackForwardController.h:
1299         * history/BackForwardList.h:
1300         * history/PageCache.cpp:
1301         (WebCore::logCanCachePageDecision):
1302         (WebCore::PageCache::canCache):
1303
1304 2014-01-25  Antti Koivisto  <antti@apple.com>
1305
1306         REGRESSION(r162744): wsj.com paints white
1307         https://bugs.webkit.org/show_bug.cgi?id=127619
1308
1309         Reviewed by Sam Weinig.
1310
1311         Test: fast/css/stylesheet-layout-with-pending-paint.html
1312
1313         * dom/Document.cpp:
1314         (WebCore::Document::styleResolverChanged):
1315         
1316             Ensure we switch out from IgnoreLayoutWithPendingSheets state after stylesheet loads complete.
1317
1318 2014-01-24  Dan Bernstein  <mitz@apple.com>
1319
1320         Reverted r162760. It broke more things.
1321
1322         * WebCore.exp.in:
1323
1324 2014-01-24  Dan Bernstein  <mitz@apple.com>
1325
1326         Try to fix some 32-bit builds.
1327
1328         * WebCore.exp.in:
1329
1330 2014-01-24  Jinwoo Song  <jinwoo7.song@samsung.com>
1331
1332         [EFL] Replace usage of DEFINE_STATIC_LOCAL with NeverDestroyed in WebCore/platform/efl
1333         https://bugs.webkit.org/show_bug.cgi?id=127607
1334
1335         Reviewed by Anders Carlsson.
1336
1337         * platform/efl/EflKeyboardUtilities.cpp:
1338         (WebCore::keyMap): Use NeverDestroyed instead of DEFINE_STATIC_LOCAL.
1339         (WebCore::windowsKeyMap): Ditto.
1340         (WebCore::keyDownCommandsMap): Ditto.
1341         (WebCore::keyPressCommandsMap): Ditto.
1342         * platform/efl/GamepadsEfl.cpp:
1343         (WebCore::sampleGamepads): Ditto.
1344         * platform/efl/RenderThemeEfl.cpp:
1345         (WebCore::RenderThemeEfl::systemFont): Do not use unnecessary DEFINE_STATIC_LOCAL.
1346
1347 2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
1348
1349         Move JavaScriptCallFrame and ScriptDebugServer into JavaScriptCore for inspector
1350         https://bugs.webkit.org/show_bug.cgi?id=127543
1351
1352         Reviewed by Geoffrey Garen.
1353
1354         Covered by existing tests.
1355
1356         * ForwardingHeaders/inspector/ScriptDebugServer.h: Added.
1357         * GNUmakefile.list.am:
1358         * UseJSC.cmake:
1359         * WebCore.vcxproj/WebCore.vcxproj:
1360         * WebCore.vcxproj/WebCore.vcxproj.filters:
1361         * WebCore.xcodeproj/project.pbxproj:
1362         * bindings/js/JSBindingsAllInOne.cpp:
1363         * inspector/JavaScriptCallFrame.idl: Removed.
1364         Update builds now that ScriptDebugServer moved to JavaScriptCore.
1365
1366         * bindings/js/PageScriptDebugServer.h:
1367         * bindings/js/PageScriptDebugServer.cpp:
1368         (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
1369         (WebCore::PageScriptDebugServer::isContentScript):
1370         (WebCore::PageScriptDebugServer::reportException):
1371         * bindings/js/WorkerScriptDebugServer.h:
1372         * bindings/js/WorkerScriptDebugServer.cpp:
1373         (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
1374         (WebCore::WorkerScriptDebugServer::reportException):
1375         Handle ScriptDebugServer functionality depending on WebCore knowledge.
1376
1377         * inspector/InspectorDebuggerAgent.h:
1378         * inspector/InspectorDebuggerAgent.cpp:
1379         (WebCore::InspectorDebuggerAgent::breakpointActionSound):
1380         Handle ScriptDebugServer functionality that depended on WebCore knowledge.
1381         This will eventually be written in a non-WebCore specific way.
1382
1383         * inspector/InspectorRuntimeAgent.cpp:
1384         * inspector/InspectorRuntimeAgent.h:
1385         Update ScriptDebugServer type now that it is in namespace Inspector.
1386
1387         * workers/WorkerGlobalScope.h:
1388         Make addConsoleMessage public again so the inspector can call it.
1389
1390         * inspector/PageDebuggerAgent.cpp:
1391         (WebCore::PageDebuggerAgent::breakpointActionLog):
1392         * inspector/PageDebuggerAgent.h:
1393         * inspector/WorkerDebuggerAgent.cpp:
1394         (WebCore::WorkerDebuggerAgent::breakpointActionLog):
1395         * inspector/WorkerDebuggerAgent.h:
1396         Let each of these handle console logs in their own way. Both of these
1397         eventually go through the PageConsole and log through the InspectorConsoleAgent
1398         and ChromeClient.
1399
1400 2014-01-24  Brent Fulgham  <bfulgham@apple.com>
1401
1402         Improve latching behavior for wheel events
1403         https://bugs.webkit.org/show_bug.cgi?id=127386
1404         <rdar://problem/12176858>
1405
1406         Reviewed by Simon Fraser.
1407
1408         * page/scrolling/ScrollingTree.cpp:
1409         (WebCore::ScrollingTree::ScrollingTree): Initialize new values used for tracking
1410         scroll latching state.
1411         (WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Check for an existing
1412         latched node and stay in fast scrolling mode if possible.
1413         (WebCore::ScrollingTree::removeDestroyedNodes): Clear latched node if it's being removed.
1414         (WebCore::ScrollingTree::latchedNode): Added
1415         (WebCore::ScrollingTree::setLatchedNode): Added
1416         (WebCore::ScrollingTree::clearLatchedNode): Added
1417         * page/scrolling/ScrollingTree.h:
1418         (WebCore::ScrollingTree::hasLatchedNode): Added
1419         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
1420         (WebCore::shouldConsiderLatching): Added
1421         (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent): Determine latching state
1422         based on wheel event state and position of mouse pointer in the document.
1423
1424 2014-01-24  Anders Carlsson  <andersca@apple.com>
1425
1426         Another attempted build fix.
1427
1428         Use wildcards in the the std::duration symbol.
1429
1430         * WebCore.exp.in:
1431
1432 2014-01-24  Simon Fraser  <simon.fraser@apple.com>
1433
1434         Start using the RemoteScrollingCoordinatorProxy on iOS
1435         https://bugs.webkit.org/show_bug.cgi?id=127598
1436
1437         Reviewed by Tim Horton.
1438
1439         Add a scrollPositionChangedViaDelegatedScrolling() function to
1440         ScrollingTree, allowing the ScrollingTree to be informed about
1441         external sources of scrolling.
1442         
1443         Also add a convenience getter for nodes, nodeForID().
1444
1445         * WebCore.exp.in:
1446         * page/scrolling/ScrollingTree.cpp:
1447         (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
1448         (WebCore::ScrollingTree::nodeForID):
1449         * page/scrolling/ScrollingTree.h:
1450         * rendering/RenderLayerCompositor.cpp:
1451         (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
1452         To avoid assertions on iOS, bail from iOS WK1 fixed position code if
1453         we have a ScrollingCoordinator.
1454         (WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
1455         Ditto.
1456
1457 2014-01-24  Simon Fraser  <simon.fraser@apple.com>
1458
1459         Add typesafe casts for ScrollingTreeNode classes
1460         https://bugs.webkit.org/show_bug.cgi?id=127597
1461
1462         Reviewed by Tim Horton.
1463
1464         Add a ScrollingNodeType member to ScrollingTreeNodes and
1465         use it for type-safe casting.
1466
1467         * page/scrolling/ScrollingTreeNode.cpp:
1468         (WebCore::ScrollingTreeNode::ScrollingTreeNode):
1469         * page/scrolling/ScrollingTreeNode.h:
1470         (WebCore::ScrollingTreeNode::nodeType):
1471         (WebCore::ScrollingTreeNode::scrollingNodeID):
1472         * page/scrolling/ScrollingTreeScrollingNode.cpp:
1473         (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
1474         * page/scrolling/ScrollingTreeScrollingNode.h:
1475         * page/scrolling/mac/ScrollingTreeFixedNode.h:
1476         * page/scrolling/mac/ScrollingTreeFixedNode.mm:
1477         (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
1478         * page/scrolling/mac/ScrollingTreeStickyNode.h:
1479         * page/scrolling/mac/ScrollingTreeStickyNode.mm:
1480         (WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):
1481
1482 2014-01-24  Anders Carlsson  <andersca@apple.com>
1483
1484         Remove back/forward list related functions from Page
1485         https://bugs.webkit.org/show_bug.cgi?id=127596
1486
1487         Reviewed by Andreas Kling.
1488
1489         * WebCore.exp.in:
1490         * history/BackForwardController.cpp:
1491         (WebCore::BackForwardController::canGoBackOrForward):
1492         (WebCore::BackForwardController::goBackOrForward):
1493         (WebCore::BackForwardController::goBack):
1494         (WebCore::BackForwardController::goForward):
1495         (WebCore::BackForwardController::count):
1496         * page/EventHandler.cpp:
1497         (WebCore::EventHandler::defaultBackspaceEventHandler):
1498         * page/Page.cpp:
1499         * page/Page.h:
1500
1501 2014-01-24  Antti Koivisto  <antti@apple.com>
1502
1503         Update style asynchronously after style sheet load
1504         https://bugs.webkit.org/show_bug.cgi?id=127563
1505
1506         Reviewed by Andreas Kling.
1507         
1508         Since we don't attach synchronously we don't need to recalc style synchronously either.
1509
1510         * dom/Document.cpp:
1511         (WebCore::Document::didRemoveAllPendingStylesheet):
1512
1513 2014-01-24  Zalan Bujtas  <zalan@apple.com>
1514
1515         Subpixel layout: Default style of input type=checkbox/radio (0.5ex) adds 1px extra margin on both left and right.
1516         https://bugs.webkit.org/show_bug.cgi?id=125728
1517
1518         Reviewed by Simon Fraser.
1519
1520         Using the 0.5ex value to set checkbox/radio left and right margins is a long-standing
1521         (khtml) behavior. While it indicates dynamic behavior, in order to get the margins changed,
1522         the widget's font size needs to be set, which is rather rare for such input types.
1523         It also results in odd layout, where the checkbox's indentation may seem to change randomly.
1524
1525         '<input style="font-size: 30px;" type="checkbox">foo' changes neither the checkbox
1526         nor the text size, but it indents the line by about 15px.
1527
1528         Other browsers (FF, Opera with Presto) disagree and they set static margins values.
1529         2px is the current default computed value.
1530
1531         * css/html.css:
1532         (input[type="radio"], input[type="checkbox"]):
1533
1534 2014-01-24  Oliver Hunt  <oliver@apple.com>
1535
1536         Put functions need to take a base object and a this value, and perform type checks on |this|
1537         https://bugs.webkit.org/show_bug.cgi?id=127594
1538
1539         Reviewed by Geoffrey Garen.
1540
1541         Update bindings generator to emit setters with correct type, and perform
1542         type checks on |this|, instead of the baseObject.
1543
1544         Test: js/dom/dom-as-prototype-assignment-exception.html
1545
1546         * bindings/scripts/CodeGeneratorJS.pm:
1547         (GenerateHeader):
1548         (GenerateImplementation):
1549         (GenerateHashTable):
1550         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
1551         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
1552         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
1553         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
1554         * bindings/scripts/test/JS/JSTestException.cpp:
1555         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
1556         * bindings/scripts/test/JS/JSTestInterface.cpp:
1557         (WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
1558         (WebCore::setJSTestInterfaceImplementsStr2):
1559         (WebCore::setJSTestInterfaceImplementsStr3):
1560         (WebCore::setJSTestInterfaceImplementsNode):
1561         (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
1562         (WebCore::setJSTestInterfaceSupplementalStr2):
1563         (WebCore::setJSTestInterfaceSupplementalStr3):
1564         (WebCore::setJSTestInterfaceSupplementalNode):
1565         * bindings/scripts/test/JS/JSTestInterface.h:
1566         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
1567         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
1568         * bindings/scripts/test/JS/JSTestNode.cpp:
1569         * bindings/scripts/test/JS/JSTestObj.cpp:
1570         (WebCore::setJSTestObjConstructorStaticStringAttr):
1571         (WebCore::setJSTestObjTestSubObjEnabledBySettingConstructor):
1572         (WebCore::setJSTestObjEnumAttr):
1573         (WebCore::setJSTestObjByteAttr):
1574         (WebCore::setJSTestObjOctetAttr):
1575         (WebCore::setJSTestObjShortAttr):
1576         (WebCore::setJSTestObjUnsignedShortAttr):
1577         (WebCore::setJSTestObjLongAttr):
1578         (WebCore::setJSTestObjLongLongAttr):
1579         (WebCore::setJSTestObjUnsignedLongLongAttr):
1580         (WebCore::setJSTestObjStringAttr):
1581         (WebCore::setJSTestObjTestObjAttr):
1582         (WebCore::setJSTestObjXMLObjAttr):
1583         (WebCore::setJSTestObjCreate):
1584         (WebCore::setJSTestObjReflectedStringAttr):
1585         (WebCore::setJSTestObjReflectedIntegralAttr):
1586         (WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
1587         (WebCore::setJSTestObjReflectedBooleanAttr):
1588         (WebCore::setJSTestObjReflectedURLAttr):
1589         (WebCore::setJSTestObjReflectedCustomIntegralAttr):
1590         (WebCore::setJSTestObjReflectedCustomBooleanAttr):
1591         (WebCore::setJSTestObjReflectedCustomURLAttr):
1592         (WebCore::setJSTestObjTypedArrayAttr):
1593         (WebCore::setJSTestObjAttrWithGetterException):
1594         (WebCore::setJSTestObjAttrWithSetterException):
1595         (WebCore::setJSTestObjStringAttrWithGetterException):
1596         (WebCore::setJSTestObjStringAttrWithSetterException):
1597         (WebCore::setJSTestObjCustomAttr):
1598         (WebCore::setJSTestObjWithScriptStateAttribute):
1599         (WebCore::setJSTestObjWithScriptExecutionContextAttribute):
1600         (WebCore::setJSTestObjWithScriptStateAttributeRaises):
1601         (WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
1602         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
1603         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
1604         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
1605         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
1606         (WebCore::setJSTestObjConditionalAttr1):
1607         (WebCore::setJSTestObjConditionalAttr2):
1608         (WebCore::setJSTestObjConditionalAttr3):
1609         (WebCore::setJSTestObjConditionalAttr4Constructor):
1610         (WebCore::setJSTestObjConditionalAttr5Constructor):
1611         (WebCore::setJSTestObjConditionalAttr6Constructor):
1612         (WebCore::setJSTestObjAnyAttribute):
1613         (WebCore::setJSTestObjMutablePoint):
1614         (WebCore::setJSTestObjImmutablePoint):
1615         (WebCore::setJSTestObjStrawberry):
1616         (WebCore::setJSTestObjStrictFloat):
1617         (WebCore::setJSTestObjId):
1618         (WebCore::setJSTestObjReplaceableAttribute):
1619         (WebCore::setJSTestObjNullableLongSettableAttribute):
1620         (WebCore::setJSTestObjNullableStringValue):
1621         (WebCore::setJSTestObjAttributeWithReservedEnumType):
1622         * bindings/scripts/test/JS/JSTestObj.h:
1623         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
1624         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1625         (WebCore::setJSTestSerializedScriptValueInterfaceValue):
1626         (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
1627         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
1628         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1629         (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
1630         (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
1631         (WebCore::setJSTestTypedefsAttrWithGetterException):
1632         (WebCore::setJSTestTypedefsAttrWithSetterException):
1633         (WebCore::setJSTestTypedefsStringAttrWithGetterException):
1634         (WebCore::setJSTestTypedefsStringAttrWithSetterException):
1635         * bindings/scripts/test/JS/JSTestTypedefs.h:
1636         * bindings/scripts/test/JS/JSattribute.cpp:
1637         * bindings/scripts/test/JS/JSreadonly.cpp:
1638
1639 2014-01-24  Oliver Hunt  <oliver@apple.com>
1640
1641         Generic JSObject::put should handle static properties in the classinfo hierarchy
1642         https://bugs.webkit.org/show_bug.cgi?id=127523
1643
1644         Reviewed by Geoffrey Garen.
1645
1646         Update the bindings generator to emit the flag indicating the presence
1647         of setters, and remove the many (now unnecessary) put overrides.
1648         Tested with run-jsc-benchmarks and shows neutral performance. A few of the
1649         micro benchmarks actually get a significant performance increase which
1650         is nice.
1651
1652         * bindings/js/JSDOMWindowCustom.cpp:
1653         (WebCore::JSDOMWindow::put):
1654             We still need a custom call to lookupPut here in order
1655             to get the magic security semantics of the window object.
1656         * bindings/scripts/CodeGeneratorJS.pm:
1657         (hashTableAccessor):
1658         (prototypeHashTableAccessor):
1659         (constructorHashTableAccessor):
1660         (GenerateImplementation):
1661         (GenerateHashTable):
1662         (GenerateConstructorHelperMethods):
1663
1664         * bindings/js/JSDOMWindowCustom.cpp:
1665         (WebCore::JSDOMWindow::put):
1666         * bindings/scripts/CodeGeneratorJS.pm:
1667         (hashTableAccessor):
1668         (prototypeHashTableAccessor):
1669         (constructorHashTableAccessor):
1670         (InstanceOverridesPutImplementation):
1671         (InstanceOverridesPutDeclaration):
1672         (GenerateHeader):
1673         (GenerateImplementation):
1674         (GenerateHashTable):
1675         (GenerateConstructorHelperMethods):
1676         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
1677         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
1678         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
1679         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
1680         * bindings/scripts/test/JS/JSTestException.cpp:
1681         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
1682         * bindings/scripts/test/JS/JSTestInterface.cpp:
1683         (WebCore::JSTestInterface::put):
1684         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
1685         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
1686         * bindings/scripts/test/JS/JSTestNode.cpp:
1687         * bindings/scripts/test/JS/JSTestObj.cpp:
1688         * bindings/scripts/test/JS/JSTestObj.h:
1689         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
1690         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1691         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
1692         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1693         * bindings/scripts/test/JS/JSTestTypedefs.h:
1694         * bindings/scripts/test/JS/JSattribute.cpp:
1695         * bindings/scripts/test/JS/JSreadonly.cpp:
1696         * html/canvas/WebGLRenderingContext.idl:
1697           Remove bogus attribute, as it has never been in the spec and should not
1698           have been added.
1699
1700 2014-01-24  Commit Queue  <commit-queue@webkit.org>
1701
1702         Unreviewed, rolling out r162713.
1703         http://trac.webkit.org/changeset/162713
1704         https://bugs.webkit.org/show_bug.cgi?id=127593
1705
1706         broke media/network-no-source-const-shadow (Requested by
1707         thorton on #webkit).
1708
1709         * bindings/js/JSDOMWindowCustom.cpp:
1710         (WebCore::JSDOMWindow::put):
1711         * bindings/scripts/CodeGeneratorJS.pm:
1712         (hashTableAccessor):
1713         (prototypeHashTableAccessor):
1714         (constructorHashTableAccessor):
1715         (GenerateHeader):
1716         (GenerateImplementation):
1717         (GenerateHashTable):
1718         (GenerateConstructorHelperMethods):
1719         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
1720         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
1721         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
1722         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
1723         * bindings/scripts/test/JS/JSTestException.cpp:
1724         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
1725         * bindings/scripts/test/JS/JSTestInterface.cpp:
1726         (WebCore::JSTestInterface::put):
1727         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
1728         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
1729         * bindings/scripts/test/JS/JSTestNode.cpp:
1730         * bindings/scripts/test/JS/JSTestObj.cpp:
1731         (WebCore::JSTestObj::put):
1732         * bindings/scripts/test/JS/JSTestObj.h:
1733         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
1734         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1735         (WebCore::JSTestSerializedScriptValueInterface::put):
1736         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
1737         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1738         (WebCore::JSTestTypedefs::put):
1739         * bindings/scripts/test/JS/JSTestTypedefs.h:
1740         * bindings/scripts/test/JS/JSattribute.cpp:
1741         * bindings/scripts/test/JS/JSreadonly.cpp:
1742         * html/canvas/WebGLRenderingContext.idl:
1743
1744 2014-01-24  Zalan Bujtas  <zalan@apple.com>
1745
1746         Replace LayoutUnit() calls to a more descriptive LayoutUnit::fromPixel(int).
1747         https://bugs.webkit.org/show_bug.cgi?id=127580
1748
1749         Reviewed by Simon Fraser.
1750
1751         LayoutUnit(1) statement is ambiguous. While it is intended to set one (CSS) pixel, it
1752         could be interpreted as 1 layout unit (1/64th of a CSS pixel atm).
1753
1754         No change in behavior.
1755
1756         * inspector/InspectorOverlay.cpp:
1757         (WebCore::buildObjectForRegionHighlight):
1758         * rendering/FloatingObjects.cpp:
1759         (WebCore::ComputeFloatOffsetForFloatLayoutAdapter<FloatTypeValue>::heightRemaining):
1760         * rendering/RenderBlock.cpp:
1761         (WebCore::RenderBlock::layoutShapeInsideInfo):
1762         * rendering/RenderBlockFlow.cpp:
1763         (WebCore::RenderBlockFlow::collapseMargins):
1764         * rendering/RenderFlexibleBox.cpp:
1765         (WebCore::RenderFlexibleBox::mainAxisContentExtent):
1766         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
1767         (WebCore::RenderFlexibleBox::alignChildren):
1768         * rendering/RenderMultiColumnFlowThread.cpp:
1769         (WebCore::RenderMultiColumnFlowThread::addForcedRegionBreak):
1770         * rendering/RenderMultiColumnSet.cpp:
1771         (WebCore::RenderMultiColumnSet::heightAdjustedForSetOffset):
1772         (WebCore::RenderMultiColumnSet::calculateBalancedHeight):
1773
1774 2014-01-24  Simon Fraser  <simon.fraser@apple.com>
1775
1776         Prepare scrolling tree to handle > 1 scrolling node
1777         https://bugs.webkit.org/show_bug.cgi?id=127590
1778
1779         Reviewed by Tim Horton.
1780
1781         Clean up the code path called after the ScrollingTree has scrolled a node,
1782         to prepare for multiple scrolling nodes.
1783         
1784         Change "updateMainFrameScrollPosition" terminology to "updateScrollPositionAfterAsyncScroll",
1785         and pass along the ScrollingNodeID that scrolled.
1786         
1787         Move updateMainFrameScrollPosition-related code from ScrollingCoordinator to
1788         AsyncScrollingCoordinator, since this sync-up is only necessary when doing
1789         async scrolling.
1790
1791         * WebCore.exp.in:
1792         * page/scrolling/AsyncScrollingCoordinator.cpp:
1793         (WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
1794         (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
1795         (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
1796         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScrollTimerFired):
1797         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
1798         * page/scrolling/AsyncScrollingCoordinator.h:
1799         (WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::ScheduledScrollUpdate):
1800         (WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::matchesUpdateType):
1801         Package up the data related to a scheduled scroll into a ScheduledScrollUpdate struct,
1802         for easier comparison and cleaner code.
1803         * page/scrolling/ScrollingCoordinator.cpp:
1804         (WebCore::ScrollingCoordinator::ScrollingCoordinator):
1805         * page/scrolling/ScrollingCoordinator.h:
1806         * page/scrolling/ScrollingTree.h:
1807         * page/scrolling/ThreadedScrollingTree.cpp:
1808         (WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
1809         * page/scrolling/ThreadedScrollingTree.h:
1810         * page/scrolling/ios/ScrollingTreeIOS.cpp:
1811         (WebCore::ScrollingTreeIOS::scrollingTreeNodeDidScroll):
1812         * page/scrolling/ios/ScrollingTreeIOS.h:
1813         * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
1814         (WebCore::ScrollingTreeScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
1815         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
1816         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
1817
1818 2014-01-24  Mark Lam  <mark.lam@apple.com>
1819
1820         ASSERT(!m_markedSpace.m_currentDelayedReleaseScope) reloading page in inspector.
1821         <https://webkit.org/b/127582>
1822
1823         Reviewed by Mark Hahnenberg.
1824
1825         No new tests.
1826
1827         * bindings/js/ScriptController.cpp:
1828         (WebCore::ScriptController::attachDebugger):
1829         * bindings/js/WorkerScriptController.cpp:
1830         (WebCore::WorkerScriptController::detachDebugger):
1831         - Adding reasons for detaching a globalObject from the debugger.
1832
1833 2014-01-24  Zalan Bujtas  <zalan@apple.com>
1834
1835         Subpixel rendering: Make PaintInfo layout unit aware.
1836         https://bugs.webkit.org/show_bug.cgi?id=127562
1837
1838         Reviewed by Simon Fraser.
1839
1840         Replace PaintInfo's IntRect with LayoutRect to be able to render to
1841         subpixel positions.
1842
1843         No functional changes.
1844
1845         * platform/graphics/LayoutRect.h:
1846         * rendering/PaintInfo.h:
1847         (WebCore::PaintInfo::PaintInfo):
1848         (WebCore::PaintInfo::applyTransform):
1849         * rendering/RenderBlock.cpp:
1850         (WebCore::RenderBlock::paint):
1851         * rendering/RenderBoxModelObject.cpp:
1852         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
1853         * rendering/RenderLayer.cpp:
1854         (WebCore::cornerRect):
1855         (WebCore::RenderLayer::scrollCornerRect):
1856         (WebCore::resizerCornerRect):
1857         (WebCore::RenderLayer::scrollCornerAndResizerRect):
1858         (WebCore::RenderLayer::horizontalScrollbarStart):
1859         (WebCore::RenderLayer::drawPlatformResizerImage):
1860         (WebCore::RenderLayer::paintResizer):
1861         (WebCore::RenderLayer::hitTestOverflowControls):
1862         * rendering/RenderLayer.h:
1863         * rendering/RenderLayerBacking.cpp:
1864         (WebCore::RenderLayerBacking::paintContents):
1865         * rendering/RenderListBox.cpp:
1866         (WebCore::RenderListBox::paintScrollbar):
1867         * rendering/RenderWidget.cpp:
1868         (WebCore::RenderWidget::paintContents):
1869         * rendering/mathml/RenderMathMLOperator.cpp:
1870         (WebCore::RenderMathMLOperator::fillWithExtensionGlyph):
1871         * rendering/svg/SVGRenderingContext.h:
1872
1873 2014-01-24  Simon Fraser  <simon.fraser@apple.com>
1874
1875         #ifdef out handleWheelEventPhase for iOS
1876         https://bugs.webkit.org/show_bug.cgi?id=127583
1877
1878         Reviewed by Tim Horton.
1879
1880         handleWheelEventPhase() doesn't make any sense for iOS, which
1881         has no wheel events.
1882
1883         * page/scrolling/ScrollingTree.h:
1884         * page/scrolling/ThreadedScrollingTree.cpp:
1885         * page/scrolling/ThreadedScrollingTree.h:
1886         * page/scrolling/ios/ScrollingTreeIOS.h:
1887
1888 2014-01-24  David Hyatt  <hyatt@apple.com>
1889
1890         [New Multicolumn] Don't destroy all the renderers when a multi-column block stops being multi-column (and vice versa)
1891         https://bugs.webkit.org/show_bug.cgi?id=127584
1892
1893         Make the logic for when you need columns and when you don't shared between the
1894         old multi-column code and the new multi-column code. Make sure that the flow thread
1895         and sets get created lazily and destroyed on-demand when whether or not we should
1896         have multiple columns changes.
1897
1898         Reviewed by Beth Dakin.
1899
1900         * rendering/RenderBlock.cpp:
1901         (WebCore::RenderBlock::updateLogicalWidthAndColumnWidth):
1902         No longer virtual. The new column code now uses this function too.
1903
1904         (WebCore::RenderBlock::availableLogicalWidth):
1905         Renamed desiredColumnWidth() to computedColumnWidth().
1906
1907         (WebCore::RenderBlock::computeColumnCountAndWidth):
1908         Renamed calcColumnWidth to computeColumnCountAndWidth.
1909
1910         (WebCore::RenderBlock::setComputedColumnCountAndWidth):
1911         Rename setDesiredColumnCountAndWidth to computed.
1912
1913         (WebCore::RenderBlock::computedColumnWidth):
1914         (WebCore::RenderBlock::computedColumnCount):
1915         Renamed desiredColumnWidth/Count to computedColumnWidth/Count and made them virtual.
1916
1917         (WebCore::RenderBlock::updateFirstLetterStyle):
1918         desired -> computed rename.
1919
1920         * rendering/RenderBlock.h:
1921         Renames and made a few functions virtual so that RenderBlockFlow can override.
1922
1923         * rendering/RenderBlockFlow.cpp:
1924         (WebCore::RenderBlockFlow::RenderBlockFlow):
1925         Don't create the flow thread at construction time any longer.
1926
1927         (WebCore::RenderBlockFlow::createMultiColumnFlowThread):
1928         (WebCore::RenderBlockFlow::destroyMultiColumnFlowThread):
1929         The methods to create and destroy flow threads. These work at any time now and will
1930         fix up the render tree accordingly.
1931
1932         (WebCore::RenderBlockFlow::setComputedColumnCountAndWidth):
1933         Virtual override that creates/destroys the new multi-column information as needed.
1934
1935         (WebCore::RenderBlockFlow::computedColumnWidth):
1936         (WebCore::RenderBlockFlow::computedColumnCount):
1937         Overrides to return the cached column width and count from the flow thread.
1938
1939         * rendering/RenderBlockFlow.h:
1940         Has overrides of the virtual functions needed to turn multi-column state on/off and
1941         to hand back computed count/width information.
1942
1943         * rendering/RenderMultiColumnFlowThread.cpp:
1944         * rendering/RenderMultiColumnFlowThread.h:
1945         Removed the algorithm to compute column count and width, since this has been combined
1946         with the old multi-column layout code.
1947
1948         * rendering/RenderView.cpp:
1949         (WebCore::RenderView::computeColumnCountAndWidth):
1950         Renamed desired -> computed.
1951
1952         * rendering/RenderView.h:
1953         Renamed desired -> computed.
1954
1955         * style/StyleResolveTree.cpp:
1956         (WebCore::Style::determineChange):
1957         (WebCore::Style::resolveLocal):
1958         (WebCore::Style::resolveTree):
1959         * style/StyleResolveTree.h:
1960         The Settings argument is no longer needed now that we don't destroy and re-create
1961         the renderer for a block flow if it stops being (or becomes) multi-column.
1962
1963 2014-01-24  Anders Carlsson  <andersca@apple.com>
1964
1965         Fix 32-bit build.
1966
1967         * WebCore.exp.in:
1968
1969 2014-01-24  Brent Fulgham  <bfulgham@apple.com>
1970
1971         [Win] Convert some NMake files to MSBuild project files
1972         https://bugs.webkit.org/show_bug.cgi?id=127579
1973
1974         Reviewed by Tim Horton.
1975
1976         * WebCore.vcxproj/WebCore.make: Removed.
1977         * WebCore.vcxproj/WebCore.proj: Added.
1978
1979 2014-01-24  Joseph Pecoraro  <pecoraro@apple.com>
1980
1981         fast/profiler tests ASSERTing after moving recompileAllJSFunctions off a timer
1982         https://bugs.webkit.org/show_bug.cgi?id=127566
1983
1984         Reviewed by Oliver Hunt.
1985
1986         Covered by existing tests.
1987
1988         * testing/Internals.cpp:
1989         (WebCore::Internals::closeDummyInspectorFrontend):
1990         Now that we don't have to fake that this is a page being destroyed to
1991         avoid recompilation. Use the InspectorDestroyed reason.
1992
1993 2014-01-24  Anders Carlsson  <andersca@apple.com>
1994
1995         Get rid of monotonicallyIncreasingTimeMS and start using std::chrono instead
1996         https://bugs.webkit.org/show_bug.cgi?id=127571
1997
1998         Reviewed by Antti Koivisto.
1999
2000         WebCore.exp.in:
2001         Update symbols.
2002
2003         * dom/Document.cpp:
2004         (WebCore::Document::Document):
2005         (WebCore::Document::implicitClose):
2006         (WebCore::Document::setParsing):
2007         (WebCore::Document::isLayoutTimerActive):
2008         (WebCore::Document::minimumLayoutDelay):
2009         (WebCore::Document::elapsedTime):
2010         (WebCore::Document::write):
2011         (WebCore::Document::styleResolverChanged):
2012         * dom/Document.h:
2013         Use std::chrono instead of doubles for the times and durations.
2014
2015         * fileapi/FileReader.cpp:
2016         (WebCore::FileReader::FileReader):
2017         (WebCore::FileReader::didReceiveData):
2018         * fileapi/FileReader.h:
2019         Switch over to std::chrono.
2020
2021         * page/FrameView.cpp:
2022         (WebCore::FrameView::layout):
2023         (WebCore::FrameView::layoutTimerFired):
2024         (WebCore::FrameView::scheduleRelayout):
2025         (WebCore::FrameView::scheduleRelayoutOfSubtree):
2026         Update for Document::elapsedTime() changes.
2027
2028         * page/Settings.cpp:
2029         (WebCore::Settings::setLayoutInterval):
2030         * page/Settings.h:
2031         (WebCore::Settings::layoutInterval):
2032         Change layoutInterval to be std::chrono::milliseconds instead of int.
2033
2034         * platform/Timer.h:
2035         (WebCore::TimerBase::startOneShot):
2036         Add an overload that takes std::chrono::milliseconds.
2037
2038 2014-01-24  Oliver Hunt  <oliver@apple.com>
2039
2040         Generic JSObject::put should handle static properties in the classinfo hierarchy
2041         https://bugs.webkit.org/show_bug.cgi?id=127523
2042
2043         Reviewed by Geoffrey Garen.
2044
2045         Update the bindings generator to emit the flag indicating the presence
2046         of setters, and remove the many (now unnecessary) put overrides.
2047         Tested with run-jsc-benchmarks and shows neutral performance. A few of the
2048         micro benchmarks actually get a significant performance increase which
2049         is nice.
2050
2051         * bindings/js/JSDOMWindowCustom.cpp:
2052         (WebCore::JSDOMWindow::put):
2053             We still need a custom call to lookupPut here in order
2054             to get the magic security semantics of the window object.
2055         * bindings/scripts/CodeGeneratorJS.pm:
2056         (hashTableAccessor):
2057         (prototypeHashTableAccessor):
2058         (constructorHashTableAccessor):
2059         (GenerateImplementation):
2060         (GenerateHashTable):
2061         (GenerateConstructorHelperMethods):
2062
2063         * bindings/js/JSDOMWindowCustom.cpp:
2064         (WebCore::JSDOMWindow::put):
2065         * bindings/scripts/CodeGeneratorJS.pm:
2066         (hashTableAccessor):
2067         (prototypeHashTableAccessor):
2068         (constructorHashTableAccessor):
2069         (InstanceOverridesPutImplementation):
2070         (InstanceOverridesPutDeclaration):
2071         (GenerateHeader):
2072         (GenerateImplementation):
2073         (GenerateHashTable):
2074         (GenerateConstructorHelperMethods):
2075         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
2076         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
2077         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
2078         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
2079         * bindings/scripts/test/JS/JSTestException.cpp:
2080         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
2081         * bindings/scripts/test/JS/JSTestInterface.cpp:
2082         (WebCore::JSTestInterface::put):
2083         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2084         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2085         * bindings/scripts/test/JS/JSTestNode.cpp:
2086         * bindings/scripts/test/JS/JSTestObj.cpp:
2087         * bindings/scripts/test/JS/JSTestObj.h:
2088         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
2089         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2090         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
2091         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
2092         * bindings/scripts/test/JS/JSTestTypedefs.h:
2093         * bindings/scripts/test/JS/JSattribute.cpp:
2094         * bindings/scripts/test/JS/JSreadonly.cpp:
2095         * html/canvas/WebGLRenderingContext.idl:
2096           Remove bogus attribute, as it has never been in the spec and should not
2097           have been added.
2098
2099 2014-01-24  David Hyatt  <hyatt@apple.com>
2100
2101         [New Multicolumn] Eliminate RenderMultiColumnBlock
2102         https://bugs.webkit.org/show_bug.cgi?id=127565
2103
2104         Reviewed by Antti Koivisto.
2105
2106         This patch eliminates RenderMultiColumnBlock and folds all of its remaining code
2107         back into RenderBlockFlow. This allows all block flows to support multi-column
2108         layout, including table cells, list items, and the RenderView itself.
2109
2110         * CMakeLists.txt:
2111         * WebCore.order:
2112         * WebCore.vcxproj/WebCore.vcxproj:
2113         * WebCore.vcxproj/WebCore.vcxproj.filters:
2114         * WebCore.xcodeproj/project.pbxproj:
2115         Remove RenderMultiColumnBlock from the makefiles.
2116
2117         * rendering/RenderBlock.cpp:
2118         (WebCore::RenderBlock::adjustIntrinsicLogicalWidthsForColumns):
2119         Tweak the comment, since it was no longer accurate.
2120
2121         * rendering/RenderBlock.h:
2122         Move some functions down into RenderBlockFlow.
2123
2124         * rendering/RenderBlockFlow.cpp:
2125         (WebCore::RenderBlockFlow::RenderBlockFlow):
2126         (WebCore::RenderBlockFlow::createMultiColumnFlowThreadIfNeeded):
2127         (WebCore::RenderBlockFlow::styleDidChange):
2128         (WebCore::RenderBlockFlow::relayoutForPagination):
2129         (WebCore::RenderBlockFlow::layoutSpecialExcludedChild):
2130         (WebCore::RenderBlockFlow::updateLogicalWidthAndColumnWidth):
2131         (WebCore::RenderBlockFlow::addChild):
2132         (WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
2133          * rendering/RenderBlockFlow.h:
2134          Move a bunch of functions from RenderMultiColumnBlock up into RenderBlockFlow.
2135
2136         * rendering/RenderBox.cpp:
2137         (WebCore::RenderBox::isUnsplittableForPagination):
2138         Calls isMultiColumnBlockFlow() now instead of testing for a specific renderer type.
2139
2140         * rendering/RenderElement.cpp:
2141         (WebCore::RenderElement::createFor):
2142         Remove the multicolumn block creation code, since we always make a block flow now.
2143
2144         * rendering/RenderMultiColumnBlock.cpp: Removed.
2145         * rendering/RenderMultiColumnBlock.h: Removed.
2146         Nuke the files.
2147
2148         * rendering/RenderMultiColumnFlowThread.cpp:
2149         (WebCore::RenderMultiColumnFlowThread::initialLogicalWidth):
2150         (WebCore::RenderMultiColumnFlowThread::autoGenerateRegionsToBlockOffset):
2151         * rendering/RenderMultiColumnSet.cpp:
2152         (WebCore::RenderMultiColumnSet::heightAdjustedForSetOffset):
2153         (WebCore::RenderMultiColumnSet::addForcedBreak):
2154         (WebCore::RenderMultiColumnSet::recalculateBalancedHeight):
2155         (WebCore::RenderMultiColumnSet::updateLogicalWidth):
2156         (WebCore::RenderMultiColumnSet::prepareForLayout):
2157         (WebCore::RenderMultiColumnSet::columnGap):
2158         (WebCore::RenderMultiColumnSet::paintColumnRules):
2159         Change all of the functions in the multicolumnset and multicolumnflowthread classes
2160         to cast the parent to a RenderBlockFlow now instead of a RenderMultiColumnBlock.
2161         Change the code to call through to multiColumnFlowThread() for column-specific information
2162         for that parent block.
2163
2164         * rendering/RenderObject.h:
2165         (WebCore::RenderObject::isMultiColumnBlockFlow):
2166         Remove isRenderMultiColumnBlock() and replace with isMultiColumnBlockFlow().
2167
2168         * rendering/RenderingAllInOne.cpp:
2169         Remove RenderMultiColumnBlock include.
2170         
2171 2014-01-24  Brady Eidson  <beidson@apple.com>
2172
2173         IDB: support createIndex/deleteIndex messaging
2174         https://bugs.webkit.org/show_bug.cgi?id=127546
2175
2176         Reviewed by Tim Horton.
2177
2178         * WebCore.exp.in: Export a needed CrossThreadCopier
2179
2180 2014-01-24  Daniel Bates  <dabates@apple.com>
2181
2182         Fix the Windows build after <http://trac.webkit.org/changeset/162704>
2183         (https://bugs.webkit.org/show_bug.cgi?id=127293)
2184
2185         Only include TargetConditionals.h when building on a Darwin-based OS.
2186         Also, check that TARGET_OS_IPHONE is defined before referencing its value
2187         since it will be undefined when building on Windows.
2188
2189         * bindings/objc/PublicDOMInterfaces.h:
2190
2191 2014-01-24  Daniel Bates  <dabates@apple.com>
2192
2193         Bindings generation tests hit an error trying to include wtf/Platform.h after r161638
2194         https://bugs.webkit.org/show_bug.cgi?id=127293
2195
2196         Reviewed by Alexey Proskuryakov.
2197
2198         Include TargetConditionals.h instead of wtf/Platform.h as the latter isn't available
2199         in the public SDK.
2200
2201         As a side effect of this change, replace usage of PLATFORM(IOS) with TARGET_OS_IPHONE.
2202
2203         * bindings/objc/PublicDOMInterfaces.h:
2204
2205 2014-01-21  David Hyatt  <hyatt@apple.com>
2206
2207         [New Multicolumn] Table cells and list items need to work as multicolumn blocks.
2208         https://bugs.webkit.org/show_bug.cgi?id=127365
2209         
2210         This patch is a first step towards eliminating RenderMultiColumnBlock and moving
2211         all its functionality into RenderBlockFlow. Doing so will allow table cells, list
2212         items and the RenderView to use the new multi-column layout.
2213         
2214         Reviewed by Simon Fraser.
2215
2216         * rendering/RenderBlockFlow.cpp:
2217         (WebCore::RenderBlockFlow::setMultiColumnFlowThread):
2218         * rendering/RenderBlockFlow.h:
2219         (WebCore::RenderBlockFlow::RenderBlockFlowRareData::RenderBlockFlowRareData):
2220         (WebCore::RenderBlockFlow::multiColumnFlowThread):
2221         Add the flow thread pointer to the multi-column flow thread to RenderBlockFlow's
2222         rare data. This lets us use only one pointer in the rare data to point to an object
2223         that can hold all of the rest of the multi-column info.
2224
2225         * rendering/RenderMultiColumnBlock.cpp:
2226         (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
2227         Move the construction of the flow thread to the constructor. This ensures we
2228         never have a null flow thread and lets us avoid having to null check it for
2229         empty multi-column blocks.
2230
2231         (WebCore::RenderMultiColumnBlock::columnHeightAvailable):
2232         (WebCore::RenderMultiColumnBlock::columnWidth):
2233         (WebCore::RenderMultiColumnBlock::columnCount):
2234         (WebCore::RenderMultiColumnBlock::updateLogicalWidthAndColumnWidth):
2235         The above functions now call through to the multi-column flow thread for results.
2236
2237         (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
2238          Set the column height available on the flow thread.
2239
2240         (WebCore::RenderMultiColumnBlock::relayoutForPagination):
2241         The balancing pass and guard is in the multi-column flow thread now.
2242
2243         (WebCore::RenderMultiColumnBlock::addChild):
2244         Don't have to create the flow thread here any longer, since we do it up front
2245         in the constructor of RenderMultiColumnBlock.
2246
2247         (WebCore::RenderMultiColumnBlock::layoutSpecialExcludedChild):
2248         Don't need the null check of the flow thread any more.
2249
2250         * rendering/RenderMultiColumnBlock.h:
2251         Change the inlined functions to not be inlined, since they need to call
2252         RenderMultiColumnFlowThread functions now.
2253
2254         * rendering/RenderMultiColumnFlowThread.cpp:
2255         (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
2256         Init the new member variables we moved here from RenderMultiColumnBlock.
2257
2258         (WebCore::RenderMultiColumnFlowThread::computeColumnCountAndWidth):
2259         Moved from RenderMultiColumnBlock.
2260
2261         * rendering/RenderMultiColumnFlowThread.h:
2262         Add public getters/setters to the member variables so that RenderMultiColumnBlock can
2263         still see them. Move the member variables here from RenderMultiColumnBlock.
2264
2265         * rendering/RenderMultiColumnSet.cpp:
2266         (WebCore::RenderMultiColumnSet::calculateBalancedHeight):
2267         (WebCore::RenderMultiColumnSet::prepareForLayout):
2268         (WebCore::RenderMultiColumnSet::columnCount):
2269         Call through to the flow thread instead.
2270
2271 2014-01-24  Zan Dobersek  <zdobersek@igalia.com>
2272
2273         Unreviewed GTK build fix after r162663.
2274
2275         * platform/gtk/ScrollViewGtk.cpp:
2276         (WebCore::ScrollView::visibleContentRectInternal): Renamed from visibleContentRect.
2277
2278 2014-01-24  Zan Dobersek  <zdobersek@igalia.com>
2279
2280         Move HistoryItem to std::unique_ptr
2281         https://bugs.webkit.org/show_bug.cgi?id=127275
2282
2283         Reviewed by Darin Adler.
2284
2285         Replace the uses of OwnPtr and PassOwnPtr in the HistoryItem class with std::unique_ptr.
2286
2287         * history/HistoryItem.cpp:
2288         (WebCore::HistoryItem::HistoryItem):
2289         (WebCore::HistoryItem::reset):
2290         (WebCore::HistoryItem::addRedirectURL):
2291         (WebCore::HistoryItem::setRedirectURLs):
2292         * history/HistoryItem.h:
2293         * history/mac/HistoryItemMac.mm:
2294         (WebCore::HistoryItem::setTransientProperty):
2295         WebCore.exp.in: Update the symbol.
2296
2297 2014-01-23  Morten Stenshorne  <mstensho@opera.com>
2298
2299         Region based multicol: unresolvable percent height results in 1px tall multicol
2300         https://bugs.webkit.org/show_bug.cgi?id=122826
2301
2302         Reviewed by David Hyatt.
2303
2304         If a box has a percentage height, but the computed height of its
2305         containing block is auto, the computed height of the box also becomes
2306         auto. computeContentLogicalHeight() returns -1 if the height isn't
2307         resolvable, and we need to make sure that such a value doesn't
2308         constrain the height of the multicol container.
2309
2310         Tests: fast/multicol/newmulticol/unresolvable-percent-height-2.html
2311                fast/multicol/newmulticol/unresolvable-percent-height.html
2312                fast/multicol/newmulticol/unresolvable-percent-max-height-2.html
2313                fast/multicol/newmulticol/unresolvable-percent-max-height.html
2314
2315         * rendering/RenderMultiColumnSet.cpp:
2316         (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
2317         (WebCore::RenderMultiColumnSet::calculateBalancedHeight):
2318         (WebCore::RenderMultiColumnSet::recalculateBalancedHeight):
2319         (WebCore::RenderMultiColumnSet::prepareForLayout):
2320
2321 2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
2322
2323         Move ContentSearchUtils, ScriptBreakpoint, and ScriptDebugListener into JavaScriptCore for inspector
2324         https://bugs.webkit.org/show_bug.cgi?id=127537
2325
2326         Reviewed by Timothy Hatcher.
2327
2328           - Rename ContentSearchUtils => ContentSearchUtilities and move to JavaScriptCore.
2329           - Move ScriptBreakpoint and ScriptDebugListener to JavaScriptCore.
2330           - Move them all to namespace Inspector.
2331           - Update build files and users to the new names.
2332
2333         No change in functionality, just moving code.
2334
2335         * CMakeLists.txt:
2336         * ForwardingHeaders/inspector/ContentSearchUtilities.h: Added.
2337         * ForwardingHeaders/inspector/ScriptBreakpoint.h: Added.
2338         * ForwardingHeaders/inspector/ScriptDebugListener.h: Added.
2339         * GNUmakefile.list.am:
2340         * WebCore.vcxproj/WebCore.vcxproj:
2341         * WebCore.vcxproj/WebCore.vcxproj.filters:
2342         * WebCore.xcodeproj/project.pbxproj:
2343         * bindings/js/PageScriptDebugServer.cpp:
2344         * bindings/js/PageScriptDebugServer.h:
2345         * bindings/js/ScriptDebugServer.cpp:
2346         * bindings/js/ScriptDebugServer.h:
2347         * bindings/js/WorkerScriptDebugServer.cpp:
2348         * bindings/js/WorkerScriptDebugServer.h:
2349         * inspector/InspectorAllInOne.cpp:
2350         * inspector/InspectorDebuggerAgent.cpp:
2351         (WebCore::InspectorDebuggerAgent::searchInContent):
2352         (WebCore::InspectorDebuggerAgent::sourceMapURLForScript):
2353         (WebCore::InspectorDebuggerAgent::didParseSource):
2354         * inspector/InspectorDebuggerAgent.h:
2355         * inspector/InspectorPageAgent.cpp:
2356         (WebCore::InspectorPageAgent::sourceMapURLForResource):
2357         (WebCore::InspectorPageAgent::searchInResource):
2358         (WebCore::InspectorPageAgent::searchInResources):
2359         * inspector/InspectorStyleSheet.cpp:
2360         (WebCore::buildSourceRangeObject):
2361         (WebCore::InspectorStyleSheet::lineEndings):
2362         (WebCore::InspectorStyleSheetForInlineStyle::lineEndings):
2363
2364 2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
2365
2366         Move RegularExpression into JavaScriptCore for inspector
2367         https://bugs.webkit.org/show_bug.cgi?id=127526
2368
2369         Reviewed by Geoffrey Garen.
2370
2371         Update as appropriate for the moved file and namespace
2372         change for class RegularExpression.
2373
2374         * CMakeLists.txt:
2375         * ForwardingHeaders/yarr/RegularExpression.h: Added.
2376         * GNUmakefile.list.am:
2377         * WebCore.exp.in:
2378         * WebCore.vcxproj/WebCore.vcxproj:
2379         * WebCore.vcxproj/WebCore.vcxproj.filters:
2380         * WebCore.xcodeproj/project.pbxproj:
2381         * dom/DOMImplementation.h:
2382         * html/BaseCheckableInputType.cpp:
2383         * html/BaseTextInputType.cpp:
2384         (WebCore::BaseTextInputType::patternMismatch):
2385         * html/EmailInputType.cpp:
2386         (WebCore::isValidEmailAddress):
2387         * html/InputType.cpp:
2388         * inspector/ContentSearchUtils.cpp:
2389         (WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):
2390         (WebCore::ContentSearchUtils::createSearchRegex):
2391         (WebCore::ContentSearchUtils::countRegularExpressionMatches):
2392         (WebCore::ContentSearchUtils::searchInTextByLines):
2393         * inspector/ContentSearchUtils.h:
2394         * inspector/InspectorDebuggerAgent.cpp:
2395         (WebCore::matches):
2396         (WebCore::InspectorDebuggerAgent::breakpointActionLog):
2397         (WebCore::InspectorDebuggerAgent::breakpointActionSound):
2398         * inspector/InspectorDebuggerAgent.h:
2399         * inspector/InspectorPageAgent.cpp:
2400         (WebCore::InspectorPageAgent::searchInResources):
2401         * inspector/InspectorPageAgent.h:
2402         * inspector/InspectorRuntimeAgent.cpp:
2403         * inspector/InspectorRuntimeAgent.h:
2404         * inspector/InspectorStyleSheet.cpp:
2405         (WebCore::selectorsFromSource):
2406         * inspector/WorkerDebuggerAgent.cpp:
2407         * page/Frame.cpp:
2408         (WebCore::createRegExpForLabels):
2409         (WebCore::Frame::searchForLabelsAboveCell):
2410         (WebCore::Frame::searchForLabelsBeforeElement):
2411         (WebCore::matchLabelsAgainstString):
2412         * page/Frame.h:
2413         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
2414         (WebCore::GraphicsContext3D::getUnmangledInfoLog):
2415
2416 2014-01-23  Brady Eidson  <beidson@apple.com>
2417
2418         IDB: Support IDBObjectStore.clear()
2419         https://bugs.webkit.org/show_bug.cgi?id=127541
2420         
2421         Reviewed by Anders Carlsson.
2422
2423         The backing store should never be performing callbacks directly:
2424         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
2425         (WebCore::IDBServerConnectionLevelDB::clearObjectStore):
2426
2427         Instead, the transaction operations should do that themselves:
2428         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
2429         (WebCore::ClearObjectStoreOperation::perform):
2430         * Modules/indexeddb/IDBTransactionBackendOperations.h:
2431         (WebCore::ClearObjectStoreOperation::transaction):
2432
2433 2014-01-23  Dan Bernstein  <mitz@apple.com>
2434
2435         <rdar://problem/15875326> REGRESSION (r162257): Assertion failure (should not be reached) in CSSPreloadScanner::tokenize()
2436         https://bugs.webkit.org/show_bug.cgi?id=127540
2437
2438         Reviewed by Anders Carlsson.
2439
2440         No new tests, because I could not reproduce the bug reliably and I don’t know how to trigger
2441         it.
2442
2443         * html/parser/CSSPreloadScanner.cpp:
2444         (WebCore::CSSPreloadScanner::scan): Check for the DoneParsingImportRules before tokenizing
2445         a character, not after. This restores the logic from before r162257.
2446
2447 2014-01-23  Jer Noble  <jer.noble@apple.com>
2448
2449         [iOS] Protect against possbile deadlock by delaying video layer creation
2450         https://bugs.webkit.org/show_bug.cgi?id=127505
2451
2452         Reviewed by Eric Carlson.
2453
2454         Work around a possible deadlock on iOS when creating a media element
2455         backed by AVFoundation by delaying creation of the AVPlayerLayer.
2456         The deadlock can occur when the web thread is doing CALayer layout
2457         while taking the web thread lock, while CoreMedia is doing property
2458         access on an async thread while taking the CM lock, and each is waiting
2459         for the other's lock to be released.
2460
2461         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2462         (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
2463
2464 2014-01-23  Jer Noble  <jer.noble@apple.com>
2465
2466         [MSE][Mac] Crash when reloading a page during playback
2467         https://bugs.webkit.org/show_bug.cgi?id=126903
2468
2469         Reviewed by Eric Carlson.
2470
2471         Periodic time observers added to AVSampleBufferRenderSynchronizer will execute their
2472         callback block even after being removed with -removeTimeObserver:, which is tracked by
2473         <rdar://problem/15798050>. Work around this problem by passing a WeakPtr into the block
2474         and bail early if the owning media player has been destroyed.
2475
2476         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
2477         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createWeakPtr):
2478         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
2479         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
2480
2481 2014-01-23  ChangSeok Oh  <changseok.oh@collabora.com>
2482
2483         Dragging from inner side of video to outside causes a crash
2484         https://bugs.webkit.org/show_bug.cgi?id=126338
2485
2486         Reviewed by Jer Noble.
2487
2488         The crash happens while dragging mouse cursor through timeline control to outside
2489         of video region. This is beacause media controls are selected with the drag.
2490         The media controls disappear when mouse cursor goes outside of video though
2491         the dragging/selection proceeds. If once media controls are hidden, related element
2492         lose their renderers. However the drag is still under going. it requires shadowPseudoId
2493         of the selected controls. Untorntunately, SliderThumbElement/SliderContainerElement
2494         don't return a static value for the shadowPseudoId unlike other media controls,
2495         but they need a renderer to determine it. This is the reason of crash.
2496
2497         Test: media/media-controller-drag-crash.html
2498
2499         * html/shadow/SliderThumbElement.cpp:
2500         (WebCore::SliderThumbElement::shadowPseudoId):
2501         (WebCore::SliderContainerElement::shadowPseudoId):
2502
2503 2014-01-23  Brady Eidson  <beidson@apple.com>
2504
2505         IDB: Implement SQLite backing store 'get' support
2506         https://bugs.webkit.org/show_bug.cgi?id=127502
2507
2508         Reviewed by Tim Horton.
2509
2510         Get a KeyRange from a KeyRangeData:
2511         * Modules/indexeddb/IDBKeyRangeData.cpp:
2512         (WebCore::IDBKeyRangeData::maybeCreateIDBKeyRange):
2513         * Modules/indexeddb/IDBKeyRangeData.h:
2514
2515         Add collation function support to SQLiteDatabase:
2516         * platform/sql/SQLiteDatabase.cpp:
2517         (WebCore::destroyCollationFunction):
2518         (WebCore::callCollationFunction):
2519         (WebCore::SQLiteDatabase::setCollationFunction):
2520         (WebCore::SQLiteDatabase::removeCollationFunction):
2521         * platform/sql/SQLiteDatabase.h:
2522
2523         * WebCore.exp.in:
2524
2525 2014-01-23  Jon Honeycutt  <jhoneycutt@apple.com>
2526
2527         Assertion failure in WebCore::PseudoElement::didRecalcStyle()
2528         <https://bugs.webkit.org/show_bug.cgi?id=126761>
2529         <rdar://problem/15793540>
2530
2531         Reviewed by Andy Estes.
2532
2533         Test: fast/images/animate-list-item-image-assertion.html
2534
2535         * dom/PseudoElement.cpp:
2536         (WebCore::PseudoElement::didRecalcStyle):
2537         Check isRenderImage() rather than isImage() before casting to
2538         RenderImage.
2539
2540         * editing/ios/EditorIOS.mm:
2541         (WebCore::getImage):
2542         Ditto.
2543
2544         * editing/mac/EditorMac.mm:
2545         (WebCore::getImage):
2546         Ditto.
2547
2548         * html/HTMLImageElement.cpp:
2549         (WebCore::HTMLImageElement::parseAttribute):
2550         (WebCore::HTMLImageElement::didAttachRenderers):
2551         Ditto.
2552
2553         * loader/ImageLoader.cpp:
2554         (WebCore::ImageLoader::renderImageResource):
2555         Ditto.
2556
2557         * page/DragController.cpp:
2558         (WebCore::getCachedImage):
2559         Ditto.
2560
2561         * rendering/RenderLayerBacking.cpp:
2562         (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
2563         (WebCore::RenderLayerBacking::updateImageContents):
2564         Ditto.
2565
2566 2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
2567
2568         Web Inspector: Remove recompileAllJSFunctions timer in ScriptDebugServer
2569         https://bugs.webkit.org/show_bug.cgi?id=127409
2570
2571         Reviewed by Geoffrey Garen.
2572
2573         Covered by existing tests.
2574
2575         * bindings/js/ScriptDebugServer.h:
2576         * bindings/js/ScriptDebugServer.cpp:
2577         (WebCore::ScriptDebugServer::ScriptDebugServer):
2578         Remove m_recompileTimer and the recompile soon function.
2579         We can just recompile immediately in all existing cases.
2580
2581         * bindings/js/PageScriptDebugServer.h:
2582         * bindings/js/PageScriptDebugServer.cpp:
2583         (WebCore::PageScriptDebugServer::addListener):
2584         (WebCore::PageScriptDebugServer::removeListener):
2585         (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
2586         (WebCore::PageScriptDebugServer::didAddFirstListener):
2587         (WebCore::PageScriptDebugServer::didRemoveLastListener):
2588         Add a "didAddFirstListener" to match "didRemoveLastListener".
2589         Only recompile functions when we attach the debugger and when
2590         we detach the last listener.
2591
2592         * bindings/js/WorkerScriptDebugServer.cpp:
2593         (WebCore::WorkerScriptDebugServer::addListener):
2594         (WebCore::WorkerScriptDebugServer::removeListener):
2595         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
2596         Same thing. Also rearrange the functions to read better.
2597
2598         * inspector/InspectorProfilerAgent.cpp:
2599         Use the direct recompile function instead of the removed "soon" version.
2600
2601         * WebCore.exp.in:
2602         Update disconnectFrontend symbol.
2603
2604         * page/PageDebuggable.cpp:
2605         (WebCore::PageDebuggable::disconnect):
2606         * testing/Internals.cpp:
2607         (WebCore::Internals::closeDummyInspectorFrontend):
2608         * workers/WorkerMessagingProxy.cpp:
2609         (WebCore::disconnectFromWorkerGlobalScopeInspectorTask):
2610         Include an InspectorDisconnectReason when calling disconnectFrontend.
2611
2612         * inspector/InspectorDatabaseAgent.h:
2613         * inspector/InspectorDebuggerAgent.cpp:
2614         (WebCore::InspectorDebuggerAgent::disable):
2615         (WebCore::InspectorDebuggerAgent::willDestroyFrontendAndBackend):
2616         If the disconnect reason is the page will be destroyed, don't recompile when disconnecting.
2617
2618         * inspector/InspectorProfilerAgent.h:
2619         * inspector/InspectorProfilerAgent.cpp:
2620         (WebCore::InspectorProfilerAgent::enable):
2621         (WebCore::InspectorProfilerAgent::disable):
2622         (WebCore::InspectorProfilerAgent::willDestroyFrontendAndBackend):
2623         If the disconnect reason is the page will be destroyed, don't recompile when disconnecting.
2624
2625         * inspector/InspectorController.h:
2626         * inspector/InspectorController.cpp:
2627         (WebCore::InspectorController::inspectedPageDestroyed):
2628         (WebCore::InspectorController::disconnectFrontend):
2629         (WebCore::InspectorController::close):
2630         Pass different reasons for the different disconnect reasons.
2631
2632         * inspector/WorkerInspectorController.h:
2633         * inspector/WorkerInspectorController.cpp:
2634         (WebCore::WorkerInspectorController::~WorkerInspectorController):
2635         (WebCore::WorkerInspectorController::disconnectFrontend):
2636         Pass different reasons for the different disconnect reasons.
2637
2638         * inspector/InspectorApplicationCacheAgent.cpp:
2639         (WebCore::InspectorApplicationCacheAgent::willDestroyFrontendAndBackend):
2640         * inspector/InspectorApplicationCacheAgent.h:
2641         * inspector/InspectorCSSAgent.cpp:
2642         (WebCore::InspectorCSSAgent::willDestroyFrontendAndBackend):
2643         * inspector/InspectorCSSAgent.h:
2644         * inspector/InspectorCanvasAgent.cpp:
2645         (WebCore::InspectorCanvasAgent::willDestroyFrontendAndBackend):
2646         * inspector/InspectorCanvasAgent.h:
2647         * inspector/InspectorConsoleAgent.cpp:
2648         (WebCore::InspectorConsoleAgent::willDestroyFrontendAndBackend):
2649         * inspector/InspectorConsoleAgent.h:
2650         * inspector/InspectorDOMAgent.cpp:
2651         (WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
2652         * inspector/InspectorDOMAgent.h:
2653         * inspector/InspectorDOMDebuggerAgent.cpp:
2654         (WebCore::InspectorDOMDebuggerAgent::willDestroyFrontendAndBackend):
2655         * inspector/InspectorDOMDebuggerAgent.h:
2656         * inspector/InspectorDOMStorageAgent.cpp:
2657         (WebCore::InspectorDOMStorageAgent::willDestroyFrontendAndBackend):
2658         * inspector/InspectorDOMStorageAgent.h:
2659         * inspector/InspectorDatabaseAgent.cpp:
2660         (WebCore::InspectorDatabaseAgent::willDestroyFrontendAndBackend):
2661         * inspector/InspectorDebuggerAgent.h:
2662         * inspector/InspectorHeapProfilerAgent.cpp:
2663         (WebCore::InspectorHeapProfilerAgent::willDestroyFrontendAndBackend):
2664         * inspector/InspectorHeapProfilerAgent.h:
2665         * inspector/InspectorIndexedDBAgent.cpp:
2666         (WebCore::InspectorIndexedDBAgent::willDestroyFrontendAndBackend):
2667         * inspector/InspectorIndexedDBAgent.h:
2668         * inspector/InspectorInputAgent.cpp:
2669         (WebCore::InspectorInputAgent::willDestroyFrontendAndBackend):
2670         * inspector/InspectorInputAgent.h:
2671         * inspector/InspectorLayerTreeAgent.cpp:
2672         (WebCore::InspectorLayerTreeAgent::willDestroyFrontendAndBackend):
2673         * inspector/InspectorLayerTreeAgent.h:
2674         * inspector/InspectorMemoryAgent.cpp:
2675         (WebCore::InspectorMemoryAgent::willDestroyFrontendAndBackend):
2676         * inspector/InspectorMemoryAgent.h:
2677         * inspector/InspectorPageAgent.cpp:
2678         (WebCore::InspectorPageAgent::willDestroyFrontendAndBackend):
2679         * inspector/InspectorPageAgent.h:
2680         * inspector/InspectorResourceAgent.cpp:
2681         (WebCore::InspectorResourceAgent::willDestroyFrontendAndBackend):
2682         * inspector/InspectorResourceAgent.h:
2683         * inspector/InspectorTimelineAgent.cpp:
2684         (WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
2685         * inspector/InspectorTimelineAgent.h:
2686         * inspector/InspectorWorkerAgent.cpp:
2687         (WebCore::InspectorWorkerAgent::willDestroyFrontendAndBackend):
2688         * inspector/InspectorWorkerAgent.h:
2689         * inspector/PageDebuggerAgent.cpp:
2690         (WebCore::PageDebuggerAgent::disable):
2691         (WebCore::PageDebuggerAgent::stopListeningScriptDebugServer):
2692         * inspector/PageDebuggerAgent.h:
2693         * inspector/PageRuntimeAgent.cpp:
2694         (WebCore::PageRuntimeAgent::willDestroyFrontendAndBackend):
2695         * inspector/PageRuntimeAgent.h:
2696         * inspector/WorkerDebuggerAgent.cpp:
2697         (WebCore::WorkerDebuggerAgent::stopListeningScriptDebugServer):
2698         * inspector/WorkerDebuggerAgent.h:
2699         * inspector/WorkerRuntimeAgent.cpp:
2700         (WebCore::WorkerRuntimeAgent::willDestroyFrontendAndBackend):
2701         * inspector/WorkerRuntimeAgent.h:
2702         Include InspectorDisconnectReason param.
2703
2704 2014-01-23  Simon Fraser  <simon.fraser@apple.com>
2705
2706         Another Windows fix: include <algorithm> for std::min and std::max.
2707         
2708         * platform/graphics/IntSize.h:
2709
2710 2014-01-23  Simon Fraser  <simon.fraser@apple.com>
2711
2712         Try to fix Windows build.
2713
2714         * platform/win/PopupMenuWin.cpp:
2715         (WebCore::PopupMenuWin::visibleSize):
2716         * platform/win/PopupMenuWin.h:
2717
2718 2014-01-23  Simon Fraser  <simon.fraser@apple.com>
2719
2720         Make visibleContentRect() return actualVisibleContentRect() on iOS most of the time
2721         https://bugs.webkit.org/show_bug.cgi?id=127456
2722         
2723         Reviewed by Antti Koivisto.
2724         
2725         On iOS, visibleContentRect() returns the entire document rect for historical
2726         reasons, and actualVisibleContentRect() returns what visibleContentRect()
2727         returns on other platforms.
2728         
2729         In addition, actualVisibleContentRect() was returning an empty rect in WK2.
2730         
2731         Reduce the confusion of #ifdefs by making visibleContentRect() behave like
2732         actualVisibleContentRect() by default on iOS. Where it needs the old behavior,
2733         an optional parameter, LegacyIOSDocumentVisibleRect, provides this.
2734         
2735         Achieve this by having the virtual ScrollableArea::visibleContentRectInternal(),
2736         which is called by non-virtual visibleContentRect() and visibleContentRectIncludingScrollbars().
2737         
2738         Similarly clean up visibleHeight/visibleWidth functions by having visibleSize() be virtual,
2739         with non-virtual visibleHeight() and visibleWidth().
2740         
2741         ScrollableArea subclasses override visibleContentRectInternal() and visibleSize() where necessary.
2742         
2743         Mechanically change all the call sites of actualVisibleContentRect() to
2744         use visibleContentRect(), and the call sites of visibleContentRect()
2745         to visibleContentRect(..., LegacyIOSDocumentVisibleRect), adding comments
2746         where this may not be appropriate.
2747         
2748         Change callers of visibleContentRect(IncludeScrollbars...) to visibleContentRectIncludingScrollbars().
2749         
2750         Also add actualScrollPosition(), and clean up some actualScroll* call sites.
2751         
2752         No behavior change.
2753
2754         * WebCore.exp.in:
2755         * accessibility/AccessibilityObject.cpp:
2756         (WebCore::AccessibilityObject::isOnscreen):
2757         (WebCore::AccessibilityObject::scrollToMakeVisibleWithSubFocus):
2758         * accessibility/AccessibilityRenderObject.cpp:
2759         (WebCore::AccessibilityRenderObject::isOffScreen):
2760         * dom/Document.cpp:
2761         (WebCore::Document::adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale):
2762         (WebCore::Document::adjustFloatRectForScrollAndAbsoluteZoomAndFrameScale):
2763         * dom/MouseRelatedEvent.cpp:
2764         (WebCore::MouseRelatedEvent::MouseRelatedEvent):
2765         * editing/Editor.cpp:
2766         (WebCore::Editor::countMatchesForText):
2767         * editing/FrameSelection.cpp:
2768         (WebCore::FrameSelection::bounds):
2769         (WebCore::FrameSelection::getClippedVisibleTextRectangles):
2770         * html/HTMLBodyElement.cpp:
2771         (WebCore::HTMLBodyElement::scrollLeft):
2772         (WebCore::HTMLBodyElement::scrollTop):
2773         * html/ImageDocument.cpp:
2774         (WebCore::ImageDocument::imageFitsInWindow):
2775         (WebCore::ImageDocument::windowSizeChanged):
2776         * inspector/InspectorOverlay.cpp:
2777         (WebCore::InspectorOverlay::update):
2778         * page/DOMWindow.cpp:
2779         (WebCore::DOMWindow::innerHeight):
2780         (WebCore::DOMWindow::innerWidth):
2781         (WebCore::DOMWindow::scrollX):
2782         (WebCore::DOMWindow::scrollY):
2783         (WebCore::DOMWindow::scrollBy):
2784         * page/FrameView.cpp:
2785         (WebCore::FrameView::calculateScrollbarModesForLayout):
2786         (WebCore::FrameView::layout):
2787         (WebCore::FrameView::scrollContentsSlowPath):
2788         (WebCore::FrameView::repaintContentRectangle):
2789         (WebCore::FrameView::sendResizeEventIfNeeded):
2790         (WebCore::FrameView::windowClipRect):
2791         (WebCore::FrameView::isScrollable):
2792         (WebCore::FrameView::paintControlTints):
2793         * page/SpatialNavigation.cpp:
2794         (WebCore::canScrollInDirection):
2795         * platform/ScrollView.cpp:
2796         (WebCore::ScrollView::unscaledVisibleContentSize):
2797         (WebCore::ScrollView::visibleContentRectInternal):
2798         (WebCore::ScrollView::updateScrollbars):
2799         (WebCore::ScrollView::paint):
2800         * platform/ScrollView.h:
2801         (WebCore::ScrollView::scrollOffset):
2802         (WebCore::ScrollView::actualScrollX):
2803         (WebCore::ScrollView::actualScrollY):
2804         (WebCore::ScrollView::actualScrollPosition):
2805         * platform/ScrollableArea.cpp:
2806         (WebCore::ScrollableArea::visibleContentRect):
2807         (WebCore::ScrollableArea::visibleContentRectIncludingScrollbars):
2808         (WebCore::ScrollableArea::visibleContentRectInternal):
2809         * platform/ScrollableArea.h:
2810         (WebCore::ScrollableArea::visibleWidth):
2811         (WebCore::ScrollableArea::visibleHeight):
2812         * platform/graphics/IntSize.h:
2813         (WebCore::IntSize::expandedTo): Drive-by cleanup.
2814         (WebCore::IntSize::shrunkTo):
2815         * platform/gtk/ScrollViewGtk.cpp:
2816         (WebCore::ScrollView::visibleContentRect):
2817         * rendering/RenderLayer.cpp:
2818         (WebCore::RenderLayer::scrollRectToVisible):
2819         (WebCore::RenderLayer::maximumScrollPosition):
2820         (WebCore::RenderLayer::visibleContentRectInternal):
2821         (WebCore::RenderLayer::hitTest):
2822         * rendering/RenderLayer.h:
2823         * rendering/RenderLayerBacking.cpp:
2824         (WebCore::RenderLayerBacking::updateCompositedBounds):
2825         * rendering/RenderListBox.cpp:
2826         * rendering/RenderListBox.h:
2827         * rendering/RenderView.cpp:
2828         (WebCore::RenderView::viewRect):
2829         (WebCore::RenderView::viewportSize):
2830
2831 2014-01-20  Myles C. Maxfield  <mmaxfield@apple.com>
2832
2833        Turn text-decoration-skip: ink on for all underlines
2834        https://bugs.webkit.org/show_bug.cgi?id=127331
2835
2836        Reviewed by Antti Koivisto.
2837
2838        No new tests are necessary because tests already exist
2839
2840        * rendering/style/RenderStyle.h:
2841
2842 2014-01-23  Hans Muller  <hmuller@adobe.com>
2843
2844         [CSS Shapes] Image valued shape size and position should conform to the spec
2845         https://bugs.webkit.org/show_bug.cgi?id=123295
2846
2847         Reviewed by Andreas Kling.
2848
2849         Implement image valued shape-outside scaling and translation per the spec,
2850         http://dev.w3.org/csswg/css-shapes/#shapes-from-image:
2851
2852         "The image is sized and positioned as if it were a replaced element whose
2853         specified width and height are the same as the element’s used content box size."
2854
2855         This change doesn't completely fulfill the spec, it's limited to image elements
2856         and shape-outside.
2857
2858         Tests: fast/shapes/shape-outside-floats/shape-outside-image-fit-001.html
2859                fast/shapes/shape-outside-floats/shape-outside-image-fit-002.html
2860                fast/shapes/shape-outside-floats/shape-outside-image-fit-003.html
2861                fast/shapes/shape-outside-floats/shape-outside-image-fit-004.html
2862
2863         * rendering/shapes/Shape.h:
2864         * rendering/shapes/Shape.cpp:
2865         (WebCore::Shape::createRasterShape):
2866         Added an imageRect parameter which specifies where the shape image is to
2867         appear relative to the content box. The imageRect implies both scaling and
2868         translation of the shape image.
2869
2870         * rendering/shapes/ShapeInfo.cpp:
2871         (WebCore::ShapeInfo<RenderType>::computedShape):
2872         (WebCore::getShapeImageRect):
2873         For replaced elements, compute the shape's imageRect with
2874         RenderReplaced::replacedContentRect().
2875
2876
2877 2014-01-23  Max Vujovic  <mvujovic@adobe.com>
2878
2879         Remove CSS Custom Filters code and tests
2880         https://bugs.webkit.org/show_bug.cgi?id=127382
2881
2882         Reviewed by Simon Fraser.
2883
2884         No new tests. Removing functionality.
2885
2886         * CMakeLists.txt:
2887         * Configurations/FeatureDefines.xcconfig:
2888         * DerivedSources.cpp:
2889         * DerivedSources.make:
2890         * GNUmakefile.list.am:
2891         * WebCore.order:
2892         * WebCore.vcxproj/WebCore.vcxproj:
2893         * WebCore.vcxproj/WebCore.vcxproj.filters:
2894         * WebCore.xcodeproj/project.pbxproj:
2895         * bindings/js/JSCSSRuleCustom.cpp:
2896         (WebCore::toJS):
2897         * bindings/js/JSCSSValueCustom.cpp:
2898         (WebCore::toJS):
2899         * bindings/objc/DOMCSS.mm:
2900         (kitClass):
2901         * css/CSSComputedStyleDeclaration.cpp:
2902         (WebCore::ComputedStyleExtractor::valueForFilter):
2903         (WebCore::ComputedStyleExtractor::propertyValue):
2904         * css/CSSComputedStyleDeclaration.h:
2905         * css/CSSGrammar.y.in:
2906         * css/CSSParser.cpp:
2907         (WebCore::CSSParserContext::CSSParserContext):
2908         (WebCore::operator==):
2909         (WebCore::CSSParser::CSSParser):
2910         (WebCore::CSSParser::parseValue):
2911         (WebCore::filterInfoForName):
2912         (WebCore::CSSParser::parseFilter):
2913         (WebCore::CSSParser::detectAtToken):
2914         * css/CSSParser.h:
2915         * css/CSSParserMode.h:
2916         * css/CSSPropertyNames.in:
2917         * css/CSSPropertySourceData.h:
2918         * css/CSSRule.h:
2919         * css/CSSRule.idl:
2920         * css/CSSValue.cpp:
2921         (WebCore::CSSValue::equals):
2922         (WebCore::CSSValue::cssText):
2923         (WebCore::CSSValue::destroy):
2924         (WebCore::CSSValue::cloneForCSSOM):
2925         * css/CSSValue.h:
2926         * css/CSSValueKeywords.in:
2927         * css/StyleResolver.cpp:
2928         (WebCore::StyleResolver::State::clear):
2929         (WebCore::StyleResolver::applyProperty):
2930         (WebCore::filterOperationForType):
2931         (WebCore::StyleResolver::createFilterOperations):
2932         (WebCore::StyleResolver::loadPendingResources):
2933         * css/StyleResolver.h:
2934         (WebCore::StyleResolver::State::State):
2935         * css/StyleRule.cpp:
2936         (WebCore::StyleRuleBase::destroy):
2937         (WebCore::StyleRuleBase::copy):
2938         (WebCore::StyleRuleBase::createCSSOMWrapper):
2939         * css/StyleRule.h:
2940         * css/StyleSheetContents.cpp:
2941         (WebCore::childRulesHaveFailedOrCanceledSubresources):
2942         * css/WebKitCSSArrayFunctionValue.cpp: Removed.
2943         * css/WebKitCSSArrayFunctionValue.h: Removed.
2944         * css/WebKitCSSFilterRule.cpp: Removed.
2945         * css/WebKitCSSFilterRule.h: Removed.
2946         * css/WebKitCSSFilterRule.idl: Removed.
2947         * css/WebKitCSSFilterValue.cpp:
2948         (WebCore::WebKitCSSFilterValue::WebKitCSSFilterValue):
2949         (WebCore::WebKitCSSFilterValue::customCSSText):
2950         * css/WebKitCSSFilterValue.h:
2951         * css/WebKitCSSFilterValue.idl:
2952         * css/WebKitCSSMatFunctionValue.cpp: Removed.
2953         * css/WebKitCSSMatFunctionValue.h: Removed.
2954         * css/WebKitCSSMixFunctionValue.cpp: Removed.
2955         * css/WebKitCSSMixFunctionValue.h: Removed.
2956         * css/WebKitCSSMixFunctionValue.idl: Removed.
2957         * css/WebKitCSSShaderValue.cpp: Removed.
2958         * css/WebKitCSSShaderValue.h: Removed.
2959         * loader/cache/CachedResource.cpp:
2960         (WebCore::defaultPriorityForResourceType):
2961         * loader/cache/CachedResource.h:
2962         * loader/cache/CachedResourceLoader.cpp:
2963         (WebCore::createResource):
2964         (WebCore::CachedResourceLoader::checkInsecureContent):
2965         (WebCore::CachedResourceLoader::canRequest):
2966         * loader/cache/CachedResourceLoader.h:
2967         * loader/cache/CachedShader.cpp: Removed.
2968         * loader/cache/CachedShader.h: Removed.
2969         * page/Settings.cpp:
2970         (WebCore::Settings::Settings):
2971         * page/Settings.h:
2972         * page/animation/CSSPropertyAnimation.cpp:
2973         (WebCore::blendFilter):
2974         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2975         (PlatformCALayerMac::filtersCanBeComposited):
2976         * platform/graphics/filters/CustomFilterArrayParameter.h: Removed.
2977         * platform/graphics/filters/CustomFilterColorParameter.h: Removed.
2978         * platform/graphics/filters/CustomFilterCompiledProgram.cpp: Removed.
2979         * platform/graphics/filters/CustomFilterCompiledProgram.h: Removed.
2980         * platform/graphics/filters/CustomFilterConstants.h: Removed.
2981         * platform/graphics/filters/CustomFilterGlobalContext.cpp: Removed.
2982         * platform/graphics/filters/CustomFilterGlobalContext.h: Removed.
2983         * platform/graphics/filters/CustomFilterMesh.cpp: Removed.
2984         * platform/graphics/filters/CustomFilterMesh.h: Removed.
2985         * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Removed.
2986         * platform/graphics/filters/CustomFilterMeshGenerator.h: Removed.
2987         * platform/graphics/filters/CustomFilterNumberParameter.h: Removed.
2988         * platform/graphics/filters/CustomFilterOperation.cpp: Removed.
2989         * platform/graphics/filters/CustomFilterOperation.h: Removed.
2990         * platform/graphics/filters/CustomFilterParameter.h: Removed.
2991         * platform/graphics/filters/CustomFilterParameterList.cpp: Removed.
2992         * platform/graphics/filters/CustomFilterParameterList.h: Removed.
2993         * platform/graphics/filters/CustomFilterProgram.cpp: Removed.
2994         * platform/graphics/filters/CustomFilterProgram.h: Removed.
2995         * platform/graphics/filters/CustomFilterProgramClient.h: Removed.
2996         * platform/graphics/filters/CustomFilterProgramInfo.cpp: Removed.
2997         * platform/graphics/filters/CustomFilterProgramInfo.h: Removed.
2998         * platform/graphics/filters/CustomFilterRenderer.cpp: Removed.
2999         * platform/graphics/filters/CustomFilterRenderer.h: Removed.
3000         * platform/graphics/filters/CustomFilterTransformParameter.h: Removed.
3001         * platform/graphics/filters/CustomFilterValidatedProgram.cpp: Removed.
3002         * platform/graphics/filters/CustomFilterValidatedProgram.h: Removed.
3003         * platform/graphics/filters/FECustomFilter.cpp: Removed.
3004         * platform/graphics/filters/FECustomFilter.h: Removed.
3005         * platform/graphics/filters/FilterOperation.h:
3006         * platform/graphics/filters/FilterOperations.cpp:
3007         (WebCore::FilterOperations::outsets):
3008         * platform/graphics/filters/FilterOperations.h:
3009         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Removed.
3010         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Removed.
3011         * platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Removed.
3012         * platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Removed.
3013         * platform/graphics/gpu/Texture.cpp:
3014         * platform/graphics/texmap/TextureMapper.h:
3015         * platform/graphics/texmap/TextureMapperGL.cpp:
3016         (WebCore::getPassesRequiredForFilter):
3017         (WebCore::BitmapTextureGL::applyFilters):
3018         * platform/graphics/texmap/TextureMapperGL.h:
3019         * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
3020         (WebCore::CompositingCoordinator::clearPendingStateChanges):
3021         (WebCore::CompositingCoordinator::syncLayerState):
3022         * platform/graphics/texmap/coordinated/CompositingCoordinator.h:
3023         * platform/graphics/texmap/coordinated/CoordinatedCustomFilterOperation.h: Removed.
3024         * platform/graphics/texmap/coordinated/CoordinatedCustomFilterProgram.h: Removed.
3025         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
3026         (WebCore::CoordinatedGraphicsScene::setLayerFiltersIfNeeded):
3027         (WebCore::CoordinatedGraphicsScene::commitSceneState):
3028         (WebCore::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded):
3029         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
3030         * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
3031         * rendering/FilterEffectRenderer.cpp:
3032         (WebCore::FilterEffectRenderer::FilterEffectRenderer):
3033         (WebCore::FilterEffectRenderer::build):
3034         (WebCore::FilterEffectRenderer::computeSourceImageRectForDirtyRect):
3035         * rendering/FilterEffectRenderer.h:
3036         * rendering/RenderLayer.cpp:
3037         (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
3038         (WebCore::RenderLayer::calculateClipRects):
3039         * rendering/RenderLayer.h:
3040         * rendering/RenderLayerBacking.cpp:
3041         (WebCore::RenderLayerBacking::updateFilters):
3042         * rendering/RenderLayerFilterInfo.cpp:
3043         (WebCore::RenderLayer::FilterInfo::~FilterInfo):
3044         * rendering/RenderLayerFilterInfo.h:
3045         * rendering/RenderView.cpp:
3046         * rendering/RenderView.h:
3047         * rendering/style/StyleCachedShader.cpp: Removed.
3048         * rendering/style/StyleCachedShader.h: Removed.
3049         * rendering/style/StyleCustomFilterProgram.cpp: Removed.
3050         * rendering/style/StyleCustomFilterProgram.h: Removed.
3051         * rendering/style/StyleCustomFilterProgramCache.cpp: Removed.
3052         * rendering/style/StyleCustomFilterProgramCache.h: Removed.
3053         * rendering/style/StylePendingShader.h: Removed.
3054         * rendering/style/StyleShader.h: Removed.
3055
3056 2014-01-22  Jon Honeycutt  <jhoneycutt@apple.com>
3057
3058         REGRESSION(r161967): Crash in WebCore::CachedSVGDocumentReference::load
3059         <https://webkit.org/b/127151>
3060         <rdar://problem/15840760>
3061
3062         There were two issues introduced here; the first is a use-after-free of
3063         CachedSVGDocumentReference objects.
3064
3065         The previous code kept a map from FilterOperation ->
3066         RefPtr<WebKitCSSSVGDocumentValue>, which retained the
3067         CachedSVGDocument. In r161967, this was changed to use a weak HashSet,
3068         which allows stale CachedSVGDocumentReferences in the pending document
3069         set if the owning FilterOperation is deleted. To fix this, we'll keep a
3070         vector of RefPtr<FilterOperation> with pending SVG documents.
3071
3072         The second issue is a null deref in CachedSVGDocumentReference::load();
3073         CachedResourceLoader::requestSVGDocument() can return 0 if (for
3074         example) an invalid URL is passed. r161967 removed a null check as part
3075         of the refactoring.
3076
3077         Reviewed by Dirk Schulze.
3078
3079         Tests: css3/filters/crash-filter-animation-invalid-url.html
3080                css3/filters/crash-invalid-url.html
3081
3082         * css/StyleResolver.cpp:
3083         (WebCore::StyleResolver::State::clear):
3084         Use new member var name.
3085         (WebCore::StyleResolver::loadPendingSVGDocuments):
3086         For each FilterOperation with a pending SVG document, get or create a
3087         CachedSVGDocumentReference, and tell it to load. Changed to use new
3088         function names.
3089         (WebCore::StyleResolver::createFilterOperations):
3090         Append the FilterOperation to the list of FilterOperations with
3091         unloaded SVG documents.
3092
3093         * css/StyleResolver.h:
3094         Changed from using PendingSVGDocumentSet, a weak set, to
3095         a Vector<RefPtr<ReferenceFilterOperation>>.
3096         (WebCore::StyleResolver::State::filtersWithPendingSVGDocuments):
3097         Return the vector.
3098
3099         * loader/cache/CachedSVGDocumentReference.cpp:
3100         (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
3101         Null check m_document rather than checking m_loadRequested.
3102         m_loadRequested may be true when m_document is 0.
3103         (WebCore::CachedSVGDocumentReference::load):
3104         Null check the result of CachedResourceLoader::requestSVGDocument().
3105
3106         * platform/graphics/filters/FilterOperation.cpp:
3107         (WebCore::ReferenceFilterOperation::getOrCreateCachedSVGDocumentReference):
3108         Create, if necessary, and return the CachedSVGDocumentReference.
3109
3110         * platform/graphics/filters/FilterOperation.h:
3111         Replaced createCachedSVGDocumentReference() with
3112         getOrCreateCachedSVGDocumentReference(), which makes for slightly
3113         cleaner code.
3114
3115 2014-01-23  Antti Koivisto  <antti@apple.com>
3116
3117         Don't enable speculative tiles immediately after main load stops progressing
3118         https://bugs.webkit.org/show_bug.cgi?id=127507
3119
3120         Reviewed by Andreas Kling.
3121
3122         It is common for timers and events to trigger more loading after the initial main frame loading
3123         has completed. We should delay a bit before enabling speculative tiles and keep them disabled 
3124         if loading still continues.
3125
3126         * page/FrameView.cpp:
3127         (WebCore::FrameView::FrameView):
3128         (WebCore::FrameView::adjustTiledBackingCoverage):
3129         (WebCore::shouldEnableSpeculativeTilingDuringLoading):
3130         (WebCore::FrameView::enableSpeculativeTilingIfNeeded):
3131         
3132             When load progression stops wait 0.5s before enabling speculative tiles.
3133
3134         (WebCore::FrameView::speculativeTilingEnableTimerFired):
3135         
3136             Don't enable speculative tiles if the progression has started again. Instead restart the timer.
3137
3138         * page/FrameView.h:
3139         * rendering/RenderLayerBacking.cpp:
3140         (WebCore::RenderLayerBacking::RenderLayerBacking):
3141         (WebCore::computeTileCoverage):
3142         
3143             Move the FrameView level code to FrameView (so we don't need to add a timer to every RenderLayerBacking).
3144
3145         * rendering/RenderLayerBacking.h:
3146
3147 2014-01-23  Antti Koivisto  <antti@apple.com>
3148
3149         Loads started soon after main frame completion should be considered part of the main load
3150         https://bugs.webkit.org/show_bug.cgi?id=127504
3151
3152         Reviewed by Andreas Kling.
3153
3154         ProgressTracker currently decides that main load is complete when the main frame stops loading. 
3155         However it is common that timers and onload events trigger more loads immediately (for example 
3156         by inserting iframes) and loading continues visually. These should be considered as part of the
3157         main load for paint throttling and speculative tiling coverage purposes.
3158
3159         * loader/ProgressTracker.cpp:
3160         (WebCore::ProgressTracker::ProgressTracker):
3161         (WebCore::ProgressTracker::progressStarted):
3162         
3163             Track whether this is considered part of the main load or not with a boolean. 
3164             It is set for subframe loads too if they start loading soon (within 1s) after the main frame load completes.
3165
3166         (WebCore::ProgressTracker::finalProgressComplete):
3167         
3168             Get a timestamp.
3169
3170         (WebCore::ProgressTracker::isMainLoadProgressing):
3171
3172             New definition of "main load".
3173
3174         * loader/ProgressTracker.h:
3175
3176 2014-01-23  peavo@outlook.com  <peavo@outlook.com>
3177
3178         [WinCairo] Compile error.
3179         https://bugs.webkit.org/show_bug.cgi?id=127499
3180
3181         Reviewed by Brent Fulgham.
3182
3183         * platform/network/curl/ResourceError.h: Include <winsock2.h> before <curl/curl.h>.
3184
3185 2014-01-23  Brady Eidson  <beidson@apple.com>
3186
3187         IDB: Implement cross-thread and IPC plumbing for 'get' support
3188         https://bugs.webkit.org/show_bug.cgi?id=127501
3189
3190         Reviewed by Anders Carlsson.
3191
3192         Add isolatedCopy to the IDBGetResult object:
3193         * Modules/indexeddb/IDBGetResult.h:
3194         (WebCore::IDBGetResult::isolatedCopy):
3195
3196         Add a cross-thread and cross-IPC appropriate object for IDBKeyRanges:
3197         * Modules/indexeddb/IDBKeyRangeData.cpp: Copied from Source/WebCore/Modules/indexeddb/IDBGetResult.h.
3198         (WebCore::IDBKeyRangeData::isolatedCopy):
3199         * Modules/indexeddb/IDBKeyRangeData.h: Copied from Source/WebCore/Modules/indexeddb/IDBGetResult.h.
3200         (WebCore::IDBKeyRangeData::IDBKeyRangeData):
3201
3202         Add a few more cross-thread copiers:
3203         * platform/CrossThreadCopier.cpp:
3204         (WebCore::IDBGetResult>::copy):
3205         (WebCore::IDBKeyRangeData>::copy):
3206         * platform/CrossThreadCopier.h:
3207
3208         Project file gunk:
3209         * CMakeLists.txt:
3210         * GNUmakefile.list.am:
3211         * WebCore.exp.in:
3212         * WebCore.xcodeproj/project.pbxproj:
3213
3214 2014-01-23  Jer Noble  <jer.noble@apple.com>
3215
3216         [MSE][Mac] Adopt new AVStreamDataParser delegate API
3217         https://bugs.webkit.org/show_bug.cgi?id=127498
3218
3219         Reviewed by Eric Carlson.
3220
3221         Adopt a new delegate API which passes in whether or not the new AVAsset
3222         is discontinuous, implying the AVAsset is entirely new rather than
3223         just updated with new information.
3224
3225         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
3226         (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]):
3227
3228 2014-01-23  Tim Horton  <timothy_horton@apple.com>
3229
3230         PDFPlugin: Use PDFPlugin even if there's an external plugin installed, if it's blocked
3231         https://bugs.webkit.org/show_bug.cgi?id=127415
3232         <rdar://problem/12482452>
3233
3234         Reviewed by Sam Weinig.
3235
3236         * English.lproj/Localizable.strings:
3237         * WebCore.exp.in:
3238         * platform/LocalizedStrings.cpp:
3239         (WebCore::useBlockedPlugInContextMenuTitle):
3240         * platform/LocalizedStrings.h:
3241         Add a localizable string for the generic case, where the client
3242         didn't provide a more specific string for the context menu item.
3243
3244 2014-01-23  peavo@outlook.com  <peavo@outlook.com>
3245
3246         [Curl] There is no way to specify cache folder.
3247         https://bugs.webkit.org/show_bug.cgi?id=125028
3248
3249         Reviewed by Brent Fulgham.
3250
3251         Fixed logical test, disc cache should be disabled if creating cache folder fails.
3252
3253         * platform/network/curl/CurlCacheManager.cpp:
3254         (WebCore::CurlCacheManager::setCacheDirectory):
3255
3256 2014-01-23  Brady Eidson  <beidson@apple.com>
3257
3258         Unreviewed build fix.
3259
3260         * WebCore.xcodeproj/project.pbxproj: Export the new header so WebKit can see it
3261
3262 2014-01-22  Brent Fulgham  <bfulgham@apple.com>
3263
3264         [Win] Update project and solution files for 64-bit builds
3265         https://bugs.webkit.org/show_bug.cgi?id=127457
3266
3267         Reviewed by Eric Carlson.
3268
3269         * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj: Update for VS2013
3270         * WebCore.vcxproj/WebCore.submit.sln: Add x64 targets
3271         * WebCore.vcxproj/WebCore.vcxproj: Update for VS2013. Also exclude 32-bit specific
3272         assembly when building 64-bit target.
3273         * WebCore.vcxproj/WebCore.vcxproj.filters: Update for VS2013
3274         * config.h: Handle 64-bit type definitions.
3275         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
3276         (PlatformCAAnimation::setFromValue): Use CGFloat to support 64-bit builds
3277         (PlatformCAAnimation::setToValue): Ditto
3278         (PlatformCAAnimation::setValues): Ditto
3279         * platform/graphics/win/FontCustomPlatformData.cpp:
3280         (WebCore::FontCustomPlatformData::fontPlatformData): Add cast to
3281         support 32- and 64-bit targets.
3282         * platform/graphics/win/GraphicsContextCGWin.cpp:
3283         (WebCore::GraphicsContext::drawLineForDocumentMarker): Use CGFloat to
3284         support 64-bit builds.
3285         * platform/win/PasteboardWin.cpp:
3286         (WebCore::Pasteboard::writeURLToDataObject): Specialize std::min to
3287         work on 32- and 64-bit code.
3288         (WebCore::createGlobalImageFileDescriptor): Ditto
3289         * platform/win/StructuredExceptionHandlerSuppressor.cpp:
3290         (WebCore::StructuredExceptionHandlerSuppressor::StructuredExceptionHandlerSuppressor):
3291         Comment out 32-bit inline assembly.
3292         (WebCore::StructuredExceptionHandlerSuppressor::~StructuredExceptionHandlerSuppressor):
3293         Ditto
3294
3295 2014-01-23  Brady Eidson  <beidson@apple.com>
3296
3297         Make IDBGetResult work with IDBKeyData instead of IDBKey.
3298         https://bugs.webkit.org/show_bug.cgi?id=127493
3299
3300         Reviewed by Eric Carlson.
3301
3302         Also break it into its own header to work better with IPC messages.
3303
3304         * Modules/indexeddb/IDBGetResult.h: Added.
3305         (WebCore::IDBGetResult::IDBGetResult):
3306
3307         * Modules/indexeddb/IDBServerConnection.h:
3308
3309         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
3310         (WebCore::GetOperation::perform):
3311
3312         * WebCore.xcodeproj/project.pbxproj:
3313
3314 2014-01-23  Mátyás Mustoha  <mmatyas@inf.u-szeged.hu>
3315
3316         [curl] Add storage limit to cache manager
3317         https://bugs.webkit.org/show_bug.cgi?id=125779
3318
3319         Reviewed by Brent Fulgham.
3320
3321         Sets a local disc storage size limit for the cache manager
3322         used by the curl network backend.
3323
3324         * platform/network/curl/CurlCacheEntry.cpp:
3325         (WebCore::CurlCacheEntry::CurlCacheEntry):
3326         (WebCore::CurlCacheEntry::isCached):
3327         (WebCore::CurlCacheEntry::saveCachedData):
3328         (WebCore::CurlCacheEntry::readCachedData):
3329         (WebCore::CurlCacheEntry::didFail):
3330         (WebCore::CurlCacheEntry::didFinishLoading):
3331         (WebCore::CurlCacheEntry::loadFileToBuffer):
3332         (WebCore::CurlCacheEntry::parseResponseHeaders):
3333         (WebCore::CurlCacheEntry::entrySize):
3334         * platform/network/curl/CurlCacheEntry.h:
3335         (WebCore::CurlCacheEntry::requestHeaders):
3336         * platform/network/curl/CurlCacheManager.cpp:
3337         (WebCore::CurlCacheManager::CurlCacheManager):
3338         (WebCore::CurlCacheManager::setStorageSizeLimit):
3339         (WebCore::CurlCacheManager::loadIndex):
3340         (WebCore::CurlCacheManager::saveIndex):
3341         (WebCore::CurlCacheManager::makeRoomForNewEntry):
3342         (WebCore::CurlCacheManager::didReceiveResponse):
3343         (WebCore::CurlCacheManager::didReceiveData):
3344         (WebCore::CurlCacheManager::invalidateCacheEntry):
3345         (WebCore::CurlCacheManager::readCachedData):
3346         * platform/network/curl/CurlCacheManager.h:
3347         (WebCore::CurlCacheManager::cacheDirectory):
3348
3349 2014-01-23  Carlos Garcia Campos  <cgarcia@igalia.com>
3350
3351         Unreviewed. Fix automake warning.
3352
3353         * GNUmakefile.list.am: Remove trailing whitespaces.
3354
3355 2014-01-23  Mihai Maerean  <mmaerean@adobe.com>
3356
3357         [CSS Regions] Fix positioning composited layers when the region has overflow:hidden
3358         https://bugs.webkit.org/show_bug.cgi?id=124042
3359
3360         Reviewed by Mihnea Ovidenie.
3361
3362         If there's a clipping GraphicsLayer on the hierarchy, substract its offset, since it's its
3363         parent that positions us.
3364
3365         Tests: compositing/regions/position-layer-inside-region-overflow-hidden.html
3366                compositing/regions/position-layer-inside-overflow-hidden.html
3367                compositing/regions/position-layers-inside-region-overflow-hidden.html
3368                compositing/regions/position-layers-inside-regions-overflow-hidden.html
3369
3370         * rendering/RenderLayerBacking.cpp:
3371         (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread): The position
3372         must also be correct when the region has box-shadow that inflates the region's layer. The
3373         composited layers from the flow thread should be rendered in the same position whether the
3374         associated region has clipping or not.
3375         Using the position of the clipping layer instead of the location of the clipbox makes it
3376         also work with box-shadow that inflates the region's graphics layer.
3377
3378 2014-01-23  Andrei Bucur  <abucur@adobe.com>
3379
3380         [CSS Regions] Convert regions iterator loops to range-based loops
3381         https://bugs.webkit.org/show_bug.cgi?id=127464
3382
3383         Reviewed by Antti Koivisto.
3384
3385         Replace most of the iterator loops in the region implementation with
3386         range based for loops. The for loops that iterate only over subsets
3387         of collections have not been changed.
3388
3389         Tests: no new tests, this is a refactoring patch.
3390
3391         * dom/WebKitNamedFlow.cpp:
3392         (WebCore::WebKitNamedFlow::firstEmptyRegionIndex):
3393         (WebCore::WebKitNamedFlow::getRegionsByContent):
3394         (WebCore::WebKitNamedFlow::getRegions):
3395         (WebCore::WebKitNamedFlow::getContent):
3396         * inspector/InspectorOverlay.cpp:
3397         (WebCore::buildObjectForCSSRegionsHighlight):
3398         * rendering/RenderFlowThread.cpp:
3399         (WebCore::RenderFlowThread::validateRegions):
3400         (WebCore::RenderFlowThread::updateLogicalWidth):
3401         (WebCore::RenderFlowThread::computeLogicalHeight):
3402         (WebCore::RenderFlowThread::repaintRectangleInRegions):
3403         (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
3404         (WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
3405         (WebCore::RenderFlowThread::clearRenderBoxRegionInfoAndCustomStyle):
3406         (WebCore::RenderFlowThread::isAutoLogicalHeightRegionsCountConsistent):
3407         (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
3408         (WebCore::RenderFlowThread::markRegionsForOverflowLayoutIfNeeded):
3409         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
3410         (WebCore::RenderFlowThread::collectLayerFragments):
3411         (WebCore::RenderFlowThread::fragmentsBoundingBox):
3412         * rendering/RenderNamedFlowFragment.cpp:
3413         (WebCore::RenderNamedFlowFragment::setRegionObjectsRegionStyle):
3414         (WebCore::RenderNamedFlowFragment::restoreRegionObjectsOriginalStyle):
3415         * rendering/RenderNamedFlowThread.cpp:
3416         (WebCore::RenderNamedFlowThread::clearContentElements):
3417         (WebCore::RenderNamedFlowThread::nextRendererForNode):
3418         (WebCore::RenderNamedFlowThread::dependsOn):
3419         (WebCore::RenderNamedFlowThread::computeOversetStateForRegions):
3420         (WebCore::RenderNamedFlowThread::checkInvalidRegions):
3421         (WebCore::RenderNamedFlowThread::pushDependencies):
3422         (WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
3423         (WebCore::isContainedInElements):
3424         (WebCore::RenderNamedFlowThread::getRanges):
3425         (WebCore::RenderNamedFlowThread::checkRegionsWithStyling):
3426         (WebCore::RenderNamedFlowThread::clearRenderObjectCustomStyle):
3427         * rendering/RenderTreeAsText.cpp:
3428         (WebCore::writeRenderRegionList):
3429
3430 2014-01-23  László Langó  <llango.u-szeged@partner.samsung.com>
3431
3432         Range should be constructable.
3433         https://bugs.webkit.org/show_bug.cgi?id=115639
3434
3435         Reviewed by Ryosuke Niwa.
3436
3437         http://www.w3.org/TR/2013/WD-dom-20131107/#interface-range
3438         Now we can do `new Range()` instead of `document.createRange()`.
3439
3440         Backported from Blink: https://chromium.googlesource.com/chromium/blink/+/47ca40efdf58a4787aa33aa75a35778899b1c002%5E%21
3441
3442         Test: fast/dom/Range/range-constructor.html
3443
3444         * dom/Range.cpp:
3445         (WebCore::Range::create):
3446         * dom/Range.h:
3447         * dom/Range.idl:
3448
3449 2014-01-23  ChangSeok Oh  <changseok.oh@collabora.com>
3450
3451         Unreviewed build fix for gles after r162565. Add missing definitions.
3452
3453         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
3454         (WebCore::GraphicsContext3D::drawArraysInstanced):
3455         (WebCore::GraphicsContext3D::drawElementsInstanced):
3456         (WebCore::GraphicsContext3D::vertexAttribDivisor):
3457
3458 2014-01-22  Carlos Garcia Campos  <cgarcia@igalia.com>
3459
3460         [GLIB] Use GUniquePtr instead of GOwnPtr
3461         https://bugs.webkit.org/show_bug.cgi?id=127431
3462
3463         Reviewed by Martin Robinson.
3464
3465         GUniquePtr is a template alias of std::unique_ptr with a custom
3466         deleter that replaces GOwnPtr. GOwnPtr is still used for the cases
3467         where the output pointer is needed, but it will also be replaced soon.
3468
3469         * GNUmakefile.list.am:
3470         * PlatformGTK.cmake:
3471         * accessibility/atk/AXObjectCacheAtk.cpp:
3472         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
3473         (getAttributeSetForAccessibilityObject):
3474         (accessibilityObjectLength):
3475         (textExtents):
3476         (webkitAccessibleTextGetChar):
3477         (numberOfReplacedElementsBeforeOffset):
3478         * page/ContextMenuController.cpp:
3479         * platform/SharedBuffer.h:
3480         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
3481         (webKitWebAudioSrcConstructed):
3482         (webKitWebAudioSrcLoop):
3483         * platform/audio/gtk/AudioBusGtk.cpp:
3484         (WebCore::AudioBus::loadPlatformResource):
3485         * platform/geoclue/GeolocationProviderGeoclue.cpp:
3486         * platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
3487         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3488         (WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties):
3489         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
3490         * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
3491         (webKitMediaSrcAddSrc):
3492         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
3493         (webKitWebSrcStart):
3494         (ResourceHandleStreamingClient::wasBlocked):
3495         (ResourceHandleStreamingClient::cannotShowURL):
3496         * platform/graphics/gtk/ImageBufferGtk.cpp:
3497         (WebCore::encodeImage):
3498         (WebCore::ImageBuffer::toDataURL):
3499         * platform/graphics/gtk/ImageGtk.cpp:
3500         (WebCore::getThemeIconFileName):
3501         (WebCore::Image::loadPlatformResource):
3502         * platform/gtk/ContextMenuGtk.cpp:
3503         (WebCore::ContextMenu::itemCount):
3504         (WebCore::contextMenuItemVector):
3505         * platform/gtk/ContextMenuItemGtk.cpp:
3506         (WebCore::createPlatformMenuItemDescription):
3507         * platform/gtk/DataObjectGtk.cpp:
3508         (WebCore::DataObjectGtk::setURIList):
3509         (WebCore::DataObjectGtk::setURL):
3510         * platform/gtk/FileSystemGtk.cpp:
3511         (WebCore::filenameToString):
3512         (WebCore::fileSystemRepresentation):
3513         (WebCore::filenameForDisplay):
3514         (WebCore::pathGetFileName):
3515         (WebCore::applicationDirectoryPath):
3516         (WebCore::sharedResourcesPath):
3517         (WebCore::directoryName):
3518         (WebCore::listDirectory):
3519         (WebCore::openTemporaryFile):
3520         * platform/gtk/GOwnPtrGtk.cpp: Removed.
3521         * platform/gtk/GOwnPtrGtk.h: Removed.
3522         * platform/gtk/GUniquePtrGtk.h: Added.
3523         * platform/gtk/GamepadsGtk.cpp:
3524         (WebCore::GamepadsGtk::GamepadsGtk):
3525         * platform/gtk/GtkClickCounter.cpp:
3526         (WebCore::GtkClickCounter::shouldProcessButtonEvent):
3527         * platform/gtk/GtkInputMethodFilter.cpp:
3528         (WebCore::GtkInputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents):
3529         * platform/gtk/GtkPopupMenu.cpp:
3530         (WebCore::GtkPopupMenu::popUp):
3531         (WebCore::GtkPopupMenu::typeAheadFind):
3532         * platform/gtk/LanguageGtk.cpp:
3533         (WebCore::platformLanguage):
3534         * platform/gtk/LocalizedStringsGtk.cpp:
3535         (WebCore::imageTitle):
3536         (WebCore::localizedMediaTimeDescription):
3537         * platform/gtk/PasteboardHelper.cpp:
3538         (WebCore::selectionDataToUTF8String):
3539         (WebCore::PasteboardHelper::getClipboardContents):
3540         (WebCore::PasteboardHelper::fillSelectionData):
3541         * platform/gtk/PopupMenuGtk.cpp:
3542         (WebCore::PopupMenuGtk::createGtkActionForMenuItem):
3543         (WebCore::PopupMenuGtk::show):
3544         * platform/gtk/WebKitAuthenticationWidget.cpp:
3545         (webkitAuthenticationWidgetInitialize):
3546         * platform/network/ResourceHandleInternal.h:
3547         * platform/network/gtk/CredentialBackingStore.cpp:
3548         (WebCore::credentialForChallengeAsyncReadyCallback):
3549         * platform/network/soup/CookieJarSoup.cpp:
3550         (WebCore::setCookiesFromDOM):
3551         (WebCore::cookiesForSession):
3552         (WebCore::getRawCookies):
3553         (WebCore::deleteCookie):
3554         (WebCore::getHostnamesWithCookies):
3555         (WebCore::deleteCookiesForHostname):
3556         (WebCore::deleteAllCookies):
3557         * platform/network/soup/DNSSoup.cpp:
3558         * platform/network/soup/GUniquePtrSoup.h: Added.
3559         * platform/network/soup/ResourceErrorSoup.cpp:
3560         (WebCore::failingURI):
3561         * platform/network/soup/ResourceHandleSoup.cpp:
3562         (WebCore::ResourceHandle::ensureReadBuffer):
3563         (WebCore::cleanupSoupRequestOperation):
3564         (WebCore::createSoupRequestAndMessageForHandle):
3565         * platform/network/soup/ResourceRequestSoup.cpp:
3566         (WebCore::ResourceRequest::updateSoupMessageMembers):
3567         (WebCore::ResourceRequest::updateSoupMessage):
3568         * platform/network/soup/ResourceResponseSoup.cpp:
3569         * platform/network/soup/SoupURIUtils.cpp:
3570         (WebCore::soupURIToKURL):
3571         * platform/soup/SharedBufferSoup.cpp:
3572         (WebCore::SharedBuffer::SharedBuffer):
3573         (WebCore::SharedBuffer::clearPlatformData):
3574         (WebCore::SharedBuffer::maybeTransferPlatformData):
3575         (WebCore::SharedBuffer::hasPlatformData):
3576         * plugins/gtk/PluginPackageGtk.cpp:
3577         (WebCore::PluginPackage::fetchInfo):
3578         (WebCore::PluginPackage::load):
3579
3580 2014-01-22  Simon Fraser  <simon.fraser@apple.com>
3581
3582         Surround fixedVisibleContentRect code with USE(TILED_BACKING_STORE)
3583         https://bugs.webkit.org/show_bug.cgi?id=127461
3584
3585         Reviewed by Andreas Kling.
3586
3587         The "fixedVisibleContentRect" code path is only used by platforms
3588         which enabled TILED_BACKING_STORE, so to reduce confusion, surround
3589         this code with #if USE(TILED_BACKING_STORE).
3590
3591         * page/Frame.cpp:
3592         (WebCore::Frame::createView):
3593         * page/FrameView.cpp:
3594         * page/FrameView.h:
3595         * platform/ScrollView.cpp:
3596         (WebCore::ScrollView::unscaledVisibleContentSize):
3597         (WebCore::ScrollView::visibleContentRect):
3598         * platform/ScrollView.h:
3599         (WebCore::ScrollView::visibleSize):
3600
3601 2014-01-22  Myles C. Maxfield  <mmaxfield@apple.com>
3602
3603         ASSERTION FAILED: v.isFixed() in WebCore::RenderStyle::setWordSpacing
3604         https://bugs.webkit.org/show_bug.cgi?id=126987
3605
3606         Reviewed by Simon Fraser.
3607
3608         When "inherit" is specified and there is no parent, Length values have an "Auto" type
3609
3610         Test: fast/css3-text/css3-word-spacing-percentage/word-spacing-crash.html
3611
3612         * rendering/style/RenderStyle.cpp:
3613         (WebCore::RenderStyle::setWordSpacing):
3614
3615 2014-01-22  Samuel White  <samuel_white@apple.com>
3616
3617         AX: Can't always increment web sliders.
3618         https://bugs.webkit.org/show_bug.cgi?id=127451
3619
3620         Reviewed by Chris Fleizach.
3621
3622         Clamping the decrement/increment amount to one when necessary (if a percent change would result in a change of less than one).
3623
3624         Test: accessibility/range-alter-by-percent.html
3625
3626         * accessibility/AccessibilityNodeObject.cpp:
3627         (WebCore::AccessibilityNodeObject::changeValueByPercent):
3628
3629 2014-01-22  Myles C. Maxfield  <mmaxfield@apple.com>
3630
3631         Remove CSS3_TEXT_DECORATION define
3632         https://bugs.webkit.org/show_bug.cgi?id=127333
3633
3634         Reviewed by Simon Fraser.
3635
3636         This is required for unprefixing the text-decoration-* CSS properties.
3637
3638         No new tests are necessary becase the flag was already on by default.
3639
3640         * Configurations/FeatureDefines.xcconfig:
3641         * css/CSSComputedStyleDeclaration.cpp:
3642         (WebCore::renderTextDecorationSkipFlagsToCSSValue):
3643         (WebCore::ComputedStyleExtractor::propertyValue):
3644         * css/CSSParser.cpp:
3645         (WebCore::isColorPropertyID):
3646         (WebCore::CSSParser::parseValue):
3647         (WebCore::CSSParser::addTextDecorationProperty):
3648         (WebCore::CSSParser::parseTextUnderlinePosition):
3649         * css/CSSParser.h:
3650         * css/CSSPrimitiveValueMappings.h:
3651         (WebCore::CSSPrimitiveValue::operator TextUnderlinePosition):
3652         * css/CSSPropertyNames.in:
3653         * css/CSSValueKeywords.in:
3654         * css/DeprecatedStyleBuilder.cpp:
3655         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
3656         * css/StylePropertyShorthand.cpp:
3657         (WebCore::webkitTextDecorationShorthand):
3658         (WebCore::shorthandForProperty):
3659         (WebCore::matchingShorthandsForLonghand):
3660         * css/StylePropertyShorthand.h:
3661         * css/StyleResolver.cpp:
3662         (WebCore::shouldApplyPropertyInParseOrder):
3663         (WebCore::isValidVisitedLinkProperty):
3664         (WebCore::StyleResolver::applyProperty):
3665         * platform/graphics/GraphicsContext.h:
3666         * platform/graphics/cairo/GraphicsContextCairo.cpp:
3667         (WebCore::GraphicsContext::setPlatformStrokeStyle):
3668         * platform/graphics/cg/GraphicsContextCG.cpp:
3669         (WebCore::GraphicsContext::platformInit):
3670         * platform/graphics/wince/GraphicsContextWinCE.cpp:
3671         (WebCore::createPen):
3672         * rendering/InlineFlowBox.cpp:
3673         (WebCore::InlineFlowBox::computeMaxLogicalTop):
3674         * rendering/InlineFlowBox.h:
3675         * rendering/InlineTextBox.cpp:
3676         (WebCore::textDecorationStyleToStrokeStyle):
3677         (WebCore::boundingBoxForAllActiveDecorations):
3678         (WebCore::InlineTextBox::paintDecoration):
3679         * rendering/RenderObject.cpp:
3680         (WebCore::decorationColor):
3681         * rendering/RootInlineBox.cpp:
3682         (WebCore::RootInlineBox::maxLogicalTop):
3683         * rendering/RootInlineBox.h:
3684         * rendering/style/RenderStyle.cpp:
3685         (WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline):
3686         (WebCore::RenderStyle::colorIncludingFallback):
3687         (WebCore::RenderStyle::visitedDependentColor):
3688         * rendering/style/RenderStyle.h:
3689         * rendering/style/RenderStyleConstants.h:
3690         * rendering/style/StyleRareInheritedData.cpp:
3691         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
3692         (WebCore::StyleRareInheritedData::operator==):
3693         * rendering/style/StyleRareInheritedData.h:
3694         * rendering/style/StyleRareNonInheritedData.cpp:
3695         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
3696         (WebCore::StyleRareNonInheritedData::operator==):
3697         * rendering/style/StyleRareNonInheritedData.h:
3698
3699 2014-01-22  Chris Fleizach  <cfleizach@apple.com>
3700
3701         AX: Do not return an accessible name for an object just because it has tabindex=0
3702         https://bugs.webkit.org/show_bug.cgi?id=126914
3703
3704         Reviewed by Mario Sanchez Prada.
3705
3706         WebKit has code to return an accessible name for any object that is "generically" focusable (ie. tabindex=0).
3707         This behavior, which is not supported in ARIA, has caused many problems for VoiceOver. Often VoiceOver will
3708         speak all the text underneath any type of group.
3709
3710         I think we need to revert this behavior and follow the ARIA spec more closely.
3711
3712         Test: accessibility/aria-describedby-ensures-visibility.html
3713
3714         * accessibility/AccessibilityNodeObject.cpp:
3715         (WebCore::AccessibilityNodeObject::visibleText):
3716         (WebCore::AccessibilityNodeObject::title):
3717
3718 2014-01-22  Brady Eidson  <beidson@apple.com>
3719
3720         The IDB backing store get() method shouldn't call IDB callbacks directly
3721         https://bugs.webkit.org/show_bug.cgi?id=127453
3722
3723         Reviewed by Beth Dakin.
3724
3725         * Modules/indexeddb/IDBServerConnection.h:
3726         (WebCore::IDBGetResult::IDBGetResult): Add a new structure to hold all of the
3727           possible results of a get() call.
3728
3729         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
3730         (WebCore::IDBServerConnectionLevelDB::get): Don't call IDBCallbacks directly.
3731           Instead, return the GetResult to the GetOperation which will make IDBCallbacks.
3732         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
3733
3734         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
3735         (WebCore::GetOperation::perform): Get all of the IDBGetResults in the completion callback
3736           make the appropriate IDBCallback.
3737         * Modules/indexeddb/IDBTransactionBackendOperations.h:
3738
3739 2014-01-22  Dean Jackson  <dino@apple.com>
3740
3741         Unreviewed attempt to fix 32-bit builds.
3742
3743         Use long long rather than GC3Dintptr.
3744
3745         * html/canvas/ANGLEInstancedArrays.cpp:
3746         (WebCore::ANGLEInstancedArrays::drawElementsInstancedANGLE):
3747         * html/canvas/ANGLEInstancedArrays.h:
3748         * html/canvas/WebGLRenderingContext.cpp:
3749         (WebCore::WebGLRenderingContext::drawElementsInstanced):
3750         * html/canvas/WebGLRenderingContext.h:
3751
3752 2014-01-21  Brady Eidson  <beidson@apple.com>
3753
3754         IDB: "Put" support
3755         <rdar://problem/15779643> and https://bugs.webkit.org/show_bug.cgi?id=127401
3756
3757         Reviewed by Alexey Proskuryakov.
3758
3759         Add persistent encode/decode for storage to the database:
3760         * Modules/indexeddb/IDBKey.cpp:
3761         (WebCore::IDBKey::encode):
3762         (WebCore::IDBKey::decode):
3763         * Modules/indexeddb/IDBKey.h:
3764
3765         Add a data class to represent IDBKey suitable for crossing IPC:
3766         * Modules/indexeddb/IDBKeyData.cpp: Added.
3767         (WebCore::IDBKeyData::IDBKeyData):
3768         (WebCore::IDBKeyData::maybeCreateIDBKey):
3769         (WebCore::IDBKeyData::isolatedCopy):
3770         * Modules/indexeddb/IDBKeyData.h: Added.
3771         (WebCore::IDBKeyData::IDBKeyData):
3772
3773         * platform/CrossThreadCopier.cpp:
3774         (WebCore::IDBKeyData>::copy):
3775         * platform/CrossThreadCopier.h:
3776
3777         * WebCore.exp.in:
3778         * WebCore.xcodeproj/project.pbxproj:
3779
3780 2014-01-22  Dean Jackson  <dino@apple.com>
3781
3782         [WebGL] Implement ANGLE_instanced_arrays
3783         https://bugs.webkit.org/show_bug.cgi?id=127257
3784
3785         Reviewed by Brent Fulgham.
3786
3787         Implement the instanced drawing WebGL extension,
3788         ANGLE_instanced_arrays. This is currently Mac-only,
3789         but should be portable to other platforms if their
3790         OpenGL exposes the functions. It's also done in a way
3791         that will make exposing it to WebGL2 simple.
3792
3793         Test: fast/canvas/webgl/angle-instanced-arrays.html
3794
3795         * CMakeLists.txt:
3796         * DerivedSources.cpp:
3797         * DerivedSources.make:
3798         * GNUmakefile.list.am:
3799         * WebCore.vcxproj/WebCore.vcxproj:
3800         * WebCore.vcxproj/WebCore.vcxproj.filters:
3801         * WebCore.xcodeproj/project.pbxproj:
3802         Add the new files to all the build systems.
3803
3804         * bindings/js/JSWebGLRenderingContextCustom.cpp:
3805         (WebCore::toJS): Link JS side to C++ side.
3806
3807         * html/canvas/ANGLEInstancedArrays.cpp: Added.
3808         (WebCore::ANGLEInstancedArrays::ANGLEInstancedArrays):
3809         * html/canvas/ANGLEInstancedArrays.h: Added.
3810         * html/canvas/ANGLEInstancedArrays.idl: Added.
3811         New boilerplate files that expose the extension methods.
3812
3813         * html/canvas/WebGLExtension.h: New extension enum.
3814
3815         * html/canvas/WebGLRenderingContext.cpp:
3816         (WebCore::WebGLRenderingContext::validateVertexAttributes): Add an optional
3817         parameter representing the number of instance primitives we are asked
3818         to draw. Use that for the draw count if looking at an instanced attribute.
3819         Also make sure we see at least one non-instanced attribute.
3820         (WebCore::WebGLRenderingContext::validateDrawArrays): Update this so it could
3821         be used from either drawArrays or drawArraysInstanced.
3822         (WebCore::WebGLRenderingContext::drawArrays):
3823         (WebCore::WebGLRenderingContext::validateDrawElements): Same here, now can be
3824         used by the instanced and non-instanced versions.
3825         (WebCore::WebGLRenderingContext::drawElements):
3826         (WebCore::WebGLRenderingContext::getExtension): Create and return the new extension.
3827         (WebCore::WebGLRenderingContext::getSupportedExtensions): Add new extension to the list.
3828         (WebCore::WebGLRenderingContext::getVertexAttrib): Intercept a query to the divisor
3829         attribute and return the value we kept in the state.
3830         (WebCore::WebGLRenderingContext::drawArraysInstanced): Call the GC3D method.
3831         (WebCore::WebGLRenderingContext::drawElementsInstanced): Ditto.
3832         (WebCore::WebGLRenderingContext::vertexAttribDivisor): Ditto.
3833
3834         * html/canvas/WebGLRenderingContext.h: Define the new methods and parameters.
3835
3836         * html/canvas/WebGLVertexArrayObjectOES.cpp:
3837         (WebCore::WebGLVertexArrayObjectOES::setVertexAttribDivisor): Keep a record of the
3838         divisor if we set it.
3839         * html/canvas/WebGLVertexArrayObjectOES.h:
3840         (WebCore::WebGLVertexArrayObjectOES::VertexAttribState::VertexAttribState):
3841
3842         * platform/graphics/GraphicsContext3D.h: New enum.
3843         * platform/graphics/mac/GraphicsContext3DMac.mm:
3844         (WebCore::GraphicsContext3D::drawArraysInstanced): The actual calls into OpenGL.
3845         (WebCore::GraphicsContext3D::drawElementsInstanced): Ditto.
3846         (WebCore::GraphicsContext3D::vertexAttribDivisor): Ditto.
3847
3848         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp: Empty implementations
3849         for non-mac platforms.
3850
3851         * platform/graphics/ios/GraphicsContext3DIOS.h: Define the iOS names for the
3852         functions.
3853
3854 2014-01-22  Zalan Bujtas  <zalan@apple.com>
3855
3856         [CSS Shapes] shape-inside rectangle layout can fail
3857         https://bugs.webkit.org/show_bug.cgi?id=124784
3858
3859         Reviewed by Darin Adler.
3860
3861         Early subpixel rounding/flooring/ceiling can have unwanted
3862         side effect on the final pixel value. Delay pixel
3863         conversions as much as possible.
3864
3865         Existing test is changed to reflect subpixel functionality.
3866
3867         * rendering/shapes/RectangleShape.cpp:
3868         (WebCore::RectangleShape::firstIncludedIntervalLogicalTop):
3869
3870 2014-01-22  Jochen Eisinger  <jochen@chromium.org>
3871
3872         Add protocolIsInHTTPFamily for strings and use it where appropriate
3873         https://bugs.webkit.org/show_bug.cgi?id=127336
3874
3875         Reviewed by Alexey Proskuryakov.
3876
3877         * html/HTMLAnchorElement.cpp:
3878         (WebCore::HTMLAnchorElement::parseAttribute):
3879         * page/ContentSecurityPolicy.cpp:
3880         (WebCore::CSPSource::schemeMatches):
3881         * page/SecurityPolicy.cpp:
3882         (WebCore::SecurityPolicy::generateReferrerHeader):
3883         * platform/URL.cpp:
3884         (WebCore::protocolIsInHTTPFamily):
3885         * platform/URL.h:
3886
3887 2014-01-22  Zalan Bujtas  <zalan@apple.com>
3888
3889         Subpixel Layout: SimpleLineLayout needs more position rounding to match InlineFlowBox layout.
3890         https://bugs.webkit.org/show_bug.cgi?id=127404
3891
3892         Reviewed by Antti Koivisto.
3893
3894         In order to produce a CSS pixel perfect layout, SimpleLineLayout needs to
3895         round line positions to CSS (integral) position similarly to InlineFlowBox.
3896
3897         Existing tests cover it.
3898
3899         * rendering/SimpleLineLayoutResolver.h:
3900         (WebCore::SimpleLineLayout::RunResolver::Run::rect):
3901         (WebCore::SimpleLineLayout::RunResolver::Run::baseline):
3902
3903 2014-01-22  Joseph Pecoraro  <pecoraro@apple.com>
3904
3905         Unreviewed rollout of r162534, this caused inspector test failures.
3906
3907         * bindings/js/PageScriptDebugServer.cpp:
3908         (WebCore::PageScriptDebugServer::addListener):
3909         (WebCore::PageScriptDebugServer::removeListener):
3910         (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
3911         (WebCore::PageScriptDebugServer::didRemoveLastListener):
3912         * bindings/js/PageScriptDebugServer.h:
3913         * bindings/js/ScriptDebugServer.cpp:
3914         (WebCore::ScriptDebugServer::ScriptDebugServer):
3915         (WebCore::ScriptDebugServer::recompileAllJSFunctionsSoon):
3916         (WebCore::ScriptDebugServer::recompileAllJSFunctionsTimerFired):
3917         * bindings/js/ScriptDebugServer.h:
3918         * bindings/js/WorkerScriptDebugServer.cpp:
3919         (WebCore::WorkerScriptDebugServer::addListener):
3920         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
3921         (WebCore::WorkerScriptDebugServer::removeListener):
3922         * inspector/InspectorProfilerAgent.cpp:
3923
3924 2014-01-22  peavo@outlook.com  <peavo@outlook.com>
3925
3926         Crashes in setTextForIterator
3927         https://bugs.webkit.org/show_bug.cgi?id=127424
3928
3929         Reviewed by Brent Fulgham.
3930
3931         * platform/text/icu/UTextProviderLatin1.cpp:
3932         (WebCore::uTextLatin1Clone): Provide correct buffer size in utext_setup function call.
3933         (WebCore::uTextLatin1Access): Give correct buffer size to memset call.
3934         (WebCore::openLatin1UTextProvider): Ditto.
3935
3936 2014-01-22  Jer Noble  <jer.noble@apple.com>
3937
3938         [Mac] MediaPlayerPrivateMediaSourceAVFObjC::load ASSERTs on lots of tests
3939         https://bugs.webkit.org/show_bug.cgi?id=127430
3940
3941         Reviewed by Eric Carlson.
3942
3943         When other registered media engines cannot load a URL, the engine selection
3944         will eventually pick MediaPlayerPrivateMediaSourceAVFObjC and ask it to load
3945         the URL. Instead of ASSERTing here, simply reject the URL by setting the
3946         network state to FormatError.
3947
3948         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
3949         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):
3950
3951 2014-01-22  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
3952
3953         [EFL][GTK] Get EFL and GTK compiling with ACCESSIBILITY disabled
3954         https://bugs.webkit.org/show_bug.cgi?id=127119
3955
3956         Reviewed by Mario Sanchez Prada.
3957
3958         At build time, the compiler was not able to determine which Timer's constructor to call in AXObjectCache when
3959         ACCESSIBILITY is not enabled, fixing that.
3960         Also guarding some members in AccessibilityObject that are only being used by EFL and GTK with ACCESSIBILITY.
3961
3962         * accessibility/AXObjectCache.h:
3963         (WebCore::AXObjectCache::AXObjectCache):
3964         * accessibility/AccessibilityObject.h:
3965
3966 2014-01-22  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
3967
3968         Refactor calculation of hasRx and hasRy values in SVGPathData
3969         https://bugs.webkit.org/show_bug.cgi?id=127423
3970
3971         Reviewed by Darin Adler.
3972
3973         This is a follow-up on https://bugs.webkit.org/show_bug.cgi?id=127337
3974
3975         * rendering/svg/SVGPathData.cpp:
3976         (WebCore::updatePathFromRectElement):
3977
3978 2014-01-21  Joseph Pecoraro  <pecoraro@apple.com>
3979
3980         Web Inspector: Remove recompileAllJSFunctions timer in ScriptDebugServer
3981         https://bugs.webkit.org/show_bug.cgi?id=127409
3982
3983         Reviewed by Timothy Hatcher.
3984
3985         * bindings/js/ScriptDebugServer.h:
3986         * bindings/js/ScriptDebugServer.cpp:
3987         (WebCore::ScriptDebugServer::ScriptDebugServer):
3988         Remove m_recompileTimer and the recompile soon function.
3989         We can just recompile immediately in all existing cases.
3990
3991         * bindings/js/PageScriptDebugServer.h:
3992         * bindings/js/PageScriptDebugServer.cpp:
3993         (WebCore::PageScriptDebugServer::addListener):
3994         (WebCore::PageScriptDebugServer::removeListener):
3995         (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
3996         (WebCore::PageScriptDebugServer::didAddFirstListener):
3997         (WebCore::PageScriptDebugServer::didRemoveLastListener):
3998         Add a "didAddFirstListener" to match "didRemoveLastListener".
3999         Only recompile functions when we attach the debugger and when
4000         we detach the last listener.
4001
4002         * bindings/js/WorkerScriptDebugServer.cpp:
4003         (WebCore::WorkerScriptDebugServer::addListener):
4004         (WebCore::WorkerScriptDebugServer::removeListener):
4005         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
4006         Same thing. Also rearrange the functions to read better.
4007
4008         * inspector/InspectorProfilerAgent.cpp:
4009         Use the direct recompile function instead of the removed "soon" version.
4010
4011 2014-01-22  Robert Sipka  <sipka@inf.u-szeged.hu>
4012
4013         [curl] Improve detecting and handling of SSL client certificate
4014         https://bugs.webkit.org/show_bug.cgi?id=125006
4015
4016         Reviewed by Brent Fulgham.
4017
4018         Add client certificate handling.
4019
4020         * platform/network/ResourceHandle.h:
4021         * platform/network/curl/ResourceError.h:
4022         (WebCore::ResourceError::hasSSLConnectError):
4023         * platform/network/curl/ResourceHandleCurl.cpp:
4024         (WebCore::ResourceHandle::setClientCertificateInfo):
4025         * platform/network/curl/ResourceHandleManager.cpp:
4026         (WebCore::ResourceHandleManager::initializeHandle):
4027         * platform/network/curl/SSLHandle.cpp:
4028         (WebCore::addAllowedClientCertificate):
4029         (WebCore::setSSLClientCertificate):
4030         * platform/network/curl/SSLHandle.h:
4031
4032 2014-01-22  Mihai Maerean  <mmaerean@adobe.com>
4033
4034         [CSS Regions] layerOwner in RenderNamedFlowFragment cannot return null
4035         https://bugs.webkit.org/show_bug.cgi?id=127343
4036
4037         Reviewed by Sam Weinig.
4038
4039         RenderNamedFlowFragment::layerOwner cannot return null because regions create stacking
4040         contexts which create layers.
4041
4042         No new tests, no functional change.
4043
4044         * rendering/RenderFlowThread.cpp:
4045         (WebCore::RenderFlowThread::hasCompositingRegionDescendant):
4046         * rendering/RenderLayer.cpp:
4047         (WebCore::RenderLayer::calculateClipRects):
4048         * rendering/RenderLayerBacking.cpp:
4049         (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread):
4050         * rendering/RenderLayerCompositor.cpp:
4051         (WebCore::RenderLayerCompositor::computeRegionCompositingRequirements):
4052         * rendering/RenderNamedFlowFragment.h:
4053
4054 2014-01-22  Antti Koivisto  <antti@apple.com>
4055
4056         Avoid unthrottled layer flushes triggered by RenderLayerCompositor::ensureRootLayer
4057         https://bugs.webkit.org/show_bug.cgi?id=127426
4058
4059         Reviewed by Anders Carlsson.
4060         
4061         * rendering/RenderLayerCompositor.cpp:
4062         (WebCore::RenderLayerCompositor::updateScrollLayerPosition):
4063         (WebCore::RenderLayerCompositor::frameViewDidScroll):
4064
4065             Factor scroll layer position update to a function.
4066
4067         (WebCore::RenderLayerCompositor::ensureRootLayer):
4068         
4069             Stop calling frameViewDidChangeSize/frameViewDidScroll. Instead call the relevent functions
4070             directly. This avoid unthrottled layer flush that is done when the view actually scrolls.
4071
4072         * rendering/RenderLayerCompositor.h:
4073
4074 2014-01-22  Mihai Tica  <mitica@adobe.com>
4075
4076         [CSS Background Blending] -webkit-background-blend-mode fails for certain SVG files
4077         https://bugs.webkit.org/show_bug.cgi?id=127350
4078
4079         Reviewed by Dirk Schulze.
4080
4081         The graphics context of the SVG inherits the blend mode set
4082         on the background layer. Fix consists in drawing the SVG
4083         in a transparency layer.
4084
4085         Test: css3/compositing/background-blend-mode-svg.html
4086
4087         * svg/graphics/SVGImage.cpp: