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