5b4d6ddf73ad69f1ddb97cdfa00ea4111b48b237
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-03-19  Ryosuke Niwa  <rniwa@webkit.org>
2
3         Unreviewed build fix after r146220. Add the missing ]'s.
4
5         * English.lproj/localizedStrings.js:
6
7 2013-03-19  Alpha Lam  <hclam@chromium.org>
8
9         GIFImageReader to count frames and decode in one pass
10         https://bugs.webkit.org/show_bug.cgi?id=111144
11
12         Reviewed by Stephen White.
13
14         OBJECTIVE
15
16         This change has the objective of improving performance reading GIF
17         files. This implementation can parse the entire GIF file in one pass
18         and saves information about each frame, such that decoding in a later
19         pass does not need to parse the file again.
20
21         This change fixes the performance problem of decoding GIF files when
22         they are received very slowly. Existing implementation creates a new
23         GIFImageReader for counting frames for every time it is notified that
24         new data has been received, this has O(n^2) behavior when data is
25         received very slowly.
26
27         ALGORITHM
28
29         This implementation divides the decoding process into two separate
30         steps: parse and LZW decoding.
31
32         In the parse step, the state machine is similar to the existing
33         implementation. However this algorithm does not perform any decoding
34         while scanning through the file. Intead it creates a new data structure
35         for caching all frame information and the corresponding LZW blocks.
36
37         If a full decode is requested then LZW decoding is performed. This
38         implementation looks through all frame information saved and decodes
39         each frame sequentially until the target frame is reached.
40
41         Because of the separation of parse and decode, each frame can be
42         decoded separately. This paves the way to support seeking in GIF files.
43
44         TESTING
45
46         Added a new unit test to cover progressively decoding a GIF image.
47         There are already GIF unit tests for functional testing.
48         Exhaustive testing was done locally with a corpus of 60k images.
49         I mixed the corpus with some generated bad data and truncated files.
50         The results was bit-identical when compared to the previous
51         implementation.
52
53         These was also no crashing when decoding the entire corpus.
54
55         * platform/image-decoders/gif/GIFImageDecoder.cpp:
56         (WebCore::GIFImageDecoder::GIFImageDecoder):
57         (WebCore::GIFImageDecoder::setData):
58         (WebCore::GIFImageDecoder::frameCount):
59         (WebCore::GIFImageDecoder::repetitionCount):
60         (WebCore::GIFImageDecoder::decode):
61         * platform/image-decoders/gif/GIFImageDecoder.h:
62         (GIFImageDecoder):
63         * platform/image-decoders/gif/GIFImageReader.cpp:
64         (GIFLZWContext::outputRow):
65         (GIFLZWContext::doLZW):
66         (GIFFrameContext::decode):
67         (GIFImageReader::decode):
68         (GIFImageReader::parse):
69         (GIFImageReader::addFrameIfNecessary):
70         (GIFLZWContext::prepareToDecode):
71         * platform/image-decoders/gif/GIFImageReader.h:
72         There is a lot of reshuffling in GIFLZWContext and GIFFrameContext.
73         These changes has the goal of having GIFLZWContext be a pure decoding
74         state machine. GIFFrameContext is mostly a read-only container for
75         frame information. With all these changes we can decode each
76         GIFFrameContext independently.
77
78         The ownership pattern is:
79         GIFImageReader owns GIFFrameContext owns GIFLZWContext.
80
81         (GIFLZWContext::GIFLZWContext):
82         (GIFLZWContext):
83         (GIFLZWContext::hasRemainingRows):
84         GIFLZWContext is moved to the top of file.
85         (GIFLZWBlock):
86         (GIFLZWBlock::GIFLZWBlock):
87         New data structure to save block position and size.
88         (GIFFrameContext):
89         (GIFFrameContext::GIFFrameContext):
90         (GIFFrameContext::~GIFFrameContext):
91         (GIFFrameContext::addLzwBlock):
92         (GIFFrameContext::isComplete):
93         (GIFFrameContext::isHeaderDefined):
94         (GIFFrameContext::isDataSizeDefined):
95         (GIFFrameContext::setComplete):
96         (GIFFrameContext::setHeaderDefined):
97         (GIFFrameContext::setDataSize):
98         Now owns GIFLZWContext for decoding.
99         (GIFImageReader::GIFImageReader):
100         (GIFImageReader::~GIFImageReader):
101         (GIFImageReader::imagesCount):
102         (GIFImageReader::frameContext):
103         (GIFImageReader):
104         (GIFImageReader::parseFailed):
105         (GIFImageReader::isFirstFrame):
106         Owns a list of GIFFrameContxt.
107
108 2013-03-19  Brent Fulgham  <bfulgham@webkit.org>
109
110         [WinCairo] Unreviewed build correction for WebCore library.
111
112         * WebCore.vcxproj/WebCore.vcxproj: Exclude CG-specific frame source
113         from WinCairo build.
114         * WebCore.vcxproj/WebCoreGeneratedWinCairo.make: Pass correct
115         parameter to build-generated-files.sh for WinCairo build.
116
117 2013-03-19  Leon Scroggins  <scroggo@chromium.org>
118
119         Implement onRefEncodedData for lazy pixel refs.
120         This allows printToSkPicture to write the original
121         encoded data to the stream.
122         Add a method to ImageFrameGenerator to copy its
123         data, which is used by onRefEncodedData.
124         https://bugs.webkit.org/show_bug.cgi?id=110759
125
126         Reviewed by Stephen White.
127
128         No new tests. New functionality is for testing purposes
129         (creating SKP files).
130
131         * platform/graphics/chromium/ImageFrameGenerator.cpp:
132         (WebCore::ImageFrameGenerator::data):
133         (WebCore):
134         * platform/graphics/chromium/ImageFrameGenerator.h:
135         (ImageFrameGenerator):
136         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
137         (WebCore::LazyDecodingPixelRef::isClipped):
138         (WebCore):
139         (WebCore::LazyDecodingPixelRef::onRefEncodedData):
140         * platform/graphics/chromium/LazyDecodingPixelRef.h:
141         (LazyDecodingPixelRef):
142
143 2013-03-19  Philip Rogers  <pdr@google.com>
144
145         Separate SVG image size and container size
146         https://bugs.webkit.org/show_bug.cgi?id=112651
147
148         Reviewed by Stephen Chenney.
149
150         Previously, SVG images could retain their cached size between reloads due to a bug where an
151         old container size would be re-used if the image's new container size was not available yet.
152
153         This patch changes SVGImage::size() to return the intrinsic size of the image before a
154         container size has been set. SVGImageCache::imageSizeForRenderer will now return the
155         image's intrinsic size instead of a cached value if the container size cannot be looked up.
156         In javascript, querying [SVGImage].width will now return either the image's intrinsic size
157         or the size of 'imageForContainer'.
158
159         Test: svg/as-image/svg-container-size-after-reload.html
160
161         * svg/graphics/SVGImage.cpp:
162         (WebCore::SVGImage::setContainerSize):
163         (WebCore::SVGImage::containerSize):
164         (WebCore::SVGImage::draw):
165         (WebCore::SVGImage::dataChanged):
166         * svg/graphics/SVGImage.h:
167
168             The member variable 'm_intrinsicSize' has been added to track the image's intrinsic
169             size. This term can be found in: http://www.w3.org/TR/css3-images/#default-sizing
170
171         * svg/graphics/SVGImageCache.cpp:
172         (WebCore::SVGImageCache::imageSizeForRenderer):
173         (WebCore::SVGImageCache::imageForRenderer):
174
175             In both of these functions, image has been renamed to imageForContainer here to clarify
176             that the cached container size is being returned, not the image's intrinsic size.
177
178 2013-03-19  Joshua Bell  <jsbell@chromium.org>
179
180         IndexedDB: Use integer plumbing for deleteDatabase onVersionChange calls
181         https://bugs.webkit.org/show_bug.cgi?id=112715
182
183         Reviewed by Tony Chang.
184
185         When deleteDatabase on the back-end needs to send the front-end an
186         onVersionChange notification it does so using the string overload. That's
187         the only remaining use of that overload and we'd like to delete it. Switch
188         to using the integer overload, with an already defined special value.
189         This will unblock http://wkbug.com/112712 to delete the dead code.
190
191         No new tests - no functional change.
192
193         * Modules/indexeddb/IDBDatabase.cpp:
194         (WebCore::IDBDatabase::onVersionChange): Map NoIntVersion to null.
195         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
196         (WebCore::IDBDatabaseBackendImpl::deleteDatabase): Call integer overload.
197
198 2013-03-19  Terry Anderson  <tdanderson@chromium.org>
199
200         Hover effects from a GestureTapDown are dismissed by a GestureTap on the hover element
201         https://bugs.webkit.org/show_bug.cgi?id=103283
202
203         Reviewed by Antonio Gomes.
204
205         On a GestureTap event over an element that was made visible as a hover effect, the
206         GestureTap should be applied to that element and the hover effects should not be dismissed. 
207         A GestureTap or a mouse move to a location outside of the element should still dismiss the
208         hover effects.
209
210         Tests: fast/events/touch/gesture/gesture-tap-hover-clear.html
211                fast/events/touch/gesture/gesture-tap-on-hover-element.html
212
213         * page/EventHandler.cpp:
214         (WebCore::EventHandler::handleGestureEvent):
215
216 2013-03-19  Alexei Filippov  <alph@chromium.org>
217
218         Web Inspector: Fix menu items capitalization.
219         https://bugs.webkit.org/show_bug.cgi?id=112553
220
221         The context menu items should be correctly capitalized.
222
223         Reviewed by Pavel Feldman.
224
225         * English.lproj/localizedStrings.js:
226         * inspector/front-end/BreakpointsSidebarPane.js:
227         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._emptyElementContextMenu):
228         (WebInspector.XHRBreakpointsSidebarPane.prototype._emptyElementContextMenu):
229         (WebInspector.XHRBreakpointsSidebarPane.prototype._contextMenu):
230         * inspector/front-end/CallStackSidebarPane.js:
231         (WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
232         * inspector/front-end/ConsoleView.js:
233         (WebInspector.ConsoleView.prototype._handleContextMenuEvent.get var):
234         (WebInspector.ConsoleView.prototype._handleContextMenuEvent.set get contextMenu):
235         * inspector/front-end/DOMBreakpointsSidebarPane.js:
236         (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
237         * inspector/front-end/DataGrid.js:
238         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
239         * inspector/front-end/ElementsPanel.js:
240         (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
241         (WebInspector.ElementsPanel.prototype.appendApplicableItems):
242         * inspector/front-end/ElementsTreeOutline.js:
243         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
244         (WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
245         * inspector/front-end/HeapSnapshotDataGrids.js:
246         (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu):
247         * inspector/front-end/NetworkPanel.js:
248         (WebInspector.NetworkPanel.prototype.appendApplicableItems):
249         * inspector/front-end/ProfilesPanel.js:
250         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
251         (WebInspector.ProfilesPanel.prototype.appendApplicableItems):
252         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
253         * inspector/front-end/ResourcesPanel.js:
254         (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
255         * inspector/front-end/ScriptsPanel.js:
256         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeMappingItems):
257         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
258         (WebInspector.ScriptsPanel.prototype._appendFunctionItems):
259         * inspector/front-end/TabbedPane.js:
260         (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
261         * inspector/front-end/TimelinePanel.js:
262         (WebInspector.TimelinePanel.prototype._contextMenu):
263         * inspector/front-end/WatchExpressionsSidebarPane.js:
264         (WebInspector.WatchExpressionsSection.prototype._emptyElementContextMenu):
265         (WebInspector.WatchExpressionTreeElement.prototype.populateContextMenu):
266
267 2013-03-19  Alec Flett  <alecflett@chromium.org>
268
269         Inspector: IndexedDB clear button and menu item
270         https://bugs.webkit.org/show_bug.cgi?id=112066
271
272         Reviewed by Vsevolod Vlasov.
273
274         Adds a button that can clear the contents of an objectStore from
275         the IDBDataView, and a context menu from the ResourcesPanel that
276         can do the same.
277
278         This also disables the Refresh button from the IDBDataView, so there
279         is at least some visual feedback that the refresh button is working.
280
281         Tests: http/tests/inspector/indexeddb/database-data.html
282
283         * inspector/Inspector.json: New API clearObjectStore.
284         * inspector/InspectorIndexedDBAgent.cpp: Implementation of clearObjectStore
285         (WebCore):
286         (ClearObjectStoreListener): Calls the original closure after the objectStore is cleared.
287         (ClearObjectStore): Initiates the clear operation after the DB opens.
288         * inspector/front-end/IndexedDBModel.js: Exposes clearObjectStore to the Model API.
289         (WebInspector.IDBDataView): Add clear button and enable/disable clear and refresh buttons appropriately.
290         * inspector/front-end/ResourcesPanel.js: Add a menu item and refresh the displayed data after the clear.
291         * inspector/front-end/inspector.css: Add a style to show the right button for clear.
292
293 2013-03-19  Nate Chapin  <japhet@chromium.org>
294
295         Merge MainResourceLoader::responseReceived into DocumentLoader
296         https://bugs.webkit.org/show_bug.cgi?id=112593
297
298         Part of the ongoing effort to merge MainResourceLoader entirely
299         into DocumentLoader.
300
301         Reviewed by Adam Barth.
302
303         No new tests, refactor only.
304
305         * loader/DocumentLoader.cpp:
306         (WebCore::DocumentLoader::DocumentLoader):
307         (WebCore::DocumentLoader::stopLoading):
308         (WebCore::DocumentLoader::finishedLoading): The only thing left in
309             MainResourceLoader related to this function was a RefPtr which indirectly
310             protected DocumentLoader. Move the RefPtr here and protect DocumentLoader directly.
311         (WebCore::DocumentLoader::responseReceived): Moved from MainResourceLoader.
312         (WebCore::DocumentLoader::callContinueAfterContentPolicy): Moved from MainResourceLoader.
313         (WebCore::DocumentLoader::continueAfterContentPolicy): Moved from MainResourceLoader.
314         (WebCore::DocumentLoader::interruptedForPolicyChangeError): Moved from MainResourceLoader.
315         (WebCore::DocumentLoader::stopLoadingForPolicyChange): Moved from MainResourceLoader.
316         (WebCore::DocumentLoader::receivedData):
317         (WebCore::DocumentLoader::cancelMainResourceLoad):
318         * loader/DocumentLoader.h:
319         (WebCore::DocumentLoader::isLoadingMultipartContent): Store multipart bit here.
320         * loader/MainResourceLoader.cpp:
321         (WebCore::MainResourceLoader::MainResourceLoader):
322         (WebCore::MainResourceLoader::cancel):
323         (WebCore::MainResourceLoader::responseReceived):
324         (WebCore::MainResourceLoader::notifyFinished):
325         * loader/MainResourceLoader.h:
326
327 2013-03-19  Tony Chang  <tony@chromium.org>
328
329         Cleanup defaultUnifiedTextCheckerEnabled type
330         https://bugs.webkit.org/show_bug.cgi?id=112640
331
332         Reviewed by Adam Barth.
333
334         It's a bool setting. I accidentally declared the default value as a double
335         in r139202.
336
337         No new tests, this is a refactor/code cleanup.
338
339         * page/Settings.cpp:
340         (WebCore): Switch from double to a bool.
341
342 2013-03-19  Alexei Filippov  <alph@chromium.org>
343
344         Web Inspector: Increase DataGrid default font size.
345         https://bugs.webkit.org/show_bug.cgi?id=112692
346
347         Reviewed by Pavel Feldman.
348
349         The default font of 10px is too small. Most instances of DataGrid set
350         font to 11px.
351
352         * inspector/front-end/dataGrid.css:
353         (.data-grid table):
354
355 2013-03-19  Max Vujovic  <mvujovic@adobe.com>
356
357         Refactor conditions for setCompositingLayersNeedRebuild in RenderLayer::styleChanged
358         https://bugs.webkit.org/show_bug.cgi?id=112606
359
360         Reviewed by Simon Fraser.
361
362         To fix bug 109098 [1], we will need to add more conditions for calling
363         RenderLayerCompositor::setCompositingLayersNeedRebuild in RenderLayer::styleChanged.
364         Adding more non-trivial conditions will make this block of code even harder to follow.
365         This patch refactors the current conditions into functions:
366             needsCompositingLayersRebuiltForClip
367             needsCompositingLayersRebuiltForOverflow
368
369         In bug 109098 [1], I'm planning to add:
370             needsCompositingLayersRebuiltForFilters
371
372         [1]: https://bugs.webkit.org/show_bug.cgi?id=109098
373
374         No new tests. Just refactoring.
375
376         * rendering/RenderLayer.cpp:
377         (WebCore):
378         (WebCore::RenderLayer::needsCompositingLayersRebuiltForClip):
379         (WebCore::RenderLayer::needsCompositingLayersRebuiltForOverflow):
380             This is a method and not a file static function because it needs to look at the
381             RenderLayer's stackingContainer(), which is a private method.
382         (WebCore::RenderLayer::styleChanged):
383         * rendering/RenderLayer.h:
384         (RenderLayer):
385
386 2013-03-19  Allan Sandfeld Jensen  <allan.jensen@digia.com>
387
388         [Qt] Support kerning in fast path font rendering
389         https://bugs.webkit.org/show_bug.cgi?id=106013
390
391         Reviewed by Jocelyn Turcotte.
392
393         To support kerning in the fast font path we need to implement SimpleFontData::applyTransforms.
394
395         This patch changes the types used by the fast path GlyphBuffer to match those used by Qt,
396         and implements SimpleFontData::applyTransforms using QRawFont::advancesForGlyphIndexes.
397
398         * platform/graphics/GlyphBuffer.h:
399         (GlyphBufferAdvance):
400         (WebCore::GlyphBufferAdvance::GlyphBufferAdvance):
401         (WebCore::GlyphBufferAdvance::setWidth):
402         (WebCore::GlyphBufferAdvance::width):
403         (WebCore::GlyphBufferAdvance::height):
404         (WebCore::GlyphBuffer::add):
405         * platform/graphics/SimpleFontData.h:
406         (WebCore::SimpleFontData::applyTransforms):
407         * platform/graphics/WidthIterator.h:
408         (WebCore::WidthIterator::supportsTypesettingFeatures):
409
410 2013-03-19  Sergey Ryazanov  <serya@chromium.org>
411
412         Web Inspector: split Console into two entities, a web-facing bound object and page console.
413         https://bugs.webkit.org/show_bug.cgi?id=111578
414
415         Reviewed by Vsevolod Vlasov.
416
417         Otherwise, a lot of logging in WebCore needs to go through the DOMWindow which is unnecessary.
418
419         * CMakeLists.txt:
420         * GNUmakefile.list.am:
421         * Target.pri:
422         * WebCore.exp.in:
423         * WebCore.gypi:
424         * WebCore.order:
425         * WebCore.vcproj/WebCore.vcproj:
426         * WebCore.vcxproj/WebCore.vcxproj:
427         * WebCore.vcxproj/WebCore.vcxproj.filters:
428         * WebCore.xcodeproj/project.pbxproj:
429         * bindings/js/JSCustomXPathNSResolver.cpp:
430         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
431         * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
432         (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
433         * dom/Document.cpp:
434         (WebCore::Document::addConsoleMessage):
435         (WebCore::Document::addMessage):
436         * inspector/PageDebuggerAgent.cpp:
437         (WebCore::PageDebuggerAgent::muteConsole):
438         (WebCore::PageDebuggerAgent::unmuteConsole):
439         * inspector/PageRuntimeAgent.cpp:
440         (WebCore::PageRuntimeAgent::muteConsole):
441         (WebCore::PageRuntimeAgent::unmuteConsole):
442         * page/Console.cpp:
443         (WebCore::internalAddMessage):
444         * page/Console.h:
445         (WebCore):
446         (Console):
447         * page/DOMWindow.cpp:
448         (WebCore::DOMWindow::pageConsole):
449         (WebCore):
450         (WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
451         (WebCore::DOMWindow::printErrorMessage):
452         * page/DOMWindow.h:
453         (WebCore):
454         (DOMWindow):
455         * page/Page.cpp:
456         (WebCore::Page::Page):
457         * page/Page.h:
458         (WebCore):
459         (WebCore::Page::console):
460         (Page):
461         * page/PageConsole.cpp: Added.
462         (WebCore::PageConsole::PageConsole):
463         (WebCore):
464         (WebCore::PageConsole::~PageConsole):
465         (WebCore::PageConsole::printSourceURLAndLine):
466         (WebCore::PageConsole::printMessageSourceAndLevelPrefix):
467         (WebCore::PageConsole::addMessage):
468         (WebCore::PageConsole::mute):
469         (WebCore::PageConsole::unmute):
470         (WebCore::PageConsole::shouldPrintExceptions):
471         (WebCore::PageConsole::setShouldPrintExceptions):
472         * page/PageConsole.h: Copied from Source/WebCore/page/Console.h.
473         (WebCore):
474         (PageConsole):
475         (WebCore::PageConsole::create):
476         (WebCore::PageConsole::page):
477         * xml/XSLStyleSheetLibxslt.cpp:
478         (WebCore::XSLStyleSheet::parseString):
479         * xml/XSLTProcessorLibxslt.cpp:
480         (WebCore::XSLTProcessor::parseErrorFunc):
481         (WebCore::docLoaderFunc):
482
483 2013-03-19  Ilya Tikhonovsky  <loislo@chromium.org>
484
485         Web Inspector: move OverviewGrid and OverviewWindow into separate file.
486         https://bugs.webkit.org/show_bug.cgi?id=112693
487
488         Reviewed by Yury Semikhatsky.
489
490         It is the third patch for the meta bug "Web Inspector: meta bug: extract OverviewGrid from TimelineOverviewPane"
491         It just moves the OverviewGrid and the related classes into its own file.
492
493         * WebCore.gypi:
494         * WebCore.vcproj/WebCore.vcproj:
495         * WebCore.vcxproj/WebCore.vcxproj:
496         * WebCore.vcxproj/WebCore.vcxproj.filters:
497         * inspector/compile-front-end.py:
498         * inspector/front-end/OverviewGrid.js: Added.
499         (WebInspector.OverviewGrid):
500         (WebInspector.OverviewGrid.prototype.itemsGraphsElement):
501         (WebInspector.OverviewGrid.prototype.insertBeforeItemsGraphsElement):
502         (WebInspector.OverviewGrid.prototype.clientWidth):
503         (WebInspector.OverviewGrid.prototype.showItemsGraphsElement):
504         (WebInspector.OverviewGrid.prototype.hideItemsGraphsElement):
505         (WebInspector.OverviewGrid.prototype.updateDividers):
506         (WebInspector.OverviewGrid.prototype.addEventDividers):
507         (WebInspector.OverviewGrid.prototype.removeEventDividers):
508         (WebInspector.OverviewGrid.prototype.setWindowPosition):
509         (WebInspector.OverviewGrid.prototype.reset):
510         (WebInspector.OverviewGrid.prototype.windowLeft):
511         (WebInspector.OverviewGrid.prototype.windowRight):
512         (WebInspector.OverviewGrid.prototype.setWindow):
513         (WebInspector.OverviewGrid.prototype.addEventListener):
514         (WebInspector.OverviewGrid.Window):
515         (WebInspector.OverviewGrid.Window.prototype.reset):
516         (WebInspector.OverviewGrid.Window.prototype._leftResizeElementDragging):
517         (WebInspector.OverviewGrid.Window.prototype._rightResizeElementDragging):
518         (WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
519         (WebInspector.OverviewGrid.Window.prototype._windowSelectorDragging):
520         (WebInspector.OverviewGrid.Window.prototype._endWindowSelectorDragging):
521         (WebInspector.OverviewGrid.Window.prototype._startWindowDragging):
522         (WebInspector.OverviewGrid.Window.prototype._windowDragging):
523         (WebInspector.OverviewGrid.Window.prototype._endWindowDragging):
524         (WebInspector.OverviewGrid.Window.prototype._moveWindow):
525         (WebInspector.OverviewGrid.Window.prototype._resizeWindowLeft):
526         (WebInspector.OverviewGrid.Window.prototype._resizeWindowRight):
527         (WebInspector.OverviewGrid.Window.prototype._resizeWindowMaximum):
528         (WebInspector.OverviewGrid.Window.prototype._setWindow):
529         (WebInspector.OverviewGrid.Window.prototype._setWindowPosition):
530         (WebInspector.OverviewGrid.Window.prototype._onMouseWheel):
531         (WebInspector.OverviewGrid.Window.prototype._zoom):
532         (WebInspector.OverviewGrid.WindowSelector):
533         (WebInspector.OverviewGrid.WindowSelector.prototype._createSelectorElement):
534         (WebInspector.OverviewGrid.WindowSelector.prototype._close):
535         (WebInspector.OverviewGrid.WindowSelector.prototype._updatePosition):
536         * inspector/front-end/TimelineOverviewPane.js:
537         * inspector/front-end/WebKit.qrc:
538         * inspector/front-end/inspector.html:
539
540 2013-03-19  Allan Sandfeld Jensen  <allan.jensen@digia.com>
541
542         [Qt] Monospace font does not render in proper sizes
543         https://bugs.webkit.org/show_bug.cgi?id=93263
544
545         Reviewed by Jocelyn Turcotte.
546
547         Do not force fonts to use integer metrics. This was necessary when the fast font path
548         only worked in integer but is now hindering accurate metrics. This is also required to
549         make kerning in the fast-path look acceptable
550
551         Only enabled for Qt 5.1+ to avoid changing all the baselines for 5.0.
552
553         * platform/graphics/qt/FontPlatformDataQt.cpp:
554         (WebCore::FontPlatformData::FontPlatformData):
555
556 2013-03-19  John J. Barton  <johnjbarton@chromium.org>
557
558         Web Inspector: Add iframe option to inspectedWindow.eval() extension API
559         https://bugs.webkit.org/show_bug.cgi?id=106811
560
561         Reviewed by Vsevolod Vlasov.
562
563         Add a new case to the options processing in inspectedWindow.eval(), look
564         for option.frameURL <string> and/or option.scriptExecutionContext: <string>, find the
565         matching JS context in the runtimeModel, and call evaluate() in that
566         context; or error if the context is not found. 
567
568         Test: http/tests/inspector/extensions-iframe-eval.html
569
570         * inspector/front-end/ExtensionServer.js:
571         (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
572         (WebInspector.ExtensionServer.prototype.):
573         (WebInspector.ExtensionServer.prototype.evaluate):
574         * inspector/front-end/ResourceTreeModel.js:
575         (WebInspector.ResourceTreeModel.prototype.frames):
576            Added read access to _frames
577        * inspector/front-end/RuntimeModel.js:
578         (WebInspector.RuntimeModel.prototype.contextListByFrame):
579            Added access to a frame's contextList, removed contextByFrameAndSecurityOrigin()
580         (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
581            Added access to frame's mainWorldContext, rather than implicit first context.
582            Now we can go from ResourceTreeModel -> frame -> contextList then either
583            mainWorldContext() or contextBySecurityOrigin() to access contexts.
584
585         * inspector/front-end/ExtensionServer.js:
586         (WebInspector.ExtensionServer.prototype.):
587         (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
588         (WebInspector.ExtensionServer.prototype.evaluate):
589         * inspector/front-end/ResourceTreeModel.js:
590         * inspector/front-end/RuntimeModel.js:
591         (WebInspector.RuntimeModel.prototype.contextListByFrame):
592         (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
593
594         * inspector/front-end/ExtensionServer.js:
595         (WebInspector.ExtensionServer.prototype._onReload):
596         (WebInspector.ExtensionServer.prototype.resolveURLToFrame.hasMatchingURL):
597         (WebInspector.ExtensionServer.prototype.):
598         (WebInspector.ExtensionServer.prototype.evaluate):
599         * inspector/front-end/ResourceTreeModel.js:
600         (WebInspector.ResourceTreeModel.prototype.frames):
601         * inspector/front-end/RuntimeModel.js:
602         (WebInspector.RuntimeModel.prototype.contextListByFrame):
603         (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
604
605         * inspector/front-end/ExtensionServer.js:
606         (WebInspector.ExtensionServer.prototype.resolveURLToFrame.hasMatchingURL):
607         (WebInspector.ExtensionServer.prototype.):
608         (WebInspector.ExtensionServer.prototype.evaluate):
609         * inspector/front-end/ResourceTreeModel.js:
610         (WebInspector.ResourceTreeModel.prototype.frames):
611         * inspector/front-end/RuntimeModel.js:
612         (WebInspector.RuntimeModel.prototype.contextListByFrame):
613         (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
614
615 2013-03-19  Ilya Tikhonovsky  <loislo@chromium.org>
616
617         Web Inspector: rename TimelineOverviewWindow to OverviewGrid.Window and fix names for constants.
618         https://bugs.webkit.org/show_bug.cgi?id=112685
619
620         Reviewed by Yury Semikhatsky.
621
622         It is the second patch which extracts OverviewGrid from TimelineOverviewPane.
623         It renames internal components of OverviewGrid.
624         WebInspector.TimelineOverviewWindow -> WebInspector.OverviewGrid.Window
625         WebInspector.TimelineOverviewWindow.WindowSelector -> WebInspector.OverviewGrid.WindowSelector
626
627         and moves constants from WebInspector.TimelineOverviewWindow namespace to WebInspector.OverviewGrid namespace
628
629         * inspector/front-end/TimelineOverviewPane.js:
630         (WebInspector.TimelineOverviewPane):
631         (WebInspector.OverviewGrid):
632         (WebInspector.OverviewGrid.Window):
633         (WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
634         (WebInspector.OverviewGrid.Window.prototype._endWindowSelectorDragging):
635         (WebInspector.OverviewGrid.Window.prototype._startWindowDragging):
636         (WebInspector.OverviewGrid.Window.prototype._windowDragging):
637         (WebInspector.OverviewGrid.Window.prototype._moveWindow):
638         (WebInspector.OverviewGrid.Window.prototype._resizeWindowRight):
639         (WebInspector.OverviewGrid.Window.prototype._setWindowPosition):
640         (WebInspector.OverviewGrid.Window.prototype._onMouseWheel):
641         (WebInspector.OverviewGrid.Window.prototype._zoom):
642         (WebInspector.OverviewGrid.WindowSelector):
643         (WebInspector.OverviewGrid.WindowSelector.prototype._createSelectorElement):
644
645 2013-03-19  Ilya Tikhonovsky  <loislo@chromium.org>
646
647         Web Inspector: move _timelineGrid && _timelineOverviewWindow from TimelineOverviewPane into a new class OverviewGrid.
648         https://bugs.webkit.org/show_bug.cgi?id=112584
649
650         Reviewed by Pavel Feldman.
651
652         It is the first path in the set.
653         The end goal is to extract OverviewGrid with window selectors
654         into a separate class in separate file and reuse it in CPU FlameChart.
655
656         * inspector/front-end/TimelineOverviewPane.js:
657         (WebInspector.TimelineOverviewPane):
658         (WebInspector.OverviewGrid):
659         (WebInspector.OverviewGrid.prototype.get grid):
660         (WebInspector.OverviewGrid.prototype.get clientWidth):
661         (WebInspector.OverviewGrid.prototype.showItemsGraphsElement):
662         (WebInspector.OverviewGrid.prototype.hideItemsGraphsElement):
663         (WebInspector.OverviewGrid.prototype.updateDividers):
664         (WebInspector.OverviewGrid.prototype.addEventDividers):
665         (WebInspector.OverviewGrid.prototype.removeEventDividers):
666         (WebInspector.OverviewGrid.prototype.setWindowPosition):
667         (WebInspector.OverviewGrid.prototype.reset):
668         (WebInspector.OverviewGrid.prototype.get windowLeft):
669         (WebInspector.OverviewGrid.prototype.get windowRight):
670         (WebInspector.OverviewGrid.prototype.setWindow):
671         (WebInspector.OverviewGrid.prototype.addEventListener):
672         (WebInspector.TimelineOverviewPane.prototype.setMode):
673         (WebInspector.TimelineOverviewPane.prototype._setFrameMode):
674         (WebInspector.TimelineOverviewPane.prototype._update):
675         (WebInspector.TimelineOverviewPane.prototype.sidebarResized):
676         (WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
677         (WebInspector.TimelineOverviewPane.prototype._reset):
678         (WebInspector.TimelineOverviewPane.prototype.windowLeft):
679         (WebInspector.TimelineOverviewPane.prototype.windowRight):
680         (WebInspector.TimelineOverviewPane.prototype._updateWindow):
681
682 2013-03-19  Vladislav Kaznacheev  <kaznacheev@chromium.org>
683
684         Web Inspector: Add Inspector.targetCrashed event to Inspector protocol.
685         https://bugs.webkit.org/show_bug.cgi?id=112669
686
687         Added Inspector.targetCrashed event and handled it on the front end.
688         Showing a modal dialog similar to the one displayed when the remote
689         debugging target is disconnected.
690
691         Reviewed by Pavel Feldman.
692
693         * English.lproj/localizedStrings.js:
694         * inspector/Inspector.json:
695         * inspector/front-end/HelpScreen.js:
696         (WebInspector.HelpScreenUntilReload):
697         (WebInspector.HelpScreenUntilReload.prototype.willHide):
698         * inspector/front-end/inspector.js:
699         (WebInspector.targetCrashed):
700
701 2013-03-19  Mario Sanchez Prada  <mario.prada@samsung.com>
702
703         [GTK] Wrong guard USE(GLX) in RedirectedXCompositeWindow
704         https://bugs.webkit.org/show_bug.cgi?id=112600
705
706         Reviewed by Martin Robinson.
707
708         Replace USE(GLX) condition with USE(OPENGL) && PLATFORM(X11).
709
710         * platform/gtk/RedirectedXCompositeWindow.cpp: Updated guard.
711         * platform/gtk/RedirectedXCompositeWindow.h: Ditto.
712
713 2013-03-19  Mihnea Ovidenie  <mihnea@adobe.com>
714
715         [CSSRegions] Crash reflowing content in variable width regions
716         https://bugs.webkit.org/show_bug.cgi?id=112515
717
718         Reviewed by David Hyatt.
719
720         When removing floats during relayout of a line in a paginated context,
721         we have to make sure that the floats collection actually has elements before
722         accessing the last float from the collection.
723         This situation arises when a block had floats in a previous layout and after
724         they were removed, m_floatingObjects is not destroyed, only emptied.
725
726         Test: fast/regions/crash-reflow-inline-content-in-variable-width-regions.html
727
728         * rendering/RenderBlock.cpp:
729         (WebCore::RenderBlock::removeFloatingObjectsBelow):
730         * rendering/RenderBlockLineLayout.cpp:
731         (WebCore::RenderBlock::layoutRunsAndFloats):
732         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
733
734 2013-03-18  Vsevolod Vlasov  <vsevik@chromium.org>
735
736         Web Inspector: Debugger scripts should visually differ from network/filesystem files in workspace.
737         https://bugs.webkit.org/show_bug.cgi?id=112552
738
739         Reviewed by Pavel Feldman.
740
741         Extracted ContentProviderBasedProjectDelegate from SimpleProjectDelegate.
742         Implemented DebuggerProjectDelegate for DefaultScriptMapping.
743         Debugger scripts are now added to workspace with a name starting with [VM] and ending with scriptId.
744         Added yellow background to debugger scripts editor.
745
746         * WebCore.gypi:
747         * WebCore.vcproj/WebCore.vcproj:
748         * inspector/compile-front-end.py:
749         * inspector/front-end/ContentProviderBasedProjectDelegate.js: Added.
750         * inspector/front-end/DefaultScriptMapping.js:
751         (WebInspector.DefaultScriptMapping):
752         (WebInspector.DefaultScriptMapping.prototype.addScript):
753         (WebInspector.DefaultScriptMapping.prototype._debuggerReset):
754         (WebInspector.DebuggerProjectDelegate):
755         (WebInspector.DebuggerProjectDelegate.prototype.id):
756         (WebInspector.DebuggerProjectDelegate.prototype.type):
757         (WebInspector.DebuggerProjectDelegate.prototype.displayName):
758         (WebInspector.DebuggerProjectDelegate.prototype.addScript):
759         * inspector/front-end/JavaScriptSourceFrame.js:
760         (WebInspector.JavaScriptSourceFrame):
761         * inspector/front-end/ParsedURL.js:
762         (WebInspector.ParsedURL.splitURL):
763         * inspector/front-end/SimpleWorkspaceProvider.js:
764         (WebInspector.SimpleProjectDelegate):
765         (WebInspector.SimpleProjectDelegate.prototype.addFile):
766         (WebInspector.SimpleProjectDelegate.prototype._ensureUniquePath):
767         (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
768         * inspector/front-end/WebKit.qrc:
769         * inspector/front-end/Workspace.js:
770         (WebInspector.Workspace.prototype.uiSourceCodeForURL):
771         * inspector/front-end/inspector.html:
772         * inspector/front-end/javaScriptSourceFrame.css: Added.
773         (.source-frame-debugger-script):
774
775 2013-03-19  Andrey Lushnikov  <lushnikov@chromium.org>
776
777         Web Inspector: [CodeMirror] add smart braces functionality
778         https://bugs.webkit.org/show_bug.cgi?id=112138
779
780         Reviewed by Vsevolod Vlasov.
781
782         No new tests.
783
784         Add closebrackets add-on to codemirror which implements smart braces
785         functionality and guard this setting with the "Text Editor smart
786         braces" experiment.
787
788         * WebCore.gypi:
789         * WebCore.vcproj/WebCore.vcproj:
790         * WebCore.vcxproj/WebCore.vcxproj:
791         * WebCore.vcxproj/WebCore.vcxproj.filters:
792         * inspector/front-end/CodeMirrorTextEditor.js:
793         * inspector/front-end/WebKit.qrc:
794         * inspector/front-end/cm/closebrackets.js: Added.
795         (.):
796
797 2013-03-19  Andrey Lushnikov  <lushnikov@chromium.org>
798
799         Web Inspector: Avoid forcing text editor resize
800         https://bugs.webkit.org/show_bug.cgi?id=112581
801
802         Reviewed by Vsevolod Vlasov.
803
804         No new tests.
805
806         Avoid unnecessary text editor resizing by removing line decoration
807         via removeDecoration method instead of DOM remove operation.
808
809         * inspector/front-end/SourceFrame.js:
810         (WebInspector.SourceFrame.prototype.clearMessages):
811         (WebInspector.SourceFrame.prototype._setTextEditorDecorations):
812
813 2013-03-19  Andrey Lushnikov  <lushnikov@chromium.org>
814
815         Web Inspector: [CodeMirror] fix cursor movements
816         https://bugs.webkit.org/show_bug.cgi?id=112555
817
818         Reviewed by Vsevolod Vlasov.
819
820         No new tests.
821
822         - Update CodeMirror to ToT to include its improved cursor movement
823         - Add a small keymap to force cursor stop on both line endings and line
824         starts.
825
826         * inspector/front-end/CodeMirrorTextEditor.js:
827         (WebInspector.CodeMirrorTextEditor):
828         (WebInspector.CodeMirrorTextEditor.FixWordMovement):
829         (WebInspector.CodeMirrorTextEditor.FixWordMovement.moveRight):
830         * inspector/front-end/cm/codemirror.css:
831         (.CodeMirror div.CodeMirror-cursor):
832         (.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor):
833         (.CodeMirror):
834         * inspector/front-end/cm/codemirror.js:
835         (window.CodeMirror):
836         (window.CodeMirror.):
837
838 2013-03-19  Adam Barth  <abarth@webkit.org>
839
840         [chromium] Regression(143825): select elements don't open when there is a marquee on the page
841         https://bugs.webkit.org/show_bug.cgi?id=111278
842
843         Unreviewed.
844
845         This patch is a rollout of http://trac.webkit.org/changeset/143825. The
846         original patch caused a regression in the Chromium port.
847
848         * rendering/RenderLayer.cpp:
849         (WebCore::RenderLayer::scrollTo):
850
851 2013-03-19  Alexander Pavlov  <apavlov@chromium.org>
852
853         Web Inspector: [Styles] Matching @host rule children are not displayed
854         https://bugs.webkit.org/show_bug.cgi?id=112664
855
856         Reviewed by Vsevolod Vlasov.
857
858         Process host rules' contents akin to media rules' when handling the CSS model and source data.
859
860         Test: platform/chromium/inspector/styles/host-rules.html
861
862         * inspector/InspectorStyleSheet.cpp:
863         (flattenSourceData):
864         (WebCore::asCSSRuleList):
865
866 2013-03-18  Alexander Pavlov  <apavlov@chromium.org>
867
868         Web Inspector: [Styles] The "inherit" property value should be suggested for all properties
869         https://bugs.webkit.org/show_bug.cgi?id=112662
870
871         Reviewed by Vsevolod Vlasov.
872
873         * inspector/front-end/CSSMetadata.js:
874         (WebInspector.CSSMetadata.keywordsForProperty):
875
876 2013-03-18  David Kilzer  <ddkilzer@apple.com>
877
878         BUILD FIX (r146088): ResourceRequest::cfURLRequest() is defined twice on iOS
879         <http://webkit.org/b/112387>
880
881         * platform/network/mac/ResourceRequestMac.mm:
882         (WebCore::ResourceRequest::cfURLRequest): Move method into
883         !USE(CFNETWORK) section since it's also defined in
884         cf/ResourceRequestCFNet.cpp on iOS.
885
886 2013-03-18  Alpha Lam  <hclam@chromium.org>
887
888         [chromium] More tracing in deferred image decoding
889         https://bugs.webkit.org/show_bug.cgi?id=112648
890
891         Reviewed by James Robinson.
892
893         Adding more trace events for a couple things in deferred image decoding path:
894         - Time span for each lock pixels of SkPixelRef.
895         - Time spent on decoding, scaling and pruning. Also the stack trace for these events.
896         - Memory usage and number of cached entries.
897         - Number of decode & scale operations done per image.
898
899         No test as this just add tracing information and no behavior change.
900
901         * platform/graphics/chromium/ImageDecodingStore.cpp:
902         (WebCore::ImageDecodingStore::prune):
903         (WebCore::ImageDecodingStore::insertCacheInternal):
904         (WebCore::ImageDecodingStore::removeFromCacheInternal):
905         * platform/graphics/chromium/ImageFrameGenerator.cpp:
906         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
907         (WebCore::ImageFrameGenerator::decodeAndScale):
908         (WebCore::ImageFrameGenerator::tryToScale):
909         (WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
910         (WebCore::ImageFrameGenerator::tryToDecodeAndScale):
911         (WebCore::ImageFrameGenerator::decode):
912         * platform/graphics/chromium/ImageFrameGenerator.h:
913         (ImageFrameGenerator):
914         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
915         (WebCore::LazyDecodingPixelRef::onLockPixels):
916         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
917         (WebCore::LazyDecodingPixelRef::PrepareToDecode):
918
919 2013-03-18  Kentaro Hara  <haraken@chromium.org>
920
921         Unreviewed. Rebaselined run-bindings-tests after r146161.
922
923         * bindings/scripts/test/JS/JSTestObj.cpp:
924         (WebCore::setJSTestObjEnumAttr):
925         (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
926         * bindings/scripts/test/V8/V8TestObj.cpp:
927         (WebCore::ConfigureV8TestObjTemplate):
928
929 2013-03-18  Robert Flack  <flackr@chromium.org>
930
931         [chromium] Small pixel differences in scroll bars after r145844
932         https://bugs.webkit.org/show_bug.cgi?id=112384
933
934         Reviewed by Kenneth Russell.
935
936         Tests: fast/forms/basic-textareas-quirks.html
937                fast/forms/basic-textareas.html
938                fast/overflow/overflow-x-y.html
939                fast/parser/open-comment-in-textarea.html
940                fast/replaced/width100percent-textarea.html
941
942         * platform/chromium/ScrollbarThemeChromium.cpp:
943         (WebCore::ScrollbarThemeChromium::trackRect):
944
945 2013-03-18  Brent Fulgham  <bfulgham@webkit.org>
946
947         [WinCairo] Unreviewed build correction.
948
949         The "ImageDecoder.h" file was improperly tagged as a source file to
950         build, causing a build failure on initial build attempts. Subsequent
951         or incremental builds would work.
952
953         * WebCore.vcxproj/WebCore.vcxproj: Exclude CG-specific font files.
954         Switch 'ImageDecoder.h' to proper source file type.
955         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
956
957 2013-03-18  James Robinson  <jamesr@chromium.org>
958
959         [chromium] Remove unused type WebTransformationMatrix
960         https://bugs.webkit.org/show_bug.cgi?id=112634
961
962         Reviewed by Adam Barth.
963
964         * WebCore.gypi:
965         * platform/chromium/support/WebTransformationMatrix.cpp: Removed.
966
967 2013-03-18  Arnaud Renevier  <a.renevier@sisa.samsung.com>
968
969         Add IDL 'enum' support to CodeGeneratorJS.pm
970         https://bugs.webkit.org/show_bug.cgi?id=112475
971
972         Reviewed by Kentaro Hara.
973
974         This adds support for enumerations in JS, adding validation checking
975         to setters.
976         It also does validation checking to methods, and a new method
977         methodWithEnumArg in TestObj.idl
978
979         Test: bindings/scripts/test/TestObj.idl
980
981         * bindings/scripts/CodeGeneratorJS.pm:
982         (GenerateImplementation):
983         (GenerateParametersCheck):
984         (NativeToJSValue):
985         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
986         (WebDOMTestObj::methodWithEnumArg):
987         * bindings/scripts/test/CPP/WebDOMTestObj.h:
988         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
989         (webkit_dom_test_obj_method_with_enum_arg):
990         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
991         * bindings/scripts/test/JS/JSTestObj.cpp:
992         (WebCore):
993         (WebCore::jsTestObjEnumAttr):
994         (WebCore::setJSTestObjEnumAttr):
995         (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
996         * bindings/scripts/test/JS/JSTestObj.h:
997         (WebCore):
998         * bindings/scripts/test/ObjC/DOMTestObj.h:
999         * bindings/scripts/test/ObjC/DOMTestObj.mm:
1000         (-[DOMTestObj methodWithEnumArg:]):
1001         * bindings/scripts/test/TestObj.idl:
1002         * bindings/scripts/test/V8/V8TestObj.cpp:
1003         (WebCore::TestObjV8Internal::methodWithEnumArgMethod):
1004         (TestObjV8Internal):
1005         (WebCore::TestObjV8Internal::methodWithEnumArgMethodCallback):
1006         (WebCore::ConfigureV8TestObjTemplate):
1007
1008 2013-03-18  Sam Weinig  <sam@webkit.org>
1009
1010         Need a bundle SPI to generate a snapshot of a specific DOM node (like [DOMNode renderedImage])
1011         <rdar://problem/13148631>
1012         https://bugs.webkit.org/show_bug.cgi?id=110034
1013
1014         Reviewed by Tim Horton.
1015
1016         * WebCore.exp.in:
1017         Add some necessary exports.
1018
1019 2013-03-18  Brent Fulgham  <bfulgham@webkit.org>
1020
1021         [WinCairo] Build WebCore under VS2010
1022         https://bugs.webkit.org/show_bug.cgi?id=112637
1023
1024         Reviewed by Tim Horton.
1025
1026         * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj: Extend project
1027         with WinCairo-specific build targets.
1028         * WebCore.vcxproj/QTMovieWin/QTMovieWinCairoDebug.props: Added.
1029         * WebCore.vcxproj/QTMovieWin/QTMovieWinCairoRelease.props: Added.
1030         * WebCore.vcxproj/WebCore.vcxproj: Update to build WinCairo version
1031         of code.
1032         * WebCore.vcxproj/WebCoreCURL.props: Added.
1033         * WebCore.vcxproj/WebCoreCairo.props: Added.
1034         * WebCore.vcxproj/WebCoreDebugWinCairo.props: Added.
1035         * WebCore.vcxproj/WebCoreGenerated.vcxproj:
1036         * WebCore.vcxproj/WebCoreGeneratedDebugWinCairo.props: Added.
1037         * WebCore.vcxproj/WebCoreGeneratedReleaseWinCairo.props: Added.
1038         * WebCore.vcxproj/WebCoreGeneratedWinCairo.make: Added.
1039         * WebCore.vcxproj/WebCoreGeneratedWinCairoCommon.props: Added.
1040         * WebCore.vcxproj/WebCoreReleaseWinCairo.props: Added.
1041         * WebCore.vcxproj/WebCoreTestSupport.vcxproj:
1042         * WebCorePrefix.h: Update header to not include Apple-specific
1043         headers during WinCairo build.
1044
1045 2013-03-18  Joshua Bell <jsbell@chromium.org>
1046
1047         IDB Cursor continue moves one item at a time
1048         https://bugs.webkit.org/show_bug.cgi?id=109972
1049
1050         Reviewed by Tony Chang.
1051
1052         IndexedDB: Use seek on the underlying levelDB iterator to implement the continue operation
1053         on a cursor, instead of advancing one item at a time. On a simple test in Chrome - open a
1054         key cursor on an index w/ 100 items, then do continue(50), rinse and repeat - this cuts the
1055         time 50% (850c/s to 1700c/s). (Original patch c/o Pankaj Kakkar <pankaj@google.com>)
1056
1057         Covered by existing storage/indexeddb cursor tests; just a performance optimization.
1058
1059         * Modules/indexeddb/IDBBackingStore.cpp:
1060         (WebCore::IDBBackingStore::Cursor::continueFunction): Special case first iteration w/ key
1061         to use leveldb seek (forward cursors only, since reverse seek isn't exposed).
1062         (WebCore::ObjectStoreKeyCursorImpl::encodeKey): Helper for encoding key to seek to.
1063         (WebCore::ObjectStoreCursorImpl::encodeKey): Ditto.
1064         (WebCore::IndexKeyCursorImpl::encodeKey): Ditto.
1065         (WebCore::IndexCursorImpl::encodeKey): Ditto.
1066         (WebCore::objectStoreCursorOptions): Store IDs for encodeKey() to use.
1067         (WebCore::indexCursorOptions): Ditto.
1068         * Modules/indexeddb/IDBBackingStore.h:
1069         (CursorOptions): Storage for IDs.
1070         (Cursor): Add encodeKey() to interface.
1071
1072 2013-03-18  Alexey Proskuryakov  <ap@apple.com>
1073
1074         MessagePortChannel::EventData should not be exposed
1075         https://bugs.webkit.org/show_bug.cgi?id=112635
1076
1077         Reviewed by Geoff Garen.
1078
1079         MessagePortChannel::EventData is an implementation detail that's only needed to
1080         store events in MessageQueue. Other existing code already gets away without it,
1081         just passing message and ports separately.
1082
1083         * dom/MessagePort.cpp:
1084         (WebCore::MessagePort::postMessage):
1085         (WebCore::MessagePort::dispatchMessages):
1086         * dom/MessagePortChannel.cpp:
1087         * dom/MessagePortChannel.h:
1088         * dom/default/PlatformMessagePortChannel.cpp:
1089         (WebCore::PlatformMessagePortChannel::EventData::create):
1090         (WebCore::PlatformMessagePortChannel::EventData::EventData):
1091         (WebCore::MessagePortChannel::postMessageToRemote):
1092         (WebCore::MessagePortChannel::tryGetMessageFromRemote):
1093         * dom/default/PlatformMessagePortChannel.h:
1094         (WebCore::PlatformMessagePortChannel::EventData::message):
1095         (WebCore::PlatformMessagePortChannel::EventData::channels):
1096         (PlatformMessagePortChannel):
1097         (WebCore::PlatformMessagePortChannel::MessagePortQueue::tryGetMessage):
1098         (WebCore::PlatformMessagePortChannel::MessagePortQueue::appendAndCheckEmpty):
1099         * dom/default/chromium/PlatformMessagePortChannelChromium.cpp:
1100         (WebCore::MessagePortChannel::postMessageToRemote):
1101         (WebCore::MessagePortChannel::tryGetMessageFromRemote):
1102         (WebCore::PlatformMessagePortChannel::postMessageToRemote):
1103         (WebCore::PlatformMessagePortChannel::tryGetMessageFromRemote):
1104         * dom/default/chromium/PlatformMessagePortChannelChromium.h:
1105
1106 2013-03-18  Tom Sepez  <tsepez@chromium.org>
1107
1108         [v8] Suppress binding integrity check of HTMLContentElement.
1109         https://bugs.webkit.org/show_bug.cgi?id=112613
1110
1111         Reviewed by Adam Barth.
1112
1113         Patch is correct so long as fast/dom/shadow/content-element-user-agent-shadow.html
1114         continues to pass.
1115
1116         * html/shadow/HTMLContentElement.idl:
1117
1118 2013-03-18  Dominic Mazzoni  <dmazzoni@google.com>
1119
1120         Support Windows HTMLSelectElement keystrokes on Chromium win
1121         https://bugs.webkit.org/show_bug.cgi?id=112460
1122
1123         Reviewed by Kent Tamura.
1124
1125         Compile in the windows-specific variant of
1126         HTMLSelectElement::platformHandleKeydownEvent
1127         on Chromium win, in addition to PLATFORM(WIN).
1128
1129         * WebCore.gypi:
1130             Add html/HTMLSelectElementWin.cpp.
1131         * html/HTMLSelectElement.cpp:
1132             Don't compile generic platformHandleKeydownEvent on
1133             Chromium win.
1134         * html/HTMLSelectElementWin.cpp:
1135             Only compile platformHandleKeydownEvent on Windows.
1136             Fix compile error in assertion.
1137         (WebCore):
1138
1139 2013-03-18  Mike West  <mkwst@chromium.org>
1140
1141         CSP 1.1: Schemeless source expressions match HTTPS resources on HTTP sites.
1142         https://bugs.webkit.org/show_bug.cgi?id=112573
1143
1144         Reviewed by Adam Barth.
1145
1146         Currently, the directive 'script-src example.com' would match only
1147         scripts served from 'http://example.com' when served on an HTTP site,
1148         and only scripts served from 'https://example.com' when served on an
1149         HTTPS site. This patch changes the matching behavior for ports that
1150         have enabled CSP_NEXT in order to encourage use of HTTPS resources by
1151         allow schemeless source expressions to match HTTPS origins when on
1152         HTTP sites.
1153
1154         Thread: http://lists.w3.org/Archives/Public/public-webappsec/2013Mar/0013.html
1155         Spec change: https://dvcs.w3.org/hg/content-security-policy/rev/a7dc8820946e
1156
1157         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-10.html
1158
1159         * page/ContentSecurityPolicy.cpp:
1160         (WebCore::CSPSource::CSPSource):
1161             Pass the current policy into CSPSource so that we can check the
1162             protected resource's scheme inside schemeMatches, rather than
1163             overwriting the source expression's scheme before creating the
1164             CSPSource.
1165         (WebCore::CSPSource::schemeMatches):
1166             If CSP_NEXT is enabled, ensure that HTTPS resources match the
1167             HTTP scheme when loaded on HTTP pages with schemaless source
1168             expressions.
1169         (WebCore::CSPSource::portMatches):
1170             Check the port against the URL's scheme: if m_scheme isn't
1171             empty, this will match it. If m_scheme is empty, we can't
1172             do a strict match against it, nor can we do a strict match
1173             against the protected resource's port. Checking the URL's
1174             port against the default port for its scheme solves this
1175             problem elegantly.
1176         (WebCore::CSPSourceList::parse):
1177         (WebCore::CSPSourceList::addSourceSelf):
1178             Pass in the policy when creating a CSPSource object.
1179
1180 2013-03-15  Jer Noble  <jer.noble@apple.com>
1181
1182         Text track cues do not update sizes when entering or exiting full screen.
1183         https://bugs.webkit.org/show_bug.cgi?id=112472
1184
1185         Reviewed by Eric Carlson.
1186
1187         The style properties of the TextCueBoxes were not being updated after the size of the video bounds changed.
1188         Because getDisplayTree() will not do it when the cue itself has not changed, explicitly call videoSizeDidChange()
1189         from updateSizes().
1190
1191         * html/shadow/MediaControlElements.cpp:
1192         (WebCore::MediaControlTextTrackContainerElement::updateSizes): call videoSizeDidChange() on every active cue.
1193         * html/track/TextTrackCue.h:
1194         (WebCore::TextTrackCue::hasDisplayTree): returns whether or not the cue has created a display tree without side effects.
1195         (WebCore::TextTrackCue::videoSizeDidChange): Overridable empty method.
1196         * html/track/TextTrackCueGeneric.cpp:
1197         (WebCore::TextTrackCueGeneric::videoSizeDidChange): Update the CSS height attribute of the cue box using the new video size.
1198         * html/track/TextTrackCueGeneric.h:
1199
1200 2013-03-18  Mike West  <mkwst@chromium.org>
1201
1202         CSP 1.1: Add 'effective-directive' to violation reports.
1203         https://bugs.webkit.org/show_bug.cgi?id=112568
1204
1205         Reviewed by Adam Barth.
1206
1207         https://dvcs.w3.org/hg/content-security-policy/rev/bc2bb0e5072a
1208         introduced an 'effective-directive' field on CSP violation reports,
1209         which allows developers to distinguish between resource types when
1210         'default-src' is the violated directive.
1211
1212         This patch implements the new field behind the CSP_NEXT flag.
1213
1214         Test: http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive.html
1215
1216         * page/ContentSecurityPolicy.cpp:
1217         (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
1218         (WebCore::CSPDirectiveList::reportViolation):
1219             These methods now accept an additional parameter to pipe the
1220             effective directive from the initial callsite down into
1221             ContentSecurityPolicy::reportViolation.
1222         (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
1223         (WebCore::CSPDirectiveList::checkNonceAndReportViolation):
1224         (WebCore::CSPDirectiveList::checkMediaTypeAndReportViolation):
1225         (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
1226         (WebCore::CSPDirectiveList::allowScriptFromSource):
1227         (WebCore::CSPDirectiveList::allowObjectFromSource):
1228         (WebCore::CSPDirectiveList::allowChildFrameFromSource):
1229         (WebCore::CSPDirectiveList::allowImageFromSource):
1230         (WebCore::CSPDirectiveList::allowStyleFromSource):
1231         (WebCore::CSPDirectiveList::allowFontFromSource):
1232         (WebCore::CSPDirectiveList::allowMediaFromSource):
1233         (WebCore::CSPDirectiveList::allowConnectToSource):
1234         (WebCore::CSPDirectiveList::allowFormAction):
1235             These methods now pass the effective directive name down
1236             into checkSourceAndReportViolation or reportViolation.
1237         (WebCore::ContentSecurityPolicy::reportViolation):
1238         * page/ContentSecurityPolicy.h:
1239             This method now accepts a new parameter that carries
1240             the effective directive name. If CSP_NEXT is enabled,
1241             the field is added to the violation report before it's
1242             sent out into the world.
1243
1244 2013-03-18  W. James MacLean  <wjmaclean@chromium.org>
1245
1246         [chromium] Remove NCCH code that relies on boundsContainsPageScale().
1247         https://bugs.webkit.org/show_bug.cgi?id=112465
1248
1249         Reviewed by James Robinson.
1250
1251         The boundsContainsPageScale() API is going away, remove code that
1252         depends on it. Uses existing tests as no behaviour change.
1253
1254         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1255         (WebCore::GraphicsLayerChromium::setAppliesPageScale):
1256         (WebCore::GraphicsLayerChromium::appliesPageScale):
1257
1258 2013-03-18  Alec Flett  <alecflett@chromium.org>
1259
1260         IndexedDB: Protect against key prefix overflows
1261         https://bugs.webkit.org/show_bug.cgi?id=111138
1262
1263         Reviewed by Tony Chang.
1264
1265         This reworks the boundary checking for all databaseId,
1266         objectStoreId, and indexId, including negative and
1267         zero-based ids. All entrypoints into IDBLevelDBCoding
1268         are protected with explicit checks and all internal
1269         uses of KeyPrefix are protected with ASSERTs in the
1270         various constructors.
1271
1272         Tests: WebKit unit tests IDBBackingStoreTest.cpp in WebKit/chromium
1273
1274         * Modules/indexeddb/IDBBackingStore.h: Make all public methods boolean-based for errors.
1275         * Modules/indexeddb/IDBLevelDBCoding.h: Add methods for checking databaseId, objectStoreId, and indexId.
1276
1277 2013-03-18  Roger Fong  <roger_fong@apple.com>
1278
1279         AppleWin VS2010 Debug configuration build fix.
1280
1281         * WebCore.vcxproj/WebCore.vcxproj:
1282
1283 2013-03-18  Alexey Proskuryakov  <ap@apple.com>
1284
1285         https://bugs.webkit.org/show_bug.cgi?id=112627
1286         MessagePort::disentangle() takes an ExceptionCode argument without any need
1287
1288         Reviewed by Geoffrey Garen.
1289
1290         MessagePort::disentangle() is called in two places. One has ASSERT_NO_EXCEPTION,
1291         and another fails to check the exception, but clearly cannot get one.
1292
1293         This function is also not exposed to bindings.
1294
1295         * dom/MessagePort.cpp:
1296         (WebCore::MessagePort::disentangle):
1297         (WebCore::MessagePort::disentanglePorts):
1298         * dom/MessagePort.h:
1299         * workers/SharedWorker.cpp:
1300         (WebCore::SharedWorker::create):
1301         Also removed some unhelpful comments.
1302
1303 2013-03-18  Xianzhu Wang  <wangxianzhu@chromium.org>
1304
1305         Variant of non-primary fell-back SVGFont causes crash.
1306         https://bugs.webkit.org/show_bug.cgi?id=112367
1307
1308         Reviewed by Stephen Chenney.
1309
1310         Don't go to PlatformFontData path for SimpleFontData::createScaledFontData()
1311         for SVG fonts.
1312
1313         Test: svg/css/font-face-variant-crash.html
1314
1315         * platform/graphics/SimpleFontData.cpp:
1316         (WebCore::SimpleFontData::~SimpleFontData):
1317         (WebCore::SimpleFontData::createScaledFontData): Don't go to PlatformFontData path for SVG fonts.
1318         (WebCore):
1319         * platform/graphics/SimpleFontData.h:
1320         (SimpleFontData): Added createScaledFontData and renamed the original createScaledFontData to platformCreateScaledFontData.
1321                           BTW, Removed unreferenced commonInit.
1322         * platform/graphics/blackberry/SimpleFontDataBlackBerry.cpp:
1323         (WebCore::SimpleFontData::platformCreateScaledFontData): Renamed from createScaledFontData.
1324         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
1325         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
1326         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
1327         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
1328         * platform/graphics/mac/SimpleFontDataMac.mm:
1329         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
1330         * platform/graphics/qt/SimpleFontDataQt.cpp:
1331         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
1332         * platform/graphics/skia/SimpleFontDataSkia.cpp:
1333         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
1334         * platform/graphics/win/SimpleFontDataWin.cpp:
1335         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
1336         * platform/graphics/wince/SimpleFontDataWinCE.cpp:
1337         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
1338         * platform/graphics/wx/SimpleFontDataWx.cpp:
1339         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
1340
1341 2013-03-18  Victor Carbune  <vcarbune@chromium.org>
1342
1343         Determine text direction for rendering a TextTrackCue
1344         https://bugs.webkit.org/show_bug.cgi?id=79749
1345
1346         Reviewed by Levi Weintraub.
1347
1348         The rendering rules for WebVTT cues are slightly different
1349         depending on the directionality determined from the characters
1350         of the cue text. This patch implements the preliminary step
1351         to be able to take directionality into account.
1352
1353         It iterates through the cue characters and setting the CSS
1354         directionality to the one of the first strong directional character.
1355
1356         Test: media/track/track-cue-rendering-rtl.html
1357
1358         * html/track/TextTrackCue.cpp:
1359         (WebCore::TextTrackCueBox::applyCSSProperties): Applies the determined
1360         direction.
1361         (WebCore::TextTrackCue::TextTrackCue): Sets the default value for the
1362         display direction.
1363         (WebCore::isCueParagraphSeparator): Tests for explicit unicode characters
1364         that are paragraph separators.
1365         (WebCore):
1366         (WebCore::TextTrackCue::determineTextDirection): Determined the direction
1367         by the first strong directional character found.
1368         (WebCore::TextTrackCue::calculateDisplayParameters): Updated.
1369         (WebCore::TextTrackCue::getCSSWritingDirection): Return the determined CSS
1370         writing direction.
1371         * html/track/TextTrackCue.h:
1372         (TextTrackCue):
1373
1374 2013-03-18  Hans Wennborg  <hans@chromium.org>
1375
1376         Fix GridTrackSize::operator==
1377         https://bugs.webkit.org/show_bug.cgi?id=112501
1378
1379         Reviewed by Eric Seidel.
1380
1381         There was a missing "other." in the function.
1382
1383         This was found by experimenting with a potential new Clang warning.
1384
1385         Test: fast/css-grid-layout/grid-dynamic-updates-relayout.html
1386
1387         * rendering/style/GridTrackSize.h:
1388         (WebCore::GridTrackSize::operator==):
1389
1390 2013-03-18  Alec Flett  <alecflett@chromium.org>
1391
1392         Inspector: [Chromium] http/tests/inspector/indexeddb/database-data.html ASSERT on Win7 following r133855
1393         https://bugs.webkit.org/show_bug.cgi?id=101618
1394
1395         Deactivate transactions created by the inspector, before
1396         they are reactivated by IndexedDB. This puts transactions
1397         in an identical state as when they are created by scripts.
1398
1399         Reviewed by Vsevolod Vlasov.
1400
1401         Test: http/tests/inspector/indexeddb/database-data.html
1402
1403         * inspector/InspectorIndexedDBAgent.cpp: Make transactions inactive upon leaving the inspector code.
1404
1405 2013-03-15  Jeffrey Pfau  <jpfau@apple.com>
1406
1407         Allow blocking of application cache in third-party contexts
1408         https://bugs.webkit.org/show_bug.cgi?id=112288
1409
1410         Reviewed by Adam Barth.
1411
1412         Return early if we can't access the application cache due to security
1413         restrictions.
1414
1415         Tests: http/tests/security/cross-origin-appcache-allowed.html
1416                http/tests/security/cross-origin-appcache.html
1417                http/tests/security/same-origin-appcache-blocked.html
1418
1419         * loader/appcache/ApplicationCacheGroup.cpp:
1420         (WebCore::ApplicationCacheGroup::selectCache):
1421         (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
1422         * page/SecurityOrigin.h:
1423         (WebCore::SecurityOrigin::canAccessApplicationCache):
1424
1425 2013-03-18  Vsevolod Vlasov  <vsevik@chromium.org>
1426
1427         Web Inspector: Script should know nothing about disabled source mappings.
1428         https://bugs.webkit.org/show_bug.cgi?id=112580
1429
1430         Reviewed by Pavel Feldman.
1431
1432         ResourceScriptMapping handles diverged uiSourceCodes internally now.
1433
1434         Tested in inspector/debugger/live-edit-breakpoints.html already.
1435
1436         * inspector/front-end/ResourceScriptMapping.js:
1437         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
1438         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
1439         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
1440         * inspector/front-end/Script.js:
1441         (WebInspector.Script.prototype.rawLocationToUILocation):
1442
1443 2013-03-18  Alexey Proskuryakov  <ap@apple.com>
1444
1445         Update MessagePort terminology to match HTML5
1446         https://bugs.webkit.org/show_bug.cgi?id=112611
1447
1448         Reviewed by Anders Carlsson.
1449
1450         Transferable objects are "neutered" when transfered. Cloning is a different operation.
1451
1452         * dom/MessagePort.cpp:
1453         (WebCore::MessagePort::disentanglePorts):
1454         * dom/MessagePort.h:
1455         (WebCore::MessagePort::isEntangled):
1456         (WebCore::MessagePort::isNeutered):
1457
1458 2013-03-18  Roger Fong  <roger_fong@apple.com>
1459
1460         AppleWin VS2010 build fix.
1461
1462         * WebCore.vcxproj/WebCore.vcxproj:
1463         * WebCore.vcxproj/WebCore.vcxproj.filters:
1464
1465 2013-03-18  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
1466
1467         [css3-text] Add rendering support for -webkit-text-underline-position
1468         https://bugs.webkit.org/show_bug.cgi?id=102795
1469
1470         Reviewed by Levi Weintraub.
1471
1472         This patch implements rendering support for values [ auto | alphabetic | under ]
1473         of CSS3 property text-underline-position. We don't fully match the specification
1474         as we don't support [ left | right ] and this is left for another implementation
1475         as the rendering will need to be added.
1476
1477         Tests: fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-all.html
1478                fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic.html
1479                fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto.html
1480                fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under-out-of-flow.html
1481                fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under.html
1482
1483         * rendering/InlineFlowBox.cpp:
1484         (WebCore::InlineFlowBox::computeMaxLogicalTop): Added method to compute maximal logical top among all chidren of
1485         this InlineTextBox.
1486         * rendering/InlineFlowBox.h:
1487         (InlineFlowBox):
1488         * rendering/InlineTextBox.cpp:
1489         (WebCore::computeUnderlineOffset): Added method to compute offset for text-underline-position property.
1490         (WebCore::InlineTextBox::paintDecoration): Paint decoration at position calculated using computeUnderlineOffset().
1491         * rendering/RootInlineBox.cpp:
1492         (WebCore::RootInlineBox::RootInlineBox):
1493         (WebCore::RootInlineBox::alignBoxesInBlockDirection): Call method to compute maximal logical top among all
1494         children of this RootInlineBox.
1495         * rendering/RootInlineBox.h:
1496         (RootInlineBox):
1497         (WebCore::RootInlineBox::maxLogicalTop): Added getter for m_maxLogicalTop class member.
1498         * rendering/style/RenderStyle.h: Added the usual getter / setter / initial methods for text-underline-position
1499         property
1500
1501 2013-03-18  Christian Biesinger  <cbiesinger@chromium.org>
1502
1503         Convert old flexbox uses in html.css to new flexbox (non-<select>)
1504         https://bugs.webkit.org/show_bug.cgi?id=110837
1505
1506         Reviewed by Ojan Vafai.
1507
1508         No new tests (No change in behaviour)
1509
1510         * css/html.css:
1511         (input::-webkit-clear-button):
1512         Missed this one in the original patch.
1513
1514 2013-03-18  Wei James  <james.wei@intel.com>
1515
1516         AudioBasicProcessorNode need to check for deferred updating of output channels
1517         https://bugs.webkit.org/show_bug.cgi?id=112544
1518
1519         There can in rare cases be a slight delay before the output
1520         bus is updated to the new number of channels because of tryLocks() in the
1521         context's updating system but the processor already updated to the new
1522         number of channels, so need to check the channel number before processing.
1523
1524         Reviewed by Chris Rogers.
1525
1526         * Modules/webaudio/AudioBasicProcessorNode.cpp:
1527         (WebCore::AudioBasicProcessorNode::process):
1528         * Modules/webaudio/WaveShaperProcessor.cpp:
1529         (WebCore::WaveShaperProcessor::process):
1530         * platform/audio/AudioDSPKernelProcessor.cpp:
1531         (WebCore::AudioDSPKernelProcessor::AudioDSPKernelProcessor):
1532         * platform/audio/AudioDSPKernelProcessor.h:
1533         (WebCore::AudioDSPKernelProcessor::numberOfChannels):
1534         (AudioDSPKernelProcessor):
1535         * platform/audio/AudioProcessor.h:
1536         (WebCore::AudioProcessor::AudioProcessor):
1537         (AudioProcessor):
1538
1539 2013-03-18  Julien Chaffraix  <jchaffraix@webkit.org>
1540
1541         [CSS Grid Layout] Fix StyleGridData::operator==
1542         https://bugs.webkit.org/show_bug.cgi?id=112574
1543
1544         Reviewed by Ojan Vafai.
1545
1546         Test: fast/css-grid-layout/grid-auto-flow-update.html
1547
1548         * rendering/style/StyleGridData.h:
1549         (WebCore::StyleGridData::operator==):
1550         Fixed a bad comparison that would make us ignore grid-auto-flow changes.
1551
1552 2013-03-18  Rafael Weinstein  <rafaelw@chromium.org>
1553
1554         [HTMLTemplateElement] parseError check in processTemplateEndTag should use hasTagName, not hasLocalName
1555         https://bugs.webkit.org/show_bug.cgi?id=112591
1556
1557         Reviewed by Adam Barth.
1558
1559         No tests needed, change is unobservable.
1560
1561         * html/parser/HTMLTreeBuilder.cpp:
1562         (WebCore::HTMLTreeBuilder::processTemplateEndTag):
1563
1564 2013-03-18  Brady Eidson  <beidson@apple.com>
1565
1566         NetworkProcess should send vm_copied, mmap'ed memory to WebProcesses when a 
1567         resource is already in the disk cache.
1568         <rdar://problem/13414153> and https://bugs.webkit.org/show_bug.cgi?id=112387
1569
1570         Reviewed by Geoff Garen.
1571
1572         No new tests (No change in behavior).
1573
1574         * WebCore.exp.in:
1575
1576         Add a CFURLRequestRef accessor even in the mac NSURL-based loader:
1577         * platform/network/cf/ResourceRequest.h:
1578         * platform/network/mac/ResourceRequestMac.mm:
1579         (WebCore::ResourceRequest::cfURLRequest):
1580
1581 2013-03-18  Dean Jackson  <dino@apple.com>
1582
1583         Only add wordspacing when kerning to actual word ends
1584         https://bugs.webkit.org/show_bug.cgi?id=112507
1585         <rdar://problem/12945869>
1586
1587         Reviewed by Enrica Casucci.
1588
1589         When measuring text, we currently include any word spacing in
1590         the result (it's removed later). When kerning is active, we
1591         were adding the word spacing to every wordMeasurement instance
1592         whether or not it is a separate word. For example, a nested
1593         <span> element would get a wordMeasurement, even though it
1594         should not always get word spacing.
1595
1596         Test: fast/text/word-space-with-kerning-3.html
1597
1598         * rendering/RenderBlockLineLayout.cpp:
1599         (WebCore::setLogicalWidthForTextRun): Test if the current character
1600         referenced by the wordMeasurement is a space character, and add word
1601         spacing only then.
1602
1603 2013-03-18  Tony Chang  <tony@chromium.org>
1604
1605         [chromium] Default background color of listboxes should be white
1606         https://bugs.webkit.org/show_bug.cgi?id=112480
1607
1608         Reviewed by Ojan Vafai.
1609
1610         I think it was an accident that list boxes got the grey background color as a
1611         side effect of trying to get the button styling. In the default GTK+ theme on
1612         Ubuntu, list boxes get a white background. Win and OS X also use white as the
1613         default color.
1614
1615         No new tests, covered by existing pixel tests.
1616
1617         * css/themeChromiumLinux.css:
1618         Narrow the CSS rule that overrides the background color specified in html.css.
1619         We only want to use the button color when a select is using button styling.
1620
1621 2013-03-18  Sheriff Bot  <webkit.review.bot@gmail.com>
1622
1623         Unreviewed, rolling out r146079.
1624         http://trac.webkit.org/changeset/146079
1625         https://bugs.webkit.org/show_bug.cgi?id=112594
1626
1627         many timeline tests failed. (Requested by loislo on #webkit).
1628
1629         * inspector/front-end/TimelineOverviewPane.js:
1630         (WebInspector.TimelineOverviewPane):
1631         (WebInspector.TimelineOverviewPane.prototype.setMode):
1632         (WebInspector.TimelineOverviewPane.prototype._setFrameMode):
1633         (WebInspector.TimelineOverviewPane.prototype._update):
1634         (WebInspector.TimelineOverviewPane.prototype.sidebarResized):
1635         (WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
1636         (WebInspector.TimelineOverviewPane.prototype._reset):
1637         (WebInspector.TimelineOverviewPane.prototype.windowLeft):
1638         (WebInspector.TimelineOverviewPane.prototype.windowRight):
1639         (WebInspector.TimelineOverviewPane.prototype._updateWindow):
1640
1641 2013-03-18  Peter Beverloo  <peter@chromium.org>
1642
1643         [Chromium] The <select> element on Android should also switch to new-flexbox
1644         https://bugs.webkit.org/show_bug.cgi?id=112559
1645
1646         Reviewed by Ojan Vafai.
1647
1648         Following r145959, also update themeChromiumAndroid.css to use the new
1649         flexible box CSS properties. Covered by existing tests.
1650
1651         * css/themeChromiumAndroid.css:
1652         (select[size][multiple]):
1653
1654 2013-03-18  Renata Hodovan  <reni@webkit.org>
1655
1656         Assertion faulire in SVGAnimatedPath.
1657         https://bugs.webkit.org/show_bug.cgi?id=106428
1658
1659         Reviewed by Allan Sandfeld Jensen.
1660
1661         The asserts are too restricted. The size must be greater or equal to 1.
1662
1663         Test: svg/animations/animated-path-via-use-debug-crash.svg
1664
1665         * svg/SVGAnimatedPath.cpp:
1666         (WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):
1667         (WebCore::SVGAnimatedPathAnimator::resetAnimValToBaseVal):
1668
1669 2013-03-18  Simon Fraser  <simon.fraser@apple.com>
1670
1671         [Mac] Some tests intermittently asserts in SharedBuffer::releasePurgeableBuffer()
1672         https://bugs.webkit.org/show_bug.cgi?id=105986
1673
1674         Reviewed by Brady Eidson.
1675         
1676         A ResourceBuffer's SharedBuffer can be vended out to other clients,
1677         for example Images, so there's no guarantee that when the
1678         ResourceBuffer only has one ref its SharedBuffer will also have just one.
1679         When this assumption was broken, SharedBuffer::releasePurgeableBuffer()
1680         would assert.
1681         
1682         Ideally SharedBuffer would be entirely encapsulated by ResourceBuffer to
1683         avoid this problem, but ResourceBuffer can't be used by code in platform/.
1684         
1685         Fix by having ResourceBuffer::createPurgeableBuffer() refuse to make
1686         a purgeable buffer if the sharedBuffer has more than one ref.
1687
1688         Tested by existing tests.
1689
1690         * loader/ResourceBuffer.cpp:
1691         (WebCore::ResourceBuffer::createPurgeableBuffer):
1692
1693 2013-03-18  Ilya Tikhonovsky  <loislo@chromium.org>
1694
1695         Web Inspector: move _timelineGrid && _timelineOverviewWindow from TimelineOverviewPane into a new class OverviewGrid.
1696         https://bugs.webkit.org/show_bug.cgi?id=112584
1697
1698         Reviewed by Pavel Feldman.
1699
1700         It is the first path in the set.
1701         The end goal is to extract OverviewGrid with window selectors
1702         into a separate class in separate file and reuse it in CPU FlameChart.
1703
1704         * inspector/front-end/TimelineOverviewPane.js:
1705         (WebInspector.TimelineOverviewPane):
1706         (WebInspector.OverviewGrid):
1707         (WebInspector.OverviewGrid.prototype.get grid):
1708         (WebInspector.OverviewGrid.prototype.get clientWidth):
1709         (WebInspector.OverviewGrid.prototype.showItemsGraphsElement):
1710         (WebInspector.OverviewGrid.prototype.hideItemsGraphsElement):
1711         (WebInspector.OverviewGrid.prototype.updateDividers):
1712         (WebInspector.OverviewGrid.prototype.addEventDividers):
1713         (WebInspector.OverviewGrid.prototype.removeEventDividers):
1714         (WebInspector.OverviewGrid.prototype.setWindowPosition):
1715         (WebInspector.OverviewGrid.prototype.reset):
1716         (WebInspector.OverviewGrid.prototype.get windowLeft):
1717         (WebInspector.OverviewGrid.prototype.get windowRight):
1718         (WebInspector.OverviewGrid.prototype.setWindow):
1719         (WebInspector.OverviewGrid.prototype.addEventListener):
1720         (WebInspector.TimelineOverviewPane.prototype.setMode):
1721         (WebInspector.TimelineOverviewPane.prototype._setFrameMode):
1722         (WebInspector.TimelineOverviewPane.prototype._update):
1723         (WebInspector.TimelineOverviewPane.prototype.sidebarResized):
1724         (WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
1725         (WebInspector.TimelineOverviewPane.prototype._reset):
1726         (WebInspector.TimelineOverviewPane.prototype.windowLeft):
1727         (WebInspector.TimelineOverviewPane.prototype.windowRight):
1728         (WebInspector.TimelineOverviewPane.prototype._updateWindow):
1729
1730 2013-03-18  Adam Barth  <abarth@webkit.org>
1731
1732         [V8] Crash when accessing onclick attribute of document from XMLHttpRequest
1733         https://bugs.webkit.org/show_bug.cgi?id=112585
1734
1735         Reviewed by Eric Seidel.
1736
1737         This ASSERT was bogus. The frame can be 0 for frameless documents, like
1738         those created by XMLHttpRequest. When there is no frame, we act as if
1739         JavaScript was disabled, which it is.
1740
1741         Test: fast/events/xhr-onclick-crash.html
1742
1743         * bindings/v8/V8LazyEventListener.cpp:
1744         (WebCore::V8LazyEventListener::prepareListenerObject):
1745
1746 2013-03-18  Hans Muller  <hmuller@adobe.com>
1747
1748         [CSS Exclusions] Specifying polygonal -webkit-shape-inside value can crash browser (debug mode)
1749         https://bugs.webkit.org/show_bug.cgi?id=112157
1750
1751         Reviewed by David Hyatt.
1752
1753         Corrected the code which maps exclusion segments to pairs of InlineIterators. We now handle the
1754         cases where the end of the line occurs within an exclusion segment or when it occurs before
1755         the last exclusion segment has been reached. This can occur when a non-convex polygonal shape-inside
1756         breaks a line up into two segments, but the shape-inside element's content only fills (or partially
1757         fills) the first exclusion shape segment.
1758
1759         Tests: fast/exclusions/shape-inside/shape-inside-partial-fill-001.html
1760                fast/exclusions/shape-inside/shape-inside-partial-fill-002.html
1761
1762         * rendering/RenderBlockLineLayout.cpp:
1763         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
1764
1765 2013-03-18  Emil A Eklund  <eae@chromium.org>
1766
1767         Change RenderTableCell to use pixelSnappedSize when painting
1768         https://bugs.webkit.org/show_bug.cgi?id=112562
1769
1770         Reviewed by Eric Seidel.
1771
1772         Change the paining code in RenderTableCell to use the pixel snapped size
1773         to ensure consistent rounding given that the location was rounded during
1774         layout.
1775
1776         It is currently constructing a paint rect by taking the rounded location
1777         and the precise size and then pixel snapping it. This causes the size to
1778         be rounded incorrectly. By instead using the pixel snapped size the
1779         rounding problem can be avoided.
1780
1781         Test: fast/sub-pixel/table-cell-background.html
1782
1783         * rendering/RenderTableCell.cpp:
1784         (WebCore::RenderTableCell::paintCollapsedBorders):
1785         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
1786         (WebCore::RenderTableCell::paintBoxDecorations):
1787         (WebCore::RenderTableCell::paintMask):
1788
1789 2013-03-18  Tao Bai  <michaelbai@chromium.org>
1790
1791         Need to use const String in HTMLVideoElement::posterImageURL
1792         https://bugs.webkit.org/show_bug.cgi?id=112317
1793
1794         Reviewed by Andreas Kling.
1795
1796         No behavioral changes.
1797
1798         This is the followup of https://bugs.webkit.org/show_bug.cgi?id=110263
1799         Need to use String instead of const AtomicString& which means we will do an extra hash lookup
1800
1801         * html/HTMLVideoElement.cpp:
1802         (WebCore::HTMLVideoElement::posterImageURL): Change to use String for url
1803
1804 2013-03-18  Eugene Klyuchnikov  <eustas@chromium.org>
1805
1806         Web Inspector: [Settings] Register "?" shortcut.
1807         https://bugs.webkit.org/show_bug.cgi?id=112545
1808
1809         Reviewed by Vsevolod Vlasov.
1810
1811         F1 and "?" (show shortcuts page) are not mentioned on shortcuts page.
1812
1813         * English.lproj/localizedStrings.js: Added string.
1814         * inspector/front-end/inspector.js: Registered F1 / "?" shortcut.
1815
1816 2013-03-18  Carlos Garcia Campos  <cgarcia@igalia.com>
1817
1818         Add USE(PLATFORM_STRATEGIES) ifdefs to StorageNamespace.cpp
1819         https://bugs.webkit.org/show_bug.cgi?id=112004
1820
1821         Reviewed by Rob Buis.
1822
1823         Check if platform strategies is enabled before using it, falling
1824         back to StorageNamespaceImpl if it isn't.
1825
1826         * storage/StorageNamespace.cpp:
1827         (WebCore::StorageNamespace::localStorageNamespace):
1828         (WebCore::StorageNamespace::sessionStorageNamespace):
1829
1830 2013-03-18  Vsevolod Vlasov  <vsevik@chromium.org>
1831
1832         Web Inspector: TabbedEditorContainer does not restore last shown file on reload sometimes.
1833         https://bugs.webkit.org/show_bug.cgi?id=112561
1834
1835         Reviewed by Alexander Pavlov.
1836
1837         * inspector/front-end/TabbedEditorContainer.js:
1838         (WebInspector.TabbedEditorContainer.prototype.addUISourceCode):
1839
1840 2013-03-18  Arvid Nilsson  <anilsson@rim.com>
1841
1842         [BlackBerry] Detach overlays from page when compositor is detached
1843         https://bugs.webkit.org/show_bug.cgi?id=112424
1844
1845         Reviewed by Rob Buis.
1846
1847         PR 309160
1848
1849         Expose a method to retrieve a compositing thread layer's client.
1850
1851         No change in behavior, no new tests.
1852
1853         * platform/graphics/blackberry/LayerCompositingThread.h:
1854         (WebCore::LayerCompositingThread::client):
1855
1856 2013-03-18  Eugene Klyuchnikov  <eustas@chromium.org>
1857
1858         Web Inspector: [Resources] Local Storage: duplicate keys are processed inappropriately.
1859         https://bugs.webkit.org/show_bug.cgi?id=112402
1860
1861         Reviewed by Alexander Pavlov.
1862
1863         When user creates new items or renames existing one some existing item
1864         may be overriden. If value is changed, then frontend will receive
1865         notification and update record appropriately.
1866
1867         If item value hasn't been changed, then no notification comes.
1868         But UI still expect / rely on this notification.
1869
1870         With this patch the "no notification" scenario is fixed:
1871         duplicate items are removed.
1872
1873         Another scenario is when update notification comes when we started
1874         editing value (after entering / renaming key). In this case
1875         selected node should not be changed to leave user in editing mode.
1876
1877         * inspector/front-end/DOMStorageItemsView.js:
1878         Added workarounds for "no notification" and "useless notification".
1879
1880 2013-03-18  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1881
1882         Clean up RenderFrameSet::nodeAtPoint
1883         https://bugs.webkit.org/show_bug.cgi?id=112450
1884
1885         Reviewed by Eric Seidel.
1886
1887         Remove handling of resizing framesets from RenderFrameSet::nodeAtPoint.
1888         The code has been incorrect since a mistake in r18333 (December 2006),
1889         but has been dead code since r17770 (November 2006) where the then new
1890         EventHandler started taking care of routing events to resizing FrameSets.
1891
1892         Since this was the only special feature of RenderFrameSet::nodeAtPoint,
1893         the method has been removed.
1894
1895         * rendering/RenderFrameSet.cpp:
1896         * rendering/RenderFrameSet.h:
1897         (RenderFrameSet):
1898
1899 2013-03-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
1900
1901         The 'formnovalidate' attribute doesn't work correctly on button elements with child elements
1902         https://bugs.webkit.org/show_bug.cgi?id=112541
1903
1904         Reviewed by Kent Tamura.
1905
1906         Fix a bug where formnovalidate attribute of <button> is not honored
1907         if the target of the click event is an element nested within the button.
1908
1909         Test: fast/forms/interactive-validation-formnovalidate-child.html
1910
1911         * html/HTMLFormElement.cpp:
1912         (WebCore::submitElementFromEvent): Looks for the nearest FormControlElement ancestor of the event target.
1913
1914 2013-03-18  Keishi Hattori  <keishi@webkit.org>
1915
1916         Add touch support to the calendar picker
1917         https://bugs.webkit.org/show_bug.cgi?id=112256
1918
1919         Reviewed by Kent Tamura.
1920
1921         This patch increases the hit target sizes for touch and adds touch event
1922         support to the scroll view, scroll bar and navigation button.
1923
1924         Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-touch-operations.html
1925                platform/chromium/fast/forms/calendar-picker/month-picker-touch-operations.html
1926                platform/chromium/fast/forms/calendar-picker/week-picker-touch-operations.html
1927
1928         * Resources/pagepopups/calendarPicker.js:
1929         (hasInaccuratePointingDevice):
1930         (Animator): Super class for TransitionAnimator and FlingGestureAnimator.
1931         (Animator.prototype.start):
1932         (Animator.prototype.stop):
1933         (Animator.prototype.onAnimationFrame):
1934         (TransitionAnimator): Same as the old Animator. Transition from one value to another.
1935         (TransitionAnimator.prototype.setFrom):
1936         (TransitionAnimator.prototype.start):
1937         (TransitionAnimator.prototype.stop):
1938         (TransitionAnimator.prototype.setTo):
1939         (TransitionAnimator.prototype.onAnimationFrame):
1940         (FlingGestureAnimator):Animates the fling scroll. 
1941         (FlingGestureAnimator.prototype._valueAtTime): Returns the value at the given time.
1942         (FlingGestureAnimator.prototype._velocityAtTime): Returns the value change velocity at the given time.
1943         (FlingGestureAnimator.prototype._timeAtVelocity): Returns the time when the value is changing at the given velocity.
1944         (FlingGestureAnimator.prototype.start):
1945         (FlingGestureAnimator.prototype.onAnimationFrame):
1946         (ScrollView): Added support for touch gesture scrolling.
1947         (ScrollView.prototype.onTouchStart):
1948         (ScrollView.prototype.onWindowTouchMove):
1949         (ScrollView.prototype.onWindowTouchEnd):
1950         (ScrollView.prototype.onFlingGestureAnimatorStep):
1951         (ScrollView.prototype.scrollTo):
1952         (ScrubbyScrollBar): Added support for touch.
1953         (ScrubbyScrollBar.prototype.onTouchStart):
1954         (ScrubbyScrollBar.prototype.onWindowTouchMove):
1955         (ScrubbyScrollBar.prototype.onWindowTouchEnd):
1956         (ScrubbyScrollBar.prototype._setThumbPositionFromEventPosition): Accept MouseEvent or Touch.
1957         (ScrubbyScrollBar.prototype.onMouseDown):
1958         (ScrubbyScrollBar.prototype.onWindowMouseMove):
1959         (ScrubbyScrollBar.prototype.onWindowMouseUp):
1960         (YearListCell):
1961         (YearListView):
1962         (YearListView.prototype.onTouchStart):
1963         (YearListView.prototype._animateRow):
1964         (CalendarNavigationButton): Add touch support for long press.
1965         (CalendarNavigationButton.prototype.onTouchStart):
1966         (CalendarNavigationButton.prototype.onWindowTouchEnd):
1967         (CalendarNavigationButton.prototype.onMouseDown):
1968         (CalendarNavigationButton.prototype.onWindowMouseUp):
1969         (CalendarTableView): Disable touch gesture scrolling in the calendar table.
1970
1971 2013-03-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1972
1973         [EFL] Cancel mark on search field is not displayed
1974         https://bugs.webkit.org/show_bug.cgi?id=94880
1975
1976         Reviewed by Kenneth Rohde Christiansen.
1977
1978         adjustSearchFieldCancelButtonStyle() doesn't set style width and height for search cancel button.
1979         So, the button isn't showing up in search input field. Besides the button size should be scaled based
1980         on the font size as chromium, qt, and blackberry ports.
1981
1982         Tests: fast/forms/search-cancel-button-style-sharing.html
1983                fast/forms/search-rtl.html
1984
1985         * platform/efl/RenderThemeEfl.cpp:
1986         (WebCore):
1987         (WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
1988
1989 2013-03-15  Yury Semikhatsky  <yurys@chromium.org>
1990
1991         Web Inspector: Native Memory Timeline affects the performace even if was switched off.
1992         https://bugs.webkit.org/show_bug.cgi?id=112428
1993
1994         Reviewed by Pavel Feldman.
1995
1996         Whether to include DOM counters and native memory statistics is now
1997         configured using Timeline.start parameters instead of sending separate
1998         commands Timeline.setIncludeDomCounters and Timeline.setIncludeNativeMemoryStatistics.
1999
2000         * inspector/Inspector.json:
2001         * inspector/InspectorTimelineAgent.cpp:
2002         (WebCore::InspectorTimelineAgent::restore):
2003         (WebCore::InspectorTimelineAgent::start):
2004         * inspector/InspectorTimelineAgent.h:
2005         (InspectorTimelineAgent):
2006         * inspector/front-end/DOMCountersGraph.js:
2007         (WebInspector.DOMCountersGraph):
2008         * inspector/front-end/NativeMemoryGraph.js:
2009         (WebInspector.NativeMemoryGraph):
2010         * inspector/front-end/TimelineManager.js:
2011         (WebInspector.TimelineManager.prototype.start):
2012         * inspector/front-end/TimelineModel.js:
2013         (WebInspector.TimelineModel.prototype.startRecord):
2014         * inspector/front-end/TimelinePanel.js:
2015         (WebInspector.TimelinePanel.prototype.get _toggleTimelineButtonClicked):
2016
2017 2013-03-18  Yury Semikhatsky  <yurys@chromium.org>
2018
2019         Web Inspector: Exception in timeline DOMCounters
2020         https://bugs.webkit.org/show_bug.cgi?id=112427
2021
2022         Reviewed by Pavel Feldman.
2023
2024         Do not update marker on DOM counters graph if the graphs haven't been
2025         drawn yet.
2026
2027         * inspector/front-end/MemoryStatistics.js:
2028         (WebInspector.MemoryStatistics.prototype._refreshCurrentValues):
2029
2030 2013-03-18  Li Yin  <li.yin@intel.com>
2031
2032         Mediastream.ended should return true when all tracks were removed.
2033         https://bugs.webkit.org/show_bug.cgi?id=112528
2034
2035         Reviewed by Kentaro Hara.
2036
2037         Spec: http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-MediaStream-ended
2038         When all tracks have been removed, it should return true as well as all the tracks
2039         were ended.
2040
2041         Test: fast/mediastream/MediaStream-add-remove-tracks.html
2042
2043         * Modules/mediastream/MediaStream.cpp:
2044         (WebCore::MediaStream::removeTrack):
2045
2046 2013-02-22  Andrey Kosyakov  <caseq@chromium.org>
2047
2048         Web Inspector: make number of stack frames to capture in Timeline a setting
2049         https://bugs.webkit.org/show_bug.cgi?id=110619
2050
2051         Reviewed by Pavel Feldman.
2052
2053         - factor out creation of input type="text" control for better reuse;
2054         - add timelineLimitStackFramesFlag & timelineStackFramesToCapture settings;
2055
2056         * English.lproj/localizedStrings.js: add "Frames to capture" and "Limit number of captured JS stack frames"
2057         * inspector/front-end/Settings.js: add 2 settings;
2058         (WebInspector.Settings):
2059         * inspector/front-end/SettingsScreen.js: UI for the setting;
2060         (WebInspector.GenericSettingsTab):
2061         (WebInspector.GenericSettingsTab.prototype.get _createCSSAutoReloadControls.validateReloadTimeout):
2062         * inspector/front-end/TimelineModel.js: pass the setting value to back-end.
2063
2064 2013-03-18  Sheriff Bot  <webkit.review.bot@gmail.com>
2065
2066         Unreviewed, rolling out r146035.
2067         http://trac.webkit.org/changeset/146035
2068         https://bugs.webkit.org/show_bug.cgi?id=112540
2069
2070         fails to build on Windows: singned/unsigned mismatch at ln. 53
2071         of html\HTMLSelectElementWin.cpp (Requested by antonm on
2072         #webkit).
2073
2074         * WebCore.gypi:
2075         * html/HTMLSelectElement.cpp:
2076         (WebCore):
2077         * html/HTMLSelectElementWin.cpp:
2078
2079 2013-03-18  Kentaro Hara  <haraken@chromium.org>
2080
2081         Unreviewed, rolling out r146033.
2082         http://trac.webkit.org/changeset/146033
2083         https://bugs.webkit.org/show_bug.cgi?id=112521
2084
2085         web audio tests are broken
2086
2087         * Modules/webaudio/AudioNode.cpp:
2088         (WebCore::AudioNode::AudioNode):
2089         * Modules/webaudio/AudioNode.h:
2090         * Modules/webaudio/AudioScheduledSourceNode.h:
2091         * Modules/webaudio/ScriptProcessorNode.idl:
2092
2093 2013-03-18  Dominic Cooney  <dominicc@chromium.org>
2094
2095         A placeholder renderer should not be taken to imply the existence of a text renderer in single line text controls
2096         https://bugs.webkit.org/show_bug.cgi?id=112410
2097
2098         Reviewed by Tony Chang.
2099
2100         The assumption that if a text control had a placeholder renderer
2101         then it also had a text renderer is not valid. If
2102         ::-webkit-textfield-decoration-controller is set to display: none;
2103         a single line text control's decoration container renderer and
2104         hence text renderer are not created. This change handles this
2105         corner case where a text control has a placeholder renderer but
2106         not a text renderer.
2107
2108         Tests: fast/forms/search/search-hide-decoration-container-crash.html (Updated)
2109
2110         * html/HTMLTextFormControlElement.cpp:
2111         (WebCore::HTMLTextFormControlElement::fixPlaceholderRenderer):
2112         * rendering/RenderTextControlSingleLine.cpp:
2113         (WebCore::RenderTextControlSingleLine::layout):
2114
2115 2013-03-18  Dominic Cooney  <dominicc@chromium.org>
2116
2117         [Shadow] offsetParent should never return nodes in user agent Shadow DOM to script
2118         https://bugs.webkit.org/show_bug.cgi?id=112530
2119
2120         Reviewed by Elliott Sprehn.
2121
2122         Test: fast/dom/shadow/offset-parent-does-not-leak-ua-shadow.html
2123
2124         * dom/Element.cpp:
2125         (WebCore::Element::bindingsOffsetParent): Filter nodes in UA shadows.
2126         * dom/Element.h:
2127         (Element): Add bindingsOffsetParent.
2128         * dom/Element.idl: bindingsOffsetParent is the implementation of offsetParent.
2129
2130 2013-03-17  Dominic Mazzoni  <dmazzoni@google.com>
2131
2132         Support Windows HTMLSelectElement keystrokes on Chromium win
2133         https://bugs.webkit.org/show_bug.cgi?id=112460
2134
2135         Reviewed by Kent Tamura.
2136
2137         Compile in the windows-specific variant of
2138         HTMLSelectElement::platformHandleKeydownEvent
2139         on Chromium win, in addition to PLATFORM(WIN).
2140
2141         * WebCore.gypi:
2142             Add html/HTMLSelectElementWin.cpp.
2143         * html/HTMLSelectElement.cpp:
2144             Don't compile generic platformHandleKeydownEvent on
2145             Chromium win.
2146         * html/HTMLSelectElementWin.cpp:
2147             Only compile platformHandleKeydownEvent on Windows.
2148         (WebCore):
2149
2150 2013-03-17  Russell McClellan  <russell.mcclellan@gmail.com>
2151
2152         ScriptProcessorNode is garbage collected while still active if unreachable
2153         https://bugs.webkit.org/show_bug.cgi?id=112521
2154
2155         Reviewed by Kentaro Hara.
2156
2157         Fix for issue where ScriptProcessorNodes (and AudioNode js wrappers generally)
2158         would be garbage collected before their time.  Made AudioNode an ActiveDOMElement
2159         marked pending if there are any open audio connections.
2160
2161         Test: webaudio/javascriptaudionode.html
2162
2163         * Modules/webaudio/AudioNode.cpp:
2164         (WebCore::AudioNode::AudioNode): 
2165         (WebCore::AudioNode::hasPendingActivity): it's pending (and thus not GCed)
2166         if it has open audio connections.
2167         * Modules/webaudio/AudioNode.h: AudioNode is now an ActiveDOMElement
2168         * Modules/webaudio/AudioScheduledSourceNode.h: added a using declaration
2169         to avoid function name hiding.
2170         * Modules/webaudio/ScriptProcessorNode.idl: AudioNode is an ActiveDOMElement
2171
2172 2013-03-17  Kunihiko Sakamoto  <ksakamoto@chromium.org>
2173
2174         INPUT_MULTIPLE_FIELDS_UI: Step-up/-down of minute/second/millisecond fields should respect min/max attributes
2175         https://bugs.webkit.org/show_bug.cgi?id=112527
2176
2177         Reviewed by Kent Tamura.
2178
2179         Make step-up/-down of the minute, second, and millisecond field
2180         respect the min/max attributes of the element.
2181         Note that it still accepts any keyboard inputs (the element
2182         becomes 'invalid' state when out-of-range values entered).
2183         Also, disable these fields when there is only single possible value.
2184
2185         Tests: fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
2186                fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
2187
2188         * html/shadow/DateTimeEditElement.cpp:
2189         (DateTimeEditBuilder): Add fields for min/max of minute/second/millisecond.
2190         (WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Set min/max for the fields.
2191         (WebCore::DateTimeEditBuilder::visitField): Pass min/max parameters to the field constructors.
2192         (WebCore::DateTimeEditBuilder::shouldHourFieldDisabled): Does not disable if minute, second, millisecond fields are all disabled, because we need at least one editable field.
2193         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldDisabled): Disables if min, max, and value are equal.
2194         (WebCore::DateTimeEditBuilder::shouldMinuteFieldDisabled): Ditto.
2195         (WebCore::DateTimeEditBuilder::shouldSecondFieldDisabled): Ditto.
2196         * html/shadow/DateTimeFieldElements.cpp:
2197         (WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement):
2198         (WebCore::DateTimeHourFieldElementBase::DateTimeHourFieldElementBase):
2199         (WebCore::DateTimeHour11FieldElement::DateTimeHour11FieldElement):
2200         (WebCore::DateTimeHour12FieldElement::DateTimeHour12FieldElement):
2201         (WebCore::DateTimeHour23FieldElement::DateTimeHour23FieldElement):
2202         (WebCore::DateTimeHour24FieldElement::DateTimeHour24FieldElement):
2203         (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement):
2204         (WebCore::DateTimeMillisecondFieldElement::create):
2205         (WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement):
2206         (WebCore::DateTimeMinuteFieldElement::create):
2207         (WebCore::DateTimeMonthFieldElement::DateTimeMonthFieldElement):
2208         (WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement):
2209         (WebCore::DateTimeSecondFieldElement::create):
2210         (WebCore::DateTimeWeekFieldElement::DateTimeWeekFieldElement):
2211         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):
2212         * html/shadow/DateTimeFieldElements.h:
2213         (DateTimeDayFieldElement):
2214         (DateTimeHourFieldElementBase):
2215         (DateTimeHour11FieldElement):
2216         (DateTimeHour12FieldElement):
2217         (DateTimeHour23FieldElement):
2218         (DateTimeHour24FieldElement):
2219         (DateTimeMillisecondFieldElement): Add minimum/maximum parameters.
2220         (DateTimeMinuteFieldElement): Add minimum/maximum parameters.
2221         (DateTimeMonthFieldElement):
2222         (DateTimeSecondFieldElement): Add minimum/maximum parameters.
2223         (DateTimeWeekFieldElement):
2224         (DateTimeYearFieldElement):
2225         * html/shadow/DateTimeNumericFieldElement.cpp:
2226         (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
2227         (WebCore::DateTimeNumericFieldElement::formatValue): Use hard-limit value instead of m_range.maximum, because millisecond field with max<100 will be displayed in two digits otherwise.
2228         (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
2229         * html/shadow/DateTimeNumericFieldElement.h:
2230         (DateTimeNumericFieldElement): Changed to have hard limits as a data member.
2231
2232 2013-03-17  Alexey Proskuryakov  <ap@apple.com>
2233
2234         Encapsulate PlatformMessagePortChannel a little better yet
2235         https://bugs.webkit.org/show_bug.cgi?id=112479
2236
2237         Reviewed by Sam Weinig.
2238
2239         * dom/MessagePortChannel.h: We no longer expose PlatformMessagePortChannel in
2240         public functions in cross-platform code.
2241
2242         * dom/default/PlatformMessagePortChannel.cpp:
2243         (WebCore::MessagePortChannel::createChannel): Tweaked the factory method to avoid
2244         using the old create() function.
2245         (WebCore::MessagePortChannel::~MessagePortChannel): Removed an unhelpful comment.
2246
2247 2013-03-17  Kent Tamura  <tkent@chromium.org>
2248
2249         INPUT_MULTIPLE_FIELDS_UI: Don't update shadow tree by updating any attribute
2250         https://bugs.webkit.org/show_bug.cgi?id=111990
2251
2252         Reviewed by Hajime Morrita.
2253
2254         Bug detail:
2255         Typing '1' then '1' into an hour field doesn't set the field to
2256         '11' if an attribute is updated during these two keyboard inputs
2257         because we always re-construct a shadow DOM tree by updating any
2258         attributes and a shadow node records keyboard input state.
2259
2260         How to fix:
2261         We should not re-construct a shadow DOM tree by updating
2262         unaffected attributes. For example, we should re-construct it by
2263         updating 'min' attribute, but we should not by updating 'class'
2264         attribute.
2265         We have InputType::updateInnerTextValue call in parseAttribute for
2266         text field input types. The multiple fields input types
2267         re-construct shadow DOM tree in updateInnerTextValue. The
2268         updateInnerTextValue call is unnecessary for the multiple fields
2269         input types, and we should call it when it is necessary. So, we
2270         add InputType::attributeChange and text field input types call
2271         updateInnerTextValue in it, and other input types don't.
2272         Also, multiple fields input types need to call
2273         updateInnerTextValue by 'value' attribute change. We add
2274         InputType::valueAttributeChanged.
2275
2276         Tests: Update
2277         fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html. The
2278         value attribute change behavior is covered by
2279         time-multiple-fields-change-layout-by-value.html and
2280         time-multiple-fields-spinbutton-change-and-input-events.html.
2281
2282         * html/HTMLInputElement.cpp:
2283         (WebCore::HTMLInputElement::parseAttribute):
2284         - Add a valueAttributeChanged call.
2285         - Calls InputType::attributeChanged
2286         * html/InputType.cpp:
2287         (WebCore::InputType::attributeChanged): Added an empty implementation.
2288         (WebCore::InputType::valueAttributeChanged): Ditto.
2289         * html/InputType.h:
2290         (InputType): Declare attributeChanged and valueAttributeChanged.
2291         * html/TextFieldInputType.cpp:
2292         (WebCore::TextFieldInputType::attributeChanged):
2293         Added. Always call updateInnerTextValue.
2294         * html/TextFieldInputType.h:
2295         (TextFieldInputType): Declare attributeChanged.
2296         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2297         (WebCore::BaseMultipleFieldsDateAndTimeInputType::valueAttributeChanged):
2298         Added. Re-construct shadow DOM tree if the input has no dirty value.
2299         * html/BaseMultipleFieldsDateAndTimeInputType.h:
2300         (BaseMultipleFieldsDateAndTimeInputType): Declare valueAttributeChanged.
2301
2302 2013-03-17  Rafael Weinstein  <rafaelw@chromium.org>
2303
2304         [HTMLTemplateElement] prevent </template> from matching "template" in a non-HTML tags on the stack of open elements
2305         https://bugs.webkit.org/show_bug.cgi?id=112487
2306
2307         Reviewed by Adam Barth.
2308
2309         When processing an end template tag, the parser now pops until a "template" tag is parsed, but now ensures that
2310         the "template" it pops is in the HTML namespace.
2311
2312         Tests added to the html5lib test suite.
2313
2314         * html/parser/HTMLElementStack.cpp:
2315         (WebCore::HTMLElementStack::popUntil):
2316         (WebCore):
2317         (WebCore::HTMLElementStack::popUntilPopped):
2318         * html/parser/HTMLElementStack.h:
2319         (HTMLElementStack):
2320         * html/parser/HTMLTreeBuilder.cpp:
2321         (WebCore::HTMLTreeBuilder::processTemplateEndTag):
2322
2323 2013-03-17  Adam Barth  <abarth@webkit.org>
2324
2325         Legacy CSS vendor prefixes should only work for Dashboard
2326         https://bugs.webkit.org/show_bug.cgi?id=111890
2327
2328         Reviewed by Eric Seidel.
2329
2330         Our experience with the Chromium port is that these legacy CSS vendor
2331         prefixes (-apple- and -khtml-) are not needed for web compatibility.
2332         There is reason to believe, however, that they are needed for
2333         compatibility with Mac OS X Dashboard widgets.
2334
2335         This patch makes the code for these legacy CSS vendor prefixes
2336         enabled at runtime and only enables them when running in Dashboard
2337         compatibility mode. This is the first step towards the plan outlined in
2338         https://lists.webkit.org/pipermail/webkit-dev/2013-March/024085.html.
2339
2340         This patch also removes support for ENABLE(LEGACY_CSS_VENDOR_PREFIXES)
2341         from the V8 bindings because V8 is never used with Dashboard.
2342
2343         * bindings/generic/RuntimeEnabledFeatures.cpp:
2344         (WebCore):
2345         * bindings/generic/RuntimeEnabledFeatures.h:
2346         (RuntimeEnabledFeatures):
2347         (WebCore::RuntimeEnabledFeatures::setLegacyCSSVendorPrefixesEnabled):
2348         (WebCore::RuntimeEnabledFeatures::legacyCSSVendorPrefixesEnabled):
2349         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
2350         (WebCore::getCSSPropertyNamePrefix):
2351         (WebCore::cssPropertyIDForJSCSSPropertyName):
2352         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
2353         (WebCore::cssPropertyInfo):
2354         * css/CSSParser.cpp:
2355         (WebCore::CSSParser::rewriteSpecifiers):
2356
2357 2013-03-17  David Kilzer  <ddkilzer@apple.com>
2358
2359         BUILD FIX (r145592): AutodrainedPool.h moved to WTF
2360         <http://webkit.org/b/112171>
2361
2362         Fixes the following build failure:
2363
2364             Source/WebCore/platform/audio/mac/AudioBusMac.mm:32:9: fatal error: 'AutodrainedPool.h' file not found
2365             #import "AutodrainedPool.h"
2366                     ^
2367             1 error generated.
2368
2369         * platform/audio/mac/AudioBusMac.mm: Fix include.
2370
2371 2013-03-17  Gustavo Noronha Silva  <gns@gnome.org>
2372
2373         [GTK] Fix and improve dist hooks for translations
2374         https://bugs.webkit.org/show_bug.cgi?id=112519
2375
2376         Reviewed by Carlos Garcia Campos.
2377
2378         * GNUmakefile.am: move translation-related rules and lists to the po directory's
2379         GNUmakefile.am.
2380
2381 2013-03-17  Emil A Eklund  <eae@chromium.org>
2382
2383         Move font-family applying code to StyleBuilder
2384         https://bugs.webkit.org/show_bug.cgi?id=112441
2385
2386         Reviewed by Allan Sandfeld Jensen.
2387
2388         Many of the font related properties were moved to StyleBuilder in r87362
2389         two years ago. Move font-family as well so that all font properties are
2390         handled the same way.
2391
2392         No new tests, no change in functionality.
2393
2394         * css/StyleBuilder.cpp:
2395         (ApplyPropertyFontFamily):
2396         (WebCore::ApplyPropertyFontFamily::applyInheritValue):
2397         (WebCore::ApplyPropertyFontFamily::applyInitialValue):
2398         (WebCore::ApplyPropertyFontFamily::applyValue):
2399         (WebCore::ApplyPropertyFontFamily::createHandler):
2400         (WebCore::StyleBuilder::StyleBuilder):
2401         Add ApplyPropertyFontFamily for CSSPropertyFontFamily.
2402
2403         * css/StyleResolver.cpp:
2404         (WebCore::StyleResolver::applyProperty):
2405         Remove CSSPropertyFontFamily from the giant switch statement.
2406
2407 2013-03-17  Carlos Garcia Campos  <cgarcia@igalia.com>
2408
2409         [ENCHANT] Invalid charset encoding used for spelling guess context menu items
2410         https://bugs.webkit.org/show_bug.cgi?id=112516
2411
2412         Reviewed by Gustavo Noronha Silva.
2413
2414         Convert spelling guesses returned by enchant to UTF-16 before
2415         passing them to WebCore.
2416
2417         * platform/text/enchant/TextCheckerEnchant.cpp:
2418         (WebCore::TextCheckerEnchant::getGuessesForWord): Use
2419         String::fromUTF8().
2420
2421 2013-03-17  Jinwoo Song  <jinwoo7.song@samsung.com>
2422
2423         [EFL] Provide default cursor groups as cursor.edc
2424         https://bugs.webkit.org/show_bug.cgi?id=112403
2425
2426         Reviewed by Gyuyoung Kim.
2427
2428         This patch provides a cursor.edc to use the CSS cursor images files in the
2429         WebCore/Resources directory. cursor.edc is included in the default.edc
2430         so that views can use it by default.
2431
2432         * platform/efl/DefaultTheme/CMakeLists.txt:
2433         * platform/efl/DefaultTheme/default.edc:
2434         * platform/efl/DefaultTheme/widget/cursor/cursor.edc: Added.
2435
2436 2013-03-16  Pratik Solanki  <psolanki@apple.com>
2437
2438         Disable High DPI Canvas on iOS
2439         https://bugs.webkit.org/show_bug.cgi?id=112511
2440
2441         Reviewed by Joseph Pecoraro.
2442
2443         * Configurations/FeatureDefines.xcconfig:
2444
2445 2013-03-16  Simon Fraser  <simon.fraser@apple.com>
2446
2447         Reflected video elements hit assertion
2448         https://bugs.webkit.org/show_bug.cgi?id=112490
2449
2450         Disable reflections on video again, since there's some bad behavior
2451         caused by an underlying system framework.
2452
2453         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2454         (PlatformCALayer::clone):
2455
2456 2013-03-16  Tom Sepez  <tsepez@chromium.org>
2457
2458         [v8] Disable binding integrity check for WebCore::Text
2459         https://bugs.webkit.org/show_bug.cgi?id=112462
2460
2461         Reviewed by Kentaro Hara.
2462
2463         Test: fast/dom/split-cdata.xml
2464
2465         * dom/Text.idl:
2466
2467 2013-03-16  Chris Fleizach  <cfleizach@apple.com>
2468
2469         AX: aria-hidden on container does not hide descendant popup buttons
2470         https://bugs.webkit.org/show_bug.cgi?id=112373
2471
2472         Reviewed by Ryosuke Niwa.
2473
2474         There are a number of subclass AX objects that implement accessibilityIsIgnored()
2475         to always return false. This means that even if their parent is aria-hidden=true
2476         they still show up in the tree.
2477
2478         This re-organizes this base case of aria-hidden into AccessibilityObject so that
2479         it can be re-used by these special subclasses where appropriate.
2480
2481         Test: accessibility/aria-hidden-hides-all-elements.html
2482
2483         * accessibility/AccessibilityImageMapLink.h:
2484         (WebCore::AccessibilityImageMapLink::isImageMapLink):
2485         * accessibility/AccessibilityList.cpp:
2486         (WebCore::AccessibilityList::computeAccessibilityIsIgnored):
2487         * accessibility/AccessibilityListBox.cpp:
2488         (WebCore):
2489         * accessibility/AccessibilityListBox.h:
2490         (AccessibilityListBox):
2491         * accessibility/AccessibilityListBoxOption.cpp:
2492         (WebCore::AccessibilityListBoxOption::computeAccessibilityIsIgnored):
2493         * accessibility/AccessibilityMediaControls.cpp:
2494         (WebCore::AccessibilityMediaControl::computeAccessibilityIsIgnored):
2495         (WebCore::AccessibilityMediaControlsContainer::computeAccessibilityIsIgnored):
2496         (WebCore::AccessibilityMediaTimeDisplay::computeAccessibilityIsIgnored):
2497         * accessibility/AccessibilityMediaControls.h:
2498         (AccessibilityMediaControlsContainer):
2499         * accessibility/AccessibilityMenuList.h:
2500         (WebCore::AccessibilityMenuList::roleValue):
2501         * accessibility/AccessibilityMenuListOption.cpp:
2502         (WebCore::AccessibilityMenuListOption::computeAccessibilityIsIgnored):
2503         * accessibility/AccessibilityMenuListPopup.cpp:
2504         (WebCore::AccessibilityMenuListPopup::computeAccessibilityIsIgnored):
2505         * accessibility/AccessibilityMockObject.cpp:
2506         (WebCore::AccessibilityMockObject::computeAccessibilityIsIgnored):
2507         (WebCore):
2508         * accessibility/AccessibilityMockObject.h:
2509         (AccessibilityMockObject):
2510         * accessibility/AccessibilityObject.cpp:
2511         (WebCore::AccessibilityObject::accessibilityIsIgnoredDefaultForObject):
2512         (WebCore):
2513         (WebCore::AccessibilityObject::ariaIsHidden):
2514         (WebCore::AccessibilityObject::accessibilityIsIgnoredBase):
2515         * accessibility/AccessibilityObject.h:
2516         (AccessibilityObject):
2517         * accessibility/AccessibilityProgressIndicator.cpp:
2518         (WebCore::AccessibilityProgressIndicator::computeAccessibilityIsIgnored):
2519         * accessibility/AccessibilityRenderObject.cpp:
2520         (WebCore):
2521         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
2522         (WebCore::AccessibilityRenderObject::addImageMapChildren):
2523         * accessibility/AccessibilityRenderObject.h:
2524         (AccessibilityRenderObject):
2525         * accessibility/AccessibilityScrollbar.h:
2526         (AccessibilityScrollbar):
2527         * accessibility/AccessibilitySlider.cpp:
2528         (WebCore):
2529         (WebCore::AccessibilitySliderThumb::computeAccessibilityIsIgnored):
2530         * accessibility/AccessibilitySlider.h:
2531         (AccessibilitySlider):
2532         * accessibility/AccessibilitySpinButton.h:
2533         (WebCore::AccessibilitySpinButton::roleValue):
2534         (AccessibilitySpinButtonPart):
2535
2536 2013-03-15  Simon Fraser  <simon.fraser@apple.com>
2537
2538         Reflected video elements hit assertion on Lion
2539         https://bugs.webkit.org/show_bug.cgi?id=112490
2540
2541         Disable the new reflected video functionality added in r145915
2542         on Lion because of a nasty re-entrancy problem. Tracked by bug 112490.
2543
2544         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2545         (PlatformCALayer::clone):
2546
2547 2013-03-15  Bem Jones-Bey  <bjonesbe@adobe.com>
2548
2549         [CSS Exclusions] shape-outside on floats for circle and ellipse shapes
2550         https://bugs.webkit.org/show_bug.cgi?id=98673
2551
2552         Reviewed by Dirk Schulze.
2553
2554         Enable circles and ellipses for shape-outside on floats. Most of the
2555         code already supports them, just needed to turn them on and add tests.
2556
2557         Tests: fast/exclusions/shape-outside-floats/shape-outside-floats-simple-circle.html
2558                fast/exclusions/shape-outside-floats/shape-outside-floats-simple-ellipse.html
2559
2560         * rendering/ExclusionShapeOutsideInfo.cpp:
2561         (WebCore::ExclusionShapeOutsideInfo::isEnabledFor): Enable circles and
2562             ellipses. Also add a check for if the RenderBox is floating, since
2563             that test should have been there all along, as shape outside is
2564             only supported on floats for now.
2565
2566 2013-03-15  Christian Biesinger  <cbiesinger@chromium.org>
2567
2568         Convert old flexbox uses in html.css to new flexbox (non-<select>)
2569         https://bugs.webkit.org/show_bug.cgi?id=110837
2570
2571         Reviewed by Ojan Vafai.
2572
2573         Covered by existing tests.
2574
2575         * rendering/RenderTextControlSingleLine.cpp:
2576         (WebCore::RenderTextControlSingleLine::layout):
2577         After we set our descendants' heights, we need to mark them for
2578         layout.
2579         (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
2580         Use new-flexbox style setters.
2581
2582         * css/html.css:
2583         (input::-webkit-textfield-decoration-container):
2584         (input[type="search"]::-webkit-search-cancel-button):
2585         (input[type="search"]::-webkit-search-decoration):
2586         (input[type="search"]::-webkit-search-results-decoration):
2587         (input[type="search"]::-webkit-search-results-button):
2588         (input::-webkit-inner-spin-button):
2589         (input::-webkit-input-speech-button):
2590         (textarea):
2591         (input[type="file"]):
2592         (input[type="color"]::-webkit-color-swatch-wrapper):
2593         (input[type="color"]::-webkit-color-swatch):
2594         (::-webkit-validation-bubble-message):
2595         (::-webkit-validation-bubble-text-block):
2596         * css/themeWin.css:
2597         (input[type="search"]::-webkit-search-results-decoration):
2598         (input[type="search"]::-webkit-search-results-button):
2599         Convert -webkit-box to -webkit-flex and adjust related properties.
2600         Notably switch to auto margins for centering the speech button as well
2601         as the search result and cancel buttons to stay compatible with the
2602         previous centering behaviour. This does not produce visible
2603         differences but eliminates the render tree dump changes.
2604         * html/TextFieldInputType.cpp:
2605         (WebCore::TextFieldInputType::createShadowSubtree):
2606         * html/shadow/TextControlInnerElements.cpp:
2607         (WebCore::TextControlInnerContainer::TextControlInnerContainer):
2608         (WebCore):
2609         (WebCore::TextControlInnerContainer::create):
2610         (WebCore::TextControlInnerContainer::createRenderer):
2611         * html/shadow/TextControlInnerElements.h:
2612         (TextControlInnerContainer):
2613         (WebCore):
2614         * rendering/RenderTextControl.cpp:
2615         (WebCore::RenderTextControlInnerContainer::RenderTextControlInnerContainer):
2616         (WebCore):
2617         (WebCore::RenderTextControlInnerContainer::~RenderTextControlInnerContainer):
2618         * rendering/RenderTextControl.h:
2619         (WebCore):
2620         (RenderTextControlInnerContainer):
2621         Create a new DOM element & renderer type for the textfield-decoration
2622         div (the direct child of the <input> in the shadow dom if we have a
2623         special input field). This is necessary because new-flexbox uses a
2624         different algorithm for calculating the baseline, which would
2625         otherwise cause an <input> and an <input type=search> to not be
2626         aligned with each other.
2627         The new renderer just calls back to RenderBlock for calculating the
2628         baseline.
2629         * rendering/RenderTextControlSingleLine.cpp:
2630         (WebCore::RenderTextControlSingleLine::layout):
2631         Make sure to mark renderers as needing layout when we change their
2632         style. This didn't use to be necessary because old-flexbox relayouts
2633         children even when they are not marked for needing layout.
2634         (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
2635         Use new-flexbox CSS properties.
2636         * html/shadow/TextFieldDecorationElement.cpp:
2637         (WebCore::TextFieldDecorationElement::decorate):
2638         Use new-flexbox CSS properties.
2639
2640 2013-03-15  Kenneth Russell  <kbr@google.com>
2641
2642         Unreviewed attempted build fix for Chromium Windows after r145929.
2643         Verified this fix builds and works on Linux.
2644         https://bugs.webkit.org/show_bug.cgi?id=96798
2645
2646         * bindings/v8/V8Binding.cpp:
2647         (WebCore):
2648
2649 2013-03-15  Nate Chapin  <japhet@chromium.org>
2650
2651         Merge MainResourceLoader::willSendRequest into DocumentLoader 
2652         https://bugs.webkit.org/show_bug.cgi?id=109757
2653
2654         This is one of the steps to merging MainResourceLoader entirely into
2655         DocumentLoader, given the lack of clear division of responsibility
2656         between the two.
2657
2658         Reviewed by Antti Koivisto.
2659
2660         No new tests, refactor only.
2661
2662         * loader/DocumentLoader.cpp:
2663         (WebCore::DocumentLoader::mainResourceData):
2664         (WebCore::DocumentLoader::isPostOrRedirectAfterPost):
2665         (WebCore::DocumentLoader::willSendRequest):
2666         (WebCore::DocumentLoader::callContinueAfterNavigationPolicy):
2667         (WebCore::DocumentLoader::continueAfterNavigationPolicy):
2668         (WebCore::DocumentLoader::startLoadingMainResource):
2669         * loader/DocumentLoader.h:
2670         * loader/MainResourceLoader.cpp:
2671         (WebCore::MainResourceLoader::resourceData):
2672         (WebCore::MainResourceLoader::redirectReceived):
2673         (WebCore::MainResourceLoader::continueAfterContentPolicy):
2674         (WebCore::MainResourceLoader::reportMemoryUsage):
2675         (WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
2676         (WebCore::MainResourceLoader::load):
2677         * loader/MainResourceLoader.h:
2678         (WebCore::MainResourceLoader::takeIdentifierFromResourceLoader): Temporarily
2679             exposed for moving from a normal load to SubstituteData load on redirect.
2680
2681 2013-03-15  Zhenyao Mo  <zmo@google.com>
2682
2683         Disable EXT_draw_buffers WebGL extension on Mac
2684         https://bugs.webkit.org/show_bug.cgi?id=112486
2685
2686         Reviewed by Kenneth Russell.
2687
2688         * html/canvas/EXTDrawBuffers.cpp:
2689         (WebCore::EXTDrawBuffers::supported):
2690
2691 2013-03-15  Dana Jansens  <danakj@chromium.org>
2692
2693         [chromium] Remove the background filter blur layout tests
2694         https://bugs.webkit.org/show_bug.cgi?id=112372
2695
2696         Reviewed by James Robinson.
2697
2698         Remove the now-unused hacks to regression test the background
2699         filter blur compositor feature.
2700
2701         * testing/Internals.cpp:
2702         * testing/Internals.h:
2703         (Internals):
2704         * testing/Internals.idl:
2705
2706 2013-03-15  Alexey Proskuryakov  <ap@apple.com>
2707
2708         Reduce amount of platform specific code in MessagePortChannel
2709         https://bugs.webkit.org/show_bug.cgi?id=112469
2710
2711         Reviewed by Sam Weinig.
2712
2713         * dom/MessagePortChannel.h: Ifdefed out an unused channel() function, except for
2714         Chromium, where it is used. We certainly don't want to expose this implementation
2715         detail as a public function.
2716
2717         * dom/default/PlatformMessagePortChannel.h: Removed functions that are no longer
2718         delegated. Made class contents all public, as it's now basically a data storage
2719         for MessagePortChannel.
2720
2721         * dom/default/PlatformMessagePortChannel.cpp:
2722         (WebCore::MessagePortChannel::createChannel):
2723         (WebCore::MessagePortChannel::~MessagePortChannel):
2724         (WebCore::MessagePortChannel::entangleIfOpen):
2725         (WebCore::MessagePortChannel::disentangle):
2726         (WebCore::MessagePortChannel::postMessageToRemote):
2727         (WebCore::MessagePortChannel::tryGetMessageFromRemote):
2728         (WebCore::MessagePortChannel::close):
2729         (WebCore::MessagePortChannel::isConnectedTo):
2730         (WebCore::MessagePortChannel::hasPendingActivity):
2731         (WebCore::MessagePortChannel::locallyEntangledPort):
2732         (WebCore::PlatformMessagePortChannel::PlatformMessagePortChannel):
2733         (WebCore::PlatformMessagePortChannel::entangledChannel):
2734         Moved code from PlatformMessagePortChannel to MessagePortChannel. Added some
2735         FIXMEs.
2736
2737 2013-03-15  Arvid Nilsson  <anilsson@rim.com>
2738
2739         [BlackBerry] Expose the compositing thread layer's draw rectangle to aid hit testing
2740         https://bugs.webkit.org/show_bug.cgi?id=112255
2741
2742         Reviewed by Rob Buis.
2743
2744         PR 308284.
2745         Reviewed internally by Yongxin Dai.
2746
2747         Add a getter for the layer renderer of a compositing thread layer.
2748
2749         No change in behavior, no new tests.
2750
2751         * platform/graphics/blackberry/LayerCompositingThread.h:
2752         (WebCore::LayerCompositingThread::layerRenderer):
2753
2754 2013-03-15  Christian Biesinger  <cbiesinger@chromium.org>
2755
2756         Convert <select> to new-flexbox
2757         https://bugs.webkit.org/show_bug.cgi?id=112395
2758
2759         Reviewed by Ojan Vafai.
2760
2761         Covered by existing tests.
2762
2763         * css/html.css:
2764         (select):
2765         (select[size][multiple]):
2766         (select[size="1"]):
2767         Use new-style flexbox properties.
2768         * rendering/RenderMenuList.cpp:
2769         (WebCore::RenderMenuList::RenderMenuList):
2770         (WebCore::RenderMenuList::createInnerBlock):
2771         (WebCore::RenderMenuList::adjustInnerStyle):
2772         (WebCore::RenderMenuList::removeChild):
2773         RenderDeprecatedFlexibleBox -> RenderFlexibleBox, and use the
2774         new-style flexbox properties. Use margin:auto for centering to get
2775         the old safe-centering behavior.
2776         * rendering/RenderMenuList.h:
2777         (RenderMenuList):
2778         Inherit from RenderFlexibleBox. Override baseline methods to call the
2779         RenderBlock methods
2780
2781 2013-03-15  Andy Estes  <aestes@apple.com>
2782
2783         REGRESSION (r145820): Stop over-retaining CFDataRefs in SharedBuffer::maybeTransferPlatformData()
2784         https://bugs.webkit.org/show_bug.cgi?id=112474
2785
2786         Reviewed by Simon Fraser.
2787
2788         Transfer ownership of m_cfData to the local variable rather than leaking a reference.
2789
2790         * platform/cf/SharedBufferCF.cpp:
2791         (WebCore::SharedBuffer::maybeTransferPlatformData):
2792
2793 2013-03-15  Rajeev Sarvaria  <rsarvaria@blackberry.com>
2794
2795         New context extensions restored improperly
2796         https://bugs.webkit.org/show_bug.cgi?id=112156
2797
2798         Reviewed by Rob Buis.
2799
2800         Sets up extensions after new context is created for restoration.
2801         Previous extensions set up is lost when context is initially lost.
2802
2803         Cannot create a test as change is not visible from the web. When a context
2804         is lost, WebGLRenderingContext drops m_context. Upon restoration a new context
2805         object is created without available extensions initialized. Calling isEnabled
2806         within setupFlags leads to the eventual initialization of extensions for the
2807         new context.
2808
2809         * html/canvas/WebGLRenderingContext.cpp:
2810         (WebCore):
2811         (WebCore::WebGLRenderingContext::maybeRestoreContext):
2812
2813 2013-03-15  Aurimas Liutikas  <aurimas@chromium.org>
2814
2815         TextIterator emits LF for a br element inside an empty input element
2816         https://bugs.webkit.org/show_bug.cgi?id=112275
2817
2818         Reviewed by Ryosuke Niwa.
2819
2820         Adding a check to avoid emiting LF for br elements inside a shadow tree
2821         of an input element.
2822
2823         Test: editing/text-iterator/basic-iteration.html
2824               editing/text-iterator/basic-iteration-shadowdom.html
2825
2826         * editing/TextIterator.cpp:
2827         (WebCore::shouldEmitNewlineForNode):
2828         (WebCore::TextIterator::handleNonTextNode):
2829         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
2830         (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode):
2831         (WebCore::SimplifiedBackwardsTextIterator::exitNode):
2832         * editing/TextIterator.h:
2833         (SimplifiedBackwardsTextIterator):
2834
2835 2013-03-15  Arvid Nilsson  <anilsson@rim.com>
2836
2837         [BlackBerry] Allow an embedder to position child windows using window coordinates
2838         https://bugs.webkit.org/show_bug.cgi?id=112236
2839
2840         Reviewed by Rob Buis.
2841
2842         PR 232752
2843
2844         The LayerCompositingThread can now position the video window using
2845         either document or window coordinates.
2846
2847         The LayerRenderer class gets a new client interface. This allows us to
2848         avoid state duplication by delegating decisions directly to the client,
2849         which can then be in charge of the (one and only) state.
2850
2851         The context is moved over to the client, as well as delegation of the
2852         decision on whether to clear the surface every frame.
2853
2854         Also, the decision on which coordinate system to use for positioning
2855         child windows is delegated to the client interface.
2856
2857         No new tests, not testable using DRT.
2858
2859         * platform/graphics/blackberry/LayerCompositingThread.cpp:
2860         (WebCore::LayerCompositingThread::drawTextures):
2861         * platform/graphics/blackberry/LayerRenderer.cpp:
2862         (WebCore::LayerRenderer::create):
2863         (WebCore::LayerRenderer::LayerRenderer):
2864         (WebCore::LayerRenderer::setViewport):
2865         (WebCore::LayerRenderer::compositeLayers):
2866         (WebCore::LayerRenderer::toWebKitWindowCoordinates):
2867         (WebCore::LayerRenderer::makeContextCurrent):
2868         * platform/graphics/blackberry/LayerRenderer.h:
2869         (WebCore):
2870         (LayerRenderer):
2871         (WebCore::LayerRenderer::client):
2872         * platform/graphics/blackberry/LayerRendererClient.h: Added.
2873         (Graphics):
2874         (WebCore):
2875         (LayerRendererClient):
2876         (WebCore::LayerRendererClient::~LayerRendererClient):
2877
2878 2013-03-15  Jochen Eisinger  <jochen@chromium.org>
2879
2880         Expose whether a UserGestureToken still has gestures via WebKit API
2881         https://bugs.webkit.org/show_bug.cgi?id=112342
2882
2883         Reviewed by Adam Barth.
2884
2885         * dom/UserGestureIndicator.cpp:
2886         * dom/UserGestureIndicator.h:
2887         (UserGestureToken):
2888
2889 2013-03-15  Christian Biesinger  <cbiesinger@chromium.org>
2890
2891         Convert inspector to new-flexbox
2892         https://bugs.webkit.org/show_bug.cgi?id=112399
2893
2894         Reviewed by Ojan Vafai.
2895
2896         No new tests, refactoring.
2897
2898         * inspector/front-end/auditsPanel.css:
2899         (.audit-launcher-view .audit-launcher-view-content):
2900         (.audit-launcher-view div.button-container):
2901         (.audit-launcher-view div.button-container > button):
2902         * inspector/front-end/dialog.css:
2903         (.dialog):
2904         * inspector/front-end/elementsPanel.css:
2905         (.sidebar-pane.composite .metrics):
2906         * inspector/front-end/helpScreen.css:
2907         (.help-window-main):
2908         (.help-content):
2909         * inspector/front-end/inspector.css:
2910         (#toolbar):
2911         (#toolbar-controls):
2912         (#toolbar-dropdown .scrollable-content):
2913         (#toolbar-dropdown .toolbar-item):
2914         (.toolbar-item.close-left, .toolbar-item.close-right):
2915         * inspector/front-end/nativeMemoryProfiler.css:
2916         (.memory-pie-chart-container):
2917         (.memory-pie-chart):
2918         * inspector/front-end/networkPanel.css:
2919         (.network-item-view.visible):
2920         * inspector/front-end/panelEnablerView.css:
2921         (.panel-enabler-view .flexible-space):
2922         * inspector/front-end/profilesPanel.css:
2923         (.profile-launcher-view-content):
2924         (.control-profiling):
2925         * inspector/front-end/splitView.css:
2926         (.sidebar-overlay):
2927         * inspector/front-end/tabbedPane.css:
2928         (.tabbed-pane):
2929         (.tabbed-pane-content):
2930         Replace -webkit-box with -webkit-flex, -webkit-box-orient with
2931         -webkit-flex-direction, etc.
2932
2933 2013-03-15  Rouslan Solomakhin  <rouslan@chromium.org>
2934
2935         Remove unused unified textchecker variable
2936         https://bugs.webkit.org/show_bug.cgi?id=112362
2937
2938         Reviewed by Tony Chang.
2939
2940         The variable m_originalUnifiedSpellCheckerEnabled is never used. The generated
2941         code from Settings.in already backs up and restores unified textchecker setting.
2942
2943         * testing/InternalSettings.h: Remove unusued m_originalUnifiedSpellCheckerEnabled variable.
2944
2945 2013-03-14  Ojan Vafai  <ojan@chromium.org>
2946
2947         Auto height column flexboxes with border and padding are too short
2948         https://bugs.webkit.org/show_bug.cgi?id=112398
2949
2950         Reviewed by Tony Chang.
2951
2952         Test: css3/flexbox/auto-height-column-with-border-and-padding.html
2953
2954         * rendering/RenderFlexibleBox.cpp:
2955         (WebCore::RenderFlexibleBox::mainAxisContentExtent):
2956         computeLogicalHeight expects that you pass in the border-box logicalHeight, not
2957         the contentLogicalHeight. Since we subtract the border, padding and scrollbar height from 
2958         the returned m_extent, if we pass in the contentLogicalHeight and the flexbox is auto-sized
2959         then we end up incorrectly subtracting border, padding and scrollbar height from the
2960         contentLogicalHeight.
2961
2962 2013-03-15  Tim Horton  <timothy_horton@apple.com>
2963
2964         RenderSnapshottedPlugIn can't be a RenderBlock (what if it's display: inline?)
2965         https://bugs.webkit.org/show_bug.cgi?id=112432
2966         <rdar://problem/13187211>
2967
2968         Reviewed by Simon Fraser and Dean Jackson.
2969
2970         Re-use code from PLUGIN_PROXY_FOR_VIDEO to allow RenderEmbeddedObject to lay out its children,
2971         and make RenderSnapshottedPlugIn a RenderEmbeddedObject subclass once again. This will ensure that
2972         RenderSnapshottedPlugIn lays itself out in the page the same as the RenderEmbeddedObject it replaces did,
2973         preventing snapshotted plug-ins from breaking the layout when they are display: inline.
2974
2975         * html/HTMLPlugInElement.cpp:
2976         (WebCore::HTMLPlugInElement::defaultEventHandler):
2977         RenderSnapshottedPlugIn is a RenderEmbeddedObject subclass again, so we need to check
2978         for it when we have a RenderEmbeddedObject, instead of when we don't.
2979
2980         * page/FrameView.cpp:
2981         (WebCore::FrameView::updateWidget):
2982         Ditto.
2983
2984         * rendering/RenderEmbeddedObject.cpp:
2985         (WebCore::RenderEmbeddedObject::layout):
2986         (WebCore::RenderEmbeddedObject::canHaveChildren):
2987         Allow RenderEmbeddedObject to have and lay out children if it is a RenderSnapshottedPlugIn.
2988         Also, preserve the code that allows children if it is a media element and PLUGIN_PROXY_FOR_VIDEO is enabled.
2989         Don't call addWidgetToUpdate for instances which will never have a widget, like RenderSnapshottedPlugIn.
2990
2991         * rendering/RenderEmbeddedObject.h:
2992         (RenderEmbeddedObject):
2993         We need canHaveChildren() and children() and m_children now.
2994         Add canHaveWidget(), which returns true. Subclasses can override if need be.
2995
2996         * rendering/RenderSnapshottedPlugIn.h: Add canHaveWidget(), which is false for RenderSnapshottedPlugIn.
2997         * rendering/RenderSnapshottedPlugIn.cpp:
2998         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
2999         (WebCore::RenderSnapshottedPlugIn::layout):
3000         (WebCore::RenderSnapshottedPlugIn::getCursor):
3001         Make RenderSnapshottedPlugIn a RenderEmbeddedObject.
3002
3003         (WebCore::RenderSnapshottedPlugIn::paint):
3004         Paint our children.
3005
3006 2013-03-15  Hajime Morrita  <morrita@google.com>
3007
3008         [Custom Elements] Any HTMLElement subclass should become a superclass of custom element
3009         https://bugs.webkit.org/show_bug.cgi?id=110436
3010
3011         Reviewed by Dimitri Glazkov.
3012
3013         This change introduces "type extension" concept of custom elements.
3014         With the type extension, each custom elements are able to inherit
3015         from not only HTMLElement, but also any HTML element. To make it work,
3016         this change extends the plumbing.
3017
3018         This change does following changes:
3019
3020         = Data structure:
3021
3022         - Let CustomElementConstructor objects being keyed by pair of (element
3023           name, local name) as the standard requries, instead of just using
3024           single name. See CustomElementRegistry::ConstructorMap and CustomElementRegistry::find().
3025
3026         - Creates mapping from WrapperTypeInfo to element name.  This map
3027           can be looked-up by generated functions like
3028           findHTMLTagNameOfV8Type().  With this table, WebKit can determine
3029           the custom element local name of given prototype object. See  make_names.pl.
3030           Note that V8 prototype object knows associated WrapperTypeInfo. See r144865.
3031
3032         = Hooking up element lifecyle:
3033
3034         - Create appropriate C++ instance for each custom element.  Before
3035           this change, the C++ backend of custom elements were always
3036           HTMLUnknownElements or HTMLElement.  See
3037           CustomElementConstructor::createElement() and ElementFactories in
3038           make_names.pl.
3039
3040         - Hooks up element construction and element wrapper creation for
3041           custom element "before" non-custom case instead of "after"
3042           that. We do this because custom element needs to
3043           override non-custom case when @is attribute is given for
3044           otherwise-non-custom elements like <div is=x-bar>.
3045           See make_names.pl.
3046
3047         - Gives @is attributes to elements if needed. See setTypeExtension() call sites
3048           like Document::createElement(), Document::createElementtNS() and CustomElementConstructor::createElementt()
3049
3050         Test: fast/dom/custom/document-register-type-extensions.html
3051
3052         * bindings/scripts/CodeGeneratorV8.pm:
3053         (GenerateHeader):
3054         * bindings/scripts/test/V8/V8Float64Array.h:
3055         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
3056         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
3057         * bindings/scripts/test/V8/V8TestEventConstructor.h:
3058         * bindings/scripts/test/V8/V8TestEventTarget.h:
3059         * bindings/scripts/test/V8/V8TestException.h:
3060         * bindings/scripts/test/V8/V8TestInterface.h:
3061         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
3062         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
3063         * bindings/scripts/test/V8/V8TestNode.h:
3064         * bindings/scripts/test/V8/V8TestObj.h:
3065         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
3066         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
3067         * bindings/scripts/test/V8/V8TestTypedefs.h:
3068         * bindings/v8/CustomElementHelpers.cpp:
3069         (WebCore::hasValidPrototypeChain):
3070         (WebCore::CustomElementHelpers::isValidPrototypeParameter):
3071         (WebCore::CustomElementHelpers::findLocalName):
3072         (WebCore):
3073         (WebCore::CustomElementHelpers::findWrapperType):
3074         * bindings/v8/CustomElementHelpers.h:
3075         (CustomElementHelpers):
3076         * bindings/v8/V8CustomElement.cpp:
3077         (WebCore::V8CustomElement::createWrapper):
3078         * bindings/v8/V8CustomElement.h:
3079         (V8CustomElement):
3080         (WebCore::V8CustomElement::wrap):
3081         (WebCore::V8CustomElement::constructorOf):
3082         * bindings/v8/WrapperTypeInfo.h:
3083         (WrapperTypeTraits): Added.
3084         * bindings/v8/custom/V8CustomElementConstructorCustom.cpp:
3085         (WebCore::V8CustomElementConstructor::callAsFunctionCallback):
3086         * dom/CustomElementConstructor.cpp:
3087         (WebCore::CustomElementConstructor::create):
3088         (WebCore::CustomElementConstructor::CustomElementConstructor):
3089         (WebCore::CustomElementConstructor::createElement):
3090         (WebCore::setTypeExtension):
3091         * dom/CustomElementConstructor.h:
3092         (CustomElementConstructor):
3093         (WebCore::CustomElementConstructor::document):
3094         (WebCore::CustomElementConstructor::typeName):
3095         (WebCore::CustomElementConstructor::localName):
3096         * dom/CustomElementRegistry.cpp:
3097         (WebCore::nameIncludesHyphen):
3098         (WebCore::CustomElementRegistry::isValidName):
3099         (WebCore::CustomElementRegistry::registerElement):
3100         (WebCore::CustomElementRegistry::findFor):
3101         (WebCore::CustomElementRegistry::find):
3102         (WebCore::CustomElementRegistry::createElement):
3103         * dom/CustomElementRegistry.h:
3104         (CustomElementRegistry):
3105         * dom/Document.cpp:
3106         (WebCore::Document::createElement):
3107         (WebCore::Document::createElementNS):
3108         (WebCore::Document::registerElement):
3109         * dom/Document.h:
3110         (Document):
3111         (WebCore::Document::registry): Moved from Document.cpp to be inlined.
3112         * dom/Document.idl:
3113         * dom/make_names.pl:
3114         (printFactoryCppFile):
3115         (printWrapperFactoryCppFile):
3116         (printWrapperFactoryHeaderFile):
3117         * html/HTMLAttributeNames.in: Added @is attribute
3118
3119 2013-03-15  Alexey Proskuryakov  <ap@apple.com>
3120
3121         Minor cleanup in worker code
3122         https://bugs.webkit.org/show_bug.cgi?id=112455
3123
3124         Reviewed by Anders Carlsson.
3125
3126         - Added OVERRIDE keywords.
3127         - Toned down FIXMEs about single MessagePort versions of functions. It's not a given
3128         that we'll want to get rid of them even when implementing array versions.
3129         - Explicitly marked virtual destructors as virtual.
3130
3131         * dom/MessageEvent.cpp:
3132         * dom/MessageEvent.h:
3133         * workers/Worker.cpp:
3134         * workers/Worker.h:
3135         Removed an unused version of postMessage() that took no MessagePorts. This makes
3136         it less confusing why MessagePortArray is passed by pointer, and not by reference.
3137
3138         * workers/DedicatedWorkerContext.cpp:
3139         (WebCore::DedicatedWorkerContext::~DedicatedWorkerContext):
3140         * workers/DedicatedWorkerContext.h:
3141         Added a destructor instead of an implicit one.
3142         Removed an unused version of postMessage() that took no MessagePorts.
3143
3144         * workers/SharedWorker.h: Removed an unused virtual function (thank you OVERRIDE!)
3145
3146         * dom/MessagePort.cpp:
3147         * dom/MessagePort.h:
3148         * loader/WorkerThreadableLoader.h:
3149         * page/DOMWindow.h:
3150         * workers/AbstractWorker.h:
3151         * workers/DedicatedWorkerThread.h:
3152         * workers/SharedWorkerContext.h:
3153         * workers/SharedWorkerThread.h:
3154         * workers/WorkerContext.h:
3155         * workers/WorkerMessagingProxy.h:
3156         * workers/WorkerObjectProxy.h:
3157         * workers/WorkerScriptLoader.h:
3158
3159 2013-03-15  Joshua Bell  <jsbell@chromium.org>
3160
3161         [V8] Binding: Implement EnforceRange IDL Attribute for long long conversions
3162         https://bugs.webkit.org/show_bug.cgi?id=96798
3163
3164         Reviewed by Kentaro Hara.
3165
3166         Implement [EnforceRange] attribute for V8 bindings, which specifies throwing behavior
3167         on conversions outside int/uint 32/64 ranges and edge cases like NaNs and Infinities.
3168         Conversely, conversions without this attribute should *not* throw.
3169
3170         Tests: fast/js/webidl-type-mapping.html:
3171                fast/dom/non-numeric-values-numeric-parameters.html
3172                fast/js/script-tests/select-options-add.html
3173                storage/indexeddb/intversion-bad-parameters.html
3174
3175         * Modules/indexeddb/IDBCursor.cpp: Remove custom range enforcement for advance()
3176         * Modules/indexeddb/IDBCursor.h: Adjust type to match WebIDL.
3177         * Modules/indexeddb/IDBCursor.idl: Specify [EnforceRange] and type matches spec WebIDL.
3178         * Modules/indexeddb/IDBFactory.cpp: Remove custom range enforcement for open()
3179         * Modules/indexeddb/IDBFactory.h: Adjust type to match WebIDL.
3180         * Modules/indexeddb/IDBFactory.idl: Specify [EnforceRange] and type matches spec WebIDL.
3181         * bindings/scripts/CodeGeneratorJS.pm:
3182         (JSValueToNative): Add FIXME to support [EnforceRange]
3183         * bindings/scripts/CodeGeneratorV8.pm:
3184         (GenerateNormalAttrSetter): Handle [EnforceRange] in attribute setters
3185         (GenerateParametersCheck): Handle [EnforceRange] in parameters.
3186         (JSValueToNative): Pass EnforceRange to toInt() functions as appropriate.
3187         * bindings/scripts/IDLAttributes.txt:
3188         * bindings/scripts/test/TestObj.idl: Tests w/ [EnforceRange]
3189         * bindings/scripts/test/V8/V8TestObj.cpp: Updated expectations
3190         * bindings/scripts/test/V8/V8TestTypedefs.cpp: Updated expectations.
3191         * bindings/v8/V8Binding.cpp: Overloads for toInt() variants that handle constraints.
3192         (WebCore::toInt32):
3193         (WebCore::toUInt32):
3194         (WebCore::toInt64):
3195         (WebCore::toUInt64):
3196         * bindings/v8/V8Binding.h: Ditto, plus helpers for callers not expecting errors.
3197         (WebCore::toInt32):
3198         (WebCore::toUInt32):
3199         (WebCore::toInt64):
3200         (WebCore::toUInt64):
3201         * bindings/v8/V8BindingMacros.h: Helper macros for type conversions that may throw.
3202         * testing/TypeConversions.h: Added new members with EnforceRange constraint.
3203         * testing/TypeConversions.idl: Ditto.
3204
3205 2013-03-15  Eugene Klyuchnikov  <eustas@chromium.org>
3206
3207         Web Inspector: [Network] Refine JSDocs in NetworkRequest.js
3208         https://bugs.webkit.org/show_bug.cgi?id=112412
3209
3210         Reviewed by Vsevolod Vlasov.
3211
3212         Return types for some members are confusing (Object).
3213
3214         * inspector/front-end/NetworkManager.js: Fixed JSDocs.
3215         * inspector/front-end/NetworkRequest.js: Ditto. Plus minor refactorings.
3216
3217 2013-03-15  Andy Estes  <aestes@apple.com>
3218
3219         REGRESSION (r127277): CSS URIs with multi-byte Unicode escape sequences fail to parse
3220         https://bugs.webkit.org/show_bug.cgi?id=112436
3221
3222         Reviewed by Michael Saboff.
3223
3224         r127277 modified the CSS parser to use 8-bit strings when possible.
3225         However, it failed to handle URIs that contain Unicode escape sequences
3226         that expand to multi-byte characters. Not only would the URI fail to
3227         parse, but so would the remainder of the input string.
3228
3229         Fix this by producing a 16-bit result when we detect a URI with a
3230         multi-byte Unicode escape, like we do for identifiers and other strings.
3231
3232         Test: fast/css/url-with-multi-byte-unicode-escape.html
3233
3234         * css/CSSParser.cpp:
3235         (WebCore::checkAndSkipString): Changed to be a free function since it
3236         doesn't access CSSParser's internal state.
3237         (WebCore::CSSParser::findURI): Added a function that consolidates the
3238         logic of finding the start and end pointers of the URI and the quote
3239         character (if encountered), starting at the current character.
3240         (WebCore::CSSParser::parseURIInternal): Removed duplicated logic for
3241         finding the URI bounds (this now lives in findURI()) and logic for
3242         setting the token type and updating the current character (this now
3243         lives in parseURI()).
3244         (WebCore::CSSParser::parseURI): Find the URI and parse it. If a
3245         multi-byte Unicode escape is encountered, rewind to the beginning of
3246         the URI and re-parse with a 16-bit string as the destination.
3247         * css/CSSParser.h:
3248
3249 2013-03-15  Andreas Kling  <akling@apple.com>
3250
3251         [JSC] Remove custom WebAudio mark functions that we can generate instead.
3252         <http://webkit.org/b/110976>
3253
3254         Reviewed by Eric Carlson.
3255
3256         Remove custom JSC mark functions for AudioContext and ScriptProcessorNode since they
3257         are trivial to generate.
3258
3259         * Modules/webaudio/AudioContext.idl:
3260         * Modules/webaudio/ScriptProcessorNode.idl:
3261         * GNUmakefile.list.am:
3262         * UseJSC.cmake:
3263         * WebCore.xcodeproj/project.pbxproj:
3264         * bindings/js/JSAudioContextCustom.cpp:
3265         * bindings/js/JSScriptProcessorNodeCustom.cpp: Removed.
3266
3267 2013-03-15  Jer Noble  <jer.noble@apple.com>
3268
3269         Unreviewed build fix. Rename local variable which was colliding with class method.
3270
3271         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
3272         (PlatformCALayer::clone):
3273
3274 2013-03-15  Joshua Bell  <jsbell@chromium.org>
3275
3276         IndexedDB: Handle success events arriving after context stopped
3277         https://bugs.webkit.org/show_bug.cgi?id=112451
3278
3279         Reviewed by Tony Chang.
3280
3281         In multiprocess ports, events from the back-end can arrive in the form of
3282         onXXX() calls after the script execution context has stopped. These need to
3283         be ignored. This was already done in most cases, but missing for two overloads
3284         of IDBRequest::onSuccess() - void and int64_t.
3285
3286         Test: webkit_unit_test IDBRequestTest.EventsAfterStopping
3287
3288         * Modules/indexeddb/IDBRequest.cpp:
3289         (WebCore::IDBRequest::onSuccess): Early return if context has stopped.
3290         (WebCore::IDBRequest::onSuccessInternal): ASSERT() that callers have checked context.
3291
3292 2013-03-14  Jer Noble  <jer.noble@apple.com>
3293
3294         REGRESSION: -webkit-box-reflect does not show on video elements
3295         https://bugs.webkit.org/show_bug.cgi?id=112397
3296
3297         Reviewed by Simon Fraser.
3298
3299         Test: compositing/video/video-reflection.html
3300
3301         Support cloning specific CALayer subtypes in PlatformCALayer,
3302         which allows reflections to work correctly for those layer types.
3303         Specifically, add support for cloning AVPlayerLayer layers.
3304
3305         * platform/graphics/ca/GraphicsLayerCA.cpp:
3306         (WebCore::GraphicsLayerCA::cloneLayer): Moved most of the
3307             implementation to PlatformCALayer::clone().
3308         * platform/graphics/ca/PlatformCALayer.h:
3309         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
3310         (PlatformCALayer::PlatformCALayer): Set the layerType to 
3311             LayerTypeAVPlayerLayer if the PlatformLayer parameter is an
3312             AVPlayerLayer.
3313         (PlatformCALayer::clone): Moved from GraphicsLayerCA::cloneLayer().
3314             Copy the player value to the new layer, if the current layer is
3315             a LayerTypeAVPlayerLayer.
3316         (PlatformCALayer::playerLayer):
3317         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
3318         (PlatformCALayer::clone): Moved from GraphicsLayerCA::cloneLayer().
3319             May want to add support for AVCFPlayerLayers in the future.
3320
3321 2013-03-15  Nate Chapin  <japhet@chromium.org>
3322
3323         Hide MainResourceLoader from the outside world
3324         https://bugs.webkit.org/show_bug.cgi?id=109971
3325
3326         Reviewed by Adam Barth.
3327
3328         No new tests, refactor only.
3329
3330         * WebCore.exp.in:
3331         * dom/Document.cpp:
3332         * html/HTMLEmbedElement.cpp:
3333         * html/MediaDocument.cpp:
3334         * html/PluginDocument.cpp:
3335         * loader/DocumentLoader.cpp:
3336         (WebCore::DocumentLoader::mainResourceLoader):
3337         (WebCore::DocumentLoader::finishedLoading):
3338         (WebCore::DocumentLoader::receivedData):
3339         (WebCore::DocumentLoader::setMainResourceDataBufferingPolicy):
3340         * loader/DocumentLoader.h:
3341         * loader/EmptyClients.h:
3342         * loader/FrameLoader.cpp:
3343         * loader/FrameLoaderClient.h:
3344         * loader/MainResourceLoader.cpp:
3345         * loader/appcache/ApplicationCacheGroup.cpp:
3346         * loader/appcache/ApplicationCacheHost.cpp:
3347
3348 2013-03-15  Abhishek Arya  <inferno@chromium.org>
3349
3350         Replace static_casts with to* helper functions.
3351         https://bugs.webkit.org/show_bug.cgi?id=112401
3352
3353         Reviewed by Stephen Chenney.
3354
3355         to* helper functions are preferred over static_cast calls since they
3356         help to catch bad casts easily on the testing infrastructure.
3357
3358         * accessibility/AccessibilityObject.cpp:
3359         (WebCore::appendAccessibilityObject):
3360         * accessibility/AccessibilityRenderObject.cpp:
3361         (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
3362         * accessibility/AccessibilityScrollView.cpp:
3363         (WebCore::AccessibilityScrollView::webAreaObject):
3364         (WebCore::AccessibilityScrollView::documentFrameView):
3365         (WebCore::AccessibilityScrollView::parentObject):
3366         (WebCore::AccessibilityScrollView::parentObjectIfExists):
3367         * accessibility/chromium/AXObjectCacheChromium.cpp:
3368         (WebCore::AXObjectCache::postPlatformNotification):
3369         * bindings/js/JSPluginElementFunctions.cpp:
3370         (WebCore::pluginScriptObjectFromPluginViewBase):
3371         * bindings/js/PageScriptDebugServer.cpp:
3372         (WebCore::PageScriptDebugServer::setJavaScriptPaused):
3373         * bindings/js/ScriptController.cpp:
3374         (WebCore::ScriptController::createScriptInstanceForWidget):
3375         * bindings/js/ScriptControllerQt.cpp:
3376         (WebCore::ScriptController::createScriptInstanceForWidget):
3377         * bindings/v8/ScriptController.cpp:
3378         (WebCore::ScriptController::createScriptInstanceForWidget):
3379         * html/HTMLObjectElement.cpp:
3380         (WebCore::HTMLObjectElement::appendFormData):
3381         * page/EventHandler.cpp:
3382         (WebCore::EventHandler::subframeForTargetNode):
3383         (WebCore::EventHandler::passGestureEventToWidget):
3384         * page/Frame.cpp:
3385         (WebCore::Frame::frameForWidget):
3386         * page/FrameView.cpp:
3387         (WebCore::collectFrameViewChildren):
3388         (WebCore::FrameView::hasCustomScrollbars):
3389         (WebCore::FrameView::convertToContainingView):
3390         (WebCore::FrameView::convertFromContainingView):
3391         (WebCore::FrameView::removeChild):
3392         * page/FrameView.h:
3393         (WebCore::toFrameView):
3394         (WebCore):
3395         * page/Page.cpp:
3396         (WebCore::Page::collectPluginViews):
3397         * page/chromium/EventHandlerChromium.cpp:
3398         (WebCore::EventHandler::passWheelEventToWidget):
3399         * page/efl/EventHandlerEfl.cpp:
3400         (WebCore::EventHandler::passWheelEventToWidget):
3401         * page/gtk/EventHandlerGtk.cpp:
3402         (WebCore::EventHandler::passWheelEventToWidget):
3403         * page/mac/EventHandlerMac.mm:
3404         (WebCore::EventHandler::passWheelEventToWidget):
3405         * page/qt/EventHandlerQt.cpp:
3406         (WebCore::EventHandler::passWheelEventToWidget):
3407         * page/scrolling/ScrollingCoordinator.cpp:
3408         (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
3409         * page/win/EventHandlerWin.cpp:
3410         (WebCore::EventHandler::passWheelEventToWidget):
3411         * page/wx/EventHandlerWx.cpp:
3412         (WebCore::EventHandler::passWheelEventToWidget):
3413         * platform/ScrollView.h:
3414         (WebCore::toScrollView):
3415         (WebCore):
3416         * platform/Scrollbar.cpp:
3417         (WebCore::Scrollbar::isScrollViewScrollbar):
3418         (WebCore::Scrollbar::mouseUp):
3419         (WebCore::Scrollbar::axObjectCache):
3420         * platform/Widget.h:
3421         (WebCore::Widget::isScrollView):
3422         * platform/blackberry/PlatformScreenBlackBerry.cpp:
3423         (WebCore::toUserSpace):
3424         * platform/efl/ScrollbarEfl.cpp:
3425         (ScrollbarEfl::setParent):
3426         * platform/qt/PlatformSupportQt.cpp:
3427         (WebCore::PlatformSupport::popupsAllowed):
3428         (WebCore::PlatformSupport::pluginScriptableObject):
3429         * plugins/IFrameShimSupport.cpp:
3430         (WebCore::getPluginOcclusions):
3431         * plugins/PluginView.h:
3432         (WebCore::toPluginView):
3433         (WebCore):
3434         * plugins/PluginViewBase.h:
3435         (WebCore::PluginViewBase::isPluginViewBase):
3436         (PluginViewBase):
3437         (WebCore::toPluginViewBase):
3438         (WebCore):
3439         * plugins/blackberry/PluginViewBlackBerry.cpp:
3440         (WebCore::PluginView::updatePluginWidget):
3441         (WebCore::PluginView::updateBuffer):
3442         (WebCore::PluginView::paint):
3443         (WebCore::PluginView::handleScrollEvent):
3444         (WebCore::PluginView::calculateClipRect):
3445         (WebCore::PluginView::handleFullScreenAllowedEvent):
3446         (WebCore::PluginView::handleFullScreenExitEvent):
3447         (WebCore::PluginView::setParent):
3448         (WebCore::PluginView::setNPWindowIfNeeded):
3449         (WebCore::PluginView::platformGetValue):
3450         (WebCore::PluginView::platformStart):
3451         (WebCore::PluginView::platformDestroy):
3452         (WebCore::PluginView::setBackgroundPlay):
3453         * plugins/blackberry/PluginViewPrivateBlackBerry.cpp:
3454         (WebCore::PluginViewPrivate::setVisibleRects):
3455         (WebCore::PluginViewPrivate::showKeyboard):
3456         (WebCore::PluginViewPrivate::requestFullScreen):
3457         (WebCore::PluginViewPrivate::requestCenterFitZoom):
3458         (WebCore::PluginViewPrivate::lockOrientation):
3459         (WebCore::PluginViewPrivate::unlockOrientation):
3460 &