122dda7c8084be8c9f444ab0a495adf9ad8c111c
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-02-21  Dean Jackson  <dino@apple.com>
2
3         [iOS Media] Wireless target UI
4         https://bugs.webkit.org/show_bug.cgi?id=129189
5         <rdar://problem/15349928>
6         <rdar://problem/16100060>
7
8         Reviewed by Eric Carlson.
9
10         Implement a prototype UI for wireless playback targets. The UI
11         doesn't currently work, but can be simulated via a class variable
12         in ControllerIOS.
13
14         * Modules/mediacontrols/mediaControlsiOS.css:
15         (audio::-webkit-media-controls-panel button): Reset the default style of
16         button elements, to avoid getting a border.
17         (audio::-webkit-media-controls-wireless-playback-status): Holds the UI showing
18         the user that the media is playing on another target.
19         (audio::-webkit-media-controls-wireless-playback-status.hidden):
20         (audio::-webkit-media-controls-wireless-playback-picker-button): The button to
21         trigger selection of targets.
22         (audio::-webkit-media-controls-wireless-playback-picker-button.active):
23         (audio::-webkit-media-controls-panel): This needs to be position absolute for
24         the wireless playback status to fill the viewport.
25         * Modules/mediacontrols/mediaControlsiOS.js:
26         (ControllerIOS): Check for targets.
27         (ControllerIOS.prototype.addVideoListeners):
28         (ControllerIOS.prototype.removeVideoListeners):
29         (ControllerIOS.prototype.UIString): New method to return localized strings (with
30         a FIXME).
31         (ControllerIOS.prototype.shouldHaveAnyUI): Needs to display if there is a wireless
32         target.
33         (ControllerIOS.prototype.currentPlaybackTargetIsWireless):
34         (ControllerIOS.prototype.updateWirelessPlaybackStatus): Create the status content,
35         replacing the device name if it is available.
36         (ControllerIOS.prototype.updateWirelessTargetAvailable):
37         (ControllerIOS.prototype.createControls):
38         (ControllerIOS.prototype.configureInlineControls):
39         (ControllerIOS.prototype.handleWirelessPlaybackChange):
40         (ControllerIOS.prototype.handleWirelessTargetAvailableChange):
41         (ControllerIOS.prototype.handleWirelessPickerButtonClicked):
42
43 2014-02-21  Jer Noble  <jer.noble@apple.com>
44
45         Make a generic CDMPrivateMediaPlayer and move its CDMSession into platform/.
46         https://bugs.webkit.org/show_bug.cgi?id=129164
47
48         Reviewed by Eric Carlson.
49
50         Move the session created by CDMPrivateAVFoundation into platform, and rename
51         CDMPrivateAVFoundation to CDMPrivateMediaPlayer. Future media engines who want
52         to support a keysystem from within the media engine can create their own
53         CDMSession as part of the MediaPlayerPrivate interface.
54
55         * Modules/encryptedmedia/CDM.cpp:
56         (WebCore::installedCDMFactories):
57         (WebCore::CDM::createSession):
58         * Modules/encryptedmedia/CDM.h:
59         * Modules/encryptedmedia/CDMPrivate.h:
60         * Modules/encryptedmedia/MediaKeySession.cpp:
61         * Modules/encryptedmedia/MediaKeySession.h:
62         * Modules/encryptedmedia/CDMPrivateAVFoundation.mm: Removed.
63         * Modules/encryptedmedia/CDMPrivateMediaPlayer.cpp: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.cpp.
64         (WebCore::CDMPrivateMediaPlayer::supportsKeySystem):
65         (WebCore::CDMPrivateMediaPlayer::supportsKeySystemAndMimeType):
66         (WebCore::CDMPrivateMediaPlayer::supportsMIMEType):
67         (WebCore::CDMPrivateMediaPlayer::createSession):
68         * Modules/encryptedmedia/CDMPrivateMediaPlayer.h: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.h.
69         (WebCore::CDMPrivateMediaPlayer::create):
70         (WebCore::CDMPrivateMediaPlayer::~CDMPrivateMediaPlayer):
71         (WebCore::CDMPrivateMediaPlayer::cdm):
72         (WebCore::CDMPrivateMediaPlayer::CDMPrivateMediaPlayer):
73         * WebCore.xcodeproj/project.pbxproj:
74         * platform/graphics/CDMSession.h: Extracted from CDMPrivateAVFoundation.h.
75         (WebCore::CDMSessionClient::~CDMSessionClient):
76         (WebCore::CDMSession::CDMSession):
77         (WebCore::CDMSession::~CDMSession):
78         * platform/graphics/MediaPlayer.cpp:
79         (WebCore::MediaPlayer::createSession):
80         * platform/graphics/MediaPlayer.h:
81         * platform/graphics/MediaPlayerPrivate.h:
82         (WebCore::MediaPlayerPrivateInterface::createSession):
83         * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.h.
84         (WebCore::CDMSessionAVFoundationObjC::~CDMSessionAVFoundationObjC):
85         * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.mm.
86         (WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):
87         (WebCore::CDMSessionAVFoundationObjC::generateKeyRequest):
88         (WebCore::CDMSessionAVFoundationObjC::releaseKeys):
89         (WebCore::CDMSessionAVFoundationObjC::update):
90         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
91         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
92         (WebCore::MediaPlayerPrivateAVFoundationObjC::createSession):
93         * testing/MockCDM.cpp:
94         (WebCore::MockCDMSession::setClient):
95         (WebCore::MockCDM::createSession):
96         * testing/MockCDM.h:
97
98 2014-02-21  Jer Noble  <jer.noble@apple.com>
99
100         Add a supportsKeySystem media engine factory parameter.
101         https://bugs.webkit.org/show_bug.cgi?id=129161
102
103         Reviewed by Eric Carlson.
104
105         Add a new parameter to the MediaPlayerFactory to allow registered media
106         engines to be queried for keySystem support:
107         * platform/graphics/MediaPlayer.cpp:
108         (WebCore::MediaPlayerFactory::MediaPlayerFactory):
109         (WebCore::MediaPlayer::supportsKeySystem):
110         * platform/graphics/MediaPlayer.h:
111
112         Support this new field in MediaPlayerPrivateAVFoundationObjC:
113         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
114         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
115         (WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):
116         (WebCore::keySystemIsSupported):
117         (WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem):
118         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
119
120         Add an empty field for SupportsKeySystem to the remaining media engines:
121         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
122         (WebCore::MediaPlayerPrivateAVFoundationCF::registerMediaEngine):
123         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
124         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine):
125         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
126         (WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine):
127         * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
128         (WebCore::MediaPlayerPrivateIOS::registerMediaEngine):
129         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
130         (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine):
131         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
132         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::registerMediaEngine):
133         * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
134         (WebCore::MockMediaPlayerMediaSource::registerMediaEngine):
135
136 2014-02-21  Benjamin Poulain  <bpoulain@apple.com>
137
138         Fix WebCore's internals after r164505
139
140         * testing/Internals.cpp:
141         (WebCore::Internals::findEditingDeleteButton): The call became ambiguous after r164505.
142
143 2014-02-21  Joseph Pecoraro  <pecoraro@apple.com>
144
145         Web Inspector: JSContext inspection should report exceptions in the console
146         https://bugs.webkit.org/show_bug.cgi?id=128776
147
148         Reviewed by Timothy Hatcher.
149
150         Include some clean up of ConsoleMessage and ScriptCallStack construction.
151
152         Covered by existing tests.
153
154         * bindings/js/JSDOMBinding.cpp:
155         (WebCore::reportException):
156         Simplify code now that createStackTraceFromException handles it.
157
158         * page/ContentSecurityPolicy.cpp:
159         (WebCore::gatherSecurityPolicyViolationEventData):
160         (WebCore::ContentSecurityPolicy::reportViolation):
161         ScriptCallStack can give us the first non-native callframe.
162
163         * inspector/InspectorResourceAgent.cpp:
164         (WebCore::InspectorResourceAgent::buildInitiatorObject):
165         * inspector/PageDebuggerAgent.cpp:
166         (WebCore::PageDebuggerAgent::breakpointActionLog):
167         * inspector/TimelineRecordFactory.cpp:
168         (WebCore::TimelineRecordFactory::createGenericRecord):
169         * page/Console.cpp:
170         (WebCore::internalAddMessage):
171         (WebCore::Console::profile):
172         (WebCore::Console::profileEnd):
173         (WebCore::Console::timeEnd):
174         * page/ContentSecurityPolicy.cpp:
175         (WebCore::gatherSecurityPolicyViolationEventData):
176         (WebCore::ContentSecurityPolicy::reportViolation):
177         * page/DOMWindow.cpp:
178         (WebCore::DOMWindow::postMessage):
179
180 2014-02-21  Benjamin Poulain  <benjamin@webkit.org>
181
182         jsDocumentPrototypeFunctionGetElementById should not create an AtomicString for the function argument
183         https://bugs.webkit.org/show_bug.cgi?id=128893
184
185         Reviewed by Darin Adler.
186
187         The declaration of TreeScope::getElementById() was taking an AtomicString as the parameter.
188         Because of this, all the call sites manipulating String were creating and keeping alive an AtomicString
189         to make the call.
190
191         This had two negative consequences:
192         -The call sites were ref-ing the ID's atomic string for no reason.
193         -When there is no ID associated with the input string, an atomic string was created for the sole
194          purpose of failing the query. Since IDs are stored as AtomicString, if there is not an existing
195          AtomicString for the input, there is no reason to query anything.
196
197         * WebCore.exp.in:
198         * bindings/js/JSDOMBinding.cpp:
199         (WebCore::findAtomicString): Update this after the rename.
200
201         * bindings/scripts/CodeGeneratorObjC.pm:
202         (GenerateImplementation):
203         * bindings/scripts/IDLAttributes.txt:
204         Now that there are two overloads for TreeScope::getElementById(), the conversion from NSString*
205         is ambiguous. I add the keyword ObjCExplicitAtomicString to force an explicit conversion to AtomicString.
206
207         * dom/Document.idl:
208         * dom/TreeScope.cpp:
209         (WebCore::TreeScope::getElementById):
210         When getting an AtomicString, the case of a empty string is not important, use isNull() instead.
211         When getting a String, get the corresponding AtomicString if any and use that for getting the element.
212
213         * dom/TreeScope.h:
214         * html/FTPDirectoryDocument.cpp:
215         (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
216         Solve the ambiguous call.
217
218         * svg/SVGAElement.cpp:
219         (WebCore::SVGAElement::defaultEventHandler):
220         This is a wonderful candidate for substringSharingImpl. The substring does not survive the call since
221         the new getElementById never create any AtomicString.
222
223         * svg/SVGSVGElement.cpp:
224         (WebCore::SVGSVGElement::getElementById):
225         It looks like there are opportunities to get faster here, Ryosuke should have a look.
226
227         * svg/SVGSVGElement.h:
228         * xml/XMLTreeViewer.cpp:
229         (WebCore::XMLTreeViewer::transformDocumentToTreeView):
230         Unrelated cleanup: noStyleMessage was useless.
231
232 2014-02-21  Daniel Bates  <dabates@apple.com>
233
234         COL element in table has 0 for offsetWidth
235         https://bugs.webkit.org/show_bug.cgi?id=15277
236
237         Reviewed by David Hyatt.
238
239         Implements offset{Left, Top, Width, Height} for table columns and column groups
240         per section Extensions to the HTMLElement Interface of the CSSOM View spec,
241         <http://www.w3.org/TR/cssom-view/#extensions-to-the-htmlelement-interface> (Draft 17 December 2013).
242
243         For now, we fail almost all of the offset{Height, Top} sub-tests in the included test
244         for the separate border model as we need to fix <https://bugs.webkit.org/show_bug.cgi?id=128988>.
245
246         Test: fast/table/col-and-colgroup-offsets.html
247
248         * rendering/RenderTable.cpp:
249         (WebCore::RenderTable::RenderTable): Initialize cached column offset top and offset height.
250         We cache these offsets since they are the same for all columns in the table.
251         (WebCore::RenderTable::invalidateCachedColumns): Clear cached effective column index map.
252         (WebCore::RenderTable::invalidateCachedColumnOffsets): Added.
253         (WebCore::RenderTable::layout): Invalidate cached column offsets as the location or height
254         of one or more sections may have changed.
255         (WebCore::RenderTable::updateColumnCache): Modified to build effective column index map.
256         (WebCore::RenderTable::effectiveIndexOfColumn): Added.
257         (WebCore::RenderTable::offsetTopForColumn): Added.
258         (WebCore::RenderTable::offsetLeftForColumn): Added.
259         (WebCore::RenderTable::offsetWidthForColumn): Added.
260         (WebCore::RenderTable::offsetHeightForColumn): Added.
261         * rendering/RenderTable.h: Make isTableColumnGroupWithColumnChildren() const.
262         * rendering/RenderTableCol.cpp:
263         (WebCore::RenderTableCol::offsetLeft): Added; turns around and calls RenderTable::offsetLeftForColumn().
264         (WebCore::RenderTableCol::offsetTop): Added; turns around and calls RenderTable::offsetTopForColumn().
265         (WebCore::RenderTableCol::offsetWidth): Added; turns around and calls RenderTable::offsetWidthForColumn().
266         (WebCore::RenderTableCol::offsetHeight): Added; turns around and calls RenderTable::offsetHeightForColumn().
267         * rendering/RenderTableCol.h:
268
269 2014-02-21  Enrica Casucci  <enrica@apple.com>
270
271         Build fix for iOS after r164498.
272
273         Unreviewed.
274
275         * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
276         (WebCore::MediaPlayerPrivateIOS::buffered):
277
278 2014-02-21  Ryosuke Niwa  <rniwa@webkit.org>
279
280         Disallow the use of -webkit-user-modify on shadow pseudo elements
281         https://bugs.webkit.org/show_bug.cgi?id=129144
282
283         Reviewed by Geoffrey Garen.
284
285         Completely disallow -webkit-user-modify on user agent (builtin) pseudo elements.
286
287         We've already had rules to do this in html.css but just hard code it into the engine
288         in order to eliminate the all uses of -webkit-user-modify in html.css.
289
290         * css/StyleResolver.cpp:
291         (WebCore::StyleResolver::adjustRenderStyle):
292         * css/html.css:
293         (input::-webkit-textfield-decoration-container):
294         (input::-webkit-clear-button):
295         (input[type="search"]::-webkit-search-cancel-button):
296         (input[type="search"]::-webkit-search-decoration):
297         (input[type="search"]::-webkit-search-results-decoration):
298         (input[type="search"]::-webkit-search-results-button):
299         (input::-webkit-inner-spin-button):
300         (input::-webkit-input-speech-button):
301         (input::-webkit-input-placeholder, isindex::-webkit-input-placeholder):
302         (input[type="file"]::-webkit-file-upload-button):
303         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
304         (input[type="range"]::-webkit-slider-runnable-track):
305         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
306         (input[type="color"]::-webkit-color-swatch-wrapper):
307         (input[type="color"]::-webkit-color-swatch):
308         (::-webkit-validation-bubble):
309         (::-webkit-validation-bubble-message):
310         (::-webkit-validation-bubble-text-block):
311         (::-webkit-validation-bubble-heading):
312         (::-webkit-validation-bubble-arrow):
313         (::-webkit-validation-bubble-arrow-clipper):
314         (meter::-webkit-meter-inner-element):
315         (meter::-webkit-meter-bar):
316         (meter::-webkit-meter-optimum-value):
317         (meter::-webkit-meter-suboptimum-value):
318         (meter::-webkit-meter-even-less-good-value):
319         (progress::-webkit-progress-inner-element):
320         (progress::-webkit-progress-bar):
321         (progress::-webkit-progress-value):
322
323 2014-02-21  Eric Carlson  <eric.carlson@apple.com>
324
325         Fix TimeRanges layering violations
326         https://bugs.webkit.org/show_bug.cgi?id=128717
327
328         Reviewed by Jer Noble.
329
330         No new tests, no functionality changed.
331
332         * CMakeLists.txt:
333         * GNUmakefile.list.am: Add PlatformTimeRanges.
334
335         * Modules/mediasource/MediaSource.cpp:
336         (WebCore::MediaSource::buffered): TimeRanges -> PlatformTimeRanges.
337         * Modules/mediasource/MediaSource.h:
338
339         * Modules/mediasource/SourceBuffer.cpp:
340         (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): TimeRanges* -> TimeRanges&.
341
342         * WebCore.exp.in: Update for signature changes.
343
344         * WebCore.vcxproj/WebCore.vcxproj:
345         * WebCore.vcxproj/WebCore.vcxproj.filters:
346         * WebCore.xcodeproj/project.pbxproj: Add PlatformTimeRanges.
347
348         * html/HTMLMediaElement.cpp:
349         (WebCore::HTMLMediaElement::percentLoaded): Create TimeRanges from PlatformTimeRanges.
350         (WebCore::HTMLMediaElement::buffered): Ditto.
351         (WebCore::HTMLMediaElement::seekable): Ditto.
352
353         * html/MediaController.cpp:
354         (MediaController::buffered): TimeRanges* -> TimeRanges&.
355         (MediaController::seekable): Ditto.
356         (MediaController::played): Ditto.
357
358         Move all of the logic into PlatformTimeRanges. Change API to take TimeRanges& instead of TimeRanges*.
359         * html/TimeRanges.cpp:
360         (WebCore::TimeRanges::create): Move to .cpp from .h.
361         (WebCore::TimeRanges::TimeRanges): Initialize the PlatformTimeRanges member variable.
362         (WebCore::TimeRanges::start): Passthrough to PlatformTimeRanges.
363         (WebCore::TimeRanges::end): Ditto.
364         (WebCore::TimeRanges::invert): Ditto.
365         (WebCore::TimeRanges::copy): Ditto.
366         (WebCore::TimeRanges::intersectWith): Ditto.
367         (WebCore::TimeRanges::unionWith): Ditto.
368         (WebCore::TimeRanges::length): Ditto.
369         (WebCore::TimeRanges::add): Ditto.
370         (WebCore::TimeRanges::contain): Ditto.
371         (WebCore::TimeRanges::find): Ditto.
372         (WebCore::TimeRanges::nearest): Ditto.
373         (WebCore::TimeRanges::totalDuration): Ditto.
374         * html/TimeRanges.h:
375
376         * platform/graphics/MediaPlayer.cpp:
377         (WebCore::NullMediaPlayerPrivate::buffered): TimeRanges -> PlatformTimeRanges.
378         (WebCore::MediaPlayer::buffered): Ditto.
379         (WebCore::MediaPlayer::seekable): Ditto.
380         * platform/graphics/MediaPlayer.h:
381         * platform/graphics/MediaPlayerPrivate.h:
382
383         * platform/graphics/MediaSourcePrivateClient.h:
384
385         * platform/graphics/PlatformTimeRanges.cpp: Added.
386         * platform/graphics/PlatformTimeRanges.h: Added.
387
388         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
389         (WebCore::MediaPlayerPrivateAVFoundation::buffered): TimeRanges -> PlatformTimeRanges.
390         (WebCore::MediaPlayerPrivateAVFoundation::loadedTimeRangesChanged): Drive-by fix to log
391             FunctionType notifications. ASSERT when passed an unknown notification.
392
393         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
394         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
395         (WebCore::MediaPlayerPrivateAVFoundationCF::platformBufferedTimeRanges):  TimeRanges -> PlatformTimeRanges.
396         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
397         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
398         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
399         (WebCore::MediaPlayerPrivateAVFoundationObjC::currentTime): Ditto.
400         (WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges): Ditto.
401
402         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
403         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
404         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekable): Ditto.
405         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered): Ditto.
406
407         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
408         (WebCore::MediaPlayerPrivateGStreamer::buffered): Ditto.
409         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
410
411         * platform/graphics/ios/MediaPlayerPrivateIOS.h:
412         * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
413         (WebCore::MediaPlayerPrivateIOS::buffered): Ditto.
414
415         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
416         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
417         (WebCore::MediaPlayerPrivateQTKit::buffered): Ditto.
418
419         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
420         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::buffered): Ditto.
421         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
422
423         * platform/graphics/wince/MediaPlayerPrivateWinCE.h:
424
425         * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
426         (WebCore::MockMediaPlayerMediaSource::buffered): Ditto.
427         (WebCore::MockMediaPlayerMediaSource::advanceCurrentTime): Ditto.
428         * platform/mock/mediasource/MockMediaPlayerMediaSource.h:
429
430 2014-02-21  Enrica Casucci  <enrica@apple.com>
431
432         Support WebSelections in WK2 on iOS.
433         https://bugs.webkit.org/show_bug.cgi?id=127015
434         <rdar://problem/15211964>
435
436         Reviewed by Benjamin Poulain.
437
438         Adding some exports.
439
440         * WebCore.exp.in:
441
442 2014-02-21  Benjamin Poulain  <bpoulain@apple.com>
443
444         'mouseenter' mouse compat event not fired when listeners for touch events
445         https://bugs.webkit.org/show_bug.cgi?id=128534
446
447         Reviewed by Andreas Kling.
448
449         The code dispatching mouseenter and mouseleave events was making the assumption that
450         only mouse move would cause Document::updateHoverActiveState.
451
452         This is not true in some cases. In the case of this bug, the first touch handler sets
453         the hover state. From there, the code handling enter/leave is in an inconsistent state.
454
455         This patch changes the delivery of mouse enter/leave events to be done through the regular
456         processing of mouse events. The update is done with the mouseover and mouseout events.
457
458         * dom/Document.cpp:
459         (WebCore::Document::prepareMouseEvent):
460         (WebCore::Document::updateHoverActiveState):
461         * dom/Document.h:
462         * page/EventHandler.cpp:
463         (WebCore::nearestCommonHoverAncestor):
464         (WebCore::hierarchyHasCapturingEventListeners):
465         (WebCore::EventHandler::updateMouseEventTargetNode):
466
467 2014-02-21  Jon Honeycutt  <jhoneycutt@apple.com>
468
469         Crash reloading page with position: fixed content
470         https://bugs.webkit.org/show_bug.cgi?id=129119
471         <rdar://problem/16127090>
472
473         Reviewed by Brent Fulgham.
474
475         Test: platform/mac-wk2/tiled-drawing/crash-reloading-with-position-fixed-content.html
476
477         * page/scrolling/ScrollingTree.cpp:
478         (WebCore::ScrollingTree::removeDestroyedNodes):
479         Check the node's ID against the latched node's ID before the node is
480         removed from the tree.
481
482 2014-02-21  Joseph Pecoraro  <pecoraro@apple.com>
483
484         Revert r164486, causing a number of test failures.
485
486         Unreviewed rollout.
487
488 2014-02-21  David Kilzer  <ddkilzer@apple.com>
489
490         StyleResolver::loadPendingImage() should take a reference to StylePendingImage
491         <http://webkit.org/b/129021>
492
493         Reviewed by Brent Fulgham.
494
495         * css/StyleResolver.cpp:
496         (WebCore::StyleResolver::loadPendingImage): Change pendingImage
497         parameter to a reference.
498         (WebCore::StyleResolver::loadPendingShapeImage): Update to use
499         references.
500         (WebCore::StyleResolver::loadPendingImages): Ditto.
501         * css/StyleResolver.h:
502         (WebCore::StyleResolver::loadPendingImage): Change pendingImage
503         parameter to a reference.
504
505 2014-02-21  Joseph Pecoraro  <pecoraro@apple.com>
506
507         Web Inspector: JSContext inspection should report exceptions in the console
508         https://bugs.webkit.org/show_bug.cgi?id=128776
509
510         Reviewed by Timothy Hatcher.
511
512         Include some clean up of ConsoleMessage and ScriptCallStack construction.
513
514         Covered by existing tests.
515
516         * bindings/js/JSDOMBinding.cpp:
517         (WebCore::reportException):
518         Simplify code now that createStackTraceFromException handles it.
519
520         * page/ContentSecurityPolicy.cpp:
521         (WebCore::gatherSecurityPolicyViolationEventData):
522         (WebCore::ContentSecurityPolicy::reportViolation):
523         ScriptCallStack can give us the first non-native callframe.
524
525         * inspector/InspectorResourceAgent.cpp:
526         (WebCore::InspectorResourceAgent::buildInitiatorObject):
527         * inspector/PageDebuggerAgent.cpp:
528         (WebCore::PageDebuggerAgent::breakpointActionLog):
529         * inspector/TimelineRecordFactory.cpp:
530         (WebCore::TimelineRecordFactory::createGenericRecord):
531         * page/Console.cpp:
532         (WebCore::internalAddMessage):
533         (WebCore::Console::profile):
534         (WebCore::Console::profileEnd):
535         (WebCore::Console::timeEnd):
536         * page/ContentSecurityPolicy.cpp:
537         (WebCore::gatherSecurityPolicyViolationEventData):
538         (WebCore::ContentSecurityPolicy::reportViolation):
539         * page/DOMWindow.cpp:
540         (WebCore::DOMWindow::postMessage):
541
542 2014-02-21  Martin Hodovan  <mhodovan@inf.u-szeged.hu>
543
544         Fixing the !ENABLE(SVG_FONTS) build
545         https://bugs.webkit.org/show_bug.cgi?id=129150
546
547         Reviewed by Anders Carlsson.
548
549         No new tests required.
550
551         * svg/SVGAltGlyphElement.cpp:
552         * svg/SVGAltGlyphElement.h:
553         * svg/svgtags.in:
554
555 2014-02-21  Radu Stavila  <stavila@adobe.com>
556
557         [CSS Regions] Use the named-flow-specific object RenderNamedFlowFragment instead of the generic RenderRegion whenever possible
558         https://bugs.webkit.org/show_bug.cgi?id=128599
559
560         Reviewed by Andrei Bucur.
561
562         Use the named flow specific RenderNamedFlowFragment instead of the generic RenderRegion, whenever possible.
563         Move named flow specific methods from RenderRegion to RenderNamedFlowFragment.
564
565         No new tests required.
566
567         * dom/Element.cpp:
568         (WebCore::Element::renderNamedFlowFragment):
569         (WebCore::Element::webkitRegionOverset):
570         (WebCore::Element::webkitGetRegionFlowRanges):
571         * dom/Element.h:
572         * inspector/InspectorCSSAgent.cpp:
573         (WebCore::InspectorCSSAgent::buildArrayForRegions):
574         * rendering/PaintInfo.h:
575         (WebCore::PaintInfo::PaintInfo):
576         * rendering/RenderBlock.cpp:
577         (WebCore::RenderBlock::paint):
578         (WebCore::RenderBlock::paintObject):
579         * rendering/RenderBox.cpp:
580         (WebCore::RenderBox::paintBoxDecorations):
581         (WebCore::RenderBox::pushContentsClip):
582         (WebCore::RenderBox::layoutOverflowRectForPropagation):
583         * rendering/RenderBox.h:
584         * rendering/RenderBoxModelObject.cpp:
585         (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
586         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
587         * rendering/RenderBoxModelObject.h:
588         * rendering/RenderInline.h:
589         * rendering/RenderLayer.cpp:
590         (WebCore::RenderLayer::paint):
591         (WebCore::RenderLayer::paintLayer):
592         (WebCore::RenderLayer::paintLayerContents):
593         (WebCore::RenderLayer::paintLayerByApplyingTransform):
594         (WebCore::RenderLayer::updatePaintingInfoForFragments):
595         (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
596         (WebCore::RenderLayer::paintBackgroundForFragments):
597         (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
598         (WebCore::RenderLayer::paintOutlineForFragments):
599         (WebCore::RenderLayer::paintMaskForFragments):
600         (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
601         (WebCore::RenderLayer::calculateClipRects):
602         * rendering/RenderLayer.h:
603         * rendering/RenderNamedFlowFragment.cpp:
604         (WebCore::RenderNamedFlowFragment::getRanges):
605         * rendering/RenderNamedFlowFragment.h:
606         * rendering/RenderNamedFlowThread.cpp:
607         (WebCore::RenderNamedFlowThread::updateWritingMode):
608         (WebCore::compareRenderNamedFlowFragments):
609         (WebCore::addFragmentToList):
610         (WebCore::RenderNamedFlowThread::addFragmentToNamedFlowThread):
611         (WebCore::RenderNamedFlowThread::addRegionToThread):
612         (WebCore::RenderNamedFlowThread::removeRegionFromThread):
613         (WebCore::RenderNamedFlowThread::computeOversetStateForRegions):
614         (WebCore::RenderNamedFlowThread::checkInvalidRegions):
615         (WebCore::RenderNamedFlowThread::getRanges):
616         (WebCore::RenderNamedFlowThread::checkRegionsWithStyling):
617         (WebCore::RenderNamedFlowThread::clearRenderObjectCustomStyle):
618         * rendering/RenderNamedFlowThread.h:
619         * rendering/RenderRegion.cpp:
620         * rendering/RenderRegion.h:
621         * rendering/RenderReplaced.cpp:
622         (WebCore::RenderReplaced::shouldPaint):
623         * rendering/RenderReplica.cpp:
624         (WebCore::RenderReplica::paint):
625         * rendering/RootInlineBox.cpp:
626         (WebCore::RootInlineBox::paint):
627         * rendering/svg/RenderSVGRoot.cpp:
628         (WebCore::RenderSVGRoot::paintReplaced):
629
630 2014-02-21  Andrei Bucur  <abucur@adobe.com>
631
632         [CSS Regions] Regions don't paint correctly in new-multicol elements
633         https://bugs.webkit.org/show_bug.cgi?id=120711
634
635         Reviewed by David Hyatt.
636
637         This patch implements basic support for regions inside multi-column elements.
638         Currently, the painting and hit-testing logic of CSS Regions is not aware of
639         enclosing multi-column elements. The change is integrated at a layer level by
640         making use of the pre-computed layer fragments during the painting and hit-testing
641         phases for regions.
642
643         There are limitations such that self painting layers found inside the named flow
644         thread layer will not be correctly processed because they don't go through the
645         layer fragment collection step. This is not trivial to implement because the enclosing
646         pagination layer provided by the multi-column element is not visibile from inside
647         the named flow thread layer and they reside in different coordinate systems.
648
649         A side effect of this patch is the fix of regions incorrect clipping in certain
650         cases (when both a region and its container clip their overflow, the region's
651         content is visible outside the container).
652
653         Tests: fast/regions/region-clipping.html
654                fast/regions/regions-in-multicol-bt.html
655                fast/regions/regions-in-multicol-hover-overflow.html
656                fast/regions/regions-in-multicol-hover.html
657                fast/regions/regions-in-multicol-lr.html
658                fast/regions/regions-in-multicol-rl.html
659                fast/regions/regions-in-multicol.html
660
661         * rendering/RenderLayer.cpp:
662         (WebCore::RenderLayer::paintLayerContents):
663         (WebCore::RenderLayer::hitTestLayer):
664         (WebCore::RenderLayer::paintFlowThreadIfRegionForFragments):
665         (WebCore::RenderLayer::hitTestFlowThreadIfRegionForFragments):
666         * rendering/RenderLayer.h:
667
668 2014-02-21  Mihai Tica  <mitica@adobe.com>
669
670         [CSS Blending] Refactor -webkit-blend-mode to -webkit-mix-blend-mode
671         https://bugs.webkit.org/show_bug.cgi?id=128805
672
673         Reviewed by Dean Jackson.
674
675         The spec defines the mix-blend-mode property. This means that the
676         prefixed version should be -webkit-mix-blend-mode, instead of
677         -webkit-blend-mode.
678
679         * css/CSSComputedStyleDeclaration.cpp:
680         (WebCore::ComputedStyleExtractor::propertyValue):
681         * css/CSSParser.cpp:
682         (WebCore::isValidKeywordPropertyAndValue):
683         (WebCore::isKeywordPropertyID):
684         (WebCore::CSSParser::parseValue):
685         * css/CSSPropertyNames.in:
686         * css/DeprecatedStyleBuilder.cpp:
687         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
688
689 2014-02-21  Ryosuke Niwa  <rniwa@webkit.org>
690
691         Bindings tests rebaseline after r164473.
692
693         * bindings/scripts/test/ObjC/DOMTestObj.mm:
694         (-[DOMTestObj mutablePoint]):
695         (-[DOMTestObj immutablePoint]):
696         (-[DOMTestObj mutablePointFunction]):
697         (-[DOMTestObj immutablePointFunction]):
698         * bindings/scripts/test/ObjC/DOMTestTypedefs.mm:
699         (-[DOMTestTypedefs immutablePointFunction]):
700
701 2014-02-21  Tim Horton  <timothy_horton@apple.com>
702
703         Remove removed symbol from exports list.
704
705         * WebCore.exp.in:
706
707 2014-02-20  ChangSeok Oh  <changseok.oh@collabora.com>
708
709         Rename EXT_draw_buffers to WEBGL_draw_buffers
710         https://bugs.webkit.org/show_bug.cgi?id=128894
711
712         Reviewed by Dean Jackson.
713
714         I noticed the related spec has changed. Accordingly chromium also changed its implementation
715         to meet the spec. So here I'd like to apply it to webkit as well.
716
717         Merged from Blink (patch by bajones):
718         https://src.chromium.org/viewvc/blink?revision=152065&view=revision
719
720         Test: fast/canvas/webgl/webgl-draw-buffers.html
721
722         * CMakeLists.txt:
723         * DerivedSources.cpp:
724         * DerivedSources.make:
725         * GNUmakefile.list.am:
726         * WebCore.vcxproj/WebCore.vcxproj:
727         * WebCore.vcxproj/WebCore.vcxproj.filters:
728         * WebCore.xcodeproj/project.pbxproj:
729         * bindings/js/JSWebGLRenderingContextCustom.cpp:
730         (WebCore::toJS):
731         * html/canvas/EXTDrawBuffers.idl: Removed.
732         * html/canvas/WebGLDrawBuffers.cpp: Renamed from Source/WebCore/html/canvas/EXTDrawBuffers.cpp.
733         (WebCore::WebGLDrawBuffers::WebGLDrawBuffers):
734         (WebCore::WebGLDrawBuffers::~WebGLDrawBuffers):
735         (WebCore::WebGLDrawBuffers::getName):
736         (WebCore::WebGLDrawBuffers::create):
737         (WebCore::WebGLDrawBuffers::supported):
738         (WebCore::WebGLDrawBuffers::drawBuffersWEBGL):
739         (WebCore::WebGLDrawBuffers::satisfiesWebGLRequirements):
740         * html/canvas/WebGLDrawBuffers.h: Renamed from Source/WebCore/html/canvas/EXTDrawBuffers.h.
741         * html/canvas/WebGLDrawBuffers.idl: Added.
742         * html/canvas/WebGLExtension.h:
743         * html/canvas/WebGLFramebuffer.cpp:
744         (WebCore::WebGLFramebuffer::drawBuffersIfNecessary):
745         * html/canvas/WebGLRenderingContext.cpp:
746         (WebCore::WebGLRenderingContext::getExtension):
747         (WebCore::WebGLRenderingContext::getParameter):
748         (WebCore::WebGLRenderingContext::getSupportedExtensions):
749         (WebCore::WebGLRenderingContext::validateFramebufferFuncParameters):
750         (WebCore::WebGLRenderingContext::supportsDrawBuffers):
751         * html/canvas/WebGLRenderingContext.h:
752
753 2014-02-20  Ryosuke Niwa  <rniwa@webkit.org>
754
755         m_ancestorDisabledState should never be unknown
756         https://bugs.webkit.org/show_bug.cgi?id=129084
757
758         Reviewed by Benjamin Poulain.
759
760         In order to resolve the bug 129035, a text form control elements needs to synchronously change
761         its inner text element's editability by setting or unsetting contenteditable content attribute.
762         Before this patch, we could not do this because editability of a text form control dependent on
763         its disabled-ness which was only computed lazily via updateAncestorDisabledState().
764
765         This patch makes HTMLFieldSetElement and HTMLFormControlElement update this state synchronously.
766         To avoid O(k) DOM traversal, where k is the depth of the tree, in insertedInto and removedFrom of
767         HTMLFormControlElement on most pages, a new document-level flag, m_disabledFieldsetElementsCount,
768         has been added to indicate whether the document contains any disabled fieldset or not.
769
770         Also renamed the misleadingly named disabledAttributeChanged to disabledStateChanged, and added
771         new function of the same name (disabledAttributeChanged) to be used by HTMLFieldSetElement
772         for keeping the document-level flag up-to-date upon disabled attribute changes.
773
774         Tests: fast/forms/fieldset/fieldset-disabled-2.html
775
776         * dom/Document.cpp:
777         (WebCore::Document::Document): Initializes newly added m_disabledFieldsetElementsCount.
778         (WebCore::Document::~Document): Assert that we've done house keeping right.
779         * dom/Document.h:
780         (WebCore::Document::hasDisabledFieldsetElement): Added.
781         (WebCore::Document::addDisabledFieldsetElement): Added.
782         (WebCore::Document::removeDisabledFieldsetElement): Added.
783
784         * html/HTMLFieldSetElement.cpp:
785         (WebCore::HTMLFieldSetElement::~HTMLFieldSetElement): Removes itself from the owner document.
786
787         (WebCore::updateFromControlElementsAncestorDisabledStateUnder): Added. Updates startNode and
788         its descendants' ancestor disabled flag. We don't update controls under another disabled
789         fieldset element since disabled-ness of those controls aren't affected by startNode.
790
791         (WebCore::HTMLFieldSetElement::disabledAttributeChanged): Call addDisabledFieldsetElement and
792         removeDisabledFieldsetElement to update the owner document's flag.
793
794         (WebCore::HTMLFieldSetElement::disabledStateChanged): Renamed from disabledAttributeChanged. 
795         Enable form control elements under the first legend element and disable or enable other
796         descendent form controls in accordance with the presence of disabled content attribute.
797
798         (WebCore::HTMLFieldSetElement::childrenChanged): Update disabled-ness of form controls under
799         child legend elements because controls aren't disabled in the first legend element, and adding
800         or removing child elements may have changed the first legend element.
801
802         (WebCore::HTMLFieldSetElement::didMoveToNewDocument): Update the flag on the owner document.
803         * html/HTMLFieldSetElement.h:
804
805         * html/HTMLFormControlElement.cpp:
806         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
807         (WebCore::HTMLFormControlElement::computeIsDisabledByFieldsetAncestor): Returns boolean instead of
808         updating m_ancestorDisabledState internally. Also renamed from updateAncestorDisabledState.
809
810         (WebCore::HTMLFormControlElement::setAncestorDisabled): Replaced ancestorDisabledStateWasChanged.
811         This function updates m_disabledByAncestorFieldset and calls disabledAttributeChanged as needed.
812
813         (WebCore::HTMLFormControlElement::disabledAttributeChanged): Added. Calls disabledStateChanged.
814         (WebCore::HTMLFormControlElement::disabledStateChanged): Renamed from disabledAttributeChanged.
815
816         (WebCore::HTMLFormControlElement::insertedInto): Update m_disabledByAncestorFieldset if there is
817         a possibility (i.e. the document contains any disabled fieldset element) that this form control
818         is inserted under a disabled fieldset element.
819
820         (WebCore::HTMLFormControlElement::removedFrom): If this form control element is not disabled by
821         a fieldset ancestor, then there is nothing to do. If it is, then check to see if the element is
822         still disabled now that we've lost some ancestors.
823
824         (WebCore::HTMLFormControlElement::isDisabledFormControl): No longer updates m_ancestorDisabledState
825         lazily since m_disabledByAncestorFieldset is never ambiguous now.
826
827         * html/HTMLFormControlElement.h:
828         (WebCore::HTMLFormControlElement::disabledByAncestorFieldset): Added.
829
830 2014-02-20  Zalan Bujtas  <zalan@apple.com>
831
832         Remove redundant deviceScaleFactor() functions and make callers use Document::deviceScaleFactor() when accessible.
833         https://bugs.webkit.org/show_bug.cgi?id=129137
834
835         Reviewed by Simon Fraser.
836
837         No change in behavior.
838
839         * editing/DeleteButtonController.cpp:
840         (WebCore::DeleteButtonController::createDeletionUI):
841         * page/Page.cpp:
842         * page/Page.h:
843         * platform/graphics/GraphicsContext.cpp:
844         (WebCore::GraphicsContext::GraphicsContext):
845         * platform/graphics/GraphicsContext.h:
846         * platform/graphics/cg/GraphicsContextCG.cpp:
847         (WebCore::GraphicsContext::platformInit):
848         * rendering/RenderBoxModelObject.cpp:
849         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
850         (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
851         * rendering/RenderImage.cpp:
852         (WebCore::RenderImage::imageSizeForError):
853         (WebCore::RenderImage::paintReplaced):
854         * rendering/RenderLayer.cpp:
855         (WebCore::RenderLayer::drawPlatformResizerImage):
856         * rendering/RenderObject.cpp:
857         (WebCore::RenderObject::drawLineForBoxSide):
858         * rendering/RenderThemeMac.mm:
859         (WebCore::RenderThemeMac::paintProgressBar):
860         * rendering/svg/SVGRenderingContext.cpp:
861         (WebCore::SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem):
862
863 2014-02-20  David Kilzer  <ddkilzer@apple.com>
864
865         Stop generating Objective-C bindings for the SVG DOM
866         <http://webkit.org/b/129107>
867
868         Reviewed by Timothy Hatcher.
869
870         Bug 114076 stopped compiling the Objective-C bindings for the
871         SVG DOM, but we continued to generate the header and source
872         files after that landed in r147822.  This patch also stops
873         generating the unused header and source files.
874
875         * DerivedSources.make:
876         - Split BINDING_IDLS into NON_SVG_BINDING_IDLS and
877           SVG_BINDING_IDLS so that they may operated on separately.
878         - Define BINDING_IDLS again as the full list of IDL files.
879         - Rename DOM_CLASSES to JS_DOM_CLASSES so that JavaScript
880           bindings are still generated for all IDL files.
881         - Add OBJC_DOM_CLASSES so that Objective-C bindings are only
882           generated for non-SVG IDL files.
883
884         * bindings/scripts/CodeGeneratorObjC.pm:
885         (GetBaseClass):
886         (GetPropertyAttributes):
887         (AddIncludesForType):
888         (GenerateHeader):
889         (GenerateImplementation):
890         - Remove support for SVG classes.
891
892 2014-02-20  Simon Fraser  <simon.fraser@apple.com>
893
894         RenderBox::updateShapeOutsideInfoAfterStyleChange shows up on profiles
895         https://bugs.webkit.org/show_bug.cgi?id=129075
896
897         Reviewed by Dean Jackson.
898
899         updateShapeOutsideInfoAfterStyleChange() showed up on profiles in content
900         with no shapes. Avoid calling this if no style has shapeOutside().
901
902         * rendering/RenderBox.cpp:
903         (WebCore::RenderBox::styleDidChange):
904
905 2014-02-20  ChangSeok Oh  <changseok.oh@collabora.com>
906
907         Remove unused chromium stuff in Extensions3D
908         https://bugs.webkit.org/show_bug.cgi?id=129086
909
910         Reviewed by Anders Carlsson.
911
912         Remove GL_CHROMIUM_copy_texture and GL_CHROMIUM_flipy interfaces since they are used nowhere.
913
914         No new tests since no functionality changed.
915
916         * platform/graphics/Extensions3D.h:
917         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
918         * platform/graphics/opengl/Extensions3DOpenGL.h:
919         * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
920         * platform/graphics/opengl/Extensions3DOpenGLES.h:
921
922 2014-02-20  Joseph Pecoraro  <pecoraro@apple.com>
923
924         [iOS] Assert / crash trying to draw empty checked input
925         https://bugs.webkit.org/show_bug.cgi?id=129138
926
927         Reviewed by Simon Fraser.
928
929         Test: fast/forms/checkbox-empty-size.html
930
931         * rendering/RenderThemeIOS.mm:
932         (WebCore::shortened):
933         Avoid a divide by 0, but checking for the condition upfront.
934
935 2014-02-20  Benjamin Poulain  <bpoulain@apple.com>
936
937         Start fixing the view states driven by the WKScrollView
938         https://bugs.webkit.org/show_bug.cgi?id=129140
939
940         Reviewed by Tim Horton and Simon Fraser.
941
942         * platform/graphics/ca/mac/TileController.mm:
943         (WebCore::TileController::scaledExposedRect):
944         That comment was more confusing than helping. FrameView-relative coordinates should not need
945         scaling.
946
947 2014-02-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
948
949         Start to use std::unique_ptr for DragImageLoader
950         https://bugs.webkit.org/show_bug.cgi?id=129078
951
952         Reviewed by Ryosuke Niwa.
953
954         As a step to use std::unique_ptr, this patch replace uses of OwnPtr and PassOwnPtr
955         in the DragImageLoader class with std::unique_ptr. Besides DragImageLoader is set to
956         non-copyable class.
957
958         * dom/Clipboard.cpp:
959         (WebCore::Clipboard::setDragImage):
960         * dom/Clipboard.h:
961
962 2014-02-20  Brady Eidson  <beidson@apple.com>
963
964         Move the image controls setting to Settings.in
965         https://bugs.webkit.org/show_bug.cgi?id=129126
966
967         Reviewed by Tim Horton.
968
969         * page/Settings.cpp:
970         (WebCore::Settings::Settings):
971         * page/Settings.h:
972         * page/Settings.in:
973
974 2014-02-20  Brady Eidson  <beidson@apple.com>
975
976         Add very basic image control rendering
977         https://bugs.webkit.org/show_bug.cgi?id=129080
978
979         Reviewed by Tim Horton.
980
981         Test: fast/images/image-controls-basic.html
982
983         This patch is groundwork that adds a very basic image control that can render on top of images.
984
985         * dom/Node.h:
986         (WebCore::Node:: isImageControlsRootElement): Returns false, unless you are an ImageControls object.
987         * html/HTMLAttributeNames.in:
988
989         Teach HTMLImageElement how to understand an experimental attribute to install controls,
990         how to actually build the DOM to attach to the shadow root, how to tear that DOM down,
991         and how to make sure that Renderers are created for that DOM:
992         * html/HTMLImageElement.cpp:
993         (WebCore::HTMLImageElement::HTMLImageElement):
994         (WebCore::HTMLImageElement::parseAttribute):
995         (WebCore::HTMLImageElement::didAttachRenderers):
996         (WebCore::HTMLImageElement::updateImageControls):
997         (WebCore::HTMLImageElement::createImageControls):
998         (WebCore::HTMLImageElement::destroyImageControls):
999         (WebCore::HTMLImageElement::hasImageControls):
1000         (WebCore::HTMLImageElement::childShouldCreateRenderer):
1001         * html/HTMLImageElement.h:
1002         (WebCore::HTMLImageElement::hasShadowControls): For RenderImage to query when it is constructed. 
1003
1004         Add a generic, platform independent ImageControls root element that does nothing:
1005         * html/shadow/ImageControlsRootElement.cpp: Added.
1006         (WebCore::ImageControlsRootElement::maybeCreate):
1007         (WebCore::ImageControlsRootElement::ImageControlsRootElement):
1008         (WebCore::ImageControlsRootElement::~ImageControlsRootElement):
1009         * html/shadow/ImageControlsRootElement.h: Added.
1010
1011         Add a Mac-specific ImageControls root element that renders a 20x20 red box (for now):
1012         * html/shadow/mac/ImageControlsRootElementMac.cpp: Added.
1013         (WebCore::ImageControlsRootElementMac::ImageControlsRootElementMac):
1014         (WebCore::ImageControlsRootElementMac::~ImageControlsRootElementMac):
1015         (WebCore::ImageControlsRootElement::maybeCreate):
1016         (WebCore::ImageControlsRootElementMac::maybeCreate):
1017         * html/shadow/mac/ImageControlsRootElementMac.h: Added.
1018
1019         Since much of the RenderMedia::layout() method is now required for RenderImage as well,
1020         move the logic to RenderImage. The extra work is controlled by a bool flag that will always
1021         be set for RenderMedias but will only be set for certain RenderImages:
1022         * rendering/RenderImage.cpp:
1023         (WebCore::RenderImage::RenderImage):
1024         (WebCore::RenderImage::canHaveChildren):
1025         (WebCore::RenderImage::layout):
1026         (WebCore::RenderImage::layoutShadowControls):
1027         * rendering/RenderImage.h:
1028         (WebCore::RenderImage::setHasShadowControls):
1029         (WebCore::RenderImage::shadowControlsNeedCustomLayoutMetrics):
1030
1031         * rendering/RenderMedia.cpp:
1032         (WebCore::RenderMedia::RenderMedia):
1033         * rendering/RenderMedia.h:
1034         (WebCore::RenderMedia::shadowControlsNeedCustomLayoutMetrics):
1035
1036         * WebCore.xcodeproj/project.pbxproj:
1037
1038 == Rolled over to ChangeLog-2014-02-20 ==