Remove ChromeClient::willPopupMenu
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-05-13  Anders Carlsson  <andersca@apple.com>
2
3         Remove ChromeClient::willPopupMenu
4         https://bugs.webkit.org/show_bug.cgi?id=116063
5
6         Reviewed by Andreas Kling.
7
8         Remove ChromeClient::willPopupMenu.
9
10         * page/ChromeClient.h:
11
12 2013-05-13  Beth Dakin  <bdakin@apple.com>
13
14         Headers and footers should be pinned to the left edge of the window when scrolling 
15         horizontally
16         https://bugs.webkit.org/show_bug.cgi?id=116061
17         -and corresponding-
18         <rdar://problem/13599215>
19
20         Reviewed by Simon Fraser.
21
22         The scrolling thread will need to know about the header and footer layers in order 
23         the implement this custom scrolling behavior. 
24
25         These getters will fetch the header or footer layer from the FrameView as 
26         appropriate.
27         * page/scrolling/ScrollingCoordinator.cpp:
28         (WebCore::ScrollingCoordinator::headerLayerForFrameView):
29         (WebCore::ScrollingCoordinator::footerLayerForFrameView):
30         * page/scrolling/ScrollingCoordinator.h:
31
32         When we’re scrolling on the main thread, adjust the position of the header and 
33         footer layers here.
34         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
35
36         ScrollingStateScrollingNode now stores GraphicsLayers and PlatformLayers for the 
37         header and footer, just like it already does for the counterScrollingLayer.
38         * page/scrolling/ScrollingStateScrollingNode.cpp:
39         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
40         * page/scrolling/ScrollingStateScrollingNode.h:
41         (ScrollingStateScrollingNode):
42         (WebCore::ScrollingStateScrollingNode::headerLayer):
43         (WebCore::ScrollingStateScrollingNode::footerLayer):
44
45         Setters for the new layers.
46         * page/scrolling/mac/ScrollingCoordinatorMac.h:
47         (ScrollingCoordinatorMac):
48         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
49         (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
50         (WebCore::ScrollingCoordinatorMac::setHeaderLayerForNode):
51         (WebCore::ScrollingCoordinatorMac::setFooterLayerForNode):
52
53         These setters and getters mirror the existing one for counterScrollingLayer.
54         * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
55         (WebCore::ScrollingStateScrollingNode::headerPlatformLayer):
56         (WebCore::ScrollingStateScrollingNode::setHeaderLayer):
57         (WebCore::ScrollingStateScrollingNode::footerPlatformLayer):
58         (WebCore::ScrollingStateScrollingNode::setFooterLayer):
59
60         And the ScrollingTree will store CALayers for the header and footer.
61         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
62         (ScrollingTreeScrollingNodeMac):
63         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
64         (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
65
66         This is where the magic happens when we are scrolling on the scrolling thread. 
67         Adjust the horizontal position the behave like a fixed object, but keep the 
68         vertical position what it was when layer was created.
69         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
70
71         RenderLayerCompositor must now provide getters for the header and footer.
72         * rendering/RenderLayerCompositor.h:
73         * rendering/RenderLayerCompositor.cpp:
74         (WebCore::RenderLayerCompositor::headerLayer):
75         (WebCore::RenderLayerCompositor::footerLayer):
76
77         Set the anchor point for when we adjust the position later on. Also call 
78         frameViewRootLayerDidChange() to get the new layers picked up and sent to the 
79         scrolling tree.
80         (WebCore::RenderLayerCompositor::updateLayerForHeader):
81         (WebCore::RenderLayerCompositor::updateLayerForFooter):
82
83 2013-05-12  Timothy Hatcher  <timothy@apple.com>
84
85         Add support for updating the Web Inspector toolbar height.
86
87         https://bugs.webkit.org/show_bug.cgi?id=115996
88
89         Reviewed by Joseph Pecoraro and Benjamin Poulain.
90
91         * inspector/InspectorFrontendClient.h:
92         (InspectorFrontendClient):
93         * inspector/InspectorFrontendHost.cpp:
94         (WebCore::InspectorFrontendHost::setToolbarHeight):
95         * inspector/InspectorFrontendHost.h:
96         (InspectorFrontendHost):
97         * inspector/InspectorFrontendHost.idl:
98         * testing/Internals.cpp:
99
100 2013-05-13  Dean Jackson  <dino@apple.com>
101
102         toDataURL can return an empty image in some cases
103         https://bugs.webkit.org/show_bug.cgi?id=115981
104         <rdar://problem/13760256>
105
106         Reviewed by Darin Adler.
107
108         In some accelerated rendering cases, calling toDataURL on
109         an off-screen canvas produced an empty image. The solution
110         was to force a CGContextFlush before extracting the data
111         for image generation.
112
113         While here, I collected the flushing code from other methods
114         into a single place. Also we were getting into a situation where
115         we called flush two times in a row.
116
117         Test: fast/canvas/toDataURL-not-empty.html
118
119         * platform/graphics/ImageBuffer.h:
120         (ImageBuffer): Define two new methods flushContext and flushContextIfNecessary.
121         * platform/graphics/cg/ImageBufferCG.cpp:
122         (WebCore::ImageBuffer::context): Call flushContextIfNecessary.
123         (WebCore::ImageBuffer::flushContextIfNecessary): Moved the 10.7 code in here.
124         (WebCore::ImageBuffer::flushContext): Calls CGContextFlush.
125         (WebCore::ImageBuffer::getUnmultipliedImageData): Call new helper.
126         (WebCore::ImageBuffer::getPremultipliedImageData): Call new helper.
127         (WebCore::ImageBuffer::toDataURL): Flush the CG context.
128
129 2013-05-13  David Hyatt  <hyatt@apple.com>
130
131         Regressions in flexbox layout caused by the flexing optimizations.
132         https://bugs.webkit.org/show_bug.cgi?id=116058
133         <rdar://problem/13863647>
134         
135         Reviewed by Beth Dakin.
136
137         Roll out the flex-related changes from r149597 so that the layout
138         algorithm goes back to the way it was. Leave the repainting optimizations
139         in place though.
140
141         * rendering/RenderDeprecatedFlexibleBox.cpp:
142         (WebCore::gatherFlexChildrenInfo):
143         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
144         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
145
146 2013-05-13  Philippe Normand  <pnormand@igalia.com>
147
148         Unreviewed, rolling out r150014.
149         http://trac.webkit.org/changeset/150014
150         https://bugs.webkit.org/show_bug.cgi?id=86410
151
152         Broke video playback on WK2 and some webgl tests
153
154         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
155         (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
156         (WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
157         (WebCore::MediaPlayerPrivateGStreamerBase::paint):
158         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
159         (MediaPlayerPrivateGStreamerBase):
160
161 2013-05-13  Christophe Dumez  <ch.dumez@sisa.samsung.com>
162
163         Unreviewed, rolling out r150022.
164         http://trac.webkit.org/changeset/150022
165         https://bugs.webkit.org/show_bug.cgi?id=114044
166
167         Causes assertions in media tests
168
169         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
170         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
171         (WebCore::MediaPlayerPrivateGStreamer::playbackPosition):
172         (WebCore::MediaPlayerPrivateGStreamer::prepareToPlay):
173         (WebCore::MediaPlayerPrivateGStreamer::currentTime):
174         (WebCore::MediaPlayerPrivateGStreamer::seek):
175         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
176         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
177         (MediaPlayerPrivateGStreamer):
178
179 2013-05-13  Bem Jones-Bey  <bjonesbe@adobe.com>
180
181         Floats should not overhang from flex items
182         https://bugs.webkit.org/show_bug.cgi?id=115925
183
184         Reviewed by David Hyatt.
185
186         Allowing floats to overhand from flex items is not only against the
187         spec, it causes bad bugs. Fix this by having flex items properly avoid
188         floats.
189
190         Test: fast/block/float/float-not-removed-crash2.html
191
192         * rendering/RenderBox.cpp:
193         (WebCore::RenderBox::avoidsFloats): Add flex items to avoid floats.
194         * rendering/RenderBox.h:
195         (WebCore::RenderBox::isFlexItemIncludingDeprecated): Determine if the current box is a
196             flex item or deprecated flex item.
197
198 2013-05-13  Zoltan Horvath  <zoltan@webkit.org>
199
200         [CSS Regions][CSS Exclusions] Shape-inside on regions should respect region borders and paddings
201         https://bugs.webkit.org/show_bug.cgi?id=115456
202
203         Reviewed by David Hyatt.
204
205         I refactored the computation logic of shape-inside on regions by removing access to RenderFlowThread from ExclusionShapeInfo's logicalTopOffset
206         function, this means all the logic is now existing in RenderBlockLineLayout.cpp. By modifying the logicalTopOffset it turned out that the borders
207         and padding hadn't worked correctly, since borders and paddings were counted twice in the shape-inside's computation. This patch adds the necessary
208         modifications to let it respect the borders and padding in the correct way. I created 2 new helper functions to prevent increasing the code size of
209         the layoutRunsAndFloatsInRange function.
210
211         I introduced 7 new tests to test for testing the correct behavior.
212
213         Tests: fast/regions/shape-inside/shape-inside-on-first-region-block-content.html
214                fast/regions/shape-inside/shape-inside-on-first-region-inline-content.html
215                fast/regions/shape-inside/shape-inside-on-second-region-block-content.html
216                fast/regions/shape-inside/shape-inside-on-second-region-inline-content.html
217                fast/regions/shape-inside/shape-inside-on-regions-inline-content.html
218                fast/regions/shape-inside/shape-inside-with-region-borders.html
219                fast/regions/shape-inside/shape-inside-with-region-padding.html
220
221         * rendering/ExclusionShapeInfo.cpp:
222         (WebCore): Remove FlowThread logic from logicalTopOffset move definition to header.
223         * rendering/ExclusionShapeInfo.h:
224         (WebCore::ExclusionShapeInfo::logicalTopOffset): Moved from cpp.
225         (WebCore::ExclusionShapeInfo::logicalLeftOffset): Add condition for RenderRegions. 
226         * rendering/RenderBlock.h:
227         (RenderBlock): Add definition to the new helper members.
228         * rendering/RenderBlockLineLayout.cpp:
229         (WebCore::RenderBlock::layoutExclusionShapeInsideInfo): Modified the flow thread case to return the appropriate region.
230         (WebCore::RenderBlock::updateLineBoundariesForExclusions): Added new helper function. Modify the shape-inside on regions
231         line boundaries and position computation logic.
232         (WebCore::RenderBlock::adjustLogicalLineTopAndLogicalHeightIfNeeded): Added new helper function which handles the flow thread case also.
233         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Modified the code to use the helper functions.
234
235 2013-05-13  Bear Travis  <betravis@adobe.com>
236
237         [css exclusions] Enable CSS Exclusions by default when CSS_EXCLUSIONS is set
238         https://bugs.webkit.org/show_bug.cgi?id=115919
239
240         Reviewed by Dean Jackson.
241
242         Change the RuntimeEnabledFeatures::isCSSExclusionsEnabled boolean to default
243         to true. CSS Exclusions can still be enabled / disabled in platforms by
244         setting the CSS_EXCLUSIONS compile flag in one of the FeatureDefine files.
245
246         Test: fast/exclusions/css-exclusions-enabled.html
247
248         * bindings/generic/RuntimeEnabledFeatures.cpp:
249         (WebCore):
250
251 2013-05-13  Suchit Agrawal  <a.suchit@samsung.com>
252
253         Cell heights are disproportional when a row-spanning cell contains a block element that determines the height of the rows
254         https://bugs.webkit.org/show_bug.cgi?id=52185
255
256         Reviewed by David Hyatt.
257
258         Cells heights are not proper when rowspan cell have its own height and rowspan height
259         is more than the height of the rows present in rowspan.
260
261         After calculating logical height of the rows in the table, we are recalculating the height
262         of the rows present in rowspan. Based on the ratio of row's logical height, we are
263         distributing rowspan cell height in rows.
264
265         Test: fast/table/table-rowspan-height-distribution-in-rows.html
266
267         * rendering/RenderTableSection.cpp:
268         (WebCore):
269
270         Update the logical height of the rows based on rowspan cell height.
271         (WebCore::RenderTableSection::distributeRowSpanHeightToRows):
272
273         It calculates logical height of the rows in the table.
274         (WebCore::RenderTableSection::calcRowLogicalHeight):
275
276         Added new private API to distribute rowSpan cell height in rows.
277         * rendering/RenderTableSection.h:
278         (RenderTableSection):
279
280 2013-04-30  Balazs Kelemen  <b.kelemen@sisa.samsung.com>
281
282         [GStreamer] cannot seek after video finished
283         https://bugs.webkit.org/show_bug.cgi?id=114044
284
285         Reviewed by Philippe Normand.
286
287         Test: media/video-seek-after-end.html
288
289         Rework the seeking logic to be able to seek after reseting the pipeline.
290         In addition to solve the actual problem this patch supposed to make seeking
291         more robust and correct.
292         The previous implementation tried to hide the complexity of asynchronous operations
293         on the pipeline. It did not handle the GST_MESSAGE_ASYNC_DONE message from the bus
294         but instead reported the seek as finished when it saw an asynchronous pending state
295         (GST_STATE_CHANGE_ASYNC) which could happen way before the seek is really done.
296         Now we pay attention to the GST_MESSAGE_ASYNC_DONE message to track the status of seeks.
297         Seeks are not the only operations executed asynchronously, changing the pipeling state is
298         similar. It means a seek can overlap with onother ongoing asynchronous operation.
299         This change address this by introducing an invariant for seeks, which is that we only request
300         a seek if there are no other ongoing asynchronous operations and the pipeline state is either
301         paused or playing (which is recommended anyway according to GStreamer's documentation).
302         This way we can be sure that the time when we get the next GST_MESSAGE_ASYNC_DONE message the
303         seek has been completed.
304
305         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
306         (WebCore::toGstClockTime): Factored time conversation into a helper.
307         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
308
309         (WebCore::MediaPlayerPrivateGStreamer::playbackPosition): The position might not be available
310         if the pipeline still has a pending state. As a workaround, if we are right after a seek we can
311         use the seek time. Avoiding this situation would be possible by not allowing any asynchronous
312         operation to overlap. I believe it would add a lot more complexity so I decided to rather introduce
313         this workaround. Otherwise those overlapping operations are handled fine by GStreamer.
314
315         (WebCore::MediaPlayerPrivateGStreamer::prepareToPlay): Do not reset internal state variables.
316         This function called when there is an intent to restart playback but it does not actually restart it.
317         (WebCore::MediaPlayerPrivateGStreamer::currentTime): Just removed a staling newline.
318         (WebCore::MediaPlayerPrivateGStreamer::seek): Take a look to the pipeline state and act upon that.
319         If there is an ongoing asynchronous operation make the seek pending, otherwise do it now.
320         Now we handle overlapping seeks as well because I saw that it can happen in some tests.
321         Added an early return for live streams as it doesn't makes sense to try seeking in them.
322
323         (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Handle GST_MESSAGE_ASYNC_DONE and some refactoring.
324         (WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone):
325         (WebCore::MediaPlayerPrivateGStreamer::updateStates): Only handle seeks in the pending case, the rest is
326         now handled in asyncStateChangeDone.
327         (WebCore::MediaPlayerPrivateGStreamer::cacheDuration): Do not reset the m_mediaDurationKnown if the pipeline
328         has an asynchronous pending state because it would fail. It does actually happen when we get a duration message
329         after restarting the pipeline and it would result in restarting playback from the start. It seems to be a bug
330         in GStreamer that it sends the duration message too early. Also sanitized this function by merging redundant branches.
331         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
332         (MediaPlayerPrivateGStreamer):
333
334 2013-05-12  Darin Adler  <darin@apple.com>
335
336         [Mac] Move writeRange/PlainText/URL from ClipboardMac to PasteboardMac
337         https://bugs.webkit.org/show_bug.cgi?id=116009
338
339         Reviewed by Andreas Kling.
340
341         * dom/Clipboard.cpp:
342         (WebCore::Clipboard::writeRange): Added. Moved from ClipboardMac,
343         but added some FIXMEs.
344         (WebCore::Clipboard::writePlainText): Ditto.
345         (WebCore::Clipboard::writeURL): Ditto.
346
347         * dom/Clipboard.h: Made writeURL, writeRange, and writePlainText
348         non-virtual in non-legacy clipboard implementations.
349
350         * platform/mac/ClipboardMac.h: Removed writeRange, writeURL, and
351         writePlainText.
352         * platform/mac/ClipboardMac.mm: Ditto.
353
354 2013-05-13  Noam Rosenthal  <noam@webkit.org>
355
356         [CoordGfx] requestAnimationFrame performance issues
357         https://bugs.webkit.org/show_bug.cgi?id=112345
358
359         Reviewed by Jocelyn Turcotte.
360
361         Removed current requestAnimationFrame logic from CoordinatedGraphics. The new logic
362         is entirely in WebKit2 CoordinatedLayerTreeHost.
363
364         Covered by existing tests in fast/animations.
365
366         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
367         (WebCore::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
368         (WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
369         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
370         (CoordinatedGraphicsScene):
371
372 2013-05-13  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
373
374         [texmap][GStreamer] Composited Video support
375         https://bugs.webkit.org/show_bug.cgi?id=86410
376
377         Reviewed by Philippe Normand.
378
379         Enable the video accelerated compositing using the WebKit's
380         TextureMapper.
381
382         This patch does not use hardware accelerated video decoding. It
383         provides a generic path for system memory buffers.
384
385         No new tests, already covered by existing tests.
386
387         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
388         (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
389         (WebCore):
390         (WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): update the
391         texture content with the new received video buffer.
392         (WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint): choose to
393         use the accelerated compositing or the normal code path
394         (WebCore::MediaPlayerPrivateGStreamerBase::paint): if accelerated
395         compositing is used this method is halted.
396         (WebCore::MediaPlayerPrivateGStreamerBase::paintToTextureMapper): get
397         a texture from the pool and draws it if it is already available.
398         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
399         (MediaPlayerPrivateGStreamerBase):
400         (WebCore::MediaPlayerPrivateGStreamerBase::platformLayer): returns itself
401         (WebCore::MediaPlayerPrivateGStreamerBase::supportsAcceleratedRendering):
402         returns true
403
404 2013-05-13  Andreas Kling  <akling@apple.com>
405
406         Document: Use a DeferrableOneShotTimer to throw out StyleResolver when unused.
407         <http://webkit.org/b/115929>
408
409         Reviewed by Anders Carlsson.
410
411         Nothing exciting here, just replacing a rickety-looking punting mechanism with a proper
412         DeferrableOneShotTimer. Note that the timeout changes from 60 to 30 seconds because DOST
413         works by punting a full interval on next timeout.
414
415         * dom/Document.cpp:
416         (WebCore::Document::Document):
417         (WebCore::Document::didAccessStyleResolver):
418         (WebCore::Document::styleResolverThrowawayTimerFired):
419         * dom/Document.h:
420         (Document):
421
422 2013-05-13  Andreas Kling  <akling@apple.com>
423
424         REGRESSION(r149287): FoldingText only shows me half of my text.
425         <http://webkit.org/b/115956>
426         <rdar://problem/13831099>
427
428         Reviewed by Antti Koivisto.
429
430         Check if the FrameView geometry changed post-layout, and send a resize event if needed.
431         This brings us closer to the original resize event behavior, with the exception that
432         setFrameRect() still fires an event right away if possible. This means we are still
433         guarded from FOUC's but frames that layout via [WebHTMLView layoutToMinimumPageWidth]
434         also get resize events like they used to.
435
436         No new tests, because I don't know how to test this.
437
438         * page/FrameView.h:
439         * page/FrameView.cpp:
440         (WebCore::FrameView::setFrameRect):
441         (WebCore::FrameView::performPostLayoutTasks):
442         (WebCore::FrameView::sendResizeEventIfNeeded):
443
444             Factor out the resize event logic from setFrameRect() so we can call it from both
445             there and performPostLayoutTasks(). sendResizeEventIfNeeded() only sends an event
446             if view geometry or zoom factor has changed since last time it was called.
447
448 2013-05-13  Antti Koivisto  <antti@apple.com>
449
450         Remove unneeded counters from ScopeContentDistribution.
451         https://bugs.webkit.org/show_bug.cgi?id=116028
452
453         Reviewed by Andreas Kling.
454
455         They don't do much.
456
457         * WebCore.exp.in:
458         * dom/ShadowRoot.cpp:
459         (WebCore::ShadowRoot::ShadowRoot):
460         * dom/ShadowRoot.h:
461         
462             No need for registration code anymore.
463
464         * html/shadow/ContentDistributor.cpp:
465         (WebCore::ScopeContentDistribution::ScopeContentDistribution):
466         
467             Default m_insertionPointListIsValid to true to avoid crawling when there are no InsertionPoints.
468
469         (WebCore::ScopeContentDistribution::ensureInsertionPointList):
470         (WebCore::ScopeContentDistribution::registerInsertionPoint):
471         (WebCore::ScopeContentDistribution::unregisterInsertionPoint):
472         * html/shadow/ContentDistributor.h:
473         
474             Remove distributeNodeChildrenTo, it was only used by the older/younger shadow root code.
475
476         * testing/Internals.cpp:
477         * testing/Internals.h:
478         * testing/Internals.idl:
479
480 2013-05-13  Seokju Kwon  <seokju.kwon@gmail.com>
481
482         Web Inspector: Remove unused references from projects in Visual Studio
483         https://bugs.webkit.org/show_bug.cgi?id=116002
484
485         Reviewed by Csaba Osztrogonác.
486
487         nativeMemoryProfiler.css and NativeMemorySnapshotView.js were removed in r149807.
488
489         No new tests, no behavior change.
490
491         * WebCore.vcproj/WebCore.vcproj:
492         * WebCore.vcxproj/WebCore.vcxproj:
493         * WebCore.vcxproj/WebCore.vcxproj.filters:
494
495 2013-05-13  Zalan Bujtas  <zalan@apple.com>
496
497         WebProcess consuming very high CPU on linkedin.com
498         https://bugs.webkit.org/show_bug.cgi?id=115601
499
500         Reviewed by Andreas Kling.
501
502         Disable WEB_TIMING_MINIMAL.
503         Turn off window.performance and performance.now(). Some JS frameworks expect
504         additional Web Timing APIs, when performance.now() is available.
505
506         * Configurations/FeatureDefines.xcconfig:
507         * dom/EventTargetFactory.in:
508         * page/DOMWindow.cpp:
509         (WebCore::DOMWindow::~DOMWindow):
510         (WebCore::DOMWindow::resetDOMWindowProperties):
511         (WebCore):
512         * page/DOMWindow.h:
513         (DOMWindow):
514         * page/DOMWindow.idl:
515         * page/Performance.cpp:
516         (WebCore::Performance::timing):
517         * page/Performance.h:
518         (Performance):
519         * page/Performance.idl:
520
521 2013-05-12  Eric Carlson  <eric.carlson@apple.com>
522
523         REGRESSION (r149749): Video becomes invisible when it starts playing at newyorkbygehry.com
524         https://bugs.webkit.org/show_bug.cgi?id=115963
525
526         Reviewed by Dean Jackson.
527
528         Test: media/video-remove-insert-repaints.html
529
530         * html/HTMLMediaElement.cpp:
531         (WebCore::HTMLMediaElement::insertedInto): Set m_inActiveDocument when inserted into a document.
532         (WebCore::HTMLMediaElement::removedFrom): Fix logging.
533
534 2013-05-12  David Kilzer  <ddkilzer@apple.com>
535
536         Move sudden termination symbols to the Mac-only section
537
538         * WebCore.exp.in: Move the sudden termination symbols to the
539         !PLATFORM(IOS) section for reals this time.
540
541 2013-05-12  Darin Adler  <darin@apple.com>
542
543         Fix Mac build.
544
545         * platform/mac/PasteboardMac.mm: Add back include of ClipboardMac.h
546         that was removed by accident a couple of patches back.
547
548 2013-05-12  Darin Adler  <darin@apple.com>
549
550         [Mac] Moved files function from ClipboardMac to PasteboardMac
551         https://bugs.webkit.org/show_bug.cgi?id=116008
552
553         Reviewed by Anders Carlsson.
554
555         * dom/Clipboard.cpp:
556         (WebCore::Clipboard::files): Added. Moved the DOM-depdendent and
557         platform-independent part of the files function in ClipboardMac here.
558
559         * dom/Clipboard.h: Made files function non-virtual in non-legacy case.
560
561         * platform/Pasteboard.h: Removed static member function
562         absoluteURLsFromPasteboardFilenames since it can now be private to
563         PasteboardMac. Added member function readFilenames.
564
565         * platform/mac/ClipboardMac.h: Removed function member files and also
566         now-unused data member m_clipboardContents.
567
568         * platform/mac/ClipboardMac.mm: Removed files function.
569         (WebCore::ClipboardMac::ClipboardMac): Removed code to initialize
570         m_clipboardContents.
571
572         * platform/mac/PasteboardMac.mm:
573         (WebCore::absoluteURLsFromPasteboardFilenames): Changed from a static
574         member function to a file-local function.
575         (WebCore::absoluteURLsFromPasteboard): Changed to call the function
576         above in its new location.
577         (WebCore::Pasteboard::readFilenames): Added. Code from ClipboardMac,
578         minus the DOM-specific parts. Added a FIXME about the peculiar round
579         trip through NSURL this code takes.
580
581 2013-05-12  Anders Carlsson  <andersca@apple.com>
582
583         Fix WebKit2 build.
584
585         * WebCore.exp.in:
586         Put WebCore::disableSuddenTermination and WebCore::enableSuddenTermination symbols in the right section.
587
588 2013-05-12  Darin Adler  <darin@apple.com>
589
590         [Mac] Move types function from ClipboardMac to PasteboardMac
591         https://bugs.webkit.org/show_bug.cgi?id=116007
592
593         Reviewed by Anders Carlsson.
594
595         * dom/Clipboard.cpp:
596         (WebCore::Clipboard::types): Added. Calls through to Pasteboard
597         after doing checks needed at this level.
598
599         * dom/Clipboard.h: Made types function non-virtual in non-legacy case,
600         and removed non-helpful comment.
601
602         * platform/Pasteboard.h: Updated includes and comments at the top of
603         the file a bit. Removed static member function addHTMLClipboardTypesForCocoaType,
604         since it can now be private to PasteboardMac. Added member function types.
605
606         * platform/mac/ClipboardMac.h: Removed types function.
607         * platform/mac/ClipboardMac.mm: Ditto.
608
609         * platform/mac/PasteboardMac.mm:
610         (WebCore::addHTMLClipboardTypesForCocoaType): Made this a file-local
611         function instead of a static member function.
612         (WebCore::Pasteboard::types): Added. Moved from ClipboardMac.
613
614 2013-05-12  Darin Adler  <darin@apple.com>
615
616         [Mac] Move setData from ClipboardMac to PasteboardMac
617         https://bugs.webkit.org/show_bug.cgi?id=116006
618
619         Reviewed by Anders Carlsson.
620
621         * dom/Clipboard.cpp:
622         (WebCore::Clipboard::setData): Added. Calls through to Pasteboard
623         after doing checks needed at this level.
624
625         * dom/Clipboard.h: Made setData non-virtual in non-legacy case.
626
627         * platform/Pasteboard.h: Updated includes and forward declarations.
628         Removed static member function cocoaTypeFromHTMLClipboardType, since
629         it can now be private to PasteboardMac. Added static member function
630         addHTMLClipboardTypesForCocoaType, which is shared between the
631         ClipboardMac and PasteboardMac files for now. Added writeString.
632
633         * platform/mac/ClipboardMac.h: Removed setData.
634
635         * platform/mac/ClipboardMac.mm: Removed utiTypeFromCocoaType,
636         addHTMLClipboardTypesForCocoaType, and setData.
637         (WebCore::ClipboardMac::types): Call addHTMLClipboardTypesForCocoaType
638         as a Pasteboard static member function, for now.
639
640         * platform/mac/PasteboardMac.mm:
641         (WebCore::cocoaTypeFromHTMLClipboardType): Added. Moved from ClipboardMac.
642         (WebCore::Pasteboard::readString): Changed to call
643         cocoaTypeFromHTMLClipboardType as a file-local function, not a member
644         function (in fact, we didn't need to repeat the class name before, either,
645         so this is just removing something we didn't need).
646         (WebCore::utiTypeFromCocoaType): Added. Moved from ClipboardMac.
647         (WebCore::Pasteboard::addHTMLClipboardTypesForCocoaType): Ditto.
648         (WebCore::Pasteboard::writeString): Ditto.
649
650 2013-05-12  Darin Adler  <darin@apple.com>
651
652         [Mac] Move getData from ClipboardMac to PasteboardMac
653         https://bugs.webkit.org/show_bug.cgi?id=116005
654
655         Reviewed by Anders Carlsson.
656
657         * dom/Clipboard.cpp:
658         (WebCore::Clipboard::Clipboard): Added a new boolean argument, forFileDrag,
659         to the constructor. Maybe we can find a better way to do this once we move
660         all the platforms over, but this boolean seems a good way to do it for now.
661         (WebCore::Clipboard::getData): Added. Calls through to Pasteboard after
662         doing the canReadData check, which is part of DOM rules, not the platform.
663         Also checks for the file drag case like the old ClipboardMac code did.
664
665         * dom/Clipboard.h: Made getData non-virtual in non-legacy case.
666
667         * platform/Pasteboard.h: Added a static member function named
668         absoluteURLsFromPasteboardFilenames, temporary so it can be shared between
669         ClipboardMac and PasteboardMac. Added a readString public function member,
670         and a m_changeCount data member. The type of m_changeCount is long since
671         that can always hold an NSInteger but yet is a type we can compile without
672         including the header file that defines NSInteger.
673
674         * platform/mac/ClipboardMac.h: Removed getData.
675         * platform/mac/ClipboardMac.mm: Removed getData.
676         (WebCore::ClipboardMac::ClipboardMac): Added code to pass in the new
677         forFileDrag boolean.
678         (WebCore::ClipboardMac::files): Call absoluteURLsFromPasteboardFilenames
679         as a static member function in Pasteboard since we moved it there.
680
681         * platform/mac/PasteboardMac.mm:
682         (WebCore::Pasteboard::Pasteboard): Initialize the change count, so later
683         pasteboard operations can check it.
684         (WebCore::Pasteboard::absoluteURLsFromPasteboardFilenames): Added. Moved
685         here from ClipboardMac.
686         (WebCore::absoluteURLsFromPasteboard): Ditto.
687         (WebCore::Pasteboard::readString): Added. Moved here from ClipboardMac.
688
689 2013-05-12  Anders Carlsson  <andersca@apple.com>
690
691         Stop including UnusedParam.h
692         https://bugs.webkit.org/show_bug.cgi?id=116003
693
694         Reviewed by Sam Weinig.
695
696         UnusedParam.h is empty now so there's no need to include it anymore.
697
698         * Modules/encryptedmedia/CDMPrivateAVFoundation.mm:
699         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
700         * Modules/indexeddb/IDBObjectStore.cpp:
701         * Modules/webdatabase/DatabaseServer.cpp:
702         * Modules/webdatabase/DatabaseThread.cpp:
703         * bindings/js/JSDOMWindowBase.cpp:
704         * bindings/objc/DOMObject.mm:
705         * css/CSSCursorImageValue.cpp:
706         * css/DeprecatedStyleBuilder.cpp:
707         * dom/EventDispatcher.cpp:
708         * dom/Node.cpp:
709         * editing/AlternativeTextController.h:
710         * editing/Editor.cpp:
711         * html/HTMLPlugInElement.cpp:
712         * html/canvas/CanvasRenderingContext2D.cpp:
713         * html/canvas/OESVertexArrayObject.h:
714         * html/parser/HTMLConstructionSite.cpp:
715         * html/parser/HTMLTokenizer.cpp:
716         * html/track/InbandTextTrack.cpp:
717         * inspector/InspectorCanvasInstrumentation.h:
718         * inspector/InspectorConsoleInstrumentation.h:
719         * inspector/InspectorController.cpp:
720         * inspector/InspectorCounters.h:
721         * inspector/InspectorDatabaseInstrumentation.h:
722         * inspector/InspectorInstrumentation.h:
723         * loader/DocumentThreadableLoader.cpp:
724         * loader/PingLoader.cpp:
725         * loader/appcache/ApplicationCacheGroup.cpp:
726         * loader/cache/CachedResourceLoader.cpp:
727         * loader/mac/DocumentLoaderMac.cpp:
728         * page/ChromeClient.h:
729         * page/Console.cpp:
730         * page/FrameView.cpp:
731         * page/PageConsole.cpp:
732         * page/animation/AnimationController.cpp:
733         * page/animation/ImplicitAnimation.cpp:
734         * page/animation/KeyframeAnimation.cpp:
735         * platform/LocalizedStrings.cpp:
736         * platform/ScrollAnimator.h:
737         * platform/ThreadGlobalData.cpp:
738         * platform/blackberry/AsyncFileSystemBlackBerry.cpp:
739         * platform/graphics/Font.cpp:
740         * platform/graphics/GlyphBuffer.h:
741         * platform/graphics/Gradient.cpp:
742         * platform/graphics/ShadowBlur.cpp:
743         * platform/graphics/SimpleFontData.cpp:
744         * platform/graphics/SimpleFontData.h:
745         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
746         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
747         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
748         * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
749         * platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm:
750         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
751         * platform/graphics/blackberry/GradientBlackBerry.cpp:
752         * platform/graphics/blackberry/GraphicsContextBlackBerry.cpp:
753         * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
754         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
755         * platform/graphics/ca/mac/WebTileLayer.mm:
756         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
757         * platform/graphics/cg/GraphicsContextCG.cpp:
758         * platform/graphics/cg/ImageBufferCG.cpp:
759         * platform/graphics/cg/ImageSourceCG.cpp:
760         * platform/graphics/clutter/PlatformClutterAnimation.cpp:
761         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
762         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
763         * platform/graphics/mac/GraphicsContext3DMac.mm:
764         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
765         * platform/graphics/mac/SimpleFontDataMac.mm:
766         * platform/graphics/mac/WebGLLayer.mm:
767         * platform/graphics/mac/WebLayer.mm:
768         * platform/graphics/mac/WebTiledLayer.mm:
769         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
770         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
771         * platform/graphics/qt/GraphicsContext3DQt.cpp:
772         * platform/graphics/texmap/TextureMapper.h:
773         * platform/graphics/wince/ImageBufferWinCE.cpp:
774         * platform/mac/PasteboardMac.mm:
775         * platform/mac/ScrollAnimatorMac.mm:
776         * platform/mac/ScrollViewMac.mm:
777         * platform/mac/ScrollbarThemeMac.mm:
778         * platform/mac/SharedTimerMac.mm:
779         * platform/mac/WebCoreFullScreenPlaceholderView.mm:
780         * platform/mac/WebCoreObjCExtras.mm:
781         * platform/mac/WebFontCache.mm:
782         * platform/mac/WebVideoFullscreenController.mm:
783         * platform/mac/WebVideoFullscreenHUDWindowController.mm:
784         * platform/mac/WebWindowAnimation.mm:
785         * platform/network/blackberry/CredentialStorageBlackBerry.cpp:
786         * platform/network/cf/ResourceErrorCF.cpp:
787         * platform/network/mac/CookieStorageMac.mm:
788         * platform/network/mac/ResourceHandleMac.mm:
789         * platform/network/win/ResourceHandleWin.cpp:
790         * platform/text/TextEncodingDetectorICU.cpp:
791         * rendering/RenderFlowThread.h:
792         * rendering/RenderImage.cpp:
793         * rendering/RenderLayer.cpp:
794         * rendering/RenderObject.cpp:
795         * rendering/RenderTreeAsText.cpp:
796         * rendering/svg/RenderSVGResourceClipper.cpp:
797         * rendering/svg/RenderSVGResourceFilter.cpp:
798         * rendering/svg/RenderSVGResourceGradient.cpp:
799         * rendering/svg/RenderSVGResourceMasker.cpp:
800         * rendering/svg/SVGRenderSupport.cpp:
801         * rendering/svg/SVGTextLayoutEngineSpacing.cpp:
802         * workers/WorkerContext.cpp:
803         * workers/WorkerScriptLoader.cpp:
804         * xml/XMLHttpRequest.cpp:
805         * xml/parser/XMLDocumentParserLibxml2.cpp:
806
807 2013-05-12  Darin Adler  <darin@apple.com>
808
809         [Mac] Move clearAllData from ClipboardMac to PasteboardMac
810         https://bugs.webkit.org/show_bug.cgi?id=116001
811
812         Reviewed by Andreas Kling.
813
814         * dom/Clipboard.cpp:
815         (WebCore::Clipboard::clearAllData): Added. Calls through to Pasteboard after
816         doing the canWriteData check, which is part of DOM rules, not the platform.
817
818         * dom/Clipboard.h: Made clearAllData non-virtual in non-legacy case.
819
820         * platform/mac/ClipboardMac.h: Removed clearAllData.
821         * platform/mac/ClipboardMac.mm: Ditto.
822
823 2013-05-12  Darin Adler  <darin@apple.com>
824
825         [Mac] Move clearData from ClipboardMac to PasteboardMac
826         https://bugs.webkit.org/show_bug.cgi?id=116000
827
828         Reviewed by Andreas Kling.
829
830         * dom/Clipboard.cpp:
831         (WebCore::Clipboard::clearData): Added. Calls through to Pasteboard after
832         doing the canWriteData check, which is part of DOM rules, not the platform.
833
834         * dom/Clipboard.h: Made clearData non-virtual in non-legacy case.
835
836         * platform/Pasteboard.h: Added an overload of the clear function that takes
837         a single type and clears only that type. Also temporarily exported the
838         cocoaTypeFromHTMLClipboardType function as a static member so it can be used
839         in both ClipboardMac and PasteboardMac during the transition.
840
841         * platform/mac/ClipboardMac.h: Removed clearData.
842         * platform/mac/ClipboardMac.mm: Removed clearData.
843         (WebCore::ClipboardMac::getData): Changed to call cocoaTypeFromHTMLClipboardType
844         as a Pasteboard class static member function.
845         (WebCore::ClipboardMac::setData): Ditto.
846
847         * platform/mac/PasteboardMac.mm:
848         (WebCore::Pasteboard::cocoaTypeFromHTMLClipboardType): Moved here from
849         ClipboardMac.
850         (WebCore::Pasteboard::clear): Added. Moved here from ClipboardMac.
851
852 2013-05-12  Darin Adler  <darin@apple.com>
853
854         [Mac] Move hasData from ClipboardMac to PasteboardMac
855         https://bugs.webkit.org/show_bug.cgi?id=115999
856
857         Reviewed by Andreas Kling.
858
859         * dom/Clipboard.cpp:
860         (WebCore::Clipboard::hasData): Added. Calls through to Pasteboard.
861
862         * dom/Clipboard.h: Added LEGACY_VIRTUAL and LEGACY_PURE macros,
863         only for within this header file. These help us keep many functions
864         as pure virtual in the legacy style Clipboard class, but have them
865         be non-virtual in the normal/future style. Use LEGACY_VIRTUAL and
866         LEGACY_PURE to make the hasData member non-virtual.
867
868         * platform/Pasteboard.h: Added hasData, and added some blank lines and a FIXME.
869
870         * platform/mac/ClipboardMac.h: Removed hasData override.
871         * platform/mac/ClipboardMac.mm: Ditto.
872
873         * platform/mac/PasteboardMac.mm:
874         (WebCore::Pasteboard::hasData): Added. Moved code here from ClipboardMac.
875
876 2013-05-12  David Kilzer  <ddkilzer@apple.com>
877
878         BUILD FIX (r149971): sudden termination is a Mac-only concept
879
880         * WebCore.exp.in: Move sudden termination symbols to Mac-only
881         section.
882
883 2013-05-12  Andreas Kling  <akling@apple.com>
884
885         Node: Use FINAL instead of the non-virtual shadowing hack.
886         <http://webkit.org/b/115995>
887
888         Reviewed by Anders Carlsson.
889
890         Decorate Element/Attr implementations of prefix/localName/namespaceURI getters with FINAL
891         so that call sites with a more specific pointer type than Node* can avoid the virtual dispatch.
892
893         * dom/Attr.h:
894         * dom/Element.h:
895         * dom/Node.cpp:
896         * dom/Node.h:
897
898 2013-05-11  Darin Adler  <darin@apple.com>
899
900         [Mac] Give every Clipboard an underlying Pasteboard
901         https://bugs.webkit.org/show_bug.cgi?id=115979
902
903         Reviewed by Andreas Kling.
904
905         This is the first step in Clipboard and Pasteboard refactoring
906         to fix the overlap and many layering violations.
907
908         * dom/Clipboard.cpp:
909         (WebCore::Clipboard::Clipboard): Add an m_pasteboard data member,
910         Mac-only for now, but eventually for all platforms.
911         (WebCore::Clipboard::~Clipboard): No longer inline the destructor.
912
913         * dom/Clipboard.h: Add WTF_USE_LEGACY_STYLE_ABSTRACT_CLIPBOARD_CLASS
914         flag, currently true for all non-Mac platforms. Make the constructor
915         no longer inline. Added a PassOwnPtr<Pasteboard> argument to the
916         constructor and an OwnPtr<Pasteboard> data member.
917
918         * platform/Pasteboard.h: Added a create function to make it easy
919         to create a pasteboard given a pasteboard name.
920
921         * platform/mac/ClipboardMac.mm:
922         (WebCore::ClipboardMac::ClipboardMac): Create a pasteboard and pass
923         it to the Clipboard constructor.
924
925         * platform/mac/PasteboardMac.mm:
926         (WebCore::Pasteboard::create): Added.
927
928 2013-05-12  Andreas Kling  <akling@apple.com>
929
930         Unload event listeners should prevent Safari from insta-killing the web process on last tab close.
931         <http://webkit.org/b/115988>
932         <rdar://problem/13870943>
933
934         Reviewed by Anders Carlsson.
935
936         Add two methods to Chrome (and ChromeClient):
937
938             - enableSuddenTermination()
939             - disableSuddenTermination()
940
941         ..and call these from DOMWindow instead of the free global functions.
942
943         For WebKit1, it just calls the NSProcessInfo methods to keep behavior the same.
944         For WebKit2, the new methods plumb through the information to the UI process.
945
946         Also updated the DOMWindow logic to think in terms of per-DOMWindow sudden termination counters
947         instead of a process-global one, since that gets confusing in a WK2 world.
948         When a DOMWindow transitions between having/not having unload/beforeunload event listeners,
949         we send a notification to the Chrome.
950
951         * WebCore.exp.in:
952         * WebCore.xcodeproj/project.pbxproj:
953         * page/Chrome.h:
954         (WebCore::Chrome::enableSuddenTermination):
955         (WebCore::Chrome::disableSuddenTermination):
956         * page/ChromeClient.h:
957         (WebCore::ChromeClient::enableSuddenTermination):
958         (WebCore::ChromeClient::disableSuddenTermination):
959         * page/DOMWindow.cpp:
960         (WebCore::addUnloadEventListener):
961         (WebCore::removeUnloadEventListener):
962         (WebCore::removeAllUnloadEventListeners):
963         (WebCore::addBeforeUnloadEventListener):
964         (WebCore::removeBeforeUnloadEventListener):
965         (WebCore::removeAllBeforeUnloadEventListeners):
966         (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
967         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
968         (WebCore::DOMWindow::enableSuddenTermination):
969         (WebCore::DOMWindow::disableSuddenTermination):
970         * page/DOMWindow.h:
971         (DOMWindow):
972
973 2013-05-12  Anders Carlsson  <andersca@apple.com>
974
975         Remove Complex.h from WTF
976         https://bugs.webkit.org/show_bug.cgi?id=115989
977
978         Reviewed by Beth Dakin.
979
980         Replace Complex declarations with std::complex<double>. Pass by value since the struct
981         is small enough to go into two registers on X86-64.
982
983         * Modules/webaudio/RealtimeAnalyser.cpp:
984         (WebCore::RealtimeAnalyser::doFFTAnalysis):
985         (WebCore::RealtimeAnalyser::getFloatFrequencyData):
986         (WebCore::RealtimeAnalyser::getByteFrequencyData):
987         (WebCore::RealtimeAnalyser::getByteTimeDomainData):
988         * platform/audio/Biquad.cpp:
989         (WebCore::Biquad::setZeroPolePairs):
990         (WebCore::Biquad::setAllpassPole):
991         (WebCore::Biquad::getFrequencyResponse):
992         * platform/audio/Biquad.h:
993         * platform/audio/FFTFrame.cpp:
994         (WebCore::FFTFrame::interpolateFrequencyComponents):
995         (WebCore::FFTFrame::extractAverageGroupDelay):
996         (WebCore::FFTFrame::addConstantGroupDelay):
997
998 2013-05-12  Simon Fraser  <simon.fraser@apple.com>
999
1000         Dropdowns on http://www.exploratorium.edu don't show anything
1001         https://bugs.webkit.org/show_bug.cgi?id=115991
1002
1003         Reviewed by Dan Bernstein.
1004         
1005         We can't optimize away the backing store of a layer by saying that
1006         it paints into a composited ancestor if its composited bounds are not contained
1007         by that ancestor.
1008
1009         Test: compositing/backing/no-backing-for-clip-overhang.html
1010
1011         * rendering/RenderLayerBacking.cpp:
1012         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Pass in our 
1013         previously computed composited bounds relative to our composited ancestor,
1014         and its composited bounds.
1015         * rendering/RenderLayerCompositor.cpp:
1016         (WebCore::RenderLayerCompositor::requiresOwnBackingStore): If the ancestor's
1017         composited bounds don't contain the layer's composited bounds, the layer
1018         needs its own backing store.
1019         * rendering/RenderLayerCompositor.h:
1020
1021 2013-05-12  Commit Queue  <commit-queue@webkit.org>
1022
1023         Unreviewed, rolling out r149955.
1024         http://trac.webkit.org/changeset/149955
1025         https://bugs.webkit.org/show_bug.cgi?id=115990
1026
1027         Broke lots of tests (Requested by smfr on #webkit).
1028
1029         * WebCore.exp.in:
1030         * rendering/InlineFlowBox.h:
1031         * rendering/InlineTextBox.h:
1032         (InlineTextBox):
1033         * rendering/RenderApplet.h:
1034         * rendering/RenderBR.h:
1035         * rendering/RenderBlock.h:
1036         (RenderBlock):
1037         (WebCore::RenderBlock::virtualContinuation):
1038         (WebCore::RenderBlock::virtualChildren):
1039         (WebCore::RenderBlock::isRenderBlock):
1040         (WebCore::RenderBlock::isBlockFlow):
1041         (WebCore::RenderBlock::isInlineBlockOrInlineTable):
1042         (WebCore::RenderBlock::dirtyLinesFromChangedChild):
1043         (WebCore::RenderBlock::collapsedMarginBefore):
1044         (WebCore::RenderBlock::collapsedMarginAfter):
1045         * rendering/RenderBox.h:
1046         (WebCore::RenderBox::borderBoundingBox):
1047         (RenderBox):
1048         (WebCore::RenderBox::marginLogicalLeft):
1049         (WebCore::RenderBox::marginLogicalRight):
1050         * rendering/RenderBoxModelObject.h:
1051         (WebCore::RenderBoxModelObject::isBoxModelObject):
1052         * rendering/RenderButton.h:
1053         * rendering/RenderCombineText.h:
1054         * rendering/RenderCounter.h:
1055         * rendering/RenderDeprecatedFlexibleBox.h:
1056         * rendering/RenderDetailsMarker.h:
1057         * rendering/RenderEmbeddedObject.h:
1058         (RenderEmbeddedObject):
1059         (WebCore::RenderEmbeddedObject::isEmbeddedObject):
1060         (WebCore::RenderEmbeddedObject::virtualChildren):
1061         * rendering/RenderFieldset.h:
1062         * rendering/RenderFileUploadControl.h:
1063         * rendering/RenderFlexibleBox.h:
1064         * rendering/RenderFlowThread.h:
1065         * rendering/RenderFrame.h:
1066         * rendering/RenderFrameSet.h:
1067         * rendering/RenderFullScreen.cpp:
1068         * rendering/RenderFullScreen.h:
1069         * rendering/RenderGrid.h:
1070         * rendering/RenderHTMLCanvas.h:
1071         * rendering/RenderIFrame.h:
1072         * rendering/RenderImage.h:
1073         (RenderImage):
1074         (WebCore::RenderImage::isRenderImage):
1075         * rendering/RenderInline.h:
1076         (RenderInline):
1077         (WebCore::RenderInline::virtualContinuation):
1078         (WebCore::RenderInline::virtualChildren):
1079         (WebCore::RenderInline::isRenderInline):
1080         (WebCore::RenderInline::layout):
1081         (WebCore::RenderInline::requiresLayer):
1082         (WebCore::RenderInline::offsetWidth):
1083         (WebCore::RenderInline::offsetHeight):
1084         (WebCore::RenderInline::borderBoundingBox):
1085         (WebCore::RenderInline::dirtyLinesFromChangedChild):
1086         * rendering/RenderLayerModelObject.h:
1087         * rendering/RenderListBox.h:
1088         * rendering/RenderListItem.h:
1089         * rendering/RenderListMarker.h:
1090         * rendering/RenderMedia.h:
1091         (WebCore::RenderMedia::virtualChildren):
1092         (WebCore::RenderMedia::canHaveChildren):
1093         (WebCore::RenderMedia::isMedia):
1094         (WebCore::RenderMedia::isImage):
1095         (WebCore::RenderMedia::requiresForcedStyleRecalcPropagation):
1096         * rendering/RenderMediaControlElements.h:
1097         * rendering/RenderMenuList.h:
1098         * rendering/RenderMeter.h:
1099         * rendering/RenderMultiColumnBlock.h:
1100         * rendering/RenderMultiColumnFlowThread.h:
1101         * rendering/RenderMultiColumnSet.h:
1102         * rendering/RenderNamedFlowThread.h:
1103         * rendering/RenderPart.h:
1104         (RenderPart):
1105         (WebCore::RenderPart::isRenderPart):
1106         (WebCore::RenderPart::renderName):
1107         * rendering/RenderProgress.h:
1108         * rendering/RenderRegion.h:
1109         (WebCore::RenderRegion::isRenderRegion):
1110         * rendering/RenderRegionSet.h:
1111         * rendering/RenderReplaced.h:
1112         (RenderReplaced):
1113         (WebCore::RenderReplaced::renderName):
1114         * rendering/RenderReplica.h:
1115         * rendering/RenderRuby.h:
1116         * rendering/RenderRubyBase.h:
1117         * rendering/RenderRubyRun.h:
1118         * rendering/RenderRubyText.h:
1119         * rendering/RenderScrollbarPart.h:
1120         * rendering/RenderSearchField.h:
1121         * rendering/RenderSlider.h:
1122         * rendering/RenderSnapshottedPlugIn.h:
1123         (RenderSnapshottedPlugIn):
1124         * rendering/RenderTable.h:
1125         (RenderTable):
1126         (WebCore::RenderTable::renderName):
1127         (WebCore::RenderTable::isTable):
1128         (WebCore::RenderTable::avoidsFloats):
1129         * rendering/RenderTableCaption.h:
1130         * rendering/RenderTableCell.h:
1131         * rendering/RenderTableCol.h:
1132         * rendering/RenderTableRow.h:
1133         * rendering/RenderTableSection.h:
1134         * rendering/RenderText.h:
1135         (RenderText):
1136         (WebCore::RenderText::marginLeft):
1137         (WebCore::RenderText::marginRight):
1138         (WebCore::RenderText::styleWillChange):
1139         (WebCore::RenderText::length):
1140         (WebCore::RenderText::paint):
1141         (WebCore::RenderText::layout):
1142         * rendering/RenderTextControl.h:
1143         (RenderTextControl):
1144         (WebCore::RenderTextControl::renderName):
1145         (WebCore::RenderTextControl::isTextControl):
1146         (WebCore::RenderTextControl::avoidsFloats):
1147         * rendering/RenderTextControlMultiLine.h:
1148         * rendering/RenderTextControlSingleLine.h:
1149         (RenderTextControlSingleLine):
1150         (WebCore::RenderTextControlSingleLine::isTextField):
1151         * rendering/RenderTextFragment.h:
1152         * rendering/RenderTextTrackCue.h:
1153         * rendering/RenderVideo.h:
1154         * rendering/RenderView.h:
1155         * rendering/RenderWidget.h:
1156         (RenderWidget):
1157         (WebCore::RenderWidget::isWidget):
1158         * rendering/RenderWordBreak.h:
1159         * rendering/RootInlineBox.h:
1160         (RootInlineBox):
1161         * rendering/mathml/RenderMathMLBlock.h:
1162         * rendering/svg/RenderSVGBlock.h:
1163         (RenderSVGBlock):
1164         * rendering/svg/RenderSVGContainer.h:
1165         (WebCore::RenderSVGContainer::setNeedsBoundariesUpdate):
1166         (WebCore::RenderSVGContainer::virtualChildren):
1167         (WebCore::RenderSVGContainer::isSVGContainer):
1168         (WebCore::RenderSVGContainer::renderName):
1169         (RenderSVGContainer):
1170         (WebCore::RenderSVGContainer::objectBoundingBox):
1171         (WebCore::RenderSVGContainer::strokeBoundingBox):
1172         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
1173         * rendering/svg/RenderSVGEllipse.h:
1174         * rendering/svg/RenderSVGForeignObject.h:
1175         * rendering/svg/RenderSVGGradientStop.h:
1176         * rendering/svg/RenderSVGHiddenContainer.h:
1177         (WebCore::RenderSVGHiddenContainer::renderName):
1178         (RenderSVGHiddenContainer):
1179         (WebCore::RenderSVGHiddenContainer::isSVGHiddenContainer):
1180         * rendering/svg/RenderSVGImage.h:
1181         * rendering/svg/RenderSVGInline.h:
1182         (WebCore::RenderSVGInline::renderName):
1183         (WebCore::RenderSVGInline::requiresLayer):
1184         (WebCore::RenderSVGInline::isSVGInline):
1185         (RenderSVGInline):
1186         * rendering/svg/RenderSVGInlineText.h:
1187         * rendering/svg/RenderSVGModelObject.h:
1188         (WebCore::RenderSVGModelObject::requiresLayer):
1189         (RenderSVGModelObject):
1190         * rendering/svg/RenderSVGPath.h:
1191         * rendering/svg/RenderSVGRect.h:
1192         * rendering/svg/RenderSVGResourceClipper.h:
1193         * rendering/svg/RenderSVGResourceContainer.h:
1194         (RenderSVGResourceContainer):
1195         (WebCore::RenderSVGResourceContainer::isSVGResourceContainer):
1196         (WebCore::RenderSVGResourceContainer::toRenderSVGResourceContainer):
1197         * rendering/svg/RenderSVGResourceFilter.h:
1198         * rendering/svg/RenderSVGResourceFilterPrimitive.h:
1199         * rendering/svg/RenderSVGResourceGradient.h:
1200         (RenderSVGResourceGradient):
1201         (WebCore::RenderSVGResourceGradient::resourceBoundingBox):
1202         * rendering/svg/RenderSVGResourceLinearGradient.h:
1203         * rendering/svg/RenderSVGResourceMarker.h:
1204         * rendering/svg/RenderSVGResourceMasker.h:
1205         * rendering/svg/RenderSVGResourcePattern.h:
1206         * rendering/svg/RenderSVGResourceRadialGradient.h:
1207         * rendering/svg/RenderSVGRoot.h:
1208         * rendering/svg/RenderSVGShape.h:
1209         (WebCore::RenderSVGShape::setNeedsBoundariesUpdate):
1210         (WebCore::RenderSVGShape::setNeedsTransformUpdate):
1211         (WebCore::RenderSVGShape::repaintRectInLocalCoordinates):
1212         (WebCore::RenderSVGShape::localToParentTransform):
1213         (WebCore::RenderSVGShape::localTransform):
1214         (WebCore::RenderSVGShape::isSVGShape):
1215         (RenderSVGShape):
1216         (WebCore::RenderSVGShape::objectBoundingBox):
1217         (WebCore::RenderSVGShape::strokeBoundingBox):
1218         * rendering/svg/RenderSVGTSpan.h:
1219         * rendering/svg/RenderSVGText.h:
1220         * rendering/svg/RenderSVGTextPath.h:
1221         * rendering/svg/RenderSVGTransformableContainer.h:
1222         * rendering/svg/RenderSVGViewportContainer.h:
1223
1224 2013-05-12  Anders Carlsson  <andersca@apple.com>
1225
1226         Simplify AutodrainedPool
1227         https://bugs.webkit.org/show_bug.cgi?id=115986
1228
1229         Reviewed by Andreas Kling.
1230
1231         Remove calls to AutodrainedPool::cycle as well as the iteration counter passed to the constructor.
1232         Instead, just declare RAII pools where it seems necessary.
1233
1234         * Modules/webdatabase/DatabaseThread.cpp:
1235         (WebCore::DatabaseThread::databaseThread):
1236         * fileapi/FileThread.cpp:
1237         (WebCore::FileThread::runLoop):
1238         * loader/icon/IconDatabase.cpp:
1239         (WebCore::IconDatabase::setIconDataForIconURL):
1240         (WebCore::IconDatabase::performURLImport):
1241         (WebCore::IconDatabase::readFromDatabase):
1242
1243 2013-05-12  Andreas Kling  <akling@apple.com>
1244
1245         Apply FINAL to the Node hierarchy.
1246         <http://webkit.org/b/115984>
1247
1248         Mostly from Blink r149454 by <cevans@chromium.org>
1249         <http://src.chromium.org/viewvc/blink?view=revision&revision=149454>
1250
1251         A couple of the stable DOM/ microbenchmarks are perf positive on Linux clang:
1252
1253             - CloneNodes time reduced from 162.4 to 156.5 ms.
1254             - CreateNodes time reduced from 113.9 to 104.9 ms.
1255
1256         * dom/: Beat things with the FINAL stick.
1257         * html/: Ditto.
1258         * svg/: Ditto.
1259
1260 2013-05-12  Andreas Kling  <akling@apple.com>
1261
1262         Devirtualize some things on Document.
1263
1264         From Blink r149967 by <esprehn@chromium.org>
1265         <http://src.chromium.org/viewvc/blink?view=revision&revision=149967>
1266
1267         Several methods on Document are virtual but don't override a super class method
1268         and don't need to be virtual. This patch devirtualizes:
1269
1270             - createElementNS()
1271             - finishedParsing()
1272             - suspendScriptedAnimationControllerCallbacks()
1273             - resumeScriptedAnimationControllerCallbacks()
1274
1275         It also removes the suspend and resume callbacks from ScriptExecutionContext
1276         since they didn't need to be there.
1277
1278         * dom/Document.h:
1279         * dom/ScriptExecutionContext.h:
1280
1281 2013-05-12  Andreas Kling  <akling@apple.com>
1282
1283         Remove redundant call to removeAllEventListeners() in Document::open().
1284
1285         From Blink r150175 by <dcheng@chromium.org>
1286         <http://src.chromium.org/viewvc/blink?view=revision&revision=150175>
1287
1288         Document::open() already calls Document::removeAllEventListeners(), which
1289         removes the event listeners from the DOMWindow it's attached to, so
1290         there's no need to do it manually here as well.
1291
1292         * dom/Document.cpp:
1293         (WebCore::Document::open):
1294
1295 2013-05-12  Andreas Kling  <akling@apple.com>
1296
1297         Apply FINAL to the RenderObject hierarchy.
1298         <http://webkit.org/b/115977>
1299
1300         Mostly from Blink r148795 by <cevans@chromium.org>
1301         <http://src.chromium.org/viewvc/blink?view=revision&revision=148795>
1302
1303         * rendering/: Beat things with the FINAL stick.
1304         * WebCore.exp.in: Export a now-needed symbol.
1305
1306 2013-05-12  Carlos Garcia Campos  <cgarcia@igalia.com>
1307
1308         [GTK] Remove unnecessary GTK_CHECK_VERSION #ifdefs
1309         https://bugs.webkit.org/show_bug.cgi?id=115914
1310
1311         Reviewed by Martin Robinson.
1312
1313         * platform/graphics/gtk/FullscreenVideoControllerGtk.cpp:
1314         (WebCore::FullscreenVideoControllerGtk::hideHud):
1315         (WebCore::FullscreenVideoControllerGtk::initializeWindow):
1316         * platform/gtk/GtkVersioning.c:
1317         * platform/gtk/GtkVersioning.h:
1318         * platform/gtk/WidgetRenderingContext.cpp:
1319         (WebCore::WidgetRenderingContext::WidgetRenderingContext):
1320         * plugins/gtk/gtk2xtbin.c:
1321         (gtk_xtbin_realize):
1322
1323 2013-05-11  Brent Fulgham  <bfulgham@apple.com>
1324
1325         [Windows] Unreviewed build fix after r149932
1326
1327         * make-export-file-generator: Don't attempt to import
1328         (or use) non-existent cxxabi functions on Windows.
1329
1330 2013-05-11  Simon Fraser  <simon.fraser@apple.com>
1331
1332         Add more info to compositing log channel output
1333         https://bugs.webkit.org/show_bug.cgi?id=115978
1334
1335         Reviewed by Dean Jackson.
1336
1337         Add to compositing log channel output whether a layer paints
1338         into its compositing ancestor.
1339
1340         * rendering/RenderLayerCompositor.cpp:
1341         (WebCore::RenderLayerCompositor::logLayerInfo):
1342
1343 2013-05-10  Simon Fraser  <simon.fraser@apple.com>
1344
1345         REGRESSION: Fixed background on ColterReed.com scrolls
1346         https://bugs.webkit.org/show_bug.cgi?id=115951
1347
1348         Reviewed by Beth Dakin.
1349         
1350         The logic for painting the fixed root background into its own layer was
1351         broken when the document element's layer was composited. This could be caused
1352         by a negative z-index child of the body, or by an explicit compositing-causing
1353         style on the <html>.
1354         
1355         There were two issues. First, when painting the layer for the fixed root
1356         background, we would simply short-circuit the fixed background paint in
1357         RenderLayer::paintLayer(), when checking for a composited layer. We have
1358         to continue to paint through the composited <html> layer to get the root
1359         background in this case.
1360         
1361         Secondly, RenderLayerBacking::paintIntoLayer() would only set the PaintLayerPaintingSkipRootBackground
1362         flag if this RenderLayerBacking had a m_backgroundLayer. However, when the <html> is
1363         composited, we need to skip painting the root layer for both the RenderView's backing,
1364         and for the <html>'s backing. Checking whether there is *any* layer that paints
1365         the fixed root background (i.e. checking compositor()->fixedRootBackgroundLayer())
1366         is a simple way to fix this test.
1367
1368         Tests: platform/mac-wk2/tiled-drawing/fixed-background/fixed-background-composited-html.html
1369                platform/mac-wk2/tiled-drawing/fixed-background/fixed-background-negative-z-index-fixed.html
1370
1371         * rendering/RenderLayer.cpp:
1372         (WebCore::paintForFixedRootBackground):
1373         (WebCore::RenderLayer::paintLayer):
1374         * rendering/RenderLayerBacking.cpp:
1375         (WebCore::RenderLayerBacking::paintIntoLayer):
1376
1377 2013-05-11  Simon Fraser  <simon.fraser@apple.com>
1378
1379         Possible crash when going Back while loading PDF
1380         https://bugs.webkit.org/show_bug.cgi?id=115972
1381
1382         Reviewed by Dan Bernstein.
1383
1384         It's possible for m_frame to be null when Document::findUnsafeParentScrollPropagationBoundary()
1385         is called, so null-check currentFrame.
1386
1387         * dom/Document.cpp:
1388         (WebCore::Document::findUnsafeParentScrollPropagationBoundary):
1389
1390 2013-05-11  Alexey Proskuryakov  <ap@apple.com>
1391
1392         <rdar://problem/13823864> TextCodecICU complains about ambiguous codec names with current ICU release
1393         https://bugs.webkit.org/show_bug.cgi?id=115953
1394
1395         Reviewed by Darin Adler.
1396
1397         Store and use canonical converter name to create converters.
1398
1399         As a side effect, we now actually reuse cached converters - previously we would compare
1400         a standard encoding name to internal canonical one, which rarely match.
1401
1402         * platform/text/TextCodecICU.h:
1403         * platform/text/TextCodecICU.cpp:
1404         (WebCore::TextCodecICU::create): Pass canonical ICU converter name to constructor.
1405         (WebCore::TextCodecICU::registerEncodingNames): 
1406             - Updated terminology.
1407             - Added a comment that special cases should be kept in sync between registerEncodingNames
1408             and registerCodecs.
1409             - Moved maccyrillic alias to a correct section. It's not present in ICU even today.
1410             - Changed a few aliases to actually map to standard name, not to an overridden one
1411             (this doesn't change behavior since addToTextEncodingNameMap looks up canonical
1412             name, but is clearer).
1413         (WebCore::TextCodecICU::registerCodecs): Store a converter name to use with each
1414         canonical encoding name.
1415         (WebCore::TextCodecICU::TextCodecICU): Ditto.
1416         (WebCore::TextCodecICU::releaseICUConverter): Reset the converter to remove any
1417         leftover data.
1418         (WebCore::TextCodecICU::createICUConverter): 
1419             - Compare converter name to converter name, not to another alias name.
1420             - Use proper string comparison instead of pointer comparison.
1421             - When creating a converter, assert that the name is not ambigous - canonical
1422             converter names should never be, otherwise there would be no way to create
1423             the converter without ambiguity.
1424
1425 2013-05-11  Antoine Quint  <graouts@apple.com>
1426
1427         [Mac] The captions menu should not use a canned max-width and max-height
1428         https://bugs.webkit.org/show_bug.cgi?id=115968
1429
1430         Reviewed by Eric Carlson.
1431
1432         Use more real estate to display the captions menu should the caption names
1433         be long.
1434
1435         * css/mediaControlsQuickTime.css:
1436         (video::-webkit-media-controls-closed-captions-container):
1437         (video::-webkit-media-controls-closed-captions-track-list):
1438         Make the captions menu scale to a max-width and max-height to allow 4px
1439         above and below the menu, except on the right where it always aligns with
1440         the captions icon in the media controller.
1441         * html/shadow/MediaControlsApple.cpp:
1442         (WebCore::MediaControlsApple::createControls):
1443         Move the captions menu element to be a child of the controls instead of
1444         the panel such that it may scale relative to the controls when using %
1445         CSS values.
1446
1447 2013-05-11  Jochen Eisinger  <jochen@chromium.org>
1448
1449         Disallow a window to focus itself via javascript URLs or using target _self
1450         https://bugs.webkit.org/show_bug.cgi?id=115906
1451
1452         Reviewed by Geoffrey Garen.
1453
1454         Test: fast/dom/Window/window-focus-self.html
1455
1456         * loader/FrameLoader.cpp:
1457         (WebCore::createWindow):
1458         * page/DOMWindow.cpp:
1459         (WebCore::DOMWindow::focus):
1460
1461 2013-05-11  Christophe Dumez  <ch.dumez@sisa.samsung.com>
1462
1463         Fix several style warnings in generated bindings
1464         https://bugs.webkit.org/show_bug.cgi?id=115961
1465
1466         Reviewed by Kentaro Hara.
1467
1468         Fix several style errors in the bindings generated under
1469         Source/WebCore/bindings/scripts/test/
1470
1471         No new tests, no behavior change.
1472
1473         * bindings/scripts/CodeGeneratorCPP.pm:
1474         (GenerateImplementation):
1475         (WriteData):
1476         * bindings/scripts/CodeGeneratorJS.pm:
1477         (GenerateHeader):
1478         (GenerateImplementation):
1479         (WriteData):
1480         * bindings/scripts/CodeGeneratorObjC.pm:
1481         (GenerateHeader):
1482         * bindings/scripts/test/CPP/WebDOMFloat64Array.cpp:
1483         * bindings/scripts/test/CPP/WebDOMTestActiveDOMObject.cpp:
1484         * bindings/scripts/test/CPP/WebDOMTestCallback.cpp:
1485         * bindings/scripts/test/CPP/WebDOMTestCustomNamedGetter.cpp:
1486         * bindings/scripts/test/CPP/WebDOMTestEventConstructor.cpp:
1487         * bindings/scripts/test/CPP/WebDOMTestEventTarget.cpp:
1488         * bindings/scripts/test/CPP/WebDOMTestException.cpp:
1489         * bindings/scripts/test/CPP/WebDOMTestInterface.cpp:
1490         * bindings/scripts/test/CPP/WebDOMTestMediaQueryListListener.cpp:
1491         * bindings/scripts/test/CPP/WebDOMTestNamedConstructor.cpp:
1492         * bindings/scripts/test/CPP/WebDOMTestNode.cpp:
1493         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
1494         * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.cpp:
1495         * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp:
1496         * bindings/scripts/test/CPP/WebDOMTestTypedefs.cpp:
1497         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
1498         (WebCore::toJS):
1499         * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
1500         (WebCore::JSTestActiveDOMObject::releaseImplIfNotNull):
1501         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
1502         (WebCore::toJS):
1503         * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
1504         (WebCore::JSTestCustomNamedGetter::releaseImplIfNotNull):
1505         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
1506         (WebCore::toJS):
1507         * bindings/scripts/test/JS/JSTestEventConstructor.h:
1508         (WebCore::JSTestEventConstructor::releaseImplIfNotNull):
1509         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
1510         (WebCore::toJS):
1511         * bindings/scripts/test/JS/JSTestEventTarget.h:
1512         (WebCore::JSTestEventTarget::releaseImplIfNotNull):
1513         * bindings/scripts/test/JS/JSTestException.cpp:
1514         (WebCore::toJS):
1515         * bindings/scripts/test/JS/JSTestException.h:
1516         (WebCore::JSTestException::releaseImplIfNotNull):
1517         * bindings/scripts/test/JS/JSTestInterface.cpp:
1518         (WebCore::toJS):
1519         * bindings/scripts/test/JS/JSTestInterface.h:
1520         (WebCore::JSTestInterface::releaseImplIfNotNull):
1521         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
1522         (WebCore::toJS):
1523         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
1524         (WebCore::JSTestMediaQueryListListener::releaseImplIfNotNull):
1525         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
1526         (WebCore::toJS):
1527         * bindings/scripts/test/JS/JSTestNamedConstructor.h:
1528         (WebCore::JSTestNamedConstructor::releaseImplIfNotNull):
1529         * bindings/scripts/test/JS/JSTestObj.cpp:
1530         (WebCore::toJS):
1531         * bindings/scripts/test/JS/JSTestObj.h:
1532         (WebCore::JSTestObj::releaseImplIfNotNull):
1533         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
1534         (WebCore::toJS):
1535         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
1536         (WebCore::JSTestOverloadedConstructors::releaseImplIfNotNull):
1537         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1538         (WebCore::toJS):
1539         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
1540         (WebCore::JSTestSerializedScriptValueInterface::releaseImplIfNotNull):
1541         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1542         (WebCore::toJS):
1543         * bindings/scripts/test/JS/JSTestTypedefs.h:
1544         (WebCore::JSTestTypedefs::releaseImplIfNotNull):
1545         * bindings/scripts/test/ObjC/DOMFloat64ArrayInternal.h:
1546         (WebCore):
1547         * bindings/scripts/test/ObjC/DOMTestActiveDOMObjectInternal.h:
1548         (WebCore):
1549         * bindings/scripts/test/ObjC/DOMTestCallbackInternal.h:
1550         (WebCore):
1551         * bindings/scripts/test/ObjC/DOMTestCustomNamedGetterInternal.h:
1552         (WebCore):
1553         * bindings/scripts/test/ObjC/DOMTestEventConstructorInternal.h:
1554         (WebCore):
1555         * bindings/scripts/test/ObjC/DOMTestEventTargetInternal.h:
1556         (WebCore):
1557         * bindings/scripts/test/ObjC/DOMTestExceptionInternal.h:
1558         (WebCore):
1559         * bindings/scripts/test/ObjC/DOMTestInterfaceInternal.h:
1560         (WebCore):
1561         * bindings/scripts/test/ObjC/DOMTestMediaQueryListListenerInternal.h:
1562         (WebCore):
1563         * bindings/scripts/test/ObjC/DOMTestNamedConstructorInternal.h:
1564         (WebCore):
1565         * bindings/scripts/test/ObjC/DOMTestNodeInternal.h:
1566         (WebCore):
1567         * bindings/scripts/test/ObjC/DOMTestObjInternal.h:
1568         (WebCore):
1569         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h:
1570         (WebCore):
1571         * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterfaceInternal.h:
1572         (WebCore):
1573         * bindings/scripts/test/ObjC/DOMTestTypedefsInternal.h:
1574         (WebCore):
1575
1576 2013-05-11  Anders Carlsson  <andersca@apple.com>
1577
1578         Make it a build error to put invalid C++ symbol names in WebCore.exp.in
1579         https://bugs.webkit.org/show_bug.cgi?id=115958
1580
1581         Reviewed by Andreas Kling.
1582
1583         While invalid C++ symbols will eventually show up as a link error since the symbol won't be found,
1584         this makes it easier to catch invalid symbols inside of #ifdefs.
1585
1586         * make-export-file-generator:
1587         Try to demangle C++ symbols before printing them.
1588
1589 2013-05-11  David Kilzer  <ddkilzer@apple.com>
1590
1591         BUILD FIX (r149718): Move exported symbol into ENABLE(FULLSCREEN_API) section
1592
1593         Fixes the following build failure when ENABLE(FULLSCREEN_API) is
1594         off:
1595
1596             Undefined symbols for architecture i386:
1597               "__ZNK7WebCore7Element25containsFullScreenElementEv", referenced from:
1598                  -exported_symbol[s_list] command line option
1599
1600         * WebCore.exp.in: Move the symbol.
1601
1602 2013-05-11  Robert Hogan  <robert@webkit.org>
1603
1604         Unreviewed, remove some lint accidentally left in r149929.
1605
1606         * rendering/InlineFlowBox.cpp:
1607         (WebCore::verticalAlignApplies):
1608
1609 2013-03-17  Robert Hogan  <robert@webkit.org>
1610
1611         Text flow broken in elements with vertical align top/bottom and inline elements taller than line-height
1612         https://bugs.webkit.org/show_bug.cgi?id=111974
1613
1614         Reviewed by Ryosuke Niwa.
1615         
1616         Per http://www.w3.org/TR/CSS2/visudet.html#propdef-vertical-align 'vertical-align' only applies to inline and table-cell
1617         elements.
1618
1619         Test: fast/css/vertical-align-block-elements.html
1620
1621         * rendering/InlineFlowBox.cpp:
1622         (WebCore::isTextInBlockElement):
1623         (WebCore):
1624         (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
1625         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
1626         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
1627
1628 2013-05-11  Benjamin Poulain  <bpoulain@apple.com>
1629
1630         Make CanvasStyle a plain object instead of an RefCounted object
1631         https://bugs.webkit.org/show_bug.cgi?id=115775
1632
1633         Reviewed by Andreas Kling.
1634
1635         CanvasStyle is just 2 words wide. We do not gain anything from allocating
1636         it on the heap. Change the object to be just a type and some data.
1637
1638         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
1639         (WebCore::toJS):
1640         (WebCore::toHTMLCanvasStyle):
1641         * html/HTMLCanvasElement.cpp:
1642         * html/canvas/CanvasRenderingContext2D.cpp:
1643         (WebCore::CanvasRenderingContext2D::State::State):
1644         (WebCore::CanvasRenderingContext2D::setStrokeStyle):
1645         (WebCore::CanvasRenderingContext2D::setFillStyle):
1646         (WebCore::CanvasRenderingContext2D::setStrokeColor):
1647         (WebCore::CanvasRenderingContext2D::setFillColor):
1648         (WebCore::CanvasRenderingContext2D::fullCanvasCompositedFill):
1649         (WebCore::CanvasRenderingContext2D::drawTextInternal):
1650         * html/canvas/CanvasRenderingContext2D.h:
1651         (WebCore::CanvasRenderingContext2D::strokeStyle):
1652         (CanvasRenderingContext2D):
1653         (WebCore::CanvasRenderingContext2D::fillStyle):
1654         (State):
1655         * html/canvas/CanvasStyle.cpp:
1656         (WebCore::CanvasStyle::CanvasStyle):
1657         (WebCore::CanvasStyle::createFromString):
1658         (WebCore::CanvasStyle::createFromStringWithOverrideAlpha):
1659         (WebCore::CanvasStyle::isEquivalentColor):
1660         (WebCore):
1661         (WebCore::CanvasStyle::operator=):
1662         (WebCore::CanvasStyle::applyStrokeColor):
1663         (WebCore::CanvasStyle::applyFillColor):
1664         * html/canvas/CanvasStyle.h:
1665         (CanvasStyle):
1666         (WebCore::CanvasStyle::isValid):
1667         (WebCore::CanvasStyle::CanvasStyle):
1668         (WebCore):
1669         (WebCore::CanvasStyle::operator=):
1670
1671 2013-05-11  Benjamin Poulain  <benjamin@webkit.org>
1672
1673         Gradient::platformGradient: Vector reserveCapacity -> reserveInitialCapacity
1674         https://bugs.webkit.org/show_bug.cgi?id=115779
1675
1676         Reviewed by Andreas Kling.
1677
1678         * platform/graphics/cg/GradientCG.cpp:
1679         (WebCore::Gradient::platformGradient): Clang is surprisingly smart at removing
1680         all the branches of this function. Remove two more with reserveInitialCapacity.
1681
1682 2013-05-10  Alexey Proskuryakov  <ap@apple.com>
1683
1684         <rdar://problem/13666412> Clean up some edge cases of URL parsing.
1685         https://bugs.webkit.org/show_bug.cgi?id=104919
1686
1687         Reviewed by Darin Adler.
1688
1689         Test: fast/url/segments-userinfo-vs-host.html
1690
1691         * page/SecurityOrigin.cpp:
1692         (WebCore::schemeRequiresHost):
1693         (WebCore::shouldTreatAsUniqueOrigin):
1694         Updated function name and comments (host is not the same as authority). We still
1695         need this check - KURL can still produce http URLs with an empty host (even as this
1696         patch reduces the number of such cases). So can Gecko and current draft of URL
1697         Standard.
1698         It would be good to have a guarantee that such useless URLs can not come out of
1699         URL parser, as relying on downstream code re-parsing the URL correctly would be fragile.
1700
1701         * platform/KURL.cpp:
1702         (WebCore::hostPortIsEmptyButCredentialsArePresent): Updated an argument name for
1703         correctness.
1704         (WebCore::KURL::parse):
1705         1. Reverted behavior changes from <http://trac.webkit.org/changeset/82181> - I could
1706         find no reason to allow "@" in hostnames, and having a URL like this re-parsed by
1707         a different parser would likely produce different results. It's better to just treat
1708         these edge case URLs as invalid.
1709         2. When hostname component is a lone colon, preserve it in parsed URL string,
1710         as otherwise path would get pushed in its place when re-parsing.
1711         3. When authority component is a lone colon, don't forget to "//" after scheme, too.
1712         4. Added some assertions about contents of authority component, to catch potential
1713         mis-parsing earlier.
1714
1715 2013-05-10  Alexey Proskuryakov  <ap@apple.com>
1716
1717         Make TextCodecICU not depend on TextEncoding
1718         https://bugs.webkit.org/show_bug.cgi?id=115848
1719
1720         Reviewed by Darin Adler.
1721
1722         * platform/text/TextCodecICU.cpp:
1723         (WebCore::TextCodecICU::create):
1724         (WebCore::TextCodecICU::TextCodecICU):
1725         (WebCore::TextCodecICU::createICUConverter):
1726         (WebCore::TextCodecICU::decode):
1727         (WebCore::TextCodecICU::encode):
1728         * platform/text/TextCodecICU.h:
1729         Use a plain encoding string in platform encoder wrapper, not a higher level concept.
1730
1731 2013-05-10  Laszlo Gombos  <l.gombos@samsung.com>
1732
1733         Remove Mac OS X Leopard (10.5) support
1734         https://bugs.webkit.org/show_bug.cgi?id=107964
1735
1736         Reviewed by Ryosuke Niwa.
1737
1738         Removed the code for 10.5 and removed if-def for 10.6.
1739
1740         No new tests, covered by existing tests.
1741
1742         * platform/LocalizedStrings.cpp:
1743         (WebCore::contextMenuItemTagLookUpInDictionary):
1744         * platform/graphics/cg/GraphicsContextCG.cpp:
1745         * platform/mac/EmptyProtocolDefinitions.h:
1746         * platform/mac/NSScrollerImpDetails.h:
1747         * platform/mac/WebCoreSystemInterface.h:
1748         * platform/text/mac/HyphenationMac.mm:
1749
1750 2013-05-10  Laszlo Gombos  <l.gombos@samsung.com>
1751
1752         Remove USE(OS_RANDOMNESS)
1753         https://bugs.webkit.org/show_bug.cgi?id=108095
1754
1755         Reviewed by Darin Adler.
1756
1757         Remove the USE(OS_RANDOMNESS) guard as it is turned on for all
1758         ports.
1759
1760         No new tests as this is covered by existing tests.
1761
1762         * page/Crypto.cpp:
1763         (WebCore::Crypto::getRandomValues):
1764         * platform/UUID.cpp:
1765         (WebCore::createCanonicalUUIDString):
1766
1767 2013-05-10  Christophe Dumez  <ch.dumez@sisa.samsung.com>
1768
1769         Remove [NoInterfaceObject] from several WebAudio IDL interfaces
1770         https://bugs.webkit.org/show_bug.cgi?id=115894
1771
1772         Reviewed by Darin Adler.
1773
1774         Several WebAudio IDL interfaces had [NoInterfaceObject] extended attribute set,
1775         meaning that there was no corresponding attribute on the global window object.
1776         This behavior is not according to the specification:
1777         https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
1778
1779         This patch removes the [NoInterfaceObject] extended attribute where needed to
1780         match the specification.
1781
1782         No new tests, already covered by existing tests.
1783
1784         * Modules/webaudio/AnalyserNode.idl:
1785         * Modules/webaudio/AudioBuffer.idl:
1786         * Modules/webaudio/AudioBufferSourceNode.idl:
1787         * Modules/webaudio/AudioDestinationNode.idl:
1788         * Modules/webaudio/AudioListener.idl:
1789         * Modules/webaudio/AudioNode.idl:
1790         * Modules/webaudio/AudioParam.idl:
1791         * Modules/webaudio/BiquadFilterNode.idl:
1792         * Modules/webaudio/ChannelMergerNode.idl:
1793         * Modules/webaudio/ChannelSplitterNode.idl:
1794         * Modules/webaudio/ConvolverNode.idl:
1795         * Modules/webaudio/DelayNode.idl:
1796         * Modules/webaudio/DynamicsCompressorNode.idl:
1797         * Modules/webaudio/GainNode.idl:
1798         * Modules/webaudio/MediaElementAudioSourceNode.idl:
1799         * Modules/webaudio/MediaStreamAudioDestinationNode.idl:
1800         * Modules/webaudio/MediaStreamAudioSourceNode.idl:
1801         * Modules/webaudio/OscillatorNode.idl:
1802         * Modules/webaudio/ScriptProcessorNode.idl:
1803         * Modules/webaudio/WaveShaperNode.idl:
1804         * Modules/webaudio/WaveTable.idl:
1805
1806 2013-05-10  Simon Fraser  <simon.fraser@apple.com>
1807
1808         REGRESSION (r145680): No box shadow rendered on element with positioned child that obscures it
1809         https://bugs.webkit.org/show_bug.cgi?id=115840
1810
1811         Reviewed by Antti Koivisto.
1812         
1813         In r107836, we moved some box-shadow painting into the paintFillLayer code for performance.
1814         However, in r145680 we started to skip background painting when we know the background is
1815         obscured. This broke shadow painting in some cases.
1816         
1817         Fix by always painting the background fill layers if we know that they will also
1818         paint the shadow.
1819
1820         Test: fast/box-shadow/box-shadow-obscured-backgrounds.html
1821
1822         * rendering/RenderBox.cpp:
1823         (WebCore::RenderBox::paintBackground):
1824
1825 2013-05-10  Simon Fraser  <simon.fraser@apple.com>
1826
1827         REGRESSION (r143626): Element shows as garbage in image gallery
1828         https://bugs.webkit.org/show_bug.cgi?id=115946
1829
1830         Reviewed by Antti Koivisto.
1831         
1832         RenderLayer::backgroundIsKnownToBeOpaqueInRect() used hasVisibleContent()
1833         to check whether the layer's content was hidden via the visibility property.
1834         However, this assumed that a passing hasVisibleContent() check meant that the
1835         entire area was covered by the renderers and layers checked layer.
1836         
1837         This is not always true. It's possible to have a visibility:hidden layer
1838         with a non-covering visbility:visible child, or even a single RenderText
1839         child that happens to have visibility:visible style. In these situations,
1840         hasVisibleContent() returns true but the entire area is not painted.
1841         
1842         So we have to fall back to on a more conservative check using the
1843         visibility style, which will give is a reliable answer for the current layer.
1844
1845         Tests: compositing/contents-opaque/hidden-with-visible-child.html
1846                compositing/contents-opaque/hidden-with-visible-text.html
1847
1848         * rendering/RenderLayer.cpp:
1849         (WebCore::RenderLayer::backgroundIsKnownToBeOpaqueInRect):
1850
1851 2013-05-10  Simon Fraser  <simon.fraser@apple.com>
1852
1853         Garbage down left side of nytimes.com page (if subscriber)
1854         https://bugs.webkit.org/show_bug.cgi?id=115839
1855
1856         Reviewed by Antti Koivisto.
1857         
1858         RenderLayer::backgroundIsKnownToBeOpaqueInRect() would incorrectly return true
1859         for layers where the given rect wasn't contained in the background rect, but
1860         where some child layer obscured the rect, even though clipping hid part
1861         of that child layer.
1862         
1863         So bail from RenderLayer::backgroundIsKnownToBeOpaqueInRect() if we have
1864         any overflow clipping. This could be enhanced in future to test whether child
1865         layers obscure the clipping rect, but that would be more expensive.
1866
1867         Test: compositing/contents-opaque/overflow-hidden-child-layers.html
1868
1869         * rendering/RenderLayer.cpp:
1870         (WebCore::RenderLayer::backgroundIsKnownToBeOpaqueInRect):
1871
1872 2013-05-10  Eric Carlson  <eric.carlson@apple.com>
1873
1874         In-band captions not visible immediately after track mode change
1875         https://bugs.webkit.org/show_bug.cgi?id=115922
1876
1877         Reviewed by Dean Jackson.
1878
1879         Test: media/track/track-in-band-mode.html
1880
1881         * html/HTMLMediaElement.cpp:
1882         (WebCore::HTMLMediaElement::textTrackModeChanged): Add cues for all loaded tracks, regardless
1883             of track type.
1884
1885 2013-05-10  Timothy Hatcher  <timothy@apple.com>
1886
1887         Web Inspector: determine the resource type in InspectorResourceAgent::willSendRequest.
1888
1889         This allows the Network timeline and Resources sidebar to filter Resources earlier,
1890         before the server sends a response. Useful for long polling (comet) XHRs.
1891
1892         https://webkit.org/b/74935
1893         rdar://problem/13726105
1894
1895         Reviewed by Joseph Pecoraro.
1896
1897         * inspector/Inspector.json:
1898         (Network.requestWillBeSent): Added.
1899         * inspector/InspectorResourceAgent.cpp:
1900         (WebCore::InspectorResourceAgent::willSendRequest): Send the type if it isn't Other along in requestWillBeSent.
1901         (WebCore::InspectorResourceAgent::didReceiveResponse): Don't determine the type here anymore. Clear the CachedResource
1902         if isNotModified like the old code path did by not setting cachedResource if !isNotModified.
1903
1904 2013-05-10  Laszlo Gombos  <l.gombos@samsung.com>
1905
1906         [CMake] Consolidate list of files to build for WebCore plugin support
1907         https://bugs.webkit.org/show_bug.cgi?id=104429
1908
1909         Reviewed by Rob Buis.
1910
1911         Move the common files to support plugins and the logic for disabling
1912         plugins) to CMakeLists.txt from PlatformXXX.cmake.
1913
1914         No new tests as there is no new functionality.
1915
1916         * CMakeLists.txt:
1917         * PlatformBlackBerry.cmake:
1918         * PlatformEfl.cmake:
1919         * PlatformWinCE.cmake:
1920
1921 2013-05-10  Robert Hogan  <robert@webkit.org>
1922
1923         REGRESSION(r148121): Empty Span does not get a linebox when it's in an anonymous block
1924         https://bugs.webkit.org/show_bug.cgi?id=115818
1925
1926         Reviewed by David Hyatt.
1927
1928         r148121 only worried about split inlines inside anonymous blocks - it ought to have 
1929         catered for empty inlines, with no continuations, inside a single solitary anonymous block too.
1930
1931         Test: fast/inline/anonymous-block-with-empty-inline.html
1932
1933         * rendering/RenderBlockLineLayout.cpp:
1934         (WebCore::hasInlineDirectionBordersPaddingOrMargin):
1935
1936 2013-05-10  Zan Dobersek  <zdobersek@igalia.com>
1937
1938         [GTK] Remove unnecessary includes in WidgetGtk.cpp
1939         https://bugs.webkit.org/show_bug.cgi?id=115912
1940
1941         Reviewed by Andreas Kling.
1942
1943         No new tests - no new functionality.
1944
1945         * platform/gtk/WidgetGtk.cpp: Remove the unnecessary includes of the Chrome.h, Frame.h, FrameView.h,
1946         Page.h and RenderObject.h headers as the included declarations are not used anywhere. ScrollView.h is
1947         included instead as it is required and was previously included by one of the removed header inclusions.
1948
1949 2013-05-10  Zan Dobersek  <zdobersek@igalia.com>
1950
1951         [Cairo] Remove the unnecessary ImageData.h include in ImageBufferCairo.cpp
1952         https://bugs.webkit.org/show_bug.cgi?id=115911
1953
1954         Reviewed by Carlos Garcia Campos.
1955
1956         No new tests - no new functionality.
1957
1958         * platform/graphics/cairo/ImageBufferCairo.cpp: Remove the ImageData.h include
1959         as the included declarations are not used anywhere.
1960
1961 2013-05-10  Zan Dobersek  <zdobersek@igalia.com>
1962
1963         [Cairo] Remove the unnecessary CSSParser.h include in GradientCairo.cpp
1964         https://bugs.webkit.org/show_bug.cgi?id=115910
1965
1966         Reviewed by Laszlo Gombos.
1967
1968         No new tests - no new functionality.
1969
1970         * platform/graphics/cairo/GradientCairo.cpp: Remove the CSSParser.h include
1971         as the included declarations are not used anywhere.
1972
1973 2013-05-10  Dean Jackson  <dino@apple.com>
1974
1975         Include tab character as a word end for kerning
1976         https://bugs.webkit.org/show_bug.cgi?id=115915
1977         <rdar://problem/13861491>
1978
1979         Reviewed by Enrica Casucci.
1980
1981         This is a follow-up to https://bugs.webkit.org/show_bug.cgi?id=112507
1982         which only looked for a space character as a word end. It should
1983         look for tab characters too.
1984
1985         Test: fast/text/word-space-with-kerning-4.html
1986
1987         * rendering/RenderBlockLineLayout.cpp:
1988         (WebCore::setLogicalWidthForTextRun): Look for '\t'.
1989
1990 2013-05-10  Anders Carlsson  <andersca@apple.com>
1991
1992         Remove EventTracer
1993         https://bugs.webkit.org/show_bug.cgi?id=115916
1994
1995         Reviewed by Sam Weinig.
1996
1997         EventTracer is dead code, remove it.
1998
1999         * CMakeLists.txt:
2000         * GNUmakefile.list.am:
2001         * Target.pri:
2002         * WebCore.vcproj/WebCore.vcproj:
2003         * WebCore.vcxproj/WebCore.vcxproj:
2004         * WebCore.vcxproj/WebCore.vcxproj.filters:
2005         * WebCore.xcodeproj/project.pbxproj:
2006         * platform/EventTracer.cpp: Removed.
2007         * platform/EventTracer.h: Removed.
2008
2009 2013-05-10  Zan Dobersek  <zdobersek@igalia.com>
2010
2011         [GTK] Generated files are regenerated always
2012         https://bugs.webkit.org/show_bug.cgi?id=115908
2013
2014         Reviewed by Carlos Garcia Campos.
2015
2016         No new tests - no change in functionality.
2017
2018         * GNUmakefile.am: Don't treat the window constructors IDL file as a dependency of the JavaScriptCore bindings.
2019         The file is generated during the IDL preprocessing, and the JSC bindings already depend on that step through
2020         the idl_supplemental_dependencies file. Because of that the window constructors IDL file has a phony target
2021         which seems to confuse the bindings generation rule into thinking that a complete regeration of the bindings is required.
2022
2023 2013-05-10  Andreas Kling  <akling@apple.com>
2024
2025         Caching of generated images in CSS should be smarter.
2026         <http://webkit.org/b/115902>
2027         <rdar://problem/13542727>
2028
2029         Reviewed by Antti Koivisto.
2030
2031         Add an IntSize => GeneratorGeneratedImage cache at the CSSImageGeneratorValue level.
2032
2033         CSSGradientValue is currently the only CSSImageGeneratorValue subclass that makes use of the cache.
2034         Generated images are kept for 3 seconds after last use.
2035
2036         The main problem with the previous approach was that background renderers (e.g <body>, <tr>, etc)
2037         would be passed to multiple CSSImageGeneratorValue::getImage() calls with different sizes requested
2038         for each of the descendent renderers that inherit their background from the same parent.
2039         The cache wasn't smart enough for this, it just thought the background renderer was changing size
2040         a lot, and would regenerate the image over and over.
2041
2042         We already had caching of intermediate image buffers for GeneratorGeneratedImage::drawPattern().
2043         This removes the eviction timer from that cache so that the intermediate images can live a bit longer.
2044
2045         (WebCore::CSSImageGeneratorValue::cachedImageForSize):
2046         (WebCore::CSSImageGeneratorValue::saveCachedImageForSize):
2047
2048             Renamed from getImage() and putImage().
2049
2050         (WebCore::CSSImageGeneratorValue::evictCachedGeneratedImage):
2051         (WebCore::CSSImageGeneratorValue::CachedGeneratedImage::CachedGeneratedImage):
2052         (WebCore::CSSImageGeneratorValue::CachedGeneratedImage::evictionTimerFired):
2053
2054             Let the CachedGeneratedImage throw itself out from cache when the timer fires.
2055
2056         * css/CSSImageGeneratorValue.h:
2057         (CachedGeneratedImage):
2058
2059             Exactly what it sounds like. These go into CSSImageGeneratorValue::m_images with the size
2060             as the hash key.
2061
2062         * platform/graphics/GeneratorGeneratedImage.cpp:
2063         (WebCore::GeneratorGeneratedImage::drawPattern):
2064         * platform/graphics/GeneratorGeneratedImage.h:
2065         (WebCore::GeneratorGeneratedImage::~GeneratorGeneratedImage):
2066         (WebCore::GeneratorGeneratedImage::GeneratorGeneratedImage):
2067
2068             Keep the intermediate image for drawPattern() until destruction instead of dropping it on
2069             a timer. These objects are now evicted by the CSSImageGeneratorValue's image cache
2070             after 3 seconds of disuse rather than kept for the lifetime of the renderer.
2071
2072         * css/CSSCanvasValue.cpp:
2073         (WebCore::CSSCanvasValue::canvasChanged):
2074         (WebCore::CSSCanvasValue::canvasResized):
2075         * css/CSSCrossfadeValue.cpp:
2076         (WebCore::CSSCrossfadeValue::crossfadeChanged):
2077         * rendering/style/StyleGeneratedImage.cpp:
2078         (WebCore::StyleGeneratedImage::addClient):
2079         * css/CSSImageGeneratorValue.cpp:
2080         (WebCore::CSSImageGeneratorValue::addClient):
2081         (WebCore::CSSImageGeneratorValue::removeClient):
2082
2083             CSSImageGeneratorValue::m_clients is now a HashCountedSet<RenderObject*>, tweak accordingly.
2084
2085 2013-05-10  Anders Carlsson  <andersca@apple.com>
2086
2087         Remove MemoryUsageSupport class
2088         https://bugs.webkit.org/show_bug.cgi?id=115913
2089
2090         Reviewed by Andreas Kling.
2091
2092         MemoryUsageSupport was just used by a single call site in InspectorTimelineAgent,
2093         and the function called always returns zero on all platforms! Remove it.
2094
2095         * CMakeLists.txt:
2096         * GNUmakefile.list.am:
2097         * Target.pri:
2098         * WebCore.vcproj/WebCore.vcproj:
2099         * WebCore.vcxproj/WebCore.vcxproj:
2100         * WebCore.vcxproj/WebCore.vcxproj.filters:
2101         * WebCore.xcodeproj/project.pbxproj:
2102         * inspector/InspectorMemoryAgent.cpp:
2103         * inspector/InspectorTimelineAgent.cpp:
2104         (WebCore):
2105         (WebCore::InspectorTimelineAgent::setNativeHeapStatistics):
2106         * platform/MemoryUsageSupport.cpp: Removed.
2107         * platform/MemoryUsageSupport.h: Removed.
2108         * platform/qt/MemoryUsageSupportQt.cpp: Removed.
2109
2110 2013-05-10  Ryosuke Niwa  <rniwa@webkit.org>
2111
2112         REGRESSION (r149652): Videos do not play on cnn.com, just black box
2113         https://bugs.webkit.org/show_bug.cgi?id=115887
2114
2115         Reviewed by Antti Koivisto.
2116
2117         The bug was caused by window and document named item maps counting the same element twice
2118         when it has the same id and name attribute values. Fixed the bug by avoiding to add or remove
2119         an element per id and name attribute updates when it had already been added or removed by
2120         name and id attribute updates respectively.
2121
2122         We do this by checking whether the other attribute affects the element's precense in window
2123         and document named item maps and avoiding to add or remove the attribute when they do and
2124         the other attribute is present in updateId and updateName.
2125
2126         Consider a scenario when an object element has id "foo", and name attribute is about to be also
2127         set to "foo". If the id attribute doesn't affect element's presense in window or document
2128         named item maps, we're done. If it does, then the maps already have this element so we don't
2129         want to add it again. Conversely, if the element already has id and name attributes set to
2130         "foo", and we're moving the id attribute, then we want to remove the element from the maps only
2131         if the id doesn't affect the presence of the element in the maps.
2132
2133         Unfortuntely, this logic doesn't work when we're inserting or removing an element on its entirely
2134         because updateId and updateName are called when both id and name attributes are present so skip
2135         this step (AlwaysUpdateHTMLDocumentNamedItemMaps) for the id attribute to break the symmetry.
2136
2137         Test: fast/dom/HTMLDocument/image-with-same-id-and-name.html
2138               fast/dom/HTMLDocument/object-with-same-id-and-name.html
2139
2140         * dom/Element.cpp:
2141         (WebCore::Element::insertedInto): Call updateId and updateName with
2142         AlwaysUpdateHTMLDocumentNamedItemMaps.
2143         (WebCore::Element::removedFrom): Ditto.
2144         (WebCore::Element::updateName): Don't add or remove this element if the id attribute has already
2145         done so except when we're inserting, removing, or cloning an element.
2146         (WebCore::Element::updateId): Ditto for the name attribute.
2147         (WebCore::Element::cloneAttributesFromElement): Added a comment and assert that we never call this
2148         function when this element is in the document. We can't update window and documemt named item
2149         maps here because image element's id attribute value, for example, is present in the document's
2150         named item map if it has a name attribute. Since this function calls updateId and updateName
2151         before updating attributes, this check is going to fail in DocumentNameCollection's
2152         nodeMatchesIfIdAttributeMatch and bad things will happen.
2153
2154         * dom/Element.h:
2155
2156         * editing/ReplaceNodeWithSpanCommand.cpp:
2157         (WebCore::swapInNodePreservingAttributesAndChildren): Clone children and attributes before
2158         inserting the swapped span to avoid hitting the assertion in cloneAttributesFromElement we added.
2159
2160         * html/HTMLImageElement.cpp:
2161         (WebCore::HTMLImageElement::parseAttribute):
2162
2163         * html/HTMLObjectElement.cpp:
2164         (WebCore::HTMLObjectElement::updateDocNamedItem):
2165
2166 2013-05-09  Dean Jackson  <dino@apple.com>
2167
2168         Don't trust character widths for internal OS X fonts in form controls
2169         https://bugs.webkit.org/show_bug.cgi?id=115883
2170         <rdar://problem/13817757>
2171
2172         Reviewed by Darin Adler.
2173
2174         We ignore the character width for a bunch of fonts when predicting
2175         the width of a form control. Some of the internal fonts in OS X are
2176         not in the ignored list. Rather than add them, simply test for
2177         fonts whose family begins with a period character ".".
2178
2179         * rendering/RenderTextControl.cpp:
2180         (WebCore::RenderTextControl::hasValidAvgCharWidth): Return false for
2181             any family that starts with "."
2182
2183 2013-05-10  Carlos Garcia Campos  <cgarcia@igalia.com>
2184
2185         [GTK] Remove unnecessary GLIB_CHECK_VERSION #ifdefs
2186         https://bugs.webkit.org/show_bug.cgi?id=115904
2187
2188         Reviewed by Martin Robinson.
2189
2190         * bindings/gobject/WebKitDOMEventTarget.cpp:
2191         * platform/gtk/GtkVersioning.c:
2192         * platform/gtk/GtkVersioning.h:
2193
2194 2013-05-10  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
2195
2196         Unreviewed. Fix the ENABLE(SHARED_WORKERS) build after r149864.
2197
2198         * workers/SharedWorkerThread.cpp: include "SecurityOrigin.h"
2199
2200 2013-05-10  Claudio Saavedra  <csaavedra@igalia.com>
2201
2202         Fix build after r149864.
2203
2204         Unreviewed build fix.
2205
2206         * loader/ThreadableLoader.h: include <wtf/text/AtomicString.h>
2207         when building with RESOURCE_TIMING enabled.
2208
2209 2013-05-10  Anders Carlsson  <andersca@apple.com>
2210
2211         Fix build.
2212
2213         * bindings/js/ScriptController.cpp:
2214
2215 2013-05-10  Anders Carlsson  <andersca@apple.com>
2216
2217         Remove ScriptInstance.h
2218         https://bugs.webkit.org/show_bug.cgi?id=115900
2219
2220         Reviewed by Andreas Kling.
2221
2222         Remove yet another abstraction now that we don't support V8.
2223
2224         * GNUmakefile.list.am:
2225         * WebCore.vcproj/WebCore.vcproj:
2226         * WebCore.vcxproj/WebCore.vcxproj:
2227         * WebCore.vcxproj/WebCore.vcxproj.filters:
2228         * WebCore.xcodeproj/project.pbxproj:
2229         * bindings/js/ScriptController.h:
2230         (Bindings):
2231         (ScriptController):
2232         * bindings/js/ScriptControllerMac.mm:
2233         (WebCore::ScriptController::createScriptInstanceForWidget):
2234         * bindings/js/ScriptInstance.h: Removed.
2235         * html/HTMLPlugInElement.cpp:
2236         (WebCore::HTMLPlugInElement::getInstance):
2237         * html/HTMLPlugInElement.h:
2238         (Bindings):
2239         (HTMLPlugInElement):
2240         * platform/graphics/wince/MediaPlayerProxy.h:
2241         (WebMediaPlayerProxy):
2242         * rendering/RenderEmbeddedObject.cpp:
2243         * rendering/RenderSnapshottedPlugIn.cpp:
2244
2245 2013-05-10  Anders Carlsson  <andersca@apple.com>
2246
2247         Unreviewed, rolling out r149866.
2248         http://trac.webkit.org/changeset/149866
2249         https://bugs.webkit.org/show_bug.cgi?id=115898
2250
2251         Broke tests
2252
2253         * dom/Document.cpp:
2254         (WebCore::Document::setDomain):
2255         (WebCore::Document::initSecurityContext):
2256         * page/SecurityOrigin.cpp:
2257         (WebCore::SecurityOrigin::SecurityOrigin):
2258         (WebCore::SecurityOrigin::isolatedCopy):
2259         (WebCore::SecurityOrigin::setDomainFromDOM):
2260         (WebCore::SecurityOrigin::grantUniversalAccess):
2261         * page/SecurityOrigin.h:
2262         (SecurityOrigin):
2263
2264 2013-05-10  Andrei Bucur  <abucur@adobe.com>
2265
2266         Remove overflow dead code
2267         https://bugs.webkit.org/show_bug.cgi?id=115893
2268
2269         Reviewed by Antti Koivisto.
2270
2271         The patch removes unused public overflow accesor functions from RenderOverflow and InlineFlowBox.
2272
2273         Tests: no tests, code cleanup.
2274
2275         * rendering/InlineFlowBox.h: Removed logicalLeftLayoutOverflow and logicalRightLayoutOverflow.
2276         * rendering/RenderOverflow.h: Removed setMinYLayoutOverflow, setMaxYLayoutOverflow,
2277             setMinXLayoutOverflow, setMaxXLayoutOverflow, setMinYVisualOverflow, setMaxYVisualOverflow,
2278             setMinXVisualOverflow and setMaxXVisualOverflow.
2279
2280 2013-05-10  Anders Carlsson  <andersca@apple.com>
2281
2282         Begin making SecurityOrigin immutable
2283         https://bugs.webkit.org/show_bug.cgi?id=115898
2284
2285         Reviewed by Andreas Kling.
2286
2287         Replace SecurityOrigin::setDomainFromDOM and SecurityOrigin::grantUniversalAccess with
2288         member functions that return new SecurityOrigin objects.
2289
2290         * dom/Document.cpp:
2291         (WebCore::Document::setDomain):
2292         Update the security origin to one returned by copyWithDomainSetFromDOM.
2293     
2294         (WebCore::Document::initSecurityContext):
2295         Set the security origin to one returned by copyWithUniversalAccessGranted().
2296
2297         * page/SecurityOrigin.cpp:
2298         (WebCore::SecurityOrigin::SecurityOrigin):
2299         Add a new constructor that takes all the member variables as parameters. This is a little unwieldy at the moment,
2300         but all the boolean parameters could be replaced by a bitmask of flags.
2301
2302         (WebCore::SecurityOrigin::isolatedCopy):
2303         Call the new constructor.
2304
2305         (WebCore::SecurityOrigin::copyWithDomainSetFromDOM):
2306         Return a new security origin with m_domainWasSetInDOM set to true and the domain updated.
2307
2308         (WebCore::SecurityOrigin::copyWithUniversalAccessGranted):
2309         Return a new security origin with m_universalAccess set to true.
2310
2311 2013-05-10  Anders Carlsson  <andersca@apple.com>
2312
2313         Remove ScriptController::updateSecurityOrigin
2314         https://bugs.webkit.org/show_bug.cgi?id=115895
2315
2316         Reviewed by Antti Koivisto.
2317
2318         ScriptController::updateSecurityOrigin is just dead code now that the V8 bindings are gone.
2319
2320         * bindings/js/ScriptController.cpp:
2321         * bindings/js/ScriptController.h:
2322         * dom/Document.cpp:
2323         (WebCore::Document::setIsViewSource):
2324         (WebCore::Document::setDomain):
2325         * dom/Document.h:
2326         (Document):
2327         * dom/SecurityContext.cpp:
2328         (WebCore::SecurityContext::enforceSandboxFlags):
2329         * dom/SecurityContext.h:
2330         (SecurityContext):
2331
2332 2013-05-10  Anders Carlsson  <andersca@apple.com>
2333
2334         Stop including SecurityOrigin.h where unnecessary
2335         https://bugs.webkit.org/show_bug.cgi?id=115897
2336
2337         Reviewed by Antti Koivisto.
2338
2339         Move rarely called functions out of line so headers don't have to include SecurityOrigin.h
2340
2341         * Modules/indexeddb/IDBFactoryBackendImpl.h:
2342         * Modules/webdatabase/DatabaseBackendBase.cpp:
2343         (WebCore::DatabaseBackendBase::databaseDebugName):
2344         * Modules/webdatabase/DatabaseBackendBase.h:
2345         (DatabaseBackendBase):
2346         * Modules/webdatabase/DatabaseSync.h:
2347         * bindings/js/JSDOMWindowCustom.h:
2348         * html/parser/XSSAuditor.cpp:
2349         * loader/ThreadableLoader.cpp:
2350         (WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions):
2351         (WebCore::ThreadableLoaderOptions::~ThreadableLoaderOptions):
2352         (WebCore::ThreadableLoader::create):
2353         * loader/ThreadableLoader.h:
2354         (ThreadableLoaderOptions):
2355         * loader/WorkerThreadableLoader.cpp:
2356         * workers/DedicatedWorkerContext.cpp:
2357         * workers/DedicatedWorkerThread.cpp:
2358         * workers/SharedWorkerContext.cpp:
2359         * workers/WorkerThread.cpp:
2360         * workers/WorkerThread.h:
2361
2362 2013-05-10  Carlos Garcia Campos  <cgarcia@igalia.com>
2363
2364         Unreviewed. Fix GTK+ build after r149839.
2365
2366         * platform/gtk/RenderThemeGtk3.cpp:
2367         (WebCore::gtkStyleChangedCallback):
2368
2369 2013-05-09  Chris Fleizach  <cfleizach@apple.com>
2370
2371         AX: VoiceOver is no longer seeing items in poorly formed tables
2372         https://bugs.webkit.org/show_bug.cgi?id=115837
2373
2374         Reviewed by Darin Adler.
2375
2376         In case the author didn't include the rows of a table as the 
2377         direct children, a table needs to dive down its descendant chain
2378         until the rows are found. 
2379
2380         I also took the opportunity to clean up a bit around what the different
2381         meanings of table are in the accessibility classes.
2382
2383         Test: accessibility/poorly-formed-aria-table.html
2384
2385         * accessibility/AccessibilityARIAGrid.cpp:
2386         (WebCore::AccessibilityARIAGrid::addRowDescendant):
2387         (WebCore::AccessibilityARIAGrid::addChildren):
2388         * accessibility/AccessibilityARIAGrid.h:
2389         (AccessibilityARIAGrid):
2390         * accessibility/AccessibilityARIAGridRow.cpp:
2391         (WebCore::AccessibilityARIAGridRow::parentTable):
2392         (WebCore):
2393         * accessibility/AccessibilityARIAGridRow.h:
2394         (AccessibilityARIAGridRow):
2395         * accessibility/AccessibilityObject.h:
2396         (WebCore::AccessibilityObject::isTable):
2397         * accessibility/AccessibilityTable.h:
2398         (AccessibilityTable):
2399         (WebCore::AccessibilityTable::isTable):
2400         (WebCore::toAccessibilityTable):
2401         * accessibility/AccessibilityTableRow.cpp:
2402         (WebCore::AccessibilityTableRow::parentTable):
2403
2404 2013-05-09  Yael Aharon  <yael.aharon@intel.com>
2405
2406         REGRESSION: Disabled multiline select element now responds to (certain) clicks
2407         https://bugs.webkit.org/show_bug.cgi?id=115710
2408
2409         Reviewed by Kent Tamura.
2410
2411         After http://trac.webkit.org/changeset/140286, select elements can scroll whether they
2412         are disabled or not. While they scroll, they also change the selected item.
2413         This patch allows the select element to scroll, but does not change the selection
2414         if the select element is disabled.        
2415
2416         Test: fast/forms/select/listbox-disabled-scroll-no-onchange.html
2417         Test: fast/forms/select/listbox-disabled-no-autoscroll.html
2418
2419         * rendering/RenderListBox.cpp:
2420         (WebCore::RenderListBox::autoscroll):
2421         * rendering/RenderListBox.cpp:
2422         (WebCore::RenderListBox::stopAutoscroll):
2423
2424 2013-05-09  Anders Carlsson  <andersca@apple.com>
2425
2426         Clean up SecurityOrigin::databaseIdentifier
2427         https://bugs.webkit.org/show_bug.cgi?id=115882
2428
2429         Reviewed by Beth Dakin.
2430
2431         Remove m_encodedHost and just call encodeHost from databaseIdentifier().
2432         Also, use a StringBuilder when constructing the database identifier to avoid allocating
2433         temporary String objects over and over.
2434
2435         * page/SecurityOrigin.cpp:
2436         (WebCore::SecurityOrigin::SecurityOrigin):
2437         (WebCore):
2438         (WebCore::SecurityOrigin::createFromDatabaseIdentifier):
2439         (WebCore::SecurityOrigin::databaseIdentifier):
2440         * page/SecurityOrigin.h:
2441         (SecurityOrigin):
2442
2443 2013-05-09  Anders Carlsson  <andersca@apple.com>
2444
2445         Remove m_securityOrigin from XMLHttpRequest
2446         https://bugs.webkit.org/show_bug.cgi?id=115881
2447
2448         Reviewed by Alexey Proskuryakov.
2449
2450         The security origin passed to XMLHttpRequest::create was always null, so just get rid of the member variable completely.
2451
2452         * xml/XMLHttpRequest.cpp:
2453         (WebCore::XMLHttpRequest::create):
2454         (WebCore::XMLHttpRequest::XMLHttpRequest):
2455         (WebCore::XMLHttpRequest::securityOrigin):
2456         * xml/XMLHttpRequest.h:
2457         (XMLHttpRequest):
2458
2459 2013-05-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2460
2461         [NoInterfaceObject] extended attribute should be removed for several interfaces
2462         https://bugs.webkit.org/show_bug.cgi?id=115852
2463
2464         Reviewed by Benjamin Poulain.
2465
2466         Remove [NoInterfaceObject] extended attribute from the following Web IDL
2467         interfaces: SecurityPolicy, History, Location, Navigator, Performance,
2468         PerformanceEntry, PerformanceMark, PerformanceMeasure, PerformanceNavigation,
2469         PerformanceResourceTiming, PerformanceTiming and Screen.
2470
2471         These interfaces should not have the [NoInterfaceObject] extended attribute
2472         according to their respective specifications:
2473         - http://www.w3.org/html/wg/drafts/html/master/browsers.html#the-history-interface
2474         - http://www.w3.org/html/wg/drafts/html/master/browsers.html#the-location-interface
2475         - https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#securitypolicy
2476         - http://www.w3.org/html/wg/drafts/html/master/webappapis.html#the-navigator-object
2477         - http://www.w3.org/TR/navigation-timing/#performance
2478         - https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PerformanceTimeline/Overview.html#sec-PerformanceEntry-interface
2479         - http://www.w3.org/TR/navigation-timing/#performancenavigation
2480         - http://www.w3.org/TR/navigation-timing/#performancetiming
2481         - http://www.w3.org/TR/user-timing/#performancemark
2482         - http://www.w3.org/TR/user-timing/#performancemeasure
2483         - http://www.w3c-test.org/webperf/specs/ResourceTiming/#performanceresourcetiming
2484         - http://dev.w3.org/csswg/cssom-view/#the-screen-interface
2485
2486         The new behavior is consistent with the specifications, Firefox and soon Blink.
2487
2488         No new tests, already covered by existing tests.
2489
2490         * page/DOMSecurityPolicy.idl:
2491         * page/History.idl:
2492         * page/Location.idl:
2493         * page/Navigator.idl:
2494         * page/Performance.idl:
2495         * page/PerformanceEntry.idl:
2496         * page/PerformanceMark.idl:
2497         * page/PerformanceMeasure.idl:
2498         * page/PerformanceNavigation.idl:
2499         * page/PerformanceResourceTiming.idl:
2500         * page/PerformanceTiming.idl:
2501         * page/Screen.idl:
2502
2503 2013-05-09  Robert Hogan  <robert@webkit.org>
2504
2505         REGRESSION (Safari 3-Safari 4): Replaced element with percent height in table has incorrect height
2506         https://bugs.webkit.org/show_bug.cgi?id=26394
2507
2508         Reviewed by David Hyatt.
2509
2510         Text controls or any object that has scrollable content should not flex inside a table cell. 
2511         This makes our behaviour the same as IE, FF and Opera (Presto).
2512
2513         * rendering/RenderTableSection.cpp:
2514         (WebCore::RenderTableSection::layoutRows):
2515
2516 2013-05-09  Anders Carlsson  <andersca@apple.com>
2517
2518         Build fix.
2519
2520         * WebCore.exp.in:
2521
2522 2013-05-09  Anders Carlsson  <andersca@apple.com>
2523
2524         Add a StorageStrategy hook for creating transient local storage namespaces
2525         https://bugs.webkit.org/show_bug.cgi?id=115870
2526
2527         Reviewed by Geoffrey Garen.
2528
2529         * WebCore.exp.in:
2530         Export symbol needed by WebKit2.
2531         
2532         * dom/Document.cpp:
2533         (WebCore::Document::topOrigin):
2534         * dom/Document.h:
2535         * dom/ScriptExecutionContext.h:
2536         * workers/WorkerContext.h:
2537         Remove const qualifier from topOrigin() to avoid ugly const_casts when assigning into a RefPtr<SecurityOrigin> variable.
2538
2539         * page/PageGroup.cpp:
2540         (WebCore::PageGroup::transientLocalStorage):
2541         Do a single hash lookup instead of three and use the SecurityOrigin itself as the hash key instead of a string representation of it.
2542
2543         * page/PageGroup.h:
2544         Update HashMap declaration.
2545
2546         * storage/StorageNamespace.cpp:
2547         (WebCore::StorageNamespace::transientLocalStorageNamespace):
2548         Add new implementation that will optionally call out to the storage strategy.
2549
2550         * storage/StorageNamespaceImpl.cpp:
2551         (WebCore::StorageNamespaceImpl::transientLocalStorageNamespace):
2552         Move the default implementation here from PageGroup.
2553         
2554         * storage/StorageStrategy.cpp:
2555         (WebCore::StorageStrategy::transientLocalStorageNamespace):
2556         Call the default implementation.
2557
2558 2013-05-09  Enrica Casucci  <enrica@apple.com>
2559
2560         A change in system environment should force all CSS properties to be recomputed.
2561         https://bugs.webkit.org/show_bug.cgi?id=115872
2562         <rdar://problem/13781171>
2563
2564         Reviewed by Antti Koivisto.
2565
2566         When a change in the global environment occurs, for example system colors,
2567         we need to make sure all the CSS properties are recomputed and not fetched
2568         from the cache. For this reason we invalidate the properties cache.
2569         I've also renamed the function to give it a more meaningful name.
2570         
2571         * page/Page.cpp:
2572         (WebCore::Page::updateStyleForAllPagesAfterGlobalChangeInEnvironment):
2573         * page/Page.h:
2574         * rendering/RenderTheme.cpp:
2575         (WebCore::RenderTheme::platformColorsDidChange):
2576
2577 2013-05-09  Antti Koivisto  <antti@apple.com>
2578
2579         Reoptimize free-standing :focus/link/visited/-webkit-any-link selectors.
2580         <http://webkit.org/b/115590>
2581
2582         Reviewed by Darin Adler.
2583
2584         Common pseudo selectors should go into their respective rule buckets instead of ending up in the universal one.
2585
2586         * css/RuleSet.cpp:
2587         (WebCore::RuleSet::findBestRuleSetAndAdd):
2588         
2589             Check tag selectors with * local name (usually created for namespace) for a suitable narrower bucket too.
2590
2591 2013-05-09  Darin Adler  <darin@apple.com>
2592
2593         RenderQuote has giant function for language to quotes map
2594         https://bugs.webkit.org/show_bug.cgi?id=115807
2595
2596         Reviewed by Anders Carlsson.
2597
2598         * rendering/RenderQuote.cpp:
2599         (WebCore::RenderQuote::RenderQuote): Updated for m_isAttached name change.
2600         (WebCore::RenderQuote::~RenderQuote): Updated for name change, and also split
2601         assertion with && in it into two separate assertions.
2602         (WebCore::checkNumberOfDistinctQuoteCharacters): Added. Helper function that is used
2603         to check that the number of distinct quote characters is small enough to fit into
2604         our fixed size array below.
2605         (WebCore::quotesForLanguage): Replaces the old quotesDataLanguageMap function.
2606         Returns a pointer to a struct that contains the four quote characters. This new
2607         function doesn't have the massive amount of code that the old one did. We use the
2608         standard library bsearch function to do a binary search.
2609         (WebCore::stringForQuoteCharacter): Added. This returns a string for a given quote
2610         character; one string for any given character.
2611         (WebCore::quotationMarkString): Added. Returns the string for the quotation mark.
2612         (WebCore::apostropheStringImpl): Added. Returns the string for the apostrophe.
2613         (WebCore::RenderQuote::originalText): Rewrote this to include all the logic that
2614         used to be in the quotesData function.
2615         (WebCore::RenderQuote::attachQuote): Tweak assertions as above. Removed unneeded
2616         special case for the first quote in a RenderView; sharing the code is better and
2617         there is no significant performance difference. Also use m_isAttached directly
2618         when looking at predecessores so there is no need for an isAttached function.
2619         (WebCore::RenderQuote::detachQuote): Updated assertions and for name change.
2620         (WebCore::RenderQuote::updateDepth): Ditto.
2621
2622         * rendering/RenderQuote.h: Removed unneeded includes. Marked the class FINAL since
2623         we call the originalText function in the class and we don't want to do a virtual
2624         function dispatch for that. Removed uneeded const from an argument. Removed a
2625         stray semicolon. Removed the quotesData and isAttached functions, since they are no
2626         longer needed. Renamed m_attached to m_isAttached.
2627
2628         * rendering/style/QuotesData.cpp: Removed the overload of QuotesData::create that
2629         takes four quote strings. This was only used to build up the quotes table.
2630         * rendering/style/QuotesData.h: Ditto.
2631
2632 2013-05-09  Max Feil  <mfeil@rim.com>
2633
2634         shouldUsePluginDocument() needs to be respected when a document is created
2635         https://bugs.webkit.org/show_bug.cgi?id=110308
2636
2637         Reviewed by Rob Buis.
2638
2639         In DOMImplementation::createDocument() we should create
2640         a PluginDocument for mime types that return "true" for
2641         shouldAlwaysUsePluginDocument(), even if there is no pluginData
2642         for them. This lets a client choose plugins for which the "missing
2643         plugin" text or icon should appear more consistently. Otherwise
2644         plugins referenced by iFrames will be treated as an HTMLDocument,
2645         possibly resulting in binary files rendered as gibberish text.
2646
2647         Layout test platform/blackberry/plugins/swf-as-src-of-iframe.html
2648
2649         * dom/DOMImplementation.cpp:
2650         (WebCore::DOMImplementation::createDocument):
2651
2652 2013-05-09  Timothy Hatcher  <timothy@apple.com>
2653
2654         Fix an exception when hovering native functions while paused in the debugger.
2655
2656         https://webkit.org/b/115866
2657         rdar://problem/13681982
2658
2659         Reviewed by Darin Adler and Joseph Pecoraro.
2660
2661         * inspector/InjectedScriptSource.js:
2662         (InjectedScript.prototype.getFunctionDetails): Return an error if the details
2663         is null or undefined.
2664
2665 2013-05-09  Darin Adler  <darin@apple.com>
2666
2667         [Mac] CFError leak under Objective-C garbage collection
2668         https://bugs.webkit.org/show_bug.cgi?id=115862
2669
2670         Reviewed by Benjamin Poulain.
2671
2672         * platform/network/mac/ResourceErrorMac.mm:
2673         (WebCore::ResourceError::nsError): Use adoptCF instead of adoptNS since
2674         the CFError needs a CFRelease, not an -[NSObject release].
2675
2676 2013-05-09  Alberto Garcia  <agarcia@igalia.com>
2677
2678         BlackBerry: fix call to PluginLayerWebKitThread::setHolePunchRect()
2679         https://bugs.webkit.org/show_bug.cgi?id=114953
2680
2681         Reviewed by Rob Buis.
2682
2683         data->layer needs a cast in order to call setHolePunchRect().
2684
2685         * plugins/blackberry/NPCallbacksBlackBerry.cpp:
2686         (WebCore::npSetHolePunchHandler):
2687
2688 2013-05-09  Mike Fenton  <mifenton@rim.com>
2689
2690         [BlackBerry] Style updates required based on new check-webkit-style
2691         https://bugs.webkit.org/show_bug.cgi?id=115857
2692
2693         Reviewed by Rob Buis.
2694
2695         Update WebCore/platform/graphics BlackBerry sources
2696         to match check-webkit-style updates.
2697
2698         Internally reviewed by Jakob Petsovits.
2699
2700         * platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
2701         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
2702         (WebCore::GraphicsContext3D::readPixelsIMG):
2703         (WebCore::GraphicsContext3D::paintToCanvas):
2704         * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
2705         (WebCore::GraphicsLayerBlackBerry::updateLayerPosition):
2706         * platform/graphics/blackberry/IntRectBlackBerry.cpp:
2707         (WebCore::IntRect::IntRect):
2708         * platform/graphics/blackberry/LayerCompositingThread.h:
2709         (WTF::::deref):
2710         * platform/graphics/blackberry/LayerFilterRenderer.cpp:
2711         (WebCore::LayerFilterRenderer::initializeSharedGLObjects):
2712         (WebCore::LayerFilterRenderer::actionsForOperations):
2713         (WebCore::LayerFilterRenderer::applyActions):
2714         * platform/graphics/blackberry/LayerRenderer.cpp:
2715         (WebCore::LayerRenderer::setViewport):
2716         (WebCore::LayerRenderer::compositeBuffer):
2717         (WebCore::LayerRenderer::drawColor):
2718         (WebCore::LayerRenderer::compositeLayersRecursive):
2719         * platform/graphics/blackberry/LayerWebKitThread.cpp:
2720         (WebCore::LayerWebKitThread::setFrame):
2721         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
2722         (WebCore::MediaPlayerPrivate::play):
2723         (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
2724         * platform/image-decoders/blackberry/JPEGImageDecoder.cpp:
2725         (WebCore::JPEGImageDecoder::JPEGImageDecoder):
2726
2727 2013-05-09  Mike Fenton  <mifenton@rim.com>
2728
2729         [BlackBerry] Style updates required based on new check-webkit-style
2730         https://bugs.webkit.org/show_bug.cgi?id=115857
2731
2732         Reviewed by Rob Buis.
2733
2734         Update WebCore/platform/network/blackberry
2735         to match check-webkit-style updates.
2736
2737         * platform/network/blackberry/NetworkJob.cpp:
2738         (WebCore::NetworkJob::initialize):
2739         (WebCore::NetworkJob::handleSetCookieHeader):
2740         (WebCore::NetworkJob::sendResponseIfNeeded):
2741         (WebCore::NetworkJob::shouldSendClientData):
2742         * platform/network/blackberry/NetworkJob.h:
2743         (NetworkJob):
2744         * platform/network/blackberry/NetworkManager.cpp:
2745         (WebCore::NetworkManager::startJob):
2746         * platform/network/blackberry/rss/RSSFilterStream.cpp:
2747         (WebCore::isRSSContent):
2748         (WebCore::transcode):
2749
2750 2013-05-09  Mike Fenton  <mifenton@rim.com>
2751
2752         [BlackBerry] Style updates required based on new check-webkit-style
2753         https://bugs.webkit.org/show_bug.cgi?id=115857
2754
2755         Reviewed by Rob Buis.
2756
2757         Update WebCore/platform/blackberry to match check-webkit-style updates.
2758
2759         No functional changes.
2760
2761         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
2762         * platform/blackberry/CookieManager.cpp:
2763         (WebCore::CookieManager::getRawCookies):
2764         * platform/blackberry/CookieMap.h:
2765         (WebCore::CookieMap::count):
2766         * platform/blackberry/CookieParser.cpp:
2767         (WebCore::CookieParser::parseOneCookie):
2768         * platform/blackberry/LoggingBlackBerry.cpp:
2769         * platform/blackberry/PageClientBlackBerry.h:
2770         (Platform):
2771         (Graphics):
2772         (WebCore):
2773         * platform/blackberry/ParsedCookie.cpp:
2774         (WebCore::ParsedCookie::appendWebCoreCookie):
2775         * platform/blackberry/RenderThemeBlackBerry.cpp:
2776         (WebCore::RenderThemeBlackBerry::paintSearchFieldCancelButton):
2777         (WebCore::RenderThemeBlackBerry::paintButton):
2778         (WebCore::RenderThemeBlackBerry::paintSliderThumb):
2779         * platform/blackberry/SSLKeyGeneratorBlackBerry.cpp:
2780         (WebCore::signedPublicKeyAndChallengeString):
2781         * platform/blackberry/ScrollAnimatorBlackBerry.h:
2782
2783 2013-05-09  Chris Rogers  <crogers@google.com>
2784
2785         Require use of AudioBus::create() to avoid ref-counting issues
2786         https://bugs.webkit.org/show_bug.cgi?id=115836
2787
2788         Reviewed by Andreas Kling.
2789
2790         There were a couple of places still embedding raw AudioBus objects as
2791         member variables or local variables causing ref-counting problems
2792         now that AudioBus is ref-counted.  Make AudioBus constructor private
2793         to enforce use of AudioBus::create().
2794
2795         Adapted from Blink patch:
2796         https://chromiumcodereview.appspot.com/14628008/
2797
2798         * Modules/webaudio/AudioDestinationNode.h:
2799         (WebCore::AudioDestinationNode::LocalAudioInputProvider::LocalAudioInputProvider):
2800         (WebCore::AudioDestinationNode::LocalAudioInputProvider::set):
2801         (WebCore::AudioDestinationNode::LocalAudioInputProvider::provideInput):
2802         (LocalAudioInputProvider):
2803         * Modules/webaudio/AudioNodeInput.cpp:
2804         (WebCore::AudioNodeInput::AudioNodeInput):
2805         (WebCore::AudioNodeInput::updateInternalBus):
2806         * Modules/webaudio/AudioNodeOutput.cpp:
2807         (WebCore::AudioNodeOutput::AudioNodeOutput):
2808         (WebCore::AudioNodeOutput::updateInternalBus):
2809         * Modules/webaudio/AudioParam.cpp:
2810         (WebCore::AudioParam::calculateFinalValues):
2811         * Modules/webaudio/ConvolverNode.cpp:
2812         (WebCore::ConvolverNode::setBuffer):
2813         * Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
2814         (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
2815         (WebCore::MediaStreamAudioDestinationNode::process):
2816         * Modules/webaudio/MediaStreamAudioDestinationNode.h:
2817         * Modules/webaudio/OfflineAudioDestinationNode.cpp:
2818         (WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
2819         * Modules/webaudio/ScriptProcessorNode.cpp:
2820         (WebCore::ScriptProcessorNode::ScriptProcessorNode):
2821         (WebCore::ScriptProcessorNode::process):
2822         * Modules/webaudio/ScriptProcessorNode.h:
2823         (ScriptProcessorNode):
2824         * platform/audio/AudioBus.cpp:
2825         (WebCore::AudioBus::create):
2826         (WebCore):
2827         (WebCore::AudioBus::AudioBus):
2828         (WebCore::AudioBus::createBufferFromRange):
2829         (WebCore::AudioBus::createBySampleRateConverting):
2830         (WebCore::AudioBus::createByMixingToMono):
2831         * platform/audio/AudioBus.h:
2832         (AudioBus):
2833         * platform/audio/AudioFIFO.cpp:
2834         (WebCore::AudioFIFO::AudioFIFO):
2835         (WebCore::AudioFIFO::consume):
2836         (WebCore::AudioFIFO::push):
2837         * platform/audio/AudioFIFO.h:
2838         (AudioFIFO):
2839         * platform/audio/AudioPullFIFO.cpp:
2840         (WebCore::AudioPullFIFO::AudioPullFIFO):
2841         (WebCore::AudioPullFIFO::fillBuffer):
2842         * platform/audio/AudioPullFIFO.h:
2843         (AudioPullFIFO):
2844         * platform/audio/AudioResampler.cpp:
2845         (WebCore::AudioResampler::AudioResampler):
2846         (WebCore::AudioResampler::configureChannels):
2847         * platform/audio/MultiChannelResampler.cpp:
2848         * platform/audio/Reverb.cpp:
2849         (WebCore::Reverb::initialize):
2850         * platform/audio/SincResampler.cpp:
2851         (WebCore::SincResampler::consumeSource):
2852         (WebCore):
2853         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
2854         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
2855         * platform/audio/gstreamer/AudioDestinationGStreamer.h:
2856         (AudioDestinationGStreamer):
2857         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
2858         (WebCore::AudioFileReader::createBus):
2859         * platform/audio/ios/AudioDestinationIOS.cpp:
2860         (WebCore::AudioDestinationIOS::AudioDestinationIOS):
2861         (WebCore::AudioDestinationIOS::render):
2862         * platform/audio/ios/AudioDestinationIOS.h:
2863         (AudioDestinationIOS):
2864         * platform/audio/mac/AudioDestinationMac.cpp:
2865         (WebCore::AudioDestinationMac::AudioDestinationMac):
2866         (WebCore::AudioDestinationMac::render):
2867         * platform/audio/mac/AudioDestinationMac.h:
2868         (AudioDestinationMac):
2869         * platform/audio/mac/AudioFileReaderMac.cpp:
2870         (WebCore::AudioFileReader::createBus):
2871
2872 2013-05-09  Alberto Garcia  <agarcia@igalia.com>
2873
2874         [BlackBerry] Upstream the input popups
2875         https://bugs.webkit.org/show_bug.cgi?id=114608
2876
2877         Reviewed by Rob Buis.
2878
2879         This patch contains contributions from many members of the
2880         BlackBerry WebKit team, including:
2881
2882         Chris Hutten-Czapski
2883         David Hoon
2884         Jessica Cao
2885         Rob Buis
2886         Tiancheng Jiang
2887
2888         * Resources/blackberry/colorControlBlackBerry.css: Added.
2889         (.color-picker-popup-area):
2890         (.color-picker-content):
2891         (.color-picker-block):
2892         (#color-picker-swatch-block):
2893         (.color-picker-switcher):
2894         (.color-picker-check-mark):
2895         (.color-picker-option):
2896         (.color-picker-button):
2897         (.color-picker-highlight):
2898         (input):
2899         (.color-picker-sharp):
2900         (.color-picker-off):
2901         (.color-picker-inactive-font):
2902         (.color-picker-row):
2903         (.color-picker-hex-style):
2904         (.color-picker-input):
2905         (.color-picker-well):
2906         (.color-picker-input .color-picker-well):
2907         (.color-picker-slider):
2908         (.color-picker-slider-output):
2909         (.color-picker-range):
2910         (.color-picker-range::-webkit-slider-thumb):
2911         (.color-picker-range::-webkit-slider-thumb:active):
2912         (.red-ranger-bg):
2913         (.green-ranger-bg):
2914         (.blue-ranger-bg):
2915         (@media only screen and (height: 768px)):
2916         (@media only screen and (height: 720px)):
2917         * Resources/blackberry/colorControlBlackBerry.js: Added.
2918         (.):
2919         * Resources/blackberry/popupControlBlackBerry.css:
2920         (body):
2921         (.popup-area):
2922         (.popup-header):
2923         (.popup-content):
2924         (.popup-buttons):
2925         (.popup-button):
2926         (@media only screen and (width: 720px) and (height: 720px)):
2927         * Resources/blackberry/selectControlBlackBerry.css:
2928         (.popup-content):
2929         (@media (min-height: 918px)):
2930         (.option):
2931         (@media only screen and (width: 720px) and (height: 720px)):
2932         (.contents):
2933         (.option:active):
2934         (.selected):
2935         (.selected .contents::after):
2936         (.text):
2937         (.disabled):
2938         (.optgroup):
2939         (.optgroup-option):
2940         * Resources/blackberry/selectControlBlackBerry.js:
2941         (.):
2942         * Resources/blackberry/timeControlBlackBerry.css: Added.
2943         (#popup-content-time):
2944         (.column):
2945         (.column:not(:last-child)):
2946         (.cell):
2947         (.yearmonthdate .cell div:last-child):
2948         (.row-highlight-container):
2949         (.row-highlight-filler):
2950         (.row-highlight):
2951         (.tall-bit):
2952         (@media only screen and (width: 720px) and (height: 720px)):
2953         * Resources/blackberry/timeControlBlackBerry.js: Added.
2954         (.):
2955
2956 2013-05-09  Rob Buis  <rbuis@rim.com>
2957
2958         [BlackBerry] texmap code generates warnings
2959         https://bugs.webkit.org/show_bug.cgi?id=115815
2960
2961         Reviewed by Benjamin Poulain.
2962
2963         Add USE(TEXTURE_MAPPER) guards since Source/WebCore/CMakeLists.txt includes
2964         these files unconditionally.
2965
2966         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
2967         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
2968         * platform/graphics/texmap/TextureMapper.h:
2969         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
2970         * platform/graphics/texmap/TextureMapperBackingStore.h:
2971         * platform/graphics/texmap/TextureMapperFPSCounter.cpp:
2972         * platform/graphics/texmap/TextureMapperFPSCounter.h:
2973         * platform/graphics/texmap/TextureMapperGL.cpp:
2974         * platform/graphics/texmap/TextureMapperGL.h:
2975         * platform/graphics/texmap/TextureMapperLayer.cpp:
2976         * platform/graphics/texmap/TextureMapperLayer.h:
2977         * platform/graphics/texmap/TextureMapperTile.cpp:
2978         * platform/graphics/texmap/TextureMapperTile.h:
2979         * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
2980         * platform/graphics/texmap/TextureMapperTiledBackingStore.h:
2981
2982 2013-05-09  Alberto Garcia  <agarcia@igalia.com>
2983
2984         PluginDatabase: add plugin directory for the BlackBerry port.
2985         https://bugs.webkit.org/show_bug.cgi?id=114943
2986
2987         Reviewed by Rob Buis.
2988
2989         XP_UNIX is defined for the BlackBerry port, but we don't want to
2990         share the same code here.
2991
2992         * plugins/PluginDatabase.cpp:
2993         (WebCore::PluginDatabase::defaultPluginDirectories):
2994         (WebCore::PluginDatabase::isPreferredPluginDirectory):
2995
2996 2013-05-09  Seokju Kwon  <seokju.kwon@gmail.com>
2997
2998         Web Inspector: Remove Memory Distribution and Memory Snapshots Panels
2999         https://bugs.webkit.org/show_bug.cgi?id=115850
3000
3001         Reviewed by Andreas Kling.
3002
3003         Removed the Memory Instrumentation Code after r148921.
3004
3005         No new tests, no behavior change.
3006
3007         * inspector/compile-front-end.py:
3008         * inspector/front-end/NativeMemorySnapshotView.js: Removed.
3009         * inspector/front-end/ProfilesPanel.js:
3010         (WebInspector.ProfilesPanel):
3011         * inspector/front-end/Settings.js:
3012         (WebInspector.Settings):
3013         (WebInspector.ExperimentsSettings):
3014         * inspector/front-end/SettingsScreen.js:
3015         * inspector/front-end/WebKit.qrc:
3016         * inspector/front-end/inspector.css:
3017         * inspector/front-end/inspector.js:
3018         (WebInspector._panelDescriptors):
3019         * inspector/front-end/nativeMemoryProfiler.css: Removed.
3020
3021 2013-05-09  Zan Dobersek  <zdobersek@igalia.com>
3022
3023         Unreviewed GTK build fix after r149796.
3024
3025         * GNUmakefile.am: Add a phony target for the window constructors file and include it among
3026         the dependencies for the non-generated code.
3027
3028 2013-05-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
3029
3030         Unreviewed build fix for Qt minimal build.
3031
3032         r149796 broke builds that have WEB_SOCKETS flag disabled.
3033
3034         * page/DOMWindow.idl:
3035
3036 2013-05-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
3037
3038         Add support for [NoInterfaceObject] Web IDL extended attribute
3039         https://bugs.webkit.org/show_bug.cgi?id=115714
3040
3041         Reviewed by Kentaro Hara.
3042
3043         *Constructor attributes on the global DOMWindow object are now automatically
3044         generated for each non-callback interface that is not declared with the
3045         [NoInterfaceObject] extended attribute. It is thus no longer needed for
3046         developers to manually add *Constructor attributes for their new interfaces
3047         unless they wish to register an "extra" constructor for their interface.
3048
3049         This patch does not modify at all the behavior on JS side. To achieve this,
3050         [NoInterfaceObject] extended attribute is added to interfaces that should
3051         not have it according to specification (e.g. History, Location, ...).
3052         This can be improved later as the behavior should not change with this
3053         patch.
3054
3055         No new tests, no behavior change.
3056
3057         * CMakeLists.txt:
3058         * DerivedSources.make:
3059         * DerivedSources.pri:
3060         * GNUmakefile.am:
3061         * GNUmakefile.list.am:
3062         * Modules/battery/BatteryManager.idl:
3063         * Modules/encryptedmedia/MediaKeyMessageEvent.idl:
3064         * Modules/encryptedmedia/MediaKeyNeededEvent.idl:
3065         * Modules/encryptedmedia/MediaKeySession.idl:
3066         * Modules/encryptedmedia/MediaKeys.idl:
3067         * Modules/filesystem/DOMFileSystem.idl:
3068         * Modules/filesystem/DOMFileSystemSync.idl:
3069         * Modules/filesystem/DirectoryEntry.idl:
3070         * Modules/filesystem/DirectoryEntrySync.idl:
3071         * Modules/filesystem/DirectoryReader.idl:
3072         * Modules/filesystem/DirectoryReaderSync.idl:
3073         * Modules/filesystem/Entry.idl:
3074         * Modules/filesystem/EntryArray.idl:
3075         * Modules/filesystem/EntryArraySync.idl:
3076         * Modules/filesystem/EntrySync.idl:
3077         * Modules/filesystem/FileEntry.idl:
3078         * Modules/filesystem/FileEntrySync.idl:
3079         * Modules/filesystem/FileWriter.idl:
3080         * Modules/filesystem/FileWriterSync.idl:
3081         * Modules/filesystem/Metadata.idl:
3082         * Modules/gamepad/Gamepad.idl:
3083         * Modules/gamepad/GamepadList.idl:
3084         * Modules/geolocation/Coordinates.idl:
3085         * Modules/geolocation/Geolocation.idl:
3086         * Modules/geolocation/Geoposition.idl:
3087         * Modules/geolocation/PositionError.idl:
3088         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
3089         * Modules/indexeddb/IDBAny.idl:
3090         * Modules/mediasource/MediaSource.idl:
3091         * Modules/mediasource/SourceBuffer.idl:
3092         * Modules/mediasource/SourceBufferList.idl:
3093         * Modules/mediastream/DOMWindowMediaStream.idl: Removed.
3094         * Modules/mediastream/MediaStream.idl:
3095         * Modules/mediastream/MediaStreamTrack.idl:
3096         * Modules/mediastream/MediaStreamTrackEvent.idl:
3097         * Modules/mediastream/NavigatorUserMediaError.idl:
3098         * Modules/mediastream/RTCDTMFSender.idl:
3099         * Modules/mediastream/RTCDTMFToneChangeEvent.idl:
3100         * Modules/mediastream/RTCDataChannel.idl:
3101         * Modules/mediastream/RTCDataChannelEvent.idl:
3102         * Modules/mediastream/RTCIceCandidateEvent.idl:
3103         * Modules/mediastream/RTCPeerConnection.idl:
3104         * Modules/mediastream/RTCStatsReport.idl:
3105         * Modules/mediastream/RTCStatsResponse.idl:
3106         * Modules/networkinfo/NetworkInfoConnection.idl:
3107         * Modules/notifications/DOMWindowNotifications.idl:
3108         * Modules/notifications/NotificationCenter.idl:
3109         * Modules/quota/StorageInfo.idl:
3110         * Modules/quota/StorageQuota.idl:
3111         * Modules/speech/DOMWindowSpeech.idl: Removed.
3112         * Modules/speech/DOMWindowSpeechSynthesis.idl:
3113         * Modules/speech/SpeechGrammar.idl:
3114         * Modules/speech/SpeechGrammarList.idl:
3115         * Modules/speech/SpeechRecognition.idl:
3116         * Modules/speech/SpeechRecognitionAlternative.idl:
3117         * Modules/speech/SpeechRecognitionError.idl:
3118         * Modules/speech/SpeechRecognitionEvent.idl:
3119         * Modules/speech/SpeechRecognitionResult.idl:
3120         * Modules/speech/SpeechRecognitionResultList.idl:
3121         * Modules/speech/SpeechSynthesis.idl:
3122         * Modules/speech/SpeechSynthesisVoice.idl:
3123         * Modules/webaudio/AnalyserNode.idl:
3124         * Modules/webaudio/AudioBuffer.idl:
3125         * Modules/webaudio/AudioBufferSourceNode.idl:
3126         * Modules/webaudio/AudioContext.idl:
3127         * Modules/webaudio/AudioDestinationNode.idl:
3128         * Modules/webaudio/AudioListener.idl:
3129         * Modules/webaudio/AudioNode.idl:
3130         * Modules/webaudio/AudioParam.idl:
3131         * Modules/webaudio/AudioSourceNode.idl:
3132         * Modules/webaudio/BiquadFilterNode.idl:
3133         * Modules/webaudio/ChannelMergerNode.idl:
3134         * Modules/webaudio/ChannelSplitterNode.idl:
3135         * Modules/webaudio/ConvolverNode.idl:
3136         * Modules/webaudio/DOMWindowWebAudio.idl: Removed.
3137         * Modules/webaudio/DelayNode.idl:
3138         * Modules/webaudio/DynamicsCompressorNode.idl:
3139         * Modules/webaudio/GainNode.idl:
3140         * Modules/webaudio/MediaElementAudioSourceNode.idl:
3141         * Modules/webaudio/MediaStreamAudioDestinationNode.idl:
3142         * Modules/webaudio/MediaStreamAudioSourceNode.idl:
3143         * Modules/webaudio/OfflineAudioContext.idl:
3144         * Modules/webaudio/OscillatorNode.idl:
3145         * Modules/webaudio/PannerNode.idl:
3146         * Modules/webaudio/ScriptProcessorNode.idl:
3147         * Modules/webaudio/WaveShaperNode.idl:
3148         * Modules/webaudio/WaveTable.idl:
3149         * Modules/webdatabase/DOMWindowWebDatabase.idl:
3150         * Modules/webdatabase/Database.idl:
3151         * Modules/webdatabase/DatabaseSync.idl:
3152         * Modules/webdatabase/SQLError.idl:
3153         * Modules/webdatabase/SQLResultSet.idl:
3154         * Modules/webdatabase/SQLResultSetRowList.idl:
3155         * Modules/webdatabase/SQLTransaction.idl:
3156         * Modules/webdatabase/SQLTransactionSync.idl:
3157         * Modules/websockets/DOMWindowWebSocket.idl: Removed.
3158         * Modules/websockets/WebSocket.idl:
3159         * PlatformBlackBerry.cmake:
3160         * UseJSC.cmake:
3161         * WebCore.xcodeproj/project.pbxproj:
3162         * bindings/scripts/IDLAttributes.txt:
3163         * bindings/scripts/IDLParser.pm:
3164         (parseTypedef):
3165         * bindings/scripts/preprocess-idls.pl:
3166         (GenerateConstructorAttribute):
3167         (getFileContents):
3168         (getPartialInterfaceNameFromIDL):
3169         (isCallbackInterfaceFromIDL):
3170         (trim):
3171         (getInterfaceExtendedAttributesFromIDL):
3172         * css/CSSFontFaceLoadEvent.idl:
3173         * css/CSSFontFaceRule.idl:
3174         * css/CSSSupportsRule.idl:
3175         * css/CSSUnknownRule.idl:
3176         * css/DOMWindowCSS.idl:
3177         * css/FontLoader.idl:
3178         * css/MediaQueryList.idl:
3179         * css/MediaQueryListListener.idl:
3180         * css/StyleMedia.idl:
3181         * dom/CustomElementConstructor.idl:
3182         * dom/DOMError.idl:
3183         * dom/DOMNamedFlowCollection.idl:
3184         * dom/DataTransferItem.idl:
3185         * dom/DataTransferItemList.idl:
3186         * dom/EventListener.idl:
3187         * dom/EventTarget.idl:
3188         * dom/NodeIterator.idl:
3189         * dom/ShadowRoot.idl:
3190         * dom/TreeWalker.idl:
3191         * dom/WebKitNamedFlow.idl:
3192         * fileapi/FileException.idl:
3193         * fileapi/FileReaderSync.idl:
3194         * html/HTMLAudioElement.idl:
3195         * html/HTMLDetailsElement.idl:
3196         * html/HTMLOptionElement.idl:
3197         * html/MediaError.idl:
3198         * html/MediaKeyError.idl:
3199         * html/MicroDataItemValue.idl:
3200         * html/RadioNodeList.idl:
3201         * html/ValidityState.idl:
3202         * html/canvas/CanvasRenderingContext.idl:
3203         * html/canvas/DOMPath.idl:
3204         * html/canvas/EXTDrawBuffers.idl:
3205         * html/canvas/EXTTextureFilterAnisotropic.idl:
3206         * html/canvas/OESElementIndexUint.idl:
3207         * html/canvas/OESStandardDerivatives.idl:
3208         * html/canvas/OESTextureFloat.idl:
3209         * html/canvas/OESTextureHalfFloat.idl:
3210         * html/canvas/OESVertexArrayObject.idl:
3211         * html/canvas/WebGLCompressedTextureATC.idl:
3212         * html/canvas/WebGLCompressedTexturePVRTC.idl:
3213         * html/canvas/WebGLCompressedTextureS3TC.idl:
3214         * html/canvas/WebGLContextAttributes.idl:
3215         * html/canvas/WebGLDebugRendererInfo.idl:
3216         * html/canvas/WebGLDebugShaders.idl:
3217         * html/canvas/WebGLDepthTexture.idl:
3218         * html/canvas/WebGLLoseContext.idl:
3219         * html/canvas/WebGLVertexArrayObjectOES.idl:
3220         * html/track/AudioTrack.idl:
3221         * html/track/AudioTrackList.idl:
3222         * html/track/TextTrackRegionList.idl:
3223         * html/track/VideoTrack.idl:
3224         * html/track/VideoTrackList.idl:
3225         * inspector/InjectedScriptHost.idl:
3226         * inspector/InspectorFrontendHost.idl:
3227         * inspector/JavaScriptCallFrame.idl:
3228         * inspector/ScriptProfile.idl:
3229         * inspector/ScriptProfileNode.idl:
3230         * loader/appcache/DOMApplicationCache.idl:
3231         * page/AbstractView.idl:
3232         * page/BarInfo.idl:
3233         * page/Console.idl:
3234         * page/Crypto.idl:
3235         * page/DOMSecurityPolicy.idl:
3236         * page/DOMWindow.idl:
3237         * page/History.idl:
3238         * page/Location.idl:
3239         * page/MemoryInfo.idl:
3240         * page/Navigator.idl:
3241         * page/PagePopupController.idl:
3242         * page/Performance.idl:
3243         * page/PerformanceEntry.idl:
3244         * page/PerformanceEntryList.idl:
3245         * page/PerformanceMark.idl:
3246         * page/PerformanceMeasure.idl:
3247         * page/PerformanceNavigation.idl:
3248         * page/PerformanceResourceTiming.idl:
3249         * page/PerformanceTiming.idl:
3250         * page/Screen.idl:
3251         * page/SpeechInputResult.idl:
3252         * page/SpeechInputResultList.idl:
3253         * page/WorkerNavigator.idl:
3254         * page/make_settings.pl:
3255         (generateInternalSettingsIdlFile):
3256         * svg/ElementTimeControl.idl:
3257         * svg/SVGAnimationElement.idl:
3258         * svg/SVGExternalResourcesRequired.idl:
3259         * svg/SVGFilterPrimitiveStandardAttributes.idl:
3260         * svg/SVGFitToViewBox.idl:
3261         * svg/SVGLangSpace.idl:
3262         * svg/SVGLocatable.idl:
3263         * svg/SVGStyledElement.idl:
3264         * svg/SVGTests.idl:
3265         * svg/SVGTransformable.idl:
3266         * svg/SVGURIReference.idl:
3267         * testing/InternalSettings.idl:
3268         * testing/Internals.idl:
3269         * testing/MallocStatistics.idl:
3270         * testing/TypeConversions.idl:
3271         * workers/AbstractWorker.idl:
3272         * workers/DedicatedWorkerContext.idl:
3273         * workers/SharedWorker.idl:
3274         * workers/SharedWorkerContext.idl:
3275         * workers/WorkerContext.idl:
3276         * workers/WorkerLocation.idl:
3277         * xml/XPathExpression.idl:
3278         * xml/XPathNSResolver.idl:
3279
3280 2013-05-09  ChangSeok Oh  <changseok.oh@collabora.com>
3281
3282         [GTK][AC] Buildfix after r149694
3283         https://bugs.webkit.org/show_bug.cgi?id=115797
3284
3285         Reviewed by Gustavo Noronha Silva.
3286
3287         Some interfaces, such as a return value and parameters of functions are changed.
3288
3289         No new tests since no functionality changed.
3290
3291         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
3292         (WebCore::animationHasStepsTimingFunction):
3293         (WebCore::GraphicsLayerClutter::timingFunctionForAnimationValue):
3294         (WebCore::GraphicsLayerClutter::setTransformAnimationKeyframes):
3295         (WebCore::GraphicsLayerClutter::setTransformAnimationEndpoints):
3296         (WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
3297         (WebCore::GraphicsLayerClutter::setAnimationEndpoints):
3298         (WebCore::GraphicsLayerClutter::setAnimationKeyframes):
3299         * platform/graphics/clutter/GraphicsLayerClutter.h:
3300         (GraphicsLayerClutter):
3301
3302 2013-05-08  Rob Buis  <rbuis@rim.com>
3303
3304         Fix some compiler warnings (miscellaneous)
3305         https://bugs.webkit.org/show_bug.cgi?id=80790
3306
3307         Reviewed by Brent Fulgham.
3308
3309         Get rid of the following warning for BlackBerry:
3310
3311         NavigatorContentUtils.cpp:60:78: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
3312
3313         by not compiling any of the code to add protocols to the protocol whitelist.
3314
3315         * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
3316         (WebCore::initProtocolHandlerWhitelist):
3317
3318 2013-05-08  peavo@outlook.com  <peavo@outlook.com>
3319
3320         [Windows] The function seekFile() is not implemented.
3321         https://bugs.webkit.org/show_bug.cgi?id=115246
3322
3323         Reviewed by Brent Fulgham.
3324
3325         Implemented seekFile() function for Windows.
3326
3327         * platform/win/FileSystemWin.cpp:
3328         (WebCore::seekFile):
3329
3330 2013-05-08  Seokju Kwon  <seokju.kwon@gmail.com>
3331
3332         Web Inspector: Fix a typo in Settings.js
3333         https://bugs.webkit.org/show_bug.cgi?id=115849
3334
3335         Reviewed by Joseph Pecoraro.
3336
3337         No new tests, no behavior change.
3338
3339         * inspector/front-end/Settings.js:
3340         (WebInspector.Settings):
3341
3342 2013-05-08  Ryosuke Niwa  <rniwa@webkit.org>
3343
3344         SecurityOrigin doesn’t need to forward declare or include Document
3345         https://bugs.webkit.org/show_bug.cgi?id=115847
3346
3347         Reviewed by Alexey Proskuryakov.
3348
3349         Merge https://chromium.googlesource.com/chromium/blink/+/fc7a88caa9c41f3471d8994a530643e5225f82fc.
3350
3351         Removed unused Document forward declaration+include from SecurityOrigin.
3352
3353         * page/SecurityOrigin.cpp:
3354         * page/SecurityOrigin.h:
3355
3356 2013-05-08  David Kilzer  <ddkilzer@apple.com>
3357
3358         BUILD FIX: Don't use adoptCF() with NSDictionary * object
3359
3360         Fixes the following build failure:
3361
3362             In file included from Source/WebCore/platform/network/mac/ResourceErrorMac.mm:27:
3363             In file included from Source/WebCore/platform/network/cf/ResourceError.h:31:
3364             /usr/local/include/wtf/RetainPtr.h:81:13: error: static_assert failed "Don't use adoptCF with Objective-C pointer types, use adoptNS."
3365                         static_assert(!std::is_convertible<T, id>::value, "Don't use adoptCF with Objective-C pointer types, use adoptNS.");
3366                         ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3367             /usr/local/include/wtf/RetainPtr.h:274:16: note: in instantiation of member function 'WTF::RetainPtr<NSDictionary *>::RetainPtr' requested here
3368                     return RetainPtr<T>(AdoptCF, o);
3369                            ^
3370             Source/WebCore/platform/network/mac/ResourceErrorMac.mm:214:44: note: in instantiation of function template specialization 'WTF::adoptCF<NSDictionary *>' requested here
3371                     RetainPtr<NSDictionary> userInfo = adoptCF((NSDictionary *) CFErrorCopyUserInfo(error));
3372                                                        ^
3373             1 error generated.
3374
3375         * platform/network/mac/ResourceErrorMac.mm:
3376         (WebCore::ResourceError::nsError): Switch from adoptCF() to
3377         adoptNS().  This is in USE(CFNETWORK) code, so it's not
3378         exercised on the Mac.
3379
3380 2013-05-08  Ryosuke Niwa  <rniwa@webkit.org>
3381
3382         Remove Editor::setSelectionOffsets
3383         https://bugs.webkit.org/show_bug.cgi?id=115831
3384
3385         Reviewed by Andreas Kling.
3386
3387         Removed the function added in r120985 for Chromium Android port.
3388
3389         * editing/Editor.cpp:
3390         * editing/Editor.h:
3391
3392 2013-05-07  Ryosuke Niwa  <rniwa@webkit.org>
3393
3394         Potential use-after-free of Frame
3395         https://bugs.webkit.org/show_bug.cgi?id=115774
3396
3397         Reviewed by Simon Fraser.
3398
3399         Merge https://chromium.googlesource.com/chromium/blink/+/c5b4a6db82e8280c7fc55ee3dc3a84c6b026e66e.
3400
3401         * page/Frame.cpp:
3402         (WebCore::Frame::setPrinting):
3403         (WebCore::Frame::setPageAndTextZoomFactors):
3404         (WebCore::Frame::deviceOrPageScaleFactorChanged):
3405
3406 2013-05-08  Roger Fong  <roger_fong@apple.com>
3407
3408         Unreviewed build fix, AppleWin port.
3409
3410         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
3411         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
3412         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
3413         (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
3414         (WebCore::MediaPlayerPrivateAVFoundation::seek):
3415         (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted):
3416         (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
3417         (WebCore):
3418         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
3419         (MediaPlayerPrivateAVFoundation):
3420
3421 2013-05-08  Xingnan Wang  <xingnan.wang@intel.com>
3422
3423         Heap-use-after-free in WebCore::AudioNodeOutput::pull
3424         https://bugs.webkit.org/show_bug.cgi?id=111362
3425
3426         Reviewed by Chris Rogers.
3427
3428         * Modules/webaudio/AudioBuffer.cpp:
3429         (WebCore::AudioBuffer::createFromAudioFileData):
3430         * Modules/webaudio/AudioNodeInput.cpp:
3431         (WebCore::AudioNodeInput::AudioNodeInput):
3432         (WebCore::AudioNodeInput::updateInternalBus):
3433         * Modules/webaudio/AudioNodeInput.h:
3434         (AudioNodeInput):
3435         * Modules/webaudio/AudioNodeOutput.cpp:
3436         (WebCore::AudioNodeOutput::AudioNodeOutput):
3437         (WebCore::AudioNodeOutput::updateInternalBus):
3438         (WebCore::AudioNodeOutput::pull):
3439         (WebCore::AudioNodeOutput::bus):
3440         * Modules/webaudio/AudioNodeOutput.h:
3441         (AudioNodeOutput):
3442         * Modules/webaudio/OfflineAudioDestinationNode.cpp:
3443         (WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
3444         * Modules/webaudio/OfflineAudioDestinationNode.h:
3445         (OfflineAudioDestinationNode):
3446         * platform/audio/AudioBus.cpp:
3447         (WebCore::AudioBus::createBufferFromRange):
3448         (WebCore::AudioBus::createBySampleRateConverting):
3449         (WebCore::AudioBus::createByMixingToMono):
3450         * platform/audio/AudioBus.h:
3451         (AudioBus):
3452         * platform/audio/AudioFileReader.h:
3453         (WebCore):
3454         * platform/audio/AudioResampler.cpp:
3455         (WebCore::AudioResampler::AudioResampler):
3456         (WebCore::AudioResampler::configureChannels):
3457         * platform/audio/AudioResampler.h:
3458         (AudioResampler):
3459         * platform/audio/HRTFElevation.cpp:
3460         (WebCore::getConcatenatedImpulseResponsesForSubject):
3461         (WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):