44d8f6daed3bb99fd0ae6f58a2b67c6b96e5763a
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-03-20  Arvid Nilsson  <anilsson@rim.com>
2
3         [BlackBerry] compositing/iframes/scroll-fixed-transformed-element.html fails in manual testing
4         https://bugs.webkit.org/show_bug.cgi?id=112806
5
6         Reviewed by Antonio Gomes.
7
8         PR 283363
9
10         When scrolling the iframe, the position: fixed element is correctly
11         positioned, that is, as if it was fixed with respect to the iframe's
12         viewport. When scrolling the main frame however, the fixed pos element
13         was positioned as if it was fixed with respect to the main frame's
14         viewport.
15
16         Fixed by falling back to using the WebKit-thread scroll position for
17         fixed positioning in LayerRenderer, if the override doesn't have a
18         position currently set, i.e. if we are not currently scrolling the
19         iframe.
20
21         The effects of the bug are only visual, i.e. not detectable by DRT.
22
23         Manually testable using compositing/iframes/scroll-fixed-transformed-element.html
24
25         * platform/graphics/blackberry/LayerRenderer.cpp:
26         (WebCore::LayerRenderer::updateLayersRecursive):
27
28 2013-03-20  Michael Pruett  <michael@68k.org>
29
30         [V8] Simplify implementation of EnforceRange conversions
31         https://bugs.webkit.org/show_bug.cgi?id=112758
32
33         Reviewed by Kentaro Hara.
34
35         Factor out EnforceRange conversion into a helper function.
36         Simplify calculation for truncation.
37
38         Tests: fast/js/webidl-type-mapping.html
39                storage/indexeddb/cursor-advance.html
40                storage/indexeddb/cursor-advance-workers.html
41                storage/indexeddb/intversion-bad-parameters.html
42
43         * bindings/v8/V8Binding.cpp:
44         (WebCore::enforceRange):
45         (WebCore):
46         (WebCore::toInt32):
47         (WebCore::toUInt32):
48         (WebCore::toInt64):
49         (WebCore::toUInt64):
50
51 2013-03-20  Harald Alvestrand  <hta@google.com>
52
53         Remove Local/Remote and RTCStatsElement from WebRTCStats API
54         https://bugs.webkit.org/show_bug.cgi?id=112678
55
56         Reviewed by Adam Barth.
57
58         Pure removal, remaining functionality covered by existing test.
59
60         * Modules/mediastream/RTCStatsReport.cpp:
61         * Modules/mediastream/RTCStatsReport.h:
62         (RTCStatsReport):
63         * Modules/mediastream/RTCStatsResponse.cpp:
64         * Modules/mediastream/RTCStatsResponse.h:
65         (RTCStatsResponse):
66         * platform/chromium/support/WebRTCStatsResponse.cpp:
67         * platform/mediastream/RTCStatsResponseBase.h:
68         (RTCStatsResponseBase):
69
70 2013-03-20  Xingnan Wang  <xingnan.wang@intel.com>
71
72         ASSERTION FAILED: !m_renderingAutomaticPullNodes.size()
73         https://bugs.webkit.org/show_bug.cgi?id=112777
74
75         Reviewed by Chris Rogers.
76
77         * Modules/webaudio/AudioContext.cpp:
78         (WebCore::AudioContext::~AudioContext):
79
80 2013-03-20  Rouslan Solomakhin  <rouslan@chromium.org>
81
82         Copy-paste should not spellcheck when continuous spellcheck is turned off
83         https://bugs.webkit.org/show_bug.cgi?id=112464
84
85         Reviewed by Ryosuke Niwa.
86
87         Test: editing/spelling/spellcheck-paste-continuous-disabled.html
88
89         * WebCore.exp.in: Export WebCore::Editor::isContinuousSpellCheckingEnabled() and WebCore::Editor::toggleContinuousSpellChecking() for use by internals.
90         * WebCore.order: Export WebCore::Editor::isContinuousSpellCheckingEnabled() and WebCore::Editor::toggleContinuousSpellChecking() for use by internals.
91         * editing/Editor.cpp:
92         (WebCore::Editor::replaceSelectionWithFragment): Do not spellcheck if continuous spellcheck is turned off.
93         * testing/Internals.cpp:
94         (WebCore::Internals::resetToConsistentState): Leave continuous spellcheck turned on after a test.
95         (WebCore::Internals::setContinuousSpellCheckingEnabled): Let tests enable and disable continuous spellcheck.
96         (WebCore):
97         * testing/Internals.h: Let tests enable and disable continuous spellcheck.
98         (Internals):
99         * testing/Internals.idl: Let tests enable and disable continuous spellcheck.
100
101 2013-03-20  Aaron Colwell  <acolwell@chromium.org>
102
103         Add support for MediaSource::isTypeSupported()
104         https://bugs.webkit.org/show_bug.cgi?id=112301
105
106         Reviewed by Darin Fisher.
107
108         Test: http/tests/media/media-source/video-media-source-is-type-supported.html
109
110         * Modules/mediasource/MediaSource.cpp:
111         (WebCore::MediaSource::addSourceBuffer): Added isTypeSupported() call to verify parameters
112                                                  pass into this method.
113         (WebCore::MediaSource::isTypeSupported):
114         (WebCore):
115         * Modules/mediasource/MediaSource.h:
116         (MediaSource):
117         * Modules/mediasource/MediaSource.idl: Added isTypeSupported().
118         * platform/MIMETypeRegistry.h:
119         (MIMETypeRegistry): Added isSupportedMediaSourceMIMEType().
120         * platform/chromium/MIMETypeRegistryChromium.cpp:
121         (WebCore):
122         (WebCore::MIMETypeRegistry::isSupportedMediaSourceMIMEType): Implemented in terms of WebMimeRegistry::isSupportedMediaSourceMIMEType.
123
124 2013-03-20  Brent Fulgham  <bfulgham@webkit.org>
125
126         [WinCairo] Unreviewed VS2010 build correction.
127
128         * WebCore.vcxproj/WebCore.vcxproj: Enable build of NetworkStorageSessionStub.cpp
129         for WinCairo port.
130         * WebCore.vcxproj/WebCore.vcxproj.filters: Correct build type of
131         CookieJarCurl from 'custom' to 'C++ source file'
132
133 2013-03-20  Marja Hölttä  <marja@chromium.org>
134
135         [V8] Rename DOMDataStore::isMainWorldObject
136         https://bugs.webkit.org/show_bug.cgi?id=112817
137
138         Reviewed by Jochen Eisinger.
139
140         No new tests (no changes in functionality).
141
142         * bindings/v8/DOMDataStore.h:
143         (WebCore::DOMDataStore::getWrapperFast):
144         (WebCore::DOMDataStore::getWrapper):
145         (WebCore::DOMDataStore::getWrapperForMainWorld):
146         (WebCore::DOMDataStore::setWrapper):
147         (WebCore::DOMDataStore::canExistInWorker):
148
149 2013-03-20  Ilya Tikhonovsky  <loislo@chromium.org>
150
151         Web Inspector: Flame Chart. Provide Overview pane for better user expirience.
152         https://bugs.webkit.org/show_bug.cgi?id=112496
153
154         Reviewed by Yury Semikhatsky.
155
156         This patch implements basic part of Overview Pane in FlameChart.
157         The idea of the patch is to move everything into chart-container element.
158         And put OverviewGrid into new overview-container element.
159
160         Drive by change: fix the layout of the flame chart elements.
161         Drive by change: fix the drag window & drag resizer mechanics
162         for the case when the parent element has zero offsetLeft.
163
164         * inspector/front-end/FlameChart.js:
165         (WebInspector.FlameChart):
166         (WebInspector.FlameChart.OverviewCalculator):
167         (WebInspector.FlameChart.OverviewCalculator.prototype._updateBoundaries):
168         (WebInspector.FlameChart.OverviewCalculator.prototype.computePosition):
169         (WebInspector.FlameChart.OverviewCalculator.prototype.formatTime):
170         (WebInspector.FlameChart.OverviewCalculator.prototype.maximumBoundary):
171         (WebInspector.FlameChart.OverviewCalculator.prototype.minimumBoundary):
172         (WebInspector.FlameChart.OverviewCalculator.prototype.boundarySpan):
173         (WebInspector.FlameChart.prototype._onWindowChanged):
174         (WebInspector.FlameChart.prototype._adjustXScale):
175         (WebInspector.FlameChart.prototype.update):
176         * inspector/front-end/OverviewGrid.js:
177         (WebInspector.OverviewGrid.Window):
178         (WebInspector.OverviewGrid.Window.prototype._resizerElementStartDragging):
179         (WebInspector.OverviewGrid.Window.prototype._leftResizeElementDragging):
180         (WebInspector.OverviewGrid.Window.prototype._rightResizeElementDragging):
181         (WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
182         (WebInspector.OverviewGrid.Window.prototype._windowSelectorDragging):
183         (WebInspector.OverviewGrid.Window.prototype._endWindowSelectorDragging):
184         (WebInspector.OverviewGrid.Window.prototype._setWindowPosition):
185         (WebInspector.OverviewGrid.Window.prototype._onMouseWheel):
186         (WebInspector.OverviewGrid.WindowSelector):
187         * inspector/front-end/TimelineOverviewPane.js:
188         * inspector/front-end/flameChart.css:
189         (.chart-container .item-anchor):
190         (.overview-container):
191         (.chart-container):
192         (#flame-chart-overview-grid .resources-dividers-label-bar):
193         * inspector/front-end/inspectorCommon.css:
194         (.resources-divider-label):
195
196 2013-03-20  Sergey Ryazanov  <serya@chromium.org>
197
198         Web Inspector: Plumbing CSS warnings
199         https://bugs.webkit.org/show_bug.cgi?id=111334
200
201         Reviewed by Pavel Feldman.
202
203         Adding a framework for plumbing CSS warnings from CSSParser/grammar to the Inspector console.
204
205         * css/CSSParser.cpp:
206         (WebCore::CSSParser::CSSParser):
207         (WebCore::CSSParser::parseSheet):
208         (WebCore::CSSParser::syntaxError):
209         (WebCore):
210         (WebCore::CSSParser::isLoggingErrors):
211         (WebCore::CSSParser::logError):
212         * css/CSSParser.h:
213         (CSSParser):
214         (CSSParser::Location):
215         (WebCore):
216         * css/StyleSheetContents.cpp:
217         (WebCore::StyleSheetContents::parseAuthorStyleSheet):
218         (WebCore::StyleSheetContents::parseString):
219         (WebCore::StyleSheetContents::parseStringAtLine):
220         * css/StyleSheetContents.h:
221         (StyleSheetContents):
222         * dom/StyleElement.cpp:
223         (WebCore::StyleElement::createSheet):
224         * page/PageConsole.cpp:
225         (WebCore::PageConsole::addMessage):
226
227 2013-03-20  Justin Novosad  <junov@google.com>
228
229         [Chromium] Code cleanup: removing support for non-deferred 2d canvas rendering
230         https://bugs.webkit.org/show_bug.cgi?id=112605
231
232         Reviewed by James Robinson.
233
234         Deleting all the code that was used for propagating and supporting
235         the Chromium setting for disabling deferred 2d canvas rendering.
236
237         No new tests: Affected code paths covered by existing tests.
238
239         * html/HTMLCanvasElement.cpp:
240         (WebCore::HTMLCanvasElement::createImageBuffer):
241         * html/HTMLCanvasElement.h:
242         * page/Settings.in:
243         * platform/graphics/ImageBuffer.h:
244         (WebCore::ImageBuffer::create):
245         (ImageBuffer):
246         * platform/graphics/blackberry/ImageBufferBlackBerry.cpp:
247         (WebCore::ImageBuffer::ImageBuffer):
248         * platform/graphics/cairo/ImageBufferCairo.cpp:
249         (WebCore::ImageBuffer::ImageBuffer):
250         * platform/graphics/cg/ImageBufferCG.cpp:
251         (WebCore::ImageBuffer::ImageBuffer):
252         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
253         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
254         (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
255         (WebCore::Canvas2DLayerBridge::prepareForDraw):
256         (WebCore::Canvas2DLayerBridge::storageAllocatedForRecordingChanged):
257         (WebCore::Canvas2DLayerBridge::storageAllocatedForRecording):
258         (WebCore::Canvas2DLayerBridge::freeMemoryIfPossible):
259         (WebCore::Canvas2DLayerBridge::flush):
260         (WebCore::Canvas2DLayerBridge::skCanvas):
261         (WebCore::Canvas2DLayerBridge::prepareTexture):
262         (WebCore::Canvas2DLayerBridge::contextAcquired):
263         * platform/graphics/chromium/Canvas2DLayerBridge.h:
264         (WebCore::Canvas2DLayerBridge::create):
265         (Canvas2DLayerBridge):
266         * platform/graphics/qt/ImageBufferQt.cpp:
267         (WebCore::ImageBuffer::ImageBuffer):
268         * platform/graphics/skia/ImageBufferSkia.cpp:
269         (WebCore::createAcceleratedCanvas):
270         (WebCore::ImageBuffer::ImageBuffer):
271         * platform/graphics/wince/ImageBufferWinCE.cpp:
272         (WebCore::ImageBuffer::ImageBuffer):
273         * platform/graphics/wx/ImageBufferWx.cpp:
274         (WebCore::ImageBuffer::ImageBuffer):
275
276 2013-03-20  Mike West  <mkwst@chromium.org>
277
278         Drop full URLs from cross-domain access errors caused by 'document.domain' mismatches.
279         https://bugs.webkit.org/show_bug.cgi?id=112813
280
281         Reviewed by Timothy Hatcher.
282
283         Following up on http://wkbug.com/112042, this patch brings 'document.domain'
284         mismatch error messages into line with the newly origin-only default
285         message. There will probably be two or three more patches in this series
286         just to keep the rebaselines down to something managably reviewable.
287
288         * page/DOMWindow.cpp:
289         (WebCore::DOMWindow::crossDomainAccessErrorMessage):
290             Move the default message redefinition up out of the final 'return' so
291             that 'document.domain' mismatch errors grab the new text.
292
293 2013-03-20  Ken Kania  <kkania@chromium.org>
294
295         Web Inspector: Add promptText param to Page.handleJavaScriptDialog
296         https://bugs.webkit.org/show_bug.cgi?id=112706
297
298         Reviewed by Pavel Feldman.
299
300         * inspector/Inspector.json:
301         * inspector/InspectorClient.h:
302         (WebCore::InspectorClient::handleJavaScriptDialog):
303         * inspector/InspectorPageAgent.cpp:
304         (WebCore::InspectorPageAgent::handleJavaScriptDialog):
305         * inspector/InspectorPageAgent.h:
306
307 2013-03-20  Andrey Lushnikov  <lushnikov@chromium.org>
308
309         Web Inspector: fix SourceFrame.js compilation warning
310         https://bugs.webkit.org/show_bug.cgi?id=112804
311
312         Reviewed by Yury Semikhatsky.
313
314         No new tests: no change in behavior.
315
316         - Explicitly parse lineNumber from object property name.
317         - Add type annotations to ensure addMessageToSource is monomorphic.
318
319         * inspector/front-end/SourceFrame.js:
320         (WebInspector.SourceFrame.prototype.clearMessages):
321
322 2013-03-20  Dan Carney  <dcarney@google.com>
323
324         [v8] unsafe persistent access in V8LazyEventListener
325         https://bugs.webkit.org/show_bug.cgi?id=112807
326
327         Reviewed by Kentaro Hara.
328
329         No new tests.
330
331         * bindings/v8/V8LazyEventListener.cpp:
332         (WebCore::toObjectWrapper):
333
334 2013-03-20  Arvid Nilsson  <anilsson@rim.com>
335
336         [BlackBerry] Enable appropriate vertex attribute arrays in LayerRenderer::useProgram()
337         https://bugs.webkit.org/show_bug.cgi?id=112757
338
339         Reviewed by Rob Buis.
340
341         PR 306465
342
343         Make the LayerRenderer and associated code more bullet-proof when it
344         comes to enabling vertex attribute arrays, by enabling them already
345         when LayerRenderer::useProgram() is called. This fixes a bug where the
346         video hole punch rectangle wasn't punched when preceding rendering
347         caused the vertex attribute array at index 0 to be disabled, such as
348         when rendering the text selection overlay immediately before video.
349
350         A number of places where the position attribute index was hard-coded
351         to 0 were also fixed. This causes no change in behavior, the position
352         attribute was really at 0, but nonetheless that shouldn't be hardcoded.
353
354         The effects of this patch are only manually testable.
355
356         * platform/graphics/blackberry/LayerCompositingThread.cpp:
357         (WebCore::LayerCompositingThread::drawTextures):
358         (WebCore::LayerCompositingThread::drawSurface):
359         * platform/graphics/blackberry/LayerRenderer.cpp:
360         (WebCore::LayerRenderer::compositeBuffer):
361         (WebCore::LayerRenderer::drawColor):
362         (WebCore::LayerRenderer::drawDebugBorder):
363         (WebCore::LayerRenderer::drawHolePunchRect):
364         (WebCore::LayerRenderer::compositeLayersRecursive):
365         (WebCore::LayerRenderer::useProgram):
366
367 2013-03-20  Andrey Lushnikov  <lushnikov@chromium.org>
368
369         Web Inspector: [CodeMirror] implement highlightRange method
370         https://bugs.webkit.org/show_bug.cgi?id=112802
371
372         Reviewed by Vsevolod Vlasov.
373
374         - Implement highlightRange/removeHighlight methods in
375         CodeMirrorTextEditor.
376         - Update TextEditor interface closure annotations.
377
378         No new tests.
379
380         * inspector/front-end/CodeMirrorTextEditor.js:
381         (WebInspector.CodeMirrorTextEditor.prototype.removeHighlight):
382         (WebInspector.CodeMirrorTextEditor.prototype.highlightRange):
383         * inspector/front-end/DefaultTextEditor.js:
384         * inspector/front-end/TextEditor.js:
385
386 2013-03-20  Andrey Lushnikov  <lushnikov@chromium.org>
387
388         Web Inspector: [CodeMirror] show source location for codemirror text editor
389         https://bugs.webkit.org/show_bug.cgi?id=112798
390
391         Reviewed by Vsevolod Vlasov.
392
393         No new tests.
394
395         - Implement CodeMirrorTextEditor.copyRange method
396         - Fire "selectionChange" event for text editor delegate from
397         CodeMirrorTextEditor.
398
399         * inspector/front-end/CodeMirrorTextEditor.js:
400         (WebInspector.CodeMirrorTextEditor):
401         (WebInspector.CodeMirrorTextEditor.prototype.copyRange):
402         (WebInspector.CodeMirrorTextEditor.prototype._cursorActivity):
403
404 2013-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
405
406         Unreviewed, rolling out r146331.
407         http://trac.webkit.org/changeset/146331
408         https://bugs.webkit.org/show_bug.cgi?id=112795
409
410         Does not work as expected (Requested by carewolf on #webkit).
411
412         * platform/graphics/qt/FontQt.cpp:
413         (WebCore::Font::initFormatForTextLayout):
414
415 2013-03-20  Eugene Klyuchnikov  <eustas@chromium.org>
416
417         Web Inspector: [Resources] Local Storage: "Add item" row height doesn't match underlying grid.
418         https://bugs.webkit.org/show_bug.cgi?id=112433
419
420         Reviewed by Pavel Feldman.
421
422         Fixed cell height to correspond grid step.
423
424         * inspector/front-end/dataGrid.css:
425         (.data-grid td): Fixed cell height to correspond grid step.
426
427 2013-03-20  Allan Sandfeld Jensen  <allan.jensen@digia.com>
428
429         [Qt] New fast/text/word-space-with-kerning-3.html fails on Qt
430         https://bugs.webkit.org/show_bug.cgi?id=112668
431
432         Reviewed by Jocelyn Turcotte.
433
434         Kerning is on by default in Qt. This means we need to disable it
435         when WebCore does not request it.
436
437         * platform/graphics/qt/FontQt.cpp:
438         (WebCore::Font::initFormatForTextLayout):
439
440 2013-03-20  Ilya Tikhonovsky  <loislo@chromium.org>
441
442         Web Inspector: OverviewGrid rename classes according to names of js classes.
443         https://bugs.webkit.org/show_bug.cgi?id=112786
444
445         Reviewed by Yury Semikhatsky.
446
447         It is a part of meta bug 'extract OverviewGrid from TimelineOverviewPane'.
448         As the last step it renames timeline-...... classes to overview-grid-...... classes
449         and moves them to inspectorCommon.css
450
451         * inspector/front-end/OverviewGrid.js:
452         (WebInspector.OverviewGrid):
453         (WebInspector.OverviewGrid.Window):
454         (WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
455         (WebInspector.OverviewGrid.WindowSelector):
456         (WebInspector.OverviewGrid.WindowSelector.prototype._createSelectorElement):
457         * inspector/front-end/inspectorCommon.css:
458         (.overview-grid-window-selector):
459         (.overview-grid-window):
460         (.overview-grid-dividers-background):
461         (.overview-grid-window-rulers):
462         (.overview-grid-window-resizer):
463         * inspector/front-end/timelinePanel.css:
464         (.timeline-frame-overview .overview-grid-window):
465         (.timeline-frame-overview .overview-grid-dividers-background):
466
467 2013-03-20  Dmitry Zvorygin  <zvorygin@chromium.org>
468
469         Web Inspector: Switch Drawer animation from JavaScript to CSS transitions.
470         https://bugs.webkit.org/show_bug.cgi?id=112586
471
472         This is prerequisite to make Drawer work in overlay mode.
473
474         Reviewed by Vsevolod Vlasov.
475
476         * inspector/front-end/Drawer.js:
477         (WebInspector.Drawer):
478         (WebInspector.Drawer.prototype.show):
479         (WebInspector.Drawer.prototype.hide.this.animationFinished):
480         (WebInspector.Drawer.prototype.hide):
481         (WebInspector.Drawer.prototype.immediatelyFinishAnimation):
482         (WebInspector.Drawer.prototype._getAnimationStyles):
483         * inspector/front-end/UIUtils.js:
484         * inspector/front-end/inspector.css:
485         (.animate-slow *):
486         (.animate #main):
487         (.animate #floating-status-bar-container):
488         (.animate #drawer):
489         (.animate #bottom-status-bar-container > *):
490
491 2013-03-19  Eugene Klyuchnikov  <eustas@chromium.org>
492
493         Web Inspector: [DataGrid] Refactorings.
494         https://bugs.webkit.org/show_bug.cgi?id=112690
495
496         Reviewed by Pavel Feldman.
497
498         1. Avoid using string literals;
499         2. Remove unused notifications; turn "populate" to method invocation;
500         3. Replace some getters with regular functions.
501
502         * inspector/front-end/DataGrid.js: Applied refactorings.
503         * inspector/front-end/ApplicationCacheItemsView.js: Adopted changes.
504         * inspector/front-end/BottomUpProfileDataGridTree.js: Ditto.
505         * inspector/front-end/CPUProfileView.js: Ditto.
506         * inspector/front-end/CSSSelectorProfileView.js: Ditto.
507         * inspector/front-end/CookiesTable.js: Ditto.
508         * inspector/front-end/DirectoryContentView.js: Ditto.
509         * inspector/front-end/HeapSnapshotDataGrids.js: Ditto.
510         * inspector/front-end/HeapSnapshotGridNodes.js: Ditto.
511         * inspector/front-end/NativeMemorySnapshotView.js: Ditto.
512         * inspector/front-end/NetworkPanel.js: Ditto.
513         * inspector/front-end/ProfileDataGridTree.js: Ditto.
514         * inspector/front-end/ResourceWebSocketFrameView.js: Ditto.
515         * inspector/front-end/TopDownProfileDataGridTree.js: Ditto.
516         * inspector/front-end/dataGrid.css: Ditto.
517
518 2013-03-19  Allan Sandfeld Jensen  <allan.jensen@digia.com>
519
520         [Qt] Support -webkit-font-smoothing
521         https://bugs.webkit.org/show_bug.cgi?id=106009
522
523         Reviewed by Jocelyn Turcotte.
524
525         Set QFont antialiasing settings based on the font smoothing settings in FontDescription.
526
527         * platform/graphics/qt/FontPlatformDataQt.cpp:
528         (WebCore::FontPlatformData::FontPlatformData):
529
530 2013-03-20  Alexei Filippov  <alph@chromium.org>
531
532         Web Inspector: Allow toolbar customization
533         https://bugs.webkit.org/show_bug.cgi?id=112440
534
535         Adds a tools menu item that allows the user to show/hide
536         inspector panels on the toolbar.
537
538         Reviewed by Yury Semikhatsky.
539
540         * inspector/front-end/InspectorView.js:
541         * inspector/front-end/Settings.js:
542         (WebInspector.Settings):
543         (WebInspector.ExperimentsSettings):
544         * inspector/front-end/Toolbar.js:
545         (WebInspector.Toolbar):
546         (WebInspector.Toolbar.prototype.addPanel):
547         (WebInspector.Toolbar.prototype._isPanelVisibleByDefault):
548         (WebInspector.Toolbar.prototype.set _hidePanel):
549         (WebInspector.Toolbar.prototype._showPanel):
550         (WebInspector.Toolbar.prototype._togglePanelsMenu):
551         * inspector/front-end/inspector.css:
552         (#toolbar-panels-menu):
553         (#toolbar-panels-menu:hover):
554         (#toolbar-panels-menu:active):
555         * inspector/front-end/inspector.html:
556
557 2013-03-20  Eugene Klyuchnikov  <eustas@chromium.org>
558
559         Web Inspector: [Settings] Add "storage" parameter to WebInspector.Setting
560         https://bugs.webkit.org/show_bug.cgi?id=112667
561
562         Reviewed by Pavel Feldman.
563
564         New parameter will allow more options on how long setting will persist.
565         Possible options are: localStorage, sessionStorage and no-storage.
566
567         Additional change: use delete instead of .removeItem to make it possible
568         use any object as storage.
569
570         * inspector/front-end/Settings.js:
571         Added "storage" parameter and used is instead of "window.localStorage".
572
573 2013-03-20  Pan Deng  <pan.deng@intel.com>
574
575         Web Inspector: [Network] Fix the bug of WebSocketFrameView crash.
576         https://bugs.webkit.org/show_bug.cgi?id=112771.
577
578         Reviewed by Pavel Feldman.
579
580         WebSocketFrameView crashes when websocket receives an error message, this
581         patch fixes this problem, and error message will be shown in dataGrid as expected.
582
583         No new tests.
584
585         * inspector/front-end/ResourceWebSocketFrameView.js:
586         (WebInspector.ResourceWebSocketFrameView): Handle the errorMessage case.
587
588 2013-03-20  Dmitry Zvorygin  <zvorygin@chromium.org>
589
590         Remove remainings of obsolete LogLevels and MessageSources from inspector JS part.
591         https://bugs.webkit.org/show_bug.cgi?id=112709
592
593         By the way tuned messagesources in ApplicationCacheGroup.
594
595         Reviewed by Pavel Feldman.
596
597         * inspector/front-end/ConsoleMessage.js:
598         (WebInspector.ConsoleMessageImpl.prototype.toMessageElement):
599         (WebInspector.ConsoleMessageImpl.prototype.toString):
600         * inspector/front-end/ConsoleModel.js:
601         * inspector/front-end/ExtensionAPI.js:
602         (defineCommonExtensionSymbols):
603         * inspector/front-end/ExtensionServer.js:
604         (WebInspector.ExtensionServer.prototype._onAddConsoleMessage):
605         (WebInspector.ExtensionServer.prototype._makeConsoleMessage):
606         * loader/appcache/ApplicationCacheGroup.cpp:
607         (WebCore::ApplicationCacheGroup::didReceiveResponse):
608         (WebCore::ApplicationCacheGroup::didFinishLoading):
609         (WebCore::ApplicationCacheGroup::didFail):
610
611 2013-03-20  Krzysztof Czech  <k.czech@samsung.com>
612
613         [GTK] accessibility/aria-scrollbar-role.html is failing
614         https://bugs.webkit.org/show_bug.cgi?id=98358
615
616         Reviewed by Martin Robinson.
617
618         Adds support for checking an orientation attribute of accessibility object.
619         AccessibilityObject that represents ScrollBar element should be ATK_VALUE type.
620         ScrollBar element can be considered as a Range Widget that is able to expose some
621         range values.
622
623         Test: accessibility/aria-scrollbar-role.html
624
625         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
626         (setAtkStateSetFromCoreObject):
627         (getInterfaceMaskFromObject):
628
629 2013-03-20  Zan Dobersek  <zdobersek@igalia.com>
630
631         Unreviewed. Fixing a typo in libLevelDB_la_CFLAGS assignment - cxflags -> cflags.
632
633         * GNUmakefile.am:
634
635 2013-03-20  Robert Hogan  <robert@webkit.org>
636
637         Absolute position div without width specified does not reflow its text when it is moved (and computed width changes)
638         https://bugs.webkit.org/show_bug.cgi?id=112052
639
640         Reviewed by Emil A Eklund.
641         
642         If a positioned block has auto width then any movement means the block needs to be resized.
643
644         Test: fast/block/positioned-block-auto-width-movement.html
645
646         * rendering/style/RenderStyle.cpp:
647         (WebCore::positionedObjectMoved):
648         (WebCore::RenderStyle::diff):
649
650 2013-03-19  Sheriff Bot  <webkit.review.bot@gmail.com>
651
652         Unreviewed, rolling out r146301.
653         http://trac.webkit.org/changeset/146301
654         https://bugs.webkit.org/show_bug.cgi?id=112776
655
656         Caused hundreds of tests to hit assertions on Windows debug
657         bots (Requested by rniwa on #webkit).
658
659         * CMakeLists.txt:
660         * GNUmakefile.list.am:
661         * Target.pri:
662         * WebCore.exp.in:
663         * WebCore.gypi:
664         * WebCore.vcproj/WebCore.vcproj:
665         * WebCore.vcxproj/WebCore.vcxproj:
666         * WebCore.vcxproj/WebCore.vcxproj.filters:
667         * WebCore.xcodeproj/project.pbxproj:
668         * loader/DocumentLoader.cpp:
669         (WebCore::DocumentLoader::DocumentLoader):
670         (WebCore::DocumentLoader::mainResourceLoader):
671         (WebCore::DocumentLoader::~DocumentLoader):
672         (WebCore::DocumentLoader::mainResourceData):
673         (WebCore::DocumentLoader::stopLoading):
674         (WebCore::DocumentLoader::finishedLoading):
675         (WebCore::DocumentLoader::handleSubstituteDataLoadNow):
676         (WebCore::DocumentLoader::continueAfterNavigationPolicy):
677         (WebCore::DocumentLoader::responseReceived):
678         (WebCore::DocumentLoader::continueAfterContentPolicy):
679         (WebCore::DocumentLoader::reportMemoryUsage):
680         (WebCore::DocumentLoader::receivedData):
681         (WebCore::DocumentLoader::clearMainResourceLoader):
682         (WebCore::DocumentLoader::setDefersLoading):
683         (WebCore::DocumentLoader::setMainResourceDataBufferingPolicy):
684         (WebCore::DocumentLoader::addSubresourceLoader):
685         (WebCore::DocumentLoader::isLoadingMainResource):
686         (WebCore):
687         (WebCore::DocumentLoader::maybeLoadEmpty):
688         (WebCore::DocumentLoader::startLoadingMainResource):
689         * loader/DocumentLoader.h:
690         (WebCore):
691         (DocumentLoader):
692         * loader/MainResourceLoader.cpp: Added.
693         (WebCore):
694         (WebCore::MainResourceLoader::MainResourceLoader):
695         (WebCore::MainResourceLoader::~MainResourceLoader):
696         (WebCore::MainResourceLoader::create):
697         (WebCore::MainResourceLoader::clearResource):
698         (WebCore::MainResourceLoader::frameLoader):
699         (WebCore::MainResourceLoader::request):
700         (WebCore::MainResourceLoader::resourceData):
701         (WebCore::MainResourceLoader::redirectReceived):
702         (WebCore::MainResourceLoader::responseReceived):
703         (WebCore::MainResourceLoader::dataReceived):
704         (WebCore::MainResourceLoader::notifyFinished):
705         (WebCore::MainResourceLoader::reportMemoryUsage):
706         (WebCore::MainResourceLoader::load):
707         (WebCore::MainResourceLoader::setDefersLoading):
708         (WebCore::MainResourceLoader::defersLoading):
709         (WebCore::MainResourceLoader::setDataBufferingPolicy):
710         (WebCore::MainResourceLoader::loader):
711         (WebCore::MainResourceLoader::identifier):
712         * loader/MainResourceLoader.h: Added.
713         (WebCore):
714         (MainResourceLoader):
715         (WebCore::MainResourceLoader::cachedMainResource):
716         (WebCore::MainResourceLoader::documentLoader):
717         * loader/mac/DocumentLoaderMac.cpp:
718         (WebCore::DocumentLoader::schedule):
719         (WebCore::DocumentLoader::unschedule):
720
721 2013-03-19  Mike West  <mkwst@chromium.org>
722
723         CSP 1.1: Stub out SecurityPolicyViolationEvent interface.
724         https://bugs.webkit.org/show_bug.cgi?id=112681
725
726         Reviewed by Adam Barth.
727
728         A first pass at a SecurityPolicyViolationEvent interface is defined in
729         CSP 1.1's editor's draft[1]. This patch puts the big components into
730         place so that we can start getting some implementation experience with
731         the new event interface as it's defined, and feed that back into the
732         working group.
733
734         Here, we're only defining the interface, and creating a listener on the
735         Document. Events aren't yet being fired when Content Security Policy
736         violations occur. I'll tackle that in a future patch; adding files is
737         a big enough annoyance to do it separately.
738
739         This patch has only two web-visible impacts:
740
741         - Document objects now have an 'onsecuritypolicyviolation' attribute.
742         - A SecurityPolicyViolationEvent constructor is accessible on the Window object.
743
744         Ports that have not enabled the CSP_NEXT flag should experience no change.
745
746         [1]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#securitypolicyviolationevent-events
747
748         Test: http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-basics.html
749
750         * CMakeLists.txt:
751         * GNUmakefile.list.am:
752         * WebCore.gypi:
753         * WebCore.vcproj/WebCore.vcproj:
754         * WebCore.xcodeproj/project.pbxproj:
755             Wow! A new file! This is so exciting! I'm going to tell ALL my build
756             systems about this!
757         * dom/Document.h:
758         * dom/Document.idl:
759             Define an 'onsecuritypolicyviolation' event handler on Document objects.
760         * dom/EventNames.h:
761         * dom/EventNames.in:
762             Define a 'securitypolicyviolation' event type.
763         * dom/SecurityPolicyViolationEvent.h: Added.
764         (WebCore::SecurityPolicyViolationEventInit::SecurityPolicyViolationEventInit):
765         (SecurityPolicyViolationEventInit):
766         (SecurityPolicyViolationEvent):
767         (WebCore::SecurityPolicyViolationEvent::create):
768         (WebCore::SecurityPolicyViolationEvent::documentURI):
769         (WebCore::SecurityPolicyViolationEvent::referrer):
770         (WebCore::SecurityPolicyViolationEvent::blockedURI):
771         (WebCore::SecurityPolicyViolationEvent::violatedDirective):
772         (WebCore::SecurityPolicyViolationEvent::effectiveDirective):
773         (WebCore::SecurityPolicyViolationEvent::originalPolicy):
774         (WebCore::SecurityPolicyViolationEvent::sourceURL):
775         (WebCore::SecurityPolicyViolationEvent::lineNumber):
776         (WebCore::SecurityPolicyViolationEvent::interfaceName):
777         (WebCore::SecurityPolicyViolationEvent::SecurityPolicyViolationEvent):
778         * dom/SecurityPolicyViolationEvent.idl: Added.
779             Define the SecurityPolicyViolationEvent's IDL, and then create all the
780             boilerplate necessary to properly initialize a SecurityPolicyViolationEvent
781             object with the relevant properties.
782         * page/DOMWindow.idl:
783             Add the new SecurityPolicyViolationEvent constructor to the Window object
784             so it's available on a page.
785
786 2013-03-19  Eugene Klyuchnikov  <eustas@chromium.org>
787
788         Web Inspector: [Timeline] Tune status bar UI for limited-width window.
789         https://bugs.webkit.org/show_bug.cgi?id=112702
790
791         Reviewed by Pavel Feldman.
792
793         Reduce filter titles when there is not enough space.
794
795         * inspector/front-end/TimelinePanel.js: Add classnames to elements.
796         * inspector/front-end/timelinePanel.css: Specify "flex" behaviour.
797
798 2013-03-19  Nate Chapin  <japhet@chromium.org>
799
800         Merge MainResourceLoader into DocumentLoader
801         https://bugs.webkit.org/show_bug.cgi?id=104969
802
803         Reviewed by Adam Barth.
804
805         No new tests, refactor only.
806
807         * CMakeLists.txt:
808         * GNUmakefile.list.am:
809         * Target.pri:
810         * WebCore.exp.in:
811         * WebCore.gypi:
812         * WebCore.vcproj/WebCore.vcproj:
813         * WebCore.vcxproj/WebCore.vcxproj:
814         * WebCore.vcxproj/WebCore.vcxproj.filters:
815         * WebCore.xcodeproj/project.pbxproj:
816         * loader/DocumentLoader.cpp:
817         (WebCore::DocumentLoader::DocumentLoader):
818         (WebCore::DocumentLoader::mainResourceLoader):
819         (WebCore::DocumentLoader::~DocumentLoader): Move main resource clearing from
820             ~MainResourceLoader.
821         (WebCore::DocumentLoader::mainResourceData):
822         (WebCore::DocumentLoader::stopLoading):
823         (WebCore::DocumentLoader::notifyFinished): Moved from MainResourceLoader::notifyFinished.
824         (WebCore):
825         (WebCore::DocumentLoader::finishedLoading):
826         (WebCore::DocumentLoader::handleSubstituteDataLoadNow):
827         (WebCore::DocumentLoader::redirectReceived):
828         (WebCore::DocumentLoader::continueAfterNavigationPolicy):
829         (WebCore::DocumentLoader::responseReceived):
830         (WebCore::DocumentLoader::continueAfterContentPolicy):
831         (WebCore::DocumentLoader::reportMemoryUsage):
832         (WebCore::DocumentLoader::dataReceived):
833         (WebCore::DocumentLoader::clearMainResourceLoader):
834         (WebCore::DocumentLoader::setDefersLoading):
835         (WebCore::DocumentLoader::setMainResourceDataBufferingPolicy):
836         (WebCore::DocumentLoader::addSubresourceLoader):
837         (WebCore::DocumentLoader::maybeLoadEmpty):
838         (WebCore::DocumentLoader::startLoadingMainResource): Don't keep separate checks
839              for normal and empty loads, just use a single boolean.
840         * loader/DocumentLoader.h:
841         (WebCore::DocumentLoader::isLoadingMainResource):
842         * loader/MainResourceLoader.cpp: Removed.
843         * loader/MainResourceLoader.h: Removed.
844         * loader/mac/DocumentLoaderMac.cpp:
845         (WebCore::DocumentLoader::schedule):
846         (WebCore::DocumentLoader::unschedule):
847
848 2013-03-19  Ankur Taly  <ataly@google.com>
849
850         Cache a pointer to V8DOMActivityLogger in PerContextData.
851         https://bugs.webkit.org/show_bug.cgi?id=112719
852
853         Reviewed by Kentaro Hara.
854
855         Adds a data member (and getter, setter methods) to V8PerContextData
856         that holds a pointer to a V8DOMActivityLogger. This member is set while
857         initializing the context for a V8DOMWindowShell. Ownership of the pointer
858         is still retained by the HashMap in DOMWrapperWorld.
859         As a result of this patch, subsequent patches that will implement logging
860         for DOM API access (See bug 107207) will be able to obtain a reference to
861         the logger directly from PerContextData. This will benefit performance as it
862         will be faster than looking up the logger in the DOMActivityLoggerMap in
863         DOMWrapperWorld.
864
865         There are no new tests as there is no change in behavior.
866
867         * bindings/v8/V8DOMWindowShell.cpp:
868         (WebCore::V8DOMWindowShell::initializeIfNeeded):
869         * bindings/v8/V8PerContextData.h:
870         (WebCore::V8PerContextData::activityLogger):
871         (V8PerContextData):
872         (WebCore::V8PerContextData::setActivityLogger):
873
874 2013-03-19  Arnaud Renevier  <a.renevier@sisa.samsung.com>
875
876         do not use string reference for enum support in CodeGeneratorJS.pm
877         https://bugs.webkit.org/show_bug.cgi?id=112760
878
879         Reviewed by Kentaro Hara.
880
881         Do use string references in generated JS bindings for enum values.
882
883         Test: bindings/scripts/test/TestObj.idl
884
885         * bindings/scripts/CodeGeneratorJS.pm:
886         (GenerateImplementation):
887         (GenerateParametersCheck):
888         * bindings/scripts/test/JS/JSTestObj.cpp:
889         (WebCore::setJSTestObjEnumAttr):
890         (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
891
892 2013-03-19  Simon Fraser  <simon.fraser@apple.com>
893
894         Make RLC::haveNonMainLayersWithTiledBacking() public and fix the name
895         https://bugs.webkit.org/show_bug.cgi?id=112763
896
897         Reviewed by Tim Horton.
898
899         Downstream code needs to call hasNonMainLayersWithTiledBacking().
900
901         * rendering/RenderLayerCompositor.h:
902         (WebCore::RenderLayerCompositor::hasNonMainLayersWithTiledBacking):
903         (RenderLayerCompositor):
904
905 2013-03-19  David Levin  <levin@chromium.org>
906
907         FrameLoader::didChangeIcons isn't called when the favicon is changed.
908         https://bugs.webkit.org/show_bug.cgi?id=112080
909
910         Reviewed by Dmitry Titov.
911
912         Test: fast/dom/icon-url-property.html
913
914         * dom/Document.cpp:
915         (WebCore::Document::addIconURL): Made the callback for didChangeIcons
916         happen whenever there are favicon changes instead of filtering it
917         and have to be in sync about what hosts care about. As far as I could
918         tell no hosts rely on this callback except for Chromium, so in general
919         doing less work here may potentially help a small amount for other
920         ports.
921
922 2013-03-19  Michael Pruett  <michael@68k.org>
923
924         Don't throw on infinity or NaN index in HTMLOptionsCollection.add()
925         https://bugs.webkit.org/show_bug.cgi?id=112612
926
927         Reviewed by Kentaro Hara.
928
929         HTMLOptionsCollection.add() should not throw a type error when
930         its optional index argument is infinity or NaN. Such values
931         should instead be converted to 0 with no error.
932
933         Tests: fast/dom/non-numeric-values-numeric-parameters.html
934                fast/js/select-options-add.html
935
936         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
937         (WebCore::JSHTMLOptionsCollection::add):
938
939 2013-03-19  Dominic Mazzoni  <dmazzoni@google.com>
940
941         Security: Heap-use-after-free in WebCore::AXObjectCache::getOrCreate
942         https://bugs.webkit.org/show_bug.cgi?id=112044
943
944         Reviewed by Chris Fleizach.
945
946         Always call recalcSectionsIfNeeded before accessing
947         table sections.
948
949         Test: accessibility/table-remove-cell-crash.html
950
951         * accessibility/AccessibilityTable.cpp:
952         (WebCore::AccessibilityTable::addChildren):
953
954 2013-03-19  Arnaud Renevier  <a.renevier@sisa.samsung.com>
955
956         [v8] add IDL 'enum' in DOM methods
957         https://bugs.webkit.org/show_bug.cgi?id=112644
958
959         Reviewed by Kentaro Hara.
960
961         This adds V8 support for enumerations in method parameters.
962
963         Test: bindings/scripts/test/TestObj.idl
964
965         * bindings/scripts/CodeGeneratorV8.pm:
966         (GenerateParametersCheck):
967         * bindings/scripts/test/V8/V8TestObj.cpp:
968         (WebCore::TestObjV8Internal::methodWithEnumArgMethod):
969
970 2013-03-19  Kenneth Russell  <kbr@google.com>
971
972         Unreviewed, rolling out r146277.
973         http://trac.webkit.org/changeset/146277
974         https://bugs.webkit.org/show_bug.cgi?id=111695
975
976         Broke Chromium Android build
977
978         * Modules/speech/SpeechSynthesis.cpp:
979         (WebCore::SpeechSynthesis::boundaryEventOccurred):
980         (WebCore::SpeechSynthesis::didStartSpeaking):
981         (WebCore::SpeechSynthesis::didPauseSpeaking):
982         (WebCore::SpeechSynthesis::didResumeSpeaking):
983         (WebCore::SpeechSynthesis::didFinishSpeaking):
984         (WebCore::SpeechSynthesis::speakingErrorOccurred):
985         (WebCore):
986         * Modules/speech/SpeechSynthesis.h:
987         (SpeechSynthesis):
988         * Modules/speech/SpeechSynthesisUtterance.cpp:
989         (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
990         (WebCore::SpeechSynthesisUtterance::setVoice):
991         * Modules/speech/SpeechSynthesisUtterance.h:
992         (WebCore::SpeechSynthesisUtterance::text):
993         (WebCore::SpeechSynthesisUtterance::setText):
994         (WebCore::SpeechSynthesisUtterance::lang):
995         (WebCore::SpeechSynthesisUtterance::setLang):
996         (WebCore::SpeechSynthesisUtterance::volume):
997         (WebCore::SpeechSynthesisUtterance::setVolume):
998         (WebCore::SpeechSynthesisUtterance::rate):
999         (WebCore::SpeechSynthesisUtterance::setRate):
1000         (WebCore::SpeechSynthesisUtterance::pitch):
1001         (WebCore::SpeechSynthesisUtterance::setPitch):
1002         (WebCore::SpeechSynthesisUtterance::startTime):
1003         (WebCore::SpeechSynthesisUtterance::setStartTime):
1004         (WebCore::SpeechSynthesisUtterance::platformUtterance):
1005         (SpeechSynthesisUtterance):
1006         * Modules/speech/SpeechSynthesisVoice.h:
1007         * WebCore.exp.in:
1008         * WebCore.gypi:
1009         * platform/PlatformSpeechSynthesis.h:
1010         (PlatformSpeechSynthesis):
1011         * platform/PlatformSpeechSynthesisUtterance.cpp:
1012         * platform/PlatformSpeechSynthesisUtterance.h:
1013         (PlatformSpeechSynthesisUtterance):
1014         * platform/PlatformSpeechSynthesisVoice.cpp:
1015         (WebCore::PlatformSpeechSynthesisVoice::create):
1016         * platform/PlatformSpeechSynthesisVoice.h:
1017         (PlatformSpeechSynthesisVoice):
1018         * platform/PlatformSpeechSynthesizer.cpp:
1019         (WebCore::PlatformSpeechSynthesizer::create):
1020         (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
1021         (WebCore):
1022         * platform/PlatformSpeechSynthesizer.h:
1023         (PlatformSpeechSynthesizerClient):
1024         (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
1025         (PlatformSpeechSynthesizer):
1026         * platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Removed.
1027         * platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Removed.
1028         * platform/chromium/support/WebSpeechSynthesisVoice.cpp: Removed.
1029         * platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Removed.
1030         * platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Removed.
1031         * platform/mac/PlatformSpeechSynthesizerMac.mm:
1032         (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
1033         (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
1034         (WebCore::PlatformSpeechSynthesizer::speak):
1035         * platform/mock/PlatformSpeechSynthesizerMock.cpp:
1036         (WebCore::PlatformSpeechSynthesizerMock::create):
1037         (WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
1038         (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
1039         (WebCore::PlatformSpeechSynthesizerMock::speak):
1040         * platform/mock/PlatformSpeechSynthesizerMock.h:
1041         (PlatformSpeechSynthesizerMock):
1042
1043 2013-03-19  Antti Koivisto  <antti@apple.com>
1044
1045         Don't compute background obscuration on every repaint
1046         https://bugs.webkit.org/show_bug.cgi?id=112457
1047
1048         Reviewed by Simon Fraser.
1049
1050         Test: fast/backgrounds/obscured-background-child-style-change.html
1051         
1052         It is generally enough to compute background obscuration status once per layout rather than doing it on every repaint.
1053         Since there are fewer layouts than repaints this will allow more expensive checks in the future.
1054         
1055         With this patch adds caching and invalidation of the obscuration status.
1056
1057         * rendering/RenderBlock.cpp:
1058         (WebCore::RenderBlock::layout):
1059         
1060             Invalidate the obscuration status on layout.
1061
1062         * rendering/RenderBox.cpp:
1063         (WebCore::RenderBox::styleDidChange):
1064         
1065             Invalidate the parent obscuration status if there is repaint-only style change (often background related). 
1066             Tested by the new fast/css/obscured-background-child-style-change.html.
1067
1068         (WebCore::RenderBox::layout):
1069         (WebCore::RenderBox::computeBackgroundIsKnownToBeObscured):
1070         * rendering/RenderBox.h:
1071         * rendering/RenderImage.cpp:
1072         (WebCore::RenderImage::imageChanged):
1073         (WebCore::RenderImage::notifyFinished):
1074         (WebCore::RenderImage::boxShadowShouldBeAppliedToBackground):
1075         (WebCore::RenderImage::computeBackgroundIsKnownToBeObscured):
1076         
1077             Use CachedImage::currentFrameKnownToBeOpaque which ensures that the frame is decoded and we get the real status.
1078             Tested by an additional case in fast/css/obscured-background-child-style-change.html.
1079
1080         * rendering/RenderImage.h:
1081         * rendering/RenderObject.cpp:
1082         (WebCore::RenderObject::styleWillChange):
1083         * rendering/RenderObject.h:
1084         (WebCore::RenderObject::hasBoxDecorations):
1085         (WebCore::RenderObject::computeBackgroundIsKnownToBeObscured):
1086         (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
1087         (RenderObjectBitfields):
1088         (WebCore::RenderObject::RenderObjectBitfields::boxDecorationState):
1089         (WebCore::RenderObject::RenderObjectBitfields::setBoxDecorationState):
1090         
1091             Combine box decoration bit and the obscuration status so we only need one extra bit.
1092
1093         (WebCore::RenderObject::setNeedsSimplifiedNormalFlowLayout):
1094         (WebCore::RenderObject::setHasBoxDecorations):
1095         (WebCore::RenderObject::invalidateBackgroundObscurationStatus):
1096         (WebCore::RenderObject::backgroundIsKnownToBeObscured):
1097         * rendering/RenderReplaced.cpp:
1098         (WebCore::RenderReplaced::layout):
1099
1100 2013-03-19  Dominic Mazzoni  <dmazzoni@google.com>
1101
1102         Implement Web Speech Synthesis for Chromium
1103         https://bugs.webkit.org/show_bug.cgi?id=111695
1104
1105         Reviewed by Adam Barth.
1106
1107         Straightforward implementation of speech synthesis
1108         for Chromium by exposing interfaces for the platform
1109         to implement.
1110
1111         * Modules/speech/SpeechSynthesis.cpp:
1112         (WebCore::SpeechSynthesis::boundaryEventOccurred):
1113         (WebCore::SpeechSynthesis::didStartSpeaking):
1114         (WebCore::SpeechSynthesis::didPauseSpeaking):
1115         (WebCore::SpeechSynthesis::didResumeSpeaking):
1116         (WebCore::SpeechSynthesis::didFinishSpeaking):
1117         (WebCore::SpeechSynthesis::speakingErrorOccurred):
1118         (WebCore):
1119         * Modules/speech/SpeechSynthesis.h:
1120         (SpeechSynthesis):
1121         * Modules/speech/SpeechSynthesisUtterance.cpp:
1122         (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
1123         (WebCore):
1124         (WebCore::SpeechSynthesisUtterance::~SpeechSynthesisUtterance):
1125         (WebCore::SpeechSynthesisUtterance::setVoice):
1126         * Modules/speech/SpeechSynthesisUtterance.h:
1127         (SpeechSynthesisUtterance):
1128         (WebCore::SpeechSynthesisUtterance::text):
1129         (WebCore::SpeechSynthesisUtterance::setText):
1130         (WebCore::SpeechSynthesisUtterance::lang):
1131         (WebCore::SpeechSynthesisUtterance::setLang):
1132         (WebCore::SpeechSynthesisUtterance::volume):
1133         (WebCore::SpeechSynthesisUtterance::setVolume):
1134         (WebCore::SpeechSynthesisUtterance::rate):
1135         (WebCore::SpeechSynthesisUtterance::setRate):
1136         (WebCore::SpeechSynthesisUtterance::pitch):
1137         (WebCore::SpeechSynthesisUtterance::setPitch):
1138         (WebCore::SpeechSynthesisUtterance::startTime):
1139         (WebCore::SpeechSynthesisUtterance::setStartTime):
1140         (WebCore::SpeechSynthesisUtterance::platformUtterance):
1141         * Modules/speech/SpeechSynthesisVoice.h:
1142         (WebCore::SpeechSynthesisVoice::~SpeechSynthesisVoice):
1143         * WebCore.exp.in:
1144         * WebCore.gypi:
1145         * platform/PlatformSpeechSynthesis.h:
1146         (PlatformSpeechSynthesis):
1147         * platform/PlatformSpeechSynthesisUtterance.cpp:
1148         (WebCore):
1149         (WebCore::PlatformSpeechSynthesisUtterance::create):
1150         * platform/PlatformSpeechSynthesisUtterance.h:
1151         (PlatformSpeechSynthesisUtterance):
1152         (WebCore::PlatformSpeechSynthesisUtterance::setClient):
1153         * platform/PlatformSpeechSynthesisVoice.cpp:
1154         (WebCore):
1155         (WebCore::PlatformSpeechSynthesisVoice::create):
1156         (WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
1157         * platform/PlatformSpeechSynthesisVoice.h:
1158         (PlatformSpeechSynthesisVoice):
1159         (WebCore::PlatformSpeechSynthesisVoice::setVoiceURI):
1160         (WebCore::PlatformSpeechSynthesisVoice::setName):
1161         (WebCore::PlatformSpeechSynthesisVoice::setLang):
1162         (WebCore::PlatformSpeechSynthesisVoice::setLocalService):
1163         (WebCore::PlatformSpeechSynthesisVoice::setIsDefault):
1164         * platform/PlatformSpeechSynthesizer.cpp:
1165         (WebCore::PlatformSpeechSynthesizer::create):
1166         (WebCore::PlatformSpeechSynthesizer::setVoiceList):
1167         (WebCore):
1168         * platform/PlatformSpeechSynthesizer.h:
1169         (WebKit):
1170         (PlatformSpeechSynthesizerClient):
1171         (PlatformSpeechSynthesizer):
1172         * platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Added.
1173         (WebCore):
1174         (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
1175         (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
1176         (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
1177         (WebCore::PlatformSpeechSynthesizer::speak):
1178         (WebCore::PlatformSpeechSynthesizer::pause):
1179         (WebCore::PlatformSpeechSynthesizer::resume):
1180         (WebCore::PlatformSpeechSynthesizer::cancel):
1181         * platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Added.
1182         (WebKit):
1183         (WebKit::WebSpeechSynthesisUtterance::WebSpeechSynthesisUtterance):
1184         (WebKit::WebSpeechSynthesisUtterance::operator=):
1185         (WebKit::WebSpeechSynthesisUtterance::assign):
1186         (WebKit::WebSpeechSynthesisUtterance::reset):
1187         (WebKit::WebSpeechSynthesisUtterance::operator PassRefPtr<PlatformSpeechSynthesisUtterance>):
1188         (WebKit::WebSpeechSynthesisUtterance::operator PlatformSpeechSynthesisUtterance*):
1189         (WebKit::WebSpeechSynthesisUtterance::text):
1190         (WebKit::WebSpeechSynthesisUtterance::lang):
1191         (WebKit::WebSpeechSynthesisUtterance::voice):
1192         (WebKit::WebSpeechSynthesisUtterance::volume):
1193         (WebKit::WebSpeechSynthesisUtterance::rate):
1194         (WebKit::WebSpeechSynthesisUtterance::pitch):
1195         (WebKit::WebSpeechSynthesisUtterance::startTime):
1196         * platform/chromium/support/WebSpeechSynthesisVoice.cpp: Added.
1197         (WebKit):
1198         (WebKit::WebSpeechSynthesisVoice::assign):
1199         (WebKit::WebSpeechSynthesisVoice::reset):
1200         (WebKit::WebSpeechSynthesisVoice::setVoiceURI):
1201         (WebKit::WebSpeechSynthesisVoice::setName):
1202         (WebKit::WebSpeechSynthesisVoice::setLanguage):
1203         (WebKit::WebSpeechSynthesisVoice::setIsLocalService):
1204         (WebKit::WebSpeechSynthesisVoice::setIsDefault):
1205         (WebKit::WebSpeechSynthesisVoice::operator PassRefPtr<WebCore::PlatformSpeechSynthesisVoice>):
1206         * platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Added.
1207         (WebCore):
1208         (WebCore::WebSpeechSynthesizerClientImpl::WebSpeechSynthesizerClientImpl):
1209         (WebCore::WebSpeechSynthesizerClientImpl::~WebSpeechSynthesizerClientImpl):
1210         (WebCore::WebSpeechSynthesizerClientImpl::setVoiceList):
1211         (WebCore::WebSpeechSynthesizerClientImpl::didStartSpeaking):
1212         (WebCore::WebSpeechSynthesizerClientImpl::didFinishSpeaking):
1213         (WebCore::WebSpeechSynthesizerClientImpl::didPauseSpeaking):
1214         (WebCore::WebSpeechSynthesizerClientImpl::didResumeSpeaking):
1215         (WebCore::WebSpeechSynthesizerClientImpl::speakingErrorOccurred):
1216         (WebCore::WebSpeechSynthesizerClientImpl::wordBoundaryEventOccurred):
1217         (WebCore::WebSpeechSynthesizerClientImpl::sentenceBoundaryEventOccurred):
1218         * platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Added.
1219         (WebCore):
1220         (WebSpeechSynthesizerClientImpl):
1221         * platform/mac/PlatformSpeechSynthesizerMac.mm:
1222         (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
1223         (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
1224         (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
1225         (WebCore):
1226         (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
1227         (WebCore::PlatformSpeechSynthesizer::speak):
1228         * platform/mock/PlatformSpeechSynthesizerMock.cpp:
1229         (WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
1230         (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
1231         (WebCore::PlatformSpeechSynthesizerMock::speak):
1232         * platform/mock/PlatformSpeechSynthesizerMock.h:
1233         (PlatformSpeechSynthesizerMock):
1234
1235 2013-03-19  Ryosuke Niwa  <rniwa@webkit.org>
1236
1237         Another build fix after r146220.
1238
1239         * English.lproj/localizedStrings.js:
1240
1241 2013-03-19  Julien Chaffraix  <jchaffraix@webkit.org>
1242
1243         [CSS Grid Layout] Add parsing for grid-auto-{row|column}
1244         https://bugs.webkit.org/show_bug.cgi?id=112724
1245
1246         Reviewed by Tony Chang.
1247
1248         This change is a first step towards handling grid-auto-{row|column}.
1249         For now, only the parsing, storing and getComputedStyle bits are implemented.
1250         In order to do so without duplicating code, the functions handling <track-size>
1251         (named <track-minmax> in the code based on a previous version of the grammar)
1252         have been tweaked to be called in a standalone fashion. The code was also
1253         updated to match the grammar more closely:
1254         - <track-minmax> is now <track-size>.
1255         - <track-group> was renmoved, folded into <track-list>.
1256
1257         Test: fast/css-grid-layout/grid-auto-columns-rows-get-set.html
1258
1259         * css/CSSComputedStyleDeclaration.cpp:
1260         (WebCore::valueForGridTrackSize):
1261         Renamed from valueForGridTrackMinMax.
1262
1263         (WebCore::valueForGridTrackList):
1264         Folded valueForGridTrackGroup here.
1265
1266         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1267         * css/CSSParser.cpp:
1268         (WebCore::CSSParser::parseValue):
1269         Added the parsing for grid-auto-{rows|columns}.
1270
1271         (WebCore::CSSParser::parseGridTrackSize):
1272         Renamed from parseGridTrackMinMax. Changed to return the parsed value (or 0 in case of
1273         error). This enables us to reuse it in parseValue. Note that this function now moves
1274         the parser value list instead of the caller.
1275
1276         (WebCore::CSSParser::parseGridTrackList):
1277         Updated after parseGridTrackSize changes and parseGridTrackGroup removal.
1278
1279         * css/CSSParser.h: Updated the names.
1280         * css/CSSProperty.cpp:
1281         (WebCore::CSSProperty::isInheritedProperty):
1282         * css/CSSPropertyNames.in:
1283         Added the 2 new non-inherited properties.
1284
1285         * css/StyleResolver.cpp:
1286         (WebCore::createGridTrackSize):
1287         Renamed from createGridTrackMinMax. Also simplified to ensure code reuse (applyProperty hands
1288         down a CSSValue) and consistency (the state wasn't consistently the last argument).
1289
1290         (WebCore::createGridTrackList):
1291         Folded createGridTrackGroup into this function.
1292
1293         (WebCore::StyleResolver::applyProperty):
1294         Added the code for the new properties.
1295
1296         * rendering/style/RenderStyle.h:
1297         * rendering/style/StyleGridData.cpp:
1298         (WebCore::StyleGridData::StyleGridData):
1299         * rendering/style/StyleGridData.h:
1300         (WebCore::StyleGridData::operator==):
1301         Added the storage and boiler-plate code for the new properties.
1302
1303 2013-03-19  Geoffrey Garen  <ggaren@apple.com>
1304
1305         Removed a using declaration to avoid name conflicts
1306         https://bugs.webkit.org/show_bug.cgi?id=112752
1307
1308         Reviewed by Ryosuke Niwa.
1309
1310         * html/ClassList.cpp: Put the using declaration here instead.
1311
1312         * html/ClassList.h: Don't put a using declaration in this header because
1313         it can cause name conflicts with SVGNames.
1314
1315 2013-03-18  Ojan Vafai  <ojan@chromium.org>
1316
1317         Make intrinsic size keywords on flexboxes work
1318         https://bugs.webkit.org/show_bug.cgi?id=112652
1319
1320         Reviewed by Tony Chang.
1321
1322         Tests: fast/css-intrinsic-dimensions/intrinsic-sized-column-flex-items.html
1323                fast/css-intrinsic-dimensions/intrinsic-sized-flex-items.html
1324
1325         * platform/Length.h:
1326         (WebCore::Length::isSpecifiedOrIntrinsic):
1327         * rendering/RenderBox.cpp:
1328         (WebCore::RenderBox::constrainLogicalWidthInRegionByMinMax):
1329         (WebCore::RenderBox::computeLogicalWidthInRegion):
1330         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
1331         Pass in the Length so that RenderFlexibleBox can call this method and avoid
1332         doing a bunch of code duplication.
1333
1334         * rendering/RenderBox.h:
1335         * rendering/RenderFlexibleBox.cpp:
1336         (WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
1337         Instead of just calling valueForLength, call computeLogicalWidthInRegionUsing so that
1338         we properly resolve intrinsic Length types. Incidentally, this should also make viewport
1339         percentage units work.
1340
1341         (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
1342         Resolve intrinsic min/max Lengths. Also, instead of calling minPreferredLogicalWidth for the
1343         min-width: auto case, call computeMainAxisExtentForChild to correctly compute the min intrinsic size.
1344
1345 2013-03-19  Geoffrey Garen  <ggaren@apple.com>
1346
1347         Try to fix the Windows build.
1348
1349         * svg/SVGAnimateMotionElement.cpp:
1350         (WebCore::SVGAnimateMotionElement::hasValidAttributeType): Qualify the
1351         namespace to avoid conflicts.
1352
1353 2013-03-19  Ryosuke Niwa  <rniwa@webkit.org>
1354
1355         Windows build fix after r146264.
1356
1357         * svg/SVGAnimateMotionElement.cpp:
1358         (WebCore::SVGAnimateMotionElement::hasValidAttributeType):
1359
1360 2013-03-19  Nate Chapin  <japhet@chromium.org>
1361
1362         REGRESSION(r146223): chromium asserts/crashes in DocumentLoader
1363         https://bugs.webkit.org/show_bug.cgi?id=112745
1364
1365         Reviewed by Kenneth Russell.
1366
1367         Fixes layout tests on chromium debug
1368
1369         * loader/DocumentLoader.cpp:
1370         (WebCore::DocumentLoader::mainReceivedError): Frame might be detached, get
1371             defersLoading() from mainResourceLoader().
1372         (WebCore::DocumentLoader::responseReceived): RefPtr got dropped, it's really needed.
1373         (WebCore::DocumentLoader::receivedData): Frame might be detached, get
1374             defersLoading() from mainResourceLoader().
1375         (WebCore::DocumentLoader::cancelMainResourceLoad): The ResourceError parameter
1376             can be null if coming from the WebKit layer, we should have a default just in case.
1377
1378 2013-03-19  Geoffrey Garen  <ggaren@apple.com>
1379
1380         Refactored script content removal in the fragment parser for clarity and speed
1381         https://bugs.webkit.org/show_bug.cgi?id=112734
1382
1383         Reviewed by Enrica Casucci.
1384
1385         * WebCore.exp.in: Export!
1386
1387         * dom/DocumentFragment.cpp:
1388         (WebCore::DocumentFragment::parseHTML):
1389         (WebCore::DocumentFragment::parseXML):
1390         * dom/DocumentFragment.h:
1391         (DocumentFragment): Updated for rename of FragmentScriptingPermission to
1392         ParserContentPolicy.
1393
1394         * dom/Element.cpp:
1395         (WebCore::isEventHandlerAttribute):
1396         (WebCore::Element::isJavaScriptURLAttribute):
1397         (WebCore::Element::isJavaScriptAttribute): Fixed a FIXME by factoring
1398         out some helper functions that reuse isURLAttribute(). This makes our
1399         attribute removal slightly more precise, as reflected in test changes.
1400
1401         (WebCore::Element::stripJavaScriptAttributes): Factored this function out
1402         of parserSetAttributes to clarify that the parser is responsible for
1403         fully removing scripts before inserting anything into the DOM.
1404
1405         Now that this is a helper function, we can avoid doing any work in the
1406         common case, where script content is allowed. Also, when we do have to
1407         strip attributes, we use "two finger compaction" to avoid copying the
1408         vector, and to avoid O(N) vector removal operations when there is
1409         something to remove.
1410
1411         (WebCore::Element::parserSetAttributes):
1412         * dom/Element.h:
1413
1414         * dom/FragmentScriptingPermission.h:
1415         (WebCore::scriptingContentIsAllowed):
1416         (WebCore::disallowScriptingContent):
1417         (WebCore::pluginContentIsAllowed):
1418         (WebCore::allowPluginContent): Renamed for clarity, and added some helper
1419         functions for reading values out of this enum.
1420
1421         * dom/ScriptableDocumentParser.cpp:
1422         (WebCore::ScriptableDocumentParser::ScriptableDocumentParser): Moved
1423         a settings check into the parser constructor so we're sure that all
1424         clients get the right behavior.
1425
1426         * dom/ScriptableDocumentParser.h:
1427         (WebCore::ScriptableDocumentParser::parserContentPolicy):
1428         (ScriptableDocumentParser):
1429         * editing/markup.cpp:
1430         (WebCore::createFragmentFromMarkup):
1431         (WebCore::createFragmentFromMarkupWithContext):
1432         (WebCore::createFragmentForInnerOuterHTML):
1433         (WebCore::createContextualFragment):
1434         * editing/markup.h: Updated for renames.
1435
1436         * html/HTMLAnchorElement.cpp:
1437         (WebCore::HTMLAnchorElement::isURLAttribute): Fixed a bug where
1438         isURLAttribute would ignore href attributes in other namespaces, like
1439         xlink:href.
1440
1441         * html/HTMLBaseElement.cpp:
1442         (WebCore::HTMLBaseElement::isURLAttribute): Same bug.
1443
1444         * html/HTMLElement.cpp:
1445         (WebCore::HTMLElement::isURLAttribute): Fixed a logic error where HTMLElement
1446         wouldn't call through to its base class.
1447
1448         * html/HTMLLinkElement.cpp:
1449         (WebCore::HTMLLinkElement::isURLAttribute): Same isURLAttribute namespace
1450         bug as above.
1451
1452         * html/parser/HTMLConstructionSite.cpp:
1453         (WebCore::setAttributes): Helper function for optionally stripping
1454         disallowed attributes before setting them on an element. This helps all
1455         clients get the right behavior without sprinkling checks everywhere.
1456
1457         (WebCore::HTMLConstructionSite::HTMLConstructionSite):
1458         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
1459
1460         (WebCore::HTMLConstructionSite::insertScriptElement): Don't schedule the
1461         element for insertion into the document if the element is forbidden. This
1462         is slightly clearer than leaving an empty forbidden element in the document.
1463
1464         (WebCore::HTMLConstructionSite::createElement):
1465         (WebCore::HTMLConstructionSite::createHTMLElement):
1466         * html/parser/HTMLConstructionSite.h:
1467         (HTMLConstructionSite):
1468         (WebCore::HTMLConstructionSite::parserContentPolicy):
1469         * html/parser/HTMLDocumentParser.cpp:
1470         (WebCore::HTMLDocumentParser::HTMLDocumentParser):
1471         (WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder):
1472         (WebCore::HTMLDocumentParser::parseDocumentFragment):
1473         * html/parser/HTMLDocumentParser.h:
1474         (HTMLDocumentParser):
1475         (WebCore::HTMLDocumentParser::create):
1476         * html/parser/HTMLTreeBuilder.cpp:
1477         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
1478         (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext):
1479         Updated for renames and interface changes above.
1480
1481         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
1482         (WebCore::HTMLTreeBuilder::processEndTag): Removed isParsingFragment()
1483         checks to make it possible to use ParserContentPolicy in more places.
1484
1485         Removed call to removeChildren() because, if an element is forbidden,
1486         we fully remove the element now. This brings behavior for <script>
1487         elements in line with behavior for plug-in elements. It also brings
1488         behavior of the HTML parser in line with behavior of the XML parser.
1489
1490         * html/parser/HTMLTreeBuilder.h:
1491         (WebCore::HTMLTreeBuilder::create):
1492         (FragmentParsingContext):
1493         (WebCore::HTMLTreeBuilder::FragmentParsingContext::contextElement):
1494         * platform/blackberry/PasteboardBlackBerry.cpp:
1495         (WebCore::Pasteboard::documentFragment):
1496         * platform/chromium/DragDataChromium.cpp:
1497         (WebCore::DragData::asFragment):
1498         * platform/chromium/PasteboardChromium.cpp:
1499         (WebCore::Pasteboard::documentFragment):
1500         * platform/gtk/PasteboardGtk.cpp:
1501         (WebCore::Pasteboard::documentFragment):
1502         * platform/mac/PasteboardMac.mm:
1503         (WebCore::Pasteboard::documentFragment):
1504         * platform/qt/DragDataQt.cpp:
1505         (WebCore::DragData::asFragment):
1506         * platform/qt/PasteboardQt.cpp:
1507         (WebCore::Pasteboard::documentFragment):
1508         * platform/win/ClipboardUtilitiesWin.cpp:
1509         (WebCore::fragmentFromCFHTML):
1510         (WebCore::fragmentFromHTML):
1511         * platform/wx/PasteboardWx.cpp:
1512         (WebCore::Pasteboard::documentFragment): Updated for renames and interface
1513         changes.
1514
1515         * svg/SVGAElement.cpp:
1516         (WebCore::SVGAElement::isURLAttribute): Fixed a bug where SVG anchor
1517         elements didn't identify their URL attributes.
1518
1519         * svg/SVGAElement.h:
1520         (SVGAElement):
1521
1522         * xml/XMLErrors.cpp:
1523         (WebCore::createXHTMLParserErrorHeader):
1524         (WebCore::XMLErrors::insertErrorMessageBlock): No need to disallow
1525         scripting attributes here because we're creating the attributes 
1526         ourselves and we know they're not scripting attributes.
1527
1528         * xml/parser/XMLDocumentParser.cpp:
1529         (WebCore::XMLDocumentParser::parseDocumentFragment):
1530         * xml/parser/XMLDocumentParser.h:
1531         (WebCore::XMLDocumentParser::create):
1532         (XMLDocumentParser): Updated for renames and interface changes above.
1533
1534         Removed the 8 inline capacity in the attribute vector so we could share
1535         helper functions with the HTML parser, which didn't have it.
1536
1537         * xml/parser/XMLDocumentParserLibxml2.cpp:
1538         (WebCore::setAttributes):
1539         (WebCore):
1540         (WebCore::XMLDocumentParser::XMLDocumentParser):
1541         (WebCore::handleNamespaceAttributes):
1542         (WebCore::handleElementAttributes):
1543         (WebCore::XMLDocumentParser::startElementNs):
1544         (WebCore::XMLDocumentParser::endElementNs):
1545         * xml/parser/XMLDocumentParserQt.cpp:
1546         (WebCore::setAttributes):
1547         (WebCore):
1548         (WebCore::XMLDocumentParser::XMLDocumentParser):
1549         (WebCore::handleNamespaceAttributes):
1550         (WebCore::handleElementAttributes):
1551         (WebCore::XMLDocumentParser::parseStartElement):
1552         (WebCore::XMLDocumentParser::parseEndElement): Same changes as for the
1553         HTML parser.
1554
1555 2013-03-19  Philip Rogers  <pdr@google.com>
1556
1557         Clean up static_casts for SVG renderers
1558         https://bugs.webkit.org/show_bug.cgi?id=111651
1559
1560         Reviewed by Abhishek Arya.
1561
1562         toRenderSVGPath and toRenderSVGFilter are preferred over static_casts because bad casts can
1563         be caught on our testing infrastructure. This patch replaces all static_casts for
1564         RenderSVGPath and RenderSVGFilter with toRenderSVGPath and toRenderSVGFilter, respectively.
1565
1566         This patch also adds FIXME to the remaining toRenderSVG* instances that are missing.
1567
1568         No new tests as this is covered with existing tests.
1569
1570         * rendering/RenderLayer.cpp:
1571         (WebCore::RenderLayer::paintLayerContents):
1572
1573             This call is currently safe due to the element->hasTagName(SVGNames::clipPathTag) check.
1574
1575         * rendering/svg/RenderSVGPath.h:
1576         (WebCore):
1577         (WebCore::toRenderSVGPath):
1578         * rendering/svg/RenderSVGResourceFilter.h:
1579         (WebCore):
1580         (WebCore::toRenderSVGFilter):
1581         * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
1582         (WebCore::RenderSVGResourceFilterPrimitive::styleDidChange):
1583         * rendering/svg/RenderSVGRoot.cpp:
1584         (WebCore::RenderSVGRoot::addResourceForClientInvalidation):
1585         * rendering/svg/SVGRenderSupport.cpp:
1586         (WebCore::SVGRenderSupport::repaintRectForRendererInLocalCoordinatesExcludingSVGShadow):
1587         (WebCore::SVGRenderSupport::rendererHasSVGShadow):
1588         (WebCore::SVGRenderSupport::setRendererHasSVGShadow):
1589         * rendering/svg/SVGRenderingContext.cpp:
1590         (WebCore::SVGRenderingContext::~SVGRenderingContext):
1591
1592             This cast was not correct! Thankfully it was not required anyway.
1593
1594         * svg/SVGCircleElement.cpp:
1595         (WebCore::SVGCircleElement::svgAttributeChanged):
1596
1597             This cast was not correct!
1598
1599         * svg/SVGEllipseElement.cpp:
1600         (WebCore::SVGEllipseElement::svgAttributeChanged):
1601
1602             This cast was not correct!
1603
1604         * svg/SVGLineElement.cpp:
1605         (WebCore::SVGLineElement::svgAttributeChanged):
1606         * svg/SVGPathElement.cpp:
1607         (WebCore::SVGPathElement::svgAttributeChanged):
1608         (WebCore::SVGPathElement::pathSegListChanged):
1609         (WebCore::SVGPathElement::getBBox):
1610         * svg/SVGPolyElement.cpp:
1611         (WebCore::SVGPolyElement::svgAttributeChanged):
1612         * svg/SVGRectElement.cpp:
1613         (WebCore::SVGRectElement::svgAttributeChanged):
1614
1615 2013-03-19  Beth Dakin  <bdakin@apple.com>
1616
1617         RenderLayer::scrollTo() should call FrameLoaderClient::didChangeScrollOffset()
1618         https://bugs.webkit.org/show_bug.cgi?id=110673
1619
1620         Reviewed by Simon Fraser.
1621
1622         FrameLoaderClient::didChangeScrollOffset() should be called whenever something is 
1623         actually being scrolled. 
1624
1625         * rendering/RenderLayer.cpp:
1626         (WebCore::RenderLayer::scrollTo):
1627
1628 2013-03-19  Marja Hölttä  <marja@chromium.org>
1629
1630         [V8] Add machinery for generating specialized bindings for the main world
1631         https://bugs.webkit.org/show_bug.cgi?id=111417
1632
1633         Reviewed by Jochen Eisinger.
1634
1635         The new specialized bindings will be faster, because they don't need to
1636         do the "main world, isolated world or a worker" check, but can right
1637         away assume that we're in the main world.
1638
1639         Added an IDL attribute (V8PerWorldBindings) to define which
1640         attribute getters / setters to specialize.
1641
1642         This patch generates main world bindings for getters and setters of Node
1643         and Element. (The possibility to generate bindings for callbacks will be
1644         added later.)
1645
1646         No new tests (updated existing bindings tests).
1647
1648         * bindings/scripts/CodeGeneratorV8.pm:
1649         (GenerateHeader):
1650         (GenerateNormalAttrGetterCallback):
1651         (GenerateNormalAttrGetter):
1652         (GenerateNormalAttrSetterCallback):
1653         (GenerateNormalAttrSetter):
1654         (GenerateNamedConstructor):
1655         (GenerateSingleBatchedAttribute):
1656         (GenerateImplementation):
1657         (GenerateCallbackImplementation):
1658         (GenerateFunctionCallString):
1659         (CreateCustomSignature):
1660         (NativeToJSValue):
1661         * bindings/scripts/IDLAttributes.txt:
1662         * bindings/scripts/test/V8/V8Float64Array.cpp:
1663         (WebCore::ConfigureV8Float64ArrayTemplate):
1664         (WebCore::V8Float64Array::GetTemplate):
1665         (WebCore::V8Float64Array::HasInstance):
1666         * bindings/scripts/test/V8/V8Float64Array.h:
1667         (WebCore::toV8ForMainWorld):
1668         (WebCore):
1669         (WebCore::toV8FastForMainWorld):
1670         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1671         (WebCore):
1672         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
1673         (WebCore::V8TestActiveDOMObject::GetTemplate):
1674         (WebCore::V8TestActiveDOMObject::HasInstance):
1675         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1676         (WebCore::toV8ForMainWorld):
1677         (WebCore):
1678         (WebCore::toV8FastForMainWorld):
1679         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1680         (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
1681         (WebCore::V8TestCustomNamedGetter::GetTemplate):
1682         (WebCore::V8TestCustomNamedGetter::HasInstance):
1683         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1684         (WebCore::toV8ForMainWorld):
1685         (WebCore):
1686         (WebCore::toV8FastForMainWorld):
1687         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1688         (WebCore):
1689         (WebCore::ConfigureV8TestEventConstructorTemplate):
1690         (WebCore::V8TestEventConstructor::GetTemplate):
1691         (WebCore::V8TestEventConstructor::HasInstance):
1692         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1693         (WebCore::toV8ForMainWorld):
1694         (WebCore):
1695         (WebCore::toV8FastForMainWorld):
1696         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1697         (WebCore::ConfigureV8TestEventTargetTemplate):
1698         (WebCore::V8TestEventTarget::GetTemplate):
1699         (WebCore::V8TestEventTarget::HasInstance):
1700         * bindings/scripts/test/V8/V8TestEventTarget.h:
1701         (WebCore::toV8ForMainWorld):
1702         (WebCore):
1703         (WebCore::toV8FastForMainWorld):
1704         * bindings/scripts/test/V8/V8TestException.cpp:
1705         (WebCore):
1706         (WebCore::ConfigureV8TestExceptionTemplate):
1707         (WebCore::V8TestException::GetTemplate):
1708         (WebCore::V8TestException::HasInstance):
1709         * bindings/scripts/test/V8/V8TestException.h:
1710         (WebCore::toV8ForMainWorld):
1711         (WebCore):
1712         (WebCore::toV8FastForMainWorld):
1713         * bindings/scripts/test/V8/V8TestInterface.cpp:
1714         (WebCore):
1715         (WebCore::ConfigureV8TestInterfaceTemplate):
1716         (WebCore::V8TestInterface::GetTemplate):
1717         (WebCore::V8TestInterface::HasInstance):
1718         * bindings/scripts/test/V8/V8TestInterface.h:
1719         (WebCore::toV8ForMainWorld):
1720         (WebCore):
1721         (WebCore::toV8FastForMainWorld):
1722         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1723         (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
1724         (WebCore::V8TestMediaQueryListListener::GetTemplate):
1725         (WebCore::V8TestMediaQueryListListener::HasInstance):
1726         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1727         (WebCore::toV8ForMainWorld):
1728         (WebCore):
1729         (WebCore::toV8FastForMainWorld):
1730         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1731         (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
1732         (WebCore::ConfigureV8TestNamedConstructorTemplate):
1733         (WebCore::V8TestNamedConstructor::GetTemplate):
1734         (WebCore::V8TestNamedConstructor::HasInstance):
1735         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1736         (WebCore::toV8ForMainWorld):
1737         (WebCore):
1738         (WebCore::toV8FastForMainWorld):
1739         * bindings/scripts/test/V8/V8TestNode.cpp:
1740         (WebCore::ConfigureV8TestNodeTemplate):
1741         (WebCore::V8TestNode::GetTemplate):
1742         (WebCore::V8TestNode::HasInstance):
1743         * bindings/scripts/test/V8/V8TestNode.h:
1744         (WebCore::toV8ForMainWorld):
1745         (WebCore):
1746         (WebCore::toV8FastForMainWorld):
1747         * bindings/scripts/test/V8/V8TestObj.cpp:
1748         (WebCore):
1749         (WebCore::ConfigureV8TestObjTemplate):
1750         (WebCore::V8TestObj::GetTemplate):
1751         (WebCore::V8TestObj::HasInstance):
1752         (WebCore::V8TestObj::installPerContextProperties):
1753         * bindings/scripts/test/V8/V8TestObj.h:
1754         (WebCore::toV8ForMainWorld):
1755         (WebCore):
1756         (WebCore::toV8FastForMainWorld):
1757         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
1758         (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
1759         (WebCore::V8TestOverloadedConstructors::GetTemplate):
1760         (WebCore::V8TestOverloadedConstructors::HasInstance):
1761         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
1762         (WebCore::toV8ForMainWorld):
1763         (WebCore):
1764         (WebCore::toV8FastForMainWorld):
1765         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1766         (WebCore):
1767         (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
1768         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
1769         (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
1770         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
1771         (WebCore::toV8ForMainWorld):
1772         (WebCore):
1773         (WebCore::toV8FastForMainWorld):
1774         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
1775         (WebCore):
1776         (WebCore::ConfigureV8TestTypedefsTemplate):
1777         (WebCore::V8TestTypedefs::GetTemplate):
1778         (WebCore::V8TestTypedefs::HasInstance):
1779         * bindings/scripts/test/V8/V8TestTypedefs.h:
1780         (WebCore::toV8ForMainWorld):
1781         (WebCore):
1782         (WebCore::toV8FastForMainWorld):
1783         * bindings/v8/DOMDataStore.h:
1784         (WebCore::DOMDataStore::getWrapperForMainWorld):
1785         (DOMDataStore):
1786         * bindings/v8/V8DOMConfiguration.cpp:
1787         (WebCore::V8DOMConfiguration::batchConfigureAttributes):
1788         (WebCore::V8DOMConfiguration::configureTemplate):
1789         * bindings/v8/V8DOMConfiguration.h:
1790         (BatchedAttribute):
1791         (V8DOMConfiguration):
1792         (WebCore::V8DOMConfiguration::configureAttribute):
1793         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1794         (WebCore::toV8ForMainWorld):
1795         (WebCore):
1796         * bindings/v8/custom/V8EventTargetCustom.cpp:
1797         (WebCore::toV8ForMainWorld):
1798         (WebCore):
1799         * bindings/v8/custom/V8IDBAnyCustom.cpp:
1800         (WebCore::toV8ForMainWorld):
1801         (WebCore):
1802         * bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
1803         (WebCore::toV8ForMainWorld):
1804         (WebCore):
1805         * bindings/v8/custom/V8WorkerContextCustom.cpp:
1806         (WebCore::toV8ForMainWorld):
1807         (WebCore):
1808         * dom/Element.idl:
1809         * dom/Node.idl:
1810
1811 2013-03-19  Mike West  <mkwst@chromium.org>
1812
1813         FeatureObserver: Measure X-Frame-Options usage.
1814         https://bugs.webkit.org/show_bug.cgi?id=112670
1815
1816         Reviewed by Adam Barth.
1817
1818         This patch adds three FeatureObserver entries to gather information
1819         about 'X-Frame-Options' usage in general, and in particular usage
1820         and potential misunderstanding of the 'SAMEORIGIN' value.
1821
1822         Three entries are added:
1823
1824         - XFrameOptions measures the raw number of 'X-Frame-Options' headers.
1825
1826         - XFrameOptionsSameOrigin measures the number of those headers that
1827           set the value to 'SAMEORIGIN'.
1828
1829         - XFrameOptionsSameOriginWithBadAncestorChain measures the number of
1830           occasions in which the frame passed the "top-only" origin check we're
1831           currently performing, but would have failed a more strict check
1832           against poisoned ancestor chains (that is, an ancestor chain that
1833           looks like 'example.com' -> 'evil.com' -> 'example.com').
1834
1835         Mozilla is considering changing 'SAMEORIGIN's behavior to block the
1836         latter loophole[1], and the UI Safety spec is considering dropping
1837         'top-only' entirely[2]. This data will inform those decisions.
1838
1839         [1]: https://bugzilla.mozilla.org/show_bug.cgi?id=725490
1840         [2]: http://lists.w3.org/Archives/Public/public-webappsec/2013Mar/0007.html
1841
1842         This doesn't change web-visible behavior; it only adds histograms
1843
1844         * loader/FrameLoader.cpp:
1845         (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
1846             When processing an 'X-Frame-Options' header's value, call out to
1847             FeatureObserver when relevant to increment the correct histogram
1848             entries.
1849         * page/FeatureObserver.h:
1850             Added three entries to the FeatureObserver enum: XFrameOptions,
1851             XFrameOptionsSameOrigin, and XFrameOptionsSameOriginWithBadAncestorChain.
1852             Each is explained above.
1853
1854 2013-03-19  Adam Barth  <abarth@webkit.org>
1855
1856         GenerateHashValue should be usable outside CodeGeneratorJS.pm
1857         https://bugs.webkit.org/show_bug.cgi?id=112736
1858
1859         Reviewed by Benjamin Poulain.
1860
1861         GenerateHashValue is not specific to CodeGeneratorJS.pm. Instead, the
1862         function matches the StringHash used in WTF. This patch moves the
1863         function into a separate Perl module so that it can be used by other
1864         Perl scripts. For example, I plan to use this function to compute the
1865         hash value for HTMLNames at compile time rather than at startup.
1866
1867         * bindings/scripts/CodeGeneratorJS.pm:
1868         (GenerateHashTable):
1869         * bindings/scripts/Hash.pm: Added.
1870         (leftShift):
1871         (GenerateHashValue):
1872
1873 2013-03-19  Dean Jackson  <dino@apple.com>
1874
1875         Allow PlugIn Snapshotting to be tested
1876         https://bugs.webkit.org/show_bug.cgi?id=98696
1877
1878         Reviewed by Tim Horton.
1879
1880         Expose a new setting maximumPlugInSnapshotAttempts that can
1881         be set by testing scripts.
1882
1883         Tests: plugins/snapshotting/restart.html
1884                plugins/snapshotting/simple.html
1885
1886         * page/Settings.in:
1887
1888 2013-03-19  Dean Jackson  <dino@apple.com>
1889
1890         Restarting a snapshotted plugin should restart all plugins from the same domain on the page
1891         https://bugs.webkit.org/show_bug.cgi?id=112725
1892
1893         Reviewed by Tim Horton.
1894
1895         If the user restarts a snapshotted plugin, then typically they will
1896         want to restart all similar plugins on the page, where similarity
1897         is defined by the domain of the content. Or in other words, since clients
1898         will typically add a restarted plugin to the list of autostarting
1899         domain hashes, we should start the other plugins that would autostart
1900         on reload.
1901
1902         When a snapshotted plugin gets the user click telling it to restart, it iterates
1903         over every frame in the document looking for domain hashes similar to its own.
1904         It then manually restarts each of the paused plugins.
1905
1906         * html/HTMLPlugInImageElement.cpp:
1907         (WebCore::addPlugInsFromNodeListMatchingOriginHash): Static helper function
1908             that builds a list of plugins to restart.
1909         (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): After restarting itself,
1910             the plugin looks for all other similar snapshotted plugins in the page.
1911         (WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn): Splits out the actual
1912             restart functionality, to make it separate from plugins that were manually
1913             restarted and thus probably want to forward a delayed click event.
1914         * html/HTMLPlugInImageElement.h:
1915         (HTMLPlugInImageElement): New method restartSnapshottedPlugIn.
1916
1917 2013-03-19  Nate Chapin  <japhet@chromium.org>
1918
1919         Merge MainResourceLoader's SubstituteData loading + others into DocumentLoader
1920         https://bugs.webkit.org/show_bug.cgi?id=112722
1921
1922         Part of the ongoing effort to merge MainResourceLoader entirely
1923         into DocumentLoader.
1924
1925         Reviewed by Antti Koivisto.
1926
1927         No new tests, refactor only.
1928
1929         * loader/DocumentLoader.cpp:
1930         (WebCore::DocumentLoader::mainReceivedError): Moved from MainResourceLoader::receivedError
1931             and the failure case in MainResourceLoader::notifyFinished.
1932         (WebCore::DocumentLoader::stopLoading):
1933         (WebCore::DocumentLoader::finishedLoading):
1934         (WebCore::DocumentLoader::handleSubstituteDataLoadNow): Moved from MainResourceLoader.
1935         (WebCore::DocumentLoader::startDataLoadTimer): Moved from MainResourceLoader.
1936         (WebCore::DocumentLoader::handleSubstituteDataLoadSoon): Moved from MainResourceLoader.
1937         (WebCore::DocumentLoader::willSendRequest):
1938         (WebCore::DocumentLoader::continueAfterNavigationPolicy):
1939         (WebCore::DocumentLoader::responseReceived):
1940         (WebCore::DocumentLoader::receivedData):
1941         (WebCore::DocumentLoader::startLoadingMainResource): Most of MainResourceLoader::load
1942             moved here.
1943         (WebCore::DocumentLoader::cancelMainResourceLoad): MainResourceLoader::cancel
1944             moved here.
1945         * loader/DocumentLoader.h:
1946         * loader/MainResourceLoader.cpp:
1947         (WebCore::MainResourceLoader::notifyFinished):
1948         (WebCore::MainResourceLoader::reportMemoryUsage):
1949         (WebCore::MainResourceLoader::load):
1950         (WebCore::MainResourceLoader::identifier):
1951         * loader/MainResourceLoader.h:
1952
1953 2013-03-19  Ryosuke Niwa  <rniwa@webkit.org>
1954
1955         Unreviewed build fix after r146220. Add the missing ]'s.
1956
1957         * English.lproj/localizedStrings.js:
1958
1959 2013-03-19  Alpha Lam  <hclam@chromium.org>
1960
1961         GIFImageReader to count frames and decode in one pass
1962         https://bugs.webkit.org/show_bug.cgi?id=111144
1963
1964         Reviewed by Stephen White.
1965
1966         OBJECTIVE
1967
1968         This change has the objective of improving performance reading GIF
1969         files. This implementation can parse the entire GIF file in one pass
1970         and saves information about each frame, such that decoding in a later
1971         pass does not need to parse the file again.
1972
1973         This change fixes the performance problem of decoding GIF files when
1974         they are received very slowly. Existing implementation creates a new
1975         GIFImageReader for counting frames for every time it is notified that
1976         new data has been received, this has O(n^2) behavior when data is
1977         received very slowly.
1978
1979         ALGORITHM
1980
1981         This implementation divides the decoding process into two separate
1982         steps: parse and LZW decoding.
1983
1984         In the parse step, the state machine is similar to the existing
1985         implementation. However this algorithm does not perform any decoding
1986         while scanning through the file. Intead it creates a new data structure
1987         for caching all frame information and the corresponding LZW blocks.
1988
1989         If a full decode is requested then LZW decoding is performed. This
1990         implementation looks through all frame information saved and decodes
1991         each frame sequentially until the target frame is reached.
1992
1993         Because of the separation of parse and decode, each frame can be
1994         decoded separately. This paves the way to support seeking in GIF files.
1995
1996         TESTING
1997
1998         Added a new unit test to cover progressively decoding a GIF image.
1999         There are already GIF unit tests for functional testing.
2000         Exhaustive testing was done locally with a corpus of 60k images.
2001         I mixed the corpus with some generated bad data and truncated files.
2002         The results was bit-identical when compared to the previous
2003         implementation.
2004
2005         These was also no crashing when decoding the entire corpus.
2006
2007         * platform/image-decoders/gif/GIFImageDecoder.cpp:
2008         (WebCore::GIFImageDecoder::GIFImageDecoder):
2009         (WebCore::GIFImageDecoder::setData):
2010         (WebCore::GIFImageDecoder::frameCount):
2011         (WebCore::GIFImageDecoder::repetitionCount):
2012         (WebCore::GIFImageDecoder::decode):
2013         * platform/image-decoders/gif/GIFImageDecoder.h:
2014         (GIFImageDecoder):
2015         * platform/image-decoders/gif/GIFImageReader.cpp:
2016         (GIFLZWContext::outputRow):
2017         (GIFLZWContext::doLZW):
2018         (GIFFrameContext::decode):
2019         (GIFImageReader::decode):
2020         (GIFImageReader::parse):
2021         (GIFImageReader::addFrameIfNecessary):
2022         (GIFLZWContext::prepareToDecode):
2023         * platform/image-decoders/gif/GIFImageReader.h:
2024         There is a lot of reshuffling in GIFLZWContext and GIFFrameContext.
2025         These changes has the goal of having GIFLZWContext be a pure decoding
2026         state machine. GIFFrameContext is mostly a read-only container for
2027         frame information. With all these changes we can decode each
2028         GIFFrameContext independently.
2029
2030         The ownership pattern is:
2031         GIFImageReader owns GIFFrameContext owns GIFLZWContext.
2032
2033         (GIFLZWContext::GIFLZWContext):
2034         (GIFLZWContext):
2035         (GIFLZWContext::hasRemainingRows):
2036         GIFLZWContext is moved to the top of file.
2037         (GIFLZWBlock):
2038         (GIFLZWBlock::GIFLZWBlock):
2039         New data structure to save block position and size.
2040         (GIFFrameContext):
2041         (GIFFrameContext::GIFFrameContext):
2042         (GIFFrameContext::~GIFFrameContext):
2043         (GIFFrameContext::addLzwBlock):
2044         (GIFFrameContext::isComplete):
2045         (GIFFrameContext::isHeaderDefined):
2046         (GIFFrameContext::isDataSizeDefined):
2047         (GIFFrameContext::setComplete):
2048         (GIFFrameContext::setHeaderDefined):
2049         (GIFFrameContext::setDataSize):
2050         Now owns GIFLZWContext for decoding.
2051         (GIFImageReader::GIFImageReader):
2052         (GIFImageReader::~GIFImageReader):
2053         (GIFImageReader::imagesCount):
2054         (GIFImageReader::frameContext):
2055         (GIFImageReader):
2056         (GIFImageReader::parseFailed):
2057         (GIFImageReader::isFirstFrame):
2058         Owns a list of GIFFrameContxt.
2059
2060 2013-03-19  Brent Fulgham  <bfulgham@webkit.org>
2061
2062         [WinCairo] Unreviewed build correction for WebCore library.
2063
2064         * WebCore.vcxproj/WebCore.vcxproj: Exclude CG-specific frame source
2065         from WinCairo build.
2066         * WebCore.vcxproj/WebCoreGeneratedWinCairo.make: Pass correct
2067         parameter to build-generated-files.sh for WinCairo build.
2068
2069 2013-03-19  Leon Scroggins  <scroggo@chromium.org>
2070
2071         Implement onRefEncodedData for lazy pixel refs.
2072         This allows printToSkPicture to write the original
2073         encoded data to the stream.
2074         Add a method to ImageFrameGenerator to copy its
2075         data, which is used by onRefEncodedData.
2076         https://bugs.webkit.org/show_bug.cgi?id=110759
2077
2078         Reviewed by Stephen White.
2079
2080         No new tests. New functionality is for testing purposes
2081         (creating SKP files).
2082
2083         * platform/graphics/chromium/ImageFrameGenerator.cpp:
2084         (WebCore::ImageFrameGenerator::data):
2085         (WebCore):
2086         * platform/graphics/chromium/ImageFrameGenerator.h:
2087         (ImageFrameGenerator):
2088         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
2089         (WebCore::LazyDecodingPixelRef::isClipped):
2090         (WebCore):
2091         (WebCore::LazyDecodingPixelRef::onRefEncodedData):
2092         * platform/graphics/chromium/LazyDecodingPixelRef.h:
2093         (LazyDecodingPixelRef):
2094
2095 2013-03-19  Philip Rogers  <pdr@google.com>
2096
2097         Separate SVG image size and container size
2098         https://bugs.webkit.org/show_bug.cgi?id=112651
2099
2100         Reviewed by Stephen Chenney.
2101
2102         Previously, SVG images could retain their cached size between reloads due to a bug where an
2103         old container size would be re-used if the image's new container size was not available yet.
2104
2105         This patch changes SVGImage::size() to return the intrinsic size of the image before a
2106         container size has been set. SVGImageCache::imageSizeForRenderer will now return the
2107         image's intrinsic size instead of a cached value if the container size cannot be looked up.
2108         In javascript, querying [SVGImage].width will now return either the image's intrinsic size
2109         or the size of 'imageForContainer'.
2110
2111         Test: svg/as-image/svg-container-size-after-reload.html
2112
2113         * svg/graphics/SVGImage.cpp:
2114         (WebCore::SVGImage::setContainerSize):
2115         (WebCore::SVGImage::containerSize):
2116         (WebCore::SVGImage::draw):
2117         (WebCore::SVGImage::dataChanged):
2118         * svg/graphics/SVGImage.h:
2119
2120             The member variable 'm_intrinsicSize' has been added to track the image's intrinsic
2121             size. This term can be found in: http://www.w3.org/TR/css3-images/#default-sizing
2122
2123         * svg/graphics/SVGImageCache.cpp:
2124         (WebCore::SVGImageCache::imageSizeForRenderer):
2125         (WebCore::SVGImageCache::imageForRenderer):
2126
2127             In both of these functions, image has been renamed to imageForContainer here to clarify
2128             that the cached container size is being returned, not the image's intrinsic size.
2129
2130 2013-03-19  Joshua Bell  <jsbell@chromium.org>
2131
2132         IndexedDB: Use integer plumbing for deleteDatabase onVersionChange calls
2133         https://bugs.webkit.org/show_bug.cgi?id=112715
2134
2135         Reviewed by Tony Chang.
2136
2137         When deleteDatabase on the back-end needs to send the front-end an
2138         onVersionChange notification it does so using the string overload. That's
2139         the only remaining use of that overload and we'd like to delete it. Switch
2140         to using the integer overload, with an already defined special value.
2141         This will unblock http://wkbug.com/112712 to delete the dead code.
2142
2143         No new tests - no functional change.
2144
2145         * Modules/indexeddb/IDBDatabase.cpp:
2146         (WebCore::IDBDatabase::onVersionChange): Map NoIntVersion to null.
2147         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
2148         (WebCore::IDBDatabaseBackendImpl::deleteDatabase): Call integer overload.
2149
2150 2013-03-19  Terry Anderson  <tdanderson@chromium.org>
2151
2152         Hover effects from a GestureTapDown are dismissed by a GestureTap on the hover element
2153         https://bugs.webkit.org/show_bug.cgi?id=103283
2154
2155         Reviewed by Antonio Gomes.
2156
2157         On a GestureTap event over an element that was made visible as a hover effect, the
2158         GestureTap should be applied to that element and the hover effects should not be dismissed. 
2159         A GestureTap or a mouse move to a location outside of the element should still dismiss the
2160         hover effects.
2161
2162         Tests: fast/events/touch/gesture/gesture-tap-hover-clear.html
2163                fast/events/touch/gesture/gesture-tap-on-hover-element.html
2164
2165         * page/EventHandler.cpp:
2166         (WebCore::EventHandler::handleGestureEvent):
2167
2168 2013-03-19  Alexei Filippov  <alph@chromium.org>
2169
2170         Web Inspector: Fix menu items capitalization.
2171         https://bugs.webkit.org/show_bug.cgi?id=112553
2172
2173         The context menu items should be correctly capitalized.
2174
2175         Reviewed by Pavel Feldman.
2176
2177         * English.lproj/localizedStrings.js:
2178         * inspector/front-end/BreakpointsSidebarPane.js:
2179         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._emptyElementContextMenu):
2180         (WebInspector.XHRBreakpointsSidebarPane.prototype._emptyElementContextMenu):
2181         (WebInspector.XHRBreakpointsSidebarPane.prototype._contextMenu):
2182         * inspector/front-end/CallStackSidebarPane.js:
2183         (WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
2184         * inspector/front-end/ConsoleView.js:
2185         (WebInspector.ConsoleView.prototype._handleContextMenuEvent.get var):
2186         (WebInspector.ConsoleView.prototype._handleContextMenuEvent.set get contextMenu):
2187         * inspector/front-end/DOMBreakpointsSidebarPane.js:
2188         (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
2189         * inspector/front-end/DataGrid.js:
2190         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
2191         * inspector/front-end/ElementsPanel.js:
2192         (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
2193         (WebInspector.ElementsPanel.prototype.appendApplicableItems):
2194         * inspector/front-end/ElementsTreeOutline.js:
2195         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
2196         (WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
2197         * inspector/front-end/HeapSnapshotDataGrids.js:
2198         (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu):
2199         * inspector/front-end/NetworkPanel.js:
2200         (WebInspector.NetworkPanel.prototype.appendApplicableItems):
2201         * inspector/front-end/ProfilesPanel.js:
2202         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
2203         (WebInspector.ProfilesPanel.prototype.appendApplicableItems):
2204         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
2205         * inspector/front-end/ResourcesPanel.js:
2206         (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
2207         * inspector/front-end/ScriptsPanel.js:
2208         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeMappingItems):
2209         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
2210         (WebInspector.ScriptsPanel.prototype._appendFunctionItems):
2211         * inspector/front-end/TabbedPane.js:
2212         (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
2213         * inspector/front-end/TimelinePanel.js:
2214         (WebInspector.TimelinePanel.prototype._contextMenu):
2215         * inspector/front-end/WatchExpressionsSidebarPane.js:
2216         (WebInspector.WatchExpressionsSection.prototype._emptyElementContextMenu):
2217         (WebInspector.WatchExpressionTreeElement.prototype.populateContextMenu):
2218
2219 2013-03-19  Alec Flett  <alecflett@chromium.org>
2220
2221         Inspector: IndexedDB clear button and menu item
2222         https://bugs.webkit.org/show_bug.cgi?id=112066
2223
2224         Reviewed by Vsevolod Vlasov.
2225
2226         Adds a button that can clear the contents of an objectStore from
2227         the IDBDataView, and a context menu from the ResourcesPanel that
2228         can do the same.
2229
2230         This also disables the Refresh button from the IDBDataView, so there
2231         is at least some visual feedback that the refresh button is working.
2232
2233         Tests: http/tests/inspector/indexeddb/database-data.html
2234
2235         * inspector/Inspector.json: New API clearObjectStore.
2236         * inspector/InspectorIndexedDBAgent.cpp: Implementation of clearObjectStore
2237         (WebCore):
2238         (ClearObjectStoreListener): Calls the original closure after the objectStore is cleared.
2239         (ClearObjectStore): Initiates the clear operation after the DB opens.
2240         * inspector/front-end/IndexedDBModel.js: Exposes clearObjectStore to the Model API.
2241         (WebInspector.IDBDataView): Add clear button and enable/disable clear and refresh buttons appropriately.
2242         * inspector/front-end/ResourcesPanel.js: Add a menu item and refresh the displayed data after the clear.
2243         * inspector/front-end/inspector.css: Add a style to show the right button for clear.
2244
2245 2013-03-19  Nate Chapin  <japhet@chromium.org>
2246
2247         Merge MainResourceLoader::responseReceived into DocumentLoader
2248         https://bugs.webkit.org/show_bug.cgi?id=112593
2249
2250         Part of the ongoing effort to merge MainResourceLoader entirely
2251         into DocumentLoader.
2252
2253         Reviewed by Adam Barth.
2254
2255         No new tests, refactor only.
2256
2257         * loader/DocumentLoader.cpp:
2258         (WebCore::DocumentLoader::DocumentLoader):
2259         (WebCore::DocumentLoader::stopLoading):
2260         (WebCore::DocumentLoader::finishedLoading): The only thing left in
2261             MainResourceLoader related to this function was a RefPtr which indirectly
2262             protected DocumentLoader. Move the RefPtr here and protect DocumentLoader directly.
2263         (WebCore::DocumentLoader::responseReceived): Moved from MainResourceLoader.
2264         (WebCore::DocumentLoader::callContinueAfterContentPolicy): Moved from MainResourceLoader.
2265         (WebCore::DocumentLoader::continueAfterContentPolicy): Moved from MainResourceLoader.
2266         (WebCore::DocumentLoader::interruptedForPolicyChangeError): Moved from MainResourceLoader.
2267         (WebCore::DocumentLoader::stopLoadingForPolicyChange): Moved from MainResourceLoader.
2268         (WebCore::DocumentLoader::receivedData):
2269         (WebCore::DocumentLoader::cancelMainResourceLoad):
2270         * loader/DocumentLoader.h:
2271         (WebCore::DocumentLoader::isLoadingMultipartContent): Store multipart bit here.
2272         * loader/MainResourceLoader.cpp:
2273         (WebCore::MainResourceLoader::MainResourceLoader):
2274         (WebCore::MainResourceLoader::cancel):
2275         (WebCore::MainResourceLoader::responseReceived):
2276         (WebCore::MainResourceLoader::notifyFinished):
2277         * loader/MainResourceLoader.h:
2278
2279 2013-03-19  Tony Chang  <tony@chromium.org>
2280
2281         Cleanup defaultUnifiedTextCheckerEnabled type
2282         https://bugs.webkit.org/show_bug.cgi?id=112640
2283
2284         Reviewed by Adam Barth.
2285
2286         It's a bool setting. I accidentally declared the default value as a double
2287         in r139202.
2288
2289         No new tests, this is a refactor/code cleanup.
2290
2291         * page/Settings.cpp:
2292         (WebCore): Switch from double to a bool.
2293
2294 2013-03-19  Alexei Filippov  <alph@chromium.org>
2295
2296         Web Inspector: Increase DataGrid default font size.
2297         https://bugs.webkit.org/show_bug.cgi?id=112692
2298
2299         Reviewed by Pavel Feldman.
2300
2301         The default font of 10px is too small. Most instances of DataGrid set
2302         font to 11px.
2303
2304         * inspector/front-end/dataGrid.css:
2305         (.data-grid table):
2306
2307 2013-03-19  Max Vujovic  <mvujovic@adobe.com>
2308
2309         Refactor conditions for setCompositingLayersNeedRebuild in RenderLayer::styleChanged
2310         https://bugs.webkit.org/show_bug.cgi?id=112606
2311
2312         Reviewed by Simon Fraser.
2313
2314         To fix bug 109098 [1], we will need to add more conditions for calling
2315         RenderLayerCompositor::setCompositingLayersNeedRebuild in RenderLayer::styleChanged.
2316         Adding more non-trivial conditions will make this block of code even harder to follow.
2317         This patch refactors the current conditions into functions:
2318             needsCompositingLayersRebuiltForClip
2319             needsCompositingLayersRebuiltForOverflow
2320
2321         In bug 109098 [1], I'm planning to add:
2322             needsCompositingLayersRebuiltForFilters
2323
2324         [1]: https://bugs.webkit.org/show_bug.cgi?id=109098
2325
2326         No new tests. Just refactoring.
2327
2328         * rendering/RenderLayer.cpp:
2329         (WebCore):
2330         (WebCore::RenderLayer::needsCompositingLayersRebuiltForClip):
2331         (WebCore::RenderLayer::needsCompositingLayersRebuiltForOverflow):
2332             This is a method and not a file static function because it needs to look at the
2333             RenderLayer's stackingContainer(), which is a private method.
2334         (WebCore::RenderLayer::styleChanged):
2335         * rendering/RenderLayer.h:
2336         (RenderLayer):
2337
2338 2013-03-19  Allan Sandfeld Jensen  <allan.jensen@digia.com>
2339
2340         [Qt] Support kerning in fast path font rendering
2341         https://bugs.webkit.org/show_bug.cgi?id=106013
2342
2343         Reviewed by Jocelyn Turcotte.
2344
2345         To support kerning in the fast font path we need to implement SimpleFontData::applyTransforms.
2346
2347         This patch changes the types used by the fast path GlyphBuffer to match those used by Qt,
2348         and implements SimpleFontData::applyTransforms using QRawFont::advancesForGlyphIndexes.
2349
2350         * platform/graphics/GlyphBuffer.h:
2351         (GlyphBufferAdvance):
2352         (WebCore::GlyphBufferAdvance::GlyphBufferAdvance):
2353         (WebCore::GlyphBufferAdvance::setWidth):
2354         (WebCore::GlyphBufferAdvance::width):
2355         (WebCore::GlyphBufferAdvance::height):
2356         (WebCore::GlyphBuffer::add):
2357         * platform/graphics/SimpleFontData.h:
2358         (WebCore::SimpleFontData::applyTransforms):
2359         * platform/graphics/WidthIterator.h:
2360         (WebCore::WidthIterator::supportsTypesettingFeatures):
2361
2362 2013-03-19  Sergey Ryazanov  <serya@chromium.org>
2363
2364         Web Inspector: split Console into two entities, a web-facing bound object and page console.
2365         https://bugs.webkit.org/show_bug.cgi?id=111578
2366
2367         Reviewed by Vsevolod Vlasov.
2368
2369         Otherwise, a lot of logging in WebCore needs to go through the DOMWindow which is unnecessary.
2370
2371         * CMakeLists.txt:
2372         * GNUmakefile.list.am:
2373         * Target.pri:
2374         * WebCore.exp.in:
2375         * WebCore.gypi:
2376         * WebCore.order:
2377         * WebCore.vcproj/WebCore.vcproj:
2378         * WebCore.vcxproj/WebCore.vcxproj:
2379         * WebCore.vcxproj/WebCore.vcxproj.filters:
2380         * WebCore.xcodeproj/project.pbxproj:
2381         * bindings/js/JSCustomXPathNSResolver.cpp:
2382         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
2383         * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
2384         (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
2385         * dom/Document.cpp:
2386         (WebCore::Document::addConsoleMessage):
2387         (WebCore::Document::addMessage):
2388         * inspector/PageDebuggerAgent.cpp:
2389         (WebCore::PageDebuggerAgent::muteConsole):
2390         (WebCore::PageDebuggerAgent::unmuteConsole):
2391         * inspector/PageRuntimeAgent.cpp:
2392         (WebCore::PageRuntimeAgent::muteConsole):
2393         (WebCore::PageRuntimeAgent::unmuteConsole):
2394         * page/Console.cpp:
2395         (WebCore::internalAddMessage):
2396         * page/Console.h:
2397         (WebCore):
2398         (Console):
2399         * page/DOMWindow.cpp:
2400         (WebCore::DOMWindow::pageConsole):
2401         (WebCore):
2402         (WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
2403         (WebCore::DOMWindow::printErrorMessage):
2404         * page/DOMWindow.h:
2405         (WebCore):
2406         (DOMWindow):
2407         * page/Page.cpp:
2408         (WebCore::Page::Page):
2409         * page/Page.h:
2410         (WebCore):
2411         (WebCore::Page::console):
2412         (Page):
2413         * page/PageConsole.cpp: Added.
2414         (WebCore::PageConsole::PageConsole):
2415         (WebCore):
2416         (WebCore::PageConsole::~PageConsole):
2417         (WebCore::PageConsole::printSourceURLAndLine):
2418         (WebCore::PageConsole::printMessageSourceAndLevelPrefix):
2419         (WebCore::PageConsole::addMessage):
2420         (WebCore::PageConsole::mute):
2421         (WebCore::PageConsole::unmute):
2422         (WebCore::PageConsole::shouldPrintExceptions):
2423         (WebCore::PageConsole::setShouldPrintExceptions):
2424         * page/PageConsole.h: Copied from Source/WebCore/page/Console.h.
2425         (WebCore):
2426         (PageConsole):
2427         (WebCore::PageConsole::create):
2428         (WebCore::PageConsole::page):
2429         * xml/XSLStyleSheetLibxslt.cpp:
2430         (WebCore::XSLStyleSheet::parseString):
2431         * xml/XSLTProcessorLibxslt.cpp:
2432         (WebCore::XSLTProcessor::parseErrorFunc):
2433         (WebCore::docLoaderFunc):
2434
2435 2013-03-19  Ilya Tikhonovsky  <loislo@chromium.org>
2436
2437         Web Inspector: move OverviewGrid and OverviewWindow into separate file.
2438         https://bugs.webkit.org/show_bug.cgi?id=112693
2439
2440         Reviewed by Yury Semikhatsky.
2441
2442         It is the third patch for the meta bug "Web Inspector: meta bug: extract OverviewGrid from TimelineOverviewPane"
2443         It just moves the OverviewGrid and the related classes into its own file.
2444
2445         * WebCore.gypi:
2446         * WebCore.vcproj/WebCore.vcproj:
2447         * WebCore.vcxproj/WebCore.vcxproj:
2448         * WebCore.vcxproj/WebCore.vcxproj.filters:
2449         * inspector/compile-front-end.py:
2450         * inspector/front-end/OverviewGrid.js: Added.
2451         (WebInspector.OverviewGrid):
2452         (WebInspector.OverviewGrid.prototype.itemsGraphsElement):
2453         (WebInspector.OverviewGrid.prototype.insertBeforeItemsGraphsElement):
2454         (WebInspector.OverviewGrid.prototype.clientWidth):
2455         (WebInspector.OverviewGrid.prototype.showItemsGraphsElement):
2456         (WebInspector.OverviewGrid.prototype.hideItemsGraphsElement):
2457         (WebInspector.OverviewGrid.prototype.updateDividers):
2458         (WebInspector.OverviewGrid.prototype.addEventDividers):
2459         (WebInspector.OverviewGrid.prototype.removeEventDividers):
2460         (WebInspector.OverviewGrid.prototype.setWindowPosition):
2461         (WebInspector.OverviewGrid.prototype.reset):
2462         (WebInspector.OverviewGrid.prototype.windowLeft):
2463         (WebInspector.OverviewGrid.prototype.windowRight):
2464         (WebInspector.OverviewGrid.prototype.setWindow):
2465         (WebInspector.OverviewGrid.prototype.addEventListener):
2466         (WebInspector.OverviewGrid.Window):
2467         (WebInspector.OverviewGrid.Window.prototype.reset):
2468         (WebInspector.OverviewGrid.Window.prototype._leftResizeElementDragging):
2469         (WebInspector.OverviewGrid.Window.prototype._rightResizeElementDragging):
2470         (WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
2471         (WebInspector.OverviewGrid.Window.prototype._windowSelectorDragging):
2472         (WebInspector.OverviewGrid.Window.prototype._endWindowSelectorDragging):
2473         (WebInspector.OverviewGrid.Window.prototype._startWindowDragging):
2474         (WebInspector.OverviewGrid.Window.prototype._windowDragging):
2475         (WebInspector.OverviewGrid.Window.prototype._endWindowDragging):
2476         (WebInspector.OverviewGrid.Window.prototype._moveWindow):
2477         (WebInspector.OverviewGrid.Window.prototype._resizeWindowLeft):
2478         (WebInspector.OverviewGrid.Window.prototype._resizeWindowRight):
2479         (WebInspector.OverviewGrid.Window.prototype._resizeWindowMaximum):
2480         (WebInspector.OverviewGrid.Window.prototype._setWindow):
2481         (WebInspector.OverviewGrid.Window.prototype._setWindowPosition):
2482         (WebInspector.OverviewGrid.Window.prototype._onMouseWheel):
2483         (WebInspector.OverviewGrid.Window.prototype._zoom):
2484         (WebInspector.OverviewGrid.WindowSelector):
2485         (WebInspector.OverviewGrid.WindowSelector.prototype._createSelectorElement):
2486         (WebInspector.OverviewGrid.WindowSelector.prototype._close):
2487         (WebInspector.OverviewGrid.WindowSelector.prototype._updatePosition):
2488         * inspector/front-end/TimelineOverviewPane.js:
2489         * inspector/front-end/WebKit.qrc:
2490         * inspector/front-end/inspector.html:
2491
2492 2013-03-19  Allan Sandfeld Jensen  <allan.jensen@digia.com>
2493
2494         [Qt] Monospace font does not render in proper sizes
2495         https://bugs.webkit.org/show_bug.cgi?id=93263
2496
2497         Reviewed by Jocelyn Turcotte.
2498
2499         Do not force fonts to use integer metrics. This was necessary when the fast font path
2500         only worked in integer but is now hindering accurate metrics. This is also required to
2501         make kerning in the fast-path look acceptable
2502
2503         Only enabled for Qt 5.1+ to avoid changing all the baselines for 5.0.
2504
2505         * platform/graphics/qt/FontPlatformDataQt.cpp:
2506         (WebCore::FontPlatformData::FontPlatformData):
2507
2508 2013-03-19  John J. Barton  <johnjbarton@chromium.org>
2509
2510         Web Inspector: Add iframe option to inspectedWindow.eval() extension API
2511         https://bugs.webkit.org/show_bug.cgi?id=106811
2512
2513         Reviewed by Vsevolod Vlasov.
2514
2515         Add a new case to the options processing in inspectedWindow.eval(), look
2516         for option.frameURL <string> and/or option.scriptExecutionContext: <string>, find the
2517         matching JS context in the runtimeModel, and call evaluate() in that
2518         context; or error if the context is not found. 
2519
2520         Test: http/tests/inspector/extensions-iframe-eval.html
2521
2522         * inspector/front-end/ExtensionServer.js:
2523         (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
2524         (WebInspector.ExtensionServer.prototype.):
2525         (WebInspector.ExtensionServer.prototype.evaluate):
2526         * inspector/front-end/ResourceTreeModel.js:
2527         (WebInspector.ResourceTreeModel.prototype.frames):
2528            Added read access to _frames
2529        * inspector/front-end/RuntimeModel.js:
2530         (WebInspector.RuntimeModel.prototype.contextListByFrame):
2531            Added access to a frame's contextList, removed contextByFrameAndSecurityOrigin()
2532         (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
2533            Added access to frame's mainWorldContext, rather than implicit first context.
2534            Now we can go from ResourceTreeModel -> frame -> contextList then either
2535            mainWorldContext() or contextBySecurityOrigin() to access contexts.
2536
2537         * inspector/front-end/ExtensionServer.js:
2538         (WebInspector.ExtensionServer.prototype.):
2539         (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
2540         (WebInspector.ExtensionServer.prototype.evaluate):
2541         * inspector/front-end/ResourceTreeModel.js:
2542         * inspector/front-end/RuntimeModel.js:
2543         (WebInspector.RuntimeModel.prototype.contextListByFrame):
2544         (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
2545
2546         * inspector/front-end/ExtensionServer.js:
2547         (WebInspector.ExtensionServer.prototype._onReload):
2548         (WebInspector.ExtensionServer.prototype.resolveURLToFrame.hasMatchingURL):
2549         (WebInspector.ExtensionServer.prototype.):
2550         (WebInspector.ExtensionServer.prototype.evaluate):
2551         * inspector/front-end/ResourceTreeModel.js:
2552         (WebInspector.ResourceTreeModel.prototype.frames):
2553         * inspector/front-end/RuntimeModel.js:
2554         (WebInspector.RuntimeModel.prototype.contextListByFrame):
2555         (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
2556
2557         * inspector/front-end/ExtensionServer.js:
2558         (WebInspector.ExtensionServer.prototype.resolveURLToFrame.hasMatchingURL):
2559         (WebInspector.ExtensionServer.prototype.):
2560         (WebInspector.ExtensionServer.prototype.evaluate):
2561         * inspector/front-end/ResourceTreeModel.js:
2562         (WebInspector.ResourceTreeModel.prototype.frames):
2563         * inspector/front-end/RuntimeModel.js:
2564         (WebInspector.RuntimeModel.prototype.contextListByFrame):
2565         (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
2566
2567 2013-03-19  Ilya Tikhonovsky  <loislo@chromium.org>
2568
2569         Web Inspector: rename TimelineOverviewWindow to OverviewGrid.Window and fix names for constants.
2570         https://bugs.webkit.org/show_bug.cgi?id=112685
2571
2572         Reviewed by Yury Semikhatsky.
2573
2574         It is the second patch which extracts OverviewGrid from TimelineOverviewPane.
2575         It renames internal components of OverviewGrid.
2576         WebInspector.TimelineOverviewWindow -> WebInspector.OverviewGrid.Window
2577         WebInspector.TimelineOverviewWindow.WindowSelector -> WebInspector.OverviewGrid.WindowSelector
2578
2579         and moves constants from WebInspector.TimelineOverviewWindow namespace to WebInspector.OverviewGrid namespace
2580
2581         * inspector/front-end/TimelineOverviewPane.js:
2582         (WebInspector.TimelineOverviewPane):
2583         (WebInspector.OverviewGrid):
2584         (WebInspector.OverviewGrid.Window):
2585         (WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
2586         (WebInspector.OverviewGrid.Window.prototype._endWindowSelectorDragging):
2587         (WebInspector.OverviewGrid.Window.prototype._startWindowDragging):
2588         (WebInspector.OverviewGrid.Window.prototype._windowDragging):
2589         (WebInspector.OverviewGrid.Window.prototype._moveWindow):
2590         (WebInspector.OverviewGrid.Window.prototype._resizeWindowRight):
2591         (WebInspector.OverviewGrid.Window.prototype._setWindowPosition):
2592         (WebInspector.OverviewGrid.Window.prototype._onMouseWheel):
2593         (WebInspector.OverviewGrid.Window.prototype._zoom):
2594         (WebInspector.OverviewGrid.WindowSelector):
2595         (WebInspector.OverviewGrid.WindowSelector.prototype._createSelectorElement):
2596
2597 2013-03-19  Ilya Tikhonovsky  <loislo@chromium.org>
2598
2599         Web Inspector: move _timelineGrid && _timelineOverviewWindow from TimelineOverviewPane into a new class OverviewGrid.
2600         https://bugs.webkit.org/show_bug.cgi?id=112584
2601
2602         Reviewed by Pavel Feldman.
2603
2604         It is the first path in the set.
2605         The end goal is to extract OverviewGrid with window selectors
2606         into a separate class in separate file and reuse it in CPU FlameChart.
2607
2608         * inspector/front-end/TimelineOverviewPane.js:
2609         (WebInspector.TimelineOverviewPane):
2610         (WebInspector.OverviewGrid):
2611         (WebInspector.OverviewGrid.prototype.get grid):
2612         (WebInspector.OverviewGrid.prototype.get clientWidth):
2613         (WebInspector.OverviewGrid.prototype.showItemsGraphsElement):
2614         (WebInspector.OverviewGrid.prototype.hideItemsGraphsElement):
2615         (WebInspector.OverviewGrid.prototype.updateDividers):
2616         (WebInspector.OverviewGrid.prototype.addEventDividers):
2617         (WebInspector.OverviewGrid.prototype.removeEventDividers):
2618         (WebInspector.OverviewGrid.prototype.setWindowPosition):
2619         (WebInspector.OverviewGrid.prototype.reset):
2620         (WebInspector.OverviewGrid.prototype.get windowLeft):
2621         (WebInspector.OverviewGrid.prototype.get windowRight):
2622         (WebInspector.OverviewGrid.prototype.setWindow):
2623         (WebInspector.OverviewGrid.prototype.addEventListener):
2624         (WebInspector.TimelineOverviewPane.prototype.setMode):
2625         (WebInspector.TimelineOverviewPane.prototype._setFrameMode):
2626         (WebInspector.TimelineOverviewPane.prototype._update):
2627         (WebInspector.TimelineOverviewPane.prototype.sidebarResized):
2628         (WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
2629         (WebInspector.TimelineOverviewPane.prototype._reset):
2630         (WebInspector.TimelineOverviewPane.prototype.windowLeft):
2631         (WebInspector.TimelineOverviewPane.prototype.windowRight):
2632         (WebInspector.TimelineOverviewPane.prototype._updateWindow):
2633
2634 2013-03-19  Vladislav Kaznacheev  <kaznacheev@chromium.org>
2635
2636         Web Inspector: Add Inspector.targetCrashed event to Inspector protocol.
2637         https://bugs.webkit.org/show_bug.cgi?id=112669
2638
2639         Added Inspector.targetCrashed event and handled it on the front end.
2640         Showing a modal dialog similar to the one displayed when the remote
2641         debugging target is disconnected.
2642
2643         Reviewed by Pavel Feldman.
2644
2645         * English.lproj/localizedStrings.js:
2646         * inspector/Inspector.json:
2647         * inspector/front-end/HelpScreen.js:
2648         (WebInspector.HelpScreenUntilReload):
2649         (WebInspector.HelpScreenUntilReload.prototype.willHide):
2650         * inspector/front-end/inspector.js:
2651         (WebInspector.targetCrashed):
2652
2653 2013-03-19  Mario Sanchez Prada  <mario.prada@samsung.com>
2654
2655         [GTK] Wrong guard USE(GLX) in RedirectedXCompositeWindow
2656         https://bugs.webkit.org/show_bug.cgi?id=112600
2657
2658         Reviewed by Martin Robinson.
2659
2660         Replace USE(GLX) condition with USE(OPENGL) && PLATFORM(X11).
2661
2662         * platform/gtk/RedirectedXCompositeWindow.cpp: Updated guard.
2663         * platform/gtk/RedirectedXCompositeWindow.h: Ditto.
2664
2665 2013-03-19  Mihnea Ovidenie  <mihnea@adobe.com>
2666
2667         [CSSRegions] Crash reflowing content in variable width regions
2668         https://bugs.webkit.org/show_bug.cgi?id=112515
2669
2670         Reviewed by David Hyatt.
2671
2672         When removing floats during relayout of a line in a paginated context,
2673         we have to make sure that the floats collection actually has elements before
2674         accessing the last float from the collection.
2675         This situation arises when a block had floats in a previous layout and after
2676         they were removed, m_floatingObjects is not destroyed, only emptied.
2677
2678         Test: fast/regions/crash-reflow-inline-content-in-variable-width-regions.html
2679
2680         * rendering/RenderBlock.cpp:
2681         (WebCore::RenderBlock::removeFloatingObjectsBelow):
2682         * rendering/RenderBlockLineLayout.cpp:
2683         (WebCore::RenderBlock::layoutRunsAndFloats):
2684         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
2685
2686 2013-03-18  Vsevolod Vlasov  <vsevik@chromium.org>
2687
2688         Web Inspector: Debugger scripts should visually differ from network/filesystem files in workspace.
2689         https://bugs.webkit.org/show_bug.cgi?id=112552
2690
2691         Reviewed by Pavel Feldman.
2692
2693         Extracted ContentProviderBasedProjectDelegate from SimpleProjectDelegate.
2694         Implemented DebuggerProjectDelegate for DefaultScriptMapping.
2695         Debugger scripts are now added to workspace with a name starting with [VM] and ending with scriptId.
2696         Added yellow background to debugger scripts editor.
2697
2698         * WebCore.gypi:
2699         * WebCore.vcproj/WebCore.vcproj:
2700         * inspector/compile-front-end.py:
2701         * inspector/front-end/ContentProviderBasedProjectDelegate.js: Added.
2702         * inspector/front-end/DefaultScriptMapping.js:
2703         (WebInspector.DefaultScriptMapping):
2704         (WebInspector.DefaultScriptMapping.prototype.addScript):
2705         (WebInspector.DefaultScriptMapping.prototype._debuggerReset):
2706         (WebInspector.DebuggerProjectDelegate):
2707         (WebInspector.DebuggerProjectDelegate.prototype.id):
2708         (WebInspector.DebuggerProjectDelegate.prototype.type):
2709         (WebInspector.DebuggerProjectDelegate.prototype.displayName):
2710         (WebInspector.DebuggerProjectDelegate.prototype.addScript):
2711         * inspector/front-end/JavaScriptSourceFrame.js:
2712         (WebInspector.JavaScriptSourceFrame):
2713         * inspector/front-end/ParsedURL.js:
2714         (WebInspector.ParsedURL.splitURL):
2715         * inspector/front-end/SimpleWorkspaceProvider.js:
2716         (WebInspector.SimpleProjectDelegate):
2717         (WebInspector.SimpleProjectDelegate.prototype.addFile):
2718         (WebInspector.SimpleProjectDelegate.prototype._ensureUniquePath):
2719         (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
2720         * inspector/front-end/WebKit.qrc:
2721         * inspector/front-end/Workspace.js:
2722         (WebInspector.Workspace.prototype.uiSourceCodeForURL):
2723         * inspector/front-end/inspector.html:
2724         * inspector/front-end/javaScriptSourceFrame.css: Added.
2725         (.source-frame-debugger-script):
2726
2727 2013-03-19  Andrey Lushnikov  <lushnikov@chromium.org>
2728
2729         Web Inspector: [CodeMirror] add smart braces functionality
2730         https://bugs.webkit.org/show_bug.cgi?id=112138
2731
2732         Reviewed by Vsevolod Vlasov.
2733
2734         No new tests.
2735
2736         Add closebrackets add-on to codemirror which implements smart braces
2737         functionality and guard this setting with the "Text Editor smart
2738         braces" experiment.
2739
2740         * WebCore.gypi:
2741         * WebCore.vcproj/WebCore.vcproj:
2742         * WebCore.vcxproj/WebCore.vcxproj:
2743         * WebCore.vcxproj/WebCore.vcxproj.filters:
2744         * inspector/front-end/CodeMirrorTextEditor.js:
2745         * inspector/front-end/WebKit.qrc:
2746         * inspector/front-end/cm/closebrackets.js: Added.
2747         (.):
2748
2749 2013-03-19  Andrey Lushnikov  <lushnikov@chromium.org>
2750
2751         Web Inspector: Avoid forcing text editor resize
2752         https://bugs.webkit.org/show_bug.cgi?id=112581
2753
2754         Reviewed by Vsevolod Vlasov.
2755
2756         No new tests.
2757
2758         Avoid unnecessary text editor resizing by removing line decoration
2759         via removeDecoration method instead of DOM remove operation.
2760
2761         * inspector/front-end/SourceFrame.js:
2762         (WebInspector.SourceFrame.prototype.clearMessages):
2763         (WebInspector.SourceFrame.prototype._setTextEditorDecorations):
2764
2765 2013-03-19  Andrey Lushnikov  <lushnikov@chromium.org>
2766
2767         Web Inspector: [CodeMirror] fix cursor movements
2768         https://bugs.webkit.org/show_bug.cgi?id=112555
2769
2770         Reviewed by Vsevolod Vlasov.
2771
2772         No new tests.
2773
2774         - Update CodeMirror to ToT to include its improved cursor movement
2775         - Add a small keymap to force cursor stop on both line endings and line
2776         starts.
2777
2778         * inspector/front-end/CodeMirrorTextEditor.js:
2779         (WebInspector.CodeMirrorTextEditor):
2780         (WebInspector.CodeMirrorTextEditor.FixWordMovement):
2781         (WebInspector.CodeMirrorTextEditor.FixWordMovement.moveRight):
2782         * inspector/front-end/cm/codemirror.css:
2783         (.CodeMirror div.CodeMirror-cursor):
2784         (.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor):
2785         (.CodeMirror):
2786         * inspector/front-end/cm/codemirror.js:
2787         (window.CodeMirror):
2788         (window.CodeMirror.):
2789
2790 2013-03-19  Adam Barth  <abarth@webkit.org>
2791
2792         [chromium] Regression(143825): select elements don't open when there is a marquee on the page
2793         https://bugs.webkit.org/show_bug.cgi?id=111278
2794
2795         Unreviewed.
2796
2797         This patch is a rollout of http://trac.webkit.org/changeset/143825. The
2798         original patch caused a regression in the Chromium port.
2799
2800         * rendering/RenderLayer.cpp:
2801         (WebCore::RenderLayer::scrollTo):
2802
2803 2013-03-19  Alexander Pavlov  <apavlov@chromium.org>
2804
2805         Web Inspector: [Styles] Matching @host rule children are not displayed
2806         https://bugs.webkit.org/show_bug.cgi?id=112664
2807
2808         Reviewed by Vsevolod Vlasov.
2809
2810         Process host rules' contents akin to media rules' when handling the CSS model and source data.
2811
2812         Test: platform/chromium/inspector/styles/host-rules.html
2813
2814         * inspector/InspectorStyleSheet.cpp:
2815         (flattenSourceData):
2816         (WebCore::asCSSRuleList):
2817
2818 2013-03-18  Alexander Pavlov  <apavlov@chromium.org>
2819
2820         Web Inspector: [Styles] The "inherit" property value should be suggested for all properties
2821         https://bugs.webkit.org/show_bug.cgi?id=112662
2822
2823         Reviewed by Vsevolod Vlasov.
2824
2825         * inspector/front-end/CSSMetadata.js:
2826         (WebInspector.CSSMetadata.keywordsForProperty):
2827
2828 2013-03-18  David Kilzer  <ddkilzer@apple.com>
2829
2830         BUILD FIX (r146088): ResourceRequest::cfURLRequest() is defined twice on iOS
2831         <http://webkit.org/b/112387>
2832
2833         * platform/network/mac/ResourceRequestMac.mm:
2834         (WebCore::ResourceRequest::cfURLRequest): Move method into
2835         !USE(CFNETWORK) section since it's also defined in
2836         cf/ResourceRequestCFNet.cpp on iOS.
2837
2838 2013-03-18  Alpha Lam  <hclam@chromium.org>
2839
2840         [chromium] More tracing in deferred image decoding
2841         https://bugs.webkit.org/show_bug.cgi?id=112648
2842
2843         Reviewed by James Robinson.
2844
2845         Adding more trace events for a couple things in deferred image decoding path:
2846         - Time span for each lock pixels of SkPixelRef.
2847         - Time spent on decoding, scaling and pruning. Also the stack trace for these events.
2848         - Memory usage and number of cached entries.
2849         - Number of decode & scale operations done per image.
2850
2851         No test as this just add tracing information and no behavior change.
2852
2853         * platform/graphics/chromium/ImageDecodingStore.cpp:
2854         (WebCore::ImageDecodingStore::prune):
2855         (WebCore::ImageDecodingStore::insertCacheInternal):
2856         (WebCore::ImageDecodingStore::removeFromCacheInternal):
2857         * platform/graphics/chromium/ImageFrameGenerator.cpp:
2858         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
2859         (WebCore::ImageFrameGenerator::decodeAndScale):
2860         (WebCore::ImageFrameGenerator::tryToScale):
2861         (WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
2862         (WebCore::ImageFrameGenerator::tryToDecodeAndScale):
2863         (WebCore::ImageFrameGenerator::decode):
2864         * platform/graphics/chromium/ImageFrameGenerator.h:
2865         (ImageFrameGenerator):
2866         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
2867         (WebCore::LazyDecodingPixelRef::onLockPixels):
2868         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
2869         (WebCore::LazyDecodingPixelRef::PrepareToDecode):
2870
2871 2013-03-18  Kentaro Hara  <haraken@chromium.org>
2872
2873         Unreviewed. Rebaselined run-bindings-tests after r146161.
2874
2875         * bindings/scripts/test/JS/JSTestObj.cpp:
2876         (WebCore::setJSTestObjEnumAttr):
2877         (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
2878         * bindings/scripts/test/V8/V8TestObj.cpp:
2879         (WebCore::ConfigureV8TestObjTemplate):
2880
2881 2013-03-18  Robert Flack  <flackr@chromium.org>
2882
2883         [chromium] Small pixel differences in scroll bars after r145844
2884         https://bugs.webkit.org/show_bug.cgi?id=112384
2885
2886         Reviewed by Kenneth Russell.
2887
2888         Tests: fast/forms/basic-textareas-quirks.html
2889                fast/forms/basic-textareas.html
2890                fast/overflow/overflow-x-y.html
2891                fast/parser/open-comment-in-textarea.html
2892                fast/replaced/width100percent-textarea.html
2893
2894         * platform/chromium/ScrollbarThemeChromium.cpp:
2895         (WebCore::ScrollbarThemeChromium::trackRect):
2896
2897 2013-03-18  Brent Fulgham  <bfulgham@webkit.org>
2898
2899         [WinCairo] Unreviewed build correction.
2900
2901         The "ImageDecoder.h" file was improperly tagged as a source file to
2902         build, causing a build failure on initial build attempts. Subsequent
2903         or incremental builds would work.
2904
2905         * WebCore.vcxproj/WebCore.vcxproj: Exclude CG-specific font files.
2906         Switch 'ImageDecoder.h' to proper source file type.
2907         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
2908
2909 2013-03-18  James Robinson  <jamesr@chromium.org>
2910
2911         [chromium] Remove unused type WebTransformationMatrix
2912         https://bugs.webkit.org/show_bug.cgi?id=112634
2913
2914         Reviewed by Adam Barth.
2915
2916         * WebCore.gypi:
2917         * platform/chromium/support/WebTransformationMatrix.cpp: Removed.
2918
2919 2013-03-18  Arnaud Renevier  <a.renevier@sisa.samsung.com>
2920
2921         Add IDL 'enum' support to CodeGeneratorJS.pm
2922         https://bugs.webkit.org/show_bug.cgi?id=112475
2923
2924         Reviewed by Kentaro Hara.
2925
2926         This adds support for enumerations in JS, adding validation checking
2927         to setters.
2928         It also does validation checking to methods, and a new method
2929         methodWithEnumArg in TestObj.idl
2930
2931         Test: bindings/scripts/test/TestObj.idl
2932
2933         * bindings/scripts/CodeGeneratorJS.pm:
2934         (GenerateImplementation):
2935         (GenerateParametersCheck):
2936         (NativeToJSValue):
2937         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
2938         (WebDOMTestObj::methodWithEnumArg):
2939         * bindings/scripts/test/CPP/WebDOMTestObj.h:
2940         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2941         (webkit_dom_test_obj_method_with_enum_arg):
2942         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2943         * bindings/scripts/test/JS/JSTestObj.cpp:
2944         (WebCore):
2945         (WebCore::jsTestObjEnumAttr):
2946         (WebCore::setJSTestObjEnumAttr):
2947         (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
2948         * bindings/scripts/test/JS/JSTestObj.h:
2949         (WebCore):
2950         * bindings/scripts/test/ObjC/DOMTestObj.h:
2951         * bindings/scripts/test/ObjC/DOMTestObj.mm:
2952         (-[DOMTestObj methodWithEnumArg:]):
2953         * bindings/scripts/test/TestObj.idl:
2954         * bindings/scripts/test/V8/V8TestObj.cpp:
2955         (WebCore::TestObjV8Internal::methodWithEnumArgMethod):
2956         (TestObjV8Internal):
2957         (WebCore::TestObjV8Internal::methodWithEnumArgMethodCallback):
2958         (WebCore::ConfigureV8TestObjTemplate):
2959
2960 2013-03-18  Sam Weinig  <sam@webkit.org>
2961
2962         Need a bundle SPI to generate a snapshot of a specific DOM node (like [DOMNode renderedImage])
2963         <rdar://problem/13148631>
2964         https://bugs.webkit.org/show_bug.cgi?id=110034
2965
2966         Reviewed by Tim Horton.
2967
2968         * WebCore.exp.in:
2969         Add some necessary exports.
2970
2971 2013-03-18  Brent Fulgham  <bfulgham@webkit.org>
2972
2973         [WinCairo] Build WebCore under VS2010
2974         https://bugs.webkit.org/show_bug.cgi?id=112637
2975
2976         Reviewed by Tim Horton.
2977
2978         * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj: Extend project
2979         with WinCairo-specific build targets.
2980         * WebCore.vcxproj/QTMovieWin/QTMovieWinCairoDebug.props: Added.
2981         * WebCore.vcxproj/QTMovieWin/QTMovieWinCairoRelease.props: Added.
2982         * WebCore.vcxproj/WebCore.vcxproj: Update to build WinCairo version
2983         of code.
2984         * WebCore.vcxproj/WebCoreCURL.props: Added.
2985         * WebCore.vcxproj/WebCoreCairo.props: Added.
2986         * WebCore.vcxproj/WebCoreDebugWinCairo.props: Added.
2987         * WebCore.vcxproj/WebCoreGenerated.vcxproj:
2988         * WebCore.vcxproj/WebCoreGeneratedDebugWinCairo.props: Added.
2989         * WebCore.vcxproj/WebCoreGeneratedReleaseWinCairo.props: Added.
2990         * WebCore.vcxproj/WebCoreGeneratedWinCairo.make: Added.
2991         * WebCore.vcxproj/WebCoreGeneratedWinCairoCommon.props: Added.
2992         * WebCore.vcxproj/WebCoreReleaseWinCairo.props: Added.
2993         * WebCore.vcxproj/WebCoreTestSupport.vcxproj:
2994         * WebCorePrefix.h: Update header to not include Apple-specific
2995         headers during WinCairo build.
2996
2997 2013-03-18  Joshua Bell <jsbell@chromium.org>
2998
2999         IDB Cursor continue moves one item at a time
3000         https://bugs.webkit.org/show_bug.cgi?id=109972
3001
3002         Reviewed by Tony Chang.
3003
3004         IndexedDB: Use seek on the underlying levelDB iterator to implement the continue operation
3005         on a cursor, instead of advancing one item at a time. On a simple test in Chrome - open a
3006         key cursor on an index w/ 100 items, then do continue(50), rinse and repeat - this cuts the
3007         time 50% (850c/s to 1700c/s). (Original patch c/o Pankaj Kakkar <pankaj@google.com>)
3008
3009         Covered by existing storage/indexeddb cursor tests; just a performance optimization.
3010
3011         * Modules/indexeddb/IDBBackingStore.cpp:
3012         (WebCore::IDBBackingStore::Cursor::continueFunction): Special case first iteration w/ key
3013         to use leveldb seek (forward cursors only, since reverse seek isn't exposed).
3014         (WebCore::ObjectStoreKeyCursorImpl::encodeKey): Helper for encoding key to seek to.
3015         (WebCore::ObjectStoreCursorImpl::encodeKey): Ditto.
3016         (WebCore::IndexKeyCursorImpl::encodeKey): Ditto.
3017         (WebCore::IndexCursorImpl::encodeKey): Ditto.
3018         (WebCore::objectStoreCursorOptions): Store IDs for encodeKey() to use.
3019         (WebCore::indexCursorOptions): Ditto.
3020         * Modules/indexeddb/IDBBackingStore.h:
3021         (CursorOptions): Storage for IDs.
3022         (Cursor): Add encodeKey() to interface.
3023
3024 2013-03-18  Alexey Proskuryakov  <ap@apple.com>
3025
3026         MessagePortChannel::EventData should not be exposed
3027         https://bugs.webkit.org/show_bug.cgi?id=112635
3028
3029         Reviewed by Geoff Garen.
3030
3031         MessagePortChannel::EventData is an implementation detail that's only needed to
3032         store events in MessageQueue. Other existing code already gets away without it,
3033         just passing message and ports separately.
3034
3035         * dom/MessagePort.cpp:
3036         (WebCore::MessagePort::postMessage):
3037         (WebCore::MessagePort::dispatchMessages):
3038         * dom/MessagePortChannel.cpp:
3039         * dom/MessagePortChannel.h:
3040         * dom/default/PlatformMessagePortChannel.cpp:
3041         (WebCore::PlatformMessagePortChannel::EventData::create):
3042         (WebCore::PlatformMessagePortChannel::EventData::EventData):
3043         (WebCore::MessagePortChannel::postMessageToRemote):
3044         (WebCore::MessagePortChannel::tryGetMessageFromRemote):
3045         * dom/default/PlatformMessagePortChannel.h:
3046         (WebCore::PlatformMessagePortChannel::EventData::message):
3047         (WebCore::PlatformMessagePortChannel::EventData::channels):
3048         (PlatformMessagePortChannel):
3049         (WebCore::PlatformMessagePortChannel::MessagePortQueue::tryGetMessage):
3050         (WebCore::PlatformMessagePortChannel::MessagePortQueue::appendAndCheckEmpty):
3051         * dom/default/chromium/PlatformMessagePortChannelChromium.cpp:
3052         (WebCore::MessagePortChannel::postMessageToRemote):
3053         (WebCore::MessagePortChannel::tryGetMessageFromRemote):
3054         (WebCore::PlatformMessagePortChannel::postMessageToRemote):
3055         (WebCore::PlatformMessagePortChannel::tryGetMessageFromRemote):
3056         * dom/default/chromium/PlatformMessagePortChannelChromium.h:
3057
3058 2013-03-18  Tom Sepez  <tsepez@chromium.org>
3059
3060         [v8] Suppress binding integrity check of HTMLContentElement.
3061         https://bugs.webkit.org/show_bug.cgi?id=112613
3062
3063         Reviewed by Adam Barth.
3064
3065         Patch is correct so long as fast/dom/shadow/content-element-user-agent-shadow.html
3066         continues to pass.
3067
3068         * html/shadow/HTMLContentElement.idl:
3069
3070 2013-03-18  Dominic Mazzoni  <dmazzoni@google.com>
3071
3072         Support Windows HTMLSelectElement keystrokes on Chromium win
3073         https://bugs.webkit.org/show_bug.cgi?id=112460
3074
3075         Reviewed by Kent Tamura.
3076
3077         Compile in the windows-specific variant of
3078         HTMLSelectElement::platformHandleKeydownEvent
3079         on Chromium win, in addition to PLATFORM(WIN).
3080
3081         * WebCore.gypi:
3082             Add html/HTMLSelectElementWin.cpp.
3083         * html/HTMLSelectElement.cpp:
3084             Don't compile generic platformHandleKeydownEvent on
3085             Chromium win.
3086         * html/HTMLSelectElementWin.cpp:
3087             Only compile platformHandleKeydownEvent on Windows.
3088             Fix compile error in assertion.
3089         (WebCore):
3090
3091 2013-03-18  Mike West  <mkwst@chromium.org>
3092
3093         CSP 1.1: Schemeless source expressions match HTTPS resources on HTTP sites.
3094         https://bugs.webkit.org/show_bug.cgi?id=112573
3095
3096         Reviewed by Adam Barth.
3097
3098         Currently, the directive 'script-src example.com' would match only
3099         scripts served from 'http://example.com' when served on an HTTP site,
3100         and only scripts served from 'https://example.com' when served on an
3101         HTTPS site. This patch changes the matching behavior for ports that
3102         have enabled CSP_NEXT in order to encourage use of HTTPS resources by
3103         allow schemeless source expressions to match HTTPS origins when on
3104         HTTP sites.
3105
3106         Thread: http://lists.w3.org/Archives/Public/public-webappsec/2013Mar/0013.html
3107         Spec change: https://dvcs.w3.org/hg/content-security-policy/rev/a7dc8820946e
3108
3109         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-10.html
3110
3111         * page/ContentSecurityPolicy.cpp:
3112         (WebCore::CSPSource::CSPSource):
3113             Pass the current policy into CSPSource so that we can check the
3114             protected resource's scheme inside schemeMatches, rather than
3115             overwriting the source expression's scheme before creating the
3116             CSPSource.
3117         (WebCore::CSPSource::schemeMatches):
3118             If CSP_NEXT is enabled, ensure that HTTPS resources match the
3119             HTTP scheme when loaded on HTTP pages with schemaless source
3120             expressions.
3121         (WebCore::CSPSource::portMatches):
3122             Check the port against the URL's scheme: if m_scheme isn't
3123             empty, this will match it. If m_scheme is empty, we can't
3124             do a strict match against it, nor can we do a strict match
3125             against the protected resource's port. Checking the URL's
3126             port against the default port for its scheme solves this
3127             problem elegantly.
3128         (WebCore::CSPSourceList::parse):
3129         (WebCore::CSPSourceList::addSourceSelf):
3130             Pass in the policy when creating a CSPSource object.
3131
3132 2013-03-15  Jer Noble  <jer.noble@apple.com>
3133
3134         Text track cues do not update sizes when entering or exiting full screen.
3135         https://bugs.webkit.org/show_bug.cgi?id=112472
3136
3137         Reviewed by Eric Carlson.
3138
3139         The style properties of the TextCueBoxes were not being updated after the size of the video bounds changed.
3140         Because getDisplayTree() will not do it when the cue itself has not changed, explicitly call videoSizeDidChange()
3141         from updateSizes().
3142
3143         * html/shadow/MediaControlElements.cpp:
3144         (WebCore::MediaControlTextTrackContainerElement::updateSizes): call videoSizeDidChange() on every active cue.
3145         * html/track/TextTrackCue.h:
3146         (WebCore::TextTrackCue::hasDisplayTree): returns whether or not the cue has created a display tree without side effects.
3147         (WebCore::TextTrackCue::videoSizeDidChange): Overridable empty method.
3148         * html/track/TextTrackCueGeneric.cpp:
3149         (WebCore::TextTrackCueGeneric::videoSizeDidChange): Update the CSS height attribute of the cue box using the new video size.
3150         * html/track/TextTrackCueGeneric.h:
3151
3152 2013-03-18  Mike West  <mkwst@chromium.org>
3153
3154         CSP 1.1: Add 'effective-directive' to violation reports.
3155         https://bugs.webkit.org/show_bug.cgi?id=112568
3156
3157         Reviewed by Adam Barth.
3158
3159         https://dvcs.w3.org/hg/content-security-policy/rev/bc2bb0e5072a
3160         introduced an 'effective-directive' field on CSP violation reports,
3161         which allows developers to distinguish between resource types when
3162         'default-src' is the violated directive.
3163
3164         This patch implements the new field behind the CSP_NEXT flag.
3165
3166         Test: http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive.html
3167
3168         * page/ContentSecurityPolicy.cpp:
3169         (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
3170         (WebCore::CSPDirectiveList::reportViolation):
3171             These methods now accept an additional parameter to pipe the
3172             effective directive from the initial callsite down into
3173             ContentSecurityPolicy::reportViolation.
3174         (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
3175         (WebCore::CSPDirectiveList::checkNonceAndReportViolation):
3176         (WebCore::CSPDirectiveList::checkMediaTypeAndReportViolation):
3177         (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
3178         (WebCore::CSPDirectiveList::allowScriptFromSource):
3179         (WebCore::CSPDirectiveList::allowObjectFromSource):
3180         (WebCore::CSPDirectiveList::allowChildFrameFromSource):
3181         (WebCore::CSPDirectiveList::allowImageFromSource):
3182         (WebCore::CSPDirectiveList::allowStyleFromSource):
3183         (WebCore::CSPDirectiveList::allowFontFromSource):
3184         (WebCore::CSPDirectiveList::allowMediaFromSource):
3185         (WebCore::CSPDirectiveList::allowConnectToSource):
3186         (WebCore::CSPDirectiveList::allowFormAction):
3187             These methods now pass the effective directive name down
3188             into checkSourceAndReportViolation or reportViolation.
3189         (WebCore::ContentSecurityPolicy::reportViolation):
3190         * page/ContentSecurityPolicy.h:
3191             This method now accepts a new parameter that carries
3192             the effective directive name. If CSP_NEXT is enabled,
3193             the field is added to the violation report before it's
3194             sent out into the world.
3195
3196 2013-03-18  W. James MacLean  <wjmaclean@chromium.org>
3197
3198         [chromium] Remove NCCH code that relies on boundsContainsPageScale().
3199         https://bugs.webkit.org/show_bug.cgi?id=112465
3200
3201         Reviewed by James Robinson.
3202
3203         The boundsContainsPageScale() API is going away, remove code that
3204         depends on it. Uses existing tests as no behaviour change.
3205
3206         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
3207         (WebCore::GraphicsLayerChromium::setAppliesPageScale):
3208         (WebCore::GraphicsLayerChromium::appliesPageScale):
3209
3210 2013-03-18  Alec Flett  <alecflett@chromium.org>
3211
3212         IndexedDB: Protect against key prefix overflows
3213         https://bugs.webkit.org/show_bug.cgi?id=111138
3214
3215         Reviewed by Tony Chang.
3216
3217         This reworks the boundary checking for all databaseId,
3218         objectStoreId, and indexId, including negative and
3219         zero-based ids. All entrypoints into IDBLevelDBCoding
3220         are protected with explicit checks and all internal
3221         uses of KeyPrefix are protected with ASSERTs in the
3222         various constructors.
3223
3224         Tests: WebKit unit tests IDBBackingStoreTest.cpp in WebKit/chromium
3225
3226         * Modules/indexeddb/IDBBackingStore.h: Make all public methods boolean-based for errors.
3227         * Modules/indexeddb/IDBLevelDBCoding.h: Add methods for checking databaseId, objectStoreId, and indexId.
3228
3229 2013-03-18  Roger Fong  <roger_fong@apple.com>
3230
3231         AppleWin VS2010 Debug configuration build fix.
3232
3233         * WebCore.vcxproj/WebCore.vcxproj:
3234
3235 2013-03-18  Alexey Proskuryakov  <ap@apple.com>
3236
3237         https://bugs.webkit.org/show_bug.cgi?id=112627
3238         MessagePort::disentangle() takes an ExceptionCode argument without any need
3239
3240         Reviewed by Geoffrey Garen.
3241
3242         MessagePort::disentangle() is called in two places. One has ASSERT_NO_EXCEPTION,
3243         and another fails to check the exception, but clearly cannot get one.
3244
3245         This function is also not exposed to bindings.
3246
3247         * dom/MessagePort.cpp:
3248         (WebCore::MessagePort::disentangle):
3249         (WebCore::MessagePort::disentanglePorts):
3250         * dom/MessagePort.h:
3251         * workers/SharedWorker.cpp:
3252         (WebCore::SharedWorker::create):
3253         Also removed some unhelpful comments.
3254
3255 2013-03-18  Xianzhu Wang  <wangxianzhu@chromium.org>
3256
3257         Variant of non-primary fell-back SVGFont causes crash.
3258         https://bugs.webkit.org/show_bug.cgi?id=112367
3259
3260         Reviewed by Stephen Chenney.
3261
3262         Don't go to PlatformFontData path for SimpleFontData::createScaledFontData()
3263         for SVG fonts.
3264
3265         Test: svg/css/font-face-variant-crash.html
3266
3267         * platform/graphics/SimpleFontData.cpp:
3268         (WebCore::SimpleFontData::~SimpleFontData):
3269         (WebCore::SimpleFontData::createScaledFontData): Don't go to PlatformFontData path for SVG fonts.
3270         (WebCore):
3271         * platform/graphics/SimpleFontData.h:
3272         (SimpleFontData): Added createScaledFontData and renamed the original createScaledFontData to platformCreateScaledFontData.
3273                           BTW, Removed unreferenced commonInit.
3274         * platform/graphics/blackberry/SimpleFontDataBlackBerry.cpp:
3275         (WebCore::SimpleFontData::platformCreateScaledFontData): Renamed from createScaledFontData.
3276         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
3277         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
3278         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
3279         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
3280         * platform/graphics/mac/SimpleFontDataMac.mm:
3281         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
3282         * platform/graphics/qt/SimpleFontDataQt.cpp:
3283         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
3284         * platform/graphics/skia/SimpleFontDataSkia.cpp:
3285         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
3286         * platform/graphics/win/SimpleFontDataWin.cpp:
3287         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
3288         * platform/graphics/wince/SimpleFontDataWinCE.cpp:
3289         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
3290         * platform/graphics/wx/SimpleFontDataWx.cpp:
3291         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
3292
3293 2013-03-18  Victor Carbune  <vcarbune@chromium.org>
3294
3295         Determine text direction for rendering a TextTrackCue
3296         https://bugs.webkit.org/show_bug.cgi?id=79749
3297
3298         Reviewed by Levi Weintraub.
3299
3300         The rendering rules for WebVTT cues are slightly different
3301         depending on the directionality determined from the characters
3302         of the cue text. This patch implements the preliminary step
3303         to be able to take directionality into account.
3304
3305         It iterates through the cue characters and setting the CSS
3306         directionality to the one of the first strong directional character.
3307
3308         Test: media/track/track-cue-rendering-rtl.html
3309
3310         * html/track/TextTrackCue.cpp:
3311         (WebCore::TextTrackCueBox::applyCSSProperties): Applies the determined
3312         direction.
3313         (WebCore::TextTrackCue::TextTrackCue): Sets the default value for the
3314         display direction.
3315         (WebCore::isCueParagraphSeparator): Tests for explicit unicode characters
3316         that are paragraph separators.
3317         (WebCore):
3318         (WebCore::TextTrackCue::determineTextDirection): Determined the direction
3319         by the first strong directional character found.
3320         (WebCore::TextTrackCue::calculateDisplayParameters): Updated.
3321         (WebCore::TextTrackCue::getCSSWritingDirection): Return the determined CSS
3322         writing direction.
3323         * html/track/TextTrackCue.h:
3324         (TextTrackCue):
3325
3326 2013-03-18  Hans Wennborg  <hans@chromium.org>
3327
3328         Fix GridTrackSize::operator==
3329         https://bugs.webkit.org/show_bug.cgi?id=112501
3330
3331         Reviewed by Eric Seidel.
3332
3333         There was a missing "other." in the function.
3334
3335         This was found by experimenting with a potential new Clang warning.
3336
3337         Test: fast/css-grid-layout/grid-dynamic-updates-relayout.html
3338
3339         * rendering/style/GridTrackSize.h:
3340         (WebCore::GridTrackSize::operator==):
3341
3342 2013-03-18  Alec Flett  <alecflett@chromium.org>
3343
3344         Inspector: [Chromium] http/tests/inspector/indexeddb/database-data.html ASSERT on Win7 following r133855
3345         https://bugs.webkit.org/show_bug.cgi?id=101618
3346
3347         Deactivate transactions created by the inspector, before
3348         they are reactivated by IndexedDB. This puts transactions
3349         in an identical state as when they are created by scripts.
3350
3351         Reviewed by Vsevolod Vlasov.
3352
3353         Test: http/tests/inspector/indexeddb/database-data.html
3354
3355         * inspector/InspectorIndexedDBAgent.cpp: Make transactions inactive upon leaving the inspector code.
3356
3357 2013-03-15  Jeffrey Pfau  <jpfau@apple.com>
3358
3359         Allow blocking of application cache in third-party contexts
3360         https://bugs.webkit.org/show_bug.cgi?id=112288
3361
3362         Reviewed by Adam Barth.
3363
3364         Return early if we can't access the application cache due to security
3365         restrictions.
3366
3367         Tests: http/tests/security/cross-origin-appcache-allowed.html
3368                http/tests/security/cross-origin-appcache.html
3369                http/tests/security/same-origin-appcache-blocked.html
3370
3371         * loader/appcache/ApplicationCacheGroup.cpp:
3372         (WebCore::ApplicationCacheGroup::selectCache):
3373         (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
3374         * page/SecurityOrigin.h:
3375         (WebCore::SecurityOrigin::canAccessApplicationCache):
3376
3377 2013-03-18  Vsevolod Vlasov  <vsevik@chromium.org>
3378
3379         Web Inspector: Script should know nothing about disabled source mappings.
3380         https://bugs.webkit.org/show_bug.cgi?id=112580
3381
3382         Reviewed by Pavel Feldman.
3383
3384         ResourceScriptMapping handles diverged uiSourceCodes internally now.
3385
3386         Tested in inspector/debugger/live-edit-breakpoints.html already.
3387
3388         * inspector/front-end/ResourceScriptMapping.js:
3389         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
3390         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
3391         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
3392         * inspector/front-end/Script.js:
3393         (WebInspector.Script.prototype.rawLocationToUILocation):
3394
3395 2013-03-18  Alexey Proskuryakov  <ap@apple.com>
3396
3397         Update MessagePort terminology to match HTML5
3398         https://bugs.webkit.org/show_bug.cgi?id=112611
3399
3400         Reviewed by Anders Carlsson.
3401
3402         Transferable objects are "neutered" when transfered. Cloning is a different operation.
3403
3404         * dom/MessagePort.cpp:
3405         (WebCore::MessagePort::disentanglePorts):
3406         * dom/MessagePort.h:
3407         (WebCore::MessagePort::isEntangled):
3408         (WebCore::MessagePort::isNeutered):
3409
3410 2013-03-18  Roger Fong  <roger_fong@apple.com>
3411
3412         AppleWin VS2010 build fix.
3413
3414         * WebCore.vcxproj/WebCore.vcxproj:
3415         * WebCore.vcxproj/WebCore.vcxproj.filters:
3416
3417 2013-03-18  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
3418
3419         [css3-text] Add rendering support for -webkit-text-underline-position
3420         https://bugs.webkit.org/show_bug.cgi?id=102795
3421
3422         Reviewed by Levi Weintraub.
3423
3424         This patch implements rendering support for values [ auto | alphabetic | under ]
3425         of CSS3 property text-underline-position. We don't fully match the specification
3426         as we don't support [ left | right ] and this is left for another implementation
3427         as the rendering will need to be added.
3428
3429         Tests: fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-all.html
3430                fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic.html
3431                fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto.html
3432                fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under-out-of-flow.html
3433                fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under.html
3434
3435         * rendering/InlineFlowBox.cpp:
3436         (WebCore::InlineFlowBox::computeMaxLogicalTop): Added method to compute maximal logical top among all chidren of
3437         this InlineTextBox.
3438         * rendering/InlineFlowBox.h:
3439         (InlineFlowBox):
3440         * rendering/InlineTextBox.cpp:
3441         (WebCore::computeUnderlineOffset): Added method to compute offset for text-underline-position property.
3442         (WebCore::InlineTextBox::paintDecoration): Paint decoration at position calculated using computeUnderlineOffset().
3443         * rendering/RootInlineBox.cpp:
3444         (WebCore::RootInlineBox::RootInlineBox):
3445         (WebCore::RootInlineBox::alignBoxesInBlockDirection): Call method to compute maximal logical top among all
3446         children of this RootInlineBox.
3447         * rendering/RootInlineBox.h:
3448         (RootInlineBox):
3449         (WebCore::RootInlineBox::maxLogicalTop): Added getter for m_maxLogicalTop class member.
3450         * rendering/style/RenderStyle.h: Added the usual getter / setter / initial methods for text-underline-position
3451         property
3452
3453 2013-03-18  Christian Biesinger  <cbiesinger@chromium.org>
3454
3455         Convert old flexbox uses in html.css to new flexbox (non-<select>)
3456         https://bugs.webkit.org/show_bug.cgi?id=110837
3457
3458         Reviewed by Ojan Vafai.
3459
3460         No new tests (No change in behaviour)
3461
3462         * css/html.css:
3463         (input::-webkit-clear-button):
3464         Missed this one in the original patch.
3465
3466 2013-03-18  Wei James  <james.wei@intel.com>
3467
3468         AudioBasicProcessorNode need to check for deferred updating of output channels
3469         https://bugs.webkit.org/show_bug.cgi?id=112544