Enums in ScrollTypes and PlatformWheelEvent should not use uint64_t storage
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-08-27  Brian J. Burg  <burg@cs.washington.edu>
2
3         Enums in ScrollTypes and PlatformWheelEvent should not use uint64_t storage
4         https://bugs.webkit.org/show_bug.cgi?id=136318
5
6         Reviewed by Simon Fraser.
7
8         This regressed in a replay-related patch. Revert back to uint8_t storage size.
9
10         * platform/PlatformWheelEvent.h:
11         * platform/ScrollTypes.h:
12         * replay/WebInputs.json:
13
14 2014-08-27  Simon Fraser  <simon.fraser@apple.com>
15
16         Speling is hard.
17
18         Reviewed by Tim Horton.
19
20         * page/EventHandler.cpp:
21         (WebCore::EventHandler::handleMousePressEvent):
22         (WebCore::EventHandler::handleMouseDoubleClickEvent):
23         (WebCore::EventHandler::handleMouseMoveEvent):
24         (WebCore::EventHandler::handleMouseReleaseEvent):
25         (WebCore::EventHandler::handlePasteGlobalSelection):
26         (WebCore::EventHandler::updateMouseEventTargetNode):
27         (WebCore::EventHandler::dispatchMouseEvent):
28         (WebCore::EventHandler::sendContextMenuEventForKey):
29         (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
30
31 2014-08-27  Simon Fraser  <simon.fraser@apple.com>
32
33         Fix the iOS build.
34
35         * page/EventHandler.cpp:
36         (WebCore::EventHandler::handleMousePressEvent):
37
38 2014-08-27  Andreas Kling  <akling@apple.com>
39
40         Drawing text in an SVG font causes load events to be fired.
41         <https://webkit.org/b/136269>
42         <rdar://problem/15724915>
43
44         Don't flush pending load events in Document::implicitClose() for frameless documents.
45         This is a targeted fix for an issue where parsing SVG fonts during layout would cause
46         event dispatch to happen in the main document, leading to arbitrary JS execution.
47
48         Note that the testcase only works in DRT/WTR, since once the SVG font is in cached
49         by WebCore, we won't reparse it again. Caches are cleared between tests, so it will
50         correctly fail if this should regress.
51
52         Longer-term, we should clean this up and get rid of the global dispatch entirely.
53
54         Reviewed by Simon Fraser.
55
56         Test: fast/text/svg-font-trigger-load-event.html
57
58         * dom/Document.cpp:
59         (WebCore::Document::implicitClose):
60
61 2014-08-27  Simon Fraser  <simon.fraser@apple.com>
62
63         Some EventHandler naming cleanup
64         https://bugs.webkit.org/show_bug.cgi?id=136303
65
66         Reviewed by Beth Dakin.
67         
68         Rename "mev" variables to "mouseEvent".
69         
70         No behavior change.
71
72         * page/EventHandler.cpp:
73         (WebCore::EventHandler::handleMousePressEvent):
74         (WebCore::EventHandler::handleMouseDoubleClickEvent):
75         (WebCore::EventHandler::handleMouseMoveEvent):
76         (WebCore::EventHandler::handleMouseReleaseEvent):
77         (WebCore::EventHandler::updateDragAndDrop):
78         (WebCore::EventHandler::prepareMouseEvent):
79         (WebCore::EventHandler::sendContextMenuEvent):
80         (WebCore::EventHandler::passMousePressEventToScrollbar):
81         (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
82
83 2014-08-27  Simon Fraser  <simon.fraser@apple.com>
84
85         Some EventHandler naming cleanup
86         https://bugs.webkit.org/show_bug.cgi?id=136303
87
88         Reviewed by Beth Dakin.
89
90         Rename PlatformMouseEvent variables from "mouseEvent" to "platformMouseEvent"
91         so that a later patch can rename "mev" to "mouseEvent".
92         
93         0 => nullptr.
94         
95         No behavior change.
96
97         * page/EventHandler.cpp:
98         (WebCore::EventHandler::clear):
99         (WebCore::EventHandler::handleMousePressEvent):
100         (WebCore::EventHandler::handleMouseDoubleClickEvent):
101         (WebCore::EventHandler::handleMouseMoveEvent):
102         (WebCore::EventHandler::invalidateClick):
103         (WebCore::EventHandler::handleMouseReleaseEvent):
104         (WebCore::EventHandler::handlePasteGlobalSelection):
105         (WebCore::EventHandler::updateMouseEventTargetNode):
106         (WebCore::EventHandler::dispatchMouseEvent):
107         (WebCore::EventHandler::sendContextMenuEventForKey):
108         (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
109
110 2014-08-27  Beth Dakin  <bdakin@apple.com>
111
112         Make isScrollableOrRubberbandable() a virtual function on RenderLayerModelObject
113         https://bugs.webkit.org/show_bug.cgi?id=136307
114
115         Reviewed by Simon Fraser.
116
117         Remove extra parentheses. 
118         * page/FrameView.cpp:
119         (WebCore::FrameView::isScrollable):
120
121         Mark isScrollableOrRubberbandable() as override now that the root implementation 
122         is moving to RenderLayerModelObject. It can also be private now.
123         * rendering/RenderBox.h:
124
125         isBox() check and cast are no longer necessary.
126         * rendering/RenderLayer.cpp:
127         (WebCore::RenderLayer::hasScrollableOrRubberbandableAncestor):
128
129         Base implementation should return false.
130         * rendering/RenderLayerModelObject.h:
131         (WebCore::RenderLayerModelObject::isScrollableOrRubberbandable):
132
133         Mark as override.
134         * rendering/RenderView.h:
135
136 2014-08-27  Antti Koivisto  <antti@apple.com>
137
138         REGRESSION(r172946): Plugin tests asserting on Yosemite debug bot
139         https://bugs.webkit.org/show_bug.cgi?id=136301
140
141         Reviewed by Alexey Proskuryakov.
142
143         Don't pull the priority from the platform request if it is not defined.
144
145         * platform/network/cf/ResourceRequestCFNet.cpp:
146         (WebCore::ResourceRequest::doUpdateResourceRequest):
147         * platform/network/cocoa/ResourceRequestCocoa.mm:
148         (WebCore::ResourceRequest::doUpdateResourceRequest):
149
150 2014-08-27  Timothy Hatcher  <timothy@apple.com>
151
152         Web Inspector: Crash when you open Web Inspector in a private window (due to IndexedDB)
153         https://bugs.webkit.org/show_bug.cgi?id=136293
154
155         Reviewed by Joseph Pecoraro.
156
157         * inspector/InspectorIndexedDBAgent.cpp:
158         (WebCore::InspectorIndexedDBAgent::requestDatabaseNames): Null check idbRequest from
159         IDBFactory::getDatabaseNames, which can return null now after r172603 in private browsing.
160
161 2014-08-27  Beth Dakin  <bdakin@apple.com>
162
163         overflow:scroll elements should not latch to the body if the body is 
164         overflow:hidden
165         https://bugs.webkit.org/show_bug.cgi?id=136273
166
167         Reviewed by Darin Adler.
168
169         This patch adds an optional parameter to isScrollable(). The Scrollability 
170         parameter that allows the caller to define what they mean by 'scrollable.' Most 
171         callers are interested in the default value, Scrollability::Scrollable, which 
172         means that there is actually content to scroll to, and a scrollbar that will allow 
173         you to access it. In some cases, such as this latching case, callers want to know 
174         if the FrameView is allowed to rubber-band, which the main frame might be allowed 
175         to do even if there is no content to scroll to. In that case, callers use 
176         Scrollability::ScrollableOrRubberbandable.
177         * page/FrameView.cpp:
178         (WebCore::FrameView::isScrollable):
179         (WebCore::FrameView::hasScrollableOrRubberbandableAncestor):
180
181         New virtual function on ScrollableArea answers whether a ScrollableArea has any 
182         scrollable or rubber-bandable ancestor.
183         * page/FrameView.h:
184         * platform/ScrollableArea.h:
185
186         Events should only be allowed to prevent stretching if there is some ancestor 
187         ScrollableArea that will be able to make use of the event. 
188         * platform/mac/ScrollAnimatorMac.mm:
189         (WebCore::ScrollAnimatorMac::allowsVerticalStretching):
190         (WebCore::ScrollAnimatorMac::allowsHorizontalStretching):
191
192         New ScrollableArea virtual function.
193         * platform/win/PopupMenuWin.h:
194
195         New RenderBox isScrollableOrRubberbandable() returns just 
196         canBeScrolledAndHasScrollableArea() for most RenderBox, but will be overridden by 
197         RenderView.
198         * rendering/RenderBox.cpp:
199         (WebCore::RenderBox::isScrollableOrRubberbandable):
200         * rendering/RenderBox.h:
201
202         Recurse up the parent chain to find out if anything is scrollable or just rubber-
203         bandable.
204         * rendering/RenderLayer.cpp:
205         (WebCore::RenderLayer::hasScrollableOrRubberbandableAncestor):
206         * rendering/RenderLayer.h:
207
208         Call into RenderLayer.
209         * rendering/RenderListBox.cpp:
210         (WebCore::RenderListBox::hasScrollableOrRubberbandableAncestor):
211         * rendering/RenderListBox.h:
212
213         Override isScrollableOrRubberbandable() to handle the main frame case where the 
214         main frame is typically allowed to rubber-band even if there is no content to 
215         scroll to.
216         * rendering/RenderView.cpp:
217         (WebCore::RenderView::isScrollableOrRubberbandable):
218         * rendering/RenderView.h:
219
220 2014-08-27  Benjamin Poulain  <bpoulain@apple.com>
221
222         Updating attributes on HTML elements do not invalidate the style correctly unless the attribute name is lowercase in the stylesheet
223         https://bugs.webkit.org/show_bug.cgi?id=136270
224
225         Reviewed by Andreas Kling.
226
227         In HTML, WebKit treats every attribute name lowercase to implement case-insensitive matching.
228         When invalidating style, the StyleResolver was ignoring HTML and always using the XML names.
229
230         This patch split the names on RuleFeatureSet in two sets: one for XML, one for HTML.
231         In StyleResolver, the name used depends on the type of the element being updated.
232
233         This patch also adds nodeNeedsStyleRecalc() to Internals to test the optimization and various cases
234         of style update.
235
236         Tests: fast/css/attribute-for-content-property-style-update-html.html
237                fast/css/attribute-for-content-property-style-update-xhtml.xhtml
238                fast/css/attribute-style-invalidation-optimization-html.html
239                fast/css/attribute-style-invalidation-optimization-xhtml.xhtml
240                fast/css/attribute-style-update-html.html
241                fast/selectors/attribute-style-update-html.html
242                fast/selectors/attribute-style-update-svg-in-html.html
243                fast/selectors/attribute-style-update-xhtml.xhtml
244
245         * css/RuleFeature.cpp:
246         (WebCore::RuleFeatureSet::collectFeaturesFromSelector):
247         (WebCore::RuleFeatureSet::add):
248         (WebCore::RuleFeatureSet::clear):
249         * css/RuleFeature.h:
250         * css/StyleResolver.cpp:
251         (WebCore::StyleResolver::applyProperty):
252         * css/StyleResolver.h:
253         (WebCore::StyleResolver::hasSelectorForAttribute):
254         * dom/Element.cpp:
255         (WebCore::Element::willModifyAttribute):
256         * testing/Internals.cpp:
257         (WebCore::Internals::address):
258         (WebCore::Internals::nodeNeedsStyleRecalc):
259         * testing/Internals.h:
260         * testing/Internals.idl:
261
262 2014-08-27  Benjamin Poulain  <bpoulain@apple.com>
263
264         Update the CSS Grammar selector names to get closer to the latest terminology
265         https://bugs.webkit.org/show_bug.cgi?id=136277
266
267         Reviewed by Andreas Kling.
268
269         CSS Selector Level 4 gives useful definitions for various parts of a selector
270         (see http://dev.w3.org/csswg/selectors4/#structure). This patch updates our names to be closer
271         to that spec.
272
273         Stricto sensu, our definition of "simple selector list" is wrong. I did not attempt to fix this
274         because updates of CSS Selector Level 4 and WebVTT will eventually make that whole concept useless.
275
276         * css/CSSGrammar.y.in:
277
278 2014-08-27  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
279
280         [EFL] Unskip compositing test
281         https://bugs.webkit.org/show_bug.cgi?id=136151
282
283         Reviewed by Csaba Osztrogonác.
284
285         * rendering/RenderLayerBacking.cpp: Set true to setContentsOpaque() to support compositing test.
286         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
287
288 2014-08-26  Vivek Galatage  <vivek.vg@samsung.com>
289
290         Canvas direction should reflect change in dir attribute and also across save/restore operations
291         https://bugs.webkit.org/show_bug.cgi?id=136098
292
293         Reviewed by Darin Adler.
294
295         Changed State.m_direction type from TextDirection to Direction enum to accomodate 'inherit'
296         as a separate value. Modified the getter to compute the 'live' value for the direction attribute.
297         Removed explicit passing of direction to CanvasRenderingContext2D::State constructor.
298
299         Updated existing canvas-direction.html with additional cases to reflect this change.
300
301         * html/canvas/CanvasRenderingContext2D.cpp:
302         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
303         (WebCore::CanvasRenderingContext2D::reset):
304         (WebCore::CanvasRenderingContext2D::State::State):
305         (WebCore::CanvasRenderingContext2D::toTextDirection):
306         (WebCore::CanvasRenderingContext2D::direction):
307         (WebCore::CanvasRenderingContext2D::setDirection):
308         (WebCore::CanvasRenderingContext2D::drawTextInternal):
309         (WebCore::inheritedDirection): Deleted.
310         * html/canvas/CanvasRenderingContext2D.h:
311
312 2014-08-26  Benjamin Poulain  <bpoulain@apple.com>
313
314         Minor style tweak on StyleResolveTree
315         https://bugs.webkit.org/show_bug.cgi?id=136233
316
317         Reviewed by Sam Weinig.
318
319         * style/StyleResolveTree.cpp:
320         (WebCore::Style::resolveTree):
321         Clang likely optimized it away, but I find that explicit style cleaner.
322
323 2014-08-26  Brian J. Burg  <burg@cs.washington.edu>
324
325         Web Inspector: put feature flags for Inspector domains in the protocol specification
326         https://bugs.webkit.org/show_bug.cgi?id=136027
327
328         Reviewed by Timothy Hatcher.
329
330         Add 'featureGuard' settings to wrap domains with ENABLE macros.
331
332         No new tests. No behavior was changed.
333
334         * inspector/protocol/Database.json:
335         * inspector/protocol/IndexedDB.json:
336         * inspector/protocol/Replay.json:
337
338 2014-08-26  Andy Estes  <aestes@apple.com>
339
340         [Cocoa] Some projects are incorrectly installed to $BUILT_PRODUCTS_DIR
341         https://bugs.webkit.org/show_bug.cgi?id=136267
342
343         Reviewed by Dan Bernstein.
344
345         INSTALL_PATH was set to $BUILT_PRODUCTS_DIR for engineering configurations in r20225 as part of a build fix.
346         Not only is this no longer necessary to build, but it causes built products to be incorrectly installed in
347         engineering configurations.
348
349         Remove the setting of INSTALL_PATH from the pbxproj file so that the value specified in the xcconfig files is
350         used instead.
351
352         * WebCore.xcodeproj/project.pbxproj:
353
354 2014-08-26  Brent Fulgham  <bfulgham@apple.com>
355
356         [Win] WebKit IDL incorrectly passes HWND as OLE_HANDLE
357         https://bugs.webkit.org/show_bug.cgi?id=136258
358         <rdar://problem/18134138>
359
360         Reviewed by Tim Horton.
361
362         Avoid 32/64-bit truncation by preventing 64-bit HWND (and other)
363         values from passing through the 32-bit OLE_HANDLE data type.
364
365         * platform/win/WindowMessageBroadcaster.cpp:
366         (WebCore::WindowMessageBroadcaster::addListener):
367         (WebCore::WindowMessageBroadcaster::removeListener):
368         (WebCore::WindowMessageBroadcaster::destroy):
369         (WebCore::WindowMessageBroadcaster::unsubclassWindow):
370         (WebCore::WindowMessageBroadcaster::SubclassedWndProc):
371
372 2014-08-25  Maciej Stachowiak  <mjs@apple.com>
373
374         Replace use of WKCopyCFLocalizationPreferredName with NSLocale public API
375         https://bugs.webkit.org/show_bug.cgi?id=136082
376
377         Reviewed by Alexey Proskuryakov.
378
379         * platform/mac/Language.mm:
380         (WebCore::httpStyleLanguageCode): Replace use of WKCopyCFLocalizationPreferredName
381         with new WebCoreNSStringExtras helper.
382         * platform/mac/WebCoreNSStringExtras.mm: Replacements for the aspects of
383         WKCopyCFLocalizationPreferredName.
384         (preferredBundleLocalizationName): New helper - most preferred localization available
385         in the main bundle, canonicalized the way we like it.
386         (canonicalLocalizationName): Convert a lcalization name to a string with language and
387         country code, using default if necessary (e.g. "en" maps to "en_US").
388         * WebCore.order: Remove mention of WKCopyCFLocalizationPreferredName.
389         * WebCore.exp.in: ditto; also export preferredBundleLocalizationName for WebKit(2).
390         * platform/ios/WebCoreSystemInterfaceIOS.mm: ditto
391         * platform/mac/WebCoreSystemInterface.h: ditto
392         * platform/mac/WebCoreSystemInterface.mm: ditto
393         * platform/spi/cf: Added.
394         * platform/spi/cf/CFLocaleSPI.h: Added. Declare
395         CFLocaleGetLanguageRegionEncodingForLocaleIdentifier.
396
397 2014-08-26  Zoltan Horvath  <zoltan@webkit.org>
398
399         [CSS Shapes] Positioned polygon reftests failing
400         https://bugs.webkit.org/show_bug.cgi?id=135925
401
402         Reviewed by David Hyatt.
403
404         We didn't respect the shape-margin before a positioned polygon, since we checked
405         the shape-margin for only 1 vertex for a polygon edge. This patch fixes the behavior,
406         removes the tests from the skipped list and updates 1 test, which was incorrect.
407
408         Updated existing test and removed tests from skipped list.
409
410         * rendering/shapes/PolygonShape.cpp:
411         (WebCore::clippedCircleXRange):
412         (WebCore::PolygonShape::getExcludedInterval):
413
414 2014-08-26  Zalan Bujtas  <zalan@apple.com>
415
416         Subpixel layout: Remove float to LayoutUnit ceil/round function wrappers.
417         https://bugs.webkit.org/show_bug.cgi?id=136253
418
419         Reviewed by Simon Fraser.
420
421         These functions wrap LayoutUnit::fromFloatCeil/fromFloatRound() functions to ceil/round float to LayoutUnit.
422         Their usage is limited and can easily be confused with the snapping functions (snap to css/device pixels).
423
424         No change in functionality.
425
426         * platform/LayoutUnit.h:
427         (WebCore::roundedLayoutUnit): Deleted. : Callers use the more explicit LayoutUnit::fromFloatRound() function.
428         (WebCore::ceiledLayoutUnit): Deleted. : Callers use the more explicit LayoutUnit::fromFloatCeil() function.
429         * rendering/RenderBlock.cpp:
430         (WebCore::updatePreferredWidth):
431         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
432         (WebCore::adjustFloatForSubPixelLayout): Deleted.
433         * rendering/RenderBox.cpp:
434         (WebCore::RenderBox::positionLineBox):
435         * rendering/RenderFlexibleBox.cpp:
436         (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
437         * rendering/RenderInline.cpp:
438         (WebCore::RenderInline::offsetForInFlowPositionedInline):
439         * rendering/RenderTextControlSingleLine.cpp:
440         (WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):
441
442 2014-08-26  Simon Fraser  <simon.fraser@apple.com>
443
444         Ensure that layout is up-to-date before hit testing
445         https://bugs.webkit.org/show_bug.cgi?id=136242
446         rdar://problem/17435564
447
448         Reviewed by Tim Horton.
449         
450         Various code paths can call into RenderView::hitTest() but fail to
451         ensure that layout is up-to-date. This is a conservative change that
452         fixes the issue for callers of EventHandler::hitTestResultAtPoint(),
453         including WebPage::acceptsFirstMouse() and WebFrame::hitTest().
454         
455         This change is not general enough that we can ASSERT(!needsLayout())
456         in RenderView::hitTest() yet.
457         
458         * page/EventHandler.cpp:
459         (WebCore::EventHandler::hitTestResultAtPoint):
460
461 2014-08-26  Beth Dakin  <bdakin@apple.com>
462
463         Rubber-banding in overflow:scroll regions does not work correctly with 
464         direction:rtl
465         https://bugs.webkit.org/show_bug.cgi?id=136176
466
467         Reviewed by Tim Horton.
468
469         Small cleanup.
470         * rendering/RenderLayer.cpp:
471         (WebCore::RenderLayer::visibleContentRectInternal):
472
473 2014-08-26  Tim Horton  <timothy_horton@apple.com>
474
475         Fix the build after r172963
476
477         * page/DOMTimer.h:
478
479 2014-08-25  Gavin Barraclough  <barraclough@apple.com>
480
481         DOMTimer may be deleted during timer fire
482         https://bugs.webkit.org/show_bug.cgi?id=136198
483
484         Reviewed by Geoff Garen.
485
486         Consequentially ScheduledActions may also be deleted mid execution.
487         This is fairly surprising & fragile, let's make this simpler.
488
489         Currently DOMTimer instances are effectively owned by the ScriptExecutionContext.
490         There is a 1-1 mapping between timers and contexts, all timers are help in a map
491         on the context and if the context goes away all timers are deleted. Rather than
492         being implemented in a straightforward fashion (a smart pointer type for the map
493         value) this is currently implemented by having the timer objects listen for the
494         context going away using contextDestroyed, and deleting themselves if so.
495
496         Switch to using a smart pointer for values of m_timeouts in ScriptExecutionContext.
497         By using a RefCounted object we can also extend the lifetime of the DOMTimer instance
498         from within the DOMTimer::fired method, so the object is not destroyed while the
499         member function is still on the stack.
500
501         * WebCore.xcodeproj/project.pbxproj:
502             - project -> private since DOMTimer could no longer be a forward declare in ScriptExecutionContext.h.
503         * dom/ScriptExecutionContext.cpp:
504         (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
505         (WebCore::ScriptExecutionContext::didChangeTimerAlignmentInterval):
506             - auto* -> auto& since value type in map is no longer a raw pointer.
507         * dom/ScriptExecutionContext.h:
508         (WebCore::ScriptExecutionContext::addTimeout):
509             - DOMTimer* -> PassRefPtr<DOMTimer>
510         * page/DOMTimer.cpp:
511         (WebCore::DOMTimer::DOMTimer):
512             - adopt the initial ref, and pass to addTimeout.
513         (WebCore::DOMTimer::install):
514             - updated comment.
515         (WebCore::DOMTimer::removeById):
516             - instead of explicitly deleting the timer and assuming this will implicitly remove it from the context map,
517               we explicitly remove it from the context map and assume this will implicitly deleting the timer!
518         (WebCore::DOMTimer::fired):
519             - Add a RefPtr to keep the DOMTimer object alive until the fired method completes; to cancel a one-shot timer
520               just remove it from the context's map, rather than explicitly deleting it.
521         (WebCore::DOMTimer::~DOMTimer): Deleted.
522         (WebCore::DOMTimer::contextDestroyed): Deleted.
523             - no need! object lifetime management now handled by smart pointers.
524         * page/DOMTimer.h:
525             - added parent class RefCounted<DOMTimer>.
526
527 2014-08-26  Carlos Garcia Campos  <cgarcia@igalia.com>
528
529         [GTK] Selection background is rendered white when unfocused with recent GTK+
530         https://bugs.webkit.org/show_bug.cgi?id=136251
531
532         Reviewed by Martin Robinson.
533
534         This is due to a change in the GTK+ theme, but because we are not
535         using the right flags to get the selections colors. We should use
536         GTK_STATE_FLAG_SELECTED | GTK_STATE_FLAG_FOCUSED when focused and
537         GTK_STATE_FLAG_SELECTED when unfocused, instead of
538         GTK_STATE_FLAG_ACTIVE when unfocused.
539
540         * platform/gtk/RenderThemeGtk3.cpp:
541         (WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
542         (WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
543         (WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
544         (WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
545         (WebCore::RenderThemeGtk::platformActiveListBoxSelectionBackgroundColor):
546         (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor):
547         (WebCore::RenderThemeGtk::platformActiveListBoxSelectionForegroundColor):
548         (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionForegroundColor):
549
550 2014-08-26  Krzysztof Czech  <k.czech@samsung.com>
551
552         [EFL] Utilize espeak as a synthesizer back-end for WebSpeech
553         https://bugs.webkit.org/show_bug.cgi?id=136127
554
555         Reviewed by Gyuyoung Kim.
556
557         Utilize espeak API to have support for speak, cancel and initializeVoiceList.
558
559         * PlatformEfl.cmake:
560         * platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:
561         (WebCore::PlatformSpeechSynthesisProviderEfl::PlatformSpeechSynthesisProviderEfl):
562         (WebCore::PlatformSpeechSynthesisProviderEfl::convertRateToEspeakValue):
563         (WebCore::PlatformSpeechSynthesisProviderEfl::convertVolumeToEspeakValue):
564         (WebCore::PlatformSpeechSynthesisProviderEfl::convertPitchToEspeakValue):
565         (WebCore::PlatformSpeechSynthesisProviderEfl::voiceName):
566         (WebCore::PlatformSpeechSynthesisProviderEfl::engineInit):
567         (WebCore::PlatformSpeechSynthesisProviderEfl::currentVoice):
568         (WebCore::PlatformSpeechSynthesisProviderEfl::initializeVoiceList):
569         (WebCore::PlatformSpeechSynthesisProviderEfl::speak):
570         (WebCore::PlatformSpeechSynthesisProviderEfl::cancel):
571         (WebCore::PlatformSpeechSynthesisProviderEfl::fireSpeechEvent):
572         * platform/efl/PlatformSpeechSynthesisProviderEfl.h:
573         * platform/efl/PlatformSpeechSynthesizerEfl.cpp:
574         (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
575         (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
576         (WebCore::PlatformSpeechSynthesizer::pause):
577         (WebCore::PlatformSpeechSynthesizer::resume):
578         (WebCore::PlatformSpeechSynthesizer::speak):
579         (WebCore::PlatformSpeechSynthesizer::cancel):
580
581 2014-08-26  Ryuan Choi  <ryuan.choi@samsung.com>
582
583         [EFL] Build break using clang
584         https://bugs.webkit.org/show_bug.cgi?id=136245
585
586         Reviewed by Gyuyoung Kim.
587
588         * css/ViewportStyleResolver.cpp: Includes NodeRenderStyle.h
589
590 2014-08-26  Mark Rowe  <mrowe@apple.com>
591
592         Build fix after r172951.
593
594         * fileapi/Blob.h: Give the argument the name that the predicates expect.
595
596 2014-08-25  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
597
598         Generate toFile() instead of manual functions.
599         https://bugs.webkit.org/show_bug.cgi?id=136207
600
601         Reviewed by Darin Adler.
602
603         No new tests, no behavior changes.
604
605         * fileapi/Blob.h: Define BLOB_TYPE_CASTS.
606         * fileapi/File.h: Use BLOB_TYPE_CASTS to generate toFile().
607         (WebCore::toFile): Deleted.
608
609 2014-08-25  Zalan Bujtas  <zalan@apple.com>
610
611         Subpixel layout: remove roundedLayoutPoint/roundedLayoutSize functions.
612         https://bugs.webkit.org/show_bug.cgi?id=136236
613
614         Reviewed by Simon Fraser.
615
616         These functions simply call LayoutPoint/LayoutSize c'tors. They don't round the input value at all.
617
618         Non change in functionality.
619
620         * dom/MouseRelatedEvent.cpp:
621         (WebCore::MouseRelatedEvent::computePageLocation):
622         (WebCore::MouseRelatedEvent::computeRelativePosition):
623         * dom/Touch.cpp:
624         (WebCore::Touch::Touch):
625         * html/shadow/SliderThumbElement.cpp:
626         (WebCore::SliderThumbElement::setPositionFromPoint):
627         * page/DragController.cpp:
628         (WebCore::elementUnderMouse):
629         * page/EventHandler.cpp:
630         (WebCore::selectionExtentRespectingEditingBoundary):
631         * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
632         (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
633         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
634         (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):
635         * platform/graphics/LayoutPoint.h:
636         (WebCore::roundedLayoutPoint): Deleted.
637         * platform/graphics/LayoutSize.h:
638         (WebCore::roundedLayoutSize): Deleted.
639         * rendering/EllipsisBox.cpp:
640         (WebCore::EllipsisBox::nodeAtPoint):
641         * rendering/RenderBlock.cpp:
642         (WebCore::RenderBlock::selectionGapRectsForRepaint):
643         * rendering/RenderBox.cpp:
644         (WebCore::RenderBox::mapLocalToContainer):
645         (WebCore::RenderBox::positionLineBox):
646         * rendering/RenderEmbeddedObject.cpp:
647         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
648         * rendering/RenderEmbeddedObject.h:
649         * rendering/RenderInline.cpp:
650         (WebCore::RenderInline::localCaretRect):
651         (WebCore::RenderInline::mapLocalToContainer):
652         * rendering/RenderLayer.cpp:
653         (WebCore::RenderLayer::absoluteToContents):
654         (WebCore::RenderLayer::calculateClipRects):
655         * rendering/RenderMultiColumnFlowThread.cpp:
656         (WebCore::RenderMultiColumnFlowThread::mapAbsoluteToLocalPoint):
657         * rendering/RenderObject.cpp:
658         (WebCore::RenderObject::mapLocalToContainer):
659         * rendering/shapes/ShapeOutsideInfo.cpp:
660         (WebCore::ShapeOutsideInfo::createShapeForImage):
661         * rendering/svg/RenderSVGContainer.cpp:
662         (WebCore::RenderSVGContainer::nodeAtFloatPoint):
663         * rendering/svg/RenderSVGForeignObject.cpp:
664         (WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
665         * rendering/svg/RenderSVGImage.cpp:
666         (WebCore::RenderSVGImage::nodeAtFloatPoint):
667         * rendering/svg/RenderSVGShape.cpp:
668         (WebCore::RenderSVGShape::nodeAtFloatPoint):
669         * testing/Internals.cpp:
670         (WebCore::Internals::nodesFromRect):
671
672 2014-08-25  Zalan Bujtas  <zalan@apple.com>
673
674         Rename RenderObject::showTree() and showTreeForThis() to showNodeTree*().
675         https://bugs.webkit.org/show_bug.cgi?id=136238
676
677         Reviewed by Simon Fraser.
678
679         showNodeTree()/showNodeTreeForThis() reflects the functionality better.
680
681         No change in functionality.
682
683         * rendering/InlineBox.cpp:
684         (WebCore::InlineBox::showNodeTreeForThis):
685         (showNodeTree):
686         (WebCore::InlineBox::showTreeForThis): Deleted.
687         (showTree): Deleted.
688         * rendering/InlineBox.h:
689         * rendering/RenderObject.cpp:
690         (WebCore::RenderObject::showNodeTreeForThis):
691         (showNodeTree):
692         (WebCore::RenderObject::showTreeForThis): Deleted.
693         (showTree): Deleted.
694         * rendering/RenderObject.h:
695
696 2014-08-25  Antti Koivisto  <antti@apple.com>
697
698         Don't pass priority as parameter to ResourceLoadScheduler
699         https://bugs.webkit.org/show_bug.cgi?id=136232
700
701         Reviewed by Sam Weinig.
702
703         It is part of the ResourceRequest which is also passed in.
704
705         * WebCore.exp.in:
706         * loader/ResourceLoadScheduler.cpp:
707         (WebCore::ResourceLoadScheduler::scheduleSubresourceLoad):
708         (WebCore::ResourceLoadScheduler::schedulePluginStreamLoad):
709         (WebCore::ResourceLoadScheduler::scheduleLoad):
710         * loader/ResourceLoadScheduler.h:
711         * loader/cache/CachedResource.cpp:
712         (WebCore::CachedResource::load):
713         * platform/network/cf/ResourceRequestCFNet.cpp:
714         (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):
715         * platform/network/cocoa/ResourceRequestCocoa.mm:
716         (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):
717
718             Restore the original request priority when a delegate modifies the request.
719
720 2014-08-25  Beth Dakin  <bdakin@apple.com>
721
722         Rubber-banding in overflow:scroll regions does not work correctly with direction:rtl
723         https://bugs.webkit.org/show_bug.cgi?id=136176
724
725         Reviewed by Sam Weinig.
726
727         Use scrollPosition() instead of scrollXOffset() and scrollYOffset() which both add 
728         in the scrollOrigin(). Other implementations of visibleContentRectInternal() do 
729         not add in the scrollOrigin(), so RenderLayer's shouldn't either in order to be
730         consistent. This makes rubber-banding work for RTL because 
731         ScrollAnimatorMac::pinnedInDirection() and 
732         ScrollAnimatorMac::absoluteScrollPosition() both return the expect values now.
733
734         * rendering/RenderLayer.cpp:
735         (WebCore::RenderLayer::visibleContentRectInternal):
736
737 2014-08-25  Benjamin Poulain  <benjamin@webkit.org>
738
739         Reduce style marking when using the pseudo class :placeholder-shown
740         https://bugs.webkit.org/show_bug.cgi?id=136203
741
742         Reviewed by Darin Adler.
743
744         When the :placeholder-shown filter is hit, we were always marking the RenderStyle as unique.
745         As a result, if :placeholder-shown was used without a more restrictive filter (e.g. "*:placeholder-shown"
746         or simply ":placeholder-shown"), style sharing was disabled for the whole tree.
747
748         This patch rescope the tree marking to any element that can be affected by a placeholder:
749         any the subclass of HTMLTextFormControlElement. For other elements, any change in internal state
750         would be irrelevant for "isPlaceholderVisible".
751
752         Styling of :placeholder-shown is covered by the existing tests. Style sharing of :placeholder-shown
753         is covered by LayoutTests/fast/css/placeholder-shown-basics.html.
754
755         * css/SelectorChecker.cpp:
756         (WebCore::SelectorChecker::checkOne):
757         * css/SelectorCheckerTestFunctions.h:
758         (WebCore::isPlaceholderShown): Deleted.
759         * cssjit/SelectorCompiler.cpp:
760         (WebCore::SelectorCompiler::makeContextStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
761         (WebCore::SelectorCompiler::makeElementStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
762         (WebCore::SelectorCompiler::isPlaceholderShown):
763         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPlaceholderShown):
764         (WebCore::SelectorCompiler::makeUniqueIfNecessaryAndTestIsPlaceholderShown): Deleted.
765
766 2014-08-25  Antti Koivisto  <antti@apple.com>
767
768         Remove ResourceLoader::didChangePriority
769         https://bugs.webkit.org/show_bug.cgi?id=136230
770
771         Reviewed by Andreas Kling.
772
773         It doesn't do anything on any platform.
774
775         * loader/ResourceLoader.cpp:
776         (WebCore::ResourceLoader::didChangePriority): Deleted.
777         * loader/ResourceLoader.h:
778         * loader/cache/CachedResource.cpp:
779         (WebCore::CachedResource::setLoadPriority):
780         * platform/network/ResourceHandle.cpp:
781         (WebCore::ResourceHandle::didChangePriority): Deleted.
782         * platform/network/ResourceHandle.h:
783
784 2014-08-24  Brian J. Burg  <burg@cs.washington.edu>
785
786         Web Inspector: rename Inspector::TypeBuilder to Inspector::Protocol
787         https://bugs.webkit.org/show_bug.cgi?id=136031
788
789         Reviewed by Timothy Hatcher.
790
791         Rename TypeBuilder namespace to Protocol. Disambiguate where
792         necessary. Also rename InspectorTypeBuilder to ProtocolTypes.
793
794         * CMakeLists.txt:
795         * DerivedSources.make:
796         * ForwardingHeaders/inspector/InspectorJSTypeBuilders.h: Removed.
797         * ForwardingHeaders/inspector/InspectorTypeBuilder.h: Removed.
798         * WebCore.order:
799         * WebCore.vcxproj/WebCore.vcxproj:
800         * WebCore.vcxproj/WebCore.vcxproj.filters:
801         * WebCore.xcodeproj/project.pbxproj:
802         * inspector/CommandLineAPIHost.cpp:
803         (WebCore::CommandLineAPIHost::inspectImpl):
804         * inspector/InspectorApplicationCacheAgent.cpp:
805         (WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
806         (WebCore::InspectorApplicationCacheAgent::getApplicationCacheForFrame):
807         (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCache):
808         (WebCore::InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources):
809         (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource):
810         * inspector/InspectorApplicationCacheAgent.h:
811         * inspector/InspectorCSSAgent.cpp:
812         (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
813         (WebCore::InspectorCSSAgent::getInlineStylesForNode):
814         (WebCore::InspectorCSSAgent::getComputedStyleForNode):
815         (WebCore::InspectorCSSAgent::getAllStyleSheets):
816         (WebCore::InspectorCSSAgent::getStyleSheet):
817         (WebCore::InspectorCSSAgent::setStyleText):
818         (WebCore::InspectorCSSAgent::setPropertyText):
819         (WebCore::InspectorCSSAgent::toggleProperty):
820         (WebCore::InspectorCSSAgent::setRuleSelector):
821         (WebCore::InspectorCSSAgent::addRule):
822         (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
823         (WebCore::InspectorCSSAgent::getNamedFlowCollection):
824         (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
825         (WebCore::InspectorCSSAgent::collectStyleSheets):
826         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
827         (WebCore::InspectorCSSAgent::detectOrigin):
828         (WebCore::InspectorCSSAgent::buildObjectForRule):
829         (WebCore::InspectorCSSAgent::buildArrayForRuleList):
830         (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
831         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
832         (WebCore::InspectorCSSAgent::buildArrayForRegions):
833         (WebCore::InspectorCSSAgent::buildObjectForNamedFlow):
834         * inspector/InspectorCSSAgent.h:
835         * inspector/InspectorDOMAgent.cpp:
836         (WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):
837         (WebCore::InspectorDOMAgent::getDocument):
838         (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
839         (WebCore::InspectorDOMAgent::querySelectorAll):
840         (WebCore::InspectorDOMAgent::pushNodePathToFrontend):
841         (WebCore::InspectorDOMAgent::getEventListenersForNode):
842         (WebCore::InspectorDOMAgent::getAccessibilityPropertiesForNode):
843         (WebCore::InspectorDOMAgent::getSearchResults):
844         (WebCore::InspectorDOMAgent::resolveNode):
845         (WebCore::InspectorDOMAgent::getAttributes):
846         (WebCore::InspectorDOMAgent::buildObjectForNode):
847         (WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
848         (WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
849         (WebCore::InspectorDOMAgent::buildObjectForEventListener):
850         (WebCore::InspectorDOMAgent::processAccessibilityChildren):
851         (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
852         (WebCore::InspectorDOMAgent::didCommitLoad):
853         (WebCore::InspectorDOMAgent::didInsertDOMNode):
854         (WebCore::InspectorDOMAgent::styleAttributeInvalidated):
855         * inspector/InspectorDOMAgent.h:
856         * inspector/InspectorDOMDebuggerAgent.cpp:
857         (WebCore::InspectorDOMDebuggerAgent::descriptionForDOMEvent):
858         * inspector/InspectorDOMStorageAgent.cpp:
859         (WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
860         (WebCore::InspectorDOMStorageAgent::storageId):
861         (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
862         * inspector/InspectorDOMStorageAgent.h:
863         * inspector/InspectorDatabaseAgent.cpp:
864         (WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
865         * inspector/InspectorDatabaseAgent.h:
866         * inspector/InspectorDatabaseResource.cpp:
867         (WebCore::InspectorDatabaseResource::bind):
868         * inspector/InspectorIndexedDBAgent.cpp:
869         * inspector/InspectorLayerTreeAgent.cpp:
870         (WebCore::InspectorLayerTreeAgent::layersForNode):
871         (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):
872         (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderLayerHierarchy):
873         (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
874         (WebCore::InspectorLayerTreeAgent::buildObjectForIntRect):
875         (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
876         * inspector/InspectorLayerTreeAgent.h:
877         * inspector/InspectorPageAgent.cpp:
878         (WebCore::InspectorPageAgent::resourceTypeJson):
879         (WebCore::InspectorPageAgent::cachedResourceTypeJson):
880         (WebCore::buildObjectForCookie):
881         (WebCore::buildArrayForCookies):
882         (WebCore::InspectorPageAgent::getCookies):
883         (WebCore::InspectorPageAgent::getResourceTree):
884         (WebCore::InspectorPageAgent::searchInResource):
885         (WebCore::buildObjectForSearchResult):
886         (WebCore::InspectorPageAgent::searchInResources):
887         (WebCore::InspectorPageAgent::buildObjectForFrame):
888         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
889         * inspector/InspectorPageAgent.h:
890         * inspector/InspectorReplayAgent.cpp:
891         (WebCore::buildInspectorObjectForPosition):
892         (WebCore::buildInspectorObjectForInput):
893         (WebCore::buildInspectorObjectForSession):
894         (WebCore::buildInspectorObjectForSessionState):
895         (WebCore::buildInspectorObjectForSegmentState):
896         (WebCore::SerializeInputToJSONFunctor::SerializeInputToJSONFunctor):
897         (WebCore::SerializeInputToJSONFunctor::operator()):
898         (WebCore::buildInspectorObjectForSegment):
899         (WebCore::InspectorReplayAgent::switchSession):
900         (WebCore::InspectorReplayAgent::insertSessionSegment):
901         (WebCore::InspectorReplayAgent::removeSessionSegment):
902         (WebCore::InspectorReplayAgent::currentReplayState):
903         (WebCore::InspectorReplayAgent::getAvailableSessions):
904         (WebCore::InspectorReplayAgent::getSessionData):
905         (WebCore::InspectorReplayAgent::getSegmentData):
906         * inspector/InspectorReplayAgent.h:
907         * inspector/InspectorResourceAgent.cpp:
908         (WebCore::buildObjectForTiming):
909         (WebCore::buildObjectForResourceRequest):
910         (WebCore::buildObjectForResourceResponse):
911         (WebCore::buildObjectForCachedResource):
912         (WebCore::InspectorResourceAgent::willSendRequest):
913         (WebCore::InspectorResourceAgent::didReceiveResponse):
914         (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
915         (WebCore::InspectorResourceAgent::buildInitiatorObject):
916         (WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
917         (WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
918         (WebCore::InspectorResourceAgent::didReceiveWebSocketFrame):
919         (WebCore::InspectorResourceAgent::didSendWebSocketFrame):
920         * inspector/InspectorResourceAgent.h:
921         * inspector/InspectorStyleSheet.cpp:
922         (WebCore::buildSourceRangeObject):
923         (WebCore::buildMediaObject):
924         (WebCore::fillMediaListChain):
925         (WebCore::InspectorStyle::buildObjectForStyle):
926         (WebCore::InspectorStyle::buildArrayForComputedStyle):
927         (WebCore::InspectorStyle::styleWithProperties):
928         (WebCore::InspectorStyleSheet::create):
929         (WebCore::InspectorStyleSheet::InspectorStyleSheet):
930         (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
931         (WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
932         (WebCore::selectorsFromSource):
933         (WebCore::InspectorStyleSheet::buildObjectForSelectorList):
934         (WebCore::InspectorStyleSheet::buildObjectForRule):
935         (WebCore::InspectorStyleSheet::buildObjectForStyle):
936         (WebCore::InspectorStyleSheet::resourceStyleSheetText):
937         (WebCore::InspectorStyleSheet::buildArrayForRuleList):
938         (WebCore::InspectorStyleSheetForInlineStyle::create):
939         (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
940         * inspector/InspectorStyleSheet.h:
941         (WebCore::InspectorStyleSheet::canBind):
942         * inspector/InspectorTimelineAgent.cpp:
943         (WebCore::toProtocol):
944         (WebCore::InspectorTimelineAgent::addRecordToTimeline):
945         (WebCore::InspectorTimelineAgent::sendEvent):
946         * inspector/PageRuntimeAgent.cpp:
947
948 2014-08-25  Brendan Long  <b.long@cablelabs.com>
949
950         [GStreamer] ASSERT failure in WebKitWebSource in StreamingClient
951         https://bugs.webkit.org/show_bug.cgi?id=136132
952
953         adoptGRef() has an ASSERT failure if it's used on a floating pointer. For some reason,
954         WebKitWebSrc* src in StreamingClient's constructor is floating. Since we
955         don't construct this ourselves, I assume this is happening in Playbin.
956
957         If we remove the ref and adopt, GRefPtr's constructor calls gst_object_ref_sink,
958         which removes the floating reference and doesn't increment the reference count.
959         This should work, but actually causes the page to either lock up or crash (different
960         results for different testers).
961
962         In this case, it seems like the adoptGRef / gst_object_ref was the correct thing to do,
963         but adoptGRef won't actually let us do. Removing the ASSERT is a bad idea, because
964         usually we don't want to adopt floating pointers.
965
966         This is all a long way of saying that making m_src a raw pointer and manually
967         calling gst_object_ref(), and calling gst_object_unref in the destructor is the
968         best solution in this case, since it fixes the problem while leaving the ASSERT
969         to protect us in the much more common case where adopting a floating reference is bad.
970
971         Reviewed by Philippe Normand.
972
973         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
974         (StreamingClient::StreamingClient): Make m_src a raw pointer instead of a GRefPtr.
975         (StreamingClient::~StreamingClient): Unref m_src.
976         (StreamingClient::createReadBuffer): Replace m_src.get() with m_src, since it's a raw pointer now.
977         (StreamingClient::handleResponseReceived): Same.
978         (StreamingClient::handleDataReceived): Same.
979         (StreamingClient::handleNotifyFinished): Same.
980         (CachedResourceStreamingClient::notifyFinished): Same.
981         (ResourceHandleStreamingClient::didFail): Same.
982         (ResourceHandleStreamingClient::wasBlocked): Same.
983         (ResourceHandleStreamingClient::cannotShowURL): Same.
984
985 2014-08-25  Zan Dobersek  <zdobersek@igalia.com>
986
987         [GTK] Remove PopupMenuGtk, SearchPopupMenuGtk
988         https://bugs.webkit.org/show_bug.cgi?id=136211
989
990         Reviewed by Carlos Garcia Campos.
991
992         Remove the two classes from the codebase. They're not used anymore
993         after the WebKit1 layer of the GTK port was removed some time ago.
994
995         * PlatformGTK.cmake:
996         * platform/gtk/PopupMenuGtk.cpp: Removed.
997         * platform/gtk/PopupMenuGtk.h: Removed.
998         * platform/gtk/SearchPopupMenuGtk.cpp: Removed.
999         * platform/gtk/SearchPopupMenuGtk.h: Removed.
1000
1001 2014-08-25  Shivakumar JM  <shiva.jm@samsung.com>
1002
1003         Web Core: Fix unused parameter build warning.
1004         https://bugs.webkit.org/show_bug.cgi?id=136208
1005
1006         Reviewed by Darin Adler.
1007
1008         Fix unused build warning by removing parameter, which is not used.
1009
1010         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
1011         (WebCore::CoordinatedGraphicsLayer::setContentsToPlatformLayer):
1012
1013 2014-08-22  Sergio Villar Senin  <svillar@igalia.com>
1014
1015         ASSERTION FAILED: !trackSizes.isEmpty() in WebCore::createGridTrackList
1016         https://bugs.webkit.org/show_bug.cgi?id=136149
1017
1018         Reviewed by Darin Adler.
1019
1020         The second argument of the repeat() function is a <track-list>
1021         that must have at least one <track-size>. Should it not be found,
1022         the declaration must be invalidated.
1023
1024         * css/CSSParser.cpp:
1025         (WebCore::CSSParser::parseGridTrackRepeatFunction):
1026
1027 2014-08-24  Zan Dobersek  <zdobersek@igalia.com>
1028
1029         Move WebCore storage code to C++11 lambdas, std::function
1030         https://bugs.webkit.org/show_bug.cgi?id=126435
1031
1032         Reviewed by Darin Adler.
1033
1034         Use C++11 lambdas instead of WTF::bind and std::function<void ()>
1035         instead of WTF::Function<void ()> in StorageAreaSync, StorageSyncManager,
1036         StorageThread and StorageTracker classes.
1037
1038         * storage/StorageAreaSync.cpp:
1039         (WebCore::StorageAreaSync::StorageAreaSync):
1040         (WebCore::StorageAreaSync::scheduleFinalSync):
1041         (WebCore::StorageAreaSync::syncTimerFired):
1042         * storage/StorageSyncManager.cpp:
1043         (WebCore::StorageSyncManager::dispatch):
1044         * storage/StorageSyncManager.h:
1045         * storage/StorageThread.cpp:
1046         (WebCore::StorageThread::dispatch):
1047         (WebCore::StorageThread::terminate):
1048         (WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThreads):
1049         * storage/StorageThread.h:
1050         * storage/StorageTracker.cpp:
1051         (WebCore::StorageTracker::importOriginIdentifiers):
1052         (WebCore::StorageTracker::syncImportOriginIdentifiers):
1053         (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
1054         (WebCore::StorageTracker::setOriginDetails):
1055         (WebCore::StorageTracker::deleteAllOrigins):
1056         (WebCore::StorageTracker::deleteOrigin):
1057
1058 2014-08-24  Alexey Proskuryakov  <ap@apple.com>
1059
1060         ASSERT(extractable()) when storing a non-extractable key in IndexedDB
1061         https://bugs.webkit.org/show_bug.cgi?id=136202
1062         rdar://problem/17993967
1063
1064         Reviewed by Darin Adler.
1065
1066         Test: crypto/subtle/rsa-indexeddb-non-exportable.html
1067
1068         Removed the obsolete assertion.
1069
1070         * crypto/keys/CryptoKeyAES.cpp: (WebCore::CryptoKeyAES::exportData):
1071         * crypto/keys/CryptoKeyHMAC.cpp: (WebCore::CryptoKeyHMAC::exportData):
1072         * crypto/mac/CryptoKeyRSAMac.cpp: (WebCore::CryptoKeyRSA::exportData):
1073
1074 2014-08-24  Brian J. Burg  <burg@cs.washington.edu>
1075
1076         Web Inspector: Rename DOM.RGBA and remove workarounds in the bindings generator
1077         https://bugs.webkit.org/show_bug.cgi?id=136025
1078
1079         Reviewed by Joseph Pecoraro.
1080
1081         Rename DOM.RGBA to DOM.RGBAColor to avoid name clashes with headers on Windows CE.
1082         This workaround used to be special-cased in the bindings generator.
1083
1084         Type names are not used in protocol messages, so this does not introduce legacy issues.
1085
1086         * inspector/protocol/DOM.json:
1087
1088 2014-08-24  Michael Catanzaro  <mcatanzaro@igalia.com>
1089
1090         [GTK] Toggle buttons visually broken with GTK+ 3.13.7
1091         https://bugs.webkit.org/show_bug.cgi?id=136130
1092
1093         Reviewed by Martin Robinson.
1094
1095         No new tests. Hopefully covered by existing tests, and our tests only
1096         run with GTK+ 3.6 anyway.
1097
1098         * platform/gtk/RenderThemeGtk3.cpp:
1099         (WebCore::paintToggle): use GTK_STATE_FLAG_CHECKED when compiling for
1100         GTK+ 3.13.7 and above to ensure toggle buttons display as toggled.
1101
1102 2014-08-23  Brady Eidson  <beidson@apple.com>
1103
1104         Random Gamepad cleanup
1105         https://bugs.webkit.org/show_bug.cgi?id=136193
1106
1107         Reviewed by Sam Weinig.
1108
1109         No new tests (Not tested yet, and no change in behavior anyways)
1110
1111         - Use DOMWindow WeakPtrs when iterating
1112         - More references instead of pointers
1113
1114         * Modules/gamepad/GamepadEvent.cpp:
1115         (WebCore::GamepadEvent::GamepadEvent):
1116         * Modules/gamepad/GamepadEvent.h:
1117         (WebCore::GamepadEvent::create):
1118
1119         * Modules/gamepad/GamepadManager.cpp:
1120         (WebCore::GamepadManager::platformGamepadDisconnected):
1121         (WebCore::GamepadManager::makeGamepadVisible):
1122         * Modules/gamepad/NavigatorGamepad.cpp:
1123         (WebCore::NavigatorGamepad::gamepadFromPlatformGamepad):
1124         (WebCore::NavigatorGamepad::gamepadAtIndex): Deleted.
1125         * Modules/gamepad/NavigatorGamepad.h:
1126
1127         * page/DOMWindow.cpp:
1128         (WebCore::DOMWindow::DOMWindow):
1129         * page/DOMWindow.h:
1130
1131 2014-08-23  Byungseon Shin  <sun.shin@lge.com>
1132
1133         Unify GraphicsLayer::setContentsToMedia and setContentsToCanvas
1134         https://bugs.webkit.org/show_bug.cgi?id=109658
1135
1136         Reviewed by Martin Robinson.
1137  
1138         Based on patch originally written by Tim Horton.
1139         Merge setContentsToMedia and setContentsToCanvas into setContentsToPlatformLayer.
1140  
1141         * WebCore.exp.in:
1142         Adjust exports.
1143  
1144         * platform/graphics/GraphicsLayer.h:
1145         Move ContentsLayerPurpose enum up out of GraphicsLayer platform implmentations
1146         and into GraphicsLayer, so we can use it as a parameter.
1147         Add ContentsLayerForPlugin.
1148  
1149         (WebCore::GraphicsLayer::setContentsToPlatformLayer):
1150         Remove setContentsToMedia and setContentsToCanvas, and replace them
1151         with setContentsToPlatformLayer, which previously existed but was unused
1152         and simply called setContentsToMedia.
1153         setContentsToPlatformLayer takes a ContentsLayerPurpose, primarily
1154         so that GraphicsLayerCA can know whether it needs to setNeedsDisplay
1155         the layer when parenting it (canvas) or not (everything else).
1156  
1157         * platform/graphics/ca/GraphicsLayerCA.cpp:
1158         (WebCore::GraphicsLayerCA::setContentsToPlatformLayer):
1159         Rename function setContentsToMedia -> setContentsToPlatformLayer.
1160         Rename argument mediaLayer -> platformLayer.
1161         Store the passed-in ContentsLayerPurpose.
1162         Remove setContentsToCanvas.
1163  
1164         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
1165         (WebCore::GraphicsLayerCA::updateContentsPlatformLayer):
1166         Remove updateContentsMediaLayer and updateContentsCanvas layer,
1167         add updateContentsPlatformLayer.
1168  
1169         * platform/graphics/ca/GraphicsLayerCA.h:
1170         Do the same to the LayerChange enum.
1171  
1172         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
1173         (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
1174         (WebCore::GraphicsLayerTextureMapper::setContentsToPlatformLayer):
1175         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
1176         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
1177         (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
1178         (WebCore::CoordinatedGraphicsLayer::setContentsNeedsDisplay):
1179         (WebCore::CoordinatedGraphicsLayer::setContentsToPlatformLayer):
1180         (WebCore::CoordinatedGraphicsLayer::syncPlatformLayer):
1181         (WebCore::CoordinatedGraphicsLayer::destroyPlatformLayerIfNeeded):
1182         (WebCore::CoordinatedGraphicsLayer::createPlatformLayerIfNeeded):
1183         (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
1184         Fold these together in the same way as elsewhere.
1185  
1186         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
1187         Do the same to the LayerChange enum.
1188  
1189         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
1190         (WebCore::CoordinatedGraphicsScene::createPlatformLayerIfNeeded):
1191         (WebCore::CoordinatedGraphicsScene::syncPlatformLayerIfNeeded):
1192         (WebCore::CoordinatedGraphicsScene::destroyPlatformLayerIfNeeded):
1193         (WebCore::CoordinatedGraphicsScene::setLayerState):
1194         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
1195         * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
1196         (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
1197         Rename canvasLayer -> platformLayer.
1198  
1199         * rendering/RenderLayerBacking.cpp:
1200         (WebCore::RenderLayerBacking::updateConfiguration):
1201         Use the new setContentsToPlatformLayer, passing in the relevant ContentsLayerPurpose.
1202
1203 2014-08-23  Joseph Pecoraro  <pecoraro@apple.com>
1204
1205         Web Inspector: Do not copy large module source strings
1206         https://bugs.webkit.org/show_bug.cgi?id=136191
1207
1208         Reviewed by Benjamin Poulain.
1209
1210         * inspector/CommandLineAPIModule.cpp:
1211         (WebCore::CommandLineAPIModule::source):
1212
1213 2014-08-23  Zan Dobersek  <zdobersek@igalia.com>
1214
1215         Remove uses of CrossThreadTask in ThreadableWebSocketChannelClientWrapper, WorkerThreadableWebSocketChannel
1216         https://bugs.webkit.org/show_bug.cgi?id=133954
1217
1218         Reviewed by Darin Adler.
1219
1220         Replace uses of CrossThreadTask with C++11 lambdas in the ThreadableWebSocketChannelClientWrapper
1221         and WorkerThreadableWebSocketChannel classes.
1222
1223         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
1224         (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
1225         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
1226         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
1227         (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
1228         (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
1229         (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
1230         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
1231         (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
1232         (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasksCallback): Deleted.
1233         (WebCore::ThreadableWebSocketChannelClientWrapper::didConnectCallback): Deleted.
1234         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageCallback): Deleted.
1235         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryDataCallback): Deleted.
1236         (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmountCallback): Deleted.
1237         (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshakeCallback): Deleted.
1238         (WebCore::ThreadableWebSocketChannelClientWrapper::didCloseCallback): Deleted.
1239         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageErrorCallback): Deleted.
1240         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
1241         * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
1242         (WebCore::WorkerThreadableWebSocketChannel::Peer::send):
1243         (WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
1244         (WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
1245         (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
1246         (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
1247         (WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
1248         (WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
1249         (WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
1250         (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
1251         (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
1252         (WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
1253         (WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
1254         (WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):
1255         (WebCore::WorkerThreadableWebSocketChannel::Bridge::close):
1256         (WebCore::WorkerThreadableWebSocketChannel::Bridge::fail):
1257         (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
1258         (WebCore::WorkerThreadableWebSocketChannel::Bridge::suspend):
1259         (WebCore::WorkerThreadableWebSocketChannel::Bridge::resume):
1260         (WebCore::workerGlobalScopeDidSend): Deleted.
1261         (WebCore::workerGlobalScopeDidGetBufferedAmount): Deleted.
1262         (WebCore::workerGlobalScopeDidConnect): Deleted.
1263         (WebCore::workerGlobalScopeDidReceiveMessage): Deleted.
1264         (WebCore::workerGlobalScopeDidReceiveBinaryData): Deleted.
1265         (WebCore::workerGlobalScopeDidUpdateBufferedAmount): Deleted.
1266         (WebCore::workerGlobalScopeDidStartClosingHandshake): Deleted.
1267         (WebCore::workerGlobalScopeDidClose): Deleted.
1268         (WebCore::workerGlobalScopeDidReceiveMessageError): Deleted.
1269         (WebCore::WorkerThreadableWebSocketChannel::mainThreadConnect): Deleted.
1270         (WebCore::WorkerThreadableWebSocketChannel::mainThreadSend): Deleted.
1271         (WebCore::WorkerThreadableWebSocketChannel::mainThreadSendArrayBuffer): Deleted.
1272         (WebCore::WorkerThreadableWebSocketChannel::mainThreadSendBlob): Deleted.
1273         (WebCore::WorkerThreadableWebSocketChannel::mainThreadBufferedAmount): Deleted.
1274         (WebCore::WorkerThreadableWebSocketChannel::mainThreadClose): Deleted.
1275         (WebCore::WorkerThreadableWebSocketChannel::mainThreadFail): Deleted.
1276         (WebCore::WorkerThreadableWebSocketChannel::mainThreadDestroy): Deleted.
1277         (WebCore::WorkerThreadableWebSocketChannel::mainThreadSuspend): Deleted.
1278         (WebCore::WorkerThreadableWebSocketChannel::mainThreadResume): Deleted.
1279         * Modules/websockets/WorkerThreadableWebSocketChannel.h:
1280
1281 2014-08-23  Yusuke Suzuki  <utatane.tea@gmail.com>
1282
1283         Clean up build warnings: control reaches end of non-void function
1284         https://bugs.webkit.org/show_bug.cgi?id=135889
1285
1286         Reviewed by Alexey Proskuryakov.
1287
1288         * bindings/js/JSCryptoAlgorithmDictionary.cpp:
1289         (WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt):
1290         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt):
1291         (WebCore::JSCryptoAlgorithmDictionary::createParametersForSign):
1292         (WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify):
1293         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest):
1294         (WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey):
1295         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveKey):
1296         (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveBits):
1297         (WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
1298         (WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey):
1299         * crypto/CryptoKey.cpp:
1300         (WebCore::CryptoKey::type):
1301
1302 2014-08-23  Zan Dobersek  <zdobersek@igalia.com>
1303
1304         [TexMap] Only notify of a required flush on the first layer property change
1305         https://bugs.webkit.org/show_bug.cgi?id=136104
1306
1307         Reviewed by Martin Robinson.
1308
1309         The GraphicsLayer's client should only be notified that a flush is required
1310         when the first change of one of the layer's properties is initiated, instead
1311         of requesting the flush on every such change.
1312
1313         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
1314         (WebCore::GraphicsLayerTextureMapper::notifyChange):
1315
1316 2014-08-22  Dan Bernstein  <mitz@apple.com>
1317
1318         Try to fix the Mac build using the internal SDK.
1319
1320         * bindings/objc/PublicDOMInterfaces.h:
1321
1322 2014-08-22  Renato Nagy  <nagy.renato@stud.u-szeged.hu>
1323
1324         Remove LevelDB.
1325         https://bugs.webkit.org/show_bug.cgi?id=136170
1326
1327         Reviewed by Gyuyoung Kim.
1328
1329         * CMakeLists.txt:
1330         * Modules/indexeddb/IDBObjectStore.cpp:
1331         (WebCore::IDBObjectStore::createIndex):
1332         * Modules/indexeddb/IDBTransactionCoordinator.cpp:
1333         (WebCore::IDBTransactionCoordinator::canRunTransaction):
1334         (WebCore::doScopesOverlap): Deleted.
1335         * Modules/indexeddb/leveldb/IDBBackingStoreCursorLevelDB.cpp: Removed.
1336         * Modules/indexeddb/leveldb/IDBBackingStoreCursorLevelDB.h: Removed.
1337         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp: Removed.
1338         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h: Removed.
1339         * Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.cpp: Removed.
1340         * Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.h: Removed.
1341         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp: Removed.
1342         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h: Removed.
1343         * Modules/indexeddb/leveldb/IDBIndexWriterLevelDB.cpp: Removed.
1344         * Modules/indexeddb/leveldb/IDBIndexWriterLevelDB.h: Removed.
1345         * Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp: Removed.
1346         * Modules/indexeddb/leveldb/IDBLevelDBCoding.h: Removed.
1347         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp: Removed.
1348         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h: Removed.
1349         * WebCore.vcxproj/WebCore.vcxproj:
1350         * WebCore.vcxproj/WebCore.vcxproj.filters:
1351         * WebCore.xcodeproj/project.pbxproj:
1352         * platform/DatabaseStrategy.cpp:
1353         (WebCore::DatabaseStrategy::createIDBFactoryBackend):
1354         * platform/leveldb/LevelDBComparator.h: Removed.
1355         * platform/leveldb/LevelDBDatabase.cpp: Removed.
1356         * platform/leveldb/LevelDBDatabase.h: Removed.
1357         * platform/leveldb/LevelDBIterator.h: Removed.
1358         * platform/leveldb/LevelDBSlice.h: Removed.
1359         * platform/leveldb/LevelDBTransaction.cpp: Removed.
1360         * platform/leveldb/LevelDBTransaction.h: Removed.
1361         * platform/leveldb/LevelDBWriteBatch.cpp: Removed.
1362         * platform/leveldb/LevelDBWriteBatch.h: Removed.
1363
1364 2014-08-22  KwangHyuk Kim  <hyuki.kim@samsung.com>
1365
1366         [EFL] Fix build break caused by ENABLE_GAMEPAD_DEPRECATED.
1367         https://bugs.webkit.org/show_bug.cgi?id=136110
1368
1369         Reviewed by Gyuyoung Kim.
1370
1371         WebCore_INCLUDE_DIRECTORY for gamepad was removed from WK2 Efl in order to fix build break when ENABLE_GAMEPAD_DEPRECATED is on.
1372
1373         No new tests because no functional changes.
1374
1375         * PlatformEfl.cmake:
1376
1377 2014-08-22  Benjamin Poulain  <benjamin@webkit.org>
1378
1379         Style invalidation does not work for adjacent node updates
1380         https://bugs.webkit.org/show_bug.cgi?id=136145
1381
1382         Reviewed by Antti Koivisto.
1383
1384         There were a bunch of cases in which the style would be in an inconsistent
1385         state until the style resolver kicks in for the entire document.
1386
1387         For example, let's take the selector "foo.bar + target". When the class "bar"
1388         changes, the element foo is invalidated. The element target is untouched.
1389
1390         Now, if the style of "target" is accessed, nodeOrItsAncestorNeedsStyleRecalc()
1391         returns false and the old style is accessed.
1392
1393         At some point, when the style of the entire document is resolved, the node
1394         "foo" is styled, and "target" is invalidated.
1395
1396
1397         To fix the issue, this patch adds an extra flag keeping track of subtrees that
1398         have any node needing style recalc: DirectChildNeedsStyleRecalcFlag.
1399
1400         When invalidating the node "foo", its parent is marked with
1401         DirectChildNeedsStyleRecalcFlag to note that one of the child nodes has an invalid style.
1402
1403         When verifying the style state in nodeOrItsAncestorNeedsStyleRecalc(), we check that flag
1404         in addition to the siblings dependencies to find if the node is part of a subtree that may
1405         be invalid due to sibling selectors.
1406
1407         Similarly, in the style resolver, we use the flag to clear the style on all elements
1408         that could potentially be invalid.
1409
1410
1411         This patch removes the changes introduced by r172721
1412         (The style is not updated correctly when the pseudo class :empty is applied on anything but the rightmost element).
1413         That bug was just a special case of what is solved here.
1414
1415
1416         Tests: fast/selectors/attribute-direct-adjacent-style-update.html
1417                fast/selectors/attribute-sibling-style-update.html
1418                fast/selectors/class-direct-adjacent-style-update.html
1419                fast/selectors/class-sibling-style-update.html
1420                fast/selectors/first-child-direct-adjacent-style-update.html
1421                fast/selectors/first-child-sibling-style-update.html
1422
1423         * css/SelectorChecker.cpp:
1424         (WebCore::SelectorChecker::checkOne):
1425         * cssjit/SelectorCompiler.cpp:
1426         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsEmpty):
1427         (WebCore::SelectorCompiler::setStyleOfSiblingsAffectedByEmpty): Deleted.
1428         * dom/ContainerNode.h:
1429         (WebCore::ContainerNode::directChildNeedsStyleRecalc):
1430         (WebCore::ContainerNode::setDirectChildNeedsStyleRecalc):
1431         Remove the special case for :empty.
1432
1433         * dom/Document.cpp:
1434         (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
1435         * dom/Element.cpp:
1436         (WebCore::checkForEmptyStyleChange):
1437         (WebCore::checkForSiblingStyleChanges):
1438         (WebCore::Element::setStyleOfSiblingsAffectedByEmpty): Deleted.
1439         (WebCore::Element::rareDataStyleOfSiblingsAffectedByEmpty): Deleted.
1440         * dom/Element.h:
1441         (WebCore::Element::styleOfSiblingsAffectedByEmpty): Deleted.
1442         * dom/ElementRareData.h:
1443         (WebCore::ElementRareData::ElementRareData):
1444         (WebCore::ElementRareData::styleOfSiblingsAffectedByEmpty): Deleted.
1445         (WebCore::ElementRareData::setStyleOfSiblingsAffectedByEmpty): Deleted.
1446         * dom/Node.cpp:
1447         (WebCore::markAncestorsWithChildNeedsStyleRecalc):
1448         (WebCore::Node::setNeedsStyleRecalc):
1449         (WebCore::Node::markAncestorsWithChildNeedsStyleRecalc): Deleted.
1450         * dom/Node.h:
1451         (WebCore::Node::clearChildNeedsStyleRecalc):
1452         * style/StyleResolveTree.cpp:
1453         (WebCore::Style::resetStyleForNonRenderedDescendants):
1454
1455 2014-08-22  Joseph Pecoraro  <pecoraro@apple.com>
1456
1457         Remove unused legacy InspectorFrontendHost methods
1458         https://bugs.webkit.org/show_bug.cgi?id=136186
1459
1460         Reviewed by Andreas Kling.
1461
1462         * bindings/js/JSInspectorFrontendHostCustom.cpp:
1463         (WebCore::JSInspectorFrontendHost::recordActionTaken): Deleted.
1464         (WebCore::JSInspectorFrontendHost::recordPanelShown): Deleted.
1465         (WebCore::JSInspectorFrontendHost::recordSettingChanged): Deleted.
1466         * inspector/InspectorFrontendHost.idl:
1467
1468 2014-08-22  Joseph Pecoraro  <pecoraro@apple.com>
1469
1470         Remove unnecessary WTFString creation in Dictionary getter
1471         https://bugs.webkit.org/show_bug.cgi?id=136184
1472
1473         Reviewed by Benjamin Poulain.
1474
1475         * bindings/js/Dictionary.cpp:
1476         (WebCore::Dictionary::getWithUndefinedOrNullCheck):
1477         * bindings/js/Dictionary.h:
1478         * bindings/js/JSDictionary.cpp:
1479         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
1480         * bindings/js/JSDictionary.h:
1481
1482 2014-08-22  Commit Queue  <commit-queue@webkit.org>
1483
1484         Unreviewed, rolling out r172866.
1485         https://bugs.webkit.org/show_bug.cgi?id=136177
1486
1487         Broke iOS build (Requested by othermaciej on #webkit).
1488
1489         Reverted changeset:
1490
1491         "Replace use of WKCopyCFLocalizationPreferredName with
1492         NSLocale public API"
1493         https://bugs.webkit.org/show_bug.cgi?id=136082
1494         http://trac.webkit.org/changeset/172866
1495
1496 2014-08-22  David Hyatt  <hyatt@apple.com>
1497
1498         Add proper support for letter-spacing to bopomofo Ruby
1499         https://bugs.webkit.org/show_bug.cgi?id=136171
1500
1501         Reviewed by Sam Weinig.
1502
1503         Added fast/ruby/bopomofo-letter-spacing.html
1504
1505         * rendering/RenderRubyRun.cpp:
1506         (WebCore::RenderRubyRun::layout):
1507         Alter the layout of bopomofo ruby so that the distance between the base characters is the max of
1508         the letter-spacing between the characters and the minimum required width to hold two rows of
1509         Ruby.
1510
1511         Push the bopomofo ruby into the letter-spacing to ensure that it comes right after the base character
1512         and not after all the letter-spacing.
1513
1514 2014-08-22  Simon Fraser  <simon.fraser@apple.com>
1515
1516         Fix showing paint rects when selecting lines in the timeline
1517         https://bugs.webkit.org/show_bug.cgi?id=136173
1518
1519         Reviewed by Joseph Pecoraro.
1520
1521         Fix the condition used to decide when to show the overlay.
1522
1523         * inspector/InspectorOverlay.cpp:
1524         (WebCore::InspectorOverlay::shouldShowOverlay):
1525
1526 2014-08-22  Simon Fraser  <simon.fraser@apple.com>
1527
1528         Use the correct rect for paint flashing
1529         https://bugs.webkit.org/show_bug.cgi?id=136169
1530
1531         Reviewed by Sam Weinig.
1532
1533         Use the rect we've converted to root document coordinates for paint flashing.
1534
1535         * inspector/InspectorPageAgent.cpp:
1536         (WebCore::InspectorPageAgent::didPaint):
1537
1538 2014-08-22  Dean Jackson  <dino@apple.com>
1539
1540         Google Canvas2D maps are too slow and uncontrollable with Safari with full screen mode
1541         https://bugs.webkit.org/show_bug.cgi?id=136168
1542
1543         Reviewed by Tim Horton.
1544
1545         When Google maps are using their 2D "lite" fallback and you're drawing in a huge
1546         window such as fullscreen 4K, we would drop back to unaccelerated mode, thinking
1547         that we'd exceeded the maximum IOSurface size.
1548
1549         Remove the hardcoded limit on IOSurface sizes, and instead ask the system
1550         what it believe the maximum to be. This was significantly higher than our
1551         limit on the systems I tested.
1552
1553         * platform/graphics/cg/ImageBufferCG.cpp:
1554         (WebCore::ImageBuffer::ImageBuffer): Include our IOSurface wrapper, which
1555         has a query for maximum size, and use that instead.
1556
1557 2014-08-22  Simon Fraser  <simon.fraser@apple.com>
1558
1559         Maybe fix Windows.
1560
1561         * inspector/InspectorOverlay.cpp:
1562         (WebCore::InspectorOverlay::showPaintRect):
1563
1564 2014-08-22  Simon Fraser  <simon.fraser@apple.com>
1565
1566         Implement paint flashing in the WK1 InspectorOverlay page
1567         https://bugs.webkit.org/show_bug.cgi?id=136138
1568
1569         Reviewed by Sam Weinig, Joseph Pecoraro.
1570
1571         Implement paint flashing for the WebKit1 InspectorOverlay via a second canvas in the overlay page.
1572         We avoid allocating backing store for this canvas until we have paint rects.
1573         
1574         Because this overlay page is weird and doesn't know how to paint itself, InspectorOverlay manages
1575         an array of rects, and pushes them to the page when they change, before forcing a paint.
1576         
1577         Because iOS doesn't use the InspectorOverlay page, stub out setShowPaintRects on its
1578         WebKit WebInspectorClient, but don't yet implement paint flashing there.
1579
1580         * inspector/InspectorOverlay.cpp:
1581         (WebCore::InspectorOverlay::InspectorOverlay):
1582         (WebCore::InspectorOverlay::shouldShowOverlay):
1583         (WebCore::InspectorOverlay::update):
1584         (WebCore::buildObjectForRect):
1585         (WebCore::InspectorOverlay::setShowingPaintRects):
1586         (WebCore::InspectorOverlay::showPaintRect):
1587         (WebCore::InspectorOverlay::updatePaintRectsTimerFired):
1588         (WebCore::InspectorOverlay::drawPaintRects):
1589         (WebCore::InspectorOverlay::forcePaint):
1590         (WebCore::quadToPath): Deleted.
1591         (WebCore::drawOutlinedQuad): Deleted.
1592         (WebCore::InspectorOverlay::drawOutline): Deleted.
1593         * inspector/InspectorOverlay.h:
1594         * inspector/InspectorOverlayPage.html:
1595         * inspector/InspectorOverlayPage.js:
1596         (updatePaintRects):
1597         (reset):
1598         (_drawShapeHighlight):
1599         * inspector/InspectorPageAgent.cpp:
1600         (WebCore::InspectorPageAgent::setShowPaintRects):
1601         (WebCore::InspectorPageAgent::didPaint):
1602
1603 2014-08-22  Eric Carlson  <eric.carlson@apple.com>
1604
1605         [iOS] Cleanup media code
1606         https://bugs.webkit.org/show_bug.cgi?id=136163
1607
1608         Reviewed by Jer Noble.
1609
1610         No new tests, no functionality was changed.
1611
1612         * html/HTMLMediaElement.cpp:
1613         (WebCore::HTMLMediaElement::HTMLMediaElement): Don't initialize m_requestingPlay.
1614         (WebCore::HTMLMediaElement::parseMediaPlayerAttribute): Deleted.
1615         (WebCore::HTMLMediaElement::parseAttribute): Don't call parseMediaPlayerAttribute.
1616         (WebCore::HTMLMediaElement::playInternal): m_requestingPlay is dead, Jim.
1617         (WebCore::HTMLMediaElement::updatePlayState): Ditto.
1618         (WebCore::HTMLMediaElement::updatePlayState): Remove obsolete FIXME.
1619         * html/HTMLMediaElement.h:
1620         * platform/graphics/MediaPlayer.cpp:
1621         (WebCore::MediaPlayer::attributeChanged): Deleted.
1622         (WebCore::MediaPlayer::readyForPlayback): Deleted.
1623         * platform/graphics/MediaPlayer.h:
1624         * platform/graphics/MediaPlayerPrivate.h:
1625         (WebCore::MediaPlayerPrivateInterface::attributeChanged): Deleted.
1626         (WebCore::MediaPlayerPrivateInterface::readyForPlayback): Deleted.
1627
1628 2014-08-20  Maciej Stachowiak  <mjs@apple.com>
1629
1630         Replace use of WKCopyCFLocalizationPreferredName with NSLocale public API
1631         https://bugs.webkit.org/show_bug.cgi?id=136082
1632
1633         Reviewed by Alexey Proskuryakov.
1634
1635         * platform/mac/Language.mm:
1636         (WebCore::httpStyleLanguageCode): Replace use of WKCopyCFLocalizationPreferredName
1637         with new WebCoreNSStringExtras helper.
1638         * platform/mac/WebCoreNSStringExtras.mm: Replacements for the aspects of
1639         WKCopyCFLocalizationPreferredName.
1640         (preferredBundleLocalizationName): New helper - most preferred localization available
1641         in the main bundle, canonicalized the way we like it.
1642         (canonicalLocalizationName): Convert a lcalization name to a string with language and
1643         country code, using default if necessary (e.g. "en" maps to "en_US").
1644         * WebCore.order: Remove mention of WKCopyCFLocalizationPreferredName.
1645         * WebCore.exp.in: ditto; also export preferredBundleLocalizationName for WebKit(2).
1646         * platform/ios/WebCoreSystemInterfaceIOS.mm: ditto
1647         * platform/mac/WebCoreSystemInterface.h: ditto
1648         * platform/mac/WebCoreSystemInterface.mm: ditto
1649
1650 2014-08-22  Daniel Bates  <dabates@apple.com>
1651
1652         [iOS] Disable ENABLE_IOS_{GESTURE, TOUCH}_EVENTS, and temporarily disable ENABLE_TOUCH_EVENTS
1653         and ENABLE_XSLT when building with the iOS public SDK
1654         https://bugs.webkit.org/show_bug.cgi?id=135945
1655
1656         Reviewed by Andy Estes.
1657
1658         Towards bringing up the iOS WebKit port using the iOS public SDK, disable the proprietary
1659         iOS gesture and touch event code. For now we also temporarily disable ENABLE_TOUCH_EVENTS
1660         and ENABLE_XSLT while we focus to get the rest of the port built using the public SDK. We'll
1661         look to enable these features once we stabilize the build.
1662
1663         * Configurations/FeatureDefines.xcconfig: Disable ENABLE_IOS_{GESTURE, TOUCH}_EVENTS, ENABLE_TOUCH_EVENTS
1664         and ENABLE_XSLT when building with the public SDK.
1665         * Configurations/WebCore.xcconfig:
1666         * DerivedSources.make: Conditionally generate derived sources for touch and gesture events as applicable and pass
1667         define WTF_USE_APPLE_INTERNAL_SDK when generating bindings (if applicable). Make the logic for determining
1668         whether WTF_PLATFORM_IOS is defined consistent with logic for determining whether WTF_USE_APPLE_INTERNAL_SDK and
1669         ENABLE_ORIENTATION_EVENTS are defined. We should look to further cleanup this code.
1670         * bindings/js/ios/TouchConstructors.cpp: Substitute ENABLE(IOS_TOUCH_EVENTS) for macro expression "PLATFORM(IOS) && ENABLE(TOUCH_EVENTS)".
1671         * bindings/objc/DOMEvents.h: Write preprocessor logic in terms of ENABLE_TOUCH_EVENTS and ENABLE_IOS_GESTURE_EVENTS.
1672         * bindings/objc/PublicDOMInterfaces.h: Include private header <WebKitAdditions/PublicDOMInterfacesIOS.h> when
1673         it exists as opposed to assuming it exists when building for iOS.
1674         * dom/Document.cpp:
1675         (WebCore::Document::Document): Substitute ENABLE(IOS_TOUCH_EVENTS) for macro expression "ENABLE(TOUCH_EVENTS) && PLATFORM(IOS)".
1676         (WebCore::Document::prepareForDestruction): Ditto.
1677         (WebCore::Document::removeAllEventListeners): Ditto.
1678         * dom/Document.h: Write preprocessor logic in terms of ENABLE_IOS_TOUCH_EVENTS and ENABLE_TOUCH_EVENTS.
1679         * dom/Document.idl: Ditto.
1680         * dom/Touch.h: Substitute ENABLE(IOS_TOUCH_EVENTS) for PLATFORM(IOS)..
1681         * dom/TouchEvent.h: Ditto.
1682         * dom/TouchList.h: Ditto.
1683         * dom/ios/TouchEvents.cpp: Substitute ENABLE(IOS_TOUCH_EVENTS) for macro expression "PLATFORM(IOS) && ENABLE(TOUCH_EVENTS)".
1684         * history/CachedFrame.cpp: Add PLATFORM(IOS) guard.
1685         * html/shadow/SliderThumbElement.cpp:
1686         (WebCore::SliderThumbElement::SliderThumbElement): Substitute ENABLE(IOS_TOUCH_EVENTS) for ENABLE(TOUCH_EVENTS).
1687         (WebCore::SliderThumbElement::willDetachRenderers): Ditto.
1688         * html/shadow/SliderThumbElement.h: Ditto.
1689         * loader/EmptyClients.h: Ditto.
1690         * platform/ios/PlatformEventFactoryIOS.h: Write preprocessor logic in terms of ENABLE_IOS_TOUCH_EVENTS and ENABLE_TOUCH_EVENTS.
1691         Only include header <WebKitAdditions/PlatformTouchEventIOS.h> when building with ENABLE_TOUCH_EVENTS enabled.
1692
1693 2014-08-22  Simon Fraser  <simon.fraser@apple.com>
1694
1695         Implement paint flashing via GraphicsLayers in the WK2 inspector overlay
1696         https://bugs.webkit.org/show_bug.cgi?id=136136
1697
1698         Reviewed by Sam Weinig, Joseph Pecoraro.
1699
1700         Allow InspectorClient to have a custom implementation of showPaintRect(). For
1701         WebKit2's WebInspectorClient, implement this by creating a set of GraphicsLayers
1702         which are parented in a document overlay, with 0.25s fade-out animations.
1703         
1704         Also change InspectorInstrumentation::didPaintImpl() to no longer take a GraphicsContext;
1705         it makes no sense to paint the paint rects directly into the context of the web page.
1706         Now that the paint rects are painted into an overlay, the rectangles need to be converted
1707         to root document coordinates, which is done in InspectorInstrumentation::didPaintImpl().
1708         
1709         Remove the generic InspectorOverlay::drawOutline()-based indicators; they will
1710         be reimplemented in a later patch.
1711
1712         * WebCore.exp.in:
1713         * inspector/InspectorClient.h:
1714         (WebCore::InspectorClient::showPaintRect):
1715         * inspector/InspectorInstrumentation.cpp:
1716         (WebCore::InspectorInstrumentation::didPaintImpl):
1717         * inspector/InspectorInstrumentation.h:
1718         (WebCore::InspectorInstrumentation::didPaint):
1719         * inspector/InspectorPageAgent.cpp:
1720         (WebCore::InspectorPageAgent::didPaint):
1721         * inspector/InspectorPageAgent.h:
1722         * page/FrameView.cpp:
1723         (WebCore::FrameView::didPaintContents):
1724         * rendering/RenderLayerBacking.cpp:
1725         (WebCore::RenderLayerBacking::paintContents):
1726
1727 2014-08-22  Commit Queue  <commit-queue@webkit.org>
1728
1729         Unreviewed, rolling out r172844.
1730         https://bugs.webkit.org/show_bug.cgi?id=136164
1731
1732         re-applying WEBCORE_EXPORTS patch (Requested by
1733         alexchristensen on #webkit).
1734
1735         Reverted changeset:
1736
1737         "Revert r172831, it broke the Windows build."
1738         http://trac.webkit.org/changeset/172844
1739
1740 2014-08-21  David Hyatt  <hyatt@apple.com>
1741
1742         Implement rudimentary Bopomofo Ruby support (ruby-position:inter-character)
1743         https://bugs.webkit.org/show_bug.cgi?id=136137
1744         <rdar://problem/12567545>
1745
1746         Reviewed by Sam Weinig.
1747
1748         Added fast/ruby/bopomofo.html and fast/ruby/bopomofo-rl.html.
1749
1750         * css/CSSParser.cpp:
1751         (WebCore::isValidKeywordPropertyAndValue):
1752         * css/CSSPrimitiveValueMappings.h:
1753         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1754         (WebCore::CSSPrimitiveValue::operator RubyPosition):
1755         * css/CSSPropertyNames.in:
1756         * css/CSSValueKeywords.in:
1757         Add support for the new inter-character value for ruby-position and also
1758         add support for a new font-size keyword, -webkit-ruby-text, that is used
1759         to set a smart initial font size based off the type of ruby being presented.
1760
1761         * css/DeprecatedStyleBuilder.cpp:
1762         (WebCore::ApplyPropertyFontSize::determineRubyTextSizeMultiplier):
1763         (WebCore::ApplyPropertyFontSize::applyValue):
1764         Determine the Ruby text size multiplier when -webkit-ruby-text is specified
1765         as the font size. For ruby-position of before/after, we use 50% of the parent
1766         font size. For inter-character ruby, we default to 25% instead. If inter-character
1767         Ruby is nested, we assume it's to display tone marks, and we use 100% to ensure
1768         the tone mark is the same size and does not get smaller.
1769
1770         * css/StyleResolver.cpp:
1771         (WebCore::StyleResolver::adjustStyleForInterCharacterRuby):
1772         (WebCore::StyleResolver::applyMatchedProperties):
1773         * css/StyleResolver.h:
1774         ruby-position is now the highest priority CSS property, and it is resolved
1775         before all other properties to ensure that its value can be checked when
1776         determining a smart default font size. adjustStyleForInterCharacterRuby is a new
1777         function called to auto-adjust inter-character ruby text to be vertical writing mode when
1778         encountered inside horizontal documents.
1779
1780         * css/html.css:
1781         (ruby > rt):
1782         Change the font-size from 50% to -webkit-ruby-text to allow us to customize it as
1783         needed depending on what kind of Ruby we want to show.
1784
1785         * rendering/RenderRubyRun.cpp:
1786         (WebCore::RenderRubyRun::layout):
1787         * rendering/RenderRubyRun.h:
1788         Add layout code to properly position vertical ruby text relative to a horizontal base.
1789
1790         * rendering/style/RenderStyleConstants.h:
1791         Add the new inter-character constant for ruby-position.
1792
1793         * rendering/style/StyleRareInheritedData.h:
1794         Increase the number of storage bits for RubyPosition from 1 to 2 now that we support 3 values.
1795
1796 2014-08-22  Jon Lee  <jonlee@apple.com>
1797
1798         Fix iOS build due to r172832 and move RUBBER_BANDING out of FeatureDefines.h
1799         https://bugs.webkit.org/show_bug.cgi?id=136157
1800
1801         Reviewed by Simon Fraser.
1802
1803         * Configurations/FeatureDefines.xcconfig: Add ENABLE(RUBBER_BANDING).
1804
1805 2014-08-22  Zan Dobersek  <zdobersek@igalia.com>
1806
1807         [GTK] Add the Wayland protocol extension
1808         https://bugs.webkit.org/show_bug.cgi?id=136102
1809
1810         Reviewed by Martin Robinson.
1811
1812         Add the Wayland protocol extension that allows mapping GtkWidget
1813         objects (via an ID that's unique to that GtkWidget) to the
1814         corresponding Wayland surface objects. This way the nested
1815         compositor has the proper information about what GtkWidget has
1816         to be updated when surfaces are committed by the LayerTreeHost.
1817
1818         * PlatformGTK.cmake:
1819         * platform/graphics/wayland: Added.
1820         * platform/graphics/wayland/WebKitGtkWaylandClientProtocol.xml: Added.
1821
1822 2014-08-21  Antti Koivisto  <antti@apple.com>
1823
1824         Animated GIFs scrolled out of view still cause titlebar blur to update, on tumblr.com page
1825         https://bugs.webkit.org/show_bug.cgi?id=136139
1826
1827         Reviewed by Simon Fraser.
1828
1829         The mechanism for pausing GIF images outside the viewport did not work for subframes.
1830
1831         Test: fast/repaint/no-animation-outside-viewport-subframe.html
1832
1833         * WebCore.exp.in:
1834         * page/FrameView.cpp:
1835         (WebCore::FrameView::scrollPositionChanged):
1836         (WebCore::FrameView::resumeVisibleImageAnimationsIncludingSubframes):
1837
1838             Add a function for resuming animations as needed in all subframes.
1839             This is used after scrolling instead of calling the RenderView function directly.
1840
1841         * page/FrameView.h:
1842         * page/Page.cpp:
1843         (WebCore::Page::resumeAnimatingImages):
1844         * rendering/RenderElement.cpp:
1845         (WebCore::RenderElement::newImageAnimationFrameAvailable):
1846
1847             Determine the overall visible rect so that it is correct in subframes too.
1848
1849         * rendering/RenderLayer.cpp:
1850         (WebCore::RenderLayer::scrollTo):
1851         * rendering/RenderView.cpp:
1852         (WebCore::RenderView::resumePausedImageAnimationsIfNeeded):
1853
1854 2014-08-21  Alex Christensen  <achristensen@webkit.org>
1855
1856         More WEBCORE_EXPORT macros!
1857         https://bugs.webkit.org/show_bug.cgi?id=136146
1858
1859         Reviewed by Benjamin Poulain.
1860
1861         * Modules/geolocation/GeolocationClient.h:
1862         * Modules/mediastream/UserMediaClient.h:
1863         * Modules/mediastream/UserMediaRequest.h:
1864         * Modules/notifications/NotificationClient.h:
1865         * Modules/speech/SpeechSynthesis.h:
1866         * bindings/generic/RuntimeEnabledFeatures.h:
1867         * bindings/js/DOMWrapperWorld.h:
1868         * bindings/js/GCController.h:
1869         * bindings/js/IDBBindingUtilities.h:
1870         * bindings/js/JSDOMBinding.h:
1871         * bindings/js/JSNodeCustom.h:
1872         * bindings/js/JSNodeListCustom.h:
1873         * bindings/js/JSPluginElementFunctions.h:
1874         * bindings/js/ScriptController.h:
1875         * bindings/js/SerializedScriptValue.h:
1876         * crypto/SerializedCryptoKeyWrap.h:
1877         * css/LengthFunctions.h:
1878         * css/StyleProperties.h:
1879         * css/StyleSheetContents.h:
1880         * dom/DeviceOrientationClient.h:
1881         * dom/Range.h:
1882         * dom/ScriptExecutionContext.h:
1883         * dom/StyledElement.h:
1884         * dom/TreeScope.h:
1885         * dom/UIEventWithKeyState.h:
1886         * dom/UserGestureIndicator.h:
1887         * dom/UserTypingGestureIndicator.h:
1888         * dom/ViewportArguments.h:
1889         * editing/SmartReplace.h:
1890         * editing/TextIterator.h:
1891         * editing/VisiblePosition.h:
1892         * editing/VisibleSelection.h:
1893         * editing/VisibleUnits.h:
1894         * editing/cocoa/HTMLConverter.h:
1895         * editing/htmlediting.h:
1896         * editing/mac/TextAlternativeWithRange.h:
1897         * editing/mac/TextUndoInsertionMarkupMac.h:
1898         * editing/markup.h:
1899         * history/HistoryItem.cpp:
1900         * history/PageCache.h:
1901         * html/TimeRanges.h:
1902         * html/parser/HTMLParserIdioms.h:
1903         * inspector/InstrumentingAgents.h:
1904         * loader/FrameLoader.h:
1905         * loader/ResourceBuffer.h:
1906         * loader/ResourceLoadScheduler.h:
1907         * loader/ResourceLoader.h:
1908         (WebCore::ResourceLoader::originalRequest):
1909         * loader/SubframeLoader.h:
1910         * loader/SubresourceLoader.h:
1911         * loader/TextResourceDecoder.h:
1912         * loader/appcache/ApplicationCacheStorage.h:
1913         * loader/cache/MemoryCache.h:
1914         * loader/icon/IconDatabaseBase.h:
1915         * loader/ios/DiskImageCacheIOS.h:
1916         * page/Chrome.h:
1917         * page/SecurityOrigin.h:
1918         * page/SecurityPolicy.h:
1919         * page/Settings.h:
1920         * page/UserContentController.h:
1921         * page/UserContentURLPattern.h:
1922         * page/UserMessageHandlerDescriptor.h:
1923         * page/ViewportConfiguration.h:
1924         * page/VisitedLinkStore.h:
1925         * page/WheelEventDeltaTracker.h:
1926         * page/cocoa/UserAgent.h:
1927         * page/scrolling/ScrollingConstraints.h:
1928         * page/scrolling/ScrollingCoordinator.h:
1929         * page/scrolling/ScrollingStateFixedNode.h:
1930         * page/scrolling/ScrollingStateFrameScrollingNode.h:
1931         * page/scrolling/ScrollingStateNode.h:
1932         * page/scrolling/ScrollingStateOverflowScrollingNode.h:
1933         * page/scrolling/ScrollingStateScrollingNode.h:
1934         * page/scrolling/ScrollingStateStickyNode.h:
1935         * page/scrolling/ScrollingStateTree.h:
1936         * page/scrolling/ScrollingThread.h:
1937         * page/scrolling/ScrollingTree.h:
1938         * page/scrolling/ScrollingTreeOverflowScrollingNode.h:
1939         * page/scrolling/ScrollingTreeScrollingNode.h:
1940         * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
1941         * page/scrolling/mac/ScrollingTreeFixedNode.h:
1942         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
1943         * page/scrolling/mac/ScrollingTreeStickyNode.h:
1944         * platform/Cursor.h:
1945         * platform/DragImage.h:
1946         * platform/FileSystem.h:
1947         * platform/Language.h:
1948         * platform/LinkHash.h:
1949         * platform/LocalizedStrings.h:
1950         * platform/Logging.h:
1951         * platform/MemoryPressureHandler.h:
1952         * platform/NotImplemented.h:
1953         * platform/PlatformStrategies.h:
1954         * platform/PublicSuffix.h:
1955         * platform/RuntimeApplicationChecks.h:
1956         * platform/RuntimeApplicationChecksIOS.h:
1957         * platform/SchemeRegistry.h:
1958         * platform/ScrollView.h:
1959         * platform/ScrollableArea.h:
1960         * platform/Scrollbar.h:
1961         * platform/ScrollbarTheme.h:
1962         * platform/SharedBuffer.h:
1963         * platform/ThreadCheck.h:
1964         * platform/ThreadGlobalData.h:
1965         * platform/Timer.h:
1966         * platform/URL.h:
1967         * platform/UUID.h:
1968         * platform/UserActivity.h:
1969         * platform/Widget.h:
1970         * platform/cf/CFURLExtras.h:
1971         * platform/cf/RunLoopObserver.h:
1972         * platform/cocoa/SystemVersion.h:
1973         * platform/graphics/Color.h:
1974         * platform/graphics/FloatRect.h:
1975         * platform/graphics/FontCache.h:
1976         * platform/graphics/GeometryUtilities.h:
1977         * platform/graphics/GraphicsContext.h:
1978         * platform/graphics/IntRect.h:
1979         * platform/graphics/LayoutRect.h:
1980         * platform/graphics/StringTruncator.h:
1981         * platform/graphics/TextRun.h:
1982         * platform/graphics/ca/TileController.h:
1983         * platform/graphics/ca/mac/PlatformCAAnimationMac.h:
1984         * platform/graphics/cg/GraphicsContextCG.h:
1985         * platform/graphics/mac/ColorMac.h:
1986         * platform/graphics/transforms/TransformationMatrix.h:
1987         * platform/ios/FileSystemIOS.h:
1988         * platform/ios/PlatformEventFactoryIOS.h:
1989         * platform/ios/SelectionRect.h:
1990         * platform/ios/SystemMemory.h:
1991         * platform/ios/TileControllerMemoryHandlerIOS.h:
1992         * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
1993         * platform/mac/PlatformEventFactoryMac.h:
1994         * platform/mac/ScrollbarThemeMac.h:
1995         * platform/mac/WebCoreNSURLExtras.h:
1996         * platform/mac/WebNSAttributedStringExtras.h:
1997         * platform/network/BlobRegistry.h:
1998         * platform/network/CookieStorage.h:
1999         * platform/network/DNS.h:
2000         * platform/network/NetworkStateNotifier.h:
2001         * platform/network/PlatformCookieJar.h:
2002         * platform/network/ProxyServer.h:
2003         * platform/network/ResourceErrorBase.h:
2004         * platform/network/ResourceHandle.h:
2005         * platform/network/ResourceHandleClient.h:
2006         * platform/network/ResourceRequestBase.h:
2007         * platform/network/ResourceResponseBase.h:
2008         * platform/network/SynchronousLoaderClient.h:
2009         * platform/network/cf/ResourceError.h:
2010         * platform/network/cf/ResourceRequest.h:
2011         * platform/network/cf/ResourceResponse.h:
2012         * platform/network/ios/QuickLook.h:
2013         * platform/network/mac/AuthenticationMac.h:
2014         * platform/sql/SQLiteDatabase.cpp:
2015         * platform/text/LocaleToScriptMapping.h:
2016         * platform/text/TextBreakIterator.h:
2017         * platform/text/TextEncoding.h:
2018         (WebCore::TextEncoding::decode):
2019         * platform/text/TextEncodingRegistry.h:
2020         * platform/text/TextStream.h:
2021         * rendering/RenderBlock.h:
2022         * rendering/RenderBox.h:
2023         * rendering/RenderEmbeddedObject.h:
2024         * rendering/RenderLayer.h:
2025         * rendering/RenderLayerBacking.h:
2026         * rendering/RenderLayerCompositor.h:
2027         * rendering/RenderListItem.h:
2028         * rendering/RenderObject.h:
2029         * rendering/RenderText.h:
2030         * rendering/RenderTextControl.h:
2031         * rendering/RenderThemeIOS.h:
2032         * rendering/RenderTreeAsText.h:
2033         * rendering/RenderView.h:
2034         * rendering/RenderWidget.h:
2035         * rendering/ScrollBehavior.cpp:
2036         * rendering/break_lines.cpp:
2037         * rendering/style/RenderStyle.h:
2038         * replay/UserInputBridge.h:
2039         * storage/StorageEventDispatcher.h:
2040         * storage/StorageMap.h:
2041         * storage/StorageStrategy.h:
2042         * storage/StorageTracker.h:
2043         * testing/Internals.h:
2044         * workers/WorkerThread.h:
2045         Added more WEBCORE_EXPORT macros where needed.
2046
2047 2014-08-21  Tim Horton  <timothy_horton@apple.com>
2048
2049         Revert r172831, it broke the Windows build.
2050
2051 2014-08-21  Ryuan Choi  <ryuan.choi@samsung.com>
2052
2053         Unreviewed build fix when RUBBER_BANDING is not enabled.
2054
2055         * rendering/RenderLayer.cpp:
2056         (WebCore::RenderLayer::overhangAmount):
2057         (WebCore::RenderLayer::setHasHorizontalScrollbar):
2058         (WebCore::RenderLayer::setHasVerticalScrollbar):
2059
2060 2014-08-21  Brent Fulgham  <bfulgham@apple.com>
2061
2062         [Win] WebCore.proj is not copying WebKit resource files.
2063         https://bugs.webkit.org/show_bug.cgi?id=136142
2064         <rdar://problem/17733682>
2065
2066         Reviewed by Tim Horton.
2067
2068         * WebCore.vcxproj/WebCore.proj: Copy missing resource files during
2069         post-build step.
2070
2071 2014-08-21  Simon Fraser  <simon.fraser@apple.com>
2072
2073         Try to fix the 32-bit build by using wildcards in the exported non-virtual thunks
2074         for GraphicsLayerCA::platformCALayerAnimationStarted and GraphicsLayerCA::platformCALayerAnimationEnded.
2075
2076         * WebCore.exp.in:
2077
2078 2014-08-21  Simon Fraser  <simon.fraser@apple.com>
2079
2080         Add animationDidEnd callbacks on GraphicsLayer
2081         https://bugs.webkit.org/show_bug.cgi?id=136084
2082
2083         Reviewed by Tim Horton.
2084
2085         Hook up GraphicsLayerClient::notifyAnimationEnded() so that code using GraphicsLayers directly
2086         can add animations, and know when they finish.
2087
2088         * WebCore.exp.in:
2089         * platform/graphics/GraphicsLayerClient.h:
2090         (WebCore::GraphicsLayerClient::notifyAnimationStarted):
2091         (WebCore::GraphicsLayerClient::notifyAnimationEnded):
2092         * platform/graphics/ca/GraphicsLayerCA.cpp:
2093         (WebCore::GraphicsLayerCA::platformCALayerAnimationStarted):
2094         (WebCore::GraphicsLayerCA::platformCALayerAnimationEnded):
2095         * platform/graphics/ca/GraphicsLayerCA.h:
2096         * platform/graphics/ca/PlatformCALayer.h:
2097         * platform/graphics/ca/PlatformCALayerClient.h:
2098         (WebCore::PlatformCALayerClient::platformCALayerAnimationStarted):
2099         (WebCore::PlatformCALayerClient::platformCALayerAnimationEnded):
2100         * platform/graphics/ca/mac/PlatformCALayerMac.h:
2101         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2102         (-[WebAnimationDelegate animationDidStart:]):
2103         (-[WebAnimationDelegate animationDidStop:finished:]):
2104         (PlatformCALayerMac::animationStarted):
2105         (PlatformCALayerMac::animationEnded):
2106         * rendering/RenderLayerBacking.cpp:
2107         (WebCore::RenderLayerBacking::notifyAnimationStarted):
2108         * rendering/RenderLayerBacking.h:
2109
2110 2014-08-21  Zalan Bujtas  <zalan@apple.com>
2111
2112         Enable SATURATED_LAYOUT_ARITHMETIC.
2113         https://bugs.webkit.org/show_bug.cgi?id=136106
2114
2115         Reviewed by Simon Fraser.
2116
2117         SATURATED_LAYOUT_ARITHMETIC protects LayoutUnit against arithmetic overflow.
2118         (No measurable performance regression on Mac.)
2119
2120         Test: fast/dynamic/saturated-layout-arithmetic.html
2121
2122         * Configurations/FeatureDefines.xcconfig:
2123
2124 2014-08-21  Yuki Sekiguchi  <yuki.sekiguchi@access-company.com>
2125
2126         New ruby parsing rule breaks some real web sites.
2127         https://bugs.webkit.org/show_bug.cgi?id=136062
2128
2129         Reviewed by Ryosuke Niwa.
2130
2131         An RP element should not auto close an RTC element.
2132
2133         The HTML5.1 spec was changed:
2134         http://www.w3.org/html/wg/drafts/html/master/syntax.html#parsing-main-inbody
2135         This was done at the following commit:
2136         https://github.com/w3c/html/commit/c61397b989b28235ee2228f280aa8d475f3b9ebf
2137
2138         This patch changed the RP element's behavior to follow the spec change.
2139
2140         Test: fast/ruby/rp-inside-rtc.html
2141
2142         * html/parser/HTMLTreeBuilder.cpp:
2143         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
2144
2145 2014-08-21  Yuki Sekiguchi  <yuki.sekiguchi@access-company.com>
2146
2147         REGRESSION: CSS not() selector does not work when it appears after or within @supports
2148         https://bugs.webkit.org/show_bug.cgi?id=136063
2149
2150         Reviewed by Darin Adler.
2151
2152         CSSParser changes its m_parsingMode to SupportsMode when it finds
2153         "@supports" token. However, the mode will be never changed to
2154         NormalMode. This changes parsing algorithm for "not" token forever,
2155         and it cannot parse not pseudo class selector.
2156
2157         When we finish parsing @supports rule, we should change to normal
2158         mode.
2159
2160         @media does the same thing. This patch changed CharacterEndMediaQuery
2161         to CharacterEndConditionQuery, and we change parsing mode from
2162         SupportsMode to NormalMode when the parser finished to parse
2163         @supports rule.
2164
2165         Like "@-webkit-mediaquery", we cannot use '{' to
2166         "@-webkit-supports-condition". Changed "@-webkit-supports-condition"
2167         parsing rule and parseSupportsCondition() not to use '{'.
2168
2169         Tests: css3/supports-not-selector-cssom.html
2170                css3/supports-not-selector.html
2171
2172         * css/CSSGrammar.y.in:
2173         * css/CSSParser.cpp:
2174         (WebCore::CSSParser::parseSupportsCondition):
2175         (WebCore::isCSSLetter):
2176         (WebCore::CSSParser::realLex):
2177
2178 2014-08-21  Beth Dakin  <bdakin@apple.com>
2179
2180         overflow:scroll elements should support rubber-banding
2181         https://bugs.webkit.org/show_bug.cgi?id=91655
2182
2183         Reviewed by Sam Weinig and Darin Adler.
2184
2185         This patch enables rubber-banding in overflow regions and it keeps latching 
2186         working as currently implemented.
2187
2188         We cannot return early here if there is no scroll delta. There won't be a scroll
2189         delta in most cases during event.phase() == PlatformWheelEventPhaseEnded, but that 
2190         phase is required to be processed in order for rubber-banding to work properly. 
2191         * dom/Element.cpp:
2192         (WebCore::Element::dispatchWheelEvent):
2193         * page/EventHandler.cpp:
2194         (WebCore::handleWheelEventInAppropriateEnclosingBoxForSingleAxis):
2195
2196         Add a setting for this, which will default to true. This allows us to disable the 
2197         feature in WebKit1 for now. There is a bug about making it work.
2198         * page/Settings.in:
2199
2200         allowsHorizontalStretching() and allowsVerticalStretching() now take the 
2201         PlatformWheelEvent as a parameter, so that ScrollElasticityAutomatic can use the 
2202         event to decide whether or not stretching should be allowed in this case. 
2203         ScrollElasticityAutomatic will not allow stretching if it is a brand new gesture 
2204         that would result in a rubber-band. We don't want to rubber-band in that case
2205         because we want the event to propagate up to a parent view. Also added some helper 
2206         functions just to make that code easier to read.
2207         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
2208         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
2209         (WebCore::newGestureIsStarting):
2210         (WebCore::ScrollingTreeFrameScrollingNodeMac::isAlreadyPinnedInDirectionOfGesture):
2211         (WebCore::ScrollingTreeFrameScrollingNodeMac::allowsHorizontalStretching):
2212         (WebCore::ScrollingTreeFrameScrollingNodeMac::allowsVerticalStretching):
2213         * platform/mac/ScrollAnimatorMac.h:
2214         * platform/mac/ScrollAnimatorMac.mm:
2215         (WebCore::ScrollAnimatorMac::handleWheelEvent):
2216         (WebCore::newGestureIsStarting):
2217         (WebCore::ScrollAnimatorMac::isAlreadyPinnedInDirectionOfGesture):
2218         (WebCore::ScrollAnimatorMac::allowsVerticalStretching):
2219         (WebCore::ScrollAnimatorMac::allowsHorizontalStretching):
2220         * platform/mac/ScrollElasticityController.h:
2221         * platform/mac/ScrollElasticityController.mm:
2222         (WebCore::ScrollElasticityController::handleWheelEvent):
2223
2224         To opt into rubber-banding, all we have to do is implement overhangAmount and set 
2225         scroll elasticity. We'll choose ScrollElasticityAutomatic which means that we'll
2226         only rubber-band in directions that can scroll and that we won't rubber-band for
2227         new gestures when we're already pinned to the edge.
2228         * rendering/RenderLayer.cpp:
2229         (WebCore::RenderLayer::overhangAmount):
2230         (WebCore::RenderLayer::setHasHorizontalScrollbar):
2231         (WebCore::RenderLayer::setHasVerticalScrollbar):
2232
2233 2014-08-21  Alex Christensen  <achristensen@webkit.org>
2234
2235         More WEBCORE_EXPORT macros.
2236         https://bugs.webkit.org/show_bug.cgi?id=136129
2237
2238         Reviewed by Tim Horton.
2239
2240         * Modules/geolocation/Geolocation.h:
2241         * Modules/geolocation/GeolocationController.h:
2242         * Modules/indexeddb/IDBDatabaseBackend.h:
2243         * Modules/indexeddb/IDBDatabaseMetadata.h:
2244         * Modules/indexeddb/IDBKey.h:
2245         * Modules/indexeddb/IDBKeyData.h:
2246         * Modules/indexeddb/IDBKeyPath.h:
2247         * Modules/indexeddb/IDBKeyRange.h:
2248         * Modules/indexeddb/IDBKeyRangeData.h:
2249         * Modules/notifications/Notification.h:
2250         * Modules/notifications/NotificationController.h:
2251         * bindings/js/GCController.h:
2252         * bridge/IdentifierRep.h:
2253         * css/StyleProperties.h:
2254         * dom/ExceptionCodePlaceholder.h:
2255         * dom/KeyboardEvent.h:
2256         * dom/MouseEvent.h:
2257         * dom/MouseRelatedEvent.h:
2258         * dom/Node.h:
2259         (WebCore::Node::hasEditableStyle):
2260         * dom/NodeTraversal.h:
2261         * dom/Position.h:
2262         (WebCore::Position::Position):
2263         * dom/Range.h:
2264         (WebCore::Range::startContainer):
2265         (WebCore::Range::startOffset):
2266         (WebCore::Range::endContainer):
2267         (WebCore::Range::endOffset):
2268         * editing/FrameSelection.h:
2269         (WebCore::DragCaretController::clear):
2270         * history/HistoryItem.h:
2271         * history/PageCache.h:
2272         * html/FormController.h:
2273         * html/HTMLElement.h:
2274         * html/HTMLFormElement.h:
2275         * html/HTMLFrameOwnerElement.h:
2276         * html/HTMLInputElement.h:
2277         * html/HTMLMediaElement.h:
2278         * html/HTMLOptGroupElement.h:
2279         * html/HTMLOptionElement.h:
2280         * html/HTMLPlugInElement.h:
2281         * html/HTMLPlugInImageElement.h:
2282         * html/HTMLSelectElement.h:
2283         * html/HTMLTableCellElement.h:
2284         * html/HTMLTextAreaElement.h:
2285         * html/HTMLTextFormControlElement.h:
2286         * html/HTMLVideoElement.h:
2287         * html/ImageDocument.h:
2288         * html/PluginDocument.h:
2289         * html/forms/FileIconLoader.h:
2290         * html/shadow/InsertionPoint.h:
2291         * inspector/InspectorClient.h:
2292         * inspector/InspectorController.h:
2293         * inspector/InspectorFrontendClientLocal.h:
2294         * inspector/InspectorInstrumentation.h:
2295         * loader/FrameLoadRequest.h:
2296         * loader/FrameLoader.h:
2297         * loader/FrameLoaderStateMachine.h:
2298         * loader/HistoryController.h:
2299         * loader/LoaderStrategy.h:
2300         * loader/NavigationAction.h:
2301         * loader/NetscapePlugInStreamLoader.h:
2302         * loader/ProgressTracker.h:
2303         * loader/archive/cf/LegacyWebArchive.h:
2304         * loader/cache/MemoryCache.h:
2305         * loader/icon/IconController.h:
2306         * loader/icon/IconDatabase.h:
2307         * loader/icon/IconDatabaseBase.h:
2308         * page/FocusController.h:
2309         * page/Frame.h:
2310         * page/FrameDestructionObserver.h:
2311         Replaced WEBCORE_TESTING with WEBCORE_EXPORT.
2312         * page/FrameTree.h:
2313         * page/FrameView.h:
2314         * page/Page.h:
2315         * page/PageConsole.h:
2316         * page/PageGroup.h:
2317         * page/PageThrottler.h:
2318         * page/PrintContext.h:
2319         * page/scrolling/ScrollingConstraints.h:
2320         * page/scrolling/ScrollingStateNode.h:
2321         * platform/FileChooser.h:
2322         * platform/GamepadProvider.h:
2323         * platform/Length.h:
2324         * platform/MIMETypeRegistry.h:
2325         * platform/MemoryPressureHandler.h:
2326         * platform/Pasteboard.h:
2327         * platform/PlatformExportMacros.h:
2328         Removed WEBCORE_TESTING, which I'm replacing with WEBCORE_EXPORT.
2329         * platform/PlatformKeyboardEvent.h:
2330         * platform/PlatformPasteboard.h:
2331         * platform/PlatformSpeechSynthesisVoice.h:
2332         * platform/PlatformSpeechSynthesizer.h:
2333         * platform/audio/MediaSessionManager.h:
2334         * platform/graphics/FloatPoint.h:
2335         * platform/graphics/FloatQuad.h:
2336         * platform/graphics/FloatRect.h:
2337         * platform/graphics/FloatSize.h:
2338         * platform/graphics/Font.h:
2339         * platform/graphics/FontCache.h:
2340         * platform/graphics/FontGlyphs.h:
2341         * platform/graphics/FontPlatformData.h:
2342         * platform/graphics/GlyphPageTreeNode.h:
2343         * platform/graphics/Gradient.h:
2344         * platform/graphics/GraphicsContext.h:
2345         * platform/graphics/GraphicsLayer.h:
2346         * platform/graphics/Icon.h:
2347         * platform/graphics/Image.h:
2348         * platform/graphics/ImageBuffer.h:
2349         * platform/graphics/IntPoint.h:
2350         * platform/graphics/IntRect.h:
2351         * platform/graphics/IntSize.h:
2352         * platform/graphics/LayoutRect.h:
2353         * platform/graphics/MediaPlayer.h:
2354         * platform/graphics/Path.h:
2355         * platform/graphics/Region.h:
2356         * platform/graphics/ca/GraphicsLayerCA.h:
2357         * platform/graphics/ca/LayerFlushScheduler.h:
2358         * platform/graphics/ca/LayerPool.h:
2359         * platform/graphics/ca/PlatformCAFilters.h:
2360         * platform/graphics/ca/PlatformCALayer.h:
2361         * platform/graphics/ca/mac/PlatformCAAnimationMac.h:
2362         * platform/graphics/ca/mac/PlatformCALayerMac.h:
2363         * platform/graphics/cg/IOSurfacePool.h:
2364         * platform/graphics/cocoa/IOSurface.h:
2365         * platform/graphics/filters/FilterOperations.h:
2366         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
2367         * platform/ios/LegacyTileCache.h:
2368         * platform/ios/PlatformEventFactoryIOS.h:
2369         * platform/ios/wak/FloatingPointEnvironment.h:
2370         * platform/mac/HIDGamepadProvider.h:
2371         * platform/mock/MockMediaStreamCenter.h:
2372         * platform/network/FormData.h:
2373         * platform/network/HTTPHeaderMap.h:
2374         * platform/network/NetworkStorageSession.h:
2375         * platform/network/ProtectionSpaceBase.h:
2376         * platform/network/cocoa/ProtectionSpaceCocoa.h:
2377         (WebCore::ProtectionSpace::encodingRequiresPlatformData):
2378         * platform/network/ios/QuickLook.h:
2379         * platform/text/TextBreakIterator.h:
2380         * plugins/PluginData.h:
2381         * plugins/PluginMainThreadScheduler.h:
2382         * rendering/HitTestLocation.h:
2383         * rendering/HitTestResult.h:
2384         * rendering/InlineBox.h:
2385         Added more WEBCORE_EXPORT macros, which don't do anything yet.
2386
2387 2014-08-21  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
2388
2389         [GTK] WebkitWebProcess crashing navigating away from ogg video element
2390         https://bugs.webkit.org/show_bug.cgi?id=135348
2391
2392         Reviewed by Philippe Normand.
2393
2394         Let GraphicsLayerTextureMapper know it needs to detach the platform
2395         layer when a MediaPlayerPrivateGStreamerBase is destroyed.
2396
2397         No new test since media/restore-from-page-cache.html covers it.
2398
2399         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
2400         (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
2401
2402 2014-08-20  Benjamin Poulain  <benjamin@webkit.org>
2403
2404         CSS: Implement the :placeholder-shown pseudo-class from Selectors Level 4
2405         https://bugs.webkit.org/show_bug.cgi?id=118162
2406
2407         Reviewed by Antti Koivisto.
2408
2409         Previously, HTMLTextFormControlElement was using some mix of its own state
2410         and style to change the visibility of the placeholder. That approach was a little
2411         bit too fragile, and we do not want the style to depends on the renderer() since
2412         that creates circular dependencies.
2413
2414         The biggest change here is refactoring HTMLTextFormControlElement to have
2415         1) An explicit "visible placeholder" state.
2416         2) Separate the textUpdate() from the visibilityUpdate().
2417         3) Remove the dependencies between the Element's style and the placeholder's style.
2418            This is done by simply using display:none; on the placeholder so that its parent's visibility
2419            is irrelevant.
2420
2421         When matching the selector, the style is set as unique since style sharing does not deal with
2422         the changes of HTMLTextFormControlElement.
2423
2424         Tests: fast/css/placeholder-shown-basics.html
2425                fast/selectors/placeholder-shown-long-adjacent-backtracking.html
2426                fast/selectors/placeholder-shown-sibling-style-update.html
2427                fast/selectors/placeholder-shown-style-update.html
2428                fast/selectors/placeholder-shown-with-input-basics.html
2429                fast/selectors/placeholder-shown-with-textarea-basics.html
2430
2431         * css/CSSSelector.cpp:
2432         (WebCore::CSSSelector::selectorText):
2433         Add the CSS Selector description for CSSOM.
2434
2435         * css/CSSSelector.h:
2436         * css/SelectorChecker.cpp:
2437         (WebCore::SelectorChecker::checkOne):
2438         * css/SelectorCheckerTestFunctions.h:
2439         (WebCore::isPlaceholderShown):
2440         * css/SelectorPseudoClassAndCompatibilityElementMap.in:
2441         * css/html.css:
2442         (::-webkit-input-placeholder):
2443         Previously, the display was forced through the UA stylesheet. Since the display is now part
2444         of the placeholder visibility, it is explicitly handled by HTMLTextFormControlElement and
2445         its subclasses.
2446
2447         * cssjit/SelectorCompiler.cpp:
2448         (WebCore::SelectorCompiler::addPseudoClassType):
2449         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
2450         (WebCore::SelectorCompiler::makeUniqueIfNecessaryAndTestIsPlaceholderShown):
2451         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPlaceholderShown):
2452         * html/HTMLInputElement.cpp:
2453         (WebCore::HTMLInputElement::parseAttribute):
2454         * html/HTMLTextAreaElement.cpp:
2455         (WebCore::HTMLTextAreaElement::updateValue):
2456         (WebCore::HTMLTextAreaElement::setValueCommon):
2457         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
2458         * html/HTMLTextFormControlElement.cpp:
2459         (WebCore::HTMLTextFormControlElement::HTMLTextFormControlElement):
2460         (WebCore::HTMLTextFormControlElement::dispatchFocusEvent):
2461         (WebCore::HTMLTextFormControlElement::dispatchBlurEvent):
2462         (WebCore::HTMLTextFormControlElement::placeholderShouldBeVisible):
2463         (WebCore::HTMLTextFormControlElement::updatePlaceholderVisibility):
2464         (WebCore::HTMLTextFormControlElement::selectionDirection):
2465         (WebCore::HTMLTextFormControlElement::restoreCachedSelection):
2466         (WebCore::HTMLTextFormControlElement::parseAttribute):
2467         (WebCore::HTMLTextFormControlElement::hidePlaceholder):
2468         (WebCore::HTMLTextFormControlElement::showPlaceholderIfNecessary):
2469         * html/HTMLTextFormControlElement.h:
2470         (WebCore::HTMLTextFormControlElement::isPlaceholderVisible):
2471         (WebCore::HTMLTextFormControlElement::cachedSelectionDirection):
2472         * html/TextFieldInputType.cpp:
2473         (WebCore::TextFieldInputType::updatePlaceholderText):
2474         (WebCore::TextFieldInputType::subtreeHasChanged):
2475         (WebCore::TextFieldInputType::updateInnerTextValue):
2476         * rendering/RenderTextControl.cpp:
2477         (WebCore::RenderTextControl::styleDidChange):
2478         * testing/Internals.cpp:
2479         (WebCore::Internals::visiblePlaceholder):
2480
2481 2014-08-20  Mark Rowe  <mrowe@apple.com>
2482
2483         Fix the release build after r172806.
2484
2485         * Modules/mediasource/SourceBuffer.cpp:
2486         (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveRenderingError): Add a missing semicolon.
2487
2488 2014-08-20  Benjamin Poulain  <bpoulain@apple.com>
2489
2490         Remove HTMLInputElement's suggestedValue
2491         https://bugs.webkit.org/show_bug.cgi?id=136094
2492
2493         Reviewed by Darin Adler.
2494
2495         That code is Chrome specific. It is unused now.
2496
2497         * WebCore.exp.in:
2498         * html/HTMLInputElement.cpp:
2499         (WebCore::HTMLInputElement::setValue):
2500         (WebCore::HTMLInputElement::setValueFromRenderer):
2501         (WebCore::HTMLInputElement::suggestedValue): Deleted.
2502         (WebCore::HTMLInputElement::setSuggestedValue): Deleted.
2503         * html/HTMLInputElement.h:
2504         * html/HTMLTextFormControlElement.cpp:
2505         (WebCore::HTMLTextFormControlElement::placeholderShouldBeVisible):
2506         * html/HTMLTextFormControlElement.h:
2507         (WebCore::HTMLTextFormControlElement::isEmptySuggestedValue): Deleted.
2508         * html/InputType.cpp:
2509         (WebCore::InputType::canSetSuggestedValue): Deleted.
2510         * html/InputType.h:
2511         * html/TextFieldInputType.cpp:
2512         (WebCore::TextFieldInputType::updateInnerTextValue):
2513         (WebCore::TextFieldInputType::canSetSuggestedValue): Deleted.
2514         * html/TextFieldInputType.h:
2515         * testing/Internals.cpp:
2516         (WebCore::Internals::suggestedValue): Deleted.
2517         (WebCore::Internals::setSuggestedValue): Deleted.
2518         * testing/Internals.h:
2519         * testing/Internals.idl:
2520
2521 2014-08-20  Dean Jackson  <dino@apple.com>
2522
2523         WebAudio FFT analysis uses incorrect scaling
2524         https://bugs.webkit.org/show_bug.cgi?id=136120
2525
2526         Reviewed by Tim Horton.
2527
2528         This is a port of Blink r166687 (author rtoy)
2529         https://codereview.chromium.org/156993002
2530
2531         Currently, for a fixed sine-wave input, the peak FFT amplitude changes
2532         depending on the selected FFT size. This is incorrect; the FFT amplitude
2533         should not appreciably change when the FFT size changes.
2534
2535         Layout test added to verify the FFT result stays approximately constant,
2536         independent of the FFT size used.
2537
2538         When this test is run using an older version of WebKit, the peak varies
2539         from about -44 dB (FFT size 32) to -7 dB (FFT size 2048).  With this CL,
2540         the peak is about -7 dB.  (It's not 0 dB because of the Blackman window that is applied.)
2541
2542         Note: this change may break existing applications that depended on this strange scaling effect.
2543
2544         Test: webaudio/realtimeanalyser-fft-scaling.html
2545
2546         * Modules/webaudio/RealtimeAnalyser.cpp:
2547         (WebCore::RealtimeAnalyser::doFFTAnalysis):
2548
2549 2014-08-20  Alex Christensen  <achristensen@webkit.org>
2550
2551         Introducing WEBCORE_EXPORT macro.
2552         https://bugs.webkit.org/show_bug.cgi?id=136108
2553
2554         Reviewed by Antti Koivisto.
2555
2556         This should eventually replace WebCore.exp.in.
2557
2558         * platform/PlatformExportMacros.h:
2559         Define WEBCORE_EXPORT to nothing to not cause problems while I'm working on it.
2560         * Modules/encryptedmedia/CDM.h:
2561         * Modules/speech/DOMWindowSpeechSynthesis.h:
2562         * Modules/webdatabase/DatabaseManager.h:
2563         * Modules/webdatabase/DatabaseTracker.h:
2564         * accessibility/AXObjectCache.h:
2565         * bindings/js/DOMWrapperWorld.h:
2566         * bridge/jsc/BridgeJSC.h:
2567         * bridge/runtime_method.h:
2568         * bridge/runtime_object.h:
2569         * bridge/runtime_root.h:
2570         * css/CSSComputedStyleDeclaration.h:
2571         * css/CSSParserMode.h:
2572         * css/CSSValue.h:
2573         * css/DOMWindowCSS.h:
2574         * css/StyleSheetContents.h:
2575         * dom/CharacterData.h:
2576         * dom/ClientRect.h:
2577         * dom/ClientRectList.h:
2578         * dom/ContainerNode.h:
2579         * dom/ContextDestructionObserver.h:
2580         * dom/DOMImplementation.h:
2581         * dom/DataTransfer.h:
2582         * dom/DeviceMotionData.h:
2583         * dom/DeviceOrientationData.h:
2584         * dom/Document.h:
2585         (WebCore::Document::setAnnotatedRegionsDirty):
2586         * dom/DocumentMarker.h:
2587         * dom/DocumentMarkerController.h:
2588         * dom/DocumentStyleSheetCollection.h:
2589         * dom/Element.h:
2590         * dom/Event.h:
2591         (WebCore::Event::create):
2592         * dom/EventListenerMap.h:
2593         * editing/DictationAlternative.h:
2594         * editing/EditCommand.h:
2595         * editing/EditingStyle.h:
2596         * editing/Editor.h:
2597         * editing/mac/AlternativeTextUIController.h:
2598         * history/BackForwardController.h:
2599         * history/BackForwardList.h:
2600         * history/CachedFrame.h:
2601         * loader/CookieJar.h:
2602         * loader/CrossOriginPreflightResultCache.h:
2603         * loader/DocumentLoader.h:
2604         * loader/DocumentWriter.h:
2605         * loader/appcache/ApplicationCache.h:
2606         * loader/appcache/ApplicationCacheHost.h:
2607         * loader/appcache/ApplicationCacheStorage.h:
2608         * loader/archive/ArchiveResource.h:
2609         * loader/cache/CachedImage.h:
2610         * loader/cache/CachedResource.h:
2611         * loader/cache/CachedResourceHandle.h:
2612         * loader/cache/CachedResourceLoader.h:
2613         * page/Chrome.h:
2614         * page/ContextMenuController.h:
2615         * page/DOMWindow.h:
2616         * page/DOMWindowExtension.h:
2617         * page/DragController.h:
2618         * page/EventHandler.h:
2619         * page/animation/AnimationController.h:
2620         * page/scrolling/AsyncScrollingCoordinator.h:
2621         * platform/CalculationValue.h:
2622         * platform/ContentFilter.h:
2623         * platform/ContextMenu.h:
2624         * platform/ContextMenuItem.h:
2625         * platform/CrossThreadCopier.h:
2626         * platform/Cursor.h:
2627         * platform/DatabaseStrategy.h:
2628         * platform/DisplaySleepDisabler.h:
2629         * platform/DragData.h:
2630         * platform/LocalizedStrings.h:
2631         * platform/audio/AudioHardwareListener.h:
2632         * platform/audio/AudioSession.h:
2633         * platform/audio/ios/MediaSessionManagerIOS.mm:
2634         * platform/graphics/BitmapImage.h:
2635         * platform/graphics/Color.h:
2636         * platform/graphics/DisplayRefreshMonitor.h:
2637         * platform/graphics/transforms/AffineTransform.h:
2638         * platform/ios/WebCoreSystemInterfaceIOS.mm:
2639         * platform/ios/WebVideoFullscreenModelMediaElement.h:
2640         * platform/ios/wak/WAKView.mm:
2641         * platform/ios/wak/WKContentObservation.h:
2642         * platform/ios/wak/WKView.h:
2643         * platform/ios/wak/WebCoreThread.h:
2644         * platform/ios/wak/WebCoreThreadMessage.h:
2645         * platform/mac/BlockExceptions.h:
2646         * platform/mock/DeviceOrientationClientMock.h:
2647         * platform/network/AuthenticationChallengeBase.h:
2648         * platform/network/BlobData.h:
2649         * platform/network/BlobDataFileReference.h:
2650         * platform/network/BlobRegistry.h:
2651         * platform/network/BlobRegistryImpl.h:
2652         * platform/network/CredentialBase.h:
2653         * platform/network/CredentialStorage.h:
2654         * platform/network/PlatformCookieJar.h:
2655         * platform/network/cf/AuthenticationChallenge.h:
2656         * platform/network/cocoa/CredentialCocoa.h:
2657         * platform/network/mac/CertificateInfo.h:
2658         * platform/sql/SQLiteDatabase.h:
2659         (WebCore::SQLiteDatabase::disableThreadingChecks):
2660         * platform/sql/SQLiteDatabaseTracker.h:
2661         * platform/sql/SQLiteStatement.h:
2662         * platform/sql/SQLiteTransaction.h:
2663         * platform/text/BidiContext.h:
2664         Added WEBCORE_EXPORT macros.
2665
2666 2014-08-20  Pratik Solanki  <psolanki@apple.com>
2667
2668         Move DiskCacheMonitor to WebCore so that WebKit1 clients can use it as well
2669         https://bugs.webkit.org/show_bug.cgi?id=135896
2670
2671         Reviewed by Andreas Kling.
2672
2673         Refactor code and move it to WebCore.
2674
2675         * WebCore.exp.in:
2676         * WebCore.xcodeproj/project.pbxproj:
2677         * loader/ResourceLoader.h:
2678             Make willCacheResponse protected so that SubresourceLoader can override it.
2679         * loader/SubresourceLoader.h:
2680         * loader/cocoa/DiskCacheMonitorCocoa.h: Added.
2681             Mostly the same as the existing NetworkDiskCacheMonitor class in WebKit2. In the
2682             CFNetwork callback block, it calls a virtual function that is overridden by
2683             NetworkDiskCacheMonitor to send a message to WebContent process.
2684         (WebCore::DiskCacheMonitor::~DiskCacheMonitor):
2685         (WebCore::DiskCacheMonitor::resourceRequest):
2686         (WebCore::DiskCacheMonitor::sessionID):
2687         * loader/cocoa/DiskCacheMonitorCocoa.mm:
2688         (WebCore::DiskCacheMonitor::tryGetFileBackedSharedBufferFromCFURLCachedResponse):
2689             Copied from NetworkResourceLoader::tryGetFileBackedSharedBufferFromCFURLCachedResponse.
2690         (WebCore::DiskCacheMonitor::monitorFileBackingStoreCreation):
2691         (WebCore::DiskCacheMonitor::DiskCacheMonitor):
2692         (WebCore::DiskCacheMonitor::resourceBecameFileBacked):
2693             Replace the cached resource data with the contents of the file backed buffer. This is
2694             used in WebKit1 (and also for any resource loads that happen from the WebContent
2695             process).
2696         * loader/cocoa/SubresourceLoaderCocoa.mm: Added.
2697         (WebCore::SubresourceLoader::willCacheResponse):
2698             Override willCacheresponse from ResourceLoader to listen for disk cache notifications.
2699
2700 2014-08-20  Eric Carlson  <eric.carlson@apple.com>
2701
2702         Cleanup MediaSession
2703         https://bugs.webkit.org/show_bug.cgi?id=136116
2704
2705         Reviewed by Brent Fulgham.
2706
2707         MediaSessionManagerClient interface isn't used, remove it.
2708         No new tests, this doesn't change behavior.
2709
2710         * WebCore.exp.in:
2711         * platform/audio/MediaSessionManager.cpp:
2712         (WebCore::MediaSessionManager::addSession): 
2713         (WebCore::MediaSessionManager::removeSession):
2714         (WebCore::MediaSessionManager::sessionWillBeginPlayback):
2715         (WebCore::MediaSessionManager::addClient): Deleted.
2716         (WebCore::MediaSessionManager::removeClient): Deleted.
2717         * platform/audio/MediaSessionManager.h:
2718         (WebCore::MediaSessionManagerClient::~MediaSessionManagerClient): Deleted.
2719         (WebCore::MediaSessionManagerClient::MediaSessionManagerClient): Deleted.
2720
2721 2014-08-20  Eric Carlson  <eric.carlson@apple.com>
2722
2723         [MSE] add additional SourceBuffer and MediaSource logging
2724         https://bugs.webkit.org/show_bug.cgi?id=136114
2725
2726         Reviewed by Brent Fulgham.
2727
2728         No new tests, this adds debug-only logging.
2729
2730         * Modules/mediasource/MediaSource.cpp:
2731         (WebCore::MediaSource::setReadyState): Fix a typo.
2732         (WebCore::MediaSource::streamEndedWithError): Log the error.
2733
2734         * Modules/mediasource/SourceBuffer.cpp:
2735         (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Log when parsing fails.
2736         (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveRenderingError): Log error.
2737         (WebCore::SourceBuffer::sourceBufferPrivateDidEndStream): Ditto.
2738         (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment): Log.
2739         (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Log error.
2740
2741 2014-08-20  Commit Queue  <commit-queue@webkit.org>
2742
2743         Unreviewed, rolling out r172798.
2744         https://bugs.webkit.org/show_bug.cgi?id=136113
2745
2746         Broke builds (Requested by msaboff on #webkit).
2747
2748         Reverted changeset:
2749
2750         "Introducing WEBCORE_EXPORT macro."
2751         https://bugs.webkit.org/show_bug.cgi?id=136108
2752         http://trac.webkit.org/changeset/172798
2753
2754 2014-08-20  Alex Christensen  <achristensen@webkit.org>
2755
2756         Introducing WEBCORE_EXPORT macro.
2757         https://bugs.webkit.org/show_bug.cgi?id=136108
2758
2759         Reviewed by Antti Koivisto.
2760
2761         This should eventually replace WebCore.exp.in.
2762
2763         * platform/PlatformExportMacros.h:
2764         Define WEBCORE_EXPORT to nothing to not cause problems while I'm working on it.
2765         * Modules/encryptedmedia/CDM.h:
2766         * Modules/speech/DOMWindowSpeechSynthesis.h:
2767         * Modules/webdatabase/DatabaseManager.h:
2768         * Modules/webdatabase/DatabaseTracker.h:
2769         * accessibility/AXObjectCache.h:
2770         * bindings/js/DOMWrapperWorld.h:
2771         * bridge/jsc/BridgeJSC.h:
2772         * bridge/runtime_method.cpp:
2773         * bridge/runtime_method.h:
2774         * bridge/runtime_object.cpp:
2775         * bridge/runtime_object.h:
2776         * bridge/runtime_root.h:
2777         * css/CSSComputedStyleDeclaration.h:
2778         * css/CSSParserMode.h:
2779         * css/CSSValue.h:
2780         * css/DOMWindowCSS.h:
2781         * css/StyleSheetContents.h:
2782         * dom/CharacterData.h:
2783         * dom/ClientRect.h:
2784         * dom/ClientRectList.h:
2785         * dom/ContainerNode.h:
2786         * dom/ContextDestructionObserver.h:
2787         * dom/DOMImplementation.h:
2788         * dom/DataTransfer.h:
2789         * dom/DeviceMotionData.h:
2790         * dom/DeviceOrientationData.h:
2791         * dom/Document.h:
2792         (WebCore::Document::setAnnotatedRegionsDirty):
2793         * dom/DocumentMarker.h:
2794         * dom/DocumentMarkerController.h:
2795         * dom/DocumentStyleSheetCollection.h:
2796         * dom/Element.h:
2797         * dom/Event.h:
2798         (WebCore::Event::create):
2799         * dom/EventListenerMap.h:
2800         * editing/DictationAlternative.h:
2801         * editing/EditCommand.h:
2802         * editing/EditingStyle.h:
2803         * editing/Editor.h:
2804         * editing/mac/AlternativeTextUIController.h:
2805         * history/BackForwardController.h:
2806         * history/BackForwardList.h:
2807         * history/CachedFrame.h:
2808         * loader/CookieJar.h:
2809         * loader/CrossOriginPreflightResultCache.h:
2810         * loader/DocumentLoader.h:
2811         * loader/DocumentWriter.h:
2812         * loader/appcache/ApplicationCache.h:
2813         * loader/appcache/ApplicationCacheHost.h:
2814         * loader/appcache/ApplicationCacheStorage.h:
2815         * loader/archive/ArchiveResource.h:
2816         * loader/cache/CachedImage.h:
2817         * loader/cache/CachedResource.h:
2818         * loader/cache/CachedResourceHandle.h:
2819         * loader/cache/CachedResourceLoader.h:
2820         * page/Chrome.h:
2821         * page/ContextMenuController.h:
2822         * page/DOMWindow.h:
2823         * page/DOMWindowExtension.h:
2824         * page/DragController.h:
2825         * page/EventHandler.h:
2826         * page/animation/AnimationController.h:
2827         * page/scrolling/AsyncScrollingCoordinator.h:
2828         * platform/CalculationValue.h:
2829         * platform/ContentFilter.h:
2830         * platform/ContextMenu.h:
2831         * platform/ContextMenuItem.h:
2832         * platform/CrossThreadCopier.h:
2833         * platform/Cursor.h:
2834         * platform/DatabaseStrategy.h:
2835         * platform/DisplaySleepDisabler.h:
2836         * platform/DragData.h:
2837         * platform/LocalizedStrings.h:
2838         * platform/audio/AudioHardwareListener.h:
2839         * platform/audio/AudioSession.h:
2840         * platform/audio/ios/MediaSessionManagerIOS.mm:
2841         * platform/graphics/BitmapImage.h:
2842         * platform/graphics/Color.h:
2843         * platform/graphics/DisplayRefreshMonitor.h:
2844         * platform/graphics/transforms/AffineTransform.h:
2845         * platform/ios/WebCoreSystemInterfaceIOS.mm:
2846         * platform/ios/WebVideoFullscreenModelMediaElement.h:
2847         * platform/ios/wak/WAKView.mm:
2848         * platform/ios/wak/WKContentObservation.h:
2849         * platform/ios/wak/WKView.h:
2850         * platform/ios/wak/WebCoreThread.h:
2851         * platform/ios/wak/WebCoreThreadMessage.h:
2852         * platform/mac/BlockExceptions.h:
2853         * platform/mock/DeviceOrientationClientMock.h:
2854         * platform/network/AuthenticationChallengeBase.h:
2855         * platform/network/BlobData.h:
2856         * platform/network/BlobDataFileReference.h:
2857         * platform/network/BlobRegistry.h:
2858         * platform/network/BlobRegistryImpl.h:
2859         * platform/network/CredentialBase.h:
2860         * platform/network/CredentialStorage.h:
2861         * platform/network/PlatformCookieJar.h:
2862         * platform/network/cf/AuthenticationChallenge.h:
2863         * platform/network/cocoa/CredentialCocoa.h:
2864         * platform/network/mac/CertificateInfo.h:
2865         * platform/sql/SQLiteDatabase.h:
2866         (WebCore::SQLiteDatabase::disableThreadingChecks):
2867         * platform/sql/SQLiteDatabaseTracker.h:
2868         * platform/sql/SQLiteStatement.h:
2869         * platform/sql/SQLiteTransaction.h:
2870         * platform/text/BidiContext.h:
2871         Added WEBCORE_EXPORT macros.
2872
2873 2014-08-20  Zalan Bujtas  <zalan@apple.com>
2874
2875         Dashed/dotted borders do not paint.
2876         https://bugs.webkit.org/show_bug.cgi?id=135898
2877
2878         Reviewed by Simon Fraser.
2879
2880         Remove the empty line checks for drawLines. There's no need to protect the graphics
2881         context from empty lines.
2882
2883         Tests: fast/borders/border-painting-dashed-at-all.html
2884                fast/borders/border-painting-dashed.html
2885                fast/borders/border-painting-dotted-at-all.html
2886                fast/borders/border-painting-dotted.html
2887                fast/borders/border-painting-double-at-all.html
2888                fast/borders/border-painting-double.html
2889                fast/borders/border-painting-groove-at-all.html
2890                fast/borders/border-painting-inset-at-all.html
2891                fast/borders/border-painting-inset.html
2892                fast/borders/border-painting-outset-at-all.html
2893                fast/borders/border-painting-outset.html
2894                fast/borders/border-painting-ridge-at-all.html
2895                fast/borders/border-painting-solid-at-all.html
2896                fast/borders/border-painting-solid.html
2897                fast/borders/hidpi-border-painting-groove.html
2898                fast/borders/hidpi-border-painting-ridge.html
2899
2900         * rendering/RenderObject.cpp:
2901         (WebCore::RenderObject::drawLineForBoxSide):
2902         (WebCore::drawBorderLineRect): Deleted.
2903         (WebCore::drawBorderLine): Deleted.
2904
2905 2014-08-19  Jinwoo Song  <jinwoo7.song@samsung.com>
2906
2907         Ignore usemap attributes without '#' in img element
2908         https://bugs.webkit.org/show_bug.cgi?id=133336
2909
2910         Reviewed by Ryosuke Niwa.
2911
2912         HTML5 specification says we should ignore usemap attributes without #.
2913         http://www.w3.org/TR/html5/infrastructure.html#valid-hash-name-reference
2914
2915         Test: fast/dom/replaced-image-map-valid-hash-name.html
2916
2917         * dom/TreeScope.cpp:
2918         (WebCore::TreeScope::getImageMap):
2919
2920 2014-08-19  Pratik Solanki  <psolanki@apple.com>
2921
2922         Remove PurgeableBuffer since it is not very useful any more
2923         https://bugs.webkit.org/show_bug.cgi?id=135939
2924
2925         Reviewed by Andreas Kling.
2926
2927         The usefulness of having purgeable memory for cached resources has diminished now that
2928         WebKit uses file backed resources when possible. Since this is read only memory, it is in
2929         essence "purgeable". Having the PurgeableBuffer code adds additional complexity that we
2930         don't need. e.g. on my Mac, I am not seeing any entry for "WebCore purgeable data" when I
2931         run vmmap against the web processes that I have running. It is used on iOS, however even
2932         there much of the purgeable memory we create gets replaced by file backed memory once we get
2933         the notification from CFNetwork.
2934
2935         No new tests because no functional changes.
2936
2937         * WebCore.xcodeproj/project.pbxproj:
2938         * inspector/InspectorPageAgent.cpp:
2939         (WebCore::prepareCachedResourceBuffer):
2940         * loader/DocumentLoader.cpp:
2941         (WebCore::DocumentLoader::subresource):
2942         * loader/ResourceBuffer.cpp:
2943         (WebCore::ResourceBuffer::hasPurgeableBuffer): Deleted.
2944         (WebCore::ResourceBuffer::setShouldUsePurgeableMemory): Deleted.
2945         (WebCore::ResourceBuffer::createPurgeableBuffer): Deleted.
2946         (WebCore::ResourceBuffer::releasePurgeableBuffer): Deleted.
2947         * loader/ResourceBuffer.h:
2948         * loader/SubresourceLoader.cpp:
2949         (WebCore::SubresourceLoader::didFinishLoading):
2950         * loader/cache/CachedCSSStyleSheet.cpp:
2951         (WebCore::CachedCSSStyleSheet::sheetText):
2952         (WebCore::CachedCSSStyleSheet::destroyDecodedData):
2953         * loader/cache/CachedCSSStyleSheet.h:
2954         * loader/cache/CachedImage.cpp:
2955         (WebCore::CachedImage::image):
2956         (WebCore::CachedImage::imageForRenderer):
2957         (WebCore::CachedImage::imageSizeForRenderer):
2958         (WebCore::CachedImage::destroyDecodedData):
2959         (WebCore::CachedImage::canUseDiskImageCache):
2960         * loader/cache/CachedImage.h:
2961         * loader/cache/CachedResource.cpp:
2962         (WebCore::CachedResource::addClientToSet):
2963         (WebCore::CachedResource::isSafeToMakePurgeable): Deleted.
2964         (WebCore::CachedResource::makePurgeable): Deleted.
2965         (WebCore::CachedResource::isPurgeable): Deleted.
2966         (WebCore::CachedResource::wasPurged): Deleted.
2967         * loader/cache/CachedResource.h:
2968         (WebCore::CachedResource::resourceBuffer):
2969         (WebCore::CachedResource::purgePriority): Deleted.
2970         * loader/cache/CachedScript.cpp:
2971         (WebCore::CachedScript::script):
2972         (WebCore::CachedScript::destroyDecodedData):
2973         * loader/cache/CachedScript.h:
2974         * loader/cache/MemoryCache.cpp:
2975         (WebCore::MemoryCache::resourceForRequestImpl):
2976         (WebCore::MemoryCache::pruneDeadResourcesToSize):
2977         (WebCore::MemoryCache::evict):
2978         (WebCore::MemoryCache::TypeStatistic::addResource):
2979         (WebCore::MemoryCache::dumpStats):
2980         (WebCore::MemoryCache::dumpLRULists):
2981         (WebCore::MemoryCache::makeResourcePurgeable): Deleted.
2982         * loader/cache/MemoryCache.h:
2983         (WebCore::MemoryCache::TypeStatistic::TypeStatistic):
2984         (WebCore::MemoryCache::shouldMakeResourcePurgeableOnEviction): Deleted.
2985         * platform/PurgePriority.h: Removed.
2986         * platform/PurgeableBuffer.h: Removed.
2987         * platform/SharedBuffer.cpp:
2988         (WebCore::SharedBuffer::SharedBuffer):
2989         (WebCore::SharedBuffer::size):
2990         (WebCore::SharedBuffer::data):
2991         (WebCore::SharedBuffer::append):
2992         (WebCore::SharedBuffer::clear):
2993         (WebCore::SharedBuffer::copy):
2994         (WebCore::SharedBuffer::getSomeData):
2995         (WebCore::SharedBuffer::adoptPurgeableBuffer): Deleted.
2996         (WebCore::SharedBuffer::createPurgeableBuffer): Deleted.
2997         (WebCore::SharedBuffer::releasePurgeableBuffer): Deleted.
2998         * platform/SharedBuffer.h:
2999         (WebCore::SharedBuffer::hasPurgeableBuffer): Deleted.
3000         (WebCore::SharedBuffer::shouldUsePurgeableMemory): Deleted.
3001         * platform/cf/SharedBufferCF.cpp:
3002         (WebCore::SharedBuffer::SharedBuffer):
3003         * platform/mac/PurgeableBufferMac.cpp: Removed.
3004         * platform/mac/SharedBufferMac.mm:
3005         (WebCore::SharedBuffer::createCFData):
3006         * platform/soup/SharedBufferSoup.cpp:
3007
3008 2014-08-19  Zalan Bujtas  <zalan@apple.com>
3009
3010         Remove ENABLE(SUBPIXEL_LAYOUT).
3011         https://bugs.webkit.org/show_bug.cgi?id=136077
3012
3013         Reviewed by Simon Fraser.
3014
3015         Remove compile time flag SUBPIXEL_LAYOUT. All ports have it enabled for a while now.
3016
3017         * Configurations/FeatureDefines.xcconfig:
3018         * css/CSSPrimitiveValue.cpp:
3019         (WebCore::CSSPrimitiveValue::computeLength):
3020         * dom/Element.cpp:
3021         (WebCore::adjustForLocalZoom):
3022         (WebCore::Element::offsetWidth):
3023         (WebCore::Element::offsetHeight):
3024         (WebCore::Element::clientLeft):
3025         (WebCore::Element::clientTop):
3026         (WebCore::Element::clientWidth):
3027         (WebCore::Element::clientHeight):
3028         * platform/LayoutUnit.h:
3029         (WebCore::LayoutUnit::LayoutUnit):
3030         (WebCore::LayoutUnit::ceilToFloat):
3031         (WebCore::LayoutUnit::ceil):
3032         (WebCore::LayoutUnit::round):
3033         (WebCore::LayoutUnit::floor):
3034         (WebCore::boundedMultiply):
3035         (WebCore::operator*):
3036         (WebCore::operator/):
3037         (WebCore::intMod):
3038         (WebCore::operator%):
3039         (WebCore::roundedLayoutUnit):
3040         (WebCore::ceiledLayoutUnit):
3041         (WebCore::LayoutUnit::toInt): Deleted.
3042         (WebCore::LayoutUnit::toFloat): Deleted.
3043         (WebCore::LayoutUnit::toDouble): Deleted.
3044         (WebCore::LayoutUnit::epsilon): Deleted.
3045         * platform/graphics/LayoutPoint.h:
3046         (WebCore::roundedForPainting):
3047         (WebCore::flooredForPainting):
3048         (WebCore::ceiledForPainting):
3049         (WebCore::roundedLayoutPoint):
3050         * platform/graphics/LayoutRect.cpp:
3051         (WebCore::enclosingLayoutRect):
3052         * platform/graphics/LayoutRect.h:
3053         (WebCore::pixelSnappedIntRect):
3054         (WebCore::pixelSnappedForPainting):
3055         * platform/graphics/LayoutSize.h:
3056         (WebCore::roundedLayoutSize):
3057         (WebCore::flooredForPainting):
3058         * rendering/RenderBlock.cpp:
3059         (WebCore::adjustFloatForSubPixelLayout):
3060         * rendering/RenderBlockFlow.cpp:
3061         (WebCore::RenderBlockFlow::layoutBlockChild):
3062         * rendering/RenderElement.h:
3063         (WebCore::adjustLayoutUnitForAbsoluteZoom):
3064         * rendering/style/RenderStyle.h:
3065         (WebCore::adjustLayoutUnitForAbsoluteZoom):
3066
3067 2014-08-19  Bem Jones-Bey  <bjonesbe@adobe.com>
3068
3069         [CSS Shapes] A few calc() test failures in the shape-image-threshold parsing tests
3070         https://bugs.webkit.org/show_bug.cgi?id=135926
3071
3072         Reviewed by Dirk Schulze.
3073
3074         shape-image-threshold is a Number, so it should be parsed as one. The
3075         default parsing doesn't support calcs, but numbers do.
3076
3077         No new tests, fixes exitsing test to pass.
3078
3079         * css/DeprecatedStyleBuilder.cpp:
3080         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Use
3081             ApplyPropertyNumber instead of ApplyPropertyDefault for
3082             shape-image-threshold.
3083
3084 2014-08-18  Maciej Stachowiak  <mjs@apple.com>
3085
3086         Use NSURLFileTypeMappings directly instead of depending on WebKitSystemInterface wrappers for it
3087         https://bugs.webkit.org/show_bug.cgi?id=136035
3088
3089         Reviewed by Dan Bernstein.
3090
3091         * WebCore.exp.in: Remove reference to no longer existent sumbols.
3092         * WebCore.order: ditto
3093         * WebCore.xcodeproj/project.pbxproj: Install new NSURLFileTyeMappings.h header.
3094         * platform/ios/MIMETypeRegistryIOS.mm:
3095         (WebCore::MIMETypeRegistry::getMIMETypeForExtension): Use NSURLFileTypeMappings
3096         directly instead of via WKSI wrapper.
3097         * platform/mac/MIMETypeRegistryMac.mm:
3098         (WebCore::MIMETypeRegistry::getMIMETypeForExtension): ditto
3099         (WebCore::MIMETypeRegistry::getExtensionsForMIMEType): ditto
3100         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType): ditto
3101         * platform/mac/WebCoreSystemInterface.h: Remove references to the no-longer-used
3102         WKGetExtensionsForMIMEType, WKGetPreferredExtensionForMIMEType, or WKGetMIMETypeForExtension
3103         * platform/mac/WebCoreSystemInterface.mm: ditto
3104         * platform/spi: Added. This is where headers to declare SPI go.
3105         * platform/spi/cocoa: Added. See above.
3106         * platform/spi/cocoa/NSURLFileTypeMappingsSPI.h: Added. Header to declare
3107         the internal class NSURLFileTypeMappings and some of its methods.
3108
3109 2014-08-18  Commit Queue  <commit-queue@webkit.org>
3110
3111         Unreviewed, rolling out r172736.
3112         https://bugs.webkit.org/show_bug.cgi?id=136060
3113
3114         Caused 14% PLT regressions (Requested by rniwa on #webkit).
3115
3116         Reverted changeset:
3117
3118         "Remove PurgeableBuffer since it is not very useful any more"
3119         https://bugs.webkit.org/show_bug.cgi?id=135939
3120         http://trac.webkit.org/changeset/172736
3121
3122 2014-08-18  Simon Fraser  <simon.fraser@apple.com>
3123
3124         Provide default implementations of all GraphicsLayerClient methods
3125         https://bugs.webkit.org/show_bug.cgi?id=136054
3126
3127         Reviewed by Tim Horton.
3128
3129         Make none of the functions in GraphicsLayerClient pure virtual, since in many cases
3130         subclasses don't need to provide their own implementations.
3131
3132         * platform/graphics/GraphicsLayerClient.h:
3133         (WebCore::GraphicsLayerClient::notifyAnimationStarted):
3134         (WebCore::GraphicsLayerClient::notifyFlushRequired):
3135         (WebCore::GraphicsLayerClient::paintContents):
3136         * rendering/RenderLayerCompositor.h:
3137
3138 2014-08-18  Pratik Solanki  <psolanki@apple.com>
3139
3140         Remove PurgeableBuffer since it is not very useful any more
3141         https://bugs.webkit.org/show_bug.cgi?id=135939
3142
3143         Reviewed by Geoffrey Garen.
3144
3145         The usefulness of having purgeable memory for cached resources has diminished now that
3146         WebKit uses file backed resources when possible. Since this is read only memory, it is in
3147         essence "purgeable". Having the PurgeableBuffer code adds additional complexity that we
3148         don't need. e.g. on my Mac, I am not seeing any entry for "WebCore purgeable data" when I
3149         run vmmap against the web processes that I have running. It is used on iOS, however even
3150         there much of the purgeable memory we create gets replaced by file backed memory once we get
3151         the notification from CFNetwork.
3152
3153         No new tests because no functional changes.
3154
3155         * WebCore.xcodeproj/project.pbxproj:
3156         * inspector/InspectorPageAgent.cpp:
3157         (WebCore::prepareCachedResourceBuffer):
3158         * loader/DocumentLoader.cpp:
3159         (WebCore::DocumentLoader::subresource):
3160         * loader/ResourceBuffer.cpp:
3161         (WebCore::ResourceBuffer::hasPurgeableBuffer): Deleted.
3162         (WebCore::ResourceBuffer::setShouldUsePurgeableMemory): Deleted.
3163         (WebCore::ResourceBuffer::createPurgeableBuffer): Deleted.
3164         (WebCore::ResourceBuffer::releasePurgeableBuffer): Deleted.
3165         * loader/ResourceBuffer.h:
3166         * loader/SubresourceLoader.cpp:
3167         (WebCore::SubresourceLoader::didFinishLoading):
3168         * loader/cache/CachedCSSStyleSheet.cpp:
3169         (WebCore::CachedCSSStyleSheet::sheetText):
3170         (WebCore::CachedCSSStyleSheet::destroyDecodedData):
3171         * loader/cache/CachedCSSStyleSheet.h:
3172         * loader/cache/CachedImage.cpp:
3173         (WebCore::CachedImage::image):
3174         (WebCore::CachedImage::imageForRenderer):
3175         (WebCore::CachedImage::imageSizeForRenderer):
3176         (WebCore::CachedImage::destroyDecodedData):
3177         (WebCore::CachedImage::canUseDiskImageCache):
3178         * loader/cache/CachedImage.h:
3179         * loader/cache/CachedResource.cpp:
3180         (WebCore::CachedResource::addClientToSet):
3181         (WebCore::CachedResource::isSafeToMakePurgeable): Deleted.
3182         (WebCore::CachedResource::makePurgeable): Deleted.
3183         (WebCore::CachedResource::isPurgeable): Deleted.
3184         (WebCore::CachedResource::wasPurged): Deleted.
3185         * loader/cache/CachedResource.h:
3186         (WebCore::CachedResource::resourceBuffer):
3187         (WebCore::CachedResource::purgePriority): Deleted.
3188         * loader/cache/CachedScript.cpp:
3189         (WebCore::CachedScript::script):
3190         (WebCore::CachedScript::destroyDecodedData):
3191         * loader/cache/CachedScript.h:
3192         * loader/cache/MemoryCache.cpp:
3193         (WebCore::MemoryCache::resourceForRequestImpl):
3194         (WebCore::MemoryCache::pruneDeadResourcesToSize):
3195         (WebCore::MemoryCache::evict):
3196         (WebCore::MemoryCache::TypeStatistic::addResource):
3197         (WebCore::MemoryCache::dumpStats):
3198         (WebCore::MemoryCache::dumpLRULists):
3199         (WebCore::MemoryCache::makeResourcePurgeable): Deleted.
3200         * loader/cache/MemoryCache.h:
3201         (WebCore::MemoryCache::TypeStatistic::TypeStatistic):
3202         (WebCore::MemoryCache::shouldMakeResourcePurgeableOnEviction): Deleted.
3203         * platform/PurgePriority.h: Removed.
3204         * platform/PurgeableBuffer.h: Removed.
3205         * platform/SharedBuffer.cpp:
3206         (WebCore::SharedBuffer::SharedBuffer):
3207         (WebCore::SharedBuffer::size):
3208         (WebCore::SharedBuffer::data):
3209         (WebCore::SharedBuffer::append):
3210         (WebCore::SharedBuffer::clear):
3211         (WebCore::SharedBuffer::copy):
3212         (WebCore::SharedBuffer::getSomeData):
3213         (WebCore::SharedBuffer::adoptPurgeableBuffer): Deleted.
3214         (WebCore::SharedBuffer::createPurgeableBuffer): Deleted.
3215         (WebCore::SharedBuffer::releasePurgeableBuffer): Deleted.
3216         * platform/SharedBuffer.h:
3217         (WebCore::SharedBuffer::hasPurgeableBuffer): Deleted.
3218         (WebCore::SharedBuffer::shouldUsePurgeableMemory): Deleted.
3219         * platform/cf/SharedBufferCF.cpp:
3220         (WebCore::SharedBuffer::SharedBuffer):
3221         * platform/mac/PurgeableBufferMac.cpp: Removed.
3222         * platform/mac/SharedBufferMac.mm:
3223         (WebCore::SharedBuffer::createCFData):
3224         * platform/soup/SharedBufferSoup.cpp:
3225
3226 2014-08-18  Pratik Solanki  <psolanki@apple.com>
3227
3228         Use modern for loop instead of iterators in SharedBufferCF.cpp
3229         https://bugs.webkit.org/show_bug.cgi?id=136000
3230
3231         Reviewed by Andreas Kling.
3232
3233         * platform/cf/SharedBufferCF.cpp:
3234         (WebCore::SharedBuffer::copyBufferAndClear):
3235         (WebCore::SharedBuffer::copySomeDataFromDataArray):
3236         (WebCore::SharedBuffer::maybeAppendDataArray): Use auto& instead of auto for less RetainPtr/refcount churn.
3237
3238 2014-08-18  Antti Koivisto  <antti@apple.com>
3239
3240         Tighten RenderCounter typing
3241         https://bugs.webkit.org/show_bug.cgi?id=136049
3242
3243         Reviewed by Andreas Kling.
3244
3245         RenderObject* -> RenderElement&
3246
3247         * rendering/CounterNode.cpp:
3248         (WebCore::CounterNode::CounterNode):
3249         (WebCore::CounterNode::create):
3250         (WebCore::showTreeAndMark):
3251         * rendering/CounterNode.h:
3252         (WebCore::CounterNode::owner):
3253         * rendering/RenderCounter.cpp:
3254         (WebCore::previousInPreOrder):
3255         (WebCore::parentOrPseudoHostElement):
3256         (WebCore::previousSiblingOrParent):
3257         (WebCore::areRenderersElementsSiblings):
3258         (WebCore::nextInPreOrder):
3259         (WebCore::planCounter):
3260         (WebCore::findPlaceForCounter):
3261         (WebCore::makeCounterNode):
3262         (WebCore::RenderCounter::originalText):
3263         (WebCore::destroyCounterNodeWithoutMapRemoval):
3264         (WebCore::RenderCounter::destroyCounterNodes):
3265         (WebCore::RenderCounter::destroyCounterNode):
3266         (WebCore::RenderCounter::rendererRemovedFromTree):
3267         (WebCore::updateCounters):
3268         (WebCore::RenderCounter::rendererSubtreeAttached):
3269         (WebCore::RenderCounter::rendererStyleChanged):
3270         (showCounterRendererTree):
3271         * rendering/RenderCounter.h:
3272         * rendering/RenderElement.cpp:
3273         (WebCore::RenderElement::RenderElement):
3274         (WebCore::RenderElement::insertChildInternal):
3275         (WebCore::RenderElement::removeChildInternal):
3276         (WebCore::RenderElement::styleDidChange):
3277         (WebCore::RenderElement::willBeDestroyed):
3278         * rendering/RenderElement.h:
3279         (WebCore::RenderElement::hasCounterNodeMap):
3280         (WebCore::RenderElement::setHasCounterNodeMap):
3281         
3282             Move CounterNodeMap to RenderElement from RenderObject.
3283
3284         * rendering/RenderObject.cpp:
3285         (WebCore::RenderObject::willBeDestroyed):
3286         * rendering/RenderObject.h:
3287         (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
3288         (WebCore::RenderObject::hasCounterNodeMap): Deleted.
3289         (WebCore::RenderObject::setHasCounterNodeMap): Deleted.
3290
3291 2014-08-18  Peyton Randolph  <prandolph@apple.com>
3292
3293         Expose long mouse press WebKit API. Part of 135257 - Add long mouse press gesture
3294         https://bugs.webkit.org/show_bug.cgi?id=136048
3295
3296         Reviewed by Dan Bernstein.
3297
3298         This patch exposes long mouse press API callbacks in both the injected bundle and on the UI process
3299         through their respective page UI clients. The callbacks are modeled off of the mouseDidMoveOverElement
3300         callback. Like the mouseDidMoveOverElement callback, these callbacks allow the bundle to pass 
3301         information to the UI process via a userData out parameter.
3302
3303         * page/Chrome.cpp:
3304         (WebCore::Chrome::didBeginTrackingPotentialLongMousePress): Added.
3305         (WebCore::Chrome::didRecognizeLongMousePress): Added.
3306         (WebCore::Chrome::didCancelTrackingPotentialLongMousePress): Added.
3307         * page/Chrome.h:
3308         * page/ChromeClient.h:
3309         (WebCore::ChromeClient::didBeginTrackingPotentialLongMousePress): Added.
3310         (WebCore::ChromeClient::didRecognizeLongMousePress): Added.
3311         (WebCore::ChromeClient::didCancelTrackingPotentialLongMousePress): Added.
3312         * page/EventHandler.cpp:
3313         (WebCore::EventHandler::handleMousePressEvent): 
3314         Pass the press hit test result to kick off the long mouse press.
3315         (WebCore::EventHandler::beginTrackingPotentialLongMousePress): Notify the chrome.
3316         (WebCore::EventHandler::recognizeLongMousePress): Ditto.
3317         (WebCore::EventHandler::cancelTrackingPotentialLongMousePress): 
3318         Ditto. Also opportunistically remove a runtime switch check to see if long pressing is enabled. The
3319         runtime switch check was only triggered when long pressing was disabled in the middle of a long press.
3320         * page/EventHandler.h:
3321
3322 2014-08-18  Przemyslaw Kuczynski  <p.kuczynski@samsung.com>
3323
3324         Fix unintentional integer overflow before widen
3325         https://bugs.webkit.org/show_bug.cgi?id=135463
3326
3327         Reviewed by Oliver Hunt.
3328
3329         Overflowing expression is evaluated using operands arithmetic but then is used in
3330         context which expects an wider integer type. To avoid overflow at least one operand
3331         has to be representative of the wider type.
3332
3333         * loader/FTPDirectoryParser.cpp:
3334         (WebCore::parseOneFTPLine): Changed strtoul to strtoull.
3335         * loader/ProgressTracker.cpp:
3336         (WebCore::ProgressTracker::incrementProgress): Added static_cast to long long.
3337         * platform/efl/FileSystemEfl.cpp:
3338         (WebCore::getVolumeFreeSizeForPath): Added static_cast to uint64_t.
3339
3340 2014-08-18  Vivek Galatage  <vivek.vg@samsung.com>
3341
3342         Implement CanvasRenderingContext2D direction attribute
3343         https://bugs.webkit.org/show_bug.cgi?id=135878
3344
3345         Reviewed by Darin Adler.
3346
3347         The attribute, 'direction', represents the text directionality.
3348         This is an important attribute for the bi-directional text within the CanvasRenderingContext2D.
3349         The allowed set of values are 'rtl', 'ltr' and 'inherit'.
3350
3351         Specification URL: http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting.html#dom-context-2d-direction
3352
3353         Test: fast/canvas/canvas-direction.html
3354
3355         * html/canvas/CanvasRenderingContext2D.cpp:
3356         (WebCore::inheritedDirection):
3357         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
3358         (WebCore::CanvasRenderingContext2D::reset):
3359         (WebCore::CanvasRenderingContext2D::State::State):
3360         (WebCore::CanvasRenderingContext2D::State::operator=):
3361         (WebCore::CanvasRenderingContext2D::direction):
3362         (WebCore::CanvasRenderingContext2D::setDirection):
3363         (WebCore::CanvasRenderingContext2D::drawTextInternal):
3364         * html/canvas/CanvasRenderingContext2D.h:
3365         * html/canvas/CanvasRenderingContext2D.idl:
3366
3367 2014-08-18  Benjamin Poulain  <benjamin@webkit.org>
3368
3369         The style is not updated correctly when the pseudo class :empty is applied on anything but the rightmost element
3370         https://bugs.webkit.org/show_bug.cgi?id=135999
3371
3372         Reviewed by Antti Koivisto.
3373
3374         In Element's checkForEmptyStyleChange(), the style invalidation was only considering the invalidation of the element
3375         for which the subtree has changed. When the pseudo class :empty is used with a sibling combinator (e.g. foo:empty+bar),
3376         we were never invalidating the style of the element on which the selector applies.
3377
3378         This patch fixes the issue by invalidating the whole subtree rooted at the parent if the :empty rules applies
3379         to siblings. A new flag "styleOfSiblingsAffectedByEmpty" is introduced to cover this case.
3380
3381         SelectorChecker just sets the flag all the time if any sibling rule exists.
3382         This is overkill but that code is just there for non-jit cases.
3383
3384         SelectorCompiler does a better job and only sets the flag if matching anything else than the rightmost element.
3385         There is a case not optimized, :empty with descendant (e.g. foo:empty>bar). Those cases are useless in practice,
3386         it is not worth optimizing them.
3387
3388         Tests: fast/css/pseudo-element-updates-on-empty.html
3389                fast/selectors/not-empty-adjacent-style-update.html
3390                fast/selectors/not-empty-style-update.html
3391
3392         * css/SelectorChecker.cpp:
3393         (WebCore::SelectorChecker::checkOne):
3394         * cssjit/SelectorCompiler.cpp:
3395         (WebCore::SelectorCompiler::fragmentMatchesTheRightmostElement):
3396         shouldUseRenderStyleFromCheckingContext() is renamed fragmentMatchesTheRightmostElement() because
3397         it is now also used by generateElementIsEmpty() in a context where the Context's style is irrelevant.
3398
3399         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
3400         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
3401         (WebCore::SelectorCompiler::setStyleOfSiblingsAffectedByEmpty):
3402         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsEmpty):
3403         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
3404         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):
3405         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLastChild):
3406         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsOnlyChild):
3407         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
3408         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPseudoElement):
3409         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateRequestedPseudoElementEqualsToSelectorPseudoElement):
3410         (WebCore::SelectorCompiler::shouldUseRenderStyleFromCheckingContext): Deleted.
3411         (WebCore::SelectorCompiler::setElementStyleIsAffectedByEmptyAndUpdateRenderStyleIfNecessary): Deleted.
3412         * dom/Element.cpp:
3413         (WebCore::checkForEmptyStyleChange):
3414         (WebCore::Element::setStyleOfSiblingsAffectedByEmpty):
3415         (WebCore::Element::rareDataStyleOfSiblingsAffectedByEmpty):
3416         * dom/Element.h:
3417         (WebCore::Element::styleOfSiblingsAffectedByEmpty):
3418         * dom/ElementRareData.h:
3419         (WebCore::ElementRareData::styleOfSiblingsAffectedByEmpty):
3420         (WebCore::ElementRareData::setStyleOfSiblingsAffectedByEmpty):
3421         (WebCore::ElementRareData::ElementRareData):
3422
3423 2014-08-18  Brent Fulgham  <bfulgham@apple.com>
3424
3425         [Mac] Unreviewed merge correction.
3426
3427         * page/mac/EventHandlerMac.mm:
3428         (WebCore::EventHandler::platformCompleteWheelEvent): Revert an
3429         unintended change from r172705.
3430
3431 2014-08-18  Bem Jones-Bey  <bjonesbe@adobe.com>
3432
3433         Small cleanup for ShapeOutsideDeltas
3434         https://bugs.webkit.org/show_bug.cgi?id=136043
3435
3436         Reviewed by Zoltan Horvath.