8117fdc1efbcba243267800ab1098fc65538aaba
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-08-07  Enrica Casucci  <enrica@apple.com>
2
3         [Services with UI] Action menu does not appear if selection includes both text and an image.
4         https://bugs.webkit.org/show_bug.cgi?id=135731
5         <rdar://problem/17837491>
6
7         Reviewed by Brady Eidson.
8
9         When collecting selection rects via SelectionRectGatherer we should also note if the selection
10         contains non text elements. This way the Notifier class can send that information to ServicesOverlayController
11         to properly handle the highlight for the service.
12
13         * editing/SelectionRectGatherer.cpp:
14         (WebCore::SelectionRectGatherer::SelectionRectGatherer):
15         (WebCore::SelectionRectGatherer::Notifier::~Notifier):
16         (WebCore::SelectionRectGatherer::clearAndCreateNotifier):
17         * editing/SelectionRectGatherer.h:
18         (WebCore::SelectionRectGatherer::setTextOnly):
19         (WebCore::SelectionRectGatherer::isTextOnly):
20         * page/EditorClient.h:
21         (WebCore::EditorClient::selectionRectsDidChange):
22         * rendering/RenderView.cpp:
23         (WebCore::RenderView::applySubtreeSelection):
24
25 2014-08-07  Andy Estes  <aestes@apple.com>
26
27         [Mac] Parental Controls content filter is mistakenly enabled for HTTP responses
28         https://bugs.webkit.org/show_bug.cgi?id=135730
29
30         Reviewed by Brady Eidson.
31
32         On the Mac, the WebFilterEvaluator (Parental Controls) content filter should only be enabled for HTTPS
33         responses. During iOS upstreaming we mistakenly enabled it for HTTP responses as well, and this causes HTTP
34         responses to be filtered twice -- once by the Parental Controls HTTP proxy and once by WebCore. Revert to the
35         pre-upstreaming behavior and only enable the content filter for HTTPS responses.
36
37         No new tests. Content filtering is not testable from WebKit.
38
39         * loader/DocumentLoader.cpp:
40         (WebCore::DocumentLoader::responseReceived): Passed the response to ContentFilter::canHandleResponse().
41         * platform/ContentFilter.h:
42         * platform/mac/ContentFilterMac.mm:
43         (WebCore::ContentFilter::canHandleResponse): Renamed from isEnabled(). Checks the response's scheme on Mac to
44         determine whether WebFilterEvaluator should be used.
45         (WebCore::ContentFilter::isEnabled): Deleted.
46
47 2014-08-07  Beth Dakin  <bdakin@apple.com>
48
49         Fixed backgrounds don't paint in blurred inset areas
50         https://bugs.webkit.org/show_bug.cgi?id=135712
51
52         Reviewed by Simon Fraser.
53
54         Background geometry calculations for fixed background need to use the larger 
55         visible rect. 
56
57         * rendering/RenderBoxModelObject.cpp:
58         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
59
60 2014-08-07  Jer Noble  <jer.noble@apple.com>
61
62         [EME][Mac] Error codes returned by AVSampleBufferDisplayLayer are negative; clip when passed to JavaScript as doubles.
63         https://bugs.webkit.org/show_bug.cgi?id=135710
64
65         Reviewed by Brent Fulgham.
66
67         Return the absolute value of the error codes returned by AVSampleBufferDisplayLayer, so that the conversion from
68         unsigned -> double does not clip due to the (converted) value being greater than 2^53.
69
70         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
71         (WebCore::CDMSessionMediaSourceAVFObjC::layerDidReceiveError):
72         (WebCore::CDMSessionMediaSourceAVFObjC::rendererDidReceiveError):
73
74 2014-08-07  Daniel Bates  <dabates@apple.com>
75
76         Sometimes Gmail cannot load messages, particularly on refresh ("...the application ran into an unexpected error...")
77         https://bugs.webkit.org/show_bug.cgi?id=135688
78         <rdar://problem/17886686>
79
80         Reviewed by Alexey Proskuryakov.
81
82         Fixes an issue where gmail.com may fail to load the list of messages. In particular, a SQLTransactionCallback
83         function may not be executed and hence Gmail will not display the list of messages and
84         will subsequently display an error message.
85
86         When a WebKit client defers loading of a page (e.g. -[WebView setDefersCallbacks:YES]), WebCore
87         may still load the main resource, say if substitute data is available for it, and defer executing
88         tasks, such as a SQLTransactionCallback function, by appending such tasks to the end of the list
89         of pending tasks for the associated Document. This list of pending tasks is never processed when
90         a client subsequently allows loading (e.g. -[WebView setDefersCallbacks:NO])). Therefore, we never
91         execute a SQLTransactionCallback function that was deferred.
92
93         Ideally WebCore would defer loading of substitute data when a WebKit client requests that loading
94         be deferred and hence a SQLTransactionCallback function would be deferred as a consequence of the
95         lack of JavaScript script execution (since substitute data wasn't loaded and hence any JavaScript
96         script contained in the substitute data that initiates a SQL transaction isn't executed). For now,
97         it's sufficient to only defer executing tasks when either there are existing pending tasks or the
98         page defers loading and active DOM objects in the document are suspended (e.g. Document::suspendActiveDOMObjects() was called).
99
100         * dom/Document.cpp:
101         (WebCore::Document::postTask):
102
103 2014-08-07  Benjamin Poulain  <bpoulain@apple.com>
104
105         Get rid of INPUT_SPEECH
106         https://bugs.webkit.org/show_bug.cgi?id=135672
107
108         Reviewed by Andreas Kling.
109
110         * CMakeLists.txt:
111         * Configurations/FeatureDefines.xcconfig:
112         * DerivedSources.make:
113         * Modules/speech/SpeechSynthesis.cpp:
114         * WebCore.vcxproj/WebCore.vcxproj:
115         * WebCore.vcxproj/WebCore.vcxproj.filters:
116         * WebCore.xcodeproj/project.pbxproj:
117         * bindings/generic/RuntimeEnabledFeatures.cpp:
118         (WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
119         * bindings/generic/RuntimeEnabledFeatures.h:
120         (WebCore::RuntimeEnabledFeatures::setSpeechInputEnabled): Deleted.
121         (WebCore::RuntimeEnabledFeatures::speechInputEnabled): Deleted.
122         (WebCore::RuntimeEnabledFeatures::webkitSpeechEnabled): Deleted.
123         (WebCore::RuntimeEnabledFeatures::webkitGrammarEnabled): Deleted.
124         * css/CSSPrimitiveValueMappings.h:
125         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
126         * css/CSSValueKeywords.in:
127         * css/html.css:
128         (input::-webkit-input-speech-button): Deleted.
129         * dom/Element.h:
130         (WebCore::Element::isInputFieldSpeechButtonElement): Deleted.
131         * dom/EventNames.in:
132         * html/HTMLInputElement.cpp:
133         (WebCore::HTMLInputElement::parseAttribute):
134         (WebCore::HTMLInputElement::speechButtonElement): Deleted.
135         (WebCore::HTMLInputElement::isSpeechEnabled): Deleted.
136         * html/HTMLInputElement.h:
137         * html/HTMLInputElement.idl:
138         * html/InputType.cpp:
139         (WebCore::InputType::shouldRespectListAttribute):
140         (WebCore::InputType::shouldRespectSpeechAttribute): Deleted.
141         * html/InputType.h:
142         (WebCore::InputType::speechButtonElement): Deleted.
143         * html/NumberInputType.cpp:
144         (WebCore::NumberInputType::shouldRespectSpeechAttribute): Deleted.
145         * html/NumberInputType.h:
146         * html/PasswordInputType.cpp:
147         (WebCore::PasswordInputType::shouldRespectSpeechAttribute): Deleted.
148         * html/PasswordInputType.h:
149         * html/SearchInputType.cpp:
150         (WebCore::SearchInputType::shouldRespectSpeechAttribute): Deleted.
151         * html/SearchInputType.h:
152         * html/TelephoneInputType.cpp:
153         (WebCore::TelephoneInputType::shouldRespectSpeechAttribute): Deleted.
154         * html/TelephoneInputType.h:
155         * html/TextFieldInputType.cpp:
156         (WebCore::TextFieldInputType::needsContainer):
157         (WebCore::TextFieldInputType::createShadowSubtree):
158         (WebCore::TextFieldInputType::destroyShadowSubtree):
159         (WebCore::TextFieldInputType::speechButtonElement): Deleted.
160         * html/TextFieldInputType.h:
161         * html/TextInputType.cpp:
162         (WebCore::TextInputType::shouldRespectSpeechAttribute): Deleted.
163         * html/TextInputType.h:
164         * html/shadow/TextControlInnerElements.cpp:
165         (WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement): Deleted.
166         (WebCore::InputFieldSpeechButtonElement::~InputFieldSpeechButtonElement): Deleted.
167         (WebCore::InputFieldSpeechButtonElement::create): Deleted.
168         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler): Deleted.
169         (WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents): Deleted.
170         (WebCore::InputFieldSpeechButtonElement::setState): Deleted.
171         (WebCore::InputFieldSpeechButtonElement::speechInput): Deleted.
172         (WebCore::InputFieldSpeechButtonElement::didCompleteRecording): Deleted.
173         (WebCore::InputFieldSpeechButtonElement::didCompleteRecognition): Deleted.
174         (WebCore::InputFieldSpeechButtonElement::setRecognitionResult): Deleted.
175         (WebCore::InputFieldSpeechButtonElement::willAttachRenderers): Deleted.
176         (WebCore::InputFieldSpeechButtonElement::willDetachRenderers): Deleted.
177         (WebCore::InputFieldSpeechButtonElement::startSpeechInput): Deleted.
178         (WebCore::InputFieldSpeechButtonElement::stopSpeechInput): Deleted.
179         * html/shadow/TextControlInnerElements.h:
180         (WebCore::toInputFieldSpeechButtonElement): Deleted.
181         * page/SpeechInput.cpp: Removed.
182         * page/SpeechInput.h: Removed.
183         * page/SpeechInputClient.h: Removed.
184         * page/SpeechInputEvent.cpp: Removed.
185         * page/SpeechInputEvent.h: Removed.
186         * page/SpeechInputEvent.idl: Removed.
187         * page/SpeechInputListener.h: Removed.
188         * page/SpeechInputResult.cpp: Removed.
189         * page/SpeechInputResult.h: Removed.
190         * page/SpeechInputResult.idl: Removed.
191         * page/SpeechInputResultList.cpp: Removed.
192         * page/SpeechInputResultList.h: Removed.
193         * page/SpeechInputResultList.idl: Removed.
194         * platform/ThemeTypes.h:
195         * rendering/RenderInputSpeech.cpp: Removed.
196         * rendering/RenderInputSpeech.h: Removed.
197         * rendering/RenderTheme.cpp:
198         (WebCore::RenderTheme::adjustStyle):
199         (WebCore::RenderTheme::paint):
200         (WebCore::RenderTheme::paintBorderOnly):
201         (WebCore::RenderTheme::paintDecorations):
202         (WebCore::RenderTheme::adjustInputFieldSpeechButtonStyle): Deleted.
203         (WebCore::RenderTheme::paintInputFieldSpeechButton): Deleted.
204         * rendering/RenderTheme.h:
205         * rendering/RenderThemeMac.mm:
206         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
207
208 2014-08-07  Eric Carlson  <eric.carlson@apple.com>
209
210         Create UTF-8 string from in-band VTT cues
211         https://bugs.webkit.org/show_bug.cgi?id=135716
212
213         Reviewed by Brent Fulgham.
214
215         Tests will be added in https://bugs.webkit.org/show_bug.cgi?id=135717.
216
217         * platform/graphics/ISOVTTCue.cpp:
218         (WebCore::ISOBox::peekString): Call String::fromUTF8 because we know that VTT is always
219             UTF-8.
220
221 2014-08-06  Jeremy Jones  <jeremyj@apple.com>
222
223         Disable implicit animations on video layer.
224         https://bugs.webkit.org/show_bug.cgi?id=135679
225
226         Reviewed by Eric Carlson.
227
228         Disable implicit animations on AVPlayerLayer except when setting fullscreen frame.
229         This prevents unwanted animations.
230
231         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
232         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): disable implicit animations
233         (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame): allow implicit animations while changing fullscreen frame.
234
235 2014-08-07  Gordon Sheridan  <gordon_sheridan@apple.com>
236
237         Provide methods to clear undesired references to HistoryItems that have been removed from the back/forard list.
238         https://bugs.webkit.org/show_bug.cgi?id=135634
239         <rdar://problem/17388461>
240
241         Reviewed by Brady Eidson.
242
243         No new tests.  Would require an API test that also needs an httpd, which we don't currently support.
244
245         * WebCore.exp.in:
246         Added export for Page::clearPreviousItemFromAllPages.
247
248         * loader/HistoryController.cpp:
249         (WebCore::HistoryController::clearPreviousItem):
250         Clear m_previousItem and iterate over children recursively calling clearPreviousItem().
251         The m_previousItem is cleared for the target HistoryController, and all of its descendents.
252
253         * loader/HistoryController.h:
254         Declared HistoryController::clearPreviousItem.
255
256         * page/Page.cpp:
257         (WebCore::Page::clearPreviousItemFromAllPages):
258         Iterate over each page in the web process, checking if the previous item of
259         the HistoryController for the main frame is the same as the item being removed. If so, the
260         frameTree is traversed and each associated HistoryController has its m_previousItem cleared.
261
262         * page/Page.h:
263         Declared Page::clearPreviousItemFromAllPages.
264
265 2014-08-07  Roger Fong  <roger_fong@apple.com>
266
267         Unreviewed build fix attempt #2 following r172224.
268
269         * html/track/VTTCue.cpp:
270         (WebCore::VTTCueBox::applyCSSProperties):
271
272 2014-08-07  Roger Fong  <roger_fong@apple.com>
273
274         Unreviewed build fix following r172224.
275
276         * html/track/TextTrackCueGeneric.cpp:
277         (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
278         * html/track/VTTCue.cpp:
279         (WebCore::VTTCueBox::applyCSSProperties):
280         * html/track/VTTCue.h:
281
282 2014-08-07  Daniel Bates  <dabates@apple.com>
283
284         Unreviewed, rolling out r172219.
285
286         Caused some /fast/workers tests to fail; will investigate
287         offline.
288
289         Reverted changeset:
290
291         "Sometimes Gmail cannot load messages, particularly on refresh
292         ("...the application ran into an unexpected error...")"
293         https://bugs.webkit.org/show_bug.cgi?id=135688
294         http://trac.webkit.org/changeset/172219
295
296 2014-08-06  Roger Fong  <roger_fong@apple.com>
297
298         Increase width of caption container if a larger font size is selected from user prefs.
299         https://bugs.webkit.org/show_bug.cgi?id=135677.
300
301         Reviewed by Brent Fulgham.
302
303         * html/shadow/MediaControlElements.cpp:
304         (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
305         Upon creation of a VTTCueBox make sure to supply the font size set by the user prefs.
306         * html/track/TextTrackCueGeneric.cpp:
307         (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
308         Increase the width of the cue box based on user prefs font size selection.
309
310         * html/track/VTTCue.h:
311         Keep track of the font size set in the user prefs for use when the cue boxes are created.
312         (WebCore::VTTCueBox::setFontSizeFromCaptionUserPrefs):
313         * html/track/VTTCue.cpp:
314         (WebCore::VTTCueBox::applyCSSProperties):
315         Increase the width of the cue box based on user prefs font size selection.
316         (WebCore::VTTCue::getDisplayTree):
317         (WebCore::VTTCue::setFontSize):
318         If the font size set is important then we don't want to use the font size set by user prefs, set it to 0.
319
320 2014-08-07  Alex Christensen  <achristensen@webkit.org>
321
322         Unreviewed build fix after r172220.
323
324         * css/SelectorChecker.cpp:
325         (WebCore::hasScrollbarPseudoElement):
326         Use ASSERT_UNUSED instead of just ASSERT.
327
328 2014-08-07  Alex Christensen  <achristensen@webkit.org>
329
330         Compile scrollbar pseudoclass css selectors.
331         https://bugs.webkit.org/show_bug.cgi?id=135242
332
333         Reviewed by Benjamin Poulain.
334
335         Tests: scrollbars/corner-resizer-window-inactive.html
336                scrollbars/scrollbar-selectors.html
337
338         * css/ElementRuleCollector.cpp:
339         (WebCore::ElementRuleCollector::ruleMatches):
340         Changed assertion because there are pseudo-elements selectors that return CannotCompileAnything now, which
341         make SimpleSelectorCheckers.
342         Add scrollbar, scrollbarPart, and document to the CheckingContext and compile scrollbar pseudo-element selectors.
343         * css/SelectorChecker.cpp:
344         (WebCore::hasScrollbarPseudoElement):
345         Added.  Logic moved from matchRecursively to be easier to read and to add assertions.
346         context.scrollbar is always non-null when dynamicPseudo is SCROLLBAR_CORNER.
347         (WebCore::SelectorChecker::matchRecursively):
348         Moved logic to hasScrollbarPseudoElement.
349         (WebCore::SelectorChecker::checkOne):
350         checkScrollbarPseudoClass accesses the document through the element now.
351         (WebCore::SelectorChecker::checkScrollbarPseudoClass):
352         * css/SelectorChecker.h:
353         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
354         * css/SelectorCheckerTestFunctions.h:
355         (WebCore::scrollbarMatchesEnabledPseudoClass):
356         (WebCore::scrollbarMatchesDisabledPseudoClass):
357         (WebCore::scrollbarMatchesHoverPseudoClass):
358         (WebCore::scrollbarMatchesActivePseudoClass):
359         (WebCore::scrollbarMatchesHorizontalPseudoClass):
360         (WebCore::scrollbarMatchesVerticalPseudoClass):
361         (WebCore::scrollbarMatchesDecrementPseudoClass):
362         (WebCore::scrollbarMatchesIncrementPseudoClass):
363         (WebCore::scrollbarMatchesStartPseudoClass):
364         (WebCore::scrollbarMatchesEndPseudoClass):
365         (WebCore::scrollbarMatchesDoubleButtonPseudoClass):
366         (WebCore::scrollbarMatchesSingleButtonPseudoClass):
367         (WebCore::scrollbarMatchesNoButtonPseudoClass):
368         (WebCore::scrollbarMatchesCornerPresentPseudoClass):
369         Move scrollbar selector logic from SelectorChecker.cpp to SelectorCheckerTestFunctions.h
370         For window-inactive pseudo classes, we now access the document through the element instead of as a separate parameter.
371         * cssjit/SelectorCompiler.cpp:
372         (WebCore::SelectorCompiler::SelectorFragment::appendUnoptimizedPseudoClassWithContext):
373         (WebCore::SelectorCompiler::addScrollbarPseudoClassType):
374         (WebCore::SelectorCompiler::addPseudoClassType):
375         (WebCore::SelectorCompiler::isScrollbarPseudoElement):
376         (WebCore::SelectorCompiler::constructFragments):
377         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
378         Call functions for unoptimized pseudo classes that require a context.
379         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateContextFunctionCallTest):
380         Added.  Similar to generateElementFunctionCallTest, but the CheckingContext pointer is stored on the stack instead of a dedicated register.
381         * cssjit/SelectorCompiler.h:
382         Added scrollbar, scrollbarPart, and document to the CheckingContext.
383         (WebCore::SelectorCompiler::CheckingContext::document):
384         Added method to access the document in a way that is syntactically equal to SelectorCheckingContext.
385         This way, the template functions in SelectorCheckerTestFunctions.h can be compiled with both context types,
386         but the context types store the document differently.
387
388 2014-08-07  Daniel Bates  <dabates@apple.com>
389
390         Sometimes Gmail cannot load messages, particularly on refresh ("...the application ran into an unexpected error...")
391         https://bugs.webkit.org/show_bug.cgi?id=135688
392         <rdar://problem/17886686>
393
394         Reviewed by Maciej Stachowiak.
395
396         Fixes an issue where gmail.com may fail to load the list of messages. In particular, a SQLTransactionCallback
397         function may not be executed and hence Gmail will not display the list of messages and
398         will subsequently display an error message.
399
400         When a WebKit client defers loading of a page (e.g. -[WebView setDefersCallbacks:YES]), WebCore
401         may still load the main resource, say if substitute data is available for it, and defer executing
402         tasks, such as a SQLTransactionCallback function, by appending such tasks to the end of the list
403         of pending tasks for the associated Document. This list of pending tasks is never processed when
404         a client subsequently allows loading (e.g. -[WebView setDefersCallbacks:NO])). Therefore, we never
405         execute a SQLTransactionCallback function that was deferred.
406
407         Ideally WebCore would defer loading of substitute data when a WebKit client requests that loading
408         be deferred and hence a SQLTransactionCallback function would be deferred as a consequence of the
409         lack of JavaScript script execution (since substitute data wasn't loaded and hence any JavaScript
410         script contained in the substitute data that initiates a SQL transaction isn't executed). For now,
411         it's sufficient to only defer executing tasks when either there are existing pending tasks or the
412         active DOM objects for the document are suspended (e.g. Document::suspendActiveDOMObjects() was called).
413
414         * dom/Document.cpp:
415         (WebCore::Document::postTask):
416
417 2014-08-07  Zalan Bujtas  <zalan@apple.com>
418
419         border-radius on html does not render properly.
420         https://bugs.webkit.org/show_bug.cgi?id=135706
421
422         Reviewed by Simon Fraser.
423
424         Ensure that background is initialized when border-radius is present.
425
426         Test: fast/borders/border-radius-on-html.html
427
428         * rendering/RenderView.cpp:
429         (WebCore::rendererObscuresBackground):
430
431 2014-08-07  Pratik Solanki  <psolanki@apple.com>
432
433         Random resource replacement on beta.icloud.com
434         https://bugs.webkit.org/show_bug.cgi?id=135685
435         <rdar://problem/17937975>
436
437         Reviewed by Alexey Proskuryakov.
438
439         Revert the performance optimization in r170499. It turns out we could get a delayed disk
440         cache notification for a resource that has since been changed in WebCore. In such a case, we
441         were replacing the newer resource data with the older disk cached resource data. This was
442         happening for cached POST content on beta.icloud.com. Fix this by forcing a memcmp of data
443         contents before replacing it which is what we used to do before.
444
445         * loader/cache/CachedResource.cpp:
446         (WebCore::CachedResource::tryReplaceEncodedData):
447
448 2014-08-06  Brent Fulgham  <bfulgham@apple.com>
449
450         [Mac, iOS] Captions are appearing multiple times during repeated video play through
451         https://bugs.webkit.org/show_bug.cgi?id=135680
452         <rdar://problem/17926802>
453
454         Reviewed by Eric Carlson.
455
456         Test: media/track/track-in-band-cues-added-once.html
457
458         Revert TextTrackCueGeneric::isOrderedBefore logic to its original form, and add
459         a new 'isOrderedBeforeDuringDisplay' for the special case of displaying captions.
460
461         * html/shadow/MediaControlElements.cpp:
462         (WebCore::compareCueIntervalForDisplay): Added helper function.
463         (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Use the new
464         'isOrderedBeforeDuringDisplay' to order the cues for display.
465         * html/track/TextTrackCue.h:
466         (WebCore::TextTrackCue::isOrderedBeforeDuringDisplay): Added. This just
467         calls the existing 'isOrderedBefore' method.
468         * html/track/TextTrackCueGeneric.cpp:
469         (WebCore::TextTrackCueGeneric::isOrderedBefore): Revert to logic used
470         prior to r171700.
471         (WebCore::TextTrackCueGeneric::isOrderedBeforeDuringDisplay): New method that
472         implements the behavior in r171700.
473         * html/track/TextTrackCueGeneric.h:
474
475 2014-08-07  Jer Noble  <jer.noble@apple.com>
476
477         [Mac] Taking a paused video full screen flashes black at beginning of animation.
478         https://bugs.webkit.org/show_bug.cgi?id=135668
479
480         Reviewed by Eric Carlson.
481
482         When entering fullscreen, the full screen window will momentarily occlude the browser
483         window, causing a visiblity change notification. To avoid flickering when client buffering
484         is disabled, throttle calls to updateClientDataBuffering by delaying those calls for a
485         short period.
486
487         * platform/audio/MediaSession.cpp:
488         (WebCore::MediaSession::MediaSession):
489         (WebCore::MediaSession::clientWillPausePlayback):
490         (WebCore::MediaSession::visibilityChanged):
491         (WebCore::MediaSession::clientDataBufferingTimerFired):
492         (WebCore::MediaSession::updateClientDataBuffering):
493         * platform/audio/MediaSession.h:
494
495 2014-08-07  Zan Dobersek  <zdobersek@igalia.com>
496
497         ASSERT in Document::unregisterCollection reloading apple.com
498         https://bugs.webkit.org/show_bug.cgi?id=135168
499
500         Reviewed by Andreas Kling.
501
502         * dom/Document.cpp:
503         (WebCore::Document::unregisterCollection): This assertion was failing
504         because the passed-in HTMLCollection was not invalidated for a non-related
505         attribute, but was instead unregistered during destruction, at which point
506         the m_collectionsInvalidatedAtDocument HashSet was empty.
507         The assertion could be trivially reduced into checking that the HashSet is
508         empty when it was moved out of in Document::invalidateNodeListAndCollectionCaches(),
509         but that just checks that the move semantics on HashSet work properly. Removing
510         a non-existent element from a HashSet is harmless, so the assertion can be removed
511         completely.
512
513 2014-08-06  Brent Fulgham  <bfulgham@apple.com>
514
515         [Win] Correct build errors when WebGL Disabled
516         https://bugs.webkit.org/show_bug.cgi?id=135687
517
518         Unreviewed build fix.
519
520         * WebCore.vcxproj/WebCore.vcxproj: Don't build Cairo files
521         when building CG.
522         * platform/graphics/GLContext.cpp: Correct use of 3D_GRAPHICS macro.
523         * platform/graphics/GraphicsContext3DPrivate.cpp: Ditto.
524         * platform/graphics/opengl/GLPlatformContext.cpp: Ditto.
525         * platform/graphics/opengl/GLPlatformSurface.cpp: Ditto.
526
527 2014-08-06  Ryuan Choi  <ryuan.choi@samsung.com>
528
529         Unreviewed build fix on non Cocoa port since r172172
530
531         * platform/text/TextEncodingRegistry.cpp:
532         (WebCore::defaultTextEncodingNameForSystemLanguage):
533         * platform/text/TextEncodingRegistry.h:
534
535 2014-08-06  Myles C. Maxfield  <mmaxfield@apple.com>
536
537         [iOS] Make document marker assets not specific to particular scale factors
538         https://bugs.webkit.org/show_bug.cgi?id=135671
539
540         Reviewed by Simon Fraser.
541
542         No new tests.
543
544         * WebCore.xcodeproj/project.pbxproj:
545         * platform/ios/wak/WKGraphics.mm:
546         (imageResourcePath):
547         (WKGraphicsCreateImageFromBundleWithName):
548
549 2014-08-06  Enrica Casucci  <enrica@apple.com>
550
551         Services menu doesn't show up after you defocus/refocus the Safari window.
552         https://bugs.webkit.org/show_bug.cgi?id=135678
553         <rdar://problem/17929247>
554
555         Reviewed by Tim Horton.
556
557         In setSelection we create a SelectionRectGatherer::Notifier object that will notify
558         SelectionOverlayController about changes to the selection rects.
559         Upon creation, the list of selections rects is cleared, since it is populated by
560         the code that collects the selection rects. That code is never called
561         when setSelection won't change the selection, which the case when the window is
562         activated. The fix consists in postponing the SelectionRectGatherer::Notifier object
563         creation until we know for sure that the selection is indeed going to change.
564         
565         * rendering/RenderView.cpp:
566         (WebCore::RenderView::setSelection):
567
568 2014-08-06  Dean Jackson  <dino@apple.com>
569
570         ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED is not used anywhere. Remove it.
571         https://bugs.webkit.org/show_bug.cgi?id=135675
572
573         Reviewed by Sam Weinig.
574
575         * Configurations/FeatureDefines.xcconfig:
576
577 2014-08-06  Brady Eidson  <beidson@apple.com>
578
579         IDB transactions never reset if the Web Process ends before cleaning up
580         https://bugs.webkit.org/show_bug.cgi?id=135218
581
582         Reviewed by David Kilzer.
583
584         No new tests (Covered by existing tests).
585
586         * Modules/indexeddb/IDBServerConnection.h: Add sync versions of reset/rollback.
587
588         * Modules/indexeddb/IDBTransactionBackend.cpp:
589         (WebCore::IDBTransactionBackend::abort): Call the sync versions.
590
591 2014-08-06  Wenson Hsieh <wenson_hsieh@apple.com>
592
593         Implement parsing for CSS scroll snap points
594         https://bugs.webkit.org/show_bug.cgi?id=134301
595
596         Provided support for parsing -webkit-scroll-snap-* properties, i.e.  type, points-x, points-y, destination, and coordinates.
597         The exact syntax of the scroll snap CSS properties follow the W3C spec at http://dev.w3.org/csswg/css-snappoints/
598
599         Reviewed by Dean Jackson.
600
601         Tests: css3/scroll-snap/scroll-snap-property-parsing.html,
602             css3/scroll-snap/scroll-snap-property-computed-style.html
603
604         * CMakeLists.txt: Added StyleScrollSnapPoints.h, StyleScrollSnapPoints.cpp
605         * Configurations/FeatureDefines.xcconfig: Added ENABLE_CSS_SCROLL_SNAP
606         * WebCore.vcxproj/WebCore.vcxproj: Added StyleScrollSnapPoints.h, StyleScrollSnapPoints.cpp
607         * WebCore.vcxproj/WebCore.vcxproj.filters: Added StyleScrollSnapPoints.h, StyleScrollSnapPoints.cpp
608         * WebCore.xcodeproj/project.pbxproj: Added StyleScrollSnapPoints.h, StyleScrollSnapPoints.cpp, LengthRepeat.h
609         * css/CSSCalculationValue.cpp: Support for LengthRepeat
610         (WebCore::hasDoubleValue):
611         * css/CSSComputedStyleDeclaration.cpp: Support for showing computed style for snap point properties.
612         (WebCore::scrollSnapDestination):
613         (WebCore::scrollSnapPoints):
614         (WebCore::scrollSnapCoordinates):
615         (WebCore::ComputedStyleExtractor::propertyValue):
616         * css/CSSParser.cpp: Support for parsing snap point properties.
617         (WebCore::isValidKeywordPropertyAndValue): handle snap point type
618         (WebCore::isKeywordPropertyID):
619         (WebCore::CSSParser::parseValue): Added support for parsing snap points.
620         (WebCore::CSSParser::parseNonElementSnapPoints): Helper for parsing snap points-x/y.
621         (WebCore::CSSParser::parseScrollSnapDestination): Helper for parsing snap point destinations.
622         (WebCore::CSSParser::parseScrollSnapCoordinate): Helper for parsing snap point coordinates.
623         * css/CSSParser.h: Support for parsing snap point properties.
624         * css/CSSParserValues.cpp:
625         (WebCore::CSSParserValue::createCSSValue):
626         * css/CSSPrimitiveValue.cpp:
627         (WebCore::isValidCSSUnitTypeForDoubleConversion):
628         (WebCore::CSSPrimitiveValue::init):
629         (WebCore::CSSPrimitiveValue::cleanup):
630         (WebCore::CSSPrimitiveValue::getLengthRepeatValue):
631         (WebCore::CSSPrimitiveValue::formatNumberForcustomCSSText):
632         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
633         (WebCore::CSSPrimitiveValue::equals):
634         * css/CSSPrimitiveValue.h:
635         (WebCore::CSSPrimitiveValue::isLengthRepeat):
636         (WebCore::CSSPrimitiveValue::getLengthRepeatValue):
637         * css/CSSPrimitiveValueMappings.h: Added converters for snap point type properties.
638         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
639         (WebCore::CSSPrimitiveValue::operator ScrollSnapType):
640         * css/CSSPropertyNames.in: Added relevant snap point property names.
641         * css/CSSValueKeywords.in: Added "proximity", "mandatory" and "elements".
642         * css/LengthRepeat.h: Added to represent values of repeat(<length>)
643         (WebCore::LengthRepeat::create):
644         (WebCore::LengthRepeat::cloneForCSSOM):
645         (WebCore::LengthRepeat::interval):
646         (WebCore::LengthRepeat::setInterval):
647         (WebCore::LengthRepeat::equals):
648         (WebCore::LengthRepeat::cssText):
649         (WebCore::LengthRepeat::LengthRepeat):
650         * css/StyleResolver.cpp: Support for handling snap point properties
651         (WebCore::StyleResolver::applyProperty):Updated switch case to build snap-point-related style data
652         * rendering/style/RenderStyle.h: Added methods to access and modify snap point data
653         * rendering/style/RenderStyleConstants.h: Added scroll snap type flags.
654         * rendering/style/StyleAllInOne.cpp: Added StyleScrollSnapPoints.cpp
655         * rendering/style/StyleRareNonInheritedData.cpp: Added initiazing for m_scrollSnapPoints, updated equality check
656         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
657         (WebCore::StyleRareNonInheritedData::operator==):
658         * rendering/style/StyleRareNonInheritedData.h: Added field for StyleScrollSnapPoints
659         * rendering/style/StyleScrollSnapPoints.cpp: Added. Wrapper for basic snap point data structures.
660         (WebCore::StyleScrollSnapPoints::StyleScrollSnapPoints):
661         (WebCore::StyleScrollSnapPoints::copy):
662         (WebCore::StyleScrollSnapPoints::operator==):
663         * rendering/style/StyleScrollSnapPoints.h: Added.
664         (WebCore::StyleScrollSnapPoints::create):
665         (WebCore::StyleScrollSnapPoints::defaultRepeatOffset): Creates a new Length representing the default repeat value of repeat(100%)
666         (WebCore::StyleScrollSnapPoints::defaultDestinationOffset): Creates a new Length representing a default destination value (0px)
667         (WebCore::StyleScrollSnapPoints::operator!=):
668
669 2014-08-06  Andy Estes  <aestes@apple.com>
670
671         [iOS] Subresources referenced in converted QuickLook documents sometimes fail to load
672         https://bugs.webkit.org/show_bug.cgi?id=135676
673
674         Reviewed by David Kilzer.
675
676         * loader/DocumentLoader.h:
677         (WebCore::DocumentLoader::setQuickLookHandle):
678         (WebCore::DocumentLoader::quickLookHandle):
679
680 2014-08-06  Simon Fraser  <simon.fraser@apple.com>
681
682         REGRESSION (r168119): Album flipping animation doesn’t work
683         https://bugs.webkit.org/show_bug.cgi?id=132801
684         <rdar://problem/16878497>, <rdar://problem/17908085>
685
686         Reviewed by Dean Jackson.
687         
688         In r168119 I avoided creating backing store for backface-visibility:hidden unless
689         some ancestor was 3d-transformed. However, when starting transitions or animations
690         that apply transforms, we don't do a layout, and therefore don't update the RenderLayer
691         flags that mark an ancestor as having a transform. This broke various content which
692         used backface-visibility:hidden for "flip" animations.
693         
694         Make a low-risk fix that looks for the pattern of CSS properties used for flipping,
695         making a compositing layer for backface-visibility:hidden if the stacking context element
696         has transform-style: preserve-3d.
697
698         Test: compositing/backing/backface-visibility-flip.html
699
700         * rendering/RenderLayerCompositor.cpp:
701         (WebCore::RenderLayerCompositor::requiresCompositingForBackfaceVisibility):
702
703 2014-08-06  Brent Fulgham  <bfulgham@apple.com>
704
705         Consolidate logic for calculating scrollbar page step size
706         https://bugs.webkit.org/show_bug.cgi?id=135670
707
708         Reviewed by Simon Fraser.
709
710         Consolidate the calculation of the scroll step size into a single place.
711         Improve the handling of sub-pixel layout behavior by performing proper
712         rounding on the fractional scroll ranges.
713
714         * editing/EditorCommand.cpp:
715         (WebCore::verticalScrollDistance): Switch to Scrollbar::pageStep method.
716         * platform/ScrollAnimator.cpp:
717         (WebCore::ScrollAnimator::handleWheelEvent): Ditto.
718         * platform/ScrollView.cpp:
719         (WebCore::ScrollView::updateScrollbars): Ditto.
720         * platform/Scrollbar.h:
721         (WebCore::Scrollbar::pageStep): Added.
722         (WebCore::Scrollbar::pageStepDelta): Added.
723         * rendering/RenderLayer.cpp:
724         (WebCore::RenderLayer::updateScrollbarsAfterLayout): Switch to Scrollbar method.
725
726 2014-08-06  Brian J. Burg  <burg@cs.washington.edu>
727
728         Web Replay: dispatch timing information should be stored out-of-line in a replay segment
729         https://bugs.webkit.org/show_bug.cgi?id=135295
730
731         Reviewed by Timothy Hatcher.
732
733         We need to save a timestamp for each event loop input so that replay can
734         simulate the original user and network delays. Currently that timestamp
735         is stored on each EventLoopInput instance.
736
737         This patch stores timestamp data in a separate vector attached to the segment.
738         The event loop input class is now immutable, and new auxiliary data can be added
739         without adding members to the EventLoopInput class.
740
741         As part of the refactoring, InputCursors now keep a reference to the relevant
742         session segment instead of a reference to their input storage. InputCursors can
743         be created directly, instead of through ReplaySessionSegment.
744
745         No new tests. No behavior was changed.
746
747         * inspector/InspectorReplayAgent.cpp:
748         (WebCore::buildInspectorObjectForInput): Don't send the timestamp with the input.
749         (WebCore::buildInspectorObjectForSegment):
750         * inspector/protocol/Replay.json: Remove optional timestamp field for ReplayInput.
751         * replay/CapturingInputCursor.cpp:
752         (WebCore::CapturingInputCursor::CapturingInputCursor):
753         (WebCore::CapturingInputCursor::create):
754         (WebCore::CapturingInputCursor::storeInput): Save event loop input timings here.
755         * replay/CapturingInputCursor.h:
756         * replay/EventLoopInput.h:
757         (WebCore::EventLoopInputBase::EventLoopInputBase): Deleted.
758         (WebCore::EventLoopInputBase::timestamp): Deleted.
759         (WebCore::EventLoopInputBase::setTimestamp): Deleted.
760         * replay/EventLoopInputDispatcher.cpp: Use a struct for dispatch information.
761         (WebCore::EventLoopInputDispatcher::EventLoopInputDispatcher):
762         (WebCore::EventLoopInputDispatcher::dispatchInputSoon):
763         (WebCore::EventLoopInputDispatcher::dispatchInput):
764         * replay/EventLoopInputDispatcher.h:
765         * replay/FunctorInputCursor.h:
766         (WebCore::FunctorInputCursor::forEachInputInQueue):
767         (WebCore::FunctorInputCursor::FunctorInputCursor):
768         * replay/ReplayController.cpp:
769         (WebCore::ReplayController::createSegment):
770         (WebCore::ReplayController::loadSegmentAtIndex):
771         (WebCore::ReplayController::unloadSegment): Deleted.
772         (WebCore::ReplayController::startPlayback): Deleted.
773         * replay/ReplaySessionSegment.cpp:
774         (WebCore::ReplaySessionSegment::createCapturingCursor): Deleted.
775         (WebCore::ReplaySessionSegment::createReplayingCursor): Deleted.
776         (WebCore::ReplaySessionSegment::createFunctorCursor): Deleted.
777         * replay/ReplaySessionSegment.h:
778         (WebCore::ReplaySessionSegment::storage):
779         (WebCore::ReplaySessionSegment::eventLoopTimings):
780         * replay/ReplayingInputCursor.cpp:
781         (WebCore::ReplayingInputCursor::ReplayingInputCursor):
782         (WebCore::ReplayingInputCursor::create):
783         (WebCore::ReplayingInputCursor::uncheckedLoadInput):
784         (WebCore::ReplayingInputCursor::loadEventLoopInput): Added. This method collates
785         and returns the next event loop input with its associated dispatch information.
786         * replay/ReplayingInputCursor.h:
787
788 2014-08-06  Tim Horton  <timothy_horton@apple.com>
789
790         Document-relative overlays disappear after doing page-cache navigations
791         https://bugs.webkit.org/show_bug.cgi?id=135669
792         <rdar://problem/17929171>
793
794         Reviewed by Simon Fraser.
795
796         * rendering/RenderLayerCompositor.cpp:
797         (WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
798         When navigating from one page to another, the document-relative overlay
799         layer is moved from the layer tree of the RenderLayerCompositor of the
800         first RenderView to the layer tree of the RenderLayerCompositor of the
801         new RenderView, upon layer tree construction.
802         When going "back" via a page cache navigation, we don't rebuild the
803         layer tree, and just assume that it is in a valid state.
804         However, the document-relative overlay layer was *moved*, and as such,
805         needs to be moved back. To do this, reattach the document-relative
806         overlay layer whenever the root layer attachment of a RenderLayerCompositor
807         changes, which will happen in the right order when going back to a cached page.
808
809 2014-08-06  Filip Pizlo  <fpizlo@apple.com>
810
811         Merge r171389, r171495, r171508, r171510, r171605, r171606, r171611, r171614, r171763 from ftlopt.
812
813     2014-08-06  Mark Hahnenberg  <mhahnenberg@apple.com>
814     
815             Refactor our current implementation of for-in
816             https://bugs.webkit.org/show_bug.cgi?id=134142
817     
818             Reviewed by Filip Pizlo.
819     
820             No new tests.
821     
822             This patch splits for-in loops into three distinct parts:
823     
824             - Iterating over the indexed properties in the base object.
825             - Iterating over the Structure properties in the base object.
826             - Iterating over any other enumerable properties for that object and any objects in the prototype chain.
827      
828             It does this by emitting these explicit loops in bytecode, using a new set of bytecodes to 
829             support the various operations required for each loop.
830     
831             * bindings/js/JSDOMWindowCustom.cpp:
832             (WebCore::JSDOMWindow::getEnumerableLength):
833             (WebCore::JSDOMWindow::getStructurePropertyNames):
834             (WebCore::JSDOMWindow::getGenericPropertyNames):
835             * bindings/scripts/CodeGeneratorJS.pm:
836             (GenerateHeader):
837             * bridge/runtime_array.cpp:
838             (JSC::RuntimeArray::getOwnPropertyNames):
839     
840 2014-08-06  Alexey Proskuryakov  <ap@apple.com>
841
842         REGRESSION (WebKit2): iOS Safari default encoding doesn't follow system language
843         https://bugs.webkit.org/show_bug.cgi?id=135667
844         <rdar://problem/17862892>
845
846         Reviewed by Anders Carlsson.
847
848         Moved a function that computes default encoding from WebKit to WebCore, so that
849         it could be shared with WebKit2.
850
851         * WebCore.exp.in:
852         * platform/ios/WebCoreSystemInterfaceIOS.mm:
853         * platform/mac/WebCoreSystemInterface.h:
854         * platform/mac/WebCoreSystemInterface.mm:
855         * platform/text/TextEncodingRegistry.cpp:
856         (WebCore::defaultTextEncodingNameForSystemLanguage):
857         * platform/text/TextEncodingRegistry.h:
858
859 2014-08-06  Andreas Kling  <akling@apple.com>
860
861         Remove unused RenderBox::reflectionBox().
862         <https://webkit.org/b/135661>
863
864         Reviewed by Antti Koivisto.
865
866         * rendering/RenderBox.cpp:
867         (WebCore::RenderBox::reflectionBox): Deleted.
868         * rendering/RenderBox.h:
869
870 2014-08-06  Brian J. Burg  <burg@cs.washington.edu>
871
872         Web Inspector: convert ReplayManager to a promise-based API
873         https://bugs.webkit.org/show_bug.cgi?id=135249
874
875         Reviewed by Timothy Hatcher.
876
877         Fix some assertions to match ReplayController's preconditions.
878
879         * inspector/InspectorReplayAgent.cpp:
880         (WebCore::InspectorReplayAgent::replayToPosition):
881         (WebCore::InspectorReplayAgent::replayToCompletion):
882
883 2014-08-05  Brent Fulgham  <bfulgham@apple.com>
884
885         [Mac] Unable to scroll to bottom of nested scrollable areas
886         https://bugs.webkit.org/show_bug.cgi?id=135637
887         <rdar://problem/17910241>
888
889         Reviewed by Zalan Bujtas.
890
891         Test: platform/mac/fast/scrolling/scroll-latched-nested-div.html
892
893         Avoid truncating the fractional portion of scroll ranges.
894
895         * rendering/RenderLayer.cpp:
896         (WebCore::RenderLayer::updateScrollbarsAfterLayout): Round
897         the LayoutUnit values for scroll width and height rather than
898         truncating.
899
900 2014-08-06  Andy Estes  <aestes@apple.com>
901
902         [iOS] QuickLook returns an invalid MIME type for some documents
903         https://bugs.webkit.org/show_bug.cgi?id=135651
904
905         Reviewed by David Kilzer.
906
907         r172151 ensured that we ignore QuickLook delegate messages after an error, but neglected to do so for
908         connectionDidFinishLoading:. Do not call ResourceLoader::didFinishLoading() if an error has occurred.
909
910         * platform/network/ios/QuickLook.mm:
911         (-[WebResourceLoaderQuickLookDelegate connectionDidFinishLoading:]):
912
913 2014-08-06  Commit Queue  <commit-queue@webkit.org>
914
915         Unreviewed, rolling out r172155.
916         https://bugs.webkit.org/show_bug.cgi?id=135659
917
918         ChangeLog and commit message are wrong (Requested by estes on
919         #webkit).
920
921         Reverted changeset:
922
923         "Unreviewed, rolling out r172145."
924         https://bugs.webkit.org/show_bug.cgi?id=135657
925         http://trac.webkit.org/changeset/172155
926
927 2014-07-28  Myles C. Maxfield  <mmaxfield@apple.com>
928
929         Unreviewed build fix
930
931         * rendering/TextPainter.cpp: Used incorrect variable name
932  
933 2014-08-06  Commit Queue  <commit-queue@webkit.org>
934
935         Unreviewed, rolling out r172145.
936         https://bugs.webkit.org/show_bug.cgi?id=135657
937
938         caused 1 API test to fail (Requested by zalan on #webkit).
939
940         Reverted changeset:
941
942         "Cleanup InlineTextBox::paintSelection and
943         ::localSelectionRect."
944         https://bugs.webkit.org/show_bug.cgi?id=135631
945         http://trac.webkit.org/changeset/172145
946
947 2014-07-28  Myles C. Maxfield  <mmaxfield@apple.com>
948
949         Text-shadow with (0, 0) offset and radius = 0 is ugly
950         https://bugs.webkit.org/show_bug.cgi?id=135357
951
952         Reviewed by Darin Adler.
953
954         Instead, check for this kind of shadow and don't draw it.
955
956         Test: fast/text/empty-shadow.html
957
958         * rendering/TextPainter.cpp:
959         (WebCore::isEmptyShadow): Does a shadow match these criteria?
960         (WebCore::paintTextWithShadows): If so, don't draw it.
961
962 2014-08-06  Andy Estes  <aestes@apple.com>
963
964         [iOS] QuickLook returns an invalid MIME type for some documents
965         https://bugs.webkit.org/show_bug.cgi?id=135651
966
967         Reviewed by David Kilzer.
968
969         In some cases QuickLook indicates a failure by returning a nil MIME type in -[QLPreviewConverter previewResponse]
970         rather than calling connection:didFailWithError:. Calling ResourceLoader::didReceiveResponse() with a response
971         containing a nil MIME type leads to a crash.
972
973         Stop loading the resource and display an error page if QuickLook cannot provide a MIME type for the converted response.
974
975         No new tests. QuickLook is not testable from WebKit.
976
977         * platform/network/ios/QuickLook.mm:
978         (-[WebResourceLoaderQuickLookDelegate _sendDidReceiveResponseIfNecessary]): Called ResourceLoader::didFail() if
979         MIME type was nil. Called ResourceLoader::didReceiveResponse() otherwise.
980         (-[WebResourceLoaderQuickLookDelegate connection:didReceiveDataArray:]): Called -_sendDidReceiveResponseIfNecessary.
981         (-[WebResourceLoaderQuickLookDelegate connection:didReceiveData:lengthReceived:]): Ditto.
982         (-[WebResourceLoaderQuickLookDelegate connection:didFailWithError:]): Ditto.
983
984 2014-08-06  Radu Stavila  <stavila@adobe.com>
985
986         REGRESSION (r163382): Overflow hidden for inner elements breaks blurring
987         https://bugs.webkit.org/show_bug.cgi?id=135318
988
989         Reviewed by Zalan Bujtas.
990
991         For elements with border radius, clipping must be applied using clipRoundedRect.
992         This regressed in r163382, when normal clipping started being applied also
993         for elements having border radius.
994
995         Test: fast/filter-image/clipped-filter.html
996
997         * rendering/RenderLayer.cpp:
998         (WebCore::RenderLayer::clipToRect):
999         (WebCore::RenderLayer::restoreClip):
1000
1001 2014-08-06  Zalan Bujtas  <zalan@apple.com>
1002
1003         Cleanup InlineTextBox::paintSelection and ::localSelectionRect.
1004         https://bugs.webkit.org/show_bug.cgi?id=135631
1005
1006         Reviewed by Darin Adler.
1007
1008         Covered by existing tests.
1009
1010         * rendering/InlineTextBox.cpp: Ideally these 2 functions should share some more code.
1011         (WebCore::InlineTextBox::localSelectionRect): Local coordinates should not be snapped/enclosed.
1012         This change could potentially break some selections. Should that be the case, they need to be addressed
1013         separately.
1014         (WebCore::InlineTextBox::paint):
1015         (WebCore::InlineTextBox::paintSelection): Minor cleanup.
1016         * rendering/InlineTextBox.h:
1017
1018 2014-08-06  Carlos Garcia Campos  <cgarcia@igalia.com>
1019
1020         [GTK] Be able to disable gtk2 dependency
1021         https://bugs.webkit.org/show_bug.cgi?id=135505
1022
1023         Reviewed by Gustavo Noronha Silva.
1024
1025         Do not build WebCorePlatformGTK2 when ENABLE_PLUGIN_PROCESS_GTK2
1026         is OFF.
1027
1028         * PlatformGTK.cmake:
1029
1030 2014-08-06  Mark Lam  <mark.lam@apple.com>
1031
1032         Gardening: fix bindings test breakage for for r170564 merged in r172129.
1033         <https://webkit.org/b/134333>
1034
1035         Not reviewed.
1036
1037         No new tests.
1038
1039         * bindings/scripts/test/JS/JSTestEventTarget.h:
1040         (WebCore::JSTestEventTarget::create):
1041
1042 2014-08-06  Ryuan Choi  <ryuan.choi@samsung.com>
1043
1044         Unreviewed typo correction.
1045
1046         * bindings/scripts/CodeGeneratorJS.pm: removed unnecessary space.
1047         (GenerateImplementation):
1048
1049 2014-08-05  James Craig  <jcraig@apple.com>
1050
1051         Web Inspector: AXI: Add label string once AccessibilityObject::computedLabel() is available
1052         https://bugs.webkit.org/show_bug.cgi?id=129940
1053
1054         Reviewed by Chris Fleizach.
1055
1056         Test: inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt
1057
1058         * accessibility/AccessibilityObject.cpp: Fixed crash.
1059         (WebCore::AccessibilityObject::accessibilityComputedLabel): 
1060         * accessibility/AccessibilityObject.h: Method name update.
1061         * inspector/InspectorDOMAgent.cpp: New support for getting Node label from AccessibilityObject.
1062         (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
1063
1064 2014-07-29  Filip Pizlo  <fpizlo@apple.com>
1065
1066         Merge r170564, r170571, r170604, r170628, r170672, r170680, r170724, r170728, r170729, r170819, r170821, r170836, r170855, r170860, r170890, r170907, r170929, r171052, r171106, r171152, r171153, r171214 from ftlopt.
1067
1068     2014-07-01  Mark Lam  <mark.lam@apple.com>
1069     
1070             [ftlopt] DebuggerCallFrame::scope() should return a DebuggerScope.
1071             <https://webkit.org/b/134420>
1072     
1073             Reviewed by Geoffrey Garen.
1074     
1075             No new tests.
1076     
1077             * ForwardingHeaders/debugger/DebuggerCallFrame.h: Removed.
1078             - This is not in use.  Hence, we can remove it.
1079             * bindings/js/ScriptController.cpp:
1080             (WebCore::ScriptController::attachDebugger):
1081             - We should acquire the JSLock before modifying a JS global object.
1082     
1083     2014-06-25  Filip Pizlo  <fpizlo@apple.com>
1084     
1085             [ftlopt] If a CodeBlock is jettisoned due to a watchpoint then it should be possible to figure out something about that watchpoint
1086             https://bugs.webkit.org/show_bug.cgi?id=134333
1087     
1088             Reviewed by Geoffrey Garen.
1089     
1090             No new tests because no change in behavior.
1091     
1092             * bindings/scripts/CodeGeneratorJS.pm:
1093             (GenerateHeader):
1094     
1095 2014-08-05  Ryuan Choi  <ryuan.choi@samsung.com>
1096
1097         Build break since r172093
1098         https://bugs.webkit.org/show_bug.cgi?id=135636
1099
1100         Reviewed by Gyuyoung Kim.
1101
1102         Since r172093, AbstractView.idl is added in CMake Build but CodeGeneratorJS.pm does not take care of it.
1103
1104         No new tests required, no new functionality.
1105
1106         * bindings/scripts/CodeGeneratorJS.pm:
1107         (ShouldGenerateToJSDeclaration):
1108         (ShouldGenerateToJSImplementation):
1109         (GetImplClassName): Added to rename implClassName to DOMWindow if interface name is AbstractView.
1110         (GenerateHeader):
1111         (GenerateImplementation):
1112
1113 2014-08-05  Nikos Andronikos  <nikos.andronikos-webkit@cisra.canon.com.au>
1114
1115         [CG] strokeRect does not honor lineJoin
1116         https://bugs.webkit.org/show_bug.cgi?id=132948
1117
1118         Reviewed by Darin Adler.
1119
1120         Replaced use of CGContextStrokeRectWithWidth convenience function with explicit 
1121         call to CGContextAddRect and CGContextStrokePath.  The convenience functions
1122         CGContextStrokeRect and CGContextStrokeRectWithWidth fail to apply some attributes
1123         (e.g. stroke join) of the graphics state in certain cases.
1124
1125         Test: fast/canvas/canvas-strokeRect-lineJoin.html
1126
1127         * platform/graphics/cg/GraphicsContextCG.cpp:
1128         (WebCore::GraphicsContext::strokeRect):
1129
1130 2014-08-05  Brent Fulgham  <bfulgham@apple.com>
1131
1132         [Win] Build attempts to use ANGLE when not building WebGL.
1133         https://bugs.webkit.org/show_bug.cgi?id=135630
1134         <rdar://problem/135630>
1135
1136         Unreviewed build fix.
1137
1138         * platform/graphics/win/GraphicsContext3DWin.cpp: Move #include of GraphicsContext3D.h
1139         inside USE(3D_GRAPHICS) guard.
1140
1141 2014-08-05  Simon Fraser  <simon.fraser@apple.com>
1142
1143         [iOS WK2] Crash going back on a specific tumblr blog (under ScrollingStateTree::removeNodeAndAllDescendants)
1144         https://bugs.webkit.org/show_bug.cgi?id=135629
1145         <rdar://problem/17802174>
1146
1147         Reviewed by Tim Horton.
1148         
1149         In r170198 I added an "orphan scrolling nodes" code path that sets aside subtrees
1150         of scrolling nodes into an m_orphanedSubframeNodes map, which keeps them alive until
1151         they get reparented or destroyed. The nodes in that subtree remain in m_stateNodeMap,
1152         which holds raw pointers to them.
1153         
1154         However, ScrollingStateTree::commit() can clear m_orphanedSubframeNodes, which is
1155         sometimes non-empty at this point. When that happened, we would destroy nodes which
1156         were still referenced by m_stateNodeMap, with the result that a later query for the
1157         same nodeID would hand back a pointer to a deleted object.
1158         
1159         Fix by calling recursiveNodeWillBeRemoved() on nodes in the m_orphanedSubframeNodes
1160         before clearing it, which removes them and all their descendants from the state node map.
1161
1162         Test: platform/mac-wk2/tiled-drawing/scrolling/frames/orphaned-subtree.html
1163
1164         * page/scrolling/ScrollingStateTree.cpp:
1165         (WebCore::ScrollingStateTree::clear):
1166         (WebCore::ScrollingStateTree::commit):
1167
1168 2014-08-05  Peyton Randolph  <prandolph@apple.com>
1169
1170         Add the ability to force text to render in white, not just black
1171         https://bugs.webkit.org/show_bug.cgi?id=135625
1172
1173         Reviewed by Beth Dakin.
1174
1175         This patch introduces PaintBehaviorForceWhiteText, a complement to PaintBehaviorForceBlackText. If
1176         a client specifies both PaintBehaviorForceWhiteText and PaintBehaviorForceBlackText, the text will be
1177         painted black.
1178
1179         No new tests.
1180
1181         * rendering/EllipsisBox.cpp:
1182         (WebCore::EllipsisBox::paint): Use the forced text color to paint the text if requested.
1183         * rendering/InlineTextBox.cpp:
1184         (WebCore::InlineTextBox::paint): Disable the text shadow if a text color has been forced.
1185         * rendering/PaintInfo.h:
1186         (WebCore::PaintInfo::forceTextColor): 
1187         Return true iff the client has requested to force a black or white text color.
1188         (WebCore::PaintInfo::forceWhiteText):
1189         Return true iff forcing white text has been requested.
1190         (WebCore::PaintInfo::forcedTextColor): 
1191         Return the forced text color. Currently only white and black are supported.
1192         * rendering/PaintPhase.h:
1193         * rendering/RenderLayer.cpp:
1194         (WebCore::RenderLayer::paintLayerContents): Remove the forceBlackText-related code as it is redundant.
1195         (WebCore::RenderLayer::paintForegroundForFragments): 
1196         Remove forceBlackText parameter and infer the correct behavior from the given paint behavior.
1197         * rendering/RenderLayer.h:
1198         * rendering/TextPaintStyle.cpp:
1199         (WebCore::computeTextPaintStyle): Use the forced text color if available.
1200         (WebCore::computeTextSelectionPaintStyle): Use the forced text color if available.
1201
1202 2014-08-05  Alex Christensen  <achristensen@webkit.org>
1203
1204         More work on CMake.
1205         https://bugs.webkit.org/show_bug.cgi?id=135620
1206
1207         Reviewed by Reviewed by Laszlo Gombos.
1208
1209         * CMakeLists.txt:
1210         Added missing idls.
1211         * PlatformMac.cmake:
1212         Added additional include directories and source files.
1213         * css/makeSelectorPseudoClassAndCompatibilityElementMap.py:
1214         * css/makeSelectorPseudoElementsMap.py:
1215         The Windows distribution of gperf doesn't like single quotes for its key-positions parameters.
1216         * page/Chrome.h:
1217         Compile fix.
1218
1219 2014-08-05  Brian J. Burg  <burg@cs.washington.edu>
1220
1221         Web Inspector: ReplayManager shouldn't assume replay status when the inspector is opened
1222         https://bugs.webkit.org/show_bug.cgi?id=135212
1223
1224         Reviewed by Timothy Hatcher.
1225
1226         The frontend should be able to introspect the session and segment state machines,
1227         currently loaded segment and session identifiers, and replay position.
1228
1229         * inspector/InspectorReplayAgent.cpp:
1230         (WebCore::buildInspectorObjectForSessionState): Added.
1231         (WebCore::buildInspectorObjectForSegmentState): Added.
1232         (WebCore::InspectorReplayAgent::currentReplayState): Added.
1233         * inspector/InspectorReplayAgent.h:
1234         * inspector/protocol/Replay.json: Add currentReplayState query command.
1235         * replay/ReplayController.h: Add some accessors.
1236
1237 2014-08-05  Dean Jackson  <dino@apple.com>
1238
1239         [iOS] Media controls layout incorrectly in RTL content
1240         https://bugs.webkit.org/show_bug.cgi?id=135621
1241         <rdar://problem/17849206>
1242
1243         Reviewed by Eric Carlson.
1244
1245         Media controls should always layout in LTR mode, even when the
1246         page content is RTL. There already was a rule to do this on
1247         non-iOS systems, but it wasn't getting included for iOS.
1248         In this case I put the rule on the composited parent of the
1249         controls in order to maintain the padding of the control panel.
1250         This should still leave the captions unaffected.
1251
1252         * Modules/mediacontrols/mediaControlsiOS.css:
1253         (video::-webkit-media-controls-panel-composited-parent): Add direction: ltr.
1254
1255 2014-08-05  Brian J. Burg  <burg@cs.washington.edu>
1256
1257         Web Replay: rename protocol methods for getting replay session/segment data
1258         https://bugs.webkit.org/show_bug.cgi?id=135618
1259
1260         Reviewed by Timothy Hatcher.
1261
1262         * inspector/InspectorReplayAgent.cpp:
1263         (WebCore::InspectorReplayAgent::getSessionData):
1264         (WebCore::InspectorReplayAgent::getSegmentData):
1265         (WebCore::InspectorReplayAgent::getSerializedSession): Deleted.
1266         (WebCore::InspectorReplayAgent::getSerializedSegment): Deleted.
1267         * inspector/InspectorReplayAgent.h:
1268         * inspector/protocol/Replay.json:
1269
1270 2014-08-05  Antti Koivisto  <antti@apple.com>
1271
1272         REGRESSION: Extremely flashy scrolling while a page is still loading (because of flush throttling)
1273         https://bugs.webkit.org/show_bug.cgi?id=135603
1274         <rdar://problem/17876385>
1275         
1276         This hit ASSERT(frame().isMainFrame()) in FrameView::updateLayerFlushThrottling
1277         running scrollbars/scrollbar-iframe-click-does-not-blur-content.html and a few other tests.
1278
1279         * page/FrameView.cpp:
1280         (WebCore::FrameView::setWasScrolledByUser): Only invoke updateLayerFlushThrottling for the main frame.
1281
1282 2014-08-05  Peyton Randolph  <prandolph@apple.com>
1283
1284         Rename MAC_LONG_PRESS feature flag to LONG_MOUSE_PRESS.
1285         https://bugs.webkit.org/show_bug.cgi?id=135276
1286
1287         Reviewed by Beth Dakin.
1288
1289         No new tests. Just a compiler flag.
1290
1291         * Configurations/FeatureDefines.xcconfig:
1292
1293 2014-08-05  Dean Jackson  <dino@apple.com>
1294
1295         [Media iOS] Ensure there is a nice default fallback for missing wireless target names
1296         https://bugs.webkit.org/show_bug.cgi?id=135488
1297         <rdar://problem/17879156>
1298
1299         Reviewed by Antoine Quint.
1300
1301         Antoine found me on iMessage to tell me I'm an idiot and that I've
1302         forgotten how to write JavaScript. Embarrassingly, this code is what
1303         I originally had, but then second-guessed myself.
1304
1305         * Modules/mediacontrols/mediaControlsiOS.js:
1306         (ControllerIOS.prototype.updateWirelessPlaybackStatus): No need for the local
1307         variable or conditional statement, since null and "" both evaluate as false.
1308
1309 2014-08-05  Antti Koivisto  <antti@apple.com>
1310
1311         REGRESSION: Extremely flashy scrolling while a page is still loading (because of flush throttling)
1312         https://bugs.webkit.org/show_bug.cgi?id=135603
1313         <rdar://problem/17876385>
1314
1315         Reviewed by Andreas Kling.
1316
1317         * page/FrameView.cpp:
1318         (WebCore::determineLayerFlushThrottleState):
1319         
1320             Disable throttling after user has scrolled the page.
1321             This is consistent with the speculative tiling. It also gets enabled on first scroll.
1322
1323         (WebCore::FrameView::setWasScrolledByUser):
1324
1325 2014-08-05  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>
1326
1327         ASSERTION FAILED: name[0] == '@' && length >= 2 in WebCore::CSSParser::detectAtToken
1328         https://bugs.webkit.org/show_bug.cgi?id=134632
1329
1330         At-rules must consist of at least two characters: the '@' symbol followed by
1331         an identifier name. The failure of this condition makes the assertion fail.
1332
1333         The length of an at-rule is currently calculated by pointer arithmetic on
1334         the 'result' pointer, which is expected to be set to the end of the at-rule
1335         identifier by the WebCore::*CSSTokenizer::parseIdentifier method.
1336         If the at-rule token is a sequence of 8-bit-only characters then
1337         'result' will point correctly at the end of the identifier. However, if
1338         the at-rule contains a 16-bit Unicode escape then 'result' will not be
1339         updated correctly anymore, hence it cannot be used for length calculation.
1340         The patch makes the parseIdentifier bump the result pointer even in the 16-bit slow case.
1341
1342         Patch by Renata Hodovan, backported from Chromium: https://codereview.chromium.org/241053002
1343
1344         Reviewed by Darin Adler.
1345
1346         Test: fast/css/atrule-with-escape-character-crash.html
1347
1348         * css/CSSParser.cpp:
1349         (WebCore::CSSParser::realLex):
1350
1351 2014-08-04  Andy Estes  <aestes@apple.com>
1352
1353         [iOS] The raw bytes of an iWork document's PDF preview are displayed rather than the PDF itself
1354         https://bugs.webkit.org/show_bug.cgi?id=135596
1355
1356         Reviewed by David Kilzer.
1357
1358         Some iWork documents contain pre-rendered PDF previews. When WebKit asks QuickLook to convert such a document,
1359         QuickLook will return this PDF as the converted response. However, until WebKit has sent the document's data to
1360         QuickLook, -[QLPreviewConverter previewResponse] will misleadingly tell WebKit that the converted resource will
1361         be of type 'text/html'. This leads WebKit to render the PDF preview as HTML.
1362
1363         Instead of querying QLPreviewConverter for the previewResponse before we've sent it any data, postpone calling
1364         ResourceLoader::didReceiveResponse until we've begun to receive data via the QLPreviewConverter delegate. At
1365         that point -[QLPreviewConverter previewResponse] will have the correct MIME type and we can call didReceiveResponse.
1366
1367         No new tests. QuickLook is not testable from WebKit.
1368
1369         * platform/network/ios/QuickLook.mm:
1370         (-[WebResourceLoaderQuickLookDelegate connection:didReceiveDataArray:]): If didReceiveResponse has yet to be
1371         called, call it now with QuickLookHandle::nsResponse().
1372         (-[WebResourceLoaderQuickLookDelegate connection:didReceiveData:lengthReceived:]): Ditto.
1373         (-[WebResourceLoaderQuickLookDelegate connection:didFailWithError:]): Ditto.
1374         (-[WebResourceLoaderQuickLookDelegate connectionDidFinishLoading:]): Assert that didReceiveResponse has been called.
1375         (-[WebResourceLoaderQuickLookDelegate clearHandle]): Cleared the raw pointer to QuickLookHandle.
1376         (WebCore::QuickLookHandle::create): Pointed WebResourceLoaderQuickLookDelegate's quickLookHandle property to
1377         the newly created QuickLookHandle.
1378
1379 2014-08-05  Renata Hodovan  <rhodovan.u-szeged@partner.samsung.com>
1380
1381         Fixing calc() parameter parsing in cubic-bezier functions
1382         https://bugs.webkit.org/show_bug.cgi?id=135605
1383
1384         Reviewed by Andreas Kling.
1385
1386         Before this patch, calc values in cubic-bezier functions weren't being read correctly
1387         since they were handled as simple floats.
1388
1389         This is a backport of my fix in Blink: https://codereview.chromium.org/369313002/
1390
1391         Test: css3/calc/cubic-bezier-with-multiple-calcs-crash.html.html
1392
1393         * css/CSSParser.cpp:
1394         (WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
1395
1396 2014-08-05  Jer Noble  <jer.noble@apple.com>
1397
1398         [MSE] Seeking occasionally causes many frames to be displayed in "fast forward" mode
1399         https://bugs.webkit.org/show_bug.cgi?id=135422
1400
1401         Reviewed by Eric Carlson.
1402
1403         Three related fixes:
1404
1405         In reenqueueMediaForTime(), update TrackBuffer.lastEnqueuedPresentationTime when we flush
1406         samples, so that the next time samples are re-enqueued, the starting point for re-enqueueing
1407         is correct.
1408
1409         In sourceBufferPrivateDidReceiveSample(), do not add samples to the decode queue
1410         if they are before the current media time.
1411
1412         When a seek is pending, but samples for the new time is not yet present in the SourceBuffer,
1413         the SourceBufferPrivate may signal that it's ready for new samples through the
1414         sourceBufferPrivateDidBecomeReadyForMoreSamples() method. In this situation, we should not
1415         continue to provideMediaData(), as that will append samples from the prior-to-seeking media
1416         timeline. Since the timeline may have moved forward due to the seek, a decoder may decide to
1417         display those frames as quickly as possible (the "fast forward" behavior) in order to catch
1418         up to the new current time.
1419
1420         If a re-enqueue is pending, don't provide media data in response to being notified that the
1421         SourceBufferPrivate is ready for more samples. Wait until samples for the new current time
1422         are appended.
1423
1424         Also, don't provide media data if we are waiting for a seek to complete.
1425
1426         * Modules/mediasource/MediaSource.h:
1427         (WebCore::MediaSource::isSeeking): Convenience method.
1428         * Modules/mediasource/SourceBuffer.cpp:
1429         (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
1430         (WebCore::SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples):
1431         (WebCore::SourceBuffer::reenqueueMediaForTime):
1432
1433 2014-08-05  Chris Fleizach  <cfleizach@apple.com>
1434
1435         AX: Select text activity should return replaced text instead of previously selected text
1436         https://bugs.webkit.org/show_bug.cgi?id=135595
1437
1438         Reviewed by Mario Sanchez Prada.
1439
1440         When the select activity API is used to replace text, the replacement string should be returned instead of the old selected text.
1441
1442         Updated existing test: platform/mac/accessibility/select-text.html
1443
1444         * accessibility/AccessibilityObject.cpp:
1445         (WebCore::AccessibilityObject::selectText):
1446
1447 2014-08-04  Chris Fleizach  <cfleizach@apple.com>
1448
1449         AX: Select activity behavior does not work when an existing range is already selected
1450         https://bugs.webkit.org/show_bug.cgi?id=135579
1451
1452         Reviewed by Mario Sanchez Prada.
1453
1454         If you have an existing range selected, and try to apply a select and replace operation, like capitalize,
1455         searching for that range will fail because it skips the currently selected range.
1456
1457         For these cases, it seems the best way is to start the search from the start position, rather than relying on the
1458         entire range.
1459
1460         Updated existing test: platform/mac/accessibility/select-text.html
1461
1462         * accessibility/AccessibilityObject.cpp:
1463         (WebCore::AccessibilityObject::selectText):
1464
1465 2014-08-04  Jer Noble  <jer.noble@apple.com>
1466
1467         [MSE][Mac] Seeking past buffered range will not resume playback when seek completes.
1468         https://bugs.webkit.org/show_bug.cgi?id=135591
1469
1470         Reviewed by Eric Carlson.
1471
1472         If a seek is delayed due to seeking into an unbuffered area, playback will not be restarted
1473         at that point. Instead, playback must resume when enough media data has been added, and
1474         the MediaSource indicates the seek should complete.
1475
1476         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1477         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekCompleted):
1478
1479 2014-08-04  Jer Noble  <jer.noble@apple.com>
1480
1481         [MSE] Videos will report a stall when within 1 frame-duration before the end of a movie.
1482         https://bugs.webkit.org/show_bug.cgi?id=135586
1483
1484         Reviewed by Eric Carlson.
1485
1486         Under certain circumstances, videos which are within 1/24 seconds before the end of a media stream when
1487         monitorSourceBuffers() is called will fail the hasFutureTime() check. This is because hasFutureTime()
1488         checks whether enough media is buffered to play back at least some time in the future, but when the
1489         current time is close to the duration, not enough data is buffered to satisfy that check.
1490
1491         Add some logic which will break out early when the SourceBuffer has buffered up to and including the
1492         media's duration, and return that the buffer indeed hasFutureTime() available.
1493
1494         * Modules/mediasource/SourceBuffer.cpp:
1495         (WebCore::SourceBuffer::hasFutureTime):
1496
1497 2014-08-04  Benjamin Poulain  <benjamin@webkit.org>
1498
1499         Simplify the StyleInvalidation mode of rule collection
1500         https://bugs.webkit.org/show_bug.cgi?id=135521
1501
1502         Reviewed by Antti Koivisto.
1503
1504         There are two branches where StyleInvalidation code is removed:
1505         -Pseudo elements for shadow dom elements.
1506         -Pseudo elements without dom tree counterpart.
1507
1508         The first can never be hit because StyleInvalidationAnalysis does a complete invalidation
1509         when there is any shadow dom styling involved in the stylesheets.
1510
1511         Even if that branch was hit, not failing on custom pseudo elements would be equivalent
1512         to ignoring those pseudo elements from the Selector. By doing so, we would match elements
1513         that do not have shadow dom and invalidate pretty much everything.
1514
1515         Unlike pseudo elements without real elements, shadow dom elements are not matched separately with a different
1516         context, thus we could generalize StyleInvalidationAnalysis to handle this case.
1517
1518
1519         The second case handle pseudo elements that do not have a real element. That case no longer need to be handled
1520         separately at the filter time, it has become a special case of SelectorChecker::match() after everything else
1521         has matched.
1522
1523         The only condition for this to work is that the Context's pseudoId must be NOPSEUDO. This is the case
1524         in practice since matching specific pseudo types would be a waste of time. ElementRuleCollector::collectMatchingRules()
1525         has a new assertion to enforce that.
1526
1527         Test: fast/css/stylesheet-change-updates-pseudo-elements.html
1528
1529         * css/ElementRuleCollector.cpp:
1530         (WebCore::ElementRuleCollector::collectMatchingRules):
1531         * css/SelectorChecker.cpp:
1532         (WebCore::SelectorChecker::matchRecursively):
1533         * cssjit/SelectorCompiler.cpp:
1534         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateRequestedPseudoElementEqualsToSelectorPseudoElement):
1535
1536 2014-08-04  Benjamin Poulain  <benjamin@webkit.org>
1537
1538         Add a flag for the CSS Selectors level 4 implementation
1539         https://bugs.webkit.org/show_bug.cgi?id=135535
1540
1541         Reviewed by Andreas Kling.
1542
1543         * Configurations/FeatureDefines.xcconfig:
1544
1545 2014-08-04  Chris Fleizach  <cfleizach@apple.com>
1546
1547         AX: add AccessibilityObject::computedLabelString() for WebAXI
1548         https://bugs.webkit.org/show_bug.cgi?id=129939
1549
1550         Reviewed by Mario Sanchez Prada.
1551
1552         Provide a method that the WebKit Inspector can call in order to 
1553         display an accessible name for an AX node.
1554
1555         * accessibility/AccessibilityObject.cpp:
1556         (WebCore::AccessibilityObject::accessibilityComputedLabel):
1557         * accessibility/AccessibilityObject.h:
1558
1559 2014-08-04  Tim Horton  <timothy_horton@apple.com>
1560
1561         Lots of crashes in WebKit1 after r172013.
1562         https://bugs.webkit.org/show_bug.cgi?id=135582
1563         <rdar://problem/17837636>
1564
1565         Reviewed by Enrica Casucci.
1566
1567         * editing/SelectionRectGatherer.cpp:
1568         (WebCore::SelectionRectGatherer::addRect):
1569         (WebCore::SelectionRectGatherer::addGapRects):
1570         Don't try to do local-to-absolute coordinate conversion if we don't have
1571         a repaint container, which happens a lot in WebKit1.
1572
1573 2014-08-04  Alex Christensen  <achristensen@webkit.org>
1574
1575         Progress towards CMake on Mac.
1576         https://bugs.webkit.org/show_bug.cgi?id=135528
1577
1578         Reviewed by Gyuyoung Kim.
1579
1580         * PlatformMac.cmake: Added.
1581
1582 2014-08-04  Tim Horton  <timothy_horton@apple.com>
1583
1584         Selection services menu dropdown is in the wrong place when selecting some text on Yelp
1585         https://bugs.webkit.org/show_bug.cgi?id=135582
1586         <rdar://problem/17837636>
1587
1588         Reviewed by Simon Fraser.
1589
1590         * editing/SelectionRectGatherer.cpp:
1591         (WebCore::SelectionRectGatherer::addRect):
1592         (WebCore::SelectionRectGatherer::addGapRects):
1593         (WebCore::SelectionRectGatherer::addRects): Deleted.
1594         Rename addRects to addGapRects for clarity.
1595         Map rects and gapRects to absolute RenderView coordinates so that
1596         they are in a form WebKit2 can use. Previously they were sometimes
1597         relative to a different repaint container, but that information was
1598         lost when moving through SelectionRectGatherer.
1599
1600         Ideally we would keep selection rects as full quads instead of rects
1601         for more of their life, but that problem is much deeper than just SelectionRectGatherer.
1602
1603         * editing/SelectionRectGatherer.h:
1604         Add a comment clarifying the coordinate space of the stored selection rects.
1605
1606         * rendering/RenderView.cpp:
1607         (WebCore::RenderView::applySubtreeSelection):
1608         Rename addRects to addGapRects for clarity.
1609
1610 2014-08-04  Bem Jones-Bey  <bjonesbe@adobe.com>
1611
1612         [CSS Shapes] shape-margin not respected when it extends beyond an explicitly set margin
1613         https://bugs.webkit.org/show_bug.cgi?id=135308
1614
1615         Reviewed by Dean Jackson.
1616
1617         When a zero height line is supplied and the image shape extends into
1618         the margin box (only possible when a shape-margin is supplied), then
1619         only an empty interval was being returned. This patch makes it
1620         properly return the interval for the line in question.
1621
1622         Test: fast/shapes/shape-outside-floats/shape-outside-image-shape-margin.html
1623
1624         * rendering/shapes/RasterShape.cpp:
1625         (WebCore::RasterShape::getExcludedIntervals): Handle the zero height
1626         line case.
1627
1628 2014-08-04  Zalan Bujtas  <zalan@apple.com>
1629
1630         Subpixel rendering: InlineTextBox mistakenly rounds offset value before painting.
1631         https://bugs.webkit.org/show_bug.cgi?id=135470
1632
1633         Reviewed by Simon Fraser.
1634
1635         This patch removes the premature paint offset adjustment for inlines. Premature snapping
1636         could alter the final painting coordinates and push content to wrong positions.
1637
1638         This patch also enforces WebCore's pixel snapping strategy (round) on text painting.
1639         It ensures that text positioning is in sync with other painting related operations including
1640         clipping, box decorations etc. Underlying graphics libraries can take different directions on
1641         text snapping, for example CG ceils text coordinates vertically (in horizontal context,
1642         with the current settings). It can lead to undesired side effects.
1643
1644         Test: fast/inline/hidpi-inline-selection-leaves-gap.html
1645
1646         * rendering/InlineTextBox.cpp:
1647         (WebCore::InlineTextBox::paint):
1648         * rendering/RenderLayer.cpp:
1649         (WebCore::RenderLayer::calculateClipRects): wrong direction used at r171896.
1650         * rendering/SimpleLineLayoutFunctions.cpp: we don't paint vertical content here.
1651         (WebCore::SimpleLineLayout::paintFlow):
1652
1653 2014-08-04  Jer Noble  <jer.noble@apple.com>
1654
1655         Unreviewed, rolling out r171992, r171995, & r172000.
1656
1657         The cumulative effect of those revisions was to cause decoding errors when switching resolutions on YouTube.
1658
1659         Reverted changesets:
1660
1661         https://bugs.webkit.org/show_bug.cgi?id=135422 / http://trac.webkit.org/changeset/171992
1662         https://bugs.webkit.org/show_bug.cgi?id=135424 / http://trac.webkit.org/changeset/171995
1663         https://bugs.webkit.org/show_bug.cgi?id=135572 / http://trac.webkit.org/changeset/172000
1664
1665 2014-08-04  Joseph Pecoraro  <pecoraro@apple.com>
1666
1667         Always clear ConsoleClient when Page/WindowShell is destroyed
1668         https://bugs.webkit.org/show_bug.cgi?id=135569
1669
1670         Reviewed by Mark Lam.
1671
1672         * bindings/js/ScriptController.cpp:
1673         (WebCore::ScriptController::~ScriptController):
1674         Whenever a window shell goes away, clear the console client.
1675         We did this in clearWindowShell but not before destroying.
1676
1677 2014-08-04  Chris Fleizach  <cfleizach@apple.com>
1678
1679         AX: isWordEndMatch should allow for multiple word selections
1680         https://bugs.webkit.org/show_bug.cgi?id=135573
1681
1682         Reviewed by Mario Sanchez Prada.
1683
1684         isWordEndMatch was searching from the beginning of the selected range, which meant
1685         that if the result was multiple words, we'd reject the result. 
1686         Instead, we should search from the end of the range, so that we encompass all words.
1687
1688         Modified existing test: platform/mac/accessibility/select-text-should-match-whole-words.html
1689
1690         * editing/TextIterator.cpp:
1691         (WebCore::SearchBuffer::isWordEndMatch):
1692
1693 2014-08-04  Chris Fleizach  <cfleizach@apple.com>
1694
1695         AX: Secure text fields need to support Search parameterized attributes
1696         https://bugs.webkit.org/show_bug.cgi?id=135568
1697
1698         Reviewed by Mario Sanchez Prada.
1699  
1700         Secure text fields still need to support the fast searching that WebKit exposes, even though they don't support
1701         other parameterized attributes.
1702   
1703         Test: platform/mac/accessibility/secure-text-field-supports-fast-search.html
1704
1705         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
1706         (-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
1707
1708 2014-08-04  Jer Noble  <jer.noble@apple.com>
1709
1710         [MSE] Further fixes for "fast forward" playback after seeking in YouTube behavior.
1711         https://bugs.webkit.org/show_bug.cgi?id=135572
1712
1713         Reviewed by Eric Carlson.
1714
1715         Two related fixes:
1716
1717         In reenqueueMediaForTime(), update TrackBuffer.lastEnqueuedPresentationTime when we flush samples, so that
1718         the next time samples are re-enqueued, the starting point for re-enqueueing is correct.
1719
1720         In sourceBufferPrivateDidReceiveSample(), do not add samples to the decode queue if they are before the
1721         current media time.
1722
1723         * Modules/mediasource/SourceBuffer.cpp:
1724         (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
1725         (WebCore::SourceBuffer::reenqueueMediaForTime):
1726
1727 2014-08-04  Matt Baker  <mattbaker@apple.com>
1728
1729         Web Inspector: All-caps CSS properties are not shown in Computed pane
1730         https://bugs.webkit.org/show_bug.cgi?id=133700
1731
1732         Reviewed by Timothy Hatcher.
1733
1734         * inspector/InspectorStyleSheet.cpp:
1735         (WebCore::InspectorStyle::styleWithProperties):
1736
1737 2014-08-04  Chris Fleizach  <cfleizach@apple.com>
1738
1739         AX: SelectText functionality always selects text after current selection even if closer selection is behind it
1740         https://bugs.webkit.org/show_bug.cgi?id=135546
1741
1742         Reviewed by Mario Sanchez Prada.
1743
1744         Logic was incorrect for comparing ranges found before the current selection.
1745         ASSERT was incorrect for allowed ranges. We need to allow ranges that are right at the boundaries of our found ranges.
1746
1747         Extended existing test: platform/mac/accessibility/select-text.html
1748
1749         * accessibility/AccessibilityObject.cpp:
1750         (WebCore::rangeClosestToRange):
1751
1752 2014-08-04  Chris Fleizach  <cfleizach@apple.com>
1753
1754         AX: AXSelectTextWithCriteriaParameterizedAttribute incorrectly selects the beginning letters of a word
1755         https://bugs.webkit.org/show_bug.cgi?id=135547
1756
1757         Reviewed by Mario Sanchez Prada.
1758
1759         Allow text search to specify that it wants to match end of words as well as start of words.
1760         This allows select text criteria to match on whole words only.
1761
1762         Test: platform/mac/accessibility/select-text-should-match-whole-words.html
1763
1764         * accessibility/AccessibilityObject.cpp:
1765         (WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection):
1766         * editing/FindOptions.h:
1767         * editing/TextIterator.cpp:
1768         (WebCore::SearchBuffer::isWordEndMatch):
1769         (WebCore::SearchBuffer::search):
1770
1771 2014-08-04  Jer Noble  <jer.noble@apple.com>
1772
1773         [MSE] Re-enqueing due to overlapping appended samples can cause stuttering playback
1774         https://bugs.webkit.org/show_bug.cgi?id=135424
1775
1776         Reviewed by Eric Carlson.
1777
1778         If it become necessary to re-enqueue samples (due to appending overlapping samples which cause
1779         existing samples to be removed), the previous behavior was to flush and re-enqueue the new
1780         samples dependencies; i.e., everything up to and including the previous sync sample. This causes
1781         the decoder to visibly stall while it decodes those non-displaying samples, which could be
1782         a second or more worth of encoded video samples, depending on the frequency of sync samples.
1783
1784         Instead, when we are asked to re-enqueue, we will look for the next occurring sync sample.
1785         If found, we can switch over to the replacement samples at that point in the decode queue.
1786         This limits the overhead of a stream switch, and should allow for a visually seamless switch,
1787         at the cost of having to wait for the next sync sample to occur to affect the switch.
1788
1789         * Modules/mediasource/SourceBuffer.cpp:
1790         (WebCore::SourceBuffer::seekToTime): Clear the decode queue when seeking.
1791         (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Call reenqueueMediaForCurrentTime.
1792         (WebCore::SourceBuffer::reenqueueMediaForCurrentTime): Switch over to the new stream only
1793             at the next sync sample.
1794
1795 2014-08-04  Chris Fleizach  <cfleizach@apple.com>
1796
1797         AX: The Dictation command "Replace <phrase> with <phrase>" always capitalizes the replacement string
1798         https://bugs.webkit.org/show_bug.cgi?id=135557
1799
1800         Reviewed by Mario Sanchez Prada.
1801
1802         When replacing text, we should match the capitalization of the word being replaced 
1803         (unless the replacement looks like an abbreviation).   
1804  
1805         Test: platform/mac/accessibility/find-and-replace-match-capitalization.html
1806
1807         * accessibility/AccessibilityObject.cpp:
1808         (WebCore::AccessibilityObject::selectText):
1809
1810 2014-08-04  Pratik Solanki  <psolanki@apple.com>
1811
1812         QuickLook resources are cache-replaced with their original binary data causing ASSERT(m_data->size() == newBuffer->size()) in CachedResource.cpp
1813         https://bugs.webkit.org/show_bug.cgi?id=135548
1814         <rdar://problem/17891321>
1815
1816         Reviewed by David Kilzer.
1817
1818         When loading QuickLook resources, the SharedBuffer in the CachedResource is actually a
1819         converted representation of the real QuickLook resource. Replacing this with the actual
1820         network resource (which is what tryReplaceEncodedData() tried to do) is wrong and triggered
1821         asserts in the code.
1822
1823         Fix this by having CachedRawResource::mayTryReplaceEncodedData() return false if we are
1824         loading a QuickLook resource.
1825
1826         No new tests because we don't have a way to test QuickLook documents.
1827
1828         * loader/ResourceLoader.cpp:
1829         (WebCore::ResourceLoader::ResourceLoader):
1830         (WebCore::ResourceLoader::didCreateQuickLookHandle):
1831             Set a flag to indicate that we are loading a QuickLook document.
1832         * loader/ResourceLoader.h:
1833         (WebCore::ResourceLoader::isQuickLookResource):
1834         * loader/cache/CachedRawResource.cpp:
1835         (WebCore::CachedRawResource::CachedRawResource):
1836         (WebCore::CachedRawResource::finishLoading):
1837             Check if we were loading a QuickLook document and if so disable encoded data
1838             replacement.
1839         * loader/cache/CachedRawResource.h:
1840             Add a new bool field returned by mayTryReplaceEncodedData(). Default is true but it is
1841             set to false in finishLoading() if we were loading QuickLook document.
1842
1843 2014-08-04  Jer Noble  <jer.noble@apple.com>
1844
1845         [MSE] Seeking occasionally causes many frames to be displayed in "fast forward" mode
1846         https://bugs.webkit.org/show_bug.cgi?id=135422
1847
1848         Reviewed by Eric Carlson.
1849
1850         When a seek is pending, but samples for the new time is not yet present in the SourceBuffer,
1851         the SourceBufferPrivate may signal that it's ready for new samples through the
1852         sourceBufferPrivateDidBecomeReadyForMoreSamples() method. In this situation, we should not
1853         continue to provideMediaData(), as that will append samples from the prior-to-seeking media
1854         timeline. Since the timeline may have moved forward due to the seek, a decoder may decide to
1855         display those frames as quickly as possible (the "fast forward" behavior) in order to catch
1856         up to the new current time.
1857
1858         If a re-enqueue is pending, don't provide media data in response to being notified that the
1859         SourceBufferPrivate is ready for more samples. Wait until samples for the new current time
1860         are appended.
1861
1862         * Modules/mediasource/SourceBuffer.cpp:
1863         (WebCore::SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples):
1864         * dom/Document.cpp:
1865         (WebCore::Document::unregisterCollection):
1866
1867 2014-08-04  Carlos Garcia Campos  <cgarcia@igalia.com>
1868
1869         [GTK] Install all unstable webkitdom headers
1870         https://bugs.webkit.org/show_bug.cgi?id=135544
1871
1872         Reviewed by Gustavo Noronha Silva.
1873
1874         We were checking whether generated file existed before they had
1875         been generated.
1876
1877         * PlatformGTK.cmake: Add Unstable.h header for all stable classes
1878         to GObjectDOMBindingsUnstable_INSTALLED_HEADERS and split the
1879         install command for stable and unstable headers making unstable
1880         headers optional.
1881
1882 2014-08-04  peavo@outlook.com  <peavo@outlook.com>
1883
1884         [WinCairo] Compile error in OpenTypeMathData.cpp.
1885         https://bugs.webkit.org/show_bug.cgi?id=135541
1886
1887         Reviewed by Brent Fulgham.
1888
1889         The SharedBuffer class needs to be defined.
1890         Also, the OpenTypeMathData constructor should be implemented when OPENTYPE_MATH is not enabled.
1891
1892         * platform/graphics/opentype/OpenTypeMathData.cpp:
1893
1894 2014-08-03  Dan Bernstein  <mitz@apple.com>
1895
1896         <rdar://problem/17782529> REGRESSION: OS marketing version in iOS Simulator user-agent string is the host OS’s
1897         https://bugs.webkit.org/show_bug.cgi?id=135549
1898
1899         Reviewed by Mark Rowe.
1900
1901         * platform/cocoa/SystemVersion.mm:
1902         (WebCore::createSystemMarketingVersion): On the iOS Simulator, locate the system Library
1903         directory relative to the Simulator root.
1904
1905 2014-08-02  Jeremy Jones  <jeremyj@apple.com>
1906
1907         Support both window and view based video fullscreen.
1908         https://bugs.webkit.org/show_bug.cgi?id=135525
1909
1910         Reviewed by Simon Fraser.
1911
1912         Presenting in a separate window gives greater flexibility for rotation separately from the app.
1913         Presenting in the same window works better if the interface is rehosted in another process.
1914
1915         * platform/ios/WebVideoFullscreenControllerAVKit.mm:
1916         (-[WebVideoFullscreenController enterFullscreen:]): Use clientRect instead of screenRect.
1917         * platform/ios/WebVideoFullscreenInterfaceAVKit.h: Add m_window and m_parentView.
1918         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: 
1919         (-[WebAVVideoLayer setBounds:]): Parent view might not be fullscreen; use window instead.
1920         (WebVideoFullscreenInterfaceAVKit::setupFullscreen): Conditionally create UIWindow and UIViewController for fullscreen.
1921         (WebVideoFullscreenInterfaceAVKit::enterFullscreen): Video, not the container should have black background.
1922         (WebVideoFullscreenInterfaceAVKit::exitFullscreen): Conditionally translate finalRect.
1923         (WebVideoFullscreenInterfaceAVKit::cleanupFullscreen): Clean up UIWindow and force status bar to correct orientation.
1924         (WebVideoFullscreenInterfaceAVKit::invalidate): Clean up UIWindow.
1925         (WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): Hide window and exit without animation.
1926         * platform/ios/WebVideoFullscreenModelMediaElement.mm:
1927         (WebVideoFullscreenModelMediaElement::setVideoFullscreenLayer): Apply frame, because it may have been set before the layer.
1928
1929 2014-08-02  Benjamin Poulain  <bpoulain@apple.com>
1930
1931         Update the SearchFieldResultsButtonElement shadow Pseudo Id when HTMLInputElement's maxResults change
1932         https://bugs.webkit.org/show_bug.cgi?id=135491
1933
1934         Reviewed by Ryosuke Niwa.
1935
1936         Replace the shadowPseudoId() override + manual style invalidation by the generic pseudo ID update.
1937
1938         * html/HTMLInputElement.cpp:
1939         (WebCore::HTMLInputElement::parseAttribute):
1940         * html/InputType.cpp:
1941         (WebCore::InputType::maxResultsAttributeChanged):
1942         * html/InputType.h:
1943         * html/SearchInputType.cpp:
1944         (WebCore::SearchInputType::SearchInputType):
1945         (WebCore::updateResultButtonPseudoType):
1946         (WebCore::SearchInputType::maxResultsAttributeChanged):
1947         (WebCore::SearchInputType::createShadowSubtree):
1948         (WebCore::SearchInputType::destroyShadowSubtree):
1949         * html/SearchInputType.h:
1950         * html/shadow/TextControlInnerElements.cpp:
1951         (WebCore::SearchFieldResultsButtonElement::shadowPseudoId): Deleted.
1952         * html/shadow/TextControlInnerElements.h:
1953
1954 2014-08-02  Benjamin Poulain  <bpoulain@apple.com>
1955
1956         Add warnings for the buggy implementations of shadowPseudoId()
1957         https://bugs.webkit.org/show_bug.cgi?id=135477
1958
1959         Reviewed by Ryosuke Niwa.
1960
1961         Dean is going to look into fixing media element styling.
1962         In the meantime, add warnings to prevent this from spreading.
1963
1964         * dom/Element.h:
1965         * html/shadow/SliderThumbElement.cpp:
1966         (WebCore::SliderThumbElement::shadowPseudoId):
1967         (WebCore::SliderContainerElement::shadowPseudoId):
1968
1969 2014-08-01  Commit Queue  <commit-queue@webkit.org>
1970
1971         Unreviewed, rolling out r171957.
1972         https://bugs.webkit.org/show_bug.cgi?id=135538
1973
1974         Caused GTK assertions and test failures (Requested by smfr on
1975         #webkit).
1976
1977         Reverted changeset:
1978
1979         "Clean up image subsampling code, make it less iOS-specific"
1980         https://bugs.webkit.org/show_bug.cgi?id=134916
1981         http://trac.webkit.org/changeset/171957
1982
1983 2014-08-01  Myles C. Maxfield  <litherum@gmail.com>
1984
1985         [CMake] Allow CMake to find GLib on FreeBSD
1986         https://bugs.webkit.org/show_bug.cgi?id=132530
1987
1988         Reviewed by Gustavo Noronha Silva.
1989
1990         On FreeBSD, glibconfig.h is at /usr/local/include/glib-2.0/glibconfig.h.
1991
1992         * Source/cmake/FindGLIB.cmake:
1993
1994 2014-08-01  Carlos Alberto Lopez Perez  <clopez@igalia.com>
1995
1996         REGRESSION(r171942): [CMAKE] [GTK] build broken (clean build).
1997         https://bugs.webkit.org/show_bug.cgi?id=135522
1998
1999         Reviewed by Martin Robinson.
2000
2001         No new tests required, no new functionality.
2002
2003         * CMakeLists.txt: Add missing include to the inspector headers
2004         and fix the path to InspectorJSTypeBuilders.h
2005
2006 2014-08-01  Simon Fraser  <simon.fraser@apple.com>
2007
2008         Fix resource leak in FillLayersPropertyWrapper object member
2009         https://bugs.webkit.org/show_bug.cgi?id=135462
2010
2011         Reviewed by Andreas Kling.
2012
2013         Fix leak of m_fillLayerPropertyWrapper by using unique_ptr<>.
2014         Based on patch by Przemyslaw Kuczynski.
2015
2016         * page/animation/CSSPropertyAnimation.cpp:
2017         (WebCore::FillLayersPropertyWrapper::FillLayersPropertyWrapper):
2018
2019 2014-08-01  Simon Fraser  <simon.fraser@apple.com>
2020
2021         Clean up image subsampling code, make it less iOS-specific
2022         https://bugs.webkit.org/show_bug.cgi?id=134916
2023
2024         Reviewed by Dean Jackson.
2025
2026         Compile the image subsampling code on both Mac and iOS, and make it more platform
2027         neutral in general. Add a setting to allow it to be enabled on Mac for testing.
2028         
2029         The most significant changes are in ImageSourceCG and BitmapImageCG. CG's ImageSource
2030         is no longer stateful with respect to subsampling; its functions take a SubsamplingLevel
2031         when appropriate. CG's BitmapImage now determines which level of subsampling to use
2032         for a given frame, storing the subsampling level in the frame data. It can replace
2033         an aggressively subsampled frame with a less subsampled frame if necessary.
2034         
2035         To reduce the chances of subsampling affecting rendering, BitmapImage::size() now
2036         always returns the non-subsampled size; subsampling is strictly internal to BitmapImage.
2037         BitmapImage::draw() takes care of scaling the srcRect for subsampled images.
2038         
2039         iOS had a code path that enabled caching of frame metadata in BitmapImage without
2040         actually decoding the frame; make this cross-platform.
2041
2042         * WebCore.exp.in: Changed signature for GraphicsContext::drawNativeImage().
2043         * WebCore.xcodeproj/project.pbxproj: Added ImageSource.cpp, which is not built
2044         for Cocoa but useful for reference.
2045         * loader/cache/CachedImage.cpp:
2046         (WebCore::CachedImage::imageSizeForRenderer): Remove iOS-specific subsampling code.
2047         (WebCore::CachedImage::createImage): Call setAllowSubsampling() on the image if we
2048         can get to Settings (m_loader is null for image documents).
2049         (WebCore::CachedImage::currentFrameKnownToBeOpaque): This forced decode always
2050         caused creation of the non-subsampled image, so remove it. There's no reason to
2051         eagerly decode the frame here.
2052         * loader/cache/CachedImage.h: Fix comment.
2053         * page/Settings.cpp: Add defaultImageSubsamplingEnabled, true for iOS and false for Mac.
2054         * page/Settings.in: Added imageSubsamplingEnabled.
2055         * platform/graphics/BitmapImage.cpp:
2056         (WebCore::BitmapImage::BitmapImage): Init some more things. Default m_allowSubsampling to
2057         true for iOS to catch images created in code paths where we can't get to Settings.
2058         (WebCore::BitmapImage::haveFrameAtIndex): Handy helper.
2059         (WebCore::BitmapImage::cacheFrame): Now takes the subsampling level and whether to cache
2060         just metadata, or also the frame.
2061         (WebCore::BitmapImage::didDecodeProperties): No need to store originalSize.
2062         (WebCore::BitmapImage::updateSize): When we get the size for the first time, call
2063         determineMinimumSubsamplingLevel() to choose a reasonable subsampling level which takes
2064         platform-specific limits into account.
2065         (WebCore::BitmapImage::dataChanged): Comment.
2066         (WebCore::BitmapImage::ensureFrameIsCached): Take ImageFrameCaching into account.
2067         (WebCore::BitmapImage::frameAtIndex): Choose a subsampling level given the scale,
2068         then determine if we can use the currently cached frame, or whether we should resample.
2069         (WebCore::BitmapImage::frameIsCompleteAtIndex): Caching m_isComplete is now done when caching
2070         frame metadata.
2071         (WebCore::BitmapImage::frameDurationAtIndex):
2072         (WebCore::BitmapImage::frameHasAlphaAtIndex): The 'true' return is the safe return value.
2073         (WebCore::BitmapImage::frameOrientationAtIndex): Caching m_orientation is now done when caching
2074         frame metadata.
2075         (WebCore::BitmapImage::cacheFrameInfo): Deleted.
2076         (WebCore::BitmapImage::originalSize): Deleted.
2077         (WebCore::BitmapImage::originalSizeRespectingOrientation): Deleted.
2078         (WebCore::BitmapImage::currentFrameSize): Deleted.
2079         (WebCore::BitmapImage::ensureFrameInfoIsCached): Deleted.
2080         * platform/graphics/BitmapImage.h:
2081         (WebCore::FrameData::FrameData):
2082         * platform/graphics/GraphicsContext.h: No need to pass a scale param now.
2083         * platform/graphics/ImageSource.cpp: Non-Cocoa changes.
2084         (WebCore::ImageSource::subsamplingLevelForScale):
2085         (WebCore::ImageSource::allowSubsamplingOfFrameAtIndex):
2086         (WebCore::ImageSource::size):
2087         (WebCore::ImageSource::frameSizeAtIndex):
2088         (WebCore::ImageSource::createFrameAtIndex):
2089         (WebCore::ImageSource::frameBytesAtIndex):
2090         * platform/graphics/ImageSource.h: No longer stores subsampling state.
2091         (WebCore::ImageSource::isSubsampled): Deleted.
2092         * platform/graphics/cairo/BitmapImageCairo.cpp:
2093         (WebCore::BitmapImage::determineMinimumSubsamplingLevel):
2094         * platform/graphics/cg/BitmapImageCG.cpp:
2095         (WebCore::FrameData::clear):
2096         (WebCore::BitmapImage::BitmapImage): Init more members.
2097         (WebCore::BitmapImage::determineMinimumSubsamplingLevel): Choose a minimum subsampling
2098         level for the platform (subsample until the image area falls under a threshold).
2099         (WebCore::BitmapImage::checkForSolidColor): Don't bother decoding frames if the image
2100         is not 1x1. Also take care not to decode a non-subsampled image.
2101         (WebCore::BitmapImage::draw): The actual bug fix is here; remove logic that
2102         computed srcRectForCurrentFrame from m_size and m_originalSize; for some callers
2103         srcRect was computed using the pre-subsampled size, and for others it was the subsampled size.
2104         Instead, scale srcRect by mapping between the non-subsampled size, and the size of the CGImageRef
2105         which is affected by subsampling.
2106         (WebCore::BitmapImage::copyUnscaledFrameAtIndex):
2107         * platform/graphics/cg/GraphicsContext3DCG.cpp:
2108         (WebCore::GraphicsContext3D::ImageExtractor::extractImage): Remove #ifdeffed code.
2109         (WebCore::GraphicsContext3D::paintToCanvas):
2110         * platform/graphics/cg/GraphicsContextCG.cpp:
2111         (WebCore::GraphicsContext::drawNativeImage): No more weird scaling!
2112         * platform/graphics/cg/ImageBufferCG.cpp:
2113         (WebCore::ImageBuffer::draw):
2114         * platform/graphics/cg/ImageSourceCG.cpp:
2115         (WebCore::ImageSource::ImageSource):
2116         (WebCore::createImageSourceOptions): Helper that always returns a new CFDictionaryRef.
2117         (WebCore::imageSourceOptions): If not subsampling, return the cached CFDictionaryRef, otherwise
2118         make a new options dict and return it.
2119         (WebCore::ImageSource::subsamplingLevelForScale): Helper that returns a subsampling level
2120         between 0 and 3 given a scale.
2121         (WebCore::ImageSource::isSizeAvailable): SkipMetadata is a default value for the param now.
2122         (WebCore::ImageSource::allowSubsamplingOfFrameAtIndex): We turn off subsampling for progressive
2123         JPEGs because of a bug, so need this to know if a frame should be subsampled.
2124         (WebCore::ImageSource::frameSizeAtIndex): The looping to find a subsampling level is now in BitmapImageCG.
2125         (WebCore::ImageSource::orientationAtIndex):
2126         (WebCore::ImageSource::size): Always use a subsampling level of 0 for size().
2127         (WebCore::ImageSource::getHotSpot):
2128         (WebCore::ImageSource::repetitionCount):
2129         (WebCore::ImageSource::createFrameAtIndex): The caller mapped a scale to a level.
2130         (WebCore::ImageSource::frameDurationAtIndex):
2131         (WebCore::ImageSource::frameBytesAtIndex):
2132         (WebCore::ImageSource::imageSourceOptions): Deleted.
2133         (WebCore::ImageSource::originalSize): Deleted.
2134         * platform/graphics/mac/ImageMac.mm:
2135         (WebCore::BitmapImage::invalidatePlatformData): 0 -> nullptr
2136         * platform/graphics/wince/ImageWinCE.cpp:
2137         (WebCore::BitmapImage::determineMinimumSubsamplingLevel):
2138
2139 2014-08-01  Andreas Kling  <akling@apple.com>
2140
2141         Many DOM objects have InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero for no reason.
2142         <https://webkit.org/b/135519>
2143
2144         Don't set this structure flag unless the object actually has an override
2145         for getOwnPropertySlotByIndex().
2146
2147         Reviewed by Geoffrey Garen.
2148
2149         * bindings/scripts/CodeGeneratorJS.pm:
2150         (GenerateHeader):
2151         * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
2152         * bindings/scripts/test/JS/JSTestException.h:
2153         * bindings/scripts/test/JS/JSTestInterface.h:
2154         * bindings/scripts/test/JS/JSTestObj.h:
2155         * bindings/scripts/test/JS/JSTestTypedefs.h:
2156
2157 2014-08-01  Myles C. Maxfield  <mmaxfield@apple.com>
2158
2159         SVG Font kerning can take an early out if the font has no kerning information
2160         https://bugs.webkit.org/show_bug.cgi?id=135524
2161
2162         Reviewed by Dean Jackson.
2163
2164         Rather than calling SVGFontElement::horizontalKerningForPairOfStringsAndGlyphs() again
2165         and again, skip the iteration entirely if every call would return 0.
2166
2167         No new tests because there is no behavior change.
2168
2169         * rendering/svg/SVGTextRunRenderingContext.cpp:
2170         (WebCore::SVGTextRunRenderingContext::applySVGKerning):
2171         * svg/SVGFontElement.h:
2172
2173 2014-08-01  Beth Dakin  <bdakin@apple.com>
2174
2175         Inspector highlights clipped at the bottom on the page in WK1 views with 
2176         contentInsets
2177         https://bugs.webkit.org/show_bug.cgi?id=135480
2178         -and corresponding-
2179         <rdar://problem/17850323>
2180
2181         Forgot to commit this one very critical part with 
2182         http://trac.webkit.org/changeset/171951 
2183
2184         * platform/ScrollView.cpp:
2185         (WebCore::ScrollView::unscaledVisibleContentSizeIncludingObscuredArea):
2186
2187 2014-08-01  Beth Dakin  <bdakin@apple.com>
2188
2189         Inspector highlights clipped at the bottom on the page in WK1 views with 
2190         contentInsets
2191         https://bugs.webkit.org/show_bug.cgi?id=135480
2192         -and corresponding-
2193         <rdar://problem/17850323>
2194
2195         Reviewed by Simon Fraser.
2196
2197         unscaledTotalVisibleContentSize() was the main function on Mac that was expected 
2198         to return the rect representing ALL visible content, including content that might 
2199         be in an inset area and obscured by UI elements. This patch re-names that function 
2200         to unscaledVisibleContentSizeIncludingObscuredArea(), and that patch makes that 
2201         function return the right thing in the platformWidget() case.
2202
2203         Re-name.
2204         * inspector/InspectorOverlay.cpp:
2205         (WebCore::InspectorOverlay::update):
2206
2207         Return platformVisibleContentSizeIncludingObscuredArea() for the platformWidget() 
2208         case and re-name.
2209         * platform/ScrollView.cpp:
2210         (WebCore::ScrollView::unscaledVisibleContentSizeIncludingObscuredArea):
2211
2212         This was just wrong. It was returning the big rectangle instead of the small one 
2213         for platformWidget().
2214         (WebCore::ScrollView::unscaledUnobscuredVisibleContentSize):
2215
2216         New platform functions.
2217         (WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea):
2218         (WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea):
2219         (WebCore::ScrollView::unscaledTotalVisibleContentSize): Deleted.
2220         * platform/ScrollView.h:
2221         * platform/ios/ScrollViewIOS.mm:
2222         (WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea):
2223         (WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea):
2224         * platform/mac/ScrollViewMac.mm:
2225         (WebCore::ScrollView::platformVisibleContentRect):
2226         (WebCore::ScrollView::platformVisibleContentSize):
2227         (WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea):
2228         (WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea):
2229
2230         Re-name.
2231         * rendering/RenderLayerCompositor.cpp:
2232         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
2233         (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
2234         (WebCore::RenderLayerCompositor::updateRootLayerPosition):
2235         (WebCore::RenderLayerCompositor::ensureRootLayer):
2236
2237 2014-08-01  Myles C. Maxfield  <mmaxfield@apple.com>
2238
2239         SVGGlyph wastes space due to padding
2240         https://bugs.webkit.org/show_bug.cgi?id=135520
2241
2242         Reviewed by Dean Jackson.
2243
2244         Rearrange members in SVGGlyph so there is no wasted padding space.
2245
2246         No new tests because there is no behavior change.
2247
2248         * platform/graphics/SVGGlyph.h:
2249         (WebCore::SVGGlyph::SVGGlyph):
2250
2251 2014-07-31  Dean Jackson  <dino@apple.com>
2252
2253         [Media iOS] Ensure there is a nice default fallback for missing wireless target names
2254         https://bugs.webkit.org/show_bug.cgi?id=135488
2255         <rdar://problem/17879156>
2256
2257         Reviewed by Eric Carlson.
2258
2259         We occasionally run into cases where this.host.externalDeviceDisplayName
2260         is empty or null, creating a pretty ugly/confusing string in the
2261         wireless playback status screen.
2262
2263         If this happens, we should default to using "Apple TV".
2264
2265         * Modules/mediacontrols/mediaControlsiOS.js:
2266         (ControllerIOS.prototype.updateWirelessPlaybackStatus): Check if the externalDeviceDisplayName
2267         is empty or null, and fall back to "Apple TV" if so.
2268
2269 2014-07-30  Myles C. Maxfield  <mmaxfield@apple.com>
2270
2271         URLs in srcset attributes are not made absolute upon copy and paste
2272         https://bugs.webkit.org/show_bug.cgi?id=135448
2273
2274         Reviewed by Ryosuke Niwa.
2275
2276         When pasting, canonicalize URLs in srcset the same way we do with src.
2277
2278         Test: editing/pasteboard/img-srcset-copy-paste-canonicalization.html
2279
2280         * dom/Element.cpp:
2281         (WebCore::Element::completeURLsInAttributeValue): Initial implemention, moved from markup.cpp.
2282         * dom/Element.h:
2283         (WebCore::Element::attributeContainsURL): New function for completeURLs to call.
2284         (WebCore::Element::completeURLsInAttributeValue): Only called if attributeContainsURL returns
2285         true. Default implementation simply calls isURLAttribute().
2286         * editing/markup.cpp:
2287         (WebCore::completeURLs): Call attributeContainsURL() and completeURLsInAttributeValue() to
2288         complete the URL, so nodes can perform their own behavior.
2289         * html/HTMLImageElement.cpp:
2290         (WebCore::HTMLImageElement::attributeContainsURL): Return true for srcset.
2291         (WebCore::HTMLImageElement::completeUrlAttributeValue): Use our existing srcset parser to
2292         parse the srcset attribute, then use its output to canonicalize URLs, and build it back up
2293         into a string.
2294         * html/HTMLImageElement.h:
2295         (WebCore::HTMLImageElement::attributeContainsURL):
2296         (WebCore::HTMLImageElement::completeUrlAttributeValue):
2297         * html/parser/HTMLSrcsetParser.cpp: Make parseImageCandidatesFromSrcsetAttribute() public
2298         and change its signature to return its result.
2299         (WebCore::parseImageCandidatesFromSrcsetAttribute):
2300         * html/parser/HTMLSrcsetParser.h: Ditto.
2301
2302 2014-07-31  Andreas Kling  <akling@apple.com>
2303
2304         Remove the JSC::OverridesVisitChildren flag.
2305         <https://webkit.org/b/135489>
2306
2307         Tweak the bindings code generator to stop spitting out the flag.
2308
2309         Reviewed by Geoffrey Garen.
2310
2311         * bindings/js/JSDOMBinding.h:
2312         * bindings/js/JSDOMGlobalObject.cpp:
2313         (WebCore::JSDOMGlobalObject::visitChildren):
2314         * bindings/scripts/CodeGeneratorJS.pm:
2315         (GenerateHeader):
2316         (GenerateImplementation):
2317
2318 2014-08-01  Jer Noble  <jer.noble@apple.com>
2319
2320         [MSE][Mac] Volume is not remembered between items in a YouTube playlist
2321         https://bugs.webkit.org/show_bug.cgi?id=135479
2322
2323         Reviewed by Eric Carlson.
2324
2325         When an AVSampleBufferAudioRenderer is added to the player, set its -volume and -muted
2326         properties with the current values from the HTMLMediaElement. 
2327
2328         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
2329         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addAudioRenderer):
2330
2331 2014-08-01  Tim Horton  <timothy_horton@apple.com>
2332
2333         Fix the iOS build after r171891
2334
2335         * platform/ios/ScrollViewIOS.mm:
2336         (WebCore::ScrollView::platformTopContentInset):
2337         (WebCore::ScrollView::platformSetTopContentInset):
2338
2339 2014-08-01  Pratik Solanki  <psolanki@apple.com>
2340
2341         Remove EventNames.h include from header files
2342         https://bugs.webkit.org/show_bug.cgi?id=135486
2343
2344         Reviewed by Alexey Proskuryakov.
2345
2346         No new tests because no functional changes.
2347
2348         * Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.h:
2349         * Modules/gamepad/GamepadEvent.h:
2350         * Modules/indexeddb/IDBRequest.h:
2351         * Modules/indexeddb/IDBTransaction.h:
2352         * Modules/mediastream/RTCStatsResponse.h:
2353         * Modules/websockets/WebSocket.h:
2354         * css/FontLoader.h:
2355         * dom/SecurityPolicyViolationEvent.h:
2356         * loader/appcache/DOMApplicationCache.h:
2357         * workers/AbstractWorker.h:
2358         * workers/Worker.h:
2359         * workers/WorkerGlobalScope.h:
2360         * xml/XMLHttpRequest.h:
2361         * xml/XMLHttpRequestProgressEvent.h:
2362
2363 2014-08-01  Simon Fraser  <simon.fraser@apple.com>
2364
2365         nullptr goodness in RenderLayer
2366         https://bugs.webkit.org/show_bug.cgi?id=135512
2367
2368         Reviewed by Brent Fulgham.
2369
2370         Use nullptr in RenderLayer.
2371
2372         * rendering/RenderLayer.cpp:
2373         (WebCore::RenderLayer::RenderLayer):
2374         (WebCore::RenderLayer::updateDescendantDependentFlags):
2375         (WebCore::accumulateOffsetTowardsAncestor):
2376         (WebCore::RenderLayer::scrollRectToVisible):
2377         (WebCore::RenderLayer::destroyScrollbar):
2378         (WebCore::RenderLayer::paintLayerContents):
2379         (WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
2380         (WebCore::RenderLayer::hitTestLayer):
2381         (WebCore::RenderLayer::hitTestList):
2382         (WebCore::RenderLayer::calculateClipRects):
2383
2384 2014-08-01  Tim Horton  <timothy_horton@apple.com>
2385
2386         Build fix for iOS
2387
2388         * bindings/objc/DOM.mm:
2389         (-[DOMRange renderedImageForcingBlackText:renderedImageForcingBlackText:]):
2390         We use CGImageRef instead of NSImage here on iOS.
2391
2392 2014-08-01  Renato Nagy  <nagy.renato@stud.u-szeged.hu>
2393
2394         ASSERTION FAILED: listNode in WebCore::RenderListItem::updateListMarkerNumbers
2395         https://bugs.webkit.org/show_bug.cgi?id=134970
2396
2397         Reviewed by Zalan Bujtas.
2398
2399         Removed an unnecessary assert, because the null return value of enclosingList() is
2400         handled properly after this assert.
2401
2402         * rendering/RenderListItem.cpp:
2403         (WebCore::RenderListItem::updateListMarkerNumbers):
2404
2405 2014-08-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2406
2407         Replace DEPRECATED_DEFINE_STATIC_LOCAL with NeverDestroyed<T> in NavigatorContentUtils
2408         https://bugs.webkit.org/show_bug.cgi?id=135494
2409
2410         Reviewed by Andrei Bucur.
2411
2412         Use static NeverDestroyed<T> variables instead of the DEPRECATED_DEFINE_STATIC_LOCAL macro.
2413
2414         No new tests, no behavior changes.
2415
2416         * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
2417         (WebCore::customHandlersStateString):
2418         (WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
2419
2420 2014-07-31  Benjamin Poulain  <bpoulain@apple.com>
2421
2422         Remove shadowPseudoId() override from the shadow media controls
2423         https://bugs.webkit.org/show_bug.cgi?id=135474
2424
2425         Reviewed by Eric Carlson.
2426
2427         Small cleanup.
2428
2429         * html/shadow/MediaControlElementTypes.h:
2430         * html/shadow/MediaControlElements.cpp:
2431         (WebCore::MediaControlPanelElement::MediaControlPanelElement):
2432         (WebCore::MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement):
2433         (WebCore::MediaControlOverlayEnclosureElement::MediaControlOverlayEnclosureElement):
2434         (WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement):
2435         (WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement):
2436         (WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement):
2437         (WebCore::MediaControlPanelMuteButtonElement::MediaControlPanelMuteButtonElement):
2438         (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement):
2439         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
2440         (WebCore::MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement):
2441         (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement):
2442         (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement):
2443         (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement):
2444         (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement):
2445         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
2446         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
2447         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement):
2448         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
2449         (WebCore::MediaControlPanelVolumeSliderElement::MediaControlPanelVolumeSliderElement):
2450         (WebCore::MediaControlFullscreenVolumeSliderElement::MediaControlFullscreenVolumeSliderElement):
2451         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
2452         (WebCore::MediaControlFullscreenVolumeMinButtonElement::MediaControlFullscreenVolumeMinButtonElement):
2453         (WebCore::MediaControlFullscreenVolumeMaxButtonElement::MediaControlFullscreenVolumeMaxButtonElement):
2454         (WebCore::MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement):
2455         (WebCore::MediaControlCurrentTimeDisplayElement::MediaControlCurrentTimeDisplayElement):
2456         (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):
2457         (WebCore::MediaControlPanelElement::shadowPseudoId): Deleted.
2458         (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId): Deleted.
2459         (WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId): Deleted.
2460         (WebCore::MediaControlTimelineContainerElement::shadowPseudoId): Deleted.
2461         (WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId): Deleted.
2462         (WebCore::MediaControlStatusDisplayElement::shadowPseudoId): Deleted.
2463         (WebCore::MediaControlPanelMuteButtonElement::shadowPseudoId): Deleted.
2464         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Deleted.
2465         (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Deleted.
2466         (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId): Deleted.
2467         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Deleted.
2468         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Deleted.
2469         (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Deleted.
2470         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Deleted.
2471         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Deleted.
2472         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId): Deleted.
2473         (WebCore::MediaControlClosedCaptionsTrackListElement::shadowPseudoId): Deleted.
2474         (WebCore::MediaControlTimelineElement::shadowPseudoId): Deleted.
2475         (WebCore::MediaControlPanelVolumeSliderElement::shadowPseudoId): Deleted.
2476         (WebCore::MediaControlFullscreenVolumeSliderElement::shadowPseudoId): Deleted.
2477         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Deleted.
2478         (WebCore::MediaControlFullscreenVolumeMinButtonElement::shadowPseudoId): Deleted.
2479         (WebCore::MediaControlFullscreenVolumeMaxButtonElement::shadowPseudoId): Deleted.
2480         (WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId): Deleted.
2481         (WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId): Deleted.
2482         (WebCore::MediaControlTextTrackContainerElement::textTrackContainerElementShadowPseudoId): Deleted.
2483         (WebCore::MediaControlTextTrackContainerElement::shadowPseudoId): Deleted.
2484         * html/shadow/MediaControlElements.h:
2485         * html/shadow/MediaControls.cpp:
2486         (WebCore::MediaControls::MediaControls):
2487         (WebCore::MediaControls::shadowPseudoId): Deleted.
2488         * html/shadow/MediaControls.h:
2489
2490 2014-07-31  Timothy Horton  <timothy_horton@apple.com>
2491
2492         Build fix for platforms where we should have automaticallyAdjustsContentInsets but it isn't public yet
2493
2494         * platform/mac/ScrollViewMac.mm:
2495
2496 2014-07-31  Carlos Alberto Lopez Perez  <clopez@igalia.com>
2497
2498         [EFL] Add support for building with Geoclue2.
2499         https://bugs.webkit.org/show_bug.cgi?id=135455
2500
2501         Reviewed by Gyuyoung Kim.
2502
2503         No new tests required, no new functionality.
2504
2505         * PlatformEfl.cmake: Generate derived sources for Geoclue2Interface
2506         and include gio-unix path.
2507
2508 2014-07-31  Zalan Bujtas  <zalan@apple.com>
2509
2510         Subpixel rendering: Region painting needs to take subpixel accumulation into account.
2511         https://bugs.webkit.org/show_bug.cgi?id=135469
2512
2513         Similar to non-region painting, when the context is translated, we need to propagate
2514         the subpixel difference so that renderers get snapped to the same position as if they
2515         were not part of a region.
2516
2517         Reviewed by Simon Fraser.
2518
2519         Covered by existing tests/not testable (webkit.org/b/135470)
2520
2521         * html/shadow/MediaControlElements.cpp:
2522         (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
2523         * page/FrameView.cpp:
2524         (WebCore::FrameView::paintContents):
2525         * rendering/RenderLayer.cpp:
2526         (WebCore::RenderLayer::paint):
2527         (WebCore::RenderLayer::calculateClipRects):
2528         * rendering/RenderLayer.h:
2529
2530 2014-07-31  Jer Noble  <jer.noble@apple.com>
2531
2532         [iOS] Video in an <embed> has a bad aspect ratio when in fullscreen mode.
2533         https://bugs.webkit.org/show_bug.cgi?id=135481
2534
2535         Reviewed by Simon Fraser.
2536
2537         Do not change the gravity of our AVPlayerLayer when in full screen mode; its gravity
2538         is controlled by setVideoFullscreenGravity(), and should not be affected by style changes.
2539
2540         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2541         (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):
2542
2543 2014-07-31  Beth Dakin  <bdakin@apple.com>
2544
2545         Hit-testing broken in WebKit 1 views with AppKit's contentInsets
2546         https://bugs.webkit.org/show_bug.cgi?id=135434
2547         -and corresponding-
2548         <rdar://problem/17850323>
2549
2550         Reviewed by Benjamin Poulain.
2551
2552         AppKit's contentInsets are factored into scroll positions and mouse positions, but
2553         in WebCore, we generally want all of those things to be factored out so that, for
2554         example, the scroll position of a document pinned to the top is the same whether
2555         or not there is a contentInset. So to fix hit-testing in WebKit 1 views with
2556         contentInsets, this patch factors the inset out or into of all coordinate
2557         conversion methods just like we do for the WebKit2 contentInset.
2558         
2559         This patch also adds the ability to test WK1 platformContentInsets with
2560         window.internals, and it re-names convertFromRenderer to 
2561         convertFromRendererToContainingView and also re-names convertToRenderer to
2562         convertFromContainingViewToRenderer.
2563
2564         ScrollView::topContentInset() takes an optional parameter indicating whether the
2565         caller wants the WebCore::Page contentInset or the platform content inset. It’s
2566         necessary to distinguish between these cases because there is a lot of code that
2567         only wants the WebCore::Page contentInset since that feature is actually
2568         implemented in WebCore as opposed to being implemented at the platform level.
2569         * WebCore.exp.in:
2570         * page/FrameView.cpp:
2571         (WebCore::FrameView::topContentInset):
2572
2573         For layout test purposes, set the platforTopContentInset here if there is a 
2574         platformWidget().
2575         (WebCore::FrameView::topContentInsetDidChange):
2576
2577         Re-named functions, also all coordinate conversion functions call 
2578         topContentInset(ManualOrPlatformContentInset)
2579         (WebCore::FrameView::convertFromContainingViewToRenderer):
2580         (WebCore::FrameView::convertToContainingView):
2581         (WebCore::FrameView::convertFromContainingView):
2582         (WebCore::FrameView::convertFromRenderer): Deleted.
2583         (WebCore::FrameView::convertToRenderer): Deleted.
2584         * page/FrameView.h:
2585         * page/Page.cpp:
2586         (WebCore::Page::setTopContentInset):
2587         * platform/ScrollView.cpp:
2588         (WebCore::ScrollView::documentScrollOffsetRelativeToViewOrigin):
2589         (WebCore::ScrollView::documentScrollPositionRelativeToViewOrigin):
2590         (WebCore::ScrollView::contentsToRootView):
2591         (WebCore::ScrollView::rootViewToTotalContents):
2592         (WebCore::ScrollView::contentsToWindow):
2593         (WebCore::ScrollView::platformTopContentInset):
2594         (WebCore::ScrollView::platformSetTopContentInset):
2595         * platform/ScrollView.h:
2596         (WebCore::ScrollView::topContentInset):
2597         * platform/ios/ScrollViewIOS.mm:
2598         (WebCore::ScrollView::platformTopContentInset):
2599         (WebCore::ScrollView::platformSetTopContentInset):
2600
2601         Implement new platform inset-related functions using AppKit's implementation.
2602         * platform/mac/ScrollViewMac.mm:
2603         (WebCore::ScrollView::platformTopContentInset):
2604         (WebCore::ScrollView::platformSetTopContentInset):
2605         
2606         When we set the scroll position for the documentView, we have to factor the inset
2607         back into the WebCore scroll position.
2608         (WebCore::ScrollView::platformSetScrollPosition):
2609         
2610         Re-named functions.
2611         * rendering/RenderLayer.cpp:
2612         (WebCore::RenderLayer::convertFromScrollbarToContainingView):
2613         (WebCore::RenderLayer::convertFromContainingViewToScrollbar):
2614         * rendering/RenderListBox.cpp:
2615         (WebCore::RenderListBox::convertFromScrollbarToContainingView):
2616         (WebCore::RenderListBox::convertFromContainingViewToScrollbar):
2617
2618 2014-07-31  Dean Jackson  <dino@apple.com>
2619
2620         Default buttons do not pulse in OS X 10.10
2621         https://bugs.webkit.org/show_bug.cgi?id=135447
2622         <rdar://problem/17875896>
2623
2624         Reviewed by Dan Bernstein.
2625
2626         OS X Yosemite does not have the animated pulsing default
2627         buttons seen in previous releases. We don't need to have
2628         a timer in RenderButton constantly triggering repaints.
2629
2630         * platform/mac/ThemeMac.mm:
2631         (WebCore::paintButton): No need to advance the animation.
2632         * rendering/RenderButton.cpp:
2633         (WebCore::RenderButton::styleDidChange): Ask the theme if it
2634         should advance the animation.
2635         * rendering/RenderTheme.h:
2636         (WebCore::RenderTheme::defaultButtonHasAnimation): Virtual function
2637         indicating if the button needs to repaint.
2638         * rendering/RenderThemeMac.h:
2639         * rendering/RenderThemeMac.mm:
2640         (WebCore::RenderThemeMac::defaultButtonHasAnimation): Provide platform
2641         specific result on Yosemite and above.
2642
2643 2014-07-31  Tim Horton  <timothy_horton@apple.com>
2644
2645         DOM::renderedImageForcingBlackText returns an image with the wrong logical size on 2x displays
2646         https://bugs.webkit.org/show_bug.cgi?id=135442
2647         <rdar://problem/17614632>
2648
2649         Reviewed by Simon Fraser.
2650
2651         * bindings/objc/DOM.mm:
2652         (-[DOMRange renderedImageForcingBlackText:renderedImageForcingBlackText:]):
2653         Scale the NSImage size by the device scale factor,
2654         similar to what we did for drag images in r167403.
2655         Ideally this scaling would happen in the code that
2656         generates the images, but this is a much larger change
2657         with much more regression potential.
2658
2659 2014-07-31  Bear Travis  <betravis@adobe.com>
2660
2661         [CSS Font Loading] Rename document.fontloader to document.fonts
2662         https://bugs.webkit.org/show_bug.cgi?id=135393
2663
2664         Reviewed by Bem Jones-Bey.
2665
2666         The most recent version of the specification has renamed
2667         document.fontloader to document.fonts. This change updates the
2668         names in WebCore and LayoutTests.
2669
2670         Fixed up existing tests under LayoutTests/fast/css/fontloader-*
2671         and LayoutTests/http/webfont/fontloader-*
2672
2673         * css/CSSFontFace.cpp:
2674         (WebCore::CSSFontFace::notifyFontLoader):
2675         (WebCore::CSSFontFace::notifyLoadingDone):
2676         * dom/Document.cpp:
2677         (WebCore::Document::fonts):
2678         (WebCore::Document::fontloader): Deleted.
2679         * dom/Document.h:
2680         * dom/Document.idl:
2681         * page/FrameView.cpp:
2682         (WebCore::FrameView::performPostLayoutTasks):
2683
2684 2014-07-31  Andrei Bucur  <abucur@adobe.com>
2685
2686         REGRESSION: Search highlight is broken in RTL multicolumn content
2687         https://bugs.webkit.org/show_bug.cgi?id=135452
2688
2689         Reviewed by Simon Fraser.
2690
2691         The offsets for elements inside RTL multi-column elements are incorrectly computed because
2692         the columns don't calculate their left position according to the writing direction.
2693
2694         The patch extracts the column position computation in two helper functions (for top and left)
2695         so they can be used when needed in different parts of the code. In our case, the |columnLogicalLeft|
2696         function should be used inside |columnTranslationForOffset|.
2697
2698         Test: fast/multicol/content-bounding-box-rtl.html
2699
2700         * rendering/RenderMultiColumnSet.cpp:
2701         (WebCore::RenderMultiColumnSet::columnLogicalLeft): Return the logical left of a column relative to the set.
2702         (WebCore::RenderMultiColumnSet::columnLogicalTop): Return the logical top of a column relative to the set.
2703         (WebCore::RenderMultiColumnSet::columnRectAt): Split the code between columnLogicalLeft and columnLogicalTop.
2704         (WebCore::RenderMultiColumnSet::collectLayerFragments): Make code clearer by adding a new line.
2705         (WebCore::RenderMultiColumnSet::columnTranslationForOffset): Use columnLogicalLeft instead of duplicating logic.
2706         * rendering/RenderMultiColumnSet.h:
2707
2708 2014-07-31  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>
2709
2710         Eliminate "FractionConversion" from CSSPrimitiveValue::convertToLength
2711         https://bugs.webkit.org/show_bug.cgi?id=135377
2712
2713         Reviewed by Darin Adler.
2714
2715         The FractionConversion argument in CSSPrimitiveValue::convertToLength
2716         doesn't seem to actually have a purpose. It is for converting numbers
2717         into Length(x * 100, Percent), but this case shouldn't be reachable.
2718         The original patch introducing it doesn't shed any light either:
2719         [https://bugs.webkit.org/show_bug.cgi?id=74913
2720
2721         This patch removes the now unused FractionConversion argument. Note
2722         that we can probably also merge the two Fixed conversions, as the
2723         two only differ in clamping large numbers (probably unintended).
2724
2725         Patch by Timothy Loh, backported from Blink: https://codereview.chromium.org/71253002
2726
2727         No new tests.
2728
2729         * css/CSSCalculationValue.cpp:
2730         (WebCore::determineCategory):
2731         * css/CSSParser.cpp:
2732         (WebCore::parseTransformTranslateArguments):
2733         (WebCore::parseTranslateTransformValue):
2734         (WebCore::parseTransformArguments): Deleted.
2735         * css/CSSPrimitiveValueMappings.h:
2736         (WebCore::CSSPrimitiveValue::convertToLength):
2737         * css/DeprecatedStyleBuilder.cpp:
2738         (WebCore::ApplyPropertyClip::convertToLength):
2739         * css/StyleResolver.cpp:
2740         (WebCore::StyleResolver::convertToIntLength):
2741         (WebCore::StyleResolver::convertToFloatLength):
2742         * css/TransformFunctions.cpp:
2743         (WebCore::convertToFloatLength):
2744
2745 2014-07-31  Joseph Pecoraro  <pecoraro@apple.com>
2746
2747         Web Inspector: console.profile missing profile information
2748         https://bugs.webkit.org/show_bug.cgi?id=135432
2749
2750         Reviewed by Timothy Hatcher.
2751
2752         By switching console.profile to start/stop the timeline we would
2753         not have a chance to recompile JS functions with profiling information.
2754         This used to work because whenever the inspector was open we would
2755         have profiling information enabled. Go back to that behavior.
2756
2757         * inspector/InspectorController.cpp:
2758         (WebCore::InspectorController::profilerEnabled):
2759         Instead of checking if the timeline agent has started, check if the
2760         timeline agent has been created. Going back to the normal behavior
2761         of always having profiling information when the inspector is open.
2762
2763         * inspector/InspectorTimelineAgent.h:
2764         * inspector/InspectorTimelineAgent.cpp:
2765         (WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
2766         Recompile initializing the timeline agent to include profiling information.
2767
2768         (WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
2769         Recompile destrying the timeline agent, only if needed.
2770
2771         (WebCore::InspectorTimelineAgent::willCallFunction):
2772         (WebCore::InspectorTimelineAgent::didCallFunction):
2773         (WebCore::InspectorTimelineAgent::willEvaluateScript):
2774         (WebCore::InspectorTimelineAgent::didEvaluateScript):
2775         Using a boolean to track nested calls would not give expected
2776         behavior when un-nesting. Switch to a counter to ensure that
2777         as we start profiling in the outermost level we then stop
2778         profiling at that same level and not inside an inner nesting.
2779
2780 2014-07-31  Wenson Hsieh  <wenson_hsieh@apple.com>
2781
2782         Refactor EventHandler to call ScrollAnimator::handleWheelEvent for overflow scrolling
2783         https://bugs.webkit.org/show_bug.cgi?id=135195
2784
2785         Reviewed by Beth Dakin.
2786
2787         ScrollableArea::handleWheelEvent is not currently being used to handle wheel events for overflow scrolling; it instead directly invokes ScrollableArea::scroll.
2788         In order to expose wheel phases on Mac, the PlatformWheelEvent itself should propagate down to ScrollableArea, not just the scroll granularity, direction and
2789         multiplier required by ScrollableArea::scroll. With this patch, PlatformWheelEvent will be "shipped" along with the WheelEvent.
2790
2791         No new tests, since behavior should not have changed.
2792
2793         * page/EventHandler.cpp:
2794         (WebCore::didScrollInScrollableAreaForSingleAxis): Calls ScrollableArea::scroll directly using WheelEvent's data. Used to handle programmatic WheelEvents, e.g. from JavaScript.
2795         (WebCore::handleWheelEventInAppropriateEnclosingBoxForSingleAxis): Finds the correct ScrollableArea and attempts to scroll it using the information contained in the WheelEvent via ScrollableArea::handleWheelEvent
2796         (WebCore::EventHandler::defaultWheelEventHandler): Updated to use handleWheelEventInAppropriateEnclosingBoxForSingleAxis instead of scrollNode.
2797         (WebCore::scrollNode): Deleted.
2798         * rendering/RenderListBox.h: Made RenderListBox::scroll public so it can be invoked from EventHandler::handleWheelEventInAppropriateEnclosingBoxForSingleAxis.
2799         * rendering/RenderNamedFlowThread.cpp: Refactored to let EventHandler update nextScrollBlock in the case of isRenderNamedFlowThread().
2800         (WebCore::RenderNamedFlowThread::fragmentFromRenderBoxAsRenderBlock): 
2801         * rendering/RenderNamedFlowThread.h:
2802
2803 2014-07-31  Dan Bernstein  <mitz@apple.com>
2804
2805         WebCore part of: Server trust authentication challenges aren’t sent to the navigation delegate
2806         https://bugs.webkit.org/show_bug.cgi?id=135327
2807
2808         Reviewed by Alexey Proskuryakov.
2809
2810         * platform/network/cf/ResourceHandleCFNet.cpp:
2811         (WebCore::ResourceHandle::receivedCredential): Don’t try to change the persistence of
2812         credentials used for server trust, because the platform doesn’t support persistence values
2813         other than Session for server trust.
2814         * platform/network/mac/ResourceHandleMac.mm:
2815         (WebCore::ResourceHandle::receivedCredential): Ditto.
2816
2817 2014-07-31  Dan Bernstein  <mitz@apple.com>
2818
2819         Tried to fix building with the OS X 10.9 SDK while targeting OS X 10.8.
2820
2821         * platform/network/cocoa/CredentialCocoa.mm:
2822         (WebCore::toCredentialPersistence):
2823
2824 2014-07-31  Dan Bernstein  <mitz@apple.com>
2825
2826         Reverted r171854, because it broke building with the OS X 10.8 SDK.
2827
2828         * platform/network/cocoa/CredentialCocoa.mm:
2829         (WebCore::toCredentialPersistence):
2830
2831 2014-07-31  Dan Bernstein  <mitz@apple.com>
2832
2833         Tried to fix building with the OS X 10.9 SDK while targeting OS X 10.8.
2834
2835         * platform/network/cocoa/CredentialCocoa.mm:
2836         (WebCore::toCredentialPersistence):
2837
2838 2014-07-31  Jer Noble  <jer.noble@apple.com>
2839
2840         REGRESSION(??): [iOS] Disabling MediaPlaybackRequiresUserGesture does not remove user gesture requirement for entering full screen.
2841         https://bugs.webkit.org/show_bug.cgi?id=135443
2842
2843         Reviewed by Dean Jackson.
2844
2845         Allow full screen mode to be entered without a user gesture if the gesture requirement for media playback
2846         has been unset.
2847
2848         * html/HTMLMediaElement.cpp:
2849         (WebCore::HTMLMediaElement::HTMLMediaElement):
2850
2851 2014-07-31  Andrei Bucur  <abucur@adobe.com>
2852
2853         [CSS Multicolumn] Clear the lines when switching to multi-column layout
2854         https://bugs.webkit.org/show_bug.cgi?id=135127
2855
2856         Reviewed by Alexandru Chiculita.
2857
2858         When switching an element to multi-column layout it becomes a container of block
2859         children. When this happens the existing line boxes must be deleted in addition
2860         to clearing the hasInlineChildren flag.
2861
2862         Tests: fast/multicol/inline-container-to-multicol.html
2863                fast/multicol/inline-container-to-multicol-float.html
2864                fast/multicol/inline-container-to-multicol-positioned.html
2865
2866         * rendering/RenderBlockFlow.cpp:
2867         (WebCore::RenderBlockFlow::createMultiColumnFlowThread):
2868
2869 2014-07-30  Andreas Kling  <akling@apple.com>
2870
2871         PropertyName's internal string is always atomic.
2872         <https://webkit.org/b/135451>
2873
2874         Use PropertyName::publicName() directly instead of taking the slow route
2875         through AtomicString::findStringWithHash().
2876
2877         These strings are always atomic, and findStringWithHash() would trudge
2878         through a full hash lookup just to discover that indeed, they are!
2879
2880         Reviewed by Benjamin Poulain.
2881
2882         * bindings/js/JSDOMBinding.cpp:
2883         (WebCore::findAtomicString): Deleted.
2884         * bindings/js/JSDOMBinding.h:
2885         * bindings/js/JSDOMWindowCustom.cpp:
2886         (WebCore::namedItemGetter):
2887         (WebCore::JSDOMWindow::getOwnPropertySlot):
2888         (WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
2889         * bindings/js/JSHTMLDocumentCustom.cpp:
2890         (WebCore::JSHTMLDocument::canGetItemsForName):
2891         (WebCore::JSHTMLDocument::nameGetter):
2892
2893 2014-07-30  Benjamin Poulain  <benjamin@webkit.org>
2894
2895         ElementRuleCollector: group the shadow tree code
2896         https://bugs.webkit.org/show_bug.cgi?id=135410
2897
2898         Reviewed by Andreas Kling.
2899
2900         * css/ElementRuleCollector.cpp:
2901         (WebCore::ElementRuleCollector::collectMatchingRules):
2902         Little cleanup: group the shadow tree rule collection in the same block.
2903
2904 2014-07-30  Benjamin Poulain  <benjamin@webkit.org>
2905
2906         Cleanup DetailsMarkerControl
2907         https://bugs.webkit.org/show_bug.cgi?id=135429
2908
2909         Reviewed by Andreas Kling.
2910
2911         Remove the override of shadowPseudoId(). This is a simple type of shadowId,
2912         it should use the generic pseudo() path.
2913
2914         Move DetailsMarkerControl::create() out-of-line. One could justify inlining the constructor,
2915         inlining the ::create() function has little value.
2916
2917         * html/shadow/DetailsMarkerControl.cpp:
2918         (WebCore::DetailsMarkerControl::create):
2919         (WebCore::DetailsMarkerControl::DetailsMarkerControl):
2920         (WebCore::DetailsMarkerControl::rendererIsNeeded):
2921         (WebCore::DetailsMarkerControl::shadowPseudoId): Deleted.
2922         (WebCore::DetailsMarkerControl::summaryElement): Deleted.
2923         * html/shadow/DetailsMarkerControl.h:
2924         (WebCore::DetailsMarkerControl::create): Deleted.
2925
2926 2014-07-30  Benjamin Poulain  <bpoulain@apple.com>
2927
2928         Remove UploadButtonElement::shadowPseudoId()
2929         https://bugs.webkit.org/show_bug.cgi?id=135435
2930
2931         Reviewed by Andreas Kling.
2932
2933         Use the generic pseudo() path instead of a custom shadowPseudoId().
2934
2935         * html/FileInputType.cpp:
2936         (WebCore::UploadButtonElement::create):
2937         (WebCore::UploadButtonElement::createForMultiple):
2938         (WebCore::UploadButtonElement::UploadButtonElement):
2939         Set the type in the common constructor instead of the call sites.
2940         (WebCore::UploadButtonElement::shadowPseudoId): Deleted.
2941         * html/FileInputType.h:
2942
2943 2014-07-30  Benjamin Poulain  <bpoulain@apple.com>
2944
2945         Remove SpinButtonElement::shadowPseudoId
2946         https://bugs.webkit.org/show_bug.cgi?id=135436
2947
2948         Reviewed by Andreas Kling.
2949
2950         Use the generic pseudo.
2951
2952         * html/shadow/SpinButtonElement.cpp:
2953         (WebCore::SpinButtonElement::SpinButtonElement):
2954         (WebCore::SpinButtonElement::shadowPseudoId): Deleted.
2955         * html/shadow/SpinButtonElement.h:
2956
2957 2014-07-30  Benjamin Poulain  <bpoulain@apple.com>
2958
2959         Clean up YouTubeEmbedShadowElement
2960         https://bugs.webkit.org/show_bug.cgi?id=135437
2961
2962         Reviewed by Andreas Kling.
2963
2964         * html/shadow/YouTubeEmbedShadowElement.cpp:
2965         (WebCore::YouTubeEmbedShadowElement::YouTubeEmbedShadowElement):
2966         (WebCore::YouTubeEmbedShadowElement::pluginElement): Deleted.
2967         This is unused in WebCore.
2968
2969         (WebCore::YouTubeEmbedShadowElement::shadowPseudoId): Deleted.
2970         Use the generic pseudo path instead of a custom shadowPseudoId.
2971         * html/shadow/YouTubeEmbedShadowElement.h:
2972
2973 2014-07-30  Benjamin Poulain  <bpoulain@apple.com>
2974
2975         Remove shadowPseudoId() from InputFieldSpeechButtonElement and SearchFieldCancelButtonElement
2976         https://bugs.webkit.org/show_bug.cgi?id=135438
2977
2978         Reviewed by Andreas Kling.
2979
2980         Use the generic path.
2981
2982         * html/shadow/TextControlInnerElements.cpp:
2983         (WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):
2984         (WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement):
2985         (WebCore::SearchFieldCancelButtonElement::shadowPseudoId): Deleted.
2986         (WebCore::InputFieldSpeechButtonElement::shadowPseudoId): Deleted.
2987         * html/shadow/TextControlInnerElements.h:
2988
2989 2014-07-30  Andy Estes  <aestes@apple.com>
2990
2991         USE(CONTENT_FILTERING) should be ENABLE(CONTENT_FILTERING)
2992         https://bugs.webkit.org/show_bug.cgi?id=135439
2993
2994         Reviewed by Tim Horton.
2995
2996         We now support two different platform content filters, and will soon support a mock content filter (as part of
2997         webkit.org/b/128858). This makes content filtering a feature of WebKit, not just an adoption of a third-party
2998         library. ENABLE() is the correct macro to use for such a feature.
2999
3000         * Configurations/FeatureDefines.xcconfig:
3001         * WebCore.exp.in:
3002         * loader/DocumentLoader.cpp:
3003         (WebCore::DocumentLoader::finishedLoading):
3004         (WebCore::DocumentLoader::responseReceived):
3005         (WebCore::DocumentLoader::commitData):
3006         (WebCore::DocumentLoader::dataReceived):
3007         * loader/DocumentLoader.h:
3008         * loader/FrameLoaderClient.h:
3009         * platform/ContentFilter.h:
3010         * platform/ios/ContentFilterIOS.mm:
3011         * platform/mac/ContentFilterMac.mm:
3012
3013 2014-07-30  Andreas Kling  <akling@apple.com>
3014
3015         Static hash tables no longer need to be coupled with a VM.
3016         <https://webkit.org/b/135421>
3017
3018         Update for JSC::ClassInfo changes.
3019         
3020         Remove the JSNoStaticTables mode for IDL code generation, which was used to
3021         ensure that each VM had its own unique copy of certain static tables.
3022         This was used for interfaces that could be used in workers, and now there's
3023         no need to manually annotate these things anymore.
3024
3025         Also remove the DOMObjectHashTableMap class that was only used for this.
3026
3027         Reviewed by Geoffrey Garen.
3028
3029         * Modules/indexeddb/IDBAny.idl:
3030         * Modules/indexeddb/IDBCursor.idl:
3031         * Modules/indexeddb/IDBCursorWithValue.idl:
3032         * Modules/indexeddb/IDBDatabase.idl:
3033         * Modules/indexeddb/IDBFactory.idl:
3034         * Modules/indexeddb/IDBIndex.idl:
3035         * Modules/indexeddb/IDBKeyRange.idl:
3036         * Modules/indexeddb/IDBObjectStore.idl:
3037         * Modules/indexeddb/IDBOpenDBRequest.idl:
3038         * Modules/indexeddb/IDBRequest.idl:
3039         * Modules/indexeddb/IDBTransaction.idl:
3040         * Modules/indexeddb/IDBVersionChangeEvent.idl:
3041         * Modules/webdatabase/Database.idl:
3042         * Modules/webdatabase/DatabaseSync.idl:
3043         * Modules/webdatabase/SQLError.idl:
3044         * Modules/webdatabase/SQLException.idl:
3045         * Modules/webdatabase/SQLResultSet.idl:
3046         * Modules/webdatabase/SQLResultSetRowList.idl:
3047         * Modules/webdatabase/SQLTransaction.idl:
3048         * Modules/webdatabase/SQLTransactionSync.idl:
3049         * Modules/websockets/CloseEvent.idl:
3050         * Modules/websockets/WebSocket.idl:
3051         * WebCore.xcodeproj/project.pbxproj:
3052         * bindings/js/DOMObjectHashTableMap.cpp: Removed.
3053         * bindings/js/DOMObjectHashTableMap.h: Removed.
3054         * bindings/js/JSDOMBinding.cpp:
3055         (WebCore::getHashTableForGlobalData): Deleted.
3056         * bindings/js/JSDOMBinding.h:
3057         (WebCore::getStaticValueSlotEntryWithoutCaching):
3058         * bindings/js/JSDOMGlobalObject.cpp:
3059         * bindings/js/JSDOMWindowBase.cpp:
3060         * bindings/js/JSDOMWindowCustom.cpp:
3061         (WebCore::JSDOMWindow::getOwnPropertySlot):
3062         (WebCore::JSDOMWindow::put):
3063         * bindings/js/JSDOMWindowShell.cpp:
3064         * bindings/js/JSImageConstructor.cpp:
3065         * bindings/js/JSLocationCustom.cpp:
3066         (WebCore::JSLocation::putDelegate):
3067         * bindings/js/JSStorageCustom.cpp:
3068         (WebCore::JSStorage::deleteProperty):
3069         (WebCore::JSStorage::putDelegate):
3070         * bindings/js/JSWorkerGlobalScopeBase.cpp:
3071         * bindings/js/WebCoreJSClientData.h:
3072         * bindings/scripts/CodeGeneratorJS.pm:
3073         (GenerateGetOwnPropertySlotBody):
3074         (GenerateImplementation):
3075         (GenerateConstructorHelperMethods):
3076         (hashTableAccessor): Deleted.
3077         (prototypeHashTableAccessor): Deleted.
3078         (constructorHashTableAccessor): Deleted.
3079         * bindings/scripts/IDLAttributes.txt:
3080         * bridge/c/CRuntimeObject.cpp:
3081         * bridge/c/c_instance.cpp:
3082         * bridge/objc/ObjCRuntimeObject.mm:
3083         * bridge/objc/objc_instance.mm:
3084         * bridge/objc/objc_runtime.mm:
3085         * bridge/runtime_array.cpp:
3086         * bridge/runtime_method.cpp:
3087         * bridge/runtime_object.cpp:
3088         * crypto/CryptoKey.idl:
3089         * css/CSSFontFaceLoadEvent.idl:
3090         * dom/DOMCoreException.idl:
3091         * dom/DOMStringList.idl:
3092         * dom/ErrorEvent.idl:
3093         * dom/Event.idl:
3094         * dom/EventException.idl:
3095         * dom/EventListener.idl:
3096         * dom/MessageChannel.idl:
3097         * dom/MessageEvent.idl:
3098         * dom/MessagePort.idl:
3099         * dom/ProgressEvent.idl:
3100         * fileapi/Blob.idl:
3101         * fileapi/File.idl:
3102         * fileapi/FileError.idl:
3103         * fileapi/FileException.idl:
3104         * fileapi/FileList.idl:
3105         * fileapi/FileReader.idl:
3106         * fileapi/FileReaderSync.idl:
3107         * html/DOMURL.idl:
3108         * page/EventSource.idl:
3109         * page/WorkerNavigator.idl:
3110         * workers/DedicatedWorkerGlobalScope.idl:
3111         * workers/SharedWorkerGlobalScope.idl:
3112         * workers/WorkerGlobalScope.idl:
3113         * workers/WorkerLocation.idl:
3114         * xml/XMLHttpRequest.idl:
3115         * xml/XMLHttpRequestException.idl:
3116         * xml/XMLHttpRequestProgressEvent.idl:
3117         * xml/XMLHttpRequestUpload.idl:
3118
3119 2014-07-30  Dan Bernstein  <mitz@apple.com>
3120
3121         <rdar://problem/17199364> [Mac] Popup button arrows appear on the left, underlapping text, when the UI layout direction is right-to-left
3122         https://bugs.webkit.org/show_bug.cgi?id=135426
3123
3124         Reviewed by Dean Jackson.
3125
3126         No test, because the UI layout direction in the test harness is always left-to-right.
3127
3128         * rendering/RenderThemeMac.mm:
3129         (WebCore::RenderThemeMac::popupButton): Forced the user interface layout direction of the
3130         NSPopUpButtonCell to left-to-right. Added a FIXME about how we could make this vary based on
3131         the direction of the <select>, though that would require additional changes elsewhere.
3132
3133 2014-07-30  Dan Bernstein  <mitz@apple.com>
3134
3135         Made Credential hold onto an NSURLCredential when needed.
3136         Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327
3137
3138         Reviewed by Alexey Proskuryakov.
3139
3140         No change in functionality.
3141
3142         * WebCore.exp.in: Updated.
3143
3144         * platform/network/Credential.h: Removed definition of CERTIFICATE_CREDENTIALS_SUPPORTED,
3145         which is not used anymore.
3146
3147         * platform/network/CredentialBase.h:
3148         (WebCore::CredentialBase::encodingRequiresPlatformData): Added a base implementation that
3149         returns false.
3150
3151         * platform/network/cf/AuthenticationCF.cpp:
3152         Changed to use the Credential constructor that takes an CFURLCredential, and the new
3153         cfCredential member function. Made the createCF and core functions Windows-only and
3154         therefore removed the CERTIFICATE_CREDENTIALS_SUPPORTED code from them.
3155         * platform/network/cf/AuthenticationCF.h:
3156
3157         * platform/network/cf/CredentialStorageCFNet.cpp:
3158         (WebCore::CredentialStorage::getFromPersistentStorage): Changed to construct a Credential
3159         from a CFURLCredential.
3160         (WebCore::CredentialStorage::saveToPersistentStorage): Changed to use the new cfCredential
3161         member function.
3162
3163         * platform/network/cf/ResourceHandleCFNet.cpp:
3164         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto to both.
3165         (WebCore::ResourceHandle::receivedCredential): Ditto.
3166
3167         * platform/network/cocoa/CredentialCocoa.h:
3168         Replaced the m_identity, m_certificates and m_type member variables with an m_nsCredential
3169         one holding onto an NSURLCredential. Declared constructors from and getters for
3170         NSURLCredential and CFURLCredentialRef.
3171         (WebCore::Credential::encodingRequiresPlatformData): Override that checks the
3172         NSURLCredential if necessary.
3173
3174         * platform/network/cocoa/CredentialCocoa.mm:
3175         (WebCore::toNSURLCredentialPersistence): New helper function.
3176         (WebCore::toCredentialPersistence): Ditto.
3177         (WebCore::Credential::Credential): Defined constructors to create or take an
3178         NSURLCredential.
3179         (WebCore::Credential::cfCredential): Added.
3180         (WebCore::Credential::nsCredential): Added. Returns nil for the empty credential.
3181         (WebCore::Credential::isEmpty): Changed to check m_nsCredential.
3182         (WebCore::Credential::platformCompare): Changed to compare m_nsCredential if needed.
3183         (WebCore::Credential::encodingRequiresPlatformData): Returns true if the credential is not
3184         a user and a password.
3185
3186         * platform/network/mac/AuthenticationMac.h: Removed mac and core functions for Credential.
3187         * platform/network/mac/AuthenticationMac.mm:
3188         (-[WebCoreAuthenticationClientAsChallengeSender useCredential:forAuthenticationChallenge:]):
3189         Changed to use Credential constructor that takes an NSURLCredential.
3190         (WebCore::AuthenticationChallenge::AuthenticationChallenge): Ditto. Also use the
3191         nsCredential getter.
3192
3193         * platform/network/mac/CredentialStorageMac.mm:
3194         (WebCore::CredentialStorage::getFromPersistentStorage): Use new Credential constructor.
3195
3196         * platform/network/mac/ResourceHandleMac.mm:
3197         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto. Also use the
3198         nsCredential getter.
3199         (WebCore::ResourceHandle::receivedCredential): Ditto.
3200
3201 2014-07-30  Sergio Villar Senin  <svillar@igalia.com>
3202
3203         [GTK] Build depends on OpenGL ES
3204         https://bugs.webkit.org/show_bug.cgi?id=135289
3205
3206         Reviewed by Martin Robinson.
3207
3208         Guard the OpenGL ES code with USE(OPENGL_ES_2).
3209
3210         * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
3211         * platform/graphics/opengl/Extensions3DOpenGLES.h:
3212
3213 2014-07-30  Radu Stavila  <stavila@adobe.com>
3214
3215         Member name collision in RenderView and SelectionSubtreeRoot
3216         https://bugs.webkit.org/show_bug.cgi?id=135233
3217
3218         Reviewed by Mihnea Ovidenie.
3219
3220         The selectionStart/End members in RenderView have been renamed to fix confusion caused by the fact that
3221         RenderView inherits SelectionSubtreeRoot, which also has the same selectionStart/End members.
3222
3223         No new tests required, no new functionality.
3224
3225         * rendering/RenderBlock.cpp:
3226         (WebCore::RenderBlock::isSelectionRoot):
3227         * rendering/RenderView.cpp:
3228         (WebCore::RenderView::RenderView):
3229         (WebCore::RenderView::setSelection):
3230         (WebCore::RenderView::getSelection):
3231         * rendering/RenderView.h:
3232
3233 2014-07-30  Zan Dobersek  <zdobersek@igalia.com>
3234
3235         [TexMap] Move TextureMapperLayer::textureMapper() definition into the header
3236         https://bugs.webkit.org/show_bug.cgi?id=135384
3237
3238         Reviewed by Martin Robinson.
3239
3240         Move the definitions of TextureMapperLayer::textureMapper() and TextureMapperLayer::rootLayer()
3241         into the TextureMapperLayer header. This makes both functions inline-able, removing unnecessary
3242         calling overhead in GraphicsLayerTextureMapper::flushCompositingState() and
3243         GraphicsLayerTextureMapper::updateBackingStoreIfNeeded().
3244
3245         TextureMapperLayer::rootLayer() now also returns a reference.
3246
3247         * platform/graphics/texmap/TextureMapperLayer.cpp:
3248         (WebCore::TextureMapperLayer::~TextureMapperLayer):
3249         (WebCore::TextureMapperLayer::rootLayer): Deleted.
3250         (WebCore::TextureMapperLayer::textureMapper): Deleted.
3251         * platform/graphics/texmap/TextureMapperLayer.h:
3252         (WebCore::TextureMapperLayer::textureMapper):
3253         (WebCore::TextureMapperLayer::rootLayer):
3254
3255 2014-07-29  Andreas Kling  <akling@apple.com>
3256
3257         Crash when using 'em' units to specify font-size inside animation keyframe.
3258         <https://webkit.org/b/135395>
3259         <rdar://problem/17851910>
3260
3261         We'd forgotten to initialize the "parent style" when resolving keyframe
3262         styles, and this led to a crash in length conversion where the code
3263         assumes a parent style will be present.
3264
3265         To keep this fix minimal, simply make the "parent style" a clone of the
3266         base element style.
3267
3268         Reviewed by Simon Fraser.
3269
3270         Test: fast/animation/keyframe-with-font-size-in-em-units.html
3271
3272         * css/StyleResolver.cpp:
3273         (WebCore::StyleResolver::styleForKeyframe):
3274
3275 2014-07-29  Pratik Solanki  <psolanki@apple.com>
3276
3277         [iOS] REGRESSION(r171526): PDF documents fail to load in WebKit1 with disk image caching enabled
3278         https://bugs.webkit.org/show_bug.cgi?id=135359
3279         <rdar://problem/17824645>
3280
3281         Reviewed by Darin Adler.
3282
3283         r171526 broke the case where we have a memory mapped file from the DiskImageCache in the
3284         SharedBuffer. In such a case, m_buffer is empty and createCFData() returned an
3285         WebCoreSharedBufferData with an empty buffer.
3286
3287         Fix this by taking the easy route of bringing back the old code for the disk image cache
3288         file backed case. In the long run we probably want to remove the iOS specific disk image
3289         cache anyway.
3290
3291         Review also uncovered another bug in r171526 where we were balancing an Objective-C alloc
3292         with a CFRelease which is incorrect when running under GC. Fix that by using adoptNS along
3293         with adoptCF which is what the code did before.
3294
3295         No new tests because the bug only occurs on device and we can't run tests on device yet.
3296
3297         * platform/mac/SharedBufferMac.mm:
3298         (-[WebCoreSharedBufferData initWithDiskImageSharedBuffer:]):
3299         (-[WebCoreSharedBufferData length]):
3300         (-[WebCoreSharedBufferData bytes]):
3301         (WebCore::SharedBuffer::createCFData):
3302
3303 2014-07-29  Benjamin Poulain  <bpoulain@apple.com>
3304
3305         VisitedLinkState::determineLinkState should take a reference
3306         https://bugs.webkit.org/show_bug.cgi?id=135375
3307
3308         Reviewed by Sam Weinig.
3309
3310         * css/StyleResolver.cpp:
3311         (WebCore::StyleResolver::State::initElement):
3312         * dom/VisitedLinkState.h:
3313         (WebCore::VisitedLinkState::determineLinkState):
3314
3315 2014-07-29  Brady Eidson  <beidson@apple.com>
3316
3317         Make WKOriginDataManager actually operate on IndexedDatabases.
3318         https://bugs.webkit.org/show_bug.cgi?id=135346
3319
3320         Reviewed by Sam Weinig (and David Kilzer and Alex Christensen)
3321
3322         * WebCore.exp.in:
3323
3324 2014-07-29  Dan Bernstein  <mitz@apple.com>
3325
3326         Moved the Cocoa-specific parts of CredentialBase into a Cocoa-specific Credential class.
3327         Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327
3328
3329         Reviewed by Alexey Proskuryakov.
3330
3331         No change in functionality.
3332
3333         * WebCore.exp.in: Updated for functions moved in the class hierarchy.
3334
3335         * WebCore.xcodeproj/project.pbxproj: Added CredentialCocoa.{h,mm}.
3336
3337         * platform/network/Credential.h: For Cocoa, include CredentialCocoa.h instead of the generic
3338         class.
3339         (WebCore::Credential::Credential): Removed #if CERTIFICATE_CREDENTIALS_SUPPORTED code.
3340
3341         * platform/network/CredentialBase.cpp:
3342         (WebCore::CredentialBase::CredentialBase): Changed to use emptyString instead of "", removed
3343         #if CERTIFICATE_CREDENTIALS_SUPPORTED code.
3344         (WebCore::CredentialBase::isEmpty): Ditto.
3345         (WebCore::CredentialBase::compare): Renamed operator== to this, removed
3346         #if CERTIFICATE_CREDENTIALS_SUPPORTED code, but changed the end to call platformCompare.
3347         (WebCore::CredentialBase::identity): Deleted.
3348         (WebCore::CredentialBase::certificates): Deleted.
3349         (WebCore::CredentialBase::type): Deleted.
3350         * platform/network/CredentialBase.h: Removed #if CERTIFICATE_CREDENTIALS_SUPPORTED members.
3351         (WebCore::CredentialBase::platformCompare): Added a base implementation that returns true.
3352         (WebCore::operator==): Changed to use CredentialBase::compare.
3353
3354         * platform/network/cocoa/CredentialCocoa.h: Added.
3355         (WebCore::Credential::Credential):
3356         * platform/network/cocoa/CredentialCocoa.mm: Added.
3357         (WebCore::Credential::Credential): Moved the constructor that takes an identity and
3358         certificates here.
3359         (WebCore::Credential::isEmpty): Moved here.
3360         (WebCore::Credential::identity): Ditto.
3361         (WebCore::Credential::certificates): Ditto.
3362         (WebCore::Credential::type): Ditto.
3363         (WebCore::Credential::platformCompare): Moved the code that compares client-certificate
3364         credentials here.
3365
3366         * platform/network/mac/AuthenticationMac.mm:
3367         (WebCore::mac): Removed #if CERTIFICATE_CREDENTIALS_SUPPORTED guards in this Cocoa-only
3368         file.
3369         (WebCore::core): Ditto.
3370
3371 2014-07-29  Daniel Bates  <dabates@apple.com>
3372
3373         Use WTF::move() instead of std::move() to help ensure move semantics
3374         https://bugs.webkit.org/show_bug.cgi?id=135351
3375
3376         Reviewed by Alexey Proskuryakov.
3377
3378         * page/CaptionUserPreferences.cpp:
3379         (WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride):
3380
3381 2014-07-29  Mihnea Ovidenie  <mihnea@adobe.com>
3382
3383         [CSSRegions] Assertion failure hit testing a region-based multicolumn in a region
3384         https://bugs.webkit.org/show_bug.cgi?id=135385
3385
3386         Reviewed by Andrei Bucur.
3387
3388         When a region-based multicolumn element is displayed and hit tested in a region,
3389         we have to disable the named flow region information not only for painting,
3390         but also for hit-testing. This is a follow-up for https://bugs.webkit.org/show_bug.cgi?id=132121,
3391         which provided the fix for painting.
3392
3393         Test: fast/regions/assert-hit-test-multicol-in-region.html
3394
3395         * rendering/RenderLayer.cpp:
3396         (WebCore::RenderLayer::hitTestLayer):
3397
3398 2014-07-29  Zalan Bujtas  <zalan@apple.com>
3399
3400         Cleanup RenderSelectionInfoBase/RenderSelectionInfo/RenderBlockSelectionInfo.
3401         https://bugs.webkit.org/show_bug.cgi?id=135326
3402
3403         Reviewed by Darin Adler.
3404
3405         1. Move implementation to RenderSelectInfo.cpp
3406         2. RenderSelectionInfoBase/RenderSelectionInfo/RenderBlockSelectionInfo take Render* reference.
3407         3. Remove unused functions.
3408         4. Add RenderSelectionInfoBase::repaintRectangle()
3409
3410         No change in behavior.
3411
3412         * WebCore.xcodeproj/project.pbxproj:
3413         * rendering/RenderSelectionInfo.cpp: Added.
3414         (WebCore::RenderSelectionInfoBase::RenderSelectionInfoBase):
3415         (WebCore::RenderSelectionInfoBase::repaintRectangle):
3416         (WebCore::RenderSelectionInfo::RenderSelectionInfo):
3417         (WebCore::RenderSelectionInfo::repaint):
3418         (WebCore::RenderBlockSelectionInfo::RenderBlockSelectionInfo):
3419         (WebCore::RenderBlockSelectionInfo::repaint):