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