817bc58bbca00be017e68c45bbb3ef066355c6a6
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-02-14  Benjamin Poulain  <benjamin@webkit.org>
2
3         Make code generation of the unoptimized pseudo classes separate
4         https://bugs.webkit.org/show_bug.cgi?id=128704
5
6         Reviewed by Andreas Kling.
7
8         Mapping the unoptimized selectors when generating the code was useful for debugging
9         but those cases are so common that looping over unoptimizedPseudoCheckers was more
10         costly than anticipated.
11
12         This patch moves the unoptimized pseudo selector in their own array to simplify code generation.
13
14         * cssjit/SelectorCompiler.cpp:
15         (WebCore::SelectorCompiler::addPseudoType):
16         (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
17         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
18
19 2014-02-14  Myles C. Maxfield  <mmaxfield@apple.com>
20
21         Implement text-decoration-skip: auto
22         https://bugs.webkit.org/show_bug.cgi?id=128786
23
24         Reviewed by Dean Jackson.
25
26         http://lists.w3.org/Archives/Public/www-style/2014Feb/0485.html
27         We are updating the initial value of text-decoration-skip to a new value, "auto".
28         On Mac + iOS, this will have the same behavior as "skip".
29
30         Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-default.html
31
32         * css/CSSComputedStyleDeclaration.cpp:
33         (WebCore::renderTextDecorationSkipFlagsToCSSValue):
34         * css/CSSParser.cpp:
35         (WebCore::CSSParser::parseTextDecorationSkip):
36         * css/DeprecatedStyleBuilder.cpp:
37         (WebCore::valueToDecorationSkip):
38         * rendering/InlineTextBox.cpp:
39         (WebCore::InlineTextBox::paintDecoration):
40         * rendering/style/RenderStyle.h:
41         * rendering/style/RenderStyleConstants.h:
42
43 2014-02-13  Simon Fraser  <simon.fraser@apple.com>
44
45         Give ScrollingTree(State)Nodes a reference to another layer, which is used for moving overflow:scroll contents around
46         https://bugs.webkit.org/show_bug.cgi?id=128790
47
48         Reviewed by Beth Dakin.
49
50         Have scrolling tree nodes and state nodes track another layer, the
51         "scrolled contents layer", for accelerated overflow:scroll.
52         
53         When making ScrollingTreeScrollingNodes for overflow:scroll, the node's
54         layer will point to the composited element's primary layer, and its
55         scrolledContentsLayer to the layer that gets moved around by scrolling.
56         
57         Do some other cleanup on AsyncScrollingCoordinator, removing
58         functions that just called through to nodes.
59
60         * WebCore.exp.in:
61         * page/scrolling/AsyncScrollingCoordinator.cpp:
62         (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
63         (WebCore::AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged):
64         (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
65         (WebCore::AsyncScrollingCoordinator::updateScrollingNode):
66         (WebCore::AsyncScrollingCoordinator::updateViewportConstrainedNode):
67         (WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
68         * page/scrolling/AsyncScrollingCoordinator.h:
69         * page/scrolling/ScrollingCoordinator.h:
70         (WebCore::ScrollingCoordinator::updateScrollingNode):
71         * page/scrolling/ScrollingStateScrollingNode.cpp:
72         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
73         (WebCore::ScrollingStateScrollingNode::setScrolledContentsLayer):
74         (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
75         (WebCore::ScrollingStateScrollingNode::setHeaderLayer):
76         (WebCore::ScrollingStateScrollingNode::setFooterLayer):
77         * page/scrolling/ScrollingStateScrollingNode.h:
78         * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
79         * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
80         (WebCore::ScrollingTreeScrollingNodeIOS::updateBeforeChildren):
81         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
82         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
83         (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
84         * rendering/RenderLayerCompositor.cpp:
85         (WebCore::RenderLayerCompositor::fixedRootBackgroundLayerChanged):
86
87 2014-02-14  Chris Fleizach  <cfleizach@apple.com>
88
89         AX: WebKit needs heuristics to differentiate lists used for layout from semantic data lists, similar to the heuristics for layout tables versus data tables.
90         https://bugs.webkit.org/show_bug.cgi?id=122320
91
92         Reviewed by Mario Sanchez Prada.
93
94         Many authors use lists for layout, rather than presenting data. Exposing these kinds of lists to accessibility users
95         makes the web harder to process and listen, while degrading the importance of real lists.
96
97         This introduces heuristics to filter out layout lists with the following:
98            1. If it's a named list, like ol or aria=list, then it's a list.
99              1a. Unless the list has no children, then it's not a list.
100            2. If it displays visible list markers, it's a list.
101            3. If it does not display list markers and has only one child, it's not a list.
102            4. If it does not have any listitem children, it's not a list.
103            5. Otherwise it's a list (for now).
104
105         Test: accessibility/list-detection.html
106
107         * accessibility/AccessibilityList.cpp:
108         (WebCore::AccessibilityList::determineAccessibilityRole):
109         (WebCore::AccessibilityList::roleValue):
110         * accessibility/AccessibilityList.h:
111
112 2014-02-14  Brendan Long  <b.long@cablelabs.com>
113
114         Use AtomicString arguments in TrackPrivateBaseClient callbacks
115         https://bugs.webkit.org/show_bug.cgi?id=128765
116
117         Reviewed by Eric Carlson.
118
119         No new tests because this doesn't change functionality.
120
121         * html/track/AudioTrack.cpp:
122         (WebCore::AudioTrack::idChanged):
123         (WebCore::AudioTrack::labelChanged):
124         (WebCore::AudioTrack::languageChanged):
125         * html/track/AudioTrack.h:
126         * html/track/InbandTextTrack.cpp:
127         (WebCore::InbandTextTrack::InbandTextTrack):
128         (WebCore::InbandTextTrack::idChanged):
129         (WebCore::InbandTextTrack::labelChanged):
130         (WebCore::InbandTextTrack::languageChanged):
131         * html/track/InbandTextTrack.h:
132         * html/track/VideoTrack.cpp:
133         (WebCore::VideoTrack::idChanged):
134         (WebCore::VideoTrack::labelChanged):
135         (WebCore::VideoTrack::languageChanged):
136         * html/track/VideoTrack.h:
137         * platform/graphics/TrackPrivateBase.h:
138
139 2014-02-14  Renata Hodovan  <rhodovan.u-szeged@partner.samsung.com>
140
141         ASSERTION FAILED: comparePositions(newEnd, newStart) >= 0 in WebCore::ApplyStyleCommand::updateStartEnd
142         https://bugs.webkit.org/show_bug.cgi?id=121791
143
144         Reviewed by Darin Adler.
145
146         If WebCore::ApplyStyleCommand::applyBlockStyle() creates a TextIterator for a range
147         that has an element with ReplacedElement rendering object, then a ',' is emitted in the
148         constructor of TextIterator. Due to this comma the end of the run range can be at the
149         wrong position, what makes the assertion fire. This situation can be handled the same
150         way in TextIterator::rangeFromLocationAndLength() as we do in case of the emitted '\n's.
151
152         Test: editing/execCommand/remove-formatting-from-iframe-in-button.html
153
154         * editing/TextIterator.cpp:
155         (WebCore::TextIterator::rangeFromLocationAndLength):
156
157 2014-02-14  Andrei Bucur  <abucur@adobe.com>
158
159         [CSS Regions] visibility: hidden on a region should hide its content
160         https://bugs.webkit.org/show_bug.cgi?id=128814
161
162         Reviewed by Mihnea Ovidenie.
163
164         The patch properly checks that the content of a region layer should be painted before actually
165         calling the paint function (for example, when visibility: hidden is specified on a region, its
166         content should be hidden).
167
168         Test: fast/regions/visibility-hidden.html
169
170         * rendering/RenderLayer.cpp:
171         (WebCore::RenderLayer::paintLayerContents):
172
173 2014-02-14  László Langó  <llango.u-szeged@partner.samsung.com>
174
175         Follow-up fix after r164036.
176
177         Reviewed by Csaba Osztrogonác.
178
179         * dom/Document.cpp:
180         (WebCore::Document::create):
181
182 2014-02-13  Byungseon Shin  <sun.shin@lge.com>
183
184         [MSE] Move PublicURLManager shutdown logic so ActiveDOMObjects associated with public URLs won't leak.
185         https://bugs.webkit.org/show_bug.cgi?id=128532
186
187         Reviewed by Jer Noble.
188
189         This fixes a leak of DOM objects by breaking the circular reference 
190         between Document, PublicURLManager, and MediaSource. 
191         Instead of clearing PublicURLManager at destruction-time, 
192         which is delayed indefinitely because of the circular reference, 
193         clear the PublicURLManager during ActiveDOMObject::stop().
194
195         Frome Blink r151890 by <acolwell@chromium.org>
196         <https://src.chromium.org/viewvc/blink?view=rev&revision=151890>
197
198         * dom/ScriptExecutionContext.cpp:
199         (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
200         (WebCore::ScriptExecutionContext::publicURLManager):
201         * html/DOMURL.h:
202         * html/PublicURLManager.cpp:
203         (WebCore::PublicURLManager::create):
204         (WebCore::PublicURLManager::PublicURLManager):
205         (WebCore::PublicURLManager::registerURL):
206         (WebCore::PublicURLManager::stop):
207         * html/PublicURLManager.h:
208
209 2014-02-13  Myles C. Maxfield  <mmaxfield@apple.com>
210
211         Remove position:sticky runtime flag
212         https://bugs.webkit.org/show_bug.cgi?id=128774
213
214         Reviewed by Simon Fraser.
215
216         Rollout of r128663
217
218         No new tests are necessary because there is no behavior change.
219
220         * css/CSSParser.cpp:
221         (WebCore::CSSParserContext::CSSParserContext):
222         (WebCore::operator==):
223         (WebCore::isValidKeywordPropertyAndValue):
224         * css/CSSParserMode.h:
225         * dom/Document.cpp:
226         * dom/Document.h:
227         * page/Settings.cpp:
228         (WebCore::Settings::Settings):
229         * page/Settings.h:
230
231 2014-02-04  Gustavo Noronha Silva  <gns@gnome.org>
232
233         [GTK][CMake] Generate GObject DOM bindings .symbols files
234         https://bugs.webkit.org/show_bug.cgi?id=126210
235
236         Reviewed by Martin Robinson.
237
238         No new tests. Build change only.
239
240         * CMakeLists.txt: list Quota module files and IDLs even if the feature
241         is disabled, for GTK, since we rely on that for our DOM bindings.
242         * PlatformGTK.cmake: add a new target to check for DOM symbols API by
243         running the new python script.
244         * bindings/gobject/GNUmakefile.am: call the new python script instead
245         of using a custom rule.
246
247 2014-02-13  Myles C. Maxfield  <mmaxfield@apple.com>
248
249         text-decoration-skip: ink skips randomly when using SVG fonts
250         https://bugs.webkit.org/show_bug.cgi?id=128709
251
252         Reviewed by Simon Fraser.
253
254         This patch simply disables skipping underlines being used with SVG fonts.
255         It's a stopgap until we can support skipping properly with SVG fonts.
256
257         Test: svg/custom/svg-fonts-skip-ink.html
258
259         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
260         (WebCore::FontPlatformData::ctFont):
261         * platform/graphics/mac/FontMac.mm:
262         (WebCore::Font::dashesForIntersectionsWithRect):
263
264 2014-02-13  Daniel Bates  <dabates@apple.com>
265
266         Fix the ARM build when HAVE_ARM_NEON_INTRINSICS is enabled
267
268         Add !HAVE(ARM_NEON_INTRINSICS)-guard around file-level inline function arithmeticSoftware to
269         avoid an unused function compiler warning when building with ARM Neon intrinsics.
270
271         * platform/graphics/filters/FEComposite.cpp:
272
273 2014-02-13  Brady Eidson  <beidson@apple.com>
274
275         IDB: Three tests crash the DatabaseProcess under ~KeyedDecoder
276         https://bugs.webkit.org/show_bug.cgi?id=128763
277
278         Reviewed by Anders Carlsson.
279
280         No new tests (Covered by three existing tests)
281
282         * platform/KeyedCoding.h:
283         (WebCore::KeyedEncoder::encodeObjects): If the array is empty we still have to begin() and end() it.
284
285 2014-02-13  Yuki Sekiguchi  <yuki.sekiguchi@access-company.com>
286
287         [css3-text] Support -webkit-text-decoration-skip: objects
288         https://bugs.webkit.org/show_bug.cgi?id=128723
289
290         Reviewed by Dean Jackson.
291
292         Implemented 'objects' value of text-decoration-skip.
293         http://www.w3.org/TR/2013/CR-css-text-decor-3-20130801/#text-decoration-skip
294
295         This is initial value and same behavior without
296         ENABLE_CSS3_TEXT_DECORATION_SKIP_INK flag. Threfore, this patch only
297         added parser code and constant for 'objects'.
298
299         Changed the initial value of text-decoration-skip.
300
301         The current implementation parses 'none', but the rendering code is
302         not match the spec, so this patch added FIXME to the rendering code.
303
304         * css/CSSComputedStyleDeclaration.cpp:
305         (WebCore::renderTextDecorationSkipFlagsToCSSValue):
306         * css/CSSParser.cpp:
307         (WebCore::CSSParser::parseTextDecorationSkip):
308         * css/CSSValueKeywords.in:
309         * css/DeprecatedStyleBuilder.cpp:
310         (WebCore::valueToDecorationSkip):
311         * rendering/InlineTextBox.cpp:
312         (WebCore::InlineTextBox::paintDecoration):
313         * rendering/style/RenderStyle.h:
314         * rendering/style/RenderStyleConstants.h:
315
316 2014-02-13  Daniel Bates  <dabates@apple.com>
317
318         Fix ARM NEON build following <http://trac.webkit.org/changeset/164058>
319         (https://bugs.webkit.org/show_bug.cgi?id=128767)
320
321         I inadvertently didn't include header NEONHelpers.h, which defines WebCore::loadRGBA8AsFloat().
322
323         * platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h:
324
325 2014-02-13  Daniel Bates  <dabates@apple.com>
326
327         Write FEComposite::computeArithmeticPixelsNeon() in terms of loadRGBA8AsFloat()
328         https://bugs.webkit.org/show_bug.cgi?id=128767
329
330         Reviewed by Dean Jackson.
331
332         This patch was inspired by Gabor Rapcsanyi's work in <https://bugs.webkit.org/show_bug.cgi?id=90669>.
333
334         Currently we duplicate code in FEComposite::computeArithmeticPixelsNeon() to read pixel data.
335         Instead we should use the convenience function WebCore::loadRGBA8AsFloat. This also resolves
336         an uninitialized variable compiler warning in the existing code.
337
338         * platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h:
339         (WebCore::FEComposite::computeArithmeticPixelsNeon):
340
341 2014-02-13  Myles C. Maxfield  <mmaxfield@apple.com>
342
343         During a copy, position:fixed gets converted to position:absolute even if only part of the document is selected
344         https://bugs.webkit.org/show_bug.cgi?id=128688
345
346         Reviewed by Ryosuke Niwa.
347
348         Adds a field, m_needsPositionStyleConversion, to StyledMarkupAccumulator.
349
350         Also, renames the ConvertPositionStyleOnCopy setting to ShouldConvertPositionStyleOnCopy
351
352         Test: editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy.html
353
354         * editing/markup.cpp:
355         (WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator):
356         (WebCore::StyledMarkupAccumulator::appendElement):
357         (WebCore::createMarkupInternal):
358         * page/Settings.in:
359         * testing/InternalSettings.cpp:
360         (WebCore::InternalSettings::Backup::Backup):
361         (WebCore::InternalSettings::Backup::restoreTo):
362         (WebCore::InternalSettings::setShouldConvertPositionStyleOnCopy):
363         * testing/InternalSettings.h:
364         * testing/InternalSettings.idl:
365
366 2014-02-12  Timothy Hatcher  <timothy@apple.com>
367
368         Enable inspection of recently used IndexedDB databases.
369
370         https://bugs.webkit.org/show_bug.cgi?id=128687
371
372         Reviewed by Brady Eidson & Joseph Pecoraro.
373
374         * Modules/indexeddb/IDBFactory.cpp:
375         (WebCore::IDBFactory::getDatabaseNames):
376         * Modules/indexeddb/IDBFactoryBackendInterface.h:
377         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
378         (WebCore::IDBFactoryBackendLevelDB::getDatabaseNames):
379         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
380         Fix up the arguments passed to getDatabaseNames.
381
382         * WebCore.xcodeproj/project.pbxproj:
383         Make DOMStringList.h private so WebKit2 can use it.
384
385         * inspector/InspectorIndexedDBAgent.cpp:
386         Modernize the loops and remove some PLATFORM(COCOA) ifdefs to
387         compile the code. 
388
389         * inspector/protocol/IndexedDB.json: Use number for version to
390         allow larger values instead of clamping to int.
391
392 2014-02-13  Chang Shu  <cshu@webkit.org>
393
394         Copying (createMarkup) wrapping text results in space between wrapped lines stripped.
395         https://bugs.webkit.org/show_bug.cgi?id=63233
396
397         The problem is StyledMarkupAccumulator uses renderedText and the space at
398         the end of the text has been stripped when the tag after the text was wrapped.
399
400         Reviewed by Ryosuke Niwa.
401
402         Test: editing/pasteboard/copy-text-with-wrapped-tag.html
403
404         * editing/TextIterator.cpp:
405         (WebCore::TextIterator::TextIterator):
406         (WebCore::TextIterator::handleTextBox):
407         * editing/TextIterator.h:
408         Check the special case when the iterator runs over a range that is followed by a non-text box.
409         In this case, the possible last space has been collapsed and needs to be restored.
410         * editing/markup.cpp:
411         (WebCore::StyledMarkupAccumulator::renderedText):
412         Check if the range is followed by more nodes and pass this information to the constructed TextIterator.
413
414 2014-02-13  Myles C. Maxfield  <mmaxfield@apple.com>
415
416         Gaps for text-decoration-skip: ink are calculated assuming the glyph orientation is the same as the run orientation
417         https://bugs.webkit.org/show_bug.cgi?id=128718
418
419         Reviewed by Darin Adler.
420
421         This is a stop-gap patch to make underlines in CJK text not look terrible. A long-term fix is to refactor
422         showGlyphsWithAdvances to move rotation logic into a common place that the text-decoration-skip: ink code
423         can use.
424
425         Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-orientation-upright.html
426
427         * rendering/InlineTextBox.cpp:
428         (WebCore::InlineTextBox::paintDecoration):
429
430 2014-02-13  Andreas Kling  <akling@apple.com>
431
432         InsertIntoTextNodeCommand should get Settings from the Frame.
433         <https://webkit.org/b/128678>
434
435         EditCommands have a frame() accessor that returns a reference,
436         so there's no need to go through Document.
437
438         Reviewed by Anders Carlsson.
439
440         * editing/InsertIntoTextNodeCommand.cpp:
441         (WebCore::InsertIntoTextNodeCommand::doApply):
442
443 2014-02-13  László Langó  <llango.u-szeged@partner.samsung.com>
444
445         Document should be constructable
446         https://bugs.webkit.org/show_bug.cgi?id=115643
447
448         Reviewed by Darin Adler.
449
450         http://www.w3.org/TR/2014/WD-dom-20140204/#interface-document
451         Make Document constructable so that one can do "new Document"
452         instead of "document.implementation.createHTMLDocument('')".
453
454         Test: fast/dom/Document/document-constructor.html
455
456         * dom/Document.cpp:
457         (WebCore::Document::create):
458         (WebCore::Document::origin):
459         * dom/Document.h:
460         * dom/Document.idl:
461
462 2014-02-13  Javier Fernandez  <jfernandez@igalia.com>
463
464         [CSS Grid Layout] Rename named areas property
465         https://bugs.webkit.org/show_bug.cgi?id=127990
466
467         Reviewed by Sergio Villar Senin.
468
469         From Blink r165891 by <rego@igalia.com>
470
471         The property 'grid-template' has been renamed to 'grid-template-areas'
472         in the last two versions of the spec.
473
474         * CMakeLists.txt:
475         * GNUmakefile.list.am:
476         * WebCore.vcxproj/WebCore.vcxproj:
477         * WebCore.vcxproj/WebCore.vcxproj.filters:
478         * WebCore.xcodeproj/project.pbxproj:
479         * css/CSSComputedStyleDeclaration.cpp:
480         (WebCore::ComputedStyleExtractor::propertyValue):
481         * css/CSSGridTemplateAreasValue.cpp: Renamed from Source/WebCore/css/CSSGridTemplateValue.cpp.
482         (WebCore::CSSGridTemplateAreasValue::CSSGridTemplateAreasValue):
483         (WebCore::stringForPosition):
484         (WebCore::CSSGridTemplateAreasValue::customCSSText):
485         * css/CSSGridTemplateAreasValue.h: Renamed from Source/WebCore/css/CSSGridTemplateValue.h.
486         (WebCore::CSSGridTemplateAreasValue::create):
487         (WebCore::CSSGridTemplateAreasValue::~CSSGridTemplateAreasValue):
488         (WebCore::CSSGridTemplateAreasValue::gridAreaMap):
489         (WebCore::CSSGridTemplateAreasValue::rowCount):
490         (WebCore::CSSGridTemplateAreasValue::columnCount):
491         * css/CSSParser.cpp:
492         (WebCore::CSSParser::parseValue):
493         (WebCore::CSSParser::parseGridTemplateAreas):
494         * css/CSSParser.h:
495         * css/CSSPropertyNames.in:
496         * css/CSSValue.cpp:
497         (WebCore::CSSValue::equals):
498         (WebCore::CSSValue::cssText):
499         (WebCore::CSSValue::destroy):
500         * css/CSSValue.h:
501         (WebCore::CSSValue::isGridTemplateAreasValue):
502         * css/StyleResolver.cpp:
503         (WebCore::StyleResolver::applyProperty):
504
505 2014-02-13  Adrian Bunk  <bunk@stusta.de>
506
507         Remove the last remnants of Maemo support
508         https://bugs.webkit.org/show_bug.cgi?id=85238
509
510         Reviewed by Ryosuke Niwa.
511
512         * plugins/npapi.h:
513
514 2014-02-13  ChangSeok Oh  <changseok.oh@collabora.com>
515
516         Support ANGLE_instanced_arrays for GLES backend.
517         https://bugs.webkit.org/show_bug.cgi?id=128579
518
519         Reviewed by Dean Jackson.
520
521         Add some APIs to Extensions3D to support ANGLE_instanced_arrays for GLES backend.
522         At the same time, drawArraysInstanced, drawElementsInstanced and vertexAttribDivisor
523         are moved from GC3DOpenGL.cpp to GC3DOpenGLCommon.cpp since they could be shareable
524         through Extensions3D.
525
526         Covered by fast/canvas/webgl/angle-instanced-arrays.html
527
528         * platform/graphics/Extensions3D.h:
529         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
530         (WebCore::Extensions3DOpenGL::drawArraysInstanced):
531         (WebCore::Extensions3DOpenGL::drawElementsInstanced):
532         (WebCore::Extensions3DOpenGL::vertexAttribDivisor):
533         * platform/graphics/opengl/Extensions3DOpenGL.h:
534         * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
535         (WebCore::Extensions3DOpenGLES::Extensions3DOpenGLES):
536         (WebCore::Extensions3DOpenGLES::drawArraysInstanced):
537         (WebCore::Extensions3DOpenGLES::drawElementsInstanced):
538         (WebCore::Extensions3DOpenGLES::vertexAttribDivisor):
539         (WebCore::Extensions3DOpenGLES::supportsExtension):
540         * platform/graphics/opengl/Extensions3DOpenGLES.h:
541         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
542         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
543         (WebCore::GraphicsContext3D::drawArraysInstanced):
544         (WebCore::GraphicsContext3D::drawElementsInstanced):
545         (WebCore::GraphicsContext3D::vertexAttribDivisor):
546         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
547
548 2014-02-13  Xabier Rodriguez Calvar  <calvaris@igalia.com>
549
550         [GTK] MEDIA_CONTROLS_SCRIPT support
551         https://bugs.webkit.org/show_bug.cgi?id=123097
552
553         Reviewed by Jer Noble.
554
555         WebKitGTK+ multimedia controls are now managed from Javascript
556         code. Apple controls are kept as common code and GTK+ ones are
557         subclassed for the specific behavior.
558
559         Both CMake and Autotools build support is provided.
560
561         * CMakeLists.txt: Added support to build the media controls
562         script and their associated files.
563         * GNUmakefile.am: Added support to generate the C++ code from the
564         Javascript.
565         * GNUmakefile.list.am: Added the media controls script associated
566         files.
567         * Modules/mediacontrols/MediaControlsHost.cpp:
568         * Modules/mediacontrols/MediaControlsHost.h:
569         * Modules/mediacontrols/MediaControlsHost.idl:
570         (WebCore::MediaControlsHost::supportsFullscreen): Added attribute
571         to know if the element supports fullscreen.
572         * Modules/mediacontrols/mediaControlsApple.js:
573         (Controller.prototype.handleWrapperMouseMove):
574         (Controller.prototype.handleWrapperMouseOut):
575         (Controller.prototype.updatePlaying): Use clear and
576         resetHideControlsTimer.
577         (Controller.prototype.clearHideControlsTimer): Added.
578         (Controller.prototype.resetHideControlsTimer): Added.
579         * Modules/mediacontrols/mediaControlsGtk.js: Added.
580         (createControls): Calls ControllerGtk.
581         (ControllerGtk): Calls the superclass.
582         (contains): Defines a function to know if an object is contained
583         in an array.
584         (ControllerGtk.prototype.inheritFrom): Copies the method of the
585         superclass that are not reimplemented in the subclass.
586         (ControllerGtk.prototype.createControls): Calls the superclass and
587         create the remaining needed elements.
588         (ControllerGtk.prototype.configureInlineControls): Configures the
589         controls.
590         (ControllerGtk.prototype.setStatusHidden): Redefined empty.
591         (ControllerGtk.prototype.updateTime): Writes the duration and
592         current position. As it was so far, current time also includes
593         duration. If current time is bigger than 0 we show that.
594         (ControllerGtk.prototype.showCurrentTime): Shows current time and
595         hides duration label (that is included in current time).
596         (ControllerGtk.prototype.handlePlay): Calls the superclass and
597         force showing the current time.
598         (ControllerGtk.prototype.handleTimeUpdate): Always update the
599         time.
600         (ControllerGtk.prototype.handleMuteButtonMouseOver): Shows the
601         volume slider.
602         (ControllerGtk.prototype.handleVolumeBoxMouseOut): Hides the
603         volume slider.
604         (ControllerGtk.prototype.addControls): Adds the enclosure instead
605         of the panel directly. Panel is, of course, part of the enclosure.
606         (ControllerGtk.prototype.updateReadyState): Shows the fullscreen
607         button only if fullscreen is supported. Sets the volume in up or
608         down mode depending on its position in the document. Updates the
609         volume.
610         (ControllerGtk.prototype.setControlsType): Creates the controls it
611         they were not created before. Unlike Apple ones, WebKitGTK+
612         fullscreen and inline controls are the same.
613         (ControllerGtk.prototype.updatePlaying): Calls the superclass and
614         shows the controls if not playing.
615         (ControllerGtk.prototype.handleCaptionButtonClicked): Redefined
616         empty. To be coherent with volume, that also shows a popup, this
617         is handled with mouseover instead of click.
618         (ControllerGtk.prototype.buildCaptionMenu): Calls the superclass
619         to build the menu, sets some listeners, centers the popup with the
620         captions button, keeps the current height and sets the style to 0,
621         which is needed to animate it.
622         (ControllerGtk.prototype.destroyCaptionMenu): Hides the caption menu.
623         (ControllerGtk.prototype.showCaptionMenu): Resets the height to
624         its original. We don't animate it with CSS because we would need
625         to specify a height in the style and we don't know it in advance.
626         (ControllerGtk.prototype.hideCaptionMenu): Sets height to 0.
627         (ControllerGtk.prototype.captionMenuTransitionEnd): When the
628         captions menu transtition ends, it is destroyed.
629         (ControllerGtk.prototype.handleCaptionButtonMouseOver): Creates
630         the caption menu and shows it.
631         (ControllerGtk.prototype.handleCaptionButtonMouseOut): Hides the
632         captions menu.
633         (ControllerGtk.prototype.handleCaptionMouseOut): Hides the
634         captions menu.
635         * PlatformGTK.cmake: Added WebCore to the target link libraries
636         and initialized the variables needed at CMakelists.txt
637         * css/mediaControlsGtk.css:
638         (audio::-webkit-media-controls-panel)
639         (video::-webkit-media-controls-panel): Added transtion based on opacity.
640         (video::-webkit-media-controls-panel): Set video opacity to 0.
641         (video::-webkit-media-controls-panel.paused): Set video opacity to 1.
642         (audio::-webkit-media-controls-panel div.mute-box): Set the same
643         style as the mute button to preserve the layout.
644         (audio::-webkit-media-controls-panel div.mute-box.hidden): Sets
645         the display to none.
646         (audio::-webkit-media-controls-mute-button)
647         (video::-webkit-media-controls-mute-button): Removed the outline
648         and the margin that is managed by the mute box now.
649         (audio::-webkit-media-controls-play-button)
650         (video::-webkit-media-controls-play-button): Removed the outline.
651         (audio::-webkit-media-controls-time-remaining-display)
652         (video::-webkit-media-controls-time-remaining-display): Removed
653         the display.
654         (audio::-webkit-media-controls-current-time-display)
655         (video::-webkit-media-controls-current-time-display): Added the
656         display block.
657         (video::-webkit-media-controls-time-remaining-display): Set
658         display none.
659         (video::-webkit-media-controls-time-remaining-display.show): Set
660         display block.
661         (video::-webkit-media-controls-time-remaining-display.hidden): Set
662         display none.
663         (audio::-webkit-media-controls-timeline)
664         (video::-webkit-media-controls-timeline): Removed outline.
665         (audio::-webkit-media-controls-volume-slider-container)
666         (video::-webkit-media-controls-volume-slider-container): Set
667         overflow hidden and set a transition by height.
668         (video::-webkit-media-controls-volume-slider-container.hidden):
669         Set height 0.
670         (video::-webkit-media-controls-volume-slider-container.down): Set
671         bottom to be below the panel. Changed the border radius and
672         transition accordingly.
673         (video::-webkit-media-controls-panel .hidden.down): Sets default
674         bottom as 0.
675         (audio::-webkit-media-controls-volume-slider)
676         (video::-webkit-media-controls-volume-slider): Removed the outline.
677         (audio::-webkit-media-controls-toggle-closed-captions-button)
678         (video::-webkit-media-controls-toggle-closed-captions-button):
679         Removed the background that is painted from C++ and removed the
680         outline.
681         (video::-webkit-media-controls-closed-captions-container):
682         (video::-webkit-media-controls-closed-captions-container h3):
683         (video::-webkit-media-controls-closed-captions-container ul):
684         (video::-webkit-media-controls-closed-captions-container li):
685         (video::-webkit-media-controls-closed-captions-container li.selected): Changed
686         the style to make it more coherent with the rest of the controls.
687         (audio::-webkit-media-controls-fullscreen-button)
688         (video::-webkit-media-controls-fullscreen-button): Removed the outline.
689         (audio::-webkit-media-controls-panel button.hidden): Sets the
690         display to none.
691         * html/HTMLMediaElement.cpp: UserAgentScripts.h is not needed here
692         and build cmake build would need for changes to get this compiled.
693         * platform/gtk/RenderThemeGtk.cpp:
694         (WebCore::nodeHasPseudo): Added. Checks if a node has a certain
695         pseudo.
696         (WebCore::nodeHasClass): Added. Checks if a node has a certain
697         class.
698         (WebCore::supportsFocus): Removed some element types as outline is
699         now handled in CSS.
700         (WebCore::RenderThemeGtk::paintMediaPlayButton): Checks if the
701         play button has the class paused to show the play icon instead of
702         the pause one.
703         (WebCore::RenderThemeGtk::paintMediaToggleClosedCaptionsButton):
704         Added. Paints the captions icon.
705         (WebCore::RenderThemeGtk::mediaControlsScript): Added. Loads the
706         bundled scripts.
707         * platform/gtk/RenderThemeGtk.h: Added the mediaControlsScript
708         method and declared the redefinition of the method to play the
709         captions icon.
710
711 2014-02-11  Alexey Proskuryakov  <ap@apple.com>
712
713         Don't crash when SerializedScriptValue deserialization fails
714         https://bugs.webkit.org/show_bug.cgi?id=128657
715
716         Reviewed by Oliver Hunt.
717
718         Test: crypto/subtle/postMessage-worker.html
719
720         * bindings/js/JSMessageEventCustom.cpp: (WebCore::JSMessageEvent::data): Added a FIXME.
721
722         * bindings/js/SerializedScriptValue.cpp:
723         (WebCore::CloneBase::fail): Don't assert on failure.
724         (WebCore::SerializedScriptValue::deserialize): Never return a null JSValue, these
725         are not allowed.
726
727 2014-02-12  Bem Jones-Bey  <bjonesbe@adobe.com>
728
729         [CSS Shapes] Rename shapeSize and others to make ShapeInfo and friends easier to understand
730         https://bugs.webkit.org/show_bug.cgi?id=128685
731
732         Reviewed by Alexandru Chiculita.
733
734         The ShapeInfo hierarchy has grown organically as the spec has changed,
735         and the naming has become very stale and confusing. The spec is now in
736         Last Call, so it seems like a good time to take a stab towards better
737         naming that matches the spec terminology and is also more consistent
738         in general.
739
740         No new tests, no behavior change.
741
742         * rendering/RenderBlock.cpp:
743         (WebCore::RenderBlock::imageChanged): Use new names.
744         (WebCore::RenderBlock::updateShapeInsideInfoAfterStyleChange): Ditto.
745         (WebCore::shapeInfoRequiresRelayout): Ditto.
746         (WebCore::RenderBlock::computeShapeSize): Ditto.
747         (WebCore::RenderBlock::updateShapesAfterBlockLayout): Ditto.
748         * rendering/RenderBlock.h:
749         (WebCore::RenderBlock::logicalSizeForChild): This method makes it much
750             cleaner to set the reference box size.
751         * rendering/RenderBlockFlow.cpp:
752         (WebCore::RenderBlockFlow::positionNewFloats): Use new names.
753         * rendering/RenderBox.cpp:
754         (WebCore::RenderBox::updateShapeOutsideInfoAfterStyleChange): Ditto.
755         (WebCore::RenderBox::imageChanged): Ditto.
756         * rendering/shapes/ShapeInfo.cpp:
757         (WebCore::getShapeImageMarginRect): Rename variables.
758         (WebCore::ShapeInfo<RenderType>::computedShape): More renames.
759         * rendering/shapes/ShapeInfo.h:
760         (WebCore::ShapeInfo::setReferenceBoxLogicalSize): Renamed from
761             setShapeSize.
762         (WebCore::ShapeInfo::logicalLineTop): Use new names.
763         (WebCore::ShapeInfo::logicalLineBottom): Ditto.
764         (WebCore::ShapeInfo::shapeContainingBlockLogicalHeight): Ditto.
765         (WebCore::ShapeInfo::markShapeAsDirty): Renamed from dirtyShapeSize.
766         (WebCore::ShapeInfo::isShapeDirty): Renamed from shapeSizeDirty.
767         (WebCore::ShapeInfo::referenceBoxLogicalSize): Renamed from shapeSize.
768         (WebCore::ShapeInfo::logicalTopOffset): Use new names.
769         (WebCore::ShapeInfo::logicalLeftOffset): Ditto.
770         * rendering/shapes/ShapeInsideInfo.cpp:
771         (WebCore::ShapeInsideInfo::updateSegmentsForLine): Ditto.
772         (WebCore::ShapeInsideInfo::adjustLogicalLineTop): Ditto.
773         (WebCore::ShapeInsideInfo::computeFirstFitPositionForFloat): Ditto.
774         * rendering/shapes/ShapeInsideInfo.h:
775         * rendering/shapes/ShapeOutsideInfo.cpp:
776         (WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine): Ditto.
777         * rendering/shapes/ShapeOutsideInfo.h:
778
779 2014-02-12  Brent Fulgham  <bfulgham@apple.com>
780
781         REGRESSION: Crashing/Broken Tests Due To Unexpected 8-bit Character Data
782         https://bugs.webkit.org/show_bug.cgi?id=128698
783
784         Reviewed by Tim Horton.
785
786         * platform/graphics/win/UniscribeController.cpp:
787         (WebCore::UniscribeController::advance): Make 16-bit copy when needed.
788         (WebCore::UniscribeController::shapeAndPlaceItem): Handle 8-bit case when checking
789         for word boundaries.
790
791 2014-02-12  Benjamin Poulain  <bpoulain@apple.com>
792
793         Document::childrenChanged does not necessarily have a page
794
795         Rubber stamped by Enrica Casucci.
796
797         * dom/Document.cpp:
798         (WebCore::Document::childrenChanged):
799
800 2014-02-12  Timothy Hatcher  <timothy@apple.com>
801
802         Add a missing ": " between the URL and exception in STDOUT logs.
803
804         https://bugs.webkit.org/show_bug.cgi?id=128689
805
806         Reviewed by Joseph Pecoraro.
807
808         * page/PageConsole.cpp:
809         (WebCore::PageConsole::addMessage): Print ": " after calling
810         printSourceURLAndPosition now that it does not print it for us.
811
812 2014-02-12  Enrica Casucci  <enrica@apple.com>
813
814         WK2: coordinate mapping for frames does not work when the page is scrolled.
815         https://bugs.webkit.org/show_bug.cgi?id=128690
816         <rdar://problem/16042925>
817
818         Reviewed by Simon Fraser.
819
820         We should not apply the scroll offset when using delegate scrolling.
821
822         * platform/ScrollView.cpp:
823         (WebCore::ScrollView::rootViewToContents):
824         (WebCore::ScrollView::contentsToRootView):
825         (WebCore::ScrollView::rootViewToTotalContents):
826
827 2014-02-12  Joseph Pecoraro  <pecoraro@apple.com>
828
829         Web Inspector: Rename PageInjectedScript* to WebInjectedScript*
830         https://bugs.webkit.org/show_bug.cgi?id=128660
831
832         Reviewed by Timothy Hatcher.
833
834         Rename the files update build systems and users.
835
836         * CMakeLists.txt:
837         * GNUmakefile.list.am:
838         * WebCore.vcxproj/WebCore.vcxproj:
839         * WebCore.vcxproj/WebCore.vcxproj.filters:
840         * WebCore.xcodeproj/project.pbxproj:
841         * inspector/CommandLineAPIModule.cpp:
842         (WebCore::CommandLineAPIModule::host):
843         * inspector/InspectorAllInOne.cpp:
844         * inspector/InspectorController.cpp:
845         (WebCore::InspectorController::InspectorController):
846         * inspector/InspectorController.h:
847         * inspector/InspectorHeapProfilerAgent.cpp:
848         (WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
849         * inspector/InspectorHeapProfilerAgent.h:
850         * inspector/InspectorProfilerAgent.cpp:
851         (WebCore::PageProfilerAgent::PageProfilerAgent):
852         (WebCore::InspectorProfilerAgent::create):
853         (WebCore::WorkerProfilerAgent::WorkerProfilerAgent):
854         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
855         * inspector/InspectorProfilerAgent.h:
856         * inspector/PageConsoleAgent.cpp:
857         (WebCore::PageConsoleAgent::PageConsoleAgent):
858         (WebCore::PageConsoleAgent::addInspectedNode):
859         * inspector/PageConsoleAgent.h:
860         * inspector/WebConsoleAgent.cpp:
861         (WebCore::WebConsoleAgent::WebConsoleAgent):
862         (WebCore::WebConsoleAgent::frameWindowDiscarded):
863         (WebCore::WebConsoleAgent::addInspectedHeapObject):
864         * inspector/WebConsoleAgent.h:
865         * inspector/WebInjectedScriptHost.cpp: Renamed from Source/WebCore/inspector/PageInjectedScriptHost.cpp.
866         (WebCore::WebInjectedScriptHost::type):
867         (WebCore::WebInjectedScriptHost::isHTMLAllCollection):
868         * inspector/WebInjectedScriptHost.h: Renamed from Source/WebCore/inspector/PageInjectedScriptHost.h.
869         * inspector/WebInjectedScriptManager.cpp: Renamed from Source/WebCore/inspector/PageInjectedScriptManager.cpp.
870         (WebCore::WebInjectedScriptManager::WebInjectedScriptManager):
871         (WebCore::WebInjectedScriptManager::disconnect):
872         (WebCore::WebInjectedScriptManager::didCreateInjectedScript):
873         (WebCore::WebInjectedScriptManager::discardInjectedScriptsFor):
874         * inspector/WebInjectedScriptManager.h: Renamed from Source/WebCore/inspector/PageInjectedScriptManager.h.
875         * inspector/WorkerConsoleAgent.cpp:
876         (WebCore::WorkerConsoleAgent::WorkerConsoleAgent):
877         * inspector/WorkerConsoleAgent.h:
878         * inspector/WorkerInspectorController.cpp:
879         (WebCore::WorkerInspectorController::WorkerInspectorController):
880         * inspector/WorkerInspectorController.h:
881
882 2014-02-12  Brent Fulgham  <bfulgham@apple.com>
883
884         Unreviewed iOS Build fix after r163975.
885
886         * page/EventHandler.cpp: Use wheel event stubs if !PLATFORM(MAC) || PLATFORM(IOS).
887
888 2014-02-12  Gavin Barraclough  <barraclough@apple.com>
889
890         Clean up PageThrottler interface
891         https://bugs.webkit.org/show_bug.cgi?id=128677
892
893         Reviewed by Benjamin Poulain.
894
895         Currently, responsibility for throttling DOM timers & suspending animations is split
896         between the Page & the PageThrottler. Clarify by making Page responsible for suspending
897         animations (PageThrottler is now purely related to aspects of timer throttling), and
898         move all timer throttling policy to the PageThrottler, with a single function on Page to
899         enable (Page::setTimerThrottlingEnabled).
900
901         Also, transmit the full ViewState to the PageThrottler (not just the IsVisuallyIdle flag),
902         and distinguish between media & page-load activity.
903
904         * WebCore.exp.in:
905             - removed setDOMTimerAlignmentInterval.
906         * html/HTMLMediaElement.cpp:
907         (WebCore::HTMLMediaElement::parseAttribute):
908             - createActivityToken -> mediaActivityToken
909         * loader/FrameLoader.cpp:
910         (WebCore::FrameLoader::started):
911             - createActivityToken -> pageLoadActivityToken
912         * page/Page.cpp:
913         (WebCore::Page::Page):
914             - added m_timerThrottlingEnabled, made PageThrottler a member
915         (WebCore::Page::setIsVisuallyIdleInternal):
916             - update animiation suspension.
917         (WebCore::Page::setTimerThrottlingEnabled):
918             - setTimerAlignmentInterval -> setTimerThrottlingEnabled
919         (WebCore::Page::setViewState):
920             - pass viewState to PageThrottler.
921         (WebCore::Page::setIsVisibleInternal):
922             - don't update timer throttling.
923         * page/Page.h:
924         (WebCore::Page::pageThrottler):
925             - made PageThrottler a member.
926         (WebCore::Page::timerAlignmentInterval):
927             - inlined.
928         * page/PageThrottler.cpp:
929         (WebCore::PageThrottler::PageThrottler):
930             - initialize ViewState.
931         (WebCore::PageThrottler::~PageThrottler):
932             - clean up by calling setTimerThrottlingEnabled directly.
933         (WebCore::PageThrottler::hiddenPageDOMTimerThrottlingStateChanged):
934             - moved from Page.
935         (WebCore::PageThrottler::mediaActivityToken):
936         (WebCore::PageThrottler::pageLoadActivityToken):
937             - from Page::createActivityToken
938         (WebCore::PageThrottler::throttlePage):
939         (WebCore::PageThrottler::unthrottlePage):
940             - don't throttle animations here.
941         (WebCore::PageThrottler::setViewState):
942         (WebCore::PageThrottler::setIsVisible):
943             - added, throttle Dom timers.
944         * page/PageThrottler.h:
945         * page/Settings.cpp:
946         (WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled):
947             - removed setDOMTimerAlignmentInterval, hiddenPageDOMTimerThrottlingStateChanged moved to PageThrottler.
948         * page/Settings.h:
949             - removed setDOMTimerAlignmentInterval.
950
951 2014-02-12  Benjamin Poulain  <bpoulain@apple.com>
952
953         [WK2][iOS] Add back the special viewport for the old xhtml mobile doctype
954         https://bugs.webkit.org/show_bug.cgi?id=128639
955
956         Reviewed by Andreas Kling.
957
958         * WebCore.exp.in:
959         * dom/Document.cpp:
960         (WebCore::Document::childrenChanged):
961         Document::setDocType() has been removed and the doctype update code with it.
962         Add a call to didReceiveDocType() to ensure the viewport is updated when the doctype is parsed.
963
964         * loader/EmptyClients.h:
965         * page/Chrome.cpp:
966         (WebCore::Chrome::didReceiveDocType):
967         * page/ChromeClient.h:
968         * page/ViewportConfiguration.cpp:
969         (WebCore::ViewportConfiguration::xhtmlMobileParameters):
970         * page/ViewportConfiguration.h:
971
972 2014-02-12  Alexey Proskuryakov  <ap@apple.com>
973
974         Mountain Lion build fix.
975
976         * WebCore.exp.in: Only export WebCrypto symbols on 10.9+, because SUBTLE_CRYPTO
977         is not enabled on 10.8.
978
979 2014-02-12  Alexey Proskuryakov  <ap@apple.com>
980
981         Wrap WebCrypto keys in SerializedScriptValue
982         https://bugs.webkit.org/show_bug.cgi?id=128680
983
984         Reviewed by Anders Carlsson.
985
986         Test: crypto/subtle/rsa-indexeddb.html
987
988         Added Mac code to wrap a key with AES-GCM. We then serialize it into a plist,
989         because more custom formats would be crazy (even the custom format in SerializedScriptValue
990         makes me nervous, we'll certainly need to change CryptoKey in the future).
991
992         * WebCore.exp.in:
993         * WebCore.xcodeproj/project.pbxproj:
994         * crypto/CommonCryptoUtilities.h:
995         * crypto/SerializedCryptoKeyWrap.h: Added.
996         * crypto/mac/SerializedCryptoKeyWrapMac.mm: Added.
997         (WebCore::vectorFromNSData):
998         (WebCore::wrapSerializedCryptoKey):
999         (WebCore::unwrapSerializedCryptoKey):
1000
1001 2014-02-12  Brent Fulgham  <bfulgham@apple.com>
1002
1003         Wheel events don't latch to inner scrollable elements 
1004         https://bugs.webkit.org/show_bug.cgi?id=128225
1005         <rdar://problem/12183688>
1006
1007         Reviewed by Simon Fraser
1008
1009         * WebCore.exp.in: Add declarations for new scrolledToTop, scrolledToBottom, scrolledToLeft, and scrolledToRight.
1010         * page/EventHandler.cpp:
1011         (WebCore::EventHandler::EventHandler):
1012         (WebCore::EventHandler::clear):
1013         (WebCore::findScrollableContainer): New helper function to locate first node
1014         in enclosing region of document that is capable of handling mouse wheel events.
1015         (WebCore::isAtMaxDominantScrollPosition): Predicate to check if the scrollable
1016         area is at the limit we will hit based on scroll direction.
1017         (WebCore::EventHandler::handleWheelEvent): Identify the case where we have hit
1018         the end of a scroll, and treat that as a valid 'handled' case. If the scroll event
1019         is just starting, treat end-of-scroll as unhandled so the parent element can
1020         handle things.
1021         * page/EventHandler.h:
1022         * page/scrolling/ScrollingTree.cpp:
1023         (WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Use new methods
1024         on the PlatformWheelEvent class.
1025         (WebCore::ScrollingTree::setOrClearLatchedNode): Ditto
1026         * platform/PlatformWheelEvent.h:
1027         (WebCore::PlatformWheelEvent::shouldConsiderLatching): Moved implementation from ScrollingTree.
1028         (WebCore::PlatformWheelEvent::shouldClearLatchedNode): Ditto
1029         * platform/ScrollableArea.cpp:
1030         (WebCore::ScrollableArea::scrolledToTop): Added
1031         (WebCore::ScrollableArea::scrolledToBottom):Added
1032         (WebCore::ScrollableArea::scrolledToLeft): Added
1033         (WebCore::ScrollableArea::scrolledToRight): Added
1034         * platform/ScrollableArea.h:
1035         * rendering/RenderListBox.cpp:
1036         (WebCore::RenderListBox::scrolledToTop): Added
1037         (WebCore::RenderListBox::scrolledToBottom): Added
1038         (WebCore::RenderListBox::scrolledToLeft): Added
1039         (WebCore::RenderListBox::scrolledToRight): Added
1040         * rendering/RenderListBox.h: Changed to public inheritance of ScrollableArea to
1041         allow generic use of this type in scroll wheel logic.
1042
1043 2014-02-12  Brendan Long  <b.long@cablelabs.com>
1044
1045         Implement DataCue for metadata cues
1046         https://bugs.webkit.org/show_bug.cgi?id=128402
1047
1048         Reviewed by Eric Carlson.
1049
1050         Test: media/track/track-datacue.html
1051
1052         * CMakeLists.txt: Add DataCue.
1053         * DerivedSources.cpp: Add JSDataCue.
1054         * DerivedSources.make: Same.
1055         * GNUmakefile.list.am: Add DataCue and JSDataCue.
1056         * WebCore.vcxproj/WebCore.vcxproj: Add DataCue.
1057         * WebCore.vcxproj/WebCore.vcxproj.filters: Same.
1058         * WebCore.xcodeproj/project.pbxproj: Add DataCue and JSDataCue.
1059         * bindings/js/JSTextTrackCueCustom.cpp:
1060         (WebCore::toJS): Add DataCue wrapper.
1061         * html/track/DataCue.cpp: Copied from Source/WebCore/html/track/TextTrack.idl.
1062         * html/track/DataCue.h: Copied from Source/WebCore/html/track/TextTrack.idl.
1063         * html/track/DataCue.idl: Copied from Source/WebCore/html/track/TextTrack.idl.
1064         * html/track/InbandGenericTextTrack.cpp:
1065         (WebCore::InbandGenericTextTrack::addGenericCue): Pass ASSERT_NO_EXCEPTION to addCue().
1066         * html/track/InbandWebVTTTextTrack.cpp:
1067         (WebCore::InbandWebVTTTextTrack::newCuesParsed): Same.
1068         * html/track/TextTrack.cpp:
1069         (WebCore::TextTrack::addCue): Throw an exception if DataCue is added to a track that isn't kind="metadata".
1070         * html/track/TextTrack.h: Add exception code parameter to addCue().
1071         * html/track/TextTrack.idl: Add [RaisesException] to addCue().
1072         * html/track/TextTrackCue.h: Add Data CueType.
1073
1074 2014-02-12  Zalan Bujtas  <zalan@apple.com>
1075
1076         Subpixel layout: Clean up LayoutPoint class.
1077         https://bugs.webkit.org/show_bug.cgi?id=128515
1078
1079         Reviewed by Simon Fraser.
1080
1081         Remove redundant functions (keep the more explicit ones).
1082
1083         No change in functionality.
1084
1085         * page/FrameView.cpp:
1086         (WebCore::FrameView::viewportConstrainedVisibleContentRect):
1087         * platform/graphics/LayoutPoint.h:
1088         (WebCore::toLayoutPoint):
1089         (WebCore::toLayoutSize):
1090         (WebCore::roundedIntPoint):
1091         * platform/graphics/ca/GraphicsLayerCA.cpp:
1092         (WebCore::GraphicsLayerCA::updateContentsRects):
1093         * rendering/LayoutState.cpp:
1094         (WebCore::LayoutState::LayoutState):
1095         * rendering/RenderBlock.cpp:
1096         (WebCore::RenderBlock::addFocusRingRects):
1097         * rendering/RenderBox.cpp:
1098         (WebCore::RenderBox::offsetFromContainer):
1099         * rendering/RenderInline.cpp:
1100         (WebCore::RenderInline::addFocusRingRects):
1101         * rendering/RenderLayer.cpp:
1102         (WebCore::RenderLayer::updateLayerPosition):
1103         (WebCore::accumulateOffsetTowardsAncestor):
1104         (WebCore::RenderLayer::paintBackgroundForFragments):
1105         (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
1106         (WebCore::RenderLayer::paintOutlineForFragments):
1107         (WebCore::RenderLayer::paintMaskForFragments):
1108         (WebCore::RenderLayer::paintOverflowControlsForFragments):
1109         * rendering/RenderScrollbarPart.cpp:
1110         (WebCore::RenderScrollbarPart::paintIntoRect):
1111
1112 2014-02-12  Zan Dobersek  <zdobersek@igalia.com>
1113
1114         [CoordinatedGraphics] Move CoordinatedGraphicsScene, CoordinatedLayerTreeHostProxy to std::function
1115         https://bugs.webkit.org/show_bug.cgi?id=128473
1116
1117         Reviewed by Anders Carlsson.
1118
1119
1120         Move the CoordinatedGraphicsScene class to using std::function instead of WTF::Functional and std::bind
1121         instead of WTF::bind. The function wrapper is now moved through function calls and not passed by reference,
1122         and lambda functions are inlined into the dispatchOnMainThread() calls, with the CoordinatedGraphicsScene
1123         refcount-protected.
1124
1125         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
1126         (WebCore::CoordinatedGraphicsScene::dispatchOnMainThread):
1127         (WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
1128         (WebCore::CoordinatedGraphicsScene::commitSceneState):
1129         (WebCore::CoordinatedGraphicsScene::syncRemoteContent):
1130         (WebCore::CoordinatedGraphicsScene::purgeGLResources):
1131         (WebCore::CoordinatedGraphicsScene::commitScrollOffset):
1132         (WebCore::CoordinatedGraphicsScene::appendUpdate):
1133         (WebCore::CoordinatedGraphicsScene::setActive):
1134         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
1135
1136 2014-02-12  Eric Carlson  <eric.carlson@apple.com>
1137
1138         Cleanup the code added for https://bugs.webkit.org/show_bug.cgi?id=128125.
1139
1140         Not reviewed.
1141
1142         * html/HTMLMediaSession.cpp:
1143         (WebCore::restrictionName): Don't need a "break" after a "return" in a case statement.
1144         * platform/audio/MediaSession.cpp:
1145         (WebCore::stateName): Ditto.
1146         * platform/audio/ios/MediaSessionManagerIOS.mm:
1147
1148 2014-02-12  Andreas Kling  <akling@apple.com>
1149
1150         RenderNamedFlowThread should only support RenderElement children.
1151         <https://webkit.org/b/128675>
1152
1153         Tighten up flow-thread rendering so that it only supports element
1154         children directly. This means we don't have to worry about text
1155         renderers on this code path.
1156
1157         Reviewed by Antti Koivisto.
1158
1159         * rendering/RenderElement.cpp:
1160         (WebCore::RenderElement::insertedIntoTree):
1161         (WebCore::RenderElement::willBeRemovedFromTree):
1162         (WebCore::RenderElement::willBeDestroyed):
1163         * rendering/RenderNamedFlowThread.cpp:
1164         (WebCore::RenderNamedFlowThread::nextRendererForElement):
1165         (WebCore::RenderNamedFlowThread::addFlowChild):
1166         (WebCore::RenderNamedFlowThread::removeFlowChild):
1167         * rendering/RenderNamedFlowThread.h:
1168         * rendering/RenderObject.cpp:
1169         (WebCore::RenderObject::willBeDestroyed):
1170         (WebCore::RenderObject::insertedIntoTree):
1171         (WebCore::RenderObject::willBeRemovedFromTree):
1172         * style/StyleResolveTree.cpp:
1173         (WebCore::Style::createRendererIfNeeded):
1174
1175 2014-02-12  Joseph Pecoraro  <pecoraro@apple.com>
1176
1177         Web Inspector: Modernize missed inspector files
1178         https://bugs.webkit.org/show_bug.cgi?id=128661
1179
1180         Reviewed by Anders Carlsson.
1181
1182         Add final, override, and use nullptr where appropriate.
1183
1184         * inspector/InspectorCSSAgent.cpp:
1185         (WebCore::InspectorCSSAgent::asCSSStyleRule):
1186         (WebCore::InspectorCSSAgent::discardAgent):
1187         (WebCore::InspectorCSSAgent::disable):
1188         (WebCore::InspectorCSSAgent::getInlineStylesForNode):
1189         (WebCore::InspectorCSSAgent::getComputedStyleForNode):
1190         (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
1191         (WebCore::InspectorCSSAgent::elementForId):
1192         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
1193         (WebCore::InspectorCSSAgent::assertStyleSheetForId):
1194         (WebCore::InspectorCSSAgent::buildObjectForRule):
1195         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
1196         * inspector/InspectorFrontendClientLocal.h:
1197
1198 2014-02-11  Brent Fulgham  <bfulgham@apple.com>
1199
1200         Remove some unintended copies in ranged for loops
1201         https://bugs.webkit.org/show_bug.cgi?id=128644
1202
1203         Reviewed by Anders Carlsson.
1204
1205         * css/StyleResolver.cpp:
1206         (WebCore::StyleResolver::loadPendingSVGDocuments): Avoid creating/destroying
1207         RefPtrs in loop.
1208
1209 2014-02-12  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
1210
1211         Update the HTML Media Capture implementation.
1212         https://bugs.webkit.org/show_bug.cgi?id=118465
1213
1214         Reviewed by Darin Adler.
1215
1216         Make the implementation in WebKit compatible with the 2013-05-09
1217         version of the spec, which makes the "capture" attribute a boolean
1218         instead of an enum.
1219
1220         Covered by fast/forms/file/file-input-capture.html.
1221
1222         * html/FileInputType.cpp:
1223         (WebCore::FileInputType::handleDOMActivateEvent):
1224         * html/HTMLInputElement.cpp:
1225         (WebCore::HTMLInputElement::capture): Renamed to shouldUseMediaCapture().
1226         (WebCore::HTMLInputElement::shouldUseMediaCapture): Return a bool.
1227         * html/HTMLInputElement.h:
1228         * html/HTMLInputElement.idl: Turn the `capture' attribute into a
1229         reflective boolean instead of a DOMString.
1230         * platform/FileChooser.h:
1231
1232 2014-02-12  Radu Stavila  <stavila@adobe.com>
1233
1234         [CSS Regions] Remove unused method in RenderFlowThread
1235         https://bugs.webkit.org/show_bug.cgi?id=128373
1236
1237         Reviewed by Mihnea Ovidenie.
1238
1239         After the landing of https://bugs.webkit.org/show_bug.cgi?id=118665, the 
1240         RenderFlowThread::computeRegionClippingRect method is obsolete.
1241
1242         No new tests needed, this patch only removes an unused method.
1243
1244         * rendering/RenderFlowThread.cpp:
1245         * rendering/RenderFlowThread.h:
1246
1247 2014-02-12  Mihai Tica  <mitica@adobe.com>
1248
1249         [CSS Element Blending] Implement the software path of -webkit-blend-mode with Core Graphics.
1250         https://bugs.webkit.org/show_bug.cgi?id=99119
1251
1252         Reviewed by Simon Fraser.
1253
1254         This patch adds support for -webkit-blend-mode with Core Graphics.
1255         The layer promotion code that forced compositing when blending was detected has been removed.
1256         Remaining work for the software path is to detect and implement isolation of the blending operation:
1257         as stated in the spec, blending should be limited to the parent stacking context.
1258
1259         Tests: css3/compositing/blend-mode-blended-element-overlapping-composited-sibling-should-have-compositing-layer.html
1260                css3/compositing/blend-mode-parent-of-composited-blended-has-layer.html
1261                css3/compositing/blend-mode-simple-composited.html
1262                css3/compositing/blend-mode-with-composited-descendant-should-have-layer.html
1263
1264         * inspector/InspectorLayerTreeAgent.cpp:
1265         (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer): Remove CompositingReasonBlending.
1266         * rendering/RenderLayer.cpp:
1267         (WebCore::RenderLayer::beginTransparencyLayers): Set the blendMode on the GraphicsContext.
1268         * rendering/RenderLayer.h: paintsWithTransparency should return true when a blendMode is set.
1269         * rendering/RenderLayerCompositor.cpp: Remove promotion code when a blendMode is detected.
1270         (WebCore::RenderLayerCompositor::requiresCompositingLayer): Remove CompositingReasonBlending reason.
1271         (WebCore::RenderLayerCompositor::requiresOwnBackingStore): Remove CompositingReasonBlending reason.
1272         (WebCore::RenderLayerCompositor::reasonsForCompositing): Remove CompositingReasonBlending reason.
1273         (WebCore::RenderLayerCompositor::logReasonsForCompositing): Remove CompositingReasonBlending reason.
1274         * rendering/RenderLayerCompositor.h:
1275         - Remove the requiresCompositingForBlending method
1276         - Remove the CompositingReasonBlending from the CompositingReasons enum.
1277
1278 2014-02-11  Zalan Bujtas  <zalan@apple.com>
1279
1280         Subpixel rendering: Switch repaint rect from IntRect to LayoutRect to be able to
1281         repaint on device pixel boundaries.
1282         https://bugs.webkit.org/show_bug.cgi?id=128477
1283
1284         Reviewed by Simon Fraser.
1285
1286         RenderLayer needs to be able to repaint on device pixel boundaries. RenderView still
1287         repaints on integral position.
1288
1289         No change in functionality.
1290
1291         * rendering/RenderBlockLineLayout.cpp:
1292         (WebCore::RenderBlockFlow::layoutRunsAndFloats):
1293         * rendering/RenderElement.cpp:
1294         (WebCore::RenderElement::repaintAfterLayoutIfNeeded):
1295         * rendering/RenderLayer.cpp:
1296         (WebCore::RenderLayer::updateLayerPositions):
1297         (WebCore::RenderLayer::clearRepaintRects):
1298         (WebCore::RenderLayer::scrollTo):
1299         (WebCore::RenderLayer::calculateClipRects):
1300         * rendering/RenderLayerBacking.cpp:
1301         (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
1302         * rendering/RenderLayerBacking.h:
1303         * rendering/RenderObject.cpp:
1304         (WebCore::RenderObject::repaintUsingContainer):
1305         (WebCore::RenderObject::repaint):
1306         (WebCore::RenderObject::repaintRectangle):
1307         * rendering/RenderObject.h:
1308
1309 2014-02-11  Dan Bernstein  <mitz@apple.com>
1310
1311         iOS build fix fix.
1312
1313         * rendering/RenderElement.cpp:
1314         (WebCore::shouldRepaintForImageAnimation):
1315
1316 2014-02-11  Dan Bernstein  <mitz@apple.com>
1317
1318         iOS build fix.
1319
1320         * rendering/RenderElement.cpp:
1321         (WebCore::shouldRepaintForImageAnimation):
1322
1323 2014-02-11  David Kilzer  <ddkilzer@apple.com>
1324
1325         ContentData equals() methods are not inline-able
1326         <http://webkit.org/b/128538>
1327
1328         Reviewed by Darin Adler.
1329
1330         Get rid of pure virtual equals() method in favor of
1331         ContentData::Type enum for runtime type information.
1332         This also lets us devirtualize the isFoo() methods.
1333
1334         * rendering/style/ContentData.h:
1335         (WebCore::ContentData::type): Add.
1336         (WebCore::ContentData::isCounter): Devirtualize.
1337         (WebCore::ContentData::isImage): Devirtualize.
1338         (WebCore::ContentData::isQuote): Devirtualize.
1339         (WebCore::ContentData::isText): Devirtualize.
1340         (WebCore::ContentData::ContentData): Add.  Include
1341         ContentData::Type parameter.
1342         (WebCore::operator==): Add overloaded methods for each subclass.
1343         Stop using pure virtual equals() method, check type(), and use
1344         overloaded subclass operator==() methods.
1345         (WebCore::operator!=): Add overloaded methods for each subclass.
1346
1347 2014-02-11  Andreas Kling  <akling@apple.com>
1348
1349         Protect some RenderFlowThread functions.
1350         <https://webkit.org/b/128642>
1351
1352         Make the RenderFlowThread constructor protected and a handful of
1353         member functions private.
1354
1355         Reviewed by Anders Carlsson.
1356
1357         * rendering/RenderFlowThread.h:
1358
1359 2014-02-11  Andreas Kling  <akling@apple.com>
1360
1361         Don't allocate RenderNamedFlowThread's child list separately.
1362         <https://webkit.org/b/128640>
1363
1364         Since we always create the flow-thread child list, there's no reason
1365         to put it in a separate heap allocation. Also remove the typedef and
1366         use auto instead.
1367
1368         Reviewed by Anders Carlsson.
1369
1370         * rendering/RenderNamedFlowThread.cpp:
1371         (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
1372         (WebCore::RenderNamedFlowThread::nextRendererForNode):
1373         (WebCore::RenderNamedFlowThread::addFlowChild):
1374         (WebCore::RenderNamedFlowThread::removeFlowChild):
1375         * rendering/RenderNamedFlowThread.h:
1376
1377 2014-02-11  Zalan Bujtas  <zalan@apple.com>
1378
1379         Subpixel rendering: Make GraphicsLayerClient::paintContents's clip rect subpixel based.
1380         https://bugs.webkit.org/show_bug.cgi?id=128460
1381
1382         Reviewed by Simon Fraser.
1383
1384         GraphicsClient::paintContents takes clipRect as FloatRect now so that we can paint on
1385         subpixel position.
1386
1387         No change in functionality.
1388
1389         * platform/graphics/GraphicsLayerClient.h:
1390         * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
1391         (WebCore::CompositingCoordinator::paintContents):
1392         * platform/graphics/texmap/coordinated/CompositingCoordinator.h:
1393         * rendering/RenderLayer.cpp:
1394         (WebCore::cornerRect):
1395         (WebCore::RenderLayer::scrollCornerRect):
1396         (WebCore::resizerCornerRect):
1397         (WebCore::RenderLayer::scrollCornerAndResizerRect):
1398         (WebCore::RenderLayer::verticalScrollbarStart):
1399         (WebCore::RenderLayer::horizontalScrollbarStart):
1400         (WebCore::RenderLayer::paintResizer):
1401         (WebCore::RenderLayer::hitTestOverflowControls):
1402         * rendering/RenderLayer.h:
1403         * rendering/RenderLayerBacking.cpp:
1404         (WebCore::RenderLayerBacking::paintIntoLayer):
1405         (WebCore::RenderLayerBacking::paintContents):
1406         * rendering/RenderLayerBacking.h:
1407         * rendering/RenderLayerCompositor.cpp:
1408         (WebCore::RenderLayerCompositor::paintContents):
1409         * rendering/RenderLayerCompositor.h:
1410         * rendering/RenderWidget.cpp:
1411         (WebCore::RenderWidget::paint):
1412
1413 2014-02-11  Antti Koivisto  <antti@apple.com>
1414
1415         GIF animations should be suspended when outside of viewport
1416         https://bugs.webkit.org/show_bug.cgi?id=128632
1417
1418         Reviewed by Andreas Kling.
1419         
1420         Animations are driven by the paint cycle. Speculative tiles keep animations outside the actual viewport going.
1421         
1422         Pause animations when they are outside the viewport by not painting them.
1423
1424         Test: fast/repaint/no-animation-outside-viewport.html
1425
1426         * loader/cache/CachedImage.cpp:
1427         (WebCore::CachedImage::animationAdvanced):
1428         
1429             Call animation specific newImageAnimationFrameAvailable instead of the generic notifyObservers.
1430
1431         * loader/cache/CachedImage.h:
1432         
1433             Removed now unnecessary resumeAnimatingImagesForLoader mechanism.
1434             Remove unnecessary shouldPauseAnimation. Pausing is now always done when by avoiding repaint.
1435
1436         * loader/cache/CachedImageClient.h:
1437         (WebCore::CachedImageClient::newImageAnimationFrameAvailable):
1438         * page/FrameView.cpp:
1439         (WebCore::FrameView::scrollPositionChanged):
1440         
1441             Check if we have image animations to resume when scroll position changes.
1442
1443         * page/Page.cpp:
1444         (WebCore::Page::resumeAnimatingImages):
1445         
1446             Use the same mechanism when resuming background tabs etc.
1447
1448         * platform/graphics/BitmapImage.cpp:
1449         (WebCore::BitmapImage::internalAdvanceAnimation):
1450         
1451             Remove the shouldPauseAnimation test, always rely on pausing on invalidation.
1452
1453         * platform/graphics/ImageObserver.h:
1454         * rendering/RenderBoxModelObject.cpp:
1455         * rendering/RenderElement.cpp:
1456         (WebCore::RenderElement::RenderElement):
1457         (WebCore::RenderElement::~RenderElement):
1458         (WebCore::shouldRepaintForImageAnimation):
1459         
1460             Factor the pausing conditions to a function. Test that the animation is withing the
1461             visible rect.
1462
1463         (WebCore::RenderElement::newImageAnimationFrameAvailable):
1464         
1465             Add renderer to the paused animation set if we don't continue the animation.
1466
1467         (WebCore::RenderElement::repaintForPausedImageAnimationsIfNeeded):
1468         
1469             Resume the paused animations by triggering repaint.
1470
1471         * rendering/RenderElement.h:
1472         (WebCore::RenderElement::setHasPausedImageAnimations):
1473         (WebCore::RenderElement::hasPausedImageAnimations):
1474         * rendering/RenderObject.cpp:
1475         * rendering/RenderObject.h:
1476         * rendering/RenderView.cpp:
1477         (WebCore::RenderView::addRendererWithPausedImageAnimations):
1478         (WebCore::RenderView::removeRendererWithPausedImageAnimations):
1479         (WebCore::RenderView::resumePausedImageAnimationsIfNeeded):
1480         * rendering/RenderView.h:
1481
1482 2014-02-11  Andreas Kling  <akling@apple.com>
1483
1484         Remove unused RenderNamedFlowThread::previousRendererForNode().
1485         <https://webkit.org/b/128637>
1486
1487         Reviewed by Antti Koivisto.
1488
1489         * rendering/RenderNamedFlowThread.cpp:
1490         * rendering/RenderNamedFlowThread.h:
1491
1492 2014-02-11  Andreas Kling  <akling@apple.com>
1493
1494         Move renderNamedFlowThreadWrapper() to RenderElement.
1495         <https://webkit.org/b/128634>
1496
1497         This function is only ever called on RenderElements so move it there
1498         from RenderObject.
1499
1500         Reviewed by Antti Koivisto.
1501
1502         * rendering/RenderElement.cpp:
1503         (WebCore::RenderElement::renderNamedFlowThreadWrapper):
1504         * rendering/RenderElement.h:
1505         * rendering/RenderObject.cpp:
1506         * rendering/RenderObject.h:
1507
1508 2014-02-11  Myles C. Maxfield  <mmaxfield@apple.com>
1509
1510         Position and thickness of underline as text size changes
1511         https://bugs.webkit.org/show_bug.cgi?id=16768
1512
1513         Reviewed by Dean Jackson.
1514
1515         This patch adopts the iOS codepath for underlines. It also reorganizes
1516         drawLineForText to avoid a costly global state save & restore.
1517
1518         Test: fast/css3-text/css3-text-decoration/text-decoration-thickness.html
1519
1520         * platform/graphics/cg/GraphicsContextCG.cpp:
1521         (WebCore::computeLineBoundsAndAntialiasingModeForText):
1522         (WebCore::GraphicsContext::computeLineBoundsForText):
1523         (WebCore::GraphicsContext::drawLineForText):
1524         (WebCore::GraphicsContext::drawLinesForText):
1525         * rendering/InlineTextBox.cpp:
1526         (WebCore::InlineTextBox::paintDecoration):
1527
1528 2014-02-11  Ryosuke Niwa  <rniwa@webkit.org>
1529
1530         Frame::rectForSelection shouldn't instantiate FrameSelection
1531         https://bugs.webkit.org/show_bug.cgi?id=128587
1532
1533         Reviewed by Enrica Casucci.
1534
1535         Made VisiblePosition::absoluteCaretBounds more interoperable with the one in FrameSelection and made
1536         iOS's Frame::rectForScrollToVisible use that function instead.
1537
1538         The above change allows us to remove:
1539         - suppressCloseTyping(), restoreCloseTyping(), and m_closeTypingSuppressions in FrameSelection
1540         - suppressSelectionNotifications() and restoreSelectionNotifications() in EditorClient
1541
1542         See inline comments below for more details.
1543
1544         * Source/WebCore/WebCore.exp.in:
1545
1546         * editing/FrameSelection.cpp:
1547         (WebCore::FrameSelection::FrameSelection):
1548         (WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
1549         (WebCore::CaretBase::updateCaretRect):
1550         (WebCore::FrameSelection::caretRendererWithoutUpdatingLayout):
1551         (WebCore::DragCaretController::caretRenderer):
1552         (WebCore::repaintCaretForLocalRect):
1553         (WebCore::FrameSelection::recomputeCaretRect): Merged FrameSelection::localCaretRect(). Modified
1554         the code to update caretNode when and only when caret rect is updated. Also added an assertion to
1555         ensure absoluteCaretBounds() on FrameSelection and VisiblePosition yield the same result.
1556
1557         (WebCore::CaretBase::paintCaret):
1558         * editing/FrameSelection.h:
1559
1560         * editing/VisiblePosition.cpp:
1561         (WebCore::VisiblePosition::absoluteCaretBounds): Fixed the bug where the old code wasn't respecting
1562         the convention to use containing block as the renderer to paint caret.
1563
1564         * editing/htmlediting.cpp:
1565         (WebCore::caretRendersInsideNode): Moved from FrameSelection.cpp.
1566         (WebCore::rendererForCaretPainting): Ditto and renamed from caretRenderer.
1567         (WebCore::localCaretRectInRendererForCaretPainting): Extracted from FrameSelection::updateCaretRect.
1568         (WebCore::absoluteBoundsForLocalCaretRect): Ditto from CaretBase::absoluteBoundsForLocalRect.
1569         * editing/htmlediting.h:
1570
1571         * loader/EmptyClients.h:
1572         * page/EditorClient.h:
1573         * page/Frame.h:
1574
1575         * page/ios/FrameIOS.mm:
1576         (WebCore::Frame::rectForScrollToVisible): Reimplemented in its simplest form using VisiblePosition's
1577         absoluteCaretBounds().
1578
1579 2014-02-11  Enrica Casucci  <enrica@apple.com>
1580
1581         Support WebSelections in WK2 on iOS.
1582         https://bugs.webkit.org/show_bug.cgi?id=127015
1583         <rdar://problem/15211964>
1584
1585         Reviewed by Benjamin Poulain.
1586
1587         Adding few exports.
1588
1589         * WebCore.exp.in:
1590
1591 2014-02-11  Andreas Kling  <akling@apple.com>
1592
1593         CTTE: RenderNamedFlowThread always has a WebKitNamedFlow.
1594         <https://webkit.org/b/128623>
1595
1596         Codify the fact that RenderNamedFlowThread always has a corresponding
1597         WebKitNamedFlow by storing it in a Ref, and adding an accessor that
1598         returns a reference to get rid of all the ->'s.
1599
1600         Also removed some unnecessary assertions exposed by this.
1601
1602         Reviewed by Antti Koivisto.
1603
1604         * dom/NamedFlowCollection.cpp:
1605         (WebCore::NamedFlowCollection::ensureFlowWithName):
1606         * dom/NamedFlowCollection.h:
1607         * rendering/RenderNamedFlowThread.cpp:
1608         (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
1609         (WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
1610         (WebCore::RenderNamedFlowThread::unregisterNamedFlowContentElement):
1611         (WebCore::RenderNamedFlowThread::flowThreadName):
1612         (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEvent):
1613         (WebCore::RenderNamedFlowThread::dispatchRegionOversetChangeEvent):
1614         (WebCore::RenderNamedFlowThread::regionLayoutUpdateEventTimerFired):
1615         (WebCore::RenderNamedFlowThread::regionOversetChangeEventTimerFired):
1616         (WebCore::RenderNamedFlowThread::setMarkForDestruction):
1617         (WebCore::RenderNamedFlowThread::resetMarkForDestruction):
1618         (WebCore::RenderNamedFlowThread::isMarkedForDestruction):
1619         * rendering/RenderNamedFlowThread.h:
1620
1621 2014-02-10  Myles C. Maxfield  <mmaxfield@apple.com>
1622
1623         Convert position:fixed property to position:absolute upon copy
1624         https://bugs.webkit.org/show_bug.cgi?id=128194
1625
1626         Reviewed by Simon Fraser.
1627
1628         This adds a Setting and Preference that allows clients to opt-in to this behavior.
1629
1630         This new behavior is only activated if the entire body is copied. If there is a position:fixed
1631         element in the copied selection, it is replaced with position:absolute, and a containing
1632         block (position:relative) is wrapped around the copied text.
1633
1634         This patch originally converted position:-webkit-sticky to position:relative. However, we
1635         currently don't support copying and pasting of position:-webkit-sticky content (See below).
1636         Therefore, this patch only deals with position:fixed.
1637
1638         Right now we don't copy position:-webkit-sticky. This is because:
1639         1. When copying styled elements, we parse the style properties again
1640         2. CSSParserContext has a flag which can disable parsing -webkit-sticky
1641         3. There are two constructors to CSSParserContext: one that takes a document and sets up the
1642         aforementioned flag, and a simple one that doesn't take a document and sets all the enableFoo
1643         flags to false
1644         4. At the relevant place within copy code, we are far removed from the Document object, so we
1645         instead call the second constructor, thereby disabling parsing of -webkit-sticky
1646
1647         Test: editing/pasteboard/copy-paste-converts-sticky-and-fixed.html
1648
1649         * WebCore.exp.in: Export the Setting setter
1650         * editing/EditingStyle.cpp:
1651         (WebCore::EditingStyle::convertFixedAndStickyPosition): Converts a single style
1652         * editing/EditingStyle.h:
1653         * editing/markup.cpp:
1654         (WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator): Remember if we found
1655         an element which needs the position:relative containing block
1656         (WebCore::StyledMarkupAccumulator::appendElement): Surround with the position:relative
1657         containing block if necessary
1658         (WebCore::createMarkupInternal):
1659         * page/Settings.cpp:
1660         (WebCore::Settings::Settings): New setting to opt-in to this new behavior
1661         (WebCore::Settings::setConvertPositionStyleOnCopy):
1662         * page/Settings.h:
1663         (WebCore::Settings::convertPositionStyleOnCopy):
1664         * testing/InternalSettings.cpp: Allow setting the setting from a Layout Test
1665         (WebCore::InternalSettings::Backup::Backup):
1666         (WebCore::InternalSettings::Backup::restoreTo):
1667         (WebCore::InternalSettings::setConvertPositionStyleOnCopy):
1668         * testing/InternalSettings.h:
1669         * testing/InternalSettings.idl:
1670
1671 2014-02-11  Youenn Fablet  <youennf@gmail.com>
1672
1673         XMLHttpRequest should not send DNT header
1674         https://bugs.webkit.org/show_bug.cgi?id=128533
1675
1676         Reviewed by Alexey Proskuryakov.
1677
1678         Added DNT (Do Not Track) header to the list of forbidden headers.
1679         Updated http/tests/xmlhttprequest/set-dangerous-headers.html to test that header.
1680
1681         * xml/XMLHttpRequest.cpp:
1682         (WebCore::XMLHttpRequestStaticData::XMLHttpRequestStaticData):
1683
1684 2014-02-10  Jeffrey Pfau  <jpfau@apple.com>
1685
1686         Bring third-party app cache blocking behavior in line with private browsing app cache blocking behavior
1687         https://bugs.webkit.org/show_bug.cgi?id=128557
1688
1689         Reviewed by Alexey Proskuryakov.
1690
1691         * loader/appcache/ApplicationCacheGroup.cpp:
1692         (WebCore::ApplicationCacheGroup::cacheForMainRequest):
1693         (WebCore::ApplicationCacheGroup::selectCache):
1694         (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
1695         (WebCore::ApplicationCacheGroup::update):
1696         * loader/appcache/ApplicationCacheHost.cpp:
1697         (WebCore::ApplicationCacheHost::maybeLoadMainResource):
1698         (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
1699         (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
1700         (WebCore::ApplicationCacheHost::maybeLoadResource):
1701         (WebCore::ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache):
1702         (WebCore::ApplicationCacheHost::isApplicationCacheBlockedForRequest):
1703         * loader/appcache/ApplicationCacheHost.h:
1704
1705 2014-02-11  Brady Eidson  <beidson@apple.com>
1706
1707         IDB: The test after storage/indexeddb/mozilla/object-identity.html fails in cleanup code
1708         <rdar://problem/16040663> and https://bugs.webkit.org/show_bug.cgi?id=128621
1709
1710         Reviewed by Alexey Proskuryakov.
1711
1712         Covered by storage/indexeddb/mozilla/object-identity.html.
1713
1714         * Modules/indexeddb/IDBTransactionBackend.cpp:
1715         (WebCore::IDBTransactionBackend::abort): Clear the m_database pointer before calling the onAbort callback.
1716         (WebCore::IDBTransactionBackend::commit): Don't run the abort code if there's no m_database pointer.
1717
1718 2014-02-10  Jer Noble  <jer.noble@apple.com>
1719
1720         [EME][Mac] Move the implementation of CDMPrivateAVFoundation back into MediaPlayerPrivateAVFoundationObjC.
1721         https://bugs.webkit.org/show_bug.cgi?id=128559
1722
1723         Reviewed by Dean Jackson.
1724
1725         To prepare for multiple simultaneous CDMs with muliple MediaPlayer types, move the implementation for
1726         CDMPrivateAVFoundation back into its media engine.
1727
1728         * Modules/encryptedmedia/CDMPrivateAVFoundation.mm:
1729         (WebCore::MediaKeyExceptionToErrorCode): Added.
1730         (WebCore::CDMSessionAVFoundation::generateKeyRequest): Moved to MediaPlayerPrivateAVFoundationObjC.
1731         (WebCore::CDMSessionAVFoundation::releaseKeys): Ditto.
1732         (WebCore::CDMSessionAVFoundation::update): Ditto.
1733         * platform/graphics/MediaPlayer.cpp:
1734         (WebCore::MediaPlayer::generateKeyRequest): Added, pass through to MediaPlayerPrivate.
1735         (WebCore::MediaPlayer::releaseKeys): Ditto.
1736         (WebCore::MediaPlayer::update): Ditto.
1737         * platform/graphics/MediaPlayer.h:
1738         * platform/graphics/MediaPlayerPrivate.h:
1739         (WebCore::MediaPlayerPrivateInterface::generateKeyRequest): Added.
1740         (WebCore::MediaPlayerPrivateInterface::releaseKeys): Ditto.
1741         (WebCore::MediaPlayerPrivateInterface::update): Ditto.
1742         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
1743         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1744         (WebCore::MediaPlayerPrivateAVFoundationObjC::generateKeyRequest): Moved from CDMSessionAVFoundation.
1745         (WebCore::MediaPlayerPrivateAVFoundationObjC::releaseKeys): Ditto.
1746         (WebCore::MediaPlayerPrivateAVFoundationObjC::update): Ditto.
1747
1748 2014-01-24  Jer Noble  <jer.noble@apple.com>
1749
1750         Run UserAgentScripts through jsmin rather than the css preprocessor
1751         https://bugs.webkit.org/show_bug.cgi?id=127559
1752
1753         Reviewed by Tim Horton.
1754
1755         User Agent JavaScript files were being run through the c++ preprocessor to strip out
1756         comments (and presumably to allow #if ENABLE macros, though that feature is entirely
1757         unused). This had the side effect of removing important whitespace, namely newlines where
1758         there would normally be an implicit semicolon.
1759
1760         Instead, .js files will now be run through the jsmin minifier, used by the inspector.
1761         Jsmin will also strip comments and whitespace, but in a syntactically aware way which will
1762         keep newlines when their presence adds an implied semicolon.
1763
1764         * DerivedSources.make:
1765         * Scripts/make-js-file-arrays.py: Added.
1766         (stringifyCodepoint):
1767         (chunk):
1768         (main):
1769
1770 2014-02-11  Andy Estes  <aestes@apple.com>
1771
1772         [Mac] connection:willStopBufferingData: no longer exists in NSURLConnectionDelegate
1773         https://bugs.webkit.org/show_bug.cgi?id=128583
1774
1775         Reviewed by Anders Carlsson.
1776
1777         The delegate method was removed in Snow Leopard.
1778
1779         * loader/ResourceLoader.cpp:
1780         * loader/ResourceLoader.h:
1781         * platform/network/ResourceHandleClient.h:
1782         * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
1783         * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
1784
1785 2014-02-10  Andy Estes  <aestes@apple.com>
1786
1787         [Content Filter] Check for NULL before calling dispatch_release()
1788         https://bugs.webkit.org/show_bug.cgi?id=128576
1789
1790         Reviewed by Darin Adler.
1791
1792         m_neFilterSourceQueue will be NULL if NEFilterSource isn't enabled, and
1793         passing NULL to dispatch_release() is undefined.
1794
1795         * platform/mac/ContentFilterMac.mm:
1796         (WebCore::ContentFilter::~ContentFilter):
1797
1798 2014-01-24  Jer Noble  <jer.noble@apple.com>
1799
1800         [MediaControls] Allow the media controls script to be debuggable by giving it a generated sourceURL
1801         https://bugs.webkit.org/show_bug.cgi?id=127560
1802
1803         Reviewed by Eric Carlson.
1804
1805         When evaluating a script through ScriptController, if that script does not have an
1806         explicit sourceURL, it will not appear in the resources section of the Web Inspector.
1807         For debug builds only, give the media controls script a generated (i.e. fake) sourceURL.
1808
1809         * html/HTMLMediaElement.cpp:
1810         (WebCore::HTMLMediaElement::parseAttribute):
1811
1812 2014-02-11  Samuel White  <samuel_white@apple.com>
1813
1814         AX: Add text replacement activity support to NSAccessibilitySelectTextWithCriteriaParameterizedAttribute.
1815         https://bugs.webkit.org/show_bug.cgi?id=128397
1816
1817         Reviewed by Chris Fleizach.
1818
1819         Added text replacement support for the AXSelectTextWithCriteria parameterized attribute.
1820
1821         No new test. Updated platform/mac/accessibility/select-text.html to test the added functionality.
1822
1823         * accessibility/AccessibilityObject.cpp:
1824         (WebCore::AccessibilityObject::selectText):
1825         * accessibility/AccessibilityObject.h:
1826         (WebCore::AccessibilitySelectTextCriteria::AccessibilitySelectTextCriteria):
1827         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
1828         (accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute):
1829
1830 2014-02-11  Roger Fong  <roger_fong@apple.com>
1831
1832         [Windows] Unreviewed. Speculative test fix.
1833
1834         * platform/graphics/GraphicsContext.h:
1835         (WebCore::GraphicsContext::pixelSnappingFactor):
1836         * platform/graphics/cg/GraphicsContextCG.cpp:
1837         (WebCore::GraphicsContext::platformInit):
1838
1839 2014-02-11  Dan Bernstein  <mitz@apple.com>
1840
1841         iOS build fix.
1842
1843         * platform/ios/TileGrid.mm:
1844         (WebCore::TileGrid::dropTilesBetweenRects):
1845         (WebCore::TileGrid::dropDistantTiles):
1846         (WebCore::TileGrid::dropInvalidTiles):
1847
1848 2014-02-11  James Craig  <jcraig@apple.com>
1849
1850         Web Inspector: AX: Accessibility Node Inspection
1851         https://bugs.webkit.org/show_bug.cgi?id=127447
1852
1853         Reviewed by Timothy Hatcher.
1854
1855         New methods supporting WebCore::AccessibilityObject::computedRoleString()
1856         used for Accessibility section in WebInspector Node Inspector. Other updates 
1857         support the JSON interface for the WebInspectorUI feature.
1858
1859         Test: accessibility/roles-computedRoleString.html
1860
1861         * accessibility/AccessibilityObject.cpp:
1862         (WebCore::initializeRoleMap):
1863         (WebCore::ariaRoleMap):
1864         (WebCore::reverseAriaRoleMap):
1865         (WebCore::AccessibilityObject::ariaRoleToWebCoreRole):
1866         (WebCore::AccessibilityObject::computedRoleString):
1867         * accessibility/AccessibilityObject.h:
1868         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
1869         (-[WebAccessibilityObjectWrapper computedRoleString]):
1870         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
1871         * inspector/InspectorDOMAgent.cpp:
1872         (WebCore::InspectorDOMAgent::getAccessibilityPropertiesForNode):
1873         (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
1874         * inspector/InspectorDOMAgent.h:
1875         * inspector/protocol/DOM.json:
1876
1877 2014-02-10  Oliver Hunt  <oliver@apple.com>
1878
1879         Stop throwing when attempting to read instance properties directly from the prototype
1880         https://bugs.webkit.org/show_bug.cgi?id=128568
1881
1882         Reviewed by Mark Lam.
1883
1884         A number of websites expect to be able to access instance properties
1885         directly through the prototype.  This is broken behavior but if we
1886         throw an exception the entire site breaks.  This patch simply makes us
1887         return undefined when reading, and logs the error to the console.
1888
1889         * bindings/scripts/CodeGeneratorJS.pm:
1890         (GenerateImplementation):
1891         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
1892         (WebCore::jsTestActiveDOMObjectExcitingAttr):
1893         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
1894         (WebCore::jsTestEventConstructorAttr1):
1895         (WebCore::jsTestEventConstructorAttr2):
1896         * bindings/scripts/test/JS/JSTestException.cpp:
1897         (WebCore::jsTestExceptionName):
1898         * bindings/scripts/test/JS/JSTestInterface.cpp:
1899         (WebCore::jsTestInterfaceImplementsStr1):
1900         (WebCore::jsTestInterfaceImplementsStr2):
1901         (WebCore::jsTestInterfaceImplementsStr3):
1902         (WebCore::jsTestInterfaceImplementsNode):
1903         (WebCore::jsTestInterfaceSupplementalStr1):
1904         (WebCore::jsTestInterfaceSupplementalStr2):
1905         (WebCore::jsTestInterfaceSupplementalStr3):
1906         (WebCore::jsTestInterfaceSupplementalNode):
1907         * bindings/scripts/test/JS/JSTestObj.cpp:
1908         (WebCore::jsTestObjReadOnlyLongAttr):
1909         (WebCore::jsTestObjReadOnlyStringAttr):
1910         (WebCore::jsTestObjReadOnlyTestObjAttr):
1911         (WebCore::jsTestObjConstructorTestSubObj):
1912         (WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
1913         (WebCore::jsTestObjEnumAttr):
1914         (WebCore::jsTestObjByteAttr):
1915         (WebCore::jsTestObjOctetAttr):
1916         (WebCore::jsTestObjShortAttr):
1917         (WebCore::jsTestObjUnsignedShortAttr):
1918         (WebCore::jsTestObjLongAttr):
1919         (WebCore::jsTestObjLongLongAttr):
1920         (WebCore::jsTestObjUnsignedLongLongAttr):
1921         (WebCore::jsTestObjStringAttr):
1922         (WebCore::jsTestObjTestObjAttr):
1923         (WebCore::jsTestObjXMLObjAttr):
1924         (WebCore::jsTestObjCreate):
1925         (WebCore::jsTestObjReflectedStringAttr):
1926         (WebCore::jsTestObjReflectedIntegralAttr):
1927         (WebCore::jsTestObjReflectedUnsignedIntegralAttr):
1928         (WebCore::jsTestObjReflectedBooleanAttr):
1929         (WebCore::jsTestObjReflectedURLAttr):
1930         (WebCore::jsTestObjReflectedCustomIntegralAttr):
1931         (WebCore::jsTestObjReflectedCustomBooleanAttr):
1932         (WebCore::jsTestObjReflectedCustomURLAttr):
1933         (WebCore::jsTestObjTypedArrayAttr):
1934         (WebCore::jsTestObjAttrWithGetterException):
1935         (WebCore::jsTestObjAttrWithSetterException):
1936         (WebCore::jsTestObjStringAttrWithGetterException):
1937         (WebCore::jsTestObjStringAttrWithSetterException):
1938         (WebCore::jsTestObjCustomAttr):
1939         (WebCore::jsTestObjWithScriptStateAttribute):
1940         (WebCore::jsTestObjWithScriptExecutionContextAttribute):
1941         (WebCore::jsTestObjWithScriptStateAttributeRaises):
1942         (WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
1943         (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
1944         (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
1945         (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
1946         (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
1947         (WebCore::jsTestObjConditionalAttr1):
1948         (WebCore::jsTestObjConditionalAttr2):
1949         (WebCore::jsTestObjConditionalAttr3):
1950         (WebCore::jsTestObjConditionalAttr4Constructor):
1951         (WebCore::jsTestObjConditionalAttr5Constructor):
1952         (WebCore::jsTestObjConditionalAttr6Constructor):
1953         (WebCore::jsTestObjCachedAttribute1):
1954         (WebCore::jsTestObjCachedAttribute2):
1955         (WebCore::jsTestObjAnyAttribute):
1956         (WebCore::jsTestObjContentDocument):
1957         (WebCore::jsTestObjMutablePoint):
1958         (WebCore::jsTestObjImmutablePoint):
1959         (WebCore::jsTestObjStrawberry):
1960         (WebCore::jsTestObjStrictFloat):
1961         (WebCore::jsTestObjDescription):
1962         (WebCore::jsTestObjId):
1963         (WebCore::jsTestObjHash):
1964         (WebCore::jsTestObjReplaceableAttribute):
1965         (WebCore::jsTestObjNullableDoubleAttribute):
1966         (WebCore::jsTestObjNullableLongAttribute):
1967         (WebCore::jsTestObjNullableBooleanAttribute):
1968         (WebCore::jsTestObjNullableStringAttribute):
1969         (WebCore::jsTestObjNullableLongSettableAttribute):
1970         (WebCore::jsTestObjNullableStringValue):
1971         (WebCore::jsTestObjAttribute):
1972         (WebCore::jsTestObjAttributeWithReservedEnumType):
1973         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1974         (WebCore::jsTestSerializedScriptValueInterfaceValue):
1975         (WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
1976         (WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
1977         (WebCore::jsTestSerializedScriptValueInterfacePorts):
1978         (WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
1979         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1980         (WebCore::jsTestTypedefsUnsignedLongLongAttr):
1981         (WebCore::jsTestTypedefsImmutableSerializedScriptValue):
1982         (WebCore::jsTestTypedefsConstructorTestSubObj):
1983         (WebCore::jsTestTypedefsAttrWithGetterException):
1984         (WebCore::jsTestTypedefsAttrWithSetterException):
1985         (WebCore::jsTestTypedefsStringAttrWithGetterException):
1986         (WebCore::jsTestTypedefsStringAttrWithSetterException):
1987         * bindings/scripts/test/JS/JSattribute.cpp:
1988         (WebCore::jsattributeReadonly):
1989
1990 2014-02-11  Sergio Villar Senin  <svillar@igalia.com>
1991
1992         [CSS Grid Layout] Support calc() breadth size type
1993         https://bugs.webkit.org/show_bug.cgi?id=103761
1994
1995         Reviewed by Dean Jackson.
1996
1997         We now support using calc() in
1998         -webkit-grid-template-{columns|rows}. This means that we now
1999         match the specification and support all the possible ways to
2000         specify the track breadths.
2001
2002         This includes a fix to CSSCalculationValue that was converting
2003         Length values to CalcExpressionNumber and thus removing all the
2004         info regarding length units (px, em, pt...). That's why things
2005         like calc(10px + 20%) were shown as calc(10 + 20%) in
2006         getComputedStyle() output.
2007
2008         * css/CSSCalculationValue.cpp:
2009         (WebCore::CSSCalcPrimitiveValue::toCalcValue):
2010         * css/CSSComputedStyleDeclaration.cpp:
2011         (WebCore::zoomAdjustedPixelValueForLength):
2012         (WebCore::specifiedValueForGridTrackBreadth):
2013         (WebCore::specifiedValueForGridTrackSize):
2014         * css/StyleResolver.cpp:
2015         (WebCore::createGridTrackBreadth):
2016         * rendering/RenderGrid.cpp:
2017         (WebCore::RenderGrid::computeUsedBreadthOfMinLength):
2018         (WebCore::RenderGrid::computeUsedBreadthOfMaxLength):
2019         (WebCore::RenderGrid::computeUsedBreadthOfSpecifiedLength):
2020
2021 2014-02-11  Brent Fulgham  <bfulgham@apple.com>
2022
2023         Correct some uses of 'auto'
2024         https://bugs.webkit.org/show_bug.cgi?id=128578
2025
2026         Reviewed by Anders Carlsson.
2027
2028         Correct the following instances of "for (auto ...)" to use reference or
2029         const references to avoid copies.
2030
2031         * accessibility/AccessibilityObject.cpp:
2032         (WebCore::AccessibilityObject::elementsFromAttribute):
2033         * css/CSSGridTemplateValue.cpp:
2034         (WebCore::stringForPosition):
2035         * dom/Node.cpp:
2036         (WebCore::NodeListsNodeData::invalidateCaches):
2037         * inspector/PageInjectedScriptManager.cpp:
2038         (WebCore::PageInjectedScriptManager::discardInjectedScriptsFor):
2039         * page/WheelEventDeltaTracker.cpp:
2040         (WebCore::WheelEventDeltaTracker::dominantScrollGestureDirection):
2041         * page/scrolling/ScrollingCoordinator.cpp:
2042         (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
2043         * platform/graphics/mac/WebLayer.mm:
2044         (WebCore::drawLayerContents):
2045         * platform/ios/TileGrid.mm:
2046         (WebCore::TileGrid::dropTilesBetweenRects):
2047         (WebCore::TileGrid::dropDistantTiles):
2048         (WebCore::TileGrid::dropInvalidTiles):
2049         * rendering/InlineTextBox.cpp:
2050         (WebCore::translateIntersectionPointsToSkipInkBoundaries):
2051         * testing/InternalSettings.cpp:
2052         (WebCore::InternalSettings::Backup::restoreTo):
2053
2054 2014-02-10  David Hyatt  <hyatt@apple.com>
2055
2056         [New Multicolumn] Make columns work with line grids
2057         https://bugs.webkit.org/show_bug.cgi?id=128555
2058
2059         Reviewed by Antti Koivisto.
2060
2061         Added line-snap-into-columns.html and line-snap-inside-columns.html
2062
2063         * rendering/LayoutState.cpp:
2064         (WebCore::LayoutState::LayoutState):
2065         * rendering/LayoutState.h:
2066         (WebCore::LayoutState::pageOffset):
2067         (WebCore::LayoutState::setLineGridPaginationOrigin):
2068         Change the LayoutState to call into the renderer to compute the line
2069         grid pagination origin instead of doing it directly. Added the
2070         appropriate getters and setters to enable the renderer to do this.
2071
2072         * rendering/RenderBlock.cpp:
2073         (WebCore::RenderBlock::computeLineGridPaginationOrigin):
2074          * rendering/RenderBlock.h:
2075         An implementation for the old multi-column code. The logic is the
2076         same with tweaks made now that the method is on the renderer instead.
2077
2078         * rendering/RenderBlockFlow.cpp:
2079         (WebCore::RenderBlockFlow::pageLogicalTopForOffset):
2080         Fix a bug with flow threads and pageLogicalTopForOffset. Normal CSS region-based
2081         flow threads are never embedded in an enclosing pagination context, so they
2082         didn't add in the firstPageLogicalTop (or subtract it when computing the region
2083         hit). Multi-column flow threads do need to subtract out the firstPageLogicalTop,
2084         since it can occur somewhere on the page.
2085         
2086         Ultimately regions will need to get smarter here too if they want to work with
2087         line grids, but for now I just fixed multi-column.
2088
2089         * rendering/RenderBox.cpp:
2090         (WebCore::RenderBox::isUnsplittableForPagination):
2091         Undo this change, since it prevents the inheritance of line grids into the
2092         multi-column layout.
2093
2094         * rendering/RenderMultiColumnFlowThread.cpp:
2095         (WebCore::RenderMultiColumnFlowThread::computeLineGridPaginationOrigin):
2096         * rendering/RenderMultiColumnFlowThread.h:
2097         An implementation for the new multi-column code. The logic is the
2098         same as the old code. Code duplication is ok, since the old multi-column method
2099         in RenderBlock will just be deleted once the new code is turned on, and it's easier
2100         not to intertwine them.
2101
2102 2014-02-11  Radu Stavila  <stavila@adobe.com>
2103
2104         [CSS Regions] Overflow above the first region is not properly painted for regions with padding
2105         https://bugs.webkit.org/show_bug.cgi?id=128590
2106
2107         Reviewed by Andrei Bucur.
2108
2109         Painting is done using the layer of the region's container, so offsetting using the content box
2110         of the region itself is incorrect. 
2111
2112         Test: fast/regions/region-padding-overflow-hidden.html
2113
2114         * rendering/RenderLayer.cpp:
2115         (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
2116         * rendering/RenderRegion.cpp:
2117         (WebCore::RenderRegion::regionContainer):
2118         (WebCore::RenderRegion::regionContainerLayer):
2119         * rendering/RenderRegion.h:
2120
2121 2014-02-11  Benjamin Poulain  <benjamin@webkit.org>
2122
2123         querySelector() does not use the compiler correctly
2124         https://bugs.webkit.org/show_bug.cgi?id=128588
2125
2126         Reviewed by Andreas Kling.
2127
2128         * dom/SelectorQuery.cpp:
2129         (WebCore::SelectorDataList::execute):
2130         I messed up the refactoring when I landed SelectorQuery. The compiled
2131         code was not used the first time through SelectorDataList::execute.
2132
2133 2014-02-11  Piotr Grad  <p.grad@samsung.com>
2134
2135         [GStreamer] High playback rate causes crash
2136         https://bugs.webkit.org/show_bug.cgi?id=128453
2137
2138         Reviewed by Philippe Normand.
2139
2140         To high playback rate passed to GStreamer was causing crash.
2141         Added guard in setRate method.
2142
2143         Test: media/video-extreme-playbackrate-crash.html
2144
2145         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2146         (WebCore::MediaPlayerPrivateGStreamer::setRate):
2147
2148 2014-02-10  Brady Eidson  <beidson@apple.com>
2149
2150         IndexedDB assertion at IDBTransactionBackend::~IDBTransactionBackend()
2151         https://bugs.webkit.org/show_bug.cgi?id=128341
2152
2153         Reviewed by Maciej Stachowiak.
2154
2155         * Modules/indexeddb/IDBTransactionBackend.cpp:
2156         (WebCore::IDBTransactionBackend::~IDBTransactionBackend): "Finished" is not the only
2157           valid value here - In WK2, "Unused" is also valid. Update the ASSERT.
2158
2159 2014-02-10  Alexey Proskuryakov  <ap@apple.com>
2160
2161         Add hooks for wrapping CryptoKeys in SerializedScriptValue
2162         https://bugs.webkit.org/show_bug.cgi?id=128567
2163
2164         Reviewed by Anders Carlsson.
2165
2166         * bindings/js/SerializedScriptValue.cpp: Changed SerializedScriptValue to serialize
2167         wrapped keys. Added a version number to crypto key serialization.
2168
2169         * dom/Document.cpp:
2170         (WebCore::Document::wrapCryptoKey):
2171         (WebCore::Document::unwrapCryptoKey):
2172         * dom/Document.h:
2173         * dom/ScriptExecutionContext.h:
2174         * page/ChromeClient.h:
2175         (WebCore::ChromeClient::wrapCryptoKey):
2176         (WebCore::ChromeClient::unwrapCryptoKey):
2177         Hand wrapping/unwrapping over to client code.
2178
2179         * workers/WorkerGlobalScope.cpp:
2180         (WebCore::WorkerGlobalScope::wrapCryptoKey):
2181         (WebCore::WorkerGlobalScope::unwrapCryptoKey):
2182         * workers/WorkerGlobalScope.h:
2183         Not implemented in workers. SubtleCrypto is currently not exposed in workers. It used
2184         to be possible in WebKit implementation to post a CryptoKey to a worker anyway,
2185         but this doesn't work any more.
2186
2187 2014-02-10  ChangSeok Oh  <changseok.oh@collabora.com>
2188
2189         Support ANGLE_instanced_arrays for linux
2190         https://bugs.webkit.org/show_bug.cgi?id=127465
2191
2192         Reviewed by Martin Robinson.
2193
2194         Support the instanced drawing WebGL extension, ANGLE_instanced_arrays for linux platform.
2195         This is a following patch for r162565. Relevant opengl APIs are exposed
2196         for WebGLRenderingContext to access them.
2197
2198         Covered by fast/canvas/webgl/angle-instanced-arrays.html
2199
2200         * html/canvas/ANGLEInstancedArrays.cpp:
2201         (WebCore::ANGLEInstancedArrays::supported):
2202         * platform/graphics/OpenGLShims.cpp:
2203         (WebCore::initializeOpenGLShims):
2204         * platform/graphics/OpenGLShims.h:
2205         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
2206         (WebCore::Extensions3DOpenGL::supportsExtension):
2207         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
2208         (WebCore::GraphicsContext3D::drawArraysInstanced):
2209         (WebCore::GraphicsContext3D::drawElementsInstanced):
2210         (WebCore::GraphicsContext3D::vertexAttribDivisor):
2211
2212 2014-02-10  Mark Lam  <mark.lam@apple.com>
2213
2214         Removing limitation on JSLock’s lockDropDepth.
2215         <https://webkit.org/b/128570>
2216
2217         Reviewed by Geoffrey Garen.
2218
2219         No new tests.
2220
2221         * bindings/js/PageScriptDebugServer.cpp:
2222         (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
2223         * platform/ios/wak/WebCoreThread.mm:
2224         (SendDelegateMessage):
2225         (WebThreadRunOnMainThread):
2226         - No longer need to specify AlwaysDropLocks, because DropAllLocks is
2227           now always unconditional.
2228
2229 2014-02-10  Benjamin Poulain  <benjamin@webkit.org>
2230
2231         Clean up MarkupAccumulator::appendCharactersReplacingEntities
2232         https://bugs.webkit.org/show_bug.cgi?id=128440
2233
2234         Reviewed by Ryosuke Niwa.
2235
2236         Some cleanup:
2237         -Remove the copied code for the loops. Instead, use a template with the loop
2238          parametrized by the characters type.
2239         -Move EntityDescription from the header to the implementation.
2240         -Make the 5 substitution strings compile-time literals. Replacement is not hot enough
2241          to justify the static here.
2242
2243         * editing/MarkupAccumulator.cpp:
2244         (WebCore::appendCharactersReplacingEntitiesInternal):
2245         (WebCore::MarkupAccumulator::appendCharactersReplacingEntities):
2246         * editing/MarkupAccumulator.h:
2247
2248 2014-02-10  Benjamin Poulain  <benjamin@webkit.org>
2249
2250         Add a few pseudo type to the selector compiler through function calls
2251         https://bugs.webkit.org/show_bug.cgi?id=128514
2252
2253         Reviewed by Dean Jackson.
2254
2255         Certain pseudo type checkers rely on virtual function calls. Since those types
2256         are uncommon, and this code generator cannot currently make virtual function calls,
2257         the checker are added by generating a function call to a wrapper function.
2258
2259         To avoid code duplication between SelectorChecker and the compiler, all the relevant checking
2260         code has been moved to a common header, SelectorCheckerTestFunctions.h.
2261         SelectorChecker still inline the functions, while the SelectorCompiler generate local static functions
2262         and generate calls to them as needed.
2263
2264         * GNUmakefile.list.am:
2265         * WebCore.vcxproj/WebCore.vcxproj:
2266         * WebCore.vcxproj/WebCore.vcxproj.filters:
2267         * WebCore.xcodeproj/project.pbxproj:
2268         * css/SelectorChecker.cpp:
2269         (WebCore::SelectorChecker::checkOne):
2270         * css/SelectorCheckerTestFunctions.h: Added.
2271         (WebCore::isAutofilled):
2272         (WebCore::isDefaultButtonForForm):
2273         (WebCore::isDisabled):
2274         (WebCore::isEnabled):
2275         (WebCore::isChecked):
2276         (WebCore::isInvalid):
2277         (WebCore::isOptionalFormControl):
2278         (WebCore::isRequiredFormControl):
2279         (WebCore::isValid):
2280         (WebCore::matchesReadOnlyPseudoClass):
2281         (WebCore::matchesReadWritePseudoClass):
2282         (WebCore::shouldAppearIndeterminate):
2283         (WebCore::matchesFullScreenPseudoClass):
2284         (WebCore::matchesFutureCuePseudoClass):
2285         (WebCore::matchesPastCuePseudoClass):
2286         * cssjit/SelectorCompiler.cpp:
2287         (WebCore::SelectorCompiler::addPseudoType):
2288         (WebCore::SelectorCompiler::nonConstTestFunctionWrapper):
2289         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
2290         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementFunctionCallTest):
2291         * dom/Element.h:
2292         (WebCore::Element::isValidFormControlElement):
2293         * dom/Node.h:
2294         (WebCore::Node::toInputElement):
2295         * html/HTMLFormControlElement.cpp:
2296         (WebCore::HTMLFormControlElement::isValidFormControlElement):
2297         * html/HTMLFormControlElement.h:
2298
2299 2014-02-10  Benjamin Poulain  <benjamin@webkit.org>
2300
2301         Add the basic infrastructure to compile attributes matching in selectors
2302         https://bugs.webkit.org/show_bug.cgi?id=128484
2303
2304         Reviewed by Gavin Barraclough.
2305
2306         Tests: fast/selectors/querySelector-attribute-match-with-child-backtracking.html
2307                fast/selectors/querySelector-long-attribute-match-with-child-backtracking.html
2308                fast/selectors/querySelector-long-multiple-attribute-match-with-child-backtracking.html
2309                fast/selectors/querySelector-multiple-attribute-match-with-child-backtracking.html
2310
2311         Add the infrastructure to match attributes. This only add basic support for the 'Set' match
2312         type, the other match types will have to be built on top.
2313
2314         * cssjit/RegisterAllocator.h:
2315         (WebCore::RegisterAllocator::availableRegisterCount):
2316         (WebCore::RegisterAllocator::allocateRegister):
2317         (WebCore::RegisterAllocator::deallocateRegister):
2318         (WebCore::RegisterAllocator::reserveCalleeSavedRegisters):
2319         (WebCore::RegisterAllocator::restoreCalleeSavedRegisters):
2320         (WebCore::RegisterAllocator::allocatedRegisters):
2321         (WebCore::RegisterAllocator::RegisterAllocator):
2322         (WebCore::RegisterAllocator::~RegisterAllocator):
2323         In the worst case, matching attributes can take up to 10 registers. On x86_64, we have
2324         8 caller-saved registers. The extra 2 registers are simply added by taking callee-saved registers.
2325
2326         RegisterAllocator is modified to know support saving and restoring callee saved registers.
2327         The list of available registers is changed from a vector to a HashSet because the registers
2328         are removed from arbitrary locations in restoreCalleeSavedRegisters(). The m_allocatedRegisters
2329         remain a vector since the allocation/release pattern remain ordered.
2330
2331         * cssjit/SelectorCompiler.cpp:
2332         (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
2333
2334         (WebCore::SelectorCompiler::minimumRegisterRequirements):
2335         This new utility finds the minimum number of registers needed to compile the input. In most
2336         cases we have plenty enough. In rare cases we need to saved a few registers to the stack.
2337
2338         (WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
2339         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementDataMatching):
2340         (WebCore::SelectorCompiler::testIsHTMLFlagOnNode):
2341         (WebCore::SelectorCompiler::canMatchStyleAttribute):
2342
2343         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeStyleAttribute):
2344         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeAllAnimatedSVGAttribute):
2345         The style attribute and certain SVG attributes can be modified lazily. In those cases,
2346         the element needs to be updated before querying the attributes.
2347
2348         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributesMatching):
2349         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeMatching):
2350         Generate the attribute matching. For each CSSSelector matching an attribute, we generate
2351         a loop over all the attributes of the element, maching the particular CSSSelector.
2352         This makes no attempt at grouping related queries since those do not seem to happen a lot
2353         in practice.
2354
2355         * dom/Attribute.h:
2356         (WebCore::Attribute::nameMemoryOffset):
2357         (WebCore::Attribute::nameMatchesFilter):
2358         (WebCore::Attribute::matches):
2359         * dom/ElementData.h:
2360         (WebCore::ElementData::isUniqueFlag):
2361         (WebCore::ElementData::arraySizeAndFlagsMemoryOffset):
2362         (WebCore::ElementData::styleAttributeIsDirtyFlag):
2363         (WebCore::ElementData::animatedSVGAttributesAreDirtyFlag):
2364         (WebCore::ElementData::arraySizeOffset):
2365         (WebCore::ShareableElementData::attributeArrayMemoryOffset):
2366         (WebCore::UniqueElementData::attributeVectorMemoryOffset):
2367         * dom/Node.h:
2368         (WebCore::Node::flagIsHTML):
2369         * dom/StyledElement.cpp:
2370         (WebCore::StyledElement::synchronizeStyleAttributeInternal):
2371         * dom/StyledElement.h:
2372         (WebCore::StyledElement::synchronizeStyleAttributeInternal):
2373         * svg/SVGElement.cpp:
2374         (WebCore::SVGElement::synchronizeAllAnimatedSVGAttribute):
2375         (WebCore::SVGElement::synchronizeAnimatedSVGAttribute):
2376         * svg/SVGElement.h:
2377
2378 2014-02-10  Brady Eidson  <beidson@apple.com>
2379
2380         IDB: storage/indexeddb/mozilla/indexes.html fails
2381         <rdar://problem/16031590> and https://bugs.webkit.org/show_bug.cgi?id=128563
2382
2383         Reviewed by Tim Horton.
2384
2385         Tested by storage/indexeddb/mozilla/indexes.html (and probably others)
2386
2387         * Modules/indexeddb/IDBGetResult.h:
2388         (WebCore::IDBGetResult::IDBGetResult): Add a constructor that takes an IDBKeyData argument.
2389
2390         * Modules/indexeddb/IDBRequest.cpp:
2391         (WebCore::IDBRequest::onSuccess): If there’s no keyPath then skip the injection step.
2392
2393 2014-02-10  Benjamin Poulain  <benjamin@webkit.org>
2394
2395         Speed up DatasetDOMStringMap::item() when the element has multiple attributes
2396         https://bugs.webkit.org/show_bug.cgi?id=128058
2397
2398         Reviewed by Darin Adler.
2399
2400         Accessing data attributes by name through DatasetDOMStringMap involes the conversion
2401         from JavaScript property name to attribute name (done with propertyNameMatchesAttributeName()).
2402
2403         When there is a single data attribute, that method is efficient. When there are several attributes,
2404         comparing names character by character becomes a bottleneck.
2405
2406         This patch add an efficent path for this case: instead of converting the attribute name on the fly,
2407         the JavaScript property name is converted to an attribute name so that it can compared by its
2408         AtomicStringImpl pointer.
2409
2410         This method puts a lot more pressure on convertPropertyNameToAttributeName()'s speed. The method was
2411         improved accordingly to compensate for its new caller.
2412
2413         When enumerating multiple attributes by name, this patch provides about 80% speedup.
2414         I could not measure any slow down on the simple cases.
2415
2416         * dom/DatasetDOMStringMap.cpp:
2417         (WebCore::convertPropertyNameToAttributeName):
2418         (WebCore::DatasetDOMStringMap::item):
2419         * dom/ElementData.h:
2420         (WebCore::AttributeIteratorAccessor::attributeCount):
2421
2422 2014-02-10  Ryosuke Niwa  <rniwa@webkit.org>
2423
2424         Address the review comments for r163825.
2425
2426         * html/HTMLTextFormControlElement.cpp:
2427         (WebCore::HTMLTextFormControlElement::indexForVisiblePosition):
2428         (WebCore::positionForIndex):
2429
2430 2014-02-10  Simon Fraser  <simon.fraser@apple.com>
2431
2432         Try to fix the 32-bit build.
2433
2434         * WebCore.exp.in:
2435
2436 2014-02-10  Filip Pizlo  <fpizlo@apple.com>
2437
2438         Rename Operations.h to JSCInlines.h
2439         https://bugs.webkit.org/show_bug.cgi?id=128543
2440
2441         Rubber stamped by Geoffrey Garen.
2442
2443         No new tests because no change in behavior.
2444
2445         * ForwardingHeaders/runtime/JSCInlines.h: Added.
2446         * bindings/js/JSCryptoAlgorithmBuilder.cpp:
2447         * bindings/js/JSCryptoKeySerializationJWK.cpp:
2448         * bindings/js/JSCustomXPathNSResolver.h:
2449         * bindings/js/JSDOMBinding.h:
2450         * bindings/js/JSDOMGlobalObject.h:
2451         * bindings/js/JSDictionary.h:
2452         * bindings/js/JSMessagePortCustom.cpp:
2453         * bindings/js/JSMessagePortCustom.h:
2454         * bindings/js/JSNodeFilterCondition.h:
2455         * bindings/js/SerializedScriptValue.cpp:
2456         * bindings/js/WebCoreTypedArrayController.cpp:
2457         * bridge/c/c_utility.h:
2458         * bridge/jsc/BridgeJSC.h:
2459         * dom/CustomEvent.cpp:
2460         * dom/Node.cpp:
2461         * html/HTMLCanvasElement.cpp:
2462         * html/HTMLImageLoader.cpp:
2463         * html/canvas/WebGLRenderingContext.cpp:
2464         * inspector/InspectorDOMAgent.cpp:
2465         * inspector/WebConsoleAgent.cpp:
2466         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2467         * platform/graphics/filters/FEGaussianBlur.cpp:
2468         * platform/graphics/filters/FilterEffect.cpp:
2469         * testing/MockCDM.cpp:
2470         * xml/XMLHttpRequest.cpp:
2471
2472 2014-02-09  Dean Jackson  <dino@apple.com>
2473
2474         Update aspect-ratio property to have constraining keywords
2475         https://bugs.webkit.org/show_bug.cgi?id=128262
2476
2477         Reviewed by Simon Fraser.
2478
2479         Add support for "from-dimensions" and "from-intrinsic"
2480         property values to "-webkit-aspect-ratio". I also changed
2481         the default value from "none" to "auto", because "none" doesn't
2482         make sense any more.
2483
2484         Covered by enhancing existing tests.
2485
2486         * css/CSSComputedStyleDeclaration.cpp:
2487         (WebCore::ComputedStyleExtractor::propertyValue): New keywords.
2488         * css/CSSParser.cpp:
2489         (WebCore::CSSParser::parseAspectRatio): Support new keywords.
2490         * css/CSSValueKeywords.in: Add from-dimensions and from-intrinsic.
2491         * css/DeprecatedStyleBuilder.cpp: This now has to handle the new
2492         values. I also changed "none" to "auto".
2493         (WebCore::ApplyPropertyAspectRatio::applyInheritValue):
2494         (WebCore::ApplyPropertyAspectRatio::applyInitialValue):
2495         (WebCore::ApplyPropertyAspectRatio::applyValue):
2496         * rendering/style/RenderStyle.h: hasAspectRatio is now aspectRatioType
2497         and indicates one of the three keywords, or a specified number.
2498         * rendering/style/RenderStyleConstants.h: New enum.
2499         * rendering/style/StyleRareNonInheritedData.cpp:
2500         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
2501         (WebCore::StyleRareNonInheritedData::operator==):
2502         * rendering/style/StyleRareNonInheritedData.h:
2503
2504 2014-02-10  Benjamin Poulain  <bpoulain@apple.com>
2505
2506         [WK2] Add support for image document viewport configuration
2507         https://bugs.webkit.org/show_bug.cgi?id=128565
2508
2509         Reviewed by Simon Fraser.
2510
2511         Add proper default settings for displaying images.
2512
2513         * WebCore.exp.in:
2514         * page/ViewportConfiguration.cpp:
2515         (WebCore::ViewportConfiguration::imageDocumentParameters):
2516         (WebCore::ViewportConfiguration::textDocumentParameters):
2517         * page/ViewportConfiguration.h:
2518
2519 2014-02-10  Brendan Long  <b.long@cablelabs.com>
2520
2521         Unreviewed GTK build fix after r163816.
2522
2523         * GNUmakefile.list.am: Remove HTMLMediaSource.h and HTMLMediaSource.cpp
2524
2525 2014-02-10  Jinwoo Song  <jinwoo7.song@samsung.com>
2526
2527         Unreviewed EFL WebKit2 build fix after r163816.
2528
2529         * CMakeLists.txt: Remove HTMLMediaSource.cpp
2530
2531 2014-02-10  Ryosuke Niwa  <rniwa@webkit.org>
2532
2533         HTMLTextFormControlElement::setSelectionRange shouldn't use VisiblePosition
2534         https://bugs.webkit.org/show_bug.cgi?id=128478
2535
2536         Reviewed by Darin Adler.
2537
2538         Added positionForIndex to compute Position given a selection index. This function doesn't
2539         synchronously trigger like visiblePositionForIndex.
2540
2541         Also added assertions in visiblePositionForIndex and visiblePositionForIndex to make sure
2542         they are inverse of one another.
2543
2544         * html/HTMLTextFormControlElement.cpp:
2545         (WebCore::HTMLTextFormControlElement::setSelectionRange): Use positionForIndex. Also removed
2546         the now tautological assertions since we would never create a position outside the inner text
2547         element.
2548
2549         (WebCore::HTMLTextFormControlElement::indexForVisiblePosition): Fixed the bug where this
2550         function could return a selection index beyond innerTextElement in some types of input
2551         elements such as search fields. fast/forms/search-disabled-readonly.html hits the newly
2552         added assertion without this change. Note we can't use visiblePositionForIndex here as that
2553         would result in a mutual recursion with the assertion in visiblePositionForIndex.
2554
2555         (WebCore::HTMLTextFormControlElement::visiblePositionForIndex): Added an assertion.
2556
2557         (WebCore::positionForIndex): Added. It's here with prototype at the beginning of the file
2558         so that it's right next to HTMLTextFormControlElement::innerText() where we do a similar
2559         DOM traversal to obtain the inner text value.
2560
2561 2014-02-07  Jeffrey Pfau  <jpfau@apple.com>
2562
2563         Disable access to application cache when in private browsing
2564         https://bugs.webkit.org/show_bug.cgi?id=128426
2565
2566         Reviewed by Alexey Proskuryakov.
2567
2568         Tests: http/tests/security/appcache-in-private-browsing.html
2569                http/tests/security/appcache-switching-private-browsing.html
2570
2571         * loader/appcache/ApplicationCacheGroup.cpp:
2572         (WebCore::ApplicationCacheGroup::cacheForMainRequest):
2573         (WebCore::ApplicationCacheGroup::selectCache):
2574         (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
2575         (WebCore::ApplicationCacheGroup::update):
2576         * loader/appcache/ApplicationCacheHost.cpp:
2577         (WebCore::ApplicationCacheHost::isApplicationCacheEnabled):
2578
2579 2014-02-10  Jer Noble  <jer.noble@apple.com>
2580
2581         [MSE] Fix layering violations in MediaSource
2582         https://bugs.webkit.org/show_bug.cgi?id=128546
2583
2584         Reviewed by Eric Carlson.
2585
2586         Code in Modules should be considered part of html/ and should have the
2587         same layering properties. Get rid of HTMLMediaSource (which was intended
2588         to allow Modules/mediasource to be considered part of platform/) and add
2589         a new client interface allowing communication from platform/ -> 
2590         Modules/mediasource.
2591
2592         Replace HTMLMediaSource -> MediaSourcePrivateClient:
2593         * html/HTMLMediaSource.cpp: Removed.
2594         * html/HTMLMediaSource.h: Removed.
2595         * platform/graphics/MediaSourcePrivateClient.h: Added.
2596         (WebCore::MediaSourcePrivateClient::~MediaSourcePrivateClient):
2597
2598         Move registry support from HTMLMediaSource -> MediaSource.
2599         * Modules/mediasource/MediaSource.cpp:
2600         (WebCore::MediaSource::setRegistry): Moved from HTMLMediaSource.cpp.
2601         * Modules/mediasource/MediaSource.h:
2602         (WebCore::MediaSource::lookup): Ditto.
2603
2604         Update references to HTMLMediaSource -> MediaSource:
2605         * Modules/mediasource/MediaSourceRegistry.cpp:
2606         (WebCore::MediaSourceRegistry::MediaSourceRegistry): 
2607         * WebCore.xcodeproj/project.pbxproj:
2608         * html/HTMLMediaElement.cpp:
2609         (WebCore::HTMLMediaElement::loadResource):
2610         * html/HTMLMediaElement.h:
2611
2612         Update references to HTMLMediaSource -> MediaSourcePrivateClient:
2613         * platform/graphics/MediaPlayer.cpp:
2614         (WebCore::NullMediaPlayerPrivate::load):
2615         (WebCore::MediaPlayer::load): Ditto.
2616         (WebCore::MediaPlayer::loadWithNextMediaEngine):
2617         * platform/graphics/MediaPlayer.h:
2618         * platform/graphics/MediaPlayerPrivate.h:
2619         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2620         (WebCore::MediaPlayerPrivateAVFoundation::load):
2621         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
2622         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
2623         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
2624         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):
2625         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2626         (WebCore::MediaPlayerPrivateGStreamer::load):
2627         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
2628         * platform/graphics/gstreamer/MediaSourceGStreamer.cpp:
2629         (WebCore::MediaSourceGStreamer::open):
2630         * platform/graphics/gstreamer/MediaSourceGStreamer.h:
2631         * platform/graphics/ios/MediaPlayerPrivateIOS.h:
2632         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
2633         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2634         (WebCore::MediaPlayerPrivateQTKit::load):
2635         * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
2636         (WebCore::MockMediaPlayerMediaSource::load):
2637         * platform/mock/mediasource/MockMediaPlayerMediaSource.h:
2638
2639 2014-02-10  Alexey Proskuryakov  <ap@apple.com>
2640
2641         Remove some unused functions from SerializedScriptValue
2642         https://bugs.webkit.org/show_bug.cgi?id=128407
2643
2644         Reviewed by Oliver Hunt.
2645
2646         Removed functions that used Deprecated::ScriptValue
2647
2648         * Modules/indexeddb/IDBObjectStore.cpp:
2649         (WebCore::IDBObjectStore::put):
2650         * bindings/js/IDBBindingUtilities.cpp:
2651         (WebCore::deserializeIDBValue):
2652         (WebCore::deserializeIDBValueBuffer):
2653         * bindings/js/SerializedScriptValue.cpp:
2654         * bindings/js/SerializedScriptValue.h:
2655
2656 2014-02-10  Roger Fong  <roger_fong@apple.com>
2657
2658         [Windows] Unreviewed test fix.
2659
2660         * platform/graphics/cg/GraphicsContextCG.cpp: m_pixelSnappingFactor was not set to 1.
2661         (WebCore::GraphicsContext::platformInit):
2662
2663 2014-02-10  Carlos Garcia Campos  <cgarcia@igalia.com>
2664
2665         [GLIB] Add GUniqueOutPtr and use it instead of GOwnPtr
2666         https://bugs.webkit.org/show_bug.cgi?id=127554
2667
2668         Reviewed by Gustavo Noronha Silva.
2669
2670         Use GUniqueOutPtr instead of GOwnPtr.
2671
2672         * GNUmakefile.list.am:
2673         * PlatformEfl.cmake:
2674         * PlatformGTK.cmake:
2675         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
2676         (WebCore::AudioDestinationGStreamer::handleMessage):
2677         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
2678         (WebCore::AudioFileReader::handleMessage):
2679         * platform/glib/BatteryProviderUPower.cpp:
2680         (BatteryProviderUPower::startUpdating):
2681         * platform/graphics/gstreamer/GStreamerUtilities.cpp:
2682         (WebCore::initializeGStreamer):
2683         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2684         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
2685         * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
2686         (WebCore::TrackPrivateBaseGStreamer::getTag):
2687         * platform/graphics/gtk/ImageBufferGtk.cpp:
2688         (WebCore::encodeImage):
2689         (WebCore::ImageBuffer::toDataURL):
2690         * platform/graphics/gtk/ImageGtk.cpp:
2691         (WebCore::loadResourceSharedBuffer):
2692         * platform/gtk/DataObjectGtk.cpp:
2693         (WebCore::DataObjectGtk::setURIList):
2694         * platform/gtk/FileSystemGtk.cpp:
2695         (WebCore::readFromFile):
2696         * platform/gtk/GamepadsGtk.cpp:
2697         (WebCore::GamepadDeviceGtk::readCallback):
2698         * platform/gtk/GtkInputMethodFilter.cpp:
2699         (WebCore::GtkInputMethodFilter::handlePreeditChanged):
2700         * platform/gtk/PasteboardHelper.cpp:
2701         (WebCore::PasteboardHelper::fillDataObjectFromDropData):
2702         * platform/gtk/RenderThemeGtk.cpp:
2703         (WebCore::RenderThemeGtk::systemFont):
2704         * platform/gtk/SharedBufferGtk.cpp:
2705         (WebCore::SharedBuffer::createWithContentsOfFile):
2706         * platform/network/gtk/CredentialBackingStore.cpp:
2707         (WebCore::credentialForChallengeAsyncReadyCallback):
2708         * platform/network/soup/GOwnPtrSoup.cpp: Removed.
2709         * platform/network/soup/GOwnPtrSoup.h: Removed.
2710         * platform/network/soup/ResourceHandleSoup.cpp:
2711         (WebCore::redirectSkipCallback):
2712         (WebCore::nextMultipartResponsePartCallback):
2713         (WebCore::sendRequestCallback):
2714         (WebCore::addFileToSoupMessageBody):
2715         (WebCore::createSoupRequestAndMessageForHandle):
2716         (WebCore::readCallback):
2717         * platform/network/soup/SocketStreamHandleSoup.cpp:
2718         (WebCore::SocketStreamHandle::platformSend):
2719         (WebCore::SocketStreamHandle::platformClose):
2720         (WebCore::connectedCallback):
2721         (WebCore::readReadyCallback):
2722         * platform/network/soup/SoupNetworkSession.cpp:
2723         (WebCore::SoupNetworkSession::httpProxy):
2724
2725 2014-02-10  Darin Adler  <darin@apple.com>
2726
2727         Automatically generate isRendererOfType in RENDER_OBJECT_TYPE_CASTS
2728         https://bugs.webkit.org/show_bug.cgi?id=128520
2729
2730         Reviewed by Andreas Kling.
2731
2732         * rendering/RenderObject.h: Updated the RENDER_OBJECT_TYPE_CASTS macro so
2733         that it generates isRendererOfType specializations as well as type casts
2734         and also have the type casts use the isRendererOfType function. The macro
2735         also now uses an argument name of "renderer" and allows for a predicate
2736         that is more than just a single function call (see RenderTextFragment.h).
2737
2738         * rendering/RenderBlock.h:
2739         * rendering/RenderBlockFlow.h:
2740         * rendering/RenderBox.h:
2741         * rendering/RenderBoxModelObject.h:
2742         * rendering/RenderCounter.h:
2743         * rendering/RenderElement.h:
2744         * rendering/RenderFrameSet.h:
2745         * rendering/RenderLayerModelObject.h:
2746         * rendering/RenderMenuList.h:
2747         * rendering/RenderNamedFlowThread.h:
2748         * rendering/RenderRubyRun.h:
2749         * rendering/RenderTableSection.h:
2750         * rendering/RenderText.h:
2751         * rendering/mathml/RenderMathMLBlock.h:
2752         * rendering/mathml/RenderMathMLOperator.h:
2753         * rendering/mathml/RenderMathMLToken.h:
2754         * rendering/svg/RenderSVGRoot.h:
2755         * rendering/svg/RenderSVGText.h:
2756         Removed specialization of isRendererOfType, since the RENDER_OBJECT_TYPE_CASTS
2757         macro handles that now. Also removed some unneeded semicolons.
2758
2759         * rendering/RenderTextFragment.h: Use RENDER_OBJECT_TYPE_CASTS instead of
2760         hand written casts, now that it can handle a non-trivial predicate.
2761
2762         * rendering/RenderCombineText.h:
2763         * rendering/RenderDetailsMarker.h:
2764         * rendering/RenderListMarker.h:
2765         * rendering/RenderVideo.h:
2766         * rendering/RenderView.h:
2767         * rendering/mathml/RenderMathMLFraction.h:
2768         * rendering/mathml/RenderMathMLScripts.h:
2769         * rendering/mathml/RenderMathMLSpace.h:
2770         Removed unneeded semicolons.
2771
2772 2014-02-10  Darin Adler  <darin@apple.com>
2773
2774         Stop using String::deprecatedCharacters to call WTF::Collator
2775         https://bugs.webkit.org/show_bug.cgi?id=128517
2776
2777         Reviewed by Alexey Proskuryakov.
2778
2779         * xml/XSLTUnicodeSort.cpp:
2780         (WebCore::xsltUnicodeSortFunction): Create the collator in a single line using the
2781         new constructor that takes a shouldSortLowercaseFirst boolean. Use the new
2782         collateUTF8 function instead of upconverting UTF-8 strings to UTF-16 as the old code did.
2783
2784 2014-02-10  Changhun Kang  <temoochin@company100.net>
2785
2786         Remove unnecessary comment lines.
2787         https://bugs.webkit.org/show_bug.cgi?id=127894
2788
2789         Reviewed by Darin Adler.
2790
2791         No new tests. No change in behavior.
2792
2793         * Modules/websockets/WebSocketHandshake.cpp:
2794         (WebCore::WebSocketHandshake::clientHandshakeRequest):
2795
2796 2014-02-10  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
2797
2798         Fix EFL build with INSPECTOR disabled
2799         https://bugs.webkit.org/show_bug.cgi?id=125064
2800
2801         Reviewed by Csaba Osztrogonác.
2802
2803         * bindings/js/PageScriptDebugServer.cpp:
2804         * bindings/js/PageScriptDebugServer.h:
2805         * bindings/js/WorkerScriptDebugServer.cpp:
2806         * bindings/js/WorkerScriptDebugServer.h:
2807         * inspector/PageInjectedScriptManager.h:
2808
2809 2014-02-10  Zan Dobersek  <zdobersek@igalia.com>
2810
2811         Fix a few mistakes that landed with r163749.
2812
2813         Rubber-stamped by Carlos Garcia Campos.
2814
2815         * platform/gtk/GtkTouchContextHelper.cpp:
2816         (WebCore::GtkTouchContextHelper::handleEvent): When handling GDK_TOUCH_BEGIN, the assertion
2817         should ensure that the sequence-to-event map doesn't yet contain pairs with the specific
2818         sequence as the key.
2819
2820 2014-02-10  David Kilzer  <ddkilzer@apple.com>
2821
2822         Add type-safe casts for ContentData subclasses
2823         <http://webkit.org/b/128510>
2824
2825         Reviewed by Darin Adler.
2826
2827         * css/CSSComputedStyleDeclaration.cpp:
2828         (WebCore::contentToCSSValue):
2829         * css/StyleResolver.cpp:
2830         (WebCore::StyleResolver::loadPendingImages):
2831         * rendering/RenderElement.cpp:
2832         (WebCore::RenderElement::createFor):
2833         * rendering/style/RenderStyle.cpp:
2834         (WebCore::RenderStyle::setContent):
2835         - Switch to toFooContentData() methods.
2836
2837         * rendering/style/ContentData.h:
2838         - Define toFooContentData() methods.
2839         - Extract FooContentData::equals() methods so that the
2840           toFooContentData() methods can be used.
2841
2842 2014-02-09  Dirk Schulze  <dschulze@chromium.org>
2843
2844         -webkit-clip-path should support fill, stroke, view-box keywords
2845         https://bugs.webkit.org/show_bug.cgi?id=128393
2846
2847         Reviewed by Dean Jackson.
2848
2849         CSS Masking uses the keywords fill, stroke and view-box for SVG shapes.
2850         This patch updates the parser, style resolver and SVG implementation of
2851         the prefixed clip-path property.
2852
2853         Remove the unexposed and obsolete keyword bounding-box.
2854
2855         Tests: svg/clip-path/clip-path-shape-fill-expected.svg
2856                svg/clip-path/clip-path-shape-fill.svg
2857                svg/clip-path/clip-path-shape-stroke-expected.svg
2858                svg/clip-path/clip-path-shape-stroke.svg
2859                svg/clip-path/clip-path-shape-view-box-expected.svg
2860                svg/clip-path/clip-path-shape-view-box.svg
2861
2862         * css/CSSParser.cpp: Parse fill, stroke, view-box. Remove bounding-box.
2863         (WebCore::isBoxValue):
2864         * css/CSSPrimitiveValueMappings.h:
2865         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2866         (WebCore::CSSPrimitiveValue::operator LayoutBox):
2867         * css/CSSValueKeywords.in:
2868         * css/DeprecatedStyleBuilder.cpp:
2869         (WebCore::ApplyPropertyClipPath::applyValue):
2870         * rendering/RenderLayer.cpp:
2871         (WebCore::computeReferenceBox):
2872         * rendering/shapes/ShapeInfo.h:
2873         (WebCore::ShapeInfo::setShapeSize):
2874         (WebCore::ShapeInfo::logicalTopOffset):
2875         (WebCore::ShapeInfo::logicalLeftOffset):
2876         * rendering/style/RenderStyleConstants.h:
2877         * rendering/svg/SVGRenderingContext.cpp: Use different reference boxes per keyword.
2878         (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
2879
2880 2014-02-09  Dean Jackson  <dino@apple.com>
2881
2882         [WebGL] Remove state restorer code
2883         https://bugs.webkit.org/show_bug.cgi?id=128516
2884
2885         Reviewed by Dirk Schulze.
2886
2887         I'm not sure what the point of the WebGLStateRestorer class was. It was
2888         always constructed with a false parameter, and then wasn't even retained
2889         in local scope (so wouldn't have worked anyway). Meanwhile there were
2890         also LOTS of calls to cleanupAfterGraphicsCall, the majority of which
2891         were a no-op. I replaced the handful of cleanupAfterGraphicsCall(true)
2892         with the call to markContextChanged().
2893
2894         * html/canvas/OESVertexArrayObject.cpp:
2895         (WebCore::OESVertexArrayObject::bindVertexArrayOES):
2896         * html/canvas/WebGLRenderingContext.cpp:
2897         (WebCore::WebGLRenderingContext::activeTexture):
2898         (WebCore::WebGLRenderingContext::attachShader):
2899         (WebCore::WebGLRenderingContext::bindAttribLocation):
2900         (WebCore::WebGLRenderingContext::bindBuffer):
2901         (WebCore::WebGLRenderingContext::bindFramebuffer):
2902         (WebCore::WebGLRenderingContext::bindRenderbuffer):
2903         (WebCore::WebGLRenderingContext::bindTexture):
2904         (WebCore::WebGLRenderingContext::blendColor):
2905         (WebCore::WebGLRenderingContext::blendEquation):
2906         (WebCore::WebGLRenderingContext::blendEquationSeparate):
2907         (WebCore::WebGLRenderingContext::blendFunc):
2908         (WebCore::WebGLRenderingContext::blendFuncSeparate):
2909         (WebCore::WebGLRenderingContext::bufferData):
2910         (WebCore::WebGLRenderingContext::bufferSubData):
2911         (WebCore::WebGLRenderingContext::checkFramebufferStatus):
2912         (WebCore::WebGLRenderingContext::clear):
2913         (WebCore::WebGLRenderingContext::clearColor):
2914         (WebCore::WebGLRenderingContext::clearDepth):
2915         (WebCore::WebGLRenderingContext::clearStencil):
2916         (WebCore::WebGLRenderingContext::colorMask):
2917         (WebCore::WebGLRenderingContext::compileShader):
2918         (WebCore::WebGLRenderingContext::compressedTexImage2D):
2919         (WebCore::WebGLRenderingContext::compressedTexSubImage2D):
2920         (WebCore::WebGLRenderingContext::copyTexImage2D):
2921         (WebCore::WebGLRenderingContext::copyTexSubImage2D):
2922         (WebCore::WebGLRenderingContext::cullFace):
2923         (WebCore::WebGLRenderingContext::depthFunc):
2924         (WebCore::WebGLRenderingContext::depthMask):
2925         (WebCore::WebGLRenderingContext::depthRange):
2926         (WebCore::WebGLRenderingContext::detachShader):
2927         (WebCore::WebGLRenderingContext::disable):
2928         (WebCore::WebGLRenderingContext::disableVertexAttribArray):
2929         (WebCore::WebGLRenderingContext::validateDrawArrays):
2930         (WebCore::WebGLRenderingContext::drawArrays):
2931         (WebCore::WebGLRenderingContext::validateDrawElements):
2932         (WebCore::WebGLRenderingContext::drawElements):
2933         (WebCore::WebGLRenderingContext::enable):
2934         (WebCore::WebGLRenderingContext::enableVertexAttribArray):
2935         (WebCore::WebGLRenderingContext::finish):
2936         (WebCore::WebGLRenderingContext::flush):
2937         (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
2938         (WebCore::WebGLRenderingContext::framebufferTexture2D):
2939         (WebCore::WebGLRenderingContext::frontFace):
2940         (WebCore::WebGLRenderingContext::generateMipmap):
2941         (WebCore::WebGLRenderingContext::getBufferParameter):
2942         (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
2943         (WebCore::WebGLRenderingContext::getParameter):
2944         (WebCore::WebGLRenderingContext::getProgramParameter):
2945         (WebCore::WebGLRenderingContext::getProgramInfoLog):
2946         (WebCore::WebGLRenderingContext::getRenderbufferParameter):
2947         (WebCore::WebGLRenderingContext::getShaderParameter):
2948         (WebCore::WebGLRenderingContext::getShaderInfoLog):
2949         (WebCore::WebGLRenderingContext::getTexParameter):
2950         (WebCore::WebGLRenderingContext::getUniform):
2951         (WebCore::WebGLRenderingContext::getUniformLocation):
2952         (WebCore::WebGLRenderingContext::getVertexAttrib):
2953         (WebCore::WebGLRenderingContext::getVertexAttribOffset):
2954         (WebCore::WebGLRenderingContext::hint):
2955         (WebCore::WebGLRenderingContext::lineWidth):
2956         (WebCore::WebGLRenderingContext::linkProgram):
2957         (WebCore::WebGLRenderingContext::pixelStorei):
2958         (WebCore::WebGLRenderingContext::polygonOffset):
2959         (WebCore::WebGLRenderingContext::readPixels):
2960         (WebCore::WebGLRenderingContext::releaseShaderCompiler):
2961         (WebCore::WebGLRenderingContext::renderbufferStorage):
2962         (WebCore::WebGLRenderingContext::sampleCoverage):
2963         (WebCore::WebGLRenderingContext::scissor):
2964         (WebCore::WebGLRenderingContext::shaderSource):
2965         (WebCore::WebGLRenderingContext::stencilFunc):
2966         (WebCore::WebGLRenderingContext::stencilFuncSeparate):
2967         (WebCore::WebGLRenderingContext::stencilMask):
2968         (WebCore::WebGLRenderingContext::stencilMaskSeparate):
2969         (WebCore::WebGLRenderingContext::stencilOp):
2970         (WebCore::WebGLRenderingContext::stencilOpSeparate):
2971         (WebCore::WebGLRenderingContext::texImage2DBase):
2972         (WebCore::WebGLRenderingContext::texImage2D):
2973         (WebCore::WebGLRenderingContext::texParameter):
2974         (WebCore::WebGLRenderingContext::texSubImage2DBase):
2975         (WebCore::WebGLRenderingContext::uniform1f):
2976         (WebCore::WebGLRenderingContext::uniform1fv):
2977         (WebCore::WebGLRenderingContext::uniform1i):
2978         (WebCore::WebGLRenderingContext::uniform1iv):
2979         (WebCore::WebGLRenderingContext::uniform2f):
2980         (WebCore::WebGLRenderingContext::uniform2fv):
2981         (WebCore::WebGLRenderingContext::uniform2i):
2982         (WebCore::WebGLRenderingContext::uniform2iv):
2983         (WebCore::WebGLRenderingContext::uniform3f):
2984         (WebCore::WebGLRenderingContext::uniform3fv):
2985         (WebCore::WebGLRenderingContext::uniform3i):
2986         (WebCore::WebGLRenderingContext::uniform3iv):
2987         (WebCore::WebGLRenderingContext::uniform4f):
2988         (WebCore::WebGLRenderingContext::uniform4fv):
2989         (WebCore::WebGLRenderingContext::uniform4i):
2990         (WebCore::WebGLRenderingContext::uniform4iv):
2991         (WebCore::WebGLRenderingContext::uniformMatrix2fv):
2992         (WebCore::WebGLRenderingContext::uniformMatrix3fv):
2993         (WebCore::WebGLRenderingContext::uniformMatrix4fv):
2994         (WebCore::WebGLRenderingContext::useProgram):
2995         (WebCore::WebGLRenderingContext::validateProgram):
2996         (WebCore::WebGLRenderingContext::vertexAttribPointer):
2997         (WebCore::WebGLRenderingContext::viewport):
2998         (WebCore::WebGLRenderingContext::vertexAttribfImpl):
2999         (WebCore::WebGLRenderingContext::vertexAttribfvImpl):
3000         (WebCore::WebGLRenderingContext::drawArraysInstanced):
3001         (WebCore::WebGLRenderingContext::drawElementsInstanced):
3002         * html/canvas/WebGLRenderingContext.h:
3003
3004 2014-02-09  Dean Jackson  <dino@apple.com>
3005
3006         Remove unused layer owner from WebGLLayer
3007         https://bugs.webkit.org/show_bug.cgi?id=128512
3008
3009         Reviewed by Dirk Schulze.
3010
3011         The m_layerOwner and ObjC category were not
3012         used anywhere.
3013
3014         * platform/graphics/mac/WebGLLayer.h:
3015         * platform/graphics/mac/WebGLLayer.mm:
3016         (-[WebGLLayer display]):
3017
3018 2014-02-09  Ryuan Choi  <ryuan.choi@samsung.com>
3019
3020         [EFL] Remove PageClientEfl
3021         https://bugs.webkit.org/show_bug.cgi?id=128508
3022
3023         Reviewed by Andreas Kling.
3024
3025         PageClientEfl was introduced for accelerated compositing of WebKit1, but
3026         it's bad idea because it's layer violation.
3027         Indeed, it has never been used since introduced.
3028
3029         * platform/Widget.h: Back to PlatformPageClient to Evas_Object.
3030         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
3031         Removed empty method which use PageClientEfl.
3032         * platform/graphics/efl/GraphicsContext3DPrivate.h: Ditto.
3033
3034 2014-02-09  Tim Horton  <timothy_horton@apple.com>
3035
3036         [iOS][wk2] ASSERT(WebThreadIsCurrent()) in [WebDisplayLinkHandler handleDisplayLink:]
3037         https://bugs.webkit.org/show_bug.cgi?id=128490
3038
3039         Reviewed by Simon Fraser.
3040
3041         * platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
3042         (-[WebDisplayLinkHandler handleDisplayLink:]):
3043         [WebDisplayLinkHandler handleDisplayLink:] has an ASSERT(WebThreadIsCurrent()).
3044
3045         We don't use the Web Thread in WebKit2, but it looks like isMainThread()
3046         does the right thing (main thread if web thread is disabled, web thread
3047         otherwise), so use that instead.
3048
3049 2014-02-09  Anders Carlsson  <andersca@apple.com>
3050
3051         Add WTF_MAKE_FAST_ALLOCATED to more classes
3052         https://bugs.webkit.org/show_bug.cgi?id=128506
3053
3054         Reviewed by Andreas Kling.
3055
3056         * dom/Node.h:
3057         * dom/ScriptElement.h:
3058         * loader/ImageLoader.h:
3059         * loader/cache/CachedResourceClient.h:
3060         * platform/TreeShared.h:
3061         * platform/graphics/GlyphMetricsMap.h:
3062         * rendering/InlineBox.h:
3063         * rendering/RenderLayer.h:
3064         * rendering/RenderObject.h:
3065
3066 2014-02-09  Andreas Kling  <akling@apple.com>
3067
3068         Reduce ref churn in ChildNodesLazySnapshot iteration.
3069         <https://webkit.org/b/128492>
3070
3071         Add a missing release() in ChildNodesLazySnapshot::nextNode()
3072         so we don't have to churn the ref count.
3073
3074         Reviewed by Sam Weinig.
3075
3076         * dom/ContainerNode.h:
3077         (WebCore::ChildNodesLazySnapshot::nextNode):
3078
3079 2014-02-09  Andreas Kling  <akling@apple.com>
3080
3081         Reduce ref churn in ChildInsertionNotifier.
3082         <https://webkit.org/b/128494>
3083
3084         All callers of notifyNodeInsertedIntoDocument() already hold a strong
3085         reference on the Node, so there's no need to ref it again inside.
3086
3087         Reviewed by Anders Carlsson.
3088
3089         * dom/ContainerNodeAlgorithms.h:
3090         (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
3091
3092 2014-02-09  Zan Dobersek  <zdobersek@igalia.com>
3093
3094         Manage ShadowData through std::unique_ptr
3095         https://bugs.webkit.org/show_bug.cgi?id=128466
3096
3097         Reviewed by Andreas Kling.
3098
3099         Use std::unique_ptr instead of OwnPtr to manage ShadowData objects.
3100
3101         * css/SVGCSSStyleSelector.cpp:
3102         (WebCore::StyleResolver::applySVGProperty):
3103         * css/StyleResolver.cpp:
3104         (WebCore::StyleResolver::applyProperty):
3105         * page/animation/CSSPropertyAnimation.cpp:
3106         (WebCore::blendFunc):
3107         (WebCore::PropertyWrapperShadow::PropertyWrapperShadow):
3108         (WebCore::PropertyWrapperShadow::blendSimpleOrMatchedShadowLists):
3109         (WebCore::PropertyWrapperShadow::blendMismatchedShadowLists):
3110         * rendering/style/RenderStyle.cpp:
3111         (WebCore::RenderStyle::setTextShadow):
3112         (WebCore::RenderStyle::setBoxShadow):
3113         * rendering/style/RenderStyle.h:
3114         * rendering/style/SVGRenderStyle.h:
3115         (WebCore::SVGRenderStyle::setShadow):
3116         * rendering/style/SVGRenderStyleDefs.cpp:
3117         (WebCore::StyleShadowSVGData::StyleShadowSVGData):
3118         * rendering/style/SVGRenderStyleDefs.h:
3119         * rendering/style/ShadowData.cpp:
3120         (WebCore::ShadowData::ShadowData):
3121         * rendering/style/ShadowData.h:
3122         (WebCore::ShadowData::setNext):
3123         * rendering/style/StyleRareInheritedData.cpp:
3124         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
3125         * rendering/style/StyleRareInheritedData.h:
3126         * rendering/style/StyleRareNonInheritedData.cpp:
3127         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
3128         * rendering/style/StyleRareNonInheritedData.h:
3129
3130 2014-02-09  Carlos Garnacho  <carlosg@gnome.org>
3131
3132         [GTK] Add touch-events related code to build
3133         https://bugs.webkit.org/show_bug.cgi?id=98931
3134
3135         Reviewed by Carlos Garcia Campos.
3136
3137         Tests in fast/events/touch have been enabled on GTK+ now that touch
3138         support is implemented, and thus all expected bits are there.
3139
3140         * platform/gtk/GtkTouchContextHelper.cpp:
3141         * platform/gtk/GtkTouchContextHelper.h: Add helper object to track all touchpoints, handy
3142         when creating WebTouchEvents.
3143         * GNUmakefile.list.am:
3144         * PlatformGTK.cmake:
3145         * bindings/gobject/GNUmakefile.am: Add touch related code and idls to build, those are
3146         necessary now that GTK+ implements touch events.
3147
3148 2014-02-09  Zan Dobersek  <zdobersek@igalia.com>
3149
3150         Switch the rest of CSS code from OwnPtr over to std::unique_ptr
3151         https://bugs.webkit.org/show_bug.cgi?id=128471
3152
3153         Reviewed by Andreas Kling.
3154
3155         Replace the remaining uses of OwnPtr in the CSS code with std::unique_ptr, covering
3156         the CSSParser, CSSParserSelector and CSSSelector classes and a few additional, closely related classes.
3157
3158         * css/CSSGrammar.y.in:
3159         * css/CSSParser.cpp:
3160         (WebCore::CSSParser::parseSheet):
3161         (WebCore::CSSParser::parseDeclaration):
3162         (WebCore::CSSParser::parseValue):
3163         (WebCore::CSSParser::markSupportsRuleHeaderStart):
3164         (WebCore::CSSParser::createKeyframesRule):
3165         (WebCore::CSSParser::createStyleRule):
3166         (WebCore::CSSParser::rewriteSpecifiersWithElementName):
3167         (WebCore::CSSParser::rewriteSpecifiers):
3168         * css/CSSParser.h:
3169         * css/CSSParserValues.cpp:
3170         (WebCore::CSSParserSelector::CSSParserSelector):
3171         (WebCore::CSSParserSelector::~CSSParserSelector):
3172         (WebCore::CSSParserSelector::adoptSelectorVector):
3173         (WebCore::CSSParserSelector::insertTagHistory):
3174         (WebCore::CSSParserSelector::appendTagHistory):
3175         (WebCore::CSSParserSelector::prependTagSelector):
3176         * css/CSSParserValues.h:
3177         (WebCore::CSSParserSelector::releaseSelector):
3178         (WebCore::CSSParserSelector::setTagHistory):
3179         (WebCore::CSSParserSelector::clearTagHistory):
3180         * css/CSSSelector.cpp:
3181         (WebCore::CSSSelector::setSelectorList):
3182         * css/CSSSelector.h:
3183         * css/CSSSelectorList.cpp:
3184         (WebCore::CSSSelectorList::adoptSelectorVector):
3185         * css/CSSSelectorList.h:
3186         * css/CSSValueList.cpp:
3187         * css/StyleRule.cpp:
3188         (WebCore::StyleRuleRegion::StyleRuleRegion):
3189         * css/StyleRule.h:
3190         (WebCore::StyleRule::parserAdoptSelectorVector):
3191         (WebCore::StyleRulePage::parserAdoptSelectorVector):
3192         (WebCore::StyleRuleRegion::create):
3193
3194 2014-02-09  Zan Dobersek  <zdobersek@igalia.com>
3195
3196         Manage MutationObserverInterestGroup through std::unique_ptr
3197         https://bugs.webkit.org/show_bug.cgi?id=128468
3198
3199         Reviewed by Andreas Kling.
3200
3201         Use std::unique_ptr instead of OwnPtr for managing MutationObserverInterestGroup objects.
3202
3203         * css/PropertySetCSSStyleDeclaration.cpp:
3204         * dom/CharacterData.cpp:
3205         (WebCore::CharacterData::dispatchModifiedEvent):
3206         * dom/ChildListMutationScope.cpp:
3207         (WebCore::ChildListMutationAccumulator::ChildListMutationAccumulator):
3208         * dom/ChildListMutationScope.h:
3209         (WebCore::ChildListMutationAccumulator::hasObservers):
3210         * dom/Element.cpp:
3211         (WebCore::Element::willModifyAttribute):
3212         * dom/MutationObserverInterestGroup.cpp:
3213         (WebCore::MutationObserverInterestGroup::createIfNeeded):
3214         * dom/MutationObserverInterestGroup.h:
3215         (WebCore::MutationObserverInterestGroup::createForChildListMutation):
3216         (WebCore::MutationObserverInterestGroup::createForCharacterDataMutation):
3217         (WebCore::MutationObserverInterestGroup::createForAttributesMutation):
3218
3219 2014-02-09  Zan Dobersek  <zdobersek@igalia.com>
3220
3221         Manage MessagePort, MessagePortChannel and friends through std::unique_ptr
3222         https://bugs.webkit.org/show_bug.cgi?id=128467
3223
3224         Reviewed by Andreas Kling.
3225
3226         Use std::unique_ptr instead of OwnPtr to manage MessagePort, MessagePortArray, MessagePortChannel
3227         and MessagePortChannelArray objects.
3228
3229         * bindings/js/JSMessageEventCustom.cpp:
3230         (WebCore::handleInitMessageEvent):
3231         * dom/MessageEvent.cpp:
3232         (WebCore::MessageEvent::MessageEvent):
3233         (WebCore::MessageEvent::initMessageEvent):
3234         * dom/MessageEvent.h:
3235         (WebCore::MessageEvent::create):
3236         * dom/MessagePort.cpp:
3237         (WebCore::MessagePort::postMessage):
3238         (WebCore::MessagePort::disentangle):
3239         (WebCore::MessagePort::entangle):
3240         (WebCore::MessagePort::dispatchMessages):
3241         (WebCore::MessagePort::disentanglePorts):
3242         (WebCore::MessagePort::entanglePorts):
3243         * dom/MessagePort.h:
3244         * dom/MessagePortChannel.h:
3245         * dom/default/PlatformMessagePortChannel.cpp:
3246         (WebCore::PlatformMessagePortChannel::EventData::EventData):
3247         (WebCore::MessagePortChannel::createChannel):
3248         (WebCore::MessagePortChannel::postMessageToRemote):
3249         (WebCore::MessagePortChannel::tryGetMessageFromRemote):
3250         * dom/default/PlatformMessagePortChannel.h:
3251         (WebCore::PlatformMessagePortChannel::EventData::channels):
3252         * page/DOMWindow.cpp:
3253         (WebCore::PostMessageTimer::PostMessageTimer):
3254         (WebCore::PostMessageTimer::event):
3255         (WebCore::DOMWindow::postMessage):
3256         * workers/DedicatedWorkerGlobalScope.cpp:
3257         (WebCore::DedicatedWorkerGlobalScope::postMessage):
3258         * workers/DefaultSharedWorkerRepository.cpp:
3259         (WebCore::SharedWorkerConnectTask::create):
3260         (WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
3261         (WebCore::SharedWorkerConnectTask::performTask):
3262         (WebCore::SharedWorkerScriptLoader::SharedWorkerScriptLoader):
3263         (WebCore::SharedWorkerScriptLoader::notifyFinished):
3264         (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
3265         (WebCore::DefaultSharedWorkerRepository::connectToWorker):
3266         * workers/DefaultSharedWorkerRepository.h:
3267         * workers/SharedWorker.cpp:
3268         (WebCore::SharedWorker::create):
3269         * workers/SharedWorkerGlobalScope.cpp:
3270         (WebCore::createConnectEvent):
3271         * workers/SharedWorkerRepository.cpp:
3272         (WebCore::SharedWorkerRepository::connect):
3273         * workers/SharedWorkerRepository.h:
3274         * workers/Worker.cpp:
3275         (WebCore::Worker::postMessage):
3276         * workers/WorkerGlobalScopeProxy.h:
3277         * workers/WorkerMessagingProxy.cpp:
3278         (WebCore::MessageWorkerGlobalScopeTask::create):
3279         (WebCore::MessageWorkerGlobalScopeTask::MessageWorkerGlobalScopeTask):
3280         (WebCore::MessageWorkerGlobalScopeTask::performTask):
3281         (WebCore::MessageWorkerTask::create):
3282         (WebCore::MessageWorkerTask::MessageWorkerTask):
3283         (WebCore::MessageWorkerTask::performTask):
3284         (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
3285         (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
3286         * workers/WorkerMessagingProxy.h:
3287         * workers/WorkerObjectProxy.h:
3288
3289 2014-02-08  Ryosuke Niwa  <rniwa@webkit.org>
3290
3291         Cleanup the interface of FrameSelection
3292         https://bugs.webkit.org/show_bug.cgi?id=128481
3293
3294         Reviewed by Andreas Kling.
3295
3296         Removed FrameSelection::end() as intended in r163232, and the stale declaration of
3297         paintDragCaret() which was supposed to be removed when we extracted DragCaretController.
3298
3299         Renamed caretRenderer() to caretRendererWithoutUpdatingLayout() to clarify the contract
3300         as the only caller of this function is RenderBlock::paintCaret. Also renamed bounds()
3301         to selectionBounds() to make it more easily identifiable / grep'able.
3302
3303         In addition, made recomputeCaretRect() and invalidateCaretRect() private.
3304
3305         * WebCore.exp.in:
3306         * editing/FrameSelection.cpp:
3307         (WebCore::FrameSelection::caretRendererWithoutUpdatingLayout):
3308         (WebCore::FrameSelection::selectionBounds):
3309         (WebCore::FrameSelection::revealSelection):
3310         * editing/FrameSelection.h:
3311         (WebCore::FrameSelection::setCaretVisible):
3312         * page/DragController.cpp:
3313         (WebCore::dragLocForSelectionDrag):
3314         * page/FrameSnapshotting.cpp:
3315         (WebCore::snapshotSelection):
3316         * page/win/FrameWin.cpp:
3317         (WebCore::imageFromSelection):
3318         * rendering/RenderBlock.cpp:
3319         (WebCore::RenderBlock::paintCaret):
3320         * testing/Internals.cpp:
3321         (WebCore::Internals::selectionBounds):
3322
3323 2014-02-08  Dan Bernstein  <mitz@apple.com>
3324
3325         Reverted part of r163734, because the assertion it enabled still fails when running
3326         loader/load-defer-resume-crash.html
3327
3328         * loader/DocumentLoader.cpp:
3329         (WebCore::DocumentLoader::dataReceived):
3330
3331 2014-02-08  Ryosuke Niwa  <rniwa@webkit.org>
3332
3333         EFL build fix after r163729.
3334
3335         * Modules/indexeddb/IDBDatabase.cpp:
3336         (WebCore::IDBDatabase::version):
3337
3338 2014-02-08  Dan Bernstein  <mitz@apple.com>
3339
3340         Remove outdated workarounds in DocumentLoader::dataReceived
3341         https://bugs.webkit.org/show_bug.cgi?id=128465
3342
3343         Reviewed by Andreas Kling.
3344
3345         * loader/DocumentLoader.cpp:
3346         (WebCore::DocumentLoader::dataReceived):
3347
3348 2014-02-08  Alexey Proskuryakov  <ap@apple.com>
3349
3350         Remove some unused functions from SerializedScriptValue
3351         https://bugs.webkit.org/show_bug.cgi?id=128407
3352
3353         Reviewed by Oliver Hunt.
3354
3355         Removed more unused code, particularly in API helpers. Renamed one serialize()
3356         function to create(), because it does the same thing as other create() functions.
3357
3358         * Modules/indexeddb/IDBObjectStore.cpp:
3359         (WebCore::IDBObjectStore::put):
3360         * bindings/js/SerializedScriptValue.cpp:
3361         (WebCore::SerializedScriptValue::create):
3362         (WebCore::SerializedScriptValue::deserialize):
3363         * bindings/js/SerializedScriptValue.h:
3364
3365 2014-02-08  Brady Eidson  <beidson@apple.com>
3366
3367         IDB: storage/indexeddb/mozilla/versionchange-abort.html fails
3368         <rdar://problem/16018887> and https://bugs.webkit.org/show_bug.cgi?id=128442
3369
3370         Reviewed by Dan Bernstein.
3371
3372         Tested by storage/indexeddb/mozilla/versionchange-abort.html (and probably others)
3373
3374         * Modules/indexeddb/IDBDatabase.cpp:
3375         (WebCore::IDBDatabase::version): If the version is NoIntVersion, return DefaultIntVersion to script.
3376
3377 2014-02-08  Brady Eidson  <beidson@apple.com>
3378
3379         IDB: storage/indexeddb/mozilla/cursors.html fails
3380         <rdar://problem/16017998> and https://bugs.webkit.org/show_bug.cgi?id=128423
3381
3382         Reviewed by Dan Bernstein.
3383
3384         Tested by storage/indexeddb/mozilla/cursors.html (And probably others)
3385
3386         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
3387         (WebCore::OpenCursorOperation::perform): Distinguish between an error while opening the cursor
3388           and opening a cursor that points to no records.
3389
3390 2014-02-08  Andreas Kling  <akling@apple.com>
3391
3392         Remove unused ChromeClient::layoutUpdated().
3393         <https://webkit.org/b/128470>
3394
3395         Nobody listens for this callback anymore so remove it.
3396
3397         Reviewed by Anders Carlsson.
3398
3399         * page/Chrome.cpp:
3400         * page/Chrome.h:
3401         * page/ChromeClient.h:
3402         * page/FrameView.cpp:
3403         (WebCore::FrameView::layout):
3404
3405 2014-02-08  Dan Bernstein  <mitz@apple.com>
3406
3407         Stop using PLATFORM(MAC) in WebCore except where it means “OS X but not iOS”
3408         https://bugs.webkit.org/show_bug.cgi?id=128464
3409
3410         Reviewed by Anders Carlsson.
3411
3412         * Modules/webaudio/AudioContext.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
3413         (WebCore::AudioContext::constructCommon):
3414         * accessibility/AccessibilityNodeObject.cpp: Ditto.
3415         (WebCore::AccessibilityNodeObject::visibleText):
3416         * accessibility/AccessibilityObject.h: Ditto.
3417         * accessibility/AccessibilityRenderObject.cpp: Ditto.
3418         (WebCore::AccessibilityRenderObject::clickPoint):
3419         (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
3420         (WebCore::AccessibilityRenderObject::addChildren):
3421         * accessibility/AccessibilityRenderObject.h: Ditto.
3422         * bindings/js/JSInspectorFrontendHostCustom.cpp:
3423         (WebCore::JSInspectorFrontendHost::platform): Made it explicit that this function returns
3424         "mac" when built for iOS.
3425         * bindings/js/ScriptController.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
3426         (WebCore::ScriptController::ScriptController):
3427         * bindings/js/ScriptController.h: Ditto.
3428         * crypto/CryptoKey.cpp: Changed PLATFORM(MAC) to OS(DARWIN) && !PLATFORM(EFL) &&
3429         !PLATFORM(GTK) when checking for whether to use CoreCrypto.
3430         * crypto/keys/CryptoKeyRSA.h: Ditto.
3431         * dom/Clipboard.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
3432         * dom/Document.cpp: Ditto.
3433         (WebCore::Document::implicitClose):
3434         * dom/KeyboardEvent.h: Ditto.
3435         * editing/Editor.cpp: Ditto.
3436         (WebCore::Editor::cut):
3437         (WebCore::Editor::copy):
3438         (WebCore::Editor::copyImage):
3439         * editing/Editor.h: Ditto.
3440         * editing/FrameSelection.h: Ditto.
3441         * editing/TypingCommand.cpp: Ditto.
3442         (WebCore::TypingCommand::typingAddedToOpenCommand):
3443         * history/HistoryItem.h: Ditto.
3444         * html/HTMLMediaElement.cpp: Ditto.
3445         (WebCore::HTMLMediaElement::parseAttribute):
3446         * html/HTMLMediaElement.h: Ditto.
3447         * html/HTMLPlugInElement.cpp: Ditto.
3448         (WebCore::registeredPluginReplacements):
3449         * html/HTMLPlugInImageElement.cpp: Ditto.
3450         (WebCore::HTMLPlugInImageElement::setDisplayState):
3451         * html/HTMLSelectElement.cpp: Ditto.
3452         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
3453         * html/shadow/MediaControlElements.cpp: Ditto.
3454         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
3455         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
3456         * html/shadow/MediaControlElements.h: Ditto.
3457         * inspector/InspectorIndexedDBAgent.cpp: Ditto.
3458         * loader/CookieJar.cpp: Ditto.
3459         * loader/DocumentLoader.cpp: Ditto.
3460         (WebCore::DocumentLoader::dataReceived):
3461         * loader/DocumentLoader.h: Ditto.
3462         (WebCore::DocumentLoader::didTellClientAboutLoad):
3463         * loader/EmptyClients.h: Ditto.
3464         * loader/FrameLoader.cpp:
3465         (WebCore::FrameLoader::loadArchive): Added !PLATFORM(IOS) around Mac-only workaround.
3466         (WebCore::FrameLoader::defaultObjectContentType): Changed PLATFORM(MAC) to PLATFORM(COCOA).
3467         (WebCore::FrameLoader::subresourceCachePolicy): Ditto.
3468         * loader/ResourceBuffer.h: Changed PLATFORM(MAC) to USE(FOUNDATION) around functions that
3469         are implemented using Foundation.
3470         * loader/ResourceLoadScheduler.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
3471         (WebCore::ResourceLoadScheduler::scheduleLoad):
3472         * loader/ResourceLoader.cpp: Ditto.
3473         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
3474         * loader/ResourceLoader.h: Ditto.
3475         * loader/archive/cf/LegacyWebArchive.cpp: Ditto.
3476         * loader/cache/CachedResource.cpp: Changed PLATFORM(MAC) to USE(FOUNDATION) around function
3477         that is implemented using other USE(FOUNDATION)-guarded code.
3478         * loader/cache/CachedResource.h: Ditto.
3479         * page/Chrome.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
3480         * page/ChromeClient.h: Ditto.
3481         * page/ContextMenuClient.h: Ditto.
3482         * page/ContextMenuController.cpp: Ditto.
3483         (WebCore::ContextMenuController::contextMenuItemSelected):
3484         (WebCore::ContextMenuController::createAndAppendFontSubMenu):
3485         (WebCore::ContextMenuController::createAndAppendSpellingAndGrammarSubMenu):
3486         (WebCore::ContextMenuController::populate):
3487         (WebCore::ContextMenuController::checkOrEnableIfNeeded):
3488         * page/DragClient.h: Ditto.
3489         * page/DragController.cpp: Ditto.
3490         (WebCore::dragLocForDHTMLDrag):
3491         (WebCore::dragLocForSelectionDrag):
3492         (WebCore::DragController::startDrag):
3493         (WebCore::DragController::doImageDrag):
3494         * page/EditorClient.h: Ditto.
3495         * page/EventHandler.cpp: Ditto.
3496         (WebCore::EventHandler::EventHandler):
3497         (WebCore::EventHandler::handleMouseDraggedEvent):
3498         (WebCore::EventHandler::logicalScrollRecursively):
3499         (WebCore::EventHandler::clearDragState):
3500         (WebCore::EventHandler::handleWheelEvent):
3501         (WebCore::EventHandler::defaultWheelEventHandler):
3502         (WebCore::EventHandler::keyEvent):
3503         (WebCore::EventHandler::eventInvertsTabsToLinksClientCallResult):
3504         * page/EventHandler.h: Ditto.
3505         * page/FrameView.cpp: Ditto.
3506         (WebCore::FrameView::layout):
3507         * page/Page.h: Ditto.
3508         * page/Settings.cpp: Ditto.
3509         * page/Settings.h: Ditto.
3510         * page/scrolling/ScrollingCoordinator.cpp: Ditto.
3511         * page/scrolling/ScrollingCoordinator.h: Ditto.
3512         * page/scrolling/ScrollingStateNode.h: Removed unused #include.
3513         * page/scrolling/ScrollingThread.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
3514         (WebCore::ScrollingThread::createThreadIfNeeded):
3515         * page/scrolling/ScrollingThread.h: Ditto.
3516         * platform/network/cf/ResourceRequest.h: Added !PLATFORM(IOS) around
3517         applyWebArchiveHackForMail.
3518         * platform/network/cf/ResourceRequestCFNet.cpp:
3519         (WebCore::ResourceRequest::applyWebArchiveHackForMail): Ditto.
3520         * platform/network/mac/ResourceRequestMac.mm:
3521         (WebCore::ResourceRequest::applyWebArchiveHackForMail): Ditto.
3522         * plugins/PluginViewNone.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA)
3523         * rendering/RenderBox.cpp: Ditto.
3524         (WebCore::RenderBox::logicalScroll):
3525         * rendering/RenderLayerBacking.cpp: Ditto.
3526         (WebCore::RenderLayerBacking::createGraphicsLayer):
3527         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
3528         * rendering/RenderMenuList.h: Ditto.
3529         * rendering/RenderText.cpp: Ditto.
3530         (WebCore::RenderText::previousOffsetForBackwardDeletion):
3531         * rendering/break_lines.cpp: Removed unused #include.
3532         * testing/js/WebCoreTestSupport.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
3533         * xml/XSLStyleSheetLibxslt.cpp: Changed PLATFORM(MAC) to OS(DARWIN) && !PLATFORM(EFL) &&
3534         !PLATFORM(GTK) around soft-linking libxslt.
3535         * xml/XSLTExtensions.cpp: Ditto.
3536         * xml/XSLTProcessorLibxslt.cpp: Ditto.
3537         * xml/XSLTUnicodeSort.cpp: Ditto.
3538
3539 2014-02-08  Andreas Kling  <akling@apple.com>
3540
3541         Remove unused ChromeClient::formStateDidChange().
3542         <https://webkit.org/b/128469>
3543
3544         Nobody listens for this callback anymore so remove it and stop
3545         spamming no-op virtual dispatches in forms code.
3546
3547         Reviewed by Anders Carlsson.
3548
3549         * html/FileInputType.cpp:
3550         (WebCore::FileInputType::setFiles):
3551         * html/HTMLFormControlElementWithState.cpp:
3552         * html/HTMLFormControlElementWithState.h:
3553         * html/HTMLInputElement.cpp:
3554         (WebCore::HTMLInputElement::updateType):
3555         (WebCore::HTMLInputElement::setValue):
3556         (WebCore::HTMLInputElement::setValueFromRenderer):
3557         * html/HTMLSelectElement.cpp:
3558         (WebCore::HTMLSelectElement::updateListBoxSelection):
3559         (WebCore::HTMLSelectElement::selectOption):
3560         * html/HTMLTextAreaElement.cpp:
3561         (WebCore::HTMLTextAreaElement::updateValue):
3562         (WebCore::HTMLTextAreaElement::setValueCommon):
3563         * loader/EmptyClients.h:
3564         * page/ChromeClient.h:
3565
3566 2014-02-08  Chris J. Shull  <chrisjshull@gmail.com>
3567
3568         Web Inspector: Find evaluates attributes in a case sensitive manner
3569         https://bugs.webkit.org/show_bug.cgi?id=128405
3570
3571         Reviewed by Timothy Hatcher.
3572
3573         Changed matchesAttribute to ignore case.
3574
3575         Updated existing test with additional cases: 
3576         inspector-protocol/dom/dom-search.html
3577
3578         * inspector/InspectorNodeFinder.cpp:
3579         (WebCore::InspectorNodeFinder::matchesAttribute):
3580
3581 2014-02-08  Andreas Kling  <akling@apple.com>
3582
3583         Remove unused FrameLoaderClient::dispatchWillOpenSocketStream().
3584         <https://webkit.org/b/128472>
3585
3586         Nobody listens for this callback anymore so remove it.
3587
3588         Reviewed by Anders Carlsson.
3589
3590         * Modules/websockets/WebSocketChannel.cpp:
3591         (WebCore::WebSocketChannel::willOpenSocketStream):
3592         * loader/FrameLoaderClient.h:
3593
3594 2014-02-08  Ryosuke Niwa  <rniwa@webkit.org>
3595
3596         Split UserTriggered into FireSelectEvent and RevealSelection for selection options
3597         https://bugs.webkit.org/show_bug.cgi?id=128441
3598
3599         Reviewed by Darin Adler.
3600
3601         Split UserTriggered by FireSelectEvent and RevealSelection for selection options.
3602
3603         Also added defaultSetSelectionOptions() to abstract away the default options.
3604
3605         * editing/AlternativeTextController.cpp:
3606         (WebCore::AlternativeTextController::respondToUnappliedSpellCorrection):
3607         * editing/Editor.cpp:
3608         (WebCore::Editor::unappliedEditing):
3609         (WebCore::Editor::reappliedEditing):
3610         * editing/FrameSelection.cpp:
3611         (WebCore::FrameSelection::moveTo):
3612         (WebCore::FrameSelection::setSelectionByMouseIfDifferent): UserTriggered | DoNotRevealSelection
3613         is replaced by FireSelectEvent.
3614         (WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): Check options & FireSelectEvent
3615         instead of options & UserTriggered.
3616         (WebCore::FrameSelection::setSelection): Check options & RevealSelection instead of
3617         options & UserTriggered && !(options & DoNotRevealSelection).
3618         (WebCore::FrameSelection::prepareForDestruction):
3619         (WebCore::FrameSelection::setBase):
3620         (WebCore::FrameSelection::setExtent):
3621         (WebCore::FrameSelection::selectAll):
3622         (WebCore::FrameSelection::wordSelectionContainingCaretSelection):
3623         * editing/FrameSelection.h:
3624         (WebCore::FrameSelection::defaultSetSelectionOptions): Added.
3625         * editing/SpellingCorrectionCommand.cpp:
3626         (WebCore::SpellingCorrectionCommand::doApply):
3627         * html/HTMLTextFormControlElement.cpp:
3628         (WebCore::HTMLTextFormControlElement::selectionChanged): Renamed the argument.
3629         * html/HTMLTextFormControlElement.h:
3630
3631 2014-02-08  Zan Dobersek  <zdobersek@igalia.com>
3632
3633         Move TreeScope, IdTargetObserverRegistry to std::unique_ptr
3634         https://bugs.webkit.org/show_bug.cgi?id=127276
3635
3636         Reviewed by Andreas Kling.
3637
3638         Replace uses of OwnPtr in the TreeScope and IdTargetObserverRegistry classes with std::unique_ptr.
3639
3640         * dom/IdTargetObserverRegistry.cpp:
3641         (WebCore::IdTargetObserverRegistry::addObserver):
3642         * dom/IdTargetObserverRegistry.h:
3643         (WebCore::IdTargetObserverRegistry::IdTargetObserverRegistry):
3644         * dom/TreeScope.cpp:
3645         (WebCore::TreeScope::TreeScope):
3646         (WebCore::TreeScope::destroyTreeScopeData):
3647         (WebCore::TreeScope::addElementById):
3648         (WebCore::TreeScope::addElementByName):
3649         (WebCore::TreeScope::addImageMap):
3650         (WebCore::TreeScope::labelElementForId):
3651         * dom/TreeScope.h:
3652         (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
3653
3654 2014-02-08  Anders Carlsson  <andersca@apple.com>
3655
3656         Slight CTTE in PingLoader
3657         https://bugs.webkit.org/show_bug.cgi?id=128462
3658
3659         Reviewed by Dan Bernstein.
3660
3661         PingLoader always wants a non-null frame.
3662
3663         * html/HTMLAnchorElement.cpp:
3664         (WebCore::HTMLAnchorElement::sendPings):
3665         * html/parser/XSSAuditorDelegate.cpp:
3666         (WebCore::XSSAuditorDelegate::didBlockScript):
3667         * inspector/InspectorInstrumentation.h:
3668         (WebCore::InspectorInstrumentation::continueAfterPingLoader):
3669         * loader/PingLoader.cpp:
3670         (WebCore::PingLoader::loadImage):
3671         (WebCore::PingLoader::sendPing):
3672         (WebCore::PingLoader::sendViolationReport):
3673         (WebCore::PingLoader::createPingLoader):
3674         (WebCore::PingLoader::PingLoader):
3675         * loader/PingLoader.h:
3676         * loader/cache/CachedResourceLoader.cpp:
3677         (WebCore::CachedResourceLoader::requestImage):
3678         * page/ContentSecurityPolicy.cpp:
3679         (WebCore::ContentSecurityPolicy::reportViolation):
3680
3681 2014-02-08  Dan Bernstein  <mitz@apple.com>
3682
3683         Remove client-drawn highlights (-webkit-highlight, WebHTMLHighlighter)
3684         https://bugs.webkit.org/show_bug.cgi?id=128456
3685
3686         Reviewed by Anders Carlsson.
3687
3688         Updated fast/css/getComputedStyle and svg/css results.
3689
3690         * css/CSSComputedStyleDeclaration.cpp:
3691         (WebCore::ComputedStyleExtractor::propertyValue): Removed CSSPropertyWebKitHighlight case.
3692         * css/CSSParser.cpp:
3693         (WebCore::CSSParser::parseValue): Ditto.
3694         * css/CSSPropertyNames.in: Removed -webkit-highlight.
3695         * css/DeprecatedStyleBuilder.cpp:
3696         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Removed
3697         CSSPropertyWebKitHighlight handler.
3698         * css/StyleResolver.cpp:
3699         (WebCore::StyleResolver::applyProperty): Removed CSSPropertyWebKitHighlight case.
3700         * page/Chrome.cpp: Removed customHighlightRect and paintCustomHighlight.
3701         * page/ChromeClient.h: Ditto.
3702         * rendering/InlineTextBox.cpp:
3703         (WebCore::InlineTextBox::paint): Removed painting custom highlight.
3704         * rendering/InlineTextBox.h:
3705         * rendering/RenderBlockLineLayout.cpp:
3706         (WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns): Removed adding overflow for custom
3707         highlights.
3708         * rendering/RenderBox.cpp: Removed paintCustomHighlight.
3709         * rendering/RenderBox.h:
3710         * rendering/RenderImage.cpp:
3711         (WebCore::RenderImage::paintReplaced): Removed painting custom highlight.
3712         * rendering/RenderListMarker.cpp:
3713         (WebCore::RenderListMarker::paint): Ditto.
3714         * rendering/RenderSnapshottedPlugIn.cpp:
3715         (WebCore::RenderSnapshottedPlugIn::paintSnapshot): Ditto.
3716         * rendering/RenderWidget.cpp:
3717         (WebCore::RenderWidget::paint): Ditto.
3718         * rendering/RootInlineBox.cpp:
3719         (WebCore::RootInlineBox::paint): Ditto.
3720         * rendering/RootInlineBox.h:
3721         * rendering/style/RenderStyle.cpp:
3722         (WebCore::RenderStyle::changeRequiresLayout): Removed highlight comparison.
3723         * rendering/style/RenderStyle.h:
3724         * rendering/style/StyleRareInheritedData.cpp:
3725         (WebCore::StyleRareInheritedData::StyleRareInheritedData): Removed initializer.
3726         (WebCore::StyleRareInheritedData::operator==): Removed highlight comparison.
3727         * rendering/style/StyleRareInheritedData.h: Removed highlight member variable.
3728
3729 2014-02-08  Dan Bernstein  <mitz@apple.com>
3730
3731         One more build fix fix.
3732
3733         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
3734         (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
3735
3736 2014-02-08  Dan Bernstein  <mitz@apple.com>
3737
3738         More (and more correct) iOS build fix after r163712.
3739
3740         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
3741         (AXAttributedStringAppendText):
3742         (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
3743         * page/ios/FrameIOS.mm:
3744         (WebCore::Frame::wordsInCurrentParagraph):
3745
3746 2014-02-08  Dan Bernstein  <mitz@apple.com>
3747
3748         iOS build fix after r163712.
3749
3750         * page/ios/FrameIOS.mm:
3751         (WebCore::Frame::indexCountOfWordPrecedingSelection):
3752         (WebCore::Frame::wordsInCurrentParagraph):
3753
3754 2014-02-08  Darin Adler  <darin@apple.com>
3755
3756         Change TextIterator to use StringView, preparing to wean it from deprecatedCharacters
3757         https://bugs.webkit.org/show_bug.cgi?id=128233
3758
3759         Reviewed by Anders Carlsson.
3760
3761         * accessibility/AccessibilityNodeObject.cpp: Removed unneeded TextIterator.h include.
3762
3763         * accessibility/AccessibilityObject.cpp:
3764         (WebCore::AccessibilityObject::hasMisspelling): Updated to use StringView for checkSpelling.
3765
3766         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
3767         (AXAttributeStringSetSpelling): Changed to take a StringView.
3768         (AXAttributedStringAppendText): Ditto.
3769         (-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]): Pass StringView.
3770
3771         * editing/Editor.cpp:
3772         (WebCore::Editor::misspelledWordAtCaretOrRange): Pass StringView.
3773         (WebCore::Editor::misspelledSelectionString): Ditto.
3774         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): Ditto.
3775
3776         * editing/TextCheckingHelper.cpp:
3777         (WebCore::findGrammaticalErrors): Renamed this function. Changed to use StringView.
3778         (WebCore::findMisspellings): Use StringView.
3779         (WebCore::TextCheckingHelper::findFirstMisspelling): Ditto. Also separated out assertions
3780         that were asserting multiple things with &&.
3781         (WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar): Ditto.
3782         (WebCore::TextCheckingHelper::findFirstGrammarDetail): Ditto.
3783         (WebCore::TextCheckingHelper::findFirstBadGrammar): Ditto.
3784         (WebCore::TextCheckingHelper::isUngrammatical): Ditto.
3785         (WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange): Ditto.
3786         (WebCore::checkTextOfParagraph): Ditto.
3787
3788         * editing/TextCheckingHelper.h: Made TextCheckingParagraph::text public. Deleted
3789         TextCheckingParagraph::textDeprecatedCharacters. Added comments about additional
3790         TextCheckingParagraph refinements. Changed checkTextOfParagraph to take a client
3791         reference instead of pointer and StringView instead of characters pointer with length.
3792
3793         * editing/TextIterator.cpp:
3794         (WebCore::TextIterator::appendTextToStringBuilder): Use data members directly,
3795         rather than using functions, since we already checked m_textCharacters for null.
3796         (WebCore::CharacterIterator::string): Use text() instead of characters().
3797         (WebCore::WordAwareIterator::WordAwareIterator): Removed initialization of
3798         m_previousText now that it's a StringView rather than a pointer.
3799         (WebCore::WordAwareIterator::advance): Use TextIterator::text instead of
3800         TextIterator::characters. Also added a FIXME about a fundamental problem
3801         with the implementation of this class!
3802         (WebCore::WordAwareIterator::length): Updated for m_previousText change.
3803         (WebCore::WordAwareIterator::text): Replaced WordAwareIterator::characters with this.
3804         (WebCore::SearchBuffer::append): Changed to take a StringView.
3805         (WebCore::SearchBuffer::prependContext): Ditto.
3806         (WebCore::SearchBuffer::isWordStartMatch): Use StringView.
3807         (WebCore::SearchBuffer::search): Ditto.
3808         (WebCore::findPlainText): Ditto.
3809
3810         * editing/TextIterator.h: Added TextIterator::text that returns a StringView, and
3811         renamed TextIterator::characters to TextIterator::deprecatedTextIteratorCharacters
3812         (easy to search for in source code). Added SimplifiedBackwardsTextIterator::text
3813         and removed SimplifiedBackwardsTextIterator::characters. Added CharacterIterator::text,
3814         and removed CharacterIterator::characters. Added WordAwareIterator::text and removed
3815         WorkdAwareIterator::characters. Changed WordAwareIterator data members to use StringView.
3816
3817         * editing/VisibleSelection.cpp:
3818         (WebCore::VisibleSelection::appendTrailingWhitespace): Use TextIterator::text instead
3819         of TextIterator::characters.
3820
3821         * editing/VisibleUnits.cpp:
3822         (WebCore::previousBoundary): Updated to use StringView.
3823         (WebCore::nextBoundary): Ditto.
3824         (WebCore::startWordBoundary): Ditto.
3825         (WebCore::startOfWord): Ditto.
3826         (WebCore::endWordBoundary): Ditto.
3827         (WebCore::endOfWord): Fixed formatting.
3828         (WebCore::previousWordPositionBoundary): Updated to use StringView.
3829         (WebCore::previousWordPosition): Fixed formatting and got rid of local variable.
3830         (WebCore::nextWordPositionBoundary): Updated to use StringView.
3831         (WebCore::nextWordPosition): Fixed formatting and got rid of local variable.
3832         (WebCore::inSameLine): Fixed formatting.
3833         (WebCore::isStartOfLine): Ditto.
3834         (WebCore::isEndOfLine): Ditto.
3835         (WebCore::absoluteLineDirectionPointToLocalPointInBlock): Changed to take a reference.
3836         (WebCore::previousLinePosition): Fixed formatting chand changed to pass a reference.
3837         (WebCore::nextLinePosition): Ditto.
3838         (WebCore::startSentenceBoundary): Updated to use StringView and got rid of a local.
3839         (WebCore::startOfSentence): Fixed formatting.
3840         (WebCore::endSentenceBoundary): Updated to use StringView and got rid of a local.
3841         (WebCore::endOfSentence): Fixed formatting.
3842         (WebCore::previousSentencePositionBoundary): Updated to use StringView and got rid of
3843         a local.
3844         (WebCore::previousSentencePosition): Ditto.
3845         (WebCore::nextSentencePositionBoundary): Ditto.
3846         (WebCore::nextSentencePosition): Fixed formatting.
3847         (WebCore::endOfParagraph): Ditto.
3848         (WebCore::inSameParagraph): Ditto.
3849         (WebCore::isStartOfParagraph): Ditto.
3850         (WebCore::isEndOfParagraph): Ditto.
3851         (WebCore::inSameBlock): Ditto.
3852         (WebCore::isStartOfBlock): Ditto.
3853         (WebCore::isEndOfBlock): Ditto.
3854         (WebCore::startOfDocument): Ditto.
3855         (WebCore::endOfDocument): Ditto.
3856         (WebCore::inSameDocument): Ditto.
3857         (WebCore::isStartOfDocument): Ditto.
3858         (WebCore::isEndOfDocument): Ditto.
3859         (WebCore::isEndOfEditableOrNonEditableContent): Ditto.
3860
3861         * loader/EmptyClients.h: Use StringView.
3862
3863         * platform/mac/HTMLConverter.mm:
3864         (+[WebHTMLConverter editingAttributedStringFromRange:]): Use StringView.
3865
3866         * platform/text/TextBoundaries.cpp:
3867         (WebCore::endOfFirstWordBoundaryContext): Use StringView and unsigned.
3868         (WebCore::startOfLastWordBoundaryContext): Ditto.
3869
3870         * platform/text/TextBoundaries.h: Change interfaces to use StringView,
3871         and in some cases, unsigned instead of int. All call sites were better off
3872         with unsigned.
3873
3874         * platform/text/TextCheckerClient.h: Use StringView.
3875
3876         * platform/text/mac/TextBoundaries.mm: Changed conditionals to say
3877         USE(APPKIT) instead of PLATFORM(IOS), since that's the real issue.
3878         (WebCore::isSkipCharacter): Tweaked formatting.
3879         (WebCore::isWhitespaceCharacter): Ditto.
3880         (WebCore::isWordDelimitingCharacter): Ditto, also removed local variable.
3881         (WebCore::isSymbolCharacter): Ditto.
3882         (WebCore::tokenizerForString): Ditto.
3883         (WebCore::findSimpleWordBoundary): Use StringView. Also changed to mostly
3884         use unsigned instead of int.
3885         (WebCore::findComplexWordBoundary): Use StringView. Also restructured to
3886         be much more readable, with early returns and such.
3887         (WebCore::findWordBoundary): Use StringView and unsigned.
3888         (WebCore::findEndWordBoundary): Removed redudant copy of the findWordBoundary
3889         function and changed this to just call findWordBoundary. The reason this
3890         function exists is to optimize this case for some non-Mac, non-iOS platforms.
3891         We can always do that for Mac and/or iOS later if we like.
3892         (WebCore::findNextWordFromIndex): Use StringView. Also use wordBreakIterator
3893         instead of using UBreakIterator directly so we get a cached iterator instead
3894         of creating and destroying a new one each time this function is called.
3895
3896         * bindings/objc/DOMUIKitExtensions.mm: Removed unneeded includes.
3897         * dom/Element.cpp: Ditto.
3898         * dom/PositionIterator.cpp: Ditto.
3899         * editing/ApplyBlockElementCommand.cpp: Ditto.
3900         * editing/IndentOutdentCommand.cpp: Ditto.
3901         * editing/InsertListCommand.cpp: Ditto.
3902         * editing/markup.cpp: Ditto.
3903         * html/HTMLElement.cpp: Ditto.
3904         * html/HTMLTextAreaElement.cpp: Ditto.
3905         * page/Frame.cpp: Ditto.
3906         * rendering/RenderTextControl.cpp: Ditto.
3907
3908 2014-02-08  Andreas Kling  <akling@apple.com>
3909
3910         Remove two unused function declarations.
3911
3912         Scrub "highQualityRepaintTimerFired" declarations from RenderImage
3913         and RenderBoxModelObject since they're not actually defined.
3914
3915         * rendering/RenderBoxModelObject.h:
3916         * rendering/RenderImage.h:
3917
3918 2014-02-08  Andreas Kling  <akling@apple.com>
3919
3920         CTTE: SVGTRefTargetEventListener is always owned by SVGTRefElement.
3921         <https://webkit.org/b/128432>
3922
3923         Tighten up the relationship between SVGTRefElement and its internal
3924         event listener helper by storing the listener in a Ref, and making
3925         the listeners backpointer to the element be a reference.
3926
3927         Reviewed by Anders Carlsson.
3928
3929         * svg/SVGTRefElement.cpp:
3930         (WebCore::SVGTRefTargetEventListener::create):
3931         (WebCore::SVGTRefTargetEventListener::SVGTRefTargetEventListener):
3932         (WebCore::SVGTRefTargetEventListener::operator==):
3933         (WebCore::SVGTRefTargetEventListener::handleEvent):
3934         (WebCore::SVGTRefElement::SVGTRefElement):
3935         * svg/SVGTRefElement.h:
3936
3937 2014-02-07  Andreas Kling  <akling@apple.com>
3938
3939         Devirtualize RenderBlockFlowRareData.
3940         <https://webkit.org/b/128427>
3941
3942         This class had a virtual destructor for no reason. Removing it
3943         shrinks RenderBlockFlowRareData by 8 bytes.
3944
3945         Reviewed by Anders Carlsson.
3946
3947         * rendering/RenderBlockFlow.h:
3948         (WebCore::RenderBlockFlow::RenderBlockFlowRareData::~RenderBlockFlowRareData):
3949
3950 2014-02-08  Andreas Kling  <akling@apple.com>
3951
3952         Use renderer iterators in two more places.
3953         <https://webkit.org/b/128371>
3954
3955         Reviewed by Antti Koivisto.
3956
3957         * dom/Position.cpp:
3958         (WebCore::Position::primaryDirection):
3959
3960             Use lineageOfType instead of walking the parent chain.
3961
3962         * rendering/RenderLayer.cpp:
3963         (WebCore::RenderLayer::insertOnlyThisLayer):
3964
3965             Use childrenOfType instead of walking the children.
3966
3967 2014-02-07  David Kilzer  <ddkilzer@apple.com>
3968
3969         [ASan] Use new/delete in PODFreeListArena
3970         <http://webkit.org/b/128437>
3971
3972         Reviewed by Oliver Hunt.
3973
3974         * platform/PODFreeListArena.h:
3975         (WebCore::PODFreeListArena::allocateObject): Use new when
3976         ADDRESS_SANITIZER is defined.
3977         (WebCore::PODFreeListArena::freeObject): Use delete when
3978         ADDRESS_SANITIZER is defined.
3979
3980 2014-02-07  Ryosuke Niwa  <rniwa@webkit.org>
3981
3982         Merge updateSelectionCachesIfSelectionIsInsideTextFormControl into setSelectionWithoutUpdatingAppearance
3983         https://bugs.webkit.org/show_bug.cgi?id=128439
3984
3985         Reviewed by Anders Carlsson.
3986
3987         FrameSelection::selectAll had a superfluous call to updateSelectionCachesIfSelectionIsInsideTextFormControl
3988         because it wasn't setting UserTriggered option to avoid revealing selection.
3989
3990         Call setSelection with UserTriggered and recently added DoNotRevealSelection option and merge
3991         updateSelectionCachesIfSelectionIsInsideTextFormControl into setSelectionWithoutUpdatingAppearance.
3992
3993         Also rename local variables in setSelectionWithoutUpdatingAppearance, newSelection to
3994         newSelectionPossiblyWithoutDirection and s to newSelection so that they're self explanatory.
3995
3996         In addition, we now update the input element's selection caches before calling
3997         selectFrameElementInParentIfFullySelected but this should be fine because selection cannot simultaneously
3998         select the entire document and be inside a text form control.
3999
4000         * editing/FrameSelection.cpp:
4001         (WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
4002         (WebCore::FrameSelection::selectAll):
4003
4004 2014-02-07  Ryosuke Niwa  <rniwa@webkit.org>
4005
4006         EFL build fix attempt after r163662.
4007
4008         * Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp:
4009         (WebCore::IDBLevelDBCoding::encodeIDBKey):
4010
4011 2014-02-07  Ryosuke Niwa  <rniwa@webkit.org>
4012
4013         FrameSelection's destructor shouldn't notify accessibility
4014         https://bugs.webkit.org/show_bug.cgi?id=128421
4015
4016         Reviewed by Benjamin Poulain.
4017
4018         Extracted setSelectionWithoutUpdatingAppearance out of setSelection and called it in prepareForDestruction
4019         instead of setting DoNotUpdateAppearance option. This new function doesn't reveal selection or notify
4020         accessibility code in addition to not updating appearance.
4021
4022         Note that all implementations of notifyAccessibilityForSelectionChange in FrameSelectionAtk.cpp and
4023         FrameSelectionMac.mm exit early when the selection type is not caret or either start or end is null,
4024         which is already the case inside FrameSelection's destructor. In addition, revealSelection is never called
4025         when selection change was not triggered by user so there should be no behavioral change from this patch.
4026
4027         * editing/FrameSelection.cpp:
4028         (WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
4029         (WebCore::FrameSelection::setSelection):
4030         (WebCore::FrameSelection::prepareForDestruction):
4031         * editing/FrameSelection.h:
4032         (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): Added the trivial implementation in the case
4033         accessibility is disabled to tidy up call sites.
4034
4035 2014-02-07  Martin Robinson  <mrobinson@igalia.com>
4036
4037         Build fix for the GTK+ CMake build
4038
4039         * PlatformGTK.cmake: VTTCue.idl was unintentionally added to the list of GObject DOM bindings
4040         output files. Remove it.
4041
4042 2014-02-07  Dirk Schulze  <krit@webkit.org>
4043
4044         Per CSSOM, computed rect() function values must be comma separated
4045         https://bugs.webkit.org/show_bug.cgi?id=128401
4046
4047         Reviewed by Simon Fraser.