Remove m_subclassData from JSArray, move the attribute to subclass as needed
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-04-18  Benjamin Poulain  <bpoulain@apple.com>
2
3         Remove m_subclassData from JSArray, move the attribute to subclass as needed
4         https://bugs.webkit.org/show_bug.cgi?id=84249
5
6         Reviewed by Geoffrey Garen.
7
8         * bridge/runtime_array.cpp:
9         (JSC::RuntimeArray::RuntimeArray):
10         (JSC::RuntimeArray::finishCreation):
11         * bridge/runtime_array.h:
12         (JSC::RuntimeArray::getLength):
13         (JSC::RuntimeArray::getConcreteArray):
14         (RuntimeArray):
15
16 2012-04-18  Luiz Agostini  <luiz.agostini@palm.com>
17
18         matchMedia() MediaQueryList not updating
19         https://bugs.webkit.org/show_bug.cgi?id=75903
20
21         Reviewed by Antti Koivisto.
22
23         Test: fast/media/media-query-list-08.html
24
25         Viewport related MediaQueryList listeners were not triggered and the value
26         of matches were not updated if the document's style selector were not
27         affected by viewport changes.
28
29         The new method evaluateMediaQueries() is now called by FrameView instead of
30         styleSelectorChanged() if the style selector is not affected by viewport changes.
31
32         * dom/Document.cpp:
33         (WebCore::Document::evaluateMediaQueries):
34         (WebCore):
35         (WebCore::Document::styleSelectorChanged):
36         * dom/Document.h:
37         (Document):
38         * page/FrameView.cpp:
39         (WebCore::FrameView::layout):
40
41 2012-04-18  Emil A Eklund  <eae@chromium.org>
42
43         Use explicit casts for size_t to unsigned conversion
44         https://bugs.webkit.org/show_bug.cgi?id=83602
45
46         Reviewed by Eric Seidel.
47
48         No new tests, no change in functinality.
49
50         Not all platforms have implicit casts from size_t to unsigned and we
51         can't add size_t versions of the operators to FractionalLayoutUnit for
52         all platforms as it would conflict with the unsigned versions of same.
53
54         Change support methods to take unsigned instead of size_t and use
55         explicit casts when multiplying or dividing a FractionalLayoutUnit with
56         a size_t and the other way around.
57
58         * rendering/RenderBlock.cpp:
59         (WebCore::RenderBlock::adjustForColumns):
60         * rendering/RenderFlexibleBox.cpp:
61         (WebCore::initialPackingOffset):
62         (WebCore::packingSpaceBetweenChildren):
63         (WebCore::initialLinePackingOffset):
64         (WebCore::linePackingSpaceBetweenChildren):
65         (WebCore::RenderFlexibleBox::packFlexLines):
66         * rendering/RenderFrameSet.cpp:
67         (WebCore::RenderFrameSet::layout):
68
69 2012-04-18  Pavel Feldman  <pfeldman@chromium.org>
70
71         Web Inspector: [Chromium] Module's require injects scripts before the debug id is set to the context.
72         https://bugs.webkit.org/show_bug.cgi?id=84166
73
74         Re-applying r114497.
75
76         * bindings/v8/V8IsolatedContext.cpp:
77         (WebCore::setInjectedScriptContextDebugId):
78         (WebCore):
79         (WebCore::V8IsolatedContext::V8IsolatedContext):
80         * bindings/v8/V8Proxy.cpp:
81         (WebCore::V8Proxy::evaluateInIsolatedWorld):
82         * bindings/v8/V8Proxy.h:
83         (V8Proxy):
84
85 2012-04-18  Pavel Feldman  <pfeldman@chromium.org>
86
87         Web Inspector: extract script navigator overlay logic into the scripts navigator controller.
88         https://bugs.webkit.org/show_bug.cgi?id=84244
89
90         Reviewed by Vsevolod Vlasov.
91
92         Overlay logic is well separable from the scripts panel and does not belong there.
93         Extracting it into a separate class.
94
95         * inspector/front-end/ScriptsNavigator.js:
96         (WebInspector.ScriptsNavigatorController.prototype.wasShown):
97         (WebInspector.ScriptsNavigatorController.prototype._createNavigatorControlButton):
98         (WebInspector.ScriptsNavigatorController.prototype._escDownWhileNavigatorOverlayOpen):
99         (WebInspector.ScriptsNavigatorController.prototype._toggleNavigator):
100         (WebInspector.ScriptsNavigatorController.prototype._hidePinnedNavigator):
101         (WebInspector.ScriptsNavigatorController.prototype.set _pinNavigator):
102         (WebInspector.ScriptsNavigatorController.prototype.set showNavigatorOverlay):
103         (WebInspector.ScriptsNavigatorController.prototype.hideNavigatorOverlay):
104         (WebInspector.ScriptsNavigatorController.prototype._navigatorOverlayWasShown):
105         * inspector/front-end/ScriptsPanel.js:
106         (WebInspector.ScriptsPanel.prototype.wasShown):
107         (WebInspector.ScriptsPanel.prototype._editorClosed):
108         (WebInspector.ScriptsPanel.prototype._editorSelected):
109         (WebInspector.ScriptsPanel.prototype._scriptSelected):
110
111 2012-04-18  Alexandru Chiculita  <achicu@adobe.com>
112
113         Unreviewed, trying to fix QT build.
114         
115         It was using a FilterEffectRenderer::prepare that changed to allocateBackingStoreIfNeeded in 114529.
116
117         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
118         (WebCore::BitmapTextureImageBuffer::applyFilters):
119
120 2012-04-18  Pavel Feldman  <pfeldman@chromium.org>
121
122         Web Inspector: extract script navigator overlay logic into the scripts navigator controller.
123         https://bugs.webkit.org/show_bug.cgi?id=84244
124
125         Reviewed by Vsevolod Vlasov.
126
127         Overlay logic is well separable from the scripts panel and does not belong there.
128         Extracting it into a separate class.
129
130         * inspector/front-end/ScriptsNavigator.js:
131         (WebInspector.ScriptsNavigatorController.prototype.wasShown):
132         (WebInspector.ScriptsNavigatorController.prototype._createNavigatorControlButton):
133         (WebInspector.ScriptsNavigatorController.prototype._escDownWhileNavigatorOverlayOpen):
134         (WebInspector.ScriptsNavigatorController.prototype._toggleNavigator):
135         (WebInspector.ScriptsNavigatorController.prototype._hidePinnedNavigator):
136         (WebInspector.ScriptsNavigatorController.prototype.set _pinNavigator):
137         (WebInspector.ScriptsNavigatorController.prototype.set showNavigatorOverlay):
138         (WebInspector.ScriptsNavigatorController.prototype.hideNavigatorOverlay):
139         (WebInspector.ScriptsNavigatorController.prototype._navigatorOverlayWasShown):
140         * inspector/front-end/ScriptsPanel.js:
141         (WebInspector.ScriptsPanel.prototype.wasShown):
142         (WebInspector.ScriptsPanel.prototype._editorClosed):
143         (WebInspector.ScriptsPanel.prototype._editorSelected):
144         (WebInspector.ScriptsPanel.prototype._scriptSelected):
145
146 2012-04-18  Sheriff Bot  <webkit.review.bot@gmail.com>
147
148         Unreviewed, rolling out r114497.
149         http://trac.webkit.org/changeset/114497
150         https://bugs.webkit.org/show_bug.cgi?id=84253
151
152         Broke compile on Win, including stdio did not help (Requested
153         by dimich on #webkit).
154
155         * bindings/v8/V8IsolatedContext.cpp:
156         (WebCore::V8IsolatedContext::V8IsolatedContext):
157         * bindings/v8/V8Proxy.cpp:
158         (WebCore::V8Proxy::evaluateInIsolatedWorld):
159         (WebCore::V8Proxy::setInjectedScriptContextDebugId):
160         (WebCore):
161         * bindings/v8/V8Proxy.h:
162         (V8Proxy):
163
164 2012-04-18  Alexandru Chiculita  <achicu@adobe.com>
165
166         [CSS Filters] Drop-shadow and blur can avoid using full source image
167         https://bugs.webkit.org/show_bug.cgi?id=81263
168
169         Reviewed by Dean Jackson.
170
171         Instead of using the full bounding box of the RenderLayer we now compute the exact rectangle that is needed to 
172         compute filter inside the dirty rectangle on screen. That's easy to calculate by reversing the filter outsets.
173         Even if the element is completely offscreen, but its shadow is in the viewport, we can still compute the source 
174         rectangle that needs to be drawn in order to update the shadow correctly.
175
176         No new tests, this change doesn't have visible results and the functionality should
177         already be covered by previous filter tests.
178
179         * rendering/FilterEffectRenderer.cpp:
180         (WebCore::FilterEffectRenderer::FilterEffectRenderer):
181         (WebCore::FilterEffectRenderer::build): Save the outsets of the filters, so that we can use them in computeSourceImageRectForDirtyRect.
182         (WebCore::FilterEffectRenderer::updateBackingStoreRect): Only allocate a new source image if the size of the source rectangle changed.
183         (WebCore::FilterEffectRenderer::allocateBackingStoreIfNeeded): There's no need to call clearIntermediateResults() in this function. We do that after
184         the filter is computed.
185         (WebCore::FilterEffectRenderer::computeSourceImageRectForDirtyRect):
186         (WebCore):
187         (WebCore::FilterEffectRendererHelper::prepareFilterEffect):
188         (WebCore::FilterEffectRendererHelper::beginFilterEffect):
189         * rendering/FilterEffectRenderer.h:
190         (FilterEffectRendererHelper):
191         (WebCore::FilterEffectRendererHelper::repaintRect):
192         (FilterEffectRenderer):
193         * rendering/RenderLayer.cpp:
194         (WebCore::RenderLayer::paintLayerContents):
195
196 2012-04-18  Dominik Röttsches  <dominik.rottsches@linux.intel.com>
197
198         [EFL][DRT] @font-face support fails on EFL
199         https://bugs.webkit.org/show_bug.cgi?id=83264
200
201         Reviewed by Dimitri Glazkov.
202
203         STORE_FONT_CUSTOM_PLATFORM_DATA was not defined for EFL.
204         Fixing that by removing a long standing FIXME with the intention
205         to turn the whitelist for this switch into a blacklist.
206
207         * loader/cache/CachedFont.cpp:
208
209 2012-04-18  Levi Weintraub  <leviw@chromium.org>
210
211         Convert ShadowData and DropShadowFilterOperation to use IntPoint
212         https://bugs.webkit.org/show_bug.cgi?id=84098
213
214         Reviewed by Eric Seidel.
215
216         Shadows do not flow with the page, so sub-pixel layout doesn't actually offer any benefit that
217         couldn't have been attained before that conversion. With that in mind, this patch reverts
218         drop shadow offsets to integers, but also cleans up the code by switching the x/y location pair
219         to be an IntPoint.
220
221         No new tests. No change in behavior.
222
223         * css/CSSComputedStyleDeclaration.cpp:
224         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
225         * css/CSSStyleSelector.cpp:
226         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
227         * css/SVGCSSStyleSelector.cpp:
228         (WebCore::CSSStyleSelector::applySVGProperty):
229         * page/animation/AnimationBase.cpp:
230         (WebCore::blendFunc):
231         (WebCore::shadowForBlending):
232         * platform/animation/AnimationUtilities.h:
233         (WebCore::blend): New blend function that operates on IntPoints.
234         (WebCore):
235         * platform/chromium/support/WebFilterOperations.cpp:
236         (WebKit::WebDropShadowFilterOperation):
237         * platform/graphics/filters/FilterOperation.cpp:
238         (WebCore::DropShadowFilterOperation::blend):
239         * platform/graphics/filters/FilterOperation.h:
240         (WebCore::DropShadowFilterOperation::clone):
241         (WebCore::DropShadowFilterOperation::x):
242         (WebCore::DropShadowFilterOperation::y):
243         (WebCore::DropShadowFilterOperation::location): Preserved the comment about lengths.
244         (WebCore::DropShadowFilterOperation::operator==):
245         (WebCore::DropShadowFilterOperation::DropShadowFilterOperation):
246         (DropShadowFilterOperation):
247         * rendering/RenderBoxModelObject.cpp:
248         (WebCore::areaCastingShadowInHole): Reverted to integers since this operates on the IntRect from
249         a RoundedRect.
250         (WebCore::RenderBoxModelObject::paintBoxShadow): Reduced the complexity and unnecessary conversion
251         between LayoutUnits and integers by using all integers after we calculate the pixel-snapped
252         RoundedRect that we use for painting.
253         * rendering/style/RenderStyle.cpp:
254         (WebCore::RenderStyle::getShadowExtent):
255         (WebCore::RenderStyle::getShadowHorizontalExtent):
256         (WebCore::RenderStyle::getShadowVerticalExtent):
257         * rendering/style/ShadowData.cpp:
258         (WebCore::ShadowData::ShadowData):
259         (WebCore::ShadowData::operator==):
260         (WebCore::calculateShadowExtent):
261         (WebCore::ShadowData::adjustRectForShadow):
262         * rendering/style/ShadowData.h:
263         (WebCore::ShadowData::ShadowData):
264         (WebCore::ShadowData::x):
265         (WebCore::ShadowData::y):
266         (WebCore::ShadowData::location):
267         (ShadowData):
268
269 2012-04-17  Kentaro Hara  <haraken@chromium.org>
270
271         [V8] Add an optional Isolate argument to wrap()
272         https://bugs.webkit.org/show_bug.cgi?id=84202
273
274         Reviewed by Nate Chapin.
275
276         The final objective is to pass Isolate around in V8 bindings.
277         This patch adds an optional Isolate argument to wrap().
278         After rewriting all wrap() callers so that they pass Isolate
279         to wrap(), I'll make the Isolate argument non-optional.
280
281         No tests. No change in behavior.
282
283         * bindings/scripts/CodeGeneratorV8.pm: Modified as described above.
284         (GenerateHeader):
285         * bindings/v8/custom/V8DocumentCustom.cpp: Ditto.
286         (WebCore::toV8):
287         * bindings/v8/custom/V8HTMLDocumentCustom.cpp: Ditto.
288         (WebCore::toV8):
289         * bindings/v8/custom/V8NodeCustom.cpp: Ditto.
290         (WebCore::toV8Slow):
291         * bindings/v8/custom/V8SVGDocumentCustom.cpp: Ditto.
292         (WebCore::toV8):
293         * dom/make_names.pl: Ditto.
294         (printWrapperFactoryCppFile):
295
296         * bindings/scripts/test/V8/V8Float64Array.h:
297         Updated run-bindings-tests results.
298         (V8Float64Array):
299         (WebCore::V8Float64Array::wrap):
300         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
301         (V8TestActiveDOMObject):
302         (WebCore::V8TestActiveDOMObject::wrap):
303         (WebCore::toV8):
304         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
305         (V8TestCustomNamedGetter):
306         (WebCore::V8TestCustomNamedGetter::wrap):
307         (WebCore::toV8):
308         * bindings/scripts/test/V8/V8TestEventConstructor.h:
309         (V8TestEventConstructor):
310         (WebCore::V8TestEventConstructor::wrap):
311         (WebCore::toV8):
312         * bindings/scripts/test/V8/V8TestEventTarget.h:
313         (V8TestEventTarget):
314         (WebCore::V8TestEventTarget::wrap):
315         (WebCore::toV8):
316         * bindings/scripts/test/V8/V8TestInterface.h:
317         (V8TestInterface):
318         (WebCore::V8TestInterface::wrap):
319         (WebCore::toV8):
320         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
321         (V8TestMediaQueryListListener):
322         (WebCore::V8TestMediaQueryListListener::wrap):
323         (WebCore::toV8):
324         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
325         (V8TestNamedConstructor):
326         (WebCore::V8TestNamedConstructor::wrap):
327         (WebCore::toV8):
328         * bindings/scripts/test/V8/V8TestNode.h:
329         (V8TestNode):
330         (WebCore::V8TestNode::wrap):
331         (WebCore::toV8):
332         * bindings/scripts/test/V8/V8TestObj.h:
333         (V8TestObj):
334         (WebCore::V8TestObj::wrap):
335         (WebCore::toV8):
336         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
337         (V8TestSerializedScriptValueInterface):
338         (WebCore::V8TestSerializedScriptValueInterface::wrap):
339         (WebCore::toV8):
340
341 2012-04-18  Alexandru Chiculita  <achicu@adobe.com>
342
343         [CSS Filters] Do not use clipping rect when calculating the bounds of a layer
344         https://bugs.webkit.org/show_bug.cgi?id=83960
345
346         Reviewed by Simon Fraser.
347         
348         The local clip rect should not be used when calculating the bounds of a filter area. Otherwise
349         drop-shadow might not know about the pixels outside the clipping rectangle, even though the actual shadow might
350         be inside it.
351
352         No new tests added in this patch, but this patch fixes two existing tests that fail.
353         LayoutTests/css3/filters/filter-repaint-shadow-clipped.html
354         LayoutTests/css3/filters/filter-repaint-shadow-rotated.html
355
356         * rendering/RenderLayer.cpp:
357         (WebCore::RenderLayer::paintLayerContents):
358         (WebCore::RenderLayer::calculateLayerBounds):
359         * rendering/RenderLayer.h:
360
361 2012-04-18  Mark Pilgrim  <pilgrim@chromium.org>
362
363         Followup to "Call incrementStatsCounter directly"
364         https://bugs.webkit.org/show_bug.cgi?id=83109
365
366         Reviewed by Kentaro Hara.
367
368         Now that incrementStatsCounter has been moved from
369         PlatformSupport.h to Platform.h, we need to be able to call it directly
370         from WebCore/bindings/v8/v8Proxy.h (for the INC_STATS macro). That
371         means we need a new StatsCounter class in WebCore/platform/ and an
372         implementation in
373         WebCore/platform/chromium/StatsCounterChromium.cpp. Other ports
374         are welcome to implement their own stats counters if they
375         wish. This pattern was based on the
376         HistogramSupport/HistogramSupportChromium classes.
377
378         * CMakeLists.txt:
379         * GNUmakefile.list.am:
380         * Target.pri:
381         * WebCore.gypi:
382         * WebCore.vcproj/WebCore.vcproj:
383         * WebCore.xcodeproj/project.pbxproj:
384         * bindings/v8/V8Proxy.h:
385         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
386         (WebCore::V8DedicatedWorkerContext::postMessageCallback):
387         (WebCore::V8DedicatedWorkerContext::webkitPostMessageCallback):
388         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
389         (WebCore::V8NotificationCenter::createHTMLNotificationCallback):
390         (WebCore::V8NotificationCenter::createNotificationCallback):
391         (WebCore::V8NotificationCenter::requestPermissionCallback):
392         * bindings/v8/custom/V8WorkerContextCustom.cpp:
393         (WebCore::V8WorkerContext::importScriptsCallback):
394         (WebCore::V8WorkerContext::setTimeoutCallback):
395         (WebCore::V8WorkerContext::setIntervalCallback):
396         * platform/StatsCounter.cpp: Added.
397         (WebCore):
398         (WebCore::StatsCounter::incrementStatsCounter):
399         * platform/StatsCounter.h: Added.
400         (WebCore):
401         (StatsCounter):
402         * platform/chromium/StatsCounterChromium.cpp: Added.
403         (WebCore):
404         (WebCore::StatsCounter::incrementStatsCounter):
405
406 2012-04-18  Alexander Pavlov  <apavlov@chromium.org>
407
408         [Chromium] REGRESSION: Popup shrinks because of autocomplete
409         https://bugs.webkit.org/show_bug.cgi?id=84139
410         http://code.google.com/p/chromium/issues/detail?id=123432
411
412         Do not update the window rect on the wrong client but instead return the popup widget's
413         new screen coordinates from the refresh() method.
414
415         Reviewed by Kent Tamura.
416
417         * platform/chromium/PopupContainer.cpp:
418         (WebCore::PopupContainer::refresh):
419         * platform/chromium/PopupContainer.h:
420         (PopupContainer):
421
422 2012-04-18  Simon Fraser  <simon.fraser@apple.com>
423
424         ASSERT when a layer with a foreground layer is in 'paint into ancestor' mode
425         https://bugs.webkit.org/show_bug.cgi?id=84221
426
427         Reviewed by Dean Jackson.
428         
429         When a RenderLayerBacking doesn't require its own backing store, and is
430         in "paintIntoCompositingAncestor" mode, we would assert when trying to
431         paint its m_foregroundLayer if it had one (because of a negative z-index child).
432         
433         The fix is to set the 'drawsContent' state on the m_foregroundLayer
434         as well as m_graphicsLayer.
435
436         Test: compositing/backing/no-backing-foreground-layer.html
437
438         * rendering/RenderLayerBacking.cpp:
439         (WebCore::RenderLayerBacking::updateDrawsContent):
440
441 2012-04-18  Yury Semikhatsky  <yurys@chromium.org>
442
443         Web Inspector: DataGrid should use explicit root node
444         https://bugs.webkit.org/show_bug.cgi?id=84240
445
446         DataGrid now has an explicit root node. All children are added/removed
447         to that node.
448
449         Reviewed by Pavel Feldman.
450
451         * inspector/front-end/ApplicationCacheItemsView.js:
452         (WebInspector.ApplicationCacheItemsView.prototype._createDataGrid):
453         (WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid):
454         * inspector/front-end/CSSSelectorProfileView.js:
455         (WebInspector.CSSSelectorProfileView):
456         (WebInspector.CSSSelectorProfileView.prototype.rebuildGridItems):
457         (WebInspector.CSSSelectorProfileView.prototype.refreshData):
458         * inspector/front-end/CookieItemsView.js:
459         (WebInspector.SimpleCookiesTable):
460         (WebInspector.SimpleCookiesTable.prototype.setCookies):
461         * inspector/front-end/CookiesTable.js:
462         (WebInspector.CookiesTable):
463         (WebInspector.CookiesTable.prototype._rebuildTable):
464         * inspector/front-end/DOMStorageItemsView.js:
465         (WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageEntries):
466         * inspector/front-end/DataGrid.js:
467         (WebInspector.DataGrid):
468         (WebInspector.DataGrid.createSortableDataGrid.sortDataGrid):
469         (WebInspector.DataGrid.createSortableDataGrid):
470         (WebInspector.DataGrid.prototype.setRootNode):
471         (WebInspector.DataGrid.prototype.rootNode):
472         (WebInspector.DataGrid.prototype.autoSizeColumns):
473         (WebInspector.DataGrid.prototype._enumerateChildren):
474         (WebInspector.DataGrid.prototype._keyDown):
475         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
476         (WebInspector.DataGridNode.prototype.get revealed):
477         (WebInspector.DataGridNode.prototype.get depth):
478         (WebInspector.DataGridNode.prototype.appendChild):
479         (WebInspector.DataGridNode.prototype.insertChild):
480         (WebInspector.DataGridNode.prototype.removeChild):
481         (WebInspector.DataGridNode.prototype.removeChildren):
482         (WebInspector.DataGridNode.prototype.collapse):
483         (WebInspector.DataGridNode.prototype.expand):
484         (WebInspector.DataGridNode.prototype.reveal):
485         (WebInspector.DataGridNode.prototype.revealAndSelect):
486         (WebInspector.DataGridNode.prototype.traverseNextNode):
487         (WebInspector.DataGridNode.prototype.traversePreviousNode):
488         * inspector/front-end/HeapSnapshotDataGrids.js:
489         (WebInspector.HeapSnapshotSortableDataGrid):
490         (WebInspector.HeapSnapshotSortableDataGrid.prototype.dispose):
491         (WebInspector.HeapSnapshotSortableDataGrid.prototype.changeNameFilter):
492         (WebInspector.HeapSnapshotSortableDataGrid.prototype.updateVisibleNodes):
493         (WebInspector.HeapSnapshotSortableDataGrid.prototype._performSorting):
494         (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute):
495         (WebInspector.HeapSnapshotContainmentDataGrid.prototype.setDataSource):
496         (WebInspector.HeapSnapshotContainmentDataGrid.prototype.sortingChanged):
497         (WebInspector.HeapSnapshotRetainmentDataGrid.prototype.reset):
498         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.populateChildren):
499         (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource):
500         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived.addNodeIfNonZeroDiff):
501         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived):
502         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren):
503         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype._defaultPopulateCount.25.setDataSource):
504         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.sortingChanged):
505         * inspector/front-end/HeapSnapshotGridNodes.js:
506         (WebInspector.HeapSnapshotGenericObjectNode):
507         * inspector/front-end/HeapSnapshotView.js:
508         (WebInspector.HeapSnapshotView.prototype.performSearch):
509         (WebInspector.HeapSnapshotView.prototype.refreshVisibleData):
510         * inspector/front-end/IndexedDBViews.js:
511         (WebInspector.IDBDataView.prototype._createDataGrid):
512         (WebInspector.IDBDataView.prototype._updateData.callback):
513         (WebInspector.IDBDataView.prototype._updateData):
514         (WebInspector.IDBDataView.prototype.clear):
515         * inspector/front-end/NetworkPanel.js:
516         (WebInspector.NetworkLogView.prototype._createTable):
517         (WebInspector.NetworkLogView.prototype.refresh):
518         (WebInspector.NetworkLogView.prototype._reset):
519         * inspector/front-end/ProfileDataGridTree.js:
520         (WebInspector.ProfileDataGridNode.prototype.insertChild):
521         (WebInspector.ProfileDataGridNode.prototype.removeChild):
522         (WebInspector.ProfileDataGridNode.prototype.removeChildren):
523         * inspector/front-end/ProfileView.js:
524         (WebInspector.CPUProfileView.prototype.refresh):
525         * inspector/front-end/treeoutline.js:
526
527 2012-04-18  Vineet Chaudhary  <rgf748@motorola.com>
528
529         Add PassThis=* to support the callbacks which requires to pass "this" value.
530         https://bugs.webkit.org/show_bug.cgi?id=84232
531
532         Reviewed by Kentaro Hara.
533
534         Adding PassThisToCallback=XXX to attributes will be useful for the callbacks which requires to pass "this".
535         This will help to identify the type(XXX) of "this" value in codegenerator.
536
537         Tests: bindings/scripts/test/TestCallback.idl
538
539         * bindings/scripts/CodeGeneratorJS.pm: 
540         (GenerateCallbackImplementation): Modified codegenerator to support [PassThisToCallback]
541         * bindings/scripts/CodeGeneratorV8.pm:
542         (GenerateCallbackImplementation): Ditto.
543         * bindings/scripts/IDLAttributes.txt: Added PassThisToCallback=*
544         * bindings/scripts/test/CPP/WebDOMTestCallback.cpp: Modofied results from run-bindings-tests.
545         (WebDOMTestCallback::callbackWithBoolean):
546         (WebDOMTestCallback::callbackRequiresThisToPass):
547         * bindings/scripts/test/CPP/WebDOMTestCallback.h: Ditto.
548         (WebDOMTestCallback):
549         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp: Ditto.
550         (webkit_dom_test_callback_callback_with_boolean):
551         (webkit_dom_test_callback_callback_requires_this_to_pass):
552         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h: Ditto.
553         * bindings/scripts/test/JS/JSTestCallback.cpp: Ditto.
554         (WebCore::JSTestCallback::callbackWithBoolean):
555         (WebCore):
556         (WebCore::JSTestCallback::callbackRequiresThisToPass):
557         * bindings/scripts/test/JS/JSTestCallback.h: Ditto.
558         (JSTestCallback):
559         * bindings/scripts/test/ObjC/DOMTestCallback.h: Ditto.
560         * bindings/scripts/test/ObjC/DOMTestCallback.mm: Ditto.
561         (-[DOMTestCallback callbackWithBoolean:]):
562         (-[DOMTestCallback callbackRequiresThisToPass:thisClassParam:]):
563         * bindings/scripts/test/TestCallback.idl: Added test to verify generated code.
564         * bindings/scripts/test/V8/V8TestCallback.cpp: Ditto.
565         (WebCore::V8TestCallback::callbackWithBoolean):
566         (WebCore):
567         (WebCore::V8TestCallback::callbackRequiresThisToPass):
568         * bindings/scripts/test/V8/V8TestCallback.h: Ditto.
569         (V8TestCallback):
570
571 2012-04-18  'Pavel Feldman'  <pfeldman@chromium.org>
572
573         Not reviewed: fixing Chromium win compilation.
574
575         * bindings/v8/V8IsolatedContext.cpp:
576
577 2012-04-18  Luke Macpherson  <macpherson@chromium.org>
578
579         Remove unnecessary variable reassignment in CSSParser::parseImageSet().
580         https://bugs.webkit.org/show_bug.cgi?id=84204
581
582         Reviewed by Kentaro Hara.
583
584         Code calls next and then current instead of reusing the result of next.
585
586         No new tests / no functionality changed.
587
588         * css/CSSParser.cpp:
589         (WebCore::CSSParser::parseImageSet):
590
591 2012-04-18  Jason Liu  <jason.liu@torchmobile.com.cn>
592
593         [BlackBerry] HTTP GET header has a "Cookie" when refreshing a page after cookies have been cleared.
594         https://bugs.webkit.org/show_bug.cgi?id=84223
595
596         Reviewed by George Staikos.
597
598         Webkit uses the old ResourceRequest when refreshing. Its cookies' header isn't removed after clicking
599         "clear cookies" button. We need to set cookies for this request again.
600
601         We must click "clear button" to test, so have to write a manual test case.
602
603         Test: ManualTests/blackberry/clear-cookie-refresh.php
604
605         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
606         (WebCore::ResourceRequest::initializePlatformRequest):
607
608 2012-04-17  Pavel Feldman  <pfeldman@chromium.org>
609
610         Web Inspector: [Chromium] Module's require injects scripts before the debug id is set to the context.
611         https://bugs.webkit.org/show_bug.cgi?id=84166
612
613         Reviewed by Yury Semikhatsky.
614
615         V8IsolatedContext was getting debug id assigned post-construction. At the same time, it was compiling all
616         its module scripts within the constructor. As a result, scripts ended up in the main world's list.
617
618         * bindings/v8/V8IsolatedContext.cpp:
619         (WebCore::setInjectedScriptContextDebugId):
620         (WebCore):
621         (WebCore::V8IsolatedContext::V8IsolatedContext):
622         * bindings/v8/V8Proxy.cpp:
623         (WebCore::V8Proxy::evaluateInIsolatedWorld):
624         * bindings/v8/V8Proxy.h:
625         (V8Proxy):
626
627 2012-04-17  Pavel Feldman  <pfeldman@chromium.org>
628
629         Web Inspector: document.open removes the documentElement, but does not clear the elements panel.
630         https://bugs.webkit.org/show_bug.cgi?id=84179
631
632         Reviewed by Yury Semikhatsky.
633
634         Perform total update upon modifications of the document node.
635
636         Test: inspector/elements/delete-from-document.html
637
638         * inspector/InspectorDOMAgent.cpp:
639         (WebCore::InspectorDOMAgent::didRemoveDOMNode):
640         * inspector/front-end/ElementsTreeOutline.js:
641
642 2012-04-18  Max Feil  <mfeil@rim.com>
643
644         [BlackBerry] Tab awareness for HTML5 concurrent audio
645         https://bugs.webkit.org/show_bug.cgi?id=82930
646         Support for concurrent HTML5 audio improvements being made in
647         the platform library, which need to be aware of tabs and tab
648         visibility. PR96004.
649
650         Reviewed by George Staikos.
651
652         Test: media/audio-concurrent-supported.html
653
654         * platform/blackberry/PageClientBlackBerry.h:
655         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
656         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
657         (WebCore::MediaPlayerPrivate::showErrorDialog):
658         (WebCore::MediaPlayerPrivate::isTabVisible):
659         (WebCore):
660         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
661         (MediaPlayerPrivate):
662
663 2012-04-18  Noel Gordon  <noel.gordon@gmail.com>
664
665         [CG] ImageBuffer: check getPremultipliedImageData() error return
666         https://bugs.webkit.org/show_bug.cgi?id=84022
667
668         Reviewed by Eric Seidel.
669
670         ImageBuffer::getPremultipliedImageData() can fail. toDataURL() should check for a
671         failure return, and return "data:," if so.
672
673         No new tests. Covered by existing toDataURL tests, in particular:
674           canvas/philip/tests/toDataURL.jpeg.alpha.html
675
676         * platform/graphics/cg/ImageBufferCG.cpp:
677         (WebCore::ImageBuffer::toDataURL): Rename |arr| variable to premultipliedData and
678         return "data:," if premultipliedData is empty. Clean up whitespace and a comment.
679
680 2012-04-17  Rachel Blum  <groby@chromium.org>
681
682         Skia OOM error when upscaling small subsets of images by large quantities
683         https://bugs.webkit.org/show_bug.cgi?id=84225
684
685         Reviewed by David Levin.
686
687         Tested with manual tests. 
688
689         * platform/graphics/skia/NativeImageSkia.cpp:
690         (WebCore::NativeImageSkia::shouldCacheResampling):
691
692 2012-04-17  MORITA Hajime  <morrita@google.com>
693
694         ShadowRoot shouldn't be adopted by any Document.
695         https://bugs.webkit.org/show_bug.cgi?id=84127
696
697         Reviewed by Dimitri Glazkov.
698
699         ShadowRoot cannot cannot be removed from its host, which means
700         ShadowRoot cannot be adopted by any Document directly because the
701         adoptNode() tries to remove it from its parent but it doesn't make
702         sense for ShadowRoot.
703
704         This change adds a guard to check such a case.
705
706         Test: fast/dom/shadow/adopt-node-with-shadow-root.html
707
708         * dom/Document.cpp:
709         (WebCore::Document::adoptNode):
710
711 2012-04-17  John Bauman  <jbauman@chromium.org>
712
713         [chromium] Ensure RateLimiter waits for Swapbuffers completion
714         https://bugs.webkit.org/show_bug.cgi?id=83649
715
716         Reviewed by James Robinson.
717
718         We were waiting only on the canvas context, which with the new GPU
719         scheduling was causing the RateLimiter not to ratelimit enough. We
720         need to insert no-op commands in the compositor context, so that we'll
721         wait for the canvas context and SwapBuffers as well.
722
723         * platform/graphics/chromium/LayerRendererChromium.cpp:
724         (WebCore::LayerRendererChromium::doNoOp):
725         (WebCore):
726         * platform/graphics/chromium/LayerRendererChromium.h:
727         (LayerRendererChromium):
728         * platform/graphics/chromium/RateLimiter.cpp:
729         (WebCore::RateLimiter::create):
730         (WebCore::RateLimiter::RateLimiter):
731         (WebCore::RateLimiter::rateLimitContext):
732         * platform/graphics/chromium/RateLimiter.h:
733         (RateLimiterClient):
734         (WebCore):
735         (RateLimiter):
736         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
737         (WebCore::CCLayerTreeHost::startRateLimiter):
738         (WebCore::CCLayerTreeHost::rateLimit):
739         (WebCore):
740         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
741         (CCLayerTreeHost):
742         * platform/graphics/chromium/cc/CCProxy.h:
743         (CCProxy):
744         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
745         (WebCore::CCSingleThreadProxy::forceNoOpCommand):
746         (WebCore):
747         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
748         (CCSingleThreadProxy):
749         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
750         (WebCore::CCThreadProxy::forceNoOpCommand):
751         (WebCore):
752         (WebCore::CCThreadProxy::forceNoOpCommandOnImplThread):
753         * platform/graphics/chromium/cc/CCThreadProxy.h:
754         (CCThreadProxy):
755
756 2012-04-17  Andreas Kling  <kling@webkit.org>
757
758         CSSValuePool: Made identifier value cache a fixed-size array.
759         <http://webkit.org/b/84219>
760
761         Reviewed by Antti Koivisto.
762
763         Change the identifier CSSPrimitiveValue cache in CSSValuePool from a HashMap to a
764         fixed-size array of RefPtr<CSSPrimitiveValue>s.
765
766         We have ~700 values total, so this is quite space efficient now that the CSSValuePool
767         is globally shared. More importantly it avoids a hash lookup every time we need an
768         identifier value.
769
770         * css/CSSValuePool.h:
771         * css/CSSValuePool.cpp:
772         (WebCore::CSSValuePool::createIdentifierValue):
773
774 2012-04-17  Antoine Labour  <piman@chromium.org>
775
776         [Chromium] Clean up texture ids on the impl side when losing the context
777         https://bugs.webkit.org/show_bug.cgi?id=84122
778
779         Reviewed by James Robinson.
780
781         Tested by CCLayerTreeHostImplTest.dontUseOldResourcesAfterLostContext.
782
783         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
784         (WebCore::CCTextureLayerImpl::didLoseContext):
785         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
786         (WebCore::CCTiledLayerImpl::didLoseContext):
787         (WebCore):
788         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
789         (CCTiledLayerImpl):
790         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
791         (WebCore::CCVideoLayerImpl::didLoseContext):
792         (WebCore):
793         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
794         (CCVideoLayerImpl):
795
796 2012-04-17  Emil A Eklund  <eae@chromium.org>
797
798         Change RenderThemeChromiumSkia paint methods to use pixel snapping
799         https://bugs.webkit.org/show_bug.cgi?id=84175
800
801         Reviewed by Eric Seidel.
802
803         No new tests, no change in functionality.
804
805         Change RenderThemeChromiumSkia to use subpixel types and pixel snap
806         values just before painting.
807
808         * rendering/RenderThemeChromiumSkia.cpp:
809         (WebCore::RenderThemeChromiumSkia::convertToPaintingRect):
810         (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
811         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
812         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
813         * rendering/RenderThemeChromiumSkia.h:
814
815  2012-04-17  Levi Weintraub  <leviw@chromium.org>
816
817         Clean up outstanding LayoutUnit misuse in WebCore
818         https://bugs.webkit.org/show_bug.cgi?id=84209
819
820         Reviewed by Eric Seidel.
821
822         Small changes to a handful of files to prepare trunk for FractionalLayoutUnits.
823         For more details, see https://trac.webkit.org/wiki/LayoutUnit
824
825         No new tests. No change in behavior.
826
827         * css/CSSComputedStyleDeclaration.cpp:
828         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): minimumValueForLength preserves
829         sub-pixel precision, so we should avoid unnecessarily using integers.
830         * platform/graphics/FractionalLayoutPoint.h:
831         (WebCore::FractionalLayoutPoint::FractionalLayoutPoint): Adding an explicit constructor from
832         FractionalLayoutSizes. This mirrors a method in IntPoint.
833         * rendering/RenderBoxModelObject.cpp:
834         (WebCore::RenderBoxModelObject::paintBorder): The rects that change come from roundedRects,
835         which are already pixel-snapped.
836         * rendering/RenderBoxModelObject.h: Removing a comment that is no longer applicable.
837         * rendering/RenderTable.cpp:
838         (WebCore::RenderTable::computeLogicalWidth): Since we layout tables using integers, we
839         need to explicitly calculate the width to be integral as well to avoid pushing the next element
840         over by a pixel that we won't later paint with our own box decorations.
841         * rendering/RenderText.h:
842         (RenderText): Correcting an unfortunate mismatch between in the return value of linesBoundingBox
843         between the header and implementation.
844         * rendering/style/RenderStyle.cpp:
845         (WebCore::RenderStyle::getRoundedBorderFor): We were incorrectly not using the snapped border
846         rect to pass to calcRadiiFor (which takes an IntRect). Correcting this.
847
848 2012-04-17  Luke Macpherson  <macpherson@chromium.org>
849
850         Ensure CSSParser member variables are initialized.
851         https://bugs.webkit.org/show_bug.cgi?id=84205
852
853         Reviewed by Andreas Kling.
854
855         No new tests / code cleanup only.
856
857         * css/CSSParser.cpp:
858         (WebCore::CSSParser::CSSParser):
859
860 2012-04-16  Alexandru Chiculita  <achicu@adobe.com>
861
862         Regression(114172): Use after free in CustomFilterProgram::notifyClients
863         https://bugs.webkit.org/show_bug.cgi?id=84000
864
865         Reviewed by Dean Jackson.
866
867         The function returned early and the shaders didn't have a chance to be saved. Moving
868         those two lines before the return false just to make sure that FilterEffectRenderer never adds
869         itself as a client for a shader without keeping track of that.
870
871         No new tests. The problem reproduces with existing tests.
872         css3/filters/custom/custom-filter-property-computed-style.html
873         css3/filters/custom/effect-custom-combined-missing.html
874
875         * rendering/FilterEffectRenderer.cpp:
876         (WebCore::FilterEffectRenderer::build):
877
878 2012-04-17  Alec Flett  <alecflett@chromium.org>
879
880         IndexedDB chooses wrong record on PREV_NO_DUPLICATE index cursor
881         https://bugs.webkit.org/show_bug.cgi?id=60746
882
883         Reviewed by Ojan Vafai.
884
885         When iterating backwards with PREV_NO_DUPLICATE, keep walking past
886         the 'prev' key until it changes, then walk forward one time. This
887         covers the object store and index cases.
888
889         Test: storage/indexeddb/mozilla/index-prev-no-duplicate.html
890
891         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
892         (WebCore):
893
894 2012-04-17  Yi Shen  <yi.4.shen@nokia.com>
895
896         Caret is not rendered properly inside an input element with text-indent
897         https://bugs.webkit.org/show_bug.cgi?id=82688
898
899         Reviewed by Ryosuke Niwa.
900
901         For an empty input element, there is no RenderText. Instead, RenderBlock::localCaretRect provides
902         the caret position for rendering the caret in the empty input element. To get correct caret rect,
903         textIndentOffset() should be used to adjust the caret's position.
904
905         Test: editing/style/text-indent.html
906
907         * rendering/RenderBlock.cpp:
908         (WebCore::RenderBlock::localCaretRect):
909
910 2012-04-17  Filip Pizlo  <fpizlo@apple.com>
911
912         It should be possible to create an inheritorID for the global this object without crashing
913         https://bugs.webkit.org/show_bug.cgi?id=84200
914         <rdar://problem/11251082>
915
916         Reviewed by Oliver Hunt.
917
918         No new tests, because the circumstances necessary to make this happen are rather hairy.
919
920         * bindings/js/JSDOMWindowShell.h:
921         (WebCore::JSDOMWindowShell::window):
922         (WebCore::JSDOMWindowShell::setWindow):
923
924 2012-04-17  Luke Macpherson  <macpherson@chromium.org>
925
926         Make CSSParser::parseValue()'s handling of CSSPropertyCursor more obviously correct.
927         https://bugs.webkit.org/show_bug.cgi?id=83544
928
929         Reviewed by Kentaro Hara.
930
931         No new tests / code cleanup only.
932
933         The code as it stands appears to be correct, but static analysis was concerned that value could become null.
934         This patch adds a null check and ASSERT_NOT_REACHED() to make the code more obviously correct.
935
936         * css/CSSParser.cpp:
937         (WebCore::CSSParser::parseValue):
938
939 2012-04-17  David Reveman  <reveman@chromium.org>
940
941         [Chromium] Add TextureUploader which allows us to use persistent GC3D state for texture uploads.
942         https://bugs.webkit.org/show_bug.cgi?id=83972
943
944         Reviewed by James Robinson.
945
946         Add TextureUploader class that allows us to add persistent GC3D state to the upload machinery.
947
948         * WebCore.gypi:
949         * platform/graphics/chromium/LayerRendererChromium.cpp:
950         (WebCore::LayerRendererChromium::initializeSharedObjects):
951         (WebCore::LayerRendererChromium::cleanupSharedObjects):
952         * platform/graphics/chromium/LayerRendererChromium.h:
953         (WebCore::LayerRendererChromium::textureUploader):
954         (LayerRendererChromium):
955         * platform/graphics/chromium/TextureUploader.cpp: Added.
956         (WebCore):
957         (WebCore::AcceleratedTextureUploader::AcceleratedTextureUploader):
958         (WebCore::AcceleratedTextureUploader::~AcceleratedTextureUploader):
959         (WebCore::AcceleratedTextureUploader::uploadTexture):
960         * platform/graphics/chromium/TextureUploader.h: Added.
961         (WebCore):
962         (TextureUploader):
963         (WebCore::TextureUploader::~TextureUploader):
964         (AcceleratedTextureUploader):
965         (WebCore::AcceleratedTextureUploader::create):
966         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
967         (WebCore::CCSingleThreadProxy::doCommit):
968         * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
969         (WebCore::CCTextureUpdater::update):
970         * platform/graphics/chromium/cc/CCTextureUpdater.h:
971         (WebCore):
972         (CCTextureUpdater):
973         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
974         (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
975
976 2012-04-17  Luke Macpherson  <macpherson@chromium.org>
977
978         Clean up CSSParser::parseFillRepeat().
979         https://bugs.webkit.org/show_bug.cgi?id=83547
980
981         Reviewed by Kentaro Hara.
982
983         Removed multiple unnecessary calls to m_valueList->current().
984         Restructured logic for parsing second value to make it clearer.
985
986         No new tests / code cleanup only.
987
988         * css/CSSParser.cpp:
989         (WebCore::CSSParser::parseFillRepeat):
990
991 2012-04-17  Kentaro Hara  <haraken@chromium.org>
992
993         [V8] Pass Isolate to toV8Slow()
994         https://bugs.webkit.org/show_bug.cgi?id=84173
995
996         Reviewed by Nate Chapin.
997
998         The final objective is to pass Isolate around in V8 bindings.
999         This patch passes the Isolate to toV8Slow().
1000
1001         No tests. No change in behavior.
1002
1003         * bindings/scripts/CodeGeneratorV8.pm:
1004         (GenerateHeader):
1005         * bindings/v8/custom/V8NodeCustom.cpp:
1006         (WebCore::toV8Slow):
1007
1008 2012-04-17  Julien Chaffraix  <jchaffraix@webkit.org>
1009
1010         Fix the ACCELERATED_COMPOSITING code to not expose RenderLayer outside rendering
1011         https://bugs.webkit.org/show_bug.cgi?id=83816
1012
1013         Reviewed by James Robinson.
1014
1015         No change in behavior expected.
1016
1017         This code adds several functions on RenderBoxModelObject to forward
1018         to the associated layer. This removes the RenderLayer dependencies
1019         at the call sites.
1020
1021         Currently only RenderBoxModelObject can be hardware accelerated as
1022         we need a RenderLayer, this looks like the best place to put those
1023         new functions.
1024
1025         * rendering/RenderBoxModelObject.cpp:
1026         (WebCore::RenderBoxModelObject::contentChanged):
1027         (WebCore::RenderBoxModelObject::hasAcceleratedCompositing):
1028         (WebCore::RenderBoxModelObject::startTransition):
1029         (WebCore::RenderBoxModelObject::transitionPaused):
1030         (WebCore::RenderBoxModelObject::transitionFinished):
1031         (WebCore::RenderBoxModelObject::startAnimation):
1032         (WebCore::RenderBoxModelObject::animationPaused):
1033         (WebCore::RenderBoxModelObject::animationFinished):
1034         (WebCore::RenderBoxModelObject::suspendAnimations):
1035         * rendering/RenderBoxModelObject.h:
1036         Added the previous functions to hide the layer need.
1037
1038         * rendering/RenderLayer.cpp:
1039         (WebCore::RenderLayer::hasAcceleratedCompositing):
1040         * rendering/RenderLayer.h:
1041         Removed the previous method as it was superseeded by the
1042         one on RenderBoxModelObject. Also moved the ContentChangeType
1043         enumaration.
1044
1045         * rendering/RenderLayerBacking.cpp:
1046         (WebCore::RenderLayerBacking::contentChanged):
1047         * rendering/RenderLayerBacking.h:
1048         (RenderLayerBacking):
1049         Updated after the ContentChangeType enumaration move.
1050
1051         * html/HTMLCanvasElement.cpp:
1052         (WebCore::HTMLCanvasElement::reset):
1053         (WebCore::HTMLCanvasElement::paintsIntoCanvasBuffer):
1054         * html/canvas/CanvasRenderingContext2D.cpp:
1055         (WebCore::CanvasRenderingContext2D::didDraw):
1056         * html/canvas/WebGLRenderingContext.cpp:
1057         (WebCore::WebGLRenderingContext::markContextChanged):
1058         (WebCore::WebGLRenderingContext::reshape):
1059         * page/animation/AnimationBase.cpp:
1060         (WebCore::AnimationBase::freezeAtTime):
1061         * page/animation/ImplicitAnimation.cpp:
1062         (WebCore::ImplicitAnimation::startAnimation):
1063         (WebCore::ImplicitAnimation::pauseAnimation):
1064         (WebCore::ImplicitAnimation::endAnimation):
1065         * page/animation/KeyframeAnimation.cpp:
1066         (WebCore::KeyframeAnimation::startAnimation):
1067         (WebCore::KeyframeAnimation::pauseAnimation):
1068         (WebCore::KeyframeAnimation::endAnimation):
1069         * rendering/RenderBox.cpp:
1070         (WebCore::RenderBox::imageChanged):
1071         * rendering/RenderImage.cpp:
1072         (WebCore::RenderImage::imageDimensionsChanged):
1073         (WebCore::RenderImage::notifyFinished):
1074         * rendering/RenderVideo.cpp:
1075         (WebCore::RenderVideo::updatePlayer):
1076         Updated all those call sites to use the new functions. Also
1077         removed unneeded RenderLayer.h include as we went.
1078
1079 2012-04-16  Andy Estes  <aestes@apple.com>
1080
1081         -webkit-mask-box-image does not draw when layer tree flattening is enabled
1082         https://bugs.webkit.org/show_bug.cgi?id=84111
1083
1084         Reviewed by Simon Fraser.
1085
1086         No new tests since taking pixel test results with
1087         PaintBehaviorFlattenCompositingLayers set is not currently supported.
1088         <https://bugs.webkit.org/show_bug.cgi?id=84110> tracks fixing this.
1089
1090         When painting mask images, we should take the non-composited path if
1091         layers are being flattened.
1092
1093         * rendering/InlineFlowBox.cpp:
1094         (WebCore::InlineFlowBox::paintMask):
1095         * rendering/RenderBox.cpp:
1096         (WebCore::RenderBox::paintMaskImages):
1097
1098 2012-04-17  Emil A Eklund  <eae@chromium.org>
1099
1100         Rollout r114404 as it broke a couple of chromium builds.
1101
1102         * platform/FractionalLayoutUnit.h:
1103         (WebCore::FractionalLayoutUnit::FractionalLayoutUnit):
1104         (WebCore::FractionalLayoutUnit::isInBounds):
1105         (WebCore):
1106
1107 2012-04-17  Ben Murdoch  <benm@google.com>
1108
1109         `localStorage.setItem` can overwrite `localStorage` methods
1110         https://bugs.webkit.org/show_bug.cgi?id=30996
1111
1112         Update the JSC and V8 bindings such that if the name of the DOM
1113         Storage property being retrieved is a match for a property in the
1114         prototype, always return the prototype version. If there is a DOM
1115         Storage key of the same name, it can still be retrieved via the
1116         getItem method. This prevents storage methods from being
1117         accidentally hidden. This brings WebKit behavior in line with the
1118         de facto standard implemented by FireFox and IE.
1119
1120         Reviewed by Kentaro Hara.
1121
1122         Test: storage/domstorage/storage-functions-not-overwritten.html
1123
1124         * bindings/js/JSStorageCustom.cpp:
1125         (WebCore::JSStorage::nameGetter):
1126         * bindings/v8/custom/V8StorageCustom.cpp:
1127         (WebCore::V8Storage::namedPropertyGetter):
1128
1129 2012-04-17  Emil A Eklund  <eae@chromium.org>
1130
1131         Fix Chromium/Windows build broken by r114404.
1132
1133         * platform/FractionalLayoutUnit.h:
1134
1135 2012-04-17  Kentaro Hara  <haraken@chromium.org>
1136
1137         [Performance][V8] Skip Isolate look-up to find StringCache
1138         https://bugs.webkit.org/show_bug.cgi?id=84103
1139
1140         Reviewed by Nate Chapin.
1141
1142         This patch improves the performance of a lot of DOM attribute
1143         getters that return a string.
1144
1145         - Improves the performance of Dromaeo/dom-attr.html(element.property)
1146           by 27.7%.
1147         - Improves the performance of Dromaeo/dom-attr.html(getAttribute)
1148           by 10.6%.
1149         - Improves the performance of div.id, div.className,
1150           div.nodeName, text.nodeValue, text.textContent by 12% -- 21%.
1151
1152         The followings are the test results in my Linux desktop.
1153
1154         Performance test: Dromaeo/dom-attr.html
1155         Total:                     674.64runs/s ->  707.03runs/s (+ 4.8%)
1156         getAttribute:             1537.60runs/s -> 1700.20runs/s (+10.6%)
1157         element.property:         1389.00runs/s -> 1774.20runs/s (+27.7%)
1158         setAttribute:              538.88runs/s ->  548.87runs/s (+ 1.9%)
1159         element.property = value:  644.07runs/s ->  656.67runs/s (+ 2.0%)
1160         element.expando = value:   219.76runs/s ->  207.14runs/s (- 6.8%)
1161         element.expando:           578.77runs/s ->  554.67runs/s (- 4.2%)
1162
1163         Performance test: https://bugs.webkit.org/attachment.cgi?id=137440
1164         div.id:           30.70ns -> 26.70ns (+15%)
1165         div.className:    31.10ns -> 26.40ns (+18%)
1166         div.nodeName:     37.70ns -> 33.00ns (+14%)
1167         text.nodeValue:   31.40ns -> 25.90ns (+21%)
1168         text.textContent: 51.50ns -> 45.90ns (+12%)
1169
1170         Previously V8 bindings need to look up an Isolate to find
1171         an Isolate-local StringCache. This patch skips the look-up
1172         by getting the Isolate from AccessorInfo.GetIsolate()
1173         or Arguments.GetIsolate().
1174
1175         No tests. No change in behavior.
1176
1177         * bindings/scripts/CodeGeneratorV8.pm:
1178         (GenerateNormalAttrGetter):
1179         (GenerateFunctionCallString):
1180         (NativeToJSValue):
1181         * bindings/v8/V8Binding.cpp:
1182         (WebCore::getElementStringAttr):
1183         * bindings/v8/V8Binding.h:
1184         (WebCore::v8ExternalString): Make 'isolate' an optional argument.
1185         Ideally we want to make 'isolate' a non-optional argument,
1186         but it is difficult to rewrite all v8ExternalString() callers
1187         at a breath. We can rewrite them incrementally.
1188         (WebCore::v8String): Ditto.
1189         (WebCore::v8StringOrNull): Ditto.
1190         (WebCore::v8StringOrUndefined): Ditto.
1191         (WebCore::v8StringOrFalse): Ditto.
1192
1193         * bindings/scripts/test/V8/V8TestEventConstructor.cpp: Updated run-bindings-tests results.
1194         (WebCore::TestEventConstructorV8Internal::attr1AttrGetter):
1195         (WebCore::TestEventConstructorV8Internal::attr2AttrGetter):
1196         * bindings/scripts/test/V8/V8TestInterface.cpp:
1197         (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetter):
1198         (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetter):
1199         * bindings/scripts/test/V8/V8TestObj.cpp:
1200         (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetter):
1201         (WebCore::TestObjV8Internal::stringAttrAttrGetter):
1202         (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetter):
1203         (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetter):
1204         (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetter):
1205         (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter):
1206         (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetter):
1207         (WebCore::TestObjV8Internal::hashAttrGetter):
1208         (WebCore::TestObjV8Internal::conditionalMethod1Callback):
1209
1210 2012-04-17  Chris Fleizach  <cfleizach@apple.com>
1211
1212         Crash in invalid index for _textMarkerForIndex
1213         https://bugs.webkit.org/show_bug.cgi?id=84104
1214
1215         Reviewed by Beth Dakin.
1216
1217         Test: platform/mac/accessibility/textmarker-for-index-out-of-bounds-crash.html
1218
1219         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
1220         (-[WebAccessibilityObjectWrapper _textMarkerForIndex:]):
1221
1222 2012-04-17  Jer Noble  <jer.noble@apple.com>
1223
1224         HTML5 Video Full Screen button broken (looks like white square)
1225         https://bugs.webkit.org/show_bug.cgi?id=84101
1226
1227         Reviewed by Dan Bernstein.
1228
1229         No new tests; updated platform results which were previously rebaselined.
1230
1231         Use the correct CSS keyword for the -webkit-appearance of the full screen button.
1232
1233         * css/mediaControls.css:
1234         (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
1235
1236 2012-04-17  Tom Sepez  <tsepez@chromium.org>
1237
1238         Framesniffing defense is too aggressive.
1239         https://bugs.webkit.org/show_bug.cgi?id=83721
1240
1241         Reviewed by James Robinson.
1242
1243         The RenderLayer code currently propagates scroll position to parent frames
1244         without any cross-origin checks.  This gives it a quick origin boundary check
1245         that is set by FrameLoader only when performing a fragment navigation.  This 
1246         allows us to safely relax the restriction on not scrolling at load time in 
1247         FrameLoader since the safe thing will happen later on at scroll time.
1248         
1249         Test: http/tests/navigation/anchor-frames-same-origin.html
1250
1251         * dom/Document.cpp:
1252         (WebCore::Document::findUnsafeParentScrollPropagationBoundary):
1253         * dom/Document.h:
1254         (Document):
1255         * loader/FrameLoader.cpp:
1256         (WebCore::FrameLoader::finishedParsing):
1257         (WebCore::FrameLoader::loadInSameDocument):
1258         (WebCore::FrameLoader::scrollToFragmentWithParentBoundary):
1259         * loader/FrameLoader.h:
1260         (FrameLoader):
1261         * page/FrameView.cpp:
1262         (WebCore::FrameView::FrameView):
1263         (WebCore::FrameView::reset):
1264         * page/FrameView.h:
1265         (WebCore::FrameView::safeToPropagateScrollToParent):
1266         (WebCore::FrameView::setSafeToPropagateScrollToParent):
1267         (FrameView):
1268         * rendering/RenderLayer.cpp:
1269         (WebCore::RenderLayer::scrollRectToVisible):
1270
1271 2012-04-17  Emil A Eklund  <eae@chromium.org>
1272
1273         Add size_t versions of multiplication and division operators to FractionalLayoutUnit
1274         https://bugs.webkit.org/show_bug.cgi?id=83848
1275
1276         Reviewed by Julien Chaffraix.
1277
1278         Add size_t versions of operator* and operator/ for platforms where there
1279         is no ambiguity between unsigned int and size_t.
1280
1281         No new tests, no new functionality.
1282
1283         * platform/FractionalLayoutUnit.h:
1284         (FractionalLayoutUnit):
1285         (WebCore::FractionalLayoutUnit::FractionalLayoutUnit):
1286         (WebCore::FractionalLayoutUnit::isInBounds):
1287         (WebCore):
1288         (WebCore::operator*):
1289         (WebCore::operator/):
1290
1291 2012-04-17  Kentaro Hara  <haraken@chromium.org>
1292
1293         [V8] Add an optional Isolate argument to toV8().
1294         https://bugs.webkit.org/show_bug.cgi?id=84161
1295
1296         Reviewed by Nate Chapin.
1297
1298         The final objective is to pass Isolate around in V8 bindings.
1299         This patch adds an optional Isolate argument to toV8().
1300         After rewriting all toV8() callers so that they pass Isolate,
1301         I will make the Isolate argument non-optional.
1302
1303         No tests. No change in behavior.
1304
1305         * bindings/scripts/CodeGeneratorV8.pm:
1306         Modified as described above.
1307         (GenerateHeader):
1308         (NativeToJSValue):
1309         * bindings/v8/custom/V8BlobCustom.cpp:
1310         (WebCore::toV8):
1311         * bindings/v8/custom/V8CSSRuleCustom.cpp:
1312         (WebCore::toV8):
1313         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp:
1314         (WebCore::toV8):
1315         * bindings/v8/custom/V8CSSValueCustom.cpp:
1316         (WebCore::toV8):
1317         * bindings/v8/custom/V8CanvasPixelArrayCustom.cpp:
1318         (WebCore::toV8):
1319         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
1320         (WebCore::toV8):
1321         * bindings/v8/custom/V8DOMTokenListCustom.cpp:
1322         (WebCore::toV8):
1323         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1324         (WebCore::toV8):
1325         * bindings/v8/custom/V8DataViewCustom.cpp:
1326         (WebCore::toV8):
1327         * bindings/v8/custom/V8DocumentCustom.cpp:
1328         (WebCore::toV8):
1329         * bindings/v8/custom/V8EntryCustom.cpp:
1330         (WebCore::toV8):
1331         * bindings/v8/custom/V8EntrySyncCustom.cpp:
1332         (WebCore::toV8):
1333         * bindings/v8/custom/V8EventCustom.cpp:
1334         (WebCore::toV8):
1335         * bindings/v8/custom/V8Float32ArrayCustom.cpp:
1336         (WebCore::toV8):
1337         * bindings/v8/custom/V8Float64ArrayCustom.cpp:
1338         (WebCore::toV8):
1339         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
1340         (WebCore::toV8):
1341         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1342         (WebCore::toV8):
1343         * bindings/v8/custom/V8HTMLElementCustom.cpp:
1344         (WebCore::toV8):
1345         * bindings/v8/custom/V8IDBAnyCustom.cpp:
1346         (WebCore::toV8):
1347         * bindings/v8/custom/V8IDBKeyCustom.cpp:
1348         (WebCore::toV8):
1349         * bindings/v8/custom/V8ImageDataCustom.cpp:
1350         (WebCore::toV8):
1351         * bindings/v8/custom/V8Int16ArrayCustom.cpp:
1352         (WebCore::toV8):
1353         * bindings/v8/custom/V8Int32ArrayCustom.cpp:
1354         (WebCore::toV8):
1355         * bindings/v8/custom/V8Int8ArrayCustom.cpp:
1356         (WebCore::toV8):
1357         * bindings/v8/custom/V8LocationCustom.cpp:
1358         (WebCore::toV8):
1359         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
1360         (WebCore::toV8):
1361         * bindings/v8/custom/V8NodeCustom.cpp:
1362         (WebCore::toV8Slow):
1363         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
1364         (WebCore::toV8):
1365         * bindings/v8/custom/V8SVGElementCustom.cpp:
1366         (WebCore::toV8):
1367         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
1368         (WebCore::toV8):
1369         * bindings/v8/custom/V8ScriptProfileCustom.cpp:
1370         (WebCore::toV8):
1371         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
1372         (WebCore::toV8):
1373         * bindings/v8/custom/V8StyleSheetCustom.cpp:
1374         (WebCore::toV8):
1375         * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
1376         (WebCore::toV8):
1377         * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
1378         (WebCore::toV8):
1379         * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
1380         (WebCore::toV8):
1381         * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
1382         (WebCore::toV8):
1383         * bindings/v8/custom/V8WorkerContextCustom.cpp:
1384         (WebCore::toV8):
1385
1386         * bindings/scripts/test/V8/V8Float64Array.h:
1387         Updated run-bindings-tests results.
1388         (WebCore):
1389         (WebCore::toV8):
1390         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1391         (WebCore::toV8):
1392         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1393         (WebCore::toV8):
1394         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1395         (WebCore::toV8):
1396         * bindings/scripts/test/V8/V8TestEventTarget.h:
1397         (WebCore::toV8):
1398         * bindings/scripts/test/V8/V8TestInterface.h:
1399         (WebCore::toV8):
1400         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1401         (WebCore::toV8):
1402         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1403         (WebCore::toV8):
1404         * bindings/scripts/test/V8/V8TestNode.h:
1405         (WebCore::toV8):
1406         * bindings/scripts/test/V8/V8TestObj.h:
1407         (WebCore::toV8):
1408         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
1409         (WebCore::toV8):
1410
1411 2012-04-17  Yury Semikhatsky  <yurys@chromium.org>
1412
1413         Web Inspector: move heap snapshot data grids into their own file
1414         https://bugs.webkit.org/show_bug.cgi?id=84160
1415
1416         Moved heap snapshot data grids into a separate file.
1417
1418         Reviewed by Pavel Feldman.
1419
1420         * WebCore.gypi:
1421         * WebCore.vcproj/WebCore.vcproj:
1422         * inspector/compile-front-end.py:
1423         * inspector/front-end/DataGrid.js:
1424         * inspector/front-end/HeapSnapshotDataGrids.js: Added.
1425         (WebInspector.HeapSnapshotSortableDataGrid):
1426         (WebInspector.HeapSnapshotSortableDataGrid.prototype.dispose):
1427         (WebInspector.HeapSnapshotSortableDataGrid.prototype.resetSortingCache):
1428         (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged.SortByTwoFields):
1429         (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged):
1430         (WebInspector.HeapSnapshotSortableDataGrid.prototype.updateVisibleNodes):
1431         (WebInspector.HeapSnapshotSortableDataGrid.prototype.onResize):
1432         (WebInspector.HeapSnapshotSortableDataGrid.prototype._onScroll):
1433         (WebInspector.HeapSnapshotSortableDataGrid.prototype._performSorting):
1434         (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingEnter):
1435         (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingLeave):
1436         (WebInspector.HeapSnapshotContainmentDataGrid):
1437         (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute.nextStep.else.afterExpand):
1438         (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute):
1439         (WebInspector.HeapSnapshotContainmentDataGrid.prototype.setDataSource):
1440         (WebInspector.HeapSnapshotContainmentDataGrid.prototype.sortingChanged):
1441         (WebInspector.HeapSnapshotRetainmentDataGrid):
1442         (WebInspector.HeapSnapshotRetainmentDataGrid.prototype._sortFields):
1443         (WebInspector.HeapSnapshotRetainmentDataGrid.prototype.reset):
1444         (WebInspector.HeapSnapshotConstructorsDataGrid):
1445         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._defaultPopulateCount.100._sortFields):
1446         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.setDataSource):
1447         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.populateChildren):
1448         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._filterSelectIndexChanged):
1449         (WebInspector.HeapSnapshotDiffDataGrid):
1450         (WebInspector.HeapSnapshotDiffDataGrid.prototype._defaultPopulateCount.50._sortFields):
1451         (WebInspector.HeapSnapshotDiffDataGrid.prototype.setDataSource):
1452         (WebInspector.HeapSnapshotDiffDataGrid.prototype._baseProfileIndexChanged):
1453         (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource):
1454         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived.addNodeIfNonZeroDiff):
1455         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived):
1456         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren):
1457         (WebInspector.HeapSnapshotDominatorsDataGrid):
1458         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype._defaultPopulateCount.25.setDataSource):
1459         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.sortingChanged):
1460         * inspector/front-end/HeapSnapshotView.js:
1461         * inspector/front-end/WebKit.qrc:
1462         * inspector/front-end/inspector.html:
1463
1464 2012-04-17  Vivek Galatage  <vivekgalatage@gmail.com>
1465
1466         Script make_names.pl should generate consistent .h & .cpp files
1467         https://bugs.webkit.org/show_bug.cgi?id=84140
1468
1469         Reviewed by Kentaro Hara.
1470
1471         Added a newline character and removed ';' after the DEFINE_GLOBAL
1472
1473         No test cases required for this change.
1474
1475         * dom/make_names.pl:
1476         (printNamesCppFile):
1477
1478 2012-04-17  Aaron Colwell  <acolwell@chromium.org>
1479
1480         Add webkitSourceAddId() & webkitSourceRemoveId() to HTMLMediaElement
1481         and propagate calls to the MediaPlayerPrivate interface.
1482         These are needed to bring the Media Source implementation 
1483         up to date with the new 0.4 version of the Media Source spec.
1484         http://html5-mediasource-api.googlecode.com/svn/tags/0.4/draft-spec/mediasource-draft-spec.html
1485         https://bugs.webkit.org/show_bug.cgi?id=83616
1486
1487         Reviewed by Eric Carlson, Darin Fisher.
1488
1489         Test: http/tests/media/media-source/webm/video-media-source-add-and-remove-ids.html
1490
1491         * html/HTMLMediaElement.cpp:
1492         (WebCore):
1493         (WebCore::HTMLMediaElement::isValidSourceId):
1494         (WebCore::HTMLMediaElement::webkitSourceAddId):
1495         (WebCore::HTMLMediaElement::webkitSourceRemoveId):
1496         (WebCore::HTMLMediaElement::setSourceState):
1497         * html/HTMLMediaElement.h:
1498         (HTMLMediaElement):
1499         * html/HTMLMediaElement.idl:
1500         * platform/graphics/MediaPlayer.cpp:
1501         (WebCore::NullMediaPlayerPrivate::sourceAddId):
1502         (WebCore::NullMediaPlayerPrivate::sourceRemoveId):
1503         (WebCore):
1504         (WebCore::MediaPlayer::sourceAddId):
1505         (WebCore::MediaPlayer::sourceRemoveId):
1506         * platform/graphics/MediaPlayer.h:
1507         * platform/graphics/MediaPlayerPrivate.h:
1508         (WebCore::MediaPlayerPrivateInterface::sourceAddId):
1509         (WebCore::MediaPlayerPrivateInterface::sourceRemoveId):
1510
1511 2012-04-17  Alexander Pavlov  <apavlov@chromium.org>
1512
1513         Web Inspector: [CRASH] InspectorDOMAgent::didInsertDOMNode() on page reload with open Inspector
1514         https://bugs.webkit.org/show_bug.cgi?id=84154
1515
1516         Check that a node inserted actually has a parent.
1517
1518         Reviewed by Yury Semikhatsky.
1519
1520         Test: inspector/elements/elements-panel-reload-assert.html
1521
1522         * inspector/InspectorDOMAgent.cpp:
1523         (WebCore::InspectorDOMAgent::didInsertDOMNode):
1524
1525 2012-04-17  Dana Jansens  <danakj@chromium.org>
1526
1527         [chromium] Consistent checking for clipped rects when we need the computed result enclosed within the real result
1528         https://bugs.webkit.org/show_bug.cgi?id=83543
1529
1530         Reviewed by Adrienne Walker.
1531
1532         It should not be possible to make a rect in layer space that is clipped
1533         by the camera but for which the screen space transform gives a
1534         rectilinear output. But use consistent methods for checking that the
1535         result remains enclosed within the actual pixels.
1536
1537         One day when clipped is true, we can find an interior axis-aligned rect
1538         within the clipped result, and checking clipped explicitly makes this
1539         more clear.
1540
1541         Covered by existing tests.
1542
1543         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
1544         (WebCore::computeOcclusionBehindLayer):
1545         (WebCore::::markOccludedBehindLayer):
1546
1547 2012-04-17  Vsevolod Vlasov  <vsevik@chromium.org>
1548
1549         Web Inspector: Suggest box appears after the command was executed in console sometimes.
1550         https://bugs.webkit.org/show_bug.cgi?id=84148
1551
1552         Reviewed by Pavel Feldman.
1553
1554         TextPrompt.complete() requests completions asynchronously, this change adds a flag
1555         that informs TextPrompt._completionsReady() whether completions should still be shown.
1556
1557         * inspector/front-end/TextPrompt.js:
1558         (WebInspector.TextPrompt.prototype.clearAutoComplete):
1559         (WebInspector.TextPrompt.prototype.complete):
1560         (WebInspector.TextPrompt.prototype._completionsReady):
1561
1562 2012-04-17  Yong Li  <yoli@rim.com>
1563
1564         REGRESSION (r105453): Crash when handling touch events
1565         https://bugs.webkit.org/show_bug.cgi?id=81958
1566
1567         Reviewed by Antonio Gomes.
1568
1569         Always perform sanity checks when handling every touch point
1570         because the node and document may have been destroyed or detached.
1571
1572         ManualTests/touch-stale-iframe-crash.html added.
1573         (DumpRenderTree doesn't support transiting touch states in one shot yet)
1574
1575         * page/EventHandler.cpp:
1576         (WebCore::EventHandler::handleTouchEvent):
1577
1578 2012-04-17  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1579
1580         Asserts in XMLHttpRequestProgressEventThrottle
1581         https://bugs.webkit.org/show_bug.cgi?id=81506
1582
1583         Reviewed by Julien Chaffraix.
1584
1585         The asserts were incorrectly triggered because suspending active DOM objects
1586         (which suspends the XMLHttpRequestProgressEventThrottle) doesn't stop JavaScript
1587         from running or suspend any running loader we may have. The previous code would
1588         assume those 2 cases were impossible.
1589
1590         When XmlHttpRequest::open is called or data is received while the XmlHttpRequest object
1591         is suspended the object may attempt to dispatch events. This patch defers these events
1592         until the object is resumed.
1593
1594         Progress events are coalesced similar to normal throttling, and readystate-change events
1595         are coalesced to avoid identical events emitted right after eachother.
1596
1597         On resume the events are dispatched after a timer to avoid interfering with 
1598         ScriptExecutionContext which is iterating over suspended objects.
1599
1600         Test: fast/events/pagehide-xhr-open.html
1601
1602         * xml/XMLHttpRequestProgressEventThrottle.cpp:
1603         (WebCore::XMLHttpRequestProgressEventThrottle::XMLHttpRequestProgressEventThrottle):
1604         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchProgressEvent):
1605         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchEvent):
1606         (WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent):
1607         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchDeferredEvents):
1608         (WebCore::XMLHttpRequestProgressEventThrottle::fired):
1609         (WebCore::XMLHttpRequestProgressEventThrottle::suspend):
1610         (WebCore::XMLHttpRequestProgressEventThrottle::resume):
1611         * xml/XMLHttpRequestProgressEventThrottle.h:
1612         (XMLHttpRequestProgressEventThrottle):
1613
1614 2012-04-16  Vsevolod Vlasov  <vsevik@chromium.org>
1615
1616         Web Inspector: [Chromium] Crash when inspecting empty IndexedDB object store.
1617         https://bugs.webkit.org/show_bug.cgi?id=84035
1618
1619         Reviewed by Pavel Feldman.
1620
1621         Added a check that m_idbCursor is not null before calling postSuccessHandlerCallback() on it.
1622
1623         * inspector/InspectorIndexedDBAgent.cpp:
1624         (WebCore):
1625
1626 2012-04-17  Pavel Feldman  <pfeldman@chromium.org>
1627
1628         Web Inspector: [regression r112413]content scripts tree outline is not added to the tab.
1629         https://bugs.webkit.org/show_bug.cgi?id=84146
1630
1631         Reviewed by Vsevolod Vlasov.
1632
1633         Adding the tree to the container.
1634
1635         * inspector/front-end/ScriptsNavigator.js:
1636         (WebInspector.ScriptsNavigator):
1637
1638 2012-04-17  Mariusz Grzegorczyk  <mariusz.g@samsung.com>
1639
1640         [EFL][WK2] Fix build break when CONTEXT_MENUS is disabled.
1641         https://bugs.webkit.org/show_bug.cgi?id=83285
1642
1643         Reviewed by Ryosuke Niwa.
1644
1645         * platform/ContextMenuItem.h: Remove macro around enums - needed by InjectedBundle.
1646         (WebCore):
1647         * platform/Widget.h: Remove namespace WebCore for PlatformPageClient typedef.
1648
1649 2012-04-17  Kent Tamura  <tkent@chromium.org>
1650
1651         Introduce an internal feature for a fixed placeholder
1652         https://bugs.webkit.org/show_bug.cgi?id=84009
1653
1654         Reviewed by Hajime Morita.
1655
1656         This change adds a framework to support fixed placeholder string for
1657         textfield-like <input> without the palceholder attribute support. This
1658         doesn't change any behavior of input types which support the
1659         'placeholder' attribute.
1660
1661         According to the standard, <input type=date> doesn't support the
1662         'placeholder' attribute. However it is a kind of text field in WebKit
1663         platforms with ENABLE_CALENDAR_PICKER, and we may show something useful
1664         information as the default placeholder.
1665
1666         No new tests because of no behavior changes.
1667
1668         * html/HTMLTextFormControlElement.h:
1669         (HTMLTextFormControlElement): Make isPlaceholderEmpty() virtual.
1670         * html/HTMLInputElement.h:
1671         (HTMLInputElement): Overrides isPlaceholderEmpty().
1672         * html/HTMLInputElement.cpp:
1673         (WebCore::HTMLInputElement::isPlaceholderEmpty):
1674         Check InputType::defaultPlaceholder() if InputType::usesFixedPlaceholder().
1675         * html/InputType.cpp:
1676         (WebCore::InputType::usesFixedPlaceholder): Added. Returns false.
1677         (WebCore::InputType::fixedPlaceholder): Added. Returns a null string.
1678         * html/InputType.h:
1679         (InputType): Add usesFixedPlaceholder() and fixedPlaceholder().
1680         * html/TextFieldInputType.cpp:
1681         (WebCore::TextFieldInputType::updatePlaceholderText):
1682         Uses fixedPlaceholder() instead of strippedPlaceholder() if usesFixedPlaceholder().
1683
1684 2012-04-17  Kent Tamura  <tkent@chromium.org>
1685
1686         Move some code of LocalizedNumberICU.cpp to ICULocale.cpp
1687         https://bugs.webkit.org/show_bug.cgi?id=84128
1688
1689         Reviewed by Hajime Morita.
1690
1691         No new tests. No behavior change.
1692
1693         * WebCore.gypi: Add ICULocale.cpp
1694         * platform/text/ICULocale.cpp:
1695         Added. Move some code from LocalizedNumberICU.cpp
1696         * platform/text/ICULocale.h:
1697         (ICULocale): Add currentLocale().
1698         * platform/text/LocalizedNumberICU.cpp:
1699         (WebCore::convertToLocalizedNumber): Use ICULocale::currentLocale().
1700         (WebCore::convertFromLocalizedNumber): ditto.
1701
1702 2012-04-17  Bang Kwang min  <justine.bang@samsung.com>
1703
1704         [Plugins] delete ws_info regardless of window mode.
1705         https://bugs.webkit.org/show_bug.cgi?id=83004
1706
1707         Reviewed by Simon Hausmann.
1708
1709         m_npWindow.ws_info should be deleted even if plugin run as windowless mode to remove memory leak.
1710         Every plugin works well after this patch without any crash.
1711         Additionally, change casting syntax to C++ style.
1712
1713         * plugins/PluginView.cpp:
1714         (WebCore::PluginView::stop):
1715
1716 2012-04-17  Kent Tamura  <tkent@chromium.org>
1717
1718         Calendar Picker: Support RTL layout
1719         https://bugs.webkit.org/show_bug.cgi?id=83668
1720
1721         Reviewed by Hajime Morita.
1722
1723         Manual test: ManualTests/forms/calendar-picker.html
1724
1725         * Resources/calendarPicker.js:
1726         (layout): If params.isRTL, add dir=rtl to the body.
1727         (DaysTable.prototype._handleKey): Reverse Left and Right cursor keys if RTL.
1728         * html/shadow/CalendarPickerElement.cpp:
1729         (WebCore::addProperty): Add addProperty() with a bool value.
1730         (WebCore::CalendarPickerElement::writeDocument):
1731         Check the direction of the first character of localized January label,
1732         and pass it as isRTL property.
1733
1734 2012-04-16  Carlos Garcia Campos  <cgarcia@igalia.com>
1735
1736         Unreviewed. Fix make distcheck issues.
1737
1738         * GNUmakefile.list.am: Add missing files.
1739
1740 2012-04-16  Hajime Morrita  <morrita@chromium.org>
1741
1742         insertedIntoDocument and insertedIntoTree should be unitifed.
1743         https://bugs.webkit.org/show_bug.cgi?id=82701
1744
1745         Reviewed by Ryosuke Niwa.
1746
1747         Both Node::insertedIntoTree() and Node::insertedIntoDocument() are
1748         served as lifecycle callbacks which are invoked when a node is
1749         inserted into its new parent. There are also removedFromTree()
1750         and removedFromDocument() respectively. Considering that this pair
1751         of virtual functions are laid onto the hot path, it's worth
1752         merging them into one, to gain some speedup. Such
1753         unification could clarify the semantics as well.
1754
1755         This change makes following change to merge these functions.
1756
1757         - pulling the tree traversal out from ContainerNode to ChildNodeInsertionNotifier.
1758         - letting new Node::insertInto() do the job for its own, but not
1759           for its children and
1760         - Pass the parent of each insertion root as a parameter of insertedInto().
1761           This root node can tell inserted node where it is inserted,
1762           specifically whetehr the insertion is to the document or not.
1763
1764         Same pattern is also applied to Node::removedFromDocument() and
1765         Node::removedFromTree(), which are factored to Node::removedFrom()
1766         and ChildNodeRemovalNotifier respectively.
1767
1768         Speed up on Dromaeo/dom-modify.html is about 2%.
1769         Further speed-up by de-virtulization would be possible.
1770
1771         Caveat:
1772
1773         There is possible situation where a node need to invoke
1774         insertedInto() after its children is nofitied, instead of before
1775         that.  It was represented naturally with previous
1776         traversal-by-ContainerNode pattern, but is no longer simple with
1777         this new external traversal. To support this scenario, we
1778         introduced the InsertionNotificationRequest as a return value of insertedInto()
1779         and a supplemental hook Node::didNotifyDescendantInseretions(). See for
1780         example HTMLFormElement.cpp to learn how it works.
1781
1782         No new tests. Covered by existing tests.
1783
1784         * CMakeLists.txt:
1785         * GNUmakefile.list.am:
1786         * Target.pri:
1787         * WebCore.gypi:
1788         * WebCore.xcodeproj/project.pbxproj:
1789         * dom/ContainerNode.cpp:
1790         (WebCore::ContainerNode::parserInsertBefore):
1791         (WebCore::ContainerNode::removeChild):
1792         (WebCore::ContainerNode::parserRemoveChild):
1793         (WebCore::ContainerNode::removeChildren):
1794         (WebCore::ContainerNode::parserAddChild):
1795         (WebCore::updateTreeAfterInsertion):
1796         * dom/ContainerNode.h:
1797         (ContainerNode):
1798         (WebCore::Node::highestAncestor):
1799         (WebCore):
1800         * dom/ContainerNodeAlgorithms.cpp: Added.
1801         (WebCore):
1802         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
1803         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoTree):
1804         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
1805         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromTree):
1806         * dom/ContainerNodeAlgorithms.h:
1807         (ChildNodeInsertionNotifier):
1808         (WebCore::ChildNodeInsertionNotifier::ChildNodeInsertionNotifier):
1809         (WebCore):
1810         (ChildNodeRemovalNotifier):
1811         (WebCore::ChildNodeRemovalNotifier::ChildNodeRemovalNotifier):
1812         (WebCore::removeAllChildrenInContainer):
1813         (WebCore::appendChildToContainer):
1814         (Private):
1815         (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
1816         (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
1817         (WebCore::ChildNodeInsertionNotifier::notifyInsertedIntoDocument):
1818         (WebCore::ChildNodeInsertionNotifier::notify):
1819         (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument):
1820         (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromTree):
1821         (WebCore::ChildNodeRemovalNotifier::notify):
1822         * dom/DOMAllInOne.cpp:
1823         * dom/DocumentType.cpp:
1824         (WebCore::DocumentType::insertedInto):
1825         (WebCore::DocumentType::removedFrom):
1826         * dom/DocumentType.h:
1827         (DocumentType):
1828         * dom/Element.cpp:
1829         (WebCore::Element::insertedInto):
1830         (WebCore::Element::removedFrom):
1831         * dom/Element.h:
1832         (Element):
1833         * dom/Node.cpp:
1834         (WebCore::Node::insertedInto):
1835         (WebCore::Node::removedFrom):
1836         * dom/Node.h:
1837         (Node):
1838         (WebCore::Node::didNotifyDescendantInseretions):
1839         * dom/ProcessingInstruction.cpp:
1840         (WebCore::ProcessingInstruction::insertedInto):
1841         (WebCore::ProcessingInstruction::removedFrom):
1842         * dom/ProcessingInstruction.h:
1843         (ProcessingInstruction):
1844         * dom/ScriptElement.cpp:
1845         (WebCore::ScriptElement::insertedInto):
1846         * dom/ScriptElement.h:
1847         (WebCore):
1848         (ScriptElement):
1849         * dom/ShadowTree.cpp:
1850         (WebCore::ShadowTree::addShadowRoot):
1851         (WebCore::ShadowTree::removeAllShadowRoots):
1852         * dom/ShadowTree.h:
1853         (ShadowTree):
1854         (ShadowRootVector):
1855         (WebCore::ShadowRootVector::ShadowRootVector):
1856         (WebCore):
1857         * html/FormAssociatedElement.cpp:
1858         (WebCore::FormAssociatedElement::insertedInto):
1859         (WebCore::FormAssociatedElement::removedFrom):
1860         (WebCore::FormAssociatedElement::formRemovedFromTree):
1861         * html/FormAssociatedElement.h:
1862         (FormAssociatedElement):
1863         * html/HTMLBaseElement.cpp:
1864         (WebCore::HTMLBaseElement::insertedInto):
1865         (WebCore::HTMLBaseElement::removedFrom):
1866         * html/HTMLBaseElement.h:
1867         (HTMLBaseElement):
1868         * html/HTMLBodyElement.cpp:
1869         (WebCore::HTMLBodyElement::insertedInto):
1870         (WebCore::HTMLBodyElement::didNotifyDescendantInseretions):
1871         * html/HTMLBodyElement.h:
1872         (HTMLBodyElement):
1873         * html/HTMLFormControlElement.cpp:
1874         (WebCore::HTMLFormControlElement::insertedInto):
1875         (WebCore::HTMLFormControlElement::removedFrom):
1876         * html/HTMLFormControlElement.h:
1877         (HTMLFormControlElement):
1878         * html/HTMLFormElement.cpp:
1879         (WebCore::HTMLFormElement::insertedInto):
1880         (WebCore::HTMLFormElement::didNotifyDescendantInseretions):
1881         (WebCore::HTMLFormElement::removedFrom):
1882         * html/HTMLFormElement.h:
1883         (HTMLFormElement):
1884         * html/HTMLFrameElementBase.cpp:
1885         (WebCore::HTMLFrameElementBase::insertedInto):
1886         (WebCore):
1887         (WebCore::HTMLFrameElementBase::didNotifyDescendantInseretions):
1888         * html/HTMLFrameElementBase.h:
1889         (HTMLFrameElementBase):
1890         * html/HTMLFrameSetElement.cpp:
1891         (WebCore::HTMLFrameSetElement::insertedInto):
1892         (WebCore::HTMLFrameSetElement::removedFrom):
1893         * html/HTMLFrameSetElement.h:
1894         (HTMLFrameSetElement):
1895         * html/HTMLIFrameElement.cpp:
1896         (WebCore::HTMLIFrameElement::insertedInto):
1897         (WebCore::HTMLIFrameElement::removedFrom):
1898         * html/HTMLIFrameElement.h:
1899         (HTMLIFrameElement):
1900         * html/HTMLImageElement.cpp:
1901         (WebCore::HTMLImageElement::insertedInto):
1902         (WebCore::HTMLImageElement::removedFrom):
1903         * html/HTMLImageElement.h:
1904         (HTMLImageElement):
1905         * html/HTMLInputElement.cpp:
1906         (WebCore::HTMLInputElement::insertedInto):
1907         (WebCore::HTMLInputElement::removedFrom):
1908         * html/HTMLInputElement.h:
1909         * html/HTMLLinkElement.cpp:
1910         (WebCore::HTMLLinkElement::insertedInto):
1911         (WebCore::HTMLLinkElement::removedFrom):
1912         * html/HTMLLinkElement.h:
1913         (HTMLLinkElement):
1914         * html/HTMLMapElement.cpp:
1915         (WebCore::HTMLMapElement::insertedInto):
1916         (WebCore::HTMLMapElement::removedFrom):
1917         * html/HTMLMapElement.h:
1918         (HTMLMapElement):
1919         * html/HTMLMediaElement.cpp:
1920         (WebCore::HTMLMediaElement::insertedInto):
1921         (WebCore::HTMLMediaElement::removedFrom):
1922         * html/HTMLMediaElement.h:
1923         (HTMLMediaElement):
1924         * html/HTMLMetaElement.cpp:
1925         (WebCore::HTMLMetaElement::insertedInto):
1926         * html/HTMLMetaElement.h:
1927         (HTMLMetaElement):
1928         * html/HTMLObjectElement.cpp:
1929         (WebCore::HTMLObjectElement::insertedInto):
1930         (WebCore::HTMLObjectElement::removedFrom):
1931         * html/HTMLObjectElement.h:
1932         (HTMLObjectElement):
1933         * html/HTMLOptionElement.cpp:
1934         (WebCore::HTMLOptionElement::insertedInto):
1935         * html/HTMLOptionElement.h:
1936         (HTMLOptionElement):
1937         * html/HTMLQuoteElement.cpp:
1938         (WebCore::HTMLQuoteElement::insertedInto):
1939         * html/HTMLQuoteElement.h:
1940         (HTMLQuoteElement):
1941         * html/HTMLScriptElement.cpp:
1942         (WebCore::HTMLScriptElement::insertedInto):
1943         * html/HTMLScriptElement.h:
1944         (HTMLScriptElement):
1945         * html/HTMLSelectElement.cpp:
1946         (WebCore::HTMLSelectElement::insertedInto):
1947         * html/HTMLSelectElement.h:
1948         * html/HTMLSourceElement.cpp:
1949         (WebCore::HTMLSourceElement::insertedInto):
1950         * html/HTMLSourceElement.h:
1951         (HTMLSourceElement):
1952         * html/HTMLStyleElement.cpp:
1953         (WebCore::HTMLStyleElement::insertedInto):
1954         (WebCore::HTMLStyleElement::removedFrom):
1955         * html/HTMLStyleElement.h:
1956         (HTMLStyleElement):
1957         * html/HTMLTextFormControlElement.cpp:
1958         (WebCore::HTMLTextFormControlElement::insertedInto):
1959         * html/HTMLTextFormControlElement.h:
1960         * html/HTMLTitleElement.cpp:
1961         (WebCore::HTMLTitleElement::insertedInto):
1962         (WebCore::HTMLTitleElement::removedFrom):
1963         * html/HTMLTitleElement.h:
1964         (HTMLTitleElement):
1965         * html/HTMLTrackElement.cpp:
1966         (WebCore::HTMLTrackElement::insertedInto):
1967         * html/HTMLTrackElement.h:
1968         (HTMLTrackElement):
1969         * mathml/MathMLMathElement.cpp:
1970         (WebCore::MathMLMathElement::insertedInto):
1971         * mathml/MathMLMathElement.h:
1972         (MathMLMathElement):
1973         * svg/SVGElement.cpp:
1974         (WebCore::SVGElement::removedFrom):
1975         * svg/SVGElement.h:
1976         (SVGElement):
1977         * svg/SVGFEImageElement.cpp:
1978         (WebCore::SVGFEImageElement::insertedInto):
1979         (WebCore::SVGFEImageElement::removedFrom):
1980         * svg/SVGFEImageElement.h:
1981         (SVGFEImageElement):
1982         * svg/SVGFontFaceElement.cpp:
1983         (WebCore::SVGFontFaceElement::insertedInto):
1984         (WebCore::SVGFontFaceElement::removedFrom):
1985         * svg/SVGFontFaceElement.h:
1986         (SVGFontFaceElement):
1987         * svg/SVGFontFaceUriElement.cpp:
1988         (WebCore::SVGFontFaceUriElement::insertedInto):
1989         * svg/SVGFontFaceUriElement.h:
1990         (SVGFontFaceUriElement):
1991         * svg/SVGGlyphElement.cpp:
1992         (WebCore::SVGGlyphElement::insertedInto):
1993         (WebCore::SVGGlyphElement::removedFrom):
1994         * svg/SVGGlyphElement.h:
1995         (SVGGlyphElement):
1996         * svg/SVGHKernElement.cpp:
1997         (WebCore::SVGHKernElement::insertedInto):
1998         (WebCore::SVGHKernElement::removedFrom):
1999         * svg/SVGHKernElement.h:
2000         (SVGHKernElement):
2001         * svg/SVGImageElement.cpp:
2002         (WebCore::SVGImageElement::insertedInto):
2003         * svg/SVGImageElement.h:
2004         (SVGImageElement):
2005         * svg/SVGSVGElement.cpp:
2006         (WebCore::SVGSVGElement::insertedInto):
2007         (WebCore::SVGSVGElement::removedFrom):
2008         * svg/SVGSVGElement.h:
2009         (SVGSVGElement):
2010         * svg/SVGScriptElement.cpp:
2011         (WebCore::SVGScriptElement::insertedInto):
2012         * svg/SVGScriptElement.h:
2013         (SVGScriptElement):
2014         * svg/SVGStyleElement.cpp:
2015         (WebCore::SVGStyleElement::insertedInto):
2016         (WebCore::SVGStyleElement::removedFrom):
2017         * svg/SVGStyleElement.h:
2018         (SVGStyleElement):
2019         * svg/SVGStyledElement.cpp:
2020         (WebCore::SVGStyledElement::insertedInto):
2021         (WebCore::SVGStyledElement::removedFrom):
2022         (WebCore::SVGStyledElement::updateRelativeLengthsInformation):
2023         * svg/SVGStyledElement.h:
2024         (SVGStyledElement):
2025         * svg/SVGTRefElement.cpp:
2026         (WebCore::SVGTRefElement::buildPendingResource):
2027         (WebCore::SVGTRefElement::insertedInto):
2028         (WebCore::SVGTRefElement::removedFrom):
2029         * svg/SVGTRefElement.h:
2030         (SVGTRefElement):
2031         * svg/SVGTextPathElement.cpp:
2032         (WebCore::SVGTextPathElement::insertedInto):
2033         * svg/SVGTextPathElement.h:
2034         * svg/SVGTitleElement.cpp:
2035         (WebCore::SVGTitleElement::insertedInto):
2036         (WebCore::SVGTitleElement::removedFrom):
2037         * svg/SVGTitleElement.h:
2038         (SVGTitleElement):
2039         * svg/SVGUseElement.cpp:
2040         (WebCore::SVGUseElement::insertedInto):
2041         (WebCore::SVGUseElement::removedFrom):
2042         * svg/SVGUseElement.h:
2043         (SVGUseElement):
2044         * svg/SVGVKernElement.cpp:
2045         (WebCore::SVGVKernElement::insertedInto):
2046         (WebCore::SVGVKernElement::removedFrom):
2047         * svg/SVGVKernElement.h:
2048         (SVGVKernElement):
2049         * svg/animation/SVGSMILElement.cpp:
2050         (WebCore::SVGSMILElement::insertedInto):
2051         (WebCore::SVGSMILElement::removedFrom):
2052         * svg/animation/SVGSMILElement.h:
2053         (SVGSMILElement):
2054
2055 2012-04-16  David Barr  <davidbarr@chromium.org>
2056
2057         Stack overflow in CSS parser caused by recursive stylesheet import
2058         https://bugs.webkit.org/show_bug.cgi?id=83545
2059
2060         Reviewed by Ryosuke Niwa.
2061
2062         Test: http/tests/css/css-imports-redirect-cycle.html
2063
2064         * css/CSSImportRule.cpp:
2065         (WebCore::StyleRuleImport::requestStyleSheet):
2066
2067 2012-04-16  Kent Tamura  <tkent@chromium.org>
2068
2069         Rename LocalizedNumberICU.h to ICULocale.h
2070         https://bugs.webkit.org/show_bug.cgi?id=84119
2071
2072         Reviewed by Kentaro Hara.
2073
2074         LocalizedNumberICU.h contains only ICULocale class. It should be
2075         named as ICULocale.h. We're going to move some functions in
2076         LocalizedDateICU.cpp and LocalizedCalendarICU.cpp to ICULocale,
2077         and add unit tests for them.
2078
2079         * WebCore.gypi: Rename LocalizedNumberICU.h to ICULocale.h
2080         * platform/text/ICULocale.h:
2081         Renamed from Source/WebCore/platform/text/LocalizedNumberICU.h.
2082         * platform/text/LocalizedNumberICU.cpp:
2083         Rename LocalizedNumberICU.h to ICULocale.h
2084
2085 2012-04-16  James Robinson  <jamesr@chromium.org>
2086
2087         [chromium] Move paintRenderedResultsToCanvas code into DrawingBuffer
2088         https://bugs.webkit.org/show_bug.cgi?id=84066
2089
2090         Reviewed by Adrienne Walker.
2091
2092         WebGLLayerChromium used to be responsible for the readback path for software painting WebGL canvases (for
2093         printing, etc), but this path no longer has any compositor interaction. This moves the code into
2094         DrawingBufferChromium which is responsible for managing the front / back buffers for WebGL.
2095
2096         * platform/graphics/chromium/DrawingBufferChromium.cpp:
2097         (WebCore::DrawingBuffer::paintCompositedResultsToCanvas):
2098         * platform/graphics/chromium/WebGLLayerChromium.cpp:
2099         * platform/graphics/chromium/WebGLLayerChromium.h:
2100         (WebGLLayerChromium):
2101
2102 2012-04-16  Dana Jansens  <danakj@chromium.org>
2103
2104         [chromium] Expose compositor filters to Aura through WebLayer
2105         https://bugs.webkit.org/show_bug.cgi?id=80054
2106
2107         Reviewed by James Robinson.
2108
2109         Adds WebFilterOperation that wraps WebCore::FilterOperation and
2110         WebFilterOperations that wraps WebCore::FilterOperations.
2111
2112         We add support for most of the FilterOperation subclasses, and
2113         allow the user to set the WebFilterOperations for both layer
2114         content filters and background filters.
2115
2116         * WebCore.gypi:
2117         * platform/chromium/support/WebFilterOperation.cpp: Added.
2118         (WebKit):
2119         (WebKit::WebBasicColorMatrixFilterOperation::toFilterOperation):
2120         (WebKit::WebBasicComponentTransferFilterOperation::toFilterOperation):
2121         (WebKit::WebBlurFilterOperation::toFilterOperation):
2122         (WebKit::WebDropShadowFilterOperation::toFilterOperation):
2123         * platform/chromium/support/WebFilterOperations.cpp: Added.
2124         (WebKit):
2125         (WebKit::WebFilterOperations::WebFilterOperations):
2126         (WebKit::WebFilterOperations::append):
2127         (WebKit::WebFilterOperations::clear):
2128         (WebKit::WebFilterOperations::toFilterOperations):
2129
2130 2012-04-16  Andrei Burago  <aburago@chromium.org>
2131
2132         Auto-sized frames may be taller than expected
2133         https://bugs.webkit.org/show_bug.cgi?id=84106
2134
2135         Reviewed by David Levin.
2136
2137         No new tests. The repro steps require using Chrome notifications on Win.
2138
2139         * page/FrameView.cpp:
2140         (WebCore::FrameView::autoSizeIfEnabled):
2141
2142 2012-04-13  James Robinson  <jamesr@chromium.org>
2143
2144         [chromium] Expose WebVideoLayer to Platform API and port WebMediaPlayerClientImpl to using it
2145         https://bugs.webkit.org/show_bug.cgi?id=83963
2146
2147         Reviewed by Adrienne Walker.
2148
2149         Converts VideoLayerChromium / CCVideoLayerImpl to use a Platform WebVideoFrameProvider interface instead of a
2150         WebCore VideoFrameProvider.
2151
2152         * WebCore.gypi:
2153         * platform/graphics/chromium/VideoLayerChromium.cpp:
2154         (WebCore::VideoLayerChromium::create):
2155         (WebCore::VideoLayerChromium::VideoLayerChromium):
2156         * platform/graphics/chromium/VideoLayerChromium.h:
2157         (WebKit):
2158         (WebCore):
2159         (VideoLayerChromium):
2160         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2161         (WebCore::CCVideoLayerImpl::CCVideoLayerImpl):
2162         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2163         (WebCore::CCVideoLayerImpl::create):
2164         (CCVideoLayerImpl):
2165
2166 2012-04-16  Takashi Sakamoto  <tasak@google.com>
2167
2168         [Shadow DOM] InsertionPoint should have isActive() member function.
2169         https://bugs.webkit.org/show_bug.cgi?id=82010
2170
2171         Reviewed by Hajime Morita.
2172
2173         This patch adds isActive public member function to InsertionPoint and
2174         makes InsertionPoint elements consider whether active or not.
2175         If an InsertionPoint is inactive, the element is not shadow boundary
2176         and is needed to be rendered.
2177         c.f. https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#dfn-active-insertion-point
2178
2179         Test: update existing tests, i.e.
2180         LayoutTests/fast/dom/shadow/shadow-contents-fallback-dynamic.html and
2181         LayoutTests/fast/dom/shadow/shadow-contents-fallback.html
2182
2183         * html/shadow/InsertionPoint.cpp:
2184         (WebCore::InsertionPoint::isActive):
2185         A new public method for checking whether an insertion point is active or inactive.
2186         If active, returns true. Otherwise, false.
2187         (WebCore::InsertionPoint::isShadowBoundary):
2188         Make the method consider whether an insertin point is active or inactive.
2189         (WebCore::InsertionPoint::rendererIsNeeded):
2190         Changed to return true If an insertion point is inactive.
2191         (WebCore::InsertionPoint::attach):
2192         Changed to call only HTMLElement::attach If an insertion point is inactive.
2193         (WebCore::InsertionPoint::detach):
2194         Changed to call only HTMLElement::detach If an insertion point is inactive.
2195         * html/shadow/InsertionPoint.h:
2196         (InsertionPoint):
2197         Added isActive public method.
2198         * dom/NodeRenderingContext.cpp:
2199         (WebCore::NodeRenderingContext::NodeRenderingContext):
2200         Changed to take into account an insertion point's activeness when parent is an insertion point.
2201         (WebCore::NodeRenderingContext::firstRendererOf):
2202         (WebCore::NodeRenderingContext::lastRendererOf):
2203         Changed to take into account an insertion point's activeness.
2204
2205 2012-04-16  MORITA Hajime  <morrita@google.com>
2206
2207         Type tags in NodeFlags could be compressed
2208         https://bugs.webkit.org/show_bug.cgi?id=79299
2209
2210         Because existing node flags which indicate the class of each node
2211         are mutually exclusive, these flags can be represented as a enum.
2212         This patch introduces Node::NodeTypeTag to turn these flags into a
2213         enum, and embeds it into Node::m_nodeFlags.
2214
2215         Reviewed by Antti Koivisto.
2216
2217         No new tests. No bahavior change.
2218
2219         * dom/Node.cpp:
2220         (WebCore):
2221         * dom/Node.h:
2222         (WebCore):
2223         (Node):
2224         (WebCore::Node::typeTag):
2225         (WebCore::Node::parentNode):
2226         (WebCore::Node::parentNodeGuaranteedHostFree):
2227         (WebCore::Node::isContainerNode):
2228         (WebCore::Node::isElementNode):
2229         (WebCore::Node::isStyledElement):
2230         (WebCore::Node::isTextNode):
2231         (WebCore::Node::isHTMLElement):
2232         (WebCore::Node::isSVGElement):
2233         (WebCore::Node::isShadowRoot):
2234
2235 2012-04-16  Sheriff Bot  <webkit.review.bot@gmail.com>
2236
2237         Unreviewed, rolling out r114285.
2238         http://trac.webkit.org/changeset/114285
2239         https://bugs.webkit.org/show_bug.cgi?id=84107
2240
2241         broke fast/media/media-query-list-08.html in Mac (Requested by
2242         andersca on #webkit).
2243
2244         * dom/Document.cpp:
2245         (WebCore::Document::styleSelectorChanged):
2246         * dom/Document.h:
2247         (Document):
2248         * page/FrameView.cpp:
2249         (WebCore::FrameView::layout):
2250
2251 2012-04-16  Nate Chapin  <japhet@chromium.org>
2252
2253         Remove unused variable CachedResourceLoader::m_loadFinishing
2254         https://bugs.webkit.org/show_bug.cgi?id=84100
2255
2256         Reviewed by Alexey Proskuryakov.
2257
2258         No new tests, removing dead code.
2259
2260         * loader/cache/CachedResourceLoader.cpp:
2261         (WebCore::CachedResourceLoader::CachedResourceLoader):
2262         (WebCore::CachedResourceLoader::loadDone):
2263         (WebCore::CachedResourceLoader::decrementRequestCount):
2264         * loader/cache/CachedResourceLoader.h:
2265         (CachedResourceLoader):
2266         (WebCore::CachedResourceLoader::requestCount):
2267
2268 2012-04-16  Andreas Kling  <kling@webkit.org>
2269
2270         Remove contextStyleSheet argument from CSSValuePool::createFontFaceValue().
2271         <http://webkit.org/b/83988>
2272
2273         Reviewed by Antti Koivisto.
2274
2275         Remove the 'context style sheet' argument to <font face> value parsing.
2276         It was only ever used to grab at the CSSValuePool back when they were per-Document.
2277
2278         * css/CSSParser.h:
2279         * css/CSSParser.cpp:
2280         (WebCore::CSSParser::parseFontFaceValue):
2281         * css/CSSValuePool.h:
2282         * css/CSSValuePool.cpp:
2283         (WebCore::CSSValuePool::createFontFaceValue):
2284         * html/HTMLFontElement.cpp:
2285         (WebCore::HTMLFontElement::collectStyleForAttribute):
2286
2287 2012-04-16  Dana Jansens  <danakj@chromium.org>
2288
2289         [chromium] Consistent checking for clipped rects when we need the computed result enclosed within the real result
2290         https://bugs.webkit.org/show_bug.cgi?id=83543
2291
2292         Reviewed by Adrienne Walker.
2293
2294         It should not be possible to make a rect in layer space that is clipped
2295         by the camera but for which the screen space transform gives a
2296         rectilinear output. But use consistent methods for checking that the
2297         result remains enclosed within the actual pixels.
2298
2299         One day when clipped is true, we can find an interior axis-aligned rect
2300         within the clipped result, and checking clipped explicitly makes this
2301         more clear.
2302
2303         Covered by existing tests.
2304
2305         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2306         (WebCore::computeOcclusionBehindLayer):
2307         (WebCore::::markOccludedBehindLayer):
2308
2309 2012-04-16  Erik Arvidsson  <arv@chromium.org>
2310
2311         [V8] Don't delete the per context data until the V8IsolatedContext is deleted
2312         https://bugs.webkit.org/show_bug.cgi?id=83831
2313
2314         Reviewed by Nate Chapin.
2315
2316         Test: http/tests/security/isolatedWorld/context-destroy.html
2317
2318         * bindings/v8/V8IsolatedContext.cpp:
2319         (WebCore::V8IsolatedContext::destroy):
2320
2321 2012-04-16  Greg Billock  <gbillock@google.com>
2322
2323         Add V8 code generation support for MessagePortArray attributes.
2324         https://bugs.webkit.org/show_bug.cgi?id=83943
2325
2326         Reviewed by Kentaro Hara.
2327
2328         * bindings/scripts/CodeGeneratorV8.pm:
2329         (GenerateNormalAttrGetter):
2330         * bindings/scripts/IDLAttributes.txt:
2331         * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp:
2332         (WebDOMTestSerializedScriptValueInterface::ports):
2333         * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.h:
2334         (WebDOMTestSerializedScriptValueInterface):
2335         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
2336         (webkit_dom_test_serialized_script_value_interface_get_property):
2337         (webkit_dom_test_serialized_script_value_interface_class_init):
2338         (webkit_dom_test_serialized_script_value_interface_get_ports):
2339         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
2340         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2341         (WebCore):
2342         (WebCore::jsTestSerializedScriptValueInterfacePorts):
2343         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
2344         (WebCore):
2345         * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h:
2346         * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:
2347         (-[DOMTestSerializedScriptValueInterface ports]):
2348         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
2349         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2350         (WebCore::TestSerializedScriptValueInterfaceInternal::portsAttrGetter):
2351         (TestSerializedScriptValueInterfaceInternal):
2352         (WebCore):
2353
2354 2012-04-16  Xiaomei Ji  <xji@chromium.org>
2355
2356         platform/graphics/skia/GlyphPageTreeNodeSkia.cpp mis-use 'continue' for 'break'
2357         https://bugs.webkit.org/show_bug.cgi?id=83521
2358
2359         Reviewed by David Levin.
2360
2361         No functionality change, so no new tests.
2362
2363         * platform/graphics/skia/GlyphPageTreeNodeSkia.cpp:
2364         (WebCore::GlyphPage::fill):
2365
2366 2012-04-16  Levi Weintraub  <leviw@chromium.org>
2367
2368         Make borderBoxRect sub-pixel precise and add a pixel snapped version
2369         https://bugs.webkit.org/show_bug.cgi?id=84063
2370
2371         Reviewed by Eric Seidel.
2372
2373         In an effort to prevent misuse, we previously decided to have borderBoxRect return a
2374         pixel-snapped IntRect. This is because borderBoxRect returns a rect that's positioned
2375         at (0,0), and therefore won't snap to the same size as the element it's covering.
2376
2377         There are a couple uses of borderBoxRect that don't pixel snap the values and require
2378         sub-pixel precision. This patch adds a pixelSnappedBorderBoxRect that makes the snapping
2379         explicit, and moves uses that would otherwise pixel snap the rect to this version to
2380         avoid producing a rect of the incorrect size. For details about pixel snapping with
2381         LayoutUnits, please see https://trac.webkit.org/wiki/LayoutUnit
2382
2383         No new tests. No change in behavior.
2384
2385         * html/shadow/TextControlInnerElements.cpp:
2386         (WebCore::SpinButtonElement::defaultEventHandler):
2387         * rendering/RenderBlock.cpp:
2388         (WebCore::RenderBlock::addVisualOverflowFromTheme):
2389         * rendering/RenderBox.h:
2390         (WebCore::RenderBox::borderBoxRect):
2391         (WebCore::RenderBox::pixelSnappedBorderBoxRect):
2392         (WebCore::RenderBox::borderBoundingBox):
2393         (WebCore::RenderBox::hasVisualOverflow):
2394         * rendering/RenderLayer.cpp:
2395         (WebCore::RenderLayer::scrollCornerRect):
2396         (WebCore::RenderLayer::scrollCornerAndResizerRect):
2397         (WebCore::RenderLayer::horizontalScrollbarStart):
2398         (WebCore::RenderLayer::positionOverflowControls):
2399         (WebCore::RenderLayer::paintResizer):
2400         (WebCore::RenderLayer::hitTestOverflowControls):
2401         * rendering/RenderLayerBacking.cpp:
2402         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2403         (WebCore::RenderLayerBacking::startAnimation):
2404         (WebCore::RenderLayerBacking::startTransition):
2405         * rendering/RenderTable.cpp:
2406         (WebCore::RenderTable::addOverflowFromChildren):
2407         * rendering/RenderThemeMac.mm:
2408         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
2409         (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
2410         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
2411         * rendering/svg/RenderSVGRoot.cpp:
2412         (WebCore::RenderSVGRoot::paintReplaced):
2413         (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
2414
2415 2012-04-16  Anders Carlsson  <andersca@apple.com>
2416
2417         Crash when running some editing related tests
2418         https://bugs.webkit.org/show_bug.cgi?id=84091
2419
2420         Reviewed by Andreas Kling.
2421
2422         Null check triggeringEvent.
2423
2424         * editing/Editor.cpp:
2425         (WebCore::Editor::insertTextWithoutSendingTextEvent):
2426
2427 2012-04-16  Simon Fraser  <simon.fraser@apple.com>
2428
2429         Rename to updateZOrderListsSlowCase to rebuildZOrderLists
2430         https://bugs.webkit.org/show_bug.cgi?id=84071
2431
2432         Reviewed by Antti Koivisto.
2433
2434         Use a better name for updateZOrderListsSlowCase().
2435
2436         * rendering/RenderLayer.cpp:
2437         (WebCore::RenderLayer::rebuildZOrderLists):
2438         * rendering/RenderLayer.h:
2439         (RenderLayer):
2440         (WebCore::RenderLayer::updateZOrderLists):
2441
2442 2012-04-16  Terry Anderson  <tdanderson@chromium.org>
2443
2444         [chromium] Allow WebGestureEvent to store four floating point values
2445         https://bugs.webkit.org/show_bug.cgi?id=84053
2446
2447         Reviewed by Darin Fisher.
2448
2449         See bug description for an explanation of the changes made.
2450
2451         * platform/PlatformGestureEvent.h:
2452         (WebCore::PlatformGestureEvent::PlatformGestureEvent):
2453         (PlatformGestureEvent):
2454         (WebCore::PlatformGestureEvent::gammaX):
2455         (WebCore::PlatformGestureEvent::gammaY):
2456
2457 2012-04-16  Kentaro Hara  <haraken@chromium.org>
2458
2459         [Refactoring][V8] Remove $indent from NativeToJSValue()
2460         https://bugs.webkit.org/show_bug.cgi?id=84077
2461
2462         Reviewed by Nate Chapin.
2463
2464         $indent in NativeToJSValue() in CodeGeneratorV8.pm is not used.
2465         This patch removes it.
2466
2467         No new tests. No change in behavior.
2468
2469         * bindings/scripts/CodeGeneratorV8.pm:
2470         (GenerateNormalAttrGetter):
2471         (GenerateFunctionCallString):
2472         (NativeToJSValue):
2473
2474 2012-04-16  Luiz Agostini  <luiz.agostini@palm.com>
2475
2476         matchMedia() MediaQueryList not updating
2477         https://bugs.webkit.org/show_bug.cgi?id=75903
2478
2479         Reviewed by Antti Koivisto.
2480
2481         Test: fast/media/media-query-list-08.html
2482
2483         Viewport related MediaQueryList listeners were not triggered and the value
2484         of matches were not updated if the document's style selector were not
2485         affected by viewport changes.
2486
2487         The new method evaluateMediaQueries() is now called by FrameView instead of
2488         styleSelectorChanged() if the style selector is not affected by viewport changes.
2489
2490         * dom/Document.cpp:
2491         (WebCore::Document::evaluateMediaQueries):
2492         (WebCore):
2493         (WebCore::Document::styleSelectorChanged):
2494         * dom/Document.h:
2495         (Document):
2496         * page/FrameView.cpp:
2497         (WebCore::FrameView::layout):
2498
2499 2012-04-16  James Robinson  <jamesr@chromium.org>
2500
2501         [chromium] Delete uncalled unreserveContentsTextures function
2502         https://bugs.webkit.org/show_bug.cgi?id=84005
2503
2504         Reviewed by Adrienne Walker.
2505
2506         This is vestigal dead code.
2507
2508         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
2509         * platform/graphics/chromium/Canvas2DLayerChromium.h:
2510         (Canvas2DLayerChromium):
2511         * platform/graphics/chromium/LayerChromium.h:
2512         * platform/graphics/chromium/cc/CCLayerImpl.h:
2513         (CCLayerImpl):
2514
2515 2012-04-13  Simon Fraser  <simon.fraser@apple.com>
2516
2517         Avoid using backing store for compositing layers that just need to clip
2518         https://bugs.webkit.org/show_bug.cgi?id=40547
2519
2520         Reviewed by Dean Jackson.
2521         
2522         If a layer becomes composited because it needs to clip composited
2523         descendants, or if it has perspective, then it doesn't actually
2524         needs its own backing store; its contents can be painted by an
2525         ancestor, and we can just have an empty layer that does the clipping
2526         or applies the perspective transform.
2527         
2528         This saves backing store memory on some pages.
2529
2530         Tests: compositing/backing/no-backing-for-clip-overlap.html
2531                compositing/backing/no-backing-for-clip.html
2532                compositing/backing/no-backing-for-perspective.html
2533
2534         * rendering/RenderLayer.cpp:
2535         (WebCore):
2536         (WebCore::RenderLayer::enclosingCompositingLayerForRepaint):
2537         (WebCore::RenderLayer::paintLayer):
2538         * rendering/RenderLayer.h:
2539         (RenderLayer):
2540         * rendering/RenderLayerBacking.cpp:
2541         (WebCore::RenderLayerBacking::RenderLayerBacking):
2542         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2543         (WebCore::RenderLayerBacking::containsPaintedContent):
2544         (WebCore::RenderLayerBacking::setContentsNeedDisplay):
2545         (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
2546         (WebCore::RenderLayerBacking::paintIntoLayer):
2547         * rendering/RenderLayerBacking.h:
2548         (RenderLayerBacking):
2549         (WebCore::RenderLayerBacking::paintsIntoCompositedAncestor):
2550         (WebCore::RenderLayerBacking::setRequiresOwnBackingStore):
2551         * rendering/RenderLayerCompositor.cpp:
2552         (WebCore::RenderLayerCompositor::layerWillBeRemoved):
2553         (WebCore::RenderLayerCompositor::recursiveRepaintLayerRect):
2554         (WebCore::RenderLayerCompositor::requiresCompositingLayer):
2555         (WebCore::RenderLayerCompositor::requiresOwnBackingStore):
2556         (WebCore):
2557         * rendering/RenderLayerCompositor.h:
2558         * rendering/RenderObject.cpp:
2559         (WebCore::RenderObject::containerForRepaint):
2560         * rendering/RenderTreeAsText.cpp:
2561         (WebCore::write):
2562         * rendering/RenderView.cpp:
2563         (WebCore::RenderView::paintBoxDecorations):
2564
2565 2012-04-16  Brady Eidson  <beidson@apple.com>
2566
2567         <rdar://problem/11249336> and https://bugs.webkit.org/show_bug.cgi?id=84050
2568         WebKit2 back/forward items in the page cache are never removed when the page is closed
2569
2570         Reviewed by Jessie Berlin and unofficially reviewed by Jon Lee.
2571
2572         * WebCore.exp.in: Export PageCache::remove()
2573
2574 2012-04-16  Philippe Normand  <pnormand@igalia.com>
2575
2576         Unreviewed, GTK build fix after r114269.
2577
2578         * GNUmakefile.list.am:
2579
2580 2012-04-16  Andrey Kosyakov  <caseq@chromium.org>
2581
2582         Web Inspector: timeline. Range selection works incorrect with right click
2583         https://bugs.webkit.org/show_bug.cgi?id=83870
2584
2585         Reviewed by Pavel Feldman.
2586
2587         - only start window dragging upon mousedown with left button (right will cause a context menu and we won't see mouseup)
2588
2589         * inspector/front-end/TimelineOverviewPane.js:
2590         (WebInspector.TimelineOverviewWindow.prototype._dragWindow):
2591
2592 2012-04-16  Andrey Kosyakov  <caseq@chromium.org>
2593
2594         Web Inspector: touch pad is pain to use in lower pane of Timeline panel due two two-axis scrolling
2595         https://bugs.webkit.org/show_bug.cgi?id=83946
2596
2597         Reviewed by Pavel Feldman.
2598
2599         Remove delegation of mousewheel events from lower timeline pane to the timeline overview. This disables
2600         support for moving overview window with horizontal swype over lower timeline pane, thus removing
2601         an irritating situation when we try to both change overview window and scroll lower timeline pane
2602         upon a single touchpad gesture. Those willing to move timeline window now would need to position
2603         mouse over overview.
2604
2605         * inspector/front-end/TimelineOverviewPane.js:
2606         (WebInspector.TimelineOverviewWindow.prototype._onMouseWheel):
2607         (WebInspector.TimelineOverviewWindow.prototype._zoom):
2608         * inspector/front-end/TimelinePanel.js:
2609         (WebInspector.TimelinePanel):
2610
2611 2012-04-16  Yury Semikhatsky  <yurys@chromium.org>
2612
2613         Web Inspector: rename heap profiler files and classes DetailedHeapshot* ->HeapSnapshot*
2614         https://bugs.webkit.org/show_bug.cgi?id=84038
2615
2616         A bunch of renames "detailed heapshot" -> "heap snapshot".
2617
2618         Reviewed by Pavel Feldman.
2619
2620         Tests: inspector/profiler/heap-snapshot-comparison-expansion-preserved-when-sorting.html
2621                inspector/profiler/heap-snapshot-comparison-show-all.html
2622                inspector/profiler/heap-snapshot-comparison-show-next.html
2623                inspector/profiler/heap-snapshot-comparison-shown-node-count-preserved-when-sorting.html
2624                inspector/profiler/heap-snapshot-comparison-sorting.html
2625                inspector/profiler/heap-snapshot-containment-expansion-preserved-when-sorting.html
2626                inspector/profiler/heap-snapshot-containment-show-all.html
2627                inspector/profiler/heap-snapshot-containment-show-next.html
2628                inspector/profiler/heap-snapshot-containment-shown-node-count-preserved-when-sorting.html
2629                inspector/profiler/heap-snapshot-containment-sorting.html
2630                inspector/profiler/heap-snapshot-dominators-expansion-preserved-when-sorting.html
2631                inspector/profiler/heap-snapshot-dominators-show-all.html
2632                inspector/profiler/heap-snapshot-dominators-show-next.html
2633                inspector/profiler/heap-snapshot-dominators-shown-node-count-preserved-when-sorting.html
2634                inspector/profiler/heap-snapshot-dominators-sorting.html
2635                inspector/profiler/heap-snapshot-summary-expansion-preserved-when-sorting.html
2636                inspector/profiler/heap-snapshot-summary-show-all.html
2637                inspector/profiler/heap-snapshot-summary-show-next.html
2638                inspector/profiler/heap-snapshot-summary-shown-node-count-preserved-when-sorting.html
2639                inspector/profiler/heap-snapshot-summary-sorting.html
2640
2641         * WebCore.gypi:
2642         * WebCore.vcproj/WebCore.vcproj:
2643         * inspector/compile-front-end.py:
2644         * inspector/front-end/HeapSnapshotGridNodes.js: Renamed from Source/WebCore/inspector/front-end/DetailedHeapshotGridNodes.js.
2645         (WebInspector.HeapSnapshotGridNode):
2646         (WebInspector.HeapSnapshotGridNode.prototype.ensureContentCreated):
2647         (WebInspector.HeapSnapshotGridNode.prototype.createCell):
2648         (WebInspector.HeapSnapshotGridNode.prototype.dispose):
2649         (WebInspector.HeapSnapshotGridNode.prototype.hasHoverMessage.false.queryObjectContent):
2650         (WebInspector.HeapSnapshotGridNode.prototype._toPercentString):
2651         (WebInspector.HeapSnapshotGridNode.prototype._createValueCell):
2652         (WebInspector.HeapSnapshotGridNode.prototype._populate.sorted):
2653         (WebInspector.HeapSnapshotGridNode.prototype._populate):
2654         (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.callSerialize):
2655         (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.childrenRetrieved.notify):
2656         (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.childrenRetrieved):
2657         (WebInspector.HeapSnapshotGridNode.prototype.populateChildren):
2658         (WebInspector.HeapSnapshotGridNode.prototype._saveChildren):
2659         (WebInspector.HeapSnapshotGridNode.prototype.sort.afterSort.afterPopulate):
2660         (WebInspector.HeapSnapshotGridNode.prototype.sort.afterSort):
2661         (WebInspector.HeapSnapshotGridNode.prototype.sort):
2662         (WebInspector.HeapSnapshotLazyGridNode):
2663         (WebInspector.HeapSnapshotLazyGridNode.prototype.ensureContentCreated):
2664         (WebInspector.HeapSnapshotLazyGridNode.prototype.createCells):
2665         (WebInspector.HeapSnapshotGenericObjectNode):
2666         (WebInspector.HeapSnapshotGenericObjectNode.prototype.createCell):
2667         (WebInspector.HeapSnapshotGenericObjectNode.prototype._createObjectCell):
2668         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
2669         (WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent.else.formatResult):
2670         (WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent):
2671         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get _retainedSizePercent):
2672         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get _shallowSizePercent):
2673         (WebInspector.HeapSnapshotGenericObjectNode.prototype.updateHasChildren):
2674         (WebInspector.HeapSnapshotGenericObjectNode.prototype.isWindow):
2675         (WebInspector.HeapSnapshotGenericObjectNode.prototype.shortenWindowURL):
2676         (WebInspector.HeapSnapshotObjectNode):
2677         (WebInspector.HeapSnapshotObjectNode.prototype.updateHasChildren):
2678         (WebInspector.HeapSnapshotObjectNode.prototype._createChildNode):
2679         (WebInspector.HeapSnapshotObjectNode.prototype._childHashForEntity):
2680         (WebInspector.HeapSnapshotObjectNode.prototype._childHashForNode):
2681         (WebInspector.HeapSnapshotObjectNode.prototype.comparator):
2682         (WebInspector.HeapSnapshotObjectNode.prototype._emptyData):
2683         (WebInspector.HeapSnapshotObjectNode.prototype._enhanceData):
2684         (WebInspector.HeapSnapshotObjectNode.prototype._prefixObjectCell):
2685         (WebInspector.HeapSnapshotInstanceNode):
2686         (WebInspector.HeapSnapshotInstanceNode.prototype._createChildNode):
2687         (WebInspector.HeapSnapshotInstanceNode.prototype._childHashForEntity):
2688         (WebInspector.HeapSnapshotInstanceNode.prototype._childHashForNode):
2689         (WebInspector.HeapSnapshotInstanceNode.prototype.comparator):
2690         (WebInspector.HeapSnapshotInstanceNode.prototype._emptyData):
2691         (WebInspector.HeapSnapshotInstanceNode.prototype._enhanceData):
2692         (WebInspector.HeapSnapshotInstanceNode.prototype.get isDeletedNode):
2693         (WebInspector.HeapSnapshotConstructorNode):
2694         (WebInspector.HeapSnapshotConstructorNode.prototype.createCell):
2695         (WebInspector.HeapSnapshotConstructorNode.prototype._createChildNode):
2696         (WebInspector.HeapSnapshotConstructorNode.prototype._createNodesProvider):
2697         (WebInspector.HeapSnapshotConstructorNode.prototype.comparator):
2698         (WebInspector.HeapSnapshotConstructorNode.prototype._childHashForEntity):
2699         (WebInspector.HeapSnapshotConstructorNode.prototype._childHashForNode):
2700         (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
2701         (WebInspector.HeapSnapshotConstructorNode.prototype.get _countPercent):
2702         (WebInspector.HeapSnapshotConstructorNode.prototype.get _retainedSizePercent):
2703         (WebInspector.HeapSnapshotConstructorNode.prototype.get _shallowSizePercent):
2704         (WebInspector.HeapSnapshotIteratorsTuple):
2705         (WebInspector.HeapSnapshotIteratorsTuple.prototype.dispose):
2706         (WebInspector.HeapSnapshotIteratorsTuple.prototype.sortAndRewind):
2707         (WebInspector.HeapSnapshotDiffNode):
2708         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.diffCalculated):
2709         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff):
2710         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.baseIdsReceived):
2711         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.idsReceived):
2712         (WebInspector.HeapSnapshotDiffNode.prototype._createChildNode):
2713         (WebInspector.HeapSnapshotDiffNode.prototype._createNodesProvider.createProvider):
2714         (WebInspector.HeapSnapshotDiffNode.prototype._createNodesProvider):
2715         (WebInspector.HeapSnapshotDiffNode.prototype._childHashForEntity):
2716         (WebInspector.HeapSnapshotDiffNode.prototype._childHashForNode):
2717         (WebInspector.HeapSnapshotDiffNode.prototype.comparator):
2718         (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren.firstProviderPopulated):
2719         (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren.else.firstProviderPopulated):
2720         (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren):
2721         (WebInspector.HeapSnapshotDiffNode.prototype._signForDelta):
2722         (WebInspector.HeapSnapshotDiffNode.prototype.get data):
2723         (WebInspector.HeapSnapshotDominatorObjectNode):
2724         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._createChildNode):
2725         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._createProvider):
2726         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._childHashForEntity):
2727         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._childHashForNode):
2728         (WebInspector.HeapSnapshotDominatorObjectNode.prototype.comparator):
2729         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._emptyData):
2730         (MixInSnapshotNodeFunctions):
2731         * inspector/front-end/HeapSnapshotView.js: Renamed from Source/WebCore/inspector/front-end/DetailedHeapshotView.js.
2732         (WebInspector.HeapSnapshotSortableDataGrid):
2733         (WebInspector.HeapSnapshotSortableDataGrid.prototype.dispose):
2734         (WebInspector.HeapSnapshotSortableDataGrid.prototype.resetSortingCache):
2735         (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged.SortByTwoFields):
2736         (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged):
2737         (WebInspector.HeapSnapshotSortableDataGrid.prototype.updateVisibleNodes):
2738         (WebInspector.HeapSnapshotSortableDataGrid.prototype.onResize):
2739         (WebInspector.HeapSnapshotSortableDataGrid.prototype._onScroll):
2740         (WebInspector.HeapSnapshotSortableDataGrid.prototype._performSorting):
2741         (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingEnter):
2742         (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingLeave):
2743         (WebInspector.HeapSnapshotContainmentDataGrid):
2744         (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute.nextStep.else.afterExpand):
2745         (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute):
2746         (WebInspector.HeapSnapshotContainmentDataGrid.prototype.setDataSource):
2747         (WebInspector.HeapSnapshotContainmentDataGrid.prototype.sortingChanged):
2748         (WebInspector.HeapSnapshotRetainmentDataGrid):
2749         (WebInspector.HeapSnapshotRetainmentDataGrid.prototype._sortFields):
2750         (WebInspector.HeapSnapshotRetainmentDataGrid.prototype.reset):
2751         (WebInspector.HeapSnapshotConstructorsDataGrid):
2752         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._defaultPopulateCount.100._sortFields):
2753         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.setDataSource):
2754         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.populateChildren):
2755         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._filterSelectIndexChanged):
2756         (WebInspector.HeapSnapshotDiffDataGrid):
2757         (WebInspector.HeapSnapshotDiffDataGrid.prototype._defaultPopulateCount.50._sortFields):
2758         (WebInspector.HeapSnapshotDiffDataGrid.prototype.setDataSource):
2759         (WebInspector.HeapSnapshotDiffDataGrid.prototype._baseProfileIndexChanged):
2760         (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource):
2761         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived.addNodeIfNonZeroDiff):
2762         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived):
2763         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren):
2764         (WebInspector.HeapSnapshotDominatorsDataGrid):
2765         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype._defaultPopulateCount.25.setDataSource):
2766         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.sortingChanged):
2767         (WebInspector.HeapSnapshotView.profileCallback):
2768         (WebInspector.HeapSnapshotView):
2769         (WebInspector.HeapSnapshotView.prototype.dispose):
2770         (WebInspector.HeapSnapshotView.prototype.get statusBarItems):
2771         (WebInspector.HeapSnapshotView.prototype.get profile):
2772         (WebInspector.HeapSnapshotView.prototype.get profileWrapper):
2773         (WebInspector.HeapSnapshotView.prototype.get baseProfile):
2774         (WebInspector.HeapSnapshotView.prototype.get baseProfileWrapper):
2775         (WebInspector.HeapSnapshotView.prototype.wasShown.profileCallback1):
2776         (WebInspector.HeapSnapshotView.prototype.wasShown.profileCallback2):
2777         (WebInspector.HeapSnapshotView.prototype.wasShown):
2778         (WebInspector.HeapSnapshotView.prototype.willHide):
2779         (WebInspector.HeapSnapshotView.prototype.onResize):
2780         (WebInspector.HeapSnapshotView.prototype.searchCanceled):
2781         (WebInspector.HeapSnapshotView.prototype.performSearch.matchesByName):
2782         (WebInspector.HeapSnapshotView.prototype.performSearch.matchesById):
2783         (WebInspector.HeapSnapshotView.prototype.performSearch.matchesQuery):
2784         (WebInspector.HeapSnapshotView.prototype.performSearch):
2785         (WebInspector.HeapSnapshotView.prototype.jumpToFirstSearchResult):
2786         (WebInspector.HeapSnapshotView.prototype.jumpToLastSearchResult):
2787         (WebInspector.HeapSnapshotView.prototype.jumpToNextSearchResult):
2788         (WebInspector.HeapSnapshotView.prototype.jumpToPreviousSearchResult):
2789         (WebInspector.HeapSnapshotView.prototype.showingFirstSearchResult):
2790         (WebInspector.HeapSnapshotView.prototype.showingLastSearchResult):
2791         (WebInspector.HeapSnapshotView.prototype._jumpToSearchResult):
2792         (WebInspector.HeapSnapshotView.prototype.refreshVisibleData):
2793         (WebInspector.HeapSnapshotView.prototype._changeBase):
2794         (WebInspector.HeapSnapshotView.prototype._changeFilter):
2795         (WebInspector.HeapSnapshotView.prototype._createToolbarWithClassNameFilter):
2796         (WebInspector.HeapSnapshotView.prototype._changeNameFilter):
2797         (WebInspector.HeapSnapshotView.prototype._profiles):
2798         (WebInspector.HeapSnapshotView.prototype._loadProfile):
2799         (WebInspector.HeapSnapshotView.prototype._loadProfileByIndex):
2800         (WebInspector.HeapSnapshotView.prototype.isDetailedSnapshot):
2801         (WebInspector.HeapSnapshotView.prototype.processLoadedSnapshot):
2802         (WebInspector.HeapSnapshotView.prototype._selectionChanged):
2803         (WebInspector.HeapSnapshotView.prototype._inspectedObjectChanged):
2804         (WebInspector.HeapSnapshotView.prototype._setRetainmentDataGridSource):
2805         (WebInspector.HeapSnapshotView.prototype._mouseDownInContentsGrid):
2806         (WebInspector.HeapSnapshotView.prototype.changeView.sortingComplete):
2807         (WebInspector.HeapSnapshotView.prototype.changeView):
2808         (WebInspector.HeapSnapshotView.prototype._changeView):
2809         (WebInspector.HeapSnapshotView.prototype._getHoverAnchor):
2810         (WebInspector.HeapSnapshotView.prototype._resolveObjectForPopover):
2811         (WebInspector.HeapSnapshotView.prototype._helpClicked.appendHelp):
2812         (WebInspector.HeapSnapshotView.prototype._helpClicked):
2813         (WebInspector.HeapSnapshotView.prototype._startRetainersHeaderDragging):
2814         (WebInspector.HeapSnapshotView.prototype._retainersHeaderDragging):
2815         (WebInspector.HeapSnapshotView.prototype._endRetainersHeaderDragging):
2816         (WebInspector.HeapSnapshotView.prototype._updateRetainmentViewHeight):
2817         (WebInspector.HeapSnapshotView.prototype._updateBaseOptions):
2818         (WebInspector.HeapSnapshotView.prototype._updateFilterOptions):
2819         (WebInspector.HeapSnapshotProfileType):
2820         (WebInspector.HeapSnapshotProfileType.prototype.get buttonTooltip):
2821         (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
2822         (WebInspector.HeapSnapshotProfileType.prototype.get treeItemTitle):
2823         (WebInspector.HeapSnapshotProfileType.prototype.get description):
2824         (WebInspector.HeapSnapshotProfileType.prototype.createSidebarTreeElementForProfile):
2825         (WebInspector.HeapSnapshotProfileType.prototype.createView):
2826         * inspector/front-end/ProfilesPanel.js:
2827         (WebInspector.ProfilesPanel.prototype._addHeapSnapshotChunk):
2828         (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
2829         (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress):
2830         * inspector/front-end/WebKit.qrc:
2831         * inspector/front-end/heapProfiler.css:
2832         (.heap-snapshot-view):
2833         (.heap-snapshot-view.visible):
2834         (.heap-snapshot-view .view):
2835         (.heap-snapshot-view .view.visible):
2836         (.heap-snapshot-view .data-grid tr:empty):
2837         (.heap-snapshot-view .data-grid):
2838         (.heap-snapshot-view .data-grid td.count-column):
2839         (.heap-snapshot-view .data-grid td.addedCount-column):
2840         (.heap-snapshot-view .data-grid td.removedCount-column):
2841         (.heap-snapshot-view .data-grid td.countDelta-column):
2842         (.heap-snapshot-view .data-grid td.addedSize-column):
2843         (.heap-snapshot-view .data-grid td.removedSize-column):
2844         (.heap-snapshot-view .data-grid td.sizeDelta-column):
2845         (.heap-snapshot-view .data-grid td.shallowSize-column):
2846         (.heap-snapshot-view .data-grid td.retainedSize-column):
2847         (.heap-snapshot-view .data-grid td.distanceToWindow-column):
2848         (.heap-snapshot-view .data-grid span.percent-column):
2849         (.heap-snapshot-view .console-formatted-object, .console-formatted-node):
2850         (.heap-snapshot-view .console-formatted-string):
2851         (.heap-snapshot-view .console-formatted-id):
2852         (.heap-snapshot-view .data-grid tr.selected *):
2853         (.heap-snapshot-view .data-grid:focus tr.selected *):
2854         (.heap-snapshot-view .delimiter):
2855         (.heap-snapshot-view .views-container):
2856         (.heap-snapshot-view .views-container .view):
2857         (.heap-snapshot-view .retaining-paths-view):
2858         (.heap-snapshot-view .class-view-grid):
2859         (.heap-snapshot-view .class-view-toolbar):
2860         (.heap-snapshot-view .class-view-toolbar input.class-name-filter):
2861         (.heap-snapshot-view .retainers-view-header):
2862         (.heap-snapshot-view .retainers-view-header .title > span):
2863         (.heap-snapshot-view tr:not(.selected) td.object-column span.highlight):
2864         (.heap-snapshot-view td.object-column span.grayed):
2865         (.heap-snapshot-help-status-bar-item .glyph):
2866         (table.heap-snapshot-help):
2867         * inspector/front-end/inspector.html:
2868
2869 2012-04-16  Andrey Kosyakov  <caseq@chromium.org>
2870
2871         Web Inspector: touch pad is pain to use in lower pane of Timeline panel due two two-axis scrolling
2872         https://bugs.webkit.org/show_bug.cgi?id=83946
2873
2874         Reviewed by Pavel Feldman.
2875
2876         Remove delegation of mousewheel events from lower timeline pane to the timeline overview. This disables
2877         support for moving overview window with horizontal swype over lower timeline pane, thus removing
2878         an irritating situation when we try to both change overview window and scroll lower timeline pane
2879         upon a single touchpad gesture. Those willing to move timeline window now would need to position
2880         mouse over overview.
2881
2882         * inspector/front-end/TimelineOverviewPane.js:
2883         (WebInspector.TimelineOverviewWindow.prototype._onMouseWheel):
2884         (WebInspector.TimelineOverviewWindow.prototype._zoom):
2885         * inspector/front-end/TimelinePanel.js:
2886         (WebInspector.TimelinePanel):
2887
2888 2012-04-11  Philippe Normand  <pnormand@igalia.com>
2889
2890         [GStreamer] HRTFDatabaseLoader conflicts with AudioFileReader
2891         https://bugs.webkit.org/show_bug.cgi?id=78095
2892
2893         Reviewed by Martin Robinson.
2894
2895         Moved the GStreamer initialization logic to a new
2896         GStreamerUtilities module, used by the MediaPlayer and the
2897         AudioContext. I also removed the static variables as
2898         gst_init_check already handles cases where it's called multiple
2899         times.
2900
2901         * GNUmakefile.list.am:
2902         * Modules/webaudio/AudioContext.cpp:
2903         (WebCore::AudioContext::constructCommon):
2904         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
2905         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
2906         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
2907         (WebCore::AudioFileReader::createBus):
2908         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
2909         (WTF::adoptGRef):
2910         (WTF):
2911         (WTF::GstElementFactory):
2912         * platform/graphics/gstreamer/GRefPtrGStreamer.h:
2913         (WTF):
2914         * platform/graphics/gstreamer/GStreamerUtilities.cpp: Added.
2915         (WebCore):
2916         (WebCore::initializeGStreamer):
2917         * platform/graphics/gstreamer/GStreamerUtilities.h: Added.
2918         (WebCore):
2919         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2920         (WebCore::doGstInit):
2921
2922 2012-04-16  ChangSeok Oh  <shivamidow@gmail.com>
2923
2924         Update GraphicsContext3DOpenGLES.cpp and fix some issues to build with GLES.
2925         https://bugs.webkit.org/show_bug.cgi?id=83982
2926
2927         Reviewed by Martin Robinson.
2928
2929         GL_BGRA is not defined in GLESv2, so it causes build-break at readRenderingResults.
2930         To resolve this, a helper function readPixelsAndConvertToBGRAIfNecessary is added
2931         in GC3DOpenGL.cpp & GC3DOpenGLES.cpp and it's used in GC3DOpenGLCommon.cpp.
2932         And some other issues to build with GLES are gone with this patch.
2933
2934         No new tests, since no new feature.
2935
2936         * platform/graphics/GraphicsContext3D.h:
2937         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
2938         (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
2939         (WebCore):
2940         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
2941         (WebCore::GraphicsContext3D::readRenderingResults):
2942         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
2943         (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
2944         (WebCore):
2945         (WebCore::GraphicsContext3D::reshapeFBOs):
2946         (WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary):
2947
2948 2012-04-16  Xiaomei Ji  <xji@chromium.org>
2949
2950         [chromium] wrong justification for arabic/persian page in cr-win.
2951         https://bugs.webkit.org/show_bug.cgi?id=83227
2952
2953         Reviewed by Kent Tamura.
2954
2955         Disable kashida justification if using Skia to draw.
2956
2957         Test: fast/text/international/arabic-justify.html
2958
2959         * platform/graphics/chromium/UniscribeHelper.cpp:
2960         (WebCore::UniscribeHelper::justify):
2961
2962 2012-04-16  Jia Pu  <jpu@apple.com>
2963
2964         Build fix.
2965
2966         Change set 114220 broke OS X internal build. Change set 114231 attempted to fix it, but isn't entirely
2967         correct. This patch amends change set 114231.
2968
2969         * WebCore.exp.in:
2970         * editing/DictationAlternative.cpp:
2971         (WebCore::DictationAlternative::DictationAlternative):
2972         * editing/DictationAlternative.h:
2973         (DictationAlternative):
2974
2975 2012-04-16  Antti Koivisto  <antti@apple.com>
2976
2977         REGRESSION (r104445): Style is not recomputed on serenaandlily.com
2978         https://bugs.webkit.org/show_bug.cgi?id=83663
2979
2980         Reviewed by Andreas Kling.
2981         
2982         CSS class and id selectors are case insensitive in non-strict modes. The code
2983         that invalidated the scope elements used getElementByID() which is case
2984         sensitive in all modes. As a result we would fail to invalidate elements
2985         that would match a style rule but used different case in id.
2986         
2987         The new code invalidates by crawling the DOM tree. This often (when there are classes) 
2988         actually faster than the existing code as we can now handle everything in a single pass.
2989         Each class scope required a crawl with the old code.
2990         
2991         The code uses the same functions as the selector matching code to get the same behavior.
2992         
2993         The maximum class limit is lifted as number of classes does not affect complexity anymore.
2994
2995         Test: fast/css/id-or-class-before-stylesheet-strict.html
2996
2997         * css/SelectorChecker.h:
2998         (WebCore::SelectorChecker::elementMatchesSelectorScopes):
2999         (WebCore):
3000         * dom/Document.cpp:
3001         (WebCore::Document::testAddedStylesheetRequiresStyleRecalc):
3002         (WebCore):
3003
3004 2012-04-16  Uday Kiran  <udaykiran@motorola.com>
3005
3006         CSS3 Selectors failures on css3test.com
3007         https://bugs.webkit.org/show_bug.cgi?id=83885
3008
3009         Reviewed by Zoltan Herczeg.
3010
3011         Parsing fix for CSS3 selectors :nth-child(), :nth-last-child() :nth-of-type() :nth-last-of-type()
3012         with values -n-b and n-b as they are of valid form an+b where a and b are integers.
3013         http://www.w3.org/TR/selectors/#structural-pseudos
3014
3015         Descriptors of form n-b or -n-b, where b is number, are valid CSS identifiers.
3016         However, in NthChildMode we need to check whether this identifier is a valid nth child descriptor.
3017         The original code only checked this if the string was n- or -n- but this is not enough.
3018         We need to check everything which starts with an n- or -n- prefix.
3019
3020         Test: css3/parsing-css3-nthchild.html
3021
3022         * css/CSSParser.cpp:
3023         (WebCore::CSSParser::lex):
3024
3025 2012-04-16  Eric Carlson  <eric.carlson@apple.com>
3026
3027         ASSERT in notifyChildInserted when HTMLMediaElement is removed from tree
3028         https://bugs.webkit.org/show_bug.cgi?id=83949
3029
3030         Reviewed by Antti Koivisto.
3031
3032         No new tests. I was not able to create a reproducible test case, but I have been unable
3033         to reproduce the ASSERT that occassionally fired in existing tests since I have been
3034         living on these changes.
3035
3036         * html/HTMLMediaElement.cpp:
3037         (WebCore::HTMLMediaElement::insertedIntoDocument): Call configureMediaControls.
3038         (WebCore::HTMLMediaElement::removedFromDocument): Ditto.
3039         (WebCore::HTMLMediaElement::configureMediaControls): Don't show controls when the
3040             media element is not in a Document.
3041
3042 2012-04-16  Eric Carlson  <eric.carlson@apple.com>
3043
3044         Layout Test media/track/track-delete-during-setup.html is hitting an ASSERT_NOT_REACHED
3045         https://bugs.webkit.org/show_bug.cgi?id=82269
3046
3047         Reviewed by Antti Koivisto.
3048
3049         No new tests, already tested by media/track/track-delete-during-setup.html.
3050
3051         * html/HTMLTrackElement.cpp:
3052         (WebCore::HTMLTrackElement::insertedIntoDocument): Don't notify the media element until/unless
3053         the track element is inserted into the document.
3054         * html/HTMLTrackElement.h:
3055
3056 2012-04-16  Yael Aharon  <yael.aharon@nokia.com>
3057
3058         [Qt][WK2] Fixed elements position is wrong after zooming.
3059         https://bugs.webkit.org/show_bug.cgi?id=83981
3060
3061         Reviewed by Kenneth Rohde Christiansen.
3062
3063         When setFixedVisibleContentRect is called we mark all fixed elements in the frame for layout.
3064         In order to find these elements, RenderView maintains a list of fixed elements.
3065         They are added and removed at the same time that they are added and removed from their parent RenderBlock.
3066         The idea is taken from the iOS5.1 branch, at opensource.apple.com.
3067         Added a manual test that allows removing and adding fixed elements at will.
3068
3069         * page/FrameView.cpp:
3070         (WebCore::FrameView::setFixedVisibleContentRect):
3071         * rendering/RenderBlock.cpp:
3072         (WebCore::RenderBlock::insertPositionedObject):
3073         (WebCore::RenderBlock::removePositionedObject):
3074         * rendering/RenderView.cpp:
3075         (WebCore::RenderView::setFixedPositionedObjectsNeedLayout):
3076         (WebCore):
3077         (WebCore::RenderView::insertFixedPositionedObject):
3078         (WebCore::RenderView::removeFixedPositionedObject):
3079         * rendering/RenderView.h:
3080         (RenderView):
3081
3082 2012-04-13  Pavel Feldman  <pfeldman@chromium.org>
3083
3084         Web Inspector: extract ContentProvider into its own file, make NetworkRequest, Resoruce and others implement it.
3085         https://bugs.webkit.org/show_bug.cgi?id=83922
3086
3087         Reviewed by Yury Semikhatsky.
3088
3089         We have two different types of requestContent methods: one on the source mapping level and one on the resource level.
3090         There are also adapters between the two. I'm aligning it all to a single requestContent method declared in ContentProvider.
3091
3092         * WebCore.gypi:
3093         * WebCore.vcproj/WebCore.vcproj:
3094         * inspector/compile-front-end.py:
3095         * inspector/front-end/BreakpointsSidebarPane.js:
3096         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.addBreakpoint.didRequestContent):
3097         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.addBreakpoint):
3098         * inspector/front-end/ContentProvider.js: Added.
3099         (WebInspector.ContentProvider):
3100         (WebInspector.ContentProvider.prototype.contentURL):
3101         (WebInspector.ContentProvider.prototype.requestContent):
3102         (WebInspector.ContentProvider.prototype.searchInContent):
3103         (WebInspector.ContentProvider.SearchMatch):
3104         * inspector/front-end/ContentProviders.js:
3105         (WebInspector.ScriptContentProvider.prototype.contentURL):
3106         (WebInspector.ScriptContentProvider.prototype.requestContent):
3107         (WebInspector.ConcatenatedScriptsContentProvider.prototype.contentURL):
3108         (WebInspector.ConcatenatedScriptsContentProvider.prototype.requestContent):
3109         (WebInspector.CompilerSourceMappingContentProvider.prototype.contentURL):
3110         (WebInspector.CompilerSourceMappingContentProvider.prototype.requestContent):
3111         (WebInspector.StaticContentProvider.prototype.contentURL):
3112         (WebInspector.StaticContentProvider.prototype.requestContent):
3113         * inspector/front-end/DebuggerPresentationModel.js:
3114         * inspector/front-end/ExtensionServer.js:
3115         (WebInspector.ExtensionServer.prototype._getResourceContent):
3116         * inspector/front-end/JavaScriptSourceFrame.js:
3117         (WebInspector.JavaScriptSourceFrame.prototype.requestContent):
3118         * inspector/front-end/NetworkItemView.js:
3119         (WebInspector.RequestContentView.prototype._ensureInnerViewShown.callback):
3120         (WebInspector.RequestContentView.prototype._ensureInnerViewShown):
3121         * inspector/front-end/NetworkRequest.js:
3122         (WebInspector.NetworkRequest.prototype.contentURL):
3123         (WebInspector.NetworkRequest.prototype.requestContent):
3124         (WebInspector.NetworkRequest.prototype.searchInContent):
3125         (WebInspector.NetworkRequest.prototype.populateImageSource):
3126         (WebInspector.NetworkRequest.prototype._innerRequestContent.onResourceContent):
3127         (WebInspector.NetworkRequest.prototype._innerRequestContent):
3128         * inspector/front-end/RawSourceCode.js:
3129         (WebInspector.RawSourceCode.prototype._createContentProvider):
3130         (WebInspector.RawSourceCode.prototype._createSourceMapping.didRequestContent):
3131         (WebInspector.RawSourceCode.prototype._createSourceMapping):
3132         * inspector/front-end/Resource.js:
3133         (WebInspector.Resource.prototype.contentURL):
3134         (WebInspector.Resource.prototype.requestContent):
3135         (WebInspector.Resource.prototype._innerRequestContent.callback):
3136         (WebInspector.Resource.prototype._innerRequestContent):
3137         (WebInspector.ResourceRevision.prototype.contentURL):
3138         (WebInspector.ResourceRevision.prototype.requestContent.callbackWrapper):
3139         (WebInspector.ResourceRevision.prototype.requestContent):
3140         (WebInspector.ResourceRevision.prototype.searchInContent):
3141         * inspector/front-end/ResourceView.js:
3142         (WebInspector.ResourceSourceFrame.prototype.requestContent):
3143         (WebInspector.ResourceSourceFrame.prototype._contentChanged):
3144         (WebInspector.ResourceRevisionSourceFrame.prototype.requestContent):
3145         * inspector/front-end/ScriptFormatter.js:
3146         * inspector/front-end/ScriptsPanel.js:
3147         (WebInspector.ScriptsPanel.prototype.requestVisibleScriptOutline):
3148         * inspector/front-end/SourceFrame.js:
3149         (WebInspector.SourceFrame.prototype.setContent):
3150         * inspector/front-end/UISourceCode.js:
3151         (WebInspector.UISourceCode):
3152         (WebInspector.UISourceCode.prototype.requestContent):
3153         (WebInspector.UISourceCode.prototype._didRequestContent):
3154         * inspector/front-end/WebKit.qrc:
3155         * inspector/front-end/inspector.html:
3156
3157 2012-04-16  Jason Liu  <jason.liu@torchmobile.com.cn>
3158
3159         [BlackBerry] Missing readyState 2 when a XMLHttpRequest calls xmlhttp.open("HEAD","notExist.html",true).
3160         https://bugs.webkit.org/show_bug.cgi?id=83866
3161
3162         Reviewed by George Staikos.
3163         
3164         We receive 404 for a XMLHttpRequest which calls open("HEAD", "notExist.html", true).
3165         There are no data received because its method is HEAD.
3166         This case shouldn't be treated as a failure.
3167
3168         Test: http/tests/xmlhttprequest/xmlhttprequest-check-head-readystate-for-404.html
3169
3170         * platform/network/blackberry/NetworkJob.cpp:
3171         (WebCore::NetworkJob::handleNotifyClose):
3172
3173 2012-04-16  Jon Lee  <jonlee@apple.com>
3174
3175         Build fix.
3176
3177         * WebCore.exp.in:
3178         * editing/DictationAlternative.cpp:
3179         (WebCore::DictationAlternative::DictationAlternative):
3180         * editing/DictationAlternative.h:
3181         (DictationAlternative):
3182
3183 2012-04-16  George Staikos  <staikos@webkit.org>
3184
3185         Fix signed/unsigned mismatch warning for BlackBerry debug builds.
3186         https://bugs.webkit.org/show_bug.cgi?id=80790
3187
3188         Reviewed by Rob Buis.
3189
3190         * platform/blackberry/CookieMap.cpp:
3191         (WebCore::CookieMap::removeCookieAtIndex):
3192
3193 2012-04-15  Kent Tamura  <tkent@chromium.org>
3194
3195         WebCore::weekDayShortLabels() for ICU always returns the fallback labels
3196         https://bugs.webkit.org/show_bug.cgi?id=83991
3197
3198         Reviewed by Hajime Morita.
3199
3200         We need to specfiy 1-based index to udat_getSymbols() with
3201         UDAT_SHORT_WEEKDAYS. Also, udat_countSymbols() with UDAT_SHORT_WEEKDAYS
3202         returns 8.
3203
3204         No new tests because this behavior depends on locale setting.
3205
3206         * platform/text/LocalizedCalendarICU.cpp:
3207         (WebCore::createLabelVector): Add startIndex argument.
3208         (WebCore::createMonthLabels):
3209         Pass UDAT_JANUARRY(0) as startIndex to createLabelVector().
3210         (WebCore::createWeekDayShortLabels):
3211         Pass UDAT_SUNDAY(1) as startIndex to createLabelVector().
3212
3213 2012-04-15  MORITA Hajime  <morrita@google.com>
3214
3215         Unreviewed attempt to chromium-win build fix.
3216
3217         * editing/DictationAlternative.h:
3218
3219 2012-04-15  Noel Gordon  <noel.gordon@gmail.com>
3220
3221         Align JSC/V8 bindings canvas.toDataURL() code flows
3222         https://bugs.webkit.org/show_bug.cgi?id=84003
3223
3224         Reviewed by Eric Seidel.
3225
3226         Align JSC/V8 bindings canvas.toDataURL() code flow so that the binding
3227         code implementations read alike.
3228
3229         No new tests. Covered by existing cnavas toDataURL tests.
3230
3231         * bindings/js/JSHTMLCanvasElementCustom.cpp:
3232         (WebCore::JSHTMLCanvasElement::toDataURL):
3233
3234 2012-04-15  Jia Pu  <jpu@apple.com>
3235
3236         Introducing DictationCommand.
3237         https://bugs.webkit.org/show_bug.cgi?id=83549
3238
3239         Reviewed by Hajime Morita.
3240
3241         No new tests. This patch doesn't introduce any change of new functionality. It prepares for
3242         additional changes which will inlude tests.
3243
3244         On OS X, alternative dictation results need to be stored as document markers. This patch introduces
3245         following changes to achieve this:
3246         1. Added DictationMarkDetails to store non-string type maker detail.
3247         2. Introduce DictationCommand, which is similor to TypingCommand, but allows inserting text with
3248           attached markers.
3249         3. Added Editor::insertDictatedText as interaface to WebKit and WebKit2.
3250         4. Added struct DictationAlternative to pass dictation related info from WebKit to WebCore.
3251
3252         Several fragments of code in TypingCommand can be also used by DictationCommand. So this patch
3253         introduced a new class, TextInsertionBaseCommand. It's a subclass of CompositeEditCommmand, and
3254         base class of both TypingCommand and DictationCommand.
3255
3256         This patch also extends InsertTextCommand class. Its constructor will take an TextInsertionMarkerSupplier
3257         object. After text is inserted to a node, InsertTextCommand would give marker supplier a chance to
3258         add document markers to the inserted text.
3259
3260         * CMakeLists.txt:
3261         * GNUmakefile.list.am:
3262         * Target.pri:
3263         * WebCore.exp.in:
3264         * WebCore.gypi:
3265         * WebCore.vcproj/WebCore.vcproj:
3266         * WebCore.xcodeproj/project.pbxproj:
3267         * dom/Document.cpp:
3268         (WebCore::eventTargetNodeForDocument): Moved this function from EventHandler so that it can be used
3269           by AlternativeTextController.
3270         (WebCore):
3271         * dom/Document.h:
3272         (WebCore):
3273         * dom/DocumentMarker.cpp:
3274         (WebCore::DocumentMarker::DocumentMarker): New constructor that takes a pointer to DocumentMarkerDetails object.
3275         (WebCore):
3276         * dom/DocumentMarker.h:
3277         (WebCore::DocumentMarker::AllMarkers::AllMarkers):
3278         (DocumentMarker):
3279         * dom/DocumentMarkerController.cpp:
3280         (WebCore::DocumentMarkerController::addMarker):
3281         (WebCore):
3282         * dom/DocumentMarkerController.h:
3283         (DocumentMarkerController):
3284         * dom/TextEvent.cpp:
3285         (WebCore::TextEvent::createForDictation):
3286         (WebCore):
3287         (WebCore::TextEvent::TextEvent):
3288         * dom/TextEvent.h: Added member variable for dictation alternatives.
3289         (TextEvent):
3290         (WebCore::TextEvent::isDictation):
3291         (WebCore::TextEvent::dictationAlternatives):
3292         * dom/TextEventInputType.h:
3293         * editing/AlternativeTextController.cpp:
3294         (WebCore::AlternativeTextController::AlternativeTextController):
3295         (WebCore::AlternativeTextController::insertDictatedText): Used by Editor::insertDictatedText().
3296         (WebCore):
3297         * editing/AlternativeTextController.h:
3298         (WebCore):
3299         (DictationMarkerDetails):
3300         (WebCore::DictationMarkerDetails::create):
3301         (WebCore::DictationMarkerDetails::originalText):
3302         (WebCore::DictationMarkerDetails::dictationContext):
3303         (WebCore::DictationMarkerDetails::DictationMarkerDetails):
3304         (AlternativeTextController):
3305         * editing/CompositeEditCommand.h:
3306         (WebCore::CompositeEditCommand::isDictationCommand):
3307         * editing/DictationAlternative.cpp: Added.
3308         (WebCore):
3309         (WebCore::DictationAlternative::DictationAlternative):
3310         * editing/DictationAlternative.h: Added. Data structure for passing dictation related data from WebKit to WebCore.
3311         (DictationAlternative):
3312         (WebCore):
3313         * editing/DictationCommand.cpp: Added.
3314         (WebCore):
3315         (DictationCommandLineOperation):
3316         (WebCore::DictationCommandLineOperation::DictationCommandLineOperation):
3317         (WebCore::DictationCommandLineOperation::operator()):
3318         (DictationMarkerSupplier):
3319         (WebCore::DictationMarkerSupplier::create):
3320         (WebCore::DictationMarkerSupplier::addMarkersToTextNode):
3321         (WebCore::DictationMarkerSupplier::DictationMarkerSupplier):
3322         (WebCore::DictationCommand::DictationCommand):
3323         (WebCore::DictationCommand::insertText):
3324         (WebCore::DictationCommand::doApply):
3325         (WebCore::DictationCommand::insertTextRunWithoutNewlines):
3326         (WebCore::DictationCommand::insertParagraphSeparator):
3327         (WebCore::DictationCommand::collectDictationAlternativesInRange):
3328         * editing/DictationCommand.h: Added.
3329         (WebCore):
3330         (DictationCommand):
3331         (WebCore::DictationCommand::isDictationCommand):
3332         (WebCore::DictationCommand::create):
3333         * editing/EditingAllInOne.cpp:
3334         * editing/Editor.cpp:
3335         (WebCore::Editor::insertDictatedText): Main interface that allows WebKit passes in text with attached dictation information.
3336         (WebCore):
3337         (WebCore::Editor::insertTextWithoutSendingTextEvent):
3338         (WebCore::Editor::updateMarkersForWordsAffectedByEditing):
3339         * editing/Editor.h:
3340         (Editor):
3341         * editing/InsertTextCommand.cpp:
3342         (WebCore::InsertTextCommand::InsertTextCommand):
3343         (WebCore):
3344         (WebCore::InsertTextCommand::doApply):
3345         * editing/InsertTextCommand.h:
3346         (WebCore):
3347         (TextInsertionMarkerSupplier): Interface to allow caller of InsertTextCommand to add document markers to inserted text.
3348         (WebCore::TextInsertionMarkerSupplier::~TextInsertionMarkerSupplier):
3349         (WebCore::TextInsertionMarkerSupplier::TextInsertionMarkerSupplier):
3350         (WebCore::InsertTextCommand::createWithMarkerSupplier):
3351         (InsertTextCommand):
3352         * editing/TextInsertionBaseCommand.cpp: Added. This class contains functions shared by TypingCommand and DictationCommand.
3353         (WebCore):
3354         (WebCore::TextInsertionBaseCommand::TextInsertionBaseCommand):
3355         (WebCore::TextInsertionBaseCommand::applyTextInsertionCommand):
3356         (WebCore::dispatchBeforeTextInsertedEvent):
3357         (WebCore::canAppendNewLineFeedToSelection):
3358         * editing/TextInsertionBaseCommand.h: Added.
3359         (WebCore):
3360         (TextInsertionBaseCommand):
3361         (WebCore::TextInsertionBaseCommand::~TextInsertionBaseCommand):
3362         (WebCore::forEachLineInString):
3363         * editing/TypingCommand.cpp:
3364         (TypingCommandLineOperation):
3365         (WebCore::TypingCommandLineOperation::TypingCommandLineOperation):
3366         (WebCore::TypingCommandLineOperation::operator()):
3367         (WebCore::TypingCommand::TypingCommand):
3368         (WebCore::TypingCommand::insertText):
3369         (WebCore::TypingCommand::insertLineBreak):
3370         (WebCore::TypingCommand::insertParagraphSeparator):
3371         * editing/TypingCommand.h:
3372         * page/EventHandler.cpp:
3373         * rendering/InlineTextBox.cpp:
3374         (WebCore::lineStyleForMarkerType):
3375         (WebCore::InlineTextBox::paintDocumentMarker): Renamed existing function to reflect new funcationality.
3376         (WebCore::InlineTextBox::paintDocumentMarkers):
3377         * rendering/InlineTextBox.h:
3378         (InlineTextBox):
3379         * testing/Internals.cpp:
3380         (WebCore::markerTypesFrom):
3381
3382 2012-04-15  James Robinson  <jamesr@chromium.org>
3383
3384         [chromium] LayerRendererChromium shouldn't know anything about CCLayerImpl
3385         https://bugs.webkit.org/show_bug.cgi?id=83415
3386
3387         Reviewed by Adrienne Walker.
3388
3389         This removes all knowledge of CCLayerImpl from LayerRendererChromium. The most significant move code-wise is
3390         moving the HUD up to live on CCLayerTreeHostImpl, since it's aware of the layer tree. This involves two changes.
3391         First, CCHeadsUpDisplay is in charge of populating a ManagedTexture but the actual drawing code now lives in
3392         LayerRendererChromium. Second, since we don't recreate CCLayerTreeHostImpl on a lost context, the font atlas
3393         ownership is much simpler. Now a CCFontAtlas is created on the main thread if needed and passed asynchronously
3394         to the CCHeadsUpDisplay which takes ownership of the atlas.
3395
3396         * platform/graphics/chromium/LayerRendererChromium.cpp:
3397         (WebCore::LayerRendererChromium::create):
3398         (WebCore::LayerRendererChromium::initialize):
3399         (WebCore::LayerRendererChromium::~LayerRendererChromium):
3400         (WebCore::LayerRendererChromium::beginDrawingFrame):
3401         (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
3402         (WebCore):
3403         (WebCore::LayerRendererChromium::finishDrawingFrame):
3404         (WebCore::LayerRendererChromium::swapBuffers):
3405         * platform/graphics/chromium/LayerRendererChromium.h:
3406         (LayerRendererChromiumClient):
3407         (LayerRendererChromium):
3408         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
3409         (WebCore::CCHeadsUpDisplay::CCHeadsUpDisplay):
3410         (WebCore::CCHeadsUpDisplay::setFontAtlas):
3411         (WebCore):
3412         (WebCore::CCHeadsUpDisplay::enabled):
3413         (WebCore::CCHeadsUpDisplay::showPlatformLayerTree):
3414         (WebCore::CCHeadsUpDisplay::draw):
3415         (WebCore::CCHeadsUpDisplay::drawHudContents):
3416         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
3417         (WebCore):
3418         (WebCore::CCHeadsUpDisplay::create):
3419         (CCHeadsUpDisplay):
3420         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3421         (WebCore::CCLayerTreeHost::initialize):
3422         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3423         (CCLayerTreeHost):
3424         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3425         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
3426         (WebCore::CCLayerTreeHostImpl::~CCLayerTreeHostImpl):
3427         (WebCore::CCLayerTreeHostImpl::canDraw):
3428         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
3429         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
3430         (WebCore::CCLayerTreeHostImpl::drawLayers):
3431         (WebCore::CCLayerTreeHostImpl::swapBuffers):
3432         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
3433         (WebCore::CCLayerTreeHostImpl::setFullRootLayerDamage):
3434         (WebCore::CCLayerTreeHostImpl::layerTreeAsText):
3435         (WebCore):
3436         (WebCore::CCLayerTreeHostImpl::setFontAtlas):
3437         (WebCore::CCLayerTreeHostImpl::dumpRenderSurfaces):
3438         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3439         (CCLayerTreeHostImpl):
3440         (WebCore::CCLayerTreeHostImpl::rootLayer):
3441         * platform/graphics/chromium/cc/CCProxy.h:
3442         (WebCore):
3443         (CCProxy):
3444         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
3445         (WebCore::CCSingleThreadProxy::initializeLayerRenderer):
3446         (WebCore::CCSingleThreadProxy::recreateContext):
3447         (WebCore::CCSingleThreadProxy::setFontAtlas):
3448         (WebCore):
3449         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
3450         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3451         (WebCore::CCThreadProxy::initializeLayerRendererOnImplThread):
3452         (WebCore::CCThreadProxy::setFontAtlas):