Fix a typo in 150469.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-05-22  Ryosuke Niwa  <rniwa@webkit.org>
2
3         Fix a typo in 150469.
4
5         * editing/Editor.cpp:
6         (WebCore::dispatchEditableContentChangedEvents):
7
8 2013-05-22  Ryosuke Niwa  <rniwa@webkit.org>
9
10         REGRESSION: ASSERTION FAILED: obj->isRenderInline() || obj == this, Bad cast in WebCore::RenderBlock::createLineBoxes
11         https://bugs.webkit.org/show_bug.cgi?id=110622
12
13         Reviewed by David Hyatt.
14
15         Merge https://chromium.googlesource.com/chromium/blink/+/998ad358eed702b873dd54697b3fa3f952e0feb7
16
17         Inserting an element before the fullscreened element could crash if it caused a containing inline to be split,
18         since the splitting logic doesn't expect the fullscreened element to be wrapped in a RenderFullScreen. This patch changes
19         inline splitting to be aware of RenderFullScreen.
20
21         Test: fullscreen/full-screen-inline-split-crash.html
22
23         * rendering/RenderInline.cpp:
24         (WebCore::RenderInline::splitInlines):
25
26 2013-05-22  Simon Fraser  <simon.fraser@apple.com>
27
28         Fix issues with focus rings on search fields
29         https://bugs.webkit.org/show_bug.cgi?id=116591
30
31         Reviewed by Darin Adler.
32         
33         On a future OS, the rect returned by _focusRingVisibleRect should
34         be in the coordinate system of the that NSView, not the base
35         coordinate system, so fix the code that sets and reads the global
36         focusRingClipRect variable accordingly.
37
38         * platform/graphics/mac/WebLayer.mm:
39         (drawLayerContents):
40         * platform/mac/ThemeMac.mm:
41         (-[WebCoreFlippedView _focusRingVisibleRect]):
42
43 2013-05-22  Simon Fraser  <simon.fraser@apple.com>
44
45         New Flickr doesn't get fast scrolling but should
46         https://bugs.webkit.org/show_bug.cgi?id=116514
47
48         Reviewed by Darin Adler.
49         
50         RenderObject increments and decrements a counter of slow repaint objects on
51         FrameView when it sees style changes related to background-attachment:fixed.
52         However, it omitted to decrement the count when a renderer with a fixed background
53         was destroyed.
54         
55         This caused Flickr to never fall into fast scrolling mode, since it toggled
56         display:none on an element with a fixed background during loading, then removed
57         the fixed background.
58         
59         Did some minor cleanup of #ENABLE(FAST_MOBILE_SCROLLING) crap.
60
61         Tests: platform/mac-wk2/tiled-drawing/slow-scrolling-background-toggle.html
62                platform/mac-wk2/tiled-drawing/slow-scrolling-hidden-background-toggle.html
63                platform/mac-wk2/tiled-drawing/slow-scrolling.html
64
65         * rendering/RenderObject.cpp:
66         (WebCore::shouldRepaintFixedBackgroundsOnScroll):
67         (WebCore::RenderObject::styleWillChange):
68         (WebCore::RenderObject::willBeRemovedFromTree):
69
70 2013-05-22  Robert Hogan  <robert@webkit.org>
71
72         Need to Remove Anonymous Wrappers When All Children Become Inline
73         https://bugs.webkit.org/show_bug.cgi?id=115687
74
75         Reviewed by David Hyatt.
76
77         Remove a simple subset of anonymous wrappers, i.e. anonymous blocks without continuations,
78         when a block becoming float or positioned removes the need for them.
79
80         Test: fast/block/remove-anonymous-wrappers-when-element-changes-to-float-or-positioned.html
81
82         * rendering/RenderBlock.h:
83         (RenderBlock):
84         * rendering/RenderObject.cpp:
85         (WebCore):
86         (WebCore::RenderObject::removeAnonymousWrappersFromLineIfNecessary):
87         (WebCore::RenderObject::styleWillChange):
88         (WebCore::RenderObject::styleDidChange):
89         * rendering/RenderObject.h:
90         (RenderObject):
91
92 2013-05-22  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
93
94         [css] Update ETextDecorations enum to TextDecorations
95         https://bugs.webkit.org/show_bug.cgi?id=116581
96
97         Reviewed by Andreas Kling.
98
99         Currently, ETextDecorations enum uses a C-like coding style for its
100         enumeration values, as well as a 'E' prefix that surely had some meaning
101         in the past, but not nowadays.
102
103         No behavior changes, covered by existing tests.
104
105         * accessibility/AccessibilityRenderObject.cpp:
106         (WebCore::AccessibilityRenderObject::hasPlainText):
107         (WebCore::AccessibilityRenderObject::hasUnderline):
108         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
109         (getAttributeSetForAccessibilityObject):
110         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
111         (AXAttributeStringSetStyle):
112         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
113         (AXAttributeStringSetStyle):
114         * css/CSSComputedStyleDeclaration.cpp:
115         (WebCore::renderTextDecorationFlagsToCSSValue):
116         * css/CSSPrimitiveValueMappings.h:
117         (WebCore::CSSPrimitiveValue::operator TextDecoration):
118         * css/DeprecatedStyleBuilder.cpp:
119         (WebCore::ApplyPropertyTextDecoration::applyValue):
120         (WebCore::ApplyPropertyTextDecoration::createHandler):
121         * editing/mac/EditorMac.mm:
122         (WebCore::Editor::fontAttributesForSelectionStart):
123         * platform/mac/HTMLConverter.mm:
124         (+[WebHTMLConverter editingAttributedStringFromRange:]):
125         * rendering/InlineTextBox.cpp:
126         (WebCore::InlineTextBox::paint):
127         (WebCore::InlineTextBox::paintDecoration):
128         * rendering/InlineTextBox.h:
129         * rendering/RenderObject.cpp:
130         (WebCore::RenderObject::getTextDecorationColors):
131         * rendering/style/RenderStyle.h:
132         * rendering/style/RenderStyleConstants.h:
133         (WebCore::operator|):
134         (WebCore::operator|=):
135         * rendering/style/StyleVisualData.h:
136         (StyleVisualData):
137         * rendering/svg/SVGInlineTextBox.cpp:
138         (WebCore::SVGInlineTextBox::paint):
139         (WebCore::positionOffsetForDecoration):
140         (WebCore::thicknessForDecoration):
141         (WebCore::findRenderObjectDefininingTextDecoration):
142         (WebCore::SVGInlineTextBox::paintDecoration):
143         (WebCore::SVGInlineTextBox::paintDecorationWithStyle):
144         * rendering/svg/SVGInlineTextBox.h:
145
146 2013-05-22  Lori Anderson  <lori@rkymtnhi.com>
147
148         [GStreamer] Allow multiple log levels in media player
149         https://bugs.webkit.org/show_bug.cgi?id=116618
150
151         Reviewed by Philippe Normand.
152
153         No new tests, just changing logging.
154
155         * platform/graphics/gstreamer/GStreamerUtilities.h:
156         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
157         (WebCore::MediaPlayerPrivateGStreamer::load):
158         (WebCore::MediaPlayerPrivateGStreamer::pause):
159         (WebCore::MediaPlayerPrivateGStreamer::seek):
160         (WebCore::MediaPlayerPrivateGStreamer::setRate):
161         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
162
163 2013-05-22  Beth Dakin  <bdakin@apple.com>
164
165         The LayoutMilestones didLayout callback sometimes fires with a milestone value of 0
166         https://bugs.webkit.org/show_bug.cgi?id=116623
167
168         Reviewed by Geoffrey Garen.
169
170         Make sure we have actually achieved some milestones before calling didLayout().
171         * page/FrameView.cpp:
172         (WebCore::FrameView::performPostLayoutTasks):
173
174 2013-05-22  Mario Sanchez Prada  <mario.prada@samsung.com>
175
176         [GTK] Reimplement atk_text_get_text_*_offset for CHAR boundary
177         https://bugs.webkit.org/show_bug.cgi?id=114870
178
179         Reviewed by Martin Robinson.
180
181         Re-implement this functions without using GailTextUtil nor Pango.
182
183         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
184         (webkitAccessibleTextGetChar): New function.
185         (webkitAccessibleTextGetTextForOffset): Call the new function for CHAR.
186
187 2013-05-22  Antoine Quint  <graouts@apple.com>
188
189         [Mac] Captions menu isn't internationalized, doesn't use rtl layout for rtl languages
190         https://bugs.webkit.org/show_bug.cgi?id=116605
191
192         Reviewed by Eric Carlson.
193
194         Ensure that rtl languages are properly recognized by the captions menu such that text
195         layout and alignment is natural.
196
197         * css/mediaControls.css:
198         (::-webkit-media-controls):
199         Remove the forced "direction: ltr" property which was forcing all layout to be
200         left-to-right.
201
202         * css/mediaControlsQuickTime.css:
203         (video::-webkit-media-controls-closed-captions-track-list):
204         Remove the forced "text-align: left" property which was forcing all caption
205         titles to be left-aligned.
206
207         (video::-webkit-media-controls-closed-captions-track-list h3):
208         Use "-webkit-margin-start" instead of "padding-left" to position the heading
209         such that it adds the margin on the left for ltr languages and on the right
210         for rtl languages.
211
212         (video::-webkit-media-controls-closed-captions-track-list li):
213         Set "position: relative" such that the ::before pseudo-class can use "position: absolute"
214         to position itself relative to the caption title rather than the list element.
215
216         (video::-webkit-media-controls-closed-captions-track-list li.selected::before):
217         (video::-webkit-media-controls-closed-captions-track-list li.selected:hover::before):
218         Make the checkmarks a ::before pseudo-class rather than a background-image such that
219         we may control its positioning using the internationlization-friendly "-webkit-margin-start"
220         property.
221
222         * html/shadow/MediaControlElements.cpp:
223         (WebCore::MediaControlClosedCaptionsContainerElement::create):
224         Set the "dir" attribute to "auto" such that rtl languages are correctly handled. This
225         means that the first string displayed within the captions container, currently the
226         "Subtitles" <h3> element, defines the direction for the whole container. It is therefore
227         crucial that this string is properly localized in rtl languages as falling back to
228         english would mean the entire caption container is using ltr.
229
230 2013-05-22  Hugo Parente Lima  <hugo.lima@openbossa.org>
231
232         WebCore fails to compile with -Werror=maybe-uninitialized on GCC 4.8.0
233         https://bugs.webkit.org/show_bug.cgi?id=116340
234
235         Reviewed by Christophe Dumez.
236
237         No new tests, just a simple build fix.
238
239         * inspector/InspectorDOMStorageAgent.cpp:
240         (WebCore::InspectorDOMStorageAgent::setDOMStorageItem): Init frame variable.
241         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem): Init frame variable.
242
243 2013-05-22  Christophe Dumez  <ch.dumez@sisa.samsung.com>
244
245         Have IDL interface names match their global constructor
246         https://bugs.webkit.org/show_bug.cgi?id=116520
247
248         Reviewed by Kentaro Hara.
249
250         Have IDL interface names match their global constructor name on DOMWindow.idl
251         using [InterfaceName] extended attribute. This affects in particular webkit
252         prefixed constructors. This is mandated by Web IDL specification:
253         http://dev.w3.org/2006/webapi/WebIDL/#es-interfaces
254
255         As a consequence, we can now get rid of [NoInterfaceObject] extended attribute
256         for those interfaces and have their global constructors automatically generated
257         by the bindings generator.
258
259         No new tests, no behavior change for layout tests.
260
261         * Modules/mediasource/MediaSource.idl:
262         * Modules/mediasource/SourceBuffer.idl:
263         * Modules/mediasource/SourceBufferList.idl:
264         * Modules/mediastream/MediaStream.idl:
265         * Modules/mediastream/RTCPeerConnection.idl:
266         * Modules/speech/SpeechGrammar.idl:
267         * Modules/speech/SpeechGrammarList.idl:
268         * Modules/speech/SpeechRecognition.idl:
269         * Modules/speech/SpeechRecognitionError.idl:
270         * Modules/speech/SpeechRecognitionEvent.idl:
271         * Modules/webaudio/OfflineAudioContext.idl:
272         * Modules/webaudio/PannerNode.idl:
273         * dom/ShadowRoot.idl:
274         * page/DOMWindow.idl:
275
276 2013-05-21  Mihai Tica  <mitica@adobe.com>
277         
278         Update the background blending implementation to match the changes done
279         in the spec. This implies that background color blending is removed and
280         the background layers won't blend with the content behind the element
281         any more.
282         https://bugs.webkit.org/show_bug.cgi?id=116212
283
284         Reviewed by Dean Jackson.
285
286         * rendering/RenderBox.cpp:
287         (WebCore::RenderBox::paintFillLayers):
288         * rendering/RenderBoxModelObject.cpp:
289         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
290
291 2013-05-21  Ryosuke Niwa  <rniwa@webkit.org>
292
293         Use-after-free in DOMSelection::containsNode
294         https://bugs.webkit.org/show_bug.cgi?id=116468
295
296         Reviewed by Andreas Kling.
297
298         Retain the node pointer. Also bail out early if the node was not in the document
299         since Range::compareBoundaryPoints sets ec to WRONG_DOCUMENT_ERR otherwise.
300
301         Test: editing/selection/contains-node-crash.html
302
303         * page/DOMSelection.cpp:
304         (WebCore::DOMSelection::containsNode):
305         * page/DOMSelection.h:
306         (DOMSelection):
307
308 2013-05-21  Joseph Pecoraro  <pecoraro@apple.com>
309
310         Web Inspector: InspectorFrontendHost::loadResourceSynchronously() builds ASCII-only results
311         https://bugs.webkit.org/show_bug.cgi?id=116569
312
313         Merge: https://chromium.googlesource.com/chromium/blink/+/7f1cfecfe34f4dbc6ce1ef0250b13f2058128eeb
314
315         Reviewed by Timothy Hatcher.
316
317         Test: inspector/load-resource-synchronously-utf8.html
318
319         * inspector/InspectorFrontendHost.cpp:
320         (WebCore::InspectorFrontendHost::loadResourceSynchronously):
321
322 2013-05-21  Andy Estes  <aestes@apple.com>
323
324         Allow session storage for third-party origins even if third-party data access is blocked.
325         https://bugs.webkit.org/show_bug.cgi?id=116532
326
327         Reviewed by Anders Carlsson.
328
329         In http://trac.webkit.org/changeset/149326 we relaxed our policy for
330         localStorage when third-party data blocking is enabled to create a
331         transient, session-scoped storage area for the third-party origin
332         instead of throwing an exception. Since this gives essentially the same
333         behavior as sessionStorage, we might as well also allow sessionStorage
334         for third-party origins.
335
336         Test: http/tests/security/cross-origin-session-storage-third-party-blocked.html
337
338         * WebCore.exp.in: Updated the symbol for
339         SecurityOrigin::canAccessStorage.
340         * page/DOMWindow.cpp:
341         (WebCore::DOMWindow::sessionStorage): Called canAccessSessionStorage()
342         rather than canAccessLocalStorage().
343         * page/SecurityOrigin.cpp:
344         (WebCore::SecurityOrigin::canAccessStorage): Passed in an enum
345         indicating if access should be allowed from third-party origins.
346         * page/SecurityOrigin.h:
347         (WebCore::SecurityOrigin::canAccessSessionStorage): Called
348         canAccessStorage() with AlwaysAllowFromThirdParty.
349         (SecurityOrigin):
350
351 2013-05-21  Hugo Parente Lima  <hugo.lima@openbossa.org>
352
353         [EFL] Add missing #if guards on drag support methods
354         https://bugs.webkit.org/show_bug.cgi?id=116574
355
356         Reviewed by Christophe Dumez.
357
358         * platform/efl/PasteboardEfl.cpp:
359         (WebCore):
360
361 2013-05-21  Antti Koivisto  <antti@apple.com>
362
363         Remove stub HTMLContentElement
364         https://bugs.webkit.org/show_bug.cgi?id=116580
365
366         Reviewed by Andreas Kling.
367
368         Inherit DetailsContentElement and DetailsSummaryElement directly from InsertionPoint instead.
369
370         * html/HTMLDetailsElement.cpp:
371         (WebCore::DetailsContentElement::DetailsContentElement):
372         (WebCore::DetailsSummaryElement::DetailsSummaryElement):
373         * html/HTMLSummaryElement.cpp:
374         (WebCore::SummaryContentElement::SummaryContentElement):
375         * html/shadow/HTMLContentElement.cpp:
376         (WebCore::HTMLContentElement::contentTagName):
377         * html/shadow/HTMLContentElement.h:
378         (WebCore::isHTMLContentElement):
379         * html/shadow/InsertionPoint.cpp:
380         (WebCore::InsertionPoint::setResetStyleInheritance):
381         * html/shadow/InsertionPoint.h:
382         
383             Also remove some leftover selector code.
384
385         (WebCore::InsertionPoint::insertionPointType):
386
387 2013-05-21  Andreas Kling  <akling@apple.com>
388
389         Robustify repaint of previous caret node when moving FrameSelection.
390         <http://webkit.org/b/116558>
391
392         Reviewed by Ryosuke Niwa.
393
394         As a follow-up to r150396, also repaint the caret rects if the previous node is contenteditable.
395
396         * editing/FrameSelection.cpp:
397         (WebCore::FrameSelection::recomputeCaretRect):
398
399 2013-05-21  Ryosuke Niwa  <rniwa@webkit.org>
400
401         Unreviewed build fix after r150469. We need to bail out here when DOM is mutated by an event listener such that
402         the split text nodes no longer exist right next to each other.
403
404         * editing/InsertParagraphSeparatorCommand.cpp:
405         (WebCore::InsertParagraphSeparatorCommand::doApply):
406
407 2013-05-21  Antti Koivisto  <antti@apple.com>
408
409         Remove ScopeContentDistribution
410         https://bugs.webkit.org/show_bug.cgi?id=116576
411
412         Reviewed by Andreas Kling.
413
414         With maximum one ShadowRoot per Element this can be smashed into ContentDistributor.
415
416         * dom/ShadowRoot.cpp:
417         (WebCore):
418         * dom/ShadowRoot.h:
419         (WebCore):
420         * html/shadow/ContentDistributor.cpp:
421         (WebCore::ContentDistributor::ContentDistributor):
422         (WebCore):
423         (WebCore::ContentDistributor::~ContentDistributor):
424         (WebCore::ContentDistributor::invalidateInsertionPointList):
425         (WebCore::ContentDistributor::ensureInsertionPointList):
426         (WebCore::ContentDistributor::distribute):
427         (WebCore::ContentDistributor::invalidate):
428         * html/shadow/ContentDistributor.h:
429         (WebCore):
430         (ContentDistributor):
431         * html/shadow/InsertionPoint.cpp:
432         (WebCore::InsertionPoint::InsertionPoint):
433         (WebCore::InsertionPoint::insertedInto):
434         (WebCore::InsertionPoint::removedFrom):
435         
436             Simplify insertion point list invalidation.
437
438         * html/shadow/InsertionPoint.h:
439
440 2013-05-21  Zoltan Horvath  <zoltan@webkit.org>
441
442         [CSS Regions][CSS Exclusions] Multiple regions with shape-insides should respect positioned shapes and overflow
443         https://bugs.webkit.org/show_bug.cgi?id=115001
444
445         Reviewed by David Hyatt.
446
447         In r150375 I implemented the new overflow behavior for shape-inside on regions, but it covered only the simple cases
448         when you had only one region. This patch adds support for the new overflow behavior for multiple regions with multiple
449         positioned shape-insides and overflow.
450
451         Tests: fast/regions/shape-inside/shape-inside-on-regions-block-content-overflow-multiple-shapes.html
452                fast/regions/shape-inside/shape-inside-on-regions-inline-content-overflow-multiple-shapes.html
453
454         * rendering/RenderBlockLineLayout.cpp:
455         (WebCore::RenderBlock::updateLineBoundariesForExclusions): Cover cases when content flows into the next region, update the
456         line segments for the overflow.
457         (WebCore::RenderBlock::adjustLogicalLineTopAndLogicalHeightIfNeeded): In flow thread case we don't want to adjust the height
458         in two places.
459
460 2013-05-21  Commit Queue  <commit-queue@webkit.org>
461
462         Unreviewed, rolling out r150425.
463         http://trac.webkit.org/changeset/150425
464         https://bugs.webkit.org/show_bug.cgi?id=116573
465
466         Not the right fix for WebKit2 (Requested by rniwa on #webkit).
467
468         * testing/Internals.cpp:
469         (WebCore::Internals::resetToConsistentState):
470
471 2013-05-20  Ryosuke Niwa  <rniwa@webkit.org>
472
473         dispatchEvent call can execute javascript and blow away endRoot from underneath
474         https://bugs.webkit.org/show_bug.cgi?id=116483
475
476         Reviewed by Andreas Kling.
477         
478         Merge https://chromium.googlesource.com/chromium/blink/+/798cba0af9b2aff21e475e2e08ea3ca5e97dfc2c.
479
480         Test: editing/undo/undo-after-event-edited.html
481
482         * editing/Editor.cpp:
483         (WebCore::dispatchEditableContentChangedEvents):
484
485 2013-05-21  Antti Koivisto  <antti@apple.com>
486
487         Remove ContentDistribution
488         https://bugs.webkit.org/show_bug.cgi?id=116527
489
490         Reviewed by Andreas Kling.
491
492         Resolving distribution on traversal is simpler.
493
494         * WebCore.exp.in:
495         * dom/ComposedShadowTreeWalker.cpp:
496         (WebCore::ComposedShadowTreeWalker::traverseNode):
497         (WebCore::ComposedShadowTreeWalker::traverseDistributedNodes):
498         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
499         * html/HTMLDetailsElement.cpp:
500         * html/shadow/ContentDistributor.cpp:
501         (WebCore::ContentDistributor::distributeSelectionsTo):
502         * html/shadow/ContentDistributor.h:
503         * html/shadow/HTMLContentElement.idl:
504         
505             Remove getDistributedNodes().
506
507         * html/shadow/InsertionPoint.cpp:
508         (WebCore::InsertionPoint::InsertionPoint):
509         (WebCore::InsertionPoint::attach):
510         (WebCore::InsertionPoint::detach):
511         (WebCore):
512         (WebCore::InsertionPoint::firstDistributed):
513         (WebCore::InsertionPoint::lastDistributed):
514         (WebCore::InsertionPoint::nextDistributedTo):
515         (WebCore::InsertionPoint::previousDistributedTo):
516         
517             Rename for clarity.
518
519         * html/shadow/InsertionPoint.h:
520         (WebCore::InsertionPoint::hasDistribution):
521         (WebCore::InsertionPoint::setHasDistribution):
522         (WebCore::InsertionPoint::clearDistribution):
523         (WebCore::InsertionPoint::matchTypeFor):
524         (InsertionPoint):
525
526 2013-05-21  Martin Robinson  <mrobinson@igalia.com>
527
528         [GTK] [CMake] Add support for building WebKit2
529         https://bugs.webkit.org/show_bug.cgi?id=116372
530
531         Reviewed by Gustavo Noronha Silva.
532
533         * PlatformGTK.cmake: Add missing source files, include directories, and WebP properties.
534
535 2013-05-21  Jer Noble  <jer.noble@apple.com>
536
537         REGRESSION(r101810): Media controls status text missing for live-stream videos.
538         https://bugs.webkit.org/show_bug.cgi?id=116547
539
540         Reviewed by Eric Carlson.
541
542         Un-reverse the logic in loadedMetadata() so that the status text isn't
543         hidden (when it should be shown) for live-stream videos.
544
545         * html/shadow/MediaControlsApple.cpp:
546         (WebCore::MediaControlsApple::loadedMetadata):
547
548 2013-05-21  Jer Noble  <jer.noble@apple.com>
549
550         Implement overlap-avoidance for in-band text track cues.
551         https://bugs.webkit.org/show_bug.cgi?id=116540
552
553         Reviewed by Eric Carlson.
554
555         In-band (or Generic) cues need special casing for certain features
556         present in in-band tracks, like paint-on and roll-up modes. To avoid
557         the problem of overlap avoidance forcing a caption meant to appear
558         below a cue to appear above it when a larger font size is selected,
559         impose an additional sort ordering for "generic cues". Instead of
560         cues being ordered by the order they appear in the track, "generic
561         cues" further sorted by their position within the video area, such
562         that cues at the bottom of the video area appear first, and later
563         cues are pushed up to avoid them, preserving the desired apparent
564         ordering.
565
566         * html/HTMLMediaElement.cpp:
567         (WebCore::compareCueInterval): Added; wrapper around
568             TextTrackCue::isOrderedBefore.
569         (WebCore::HTMLMediaElement::updateActiveTextTrackCues):
570             After creating the list of current cues, sort them.
571         * html/track/TextTrackCue.cpp:
572         (WebCore::TextTrackCue::isOrderedBefore): Added; implementation moved
573             from TextTrackCueList::add().
574         * html/track/TextTrackCue.h:
575         * html/track/TextTrackCueGeneric.cpp:
576         (WebCore::TextTrackCueGeneric::isOrderedBefore): Added override;
577             impose additional oredring on generic cues.
578         * html/track/TextTrackCueGeneric.h:
579         * html/track/TextTrackCueList.cpp:
580         (WebCore::TextTrackCueList::add): Moved ordering test into
581             isOrderedBefore().
582         * rendering/RenderTextTrackCue.cpp:
583         (WebCore::RenderTextTrackCue::repositionGenericCue):
584             Call repositionCueSnapToLinesNotSet() after positioning the cue.
585
586 2013-05-20  Jer Noble  <jer.noble@apple.com>
587
588         Implement overlap avoidance for cues with snap-to-lines flag not set
589         https://bugs.webkit.org/show_bug.cgi?id=84296
590
591         Reviewed by Eric Carlson.
592
593         Test: media/track/track-cue-overlap-snap-to-lines-not-set.html
594
595         Support overlap avoidance for the non-snap-to-lines part of the WebVTT spec.
596
597         * rendering/RenderTextTrackCue.cpp:
598         (WebCore::RenderTextTrackCue::isOutside): Split implementation into rectIsWithinContainer().
599         (WebCore::RenderTextTrackCue::rectIsWithinContainer): Ditto.
600         (WebCore::RenderTextTrackCue::isOverlapping): Split into overlappingObject() and overlappingObjectForRect().
601         (WebCore::RenderTextTrackCue::overlappingObject): Ditto.
602         (WebCore::RenderTextTrackCue::overlappingObjectForRect): Ditto.
603         (WebCore::RenderTextTrackCue::moveIfNecessaryToKeepWithinContainer): Added.
604         (WebCore::RenderTextTrackCue::findNonOverlappingPosition): When an overlapping object is found, move the
605             cue to just above or below that object and try again.
606         (WebCore::RenderTextTrackCue::repositionCueSnapToLinesSet): Move implementation into moveIfNecessaryToKeepWithinContainer().
607         (WebCore::RenderTextTrackCue::repositionCueSnapToLinesNotSet): Add implementanton based on above.
608         * rendering/RenderTextTrackCue.h:
609
610 2013-05-21  Alberto Garcia  <agarcia@igalia.com>
611
612         Remove GraphicsLayerClient::contentsVisible()
613         https://bugs.webkit.org/show_bug.cgi?id=116523
614
615         Reviewed by Darin Adler.
616
617         This is dead code from the BlackBerry port.
618
619         * platform/graphics/GraphicsLayerClient.h:
620         * rendering/RenderLayerBacking.cpp:
621
622 2013-05-21  Zan Dobersek  <zdobersek@igalia.com>
623
624         PLATFORM(*) macros used in Source/WebCore/loader/archive/ArchiveFactory.cpp
625         https://bugs.webkit.org/show_bug.cgi?id=116453
626
627         Reviewed by Alexey Proskuryakov.
628
629         * loader/archive/ArchiveFactory.cpp: Remove a redundant PLATFORM(QT) macro when checking whether
630         to include the LegacyWebArchive.h header that's specific to the WebArchive support. The Qt port
631         does not enable the WebArchive feature at all (which is enabled only on AppleMac, AppleWin and iOS
632         platforms) so there's no reason to additionally condition the header include with building on
633         non-Qt platforms.
634
635 2013-05-21  Alberto Garcia  <agarcia@igalia.com>
636
637         Add BlackBerry definition of NativeImagePtr
638         https://bugs.webkit.org/show_bug.cgi?id=116526
639
640         Reviewed by Darin Adler.
641
642         * platform/graphics/NativeImagePtr.h:
643         (Graphics):
644         (WebCore):
645
646 2013-05-21  Alberto Garcia  <agarcia@igalia.com>
647
648         [BlackBerry] FontCache::getFontDataForCharacters() returns nullptr
649         https://bugs.webkit.org/show_bug.cgi?id=116529
650
651         Reviewed by Andreas Kling.
652
653         This cannot be converted to a PassRefPtr and breaks the build.
654
655         * platform/graphics/blackberry/FontCacheBlackBerry.cpp:
656         (WebCore::FontCache::getFontDataForCharacters):
657
658 2013-05-21  Iago Toral Quiroga  <itoral@igalia.com>
659
660         [GTK] Always use EGL to create the GL context when running on Wayland
661         https://bugs.webkit.org/show_bug.cgi?id=115721
662
663         Reviewed by Martin Robinson.
664
665         * platform/graphics/cairo/GLContext.cpp:
666         (WebCore::GLContext::createContextForWindow):
667         (WebCore::GLContext::createOffscreenContext): Always use EGL to create the GL context
668         instead of GLX when running on Wayland and make createOffScreenContext reuse the code
669         in createContextWindow.
670
671 2013-05-21  Alberto Garcia  <agarcia@igalia.com>
672
673         Add FloatRect::normalized() for BlackBerry
674         https://bugs.webkit.org/show_bug.cgi?id=116531
675
676         Reviewed by Carlos Garcia Campos.
677
678         This was added to FloatRectBlackBerry.cpp in r111072 when the
679         graphics platform code was upstreamed, but this change was
680         missing.
681
682         * platform/graphics/FloatRect.h:
683         (FloatRect):
684
685 2013-05-21  Balazs Kelemen  <kbalazs@webkit.org>
686
687         [GStreamer] cleanup duration query
688         https://bugs.webkit.org/show_bug.cgi?id=116228
689
690         Reviewed by Philippe Normand.
691
692         Covered by existing tests.
693
694         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
695         (WebCore::MediaPlayerPrivateGStreamer::duration):
696         We can also cache the duration here if the query succeeds.
697         (MediaPlayerPrivateGStreamer::updateStates):
698         Don't query when we are in GST_STATE_READY state because it never succeeds.
699         Do it instead when we reached a stable state.
700         (MediaPlayerPrivateGStreamer::cacheDuration): Return early if it is already
701         cached. Recaching is not necessary and now we call it a lot of times.
702         Only look into the state if the query failed.
703         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
704         (MediaPlayerPrivateGStreamer): Made m_mediaDuration mutable to be
705         able to cache it in duration(). Internal cached values is one of
706         the sensible uses of mutable.
707
708 2013-05-21  Patrick Gansterer  <paroga@webkit.org>
709
710         Build fix for !USE(ACCELERATED_COMPOSITING) after r150307.
711
712         * rendering/RenderLayerCompositor.h: Added missing #if USE(ACCELERATED_COMPOSITING).
713
714 2013-05-20  Antti Koivisto  <antti@apple.com>
715
716         Simplify Shadow DOM distribution code
717         https://bugs.webkit.org/show_bug.cgi?id=116454
718
719         Reviewed by Andreas Kling.
720         
721         Remove code supporting nested insertion points and distributing to multiple insertion points.
722     
723         * html/HTMLDetailsElement.cpp:
724         (DetailsContentElement):
725         
726             Make distribution to <details> and <summary> mutually exclusive.
727
728         * html/shadow/ContentDistributor.cpp:
729         (WebCore):
730         (WebCore::ContentDistributor::distribute):
731         (WebCore::ContentDistributor::invalidate):
732         (WebCore::ContentDistributor::distributeSelectionsTo):
733         * html/shadow/ContentDistributor.h:
734         * html/shadow/InsertionPoint.cpp:
735         (WebCore::resolveReprojection):
736
737 2013-05-21  Mihnea Ovidenie  <mihnea@adobe.com>
738
739         [CSSRegions] Constrain auto-height region computation in a different way
740         https://bugs.webkit.org/show_bug.cgi?id=116310
741
742         Reviewed by Alexandru Chiculita.
743
744         After https://bugs.webkit.org/show_bug.cgi?id=74132, the region is a render block. We can use RenderBox::constrainContentBoxLogicalHeightByMinMax
745         instead of RenderBox::computeReplacedLogicalHeightRespectingMinMaxHeight to better reflect the fact that the region is not a replaced element.
746         Covered by existing regions tests, since when replaced-based the region had an intrinsic height of 0 and now, block-based, it does not have any children.
747
748         * rendering/RenderFlowThread.cpp:
749         (WebCore::RenderFlowThread::addForcedRegionBreak):
750
751 2013-05-21  Ryosuke Niwa  <rniwa@webkit.org>
752
753         REGRESSION(r150393): editing/inserting/typing-at-end-of-line.html fails
754         https://bugs.webkit.org/show_bug.cgi?id=116516
755
756         Reviewed by Antti Koivisto.
757
758         The bug was caused by DRT not resetting various auto correction states.
759         Do that in Internals::resetToConsistentState.
760
761         * testing/Internals.cpp:
762         (WebCore::Internals::resetToConsistentState):
763
764 2013-05-20  Zan Dobersek  <zdobersek@igalia.com>
765
766         [GTK] Fix concatenations of string literals that are not C++11-compliant
767         https://bugs.webkit.org/show_bug.cgi?id=116449
768
769         Reviewed by Martin Robinson.
770
771         Fix the problematic concatenations of string literals so they are compilable under the C++11 standard. This
772         is simply a matter of separating the string and the string literal that are being concatenated with a space.
773
774         * platform/graphics/gtk/FullscreenVideoControllerGtk.cpp:
775         * platform/gtk/FileSystemGtk.cpp:
776         (WebCore::sharedResourcesPath):
777
778 2013-05-20  Zan Dobersek  <zdobersek@igalia.com>
779
780         [GTK] Support application/x-mimearchive mimetype for MHTML archives instead of message/rfc822
781         https://bugs.webkit.org/show_bug.cgi?id=116442
782
783         Reviewed by Martin Robinson.
784
785         * loader/archive/ArchiveFactory.cpp:
786         (WebCore::archiveMIMETypes): Like EFL and Qt, register the application/x-mimearchive mime type as a MHTML archive type
787         and stop propagating the message/rfc822 mime type as such. This also removes a couple of PLATFORM ifdefs.
788
789 2013-05-20  Benjamin Poulain  <bpoulain@apple.com>
790
791         Minor String fixes in CSS
792         https://bugs.webkit.org/show_bug.cgi?id=116291
793
794         Reviewed by Darin Adler.
795
796         Some trival changes to make up for a bad day :)
797
798         * css/CSSImageSetValue.cpp:
799         (WebCore::CSSImageSetValue::customCssText):
800         * css/CSSImageValue.cpp:
801         (WebCore::CSSImageValue::customCssText):
802         * css/CSSImportRule.cpp:
803         (WebCore::CSSImportRule::cssText):
804         * css/CSSInheritedValue.cpp:
805         (WebCore::CSSInheritedValue::customCssText):
806         * css/CSSInitialValue.cpp:
807         (WebCore::CSSInitialValue::customCssText):
808         * css/CSSPrimitiveValue.cpp:
809         (WebCore::CSSPrimitiveValue::customCssText):
810         * css/CSSPropertySourceData.cpp:
811         (WebCore::CSSPropertySourceData::toString):
812         * css/CSSSelector.cpp:
813         (WebCore::CSSSelector::selectorText):
814         * css/CSSStyleRule.cpp:
815         (WebCore::CSSStyleRule::generateSelectorText):
816         * css/CSSStyleSheet.h:
817         (WebCore::CSSStyleSheet::type):
818         * css/CSSTimingFunctionValue.cpp:
819         (WebCore::CSSLinearTimingFunctionValue::customCssText):
820         (WebCore::CSSCubicBezierTimingFunctionValue::customCssText):
821         * css/CSSValueList.cpp:
822         (WebCore::CSSValueList::customCssText):
823         (WebCore::CSSValueList::customSerializeResolvingVariables):
824         * css/MediaQueryExp.cpp:
825         (WebCore::MediaQueryExp::serialize):
826         * css/WebKitCSSFilterValue.cpp:
827         (WebCore::WebKitCSSFilterValue::customCssText):
828         * css/WebKitCSSKeyframesRule.cpp:
829         (WebCore::StyleRuleKeyframes::findKeyframeIndex):
830         (WebCore::WebKitCSSKeyframesRule::cssText):
831         * css/WebKitCSSMatFunctionValue.cpp:
832         (WebCore::WebKitCSSMatFunctionValue::customCssText):
833         * css/WebKitCSSMixFunctionValue.cpp:
834         (WebCore::WebKitCSSMixFunctionValue::customCssText):
835
836 2013-05-20  Ryosuke Niwa  <rniwa@webkit.org>
837
838         Null pointer deference in WebCore::AppendNodeCommand::create
839         https://bugs.webkit.org/show_bug.cgi?id=116479
840
841         Reviewed by Andreas Kling.
842         
843         Merge https://chromium.googlesource.com/chromium/blink/+/5cb43002a44f67a60ecf5a7ed76de2d0bcf89eb2
844
845         DeleteSelection::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss() make style and link elements
846         to be the direct children of the editable root. However, these style and link elements are not necessary editable
847         and WebKit crashes when they are not.
848
849         Test: editing/deleting/delete-uneditable-style.html
850
851         * editing/DeleteSelectionCommand.cpp:
852         (WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):
853
854 2013-05-20  Beth Dakin  <bdakin@apple.com>
855
856         Scrollbars still show sometimes even when WKPageSetSuppressScrollbarAnimations() 
857         is set
858         https://bugs.webkit.org/show_bug.cgi?id=116493
859         -and corresponding-
860         <rdar://problem/13912871>
861
862         Reviewed by Dean Jackson.
863
864         We need to be more aggressive with our approach since AppKit may still ask the 
865         scrollbars to paint here.
866
867         scrollbarAnimationsAreSuppressed() will allow us to find out if the setting has 
868         been set.
869         * page/FrameView.cpp:
870         (WebCore::FrameView::scrollbarAnimationsAreSuppressed):
871         * page/FrameView.h:
872         * platform/ScrollableArea.h:
873         (WebCore::ScrollableArea::scrollbarAnimationsAreSuppressed):
874         * rendering/RenderLayer.cpp:
875         (WebCore::RenderLayer::scrollbarAnimationsAreSuppressed):
876         * rendering/RenderLayer.h:
877         (RenderLayer):
878         * rendering/RenderListBox.cpp:
879         (WebCore::RenderListBox::scrollbarAnimationsAreSuppressed):
880         * rendering/RenderListBox.h:
881
882         Don’t allow animations if scrollbars are suppressed.
883         * platform/mac/ScrollAnimatorMac.mm:
884         (-[WebScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]):
885
886         Call cancelAnimations() to prevent a just-started animation from continuing.
887         (WebCore::ScrollAnimatorMac::finishCurrentScrollAnimations):
888
889 2013-05-20  Andreas Kling  <akling@apple.com>
890
891         Avoid caret repaints if we're not showing carets anyway.
892         <http://webkit.org/b/116489>
893
894         Reviewed by Simon Fraser.
895
896         When moving the selection, check if we're inside a contenteditable element (or in caret browsing mode)
897         before repainting the caret's previous location.
898
899         * editing/FrameSelection.cpp:
900         (WebCore::FrameSelection::recomputeCaretRect):
901
902 2013-05-20  Simon Fraser  <simon.fraser@apple.com>
903
904         position:sticky should stick for the enclosing overflow ancestor
905         https://bugs.webkit.org/show_bug.cgi?id=100054
906
907         Reviewed by Beth Dakin.
908         
909         Make position: -webkit-sticky be constrained by an enclosing ancestor
910         with non-visible overflow if there is one, rather than being constained
911         always by the viewport.
912
913         Test: fast/css/sticky/sticky-top-overflow.html
914
915         * rendering/RenderBoxModelObject.cpp:
916         (WebCore::RenderBoxModelObject::computeStickyPositionConstraints): Rename
917         viewportRect to constrainingRect, since it isn't just about the viewport any more.
918         Fix an issue where just adding stickyLocation to absContainerFrame.location() was
919         incorrect when the container is scrolled; we also have to take the scroll offset
920         into account, and that offset is stored in the layer tree.
921         (WebCore::RenderBoxModelObject::stickyPositionOffset):
922         Look for an enclosing layer with overflow clipping, and, if found, use it to
923         compute the sticky constraint rect.
924         * rendering/RenderLayer.h: Add a helpful IncludeSelfOrNot, and fix several member functions
925         to use it place of hard-to-read boolean arguments.
926         Add enclosingOverflowClipLayer(IncludeSelfOrNot).
927         (WebCore::RenderLayer::ancestorCompositingLayer):
928         * rendering/RenderLayer.cpp:
929         (WebCore::RenderLayer::enclosingOverflowClipLayer): New function, finds the enclosing
930         layer with overflow clip.
931         (WebCore::RenderLayer::enclosingCompositingLayer): Use IncludeSelfOrNot.
932         (WebCore::RenderLayer::enclosingCompositingLayerForRepaint): Ditto.
933         (WebCore::RenderLayer::enclosingFilterLayer): Ditto.
934         * rendering/RenderLayerCompositor.cpp:
935         (WebCore::RenderLayerCompositor::repaintInCompositedAncestor): Use IncludeSelfOrNot.
936         (WebCore::isViewportConstrainedFixedOrStickyLayer): Renamed from isRootmostFixedOrStickyLayer
937         and moved up so we can use it in requiresCompositingForPosition().
938         (WebCore::RenderLayerCompositor::requiresCompositingForPosition): Only make sticky composited if
939         it's viewport-constrained.
940         (WebCore::RenderLayerCompositor::updateViewportConstraintStatus):
941         (WebCore::RenderLayerCompositor::computeStickyViewportConstraints): Declare StickyPositionViewportConstraints
942         one line down to just before it gets used.
943
944 2013-05-20  Jeff Rogers  <jrogers@blackberry.com>
945
946         Remove DISABLE_ROUNDED_CORNER_CLIPPING
947         https://bugs.webkit.org/show_bug.cgi?id=115531
948
949         Reviewed by Andreas Kling.
950
951         BlackBerry port is no longer using this.
952
953         * rendering/RenderLayer.cpp:
954         (WebCore::inContainingBlockChain):
955         (WebCore::RenderLayer::clipToRect):
956
957 2013-05-20  Tim Horton  <timothy_horton@apple.com>
958
959         Clients should have a way to extend rendering suppression
960         https://bugs.webkit.org/show_bug.cgi?id=116463
961         <rdar://problem/13738496>
962
963         Reviewed by Andy Estes.
964
965         * WebCore.exp.in:
966         Export FrameView::setVisualUpdatesAllowedByClient.
967
968         * dom/Document.cpp:
969         (WebCore::Document::setVisualUpdatesAllowed):
970         Move rendering-suppression watchdog into setVisualUpdatesAllowed(bool).
971         setVisualUpdatesAllowed(ReadyState) should not re-enable visual updates
972         if the client is itself disabling visual updates.
973
974         (WebCore::Document::visualUpdatesSuppressionTimerFired):
975         If the watchdog fires and the client is still disabling visual
976         updates, we should not re-enable visual updates, but instead
977         wait for the client.
978
979         (WebCore::Document::setVisualUpdatesAllowedByClient):
980         Actually re-enable visual updates if we deferred the re-enabling above
981         (when the page finishes loading, but the client had them disabled).
982
983         * dom/Document.h:
984         (Document): Add setVisualUpdatesAllowedByClient.
985         * page/FrameView.cpp:
986         (WebCore::FrameView::FrameView): Visual updates are allowed by default.
987         (WebCore::FrameView::setVisualUpdatesAllowedByClient):
988         Forward through to the document, but we also need to persist the state
989         here in FrameView so that it survives through navigation.
990
991         * page/FrameView.h:
992         (WebCore::FrameView::setVisualUpdatesAllowedByClient): Added.
993         (WebCore::FrameView::visualUpdatesAllowedByClient): Added.
994         Added storage for m_visualUpdatesAllowedByClient.
995
996 2013-05-20  Hans Muller  <hmuller@adobe.com>
997
998         [CSS Exclusions] Add CSS parsing support for image URI shape-inside and shape-outside values
999         https://bugs.webkit.org/show_bug.cgi?id=116349
1000
1001         Reviewed by Alexandru Chiculita.
1002
1003         Add support for parsing image URI values for the shape-inside and shape-outside CSS properties.
1004         Extended the ExclusionShapeValue class to support tracking the property's StyleImage value.
1005
1006         The ExclusionShapeValue::type enums were changed from all upper case to "Intercase" by order
1007         of the style bot.
1008
1009         The existing CSS parsing tests were extended to check URI values.
1010
1011         * css/CSSComputedStyleDeclaration.cpp:
1012         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1013         * css/CSSParser.cpp:
1014         (WebCore::CSSParser::parseValue):
1015         * css/DeprecatedStyleBuilder.cpp:
1016         (WebCore::ApplyPropertyExclusionShape::applyValue):
1017         * css/StyleResolver.cpp:
1018         (WebCore::StyleResolver::loadPendingImages):
1019         * rendering/style/ExclusionShapeValue.h:
1020         (WebCore::ExclusionShapeValue::createImageValue):
1021         (ExclusionShapeValue):
1022         (WebCore::ExclusionShapeValue::image):
1023         (WebCore::ExclusionShapeValue::setImage):
1024         (WebCore::ExclusionShapeValue::ExclusionShapeValue):
1025
1026 2013-05-20  Radu Stavila  <stavila@adobe.com>
1027
1028         [CSSRegions] Fix offsetLeft / offsetTop for elements inside named flow
1029         https://bugs.webkit.org/show_bug.cgi?id=115899
1030
1031         Reviewed by David Hyatt.
1032
1033         Elements in named flows that have the body as their offsetParent, need to compute their
1034         offsetLeft and offsetTop values relative to the body.
1035
1036         Tests: fast/regions/offsetLeft-offsetTop-in-multiple-regions.html
1037                fast/regions/offsetLeft-offsetTop-in-region-absolute-sticky-fixed.html
1038                fast/regions/offsetLeft-offsetTop-in-region-float-vert-rl.html
1039                fast/regions/offsetLeft-offsetTop-in-region-float.html
1040                fast/regions/offsetLeft-offsetTop-inlines-region-in-element.html
1041
1042         * rendering/RenderBoxModelObject.cpp:
1043         (WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
1044         * rendering/RenderFlowThread.cpp:
1045         (WebCore):
1046         (WebCore::RenderFlowThread::adjustedPositionRelativeToOffsetParent):
1047         * rendering/RenderFlowThread.h:
1048
1049 2013-05-20  Zoltan Horvath  <zoltan@webkit.org>
1050
1051         [CSS Regions][CSS Exclusions] shape-inside on regions should respect positioned shapes and overflow
1052         https://bugs.webkit.org/show_bug.cgi?id=116252
1053
1054         Reviewed by David Hyatt.
1055
1056         Regions should respect shape-inside properties which have specified top offset. Since the content which overflows from the
1057         shape should be pushed after the content box (for details check out r148975), I implemented  overflowthe behavior for simple
1058         cases when you have only one region. I'm going to implement it for additional regions in a follow up patch.
1059
1060         Tests: fast/regions/shape-inside/shape-inside-on-regions-block-content-basic-overflow-shape-top-offset.html
1061                fast/regions/shape-inside/shape-inside-on-regions-inline-content-basic-overflow-shape-top-offset.html
1062
1063         * rendering/RenderBlockLineLayout.cpp:
1064         (WebCore::RenderBlock::updateLineBoundariesForExclusions): Handle the flow thread case, push the overflowing content after the
1065         content box. Respect existing shape-inside on region tests.
1066         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Set the correct logical top position for the shape-inside in
1067         the case of regions. Respect the region's margins and paddings.
1068
1069 2013-05-20  Darin Adler  <darin@apple.com>
1070
1071         Remove custom binding for the Clipboard clearData function
1072         https://bugs.webkit.org/show_bug.cgi?id=116421
1073
1074         Reviewed by Andreas Kling.
1075
1076         * bindings/js/JSClipboardCustom.cpp: Removed the clearData binding.
1077
1078         * dom/Clipboard.idl: Removed [Custom].
1079
1080         * dom/Clipboard.cpp:
1081         (WebCore::Clipboard::clearData): Renamed from clearAllData.
1082         * dom/Clipboard.h: Rename clearAllData to clearData so we just use
1083         overloading for the one with and without a MIME type.
1084         * platform/ios/ClipboardIOS.h: Rename clearAllData to clearData.
1085         * platform/ios/ClipboardIOS.mm:
1086         (WebCore::ClipboardIOS::clearData): Ditto.
1087         * platform/qt/ClipboardQt.cpp:
1088         (WebCore::ClipboardQt::clearData). Ditto.
1089         * platform/qt/ClipboardQt.h: Ditto.
1090         * platform/win/ClipboardWin.cpp:
1091         (WebCore::ClipboardWin::clearData): Ditto.
1092         * platform/win/ClipboardWin.h: Ditto.
1093
1094 2013-05-20  Eric Carlson  <eric.carlson@apple.com>
1095
1096         [iOS] media/event-queue-crash.html ASSERTs in notifyChildInserted
1097         https://bugs.webkit.org/show_bug.cgi?id=116444
1098
1099         Reviewed by Jer Noble.
1100
1101         No new tests, covered by existing tests.
1102
1103         * html/HTMLMediaElement.cpp:
1104         (WebCore::HTMLMediaElement::configureMediaControls): Only create media controls when the
1105             element is in a Document.
1106
1107 2013-05-20  Antoine Quint  <graouts@apple.com>
1108
1109         [Mac] captions menu should behave more like a menu
1110         https://bugs.webkit.org/show_bug.cgi?id=116436
1111
1112         Reviewed by Eric Carlson.
1113
1114         Let the captions menu behave more like a native Mac menu by hiding it when
1115         clicking anywhere on the page and preventing the page from scrolling when
1116         attempting to scroll the captions menu when it cannot scroll in the requested
1117         direction.
1118
1119         Test: media/video-controls-captions-trackmenu-hide-on-click-outside.html
1120
1121         * dom/EventListener.h:
1122         Add the new MediaControlsAppleEventListenerType.
1123
1124         * html/shadow/MediaControlsApple.cpp:
1125         (WebCore::MediaControlsApple::defaultEventHandler):
1126         (WebCore::MediaControlsApple::hide):
1127         (WebCore::MediaControlsApple::makeTransparent):
1128         (WebCore::MediaControlsApple::changedClosedCaptionsVisibility):
1129         (WebCore::MediaControlsApple::reportedError):
1130         (WebCore::MediaControlsApple::toggleClosedCaptionTrackList):
1131         Use the hideClosedCaptionTrackList() and showClosedCaptionTrackList()
1132         methods to hide and show the captions menu instead of calling hide()
1133         and show() directly on m_closedCaptionsContainer.
1134
1135         (WebCore::MediaControlsApple::showClosedCaptionTrackList):
1136         Show the m_closedCaptionsContainer and register a "mousewheel" event
1137         listener on it as well as a "click" event listener on the entire document.
1138
1139         (WebCore::MediaControlsApple::hideClosedCaptionTrackList):
1140         Hide the m_closedCaptionsContainer and remove the "mousewheel" event
1141         listener on it as well as the "click" event listener on the entire document.
1142
1143         (WebCore::MediaControlsApple::shouldClosedCaptionsContainerPreventPageScrolling):
1144         New private utility to determine whether the m_closedCaptionsContainer can scroll
1145         in the provided scroll direction.
1146
1147         (WebCore::MediaControlsApple::eventListener):
1148         Obtain the event listener used for "mousewheel" and "click" event handlers.
1149
1150         (WebCore::MediaControlsAppleEventListener::handleEvent):
1151         Event handler for the "mousewheel" and "click" events. If we get a "click" event, we
1152         toggle the captions menu visibility and if we get a "mousewheel" event, we call into
1153         shouldClosedCaptionsContainerPreventPageScrolling() to see if we can scroll in the
1154         current scroll direction, and if not prevent the event from resulting in a scroll by
1155         calling preventDefault().
1156
1157         (WebCore::MediaControlsAppleEventListener::operator==):
1158         Required for the successful subclassing of EventListener.
1159
1160         * html/shadow/MediaControlsApple.h:
1161         (MediaControlsAppleEventListener):
1162         (WebCore::MediaControlsAppleEventListener::create):
1163         (WebCore::MediaControlsAppleEventListener::cast):
1164         (WebCore::MediaControlsAppleEventListener::MediaControlsAppleEventListener):
1165         New subclass of EventListener required to provide a custom event listener for the
1166         "mousewheel" and "click" events registered in showClosedCaptionTrackList() and
1167         hideClosedCaptionTrackList().
1168
1169 2013-05-18  Rashmi Shyamasundar  <rashmi.s2@samsung.com>
1170
1171         [Cairo] Canvas-shadow behavior is not being as expected
1172         https://bugs.webkit.org/show_bug.cgi?id=108897
1173
1174         Reviewed by Martin Robinson.
1175
1176         ShadowBlur::endShadowLayer copies the image from shadowContext to cairoContext.
1177         CairoContext-path should be empty for doing this copy. Otherwise, the 
1178         original-image area will also get filled with the shadow.
1179
1180         Test: fast/canvas/canvas-image-shadow.html
1181
1182         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1183         (WebCore::drawPathShadow):
1184
1185 2013-05-20  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
1186
1187         -webkit-text-underline-position should not be inherited
1188         https://bugs.webkit.org/show_bug.cgi?id=116363
1189
1190         Reviewed by Dean Jackson.
1191
1192         Specification says text-underline-position should not be inherited.
1193
1194         No new tests, this updates existing tests.
1195
1196         * css/CSSProperty.cpp:
1197         (WebCore::CSSProperty::isInheritedProperty): Make
1198         CSSPropertyWebkitTextUnderlinePosition return false.
1199         * rendering/style/RenderStyle.h: Treat TextUnderlinePosition as
1200         non-inherited.
1201         * rendering/style/StyleRareInheritedData.cpp:
1202         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
1203         (WebCore::StyleRareInheritedData::operator==): Remove m_textUnderlinePosition.
1204         * rendering/style/StyleRareInheritedData.h:
1205         (StyleRareInheritedData):
1206         * rendering/style/StyleRareNonInheritedData.cpp:
1207         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
1208         (WebCore::StyleRareNonInheritedData::operator==): Add m_textUnderlinePosition.
1209         * rendering/style/StyleRareNonInheritedData.h:
1210         (StyleRareNonInheritedData):
1211
1212 2013-05-20  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
1213
1214         Add compile asserts for the size of RootInlineBox and InlineTextbox
1215         https://bugs.webkit.org/show_bug.cgi?id=116337
1216
1217         Reviewed by Darin Adler.
1218
1219         Add compile asserts to ensure RootInlineBox and InlineTextbox stay small.
1220
1221         * rendering/InlineTextBox.cpp:
1222         (SameSizeAsInlineTextBox):
1223         (WebCore):
1224         * rendering/RootInlineBox.cpp:
1225         (SameSizeAsRootInlineBox):
1226         (WebCore):
1227
1228 2013-05-20  Xan Lopez  <xlopez@igalia.com>
1229
1230         [BlackBerry] LocalizedStringsBlackBerry: add dummy text track strings
1231         https://bugs.webkit.org/show_bug.cgi?id=116300
1232
1233         Reviewed by Rob Buis.
1234
1235         These are dummy implementations necessary to make WebKit link.
1236
1237         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
1238         (WebCore::weekFormatInLDML):
1239         (WebCore):
1240         (WebCore::textTrackClosedCaptionsText):
1241         (WebCore::textTrackSubtitlesText):
1242         (WebCore::textTrackOffText):
1243         (WebCore::textTrackNoLabelText):
1244
1245 2013-05-19  Darin Adler  <darin@apple.com>
1246
1247         [Mac] Improve string use in PasteboardMac
1248         https://bugs.webkit.org/show_bug.cgi?id=116418
1249
1250         Reviewed by Sam Weinig.
1251
1252         Did a Ben Poulain all over this file.
1253
1254         * platform/mac/PasteboardMac.mm:
1255         (WebCore::Pasteboard::plainText): Add the newline separately to the string builder.
1256         Prepending it to the string first just does more allocations for no good reason.
1257         (WebCore::Pasteboard::documentFragment): Use emptyString() instead of "" and use
1258         ASCIILiteral where appropriate.
1259         (WebCore::cocoaTypeFromHTMLClipboardType): More ASCIILiteral.
1260         (WebCore::Pasteboard::clear): Use early return instead of a nested if here.
1261         Use emptyString() instead of "".
1262         (WebCore::addHTMLClipboardTypesForCocoaType): More ASCIILiteral.
1263
1264 2013-05-19  Anders Carlsson  <andersca@apple.com>
1265
1266         Remove link prerendering code
1267         https://bugs.webkit.org/show_bug.cgi?id=116415
1268
1269         Reviewed by Darin Adler.
1270
1271         * Configurations/FeatureDefines.xcconfig:
1272         * GNUmakefile.list.am:
1273         * Target.pri:
1274         * WebCore.vcproj/WebCore.vcproj:
1275         * WebCore.vcxproj/WebCore.vcxproj:
1276         * WebCore.vcxproj/WebCore.vcxproj.filters:
1277         * WebCore.xcodeproj/project.pbxproj:
1278         * dom/Document.cpp:
1279         (WebCore::Document::Document):
1280         * dom/Document.h:
1281         (WebCore):
1282         (Document):
1283         * dom/EventNames.h:
1284         (WebCore):
1285         * html/HTMLLinkElement.cpp:
1286         * html/HTMLLinkElement.h:
1287         * html/LinkRelAttribute.cpp:
1288         (WebCore::LinkRelAttribute::LinkRelAttribute):
1289         * html/LinkRelAttribute.h:
1290         (LinkRelAttribute):
1291         * loader/LinkLoader.cpp:
1292         (WebCore::LinkLoader::~LinkLoader):
1293         (WebCore::LinkLoader::loadLink):
1294         (WebCore::LinkLoader::released):
1295         * loader/LinkLoader.h:
1296         (WebCore):
1297         (LinkLoader):
1298         * loader/LinkLoaderClient.h:
1299         (LinkLoaderClient):
1300         * loader/Prerenderer.cpp: Removed.
1301         * loader/Prerenderer.h: Removed.
1302         * loader/PrerendererClient.cpp: Removed.
1303         * loader/PrerendererClient.h: Removed.
1304         * platform/PrerenderClient.h: Removed.
1305         * platform/PrerenderHandle.h: Removed.
1306
1307 2013-05-19  Simon Fraser  <simon.fraser@apple.com>
1308
1309         Change the terminology used by rendering code when painting a given node and its children from "paintingRoot" to "subtreePaintRoot"
1310         https://bugs.webkit.org/show_bug.cgi?id=116417
1311
1312         Reviewed by Sam Weinig.
1313         
1314         PaintInfo and RenderLayer code referred to a "paintingRoot". This is only set when
1315         FrameView::setNodeToDraw() has been called and is used to restrict painting to
1316         some part of the subtree, but it could easily be misinterpreted, and confused with
1317         the "rootLayer" used by RenderLayer (which is usually not the layer associated with
1318         the paintingRoot).
1319         
1320         Change the terminology from "paintingRoot" to "subtreePaintRoot" root to make the
1321         purpose of this variable more obvious.
1322
1323         No behavior change.
1324
1325         * page/FrameView.cpp: Add a comment for setNodeToDraw(); in future this should
1326         be called setSubtreePaintRoot() or something. Not done in this patch to avoid
1327         risk; this function is exported from WebCore.
1328         * rendering/InlineFlowBox.cpp:
1329         (WebCore::InlineFlowBox::paint):
1330         * rendering/PaintInfo.h:
1331         (WebCore::PaintInfo::PaintInfo):
1332         (WebCore::PaintInfo::updateSubtreePaintRootForChildren):
1333         (WebCore::PaintInfo::shouldPaintWithinRoot):
1334         * rendering/RenderBlock.cpp:
1335         (WebCore::RenderBlock::paintContents):
1336         * rendering/RenderBox.cpp:
1337         (WebCore::RenderBox::paint):
1338         * rendering/RenderLayer.cpp:
1339         (WebCore::RenderLayer::paint):
1340         (WebCore::RenderLayer::paintOverlayScrollbars):
1341         (WebCore::RenderLayer::paintLayerContents):
1342         (WebCore::RenderLayer::paintLayerByApplyingTransform):
1343         (WebCore::RenderLayer::paintBackgroundForFragments):
1344         (WebCore::RenderLayer::paintForegroundForFragments):
1345         (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
1346         (WebCore::RenderLayer::paintOutlineForFragments):
1347         (WebCore::RenderLayer::paintMaskForFragments):
1348         * rendering/RenderLayer.h:
1349         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
1350         * rendering/RenderObject.cpp: Add a comment to recommend changing the name of
1351         paintingRootRect() to refer to a subtree paint. Not done in this patch to avoid
1352         risk; this function is exported from WebCore.
1353         * rendering/RenderSnapshottedPlugIn.cpp:
1354         (WebCore::RenderSnapshottedPlugIn::paint):
1355         * rendering/RenderTable.cpp:
1356         (WebCore::RenderTable::paintObject):
1357         * rendering/svg/RenderSVGContainer.cpp:
1358         (WebCore::RenderSVGContainer::paint):
1359
1360 2013-05-19  Darin Adler  <darin@apple.com>
1361
1362         Use Element instead of Node in DragState, also redo DragState struct
1363         https://bugs.webkit.org/show_bug.cgi?id=116411
1364
1365         Reviewed by Sam Weinig.
1366
1367         The drag source is an element, so use RefPtr<Element> instead of RefPtr<Node>.
1368
1369         Also, the entire drag state is about dragging, so no need for the word "drag" in the
1370         name of its members. Also, it's a struct, so the members don't need m_ prefixes.
1371
1372         * page/DragController.cpp: Removed unneeded include of Node.h since it's included by
1373         Element.h, which is also included.
1374         (WebCore::DragController::draggableElement): Renamed from Node to Element and changed
1375         the types and names of arguments accordingly. Also made this function handle a
1376         startElement of 0 so callers don't need to. Also updated for changes to DragState members.
1377         (WebCore::DragController::startDrag): Updated for changes to DragState members.
1378         Since dragSource can only be an element, was able to get rid of isElementNode checks.
1379
1380         * page/DragController.h: Fixed style of forward declarations of structs. Updated for
1381         change of draggableNode to draggableElement. Also removed declarations of nonexistent
1382         selectionDraggingRect and doDrag functions.
1383
1384         * page/DragState.h: Rewrote practically this whole header. Added an include of Element
1385         instead of Node since that's what we use now. Removed includes that are redundant.
1386         There's no problem copying a DragState, so removed WTF_MAKE_NONCOPYABLE. There's no need
1387         to allocate a DragState on the heap, so removed WTF_MAKE_FAST_ALLOCATED. The event dispatch
1388         boolean is never set to a constant, so there's no need for a policy enum; it can just be
1389         a boolean. Removed the "m_" prefixes from the struct members, since this is a struct with
1390         public members and we don't use the prefix in those cases. Removed the word "drag" from the
1391         struct member names since this entire struct is about dragging and has drag in its name.
1392         Left the comments mostly intact, even though I'm not certain of their value.
1393
1394         * page/EventHandler.cpp:
1395         (WebCore::EventHandler::handleMousePressEvent): Updated for changes to DragState.
1396         (WebCore::EventHandler::eventMayStartDrag):
1397         Use innerElement instead of innerNode to call draggableElement instead of draggableNode.
1398         (WebCore::EventHandler::updateDragAndDrop): Updated for changes to DragState.
1399         (WebCore::EventHandler::cancelDragAndDrop): Ditto.
1400         (WebCore::EventHandler::handleWheelEvent): Added FIXME.
1401         (WebCore::EventHandler::dragHysteresisExceeded): Updated for changes to DragState.
1402         (WebCore::EventHandler::freeClipboard): Updated for changes to DragState. Also re-added
1403         code to release the clipboard object, which is needed here to avoid keeping it around in
1404         memory until the next drag.
1405         (WebCore::EventHandler::dragSourceEndedAt): Updated for changes to DragState.
1406         (WebCore::EventHandler::updateDragStateAfterEditDragIfNeeded): Ditto.
1407         (WebCore::EventHandler::dispatchDragSrcEvent): Ditto.
1408         (WebCore::EventHandler::handleDrag): Updated for changes to DragState. Use innerElement
1409         instead of innerNode to call draggableElement instead of draggableNode. No longer need to
1410         null check innerElement because draggableElement does that. Removed unneeded else that was
1411         setting m_dragSrc to zero since it's guaranteed to already be zero.
1412
1413 2013-05-19  Anders Carlsson  <andersca@apple.com>
1414
1415         Remove ChromeClient::webView()
1416         https://bugs.webkit.org/show_bug.cgi?id=116054
1417
1418         Reviewed by Darin Adler.
1419
1420         This blatantly horrible layer violation was only used to know if a ChromeClient is an empty
1421         client or not. We already have a (slightly less horrible) way to do that.
1422
1423         * loader/EmptyClients.h:
1424         * page/ChromeClient.h:
1425         (ChromeClient):
1426
1427 2013-05-19  Darin Adler  <darin@apple.com>
1428
1429         Eliminate the Editor::newGeneralClipboard function
1430         https://bugs.webkit.org/show_bug.cgi?id=116410
1431
1432         Reviewed by Andreas Kling.
1433
1434         This is one of the clean-ups made possible by the changes to the DOM clipboard class.
1435         I had been waiting until all the platforms were moved over to it, but it turns out to be
1436         easy to do this now, just with #ifdefs.
1437
1438         * PlatformBlackBerry.cmake: Deleted EditorBlackBerry.cpp.
1439
1440         * editing/Editor.cpp:
1441         (WebCore::Editor::dispatchCPPEvent): Call Clipboard::createForCopyAndPaste directly when
1442         using the new version of the Clipboard class. Also some small style cleanup nearby.
1443
1444         * editing/blackberry/EditorBlackBerry.cpp: Removed. The only function in this file was
1445         newGeneralClipboard.
1446
1447         * editing/mac/EditorMac.mm: Deleted newGeneralClipboard.
1448         * platform/efl/ClipboardEfl.cpp: Ditto.
1449         * platform/gtk/ClipboardGtk.cpp: Ditto.
1450
1451 2013-05-19  Martin Robinson  <mrobinson@igalia.com>
1452
1453         GtkSelectionData length is off by one
1454         https://bugs.webkit.org/show_bug.cgi?id=113962
1455
1456         Reviewed by Anders Carlsson.
1457
1458         No new tests. Since drag data is interpreted as a null-terminated string
1459         this is difficult to test with a C program and we have no infrastructure
1460         built for using GIR tests.
1461
1462         * platform/gtk/PasteboardHelper.cpp:
1463         (WebCore::PasteboardHelper::fillSelectionData): Instead of including the null
1464         character in the paste data length, just include the string. This matches the behavior
1465         of Firefox.
1466
1467 2013-05-18  Simon Fraser  <simon.fraser@apple.com>
1468
1469         Hoist several chunks of code at the top of RenderLayer::paintLayerContents() onto new functions
1470         https://bugs.webkit.org/show_bug.cgi?id=116406
1471
1472         Reviewed by Andreas Kling.
1473         
1474         RenderLayer::paintLayerContents() was getting polluted with code related to filters,
1475         clipping and font subpixel quantization, and hard to follow.
1476         
1477         Move three hunks of code into new functions:
1478         setupFontSubpixelQuantization() now contains the code related to whether we disable
1479         font subpixel quantization on the context.
1480         setupClipPath() now contains code related to clipping to shapes and references.
1481         setupFilters() and applyFilters() contain code related to CSS filters.
1482         
1483         As part of this, the interaction with FilterEffectRendererHelper was simplified.
1484         It was convenient for setupFilters() to return a FilterEffectRendererHelper object
1485         if successful, so we use an OwnPtr<FilterEffectRendererHelper> now. In addition,
1486         the GraphicsContext swapping was moved from FilterEffectRendererHelper code into RenderLayer
1487         to make it easier to follow. FilterEffectRendererHelper no longer holds on to
1488         the old GraphicsContext.
1489
1490         No behavior change.
1491
1492         * rendering/FilterEffectRenderer.cpp:
1493         (WebCore::FilterEffectRendererHelper::filterContext):
1494         (WebCore::FilterEffectRendererHelper::beginFilterEffect):
1495         (WebCore::FilterEffectRendererHelper::applyFilterEffect):
1496         * rendering/FilterEffectRenderer.h:
1497         (WebCore::FilterEffectRendererHelper::FilterEffectRendererHelper):
1498         (WebCore::FilterEffectRendererHelper::hasStartedFilterEffect):
1499         (FilterEffectRendererHelper):
1500         * rendering/RenderLayer.cpp:
1501         (WebCore::RenderLayer::setupFontSubpixelQuantization):
1502         (WebCore::RenderLayer::setupClipPath):
1503         (WebCore::RenderLayer::setupFilters):
1504         (WebCore::RenderLayer::applyFilters):
1505         (WebCore::RenderLayer::paintLayerContents):
1506         * rendering/RenderLayer.h:
1507
1508 2013-05-18  Simon Fraser  <simon.fraser@apple.com>
1509
1510         Refactor RenderStyle::diff()
1511         https://bugs.webkit.org/show_bug.cgi?id=116397
1512
1513         Reviewed by Andreas Kling.
1514         
1515         RenderStyle::diff() was prone to being changed incorrectly, since there was
1516         a poorly documented ordering requirement: style changes that cause layout
1517         have to be detected before those that cause only repainting.
1518         
1519         In addition, the existing code made it impossible to separately ask whether
1520         a given style change requires a repaint, if we've already detected that it
1521         requires a positioned-movement-only layout.
1522         
1523         Fix by factoring the code into member functions that check for each type
1524         of style change.
1525         
1526         No behavior change.
1527
1528         * rendering/style/RenderStyle.cpp:
1529         (WebCore::positionChangeIsMovementOnly):
1530         (WebCore::RenderStyle::changeRequiresLayout):
1531         (WebCore::RenderStyle::changeRequiresPositionedLayoutOnly):
1532         (WebCore::RenderStyle::changeRequiresLayerRepaint):
1533         (WebCore::RenderStyle::changeRequiresRepaint):
1534         (WebCore::RenderStyle::changeRequiresRepaintIfText):
1535         (WebCore::RenderStyle::changeRequiresRecompositeLayer):
1536         (WebCore::RenderStyle::diff):
1537         * rendering/style/RenderStyle.h:
1538
1539 2013-05-18  Anders Carlsson  <andersca@apple.com>
1540
1541         Simplify the StorageArea setter functions
1542         https://bugs.webkit.org/show_bug.cgi?id=116402
1543
1544         Reviewed by Sam Weinig.
1545
1546         Move more security checking code to Storage so more code can be shared between WebKit1 and WebKit2.
1547
1548         * inspector/InspectorDOMStorageAgent.cpp:
1549         (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
1550         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
1551         * storage/Storage.cpp:
1552         (WebCore::Storage::setItem):
1553         (WebCore::Storage::removeItem):
1554         (WebCore::Storage::clear):
1555         * storage/StorageArea.h:
1556         (StorageArea):
1557         * storage/StorageAreaImpl.cpp:
1558         (WebCore::StorageAreaImpl::setItem):
1559         (WebCore::StorageAreaImpl::removeItem):
1560         (WebCore::StorageAreaImpl::clear):
1561         * storage/StorageAreaImpl.h:
1562         (StorageAreaImpl):
1563
1564 2013-05-18  Anders Carlsson  <andersca@apple.com>
1565
1566         Simplify StorageArea getter functions
1567         https://bugs.webkit.org/show_bug.cgi?id=116399
1568
1569         Reviewed by Sam Weinig.
1570
1571         Move the security and private browsing checks from StorageArea to Storage so we can share
1572         more code between WebKit1 and WebKit2.
1573
1574         * inspector/InspectorDOMStorageAgent.cpp:
1575         (WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
1576         Update to new StorageArea interface. The security checks are unnecessary here anyway because
1577         InspectorDOMStorageAgent::findStorageArea will only return a StorageArea that can be accessed
1578         by the frame's security origin.
1579         
1580         * storage/Storage.cpp:
1581         (WebCore::Storage::key):
1582         (WebCore::Storage::getItem):
1583         (WebCore::Storage::contains):
1584         * storage/StorageArea.h:
1585         (StorageArea):
1586         * storage/StorageAreaImpl.cpp:
1587         (WebCore::StorageAreaImpl::key):
1588         (WebCore::StorageAreaImpl::item):
1589         (WebCore::StorageAreaImpl::contains):
1590         * storage/StorageAreaImpl.h:
1591         (StorageAreaImpl):
1592
1593 2013-05-17  Simon Fraser  <simon.fraser@apple.com>
1594
1595         Garbage on page background while http://canberraballoons.com.au is loading
1596         https://bugs.webkit.org/show_bug.cgi?id=116384
1597         <rdar://problem/13930328>
1598
1599         Reviewed by Dan Bernstein.
1600
1601         This page loads a large JPEG image as the body background.
1602         ImageSource::frameHasAlphaAtIndex() always claims that JPEG images
1603         are opaque, but this isn't true if the frame is only partially loaded.
1604         However, this would cause FillLayer::hasOpaqueImage() to report that the
1605         background image is opaque, so we'd skip painting the background color.
1606         Unpainted content in an opaque layer results in garbage.
1607         
1608         Fix by having ImageSource::frameHasAlphaAtIndex() always return true
1609         for frames that are not complete. When the image load completes, we
1610         recompute metadata and correctly determine that the frame is opaque.
1611
1612         * platform/graphics/cg/ImageSourceCG.cpp:
1613         (WebCore::ImageSource::frameHasAlphaAtIndex):
1614
1615 2013-05-18  Timothy Hatcher  <timothy@apple.com>
1616
1617         Simplify EventLoop::cycle() on Mac.
1618
1619         https://webkit.org/b/116392
1620
1621         Reviewed by Anders Carlsson.
1622
1623         * platform/mac/EventLoopMac.mm:
1624         (WebCore::EventLoop::cycle): Use CFRunLoopRunInMode instead.
1625
1626 2013-05-18  Andreas Kling  <akling@apple.com>
1627
1628         Use CSSParserSelector::appendTagHistory() from CSS grammar.
1629         <http://webkit.org/b/116382>
1630
1631         Reviewed by Antti Koivisto.
1632
1633         CSSParserSelector already knows how to append another component to itself,
1634         no need to duplicate that logic in the grammar.
1635
1636         * css/CSSGrammar.y.in:
1637
1638 2013-05-18  Patrick Gansterer  <paroga@webkit.org>
1639
1640         [CMake] Replace *_LIBRARY_NAME with *_OUTPUT_NAME
1641         https://bugs.webkit.org/show_bug.cgi?id=114554
1642
1643         Reviewed by Gyuyoung Kim.
1644
1645         Using variables as target names is very uncommon in CMake.
1646         The usual way to specify the name of the resulting binary
1647         is to set the OUTPUT_NAME target property.
1648
1649         * CMakeLists.txt:
1650
1651 2013-05-18  Carlos Garcia Campos  <cgarcia@igalia.com>
1652
1653         [GTK] Move GTK port off legacy clipboard
1654         https://bugs.webkit.org/show_bug.cgi?id=116221
1655
1656         Reviewed by Martin Robinson.
1657
1658         Merge clipboard methods into PasteboardGtk that now wraps a
1659         DataObjectGtk.
1660
1661         * GNUmakefile.list.am: Remove ClipboardGtk.h.
1662         * dom/Clipboard.h: Remove GTK from the list of ports using legacy
1663         clipboard.
1664         * page/gtk/EventHandlerGtk.cpp:
1665         (WebCore::EventHandler::createDraggingClipboard): Use
1666         Clipboard::createForDragAndDrop().
1667         * platform/Pasteboard.h:
1668         (Pasteboard):
1669         * platform/gtk/ClipboardGtk.cpp:
1670         (WebCore::Editor::newGeneralClipboard): Use
1671         Clipboard::createForCopyAndPaste().
1672         (WebCore::Clipboard::createDragImage):
1673         (WebCore::Clipboard::declareAndWriteDragImage):
1674         * platform/gtk/ClipboardGtk.h: Removed.
1675         * platform/gtk/DragDataGtk.cpp:
1676         * platform/gtk/PasteboardGtk.cpp:
1677         (WebCore::Pasteboard::create): Create a new Pasteboard for a given
1678         GtkClipboard or DataObjectGtk.
1679         (WebCore::Pasteboard::createForCopyAndPaste): Create a Pasteboard
1680         for the GDK_SELECTION_CLIPBOARD clipboard.
1681         (WebCore::Pasteboard::createPrivate): Create a Pasteboard without
1682         a GtkClipboard associated.
1683         (WebCore::Pasteboard::createForDragAndDrop): Create a Pasteboard
1684         for drag and drop operations.
1685         (WebCore::selectionClipboard): Return a static Pasteboard for the
1686         GDK_SELECTION_CLIPBOARD clipboard.
1687         (WebCore::primaryClipboard): Return a static Pasteboard for the
1688         GDK_SELECTION_PRIMARY clipboard.
1689         (WebCore::Pasteboard::generalPasteboard): Return
1690         selectionClipboard() or primaryClipboard() depending on whether
1691         primary selection clipboard is the active one or not.
1692         (WebCore::Pasteboard::Pasteboard):
1693         (WebCore::Pasteboard::~Pasteboard):
1694         (WebCore::Pasteboard::dataObject): Return the wrapped DataObjectGtk.
1695         (WebCore::dataObjectTypeFromHTMLClipboardType): Copied from
1696         ClipboardGtk.cpp.
1697         (WebCore::Pasteboard::writeString): Adapted to upate the wrapped
1698         DataObjectGtk and the GtkClipboard if needed.
1699         (WebCore::Pasteboard::writeSelection): Ditto.
1700         (WebCore::Pasteboard::writePlainText): Ditto.
1701         (WebCore::Pasteboard::writeURL): Ditto.
1702         (WebCore::Pasteboard::writeImage): Ditto.
1703         (WebCore::Pasteboard::writePasteboard): Copy the wrapped
1704         DataObjectGtk from the DataObjectGtk of the given Pasteboard and
1705         upsate the GtkClipboard if needed.
1706         (WebCore::Pasteboard::clear): Copied from ClipboardGtk.cpp.
1707         (WebCore::Pasteboard::canSmartReplace): Check if current
1708         GtkClipboard supports smart replace.
1709         (WebCore::Pasteboard::setDragImage):
1710         (WebCore::Pasteboard::documentFragment): Adapted to use the
1711         wrapped DataObjectGtk reading from the current GtkClipboard if
1712         present.
1713         (WebCore::Pasteboard::plainText): Ditto.
1714         (WebCore::Pasteboard::hasData): Copied from ClipboardGtk.cpp.
1715         (WebCore::Pasteboard::types): Ditto.
1716         (WebCore::Pasteboard::readString): Ditto.
1717         (WebCore::Pasteboard::readFilenames): Ditto.
1718
1719 2013-05-18  Alberto Garcia  <agarcia@igalia.com>
1720
1721         [GTK] Parallel build fails if gtk-doc is enabled
1722         https://bugs.webkit.org/show_bug.cgi?id=116227
1723
1724         Reviewed by Martin Robinson.
1725
1726         * GNUmakefile.am:
1727         Don't overwrite noinst_DATA, modify its existing value instead.
1728
1729 2013-05-17  Michelangelo De Simone  <michelangelo@webkit.org>
1730
1731         CSSParser parsing of CSSPropertyFontStretch falls into CSSPropertyGeometry
1732         https://bugs.webkit.org/show_bug.cgi?id=116370
1733
1734         CSSPropertyFontStretch mistakenly fell through the shader parsing logic.
1735
1736         Reviewed by Alexandru Chiculita.
1737
1738         No new test possible, the feature is not implemented nor exposed.
1739
1740         * css/CSSParser.cpp:
1741         (WebCore::CSSParser::parseValue):
1742
1743 2013-05-17  Timothy Hatcher  <timothy@apple.com>
1744
1745         Force the script debug server to continue when disabling the debugger.
1746
1747         There might be some cases where the debugger will stay in the nested run loop
1748         which cause weird issues.
1749
1750         Speculative fix for: https://webkit.org/b/111438
1751
1752         Reviewed by Joseph Pecoraro.
1753
1754         * inspector/InspectorDebuggerAgent.cpp:
1755         (WebCore::InspectorDebuggerAgent::disable):
1756
1757 2013-05-16  Darin Adler  <darin@apple.com>
1758
1759         [BlackBerry] Get BlackBerry port off legacy clipboard
1760         https://bugs.webkit.org/show_bug.cgi?id=116287
1761
1762         Reviewed by Rob Buis.
1763
1764         * PlatformBlackBerry.cmake: Removed ClipboardBlackBerry.cpp.
1765
1766         * dom/Clipboard.h: Removed BLACKBERRY from the list of platforms that
1767         use the legacy clipboard.
1768
1769         * editing/blackberry/EditorBlackBerry.cpp:
1770         (WebCore::Editor::newGeneralClipboard): Changed to just create a copy
1771         and paste clipboard.
1772
1773         * page/blackberry/EventHandlerBlackBerry.cpp: Removed a drag-related
1774         function that wasn't doing any good.
1775
1776         * platform/blackberry/ClipboardBlackBerry.cpp: Removed.
1777         * platform/blackberry/ClipboardBlackBerry.h: Removed.
1778
1779         * platform/blackberry/PasteboardBlackBerry.cpp:
1780         (WebCore::Pasteboard::createForCopyAndPaste): Added.
1781         (WebCore::Pasteboard::createPrivate): Added.
1782         (WebCore::Pasteboard::hasData): Added. Moved code here from ClipboardBlackBerry.cpp.
1783         (WebCore::Pasteboard::clear): Ditto.
1784         (WebCore::Pasteboard::readString): Ditto.
1785         (WebCore::Pasteboard::writeString): Ditto.
1786         (WebCore::Pasteboard::types): Ditto.
1787         (WebCore::Pasteboard::readFilenames): Ditto.
1788
1789 2013-05-17  Andreas Kling  <akling@apple.com>
1790
1791         Ads on theverge.com cause repaints when hovered, even though content doesn't visibly change.
1792         <http://webkit.org/b/116344>
1793
1794         Reviewed by Darin Adler.
1795
1796         Teach RenderStyle::diff() to ignore differences in the outline value if both styles have non-visible outlines.
1797
1798         * rendering/style/RenderStyle.cpp:
1799         (WebCore::RenderStyle::diff):
1800         * rendering/style/StyleBackgroundData.cpp:
1801         (WebCore::StyleBackgroundData::isEquivalentForPainting):
1802         * rendering/style/StyleBackgroundData.h:
1803         (StyleBackgroundData):
1804
1805 2013-05-17  Andreas Kling  <akling@apple.com>
1806
1807         Plug leak in CSSSelectorList::deleteSelectors().
1808         <http://webkit.org/b/116371>
1809         <rdar://problem/13930698>
1810
1811         Reviewed by Ryosuke Niwa.
1812
1813         Don't forget to destroy the very last selector in the list.
1814
1815         * css/CSSSelectorList.cpp:
1816         (WebCore::CSSSelectorList::deleteSelectors):
1817
1818 2013-05-17  Anders Carlsson  <andersca@apple.com>
1819
1820         Share code between WebKit1 and WebKit2 StorageArea subclasses
1821         https://bugs.webkit.org/show_bug.cgi?id=116367
1822
1823         Reviewed by Andreas Kling.
1824
1825         * inspector/InspectorDOMStorageAgent.cpp:
1826         (WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
1827         Remove ec parameter.
1828
1829         * inspector/InspectorDOMStorageAgent.h:
1830         Add forward declaration.
1831
1832         * page/DOMWindow.cpp:
1833         (WebCore::DOMWindow::sessionStorage):
1834         (WebCore::DOMWindow::localStorage):
1835         Storage::StorageArea returns a reference now.
1836
1837         * storage/Storage.cpp:
1838         (WebCore::Storage::length):
1839         Check that the storage area can be accessed by the frame, and that it's not disabled by private browsing.
1840         Then call down to the (now simplified) StorageArea::length().
1841
1842         (WebCore::Storage::isDisabledByPrivateBrowsing):
1843         New helper function that's based on StorageAreaImpl::disabledByPrivateBrowsingInFrame, but reordered
1844         to make it easier to follow.
1845
1846         * storage/Storage.h:
1847         (WebCore::Storage::area):
1848         Return a reference.
1849
1850         * storage/StorageAreaImpl.cpp:
1851         (WebCore::StorageAreaImpl::storageType):
1852         Add this new virtual member funciton that's needed by Storage::isDisabledByPrivateBrowsing.
1853
1854         (WebCore::StorageAreaImpl::length):
1855         Remove unneeded code.
1856
1857 2013-05-17  Commit Queue  <commit-queue@webkit.org>
1858
1859         Unreviewed, rolling out r150294.
1860         http://trac.webkit.org/changeset/150294
1861         https://bugs.webkit.org/show_bug.cgi?id=116369
1862
1863         Caused 31 tests to fail (Requested by rniwa on #webkit).
1864
1865         * WebCore.exp.in:
1866         * rendering/InlineFlowBox.h:
1867         * rendering/InlineTextBox.h:
1868         (InlineTextBox):
1869         * rendering/RenderApplet.h:
1870         * rendering/RenderBR.h:
1871         * rendering/RenderBlock.h:
1872         (RenderBlock):
1873         (WebCore::RenderBlock::virtualContinuation):
1874         * rendering/RenderBox.h:
1875         (WebCore::RenderBox::borderBoundingBox):
1876         (RenderBox):
1877         (WebCore::RenderBox::marginLogicalLeft):
1878         (WebCore::RenderBox::marginLogicalRight):
1879         * rendering/RenderBoxModelObject.h:
1880         (WebCore::RenderBoxModelObject::isBoxModelObject):
1881         * rendering/RenderButton.h:
1882         * rendering/RenderCombineText.h:
1883         * rendering/RenderCounter.h:
1884         * rendering/RenderDeprecatedFlexibleBox.h:
1885         * rendering/RenderDetailsMarker.h:
1886         * rendering/RenderEmbeddedObject.h:
1887         (RenderEmbeddedObject):
1888         (WebCore::RenderEmbeddedObject::isEmbeddedObject):
1889         (WebCore::RenderEmbeddedObject::virtualChildren):
1890         * rendering/RenderFieldset.h:
1891         * rendering/RenderFileUploadControl.h:
1892         * rendering/RenderFlexibleBox.h:
1893         * rendering/RenderFlowThread.h:
1894         * rendering/RenderFrame.h:
1895         * rendering/RenderFrameSet.h:
1896         * rendering/RenderFullScreen.cpp:
1897         * rendering/RenderFullScreen.h:
1898         * rendering/RenderGrid.h:
1899         * rendering/RenderHTMLCanvas.h:
1900         * rendering/RenderIFrame.h:
1901         * rendering/RenderImage.h:
1902         (RenderImage):
1903         (WebCore::RenderImage::isRenderImage):
1904         * rendering/RenderInline.h:
1905         (RenderInline):
1906         (WebCore::RenderInline::virtualContinuation):
1907         (WebCore::RenderInline::virtualChildren):
1908         (WebCore::RenderInline::isRenderInline):
1909         (WebCore::RenderInline::layout):
1910         (WebCore::RenderInline::requiresLayer):
1911         (WebCore::RenderInline::offsetWidth):
1912         (WebCore::RenderInline::offsetHeight):
1913         (WebCore::RenderInline::borderBoundingBox):
1914         (WebCore::RenderInline::dirtyLinesFromChangedChild):
1915         * rendering/RenderLayerModelObject.h:
1916         * rendering/RenderListBox.h:
1917         * rendering/RenderListItem.h:
1918         * rendering/RenderListMarker.h:
1919         * rendering/RenderMedia.h:
1920         (WebCore::RenderMedia::virtualChildren):
1921         (WebCore::RenderMedia::canHaveChildren):
1922         (WebCore::RenderMedia::isMedia):
1923         (WebCore::RenderMedia::isImage):
1924         (WebCore::RenderMedia::requiresForcedStyleRecalcPropagation):
1925         * rendering/RenderMediaControlElements.h:
1926         * rendering/RenderMenuList.h:
1927         * rendering/RenderMeter.h:
1928         * rendering/RenderMultiColumnBlock.h:
1929         * rendering/RenderMultiColumnFlowThread.h:
1930         * rendering/RenderMultiColumnSet.h:
1931         * rendering/RenderNamedFlowThread.h:
1932         * rendering/RenderPart.h:
1933         (RenderPart):
1934         (WebCore::RenderPart::isRenderPart):
1935         (WebCore::RenderPart::renderName):
1936         * rendering/RenderProgress.h:
1937         * rendering/RenderRegion.h:
1938         (WebCore::RenderRegion::isRenderRegion):
1939         * rendering/RenderRegionSet.h:
1940         * rendering/RenderReplaced.h:
1941         (RenderReplaced):
1942         (WebCore::RenderReplaced::renderName):
1943         * rendering/RenderReplica.h:
1944         * rendering/RenderRuby.h:
1945         * rendering/RenderRubyBase.h:
1946         * rendering/RenderRubyRun.h:
1947         * rendering/RenderRubyText.h:
1948         * rendering/RenderScrollbarPart.h:
1949         * rendering/RenderSearchField.h:
1950         * rendering/RenderSlider.h:
1951         * rendering/RenderSnapshottedPlugIn.h:
1952         (RenderSnapshottedPlugIn):
1953         * rendering/RenderTable.h:
1954         (RenderTable):
1955         (WebCore::RenderTable::renderName):
1956         (WebCore::RenderTable::isTable):
1957         (WebCore::RenderTable::avoidsFloats):
1958         * rendering/RenderTableCaption.h:
1959         * rendering/RenderTableCell.h:
1960         * rendering/RenderTableCol.h:
1961         * rendering/RenderTableRow.h:
1962         * rendering/RenderTableSection.h:
1963         * rendering/RenderText.h:
1964         (RenderText):
1965         (WebCore::RenderText::marginLeft):
1966         (WebCore::RenderText::marginRight):
1967         (WebCore::RenderText::styleWillChange):
1968         (WebCore::RenderText::length):
1969         (WebCore::RenderText::paint):
1970         (WebCore::RenderText::layout):
1971         * rendering/RenderTextControl.h:
1972         (RenderTextControl):
1973         (WebCore::RenderTextControl::renderName):
1974         (WebCore::RenderTextControl::isTextControl):
1975         (WebCore::RenderTextControl::avoidsFloats):
1976         * rendering/RenderTextControlMultiLine.h:
1977         * rendering/RenderTextControlSingleLine.h:
1978         (RenderTextControlSingleLine):
1979         (WebCore::RenderTextControlSingleLine::isTextField):
1980         * rendering/RenderTextFragment.h:
1981         * rendering/RenderTextTrackCue.h:
1982         * rendering/RenderVideo.h:
1983         * rendering/RenderView.h:
1984         * rendering/RenderWidget.h:
1985         (RenderWidget):
1986         (WebCore::RenderWidget::isWidget):
1987         * rendering/RenderWordBreak.h:
1988         * rendering/RootInlineBox.h:
1989         (RootInlineBox):
1990         * rendering/mathml/RenderMathMLBlock.h:
1991         * rendering/svg/RenderSVGBlock.h:
1992         (RenderSVGBlock):
1993         * rendering/svg/RenderSVGContainer.h:
1994         (WebCore::RenderSVGContainer::setNeedsBoundariesUpdate):
1995         (WebCore::RenderSVGContainer::virtualChildren):
1996         (WebCore::RenderSVGContainer::isSVGContainer):
1997         (WebCore::RenderSVGContainer::renderName):
1998         (RenderSVGContainer):
1999         (WebCore::RenderSVGContainer::objectBoundingBox):
2000         (WebCore::RenderSVGContainer::strokeBoundingBox):
2001         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
2002         * rendering/svg/RenderSVGEllipse.h:
2003         * rendering/svg/RenderSVGForeignObject.h:
2004         * rendering/svg/RenderSVGGradientStop.h:
2005         * rendering/svg/RenderSVGHiddenContainer.h:
2006         (WebCore::RenderSVGHiddenContainer::renderName):
2007         (RenderSVGHiddenContainer):
2008         (WebCore::RenderSVGHiddenContainer::isSVGHiddenContainer):
2009         * rendering/svg/RenderSVGImage.h:
2010         * rendering/svg/RenderSVGInline.h:
2011         (WebCore::RenderSVGInline::renderName):
2012         (WebCore::RenderSVGInline::requiresLayer):
2013         (WebCore::RenderSVGInline::isSVGInline):
2014         (RenderSVGInline):
2015         * rendering/svg/RenderSVGInlineText.h:
2016         * rendering/svg/RenderSVGModelObject.h:
2017         (WebCore::RenderSVGModelObject::requiresLayer):
2018         (RenderSVGModelObject):
2019         * rendering/svg/RenderSVGPath.h:
2020         * rendering/svg/RenderSVGRect.h:
2021         * rendering/svg/RenderSVGResourceClipper.h:
2022         * rendering/svg/RenderSVGResourceContainer.h:
2023         (RenderSVGResourceContainer):
2024         (WebCore::RenderSVGResourceContainer::isSVGResourceContainer):
2025         (WebCore::RenderSVGResourceContainer::toRenderSVGResourceContainer):
2026         * rendering/svg/RenderSVGResourceFilter.h:
2027         * rendering/svg/RenderSVGResourceFilterPrimitive.h:
2028         * rendering/svg/RenderSVGResourceGradient.h:
2029         (RenderSVGResourceGradient):
2030         (WebCore::RenderSVGResourceGradient::resourceBoundingBox):
2031         * rendering/svg/RenderSVGResourceLinearGradient.h:
2032         * rendering/svg/RenderSVGResourceMarker.h:
2033         * rendering/svg/RenderSVGResourceMasker.h:
2034         * rendering/svg/RenderSVGResourcePattern.h:
2035         * rendering/svg/RenderSVGResourceRadialGradient.h:
2036         * rendering/svg/RenderSVGRoot.h:
2037         * rendering/svg/RenderSVGShape.h:
2038         (WebCore::RenderSVGShape::setNeedsBoundariesUpdate):
2039         (WebCore::RenderSVGShape::setNeedsTransformUpdate):
2040         (WebCore::RenderSVGShape::repaintRectInLocalCoordinates):
2041         (WebCore::RenderSVGShape::localToParentTransform):
2042         (WebCore::RenderSVGShape::localTransform):
2043         (WebCore::RenderSVGShape::isSVGShape):
2044         (RenderSVGShape):
2045         (WebCore::RenderSVGShape::objectBoundingBox):
2046         (WebCore::RenderSVGShape::strokeBoundingBox):
2047         * rendering/svg/RenderSVGTSpan.h:
2048         * rendering/svg/RenderSVGText.h:
2049         * rendering/svg/RenderSVGTextPath.h:
2050         * rendering/svg/RenderSVGTransformableContainer.h:
2051         * rendering/svg/RenderSVGViewportContainer.h:
2052
2053 2013-05-17  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2054
2055         Get rid of Custom code for Audio global constructor
2056         https://bugs.webkit.org/show_bug.cgi?id=116343
2057
2058         Reviewed by Geoffrey Garen.
2059
2060         Remove custom code for Audio global constructor. It is no longer needed
2061         now that the the bindings generator no longer require custom code for
2062         named constructors and now that [EnabledAtRuntime] extended attribute is
2063         supported for global constructors.
2064
2065         HTMLAudioElement global constructors are now automatically generated.
2066
2067         No new tests, no behavior change for layout tests.
2068
2069         * bindings/js/JSDOMWindowCustom.cpp:
2070         * html/HTMLAudioElement.idl:
2071         * page/DOMWindow.idl:
2072
2073 2013-05-17  Alexey Proskuryakov  <ap@apple.com>
2074
2075         <rdar://problem/13819878> Disable SharedWorker when in multiple web process model
2076         https://bugs.webkit.org/show_bug.cgi?id=116359
2077
2078         Reviewed by Anders Carlsson.
2079
2080         This feature was already RuntimeEnabled. Call through layers to get the answer from
2081         a platform strategy.
2082
2083         * workers/DefaultSharedWorkerRepository.cpp:
2084         (WebCore::DefaultSharedWorkerRepository::isAvailable):
2085         * workers/DefaultSharedWorkerRepository.h:
2086         * workers/SharedWorkerRepository.cpp:
2087         (WebCore::SharedWorkerRepository::isAvailable):
2088         * workers/SharedWorkerStrategy.h:
2089         (WebCore::SharedWorkerStrategy::isAvailable):
2090
2091 2013-05-17  Anders Carlsson  <andersca@apple.com>
2092
2093         Move Storage member functions out of line
2094         https://bugs.webkit.org/show_bug.cgi?id=116364
2095
2096         Reviewed by Andreas Kling.
2097
2098         This is preparation for sharing more code between the WebKit1 and WebKit2 storage area subclasses.
2099         Also remove unnecessary null checks and make m_storageArea const.
2100
2101         * storage/Storage.cpp:
2102         (WebCore::Storage::length):
2103         (WebCore::Storage::key):
2104         (WebCore::Storage::getItem):
2105         (WebCore::Storage::setItem):
2106         (WebCore::Storage::removeItem):
2107         (WebCore::Storage::clear):
2108         (WebCore::Storage::contains):
2109         * storage/Storage.h:
2110         (WebCore::Storage::area):
2111
2112 2013-05-17  Beth Dakin  <bdakin@apple.com>
2113
2114         Headers and footers will sometimes disappear and re-appear during page loads
2115         https://bugs.webkit.org/show_bug.cgi?id=116336
2116         -and corresponding-
2117         <rdar://problem/13886753>
2118
2119         Reviewed by Simon Fraser.
2120
2121         This patch changes the WebCore-level API that WebKit uses to create a banner. 
2122         Specifically this patch removes FrameView::setWantsLayerForHeader(), which created 
2123         and returned a layer. Instead, WK2 will call Page::addHeaderWithHeight(). When the 
2124         layer has been created, it will call back into WK2 via ChromeClient. This will 
2125         allow WebCore to re-create the header/footer layers as needed whenever the 
2126         FrameView/RenderLayerCompositor have been destroyed and recreated.
2127
2128         Remove references to old FrameView functions. Add references to new Page 
2129         functions.
2130         * WebCore.exp.in:
2131
2132         New ChromeClient functions will pass the new layers up to WK2.
2133         * page/ChromeClient.h:
2134         (WebCore::ChromeClient::didAddHeaderLayer):
2135         (WebCore::ChromeClient::didAddFooterLayer):
2136         (ChromeClient):
2137
2138         Remove setWantsLayerForHeader/Footer.
2139         * page/FrameView.cpp:
2140         * page/FrameView.h:
2141         (FrameView):
2142
2143         Page now caches the header and footer height. When the FrameView/RLC have been 
2144         destroyed, and the cached layer/height information on those classes has been lost, 
2145         this data on Page will persist so that we can build the layers back up.
2146         * page/Page.cpp:
2147         (WebCore::Page::Page):
2148         (WebCore::Page::addHeaderWithHeight):
2149         (WebCore::Page::addFooterWithHeight):
2150         * page/Page.h:
2151         (WebCore::Page::headerHeight):
2152         (WebCore::Page::footerHeight):
2153
2154         As soon as the root gets a backing, recreate the header and footer layers if 
2155         needed.
2156         * rendering/RenderLayerCompositor.cpp:
2157         (WebCore::RenderLayerCompositor::updateBacking):
2158
2159         Call into ChromeClient.
2160         (WebCore::RenderLayerCompositor::updateLayerForHeader):
2161         (WebCore::RenderLayerCompositor::updateLayerForFooter):
2162
2163 2013-05-18  Claudio Saavedra  <csaavedra@igalia.com>
2164
2165         [CSS] Minor cleanups in CSS variables handling
2166         https://bugs.webkit.org/show_bug.cgi?id=116318
2167
2168         Reviewed by Ryosuke Niwa.
2169
2170         No new tests, only a cleanup.
2171
2172         * css/CSSParser.cpp:
2173         (WebCore::CSSParserString::substring): Optimize.
2174         (WebCore::CSSParser::createPrimitiveVariableNameValue):
2175         Remove intermediate variable.
2176
2177 2013-05-17  Alexey Proskuryakov  <ap@apple.com>
2178
2179         [Mac] Add DOMWindowConstructors.idl to Xcode project file
2180         https://bugs.webkit.org/show_bug.cgi?id=116351
2181
2182         Reviewed by Anders Carlsson.
2183
2184         * WebCore.xcodeproj/project.pbxproj: Added the file, so that Xcode includes it
2185         in searches.
2186
2187 2013-05-17  Ryosuke Niwa  <rniwa@webkit.org>
2188
2189         Remove the declaration of Element::detachAttrNodeAtIndex erroneously added in r150072.
2190
2191         * dom/Element.h:
2192         (Element):
2193
2194 2013-05-17  Anders Carlsson  <andersca@apple.com>
2195
2196         WKKeyValueStorageManagerGetKeyValueStorageOrigins should get origins from the UI process
2197         https://bugs.webkit.org/show_bug.cgi?id=116346
2198         <rdar://problem/13852829>
2199
2200         Reviewed by Andreas Kling.
2201
2202         Export the UTF8Encoding symbol.
2203
2204         * WebCore.exp.in:
2205
2206 2013-05-17  Andreas Kling  <akling@apple.com>
2207
2208         Apply FINAL to the RenderObject hierarchy.
2209         <http://webkit.org/b/115977>
2210
2211         Mostly from Blink r148795 by <cevans@chromium.org>
2212         <http://src.chromium.org/viewvc/blink?view=revision&revision=148795>
2213
2214         Re-landing without devirtualization tweaks.
2215
2216         * rendering/: Beat things with the FINAL stick.
2217         * WebCore.exp.in: Export a now-needed symbol.
2218
2219 2013-05-17  Alexey Proskuryakov  <ap@apple.com>
2220
2221         Build fix.
2222
2223         * loader/FrameLoader.cpp: (WebCore::FrameLoader::willTransitionToCommitted):
2224         Frame:editor() now returns a reference.
2225
2226 2013-05-17  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2227
2228         Get rid of [ConstructorParameters] extended attributes
2229         https://bugs.webkit.org/show_bug.cgi?id=116308
2230
2231         Reviewed by Kentaro Hara.
2232
2233         Get rid of WebKit-specific [ConstructorParameters] IDL extended attribute. Instead,
2234         [CustomConstructor] arguments are now explicitly specified, similarly to [Constructor]
2235         arguments and the constructor object's "length" property is now automatically
2236         computed for custom constructors as well.
2237
2238         This is less error-prone as the value is not hardcoded, more consistent with
2239         [Constructor] extended attribute and gives more information about the custom constructor
2240         in the IDL file. We also get rid of a WebKit-specific IDL attribute which is always
2241         nice.
2242
2243         No new tests, already covered by fast/js/constructor-length.html.
2244
2245         * Modules/mediastream/MediaStream.idl:
2246         * Modules/webaudio/AudioContext.idl:
2247         * Modules/websockets/WebSocket.idl:
2248         * bindings/scripts/CodeGeneratorJS.pm:
2249         (GenerateConstructorHelperMethods):
2250         * bindings/scripts/IDLAttributes.txt:
2251         * bindings/scripts/IDLParser.pm:
2252         (applyTypedefs):
2253         (parseAttributeRest):
2254         (copyExtendedAttributes):
2255         (parseExtendedAttributeRest):
2256         (applyExtendedAttributeList):
2257         * bindings/scripts/test/JS/JSFloat64Array.cpp:
2258         (WebCore::JSFloat64ArrayConstructor::finishCreation):
2259         * bindings/scripts/test/TestTypedArray.idl:
2260         * dom/MutationObserver.idl:
2261         * fileapi/Blob.idl:
2262         * html/DOMFormData.idl:
2263         * html/canvas/ArrayBuffer.idl:
2264         * html/canvas/DataView.idl:
2265         * page/WebKitPoint.idl:
2266         * workers/SharedWorker.idl:
2267         * workers/Worker.idl:
2268
2269 2013-05-17  Alexey Proskuryakov  <ap@apple.com>
2270
2271         Text input is largely broken when there are subframes loading
2272         http://bugs.webkit.org/show_bug.cgi?id=59121
2273         <rdar://problem/9320468>
2274
2275         Reviewed by Darin Adler.
2276
2277         This addresses text input being abandoned when another frame in a page is navigated.
2278
2279         There are still many opportunities for improvement:
2280         - Track other cases where WebCore interferes may want to cancel input without
2281         direct user action (e.g. deleting the whole editable element on a timer).
2282         - Fix how dictionary panel and autocorrection are dismissed (they still have the
2283         same issue, and get dismissed with any frame navigation).
2284
2285         Test: platform/mac/editing/input/unconfirmed-text-navigation-with-page-cache.html
2286
2287         * loader/FrameLoader.h:
2288         * loader/FrameLoader.cpp:
2289         (WebCore::FrameLoader::willTransitionToCommitted): Make sure that we
2290         do not keep an inline session in a frame that's no longer active, as WebKit2 no
2291         longer takes care of this case (and more of the logic should be in WebCore anyway).
2292         (WebCore::FrameLoader::commitProvisionalLoad): Added a hook that gets invoked right
2293         before transitioning to committed state starts. We may want to move more code here
2294         eventually, e.g. from Frame::setView.
2295
2296 2013-05-17  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2297
2298         Get rid of [CustomGetter] for global named constructors
2299         https://bugs.webkit.org/show_bug.cgi?id=116116
2300
2301         Reviewed by Geoffrey Garen.
2302
2303         Improve the JSC bindings generator so that global named constructors no longer
2304         require a [CustomGetter] IDL extended attribute. As a consequence, attributes
2305         on the global window object can now be automatically generated for interfaces
2306         that have a [NamedConstructor], namely HTMLOptionElement.
2307
2308         The HTMLAudioElement global constructors are still manually defined because it
2309         requires custom code at the moment to check if the media player is available.
2310
2311         No new tests, no behavior change.
2312
2313         * bindings/js/JSDOMWindowCustom.cpp:
2314         * bindings/scripts/CodeGeneratorJS.pm:
2315         * bindings/scripts/preprocess-idls.pl:
2316         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2317         * bindings/scripts/test/JS/JSTestNamedConstructor.h:
2318         * html/HTMLOptionElement.idl:
2319         * page/DOMWindow.idl:
2320
2321 2013-05-17  Joseph Pecoraro  <pecoraro@apple.com>
2322
2323         Web Inspector: SyntaxError evaluating "1+1; //@ sourceURL=test" in console
2324         https://bugs.webkit.org/show_bug.cgi?id=116292
2325
2326         Add a newline after the expression so a single line comment doesn't
2327         erroneously comment out the closing brace of the with block.
2328
2329         Reviewed by Timothy Hatcher.
2330
2331         Test: inspector/console/console-eval-comment.html
2332
2333         * inspector/InjectedScriptSource.js:
2334
2335 2013-05-17  David Hyatt  <hyatt@apple.com>
2336
2337         fast/flexbox/auto-height-with-flex.html failing only on release builds.
2338         https://bugs.webkit.org/show_bug.cgi?id=116240
2339
2340         Reviewed by Darin Adler.
2341
2342         Fix the mainAxisContentExtent method so no overflow occurs, since it
2343         doesn't work right on release builds.
2344
2345         * rendering/RenderFlexibleBox.cpp:
2346         (WebCore::RenderFlexibleBox::mainAxisContentExtent):
2347
2348 2013-05-17  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2349
2350         Add [EnabledAtRuntime] extended attribute support for global constructors
2351         https://bugs.webkit.org/show_bug.cgi?id=116147
2352
2353         Reviewed by Geoffrey Garen.
2354
2355         Add [EnabledAtRuntime] extended attribute support for global constructors.
2356         This patch adds [EnabledAtRuntime] extended attribute to SharedWorker and
2357         WebSocket IDL interfaces so that their global constructors on the global
2358         Window object can now be automatically generated.
2359
2360         The behavior on JavaScript side is unchanged. We simply leverage
2361         RuntimeEnabledFeatures class and the new [EnabledAtRuntime] IDL extended
2362         attribute to generate the code for global constructors getters instead
2363         of using custom code.
2364
2365         No new tests, no behavior change for layout tests.
2366
2367         * GNUmakefile.list.am:
2368         * Modules/websockets/WebSocket.cpp: Enable WebSockets at runtime by default.
2369         * Modules/websockets/WebSocket.idl:
2370         * Target.pri:
2371         * UseJSC.cmake:
2372         * WebCore.vcproj/WebCore.vcproj:
2373         * WebCore.vcxproj/WebCore.vcxproj:
2374         * WebCore.vcxproj/WebCore.vcxproj.filters:
2375         * WebCore.xcodeproj/project.pbxproj:
2376         * bindings/js/JSBindingsAllInOne.cpp:
2377         * bindings/js/JSDOMWindowCustom.cpp:
2378         (WebCore):
2379         * bindings/js/JSDOMWindowWebSocketCustom.cpp: Removed.
2380         * bindings/scripts/CodeGeneratorJS.pm:
2381         (ToMethodName):
2382         (GetRuntimeEnableFunctionName):
2383         (GenerateImplementation):
2384         * bindings/scripts/IDLAttributes.txt:
2385         * page/DOMWindow.idl:
2386         * workers/SharedWorker.idl:
2387
2388 2013-05-17  Darin Adler  <darin@apple.com>
2389
2390         [EFL] Move EFL port off legacy clipboard
2391         https://bugs.webkit.org/show_bug.cgi?id=116181
2392
2393         Reviewed by Anders Carlsson.
2394
2395         * dom/Clipboard.h: Switched EFL away from "legacy" mode for Clipboard.
2396
2397         * page/efl/EventHandlerEfl.cpp:
2398         (WebCore::EventHandler::createDraggingClipboard): Changed to call Clipboard member function.
2399
2400         * platform/efl/ClipboardEfl.cpp: Deleted most of the functions.
2401         (WebCore::Editor::newGeneralClipboard): Changed to call Clipboard member function.
2402         (WebCore::Clipboard::createDragImage): Moved from ClipboardEfl to Clipboard.
2403         (WebCore::Clipboard::declareAndWriteDragImage): Moved from ClipboardEfl to Clipboard.
2404         (WebCore::Clipboard::items): Ditto.
2405
2406         * platform/efl/PasteboardEfl.cpp: A lot of copyright notices for a file that
2407         has no code in it other than notImplemented lines! I didn't add a new one.
2408         (WebCore::Pasteboard::createForCopyAndPaste): Added.
2409         (WebCore::Pasteboard::createPrivate): Added.
2410         (WebCore::Pasteboard::createForDragAndDrop): Added.
2411         (WebCore::Pasteboard::hasData): Added.
2412         (WebCore::Pasteboard::readString): Added.
2413         (WebCore::Pasteboard::writeString): Added.
2414         (WebCore::Pasteboard::types): Added.
2415         (WebCore::Pasteboard::readFilenames): Added.
2416         (WebCore::Pasteboard::setDragImage): Added.
2417         (WebCore::Pasteboard::writePasteboard): Added.
2418
2419 2013-05-17  Frédéric Wang  <fred.wang@free.fr>
2420
2421         Bad spacing inside MathML formulas when text-indent is specified
2422         https://bugs.webkit.org/show_bug.cgi?id=106600
2423
2424         Reviewed by Martin Robinson.
2425
2426         When MathML is used in a HTML page that modifies the CSS text-indent,
2427         large gaps appear inside the mathematical expressions. Resetting it to
2428         0 on the math root (as Gecko does) fixes the issue.
2429
2430         Tests: mathml/presentation/text-indent.html
2431                mathml/presentation/text-indent-expected.html
2432
2433         * css/mathml.css:
2434         (math): reset text-indent to its default value.
2435
2436 2013-05-17  Alberto Garcia  <agarcia@igalia.com>
2437
2438         Fix code that expects Page::chrome() to return a pointer
2439         https://bugs.webkit.org/show_bug.cgi?id=116313
2440
2441         Reviewed by Darin Adler.
2442
2443         Page::chrome() returns a reference after r150214.
2444
2445         * platform/network/blackberry/NetworkManager.cpp:
2446         (WebCore::NetworkManager::startJob):
2447         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
2448         (WebCore::SocketStreamHandle::SocketStreamHandle):
2449         * testing/Internals.cpp:
2450         (WebCore::Internals::resetToConsistentState):
2451         (WebCore::Internals::setEnableMockPagePopup):
2452
2453 2013-05-17  Alberto Garcia  <agarcia@igalia.com>
2454
2455         [BlackBerry] ImageBlackBerry: add missing BlendMode parameter
2456         https://bugs.webkit.org/show_bug.cgi?id=116316
2457
2458         Reviewed by Carlos Garcia Campos.
2459
2460         When the new BitmapImage::draw() method was added in r147110 it
2461         didn't include the BlendMode parameter, which has been there since
2462         r137011.
2463
2464         * platform/graphics/blackberry/ImageBlackBerry.cpp:
2465         (WebCore::BitmapImage::draw):
2466
2467 2013-05-16  Jer Noble  <jer.noble@apple.com>
2468
2469         Some media/track tests fail or assert on Mac
2470         https://bugs.webkit.org/show_bug.cgi?id=97132
2471
2472         Reviewed by Simon Fraser.
2473
2474         Rationalize the font and padding behavior of cues and cue boxes; ::cue pseudo elements cannot have padding
2475         values applied via CSS (due to padding not being included in the whitelist of applicable CSS properties).
2476         Also, the font values were being applied to the box at one level and the cue at another, leading to incorrect
2477         layout in the snapToLines case. Padding has been removed from the cue, and the font settings are now applied
2478         to the box exclusively.
2479
2480         Additionally, a few drive-by changes were made in TextTrackCue to the return values of displayTreeInternal() &
2481         element(), which previously returned a PassRefPtr<> instead of a plain pointer.
2482
2483         * css/mediaControls.css:
2484         (video::-webkit-media-text-track-container): Move the font size to the display selector.
2485         (video::cue): Remove the display:inline and padding:2px declarations.
2486         (video::-webkit-media-text-track-display): Remove the -webkit-line-content now that the ::cue has no padding.
2487         * html/track/TextTrackCue.cpp:
2488         (WebCore::TextTrackCue::TextTrackCue): The background box is now a span, rather than a forced-inline div.
2489         (WebCore::TextTrackCue::displayTreeInternal): Return a plain pointer.
2490         (WebCore::TextTrackCue::getDisplayTree): Ditto.
2491         (WebCore::TextTrackCue::setFontSize): Set the font on the box, not the cue.
2492         * html/track/TextTrackCue.h:
2493         (WebCore::TextTrackCue::element): Return a plain pointer.
2494         * html/track/TextTrackCueGeneric.cpp:
2495         (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties): The cue element is now a span, not a div.
2496         * page/CaptionUserPreferencesMac.mm:
2497         (WebCore::CaptionUserPreferencesMac::captionsWindowCSS): Whitespace.
2498         (WebCore::CaptionUserPreferencesMac::captionsBackgroundCSS): Do not set padding on the cue.
2499
2500 2013-05-16  Andreas Kling  <akling@apple.com>
2501
2502         Changes in text-only properties shouldn't cause repaints unless there is actually text.
2503         <http://webkit.org/b/116250>
2504
2505         Reviewed by Antti Koivisto.
2506
2507         Add a new StyleDifferenceRepaintIfText value to the repertoire of RenderStyle::diff().
2508         This result means that the renderer only needs to repaint if one of its immediate children contains text.
2509
2510         This lets us avoid repainting the same pixels when hovering over constructs like:
2511
2512             <style>
2513                 a { text-decoration: none; }
2514                 a:hover { text-decoration: underline; }
2515             </style>
2516             <a href="http://is.gd/andersca">
2517                 <img src="cool-hat.jpg">
2518             </a>
2519
2520         Since the change in text-decoration has no effect on the rendering of the <img> element,
2521         we'll now be smart enough to avoid repainting it.
2522
2523         * rendering/style/RenderStyleConstants.h:
2524         * rendering/style/RenderStyle.cpp:
2525         (WebCore::RenderStyle::diff):
2526
2527             Move checking of text-only properties until the very end, and return StyleDifferenceRepaintIfText
2528             in case a difference is found, giving precedence to StyleDifferenceRepaint.
2529
2530         * rendering/RenderObject.h:
2531         * rendering/RenderObject.cpp:
2532         (WebCore::RenderObject::hasImmediateNonWhitespaceTextChild):
2533
2534             Helper to check if a RenderObject has at least one RenderText child containing more than just
2535             collapsible whitespace.
2536
2537         (WebCore::RenderObject::shouldRepaintForStyleDifference):
2538
2539             Helper to check if a StyleDifference is either ...Repaint or ...RepaintIfText and the renderer
2540             has an immediate text child.
2541
2542         (WebCore::RenderObject::styleWillChange):
2543         (WebCore::RenderObject::setStyle):
2544
2545             Don't repaint for StyleDifferenceRepaintIfText unless hasImmediateNonWhitespaceTextChild().
2546
2547         * rendering/RenderBox.cpp:
2548         (WebCore::RenderBox::styleDidChange):
2549         * rendering/svg/SVGResourcesCache.cpp:
2550         (WebCore::SVGResourcesCache::clientStyleChanged):
2551
2552             Tweak for new StyleDifference enum value.
2553
2554         * rendering/RenderText.h:
2555         * rendering/RenderText.cpp:
2556         (WebCore::RenderText::isAllCollapsibleWhitespace):
2557
2558             Made this const.
2559
2560 2013-05-17  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
2561
2562         Improve -webkit-text-underline-position memory usage.
2563         https://bugs.webkit.org/show_bug.cgi?id=116108
2564
2565         Reviewed by Benjamin Poulain.
2566
2567         Remove m_maxLogicalTop private variable from RootInlineBox to reduce
2568         the overall memory used to render RootInlineBoxes (eight bytes per RootInlineBox
2569         instance in a 64-bit machine). RootInline::maxLogicalTop() now computes
2570         the maxLogicalTop value everytime it is called. In a typical page
2571         computeMaxLogicalTop is called less than 10 times for each
2572         InlineTextBox that uses -webkit-text-underline-position. That is a small
2573         price users of -webkit-text-underline-position will pay so that
2574         everybody can benefit from the memory reduction in RootInlineBox.
2575
2576         No new tests, no change in behavior.
2577
2578         * rendering/InlineFlowBox.cpp:
2579         (WebCore::InlineFlowBox::computeMaxLogicalTop): Make it const.
2580         * rendering/InlineFlowBox.h:
2581         * rendering/RootInlineBox.cpp:
2582         (WebCore::RootInlineBox::RootInlineBox): Remove m_maxLogicalTop.
2583         (WebCore::RootInlineBox::alignBoxesInBlockDirection): Remove
2584         computeMaxLogicalTop call and obsolete comment.
2585         (WebCore):
2586         (WebCore::RootInlineBox::maxLogicalTop): Compute maxLogicalTop before
2587         returning its value.
2588         * rendering/RootInlineBox.h:
2589         (RootInlineBox):
2590
2591 2013-05-17  Alexis Menard  <alexis@webkit.org>
2592
2593         Make sure to call release() on our smart pointers when we should.
2594         https://bugs.webkit.org/show_bug.cgi?id=116307
2595
2596         Reviewed by Andreas Kling.
2597
2598         Call release() when we should call it. There is probably more occurence
2599         of this problem on the codebase but this is a first bunch of fixes.
2600
2601         No new tests : existing ones should cover.
2602
2603         * css/CSSComputedStyleDeclaration.cpp:
2604         (WebCore::valueForNinePieceImage):
2605         (WebCore::getBorderRadiusShorthandValue):
2606         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
2607         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2608         (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForSidesShorthand):
2609         (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForGridShorthand):
2610         * css/CSSParser.cpp:
2611         (WebCore::CSSParser::parseBorderImage):
2612         * html/HTMLBodyElement.cpp:
2613         (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute):
2614
2615 2013-05-17  Allan Sandfeld Jensen  <allan.jensen@digia.com>
2616
2617         Make PNGImageDecoder::rowAvailable auto-vectorizable
2618         https://bugs.webkit.org/show_bug.cgi?id=116151
2619
2620         Reviewed by Benjamin Poulain.
2621
2622         Changed the main loops under PNGImageDecoder::rowAvailable so that they
2623         avoid branches and non-sequential table look ups.
2624
2625         Together with automatic vectorization by the compiler this provides around
2626         4x speed-up with AVX or 2x speed-up on generic x64. Shaving off 12-40% on
2627         PNG decoding in general.
2628
2629         * platform/graphics/Color.cpp:
2630         (WebCore::premultipliedARGBFromColor):
2631         * platform/graphics/Color.h:
2632         (WebCore::fastDivideBy255):
2633         * platform/graphics/filters/FEBlend.cpp:
2634         * platform/image-decoders/png/PNGImageDecoder.cpp:
2635         (WebCore::setPixelRGB):
2636         (WebCore::setPixelRGBA):
2637         (WebCore::setPixelRGBA_Premultiplied):
2638         (WebCore::PNGImageDecoder::rowAvailable):
2639
2640 2013-05-17  Joseph Pecoraro  <pecoraro@apple.com>
2641
2642         Web Inspector: Allow "//# sourceMappingURL" syntax alongside "//@"
2643         https://bugs.webkit.org/show_bug.cgi?id=116290
2644
2645         Follow an update to the spec and support the new and old syntax.
2646
2647         Reviewed by Timothy Hatcher.
2648
2649         * inspector/ContentSearchUtils.cpp:
2650         (WebCore::ContentSearchUtils::scriptCommentPattern):
2651         (WebCore::ContentSearchUtils::stylesheetCommentPattern):
2652         * inspector/front-end/SASSSourceMapping.js:
2653         (WebInspector.SASSSourceMapping.prototype._loadAndProcessSourceMap):
2654
2655 2013-05-17  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2656
2657         Remove custom code for MessageEvent.ports getter
2658         https://bugs.webkit.org/show_bug.cgi?id=116304
2659
2660         Reviewed by Kentaro Hara.
2661
2662         Remove Custom code for the "ports" attribute getter in MessageEvent
2663         IDL interface. The JSC bindings generator already supports attributes
2664         of type MessagePortArray.
2665
2666         No new tests, already covered by existing layout tests and bindings
2667         tests.
2668
2669         * bindings/js/JSMessageEventCustom.cpp: Remove Custom code for ports getter.
2670         * bindings/scripts/CodeGeneratorJS.pm:
2671         (NativeToJSValue): Small tweak to correctly handle the case where impl->ports()
2672         returns NULL and avoid crashing in this case.
2673         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: Rebaseline due
2674         to bindings generator tweak.
2675         * dom/MessageEvent.idl: Remove [CustomGetter] extended attribute for 'ports' attribute
2676         and switch to MessagePortArray type.
2677
2678 2013-05-16  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
2679
2680         Add stubs for ContextMenu and ContextMenuItem
2681         https://bugs.webkit.org/show_bug.cgi?id=116235
2682
2683         Reviewed by Antonio Gomes.
2684
2685         No new tests needed, only a refactor.
2686
2687         Add ContextMenuNone.cpp and ContextMenuItemNone.cpp
2688         so ports using ENABLE(CROSS_PLATFORM_CONTEXT_MENU) don't
2689         need to replicate these stubs.
2690
2691         * PlatformEfl.cmake:
2692         * Target.pri:
2693         * platform/ContextMenuNone.cpp: Added.
2694         (WebCore):
2695         (WebCore::ContextMenu::ContextMenu):
2696         (WebCore::ContextMenu::getContextMenuItems):
2697         (WebCore::ContextMenu::createPlatformContextMenuFromItems):
2698         (WebCore::ContextMenu::platformContextMenu):
2699         * platform/ContextMenuItemNone.cpp: Added.
2700         (WebCore):
2701         (WebCore::ContextMenuItem::platformContextMenuItem):
2702         * platform/efl/ContextMenuEfl.cpp: Removed.
2703         * platform/efl/ContextMenuItemEfl.cpp: Removed.
2704         * platform/qt/ContextMenuQt.cpp: Removed.
2705         * platform/qt/ContextMenuItemQt.cpp: Removed.
2706
2707 2013-05-16  Alexis Menard  <alexis@webkit.org>
2708
2709         Regression: Event#stopPropagation() does not halt bubbling for webkitTransitionEnd
2710         https://bugs.webkit.org/show_bug.cgi?id=115656
2711
2712         Reviewed by Darin Adler.
2713
2714         If we create a prefixed event to dispatch it (in the case we have only
2715         prefixed event listeners in client's code) then we need to make sure to
2716         keep it in sync with the original unprefixed event after it has been
2717         dispatched. While being dispatched the event can be modified by
2718         client's code and when propagated back to outer elements, attributes were
2719         not updated. This patch changes the old design of creating a separate event
2720         for the prefixed case and now change the type of the event (so the name) before
2721         dispatching it, keeping the attributes if changed and then rename it
2722         back to unprefixed when the dispatching is finished.
2723
2724         Tests: transitions/transition-end-event-prefixed-01.html
2725                transitions/transition-end-event-prefixed-02.html
2726                transitions/transition-end-event-prefixed-03.html
2727
2728         * dom/Event.h:
2729         (WebCore::Event::setType):
2730         * dom/EventTarget.cpp:
2731         (WebCore::EventTarget::fireEventListeners):
2732
2733 2013-05-16  Mike Fenton  <mifenton@rim.com>
2734
2735         [BlackBerry] Strip invoke URLs when writing to the clipboard.
2736         https://bugs.webkit.org/show_bug.cgi?id=116226
2737
2738         Reviewed by Rob Buis.
2739
2740         PR 333516.
2741
2742         Invoke URLs should not be included in the paste data.
2743
2744         Internally Reviewed by Gen Mak.
2745
2746         * platform/blackberry/PasteboardBlackBerry.cpp:
2747         (WebCore::Pasteboard::writeSelection):
2748
2749 2013-05-16  Eduardo Lima Mitev  <elima@igalia.com>
2750
2751         Missing UNUSED_PARAM macro for textPosition argument in WebKitAccessibleInterfaceText
2752         https://bugs.webkit.org/show_bug.cgi?id=116230
2753
2754         Reviewed by Chris Fleizach.
2755
2756         No new functionality, no new tests.
2757
2758         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
2759         (webkitAccessibleTextGetTextForOffset): List textPosition argument as
2760         unused parameter for all platforms except GTK.
2761
2762 2013-05-16  Jaehun Lim  <ljaehun.lim@samsung.com>
2763
2764         Frame flattening prevents <HTML> in <OBJECT> from having scrollbars
2765         https://bugs.webkit.org/show_bug.cgi?id=115884
2766         
2767         Reviewed by Antonio Gomes.
2768
2769         Frame flattening should be applied when the frame owner is frame or iframe. But when
2770         the frame owner is object element, frame flattening prevents it from having scrollbars.
2771         In this situation, we can't scroll the html document in object element.
2772
2773         This patch adds two helper functions to verify flattening conditions.
2774         
2775         Test: fast/frames/flattening/scrolling-in-object.html
2776
2777         * page/FrameView.cpp:
2778         (WebCore::frameFlatteningEnabled): Added. Helper to check whether flattening is enabled or not.
2779         (WebCore::supportsFrameFlattening): Added. Helper to check whether the frame owner is <frame> or <iframe>.
2780         (WebCore::FrameView::avoidScrollbarCreation):
2781         (WebCore::FrameView::calculateScrollbarModesForLayout): Use frameFlatteningEnabled().
2782         (WebCore::FrameView::layout): Use frameFlatteningEnabled().
2783         (WebCore::FrameView::isInChildFrameWithFrameFlattening): Use frameFlatteningEnabled().
2784
2785 2013-05-16  Patrick Gansterer  <paroga@webkit.org>
2786
2787         Port functions for pathhandling to Windows CE in FileSystemWin
2788         https://bugs.webkit.org/show_bug.cgi?id=116208
2789
2790         Reviewed by Darin Adler.
2791
2792         This will allow us to remove FileSystemWinCE in a next step.
2793
2794         * platform/win/FileSystemWin.cpp:
2795         (WebCore::pathByAppendingComponent):
2796         (WebCore::pathGetFileName):
2797
2798 2013-05-16  Tim Horton  <timothy_horton@apple.com>
2799
2800         PDFPlugins don't load when plugins are disabled, but they should
2801         https://bugs.webkit.org/show_bug.cgi?id=75790
2802         <rdar://problem/11650197>
2803
2804         Reviewed by Anders Carlsson.
2805
2806         Make it possible to load "application" plug-ins even if settings or the FrameLoaderClient
2807         say that plug-ins should be disabled, providing a mechanism for WebKit* to offer built-in
2808         functionality which happens to use the plug-in infrastructure, and which also doesn't
2809         unexpectedly disappear for users with plug-ins off.
2810
2811         * WebCore.exp.in:
2812         Export SubframeLoader::allowPlugins().
2813         Update signature for PluginData::supportsMimeType to include the AllowedPluginTypes argument.
2814
2815         * dom/DOMImplementation.cpp:
2816         (WebCore::DOMImplementation::createDocument):
2817         Load PluginData even if plug-ins are disabled, but if that is the case, only
2818         create a PluginDocument for application plug-ins.
2819
2820         * html/PluginDocument.cpp:
2821         (WebCore::PluginDocumentParser::appendBytes):
2822         Don't bail if plug-ins are disabled, because we could still be a PluginDocument
2823         for an application plug-in.
2824
2825         * page/Page.cpp:
2826         (WebCore::Page::pluginData):
2827         Allow PluginData to be constructed even if plug-ins are disabled, as there might
2828         be application plug-ins that we want to load anyway.
2829
2830         * platform/mac/MIMETypeRegistryMac.mm:
2831         (WebCore::MIMETypeRegistry::isApplicationPluginMIMEType):
2832         On Mac, if we have PDFPlugin, we can support PDF and PostScript with a native application plug-in.
2833
2834         * plugins/PluginData.cpp:
2835         (WebCore::PluginData::supportsMimeType):
2836         Add an AllowedPluginTypes argument to supportsMimeType, allowing callers to specify
2837         whether they are looking for any plug-in, or are looking only for application plug-ins.
2838
2839         * plugins/PluginData.h:
2840         (PluginInfo): Added an isApplicationPlugin field, to specify whether this is a "built-in" plug-in.
2841         (PluginData): Add the aforementioned AllowedPluginTypes enum and the argument to supportsMimeType.
2842
2843 2013-05-16  Carlos Garcia Campos  <cgarcia@igalia.com>
2844
2845         [BlackBerry] Crash due to an assert running test editing/execCommand/indent-paragraphs.html
2846         https://bugs.webkit.org/show_bug.cgi?id=114944
2847
2848         Reviewed by Rob Buis.
2849
2850         It crashes in network platform code when trying to save an
2851         invalid URL in the disk cache. That test contains references to
2852         empty URLs like http://. Those empty URLs, are parsed as http:/ by
2853         KURL and considered valid. BlackBerry network platform uses GURL
2854         which considers those URLs invalid. We needed to check that the
2855         URLs are valid for our platform before starting the network
2856         operation.
2857
2858         Fixes a crash running test
2859         editing/execCommand/indent-paragraphs.html.
2860
2861         * platform/network/blackberry/NetworkManager.cpp:
2862         (WebCore::NetworkManager::startJob): Check if the request URL is
2863         valid from the platform point of view right after creating the
2864         platform network request and return early if the URL is invalid
2865         with StatusErrorInvalidUrl error.
2866
2867 2013-05-16  Patrick Gansterer  <paroga@webkit.org>
2868
2869         Remove unused function safeCreateFile() from WebCore
2870         https://bugs.webkit.org/show_bug.cgi?id=116211
2871
2872         Reviewed by Anders Carlsson.
2873
2874         * platform/FileSystem.h:
2875         * platform/win/FileSystemWin.cpp:
2876
2877 2013-05-16  Peter Gal  <galpeter@inf.u-szeged.hu>
2878
2879         [curl] MIME type should be in lowercase
2880         https://bugs.webkit.org/show_bug.cgi?id=116218
2881
2882         Reviewed by Benjamin Poulain.
2883
2884         Existing testcase: http/tests/mime/uppercase-mime-type.html
2885
2886         * platform/network/curl/ResourceHandleManager.cpp:
2887         (WebCore::headerCallback): Convert the MIME type to lowercase.
2888
2889 2013-05-16  Seokju Kwon  <seokju.kwon@gmail.com>
2890
2891         Web Inspector: Fix optional value of promptText in Inspector.json
2892         https://bugs.webkit.org/show_bug.cgi?id=116203
2893
2894         Reviewed by Joseph Pecoraro.
2895
2896         Merge from https://chromiumcodereview.appspot.com/14672031.
2897
2898         No new tests needed.
2899
2900         * inspector/Inspector.json:
2901
2902 2013-05-16  Mary Wu  <mary.wu@torchmobile.com.cn>
2903
2904         [BlackBerry] Unable to download blob resource
2905         https://bugs.webkit.org/show_bug.cgi?id=115888
2906
2907         Reviewed by Benjamin Poulain.
2908
2909         Add BlobStream to handle over blob data from BlobResourceHandle to download stream.
2910         RIM bug 331086, internally reviewed by Charles Wei and Leo Yang.
2911
2912         * PlatformBlackBerry.cmake:
2913         * platform/network/blackberry/BlobStream.cpp: Added.
2914         (WebCore):
2915         (WebCore::BlobStream::BlobStream):
2916         (WebCore::BlobStream::~BlobStream):
2917         (WebCore::BlobStream::didReceiveData):
2918         (WebCore::BlobStream::didFinishLoading):
2919         (WebCore::BlobStream::didFail):
2920         (WebCore::BlobStream::url):
2921         (WebCore::BlobStream::mimeType):
2922         * platform/network/blackberry/BlobStream.h: Added.
2923         (WebCore):
2924         (BlobStream):
2925
2926 2013-05-16  Anders Carlsson  <andersca@apple.com>
2927
2928         Remove SystemTime header and implementations
2929         https://bugs.webkit.org/show_bug.cgi?id=116200
2930
2931         Reviewed by Alexey Proskuryakov.
2932
2933         SystemTim just had a single function that's not called anymore. Remove it.
2934
2935         * GNUmakefile.list.am:
2936         * PlatformBlackBerry.cmake:
2937         * PlatformEfl.cmake:
2938         * PlatformWinCE.cmake:
2939         * Target.pri:
2940         * WebCore.vcproj/WebCore.vcproj:
2941         * WebCore.vcxproj/WebCore.vcxproj:
2942         * WebCore.vcxproj/WebCore.vcxproj.filters:
2943         * WebCore.xcodeproj/project.pbxproj:
2944         * history/PageCache.cpp:
2945         * platform/SystemTime.h: Removed.
2946         * platform/blackberry/SystemTimeBlackBerry.cpp: Removed.
2947         * platform/efl/SystemTimeEfl.cpp: Removed.
2948         * platform/graphics/ca/GraphicsLayerCA.cpp:
2949         * platform/mac/SystemTimeMac.cpp: Removed.
2950         * platform/qt/TemporaryLinkStubsQt.cpp:
2951         * platform/win/SystemTimeWin.cpp: Removed.
2952
2953 2013-05-16  Glenn Adams  <glenn@skynav.com>
2954
2955         [Inspector] Don't filter syntax error caused by asterisk in CSS Property name.
2956         https://bugs.webkit.org/show_bug.cgi?id=116196
2957
2958         Reviewed by Benjamin Poulain.
2959
2960         * inspector/InspectorConsoleAgent.cpp:
2961         (WebCore::InspectorConsoleAgent::addMessageToConsole):
2962             - Remove questionable IE7 related error filtering
2963
2964 2013-05-16  Andreas Kling  <akling@apple.com>
2965
2966         Page::chrome() should return a reference.
2967         <http://webkit.org/b/116185>
2968
2969         Reviewed by Anders Carlsson.
2970
2971         A Page's chrome() can never be null. Change Page::chrome() to return a reference to reflect this.
2972         Also, make Page::m_chrome a const member variable so nobody will accidentally set it to null.
2973
2974 2013-05-16  Simon Fraser  <simon.fraser@apple.com>
2975
2976         Content disappears when scrolling http://www.childrenscancer.org/zach/
2977         https://bugs.webkit.org/show_bug.cgi?id=116206
2978
2979         Reviewed by Darin Adler.
2980         
2981         When a RenderLayerBacking gains or loses a foregroundLayer or backgroundLayer,
2982         we need to repaint the primary layer, since what paints into that primary
2983         layer will change.
2984         
2985         On the page in question, we gained/lost a foreground layer when scrolling because
2986         the page popped an element into position:fixed.
2987
2988         Test: compositing/repaint/foreground-layer-change.html
2989
2990         * rendering/RenderLayerBacking.cpp:
2991         (WebCore::RenderLayerBacking::updateForegroundLayer):
2992         (WebCore::RenderLayerBacking::updateBackgroundLayer):
2993
2994 2013-05-16  Andy Estes  <aestes@apple.com>
2995
2996         Do not indefinitely cache resources from blob URLs.
2997
2998         Reviewed by Alexey Proskuryakov.
2999
3000         Alexey pointed out after I landed r150169 that blob URLs backed by
3001         files should return an error if the file changed after the URL was
3002         created. By indefinitely caching them in memory, we don't give the
3003         loader a chance to check for modification. Remove "blob" from the list
3004         of schemes that should be indefinitely cached.
3005
3006         * platform/SchemeRegistry.cpp:
3007         (WebCore::SchemeRegistry::shouldCacheResponsesFromURLSchemeIndefinitely):
3008
3009 2013-05-16  Claudio Saavedra  <csaavedra@igalia.com>
3010
3011         [CSS] CSS Variables are case-sensitive
3012         https://bugs.webkit.org/show_bug.cgi?id=116239
3013
3014         Reviewed by Ryosuke Niwa.
3015
3016         The CSS Variables specification states that variables are
3017         case-sensitive, unlike other CSS properties.
3018
3019         Test: fast/css/variables/case-sensitive.html
3020
3021         * css/CSSParser.cpp:
3022         (WebCore::CSSParserString::substring): Replace
3023         the now unnecessary lowerSubstring() with this method.
3024         Also, since the method is only used by the CSS variables
3025         implementation, #ifdef it.
3026         (WebCore::CSSParser::createPrimitiveVariableNameValue):
3027         (WebCore::CSSParser::storeVariableDeclaration):
3028         Do not normalize variable declarations to lowercase.
3029         * css/CSSParserValues.h:
3030         (CSSParserString): Replace the lowerSubstring() declaration
3031         and wrap with #if/#endif.
3032
3033 2013-05-16  Brady Eidson  <beidson@apple.com>
3034
3035         svg/as-image/img-zoom-svg-stylesheet.html crashes with NetworkProcess enabled.
3036         <rdar://problem/13837408> and https://bugs.webkit.org/show_bug.cgi?id=115917
3037
3038         Reviewed by Sam Weinig.
3039
3040         Give WebKit2 the ability to not mis-cast.
3041
3042         * loader/FrameLoaderClient.h:
3043         (WebCore::FrameLoaderClient::isEmptyFrameLoaderClient): Defaults to false, and include a FIXME
3044           to remove it once https://bugs.webkit.org/show_bug.cgi?id=116233 is resolved.
3045
3046         * loader/EmptyClients.h: Make isEmptyFrameLoaderClient() return true, and add a FIXME to remove it.
3047
3048 2013-05-14  Martin Robinson  <mrobinson@igalia.com>
3049
3050         [GTK] Add support for building WebCore to the cmake build
3051         https://bugs.webkit.org/show_bug.cgi?id=116128
3052
3053         Reviewed by Gustavo Noronha Silva.
3054
3055         * PlatformGTK.cmake: Added.
3056         * platform/gtk/GtkVersioning.c: Include "config.h" because we removed
3057         the autotoolsconfig.h include from the header.
3058         * platform/gtk/GtkVersioning.h: Remove autotoolsconfig.h include to support for
3059         non-autotools build systems.
3060
3061 2013-05-15  Ryosuke Niwa  <rniwa@webkit.org>
3062
3063         DocumentOrderedMap doesn't need to have two HashMaps
3064         https://bugs.webkit.org/show_bug.cgi?id=116167
3065
3066         Reviewed by Geoffrey Garen.
3067
3068         Previously, we had two hash maps: m_map and m_duplicateCounts in DocumentOrderedMap to keep track
3069         of the first element and the number of duplicates for a given name. This patch simplifies this structure
3070         by having a single hash map that contains both the pointer and the number of duplicates.
3071
3072         In addition, this patch fixes a regression introduced in r149652 that window and document name maps
3073         were not updated for some elements inside a SVG use element, and makes use of the newly added list of
3074         the matching elements in SelectorQuery.
3075
3076         * dom/DocumentOrderedMap.cpp:
3077         (WebCore::DocumentOrderedMap::clear): Updated to use the new hash map.
3078         (WebCore::DocumentOrderedMap::add): Ditto.
3079         (WebCore::DocumentOrderedMap::remove): Ditto.
3080         (WebCore::DocumentOrderedMap::get): Ditto.
3081         (WebCore::DocumentOrderedMap::getAllElementsById): Added.
3082
3083         * dom/DocumentOrderedMap.h:
3084
3085         (WebCore::DocumentOrderedMap::MapEntry::MapEntry): Added.
3086         (WebCore::DocumentOrderedMap::containsSingle): Updated to use new hash map.
3087         (WebCore::DocumentOrderedMap::contains): Ditto.
3088         (WebCore::DocumentOrderedMap::containsMultiple): Ditto.
3089
3090         * dom/Element.cpp:
3091         (WebCore::Element::insertedInto): This function didn't add this element to window and document's name maps
3092         if the element had already been inserted into a tree scope, and the current call was inserting an ancestor
3093         of the tree scope into the document. We were exiting early per scope != treeScope().
3094
3095         Fixed the bug by splitting updateId into two functions updateIdForTreeScope and updateIdForDocument.
3096         The former is called when this element is inserted into a new tree scope, and the latter is called when
3097         this element is inserted into a HTML document even if it had already been inside some tree scope.
3098
3099         (WebCore::Element::removedFrom): This function didn't remove this element from tree scope's id maps if
3100         the tree scope wasn't a document. Fixed the bug by simply checking that the removal happens beneath the
3101         current tree scope.
3102         (WebCore::Element::updateName):
3103         (WebCore::Element::updateNameForTreeScope): Renamed from updateName.
3104         (WebCore::Element::updateNameForDocument): Extracted from updateName.
3105         (WebCore::Element::updateId):
3106         (WebCore::Element::updateIdForTreeScope): Renamed from updateId.
3107         (WebCore::Element::updateIdForDocument): Extracted from updateId.
3108
3109         * dom/Element.h:
3110
3111         * dom/SelectorQuery.cpp:
3112         (WebCore::SelectorDataList::canUseIdLookup): Refactored to return the id subselector instead of checking if
3113         the first subselector happens to be matching an id.
3114         (WebCore::SelectorDataList::execute): Use the subselector canUseIdLookup returned. Also make use of newly
3115         added getAllElementsById when there are multiple matching elements for a given id.
3116
3117         * dom/SelectorQuery.h:
3118
3119         * dom/TreeScope.cpp:
3120         (WebCore::TreeScope::getAllElementsById): Added.
3121
3122         * dom/TreeScope.h:
3123
3124 2013-05-15  Darin Adler  <darin@apple.com>
3125
3126         [Mac] Make Clipboard::create functions for Mac platform independent by moving Pasteboard creation to Pasteboard functions
3127         https://bugs.webkit.org/show_bug.cgi?id=116179
3128
3129         Reviewed by Andreas Kling.
3130
3131         * dom/Clipboard.cpp:
3132         (WebCore::Clipboard::createForCopyAndPaste): Moved the function here from
3133         ClipboardMac, and have it use Pasteboard functions that are not Mac-specific.
3134         (WebCore::Clipboard::create): Ditto.
3135         (WebCore::Clipboard::createForDragAndDrop): Ditto.
3136
3137         * platform/DragData.h:
3138         (WebCore::DragData::pasteboardName): Made this const.
3139
3140         * platform/Pasteboard.h: Added new create functions, used by the clipboard
3141         create functions above.
3142
3143         * platform/mac/ClipboardMac.mm: Removed the functions that were moved to the
3144         Clipboard.cpp file.
3145
3146         * platform/mac/PasteboardMac.mm:
3147         (WebCore::Pasteboard::createForCopyAndPaste): Added.
3148         (WebCore::Pasteboard::createPrivate): Added.
3149         (WebCore::Pasteboard::createForDragAndDrop): Added.
3150
3151 2013-05-15  Anders Carlsson  <andersca@apple.com>
3152
3153         Fix a thinko.
3154
3155         We want to invalidate the file icon loader if it exists, not create it!
3156
3157         * html/FileInputType.cpp:
3158         (WebCore::FileInputType::requestIcon):
3159
3160 2013-05-15  Darin Adler  <darin@apple.com>
3161
3162         Move drag-specific Clipboard functions inside ENABLE(DRAG_SUPPORT)
3163         https://bugs.webkit.org/show_bug.cgi?id=116176
3164
3165         Reviewed by Andreas Kling.
3166
3167         * dom/Clipboard.cpp:
3168         (WebCore::Clipboard::writeRange):
3169         (WebCore::Clipboard::writePlainText):
3170         (WebCore::Clipboard::writeURL):
3171         Move these three functions inside ENABLE(DRAG_SUPPORT). Even though their names do
3172         not make it obvious, these are here only for use by dragging code. Later we may
3173         refactor them away entirely, but for now it's good not to compile them in on any
3174         platform that does not support dragging.
3175
3176 2013-05-15  Andy Estes  <aestes@apple.com>
3177
3178         Resources from non-HTTP schemes should not be cached indefinitely
3179         https://bugs.webkit.org/show_bug.cgi?id=113626
3180
3181         Reviewed by Ryosuke Niwa.
3182
3183         With the exception of schemes that we know will always return the same
3184         result for a given URL, we should not indefinitely cache non-HTTP
3185         resources when their freshness cannot be verified.
3186
3187         Writing a test for this is blocked on https://webkit.org/b/116199.
3188
3189         The following two existing tests of memory cache behavior were
3190         converted to HTTP tests so that they continue to function as expected:
3191
3192         Tests: http/tests/cache/display-image-unset-allows-cached-image-load.html
3193                http/tests/cache/willsendrequest-returns-null-for-memory-cache-load.html
3194
3195         * loader/cache/CachedResource.cpp:
3196         (WebCore::CachedResource::freshnessLifetime): Returned a freshness
3197         lifetime of 0 for non-HTTP schemes that can't be indefinitely cached.
3198         * platform/SchemeRegistry.cpp:
3199         (WebCore::SchemeRegistry::shouldCacheResponsesFromURLSchemeIndefinitely):
3200         Checked whether the scheme is blob:, data:, or applewebdata:.
3201         * platform/SchemeRegistry.h:
3202
3203 2013-05-15  Tim Horton  <timothy_horton@apple.com>
3204
3205         makeRGBAFromNSColor throws an exception if given a color in a greyscale colorspace
3206         https://bugs.webkit.org/show_bug.cgi?id=116198
3207         <rdar://problem/13904395>
3208
3209         Reviewed by Simon Fraser.
3210
3211         Block Objective-C exceptions in makeRGBAFromNSColor.
3212         Remove a comment saying that they're impossible.
3213
3214         Convert the incoming color to the DeviceRGB colorspace to match
3215         existing color sources. Some rare cases (attributed strings that come
3216         from PDFKit) can have DeviceGrayscale color spaces, which would
3217         previously throw an exception here.
3218
3219         * platform/graphics/mac/ColorMac.mm:
3220         (WebCore::makeRGBAFromNSColor):
3221
3222 2013-05-15  David Kilzer  <ddkilzer@apple.com>
3223
3224         BUILD FIX (r150140): Frame::editor() should return a reference for iOS, too
3225
3226         * platform/ios/ClipboardIOS.mm:
3227         (WebCore::ClipboardIOS::ClipboardIOS):
3228         (WebCore::ClipboardIOS::hasData):
3229         (WebCore::ClipboardIOS::clearData):
3230         (WebCore::ClipboardIOS::clearAllData):
3231         (WebCore::ClipboardIOS::getData):
3232         (WebCore::ClipboardIOS::setData):
3233         (WebCore::ClipboardIOS::types):
3234         (WebCore::ClipboardIOS::writeRange):
3235         * platform/ios/PasteboardIOS.mm:
3236         (WebCore::Pasteboard::getStringSelection):
3237         (WebCore::Pasteboard::writeSelection):
3238         (WebCore::Pasteboard::writePlainText):
3239         (WebCore::Pasteboard::writeImage):
3240         (WebCore::Pasteboard::plainText):
3241         (WebCore::documentFragmentWithRTF):
3242         (WebCore::Pasteboard::documentFragmentForPasteboardItemAtIndex):
3243         (WebCore::Pasteboard::documentFragment):
3244
3245 2013-05-15  Anders Carlsson  <andersca@apple.com>
3246
3247         Stop using the factory pattern in FileIconLoaderClient
3248         https://bugs.webkit.org/show_bug.cgi?id=116197
3249
3250         Reviewed by Andreas Kling.
3251
3252         Move the FileIconLoader member out of FileIconLoaderClient and into FileInputType and remove the factory gunk.
3253
3254         * html/FileInputType.cpp:
3255         (WebCore::FileInputType::~FileInputType):
3256         (WebCore::FileInputType::requestIcon):
3257         * html/FileInputType.h:
3258         (FileInputType):
3259         * platform/FileIconLoader.cpp:
3260         (WebCore::FileIconLoader::invalidate):
3261         * platform/FileIconLoader.h:
3262         (WebCore::FileIconLoaderClient::~FileIconLoaderClient):
3263         (FileIconLoader):
3264
3265 2013-05-15  Anders Carlsson  <andersca@apple.com>
3266
3267         Fix FileChooserClient design
3268         https://bugs.webkit.org/show_bug.cgi?id=116195
3269
3270         Reviewed by Andreas Kling.
3271
3272         FileChooserClient doesn't match the standard WebCore client idiom of only having virtual member functions.
3273         Instead it holds on to its FileChooser and it's even a factory for creating new file choosers(!).
3274
3275         Fix this by making it an abstract class, and moving FileChooser into FileInputType.
3276
3277         * html/FileInputType.cpp:
3278         (WebCore::FileInputType::~FileInputType):
3279         Invalidate the file chooser.
3280
3281         (WebCore::FileInputType::handleDOMActivateEvent):
3282         Apply the file chooser settings.
3283
3284         (WebCore::FileInputType::applyFileChooserSettings):
3285         Recreate the file chooser with new settings.
3286
3287         (WebCore::FileInputType::receiveDropForDirectoryUpload):
3288         Apply the settings.
3289
3290         * platform/FileChooser.cpp:
3291         (WebCore::FileChooser::invalidate):
3292         Set m_client to null.
3293
3294         (WebCore::FileChooser::chooseFiles):
3295         Early return.
3296
3297         * platform/FileChooser.h:
3298
3299 2013-05-15  Gavin Barraclough  <barraclough@apple.com>
3300
3301         ScriptedAnimationController::setThrottled should extend MinimumAnimationInterval
3302         https://bugs.webkit.org/show_bug.cgi?id=116193
3303
3304         Reviewed by Darin Adler
3305
3306         * dom/ScriptedAnimationController.cpp:
3307         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
3308         (WebCore::ScriptedAnimationController::setThrottled):
3309         (WebCore::ScriptedAnimationController::scheduleAnimation):
3310         * dom/ScriptedAnimationController.h:
3311         (ScriptedAnimationController):
3312             - Fixes for review comments.
3313
3314 2013-05-15  Anders Carlsson  <andersca@apple.com>
3315
3316         Move HTTPRequest class to WebKit2
3317         https://bugs.webkit.org/show_bug.cgi?id=116192
3318
3319         Reviewed by Darin Adler.
3320
3321         HTTPRequest is only used by the "remote inspector" feature in WebKit2,
3322         so there's no need to have it in WebCore.
3323
3324         * CMakeLists.txt:
3325         * GNUmakefile.list.am:
3326         * Target.pri:
3327         * WebCore.vcproj/WebCore.vcproj:
3328         * WebCore.vcxproj/WebCore.vcxproj:
3329         * WebCore.vcxproj/WebCore.vcxproj.filters:
3330         * WebCore.xcodeproj/project.pbxproj:
3331
3332 2013-05-15  Oliver Hunt  <oliver@apple.com>
3333
3334         RefCountedArray needs to use vector initialisers for its backing store
3335         https://bugs.webkit.org/show_bug.cgi?id=116194
3336
3337         Reviewed by Gavin Barraclough.
3338
3339         Update to use new functions for operating on the exception stack.
3340
3341         * bindings/js/ScriptCallStackFactory.cpp:
3342         (WebCore::createScriptCallStackFromException):
3343
3344 2013-05-15  Gavin Barraclough  <barraclough@apple.com>
3345
3346         ScriptedAnimationController::setThrottled should extend MinimumAnimationInterval
3347         https://bugs.webkit.org/show_bug.cgi?id=116193
3348
3349         Reviewed by Simon Fraser.
3350
3351         * dom/ScriptedAnimationController.cpp:
3352         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
3353             - initialize m_throttled
3354         (WebCore::ScriptedAnimationController::setThrottled):
3355             - sets m_throttled, reschedule when this changes.
3356         (WebCore::ScriptedAnimationController::scheduleAnimation):
3357             - if throtled don't use a display link, and extend the timeout.
3358         * dom/ScriptedAnimationController.h:
3359         (ScriptedAnimationController):
3360             - Added m_throttled
3361
3362 2013-05-08  Gavin Barraclough  <barraclough@apple.com>
3363
3364         Process suppression should throttle scripted animations
3365         https://bugs.webkit.org/show_bug.cgi?id=115812
3366
3367         Reviewed by Simon Fraser.
3368
3369         <rdar://problem/13799726>
3370
3371         * WebCore.exp.in:
3372             - Expose Page::setThrottled
3373         * dom/Document.cpp:
3374         (WebCore::Document::scriptedAnimationControllerSetThrottled):
3375         (WebCore):
3376         * dom/Document.h:
3377         (Document):
3378             - Forwards to ScriptedAnimationController::setThrottled
3379         * dom/ScriptedAnimationController.cpp:
3380         (WebCore::ScriptedAnimationController::setThrottled):
3381         (WebCore):
3382         * dom/ScriptedAnimationController.h:
3383             - Force use of a timer.
3384         (ScriptedAnimationController):
3385         * page/Page.cpp:
3386         (WebCore::Page::setThrottled):
3387         (WebCore):
3388         * page/Page.h:
3389         (Page):
3390             - When under throttling force the ScriptedAnimationController to use a timer.
3391
3392 2013-05-15  Igor Oliveira  <igor.o@sisa.samsung.com>
3393
3394         Implement run-in remove child cases.
3395         https://bugs.webkit.org/show_bug.cgi?id=86520
3396
3397         Move runin to original position when sibling element is destroyed.
3398
3399         Reviewed by David Hyatt.
3400
3401         Tests: fast/runin/runin-remove-child-simple.html
3402                fast/runin/runin-sibling-inline.html
3403
3404         * rendering/RenderBlock.cpp:
3405         (WebCore::RenderBlock::willBeDestroyed):
3406         (WebCore::RenderBlock::moveRunInUnderSiblingBlockIfNeeded):
3407             If moveRunInUnderSiblingBlockIfNeeded is called when the sibling run-in block
3408             is being destroyed, it means that the run-in is moving to original position and
3409             we do not need to do nothing.
3410
3411 2013-05-15  Anders Carlsson  <andersca@apple.com>
3412
3413         Remove WebSocketHandshakeResponse class
3414         https://bugs.webkit.org/show_bug.cgi?id=116190
3415
3416         Reviewed by Andreas Kling.
3417
3418         Just use ResourceResponse instead of WebSocketHandshakeResponse.
3419
3420         * CMakeLists.txt:
3421         * GNUmakefile.list.am:
3422         * Modules/websockets/WebSocketHandshake.cpp:
3423         (WebCore::WebSocketHandshake::readServerHandshake):
3424         (WebCore::WebSocketHandshake::serverWebSocketProtocol):
3425         (WebCore::WebSocketHandshake::serverSetCookie):
3426         (WebCore::WebSocketHandshake::serverSetCookie2):
3427         (WebCore::WebSocketHandshake::serverUpgrade):
3428         (WebCore::WebSocketHandshake::serverConnection):
3429         (WebCore::WebSocketHandshake::serverWebSocketAccept):
3430         (WebCore::WebSocketHandshake::serverHandshakeResponse):
3431         (WebCore::WebSocketHandshake::readHTTPHeaders):
3432         * Modules/websockets/WebSocketHandshake.h:
3433         * Modules/websockets/WebSocketHandshakeResponse.cpp: Removed.
3434         * Modules/websockets/WebSocketHandshakeResponse.h: Removed.
3435         * Target.pri:
3436         * WebCore.vcproj/WebCore.vcproj:
3437         * WebCore.vcxproj/WebCore.vcxproj:
3438         * WebCore.vcxproj/WebCore.vcxproj.filters:
3439         * WebCore.xcodeproj/project.pbxproj:
3440         * inspector/InspectorInstrumentation.cpp:
3441         (WebCore):
3442         (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponseImpl):
3443         * inspector/InspectorInstrumentation.h:
3444         (InspectorInstrumentation):
3445         (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
3446         * inspector/InspectorResourceAgent.cpp:
3447         (WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
3448         * inspector/InspectorResourceAgent.h:
3449         (WebCore):
3450         (InspectorResourceAgent):
3451
3452 2013-05-15  Eric Carlson  <eric.carlson@apple.com>
3453
3454         [Mac] media engine may deliver NULL in-band "cue"
3455         https://bugs.webkit.org/show_bug.cgi?id=116180
3456
3457         Reviewed by Jer Noble.
3458
3459         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
3460         (WebCore::InbandTextTrackPrivateAVF::processCue): NULL check before logging cue count.
3461
3462 2013-05-15  Darin Adler  <darin@apple.com>
3463
3464         List platforms that still use the legacy clipboard instead of just saying "not Mac"
3465         https://bugs.webkit.org/show_bug.cgi?id=116177
3466
3467         Reviewed by Andreas Kling.
3468
3469         * dom/Clipboard.h: Replaced the "!MAC || IOS" with a list of platforms still on the
3470         legacy model.
3471
3472 2013-05-15  Yongjun Zhang  <yongjun_zhang@apple.com>
3473
3474         We should clear mainResource in DocumentLoader::cancelMainResourceLoad.
3475         https://bugs.webkit.org/show_bug.cgi?id=116119
3476
3477         Reviewed by Oliver Hunt.
3478
3479         MainResourceLoader::clearResource() was left out in r146239 when moving MainResourceLoader::cancel()
3480         to DocumentLoader::cancelMainResourceLoad(), we need to add it back to make sure m_mainResource is
3481         cleared when we cancel the loader.
3482