cae8cfded862aa358d5fb4eb924ce40b1eb70d36
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-02-01  Alexey Proskuryakov  <ap@apple.com>
2
3         Update WebCrypto JWK mapping to use key_ops
4         https://bugs.webkit.org/show_bug.cgi?id=127609
5
6         Reviewed by Sam Weinig.
7
8         Updated JWK support ot match current editor draft.
9
10         * bindings/js/JSCryptoKeySerializationJWK.cpp:
11         (WebCore::getJSArrayFromJSON): Fixed this previously untested function to actually work.
12         (WebCore::tryJWKKeyOpsValue):
13         (WebCore::JSCryptoKeySerializationJWK::reconcileUsages):
14         (WebCore::JSCryptoKeySerializationJWK::reconcileExtractable): Removed an old comment,
15         these things are now specced.
16         (WebCore::addToJSON): Made static functions file static, there is no reason for
17         them to be class members.
18         (WebCore::buildJSONForOctetSequence):
19         (WebCore::buildJSONForRSAComponents):
20         (WebCore::addBoolToJSON):
21         (WebCore::addJWKAlgorithmToJSON):
22         (WebCore::addUsagesToJSON):
23         (WebCore::JSCryptoKeySerializationJWK::serialize):
24         * bindings/js/JSCryptoKeySerializationJWK.h:
25
26         * crypto/mac/CryptoAlgorithmAES_KWMac.cpp:
27         (WebCore::CryptoAlgorithmAES_KW::platformEncrypt):
28         (WebCore::CryptoAlgorithmAES_KW::platformDecrypt):
29         Check for length, so that we don't fail silently.
30
31 2014-02-01  David Kilzer  <ddkilzer@apple.com>
32
33         Add security-checked casts for all WebCore::CachedResource subclasses
34         <http://webkit.org/b/127988>
35
36         Reviewed by Darin Adler.
37
38         * inspector/InspectorPageAgent.cpp:
39         (WebCore::InspectorPageAgent::cachedResourceContent):
40         * inspector/InspectorResourceAgent.cpp:
41         (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
42         - Switch from static_cast<>() to security-checked cast.
43
44         * loader/cache/CachedCSSStyleSheet.h:
45         (WebCore::toCachedCSSStyleSheet): Add.
46         * loader/cache/CachedFont.h:
47         (WebCore::toCachedFont): Add.
48
49         * loader/cache/CachedImage.h: Make CachedImageManual final.
50
51         * loader/cache/CachedRawResource.cpp:
52         (WebCore::CachedRawResource::CachedRawResource): Add assert that
53         only MainResource or RawResource types are used to construct a
54         CachedRawResource.  This may be a security issue depending on
55         what code exists that uses the type() value to cast to a
56         CachedResource subclass.
57         (WebCore::CachedRawResource::switchClientsToRevalidatedResource):
58         Switch from static_cast<>() to toCachedRawResource().
59
60         * loader/cache/CachedRawResource.h:
61         (WebCore::toCachedRawResource): Add.
62         * loader/cache/CachedResource.h:
63         (WebCore::CachedResource::isMainOrRawResource): Add.  A
64         CachedRawResource could be either a MainResource or a
65         RawResource.  Currently only used in assertions.
66
67         * loader/cache/CachedResourceLoader.cpp:
68         (WebCore::CachedResourceLoader::requestFont):
69         (WebCore::CachedResourceLoader::requestTextTrack):
70         (WebCore::CachedResourceLoader::requestCSSStyleSheet):
71         (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
72         (WebCore::CachedResourceLoader::requestScript):
73         (WebCore::CachedResourceLoader::requestXSLStyleSheet):
74         (WebCore::CachedResourceLoader::requestSVGDocument):
75         (WebCore::CachedResourceLoader::requestRawResource):
76         (WebCore::CachedResourceLoader::requestMainResource):
77         - Switch from static_cast<>() to security-checked cast.
78
79         * loader/cache/CachedSVGDocument.h:
80         (WebCore::toCachedSVGDocument): Add.
81         * loader/cache/CachedScript.h:
82         (WebCore::toCachedScript): Add.
83         * loader/cache/CachedTextTrack.h:
84         (WebCore::toCachedTextTrack): Add.
85         * loader/cache/CachedXSLStyleSheet.h:
86         (WebCore::toCachedXSLStyleSheet): Add.
87
88 2014-02-01  Xabier Rodriguez Calvar  <calvaris@igalia.com>
89
90         Unreviewed. Fixed GTK+ CMake build after r162922.
91
92         * PlatformGTK.cmake: Removed SoupURIUtils.cpp from the
93         compilation.
94
95 2014-02-01  Benjamin Poulain  <bpoulain@apple.com>
96
97         Improve the JavaScript bindings of DatasetDOMStringMap
98         https://bugs.webkit.org/show_bug.cgi?id=127971
99
100         Reviewed by Sam Weinig.
101
102         Instead of querying contains() followed by item(), just get the item
103         at once in the custom binding.
104
105         Test: fast/dom/dataset-name-getter-properties.html
106
107         * bindings/js/JSDOMStringMapCustom.cpp:
108         (WebCore::JSDOMStringMap::getOwnPropertySlotDelegate):
109         * dom/DOMStringMap.idl:
110         * dom/DatasetDOMStringMap.cpp:
111         (WebCore::DatasetDOMStringMap::item):
112         * dom/DatasetDOMStringMap.h:
113
114 2014-01-31  Benjamin Poulain  <bpoulain@apple.com>
115
116         Remove LEGACY_VIEWPORT_ADAPTION
117         https://bugs.webkit.org/show_bug.cgi?id=128028
118
119         Reviewed by Anders Carlsson.
120
121         The code is incorrect and was only supported by Nix.
122
123         * dom/Document.cpp:
124         (WebCore::Document::childrenChanged):
125         * dom/ViewportArguments.h:
126         * html/HTMLMetaElement.cpp:
127         (WebCore::HTMLMetaElement::process):
128
129 2014-01-31  Ryosuke Niwa  <rniwa@webkit.org>
130
131         Release build fix after r163234. Don't always export the symbol that doesn't exist under NDEBUG.
132
133         * WebCore.exp.in:
134
135 2014-01-31  Brady Eidson  <beidson@apple.com>
136
137         IDB: Index cursors use wrong deserialization for the retrieved value
138         https://bugs.webkit.org/show_bug.cgi?id=128035
139
140         Reviewed by Dan Bernstein.
141
142         For the cursor operations, add an IDBKey value result in the callbacks.
143         If an already deserialized IDBKey value exists it will be preferred over the serialized buffer.
144
145         Change some of the onSuccess() callback formats:
146         * Modules/indexeddb/IDBCallbacks.h:
147         * Modules/indexeddb/IDBRequest.cpp:
148         (WebCore::IDBRequest::onSuccess): Selectively choose between the IDBKey or the SharedBuffer value
149           when choosed what to convert to the ScriptValue.
150         * Modules/indexeddb/IDBRequest.h:
151
152         Let the IDBCursorBackend hold both a value buffer and a value key:
153         * Modules/indexeddb/IDBCursorBackend.cpp:
154         (WebCore::IDBCursorBackend::updateCursorData):
155         (WebCore::IDBCursorBackend::clear):
156         * Modules/indexeddb/IDBCursorBackend.h:
157         (WebCore::IDBCursorBackend::valueBuffer):
158         (WebCore::IDBCursorBackend::valueKey):
159
160         * Modules/indexeddb/IDBCursorBackendOperations.cpp:
161         (WebCore::CursorAdvanceOperation::perform):
162         (WebCore::CursorIterationOperation::perform):
163
164         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
165         (WebCore::OpenCursorOperation::perform):
166
167         * Modules/indexeddb/IDBServerConnection.h:
168         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
169         (WebCore::IDBServerConnectionLevelDB::openCursor):
170         (WebCore::IDBServerConnectionLevelDB::cursorAdvance):
171         (WebCore::IDBServerConnectionLevelDB::cursorIterate):
172         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
173
174         Add IDBKey/IDBKeyData debug logging utilities:
175         * Modules/indexeddb/IDBKey.cpp:
176         (WebCore::IDBKey::loggingString):
177         * Modules/indexeddb/IDBKey.h:
178         * Modules/indexeddb/IDBKeyData.cpp:
179         (WebCore::IDBKeyData::loggingString):
180         * Modules/indexeddb/IDBKeyData.h:
181
182         * WebCore.exp.in:
183
184 2014-01-31  Ryosuke Niwa  <rniwa@webkit.org>
185
186         Debug build fix after r163232. Call hasEditableStyle() instead of isContentEditable() which
187         can trigger a layout synchronously inside paintCaret. This matches the code before r163232.
188
189         * rendering/RenderBlock.cpp:
190         (WebCore::RenderBlock::paintCaret):
191
192 2014-01-31  Ryosuke Niwa  <rniwa@webkit.org>
193
194         Remove inline member functions of FrameSelection that access m_selection
195         https://bugs.webkit.org/show_bug.cgi?id=127986
196
197         Reviewed by Enrica Casucci.
198
199         Removed numerous inline member functions of FrameSelection that depend on m_selection.
200
201         This is needed to ensure all accesses to m_selection happen through FrameSelection::selection(),
202         which in turn, allows us to update its call sites to use either validated selection that editing
203         and rendering code uses or invalidated selection that's exposed to JavaScript.
204
205         * WebCore.exp.in:
206         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
207         (-[WebAccessibilityObjectWrapper _convertToNSRange:]):
208         (-[WebAccessibilityObjectWrapper _convertToDOMRange:]):
209         * bindings/objc/DOMUIKitExtensions.mm:
210         (-[DOMRange move:inDirection:]):
211         (-[DOMRange extend:inDirection:]):
212         * dom/Element.cpp:
213         (WebCore::Element::updateFocusAppearance):
214         * editing/Editor.cpp:
215         (WebCore::Editor::canEdit):
216         (WebCore::Editor::canEditRichly):
217         (WebCore::Editor::canDHTMLCut):
218         (WebCore::Editor::canDHTMLCopy):
219         (WebCore::Editor::canCopy):
220         (WebCore::Editor::canDelete):
221         (WebCore::Editor::replaceSelectionWithFragment):
222         (WebCore::Editor::tryDHTMLCopy):
223         (WebCore::Editor::tryDHTMLCut):
224         (WebCore::Editor::applyStyle):
225         (WebCore::Editor::applyParagraphStyle):
226         (WebCore::Editor::cut):
227         (WebCore::Editor::copy):
228         (WebCore::Editor::paste):
229         (WebCore::Editor::setComposition):
230         (WebCore::Editor::guessesForMisspelledOrUngrammatical):
231         (WebCore::Editor::markMisspellingsAfterTypingToWord):
232         (WebCore::Editor::isSpellCheckingEnabledInFocusedNode):
233         (WebCore::Editor::markAndReplaceFor):
234         (WebCore::Editor::getCompositionSelection):
235         (WebCore::Editor::selectionStartHasMarkerFor):
236         * editing/EditorCommand.cpp:
237         (WebCore::expandSelectionToGranularity):
238         (WebCore::enabledInRichlyEditableText):
239         (WebCore::enabledRangeInEditableText):
240         (WebCore::enabledRangeInRichlyEditableText):
241         * editing/FrameSelection.cpp:
242         (WebCore::CaretBase::updateCaretRect):
243         (WebCore::FrameSelection::recomputeCaretRect):
244         (WebCore::FrameSelection::selectAll):
245         (WebCore::FrameSelection::updateAppearance):
246         (WebCore::FrameSelection::updateSelectionCachesIfSelectionIsInsideTextFormControl):
247         (WebCore::FrameSelection::setFocusedElementIfNeeded):
248         (WebCore::FrameSelection::currentForm):
249         (WebCore::FrameSelection::revealSelection):
250         (WebCore::FrameSelection::setSelectionFromNone):
251         * editing/FrameSelection.h:
252         (WebCore::FrameSelection::isCaretOrRange):
253         * editing/RemoveFormatCommand.cpp:
254         (WebCore::RemoveFormatCommand::doApply):
255         * editing/VisibleSelection.cpp:
256         (WebCore::VisibleSelection::isInPasswordField):
257         * editing/VisibleSelection.h:
258         * editing/mac/EditorMac.mm:
259         (WebCore::Editor::canCopyExcludingStandaloneImages):
260         (WebCore::Editor::readSelectionFromPasteboard):
261         * html/HTMLAnchorElement.cpp:
262         (WebCore::HTMLAnchorElement::defaultEventHandler):
263         (WebCore::HTMLAnchorElement::setActive):
264         * html/HTMLTextFormControlElement.cpp:
265         (WebCore::HTMLTextFormControlElement::computeSelectionStart):
266         (WebCore::HTMLTextFormControlElement::computeSelectionEnd):
267         * page/ContextMenuController.cpp:
268         (WebCore::ContextMenuController::contextMenuItemSelected):
269         (WebCore::ContextMenuController::populate):
270         * page/DragController.cpp:
271         (WebCore::DragController::dragIsMove):
272         (WebCore::setSelectionToDragCaret):
273         (WebCore::DragController::concludeEditDrag):
274         (WebCore::DragController::startDrag):
275         * page/EventHandler.cpp:
276         (WebCore::nodeIsNotBeingEdited):
277         (WebCore::EventHandler::sendContextMenuEvent):
278         (WebCore::EventHandler::sendContextMenuEventForKey):
279         (WebCore::EventHandler::handleDrag):
280         * page/FocusController.cpp:
281         (WebCore::FocusController::advanceFocusInDocumentOrder):
282         (WebCore::clearSelectionIfNeeded):
283         * page/ios/FrameIOS.mm:
284         (WebCore::Frame::caretRect):
285         (WebCore::Frame::rectForScrollToVisible):
286         (WebCore::Frame::styleAtSelectionStart):
287         (WebCore::Frame::setRangedSelectionBaseToCurrentSelectionStart):
288         (WebCore::Frame::setRangedSelectionBaseToCurrentSelectionEnd):
289         (WebCore::Frame::setRangedSelectionInitialExtentToCurrentSelectionStart):
290         (WebCore::Frame::setRangedSelectionInitialExtentToCurrentSelectionEnd):
291         (WebCore::Frame::interpretationsForCurrentRoot):
292         * rendering/RenderBlock.cpp:
293         (WebCore::RenderBlock::paintCaret):
294
295 2014-01-31  Simon Fraser  <simon.fraser@apple.com>
296
297         Pass the viewport rect and scroll origin independently into the scrolling tree, and make things floats
298         https://bugs.webkit.org/show_bug.cgi?id=128032
299
300         Reviewed by Tim Horton.
301
302         Pass the viewport rect and scroll offset independently into the ScrollingTree
303         via the ScrollingStateScrollingNode, since on iOS the scroll offset doesn't
304         always correspond to the viewport rect.
305         
306         Make the viewport rect and the scroll origin be float-based, since on
307         Retina screens and with zooming these can both be non-integral.
308
309         No behavior change.
310         
311         * WebCore.exp.in:
312         * page/scrolling/AsyncScrollingCoordinator.cpp:
313         (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
314         (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
315         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
316         * page/scrolling/AsyncScrollingCoordinator.h:
317         (WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::ScheduledScrollUpdate):
318         * page/scrolling/ScrollingStateScrollingNode.cpp:
319         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
320         (WebCore::ScrollingStateScrollingNode::setViewportConstrainedObjectRect):
321         (WebCore::ScrollingStateScrollingNode::setScrollPosition):
322         (WebCore::ScrollingStateScrollingNode::dumpProperties):
323         * page/scrolling/ScrollingStateScrollingNode.h:
324         * page/scrolling/ScrollingTree.cpp:
325         (WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
326         (WebCore::ScrollingTree::commitNewTreeState):
327         (WebCore::ScrollingTree::mainFrameScrollPosition):
328         (WebCore::ScrollingTree::setMainFrameScrollPosition):
329         * page/scrolling/ScrollingTree.h:
330         * page/scrolling/ScrollingTreeNode.h:
331         * page/scrolling/ScrollingTreeScrollingNode.cpp:
332         (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
333         * page/scrolling/ScrollingTreeScrollingNode.h:
334         (WebCore::ScrollingTreeScrollingNode::scrollPosition):
335         (WebCore::ScrollingTreeScrollingNode::viewportConstrainedObjectRect):
336         * page/scrolling/ThreadedScrollingTree.cpp:
337         (WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
338         * page/scrolling/ThreadedScrollingTree.h:
339         * page/scrolling/ios/ScrollingTreeIOS.cpp:
340         (WebCore::ScrollingTreeIOS::scrollingTreeNodeDidScroll):
341         * page/scrolling/ios/ScrollingTreeIOS.h:
342         * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
343         * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
344         (WebCore::ScrollingTreeScrollingNodeIOS::scrollPosition):
345         (WebCore::ScrollingTreeScrollingNodeIOS::setScrollPosition):
346         (WebCore::ScrollingTreeScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
347         (WebCore::ScrollingTreeScrollingNodeIOS::setScrollLayerPosition):
348         (WebCore::ScrollingTreeScrollingNodeIOS::minimumScrollPosition):
349         (WebCore::ScrollingTreeScrollingNodeIOS::maximumScrollPosition):
350         * page/scrolling/mac/ScrollingTreeFixedNode.h:
351         * page/scrolling/mac/ScrollingTreeFixedNode.mm:
352         (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange):
353         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
354         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
355         (WebCore::ScrollingTreeScrollingNodeMac::updateAfterChildren):
356         (WebCore::ScrollingTreeScrollingNodeMac::absoluteScrollPosition):
357         (WebCore::ScrollingTreeScrollingNodeMac::adjustScrollPositionToBoundsIfNecessary):
358         (WebCore::ScrollingTreeScrollingNodeMac::scrollPosition):
359         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPosition):
360         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
361         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
362         (WebCore::ScrollingTreeScrollingNodeMac::minimumScrollPosition):
363         (WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
364         (WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
365         (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
366         * page/scrolling/mac/ScrollingTreeStickyNode.h:
367         * page/scrolling/mac/ScrollingTreeStickyNode.mm:
368         (WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange):
369         * platform/graphics/FloatPoint.h:
370         (WebCore::FloatPoint::shrunkTo):
371
372 2014-01-30  Andy Estes  <aestes@apple.com>
373
374         [Cocoa] Add NEFilterSource support to ContentFilterMac
375         https://bugs.webkit.org/show_bug.cgi?id=127979
376
377         Reviewed by Sam Weinig.
378
379         Update ContentFilterMac to work with both WebFilterEvaluator and
380         NEFilterSource, if enabled.
381
382         * platform/ContentFilter.h: Set HAVE_NE_FILTER_SOURCE based on platform
383         conditionals, and forward-declare NEFilterSource.
384         * platform/mac/ContentFilterMac.mm: Included NEFilterSource.h if the SDK
385         has it; declared the class directly if not. Also soft-linked
386         NetworkExtension.framework.
387         (WebCore::ContentFilter::ContentFilter): Initialized
388         m_neFilterSourceStatus to NEFilterSourceStatusNeedsMoreData and created
389         m_platformContentFilter and m_neFilterSource objects if their
390         respective filters were enabled.
391         (WebCore::ContentFilter::isEnabled): Returned true if either filter is
392         enabled.
393         (WebCore::ContentFilter::addData): Added incoming data to each filter
394         that is enabled.
395         (WebCore::ContentFilter::finishedAddingData): Notified each enabled
396         filter that we are finished adding data.
397         (WebCore::ContentFilter::needsMoreData): Returned true if either filter
398         needs more data.
399         (WebCore::ContentFilter::didBlockData): Returned true if either filter
400         blocked data.
401         (WebCore::ContentFilter::getReplacementData): Returned
402         m_replacementData. Commented that this will currently return a null
403         string if NEFilterSource blocked the load.
404
405 2014-01-31  Oliver Hunt  <oliver@apple.com>
406
407         Rollout r163195 and related patches
408
409         * CMakeLists.txt:
410         * ForwardingHeaders/runtime/JSStringInlines.h: Removed.
411         * Modules/plugins/QuickTimePluginReplacement.cpp:
412         * bindings/js/JSIDBAnyCustom.cpp:
413         * bindings/js/JSIDBDatabaseCustom.cpp:
414         * bindings/js/JSIDBObjectStoreCustom.cpp:
415         * bindings/js/JSNodeFilterCondition.cpp:
416
417 2014-01-31  Simon Fraser  <simon.fraser@apple.com>
418
419         Even when in fixed layout mode, some platforms need to do layout after a viewport change
420         https://bugs.webkit.org/show_bug.cgi?id=128003
421
422         Reviewed by Andreas Kling.
423         
424         Re-land 163182 with a less aggresive check in visibleContentsResized() for
425         needing to layout.
426
427         iOS uses fixed layout mode in both WK1 and WK2, but lays out fixed position
428         elements relative to a variable viewport. This code assumed that fixed layout
429         implies a fixed viewport.
430         
431         Fix by testing for useCustomFixedPositionLayoutRect() in the fixed layout case.
432         
433         Also removed RenderView::hasCustomFixedPosition() which is no longer used.
434         
435         * page/FrameView.cpp:
436         (WebCore::FrameView::shouldLayoutAfterViewportChange):
437         (WebCore::FrameView::visibleContentsResized):
438         * page/FrameView.h:
439         * rendering/RenderView.cpp:
440         * rendering/RenderView.h:
441
442 2014-01-31  Alexey Proskuryakov  <ap@apple.com>
443
444         Expose creation and modification times for LocalStorage
445         https://bugs.webkit.org/show_bug.cgi?id=128018
446
447         Reviewed by Anders Carlsson.
448
449         * WebCore.exp.in: Export FileSystem functions to get file times.
450
451 2014-01-30  Maciej Stachowiak  <mjs@apple.com>
452
453         Implement (most of) URL API
454         https://bugs.webkit.org/show_bug.cgi?id=127795
455
456         Reviewed by Alexey Proskuryakov.
457
458         Tests: fast/dom/DOMURL/get-href-attribute-port.html
459                fast/dom/DOMURL/invalid-url-getters.html
460                fast/dom/DOMURL/set-href-attribute-hash.html
461                fast/dom/DOMURL/set-href-attribute-host.html
462                fast/dom/DOMURL/set-href-attribute-hostname.html
463                fast/dom/DOMURL/set-href-attribute-pathname.html
464                fast/dom/DOMURL/set-href-attribute-port.html
465                fast/dom/DOMURL/set-href-attribute-protocol.html
466                fast/dom/DOMURL/set-href-attribute-search.html
467                fast/dom/DOMURL/set-href-attribute-whitespace.html
468                fast/dom/DOMURL/url-constructor.html
469                fast/dom/DOMURL/url-origin.html
470                fast/dom/DOMURL/url-password.html
471                fast/dom/DOMURL/url-username.html
472
473         * CMakeLists.txt: Update for new IDL file.
474         * DerivedSources.make: ditto
475         * GNUmakefile.list.am: ditto
476         * html/DOMURL.cpp: Implement URL() constructor and instance methods; cribbed from
477         HTMLAnchorElement mostly
478         (WebCore::DOMURL::DOMURL):
479         (WebCore::DOMURL::href):
480         (WebCore::DOMURL::setHref):
481         (WebCore::DOMURL::toString):
482         (WebCore::DOMURL::origin):
483         (WebCore::DOMURL::protocol):
484         (WebCore::DOMURL::setProtocol):
485         (WebCore::DOMURL::username):
486         (WebCore::DOMURL::setUsername):
487         (WebCore::DOMURL::password):
488         (WebCore::DOMURL::setPassword):
489         (WebCore::DOMURL::host):
490         (WebCore::parsePortFromStringPosition):
491         (WebCore::DOMURL::setHost):
492         (WebCore::DOMURL::hostname):
493         (WebCore::DOMURL::setHostname):
494         (WebCore::DOMURL::port):
495         (WebCore::DOMURL::setPort):
496         (WebCore::DOMURL::pathname):
497         (WebCore::DOMURL::setPathname):
498         (WebCore::DOMURL::search):
499         (WebCore::DOMURL::setSearch):
500         (WebCore::DOMURL::hash):
501         (WebCore::DOMURL::setHash):
502         * html/DOMURL.h:
503         (WebCore::DOMURL::create):
504         * html/DOMURL.idl: Update for new methods.
505         * html/URLUtils.idl: Added. New IDL file that contains most of the interface.
506
507 2014-01-31  Bem Jones-Bey  <bjonesbe@adobe.com>
508
509         Create clipping path from <box> value
510         https://bugs.webkit.org/show_bug.cgi?id=126205
511
512         Reviewed by Dirk Schulze.
513
514         This implements <box> values for border, content, and padding boxes.
515         Since margin box is not implemented as a reference box, this does not
516         implement margin box value.
517
518         Tests: css3/masking/clip-path-border-box.html
519                css3/masking/clip-path-content-box.html
520                css3/masking/clip-path-padding-box.html
521
522         * rendering/ClipPathOperation.h:
523         (WebCore::BoxClipPathOperation::pathForReferenceRect): Implement.
524         * rendering/RenderLayer.cpp:
525         (WebCore::computeReferenceBox): Pull out reference box calculation.
526         (WebCore::RenderLayer::setupClipPath): Add support for <box> values.
527         * rendering/shapes/ShapeInfo.cpp:
528         (WebCore::ShapeInfo<RenderType>::computedShape): Add FIXME comment.
529
530 2014-01-29  Oliver Hunt  <oliver@apple.com>
531
532         Make it possible to implement JS builtins in JS
533         https://bugs.webkit.org/show_bug.cgi?id=127887
534
535         Reviewed by Michael Saboff.
536
537         Updating for the newly required headers.
538
539         Test: js/regress/array-prototype-every.html
540
541         * ForwardingHeaders/runtime/JSStringInlines.h: Added.
542         * Modules/plugins/QuickTimePluginReplacement.cpp:
543         * bindings/js/JSIDBAnyCustom.cpp:
544         * bindings/js/JSIDBDatabaseCustom.cpp:
545         * bindings/js/JSIDBObjectStoreCustom.cpp:
546
547 2014-01-31  Beth Dakin  <bdakin@apple.com>
548
549         Build fix.
550
551         * rendering/RenderLayerCompositor.cpp:
552         (WebCore::RenderLayerCompositor::setRootExtendedBackgroundColor):
553
554 2014-01-31  Timothy Hatcher  <timothy@apple.com>
555
556         Properly handle cases where a profile couldn't be recorded and null is returned.
557
558         <rdar://problem/15957993> Crash with Inspector open at WebCore::ScriptProfile::buildInspectorObject
559
560         Reviewed by Joseph Pecoraro.
561
562         * inspector/InspectorTimelineAgent.cpp:
563         (WebCore::InspectorTimelineAgent::didCallFunction): Null check profile.
564         (WebCore::InspectorTimelineAgent::didEvaluateScript): Ditto.
565
566 2014-01-31  Beth Dakin  <bdakin@apple.com>
567
568         Extended background should only create margin tiles for pages with background 
569         images
570         https://bugs.webkit.org/show_bug.cgi?id=127876
571         -and corresponding-
572         <rdar://problem/15827632>
573
574         Reviewed by Simon Fraser.
575
576         Settings::backgroundShouldExtendBeyondPage() doesn't need to create margin tiles
577         for pages with simple background colors. Instead, those pages should achieve the 
578         same effect by setting a background color on RenderLayerCompositor's
579         m_layerForOverhangAreas. For now, we should only create tiles when there is a 
580         background image. We may want to extend this to other types of complicated 
581         backgrounds in the future.
582
583         This patch makes callers that only care about the value of the setting always call 
584         Settings::backgroundShouldExtendBeyondPage() rather than asking about margin 
585         tiles. And callers that want to know about margin tiles can either keep querying 
586         that directly or they can call FrameView::hasExtendedBackgroundRectForPainting(). 
587         An extended background does not necessarily require an extended background rect 
588         for painting, and this new FrameView function can make that distinction. 
589
590         When setBackgroundExtendsBeyondPage() is called, call RenderLayerCompositor:: 
591         setRootExtendedBackgroundColor() with either the document background color, or an 
592         invalid color, depending on whether you have or do not have an extended 
593         background. Also call needsExtendedBackgroundRectForPainting() to determine if we 
594         also need to extend the background rect, and then call 
595         setHasExtendedBackgroundRectForPainting() with its value.
596         * page/FrameView.cpp:
597         (WebCore::FrameView::setBackgroundExtendsBeyondPage):
598         (WebCore::FrameView::hasExtendedBackgroundRectForPainting):
599
600          Right now we only need to extend the background rect for documents with 
601         background images on the root. This may be extended in the future.
602         (WebCore::FrameView::needsExtendedBackgroundRectForPainting):
603         (WebCore::FrameView::setHasExtendedBackgroundRectForPainting):
604         (WebCore::FrameView::extendedBackgroundRectForPainting):
605         * page/FrameView.h:
606
607         Expose defaultTileWidth and defaultTileHeight from TiledBacking.h so that we can 
608         access the values from RenderLayerBacking.
609         * platform/graphics/TiledBacking.h:
610         * platform/graphics/ca/mac/TileController.mm:
611
612         hasExtendedBackgroundForPainting() is now called 
613         hasExtendedBackgroundRectForPainting() to distinguish 
614         the case where an extended RECT is needed.
615         * rendering/RenderBox.cpp:
616         (WebCore::RenderBox::repaintLayerRectsForImage):
617         * rendering/RenderBoxModelObject.cpp:
618         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
619
620         Call setHasExtendedBackgroundRectForPainting() if relevant.
621         * rendering/RenderElement.cpp:
622         (WebCore::RenderElement::styleWillChange):
623
624         Don't call setTiledBackingHasMargins() right in the constructor because we only
625         want margins if we have a background image, and we won't have that information
626         yet.
627         * rendering/RenderLayerBacking.cpp:
628         (WebCore::RenderLayerBacking::RenderLayerBacking):
629
630         Clean up the variable name here. We are only setting margins when we need to 
631         extend the background rect for painting. Also make us of newly-exposed 
632         defaultTileWidth and Height.
633         (WebCore::RenderLayerBacking::setTiledBackingHasMargins):
634
635         Remove RenderLayerBacking::tiledBackingHasMargin() since there aren't any more
636         callers.
637         * rendering/RenderLayerBacking.h:
638         (WebCore::RenderLayerBacking::usingTiledBacking):
639
640         setMasksToBounds(false) based on the Setting, and not based on whether there are 
641         tile margins.
642         * rendering/RenderLayerCompositor.cpp:
643         (WebCore::RenderLayerCompositor::updateBacking):
644
645         Return false from RenderLayerCompositor::requiresContentShadowLayer() if there is 
646         an extended background.
647         (WebCore::RenderLayerCompositor::requiresContentShadowLayer):
648
649         Setting the background color on m_layerForOverhangAreas is all we need to do to 
650         create the extended background effect on pages that only have background colors. 
651         (WebCore::RenderLayerCompositor::setRootExtendedBackgroundColor):
652         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
653
654         Remove mainFrameBackingIsTiledWithMargin() since there aren't any more callers,
655         and add setRootExtendedBackgroundColor() so that we can update the color from 
656         RenderView.
657         * rendering/RenderLayerCompositor.h:
658
659         Revert the code that was added to paint background color here, since this should 
660         all be covered by calling RenderLayerCompositor::setExtendedBackgroundColor(). 
661         More complicated backgrounds will run through the full background painting code.
662         * rendering/RenderView.cpp:
663         (WebCore::RenderView::paintBoxDecorations):
664         (WebCore::RenderView::backgroundRect):
665
666 2014-01-31  Jochen Eisinger  <jochen@chromium.org>
667
668         Remove FrameLoader's reloadWithOverrideURL and reloadWithRequest
669         https://bugs.webkit.org/show_bug.cgi?id=128005
670
671         Reviewed by Darin Adler.
672
673         The former was used by chromium-android to implement the "request
674         desktop version" feature, but is no longer used. After removing it,
675         the latter is only invoked by reload(), so we can merge the method
676         with it.
677
678         No new tests, just removing dead code.
679
680         * loader/FrameLoader.cpp:
681         (WebCore::FrameLoader::reload):
682         * loader/FrameLoader.h:
683
684 2014-01-31  Commit Queue  <commit-queue@webkit.org>
685
686         Unreviewed, rolling out r163182.
687         http://trac.webkit.org/changeset/163182
688         https://bugs.webkit.org/show_bug.cgi?id=128012
689
690         Broke lots of tests (Requested by smfr on #webkit).
691
692         * page/FrameView.cpp:
693         (WebCore::FrameView::visibleContentsResized):
694         * page/FrameView.h:
695         * rendering/RenderView.cpp:
696         (WebCore::isFixedPositionInViewport):
697         (WebCore::RenderView::hasCustomFixedPosition):
698         * rendering/RenderView.h:
699
700 2014-01-31  Brady Eidson  <beidson@apple.com>
701
702         IDB: openCursor() needs to prime the cursor with first position values
703         https://bugs.webkit.org/show_bug.cgi?id=128008
704
705         Reviewed by Alexey Proskuryakov.
706
707         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
708         (WebCore::OpenCursorOperation::perform): If the server connection returns initial keys/values
709           for the cursor, store them.
710
711         * Modules/indexeddb/IDBServerConnection.h:
712
713         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
714         (WebCore::IDBServerConnectionLevelDB::openCursor):
715         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
716
717 2014-01-31  Hans Muller  <hmuller@adobe.com>
718
719         [CSS Shapes] Image valued shape can fail
720         https://bugs.webkit.org/show_bug.cgi?id=127588
721
722         Reviewed by Dean Jackson.
723
724         Correct the handling of image valued shapes that extend into or beyond the
725         margin box. This can happen when object-fit causes one dimension of the shape
726         to be greater than the corresponding margin box dimension.
727
728         Made some simplifications in RasterShapeIntervals::computeShapeMarginIntervals()
729         by making the shapeMargin parameter an int, removing some unnecessary variables.
730
731         Revised the RasterShapeIntervals class. It's now a just a list of size() interval-lists,
732         with valid indices: -offset() <= y < size() - offset(), or minY() to maxY(). If margin-top
733         and shape-margin are specified, then offset() is the larger of shape-margin and margin-top.
734         Similarly size() is the vertical size of the margin-box or the content-box expanded by
735         shape-margin, whichever is larger. See computeShapeMarginIntervals().
736
737         Tests: fast/shapes/shape-outside-floats/shape-outside-image-fit-005.html
738                fast/shapes/shape-outside-floats/shape-outside-image-fit-006.html
739
740         * rendering/shapes/RasterShape.cpp:
741         (WebCore::RasterShapeIntervals::computeShapeMarginIntervals):
742         (WebCore::RasterShape::marginIntervals):
743         * rendering/shapes/RasterShape.h:
744         (WebCore::RasterShapeIntervals::RasterShapeIntervals):
745         (WebCore::RasterShapeIntervals::offset):
746         (WebCore::RasterShapeIntervals::minY):
747         (WebCore::RasterShapeIntervals::maxY):
748         (WebCore::RasterShapeIntervals::intervalsAt):
749         * rendering/shapes/Shape.cpp:
750         (WebCore::Shape::createRasterShape):
751         * rendering/shapes/Shape.h:
752         * rendering/shapes/ShapeInfo.cpp:
753
754         (WebCore::getShapeImageReplacedRect):
755         The rect that the image will be drawn into. This rect can imply image
756         scaling and translation.
757
758         (WebCore::getShapeImageMarginRect):
759         The margin rect relative too the (0,0 origin) shape content rect.
760
761         (WebCore::ShapeInfo<RenderType>::computedShape):
762
763 2014-01-31  Andreas Kling  <akling@apple.com>
764
765         Deduplicate Document::encoding().
766         <https://webkit.org/b/128000>
767
768         Make Document::encoding() return an AtomicString so we don't duplicate
769         the string every time it's called.
770
771         215 KB progression on Membuster3.
772
773         Reviewed by Simon Fraser.
774
775         * dom/Document.h:
776         * dom/Document.cpp:
777         (WebCore::Document::encoding):
778
779 2014-01-31  Simon Fraser  <simon.fraser@apple.com>
780
781         Even when in fixed layout mode, some platforms need to do layout after a viewport change
782         https://bugs.webkit.org/show_bug.cgi?id=128003
783
784         Reviewed by Andreas Kling.
785
786         iOS uses fixed layout mode in both WK1 and WK2, but lays out fixed position
787         elements relative to a variable viewport. This code assumed that fixed layout
788         implies a fixed viewport.
789         
790         Fix by testing for useCustomFixedPositionLayoutRect() in the fixed layout case.
791         
792         Also removed RenderView::hasCustomFixedPosition() which is no longer used.
793         
794         * page/FrameView.cpp:
795         (WebCore::FrameView::shouldLayoutAfterViewportChange):
796         (WebCore::FrameView::visibleContentsResized):
797         * page/FrameView.h:
798         * rendering/RenderView.cpp:
799         * rendering/RenderView.h:
800
801 2014-01-31  Zan Dobersek  <zdobersek@igalia.com>
802
803         Guard GLContextEGL::platformContext() with USE(3D_GRAPHICS)
804         https://bugs.webkit.org/show_bug.cgi?id=120214
805
806         Reviewed by Philippe Normand.
807
808         Guard the GLContextEGL::platformContext() declaration and definiton with USE(3D_GRAPHICS)
809         since this guard is used in the GLContext class, from which the GLContextEGL class overrides
810         this method.
811
812         * platform/graphics/egl/GLContextEGL.cpp:
813         * platform/graphics/egl/GLContextEGL.h:
814
815 2014-01-31  Beth Dakin  <bdakin@apple.com>
816
817         Sideways 'wobble' when scrolling with trackpad on Mavericks
818         https://bugs.webkit.org/show_bug.cgi?id=127521
819         -and corresponding-
820         <rdar://problem/14137306>
821
822         Reviewed by Simon Fraser.
823
824         This patch takes http://trac.webkit.org/changeset/154535 which introduced 
825         filtering wheel events for overflow areas to try to make them less sensitive to X 
826         deltas when scrolling in a primarily Y direction, and it factors that code out 
827         into its own class, now called WheelEventDeltaTracker. So now this new class can 
828         use the same code to filter events for WebKit2’s EventDispatcher.
829
830         Files for WheelEventDeltaTracker.
831         * CMakeLists.txt:
832         * GNUmakefile.list.am:
833         * WebCore.vcxproj/WebCore.vcxproj:
834         * WebCore.vcxproj/WebCore.vcxproj.filters:
835         * WebCore.xcodeproj/project.pbxproj:
836
837         WK2 needs these new WheelEventDeltaTracker functions.
838         * WebCore.exp.in:
839
840         Move a bunch of code over to WheelEventDeltaTracker and use
841         m_recentWheelEventTracker to serve the same purpose.
842         * page/EventHandler.cpp:
843         (WebCore::EventHandler::EventHandler):
844         (WebCore::EventHandler::handleWheelEvent):
845         (WebCore::EventHandler::defaultWheelEventHandler):
846         * page/EventHandler.h:
847
848         Allow horizontal rubber banding now that we have some event filtering in place.
849         * page/FrameView.cpp:
850         (WebCore::FrameView::FrameView):
851
852         New files. Most of this code was from EventHandler.
853         * page/WheelEventDeltaTracker.cpp: Added.
854         (WebCore::WheelEventDeltaTracker::WheelEventDeltaTracker):
855         (WebCore::WheelEventDeltaTracker::~WheelEventDeltaTracker):
856         (WebCore::WheelEventDeltaTracker::beginTrackingDeltas):
857         (WebCore::WheelEventDeltaTracker::endTrackingDeltas):
858         (WebCore::WheelEventDeltaTracker::recordWheelEventDelta):
859         (WebCore::deltaIsPredominantlyVertical):
860         (WebCore::WheelEventDeltaTracker::dominantScrollGestureDirection):
861         * page/WheelEventDeltaTracker.h: Added.
862         (WebCore::WheelEventDeltaTracker::isTrackingDeltas):
863
864         New function to clone events while zero-ing out certain deltas.
865         * platform/PlatformWheelEvent.h:
866         (WebCore::PlatformWheelEvent::copyIgnoringHorizontalDelta):
867         (WebCore::PlatformWheelEvent::copyIgnoringVerticalDelta):
868
869 2014-01-31  Simon Fraser  <simon.fraser@apple.com>
870
871         Don't do logging from Range::collectSelectionRects() on iOS
872         https://bugs.webkit.org/show_bug.cgi?id=127999
873
874         Reviewed by Enrica Casucci.
875
876         Remove some logging code that printed Range stuff in debug builds.
877
878         * dom/Range.cpp:
879         (WebCore::Range::collectSelectionRects):
880
881 2014-01-30  Simon Fraser  <simon.fraser@apple.com>
882
883         Make iOS fixed layer registration more like OS X
884         https://bugs.webkit.org/show_bug.cgi?id=127983
885
886         Reviewed by Antti Koivisto.
887
888         Remove some #if PLATFORM(IOS) in the code related to registering
889         viewport-constrained layers. The code behaves correctly now in WK1
890         and WK2 based on the presence of a ScrollingCoordinator.
891
892         * rendering/RenderLayerCompositor.cpp:
893         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
894         (WebCore::nearestScrollingCoordinatorAncestor):
895         (WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
896         (WebCore::RenderLayerCompositor::unregisterViewportConstrainedLayer):
897
898 2014-01-31  Commit Queue  <commit-queue@webkit.org>
899
900         Unreviewed, rolling out r163165.
901         http://trac.webkit.org/changeset/163165
902         https://bugs.webkit.org/show_bug.cgi?id=127997
903
904         broke 2 fast/table tests (Requested by kling on #webkit).
905
906         * rendering/RenderTable.cpp:
907         (WebCore::RenderTable::updateLogicalWidth):
908         (WebCore::RenderTable::computePreferredLogicalWidths):
909
910 2014-01-31  Anders Carlsson  <andersca@apple.com>
911
912         Don't allocate a new XMLHttpRequestStaticData every time staticData() is called
913         https://bugs.webkit.org/show_bug.cgi?id=127996
914
915         Reviewed by Andreas Kling.
916
917         std::once_flag should be static.
918
919         * xml/XMLHttpRequest.cpp:
920         (WebCore::staticData):
921
922 2014-01-31  Zalan Bujtas  <zalan@apple.com>
923
924         Subpixel rendering: Change RenderBoxModelObject's border functions' signature to support subpixel border painting.
925         https://bugs.webkit.org/show_bug.cgi?id=127975
926
927         Reviewed by Simon Fraser.
928
929         From int to LayoutUnit.
930
931         Covered by existing tests. No change in functionality.
932
933         * platform/text/TextStream.cpp:
934         (WebCore::TextStream::operator<<):
935         * platform/text/TextStream.h:
936         * rendering/RenderBoxModelObject.cpp:
937         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
938         * rendering/RenderBoxModelObject.h:
939         (WebCore::RenderBoxModelObject::borderTop):
940         (WebCore::RenderBoxModelObject::borderBottom):
941         (WebCore::RenderBoxModelObject::borderLeft):
942         (WebCore::RenderBoxModelObject::borderRight):
943         (WebCore::RenderBoxModelObject::borderBefore):
944         (WebCore::RenderBoxModelObject::borderAfter):
945         (WebCore::RenderBoxModelObject::borderStart):
946         (WebCore::RenderBoxModelObject::borderEnd):
947         * rendering/RenderElement.cpp:
948         (WebCore::RenderElement::repaintAfterLayoutIfNeeded):
949         * rendering/RenderTable.cpp:
950         (WebCore::RenderTable::borderBefore):
951         (WebCore::RenderTable::borderAfter):
952         * rendering/RenderTable.h:
953         * rendering/RenderTableCell.cpp:
954         (WebCore::RenderTableCell::borderLeft):
955         (WebCore::RenderTableCell::borderRight):
956         (WebCore::RenderTableCell::borderTop):
957         (WebCore::RenderTableCell::borderBottom):
958         (WebCore::RenderTableCell::borderStart):
959         (WebCore::RenderTableCell::borderEnd):
960         (WebCore::RenderTableCell::borderBefore):
961         (WebCore::RenderTableCell::borderAfter):
962         * rendering/RenderTableCell.h:
963
964 2014-01-31  Brady Eidson  <beidson@apple.com>
965
966         IDB: Index writing
967         <rdar://problem/15899973> and https://bugs.webkit.org/show_bug.cgi?id=127868
968
969         Reviewed by Anders Carlsson.
970
971         * Modules/indexeddb/IDBDatabaseBackend.cpp:
972         (WebCore::IDBDatabaseBackend::openConnectionInternal): Remove outdated comment and ASSERT.
973
974         * Modules/indexeddb/IDBObjectStore.cpp:
975         (WebCore::IDBObjectStore::createIndex): Conditionalize a block of code that is LevelDB-only.
976
977         Remove getColumnBlob().  Nobody used it, and it was dangerous because it reset the statement:
978         * platform/sql/SQLiteStatement.cpp:
979         * platform/sql/SQLiteStatement.h:
980         * WebCore.exp.in:
981
982 2014-01-30  László Langó  <lango@inf.u-szeged.hu>
983
984         [CSS Grid Layout] Do log(n) search in the named line vectors when positioning named line spans.
985         https://bugs.webkit.org/show_bug.cgi?id=125396
986
987         Reviewed by Andreas Kling.
988
989         Implement the suggested FIXMEs and do a log search in the named line
990         vectors. This maintains the previous (somewhat tricky) behavior by
991         using std::lower_bound and std::upper_bound. No difference in existing
992         performance tests, but should scale much better for big grids.
993
994         Backported from Blink:
995         https://chromium.googlesource.com/chromium/blink/+/9fc477af0be708c490a6b90e65e412b0c22b161f
996
997         No new tests, no behavior change.
998
999         * rendering/RenderGrid.cpp:
1000         (WebCore::RenderGrid::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition):
1001         (WebCore::RenderGrid::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
1002
1003 2014-01-31  László Langó  <lango@inf.u-szeged.hu>
1004
1005         Fix table sizing when 'max-width' is used.
1006         https://bugs.webkit.org/show_bug.cgi?id=115156
1007
1008         Reviewed by Andreas Kling.
1009
1010         r143534 make <table> abide by 'max-width' all the time which is wrong.
1011         Per the CSS specification, a table should be wide enough to fit its
1012         content, regardless of 'max-width'.
1013
1014         r140479 fixed part of the regression from that change but made the
1015         same fatal mistake by constraining min-content to fit 'max-width'.
1016
1017         The fix is to avoid constraining min-content and ensure that the table
1018         logical width is at least its min-content size.
1019
1020         Backported from Blink:
1021         https://chromium.googlesource.com/chromium/blink/+/0bca0dec4895aeeb2054ba36316e984e4ebed06f
1022
1023         Test: fast/table/html-table-width-max-width-constrained.html
1024
1025         * rendering/RenderTable.cpp:
1026         (WebCore::RenderTable::updateLogicalWidth):
1027         (WebCore::RenderTable::computePreferredLogicalWidths):
1028
1029 2014-01-30  Simon Fraser  <simon.fraser@apple.com>
1030
1031         Fix iOS build after r163156.
1032         
1033         Need to convert LayoutSizes to FloatSizes.
1034
1035         * bindings/objc/DOMUIKitExtensions.mm:
1036         (-[DOMNode borderRadii]):
1037
1038 2014-01-30  Zalan Bujtas  <zalan@apple.com>
1039
1040         Subpixel rendering: Change drawRect()/drawLine() signature to support subpixel rendering.
1041         https://bugs.webkit.org/show_bug.cgi?id=127961
1042
1043         Reviewed by Simon Fraser.
1044
1045         IntRect/IntPoint -> FloatRect/FloatPoint.
1046
1047         Covered by existing tests. No change in functionality.
1048
1049         * platform/graphics/GraphicsContext.h:
1050         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1051         (WebCore::GraphicsContext::drawRect):
1052         (WebCore::GraphicsContext::drawLine):
1053         * platform/graphics/cg/GraphicsContextCG.cpp:
1054         (WebCore::GraphicsContext::drawRect):
1055         (WebCore::GraphicsContext::drawLine): Keep 'distance' int for DottedStroke and DashedStroke for now.
1056         * platform/graphics/wince/GraphicsContextWinCE.cpp:
1057         (WebCore::GraphicsContext::drawRect):
1058         (WebCore::GraphicsContext::drawLine):
1059
1060 2014-01-30  Simon Fraser  <simon.fraser@apple.com>
1061
1062         Remove ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers() which is no longer used
1063         https://bugs.webkit.org/show_bug.cgi?id=127981
1064
1065         Reviewed by Andreas Kling.
1066
1067         setLayerIsContainerForFixedPositionLayers() was only used by Chromium and Blackberry,
1068         so remove it.
1069         
1070         This allows the removal of RenderLayerBacking::registerScrollingLayers(),
1071         moving the single useful line of code to the caller.
1072
1073         * page/scrolling/ScrollingCoordinator.h:
1074         * rendering/RenderLayerBacking.cpp:
1075         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1076         * rendering/RenderLayerBacking.h:
1077         * rendering/RenderLayerCompositor.cpp:
1078         (WebCore::RenderLayerCompositor::ensureRootLayer):
1079
1080 2014-01-30  Simon Fraser  <simon.fraser@apple.com>
1081
1082         Some fixed position elements disappear in WK2 on iOS
1083         https://bugs.webkit.org/show_bug.cgi?id=127977
1084
1085         Reviewed by Tim Horton.
1086
1087         Use the appropriate rectangle to ensure that on iOS we don't 
1088         consider a fixed element outside the viewport when zoomed in,
1089         and therefore never make a compositing layer for it.
1090
1091         Also remove the iOS-specific code in RenderLayerCompositor::requiresCompositingForPosition(),
1092         since it's OK to use the common code. Doing so requires that we
1093         set the "acceleratedCompositingForFixedPositionEnabled" setting to true
1094         for iOS, so do so.
1095
1096         * page/Settings.cpp:
1097         * page/Settings.in:
1098         * rendering/RenderLayerCompositor.cpp:
1099         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
1100
1101 2014-01-30  Zalan Bujtas  <zalan@apple.com>
1102
1103         Subpixel rendering: Make RoundedRect layout unit aware.
1104         https://bugs.webkit.org/show_bug.cgi?id=127779
1105
1106         Reviewed by Simon Fraser.
1107
1108         In order to draw hairline borders, RoundedRect needs to be
1109         LayoutUnit based.
1110
1111         No change in behavior.
1112
1113         * platform/graphics/GraphicsContext.cpp:
1114         (WebCore::GraphicsContext::fillRoundedRect):
1115         * platform/graphics/GraphicsContext.h:
1116         * platform/graphics/RoundedRect.cpp:
1117         (WebCore::RoundedRect::Radii::scale):
1118         (WebCore::RoundedRect::Radii::expand):
1119         (WebCore::RoundedRect::inflateWithRadii):
1120         (WebCore::RoundedRect::RoundedRect):
1121         (WebCore::RoundedRect::intersectsQuad):
1122         * platform/graphics/RoundedRect.h:
1123         (WebCore::RoundedRect::Radii::Radii):
1124         (WebCore::RoundedRect::Radii::setTopLeft):
1125         (WebCore::RoundedRect::Radii::setTopRight):
1126         (WebCore::RoundedRect::Radii::setBottomLeft):
1127         (WebCore::RoundedRect::Radii::setBottomRight):
1128         (WebCore::RoundedRect::Radii::topLeft):
1129         (WebCore::RoundedRect::Radii::topRight):
1130         (WebCore::RoundedRect::Radii::bottomLeft):
1131         (WebCore::RoundedRect::Radii::bottomRight):
1132         (WebCore::RoundedRect::Radii::expand):
1133         (WebCore::RoundedRect::Radii::shrink):
1134         (WebCore::RoundedRect::rect):
1135         (WebCore::RoundedRect::setRect):
1136         (WebCore::RoundedRect::move):
1137         (WebCore::RoundedRect::inflate):
1138         (WebCore::RoundedRect::expandRadii):
1139         (WebCore::RoundedRect::shrinkRadii):
1140         * platform/graphics/ShadowBlur.cpp:
1141         (WebCore::ScratchBuffer::setCachedShadowValues):
1142         (WebCore::ScratchBuffer::setCachedInsetShadowValues):
1143         (WebCore::computeSliceSizesFromRadii):
1144         (WebCore::ShadowBlur::templateSize):
1145         (WebCore::ShadowBlur::drawRectShadow):
1146         (WebCore::ShadowBlur::drawInsetShadow):
1147         (WebCore::ShadowBlur::drawRectShadowWithoutTiling):
1148         (WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
1149         (WebCore::ShadowBlur::drawInsetShadowWithTiling):
1150         (WebCore::ShadowBlur::drawRectShadowWithTiling):
1151         (WebCore::ShadowBlur::drawLayerPieces):
1152         (WebCore::ShadowBlur::beginShadowLayer):
1153         * platform/graphics/ShadowBlur.h:
1154         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1155         (WebCore::GraphicsContext::clipOut):
1156         (WebCore::GraphicsContext::fillRoundedRect):
1157         (WebCore::GraphicsContext::fillRectWithRoundedHole):
1158         * platform/graphics/cg/GraphicsContextCG.cpp:
1159         (WebCore::GraphicsContext::platformInit):
1160         * platform/graphics/wince/GraphicsContextWinCE.cpp:
1161         (WebCore::GraphicsContext::clipOut):
1162         (WebCore::GraphicsContext::fillRoundedRect):
1163         * rendering/RenderBoxModelObject.cpp:
1164         (WebCore::RenderBoxModelObject::paintOneBorderSide):
1165         (WebCore::calculateSideRect):
1166         (WebCore::RenderBoxModelObject::paintBorderSides):
1167         (WebCore::RenderBoxModelObject::paintBorder):
1168         (WebCore::RenderBoxModelObject::clipBorderSidePolygon):
1169         (WebCore::calculateSideRectIncludingInner):
1170         (WebCore::calculateAdjustedInnerBorder):
1171         (WebCore::areaCastingShadowInHole):
1172         (WebCore::RenderBoxModelObject::paintBoxShadow):
1173         * rendering/RenderBoxModelObject.h:
1174         * rendering/RenderThemeSafari.cpp:
1175         (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
1176         (WebCore::RenderThemeSafari::paintSliderTrack):
1177
1178 2014-01-30  Martin Robinson  <mrobinson@igalia.com>
1179
1180         [GTK] [CMake] Add support for building against GTK+ 2
1181         https://bugs.webkit.org/show_bug.cgi?id=127959
1182
1183         Reviewed by Anders Carlsson.
1184
1185         * PlatformGTK.cmake: Use the new API version variable and don't use GTK3 directly.
1186
1187 2014-01-30  Jessie Berlin  <jberlin@apple.com>
1188
1189         Speculative build fix.
1190
1191         * page/animation/CSSPropertyAnimation.cpp:
1192
1193 2014-01-30  Zalan Bujtas  <zalan@apple.com>
1194
1195         Subpixel rendering: Change BorderData's width from unsigned to float to enable subpixel border painting.
1196         https://bugs.webkit.org/show_bug.cgi?id=127949
1197
1198         Reviewed by Andreas Kling.
1199
1200         Covered by existing tests. No change in functionality.
1201
1202         * css/DeprecatedStyleBuilder.cpp:
1203         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
1204         * page/animation/CSSPropertyAnimation.cpp:
1205         (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
1206         * rendering/RenderTable.cpp:
1207         (WebCore::RenderTable::calcBorderStart):
1208         (WebCore::RenderTable::calcBorderEnd):
1209         * rendering/style/BorderValue.h:
1210         (WebCore::BorderValue::BorderValue):
1211         (WebCore::BorderValue::width):
1212         * rendering/style/RenderStyle.cpp:
1213         (WebCore::RenderStyle::borderBeforeWidth):
1214         (WebCore::RenderStyle::borderAfterWidth):
1215         (WebCore::RenderStyle::borderStartWidth):
1216         (WebCore::RenderStyle::borderEndWidth):
1217         * rendering/style/RenderStyle.h:
1218
1219 2014-01-30  David Kilzer  <ddkilzer@apple.com>
1220
1221         Add security-checked cast for WebCore::CachedImage
1222         <http://webkit.org/b/127967>
1223
1224         Reviewed by Darin Adler.
1225
1226         * loader/cache/CachedImage.h:
1227         (WebCore::toCachedImage): Add.
1228         (WebCore::toCachedImageManual): Add.
1229         * loader/cache/CachedResource.h:
1230         (CACHED_RESOURCE_TYPE_CASTS): Add macro.
1231
1232         * loader/cache/CachedImage.cpp:
1233         (WebCore::CachedImage::switchClientsToRevalidatedResource):
1234         (WebCore::CachedImage::resumeAnimatingImagesForLoader):
1235         * loader/cache/CachedResourceLoader.cpp:
1236         (WebCore::CachedResourceLoader::requestImage):
1237         * loader/cache/MemoryCache.cpp:
1238         (WebCore::MemoryCache::removeImageFromCache):
1239         - Use toCachedImage() and toCachedImageManual().
1240
1241 2014-01-30  Simon Fraser  <simon.fraser@apple.com>
1242
1243         Fixed position objects are clipped in iOS WK2
1244         https://bugs.webkit.org/show_bug.cgi?id=127974
1245
1246         Reviewed by Darin Adler.
1247         
1248         We clip compositing layers for fixed position objects to the viewport
1249         to avoid huge layers. However, because iOS changes the fixed position
1250         rect when zooming, we need a different rect for iOS.
1251         
1252         In WK1 (when we have a platformWidget), we can use
1253         visibleContentRect(ScrollableArea::LegacyIOSDocumentVisibleRect)
1254         which is effectively the whole document. However in WK2 this is
1255         the real visibleContentRect(), so there we use unscaledDocumentRect().
1256
1257         * page/FrameView.cpp:
1258         (WebCore::FrameView::viewportConstrainedExtentRect):
1259         * page/FrameView.h:
1260         * rendering/RenderLayerBacking.cpp:
1261         (WebCore::RenderLayerBacking::updateCompositedBounds):
1262
1263 2014-01-28  Timothy Hatcher  <timothy@apple.com>
1264
1265         Add column number and call timing support to LegacyProfiler.
1266
1267         https://bugs.webkit.org/show_bug.cgi?id=127764
1268
1269         Reviewed by Joseph Pecoraro.
1270
1271         * bindings/js/ScriptProfile.cpp:
1272         (WebCore::ScriptProfile::idleTime):
1273         (WebCore::buildInspectorObjectFor):
1274         (WebCore::ScriptProfile::buildInspectorObject):
1275         * bindings/js/ScriptProfile.h:
1276         * inspector/InspectorHeapProfilerAgent.cpp:
1277         (WebCore::InspectorHeapProfilerAgent::createSnapshotHeader):
1278         * inspector/InspectorProfilerAgent.cpp:
1279         (WebCore::InspectorProfilerAgent::createSnapshotHeader):
1280         (WebCore::InspectorProfilerAgent::getCPUProfile):
1281         * inspector/ScriptProfileNode.idl:
1282         * inspector/TimelineRecordFactory.cpp:
1283         (WebCore::TimelineRecordFactory::appendProfile):
1284         * inspector/protocol/Profiler.json:
1285
1286 2014-01-26  Timothy Hatcher  <timothy@apple.com>
1287
1288         Include profile with FunctionCall and EvaluateScript Timeline records.
1289
1290         https://bugs.webkit.org/show_bug.cgi?id=127663
1291
1292         Reviewed by Joseph Pecoraro.
1293
1294         * bindings/js/JSCallbackData.cpp:
1295         (WebCore::JSCallbackData::invokeCallback):
1296         * bindings/js/JSEventListener.cpp:
1297         (WebCore::JSEventListener::handleEvent):
1298         * bindings/js/JSMutationCallback.cpp:
1299         (WebCore::JSMutationCallback::call):
1300         * bindings/js/ScheduledAction.cpp:
1301         (WebCore::ScheduledAction::executeFunctionInContext):
1302         * bindings/js/ScriptController.cpp:
1303         (WebCore::ScriptController::evaluateInWorld):
1304         * inspector/InspectorController.cpp:
1305         (WebCore::InspectorController::didCallInjectedScriptFunction):
1306         * inspector/InspectorController.h:
1307         * inspector/InspectorInstrumentation.cpp:
1308         (WebCore::InspectorInstrumentation::didCallFunctionImpl):
1309         (WebCore::InspectorInstrumentation::didEvaluateScriptImpl):
1310         * inspector/InspectorInstrumentation.h:
1311         (WebCore::InspectorInstrumentation::didCallFunction):
1312         (WebCore::InspectorInstrumentation::didEvaluateScript):
1313         * inspector/InspectorTimelineAgent.cpp:
1314         (WebCore::InspectorTimelineAgent::willCallFunction):
1315         (WebCore::InspectorTimelineAgent::didCallFunction):
1316         (WebCore::InspectorTimelineAgent::willEvaluateScript):
1317         (WebCore::InspectorTimelineAgent::didEvaluateScript):
1318         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
1319         * inspector/InspectorTimelineAgent.h:
1320         * inspector/TimelineRecordFactory.cpp:
1321         (WebCore::TimelineRecordFactory::appendProfile):
1322         * inspector/TimelineRecordFactory.h:
1323         * inspector/WorkerInspectorController.cpp:
1324         (WebCore::WorkerInspectorController::didCallInjectedScriptFunction):
1325         * inspector/WorkerInspectorController.h:
1326
1327 2014-01-30  Joseph Pecoraro  <pecoraro@apple.com>
1328
1329         Remove now-empty ScriptController::setCaptureCallStackForUncaughtExceptions
1330         https://bugs.webkit.org/show_bug.cgi?id=127964
1331
1332         Reviewed by Timothy Hatcher.
1333
1334         Remove empty function. It was only needed by v8 at one point.
1335
1336         * bindings/js/ScriptController.h:
1337         * bindings/js/ScriptController.cpp:
1338         Remove empty function.
1339
1340         * inspector/InspectorConsoleAgent.h:
1341         * inspector/InspectorConsoleAgent.cpp:
1342         (WebCore::InspectorConsoleAgent::enable):
1343         (WebCore::InspectorConsoleAgent::disable):
1344         Remove callers and related tracking state.
1345
1346 2014-01-30  Roger Fong  <roger_fong@apple.com>
1347
1348         WebGL load policy should be queried for the top level document.
1349         https://bugs.webkit.org/show_bug.cgi?id=127937.
1350         <rdar://problem/15950122>
1351
1352         Reviewed by Timothy Horton.
1353
1354         * html/HTMLCanvasElement.cpp:
1355         (WebCore::HTMLCanvasElement::getContext):
1356
1357 2014-01-27  Jeffrey Pfau  <jpfau@apple.com>
1358
1359         Add a method for schemes to be registered as supporting cache partitioning
1360         https://bugs.webkit.org/show_bug.cgi?id=127739
1361
1362         Reviewed by Darin Adler.
1363
1364         Currently, this assumes that schemes supporting cache partitioning
1365         also support (scheme, host) doubles for the scheme. Furthermore,
1366         the scheme is currently discarded when partitioning and is only
1367         checked to ensure that partitioning is supported for that scheme: it
1368         is assumed that all origins with the same host double should be binned
1369         together, regardless of scheme.
1370
1371         * WebCore.exp.in:
1372         * page/SecurityOrigin.cpp:
1373         (WebCore::SecurityOrigin::cachePartition):
1374         * platform/SchemeRegistry.cpp:
1375         (WebCore::CachePartitioningSchemes):
1376         (WebCore::SchemeRegistry::registerURLSchemeAsCachePartitioned):
1377         (WebCore::SchemeRegistry::shouldPartitionCacheForURLScheme):
1378         * platform/SchemeRegistry.h:
1379
1380 2014-01-30  Jer Noble  <jer.noble@apple.com>
1381
1382         [iOS] Convert blocks to lambdas in iOS Fullscreen code.
1383         https://bugs.webkit.org/show_bug.cgi?id=127946
1384
1385         Reviewed by Anders Carlsson.
1386
1387         Pushing a block into a std::function will eventually cause a crash, since std::function
1388         does not know about Block_copy and Block_release.
1389
1390         Lamdas can be intrinsicly converted to blocks, but not vice versa. Switch over all the
1391         blocks in the new iOS Fullscreen code to use lamdas, and use the ref-counted this object
1392         directly rather than implicitly.
1393
1394         * platform/ios/WebVideoFullscreenControllerAVKit.mm:
1395         (-[WebVideoFullscreenController exitFullscreen]):
1396         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1397         (WebVideoFullscreenInterfaceAVKit::setVideoLayer):
1398         (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
1399         (WebVideoFullscreenInterfaceAVKit::exitFullscreen):
1400
1401 2014-01-30  Martin Robinson  <mrobinson@igalia.com>
1402
1403         [GTK] [CMake] Add a "make dist" target
1404         https://bugs.webkit.org/show_bug.cgi?id=116378
1405
1406         Reviewed by Gustavo Noronha Silva.
1407
1408         * CMakeLists.txt: Don't build WebKitVersion.h for WebKitGTK+. We don't use it
1409         and we don't want to distribute the dependency.
1410
1411 2014-01-30  Brady Eidson  <beidson@apple.com>
1412
1413         IDB: ObjectStore cursor advance() support
1414         <rdar://problem/15779645> and https://bugs.webkit.org/show_bug.cgi?id=127866
1415
1416         Reviewed by Sam Weinig.
1417
1418         Add IDBKeyData sorting for database collation:
1419         * Modules/indexeddb/IDBKeyData.cpp:
1420         (WebCore::IDBKeyData::compare):
1421         * Modules/indexeddb/IDBKeyData.h:
1422
1423         * WebCore.exp.in:
1424
1425         * platform/sql/SQLiteTransaction.h:
1426         (WebCore::SQLiteTransaction::database):
1427
1428 2014-01-30  David Kilzer  <ddkilzer@apple.com>
1429
1430         De-virtual-ize CachedResource::isImage()
1431         <http://webkit.org/b/127936>
1432
1433         Reviewed by Andreas Kling.
1434
1435         Also replace explicit type() checks with isImage().
1436
1437         * loader/SubresourceLoader.cpp:
1438         (WebCore::SubresourceLoader::willSendRequest): Use isImage().
1439         * loader/cache/CachedImage.h:
1440         (WebCore::CachedResource::isImage): Remove virtual override.
1441         * loader/cache/CachedResource.h:
1442         (WebCore::CachedResource::isImage): Check type() instead of
1443         defining a virtual method that returns false by default.
1444         * loader/cache/CachedResourceLoader.cpp:
1445         (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred): Use isImage().
1446
1447 2014-01-30  Eric Carlson  <eric.carlson@apple.com>
1448
1449         [iOS] don't update media layers on main thread when using AVFoundation
1450         https://bugs.webkit.org/show_bug.cgi?id=127931
1451
1452         Reviewed by Simon Fraser.
1453
1454         * platform/graphics/GraphicsLayerClient.h:
1455         (WebCore::GraphicsLayerClient::mediaLayerMustBeUpdatedOnMainThread): Add mediaLayerMustBeUpdatedOnMainThread.
1456
1457         * platform/graphics/ca/GraphicsLayerCA.cpp:
1458         (WebCore::GraphicsLayerCA::mediaLayerMustBeUpdatedOnMainThread): Ask the client if graphics layers
1459             should be updated on the main thread.
1460
1461         * rendering/RenderLayerBacking.cpp:
1462         (WebCore::RenderLayerBacking::mediaLayerMustBeUpdatedOnMainThread): New, check settings to see
1463             if video plug-in proxy is enabled.
1464         * rendering/RenderLayerBacking.h:
1465
1466 2014-01-30  Jer Noble  <jer.noble@apple.com>
1467
1468         [MediaControls][iOS] Fix a couple of UI bugs in the iOS Media Controls
1469         https://bugs.webkit.org/show_bug.cgi?id=127929
1470
1471         Reviewed by Eric Carlson.
1472
1473         Two UI bugs in the iOS Media Controls: the text in the controls should use the apple
1474         system font rather than the webkit small control font, and the buttons in the controls
1475         are clipped due to an "off by one" error when calculating the SVG image dimensions.
1476
1477         * Modules/mediacontrols/mediaControlsiOS.css:
1478         (::-webkit-media-controls):
1479         (audio::-webkit-media-controls-play-button):
1480         (audio::-webkit-media-controls-fullscreen-button):
1481         (audio::-webkit-media-controls-time-remaining-display):
1482
1483 2014-01-30  Jeremy Jones  <jeremyj@apple.com>
1484
1485         Refactor WebVideoFullscreenController separating AVKit from MediaElement.
1486         https://bugs.webkit.org/show_bug.cgi?id=127762
1487
1488         Reviewed by Jer Noble.
1489
1490         Refactor WebVideoFullscreenControllerAVKit implementation into two abstract interfaces with concrete implementations: 
1491         WebVideoFullscreenModel, WebVideoFullscreenInterface, WebVideoFullscreenModelMediaElement, WebVideoFullscreenInterfaceAVKit.
1492
1493         * WebCore.xcodeproj/project.pbxproj:
1494         * platform/ios/WebVideoFullscreenControllerAVKit.h:
1495         * platform/ios/WebVideoFullscreenControllerAVKit.mm:
1496         (-[WebVideoFullscreenController init]):
1497         (-[WebVideoFullscreenController dealloc]):
1498         (-[WebVideoFullscreenController enterFullscreen:]):
1499         (-[WebVideoFullscreenController exitFullscreen]):
1500         * platform/ios/WebVideoFullscreenInterface.h: Copied from Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.h.
1501         (WebCore::WebVideoFullscreenInterface::~WebVideoFullscreenInterface):
1502         * platform/ios/WebVideoFullscreenInterfaceAVKit.h: Added.
1503         (WebCore::WebVideoFullscreenInterfaceAVKit::~WebVideoFullscreenInterfaceAVKit):
1504         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: Added.
1505         (NS_ENUM):
1506         (-[WebAVPlayerController init]):
1507         (-[WebAVPlayerController dealloc]):
1508         (-[WebAVPlayerController forwardingTargetForSelector:]):
1509         (-[WebAVPlayerController playerViewController:shouldDismissWithReason:]):
1510         (-[WebAVPlayerController play:]):
1511         (-[WebAVPlayerController pause:]):
1512         (-[WebAVPlayerController togglePlayback:]):
1513         (-[WebAVPlayerController isPlaying]):
1514         (-[WebAVPlayerController setPlaying:]):
1515         (+[WebAVPlayerController keyPathsForValuesAffectingPlaying]):
1516         (-[WebAVPlayerController seekToTime:]):
1517         (:m_videoFullscreenModel):
1518         (WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel):
1519         (WebVideoFullscreenInterfaceAVKit::setDuration):
1520         (WebVideoFullscreenInterfaceAVKit::setCurrentTime):
1521         (WebVideoFullscreenInterfaceAVKit::setRate):
1522         (WebVideoFullscreenInterfaceAVKit::setVideoDimensions):
1523         (WebVideoFullscreenInterfaceAVKit::setVideoLayer):
1524         (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
1525         (WebVideoFullscreenInterfaceAVKit::exitFullscreen):
1526         * platform/ios/WebVideoFullscreenModel.h: Copied from Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.h.
1527         (WebCore::WebVideoFullscreenModel::~WebVideoFullscreenModel):
1528         * platform/ios/WebVideoFullscreenModelMediaElement.h: Copied from Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.h.
1529         (WebCore::WebVideoFullscreenModelMediaElement::~WebVideoFullscreenModelMediaElement):
1530         (WebCore::WebVideoFullscreenModelMediaElement::setWebVideoFullscreenInterface):
1531         * platform/ios/WebVideoFullscreenModelMediaElement.mm: Added.
1532         (WebVideoFullscreenModelMediaElement::setMediaElement):
1533         (WebVideoFullscreenModelMediaElement::handleEvent):
1534         (WebVideoFullscreenModelMediaElement::requestExitFullScreen):
1535         (WebVideoFullscreenModelMediaElement::play):
1536         (WebVideoFullscreenModelMediaElement::pause):
1537         (WebVideoFullscreenModelMediaElement::togglePlayState):
1538         (WebVideoFullscreenModelMediaElement::seekToTime):
1539         (WebVideoFullscreenModelMediaElement::didExitFullscreen):
1540
1541 2014-01-30  Jer Noble  <jer.noble@apple.com>
1542
1543         [MediaControls][iOS] Add a "start load" button.
1544         https://bugs.webkit.org/show_bug.cgi?id=127861
1545
1546         Reviewed by Eric Carlson.
1547
1548         Add a "start load" button which replaces the controls on platforms
1549         where inline playback is not allowed, or when playback without a
1550         user gesture is not allowed.
1551
1552         Add an accessor to MediaControlsHost to query whether inline playback is allowed.:
1553         * Modules/mediacontrols/MediaControlsHost.cpp:
1554         (WebCore::MediaControlsHost::mediaPlaybackAllowsInline):
1555         * Modules/mediacontrols/MediaControlsHost.h:
1556         * Modules/mediacontrols/MediaControlsHost.idl:
1557         * html/HTMLMediaElement.h:
1558         (WebCore::HTMLMediaElement::mediaSession):
1559
1560         Update the base controller to allow more functions to be overridden:
1561         * Modules/mediacontrols/mediaControlsApple.js:
1562         (Controller):
1563         (Controller.prototype.shouldHaveAnyUI):
1564         (Controller.prototype.updateBase):
1565         (Controller.prototype.setControlsType):
1566         (Controller.prototype.updateControls):
1567         (Controller.prototype.handleFullscreenChange):
1568
1569         Add the new button, and allow for switching between "start", "inline", and "fullscreen" controls:
1570         * Modules/mediacontrols/mediaControlsiOS.js:
1571         (ControllerIOS.prototype.addVideoListeners):
1572         (ControllerIOS.prototype.removeVideoListeners):
1573         (ControllerIOS.prototype.createBase):
1574         (ControllerIOS.prototype.shouldHaveStartPlaybackButton):
1575         (ControllerIOS.prototype.shouldHaveControls):
1576         (ControllerIOS.prototype.shouldHaveAnyUI):
1577         (ControllerIOS.prototype.createControls):
1578         (ControllerIOS.prototype.setControlsType):
1579         (ControllerIOS.prototype.addStartPlaybackControls):
1580         (ControllerIOS.prototype.removeStartPlaybackControls):
1581         (ControllerIOS.prototype.updateControls):
1582         (ControllerIOS.prototype.handleStartPlaybackButtonTouchStart):
1583         (ControllerIOS.prototype.handleStartPlaybackButtonTouchEnd):
1584         (ControllerIOS.prototype.handleStartPlaybackButtonTouchCancel):
1585         (ControllerIOS.prototype.handleReadyStateChange):
1586
1587         Add the new art:
1588         * Modules/mediacontrols/mediaControlsiOS.css:
1589         (audio::-webkit-media-controls-start-playback-button):
1590         (audio::-webkit-media-controls-start-playback-button.failed):
1591
1592 2014-01-30  Tim Horton  <timothy_horton@apple.com>
1593
1594         WebKit2 View Gestures (Swipe): Provide a way for clients to provide views to swipe
1595         https://bugs.webkit.org/show_bug.cgi?id=127891
1596         <rdar://problem/15931413>
1597
1598         Reviewed by Anders Carlsson.
1599
1600         * WebCore.exp.in:
1601         A surprising export.
1602
1603 2014-01-30  Beth Dakin  <bdakin@apple.com>
1604
1605         https://bugs.webkit.org/show_bug.cgi?id=127371
1606         Explore new API that could be used to help build infinitely scrolling websites
1607         -and corresponding-
1608         <rdar://problem/15244768>
1609
1610         Reviewed by Sam Weinig.
1611
1612         This patch adds 4 new events called webkitwillrevealbottom, webkitwillrevealtop, 
1613         webkitwillrevealleft, and webkitwillrevealright. These events will fire when the 
1614         user has scrolled close to corresponding edge of the document. Right now that is 
1615         defined to be one viewport away from the corresponding edge. 
1616
1617         FrameView::scrollPositionChanged() and 
1618         FrameView::scrollPositionChangedViaPlatformWidget() now take two parameters 
1619         representing the old scroll position and the new position.
1620         * WebCore.exp.in:
1621
1622         New events.
1623         * dom/Document.h:
1624         * dom/Document.idl:
1625         * dom/Element.h:
1626         * dom/Element.idl:
1627         * dom/EventNames.h:
1628         * html/HTMLAttributeNames.in:
1629         * html/HTMLElement.cpp:
1630         (WebCore::populateEventNameForAttributeLocalNameMap):
1631         * page/DOMWindow.h:
1632         * page/DOMWindow.idl:
1633
1634         Send oldPosition and newPosition to scrollPositionChanged().
1635         * page/FrameView.cpp:
1636         (WebCore::FrameView::setFixedVisibleContentRect):
1637         (WebCore::FrameView::scrollPositionChangedViaPlatformWidget):
1638
1639         After sending scroll events, also call sendWillRevealEdgeEventsIfNeeded() to send 
1640         the see if we should send the new will-reveal events.
1641         (WebCore::FrameView::scrollPositionChanged):
1642
1643         Use the old position and the new position to determine if the events should be 
1644         sent.
1645         (WebCore::FrameView::sendWillRevealEdgeEventsIfNeeded):
1646
1647         Send new parameters to scrollPositionChanged().
1648         (WebCore::FrameView::scrollTo):
1649         (WebCore::FrameView::wheelEvent):
1650         * page/FrameView.h:
1651
1652 2014-01-30  Szabolcs David  <davidsz@inf.u-szeged.hu>
1653
1654         [curl] Improve realm string parsing in WWW-Authenticate headers
1655         https://bugs.webkit.org/show_bug.cgi?id=127421
1656
1657         Reviewed by Brent Fulgham.
1658
1659         The realm string contains quotes at the beginning and end - this is the
1660         opposite of the libsoup implementation. Furthermore, if the header is
1661         concatenated from two or more another headers, it contains more incorrect part.
1662
1663         * platform/network/curl/ResourceHandleManager.cpp:
1664         (WebCore::removeLeadingAndTrailingQuotes):
1665         (WebCore::getProtectionSpace):
1666
1667 2014-01-30  Anders Carlsson  <andersca@apple.com>
1668
1669         Modernize HTTPHeaderMap iteration
1670         https://bugs.webkit.org/show_bug.cgi?id=127915
1671
1672         Reviewed by Andreas Kling.
1673
1674         * inspector/InspectorResourceAgent.cpp:
1675         (WebCore::buildObjectForHeaders):
1676         (WebCore::InspectorResourceAgent::willLoadXHR):
1677         (WebCore::InspectorResourceAgent::replayXHR):
1678         * loader/CrossOriginAccessControl.cpp:
1679         (WebCore::isSimpleCrossOriginAccessRequest):
1680         (WebCore::createAccessControlPreflightRequest):
1681         * loader/CrossOriginPreflightResultCache.cpp:
1682         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
1683         * loader/DocumentLoader.cpp:
1684         (WebCore::DocumentLoader::responseReceived):
1685         * loader/appcache/ApplicationCacheStorage.cpp:
1686         (WebCore::ApplicationCacheStorage::store):
1687         * loader/cache/CachedRawResource.cpp:
1688         (WebCore::CachedRawResource::canReuse):
1689         * loader/cache/CachedResource.cpp:
1690         (WebCore::CachedResource::updateResponseAfterRevalidation):
1691         * platform/network/HTTPHeaderMap.cpp:
1692         (WebCore::HTTPHeaderMap::copyData):
1693         * platform/network/ResourceRequestBase.cpp:
1694         (WebCore::ResourceRequestBase::addHTTPHeaderFields):
1695         * platform/network/cf/ResourceRequestCFNet.cpp:
1696         (WebCore::setHeaderFields):
1697         * platform/network/mac/ResourceRequestMac.mm:
1698         (WebCore::ResourceRequest::doUpdatePlatformRequest):
1699         * xml/XMLHttpRequest.cpp:
1700         (WebCore::XMLHttpRequest::getAllResponseHeaders):
1701
1702 2014-01-30  Antti Koivisto  <antti@apple.com>
1703
1704         WebPage::determinePrimarySnapshottedPlugIn is slow
1705         https://bugs.webkit.org/show_bug.cgi?id=127905
1706
1707         Reviewed by Anders Carlsson.
1708
1709         * WebCore.exp.in: New exports
1710         * WebCore.xcodeproj/project.pbxproj:
1711         * html/HTMLPlugInImageElement.h:
1712         (WebCore::HTMLPlugInImageElement>): Add isElementOfType<>
1713
1714 2014-01-30  Csaba Osztrogonác  <ossy@webkit.org>
1715
1716         [SOUP] Fix the build if !ENABLE(WEB_TIMING)
1717         https://bugs.webkit.org/show_bug.cgi?id=127906
1718
1719         Reviewed by Gustavo Noronha Silva.
1720
1721         * platform/network/soup/SoupNetworkSession.cpp:
1722
1723 2014-01-30  Andrei Bucur  <abucur@adobe.com>
1724
1725         Remove the ACCELERATED_COMPOSITING flag
1726         https://bugs.webkit.org/show_bug.cgi?id=127833
1727
1728         Reviewed by Antti Koivisto.
1729
1730         Remove the USE(ACCELERATED_COMPOSITING) conditionals from the code base and make AC
1731         mandatory.
1732
1733         Tests: No new tests, no functional change.
1734
1735         * css/MediaQueryEvaluator.cpp:
1736         (WebCore::transform_3dMediaFeatureEval):
1737         * css/StyleResolver.cpp:
1738         (WebCore::StyleResolver::canShareStyleWithElement):
1739         * dom/Document.cpp:
1740         (WebCore::Document::setVisualUpdatesAllowed):
1741         (WebCore::Document::recalcStyle):
1742         (WebCore::Document::createRenderTree):
1743         (WebCore::Document::documentWillBecomeInactive):
1744         (WebCore::Document::documentDidResumeFromPageCache):
1745         (WebCore::Document::windowScreenDidChange):
1746         * dom/PseudoElement.cpp:
1747         (WebCore::PseudoElement::~PseudoElement):
1748         * history/CachedFrame.cpp:
1749         (WebCore::CachedFrameBase::CachedFrameBase):
1750         (WebCore::CachedFrameBase::restore):
1751         (WebCore::CachedFrame::CachedFrame):
1752         * history/CachedFrame.h:
1753         * history/CachedPage.cpp:
1754         (WebCore::CachedPage::restore):
1755         * history/CachedPage.h:
1756         * history/PageCache.cpp:
1757         (WebCore::PageCache::PageCache):
1758         (WebCore::PageCache::markPagesForDeviceScaleChanged):
1759         * history/PageCache.h:
1760         * html/HTMLCanvasElement.cpp:
1761         (WebCore::HTMLCanvasElement::getContext):
1762         (WebCore::HTMLCanvasElement::reset):
1763         (WebCore::HTMLCanvasElement::paintsIntoCanvasBuffer):
1764         (WebCore::HTMLCanvasElement::createImageBuffer):
1765         * html/HTMLMediaElement.cpp:
1766         (WebCore::HTMLMediaElement::parseAttribute):
1767         * html/HTMLMediaElement.h:
1768         * html/canvas/CanvasRenderingContext.h:
1769         * html/canvas/CanvasRenderingContext2D.cpp:
1770         (WebCore::CanvasRenderingContext2D::didDraw):
1771         * html/canvas/CanvasRenderingContext2D.h:
1772         * html/canvas/WebGLRenderingContext.cpp:
1773         (WebCore::WebGLRenderingContext::markContextChanged):
1774         (WebCore::WebGLRenderingContext::reshape):
1775         (WebCore::WebGLRenderingContext::platformLayer):
1776         * html/canvas/WebGLRenderingContext.h:
1777         * inspector/InspectorController.cpp:
1778         (WebCore::InspectorController::InspectorController):
1779         * inspector/InspectorInstrumentation.cpp:
1780         (WebCore::InspectorInstrumentation::didCommitLoadImpl):
1781         (WebCore::InspectorInstrumentation::pseudoElementDestroyedImpl):
1782         * inspector/InspectorInstrumentation.h:
1783         (WebCore::InspectorInstrumentation::pseudoElementDestroyed):
1784         * inspector/InspectorLayerTreeAgent.cpp:
1785         * inspector/InstrumentingAgents.cpp:
1786         (WebCore::InstrumentingAgents::InstrumentingAgents):
1787         (WebCore::InstrumentingAgents::reset):
1788         * inspector/InstrumentingAgents.h:
1789         * loader/EmptyClients.h:
1790         * page/ChromeClient.h:
1791         * page/Frame.cpp:
1792         (WebCore::Frame::layerTreeAsText):
1793         (WebCore::Frame::deviceOrPageScaleFactorChanged):
1794         * page/Frame.h:
1795         * page/FrameView.cpp:
1796         (WebCore::FrameView::setFrameRect):
1797         (WebCore::FrameView::scheduleLayerFlushAllowingThrottling):
1798         (WebCore::FrameView::hasCompositedContent):
1799         (WebCore::FrameView::hasCompositedContentIncludingDescendants):
1800         (WebCore::FrameView::hasCompositingAncestor):
1801         (WebCore::FrameView::enterCompositingMode):
1802         (WebCore::FrameView::isEnclosedInCompositingLayer):
1803         (WebCore::FrameView::flushCompositingStateIncludingSubframes):
1804         (WebCore::FrameView::isSoftwareRenderable):
1805         (WebCore::FrameView::layout):
1806         (WebCore::FrameView::contentsInCompositedLayer):
1807         (WebCore::FrameView::scrollContentsFastPath):
1808         (WebCore::FrameView::scrollContentsSlowPath):
1809         (WebCore::FrameView::setIsOverlapped):
1810         (WebCore::FrameView::delegatesScrollingDidChange):
1811         (WebCore::FrameView::scrollPositionChanged):
1812         (WebCore::FrameView::updateCompositingLayersAfterScrolling):
1813         (WebCore::FrameView::visibleContentsResized):
1814         (WebCore::FrameView::addedOrRemovedScrollbar):
1815         (WebCore::FrameView::disableLayerFlushThrottlingTemporarilyForInteraction):
1816         (WebCore::FrameView::updateLayerFlushThrottlingInAllFrames):
1817         (WebCore::FrameView::adjustTiledBackingCoverage):
1818         (WebCore::FrameView::hasExtendedBackground):
1819         (WebCore::FrameView::extendedBackgroundRect):
1820         (WebCore::FrameView::setBackgroundExtendsBeyondPage):
1821         (WebCore::FrameView::performPostLayoutTasks):
1822         (WebCore::FrameView::paintContents):
1823         (WebCore::FrameView::setTracksRepaints):
1824         (WebCore::FrameView::resetTrackedRepaints):
1825         (WebCore::FrameView::setScrollingPerformanceLoggingEnabled):
1826         (WebCore::FrameView::setExposedRect):
1827         * page/FrameView.h:
1828         * page/Page.cpp:
1829         (WebCore::Page::setPageScaleFactor):
1830         (WebCore::Page::setDeviceScaleFactor):
1831         * page/Settings.cpp:
1832         (WebCore::Settings::setBackgroundShouldExtendBeyondPage):
1833         * page/animation/AnimationBase.cpp:
1834         (WebCore::AnimationBase::freezeAtTime):
1835         * page/animation/AnimationController.cpp:
1836         (WebCore::AnimationController::supportsAcceleratedAnimationOfProperty):
1837         * page/animation/CSSPropertyAnimation.cpp:
1838         (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
1839         (WebCore::CSSPropertyAnimation::blendProperties):
1840         (WebCore::CSSPropertyAnimation::animationOfPropertyIsAccelerated):
1841         * page/animation/CSSPropertyAnimation.h:
1842         * page/animation/CompositeAnimation.cpp:
1843         (WebCore::CompositeAnimation::updateTransitions):
1844         * page/animation/ImplicitAnimation.cpp:
1845         (WebCore::ImplicitAnimation::animate):
1846         (WebCore::ImplicitAnimation::startAnimation):
1847         (WebCore::ImplicitAnimation::pauseAnimation):
1848         (WebCore::ImplicitAnimation::endAnimation):
1849         (WebCore::ImplicitAnimation::timeToNextService):
1850         * page/animation/KeyframeAnimation.cpp:
1851         (WebCore::KeyframeAnimation::animate):
1852         (WebCore::KeyframeAnimation::startAnimation):
1853         (WebCore::KeyframeAnimation::pauseAnimation):
1854         (WebCore::KeyframeAnimation::endAnimation):
1855         (WebCore::KeyframeAnimation::timeToNextService):
1856         * page/ios/FrameIOS.mm:
1857         (WebCore::Frame::viewportOffsetChanged):
1858         (WebCore::Frame::containsTiledBackingLayers):
1859         * page/scrolling/AsyncScrollingCoordinator.cpp:
1860         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
1861         * page/scrolling/ScrollingCoordinator.cpp:
1862         (WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView):
1863         (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
1864         (WebCore::ScrollingCoordinator::verticalScrollbarLayerForScrollableArea):
1865         (WebCore::ScrollingCoordinator::scrollLayerForFrameView):
1866         (WebCore::ScrollingCoordinator::headerLayerForFrameView):
1867         (WebCore::ScrollingCoordinator::footerLayerForFrameView):
1868         (WebCore::ScrollingCoordinator::counterScrollingLayerForFrameView):
1869         (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects):
1870         * page/scrolling/ScrollingCoordinator.h:
1871         * platform/ScrollView.cpp:
1872         (WebCore::positionScrollCornerLayer):
1873         (WebCore::ScrollView::positionScrollbarLayers):
1874         (WebCore::ScrollView::paintScrollbars):
1875         (WebCore::ScrollView::paint):
1876         * platform/ScrollableArea.cpp:
1877         (WebCore::ScrollableArea::invalidateScrollbar):
1878         (WebCore::ScrollableArea::invalidateScrollCorner):
1879         (WebCore::ScrollableArea::horizontalScrollbarLayerDidChange):
1880         (WebCore::ScrollableArea::hasLayerForHorizontalScrollbar):
1881         (WebCore::ScrollableArea::hasLayerForVerticalScrollbar):
1882         (WebCore::ScrollableArea::hasLayerForScrollCorner):
1883         * platform/ScrollableArea.h:
1884         * platform/ScrollbarTheme.h:
1885         * platform/efl/EflScreenUtilities.cpp:
1886         (WebCore::applyFallbackCursor):
1887         * platform/graphics/GraphicsContext3D.h:
1888         * platform/graphics/GraphicsContext3DPrivate.cpp:
1889         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
1890         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
1891         * platform/graphics/GraphicsContext3DPrivate.h:
1892         * platform/graphics/GraphicsLayer.cpp:
1893         * platform/graphics/GraphicsLayer.h:
1894         * platform/graphics/GraphicsLayerAnimation.cpp:
1895         * platform/graphics/GraphicsLayerAnimation.h:
1896         * platform/graphics/GraphicsLayerClient.h:
1897         * platform/graphics/GraphicsLayerFactory.h:
1898         * platform/graphics/GraphicsLayerUpdater.cpp:
1899         * platform/graphics/GraphicsLayerUpdater.h:
1900         * platform/graphics/ImageBuffer.cpp:
1901         * platform/graphics/ImageBuffer.h:
1902         * platform/graphics/MediaPlayer.cpp:
1903         (WebCore::MediaPlayer::platformLayer):
1904         (WebCore::MediaPlayer::supportsAcceleratedRendering):
1905         * platform/graphics/MediaPlayer.h:
1906         * platform/graphics/MediaPlayerPrivate.h:
1907         * platform/graphics/PlatformLayer.h:
1908         * platform/graphics/TextTrackRepresentation.cpp:
1909         * platform/graphics/TextTrackRepresentation.h:
1910         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
1911         (WebCore::MediaPlayerPrivateAVFoundation::currentRenderingMode):
1912         (WebCore::MediaPlayerPrivateAVFoundation::preferredRenderingMode):
1913         (WebCore::MediaPlayerPrivateAVFoundation::setUpVideoRendering):
1914         (WebCore::MediaPlayerPrivateAVFoundation::tearDownVideoRendering):
1915         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
1916         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
1917         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1918         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::platformLayer):
1919         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged):
1920         * platform/graphics/ca/GraphicsLayerCA.cpp:
1921         * platform/graphics/ca/GraphicsLayerCA.h:
1922         * platform/graphics/ca/LayerFlushScheduler.cpp:
1923         * platform/graphics/ca/LayerFlushScheduler.h:
1924         * platform/graphics/ca/LayerFlushSchedulerClient.h:
1925         * platform/graphics/ca/PlatformCAAnimation.h:
1926         * platform/graphics/ca/PlatformCAFilters.h:
1927         * platform/graphics/ca/PlatformCALayer.h:
1928         * platform/graphics/ca/PlatformCALayerClient.h:
1929         * platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp:
1930         * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
1931         (PlatformCAAnimation::copyTimingFunctionsFrom):
1932         * platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
1933         * platform/graphics/ca/mac/PlatformCALayerMac.h:
1934         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1935         (PlatformCALayerMac::enumerateRectsBeingDrawn):
1936         * platform/graphics/ca/win/AbstractCACFLayerTreeHost.h:
1937         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
1938         * platform/graphics/ca/win/CACFLayerTreeHost.h:
1939         * platform/graphics/ca/win/CACFLayerTreeHostClient.h:
1940         * platform/graphics/ca/win/LayerChangesFlusher.cpp:
1941         * platform/graphics/ca/win/LayerChangesFlusher.h:
1942         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:
1943         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h:
1944         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
1945         (PlatformCAAnimation::copyTimingFunctionsFrom):
1946         * platform/graphics/ca/win/PlatformCAFiltersWin.cpp:
1947         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
1948         (PlatformCALayerWin::createCompatibleLayer):
1949         * platform/graphics/ca/win/PlatformCALayerWin.h:
1950         * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
1951         (PlatformCALayerWinInternal::drawTile):
1952         * platform/graphics/ca/win/PlatformCALayerWinInternal.h:
1953         * platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp:
1954         * platform/graphics/ca/win/WKCACFViewLayerTreeHost.h:
1955         * platform/graphics/cairo/DrawingBufferCairo.cpp:
1956         (WebCore::DrawingBuffer::paintCompositedResultsToCanvas):
1957         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
1958         (WebCore::GraphicsContext3D::platformLayer):
1959         * platform/graphics/cairo/ImageBufferCairo.cpp:
1960         (WebCore::ImageBuffer::platformLayer):
1961         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
1962         (WebCore::GraphicsContext3D::platformLayer):
1963         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
1964         * platform/graphics/efl/GraphicsContext3DPrivate.h:
1965         * platform/graphics/gpu/DrawingBuffer.h:
1966         * platform/graphics/gpu/LoopBlinnMathUtils.cpp:
1967         * platform/graphics/gpu/TilingData.cpp:
1968         * platform/graphics/gpu/mac/DrawingBufferMac.mm:
1969         (WebCore::DrawingBuffer::frontColorBuffer):
1970         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
1971         (WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
1972         (WebCore::MediaPlayerPrivateGStreamerBase::paint):
1973         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
1974         * platform/graphics/ios/MediaPlayerPrivateIOS.h:
1975         * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
1976         (WebCore::MediaPlayerPrivateIOS::supportsAcceleratedRendering):
1977         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
1978         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1979         (WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
1980         (WebCore::MediaPlayerPrivateQTKit::destroyQTMovieLayer):
1981         (WebCore::MediaPlayerPrivateQTKit::preferredRenderingMode):
1982         (WebCore::MediaPlayerPrivateQTKit::platformLayer):
1983         (WebCore::MediaPlayerPrivateQTKit::setClosedCaptionsVisible):
1984         (WebCore::MediaPlayerPrivateQTKit::layerHostChanged):
1985         (WebCore::MediaPlayerPrivateQTKit::acceleratedRenderingStateChanged):
1986         (-[WebCoreMovieObserver layerHostChanged:]):
1987         * platform/graphics/mac/WebGLLayer.h:
1988         * platform/graphics/mac/WebGLLayer.mm:
1989         * platform/graphics/mac/WebLayer.h:
1990         * platform/graphics/mac/WebLayer.mm:
1991         * platform/graphics/mac/WebTiledLayer.h:
1992         * platform/graphics/mac/WebTiledLayer.mm:
1993         * platform/graphics/opengl/GLDefs.h:
1994         * platform/graphics/opengl/GLPlatformContext.cpp:
1995         * platform/graphics/opengl/GLPlatformContext.h:
1996         * platform/graphics/opengl/GLPlatformSurface.cpp:
1997         * platform/graphics/opengl/GLPlatformSurface.h:
1998         * platform/graphics/surfaces/GLTransportSurface.cpp:
1999         * platform/graphics/surfaces/GLTransportSurface.h:
2000         * platform/graphics/surfaces/glx/GLXConfigSelector.h:
2001         * platform/graphics/surfaces/glx/GLXContext.cpp:
2002         * platform/graphics/surfaces/glx/GLXContext.h:
2003         * platform/graphics/surfaces/glx/GLXSurface.cpp:
2004         * platform/graphics/surfaces/glx/GLXSurface.h:
2005         * platform/graphics/texmap/TextureMapper.cpp:
2006         * platform/graphics/texmap/TextureMapper.h:
2007         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
2008         * platform/graphics/texmap/TextureMapperBackingStore.h:
2009         * platform/graphics/texmap/TextureMapperFPSCounter.cpp:
2010         * platform/graphics/texmap/TextureMapperFPSCounter.h:
2011         * platform/graphics/texmap/TextureMapperGL.cpp:
2012         * platform/graphics/texmap/TextureMapperGL.h:
2013         * platform/graphics/texmap/TextureMapperLayer.cpp:
2014         * platform/graphics/texmap/TextureMapperLayer.h:
2015         * platform/graphics/texmap/TextureMapperShaderProgram.cpp:
2016         * platform/graphics/texmap/TextureMapperSurfaceBackingStore.cpp:
2017         * platform/graphics/texmap/TextureMapperSurfaceBackingStore.h:
2018         * platform/graphics/texmap/TextureMapperTile.cpp:
2019         * platform/graphics/texmap/TextureMapperTile.h:
2020         * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
2021         * platform/graphics/texmap/TextureMapperTiledBackingStore.h:
2022         * platform/graphics/win/GraphicsContext3DWin.cpp:
2023         (WebCore::GraphicsContext3D::platformLayer):
2024         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
2025         (WebCore::MediaPlayerPrivateFullscreenWindow::createWindow):
2026         (WebCore::MediaPlayerPrivateFullscreenWindow::wndProc):
2027         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h:
2028         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
2029         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerLayoutSublayersOfLayer):
2030         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::MediaPlayerPrivateQuickTimeVisualContext):
2031         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::supportsFullscreen):
2032         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::platformMedia):
2033         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::platformLayer):
2034         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::naturalSize):
2035         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::paint):
2036         (WebCore::CreateCGImageFromPixelBuffer):
2037         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::retrieveCurrentImage):
2038         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::currentRenderingMode):
2039         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::preferredRenderingMode):
2040         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::setUpVideoRendering):
2041         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::tearDownVideoRendering):
2042         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::hasSetUpVideoRendering):
2043         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::retrieveAndResetMovieTransform):
2044         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::createLayerForMovie):
2045         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::destroyLayerForMovie):
2046         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::setPrivateBrowsingMode):
2047         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
2048         * platform/graphics/win/WKCAImageQueue.cpp:
2049         * platform/graphics/win/WKCAImageQueue.h:
2050         * platform/mac/ScrollbarThemeMac.h:
2051         * platform/mac/ScrollbarThemeMac.mm:
2052         * plugins/PluginViewBase.h:
2053         * rendering/FlowThreadController.cpp:
2054         (WebCore::FlowThreadController::updateRenderFlowThreadLayersIfNeeded):
2055         * rendering/FlowThreadController.h:
2056         * rendering/RenderBox.cpp:
2057         (WebCore::RenderBox::styleWillChange):
2058         (WebCore::isCandidateForOpaquenessTest):
2059         (WebCore::layersUseImage):
2060         (WebCore::RenderBox::imageChanged):
2061         * rendering/RenderBoxModelObject.cpp:
2062         (WebCore::RenderBoxModelObject::suspendAnimations):
2063         (WebCore::RenderBoxModelObject::fixedBackgroundPaintsInLocalCoordinates):
2064         * rendering/RenderBoxModelObject.h:
2065         * rendering/RenderElement.cpp:
2066         (WebCore::RenderElement::adjustStyleDifference):
2067         (WebCore::RenderElement::setStyle):
2068         (WebCore::RenderElement::styleWillChange):
2069         * rendering/RenderEmbeddedObject.cpp:
2070         (WebCore::RenderEmbeddedObject::allowsAcceleratedCompositing):
2071         * rendering/RenderEmbeddedObject.h:
2072         * rendering/RenderFlowThread.cpp:
2073         (WebCore::RenderFlowThread::RenderFlowThread):
2074         (WebCore::RenderFlowThread::layout):
2075         (WebCore::RenderFlowThread::updateAllLayerToRegionMappings):
2076         * rendering/RenderFlowThread.h:
2077         * rendering/RenderFullScreen.cpp:
2078         * rendering/RenderImage.cpp:
2079         (WebCore::RenderImage::imageDimensionsChanged):
2080         (WebCore::RenderImage::notifyFinished):
2081         * rendering/RenderLayer.cpp:
2082         (WebCore::RenderLayer::RenderLayer):
2083         (WebCore::RenderLayer::~RenderLayer):
2084         (WebCore::RenderLayer::canRender3DTransforms):
2085         (WebCore::RenderLayer::paintsWithFilters):
2086         (WebCore::RenderLayer::updateLayerPositions):
2087         (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrderRecursive):
2088         (WebCore::RenderLayer::currentTransform):
2089         (WebCore::RenderLayer::updateDescendantDependentFlags):
2090         (WebCore::RenderLayer::checkIfDescendantClippingContextNeedsUpdate):
2091         (WebCore::RenderLayer::shouldRepaintAfterLayout):
2092         (WebCore::RenderLayer::enclosingFilterRepaintLayer):
2093         (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
2094         (WebCore::RenderLayer::clippingRootForPainting):
2095         (WebCore::RenderLayer::addChild):
2096         (WebCore::RenderLayer::removeChild):
2097         (WebCore::RenderLayer::removeOnlyThisLayer):
2098         (WebCore::RenderLayer::scrollTo):
2099         (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
2100         (WebCore::RenderLayer::invalidateScrollbarRect):
2101         (WebCore::RenderLayer::invalidateScrollCornerRect):
2102         (WebCore::RenderLayer::positionOverflowControls):
2103         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
2104         (WebCore::RenderLayer::paintOverflowControls):
2105         (WebCore::shouldDoSoftwarePaint):
2106         (WebCore::RenderLayer::paintLayer):
2107         (WebCore::RenderLayer::calculateClipRects):
2108         * rendering/RenderLayer.h:
2109         * rendering/RenderLayerBacking.cpp:
2110         * rendering/RenderLayerBacking.h:
2111         * rendering/RenderLayerCompositor.cpp:
2112         * rendering/RenderLayerCompositor.h:
2113         * rendering/RenderNamedFlowThread.cpp:
2114         (WebCore::RenderNamedFlowThread::collectsGraphicsLayersUnderRegions):
2115         * rendering/RenderNamedFlowThread.h:
2116         * rendering/RenderObject.cpp:
2117         (WebCore::RenderObject::containerForRepaint):
2118         (WebCore::RenderObject::repaintUsingContainer):
2119         * rendering/RenderTreeAsText.cpp:
2120         (WebCore::write):
2121         * rendering/RenderVideo.cpp:
2122         (WebCore::RenderVideo::updatePlayer):
2123         (WebCore::RenderVideo::acceleratedRenderingStateChanged):
2124         * rendering/RenderVideo.h:
2125         * rendering/RenderView.cpp:
2126         (WebCore::RenderView::paintBoxDecorations):
2127         (WebCore::RenderView::repaintRootContents):
2128         (WebCore::RenderView::repaintRectangleInViewAndCompositedLayers):
2129         (WebCore::RenderView::repaintViewAndCompositedLayers):
2130         (WebCore::RenderView::setMaximalOutlineSize):
2131         (WebCore::RenderView::compositor):
2132         (WebCore::RenderView::setIsInWindow):
2133         * rendering/RenderView.h:
2134         * rendering/RenderWidget.cpp:
2135         (WebCore::RenderWidget::setWidgetGeometry):
2136         (WebCore::RenderWidget::requiresAcceleratedCompositing):
2137         * rendering/RenderWidget.h:
2138         * rendering/style/RenderStyle.cpp:
2139         (WebCore::RenderStyle::changeRequiresLayout):
2140         (WebCore::RenderStyle::changeRequiresLayerRepaint):
2141         (WebCore::RenderStyle::changeRequiresRecompositeLayer):
2142         (WebCore::RenderStyle::diff):
2143         * rendering/style/RenderStyle.h:
2144         * rendering/style/RenderStyleConstants.h:
2145         * rendering/style/StyleRareNonInheritedData.cpp:
2146         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
2147         (WebCore::StyleRareNonInheritedData::operator==):
2148         * rendering/style/StyleRareNonInheritedData.h:
2149         * testing/Internals.cpp:
2150         (WebCore::Internals::resetToConsistentState):
2151         (WebCore::Internals::setHeaderHeight):
2152         (WebCore::Internals::setFooterHeight):
2153
2154 2014-01-30  Krzysztof Czech  <k.czech@samsung.com>
2155
2156         AX: Clean up AccessibilityRenderObject
2157         https://bugs.webkit.org/show_bug.cgi?id=127838
2158
2159         Reviewed by Chris Fleizach.
2160
2161         Reducing some code by implementing ariaElementsFromAttribute.
2162         It is used as a helper for other methods.
2163
2164         No new tests. Covered by existing ones.
2165
2166         * accessibility/AccessibilityRenderObject.cpp:
2167         (WebCore::AccessibilityRenderObject::ariaElementsFromAttribute):
2168         (WebCore::AccessibilityRenderObject::ariaFlowToElements):
2169         (WebCore::AccessibilityRenderObject::ariaDescribedByElements):
2170         (WebCore::AccessibilityRenderObject::ariaOwnsElements):
2171         * accessibility/AccessibilityRenderObject.h:
2172
2173 2014-01-29  Commit Queue  <commit-queue@webkit.org>
2174
2175         Unreviewed, rolling out r163048.
2176         http://trac.webkit.org/changeset/163048
2177         https://bugs.webkit.org/show_bug.cgi?id=127890
2178
2179         Caused many crashes, detected by EWS prior to landing
2180         (Requested by ap on #webkit).
2181
2182         * Modules/mediacontrols/MediaControlsHost.cpp:
2183         (WebCore::MediaControlsHost::sortedTrackListForMenu):
2184         (WebCore::MediaControlsHost::displayNameForTrack):
2185         (WebCore::MediaControlsHost::captionDisplayMode):
2186         * WebCore.exp.in:
2187         * WebCore.vcxproj/WebCore.vcxproj:
2188         * WebCore.vcxproj/WebCore.vcxproj.filters:
2189         * WebCore.xcodeproj/project.pbxproj:
2190         * css/DocumentRuleSets.cpp:
2191         (WebCore::DocumentRuleSets::initUserStyle):
2192         * css/InspectorCSSOMWrappers.cpp:
2193         (WebCore::InspectorCSSOMWrappers::collectFromDocumentStyleSheetCollection):
2194         * dom/Document.cpp:
2195         (WebCore::Document::setCompatibilityMode):
2196         (WebCore::Document::registerForCaptionPreferencesChangedCallbacks):
2197         (WebCore::Document::captionPreferencesChanged):
2198         * dom/DocumentStyleSheetCollection.cpp:
2199         * dom/DocumentStyleSheetCollection.h:
2200         * html/HTMLMediaElement.cpp:
2201         (WebCore::HTMLMediaElement::HTMLMediaElement):
2202         (WebCore::HTMLMediaElement::parseAttribute):
2203         * html/shadow/MediaControlElements.cpp:
2204         (WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay):
2205         (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
2206         (WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
2207         * page/CaptionStyleSheetMediaAF.cpp: Removed.
2208         * page/CaptionStyleSheetMediaAF.h: Removed.
2209         * page/CaptionUserPreferences.cpp:
2210         (WebCore::CaptionUserPreferences::CaptionUserPreferences):
2211         (WebCore::CaptionUserPreferences::notify):
2212         (WebCore::CaptionUserPreferences::setCaptionDisplayMode):
2213         (WebCore::CaptionUserPreferences::userPrefersCaptions):
2214         (WebCore::CaptionUserPreferences::setUserPrefersCaptions):
2215         (WebCore::CaptionUserPreferences::userPrefersSubtitles):
2216         (WebCore::CaptionUserPreferences::setUserPrefersSubtitles):
2217         (WebCore::CaptionUserPreferences::userPrefersTextDescriptions):
2218         (WebCore::CaptionUserPreferences::setUserPrefersTextDescriptions):
2219         (WebCore::CaptionUserPreferences::captionPreferencesChanged):
2220         (WebCore::CaptionUserPreferences::textTrackSelectionScore):
2221         (WebCore::CaptionUserPreferences::setCaptionsStyleSheetOverride):
2222         (WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride):
2223         * page/CaptionUserPreferences.h:
2224         (WebCore::CaptionUserPreferences::captionsStyleSheetOverride):
2225         (WebCore::CaptionUserPreferences::setInterestedInCaptionPreferenceChanges):
2226         (WebCore::CaptionUserPreferences::testingMode):
2227         (WebCore::CaptionUserPreferences::setTestingMode):
2228         (WebCore::CaptionUserPreferences::pageGroup):
2229         * page/CaptionUserPreferencesMediaAF.cpp:
2230         (WebCore::userCaptionPreferencesChangedNotificationCallback):
2231         (WebCore::CaptionUserPreferencesMediaAF::CaptionUserPreferencesMediaAF):
2232         (WebCore::CaptionUserPreferencesMediaAF::userPrefersCaptions):
2233         (WebCore::CaptionUserPreferencesMediaAF::userPrefersSubtitles):
2234         (WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges):
2235         (WebCore::CaptionUserPreferencesMediaAF::captionPreferencesChanged):
2236         (WebCore::CaptionUserPreferencesMediaAF::captionsWindowCSS):
2237         (WebCore::CaptionUserPreferencesMediaAF::captionsBackgroundCSS):
2238         (WebCore::CaptionUserPreferencesMediaAF::captionsTextColor):
2239         (WebCore::CaptionUserPreferencesMediaAF::captionsTextColorCSS):
2240         (WebCore::CaptionUserPreferencesMediaAF::windowRoundedCornerRadiusCSS):
2241         (WebCore::CaptionUserPreferencesMediaAF::captionsEdgeColorForTextColor):
2242         (WebCore::CaptionUserPreferencesMediaAF::cssPropertyWithTextEdgeColor):
2243         (WebCore::CaptionUserPreferencesMediaAF::colorPropertyCSS):
2244         (WebCore::CaptionUserPreferencesMediaAF::captionsTextEdgeCSS):
2245         (WebCore::CaptionUserPreferencesMediaAF::captionsDefaultFontCSS):
2246         (WebCore::CaptionUserPreferencesMediaAF::captionsStyleSheetOverride):
2247         (WebCore::CaptionUserPreferencesMediaAF::textTrackSelectionScore):
2248         (WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu):
2249         * page/CaptionUserPreferencesMediaAF.h:
2250         * page/Page.cpp:
2251         * page/Page.h:
2252         * page/PageGroup.cpp:
2253         (WebCore::PageGroup::captionPreferencesChanged):
2254         (WebCore::PageGroup::captionPreferences):
2255         * page/PageGroup.h:
2256         * testing/InternalSettings.cpp:
2257         (WebCore::InternalSettings::setShouldDisplayTrackKind):
2258         (WebCore::InternalSettings::shouldDisplayTrackKind):
2259         * testing/Internals.cpp:
2260         (WebCore::Internals::resetToConsistentState):
2261         (WebCore::Internals::Internals):
2262         (WebCore::Internals::captionsStyleSheetOverride):
2263         (WebCore::Internals::setCaptionsStyleSheetOverride):
2264         (WebCore::Internals::setPrimaryAudioTrackLanguageOverride):
2265         (WebCore::Internals::setCaptionDisplayMode):
2266
2267 2014-01-29  Csaba Osztrogonác  <ossy@webkit.org>
2268
2269         Remove ENABLE(JAVASCRIPT_DEBUGGER) leftovers
2270         https://bugs.webkit.org/show_bug.cgi?id=127845
2271
2272         Reviewed by Joseph Pecoraro.
2273
2274         * Configurations/FeatureDefines.xcconfig:
2275         * bindings/js/JSDOMWindowBase.cpp:
2276         (WebCore::JSDOMWindowBase::supportsProfiling):
2277
2278 2014-01-29  Gavin Barraclough  <barraclough@apple.com>
2279
2280         Add IsVisibleOrOccluded to ViewState
2281         https://bugs.webkit.org/show_bug.cgi?id=127875
2282
2283         Reviewed by Anders Carlsson.
2284
2285         * page/ViewState.h:
2286             - added IsVisibleOrOccluded
2287
2288 2014-01-29  Ryosuke Niwa  <rniwa@webkit.org>
2289
2290         EventHandler::handleMouseReleaseEvent shouldn't call updateSelectionCachesIfSelectionIsInsideTextFormControl
2291         and selectFrameElementInParentIfFullySelected
2292         https://bugs.webkit.org/show_bug.cgi?id=127834
2293
2294         Reviewed by Alexey Proskuryakov.
2295
2296         Removed the calls and made setNonDirectionalSelectionIfNeeded pass in UserTriggered option.
2297
2298         In addition, removed the rather error-prone function override of setSelection since TextGranularity,
2299         which is an enum, could be implicitly coerced into SetSelectionOptions which is a typedefed unsigned int.
2300
2301         * editing/FrameSelection.cpp:
2302         (WebCore::FrameSelection::setSelectionByMouseIfDifferent): Renamed from setNonDirectionalSelectionIfNeeded.
2303         Pass in DoNotRevealSelection to avoid revealing the selection to preserve the existing behavior.
2304         There are two layout tests that fail without this.
2305         (WebCore::FrameSelection::setSelection): Check the newly addeed DoNotRevealSelection option.
2306         (WebCore::FrameSelection::wordSelectionContainingCaretSelection): Call
2307
2308         * editing/FrameSelection.h: Made updateSelectionCachesIfSelectionIsInsideTextFormControl and
2309         selectFrameElementInParentIfFullySelected private as they are no longer called outside of FrameSelection.
2310
2311         * page/EventHandler.cpp:
2312         (WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart):
2313         (WebCore::EventHandler::updateSelectionForMouseDrag):
2314         (WebCore::EventHandler::handleMouseReleaseEvent): Removed calls to the functions.
2315
2316 2014-01-29  Jer Noble  <jer.noble@apple.com>
2317
2318         Unreviewed iOS build fix after 163050.
2319
2320         Import CALayer.h explicitly as (on iOS) it is not included by other headers.
2321
2322         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2323
2324 2014-01-29  Jer Noble  <jer.noble@apple.com>
2325
2326         Unreviewed Mac Build fix after r163046.
2327
2328         Forward define AVSampleLayerDisplayLayer and its methods.
2329
2330         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2331
2332 2014-01-26  Sam Weinig  <sam@webkit.org>
2333
2334         CaptionUserPreferences should not be on the PageGroup if they are not really per-PageGroup (Part 1)
2335         https://bugs.webkit.org/show_bug.cgi?id=127666
2336
2337         Reviewed by Eric Carlson.
2338
2339         This patch:
2340         - Makes CaptionUserPreferences a singleton (temporary) that is accessed
2341           via Page.
2342         - Simplifies overriding system preferences by requiring that a Document be
2343           be passed so the correct Settings object can be obtained (and not just a 
2344           random one).
2345         - Stops using UserStyleSheets for captions style injection, and instead
2346           adds a new style sheet to the DocumentStyleSheetCollection.
2347         - Move caption style sheet creation into its own file - CaptionStyleSheetMediaAF.h/cpp
2348
2349         * WebCore.vcxproj/WebCore.vcxproj:
2350         * WebCore.vcxproj/WebCore.vcxproj.filters:
2351         * WebCore.xcodeproj/project.pbxproj:
2352         Add new files.
2353
2354         * WebCore.exp.in:
2355         Update exports.
2356
2357         * css/DocumentRuleSets.cpp:
2358         * css/InspectorCSSOMWrappers.cpp:
2359         * dom/Document.cpp:
2360         * dom/DocumentStyleSheetCollection.cpp:
2361         * dom/DocumentStyleSheetCollection.h:
2362         Switch from using the user style sheet mechanism, which is meant for, you guessed it, users,
2363         to an explicit caption style sheet.
2364
2365         * Modules/mediacontrols/MediaControlsHost.cpp:
2366         * html/HTMLMediaElement.cpp:
2367         * html/shadow/MediaControlElements.cpp:
2368         Get the CaptionUserPreferences via the Page.
2369
2370         * page/CaptionStyleSheetMediaAF.cpp: Added.
2371         * page/CaptionStyleSheetMediaAF.h: Added.
2372         Move caption style sheet creation here. If the global style changes, the sheet is invalidated
2373         and this is called again.
2374
2375         * page/CaptionUserPreferences.cpp:
2376         * page/CaptionUserPreferences.h:
2377         - Removes unused m_havePreferences member.
2378         - Change userPrefersFoo() functions to take a Document&. Use it to check its Settings.
2379         - Remove setUserPrefersFoo() functions and just set the Settings directly.
2380         - Move all the testing only pieces together.
2381         
2382         * page/CaptionUserPreferencesMediaAF.cpp:
2383         * page/CaptionUserPreferencesMediaAF.h:
2384         - Extract caption style sheet creation into CaptionStyleSheetMediaAF.h/cpp
2385         - Stop waiting for an interested party, and just register for appearance change
2386           notifications right away. Media elements are common enough that this should not
2387           make a difference.
2388
2389         * page/Page.cpp:
2390         (WebCore::Page::updateStyleForAllPagesForCaptionPreferencesChanged):
2391         Add helper to call captionPreferencesChanged() on all the Pages.
2392
2393         (WebCore::Page::captionPreferences):
2394         Add accessor for the CaptionUserPreferences. Currently this returns a singleton, but I plan
2395         to extract the singleton aspects of it into another class, and leave the per-Page parts here.
2396
2397         * page/Page.h:
2398         * page/PageGroup.cpp:
2399         * page/PageGroup.h:
2400         Remove CaptionUserPreferences from here.
2401
2402         * testing/InternalSettings.cpp:
2403         (WebCore::InternalSettings::setShouldDisplayTrackKind):
2404         (WebCore::InternalSettings::shouldDisplayTrackKind):
2405         Override the settings for the page directly.
2406
2407         * testing/Internals.cpp:
2408         (WebCore::Internals::resetToConsistentState):
2409         (WebCore::Internals::Internals):
2410         (WebCore::Internals::captionsStyleSheetOverride):
2411         (WebCore::Internals::setCaptionsStyleSheetOverride):
2412         (WebCore::Internals::setPrimaryAudioTrackLanguageOverride):
2413         (WebCore::Internals::setCaptionDisplayMode):
2414         Get the CaptionUserPreferences via the Page.
2415
2416 2014-01-29  Jer Noble  <jer.noble@apple.com>
2417
2418         [MSE][Mac] In SourceBufferPrivateAVFObjC, only include those headers actually necessary to compile.
2419         https://bugs.webkit.org/show_bug.cgi?id=127846
2420
2421         Reviewed by Darin Adler.
2422
2423         To work around a compile issue, only include those paths containing classes and typedefs
2424         which are used within SourceBufferPrivateAVFObjC, rather than all of AVFoundation.
2425
2426         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2427
2428 2014-01-29  Brady Eidson  <beidson@apple.com>
2429
2430         IDB: Fully implement IDBKeyData encoding/decoding
2431         https://bugs.webkit.org/show_bug.cgi?id=127863
2432
2433         Rubberstamped by Alexey Proskuryakov.
2434
2435         * platform/KeyedCoding.h:
2436
2437         * Modules/indexeddb/IDBKeyData.cpp:
2438         (WebCore::IDBKeyData::encode):
2439         (WebCore::IDBKeyData::decode):
2440
2441         * WebCore.exp.in:
2442
2443 2014-01-29  Bem Jones-Bey  <bjonesbe@adobe.com>
2444
2445         clip-path swaps bottom radii for the inset shape
2446         https://bugs.webkit.org/show_bug.cgi?id=127859
2447
2448         Reviewed by Dirk Schulze.
2449
2450         The bottom right and bottom left radii were passed in the wrong order,
2451         causing the wrong corner to be clipped in the resultant rendering.
2452
2453         Test: css3/masking/clip-path-inset-corners.html
2454
2455         * rendering/style/BasicShapes.cpp:
2456         (WebCore::BasicShapeInset::path): Change the parameter order to be
2457         correct.
2458
2459 2014-01-29  Jer Noble  <jer.noble@apple.com>
2460
2461         [MediaControls][iOS] Hook up the fullscreen button
2462         https://bugs.webkit.org/show_bug.cgi?id=127850
2463
2464         Reviewed by Eric Carlson.
2465
2466         For the fullscreen button, do the same thing we do for the play button: handle touchstart,
2467         touchend, and touchcancel, and perform the action (i.e., 'click') on touchend.
2468
2469         * Modules/mediacontrols/mediaControlsiOS.js:
2470         (ControllerIOS.prototype.createControls): Add listeners for the fullscreenButton.
2471         (ControllerIOS.prototype.isFullScreen): Override.
2472         (ControllerIOS.prototype.handleFullscreenButtonClicked): Override.
2473         (ControllerIOS.prototype.handleFullscreenTouchStart): Added.
2474         (ControllerIOS.prototype.handleFullscreenTouchEnd): Added.
2475         (ControllerIOS.prototype.handleFullscreenTouchCancel): Added.
2476
2477 2014-01-29  Brady Eidson  <beidson@apple.com>
2478
2479         IDB: Opening an existing database is broken
2480         https://bugs.webkit.org/show_bug.cgi?id=127851
2481
2482         Reviewed by Tim Hatcher.
2483
2484         * Modules/indexeddb/IDBDatabaseBackend.cpp:
2485         (WebCore::IDBDatabaseBackend::IDBDatabaseBackend):
2486         (WebCore::IDBDatabaseBackend::didOpenInternalAsync): Remember if this method has completed.
2487         (WebCore::IDBDatabaseBackend::processPendingCalls): If didOpenInternalAsync hasn’t
2488           been called yet, then it is incorrect to process any pending calls right now.
2489         * Modules/indexeddb/IDBDatabaseBackend.h:
2490
2491 2014-01-29  Oliver Hunt  <oliver@apple.com>
2492
2493         This dereference should not actually be necessary, and
2494         is producing deprecation warnings with newer perls
2495
2496         * bindings/scripts/CodeGeneratorJS.pm:
2497         (GenerateAttributesHashTable):
2498
2499 2014-01-28  Oliver Hunt  <oliver@apple.com>
2500
2501         Make DOM attributes appear to be faux accessor properties
2502         https://bugs.webkit.org/show_bug.cgi?id=127797
2503
2504         Reviewed by Michael Saboff.
2505
2506         Refactor the bindings generator, and make sure we emit
2507         the CustomAccessor flag on properties that should 
2508         appear to be accessors.
2509
2510         * bindings/scripts/CodeGeneratorJS.pm:
2511         (GenerateGetOwnPropertySlotBody):
2512         (GenerateAttributesHashTable):
2513         (GenerateImplementation):
2514
2515 2014-01-29  Alex Christensen  <achristensen@webkit.org>
2516
2517         Prepare for accelerated compositing on WinCairo.
2518         https://bugs.webkit.org/show_bug.cgi?id=127843
2519
2520         Reviewed by Anders Carlsson.
2521
2522         * platform/network/curl/ResourceHandleManager.cpp:
2523         (WebCore::setupFormData):
2524         Remove VS2005 warning workaround.
2525         * WebCore.vcxproj/WebCore.vcxproj:
2526         Remove StyleCachedImageSet.cpp and CSSImageSetValue.cpp from the Win64 build
2527         to avoid warnings because they are also included in StyleAllInOne.cpp and
2528         CSSAllInOne.cpp, respectively.
2529
2530 2014-01-28  Michael Saboff  <msaboff@apple.com>
2531
2532         Merge the jsCStack branch
2533         https://bugs.webkit.org/show_bug.cgi?id=127763
2534
2535         Reviewed by Mark Hahnenberg.
2536
2537         Changes from http://svn.webkit.org/repository/webkit/branches/jsCStack
2538         up to changeset 162958.
2539
2540 2014-01-29  Dan Bernstein  <mitz@apple.com>
2541
2542         Fixed the iOS build.
2543
2544         * bindings/js/JSDOMWindowCustom.cpp: Updated for header renames.
2545
2546 2014-01-29  Csaba Osztrogonác  <ossy@webkit.org>
2547
2548         Remove ENABLE(JAVASCRIPT_DEBUGGER) guards
2549         https://bugs.webkit.org/show_bug.cgi?id=127840
2550
2551         Reviewed by Mark Lam.
2552
2553         * bindings/js/JSDOMWindowBase.cpp:
2554         (WebCore::JSDOMWindowBase::supportsProfiling):
2555         (WebCore::JSDOMWindowBase::supportsRichSourceInfo):
2556         * bindings/js/PageScriptDebugServer.cpp:
2557         * bindings/js/PageScriptDebugServer.h:
2558         * bindings/js/ScriptProfile.cpp:
2559         * bindings/js/ScriptProfile.h:
2560         * bindings/js/ScriptProfileNode.h:
2561         * bindings/js/ScriptProfiler.cpp:
2562         * bindings/js/ScriptProfiler.h:
2563         * bindings/js/WorkerScriptDebugServer.cpp:
2564         * bindings/js/WorkerScriptDebugServer.h:
2565         * inspector/InspectorConsoleAgent.h:
2566         * inspector/InspectorConsoleInstrumentation.h:
2567         (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileName):
2568         * inspector/InspectorController.cpp:
2569         (WebCore::InspectorController::InspectorController):
2570         (WebCore::InspectorController::resume):
2571         * inspector/InspectorController.h:
2572         * inspector/InspectorDOMDebuggerAgent.cpp:
2573         * inspector/InspectorDOMDebuggerAgent.h:
2574         * inspector/InspectorHeapProfilerAgent.cpp:
2575         * inspector/InspectorHeapProfilerAgent.h:
2576         * inspector/InspectorInstrumentation.cpp:
2577         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
2578         (WebCore::InspectorInstrumentation::isDebuggerPausedImpl):
2579         (WebCore::InspectorInstrumentation::willInsertDOMNodeImpl):
2580         (WebCore::InspectorInstrumentation::didInsertDOMNodeImpl):
2581         (WebCore::InspectorInstrumentation::willRemoveDOMNodeImpl):
2582         (WebCore::InspectorInstrumentation::didRemoveDOMNodeImpl):
2583         (WebCore::InspectorInstrumentation::willModifyDOMAttrImpl):
2584         (WebCore::InspectorInstrumentation::didInvalidateStyleAttrImpl):
2585         (WebCore::InspectorInstrumentation::willSendXMLHttpRequestImpl):
2586         (WebCore::InspectorInstrumentation::scriptExecutionBlockedByCSPImpl):
2587         (WebCore::InspectorInstrumentation::didCommitLoadImpl):
2588         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
2589         (WebCore::InspectorInstrumentation::profilerEnabledImpl):
2590         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
2591         (WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
2592         (WebCore::InspectorInstrumentation::cancelPauseOnNativeEvent):
2593         * inspector/InspectorInstrumentation.h:
2594         * inspector/InspectorProfilerAgent.cpp:
2595         * inspector/InspectorProfilerAgent.h:
2596         * inspector/InstrumentingAgents.cpp:
2597         (WebCore::InstrumentingAgents::InstrumentingAgents):
2598         (WebCore::InstrumentingAgents::reset):
2599         * inspector/InstrumentingAgents.h:
2600         * inspector/PageDebuggerAgent.cpp:
2601         * inspector/PageDebuggerAgent.h:
2602         * inspector/ScriptProfile.idl:
2603         * inspector/ScriptProfileNode.idl:
2604         * inspector/WebDebuggerAgent.cpp:
2605         * inspector/WebDebuggerAgent.h:
2606         * inspector/WorkerDebuggerAgent.cpp:
2607         * inspector/WorkerDebuggerAgent.h:
2608         * inspector/WorkerInspectorController.cpp:
2609         (WebCore::WorkerInspectorController::WorkerInspectorController):
2610         (WebCore::WorkerInspectorController::resume):
2611         * inspector/WorkerInspectorController.h:
2612         * inspector/WorkerRuntimeAgent.cpp:
2613         (WebCore::WorkerRuntimeAgent::pauseWorkerGlobalScope):
2614         * inspector/WorkerRuntimeAgent.h:
2615         * loader/FrameLoader.cpp:
2616         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
2617         * page/Console.cpp:
2618         * page/Console.h:
2619         * page/Console.idl:
2620         * testing/Internals.cpp:
2621         (WebCore::Internals::resetToConsistentState):
2622         * workers/WorkerMessagingProxy.cpp:
2623         (WebCore::connectToWorkerGlobalScopeInspectorTask):
2624         (WebCore::WorkerMessagingProxy::connectToInspector):
2625         (WebCore::disconnectFromWorkerGlobalScopeInspectorTask):
2626         (WebCore::WorkerMessagingProxy::disconnectFromInspector):
2627         (WebCore::dispatchOnInspectorBackendTask):
2628         (WebCore::WorkerMessagingProxy::sendMessageToInspector):
2629
2630 2014-01-29  Eric Carlson  <eric.carlson@apple.com>
2631
2632         [iOS] cleanup MediaPlayer.cpp
2633         https://bugs.webkit.org/show_bug.cgi?id=127821
2634
2635         Reviewed by Jer Noble.
2636
2637         Don't register MediaPlayerPrivateIOS unless the runtime setting for media player proxy is set.
2638
2639         * platform/graphics/MediaPlayer.cpp: Don't define PlatformMediaEngineClassName on iOS
2640         (WebCore::installedMediaEngines): Drive by cleanup to return early if registration has
2641             already happened.
2642         (WebCore::MediaPlayer::MediaPlayer): Don't force-register the first media engine unless 
2643             isVideoPluginProxyEnabled returns true.
2644
2645 2014-01-29  Youenn Fablet  <youennf@gmail.com>
2646
2647         Have XHR.getResponseHeader() return null and XHR.getAllResponseHeader() return the empty string in initial ready states
2648         https://bugs.webkit.org/show_bug.cgi?id=125840
2649
2650         Reviewed by Alexey Proskuryakov.
2651
2652         Merging https://chromium.googlesource.com/chromium/blink/+/d201caf874a0bd6f101f517462b3cf1d8c5fce3d
2653         This patch makes it clear that null/empty string is returned whenever the error flag is set.
2654         This new code path is covered by the added test.
2655         
2656         Test: http/tests/xmlhttprequest/response-access-on-error.html
2657
2658         * xml/XMLHttpRequest.cpp:
2659         (WebCore::XMLHttpRequest::getAllResponseHeaders):
2660         (WebCore::XMLHttpRequest::getResponseHeader):
2661         * xml/XMLHttpRequest.h:
2662         * xml/XMLHttpRequest.idl:
2663
2664 2014-01-29  Antti Koivisto  <antti@apple.com>
2665
2666         REGRESSION (r162947): Repaint test results are different between WK1 and WK2
2667         https://bugs.webkit.org/show_bug.cgi?id=127814
2668
2669         Reviewed by Anders Carlsson.
2670
2671         * page/FrameView.cpp:
2672         (WebCore::FrameView::repaintContentRectangle):
2673         
2674             Move repaint rect logging to RenderView.
2675
2676         * rendering/RenderView.cpp:
2677         (WebCore::RenderView::repaintViewRectangle):
2678         
2679             Record raw repaint rects instead of optimized ones.
2680
2681 2014-01-29  Brady Eidson  <beidson@apple.com>
2682
2683         IDB: Serialize IDBKeyDatas to disk, not IDBKeys
2684         https://bugs.webkit.org/show_bug.cgi?id=127829
2685
2686         Reviewed by Tim Horton.
2687
2688         Move encode/decode from IDBKey to IDBKeyData.
2689
2690         * Modules/indexeddb/IDBKey.cpp:
2691         * Modules/indexeddb/IDBKey.h:
2692
2693         * Modules/indexeddb/IDBKeyData.cpp:
2694         (WebCore::IDBKeyData::IDBKeyData):
2695         (WebCore::IDBKeyData::encode):
2696         (WebCore::IDBKeyData::decode):
2697         * Modules/indexeddb/IDBKeyData.h:
2698
2699         * WebCore.exp.in:
2700
2701 2014-01-29  Antti Koivisto  <antti@apple.com>
2702
2703         REGRESSION (r162947): css3/flexbox/multiline-justify-content.html and css3/flexbox/position-absolute-child.html are timing out
2704         https://bugs.webkit.org/show_bug.cgi?id=127809
2705
2706         Reviewed by Anders Carlsson.
2707
2708         These tests generate very large number of small repaint rectangles that overwhelm the region code.
2709
2710         * page/FrameView.cpp:
2711         (WebCore::FrameView::repaintContentRectangle):
2712         * platform/graphics/Region.h:
2713         (WebCore::Region::gridSize):
2714         (WebCore::Region::Shape::gridSize):
2715         
2716             Add accessor for getting the current region grid complexity.
2717
2718         * rendering/RenderView.cpp:
2719         (WebCore::RenderView::repaintViewRectangle):
2720         
2721             If the region gets very complex merge the repaint rects into a single big rectangle.
2722
2723 2014-01-29  Radu Stavila  <stavila@adobe.com>
2724
2725         [CSSRegions] Unable to scroll a scrollable container for regions using mouse wheel
2726         https://bugs.webkit.org/show_bug.cgi?id=123886
2727
2728         When an element flowed into a scrollable region is scrolled using the mouse wheel, the event 
2729         needs to be propagated to the region containing that element, on top of which the cursor
2730         is located.
2731
2732         Reviewed by Antti Koivisto.
2733
2734         Tests: fast/regions/wheel-scroll-abspos.html
2735                fast/regions/wheel-scroll.html
2736
2737         * page/EventHandler.cpp:
2738         (WebCore::scrollNode):
2739         (WebCore::EventHandler::defaultWheelEventHandler):
2740         * rendering/RenderBox.cpp:
2741         (WebCore::RenderBox::scroll):
2742         (WebCore::RenderBox::scrollWithWheelEventLocation):
2743         * rendering/RenderBox.h:
2744         * rendering/RenderFlowThread.cpp:
2745         (WebCore::RenderFlowThread::regionFromAbsolutePointAndBox):
2746         * rendering/RenderFlowThread.h:
2747
2748 2014-01-29  Carlos Garcia Campos  <cgarcia@igalia.com>
2749
2750         REGRESSION(r162922): [SOUP] Several tests are failing in EFL and GTK+ after r162922
2751         https://bugs.webkit.org/show_bug.cgi?id=127836
2752
2753         Reviewed by Gustavo Noronha Silva.
2754
2755         The problem is that I assumed that several things done in
2756         ResourceRequest::soupURI() were always desired, so I moved them to
2757         URL. This patch restores the previous behaviour, so that those
2758         tings are only done right before making a request.
2759
2760         * platform/network/soup/ResourceRequestSoup.cpp:
2761         (WebCore::ResourceRequest::createSoupURI):
2762         * platform/soup/URLSoup.cpp:
2763         (WebCore::URL::createSoupURI):
2764
2765 2014-01-29  Krzysztof Czech  <k.czech@samsung.com>
2766
2767         [ATK] Expose aria-describedby with ATK_RELATION_DESCRIBED_BY
2768         https://bugs.webkit.org/show_bug.cgi?id=121684
2769
2770         Reviewed by Mario Sanchez Prada.
2771
2772         Exposed aria-describedby by ATK_RELATION_DESCRIBED_BY.
2773         Moved elementsFromAttribut to AccessibilityObject to have common interface
2774         for AccessibilityNodeObject and AccessibilityRenderObject. Implemented
2775         supportsARIADescribedBy and ariaDescribedByElements to better deal with aria-describedby attribute.
2776
2777         No new tests. Covered by existed one.
2778
2779         * accessibility/AccessibilityNodeObject.cpp:
2780         * accessibility/AccessibilityNodeObject.h:
2781         * accessibility/AccessibilityObject.cpp:
2782         (WebCore::AccessibilityObject::elementsFromAttribute):
2783         * accessibility/AccessibilityObject.h:
2784         (WebCore::AccessibilityObject::supportsARIADescribedBy):
2785         (WebCore::AccessibilityObject::ariaDescribedByElements):
2786         * accessibility/AccessibilityRenderObject.cpp:
2787         (WebCore::AccessibilityRenderObject::supportsARIADescribedBy):
2788         (WebCore::AccessibilityRenderObject::ariaDescribedByElements):
2789         * accessibility/AccessibilityRenderObject.h:
2790         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
2791         (setAtkRelationSetFromCoreObject):
2792
2793 2014-01-29  Sergio Villar Senin  <svillar@igalia.com>
2794
2795         [CSS Grid Layout] minmax() should be a CSSFunction instead of a CSSValueList
2796         https://bugs.webkit.org/show_bug.cgi?id=127057
2797
2798         Reviewed by Antti Koivisto.
2799
2800         We were incorrectly dumping minmax(x,y) as "x y" instead of
2801         "minmax(x,y)". That's because we were treating minmax() internally
2802         as a CSSValueList instead of a CSSFunction. Replaced that and also
2803         added some extra information to our tests in order to check that
2804         we don't regress. From now on the CSS grid layout testing helper
2805         functions print not only the computed style but also the contents
2806         of element.style.webkitGridDefinition{Columns|Rows}.
2807
2808         * css/CSSFunctionValue.h:
2809         (WebCore::CSSFunctionValue::arguments):
2810         * css/CSSParser.cpp:
2811         (WebCore::CSSParser::parseGridTrackList):
2812         (WebCore::CSSParser::parseGridTrackRepeatFunction):
2813         (WebCore::CSSParser::parseGridTrackSize):
2814         * css/CSSParser.h:
2815         * css/StyleResolver.cpp:
2816         (WebCore::createGridTrackSize):
2817
2818 2014-01-29  Ryosuke Niwa  <rniwa@webkit.org>
2819
2820         Rename notifyRendererOfSelectionChange
2821         https://bugs.webkit.org/show_bug.cgi?id=127831
2822
2823         Reviewed by Antti Koivisto.
2824
2825         Renamed notifyRendererOfSelectionChange to updateSelectionCachesIfSelectionIsInsideTextFormControl.
2826
2827         * WebCore.order: Removed the exported symbol name as it's not used in WebKit or WebKit2 code.
2828         * editing/FrameSelection.cpp:
2829         (WebCore::FrameSelection::setSelection):
2830         (WebCore::FrameSelection::selectAll):
2831         (WebCore::FrameSelection::updateSelectionCachesIfSelectionIsInsideTextFormControl): Don't update the style since the existence
2832         of text form control's shadow DOM no longer depends on renderer.
2833         * editing/FrameSelection.h:
2834         * html/HTMLTextFormControlElement.cpp:
2835         (WebCore::HTMLTextFormControlElement::selectionChanged): Don't check renderer() for the same reason.
2836         * page/EventHandler.cpp:
2837         (WebCore::EventHandler::handleMouseReleaseEvent):
2838
2839 2014-01-28  Jer Noble  <jer.noble@apple.com>
2840
2841         [Mac] Handle NSURLAuthenticationMethodServerTrust challenges from -resourceLoader:shouldWaitForResponseToAuthenticationChallenge:
2842         https://bugs.webkit.org/show_bug.cgi?id=127806
2843
2844         Reviewed by Eric Carlson.
2845
2846         In addition to the normal "user/password" NSURLAuthenticationChallenges, the 
2847         -resourceLoader:shouldWaitForResponseToAuthenticationChallenge: delegate method will
2848         ask us to confirm server certificate chains. Rather than pop up an authentication
2849         dialog (which won't work anyway) we will now just drop such requests and continue
2850         on normally.
2851
2852         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2853         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForResponseToAuthenticationChallenge:]):
2854
2855 2014-01-28  Commit Queue  <commit-queue@webkit.org>
2856
2857         Unreviewed, rolling out r162987.
2858         http://trac.webkit.org/changeset/162987
2859         https://bugs.webkit.org/show_bug.cgi?id=127825
2860
2861         Broke Mountain Lion build (Requested by andersca on #webkit).
2862
2863         * bindings/scripts/CodeGeneratorJS.pm:
2864         (GenerateGetOwnPropertySlotBody):
2865         (GenerateAttributesHashTable):
2866         (GenerateImplementation):
2867         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
2868         (WebCore::jsTestActiveDOMObjectConstructor):
2869         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
2870         (WebCore::jsTestCustomNamedGetterConstructor):
2871         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
2872         (WebCore::jsTestEventConstructorConstructor):
2873         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
2874         (WebCore::jsTestEventTargetConstructor):
2875         * bindings/scripts/test/JS/JSTestException.cpp:
2876         (WebCore::jsTestExceptionConstructor):
2877         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
2878         (WebCore::jsTestGenerateIsReachableConstructor):
2879         * bindings/scripts/test/JS/JSTestInterface.cpp:
2880         (WebCore::jsTestInterfaceConstructor):
2881         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2882         (WebCore::jsTestMediaQueryListListenerConstructor):
2883         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2884         (WebCore::jsTestNamedConstructorConstructor):
2885         * bindings/scripts/test/JS/JSTestNode.cpp:
2886         (WebCore::jsTestNodeConstructor):
2887         * bindings/scripts/test/JS/JSTestObj.cpp:
2888         (WebCore::jsTestObjConstructor):
2889         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
2890         (WebCore::jsTestOverloadedConstructorsConstructor):
2891         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2892         (WebCore::jsTestSerializedScriptValueInterfaceConstructor):
2893         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
2894         (WebCore::jsTestTypedefsConstructor):
2895         * bindings/scripts/test/JS/JSattribute.cpp:
2896         (WebCore::jsattributeConstructor):
2897         * bindings/scripts/test/JS/JSreadonly.cpp:
2898         (WebCore::jsreadonlyConstructor):
2899
2900 2014-01-28  Enrica Casucci  <enrica@apple.com>
2901
2902         Add support for ActionSheets in WK2 for iOS.
2903         https://bugs.webkit.org/show_bug.cgi?id=127586
2904         <rdar://problem/15283667>
2905
2906         Reviewed by Benjamin Poulain.
2907
2908         This patch contains some WebCore changes required to
2909         implement support for ActionSheets.
2910         It adds copyURL implementation for iOS in the Editor
2911         class and fixes some bugs in the iOS specific pasteboard
2912         writing code.
2913         The changes to Localizable.strings are the result of
2914         running update-webkit-localizedstrings script.
2915
2916         * English.lproj/Localizable.strings:
2917         * WebCore.exp.in:
2918         * editing/Editor.cpp:
2919         * editing/Editor.h:
2920         * editing/ios/EditorIOS.mm:
2921         (WebCore::Editor::writeImageToPasteboard):
2922         * platform/ios/PasteboardIOS.mm:
2923         (WebCore::Pasteboard::write):
2924         * platform/ios/PlatformPasteboardIOS.mm:
2925         (WebCore::PlatformPasteboard::write):
2926
2927 2014-01-28  Andy Estes  <aestes@apple.com>
2928
2929         [iOS] REGRESSION (r162663): Webpages have strange artifacts or corruption around tile boundaries
2930         https://bugs.webkit.org/show_bug.cgi?id=127823
2931
2932         Reviewed by Daniel Bates.
2933
2934         Original patch by Simon Fraser.
2935
2936         * platform/ScrollView.cpp: Specify LegacyIOSDocumentViewRect when calling visibleContentRect().
2937
2938 2014-01-28  Zoltan Horvath  <zoltan@webkit.org>
2939
2940         [CSS Shapes] Adjust inset sizing syntax to the latest specification
2941         https://bugs.webkit.org/show_bug.cgi?id=127785
2942
2943         Reviewed by Bem Jones-Bey.
2944
2945         According to the latest CSS Shapes specification [1], the width arguments of inset should
2946         follow the syntax of the margin shorthand, which let us set all four insets with one, two
2947         or four values. This patch updates the behavior and updates the affected tests.
2948
2949         [1] http://dev.w3.org/csswg/css-shapes/#funcdef-inset
2950
2951         Existing tests have been updated.
2952
2953         * css/CSSParser.cpp:
2954         (WebCore::CSSParser::parseInsetRoundedCorners):
2955         (WebCore::CSSParser::parseBasicShapeInset):
2956
2957 2014-01-28  Oliver Hunt  <oliver@apple.com>
2958
2959         Make DOM attributes appear to be faux accessor properties
2960         https://bugs.webkit.org/show_bug.cgi?id=127797
2961
2962         Reviewed by Michael Saboff.
2963
2964         Refactor the bindings generator, and make sure we emit
2965         the CustomAccessor flag on properties that should 
2966         appear to be accessors.
2967
2968         * bindings/scripts/CodeGeneratorJS.pm:
2969         (GenerateGetOwnPropertySlotBody):
2970         (GenerateAttributesHashTable):
2971         (GenerateImplementation):
2972
2973 2014-01-27  Chris Fleizach  <cfleizach@apple.com>
2974
2975         AX: Support @scope in HTML tables
2976         https://bugs.webkit.org/show_bug.cgi?id=127688
2977
2978         Reviewed by Mario Sanchez Prada.
2979
2980         Add support for scope attribute so that row headers and column headers
2981         are now exposed at the table cell level where appropriate.
2982
2983         Test: platform/mac/accessibility/table-scope.html
2984
2985         * accessibility/AccessibilityARIAGridCell.cpp:
2986         (WebCore::AccessibilityARIAGridCell::parentTable):
2987         * accessibility/AccessibilityARIAGridCell.h:
2988         * accessibility/AccessibilityARIAGridRow.cpp:
2989         (WebCore::AccessibilityARIAGridRow::parentTable):
2990         * accessibility/AccessibilityARIAGridRow.h:
2991         * accessibility/AccessibilityTable.cpp:
2992         (WebCore::AccessibilityTable::columns):
2993         (WebCore::AccessibilityTable::rows):
2994         * accessibility/AccessibilityTable.h:
2995         * accessibility/AccessibilityTableCell.cpp:
2996         (WebCore::AccessibilityTableCell::parentTable):
2997         (WebCore::AccessibilityTableCell::isTableHeaderCell):
2998         (WebCore::AccessibilityTableCell::isTableCellInSameRowGroup):
2999         (WebCore::AccessibilityTableCell::isTableCellInSameColGroup):
3000         (WebCore::AccessibilityTableCell::columnHeaders):
3001         (WebCore::AccessibilityTableCell::rowHeaders):
3002         * accessibility/AccessibilityTableCell.h:
3003         * accessibility/AccessibilityTableRow.cpp:
3004         (WebCore::AccessibilityTableRow::parentTable):
3005         * accessibility/AccessibilityTableRow.h:
3006         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
3007         (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
3008         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
3009
3010 2014-01-28  Brent Fulgham  <bfulgham@apple.com>
3011
3012         Improve latching behavior for wheel events
3013         https://bugs.webkit.org/show_bug.cgi?id=127386
3014         <rdar://problem/12176858>
3015
3016         Reviewed by Simon Fraser.
3017
3018         * page/scrolling/ScrollingTree.cpp:
3019         (WebCore::ScrollingTree::clearLatchedNode): Added
3020         (WebCore::ScrollingTree::latchedNode): Added
3021         (WebCore::ScrollingTree::removeDestroyedNodes): Clear latched node if it's being removed.
3022         (WebCore::ScrollingTree::ScrollingTree): Initialize new value used for tracking
3023         scroll latching state.
3024         (WebCore::ScrollingTree::setLatchedNode): Added
3025         (WebCore::ScrollingTree::setOrClearLatchedNode): Added
3026         Set latched node when beginning a swipe event, or clear latched node when scroll/momentum ends.
3027         (WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Check for an existing
3028         latched node and stay in fast scrolling mode if possible. If the current event should
3029         start a swipe event, clear the current latched node so we can correctly find and assign
3030         the new latch node.
3031         * page/scrolling/ScrollingTree.h:
3032         (WebCore::ScrollingTree::hasLatchedNode): Added
3033         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
3034         (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent): Determine latching state
3035         based on wheel event state and position of mouse pointer in the document.
3036         * platform/ScrollAnimator.cpp:
3037         (ScrollAnimator::handleWheelEvent): Always treat PlatformWheelEventPhaseMayBegin
3038         as successfully handled so that it does not "bubble back up" to the root of
3039         the scrolling tree.   
3040
3041 2014-01-23  Myles C. Maxfield  <mmaxfield@apple.com>
3042
3043         ASSERT_WITH_SECURITY_IMPLICATION in WebCore::InlineTextBox::paint
3044         https://bugs.webkit.org/show_bug.cgi?id=114586
3045
3046         Reviewed by Dave Hyatt.
3047
3048         Taken mostly from https://chromium.googlesource.com/chromium/blink/+/cb2297db16f2e9328cb4dd8b552093d6b22340a8
3049
3050         If RenderQuote is a subclass of RenderObject, it can't be split by the first-letter CSS pseudoclass.
3051         Instead, we should make it a subclass of RenderElement, so that it can be split properly.
3052
3053         Test: fast/css-generated-content/quote-first-letter.html
3054
3055         * dom/PseudoElement.cpp:
3056         (WebCore::PseudoElement::didRecalcStyle):
3057         * rendering/RenderQuote.cpp:
3058         (WebCore::RenderQuote::RenderQuote):
3059         (WebCore::RenderQuote::willBeDestroyed):
3060         (WebCore::RenderQuote::willBeRemovedFromTree):
3061         (WebCore::RenderQuote::styleDidChange):
3062         (WebCore::RenderQuote::updateText):
3063         (WebCore::RenderQuote::computeText):
3064         (WebCore::RenderQuote::updateDepth):
3065         * rendering/RenderQuote.h:
3066         * rendering/style/ContentData.cpp:
3067         (WebCore::QuoteContentData::createContentRenderer):
3068
3069 2014-01-28  Antti Koivisto  <antti@apple.com>
3070
3071         Document::topDocument() should return a reference
3072         https://bugs.webkit.org/show_bug.cgi?id=127786
3073
3074         Reviewed by Darin Adler.
3075
3076         * accessibility/AccessibilityObject.cpp:
3077         (WebCore::AccessibilityObject::mainFrame):
3078         (WebCore::AccessibilityObject::topDocument):
3079         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
3080         (-[WebAccessibilityObjectWrapper accessibilityContainer]):
3081         * dom/Document.cpp:
3082         (WebCore::Document::~Document):
3083         (WebCore::Document::createRenderTree):
3084         (WebCore::Document::destroyRenderTree):
3085         (WebCore::Document::clearAXObjectCache):
3086         (WebCore::Document::existingAXObjectCache):
3087         (WebCore::Document::axObjectCache):
3088         (WebCore::Document::implicitClose):
3089         (WebCore::Document::topDocument):
3090         (WebCore::Document::topOrigin):
3091         (WebCore::Document::webkitCancelFullScreen):
3092         (WebCore::Document::webkitDidExitFullScreenForElement):
3093         * dom/Document.h:
3094         * page/DOMWindow.cpp:
3095         (WebCore::DOMWindow::incrementScrollEventListenersCount):
3096         (WebCore::DOMWindow::decrementScrollEventListenersCount):
3097         * rendering/RenderEmbeddedObject.cpp:
3098         (WebCore::RenderEmbeddedObject::isReplacementObscured):
3099         * rendering/RenderView.cpp:
3100         (WebCore::RenderView::RepaintRegionAccumulator::RepaintRegionAccumulator):
3101         
3102 2014-01-28  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
3103
3104         Sticky positioning is broken for table rows
3105         https://bugs.webkit.org/show_bug.cgi?id=112024
3106
3107         Reviewed by Simon Fraser.
3108
3109         Enable sticky positioning for table elements. 
3110         Also includes fix for bug ​wkb.ug/105654
3111         I don't have access to this bug, but from related commit message I 
3112         assume it says about "Heap use after free problem".
3113         Debugging showed that it wasn't heap use after free. 
3114         The real problem that RenderObject::container() returns object which is
3115         not RenderBlock and it is used as RenderBlock in 
3116         RenderBox::containingBlockLogicalHeightForPositioned() method.
3117         Added extra isRenderBlock check and search for containingBlock if 
3118         current block is not RenderBlock.
3119         
3120         Tests: fast/css/sticky/sticky-table-row-top.html
3121                fast/css/sticky/sticky-table-thead-top.html
3122
3123         * css/StyleResolver.cpp:
3124         (WebCore::StyleResolver::adjustRenderStyle):
3125         * rendering/RenderBox.cpp:
3126         (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
3127         * rendering/RenderTableRow.h:
3128
3129 2014-01-28  Myles C. Maxfield  <mmaxfield@apple.com>
3130
3131         Fixing several incorrect assumptions with handling isolated inlines.
3132         https://bugs.webkit.org/show_bug.cgi?id=127608
3133
3134         Reviewed by Simon Fraser.
3135
3136         Fixing capitalization.
3137
3138         * rendering/RenderBlockLineLayout.cpp:
3139         (WebCore::setUpResolverToResumeInIsolate):
3140         (WebCore::constructBidiRunsForSegment):
3141
3142 2014-01-28  Myles C. Maxfield  <mmaxfield@apple.com>
3143
3144         Fixing several incorrect assumptions with handling isolated inlines.
3145         https://bugs.webkit.org/show_bug.cgi?id=127608
3146
3147         Reviewed by Dave Hyatt.
3148
3149         First, when an isolated inline spans multiple lines, we aren't guaranteed
3150         to exit BidiResolver with a nested inline count of zero. Removing the
3151         assert that says otherwise.
3152         
3153         Previously in constructBidiRunsForSegment, we called bidiFirst in
3154         an attempt to properly setup the isolatedResolver for any dom/style
3155         that applied, but this only worked on the first line the isolated
3156         inline appeared in. Adding a function that approaches this properly
3157         by recursing through the parents of the starting object for the line
3158         and post-fixing direction attributes to the resolver.
3159         
3160         Finally, addressing an issue where the line following a removed isolated
3161         inline (with a continuation) failed to be marked dirty.
3162
3163         Merged from Blink: https://chromium.googlesource.com/chromium/blink/+/72698f203b1c50900e535b80945563b92b7eef23
3164
3165         Tests: fast/text/nested-bidi-assert.html
3166                fast/text/nested-bidi-with-continuation-crash.html
3167
3168         * platform/text/BidiResolver.h:
3169         (WebCore::Run>::~BidiResolver):
3170         * rendering/RenderBlockLineLayout.cpp:
3171         (WebCore::setupResolverToResumeInIsolate):
3172         (WebCore::constructBidiRunsForSegment):
3173         * rendering/RenderLineBoxList.cpp:
3174         (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
3175
3176 2014-01-28  Antti Koivisto  <antti@apple.com>
3177
3178         REGRESSION(r162837): 5% regression on html5-full-render and 3% regression in DoYouEvenBench
3179         https://bugs.webkit.org/show_bug.cgi?id=127722
3180
3181         Reviewed by Darin Adler.
3182
3183         Accumulate repaint region in RendeView instead of flushing rects directly to the system.
3184
3185         * dom/Document.cpp:
3186         (WebCore::Document::recalcStyle):
3187         (WebCore::Document::updateLayout):
3188         (WebCore::Document::topDocument):
3189         
3190             Make less silly.
3191
3192         * page/FrameView.cpp:
3193         (WebCore::FrameView::layout):
3194         * rendering/RenderView.cpp:
3195         (WebCore::RenderView::repaintViewRectangle):
3196         (WebCore::RenderView::flushAccumulatedRepaintRegion):
3197         (WebCore::RenderView::RepaintRegionAccumulator::RepaintRegionAccumulator):
3198         (WebCore::RenderView::RepaintRegionAccumulator::~RepaintRegionAccumulator):
3199         * rendering/RenderView.h:
3200
3201 2014-01-28  Jeremy Jones  <jeremyj@apple.com>
3202
3203         HTMLMediaElement::m_platformLayerBorrowed is uninitialized.
3204         https://bugs.webkit.org/show_bug.cgi?id=127759
3205
3206         Reviewed by Eric Carlson.
3207
3208         Initalize m_platformLayerBorrowed to false.
3209
3210         * html/HTMLMediaElement.cpp:
3211         (WebCore::HTMLMediaElement::HTMLMediaElement):
3212
3213 2014-01-28  Jer Noble  <jer.noble@apple.com>
3214
3215         [Mac] Use explicit, rather than canonical, AudioFormatFlags and types.
3216         https://bugs.webkit.org/show_bug.cgi?id=127781
3217
3218         Reviewed by Eric Carlson.
3219
3220         Since every mac platform uses Float32 audio samples, use these types explicitly
3221         rather than the implicit, canonical AudioSampleType type. Once we're using Float32
3222         explicity, we can also use the explicit kAudioFormatFlagsNativeFloatPacked flag
3223         rather than the canonical version.
3224
3225         * platform/audio/mac/AudioDestinationMac.cpp:
3226         (WebCore::AudioDestinationMac::configure):
3227         * platform/audio/mac/AudioFileReaderMac.cpp:
3228         (WebCore::AudioFileReader::createBus):
3229
3230 2014-01-27  Alexey Proskuryakov  <ap@apple.com>
3231
3232         Expose SQL database creation and modification times
3233         https://bugs.webkit.org/show_bug.cgi?id=127728
3234
3235         Reviewed by Brady Eidson.
3236
3237         * platform/FileSystem.h:
3238         * platform/posix/FileSystemPOSIX.cpp:
3239         (WebCore::getFileCreationTime):
3240         * platform/win/FileSystemWin.cpp:
3241         (WebCore::getFileCreationTimeFromFindData):
3242         (WebCore::getFileCreationTime):
3243         Added functions to get file creation times. Not all OSes support that, but Darwin
3244         and Windows do, as (I think) various BSD flavors.
3245
3246         * platform/gtk/FileSystemGtk.cpp: Added a stub for getFileCreationTime().
3247
3248         * platform/sql/SQLiteFileSystem.h:
3249         * platform/sql/SQLiteFileSystem.cpp:
3250         (WebCore::SQLiteFileSystem::databaseCreationTime):
3251         (WebCore::SQLiteFileSystem::databaseModificationTime):
3252         Expose it in the same strange manner other database file operations are.
3253
3254         * Modules/webdatabase/DatabaseDetails.h:
3255         (WebCore::DatabaseDetails::DatabaseDetails):
3256         (WebCore::DatabaseDetails::creationTime):
3257         (WebCore::DatabaseDetails::modificationTime):
3258         Added creation and modification times to DatabaseDetails.
3259
3260         * Modules/webdatabase/DatabaseManager.cpp:
3261         (WebCore::DatabaseManager::ProposedDatabase::ProposedDatabase):
3262         (WebCore::DatabaseManager::openDatabaseBackend):
3263         ProposedDatabase is an unfortunate mechanism for communicating quota errors to the
3264         client, we should really straighten it up. But for now, just leave the times uninitialized.
3265
3266         * Modules/webdatabase/DatabaseBackendBase.cpp: (WebCore::DatabaseBackendBase::details):
3267         This code path is for handling quota errors, so there is no need to initialize most
3268         of DatabaseDetails here as well.
3269
3270         * Modules/webdatabase/DatabaseTracker.cpp: (WebCore::DatabaseTracker::detailsForNameAndOrigin):
3271         * Modules/webdatabase/DatabaseTracker.h:
3272         Fill in database file times. Inlined and removed usageForDatabase function to
3273         avoid rebuilding the path multiple times.
3274
3275 2014-01-28  Jer Noble  <jer.noble@apple.com>
3276
3277         Setting muted attribute on <video> element is not reflected in controls
3278         https://bugs.webkit.org/show_bug.cgi?id=127726
3279
3280         Reviewed by Eric Carlson.
3281
3282         If the 'muted' IDL attribute is queried after the 'muted' and 'src' content attributes are
3283         set but before loading begins, it will return 'false' until loading begins, but with no
3284         way to query whether that value is valid, nor firing a volumechange event when its value
3285         changes.
3286
3287         The HTML spec says that the 'muted' content attribute controls whether audio output is
3288         muted "when the media element is created", not when loading begins, but we don't
3289         necessarily have a signal that the element is fully parsed.  Additionally, this means its
3290         impossible to make an element via script and get this behavior.
3291
3292         So the new behavior is that the 'muted' IDL attribute will always reflect the 'muted'
3293         content attribute up until one of the following three conditions:
3294
3295         - The 'muted' IDL attribute is set via script.
3296         - The element is inserted in the document.
3297         - The element begins loading.
3298
3299         After the first one of the above conditions, the 'muted' IDL attribute will no longer
3300         change when the 'muted' content attribute changes.
3301
3302         * html/HTMLMediaElement.cpp:
3303         (WebCore::HTMLMediaElement::HTMLMediaElement):
3304         (WebCore::HTMLMediaElement::parseAttribute):
3305         * html/HTMLMediaElement.h:
3306
3307 2014-01-28  Anders Carlsson  <andersca@apple.com>
3308
3309         Add stubbed out VisitedLinkProvider class
3310         https://bugs.webkit.org/show_bug.cgi?id=127744
3311
3312         Reviewed by Andreas Kling.
3313
3314         This is a first step towards moving responsibility of visited links from 
3315         the page group to a separate object.
3316
3317         * CMakeLists.txt:
3318         * GNUmakefile.list.am:
3319         * WebCore.vcxproj/WebCore.vcxproj:
3320         * WebCore.vcxproj/WebCore.vcxproj.filters:
3321         * WebCore.xcodeproj/project.pbxproj:
3322         * page/PageGroup.cpp:
3323         (WebCore::PageGroup::PageGroup):
3324         * page/PageGroup.h:
3325         (WebCore::PageGroup::visitedLinkProvider):
3326         * page/VisitedLinkProvider.cpp: Added.
3327         (WebCore::VisitedLinkProvider::VisitedLinkProvider):
3328         (WebCore::VisitedLinkProvider::~VisitedLinkProvider):
3329         * page/VisitedLinkProvider.h: Added.
3330         (WebCore::VisitedLinkProvider::create):
3331
3332 2014-01-28  Gurpreet Kaur  <k.gurpreet@samsung.com>
3333
3334         Add support for menclose element
3335         https://bugs.webkit.org/show_bug.cgi?id=85729
3336
3337         Reviewed by Chris Fleizach.
3338
3339         Added support for menclose element. MathML <menclose> element renders
3340         its content inside an enclosing notation specified by the notation
3341         attribute. The notation attribute can have values longdiv, box, left,
3342         right, top, bottom , radical, madruwb, actuarial, roundedbox, circle,
3343         updiagonalstrike, downdiagonalstrike, verticalstrike and
3344         horizontalstrike.
3345
3346         Tests: mathml/presentation/menclose-add-children.html
3347                mathml/presentation/menclose-notation-attribute-add.html
3348                mathml/presentation/menclose-notation-attribute-change-value.html
3349                mathml/presentation/menclose-notation-attribute-remove.html
3350                mathml/presentation/menclose-notation-attribute-set1.html
3351                mathml/presentation/menclose-notation-attribute-set2.html
3352                mathml/presentation/menclose-notation-no-overlap.html
3353                mathml/presentation/menclose-notation-radical.html
3354                mathml/presentation/menclose-remove-children.html
3355
3356         * CMakeLists.txt:
3357         * GNUmakefile.list.am:
3358         * WebCore.vcxproj/WebCore.vcxproj:
3359         * WebCore.vcxproj/WebCore.vcxproj.filters:
3360         * WebCore.xcodeproj/project.pbxproj:
3361         * css/mathml.css:
3362         (mo, mrow, mfenced, mfrac, msub, msup, msubsup, mmultiscripts, mprescripts, none, munder, mover, munderover, msqrt, mroot, merror, mphantom, mstyle, menclose):
3363         (math, mrow, mfenced, msqrt, mroot, merror, mphantom, mstyle, menclose):
3364         * mathml/MathMLAllInOne.cpp:
3365         * mathml/MathMLElement.h:
3366         * mathml/MathMLInlineContainerElement.cpp:
3367         * mathml/MathMLMencloseElement.cpp: Added.
3368         (WebCore::MathMLMencloseElement::MathMLMencloseElement):
3369         (WebCore::MathMLMencloseElement::create):
3370         (WebCore::MathMLMencloseElement::createElementRenderer):
3371         (WebCore::MathMLMencloseElement::isPresentationAttribute):
3372         (WebCore::MathMLMencloseElement::finishParsingChildren):
3373         (WebCore::MathMLMencloseElement::collectStyleForPresentationAttribute):
3374         (WebCore::MathMLMencloseElement::longDivLeftPadding):
3375         * mathml/MathMLMencloseElement.h: Added.
3376         (WebCore::toMathMLMencloseElement):
3377         * mathml/mathattrs.in:
3378         * mathml/mathtags.in:
3379         * rendering/mathml/RenderMathMLMenclose.cpp: Added.
3380         (WebCore::RenderMathMLMenclose::RenderMathMLMenclose):
3381         (WebCore::RenderMathMLMenclose::addChild):
3382         (WebCore::RenderMathMLMenclose::computePreferredLogicalWidths):
3383         (WebCore::RenderMathMLMenclose::updateLogicalHeight):
3384         (WebCore::RenderMathMLMenclose::paint):
3385         (WebCore::RenderMathMLMenclose::checkNotationalValuesValidity):
3386         * rendering/mathml/RenderMathMLMenclose.h: Added.
3387         * rendering/mathml/RenderMathMLRoot.cpp:
3388         (WebCore::RenderMathMLRoot::RenderMathMLRoot):
3389         * rendering/mathml/RenderMathMLRoot.h:
3390         * rendering/mathml/RenderMathMLSquareRoot.cpp:
3391         (WebCore::RenderMathMLSquareRoot::RenderMathMLSquareRoot):
3392         (WebCore::RenderMathMLSquareRoot::createAnonymousWithParentRenderer):
3393         * rendering/mathml/RenderMathMLSquareRoot.h:
3394         Added new file related to menclose element implementation. Menclose
3395         element is created and while parsing its notation attribute based on
3396         its values like top, left CSSBorder properties are applied and for
3397         values like circle, verticalstrike, longidv its taken care in paint.
3398         For radical value an anonymous RenderMathMLSquareRoot is created as
3399         a child of menclose.
3400
3401 2014-01-28  Krzysztof Czech  <k.czech@samsung.com>
3402
3403         [ATK] accessibility/range-alter-by-percent.html is failing after r162587.
3404         https://bugs.webkit.org/show_bug.cgi?id=127774
3405
3406         Reviewed by Mario Sanchez Prada.
3407
3408         Implicit value of step in range type elements should be one or larger.
3409
3410         No new tests. Covered by exiting one.
3411
3412         * accessibility/atk/WebKitAccessibleInterfaceValue.cpp:
3413         (webkitAccessibleValueGetMinimumIncrement):
3414
3415 2014-01-28  Mark Rowe  <mrowe@apple.com>
3416
3417         <https://webkit.org/b/127767> Disable some deprecation warnings to fix the build.
3418
3419         Reviewed by Ryosuke Niwa.
3420
3421         * accessibility/mac/AXObjectCacheMac.mm:
3422         (WebCore::AXObjectCache::postPlatformNotification):
3423         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
3424         (-[WebAccessibilityObjectWrapper renderWidgetChildren]):
3425         * platform/audio/mac/AudioDestinationMac.cpp:
3426         (WebCore::AudioDestinationMac::configure):
3427         * platform/audio/mac/AudioFileReaderMac.cpp:
3428         (WebCore::AudioFileReader::createBus):
3429
3430 2014-01-28  Carlos Garcia Campos  <cgarcia@igalia.com>
3431
3432         [SOUP] Remove soupURIToKURL
3433         https://bugs.webkit.org/show_bug.cgi?id=127104
3434
3435         Reviewed by Martin Robinson.
3436
3437         In favor of a URL constructor receiving a SoupURI. Also add a
3438         method to URL to create a soupURI.
3439
3440         * GNUmakefile.list.am: Remove SoupURIUtils and add URLSoup.
3441         * PlatformEfl.cmake: Ditto.
3442         * PlatformGTK.cmake: Ditto.
3443         * platform/URL.h: Add URL constructor receiving a SoupURI and
3444         createSoupURI() to create a new soupURI for the URL.
3445         * platform/network/soup/CookieJarSoup.cpp:
3446         (WebCore::setCookiesFromDOM): Use URL::createSoupURI().
3447         (WebCore::cookiesForSession): Ditto.
3448         (WebCore::getRawCookies): Ditto.
3449         (WebCore::deleteCookie): Ditto.
3450         * platform/network/soup/ResourceHandleSoup.cpp:
3451         (WebCore::doRedirect): Use the new URL constructor instead of
3452         soupURIToKURL.
3453         (WebCore::createSoupRequestAndMessageForHandle): Use URL::createSoupURI().
3454         * platform/network/soup/ResourceRequest.h: Rename soupURI as
3455         createSoupURI to make it clear that the method returns a newly
3456         created SoupURI.
3457         * platform/network/soup/ResourceRequestSoup.cpp:
3458         (WebCore::ResourceRequest::updateSoupMessageMembers): Use URL::createSoupURI().
3459         (WebCore::ResourceRequest::updateSoupMessage): Ditto.
3460         (WebCore::ResourceRequest::updateFromSoupMessage): Use the new URL
3461         constructor instead of soupURIToKURL.
3462         (WebCore::ResourceRequest::createSoupURI): Use URL::createSoupURI().
3463         * platform/network/soup/ResourceResponseSoup.cpp:
3464         (WebCore::ResourceResponse::updateFromSoupMessage): Use the new
3465         URL constructor instead of soupURIToKURL.
3466         * platform/network/soup/SoupURIUtils.cpp: Removed.
3467         * platform/network/soup/SoupURIUtils.h: Removed.
3468         * platform/soup/URLSoup.cpp: Added.
3469         (WebCore::URL::URL):
3470         (WebCore::URL::createSoupURI):
3471
3472 2014-01-27  Carlos Garcia Campos  <cgarcia@igalia.com>
3473
3474         [GTK] Avoid unnecessary string duplications in FileSystemGtk
3475         https://bugs.webkit.org/show_bug.cgi?id=127469
3476
3477         Reviewed by Martin Robinson.
3478
3479         We are using fileSystemRepresentation() everywhere internally
3480         which returns a CString that always duplicates the string.
3481         Add unescapedFilename() internal helper function that returns a
3482         GUniquePtr and used it everywhere instead of fileSystemRepresentation().
3483
3484         * platform/gtk/FileSystemGtk.cpp:
3485         (WebCore::unescapedFilename):
3486         (WebCore::fileSystemRepresentation):
3487         (WebCore::filenameForDisplay):
3488         (WebCore::fileExists):
3489         (WebCore::deleteFile):
3490         (WebCore::deleteEmptyDirectory):
3491         (WebCore::getFileStat):
3492         (WebCore::getFileSize):
3493         (WebCore::getFileModificationTime):
3494         (WebCore::getFileMetadata):
3495         (WebCore::pathByAppendingComponent):
3496         (WebCore::makeAllDirectories):
3497         (WebCore::pathGetFileName):
3498         (WebCore::directoryName):
3499         (WebCore::listDirectory):
3500         (WebCore::openFile):
3501
3502 2014-01-27  Carlos Garcia Campos  <cgarcia@igalia.com>
3503
3504         [GTK] Make webkit_uri_scheme_request_get_web_view() work with CustomProtocols
3505         https://bugs.webkit.org/show_bug.cgi?id=127614
3506
3507         Reviewed by Gustavo Noronha Silva.
3508
3509         Add API to set the page identifier that initiated the request to
3510         ResourceRequest, and remove the initiatingPageID() method from the
3511         NetworkingContext class.
3512
3513         * platform/network/NetworkingContext.h:
3514         * platform/network/ResourceHandle.h:
3515         * platform/network/soup/ResourceHandleSoup.cpp:
3516         (WebCore::createSoupRequestAndMessageForHandle):
3517         * platform/network/soup/ResourceRequest.h:
3518         (WebCore::ResourceRequest::ResourceRequest):
3519         (WebCore::ResourceRequest::initiatingPageID):
3520         (WebCore::ResourceRequest::setInitiatingPageID):
3521         * platform/network/soup/ResourceRequestSoup.cpp:
3522         (WebCore::ResourceRequest::updateSoupRequest):
3523         (WebCore::ResourceRequest::updateFromSoupRequest):
3524
3525 2014-01-27  Tim Horton  <timothy_horton@apple.com>
3526
3527         Lots of varied and random crashes on the scrolling thread (ScrollbarPainters are going away)
3528         https://bugs.webkit.org/show_bug.cgi?id=127734
3529         <rdar://problem/15906263>
3530
3531         Reviewed by Simon Fraser.
3532
3533         * page/scrolling/ScrollingStateScrollingNode.h:
3534         Retain the ScrollbarPainters in the scrolling state tree.
3535
3536 2014-01-27  Joseph Pecoraro  <pecoraro@apple.com>
3537
3538         Unreviewed iOS build fix. FALLTHROUGHs for iOS.
3539
3540         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
3541         (-[WebAccessibilityObjectWrapper accessibilityTraits]):
3542         (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
3543
3544 2014-01-27  Roger Fong  <roger_fong@apple.com>
3545
3546         WebGLLoadPolicy::WebGLAsk is an unnecessary value.
3547         https://bugs.webkit.org/show_bug.cgi?id=127755
3548
3549         Reviewed by Anders Carlsson.
3550
3551         * html/HTMLCanvasElement.cpp:
3552         (WebCore::HTMLCanvasElement::getContext):
3553         * loader/FrameLoaderTypes.h:
3554
3555 2014-01-27  Brady Eidson  <beidson@apple.com>
3556
3557         IDB: Cursor support - Messaging, IPC, Threading plumbing
3558         https://bugs.webkit.org/show_bug.cgi?id=127736
3559
3560         Reviewed by Sam Weinig.
3561
3562         * Modules/indexeddb/IDBCursorBackendOperations.h:
3563         (WebCore::CursorIterationOperation::cursorID):
3564         (WebCore::CursorAdvanceOperation::cursorID):
3565
3566         * Modules/indexeddb/IDBTransactionBackendOperations.h:
3567         (WebCore::OpenCursorOperation::transactionID):
3568
3569         * WebCore.exp.in:
3570
3571 2014-01-27  Joseph Pecoraro  <pecoraro@apple.com>
3572
3573         WebCore: Enable -Wimplicit-fallthrough and add FALLTHROUGH annotation where needed
3574         https://bugs.webkit.org/show_bug.cgi?id=127671
3575
3576         Reviewed by Ryosuke Niwa.
3577
3578         * Configurations/Base.xcconfig:
3579         Enable the warning.
3580
3581         * css/StyleResolver.cpp:
3582         (WebCore::StyleResolver::applyProperty):
3583         Caught a bug. CSSPropertyWebkitAlt could fall through to CSSPropertyQuotes.
3584
3585         * css/SVGCSSParser.cpp:
3586         (WebCore::CSSParser::parseSVGValue):
3587         Caught a bug. CSSPropertyWebkitSvgShadow could fall through to CSSPropertyMaskType.
3588
3589         * platform/Decimal.cpp:
3590         (WebCore::Decimal::fromString):
3591         Possible bug. Implementation doesn't seem to match its documentation.
3592         Filed an issue to follow-up on this unclear function.
3593
3594         * css/makeprop.pl:
3595         * css/makevalues.pl:
3596         * platform/ColorData.gperf:
3597         Ignore implicit fallthrough warnings in generated code. gperf outputs
3598         a "/*FALLTHROUGH*/" comment, but is not easily customizable to change
3599         this output. Easiest to just ignore the warning for now.
3600
3601         * rendering/AutoTableLayout.cpp:
3602         (WebCore::AutoTableLayout::recalcColumn):
3603         (WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
3604         (WebCore::AutoTableLayout::layout):
3605         There has been a "fall through" comment immediately followed by a break
3606         since its introduction in 2003. Removing the inaccurate comment.
3607
3608         * accessibility/AccessibilityNodeObject.cpp:
3609         (WebCore::AccessibilityNodeObject::canHaveChildren):
3610         (WebCore::AccessibilityNodeObject::visibleText):
3611         (WebCore::AccessibilityNodeObject::title):
3612         * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
3613         (-[WebAccessibilityObjectWrapperBase accessibilityDescription]):
3614         (-[WebAccessibilityObjectWrapperBase accessibilityHelpText]):
3615         * bindings/js/SerializedScriptValue.cpp:
3616         (WebCore::CloneSerializer::serialize):
3617         (WebCore::CloneDeserializer::deserialize):
3618         * css/CSSComputedStyleDeclaration.cpp:
3619         (WebCore::ComputedStyleExtractor::propertyValue):
3620         * css/CSSParser.cpp:
3621         (WebCore::CSSParser::parseValue):
3622         (WebCore::CSSParser::parseContent):
3623         (WebCore::CSSParser::realLex):
3624         * css/CSSSelector.cpp:
3625         (WebCore::CSSSelector::extractPseudoType):
3626         (WebCore::CSSSelector::selectorText):
3627         * css/StyleProperties.cpp:
3628         (WebCore::StyleProperties::asText):
3629         * css/StyleSheetContents.cpp:
3630         (WebCore::childRulesHaveFailedOrCanceledSubresources):
3631         * dom/Node.cpp:
3632         (WebCore::appendTextContent):
3633         * html/parser/HTMLTreeBuilder.cpp:
3634         (WebCore::HTMLTreeBuilder::processStartTag):
3635         (WebCore::HTMLTreeBuilder::processEndTag):
3636         (WebCore::HTMLTreeBuilder::processCharacterBuffer):
3637         (WebCore::HTMLTreeBuilder::processEndOfFile):
3638         * loader/cache/CachedResourceLoader.cpp:
3639         (WebCore::CachedResourceLoader::requestResource):
3640         * page/EventSource.cpp:
3641         (WebCore::EventSource::parseEventStream):
3642         * platform/DateComponents.cpp:
3643         (WebCore::DateComponents::toStringForTime):
3644         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
3645         (WebCore::MediaPlayerPrivateAVFoundation::updateStates):
3646         * platform/graphics/cg/GraphicsContextCG.cpp:
3647         (WebCore::GraphicsContext::platformInit):
3648         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3649         (WebCore::MediaPlayerPrivateGStreamer::totalBytes):
3650         * platform/graphics/win/FullScreenController.cpp:
3651         (FullScreenController::Private::fullscreenClientWndProc):
3652         * platform/text/BidiResolver.h:
3653         (WebCore::Run>::updateStatusLastFromCurrentDirection):
3654         (WebCore::Run>::createBidiRunsForLine):
3655         * platform/text/win/LocaleWin.cpp:
3656         (WebCore::LocaleWin::initializeLocaleData):
3657         * rendering/PointerEventsHitRules.cpp:
3658         (WebCore::PointerEventsHitRules::PointerEventsHitRules):
3659         * rendering/RenderBlockFlow.cpp:
3660         (WebCore::RenderBlockFlow::newLine):
3661         * rendering/RenderBlockLineLayout.cpp:
3662         (WebCore::RenderBlockFlow::updateLogicalWidthForAlignment):
3663         * rendering/RenderBox.cpp:
3664         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
3665         * rendering/RenderBoxModelObject.cpp:
3666         (WebCore::RenderBoxModelObject::calculateFillTileSize):
3667         * rendering/RenderObject.cpp:
3668         (WebCore::RenderObject::drawLineForBoxSide):
3669         * rendering/RenderQuote.cpp:
3670         (WebCore::RenderQuote::originalText):
3671         * rendering/RenderReplaced.cpp:
3672         (WebCore::RenderReplaced::replacedContentRect):
3673         * rendering/RenderTable.cpp:
3674         (WebCore::RenderTable::addChild):
3675         * rendering/RenderTheme.cpp:
3676         (WebCore::RenderTheme::adjustStyle):
3677         * rendering/style/RenderStyle.cpp:
3678         (WebCore::RenderStyle::setWordSpacing):
3679         * rendering/svg/RenderSVGResource.cpp:
3680         (WebCore::requestPaintingResource):
3681         * rendering/svg/SVGMarkerData.h:
3682         (WebCore::SVGMarkerData::updateMarkerDataForPathElement):
3683         * svg/SVGPathParser.cpp:
3684         (WebCore::SVGPathParser::parsePathDataFromSource):
3685         * svg/SVGTransformDistance.cpp:
3686         (WebCore::SVGTransformDistance::SVGTransformDistance):
3687         (WebCore::SVGTransformDistance::scaledDistance):
3688         (WebCore::SVGTransformDistance::addSVGTransforms):
3689         (WebCore::SVGTransformDistance::addToSVGTransform):
3690         (WebCore::SVGTransformDistance::distance):
3691         Add annotation or break before falling into a default:break;
3692
3693 2014-01-27  Andreas Kling  <akling@apple.com>
3694
3695         Allow mmap encoded data replacement for WOFF fonts.
3696         <https://webkit.org/b/127737>
3697
3698         We always have to convert WOFF fonts to SFNT format. This happens
3699         in a separate buffer from the CachedFont's internal resource buffer.
3700         Because of this, there's no need to protect the original buffer from
3701         mmap replacement.
3702
3703         With this change, WOFF web fonts are no longer duplicated between
3704         the network and web processes.
3705
3706         Reviewed by Brady Eidson.
3707
3708         * loader/cache/CachedFont.cpp:
3709         (WebCore::CachedFont::CachedFont):
3710         (WebCore::CachedFont::ensureCustomFontData):
3711         (WebCore::CachedFont::mayTryReplaceEncodedData):
3712         * loader/cache/CachedFont.h:
3713
3714 2014-01-27  David Hyatt  <hyatt@apple.com>
3715
3716         [New Multicolumn] Add support for block progression axis and reverse direction
3717         https://bugs.webkit.org/show_bug.cgi?id=127715
3718
3719         Reviewed by thorton.
3720
3721         This patch adds support for -webkit-progression-direction and -webkit-progression-axis
3722         to the new column code. This allows columns to stack along the block axis instead of
3723         the inline axis or to reverse directions along that progression axis.
3724
3725         Added fast/multicol/newmulticol/progression-reverse.html and
3726               fast/multicol/newmulticol/progression-reverse-overflow.html
3727
3728         * rendering/RenderBlock.cpp:
3729         (WebCore::RenderBlock::isTopLayoutOverflowAllowed):
3730         (WebCore::RenderBlock::isLeftLayoutOverflowAllowed):
3731         New functions have been added for top and left layout overflow in order to get
3732         a bunch of code out of RenderBox that didn't belong there. RenderBlock is overriding
3733         the functions for the old multicolumn layout code to keep it working.
3734
3735         * rendering/RenderBlock.h:
3736         Added the new top/left overflow functions.
3737
3738         * rendering/RenderBlockFlow.cpp:
3739         (WebCore::RenderBlockFlow::determineLogicalLeftPositionForChild):
3740         Moved from RenderBlock, since it didn't belong there.
3741
3742         (WebCore::RenderBlockFlow::isTopLayoutOverflowAllowed):
3743         (WebCore::RenderBlockFlow::isLeftLayoutOverflowAllowed):
3744         * rendering/RenderBlockFlow.h:
3745         Overridden for the new multi-column code to specify when top/left overflow are
3746         allowed (e.g., when the columns go backwards).
3747
3748         * rendering/RenderBox.cpp:
3749         (WebCore::RenderBox::addLayoutOverflow):
3750         Overridden to use the new top/left overflow functions.
3751
3752         * rendering/RenderBox.h:
3753         (WebCore::RenderBox::isTopLayoutOverflowAllowed):
3754         (WebCore::RenderBox::isLeftLayoutOverflowAllowed):
3755         Added base definitions that look at direction and writing-mode.
3756
3757         * rendering/RenderFlexibleBox.cpp:
3758         (WebCore::RenderFlexibleBox::isTopLayoutOverflowAllowed):
3759         (WebCore::RenderFlexibleBox::isLeftLayoutOverflowAllowed):
3760         * rendering/RenderFlexibleBox.h:
3761         Overrides for flexible box of the top/left overflow functions.
3762
3763         * rendering/RenderMultiColumnFlowThread.h:
3764         Make sure requiresBalancing() is set to false if the axis of the columns
3765         is block, since at least right now, we don't support balancing columns
3766         along the block axis. (In theory we could support this in the future, but
3767         nobody has requested it.)
3768
3769         * rendering/RenderMultiColumnSet.cpp:
3770         (WebCore::RenderMultiColumnSet::updateLogicalWidth):
3771         Remove the code that expands the width of multi column sets. We now always
3772         let their logical width match the containing block's content width and instead
3773         add the overflow to the set itself.
3774
3775         (WebCore::RenderMultiColumnSet::columnRectAt):
3776         (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
3777         (WebCore::RenderMultiColumnSet::paintColumnRules):
3778         (WebCore::RenderMultiColumnSet::initialBlockOffsetForPainting):
3779         (WebCore::RenderMultiColumnSet::collectLayerFragments):
3780         (WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):
3781         Patch all of these functions to know how to handle a block axis or reversed
3782         direction.
3783
3784         (WebCore::RenderMultiColumnSet::addOverflowFromChildren):
3785         * rendering/RenderMultiColumnSet.h:
3786         Make multi-column set add in its overflow in the same way that the old
3787         multi-column code did, by looking at the last column rect. (This is really
3788         not a very good way to do it, but it's the same as the old code for now.)
3789
3790 2014-01-27  Daniel Bates  <dabates@apple.com>
3791
3792         Fix the Mac build following <http://trac.webkit.org/changeset/162887>
3793         (https://bugs.webkit.org/show_bug.cgi?id=127703)
3794
3795         Export symbol for WebCore::AXObjectCache::enableAccessibility().
3796
3797         * WebCore.exp.in:
3798
3799 2014-01-27  Roger Fong  <roger_fong@apple.com>
3800
3801         [Mac] Unreviewed build fix. Add missing export symbol.
3802
3803         * WebCore.exp.in:
3804
3805 2014-01-27  Roger Fong  <roger_fong@apple.com>
3806
3807         [Windows] Tests crashing on Windows after r162816.
3808         https://bugs.webkit.org/show_bug.cgi?id=127703.
3809
3810         Reviewed by Alexey Proskuryakov.
3811
3812         * accessibility/AXObjectCache.cpp:
3813         (WebCore::AXObjectCache::enableAccessibility):
3814         (WebCore::AXObjectCache::disableAccessibility):
3815         * accessibility/AXObjectCache.h: Un-inline some methods so that they can be exported.
3816
3817 2014-01-27  Andy Estes  <aestes@apple.com>
3818
3819         Update bindings test expectations after r162872
3820
3821         * bindings/scripts/test/ObjC/DOMTestInterface.h:
3822         * bindings/scripts/test/ObjC/DOMTestObj.h:
3823
3824 2014-01-27  Andy Estes  <aestes@apple.com>
3825
3826         Scrub WebKit API headers of WTF macros
3827         https://bugs.webkit.org/show_bug.cgi?id=127706
3828
3829         Reviewed by David Kilzer.
3830
3831         * Configurations/FeatureDefines.xcconfig: Added ENABLE_INSPECTOR.
3832         * bindings/objc/DOMEvents.h: Guarded include of
3833         DOM{Gesture,Touch}Event.h with TARGET_OS_IPHONE, since those features
3834         are always enabled on iOS.
3835         * platform/graphics/mac/MediaPlayerProxy.h: Replaced PLATFORM(IOS) with
3836         TARGET_OS_IPHONE and ensured ENABLE_IOS_AIRPLAY is defined.
3837         * platform/ios/SystemMemory.h: Replaced PLATFORM(IOS) with
3838         TARGET_OS_IPHONE.
3839         * platform/ios/wak/WKGraphics.h: Replaced PLATFORM(IOS_SIMULATOR) with
3840         TARGET_IPHONE_SIMULATOR.
3841
3842 2014-01-27  Jer Noble  <jer.noble@apple.com>
3843
3844         [iOS] Use callOnMainThread() not dispatch_async() in MediaPlayerPrivateAVFoundationObjC
3845         https://bugs.webkit.org/show_bug.cgi?id=127701
3846
3847         Reviewed by Eric Carlson.
3848
3849         dispatch_async(dispatch_get_main_queue(), ...) used to be fine so long as the main
3850         thread was also the web thread. But since that's not the case on iOS, we should be
3851         using callOnMainThread() instead (because it dispatches to the web thread, not as
3852         its name implies, the main thread).
3853
3854         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
3855         (WebCore::MediaPlayerPrivateAVFoundationObjC::createWeakPtr):
3856         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3857         (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
3858         (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
3859         (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime):
3860         (-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
3861         (-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]):
3862         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
3863         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForResponseToAuthenticationChallenge:]):
3864         (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
3865
3866 2014-01-27  Maciej Stachowiak  <mjs@apple.com>
3867
3868         Move Conditional=BLOB from URL interface to Blob-related methods, to prepare for adding URL API
3869         https://bugs.webkit.org/show_bug.cgi?id=127719
3870
3871         Reviewed by Sam Weinig.
3872
3873         * html/DOMURL.idl:
3874
3875 2014-01-27  Andreas Kling  <akling@apple.com>
3876
3877         Remove unused USE(OPENTYPE_SANITIZER) code.
3878         <https://webkit.org/b/127710>
3879
3880         This code was only used by the Chromium port.
3881
3882         Reviewed by Darin Adler.
3883
3884         * GNUmakefile.list.am:
3885         * WebCore.xcodeproj/project.pbxproj:
3886         * loader/cache/CachedFont.cpp:
3887         (WebCore::CachedFont::ensureCustomFontData):
3888         * platform/graphics/WOFFFileFormat.cpp:
3889         * platform/graphics/WOFFFileFormat.h:
3890         * platform/graphics/opentype/OpenTypeSanitizer.cpp: Removed.
3891         * platform/graphics/opentype/OpenTypeSanitizer.h: Removed.
3892
3893
3894 2014-01-27  Andy Estes  <aestes@apple.com>
3895
3896         Stop the code generator from adding ENABLE() macros to Objective-C DOM headers
3897         https://bugs.webkit.org/show_bug.cgi?id=127706
3898
3899         Reviewed by David Kilzer.
3900
3901         Instead of adding ENABLE() macros to generated Objective-C DOM
3902         headers, which might become Public or Private headers, elide generated
3903         code for disabled features.
3904
3905         * bindings/scripts/CodeGeneratorObjC.pm:
3906         (GenerateInterface): Passed $defines to GenerateHeader.
3907         (ConditionalIsEnabled): Checked if the given conditional is found in
3908         $defines. Handled conditionals with '&' and '|'.
3909         (GenerateHeader): Rather than calling GenerateConditionalString to
3910         generate an "#if ENABLE(...)", called ConditionalIsEnabled() to see
3911         whether we should generate code for the given constant, attribute, or
3912         function.
3913
3914 2014-01-27  Zoltan Horvath  <zoltan@webkit.org>
3915
3916         [CSS Shapes] Remove restriction of negative values for inset parameters
3917         https://bugs.webkit.org/show_bug.cgi?id=127704
3918
3919         Reviewed by Darin Adler.
3920
3921         The latest version of CSS Shapes (http://www.w3.org/TR/css-shapes/) specification
3922         doesn't contain any restriction of using negative values for the inset sizing.
3923         I removed the restriction from the code and added testing for them.
3924
3925         Existing tests have been extended with the new cases.
3926
3927         * css/CSSParser.cpp:
3928         (WebCore::CSSParser::parseBasicShapeInset):
3929
3930 2014-01-27  Eric Carlson  <eric.carlson@apple.com>
3931
3932         [iOS] preload=none prevents play()
3933         https://bugs.webkit.org/show_bug.cgi?id=127702
3934
3935         Reviewed by Jer Noble.
3936
3937         No new tests, covered by existing tests.
3938
3939         * html/HTMLMediaElement.cpp:
3940         (WebCore::HTMLMediaElement::potentiallyPlaying): Cleanup logic to make it simpler to understand,
3941             fix logic error introduced in r161973
3942         (WebCore::HTMLMediaElement::updatePlayState): Conditionalize some iOS-only code on whether or not
3943             we are using the plug-in proxy.
3944
3945 2014-01-27  Brady Eidson  <beidson@apple.com>
3946
3947         IDB: LevelDB backing store shouldn't know about IDBCursor or IDBCallbacks
3948         https://bugs.webkit.org/show_bug.cgi?id=127708
3949
3950         Reviewed by Tim Horton.
3951
3952         Move that knowledge to the IDBCursorBackendOperations inside the callback.
3953
3954         * Modules/indexeddb/IDBCursorBackendOperations.cpp:
3955         (WebCore::CursorAdvanceOperation::perform):
3956         (WebCore::CursorIterationOperation::perform):
3957         * Modules/indexeddb/IDBCursorBackendOperations.h:
3958
3959         * Modules/indexeddb/IDBServerConnection.h:
3960         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
3961         (WebCore::IDBServerConnectionLevelDB::cursorAdvance):
3962         (WebCore::IDBServerConnectionLevelDB::cursorIterate):
3963         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
3964
3965 2014-01-27  Brady Eidson  <beidson@apple.com>
3966
3967         IDB: Remove unused concept of "cursor prefetch"
3968         https://bugs.webkit.org/show_bug.cgi?id=127700
3969
3970         Reviewed by Tim Horton.
3971
3972         * Modules/indexeddb/IDBCursorBackend.cpp:
3973         * Modules/indexeddb/IDBCursorBackend.h:
3974         * Modules/indexeddb/IDBCursorBackendOperations.cpp:
3975         * Modules/indexeddb/IDBCursorBackendOperations.h:
3976         * Modules/indexeddb/IDBServerConnection.h:
3977         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
3978         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
3979
3980 2014-01-27  Brady Eidson  <beidson@apple.com>
3981
3982         IDB: Refactor out the last of the operation callbacks that are called by the LevelDB backing store
3983         https://bugs.webkit.org/show_bug.cgi?id=127592
3984
3985         Reviewed by Tim Horton.
3986
3987         For each of the 3 remaining operations where the backing store calls callbacks directly,
3988         factor out the callbacks to the operation itself.
3989
3990
3991         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
3992         (WebCore::OpenCursorOperation::perform):
3993         (WebCore::CountOperation::perform):
3994         (WebCore::DeleteRangeOperation::perform):
3995         * Modules/indexeddb/IDBTransactionBackendOperations.h:
3996
3997         * Modules/indexeddb/IDBServerConnection.h:
3998         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
3999         (WebCore::IDBServerConnectionLevelDB::openCursor):
4000         (WebCore::IDBServerConnectionLevelDB::count):
4001         (WebCore::IDBServerConnectionLevelDB::deleteRange):
4002         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
4003
4004 2014-01-27  Commit Queue  <commit-queue@webkit.org>
4005
4006         Unreviewed, rolling out r162755.
4007         http://trac.webkit.org/changeset/162755
4008         https://bugs.webkit.org/show_bug.cgi?id=127696
4009
4010         not quite right, breaks subframe scrolling in some cases
4011         (Requested by thorton on #webkit).
4012
4013         * page/scrolling/ScrollingTree.cpp:
4014         (WebCore::ScrollingTree::ScrollingTree):
4015         (WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
4016         (WebCore::ScrollingTree::removeDestroyedNodes):
4017         * page/scrolling/ScrollingTree.h:
4018         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
4019         (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
4020
4021 2014-01-27  Zoltan Horvath  <zoltan@webkit.org>
4022
4023         [CSS Shapes] inset() function with multiple spaces on element style
4024         https://bugs.webkit.org/show_bug.cgi?id=127617
4025
4026         Reviewed by Dirk Schulze.
4027
4028         When only a subset of parameters were defined for an inset shape, the built
4029         inset string contained some extra spaces. This patch fixes the behavior and
4030         adds tests for the case. I also removed the string allocation optimization from
4031         buildInsetString, since it's not worthwhile to always allocate as many memory
4032         as needed for a fully defined inset.
4033
4034         I added the new test cases to the shapes parser code test.
4035
4036         * css/CSSBasicShapes.cpp:
4037         (WebCore::buildInsetString):
4038
4039 2014-01-27  Antti Koivisto  <antti@apple.com>
4040
4041         * WebCore.exp.in: Add export needed for iOS.
4042
4043 2014-01-27  Antti Koivisto  <antti@apple.com>
4044
4045         REGRESSION(r133214): Don't invalidate style when adding classes that don't match rules
4046         https://bugs.webkit.org/show_bug.cgi?id=126177
4047
4048         Reviewed by Anders Carlsson.
4049         
4050         Spotted by Elliott Sprehn in Chromium.
4051
4052         * dom/Element.cpp:
4053         (WebCore::checkSelectorForClassChange):
4054         
4055             Remove unnecessary templating.
4056
4057         (WebCore::Element::classAttributeChanged):
4058         
4059             Fix logic error with 'continue'.
4060
4061 2014-01-27  Brendan Long  <b.long@cablelabs.com>
4062