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