Unreviewed, build fix.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-09-13  Fumitoshi Ukai  <ukai@chromium.org>
2
3         Unreviewed, build fix.
4
5         CSSPropertyBorderImage was added in r94989, but not yet added in
6         WebCore::CSSStyleSelector::applyProperty
7
8         CSSStyleSelector.cpp:2481: warning: enumeration value 'CSSPropertyBorderImage' not handled in switch
9
10         * css/CSSStyleSelector.cpp:
11         (WebCore::CSSStyleSelector::applyProperty):
12
13 2011-09-12  Shinya Kawanaka  <shinyak@google.com>
14
15         Crashes in WebCore::InsertListCommand::unlistifyParagraph.
16         https://bugs.webkit.org/show_bug.cgi?id=67918
17
18         Reviewed by Ryosuke Niwa.
19
20         execCommand("InsertUnorderedList") was crashing if the parent node of the target is
21         a kind of list element and it is not contenteditable.
22         This patch checks the parent node is contenteditable.
23
24         Test: editing/execCommand/insert-list-in-noneditable-list-parent.html
25
26         * editing/htmlediting.cpp:
27         (WebCore::enclosingListChild): Checks the parent node is contenteditable.
28
29 2011-09-12  Sheriff Bot  <webkit.review.bot@gmail.com>
30
31         Unreviewed, rolling out r94975.
32         http://trac.webkit.org/changeset/94975
33         https://bugs.webkit.org/show_bug.cgi?id=67984
34
35         crash in PrerenderBrowserTest.PrerenderHTML5VideoJs (Requested
36         by ukai on #webkit).
37
38         * platform/graphics/chromium/CanvasLayerChromium.h:
39         (WebCore::CanvasLayerChromium::layerTypeAsString):
40         * platform/graphics/chromium/ContentLayerChromium.h:
41         (WebCore::ContentLayerChromium::layerTypeAsString):
42         * platform/graphics/chromium/ImageLayerChromium.h:
43         (WebCore::ImageLayerChromium::layerTypeAsString):
44         * platform/graphics/chromium/LayerChromium.cpp:
45         (WebCore::LayerChromium::layerTreeAsText):
46         (WebCore::writeIndent):
47         (WebCore::LayerChromium::dumpLayer):
48         (WebCore::LayerChromium::dumpLayerProperties):
49         * platform/graphics/chromium/LayerChromium.h:
50         (WebCore::LayerChromium::layerTypeAsString):
51         * platform/graphics/chromium/LayerRendererChromium.cpp:
52         (WebCore::LayerRendererChromium::textureMemoryReclaimLimit):
53         (WebCore::LayerRendererChromium::create):
54         (WebCore::LayerRendererChromium::LayerRendererChromium):
55         (WebCore::LayerRendererChromium::close):
56         (WebCore::LayerRendererChromium::releaseTextures):
57         (WebCore::LayerRendererChromium::drawLayers):
58         (WebCore::LayerRendererChromium::drawLayersInternal):
59         (WebCore::LayerRendererChromium::getOffscreenLayerTexture):
60         (WebCore::LayerRendererChromium::initializeSharedObjects):
61         (WebCore::LayerRendererChromium::cleanupSharedObjects):
62         (WebCore::LayerRendererChromium::layerTreeAsText):
63         (WebCore::LayerRendererChromium::dumpRenderSurfaces):
64         * platform/graphics/chromium/LayerRendererChromium.h:
65         (WebCore::LayerRendererChromium::owner):
66         (WebCore::LayerRendererChromium::rootLayer):
67         (WebCore::LayerRendererChromium::rootLayerImpl):
68         (WebCore::LayerRendererChromium::viewportSize):
69         (WebCore::LayerRendererChromium::contentsTextureManager):
70         * platform/graphics/chromium/ManagedTexture.cpp:
71         (WebCore::ManagedTexture::bindTexture):
72         (WebCore::ManagedTexture::framebufferTexture2D):
73         * platform/graphics/chromium/PluginLayerChromium.h:
74         (WebCore::PluginLayerChromium::layerTypeAsString):
75         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
76         (WebCore::RenderSurfaceChromium::name):
77         (WebCore::writeIndent):
78         (WebCore::RenderSurfaceChromium::dumpSurface):
79         * platform/graphics/chromium/RenderSurfaceChromium.h:
80         * platform/graphics/chromium/TextureManager.cpp:
81         (WebCore::TextureManager::deleteEvictedTextures):
82         (WebCore::TextureManager::removeTexture):
83         (WebCore::TextureManager::allocateTexture):
84         (WebCore::TextureManager::requestTexture):
85         * platform/graphics/chromium/TextureManager.h:
86         (WebCore::TextureManager::setAssociatedContextDebugOnly):
87         (WebCore::TextureManager::associatedContextDebugOnly):
88         * platform/graphics/chromium/TiledLayerChromium.cpp:
89         (WebCore::writeIndent):
90         (WebCore::TiledLayerChromium::dumpLayerProperties):
91         * platform/graphics/chromium/TiledLayerChromium.h:
92         * platform/graphics/chromium/VideoLayerChromium.h:
93         (WebCore::VideoLayerChromium::layerTypeAsString):
94         * platform/graphics/chromium/WebGLLayerChromium.h:
95         (WebCore::WebGLLayerChromium::layerTypeAsString):
96         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
97         * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
98         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
99         * platform/graphics/chromium/cc/CCLayerImpl.h:
100         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
101         (WebCore::CCLayerTreeHost::initialize):
102         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
103         (WebCore::CCLayerTreeHost::commitTo):
104         (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
105         (WebCore::CCLayerTreeHost::setVisible):
106         (WebCore::CCLayerTreeHost::contentsTextureManager):
107         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
108         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
109         (WebCore::CCLayerTreeHostImpl::drawLayers):
110         (WebCore::CCLayerTreeHostImpl::setVisible):
111         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
112         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
113         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
114         * platform/graphics/chromium/cc/CCPluginLayerImpl.h:
115         * platform/graphics/chromium/cc/CCProxy.h:
116         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
117         (WebCore::CCSingleThreadProxy::initializeLayerRenderer):
118         (WebCore::CCSingleThreadProxy::stop):
119         (WebCore::CCSingleThreadProxy::contentsTextureManager):
120         (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
121         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
122         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
123         (WebCore::CCThreadProxy::initializeLayerRenderer):
124         (WebCore::CCThreadProxy::contentsTextureManager):
125         (WebCore::CCThreadProxy::initializeLayerRendererOnCCThread):
126         (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
127         * platform/graphics/chromium/cc/CCThreadProxy.h:
128         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
129         (WebCore::CCTiledLayerImpl::dumpLayerProperties):
130         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
131         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
132         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
133
134 2011-09-12  Joseph Pecoraro  <joepeck@webkit.org>
135
136         Possible ASSERT(!storageTracker) in Lazily Initialized StorageTracker
137         https://bugs.webkit.org/show_bug.cgi?id=67957
138
139         Reviewed by Darin Adler.
140
141         The storageTracker singleton may already have been created
142         through StorageTracker::tracker before initializeTracker
143         gets called. Update the ASSERT in this case to check that
144         there is no client for the tracker.
145
146         No test, this depends on how the port initializes the tracker.
147
148         * storage/StorageTracker.cpp:
149         (WebCore::StorageTracker::initializeTracker):
150
151 2011-09-12  Adam Klein  <adamk@chromium.org>
152
153         Fix out-of-bounds access in Gradient::sortStopsIfNecessary
154         https://bugs.webkit.org/show_bug.cgi?id=67958
155
156         Reviewed by Darin Adler.
157
158         Reported by Valgrind in http://crbug.com/77049.
159
160         The errant code was added as an optimization in r67804.
161         This patch reverts that one, as all parties agree that the optimization
162         doesn't seem worthwhile, and there clearly aren't any tests covering
163         the special case.
164
165         No new tests, as existing tests should cover the remaining call to
166         |std::stable_sort|.
167
168         * platform/graphics/Gradient.cpp:
169         (WebCore::Gradient::sortStopsIfNecessary):
170
171 2011-09-12  Jacky Jiang  <zhajiang@rim.com>
172
173         Setting document.title doesn't affect contents of title tag of XHTML documents
174         https://bugs.webkit.org/show_bug.cgi?id=57537
175
176         Reviewed by Alexey Proskuryakov.
177
178         Update the contents of the <title> tag of XHTML documents when setting
179         document.title.
180
181         Test: fast/dom/title-content-set-innerText-get.xhtml
182
183         * dom/Document.cpp:
184         (WebCore::Document::setTitle):
185
186 2011-09-12  Raphael Kubo da Costa  <kubo@profusion.mobi>
187
188         [EFL] Initialize m_unmodifiedText in PlatformKeyboardEventEfl.
189         https://bugs.webkit.org/show_bug.cgi?id=67038
190
191         Reviewed by Kenneth Rohde Christiansen.
192
193         Since most of the time it will return the same thing as text(), we
194         initialize it the same way we initialize m_text. The other case (what
195         would have been generated if no modifiers were pressed) should be
196         covered by this as well.
197
198         As this method is used when handling access keys, tests such as
199         fast/events/access-key-self-destruct.html should now pass.
200
201         No new tests, as this fixes a problem uncovered by the existing ones.
202
203         * platform/efl/PlatformKeyboardEventEfl.cpp:
204         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
205
206 2011-09-12  Hyowon Kim  <hw1008.kim@samsung.com>
207
208         Reviewed by Eric Seidel.
209
210         [EFL] Add GraphicsContext3DEfl for WebGL and accelerated compositing
211         https://bugs.webkit.org/show_bug.cgi?id=62709
212
213         Add GraphicsContext3D implementation for EFL port.
214         GraphicsContext3D delegates to GraphicsContext3DInternal.
215
216         * platform/graphics/efl/GraphicsContext3DEfl.cpp: Added.
217         (WebCore::GraphicsContext3D::create):
218         (WebCore::GraphicsContext3D::GraphicsContext3D):
219         (WebCore::GraphicsContext3D::~GraphicsContext3D):
220         (WebCore::GraphicsContext3D::platformGraphicsContext3D):
221         (WebCore::GraphicsContext3D::platformLayer):
222         (WebCore::GraphicsContext3D::makeContextCurrent):
223         (WebCore::GraphicsContext3D::isGLES2Compliant):
224         (WebCore::GraphicsContext3D::activeTexture):
225         (WebCore::GraphicsContext3D::attachShader):
226         (WebCore::GraphicsContext3D::bindAttribLocation):
227         (WebCore::GraphicsContext3D::bindBuffer):
228         (WebCore::GraphicsContext3D::bindFramebuffer):
229         (WebCore::GraphicsContext3D::bindRenderbuffer):
230         (WebCore::GraphicsContext3D::bindTexture):
231         (WebCore::GraphicsContext3D::blendColor):
232         (WebCore::GraphicsContext3D::blendEquation):
233         (WebCore::GraphicsContext3D::blendEquationSeparate):
234         (WebCore::GraphicsContext3D::blendFunc):
235         (WebCore::GraphicsContext3D::blendFuncSeparate):
236         (WebCore::GraphicsContext3D::bufferData):
237         (WebCore::GraphicsContext3D::bufferSubData):
238         (WebCore::GraphicsContext3D::checkFramebufferStatus):
239         (WebCore::GraphicsContext3D::clear):
240         (WebCore::GraphicsContext3D::clearColor):
241         (WebCore::GraphicsContext3D::clearDepth):
242         (WebCore::GraphicsContext3D::clearStencil):
243         (WebCore::GraphicsContext3D::colorMask):
244         (WebCore::GraphicsContext3D::compileShader):
245         (WebCore::GraphicsContext3D::copyTexImage2D):
246         (WebCore::GraphicsContext3D::copyTexSubImage2D):
247         (WebCore::GraphicsContext3D::cullFace):
248         (WebCore::GraphicsContext3D::depthFunc):
249         (WebCore::GraphicsContext3D::depthMask):
250         (WebCore::GraphicsContext3D::depthRange):
251         (WebCore::GraphicsContext3D::detachShader):
252         (WebCore::GraphicsContext3D::disable):
253         (WebCore::GraphicsContext3D::disableVertexAttribArray):
254         (WebCore::GraphicsContext3D::drawArrays):
255         (WebCore::GraphicsContext3D::drawElements):
256         (WebCore::GraphicsContext3D::enable):
257         (WebCore::GraphicsContext3D::enableVertexAttribArray):
258         (WebCore::GraphicsContext3D::finish):
259         (WebCore::GraphicsContext3D::flush):
260         (WebCore::GraphicsContext3D::framebufferRenderbuffer):
261         (WebCore::GraphicsContext3D::framebufferTexture2D):
262         (WebCore::GraphicsContext3D::frontFace):
263         (WebCore::GraphicsContext3D::generateMipmap):
264         (WebCore::GraphicsContext3D::getActiveAttrib):
265         (WebCore::GraphicsContext3D::getActiveUniform):
266         (WebCore::GraphicsContext3D::getAttachedShaders):
267         (WebCore::GraphicsContext3D::getAttribLocation):
268         (WebCore::GraphicsContext3D::getBooleanv):
269         (WebCore::GraphicsContext3D::getBufferParameteriv):
270         (WebCore::GraphicsContext3D::getContextAttributes):
271         (WebCore::GraphicsContext3D::getError):
272         (WebCore::GraphicsContext3D::getFloatv):
273         (WebCore::GraphicsContext3D::getFramebufferAttachmentParameteriv):
274         (WebCore::GraphicsContext3D::getIntegerv):
275         (WebCore::GraphicsContext3D::getProgramiv):
276         (WebCore::GraphicsContext3D::getProgramInfoLog):
277         (WebCore::GraphicsContext3D::getRenderbufferParameteriv):
278         (WebCore::GraphicsContext3D::getShaderiv):
279         (WebCore::GraphicsContext3D::getShaderInfoLog):
280         (WebCore::GraphicsContext3D::getShaderSource):
281         (WebCore::GraphicsContext3D::getString):
282         (WebCore::GraphicsContext3D::getTexParameterfv):
283         (WebCore::GraphicsContext3D::getTexParameteriv):
284         (WebCore::GraphicsContext3D::getUniformfv):
285         (WebCore::GraphicsContext3D::getUniformiv):
286         (WebCore::GraphicsContext3D::getUniformLocation):
287         (WebCore::GraphicsContext3D::getVertexAttribfv):
288         (WebCore::GraphicsContext3D::getVertexAttribiv):
289         (WebCore::GraphicsContext3D::getVertexAttribOffset):
290         (WebCore::GraphicsContext3D::hint):
291         (WebCore::GraphicsContext3D::isBuffer):
292         (WebCore::GraphicsContext3D::isEnabled):
293         (WebCore::GraphicsContext3D::isFramebuffer):
294         (WebCore::GraphicsContext3D::isProgram):
295         (WebCore::GraphicsContext3D::isRenderbuffer):
296         (WebCore::GraphicsContext3D::isShader):
297         (WebCore::GraphicsContext3D::isTexture):
298         (WebCore::GraphicsContext3D::lineWidth):
299         (WebCore::GraphicsContext3D::linkProgram):
300         (WebCore::GraphicsContext3D::pixelStorei):
301         (WebCore::GraphicsContext3D::polygonOffset):
302         (WebCore::GraphicsContext3D::readPixels):
303         (WebCore::GraphicsContext3D::releaseShaderCompiler):
304         (WebCore::GraphicsContext3D::renderbufferStorage):
305         (WebCore::GraphicsContext3D::sampleCoverage):
306         (WebCore::GraphicsContext3D::scissor):
307         (WebCore::GraphicsContext3D::shaderSource):
308         (WebCore::GraphicsContext3D::stencilFunc):
309         (WebCore::GraphicsContext3D::stencilFuncSeparate):
310         (WebCore::GraphicsContext3D::stencilMask):
311         (WebCore::GraphicsContext3D::stencilMaskSeparate):
312         (WebCore::GraphicsContext3D::stencilOp):
313         (WebCore::GraphicsContext3D::stencilOpSeparate):
314         (WebCore::GraphicsContext3D::texImage2D):
315         (WebCore::GraphicsContext3D::texParameterf):
316         (WebCore::GraphicsContext3D::texParameteri):
317         (WebCore::GraphicsContext3D::texSubImage2D):
318         (WebCore::GraphicsContext3D::uniform1f):
319         (WebCore::GraphicsContext3D::uniform1fv):
320         (WebCore::GraphicsContext3D::uniform1i):
321         (WebCore::GraphicsContext3D::uniform1iv):
322         (WebCore::GraphicsContext3D::uniform2f):
323         (WebCore::GraphicsContext3D::uniform2fv):
324         (WebCore::GraphicsContext3D::uniform2i):
325         (WebCore::GraphicsContext3D::uniform2iv):
326         (WebCore::GraphicsContext3D::uniform3f):
327         (WebCore::GraphicsContext3D::uniform3fv):
328         (WebCore::GraphicsContext3D::uniform3i):
329         (WebCore::GraphicsContext3D::uniform3iv):
330         (WebCore::GraphicsContext3D::uniform4f):
331         (WebCore::GraphicsContext3D::uniform4fv):
332         (WebCore::GraphicsContext3D::uniform4i):
333         (WebCore::GraphicsContext3D::uniform4iv):
334         (WebCore::GraphicsContext3D::uniformMatrix2fv):
335         (WebCore::GraphicsContext3D::uniformMatrix3fv):
336         (WebCore::GraphicsContext3D::uniformMatrix4fv):
337         (WebCore::GraphicsContext3D::useProgram):
338         (WebCore::GraphicsContext3D::validateProgram):
339         (WebCore::GraphicsContext3D::vertexAttrib1f):
340         (WebCore::GraphicsContext3D::vertexAttrib1fv):
341         (WebCore::GraphicsContext3D::vertexAttrib2f):
342         (WebCore::GraphicsContext3D::vertexAttrib2fv):
343         (WebCore::GraphicsContext3D::vertexAttrib3f):
344         (WebCore::GraphicsContext3D::vertexAttrib3fv):
345         (WebCore::GraphicsContext3D::vertexAttrib4f):
346         (WebCore::GraphicsContext3D::vertexAttrib4fv):
347         (WebCore::GraphicsContext3D::vertexAttribPointer):
348         (WebCore::GraphicsContext3D::viewport):
349         (WebCore::GraphicsContext3D::reshape):
350         (WebCore::GraphicsContext3D::markContextChanged):
351         (WebCore::GraphicsContext3D::markLayerComposited):
352         (WebCore::GraphicsContext3D::layerComposited):
353         (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
354         (WebCore::GraphicsContext3D::paintRenderingResultsToImageData):
355         (WebCore::GraphicsContext3D::createBuffer):
356         (WebCore::GraphicsContext3D::createFramebuffer):
357         (WebCore::GraphicsContext3D::createProgram):
358         (WebCore::GraphicsContext3D::createRenderbuffer):
359         (WebCore::GraphicsContext3D::createShader):
360         (WebCore::GraphicsContext3D::createTexture):
361         (WebCore::GraphicsContext3D::deleteBuffer):
362         (WebCore::GraphicsContext3D::deleteFramebuffer):
363         (WebCore::GraphicsContext3D::deleteProgram):
364         (WebCore::GraphicsContext3D::deleteRenderbuffer):
365         (WebCore::GraphicsContext3D::deleteShader):
366         (WebCore::GraphicsContext3D::deleteTexture):
367         (WebCore::GraphicsContext3D::synthesizeGLError):
368         (WebCore::GraphicsContext3D::getExtensions):
369         (WebCore::GraphicsContext3D::getInternalFramebufferSize):
370         (WebCore::GraphicsContext3D::setContextLostCallback):
371         (WebCore::GraphicsContext3D::getImageData):
372
373 2011-09-12  Hyowon Kim  <hw1008.kim@samsung.com>
374
375         Reviewed by Eric Seidel.
376
377         [CMAKE] Remove platform/graphics/opengl/*OpenGL.cpp files in CMakeLists.txt
378         https://bugs.webkit.org/show_bug.cgi?id=62707
379
380         No change in fuctionality so no new tests.
381
382         Bug 62376 makes all ports use GraphicsContext3DOpenGL and
383         Extensions3DOpenGL when enabling WebGL.
384         However, some ports already have their own GC3D implementation.
385         In QT and chromium, for example, GC3D delegates to GC3DInternal.
386         So, it would be better to allow each port to decide whether or not
387         to include files in platform/graphics/opengl. 
388
389         * CMakeLists.txt:
390
391 2011-09-12  Dan Bernstein  <mitz@apple.com>
392
393         <rdar://problem/10054615> Floats in ruby text intrude into the base
394
395         Reviewed by Darin Adler.
396
397         Test: fast/ruby/float-overhang-from-ruby-text.html
398
399         * rendering/RenderRubyText.cpp:
400         (WebCore::RenderRubyText::avoidsFloats): Added. Returns true. This ensures that
401         RenderBlock::clearFloats() will not consider ruby text as having intruding floats.
402         * rendering/RenderRubyText.h:
403
404 2011-09-12  David Hyatt  <hyatt@apple.com>
405
406         https://bugs.webkit.org/show_bug.cgi?id=67970
407
408         Add unprefixed border-image property.
409
410         Reviewed by Beth Dakin.
411
412         * css/CSSComputedStyleDeclaration.cpp:
413         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
414         * css/CSSParser.cpp:
415         (WebCore::CSSParser::parseValue):
416         * css/CSSPropertyNames.in:
417
418 2011-09-12  Ryosuke Niwa  <rniwa@webkit.org>
419
420         REGRESSION: Moving up doesn't work in some cases
421         https://bugs.webkit.org/show_bug.cgi?id=67522
422
423         Reviewed by Eric Seidel.
424
425         The bug was caused by previousLinePosition's attempting to obtain the last root line box using
426         a position at minCaretOffset (which is, in practice, located at the beginning of wrapped lines).
427
428         Fix the bug by calling maxCaretOffset instead. Because isCandidate returns false at (br, 1),
429         use the positionBeforeNode for br elements.
430
431         Test: editing/selection/move-up-into-wrapped-line.html
432
433         * editing/visible_units.cpp:
434         (WebCore::previousLinePosition):
435
436 2011-09-12  David Levin  <levin@chromium.org>
437
438         Make the ThreadSafeRefCounted support in CrossThreadCopier work for T*.
439         https://bugs.webkit.org/show_bug.cgi?id=67947
440
441         Reviewed by Adam Barth.
442
443         The changes are tested by compiling and added compile asserts to do some verification as well.
444
445         * platform/CrossThreadCopier.cpp:
446         Added some compile asserts to verify various match and non-matches for CrossThreadCopier.
447         * platform/CrossThreadCopier.h:
448         Added a typedef to convert T* to T, just like the typedef's to remove RefPtr and PassRefPtr.
449         Added a compile assert to verify that only one of the typedef did anything.
450         (CrossThreadCopierBase<false, true, T>::copy): Remove "get" as it is unnecessary.
451         It shouldn't have been here (PassRefPtr and RefPtr easily and sometimes more efficiently
452         convert to PassRefPtr without get). Also, a raw pointer doesn't have a get() method.
453
454 2011-09-12  Chris Rogers  <crogers@google.com>
455
456         Address lifetime issues in OfflineAudioDestinationNode
457         https://bugs.webkit.org/show_bug.cgi?id=67949
458
459         Reviewed by Kenneth Russell.
460
461         No new tests.  This does not change JavaScript API.
462
463         * webaudio/OfflineAudioDestinationNode.cpp:
464         (WebCore::OfflineAudioDestinationNode::~OfflineAudioDestinationNode):
465         (WebCore::OfflineAudioDestinationNode::render):
466         (WebCore::OfflineAudioDestinationNode::notifyCompleteDispatch):
467
468 2011-09-12  Jeff Timanus  <twiz@chromium.org>
469
470         [chromium]  Prevent a crash when tearing down an ImageBuffer that was not successfully initialized.
471         https://bugs.webkit.org/show_bug.cgi?id=67944
472
473         Reviewed by Stephen White.
474         
475         * platform/graphics/skia/ImageBufferSkia.cpp:
476         (WebCore::ImageBuffer::~ImageBuffer):
477
478 2011-09-12  Michael Saboff  <msaboff@apple.com>
479
480         Update RegExp and related classes to use 8 bit strings when available
481         https://bugs.webkit.org/show_bug.cgi?id=67337
482
483         Updated call to match to use UString& instead of UChar*.
484
485         Reviewed by Gavin Barraclough.
486
487         No new tests, Covered by existing tests.
488
489         * platform/text/RegularExpression.cpp:
490         (WebCore::RegularExpression::match):
491
492 2011-09-12  Beth Dakin  <bdakin@apple.com>
493
494         https://bugs.webkit.org/show_bug.cgi?id=67898
495         REGRESSION(r94900): fast/images/support-broken-image-delegate.html fails on Mac
496
497         Reviewed by Simon Fraser.
498
499         New function willPaintBrokenImage() returns true when there has been an error 
500         loading the image and the broken image icon will be used in its place. This is 
501         necessary since it is possible to have an error loading an image and to NOT use 
502         the broken image icon. 
503         * loader/cache/CachedImage.cpp:
504         (WebCore::CachedImage::willPaintBrokenImage):
505         * loader/cache/CachedImage.h:
506         * rendering/RenderImage.cpp:
507         (WebCore::RenderImage::imageSizeForError):
508
509 2011-09-12  James Robinson  <jamesr@chromium.org>
510
511         [chromium] Move contents texture manager from LayerRendererChromium to CCLayerTreeHost
512         https://bugs.webkit.org/show_bug.cgi?id=67440
513
514         Reviewed by Kenneth Russell.
515
516         This moves the contents TextureManager over to the CCLayerTreeHost, where it belongs, and adds in a commit path
517         to make sure that textures are deleted even if the page is not visible.  This move also removed the need for
518         LayerRendererChromium's CCLayerTreeHost pointer, so I removed that as well.  That meant moving the
519         layerTreeAsText() logic over to the CCLayerImpl side, which is where it really belonged anyway.
520
521         Covered by existing compositing/ tests and
522         platform/chromium/compositor/lost-compositor-context-with-rendersurface.html
523
524         * platform/graphics/chromium/LayerRendererChromium.cpp:
525         (WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
526         (WebCore::LayerRendererChromium::drawLayers):
527         (WebCore::LayerRendererChromium::initializeSharedObjects):
528         (WebCore::LayerRendererChromium::cleanupSharedObjects):
529         * platform/graphics/chromium/LayerRendererChromium.h:
530         (WebCore::LayerRendererChromium::setContentsTextureMemoryUseBytes):
531         * platform/graphics/chromium/TextureManager.cpp:
532         (WebCore::TextureManager::highLimitBytes):
533         (WebCore::TextureManager::reclaimLimitBytes):
534         (WebCore::TextureManager::lowLimitBytes):
535         * platform/graphics/chromium/TextureManager.h:
536         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
537         (WebCore::CCLayerTreeHost::initialize):
538         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
539         (WebCore::CCLayerTreeHost::deleteContentsTextures):
540         (WebCore::CCLayerTreeHost::commitTo):
541         (WebCore::CCLayerTreeHost::setVisible):
542         (WebCore::CCLayerTreeHost::contentsTextureManager):
543         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
544         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
545         (WebCore::CCLayerTreeHostImpl::setVisible):
546         * platform/graphics/chromium/cc/CCProxy.h:
547         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
548         (WebCore::CCSingleThreadProxy::setNeedsCommit):
549         (WebCore::CCSingleThreadProxy::stop):
550         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
551         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
552         (WebCore::CCThreadProxy::setNeedsCommit):
553         (WebCore::CCThreadProxy::setNeedsCommitOnCCThread):
554         (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
555         * platform/graphics/chromium/cc/CCThreadProxy.h:
556
557 2011-09-12  Chris Rogers  <crogers@google.com>
558
559         DelayNode delay buffer is not correctly wrapping around
560         https://bugs.webkit.org/show_bug.cgi?id=67872
561
562         Reviewed by Kenneth Russell.
563
564         Test: webaudio/delaynode.html
565
566         * webaudio/DelayDSPKernel.cpp:
567         (WebCore::DelayDSPKernel::process):
568
569 2011-09-12  Arko Saha  <arko@motorola.com>
570
571         Selectstart is not fired when selection was created by arrow keys.
572         https://bugs.webkit.org/show_bug.cgi?id=60430
573
574         Reviewed by Ryosuke Niwa.
575
576         Fire selectstart when a user starts extending the selection using arrow key.
577         Fixed by Arko Saha  <arko@motorola.com> and Kaustubh Atrawalkar  <kaustubh@motorola.com>
578
579         Tests: fast/events/selectstart-by-arrow-keys-prevent-default.html
580                fast/events/selectstart-by-arrow-keys.html
581
582         * editing/FrameSelection.cpp:
583         (WebCore::FrameSelection::modify):
584         (WebCore::FrameSelection::shouldChangeSelection):
585         (WebCore::FrameSelection::dispatchSelectStart):
586         * editing/FrameSelection.h:
587
588 2011-09-12  James Robinson  <jamesr@chromium.org>
589
590         [chromium] REGRESSION(94353): Compositor textures and resources leaked when tab closed that is not last tab in the process
591         https://bugs.webkit.org/show_bug.cgi?id=67816
592
593         Reviewed by Kenneth Russell.
594
595         We lack infrastructure to construct an automated test for this today. To test manually, open up a composited
596         page (like the poster circle), duplicate the tab many times, close all the duplicates, and verify that the
597         memory use returns to the single tab level.
598
599         * platform/graphics/chromium/LayerChromium.h:
600         * platform/graphics/chromium/TiledLayerChromium.cpp:
601         (WebCore::TiledLayerChromium::setLayerTreeHost):
602         * platform/graphics/chromium/VideoLayerChromium.cpp:
603         (WebCore::VideoLayerChromium::setLayerTreeHost):
604         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
605         (WebCore::CCLayerTreeHost::clearRenderSurfacesRecursive):
606         (WebCore::CCLayerTreeHost::setRootLayer):
607         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
608
609 2011-09-12  Kentaro Hara  <haraken@google.com>
610
611         Implement a HashChangeEvent constructor for JSC
612         https://bugs.webkit.org/show_bug.cgi?id=67924
613
614         Reviewed by Sam Weinig.
615
616         The spec for the HashChangeEvent constructor is here:
617         http://www.whatwg.org/specs/web-apps/current-work/#hashchangeevent
618
619         Test: fast/events/constructors/hash-change-event-constructor.html
620
621         * bindings/generic/EventConstructors.h: Added a definition for the HashChangeEvent constructor.
622         * bindings/js/JSEventConstructors.cpp: Added #includes for HashChangeEvent.
623         * dom/HashChangeEvent.h: Added a definition for HashChangeEventInit.
624         (WebCore::HashChangeEventInit::HashChangeEventInit):
625         (WebCore::HashChangeEvent::create):
626         (WebCore::HashChangeEvent::HashChangeEvent):
627         * dom/HashChangeEvent.idl: Makes HashChangeEvent constructible.
628
629 2011-09-12  Mike Reed  <reed@google.com>
630
631         [skia] remove dead code, no functionality change
632         https://bugs.webkit.org/show_bug.cgi?id=67844
633
634         Reviewed by Kenneth Russell.
635
636         No new tests. just removing dead-code, existing tests apply
637
638         * platform/graphics/chromium/FontChromiumWin.cpp:
639         (WebCore::Font::drawGlyphs):
640
641 2011-09-12  Pavel Feldman  <pfeldman@google.com>
642
643         Web Inspector: Runtime.callFunctionOn does not accept arguments that evaluate to false.
644         https://bugs.webkit.org/show_bug.cgi?id=67934
645
646         Reviewed by Tony Gentilcore.
647
648         * inspector/InjectedScriptSource.js:
649
650 2011-09-12  Pavel Feldman  <pfeldman@google.com>
651
652         Web Inspector: event dividers do not update timeline boundaries.
653         https://bugs.webkit.org/show_bug.cgi?id=67932
654
655         * inspector/front-end/NetworkPanel.js:
656         (WebInspector.NetworkLogView.prototype._onLoadEventFired):
657         (WebInspector.NetworkLogView.prototype._domContentLoadedEventFired):
658         (WebInspector.NetworkLogView.prototype.refresh):
659         (WebInspector.NetworkTimeCalculator.prototype.updateBoundariesForEventTime):
660
661 2011-09-12  Kentaro Hara  <haraken@google.com>
662
663         Implement a WebKitAnimationEvent constructor for V8
664         https://bugs.webkit.org/show_bug.cgi?id=67922
665
666         Reviewed by Adam Barth.
667
668         Test: fast/events/constructors/webkit-animation-event-constructor.html
669
670         * bindings/v8/custom/V8EventConstructors.cpp: Added the WebKitAnimationEvent constructor.
671         * dom/WebKitAnimationEvent.idl: Added a 'V8CustomConstructor' attribute.
672
673 2011-09-12  Andreas Kling  <kling@webkit.org>
674
675         Shrink CanvasGradient for builds without ENABLE(DASHBOARD_SUPPORT).
676         https://bugs.webkit.org/show_bug.cgi?id=67916
677
678         Reviewed by Kenneth Rohde Christiansen.
679
680         * html/canvas/CanvasGradient.cpp:
681         (WebCore::CanvasGradient::CanvasGradient):
682         (WebCore::CanvasGradient::addColorStop):
683         * html/canvas/CanvasGradient.h:
684
685 2011-09-12  Shinya Kawanaka  <shinyak@google.com>
686
687         Characters beyond U+10000 should be deleted by one pressing delete key.
688         https://bugs.webkit.org/show_bug.cgi?id=40351
689
690         Reviewed by Kent Tamura.
691
692         If a character is the trail part of unicode surrogate pair, the lead part of it
693         should also be deleted. Also, If in MacOSX, the deletion should honor Mac's behavior.
694
695         Test: editing/deleting/delete-surrogatepair.html
696
697         * rendering/RenderText.cpp:
698         (WebCore::RenderText::previousOffsetForBackwardDeletion):
699           Added if-macro to support chromium on mac, and added trail part check for unicode character.
700
701 2011-09-11  Kentaro Hara  <haraken@google.com>
702
703         Implement a ProgressEvent constructor for V8
704         https://bugs.webkit.org/show_bug.cgi?id=67800
705
706         Reviewed by Sam Weinig.
707
708         Test: fast/events/constructors/progress-event-constructor.html
709
710         * bindings/js/JSDictionary.cpp:
711         (WebCore::JSDictionary::convertValue): Replaced UnsignedLongLongMax with std::numeric_limits<unsigned long long>::max().
712         * bindings/v8/OptionsObject.cpp:
713         (WebCore::OptionsObject::getKeyValue): Returns an unsigned long long value corresponding to a given key. Spec: http://www.w3.org/TR/WebIDL/#es-unsigned-long-long
714         * bindings/v8/OptionsObject.h:
715         * bindings/v8/custom/V8EventConstructors.cpp: Added the ProgressEvent constructor.
716         * dom/ProgressEvent.idl: Added a 'V8CustomConstructor' attribute.
717
718 2011-09-11  Dimitri Glazkov  <dglazkov@chromium.org>
719
720         REGRESSION (r87351): toggling display of lots (thousands) of elements with display:none is very slow
721         https://bugs.webkit.org/show_bug.cgi?id=67581
722
723         Reviewed by Darin Adler.
724
725         Test: perf/show-hide-table-rows.html
726
727         * dom/NodeRenderingContext.cpp:
728         (WebCore::NodeRendererFactory::createRendererAndStyle): Moved style-creating code into createRendererIfNeeded, renamed
729             to createRenderer.
730         (WebCore::NodeRendererFactory::createRendererIfNeeded): Re-arrange code to avoid unnecessary creation of renderers.
731
732 2011-09-11  Jeremy Moskovich  <jeremy@chromium.org>
733
734         [Chromium] Change OOP Font loading code to use CGFont*() APIs.
735         https://bugs.webkit.org/show_bug.cgi?id=66935
736
737         This change is necessary due a bug in ATSFontDeactivate() on 10.7.
738         See crbug.com/93191 for details.
739
740         Reviewed by Eric Seidel.
741
742         No new tests - covered by existing tests.
743
744         * platform/chromium/PlatformBridge.h:
745         * platform/graphics/chromium/CrossProcessFontLoading.h:
746         * platform/graphics/chromium/CrossProcessFontLoading.mm:
747         (WebCore::MemoryActivatedFont::create):
748         (WebCore::MemoryActivatedFont::MemoryActivatedFont):
749         (WebCore::MemoryActivatedFont::~MemoryActivatedFont):
750
751 2011-09-09  Oliver Hunt  <oliver@apple.com>
752
753         Remove support for anonymous storage from jsobjects
754         https://bugs.webkit.org/show_bug.cgi?id=67881
755
756         Reviewed by Sam Weinig.
757
758         Remove all use of anonymous slots, this required modifying
759         bindings generation to add member variables for cached attributes,
760         and override visitChildren with the necessary logic to mark those
761         new members.
762
763         I added bindings generation tests for these values.
764
765         * bindings/js/JSAudioConstructor.h:
766         (WebCore::JSAudioConstructor::createStructure):
767         * bindings/js/JSDOMBinding.h:
768         (WebCore::DOMConstructorObject::createStructure):
769         * bindings/js/JSDOMGlobalObject.h:
770         (WebCore::JSDOMGlobalObject::createStructure):
771         * bindings/js/JSDOMWindowBase.h:
772         (WebCore::JSDOMWindowBase::createStructure):
773         * bindings/js/JSDOMWindowShell.h:
774         (WebCore::JSDOMWindowShell::createStructure):
775         * bindings/js/JSDOMWrapper.h:
776         (WebCore::JSDOMWrapper::createStructure):
777         * bindings/js/JSImageConstructor.h:
778         (WebCore::JSImageConstructor::createStructure):
779         * bindings/js/JSMessageEventCustom.cpp:
780         (WebCore::JSMessageEvent::data):
781         (WebCore::JSMessageEvent::initMessageEvent):
782         * bindings/js/JSOptionConstructor.h:
783         (WebCore::JSOptionConstructor::createStructure):
784         * bindings/js/JSWorkerContextBase.h:
785         (WebCore::JSWorkerContextBase::createStructure):
786         * bindings/scripts/CodeGeneratorJS.pm:
787         (GenerateHeader):
788         (GenerateImplementation):
789         (GenerateConstructorDeclaration):
790         * bindings/scripts/test/JS/JSTestInterface.cpp:
791         (WebCore::JSTestInterfaceConstructor::createStructure):
792         * bindings/scripts/test/JS/JSTestInterface.h:
793         (WebCore::JSTestInterface::createStructure):
794         (WebCore::JSTestInterfacePrototype::createStructure):
795         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
796         (WebCore::JSTestMediaQueryListListenerConstructor::createStructure):
797         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
798         (WebCore::JSTestMediaQueryListListener::createStructure):
799         (WebCore::JSTestMediaQueryListListenerPrototype::createStructure):
800         * bindings/scripts/test/JS/JSTestObj.cpp:
801         (WebCore::JSTestObjConstructor::createStructure):
802         (WebCore::jsTestObjCachedAttribute1):
803         (WebCore::jsTestObjCachedAttribute2):
804         (WebCore::JSTestObj::visitChildren):
805         * bindings/scripts/test/JS/JSTestObj.h:
806         (WebCore::JSTestObj::createStructure):
807         (WebCore::JSTestObjPrototype::createStructure):
808         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
809         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::createStructure):
810         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
811         (WebCore::JSTestSerializedScriptValueInterface::createStructure):
812         (WebCore::JSTestSerializedScriptValueInterfacePrototype::createStructure):
813         * bindings/scripts/test/TestObj.idl:
814         * bindings/scripts/test/V8/V8TestObj.cpp:
815         (WebCore::TestObjInternal::cachedAttribute1AttrGetter):
816         (WebCore::TestObjInternal::cachedAttribute2AttrGetter):
817         * bridge/c/CRuntimeObject.h:
818         (JSC::Bindings::CRuntimeObject::createStructure):
819         * bridge/c/c_instance.cpp:
820         (JSC::Bindings::CRuntimeMethod::createStructure):
821         * bridge/jni/jsc/JavaInstanceJSC.cpp:
822         (JavaRuntimeMethod::createStructure):
823         * bridge/jni/jsc/JavaRuntimeObject.h:
824         (JSC::Bindings::JavaRuntimeObject::createStructure):
825         * bridge/objc/ObjCRuntimeObject.h:
826         (JSC::Bindings::ObjCRuntimeObject::createStructure):
827         * bridge/objc/objc_instance.mm:
828         (ObjCRuntimeMethod::createStructure):
829         * bridge/objc/objc_runtime.h:
830         (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
831         * bridge/runtime_array.h:
832         (JSC::RuntimeArray::createStructure):
833         * bridge/runtime_method.h:
834         (JSC::RuntimeMethod::createStructure):
835         * bridge/runtime_object.h:
836         (JSC::Bindings::RuntimeObject::createStructure):
837
838 2011-09-01  Filip Pizlo  <fpizlo@apple.com>
839
840         The executable allocator makes it difficult to free individual
841         chunks of executable memory
842         https://bugs.webkit.org/show_bug.cgi?id=66363
843
844         Reviewed by Oliver Hunt.
845         
846         Introduced a best-fit, balanced-tree based allocator. The allocator
847         required a balanced tree that does not allocate memory and that
848         permits the removal of individual nodes directly (as opposed to by
849         key); neither AVLTree nor WebCore's PODRedBlackTree supported this.
850         Changed all references to executable code to use a reference counted
851         handle.
852
853         No new layout tests because behavior is not changed.  New API unit
854         tests:
855         Tests/WTF/RedBlackTree.cpp
856         Tests/WTF/MetaAllocator.cpp
857
858         * ForwardingHeaders/wtf/MetaAllocatorHandle.h: Added.
859
860 2011-09-10  Sam Weinig  <sam@webkit.org>
861
862         Add isInterruptedExecutionException and isTerminatedExecutionException predicates
863         https://bugs.webkit.org/show_bug.cgi?id=67892
864
865         Reviewed by Andy "First Time Reviewer" Estes.
866
867         * bindings/js/JSDOMBinding.cpp:
868         (WebCore::reportException):
869         * bindings/js/JSEventListener.cpp:
870         (WebCore::JSEventListener::handleEvent):
871         * bindings/js/WorkerScriptController.cpp:
872         (WebCore::WorkerScriptController::evaluate):
873         Use the new predicates instead of probing the ClassInfo directly.
874
875 2011-09-10  Kevin Ollivier  <kevino@theolliviers.com>
876
877         [wx] Unreviewed build fix. MSW build fixes.
878
879         * config.h:
880
881 2011-09-09  David Hyatt  <hyatt@apple.com>
882
883         https://bugs.webkit.org/show_bug.cgi?id=67861
884         
885         Implement border-image-outset (and the mask equivalents).
886
887         Reviewed by Beth Dakin.
888
889         Added new tests in fast/borders and fast/reflections.
890
891         * css/CSSBorderImageValue.cpp:
892         (WebCore::CSSBorderImageValue::CSSBorderImageValue):
893         (WebCore::CSSBorderImageValue::cssText):
894         * css/CSSBorderImageValue.h:
895         (WebCore::CSSBorderImageValue::create):
896         Add m_outset field to CSSBorderImageValue and teach it how to dump the field as
897         part of cssText().
898
899         * css/CSSComputedStyleDeclaration.cpp:
900         (WebCore::valueForNinePieceImageQuad):
901         (WebCore::valueForNinePieceImage):
902         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
903         Add support for border-image-outset and -webkit-mask-box-image-outset. Refactor
904         the code so that border-image-width and border-image-outset use a common
905         function.
906
907         * css/CSSParser.cpp:
908         (WebCore::CSSParser::parseValue):
909         (WebCore::BorderImageParseContext::BorderImageParseContext):
910         (WebCore::BorderImageParseContext::allowOutset):
911         (WebCore::BorderImageParseContext::commitSlash):
912         (WebCore::BorderImageParseContext::commitBorderWidth):
913         (WebCore::BorderImageParseContext::commitBorderOutset):
914         (WebCore::BorderImageParseContext::commitRepeat):
915         (WebCore::BorderImageParseContext::commitBorderImage):
916         (WebCore::CSSParser::parseBorderImage):
917         Teach the border image parsing code about outsets. This code will soon be
918         replaced by true shorthand parsing code, but for now keep it working and add
919         outset support to it.
920
921         (WebCore::BorderImageQuadParseContext::BorderImageQuadParseContext):
922         (WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
923         (WebCore::CSSParser::parseBorderImageQuad):
924         (WebCore::CSSParser::parseBorderImageWidth):
925         (WebCore::CSSParser::parseBorderImageOutset):
926         * css/CSSParser.h:
927         Refactor the border-image-width code so that it can be shared by border-image-outset, since
928         they are extremely similar.
929
930         * css/CSSPropertyNames.in:
931         Add the new properties.
932
933         * css/CSSStyleSelector.cpp:
934         (WebCore::CSSStyleSelector::applyProperty):
935         (WebCore::CSSStyleSelector::mapNinePieceImage):
936         (WebCore::CSSStyleSelector::mapNinePieceImageQuad):
937         (WebCore::CSSStyleSelector::loadPendingImages):
938         * css/CSSStyleSelector.h:
939         Refactor the code so that width/outset share common mapping functions. Add support for outset.
940
941         * rendering/InlineFlowBox.cpp:
942         (WebCore::InlineFlowBox::addToLine):
943         (WebCore::InlineFlowBox::addBoxShadowVisualOverflow):
944         (WebCore::InlineFlowBox::addBorderOutsetVisualOverflow):
945         (WebCore::InlineFlowBox::computeOverflow):
946         Add new functions for computing the visual overflow caused by border outsets. Fix bugs in
947         the shadow overflow code as well.
948
949         (WebCore::clipRectForNinePieceImageStrip):
950         (WebCore::InlineFlowBox::paintBoxDecorations):
951         (WebCore::InlineFlowBox::paintMask):
952         * rendering/InlineFlowBox.h:
953         Make sure the clip rect pushed when painting one piece of a split inline strip is expanded to
954         include the border and mask outsets. Always include the block direction expansion, and conditionally
955         include the inline direction expansion based off includeLogicalLeftEdge()/includeLogicalRightEdge().
956         clipRectForNinePieceImageStrip is a common function shared by masks and border images that does this
957         work.
958
959         * rendering/RenderBlock.cpp:
960         (WebCore::RenderBlock::computeOverflow):
961         * rendering/RenderBox.cpp:
962         (WebCore::RenderBox::maskClipRect):
963         (WebCore::RenderBox::addBoxShadowAndBorderOverflow):
964         * rendering/RenderBox.h:
965         Rename addShadowOverflow to addBoxShadowAndBorderOverflow. Have it compute both shadow and border image
966         outset overflow. Fix bugs with shadow overflow computation.
967
968         * rendering/RenderBoxModelObject.cpp:
969         (WebCore::RenderBoxModelObject::paintNinePieceImage):
970         Change painting to apply the outsets to inflate the border image drawing area.
971
972         * rendering/RenderEmbeddedObject.cpp:
973         (WebCore::RenderEmbeddedObject::layout):
974         * rendering/RenderIFrame.cpp:
975         (WebCore::RenderIFrame::layout):
976         Patched to call the renamed addBoxShadowAndBorderOverflow function instead of addShadowOverflow.
977
978         * rendering/RenderLayer.cpp:
979         (WebCore::RenderLayer::calculateRects):
980         Patched to no longer apply box-shadow to overflow clip areas when inflating the intersection area for the
981         layer bounds. Instead we generically apply all visual overflow so that border image outsets will also be
982         included. This fixes https://bugs.webkit.org/show_bug.cgi?id=37467.
983
984         * rendering/RenderReplaced.cpp:
985         (WebCore::RenderReplaced::layout):
986         Patched to call the renamed addBoxShadowAndBorderOverflow function instead of addShadowOverflow.
987
988         * rendering/style/NinePieceImage.cpp:
989         (WebCore::NinePieceImage::operator==):
990         * rendering/style/NinePieceImage.h:
991         (WebCore::NinePieceImage::NinePieceImage):
992         (WebCore::NinePieceImage::outset):
993         (WebCore::NinePieceImage::setOutset):
994         (WebCore::NinePieceImage::computeOutset):
995         (WebCore::NinePieceImage::copyOutsetFrom):
996         Add the outset field to NinePieceImage along with some helpers for manipulating outsets.
997
998         * rendering/style/RenderStyle.cpp:
999         (WebCore::RenderStyle::getImageOutsets):
1000         (WebCore::RenderStyle::getImageHorizontalOutsets):
1001         (WebCore::RenderStyle::getImageVerticalOutsets):
1002         * rendering/style/RenderStyle.h:
1003         (WebCore::InheritedFlags::hasBorderImageOutsets):
1004         (WebCore::InheritedFlags::getBorderImageOutsets):
1005         (WebCore::InheritedFlags::getBorderImageHorizontalOutsets):
1006         (WebCore::InheritedFlags::getBorderImageVerticalOutsets):
1007         (WebCore::InheritedFlags::getBorderImageInlineDirectionOutsets):
1008         (WebCore::InheritedFlags::getBorderImageBlockDirectionOutsets):
1009         (WebCore::InheritedFlags::getImageInlineDirectionOutsets):
1010         (WebCore::InheritedFlags::getImageBlockDirectionOutsets):
1011         Helpers for outset computation used by painting and overflow functions.
1012
1013 2011-09-10  Dan Bernstein  <mitz@apple.com>
1014
1015         Actually prevent unnecessary casts to MediaControls*.
1016
1017         Reviewed by Oliver Hunt.
1018
1019         * html/shadow/MediaControls.h:
1020
1021 2011-09-10  Ryosuke Niwa  <rniwa@webkit.org>
1022
1023         Remove printf added by r94900.
1024
1025         * rendering/RenderLayer.cpp:
1026         (WebCore::RenderLayer::drawPlatformResizerImage):
1027
1028 2011-09-09  Chris Marrin  <cmarrin@apple.com>
1029
1030         requestAnimationFrame doesn't throttle on Mac
1031         https://bugs.webkit.org/show_bug.cgi?id=67171
1032
1033         Reviewed by Simon Fraser.
1034
1035         Changed requestAnimationFrame to use a Timer in ScriptedAnimationController
1036         on Mac, rather than runLoopObservers. The Timer is throttled to fire no
1037         faster than every 15ms. It is behind a WTF_USE_REQUEST_ANIMATION_FRAME_TIMER
1038         flag and can be used by any implementation, but currently it is only enabled
1039         by PLATFORM(MAC).
1040
1041         * dom/ScriptedAnimationController.cpp:
1042         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
1043         (WebCore::ScriptedAnimationController::resume):
1044         (WebCore::ScriptedAnimationController::registerCallback):
1045         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
1046         (WebCore::ScriptedAnimationController::scheduleAnimation):
1047         (WebCore::ScriptedAnimationController::animationTimerFired):
1048         * dom/ScriptedAnimationController.h:
1049         * loader/EmptyClients.h:
1050         * page/Chrome.cpp:
1051         (WebCore::Chrome::scheduleAnimation):
1052         * page/ChromeClient.h:
1053
1054 2011-09-10  Jarred Nicholls  <jarred@sencha.com>
1055
1056         [Qt] QWebSettings::setUserStyleSheetUrl() does not work with windows paths that contain drive letters
1057         https://bugs.webkit.org/show_bug.cgi?id=34884
1058         
1059         KURL::path() alone does not handle removing the leading slash from a windows file path.
1060         Using QUrl::toLocalFile() will turn file:///C:/path into C:/path appropriately.
1061
1062         Reviewed by Andreas Kling.
1063
1064         * platform/qt/KURLQt.cpp:
1065         (WebCore::KURL::fileSystemPath):
1066
1067 2011-09-10  Ken Buchanan <kenrb@chromium.org>
1068
1069         Crash due to bad data in SVGDocumentExtensions m_pendingResources
1070         https://bugs.webkit.org/show_bug.cgi?id=67488
1071
1072         Reviewed by Nikolas Zimmermann.
1073
1074         Resolving a crash condition caused by the deletion of
1075         elements while pending resource entries for those elements are still
1076         recorded.
1077
1078         * rendering/svg/RenderSVGResourceContainer.cpp:
1079         (WebCore::RenderSVGResourceContainer::registerResource)
1080         * svg/SVGDocumentExtensions.h:
1081         (WebCore::SVGDocumentExtensions::isElementInPendingResources)
1082         * svg/SVGDocumentExtensions.cpp:
1083         (WebCore::SVGDocumentExtensions::addPendingResource)
1084         (WebCore::SVGDocumentExtensions::isElementInPendingResources)
1085         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources)
1086         * svg/SVGStyledElement.h:
1087         (WebCore::SVGStyledElement::clearHasPendingResourcesIfPossible)
1088         * svg/SVGStyledElement.cpp:
1089         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded)
1090         (WebCore::SVGStyledElement::clearHasPendingResourcesIfPossible)
1091         * svg/SVGUseElement.cpp:
1092         (WebCore::SVGUseElement::svgAttributeChanged)
1093
1094 2011-09-10  Adam Barth  <abarth@webkit.org>
1095
1096         Remove DocumentWriter::deprecatedFrameEncoding()
1097         https://bugs.webkit.org/show_bug.cgi?id=67882
1098
1099         Reviewed by Eric Seidel.
1100
1101         Three years ago, in http://trac.webkit.org/changeset/39026, Alexey
1102         Proskuryakov added ContentDispositionEncodingFallbackArray to work
1103         around a web site compatibility issue with a non-ASCII file name
1104         becoming garbled when received in the Content-Disposition header.
1105
1106         Since that time, there has been copious discussion of this topic among
1107         browser vendors, in the IETF, and in the broader web community.  For
1108         example, here is a Stack Overflow thread about this topic:
1109
1110         http://stackoverflow.com/questions/93551/how-to-encode-the-filename-parameter-of-content-disposition-header-in-http
1111
1112         Eric Lawrence has written a blog post that summarizes IE's perspective
1113         on this issue:
1114
1115         http://blogs.msdn.com/b/ieinternals/archive/2010/06/07/content-disposition-attachment-and-international-unicode-characters.aspx
1116
1117         The current consensus is that browsers should implement RFC 6266,
1118         which is a new RFC that updates the definition of the
1119         Content-Disposition header.  Chrome and Firefox have both implemented
1120         RFC 6266 and have encountered only one issue, which was then fixed by
1121         the web site operator.  IE has also implemented RFC 6266, but I don't
1122         have detailed information about their compatibility experience.
1123
1124         This patch add explicit PLATFORM #ifdefs around the quirky
1125         implementation previously used in Apple's Mac and Windows ports.  This
1126         code is already only used on Apple's ports, so this patch introduces no
1127         functional changes.  It does, however, discourage other ports from
1128         adopting this quirk.  IMHO, Apple should remove this quirk as soon as
1129         compatibility allows and converge behavior with the other major browser
1130         vendors.
1131
1132         See bug for manual test (the bug manifests in Safari download UI).
1133
1134         * loader/DocumentWriter.cpp:
1135         * loader/DocumentWriter.h:
1136         * loader/FrameLoader.cpp:
1137         (WebCore::FrameLoader::addExtraFieldsToRequest):
1138         * platform/network/ResourceRequestBase.cpp:
1139         (WebCore::ResourceRequestBase::adopt):
1140         (WebCore::ResourceRequestBase::copyData):
1141         * platform/network/ResourceRequestBase.h:
1142
1143 2011-09-09  Beth Dakin  <bdakin@apple.com>
1144
1145         Attempted Leopard build fix.
1146
1147         * rendering/RenderImage.cpp:
1148         (WebCore::RenderImage::paintReplaced):
1149         * rendering/RenderLayer.cpp:
1150         (WebCore::RenderLayer::drawPlatformResizerImage):
1151
1152 2011-09-09  Beth Dakin  <bdakin@apple.com>
1153
1154         Fix for https://bugs.webkit.org/show_bug.cgi?id=67819
1155         Use high resolution platform images when the deviceScaleFactor > 1
1156         -and corresponding-
1157         <rdar://problem/10003098>
1158
1159         Reviewed by Darin Adler.
1160
1161         Add all of the new high resolution images. I also removed some tiffs from the 
1162         project and replaced them with png equivalents (that are already checked into 
1163         WebCore anyway). Since the high resolution images are pngs, it makes sense to use 
1164         pngs for all of the images that load through Image::loadPlatformResource()
1165         * WebCore.xcodeproj/project.pbxproj:
1166         * platform/graphics/mac/ImageMac.mm:
1167         (WebCore::Image::loadPlatformResource):
1168
1169         Load the @2x resource for deviceScaleFactors >= 2.
1170         * editing/DeleteButtonController.cpp:
1171         (WebCore::DeleteButtonController::createDeletionUI):
1172
1173         CachedImage::brokenImage() is no longer a static helper function, but a real 
1174         member function. It also now loads the @2x resource for deviceScaleFactors >= 2 
1175         and takes a parameter for the deviceScaleFactor. When CachedImage::image() returns 
1176         the brokenImage(), it just returns the 1x version. brokenImage() has to be called 
1177         directly to reliably return the deviceScaleFactor-appropriate resource.
1178         * loader/cache/CachedImage.cpp:
1179         (WebCore::CachedImage::brokenImage):
1180         (WebCore::CachedImage::image):
1181         * loader/cache/CachedImage.h:
1182         * rendering/RenderLayer.cpp:
1183         (WebCore::RenderLayer::drawPlatformResizerImage):
1184         (WebCore::RenderLayer::paintResizer):
1185         * rendering/RenderLayer.h:
1186
1187         New static function to retrieve the deviceScaleFactor for callers that do not have 
1188         direct access to a Page.
1189         * page/Page.cpp:
1190         (WebCore::Page::deviceScaleFactor):
1191         * page/Page.h:
1192
1193         Call CachedImage::brokenImage() for the broken-image image at an accurate 
1194         resolution.
1195         * rendering/RenderImage.cpp:
1196         (WebCore::RenderImage::imageSizeForError):
1197         (WebCore::RenderImage::paintReplaced):
1198
1199 2011-09-09  Erik Arvidsson  <arv@chromium.org>
1200
1201         Move Element.contains to Node
1202         https://bugs.webkit.org/show_bug.cgi?id=67651
1203
1204         Reviewed by Darin Adler.
1205
1206         This moves the contains method from Element to Node as in the DOM4 working draft: 
1207         http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-contains
1208
1209         This also special cases Document contains to make it O(1) instead of O(depth).
1210
1211         Tests: fast/dom/Node/contains-method.html
1212                perf/document-contains.html
1213
1214         * bindings/objc/PublicDOMInterfaces.h: Move contains from DOMElement to DOMNode.
1215         * dom/Element.idl:
1216         * dom/Node.cpp:
1217         (WebCore::Node::contains): Added document special case.
1218         * dom/Node.idl:
1219         * editing/DeleteSelectionCommand.cpp:
1220         (WebCore::DeleteSelectionCommand::mergeParagraphs): Added a null check.
1221
1222 2011-09-09  Tim Horton  <timothy_horton@apple.com>
1223
1224         Text rendered with a simple (i.e. 0px blur) shadow inside a transparency layer has a double shadow
1225         https://bugs.webkit.org/show_bug.cgi?id=67543
1226         <rdar://problem/10070536>
1227
1228         Reviewed by Darin Adler.
1229
1230         Generalize (begin|end)TransparencyLayer, which now forward
1231         through to (begin|end)PlatformTransparencyLayer, so that
1232         isInTransparencyLayer can exist on every platform.
1233
1234         Make use of isInTransparencyLayer in FontMac to disable
1235         "simple" shadow drawing when the text is being rendered
1236         into a transparency layer.
1237
1238         Test: svg/custom/simple-text-double-shadow.svg
1239
1240         * platform/graphics/GraphicsContext.cpp:
1241         (WebCore::GraphicsContext::GraphicsContext):
1242         (WebCore::GraphicsContext::~GraphicsContext):
1243         (WebCore::GraphicsContext::beginTransparencyLayer):
1244         (WebCore::GraphicsContext::endTransparencyLayer):
1245         (WebCore::GraphicsContext::isInTransparencyLayer):
1246         * platform/graphics/GraphicsContext.h:
1247         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1248         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1249         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1250         (WebCore::GraphicsContext::supportsTransparencyLayers):
1251         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
1252         * platform/graphics/cg/GraphicsContextCG.cpp:
1253         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1254         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1255         (WebCore::GraphicsContext::supportsTransparencyLayers):
1256         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
1257         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
1258         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
1259         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1260         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1261         (WebCore::GraphicsContext::supportsTransparencyLayers):
1262         * platform/graphics/mac/FontMac.mm:
1263         (WebCore::Font::drawGlyphs):
1264         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
1265         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1266         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1267         (WebCore::GraphicsContext::supportsTransparencyLayers):
1268         * platform/graphics/qt/GraphicsContextQt.cpp:
1269         (WebCore::GraphicsContext::isInTransparencyLayer):
1270         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1271         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1272         (WebCore::GraphicsContext::supportsTransparencyLayers):
1273         * platform/graphics/skia/GraphicsContextSkia.cpp:
1274         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1275         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1276         (WebCore::GraphicsContext::supportsTransparencyLayers):
1277         * platform/graphics/win/FontCGWin.cpp:
1278         (WebCore::drawGDIGlyphs):
1279         * platform/graphics/win/GraphicsContextCGWin.cpp:
1280         (WebCore::GraphicsContext::releaseWindowsContext):
1281         * platform/graphics/win/GraphicsContextCairoWin.cpp:
1282         (WebCore::GraphicsContext::releaseWindowsContext):
1283         * platform/graphics/win/GraphicsContextWin.cpp:
1284         (WebCore::GraphicsContext::getWindowsContext):
1285         * platform/graphics/wince/GraphicsContextWinCE.cpp:
1286         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1287         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1288         (WebCore::GraphicsContext::supportsTransparencyLayers):
1289         * platform/graphics/wx/GraphicsContextWx.cpp:
1290         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1291         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1292         (WebCore::GraphicsContext::supportsTransparencyLayers):
1293         * platform/win/ScrollbarThemeWin.cpp:
1294         * plugins/win/PluginViewWin.cpp:
1295         * rendering/RenderThemeWin.cpp:
1296
1297 2011-09-09  Julien Chaffraix  <jchaffraix@webkit.org>
1298
1299         [V8] V8WebKitPoint::constructorCallback leaks
1300         https://bugs.webkit.org/show_bug.cgi?id=67865
1301
1302         Reviewed by Adam Barth.
1303
1304         Covered by fast/js/instanceof-XMLHttpRequest.html under Valgrind.
1305
1306         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
1307         (WebCore::V8WebKitPoint::constructorCallback): Changed the code
1308         to use a RefPtr (per our usual style). Also use toV8 that will
1309         take care of properly wrapping the object.
1310
1311 2011-09-09  Chris Rogers  <crogers@google.com>
1312
1313         HRTFDatabaseLoader should not call WTF::waitForThreadCompletion() more than once
1314         https://bugs.webkit.org/show_bug.cgi?id=67866
1315
1316         Reviewed by David Levin.
1317
1318         No new tests since this is difficult to test.
1319         This is designed to fix existing webaudio layout test failures.
1320
1321         * platform/audio/HRTFDatabaseLoader.cpp:
1322         (WebCore::HRTFDatabaseLoader::HRTFDatabaseLoader):
1323         (WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
1324         (WebCore::HRTFDatabaseLoader::loadAsynchronously):
1325         (WebCore::HRTFDatabaseLoader::waitForLoaderThreadCompletion):
1326         * platform/audio/HRTFDatabaseLoader.h:
1327
1328 2011-09-09  Jessie Berlin  <jberlin@apple.com>
1329
1330         Cookies are not available after turning off Private Browsing after the last window has been
1331         closed.
1332         https://bugs.webkit.org/show_bug.cgi?id=67874
1333
1334         Reviewed by Darin Adler.
1335
1336         The private browsing storage session is a global setting that is being incorrectly set on a
1337         per-page basis (see http://webkit.org/b/67870).
1338
1339         In this case, the global value was getting out of sync with the per-page setting:
1340         1. The global value was getting set to true when setPrivateBrowsingEnabled(true) was called.
1341         2. All Pages were then closed, destroying their Settings objects.
1342         3. When a new Page was created, a new Settings object was created and its
1343            m_privateBrowsingEnabled value was getting set to false.
1344         4. The WebPage settings were then applied to the new Settings object, resulting in
1345            setPrivateBrowsingEnabled(false) to be called.
1346         5. An if (m_privateBrowsingEnabled == privateBrowsingEnabled) early return prevented the
1347            global value for the storage session from being destroyed.
1348
1349         * page/Settings.cpp:
1350         (WebCore::Settings::setPrivateBrowsingEnabled):
1351         Move the early return to be after setting the global private browsing values, and add a
1352         clearer comment + FIXME.
1353
1354 2011-09-09  Kentaro Hara  <haraken@google.com>
1355
1356         Generate a WebKitCSSMatrix constructor of V8 using the IDL 'Constructor' extended attribute
1357         https://bugs.webkit.org/show_bug.cgi?id=67458
1358
1359         Reviewed by Adam Barth.
1360
1361         Added a 'CallWithNullValue' extended attribute.
1362         If a parameter is optional and missing, 'CallWithDefaultValue'
1363         handles it as a string "undefined". On the other hand,
1364         'CallWithNullValue' handles it as a null string
1365         (Note: not a string "null", but a null string).
1366
1367         Tests: fast/dom/Window/custom-constructors.html
1368                transforms/svg-vs-css.xhtml
1369                transforms/cssmatrix-2d-interface.xhtml
1370                transforms/cssmatrix-3d-interface.xhtmlGenerate a WebKitCSSMatrix constructor
1371
1372         * WebCore.gypi: Removed V8WebKitCSSMatrixConstructor.cpp.
1373         * WebCore.pro: Removed V8WebKitCSSMatrixConstructor.cpp.
1374         * bindings/scripts/CodeGeneratorV8.pm:
1375         (GenerateParametersCheck): If the 'CallWithNullValue' extended attribute is set, we call MAYBE_MISSING_PARAMETER() with MissingIsEmpty mode to obtain a maybe missing parameter. Otherwise, we call MAYBE_MISSING_PARAMETER() with MissingIsUndefined mode.
1376         (RequiresCustomSignature):
1377         * bindings/scripts/test/V8/V8TestInterface.cpp: Updated test results.
1378         (WebCore::V8TestInterface::constructorCallback):
1379         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp: Ditto.
1380         (WebCore::TestMediaQueryListListenerInternal::methodCallback):
1381         * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
1382         (WebCore::TestObjInternal::voidMethodWithArgsCallback):
1383         (WebCore::TestObjInternal::intMethodWithArgsCallback):
1384         (WebCore::TestObjInternal::objMethodWithArgsCallback):
1385         (WebCore::TestObjInternal::methodThatRequiresAllArgsCallback):
1386         (WebCore::TestObjInternal::methodThatRequiresAllArgsAndThrowsCallback):
1387         (WebCore::TestObjInternal::optionsObjectCallback):
1388         (WebCore::TestObjInternal::customArgsAndExceptionCallback):
1389         (WebCore::TestObjInternal::withDynamicFrameAndArgCallback):
1390         (WebCore::TestObjInternal::withDynamicFrameAndOptionalArgCallback):
1391         (WebCore::TestObjInternal::withDynamicFrameAndUserGestureCallback):
1392         (WebCore::TestObjInternal::withDynamicFrameAndUserGestureASADCallback):
1393         (WebCore::TestObjInternal::methodWithOptionalArgCallback):
1394         (WebCore::TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback):
1395         (WebCore::TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
1396         (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
1397         (WebCore::TestObjInternal::overloadedMethod1Callback):
1398         (WebCore::TestObjInternal::overloadedMethod2Callback):
1399         (WebCore::TestObjInternal::overloadedMethod3Callback):
1400         (WebCore::TestObjInternal::overloadedMethod4Callback):
1401         (WebCore::TestObjInternal::classMethodWithOptionalCallback):
1402         (WebCore::TestObjInternal::enabledAtRuntimeMethod1Callback):
1403         (WebCore::TestObjInternal::enabledAtRuntimeMethod2Callback):
1404         * bindings/v8/V8Binding.h:
1405         (WebCore::V8ParameterBase::prepareBase): The fact that V8ParameterBase does not have any object means that we do not need to prepare anything, i.e. we should just return true in this case.
1406         (WebCore::::prepare): If V8ParameterBase does not have any object, then we set a null string.
1407         * bindings/v8/custom/V8BindingMacros.h: MAYBE_MISSING_PARAMETER() returns the parameter of a given index if the parameter exists. If the parameter does not exist and MissingIsUndefined is set, this macro returns an object that represents undefined. If the parameter does not exist and MissingIsEmpty is set, this macro returns an empty object.
1408         * bindings/v8/custom/V8WebKitCSSMatrixConstructor.cpp: Removed.
1409         * css/WebKitCSSMatrix.idl: Added the 'Constructor' extended attribute.
1410
1411 2011-09-09  Geoffrey Garen  <ggaren@apple.com>
1412
1413         Reviewed by Dan Bernstein.
1414
1415         Removed ENABLE(SINGLE_THREADED) support, since it is always false
1416         https://bugs.webkit.org/show_bug.cgi?id=67862
1417
1418         Next step toward making the baseline platform assumption that threads exist.
1419
1420         * WebCore.pri:
1421         * features.pri: 
1422         * platform/sql/SQLiteDatabase.cpp:
1423         (WebCore::SQLiteDatabase::interrupt): Removed now-dead code.
1424
1425 2011-09-09  Fady Samuel  <fsamuel@chromium.org>
1426
1427         Move pageScaleFactor code from Frame.{h|cpp} to Page.{h|cpp}
1428         https://bugs.webkit.org/show_bug.cgi?id=67250
1429
1430         Reviewed by Simon Fraser.
1431
1432         No new tests because there's no change in functionality.
1433
1434         * WebCore.exp.in:
1435         * css/CSSStyleSelector.cpp:
1436         (WebCore::CSSStyleSelector::styleForDocument):
1437         * dom/Element.cpp:
1438         (WebCore::Element::getClientRects):
1439         (WebCore::Element::getBoundingClientRect):
1440         * dom/Range.cpp:
1441         (WebCore::adjustFloatQuadsForScrollAndAbsoluteZoomAndPageScale):
1442         * loader/HistoryController.cpp:
1443         (WebCore::HistoryController::restoreScrollPositionAndViewState):
1444         * page/Frame.cpp:
1445         (WebCore::Frame::Frame):
1446         (WebCore::Frame::pageScaleFactor):
1447         * page/Frame.h:
1448         * page/Page.cpp:
1449         (WebCore::Page::Page):
1450         (WebCore::Page::setPageScaleFactor):
1451         * page/Page.h:
1452         (WebCore::Page::pageScaleFactor):
1453         * rendering/RenderLayerCompositor.cpp:
1454         (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame):
1455         (WebCore::RenderLayerCompositor::pageScaleFactor):
1456         * rendering/RenderView.cpp:
1457         (WebCore::RenderView::paintBoxDecorations):
1458
1459 2011-09-09  Dominic Mazzoni  <dmazzoni@google.com>
1460
1461         AX: Images within anchors causes crash
1462         https://bugs.webkit.org/show_bug.cgi?id=44149
1463
1464         Reviewed by Chris Fleizach.
1465
1466         Fixes the way parent RenderObject of an AccessibilityRenderObject
1467         is computed in the presence of adjacent continuations.
1468
1469         Test: accessibility/div-within-anchors-causes-crash.html
1470
1471         * accessibility/AccessibilityRenderObject.cpp:
1472         (WebCore::AccessibilityRenderObject::renderParentObject):
1473
1474 2011-09-09  Kulanthaivel Palanichamy  <kulanthaivel@codeaurora.org>
1475
1476         CSS rules not being applied when a hidden field is inserted between an input[type=checkbox] and a label
1477         https://bugs.webkit.org/show_bug.cgi?id=66887
1478
1479         Reviewed by David Hyatt.
1480
1481         Test: fast/css/adjacent-sibling-selector.html
1482
1483         This patch addresses the problem of elements not getting their style recomputed
1484         when they are affected by direct adjacent sibling rules and one of their sibling in
1485         their corresponding rules is modified dynamically.
1486
1487         * css/CSSStyleSelector.cpp:
1488         (WebCore::CSSStyleSelector::canShareStyleWithElement):
1489         (WebCore::parentStylePreventsSharing):
1490         * css/SelectorChecker.cpp:
1491         (WebCore::SelectorChecker::checkSelector):
1492         * dom/Element.cpp:
1493         (WebCore::Element::recalcStyle):
1494         (WebCore::checkForSiblingStyleChanges):
1495         * rendering/style/RenderStyle.cpp:
1496         (WebCore::RenderStyle::RenderStyle):
1497         * rendering/style/RenderStyle.h:
1498         (WebCore::InheritedFlags::affectedByDirectAdjacentRules):
1499         (WebCore::InheritedFlags::setAffectedByDirectAdjacentRules):
1500
1501 2011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>
1502
1503         Make the EFL port use the correct rendering file.
1504         https://bugs.webkit.org/show_bug.cgi?id=66323
1505
1506         Reviewed by Martin Robinson.
1507
1508         When compiling with Pango support, the EFL port should use
1509         FontPango.cpp instead of FontEfl.cpp (which is just full of stubs).
1510
1511         No new functionality so no new tests.
1512
1513         * CMakeListsEfl.txt:
1514
1515 2011-09-09  Chris Rogers  <crogers@google.com>
1516
1517         AudioBufferSourceNode must validate AudioBuffer in .buffer attribute setter
1518         https://bugs.webkit.org/show_bug.cgi?id=67749
1519
1520         Reviewed by Kenneth Russell.
1521
1522         Test: webaudio/audiobuffersource-channels.html
1523
1524         * WebCore.gypi:
1525         * bindings/js/JSAudioBufferSourceNodeCustom.cpp:
1526         (WebCore::JSAudioBufferSourceNode::setBuffer):
1527         * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp: Copied from Source/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp.
1528         (WebCore::V8AudioBufferSourceNode::bufferAccessorSetter):
1529         * webaudio/AudioBufferSourceNode.cpp:
1530         (WebCore::AudioBufferSourceNode::setBuffer):
1531         * webaudio/AudioBufferSourceNode.h:
1532         * webaudio/AudioBufferSourceNode.idl:
1533
1534 2011-09-09  Dan Bernstein  <mitz@apple.com>
1535
1536         RenderBlock::addOverhangingFloats() takes superfluous parameters
1537         https://bugs.webkit.org/show_bug.cgi?id=67863
1538
1539         Reviewed by Dave Hyatt.
1540
1541         No new tests, because behavior is unchanged.
1542
1543         * rendering/RenderBlock.cpp:
1544         (WebCore::RenderBlock::layoutBlock):
1545         (WebCore::RenderBlock::layoutBlockChild):
1546         (WebCore::RenderBlock::addOverhangingFloats): Removed the logical{Left, Top}Offset parameters,
1547         since they were always the inverse of the logical{Left, Top}() of the child parameter.
1548         * rendering/RenderBlock.h:
1549
1550 2011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>
1551
1552         Add replacement functions for gdk ones.
1553         https://bugs.webkit.org/show_bug.cgi?id=66323
1554
1555         Reviewed by Martin Robinson.
1556
1557         This will allow the EFL port to don't depend on gdk anymore.
1558
1559         No new functionality so no new tests.
1560
1561         * CMakeListsEfl.txt:
1562         * platform/graphics/cairo/CairoUtilities.cpp:
1563         (WebCore::appendRegionToCairoContext):
1564         * platform/graphics/cairo/CairoUtilities.h:
1565         * platform/graphics/pango/FontPango.cpp:
1566         (WebCore::drawGlyphsShadow):
1567         (WebCore::Font::drawComplexText):
1568         * platform/graphics/pango/PangoUtilities.cpp: Added.
1569         (WebCore::getLineClipRegionFromLayoutIter):
1570         (WebCore::getClipRegionFromPangoLayoutLine):
1571         * platform/graphics/pango/PangoUtilities.h: Added.
1572
1573 2011-09-09  Mark Hahnenberg  <mhahnenberg@apple.com>
1574
1575         Unzip initialization lists and constructors in JSCell hierarchy (5/7)
1576         https://bugs.webkit.org/show_bug.cgi?id=67420
1577
1578         Reviewed by Geoffrey Garen.
1579
1580         No new tests.
1581
1582         Completed the fifth level of the refactoring to add finishCreation() 
1583         methods to all classes within the JSCell hierarchy with non-trivial 
1584         constructor bodies.
1585
1586         This primarily consists of pushing the calls to finishCreation() down 
1587         into the constructors of the subclasses of the second level of the hierarchy 
1588         as well as pulling the finishCreation() calls out into the class's corresponding
1589         create() method if it has one.  Doing both simultaneously allows us to 
1590         maintain the invariant that the finishCreation() method chain is called exactly 
1591         once during the creation of an object, since calling it any other number of 
1592         times (0, 2, or more) will cause an assertion failure.
1593
1594         * WebCore.exp.in:
1595         * bindings/js/JSDOMBinding.h:
1596         (WebCore::DOMConstructorObject::DOMConstructorObject):
1597         * bindings/js/JSDOMGlobalObject.cpp:
1598         (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
1599         (WebCore::JSDOMGlobalObject::finishCreation):
1600         * bindings/js/JSDOMGlobalObject.h:
1601         * bindings/js/JSDOMWindowShell.cpp:
1602         * bindings/js/JSDOMWindowShell.h:
1603         (WebCore::JSDOMWindowShell::create):
1604         * bindings/js/JSDOMWrapper.h:
1605         (WebCore::JSDOMWrapper::JSDOMWrapper):
1606         * bindings/scripts/CodeGeneratorJS.pm:
1607         (GenerateImplementation):
1608         * bindings/scripts/test/JS/JSTestInterface.cpp:
1609         (WebCore::JSTestInterface::JSTestInterface):
1610         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
1611         (WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener):
1612         * bindings/scripts/test/JS/JSTestObj.cpp:
1613         (WebCore::JSTestObj::JSTestObj):
1614         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1615         (WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface):
1616         * bridge/c/CRuntimeObject.cpp:
1617         (JSC::Bindings::CRuntimeObject::CRuntimeObject):
1618         (JSC::Bindings::CRuntimeObject::finishCreation):
1619         * bridge/c/CRuntimeObject.h:
1620         * bridge/jni/jsc/JavaRuntimeObject.cpp:
1621         (JSC::Bindings::JavaRuntimeObject::JavaRuntimeObject):
1622         (JSC::Bindings::JavaRuntimeObject::finishCreation):
1623         * bridge/jni/jsc/JavaRuntimeObject.h:
1624         * bridge/objc/ObjCRuntimeObject.h:
1625         * bridge/objc/ObjCRuntimeObject.mm:
1626         (JSC::Bindings::ObjCRuntimeObject::ObjCRuntimeObject):
1627         (JSC::Bindings::ObjCRuntimeObject::finishCreation):
1628         * bridge/objc/objc_runtime.h:
1629         (JSC::Bindings::ObjcFallbackObjectImp::create):
1630         * bridge/objc/objc_runtime.mm:
1631         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
1632         * bridge/qt/qt_instance.cpp:
1633         (JSC::Bindings::QtRuntimeObject::QtRuntimeObject):
1634         * bridge/qt/qt_pixmapruntime.cpp:
1635         (JSC::Bindings::QtPixmapRuntimeObject::QtPixmapRuntimeObject):
1636         * bridge/qt/qt_runtime.cpp:
1637         (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
1638         (JSC::Bindings::QtRuntimeMethod::finishCreation):
1639         * bridge/qt/qt_runtime.h:
1640         * bridge/runtime_array.cpp:
1641         (JSC::RuntimeArray::RuntimeArray):
1642         * bridge/runtime_array.h:
1643         (JSC::RuntimeArray::create):
1644         * bridge/runtime_method.cpp:
1645         (JSC::RuntimeMethod::RuntimeMethod):
1646         (JSC::RuntimeMethod::finishCreation):
1647         * bridge/runtime_method.h:
1648         * bridge/runtime_object.cpp:
1649         (JSC::Bindings::RuntimeObject::RuntimeObject):
1650         * bridge/runtime_object.h:
1651         (JSC::Bindings::RuntimeObject::create):
1652
1653 2011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>
1654
1655         Rename FontGtk.cpp to FontPango.cpp
1656         https://bugs.webkit.org/show_bug.cgi?id=66323
1657
1658         Reviewed by Martin Robinson.
1659
1660         This file will be used by the EFL port too, and since it's not GTK
1661         specific anymore, rename it to something better.
1662
1663         No new functionality so no new tests.
1664
1665         * GNUmakefile.list.am:
1666         * platform/graphics/pango/FontPango.cpp: Renamed from Source/WebCore/platform/graphics/gtk/FontGtk.cpp.
1667
1668 2011-09-09  Adam Klein  <adamk@chromium.org>
1669
1670         Initialize ExceptionCode in Element::removeAttribute
1671         https://bugs.webkit.org/show_bug.cgi?id=67820
1672
1673         Reviewed by Darin Adler.
1674
1675         Silences valgrind warning reported in http://crbug.com/76490.
1676
1677         No new tests since this would only very occasionally be flaky,
1678         and in the codepath in the valgrind report, the ec is ignored anyway.
1679
1680         * dom/Element.cpp:
1681         (WebCore::Element::removeAttribute): Initialize ec to 0.
1682
1683 2011-09-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
1684
1685         [Qt] Remove common.pri
1686         https://bugs.webkit.org/show_bug.cgi?id=67814
1687
1688         Reviewed by Andreas Kling.
1689
1690         No new tests, no change in functionality.
1691
1692         * CodeGenerators.pri:
1693         * WebCore.pri:
1694
1695 2011-09-09  Dominic Mazzoni  <dmazzoni@google.com>
1696
1697         Assert being hit in AccessibilityRenderObject::addChildren()
1698         https://bugs.webkit.org/show_bug.cgi?id=61805
1699
1700         Reviewed by Chris Fleizach.
1701
1702         Fix nextSibling and previousSibling to handle adjacent continuations
1703         properly, otherwise nodes end up appearing in the accessibility
1704         tree twice (or a debug assertion could be raised).
1705
1706         Test: accessibility/adjacent-continuations-cause-assertion-failure.html
1707
1708         * accessibility/AccessibilityRenderObject.cpp:
1709         (WebCore::AccessibilityRenderObject::previousSibling):
1710         (WebCore::AccessibilityRenderObject::nextSibling):
1711
1712 2011-09-08  Kentaro Hara  <haraken@google.com>
1713
1714         Implement a WebKitAnimationEvent constructor.
1715         https://bugs.webkit.org/show_bug.cgi?id=67825
1716
1717         Reviewed by Sam Weinig.
1718
1719         There is no spec for the WebKitAnimationEvent constructor
1720         since it is WebKit-specific. However, based on the current
1721         IDL of initWebKitAnimationEvent(), the constructor IDL
1722         should be as follows.
1723
1724         [Constructor(DOMString type, optional WebKitAnimationEventInit eventInitDict)]
1725         interface WebKitAnimationEvent : Event {
1726             ...;
1727         }
1728
1729         dictionary WebKitAnimationEventInit : EventInit {
1730             DOMString animationName;
1731             double elapsedTime;
1732         }
1733
1734         Test: fast/events/constructors/webkit-animation-event-constructor.html
1735
1736         * bindings/generic/EventConstructors.h: Added a definition for the WebKitAnimationEvent constructor.
1737         * bindings/js/JSEventConstructors.cpp: Added #includes for WebKitAnimationEvent.
1738         * dom/WebKitAnimationEvent.cpp:
1739         (WebCore::WebKitAnimationEventInit::WebKitAnimationEventInit):
1740         (WebCore::WebKitAnimationEvent::WebKitAnimationEvent):
1741         * dom/WebKitAnimationEvent.h: Added a definition for WebKitAnimationEventInit.
1742         (WebCore::WebKitAnimationEvent::create):
1743         * dom/WebKitAnimationEvent.idl: Makes WebKitAnimationEvent constructible.
1744
1745 2011-09-08  Abhishek Arya  <inferno@chromium.org>
1746
1747         :before content rendering issues with list markers and run-ins.
1748         https://bugs.webkit.org/show_bug.cgi?id=67735
1749
1750         1) Remove the isAnonymous checks for run-in detection since the
1751         run-in can belong to a node.
1752         2) When the parent has block children, then the list marker will
1753         be enclosed in an anonymous block. In that case, for going to the
1754         next list marker, we need to traverse one level up. We don't need
1755         this check when searching for generated run-in (loop 2), since we
1756         know parent will have inline children, so the list marker wont be
1757         enclosed in an anonymous block.
1758
1759         Reviewed by Dave Hyatt.
1760
1761         Tests: fast/lists/list-marker-before-content-table.html
1762                fast/runin/runin-generated-before-content.html
1763
1764         * rendering/RenderObjectChildList.cpp:
1765         (WebCore::RenderObjectChildList::beforePseudoElementRenderer):
1766
1767 2011-09-09  Pavel Podivilov  <podivilov@chromium.org>
1768
1769         Web Inspector: introduce JavaScriptSourceFrame class.
1770         https://bugs.webkit.org/show_bug.cgi?id=67838
1771
1772         SourceFrame should not deal with JavaScript debugging since it is a base class for all source frame implementations.
1773
1774         Reviewed by Pavel Feldman.
1775
1776         * WebCore.gypi:
1777         * WebCore.vcproj/WebCore.vcproj:
1778         * inspector/front-end/JavaScriptSourceFrame.js: Added.
1779         (WebInspector.JavaScriptSourceFrame):
1780         (WebInspector.SourceFrameDelegateForScriptsPanel): moved from ScriptsPanel.js
1781         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.requestContent):
1782         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.debuggingSupported):
1783         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.setBreakpoint):
1784         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.updateBreakpoint):
1785         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.removeBreakpoint):
1786         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.findBreakpoint):
1787         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.continueToLine):
1788         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.canEditScriptSource):
1789         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.setScriptSource):
1790         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.setScriptSourceIsBeingEdited):
1791         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.debuggerPaused):
1792         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.evaluateInSelectedCallFrame):
1793         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.releaseEvaluationResult):
1794         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.suggestedFileName):
1795         * inspector/front-end/ScriptsPanel.js:
1796         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
1797         * inspector/front-end/WebKit.qrc:
1798         * inspector/front-end/inspector.html:
1799
1800 2011-09-09  Sheriff Bot  <webkit.review.bot@gmail.com>
1801
1802         Unreviewed, rolling out r94845.
1803         http://trac.webkit.org/changeset/94845
1804         https://bugs.webkit.org/show_bug.cgi?id=67839
1805
1806         This patch kicked Qt-SL bots, but we don't need this
1807         modification. (Requested by ossy_ on #webkit).
1808
1809         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1810         * platform/mac/WebVideoFullscreenController.mm:
1811         * platform/mac/WebVideoFullscreenHUDWindowController.mm:
1812
1813 2011-09-09  Csaba Osztrogon√°c  <ossy@webkit.org>
1814
1815         [Qt][Mac]REGRESSION(r94774): Build is broken
1816         https://bugs.webkit.org/show_bug.cgi?id=67799
1817
1818         It seems these files didn't rebuilt because of a
1819         dependency bug. Touch them to trigger a rebuild.
1820
1821         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1822         * platform/mac/WebVideoFullscreenController.mm:
1823         * platform/mac/WebVideoFullscreenHUDWindowController.mm:
1824
1825 2011-09-09  Alexander Pavlov  <apavlov@chromium.org>
1826
1827         Unreviewed, Chromium valgrind build fix.
1828
1829         Web Inspector: [Chromium] Valgrind signals use of uninitialized field in InspectorStyleSheetForInlineStyle
1830         https://bugs.webkit.org/show_bug.cgi?id=67837
1831
1832         * inspector/InspectorStyleSheet.cpp:
1833         (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
1834
1835 2011-09-09  Sheriff Bot  <webkit.review.bot@gmail.com>
1836
1837         Unreviewed, rolling out r94536.
1838         http://trac.webkit.org/changeset/94536
1839         https://bugs.webkit.org/show_bug.cgi?id=67836
1840
1841         breaks absoluteLocation() of RelatedMouseEvent (Requested by
1842         jknotten on #webkit).
1843
1844         * dom/MouseRelatedEvent.cpp:
1845         (WebCore::MouseRelatedEvent::MouseRelatedEvent):
1846
1847 2011-09-08  Alexander Pavlov  <apavlov@chromium.org>
1848
1849         Web Inspector: live edit both for JS and CSS is not discoverable.
1850         https://bugs.webkit.org/show_bug.cgi?id=65962
1851
1852         Add the "Edit" button to SourceFrame, so that resources/scripts can be edited both in the
1853         Resources and the Scripts panels. The button is grayed out if the resource/script is not editable.
1854
1855         Reviewed by Yury Semikhatsky.
1856
1857         * inspector/front-end/Images/statusbarButtonGlyphs.png:
1858         * inspector/front-end/ResourceView.js:
1859         (WebInspector.EditableResourceSourceFrame.prototype.canEditSource):
1860         * inspector/front-end/ScriptsPanel.js:
1861         (WebInspector.ScriptsPanel.prototype.get statusBarItems):
1862         (WebInspector.ScriptsPanel.prototype.set visibleView):
1863         * inspector/front-end/SourceFrame.js:
1864         (WebInspector.SourceFrame):
1865         (WebInspector.SourceFrame.prototype.get statusBarItems):
1866         (WebInspector.SourceFrame.prototype._initializeTextViewer):
1867         (WebInspector.SourceFrame.prototype._editButtonClicked):
1868         (WebInspector.SourceFrame.prototype.canEditSource):
1869         (WebInspector.SourceFrame.prototype.startEditing):
1870         (WebInspector.SourceFrame.prototype.commitEditing):
1871         (WebInspector.SourceFrame.prototype._setReadOnly):
1872         (WebInspector.TextViewerDelegateForSourceFrame.prototype.doubleClick):
1873         * inspector/front-end/TextViewer.js:
1874         (WebInspector.TextEditorMainPanel.prototype.set readOnly):
1875         (WebInspector.TextEditorMainPanel.prototype._updateSelectionOnStartEditing):
1876         * inspector/front-end/inspector.css:
1877         (button.edit-source-status-bar-item .glyph):
1878         (button.edit-source-status-bar-item.toggled-on .glyph):
1879
1880 2011-09-09  Shinya Kawanaka  <shinyak@google.com>
1881
1882         Crashes in WebCore::AppendNodeCommand::create().
1883         https://bugs.webkit.org/show_bug.cgi?id=67767
1884
1885         Reviewed by Darin Adler.
1886
1887         In CompositeEditCommand::closeParagraphUnderNewElement(), lastNode could be a non Element node.
1888         The current code assumes lastNode is an Element node. This patch checks it.
1889
1890         Test: editing/execCommand/ident-crashes-topnode-is-text.html
1891
1892         * editing/CompositeEditCommand.cpp:
1893         (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement): Added an element node check.
1894
1895 2011-09-09  Shinya Kawanaka  <shinyak@google.com>
1896
1897         Crashes in WebCore::ApplyStyleCommand.doApply()
1898         https://bugs.webkit.org/show_bug.cgi?id=67765
1899
1900         Reviewed by Ryosuke Niwa.
1901
1902         WebCore::enclosingBlock may return null, but ApplyStyleCommand::applyBlockStyle did not check it. This patch make it to be checked.
1903
1904         Test: editing/style/remove-format-without-enclosing-block.html
1905
1906         * editing/ApplyStyleCommand.cpp:
1907         (WebCore::ApplyStyleCommand::applyBlockStyle): Added null check.
1908
1909 2011-09-09  James Simonsen  <simonjam@chromium.org>
1910
1911         [Chromium] Fix leak of Skia stream with custom CSS fonts
1912         https://bugs.webkit.org/show_bug.cgi?id=67815
1913
1914         Reviewed by Adam Barth.
1915
1916         Test: fast/css/font-face-opentype.html under valgrind
1917
1918         * platform/graphics/mac/FontCustomPlatformData.cpp:
1919         (WebCore::createFontCustomPlatformData):
1920         * platform/graphics/skia/FontCustomPlatformData.cpp:
1921         (WebCore::createFontCustomPlatformData):
1922
1923 2011-09-07  Ryosuke Niwa  <rniwa@webkit.org>
1924
1925         Push more code from HTMLInputElement::setValue to TextFieldInputType::setValue
1926         https://bugs.webkit.org/show_bug.cgi?id=67742
1927
1928         Reviewed by Darin Adler.
1929
1930         Moved more code in HTMLInputElement::setValue to TextFieldInputType::setValue, and merged
1931         InputType::valueChanged into InputType::setValue. Also introduced
1932         InputType::dispatchChangeEventInResponseToSetValue to be overridden by TextFieldInputType.
1933
1934         * html/BaseButtonInputType.cpp:
1935         (WebCore::BaseButtonInputType::setValue):
1936         * html/BaseButtonInputType.h:
1937         * html/BaseCheckableInputType.cpp:
1938         (WebCore::BaseCheckableInputType::setValue):
1939         * html/BaseCheckableInputType.h:
1940         * html/ColorInputType.cpp:
1941         * html/ColorInputType.h:
1942         * html/FileInputType.cpp:
1943         (WebCore::FileInputType::setValue):
1944         * html/FileInputType.h:
1945         * html/HTMLInputElement.cpp:
1946         (WebCore::HTMLInputElement::setValue):
1947         * html/HTMLInputElement.h:
1948         (WebCore::HTMLInputElement::cacheSelectionInResponseToSetValue):
1949         * html/HiddenInputType.cpp:
1950         (WebCore::HiddenInputType::setValue):
1951         * html/HiddenInputType.h:
1952         * html/InputType.cpp:
1953         (WebCore::InputType::setValue):
1954         (WebCore::InputType::dispatchChangeEventInResponseToSetValue):
1955         * html/InputType.h:
1956         * html/RangeInputType.cpp:
1957         (WebCore::RangeInputType::setValue):
1958         * html/RangeInputType.h:
1959         * html/TextFieldInputType.cpp:
1960         (WebCore::TextFieldInputType::setValue):
1961         (WebCore::TextFieldInputType::dispatchChangeEventInResponseToSetValue):
1962         * html/TextFieldInputType.h:
1963
1964 2011-09-08  Annie Sullivan  <sullivan@chromium.org>
1965
1966         Crashes in WebCore::InsertNodeBeforeCommand constructor.
1967         https://bugs.webkit.org/show_bug.cgi?id=67763
1968
1969         Reviewed by Ryosuke Niwa.
1970
1971         Changes editableRootForPosition() to use the position's containerNode instead of deprecatedNode so that
1972         positions which are before or after a given node cannot return that node as the editable root.
1973
1974         Test: editing/inserting/insert-paragraph-selection-outside-contenteditable.html
1975
1976         * editing/htmlediting.cpp:
1977         (WebCore::editableRootForPosition): use containerNode instead of deprecatedNode.
1978
1979 2011-09-08  James Weatherall  <wez@chromium.org>
1980
1981         Release the reference to the HTMLPlugInElement's script object, when the element is removed from the document.  This breaks a cyclical reference that would otherwise cause the element to be retained until the document is torn down.
1982         https://bugs.webkit.org/show_bug.cgi?id=66181
1983
1984         Reviewed by Anders Carlsson.
1985
1986         No new tests - no functional change.
1987
1988         * html/HTMLPlugInElement.cpp:
1989         (WebCore::HTMLPlugInElement::removedFromDocument):
1990         * html/HTMLPlugInElement.h:
1991
1992 2011-09-08  Daniel Bates  <dbates@webkit.org>
1993
1994         XSS filter bypass via non-standard URL encoding
1995         https://bugs.webkit.org/show_bug.cgi?id=66588
1996
1997         Reviewed by Adam Barth.
1998
1999         Tests: http/tests/security/xssAuditor/script-tag-with-16bit-unicode-surrogate-pair.html
2000                http/tests/security/xssAuditor/script-tag-with-16bit-unicode.html
2001                http/tests/security/xssAuditor/script-tag-with-16bit-unicode2.html
2002                http/tests/security/xssAuditor/script-tag-with-16bit-unicode3.html
2003                http/tests/security/xssAuditor/script-tag-with-16bit-unicode4.html
2004                http/tests/security/xssAuditor/script-tag-with-16bit-unicode5.html
2005                http/tests/security/xssAuditor/script-tag-with-three-times-url-encoded-16bit-unicode.html
2006                http/tests/security/xssAuditor/window-open-without-url-should-not-assert.html
2007
2008         Implement support for decoding non-standard 16-bit Unicode escape sequences of
2009         the form %u26C4 as described in <http://www.w3.org/International/iri-edit/draft-duerst-iri.html#anchor29>.
2010
2011         See also <http://en.wikipedia.org/wiki/Percent-encoding#Non-standard_implementations>.
2012
2013         * GNUmakefile.list.am: Added DecodeEscapeSequences.h.
2014         * WebCore.gypi: Ditto.
2015         * WebCore.pro: Ditto.
2016         * WebCore.vcproj/WebCore.vcproj: Ditto.
2017         * WebCore.xcodeproj/project.pbxproj: Ditto.
2018         * html/parser/XSSAuditor.cpp:
2019         (WebCore::decode16BitUnicodeEscapeSequences): Added.
2020         (WebCore::decodeStandardURLEscapeSequences): Added.
2021         (WebCore::fullyDecodeString): Modified to call decode16BitUnicodeEscapeSequences().
2022         (WebCore::XSSAuditor::init): Modified to return early when the URL of the document
2023         is the empty string. This can happen when opening a new browser window or calling
2024         window.open("").
2025         * platform/KURL.cpp:
2026         (WebCore::decodeURLEscapeSequences): Abstracted code into template-function decodeEscapeSequences().
2027         This function just calls decodeEscapeSequences<URLEscapeSequence>().
2028         * platform/text/DecodeEscapeSequences.h: Added.
2029         (WebCore::Unicode16BitEscapeSequence::findInString):
2030         (WebCore::Unicode16BitEscapeSequence::matchStringPrefix):
2031         (WebCore::Unicode16BitEscapeSequence::decodeRun):
2032         (WebCore::URLEscapeSequence::findInString):
2033         (WebCore::URLEscapeSequence::matchStringPrefix):
2034         (WebCore::URLEscapeSequence::decodeRun):
2035         (WebCore::decodeEscapeSequences):
2036
2037 2011-09-08  Adam Barth  <abarth@webkit.org>
2038
2039         DocumentWriter::deprecatedFrameEncoding doesn't need to refert to Settings
2040         https://bugs.webkit.org/show_bug.cgi?id=67812
2041
2042         Reviewed by Eric Seidel.
2043
2044         The one caller of this function does this work already.
2045
2046         * loader/DocumentWriter.cpp:
2047         (WebCore::DocumentWriter::deprecatedFrameEncoding):
2048
2049 2011-09-08  Adam Klein  <adamk@chromium.org>
2050
2051         Always zero-out m_sortedTextBoxesPosition to avoid uninitialized read in TextIterator
2052         https://bugs.webkit.org/show_bug.cgi?id=67810
2053
2054         Reviewed by Tony Chang.
2055
2056         Reported as a valgrind failure in http://crbug.com/84777.
2057
2058         No possible change in behavior, so no tests. The unitialized read
2059         could never have an impact:
2060
2061            if (m_sortedTextBoxesPosition + 1 < m_sortedTextBoxes.size()) ...
2062
2063         Since m_sortedTextBoxes.size() will be zero here if
2064         m_sortedTextBoxesPosition is uninitialized, and they're both unsigned,
2065         so no possible value of m_sortedTextBoxesPosition could be < 0.
2066
2067         * editing/TextIterator.cpp:
2068         (WebCore::TextIterator::TextIterator):
2069
2070 2011-09-08  Tony Chang  <tony@chromium.org>
2071
2072         Cleanup of switch statements with default cases
2073         https://bugs.webkit.org/show_bug.cgi?id=67808
2074
2075         Reviewed by Adam Barth.
2076
2077         No new tests, just a small refactoring.
2078
2079         * page/WebKitAnimation.cpp:
2080         (WebCore::WebKitAnimation::fillMode):
2081         * platform/audio/Distance.cpp:
2082         (WebCore::DistanceEffect::gain):
2083
2084 2011-09-08  Eric Seidel  <eric@webkit.org>
2085
2086         [BiDi] Add support for the BDI element
2087         https://bugs.webkit.org/show_bug.cgi?id=50913
2088
2089         Reviewed by Ryosuke Niwa.
2090
2091         This patch is ridiculously trivial now that we have unicode-bidi: isolate support in WebKit.
2092
2093         Test: css3/bdi-element.html
2094
2095         * css/html.css:
2096         (bdi):
2097
2098 2011-09-08  David Levin  <levin@chromium.org>
2099
2100         [chromium] KURL::copy doesn't produce something usable on another thread.
2101         https://bugs.webkit.org/show_bug.cgi?id=67809
2102
2103         Reviewed by Adam Barth.
2104
2105         No new functionality exposed so no new test. This was caught by testing code: the thread
2106         sanitizer run in Chromium (http://code.google.com/p/chromium/issues/detail?id=93708).
2107
2108         * platform/KURLGoogle.cpp:
2109         (WebCore::KURLGooglePrivate::copyTo): Clear out the invalid String so that it will
2110         not be used on another thread.
2111
2112 2011-09-08  Alexey Proskuryakov  <ap@apple.com>
2113
2114         REGRESSION (r66874): Missing RefPtr in ScriptController
2115         https://bugs.webkit.org/show_bug.cgi?id=67748
2116
2117         Reviewed by Adam Barth.
2118
2119         * bindings/ScriptControllerBase.cpp: (WebCore::ScriptController::executeScript):
2120
2121 2011-09-08  Adam Barth  <abarth@webkit.org>
2122
2123         Second attempt to fix Chromium build.
2124
2125         * dom/Document.h:
2126
2127 2011-09-08  Oliver Hunt  <oliver@apple.com>
2128
2129         Use bump allocator for initial property storage
2130         https://bugs.webkit.org/show_bug.cgi?id=67494
2131
2132         Reviewed by Geoffrey Garen.
2133
2134         Add a forwarding header.
2135
2136         * ForwardingHeaders/runtime/StorageBarrier.h: Added.
2137
2138 2011-09-08  Roland Steiner  <rolandsteiner@chromium.org>
2139
2140         Unreviewed, rolling out r94809.
2141         http://trac.webkit.org/changeset/94809
2142         https://bugs.webkit.org/show_bug.cgi?id=67718
2143
2144         commit _still_ premature, despite CQ eagerness
2145
2146         * html/HTMLAttributeNames.in:
2147         * html/HTMLStyleElement.cpp:
2148         * html/HTMLStyleElement.h:
2149         * html/HTMLStyleElement.idl:
2150
2151 2011-09-08  Sam Weinig  <sam@webkit.org>
2152
2153         Remove the Completion object from JSC, I have never liked it
2154         https://bugs.webkit.org/show_bug.cgi?id=67755
2155
2156         Reviewed by Gavin Barraclough.
2157
2158         * bindings/js/JSDOMBinding.cpp:
2159         (WebCore::reportException):
2160         * bindings/js/JSEventListener.cpp:
2161         (WebCore::JSEventListener::handleEvent):
2162         * bindings/js/JSInjectedScriptManager.cpp:
2163         (WebCore::InjectedScriptManager::createInjectedScript):
2164         * bindings/js/JSMainThreadExecState.h:
2165         (WebCore::JSMainThreadExecState::evaluate):
2166         * bindings/js/ScriptController.cpp:
2167         (WebCore::ScriptController::evaluateInWorld):
2168         * bindings/js/WorkerScriptController.cpp:
2169         (WebCore::WorkerScriptController::evaluate):
2170         * bindings/objc/WebScriptObject.mm:
2171         (-[WebScriptObject evaluateWebScript:]):
2172         * bridge/NP_jsobject.cpp:
2173         (_NPN_Evaluate):
2174         * bridge/jni/jni_jsobject.mm:
2175         (JavaJSObject::eval):
2176
2177 2011-09-08  Adam Barth  <abarth@webkit.org>
2178
2179         Inline DocumentWriter::encoding() into it's only caller: deprecatedFrameEncoding()
2180         https://bugs.webkit.org/show_bug.cgi?id=67807
2181
2182         Reviewed by Eric Seidel.
2183
2184         This function is super nutty.  We don't want any more folks to call it
2185         thinking that it does something sane.
2186
2187         * loader/DocumentWriter.cpp:
2188         (WebCore::DocumentWriter::deprecatedFrameEncoding):
2189         * loader/DocumentWriter.h:
2190
2191 2011-09-08  Roland Steiner  <rolandsteiner@chromium.org>
2192
2193         <style scoped>: Add 'scoped' attribute
2194         https://bugs.webkit.org/show_bug.cgi?id=67718
2195
2196         Add 'scoped' attribute to IDL and attribute list,
2197         implement and test setting/resetting of the attribute.
2198
2199         Reviewed by Dimitri Glazkov.
2200
2201         Test: fast/css/style-scoped/basic-attribute.html
2202
2203         * html/HTMLAttributeNames.in:
2204         * html/HTMLStyleElement.cpp:
2205         (WebCore::HTMLStyleElement::scoped):
2206         (WebCore::HTMLStyleElement::setScoped):
2207         (WebCore::HTMLStyleElement::scopingElement):
2208         * html/HTMLStyleElement.h:
2209         * html/HTMLStyleElement.idl:
2210
2211 2011-09-08  Sheriff Bot  <webkit.review.bot@gmail.com>
2212
2213         Unreviewed, rolling out r94781.
2214         http://trac.webkit.org/changeset/94781
2215         https://bugs.webkit.org/show_bug.cgi?id=67806
2216
2217         Broke Objective-C binding on Mac (Requested by rniwa on
2218         #webkit).
2219
2220         * dom/Element.idl:
2221         * dom/Node.cpp:
2222         (WebCore::Node::contains):
2223         * dom/Node.idl:
2224         * editing/DeleteSelectionCommand.cpp:
2225         (WebCore::DeleteSelectionCommand::mergeParagraphs):
2226
2227 2011-09-08  Eric Seidel  <eric@webkit.org>
2228
2229         Remove DocumentWriter::setDecoder as a grep of WebKit shows no callers
2230         https://bugs.webkit.org/show_bug.cgi?id=67803
2231
2232         Reviewed by Adam Barth.
2233
2234         Smells like dead code.
2235
2236         * loader/DocumentWriter.cpp:
2237         * loader/DocumentWriter.h:
2238
2239 2011-09-08  Shinya Kawanaka  <shinyak@google.com>
2240
2241         Crashes in WebCore::ReplaceSelectionCommand::doApply
2242         https://bugs.webkit.org/show_bug.cgi?id=67762
2243
2244         Reviewed by Ryosuke Niwa.
2245
2246         WebCore::enclosingBlock may return null, but its return value was not checked. This patch checks it.
2247
2248         Tests: editing/inserting/insert-without-enclosing-block.html
2249
2250         * editing/ReplaceSelectionCommand.cpp:
2251         (WebCore::ReplaceSelectionCommand::doApply): Added null check.
2252
2253 2011-09-08  Sheriff Bot  <webkit.review.bot@gmail.com>
2254
2255         Unreviewed, rolling out r94784.
2256         http://trac.webkit.org/changeset/94784
2257         https://bugs.webkit.org/show_bug.cgi?id=67796
2258
2259         Commit was premature (Requested by rolandsteiner on #webkit).
2260
2261         * html/HTMLAttributeNames.in:
2262         * html/HTMLStyleElement.cpp:
2263         * html/HTMLStyleElement.h:
2264         * html/HTMLStyleElement.idl:
2265
2266 2011-09-08  W. James MacLean  <wjmaclean@chromium.org>
2267
2268         [chromium] Add backend compositor support for rescaling (zooming) textures during zoom animation.
2269         https://bugs.webkit.org/show_bug.cgi?id=66472
2270
2271         This patch contains plumbing from Internals to WebViewImpl that can be removed
2272         at a later time when the zoom animator code is complete.
2273
2274         Reviewed by James Robinson.
2275
2276         Test: platform/chromium/compositing/zoom-animator-scale-test.html
2277
2278         * page/Settings.cpp:
2279         (WebCore::Settings::Settings):
2280         * page/Settings.h:
2281         (WebCore::Settings::setZoomAnimatorScale):
2282         (WebCore::Settings::zoomAnimatorScale):
2283         * platform/graphics/chromium/LayerRendererChromium.cpp:
2284         (WebCore::LayerRendererChromium::LayerRendererChromium):
2285         (WebCore::LayerRendererChromium::drawLayersInternal):
2286         * platform/graphics/chromium/LayerRendererChromium.h:
2287         (WebCore::LayerRendererChromium::setZoomAnimatorScale):
2288         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2289         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
2290         (WebCore::CCLayerTreeHost::commitTo):
2291         (WebCore::CCLayerTreeHost::setZoomAnimatorScale):
2292         (WebCore::CCLayerTreeHost::updateLayers):
2293         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2294         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2295         (WebCore::CCLayerTreeHostImpl::setZoomAnimatorScale):
2296         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2297         * testing/Internals.cpp:
2298         (WebCore::Internals::setZoomAnimatorScale):
2299         * testing/Internals.h:
2300         * testing/Internals.idl:
2301
2302 2011-09-08  Eric Carlson  <eric.carlson@apple.com>
2303
2304         HTMLMediaElement is missing initialTime attribute
2305         https://bugs.webkit.org/show_bug.cgi?id=67791
2306
2307         Reviewed by Darin Adler.
2308
2309         Test: media/media-initialTime.html
2310
2311         * html/HTMLMediaElement.cpp:
2312         (WebCore::HTMLMediaElement::initialTime):
2313         * html/HTMLMediaElement.h:
2314         * html/HTMLMediaElement.idl:
2315         * platform/graphics/MediaPlayer.cpp:
2316         (WebCore::MediaPlayer::initialTime):
2317         * platform/graphics/MediaPlayer.h:
2318         * platform/graphics/MediaPlayerPrivate.h:
2319         (WebCore::MediaPlayerPrivateInterface::initialTime):
2320
2321 2011-09-03  Robert Hogan  <robert@webkit.org>
2322
2323         Elements with position:absolute don't move to correct position after images load
2324         https://bugs.webkit.org/show_bug.cgi?id=54611
2325
2326         Reviewed by Simon Fraser.
2327
2328         Test: fast/block/positioning/absolute-layout-after-image-load.html
2329
2330         In the test the 'label' block is an absolutely positioned child of an inline flow. So during layout, 
2331         this RenderBlock::layoutPositionedObjects fails to dirty it for rendering because it requires 
2332         the parent to be a BlockFlow. The code to do this was introduced in http://trac.webkit.org/changeset/8284. 
2333         There doesn't seem to be a good reason for requiring a BlockFlow, so remove the check. 
2334
2335         Note: Although the issue is encountered only on first load without a fragment identifier, it 
2336         happens reliably when you include the fragment identifier in the url (#Footnote_1). This is so 
2337         because scrolling to the fragment always happens before the image has loaded, rendering the page 
2338         and clearing the initial dirty bits in the positioned element's renderer. When the image finally 
2339         loads in this scenario, the positioned element is otherwise clean and relies on the above code to get 
2340         re-rendered.
2341
2342         Note: This was originally landed in r94755 but positioned-float-layout-after-image-load.html exposed
2343               an ASSERT bug, unrelated to this change, and was rolled out. That issue is tracked separately
2344               in bug 67759.
2345
2346         * rendering/RenderBlock.cpp:
2347         (WebCore::RenderBlock::layoutPositionedObjects): remove the check for r->parent()->isBlockFlow() when 
2348                                                          deciding whether to mark children for layout
2349
2350 2011-09-08  Roland Steiner  <rolandsteiner@chromium.org>
2351
2352         <style scoped>: Add 'scoped' attribute
2353         https://bugs.webkit.org/show_bug.cgi?id=67718
2354
2355         Add 'scoped' attribute to IDL and attribute list,
2356         implement and test setting/resetting of the attribute.
2357
2358         Reviewed by Dimitri Glazkov.
2359
2360         Test: fast/css/style-scoped/basic-attribute.html
2361
2362         * html/HTMLAttributeNames.in:
2363         * html/HTMLStyleElement.cpp:
2364         (WebCore::HTMLStyleElement::scoped):
2365         (WebCore::HTMLStyleElement::setScoped):
2366         (WebCore::HTMLStyleElement::scopingElement):
2367         * html/HTMLStyleElement.h:
2368         * html/HTMLStyleElement.idl:
2369
2370 2011-09-08  Erik Arvidsson  <arv@chromium.org>
2371
2372         Move Element.contains to Node
2373         https://bugs.webkit.org/show_bug.cgi?id=67651
2374
2375         Reviewed by Darin Adler.
2376
2377         This moves the contains method from Element to Node as in the DOM4 working draft: 
2378         http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-contains
2379
2380         This also special cases Document contains to make it O(1) instead of O(depth).
2381
2382         Tests: fast/dom/Node/contains-method.html
2383                perf/document-contains.html
2384
2385         * dom/Element.idl:
2386         * dom/Node.cpp:
2387         (WebCore::Node::contains): Added document special case.
2388         * dom/Node.idl:
2389         * editing/DeleteSelectionCommand.cpp:
2390         (WebCore::DeleteSelectionCommand::mergeParagraphs): Added a null check.
2391
2392 2011-09-08  Chris Rogers  <crogers@google.com>
2393
2394         Check AudioContext createChannelMerger() for thread safety
2395         https://bugs.webkit.org/show_bug.cgi?id=67247
2396
2397         Reviewed by Kenneth Russell.
2398
2399         Test: webaudio/audiochannelmerger-stereo.html
2400
2401         * webaudio/AudioChannelMerger.cpp:
2402         (WebCore::AudioChannelMerger::process):
2403         (WebCore::AudioChannelMerger::checkNumberOfChannelsForInput):
2404         * webaudio/AudioChannelMerger.h:
2405
2406 2011-09-08  Ned Holbrook  <nholbrook@apple.com>
2407
2408         Refactor hyphen measurement
2409         https://bugs.webkit.org/show_bug.cgi?id=67728
2410
2411         Reviewed by Darin Adler.
2412
2413         No new tests, purely refactoring.
2414
2415         * rendering/RenderBlockLineLayout.cpp:
2416         (WebCore::measureHyphenWidth): Added.
2417         (WebCore::setLogicalWidthForTextRun): Use measureHyphenWidth().
2418         (WebCore::tryHyphenating): Ditto.
2419         (WebCore::RenderBlock::LineBreaker::nextLineBreak): Ditto.
2420
2421 2011-09-08  Julien Chaffraix  <jchaffraix@webkit.org>
2422
2423         Remove LayoutStateDisabler instances from RenderLayer
2424         https://bugs.webkit.org/show_bug.cgi?id=66896
2425
2426         Reviewed by Simon Fraser.
2427
2428         As part of r93614, scrollTo does not call updateLayerPositions anymore.
2429         This means that we don't need to disable LayoutState from the scrolling code
2430         in RenderLayer.
2431
2432         This change is covered by the existing tests.
2433
2434         * rendering/RenderLayer.cpp:
2435         (WebCore::RenderLayer::updateLayerPositions): Updated the comment
2436         that was not accurate anymore. Also explained what is wrong with
2437         LayoutState vs RenderLayer now. Note that the ASSERT is still
2438         valid and will not trigger as the remaining calls to updateLayerPositions
2439         are done *outside* layout() where LayoutState is not set (thus disabled).
2440
2441         (WebCore::RenderLayer::updateScrollInfoAfterLayout): Removed
2442         2 LayoutStateDisabler surrounding scrollToOffset.
2443
2444 2011-09-08  Julien Chaffraix  <jchaffraix@webkit.org>
2445
2446         Factor out the code to get the first non-null RenderTableSection in RenderTable
2447         https://bugs.webkit.org/show_bug.cgi?id=66972
2448
2449         Reviewed by Darin Adler.
2450
2451         Refactoring only, covered by existing tests.
2452
2453         * accessibility/AccessibilityTable.cpp:
2454         (WebCore::AccessibilityTable::addChildren):
2455         (WebCore::AccessibilityTable::cellForColumnAndRow):
2456         * accessibility/AccessibilityTableCell.cpp:
2457         (WebCore::AccessibilityTableCell::rowIndexRange):
2458         Updated those for the signature change in sectionBelow. Also added
2459         a FIXME where topSection should be used instead of iterating
2460         over the section (and likely missing some corner cases).
2461
2462         * rendering/FixedTableLayout.cpp:
2463         (WebCore::FixedTableLayout::calcWidthArray):
2464         * rendering/RenderTable.cpp:
2465         (WebCore::RenderTable::calcBorderStart):
2466         (WebCore::RenderTable::calcBorderEnd):
2467         (WebCore::RenderTable::outerBorderBefore):
2468         (WebCore::RenderTable::sectionAbove):
2469         (WebCore::RenderTable::sectionBelow):
2470         (WebCore::RenderTable::firstLineBoxBaseline):
2471         Updated all those functions to use the newly added functions. Also changed
2472         the variable names to match the functions.
2473
2474         (WebCore::RenderTable::layout):
2475         (WebCore::RenderTable::topNonEmptySection): Newly added function
2476         that returns the top non null section of the table that has at least a
2477         row.
2478
2479         (WebCore::RenderTable::cellAbove):
2480         (WebCore::RenderTable::cellBelow):
2481         Update the signature of those 2 functions to take an enum as it makes the
2482         rest of the code more readable.
2483
2484         * rendering/RenderTable.h:
2485         (WebCore::RenderTable::topSection): Newly added function to return
2486         the top non null section in the table.
2487
2488 2011-04-19  Eric Seidel  <eric@webkit.org>
2489
2490         Reviewed by Ryosuke Niwa.
2491
2492         [BiDi] [CSS3] MASTER: Add support for the unicode-bidi:isolate CSS property
2493         https://bugs.webkit.org/show_bug.cgi?id=50912
2494
2495         This patch adds support for CSS3 unicode-bidi: isolate property, under the -webkit- vendor prefix.
2496         Parsing support was added in a previous patch, this wires up the RenderStyle values
2497         to code changes in the BidiResolver.
2498
2499         The effect of this patch is that it makes it possible to "isolate" runs of text
2500         so that their RTL-ness or LTR-ness does not bleed out into the rest of your text
2501         and effect layout.  This is important because many unicode characters (like parenthesis, ':', '-', etc.)
2502         do not have intrinsic directionality and are affected by whatever characters come before/after.
2503         If you have usernames which include RTL text, if you inject those usernames in your page
2504         you might end up with nearby characters moving!
2505         (like 'RTL USERNAME - my awesome site' as a title, could end up as
2506         'my awesome site - USERNAME RTL' when correct would be 'USERNAME RTL - my awesome site'.)
2507         This patch makes it possible to wrap sections of text in isolated spans, so that
2508         they correctly order all their RTL/LTR contents, but also correctly participate in the
2509         larger RTL/LTR ordering without affecting nearby characters.
2510
2511         Because much of this code is old and rarely touched, I've included extra background
2512         information in hopes of expanding my set of potential reviewers:
2513
2514         WebKit uses the standard "Unicode Bidi Algorithm" henceforth known as the UBA.
2515         The UBA is defined at http://unicode.org/reports/tr9/ for those not faint of heart.
2516
2517         Text layout is done per-block (<div>, <p>, etc), and begins with a string of text
2518         (which in our case comes from the rendering tree) and a specified width.
2519         First:  Text is measured and wrapped into lines.
2520         Second: The UBA is run over the lines of text.
2521         Third:  WebKit builds InlineBoxes (its linebox tree) and eventually render the text.
2522
2523         This patch modifies our UBA to ignore all text content inside "isolated" inlines (treating them as neutral characters)
2524         and then adds another step after running the UBA, where we run the UBA recursively on any
2525         previously identified "isolated" content.
2526
2527         The result of the UBA is an ordered list of "runs" of text with the RTL runs
2528         correctly RTL and the LTR runs LTR.
2529
2530         The UBA does three things:
2531         1.  It assigns a "class" to each character in a text stream (like neutral, strongly-RTL, strongly-LTR, etc.)
2532         2.  Divides the text stream up into "runs" of characters of the same directionality (all RTL, all LTR).
2533         3.  Re-orders those runs.
2534
2535         The UBA in WebKit is implemented by BidiResolver<T> in BidiResolver.h
2536
2537         The InlineBidiResolver (BidiResolver specialization which knows about the rendering tree)
2538         walks along its InlineIterators, looking at each character and running the
2539         Unicode Bidi Algorithm (UBA).  It walks through the rendering tree subtree under
2540         a block, using a (poorly named) bidiNext function which returns the next inline object.
2541         Each inline object (or text character there-in) has a corresponding meaning in the UBA
2542         such as a "strong RTL" character or a "neutral" character.  The UBA reads these sequence
2543         of characters, and figures out what direction (RTL or LTR) to assign to any neutral
2544         characters it encounters, based on surrounding characters.
2545
2546         As the InlineBidiResolver is walking the rendering tree, the InlineIterator::advance()
2547         function calls bidiNext(), which in turn can call notifyObserverEnteredObject/notifyObserverWillExitObject
2548         notifying InlineBidiResolver that it is entering or exiting an "isolated"
2549         span, at which point it will either start or stop ignoring the stream of characters
2550         from the InlineIterator.  When the InlineBidiResolver is ignoring the stream of
2551         characters, instead of creating separate BidiRuns at each RTL/LTR boundary
2552         as it normally would, it instead creates one "fake" run for the entire
2553         isolated span.  These fake runs participate in the normal UBA run ordering process,
2554         but after the main UBA, a second pass is made where we examine
2555         the list of isolatedRuns() and run the UBA on each of them, replacing the fake
2556         run we previously inserted, with the resulting list of runs from that inner UBA run.
2557         The way it "ignores" characters is by treating them all as neutral when inside an isolate.
2558         Thus all the characters end up grouped in a single run, but their directionality (as a group)
2559         is correctly affected by any surrounding strong characters.
2560
2561         If you understood that last paragraph, than the rest of the change is just plumbing.
2562
2563         I added a huge number of FIXMEs to this code, because this code has a variety of
2564         design choices (or lack there of) which make some of this very difficult.
2565
2566         For example the bidiNext iterator function has two sets of mutually exclusive
2567         parameters and can be used optionally with or without an observer.  Prior to this
2568         change there was only ever one object which cared about observing a walk over inlines
2569         and that was InlineBidiResolver.  This patch (regretfully) templatizes bidiNext
2570         to support a new Observer type.  The correct fix would be to rip bidiNext into
2571         multiple functions and rip need for observation out of InlineBidiResolver.
2572         Unfortunately I've tried both in separate bugs and failed.  This code is very very
2573         old and very poorly understood.  We're slowly moving forward, this is another tiny step.
2574
2575         This is my fourth iteration of this patch (I'm happy to do more!), but I believe
2576         it's a good compromise between fixing all of the design gotcha's of our bidi
2577         system and doing the minimum amount to add this killer CSS feature.
2578
2579         I ran the PLT.  (It averaged 0.2% faster with this change, but I attribute that to noise).
2580
2581         Test: css3/unicode-bidi-isolate-basic.html and css3/unicode-bidi-isolate-aharon.html
2582
2583         * platform/text/BidiResolver.h:
2584         (WebCore::BidiCharacterRun::setNext):
2585          - Needed by the new replaceRunWithRuns function.
2586         (WebCore::BidiResolver::BidiResolver):
2587         (WebCore::BidiResolver::~BidiResolver):
2588         (WebCore::BidiResolver::enterIsolate):
2589         (WebCore::BidiResolver::exitIsolate):
2590         (WebCore::BidiResolver::inIsolate):
2591         (WebCore::BidiResolver::isolatedRuns):
2592          - Used to track isolated spans of text as they're encoutered.
2593            They're stuffed away here to be processed recursively
2594            after the main UBA has done its thang.
2595         (WebCore::::appendRun):
2596         (WebCore::::embed):
2597         (WebCore::::commitExplicitEmbedding):
2598         (WebCore::::createBidiRunsForLine):
2599         * platform/text/BidiRunList.h:
2600         (WebCore::::replaceRunWithRuns):
2601          - This effectively takes all the runs from one runlist and adds them to
2602            this one, replacing the fake run we inserted during a previous pass of the UBA.
2603          - This RunList now owns the runs, so we call clear() on the other RunList
2604            so that we don't end up double-freeing the runs.
2605         (WebCore::::clear):
2606          - This allows us to "take" runs from another run list and then clear it.
2607         * rendering/BidiRun.h:
2608         (WebCore::BidiRun::object):
2609         * rendering/InlineIterator.h:
2610         (WebCore::InlineIterator::object):
2611         (WebCore::InlineIterator::offset):
2612         (WebCore::notifyObserverEnteredObject): Mostly just renaming and adding a FIXME about plaintext.
2613         (WebCore::notifyObserverWillExitObject): Mostly just renaming.
2614         (WebCore::addPlaceholderRunForIsolatedInline):
2615         (WebCore::isIsolatedInline):
2616         (WebCore::InlineBidiResolver::appendRun):
2617         * rendering/RenderBlockLineLayout.cpp:
2618         (WebCore::statusWithDirection):
2619         (WebCore::constructBidiRuns):
2620          - This is the heavy-lifting of this change.  This function
2621            runs the UBA recursively on all the previously identified isolated spans.
2622          - If we encounter more isolated spans in our run, we just add them to the
2623            main list an keep going.  Because the runs are linked lists and we have
2624            direct pointers to our placeholder objects, we don't care what order
2625            we process the placeholders in, so long as when we're done, they're all processed.
2626         (WebCore::RenderBlock::layoutInlineChildren):
2627
2628 2011-09-08  Kentaro Hara  <haraken@google.com>
2629
2630         Implement a ProgressEvent constructor for JSC
2631         https://bugs.webkit.org/show_bug.cgi?id=67537
2632
2633         Reviewed by Sam Weinig.
2634
2635         The spec for the ProgressEvent constructor is here:
2636         http://www.w3.org/TR/progress-events/#interface-progressevent
2637
2638         Test: fast/events/constructors/progress-event-constructor.html
2639
2640         * bindings/generic/EventConstructors.h: Added a definition for the ProgressEvent constructor.
2641         * bindings/js/JSDictionary.cpp:
2642         (WebCore::JSDictionary::convertValue): Converts an ECMA-262 Number into an IDL unsigned long long value. Spec: http://www.w3.org/TR/WebIDL/#es-unsigned-long-long
2643         * bindings/js/JSEventConstructors.cpp: Added #includes for ProgressEvent.
2644         * dom/ProgressEvent.cpp:
2645         (WebCore::ProgressEventInit::ProgressEventInit):
2646         (WebCore::ProgressEvent::ProgressEvent):
2647         * dom/ProgressEvent.h: Added a definition for ProgressEventInit.
2648         (WebCore::ProgressEvent::create):
2649         * dom/ProgressEvent.idl: Makes ProgressEvent constructible.
2650
2651 2011-09-08  Ryosuke Niwa  <rniwa@webkit.org>
2652
2653         Make bindings tests quiet after r94701.
2654
2655         * bindings/scripts/test/JS/JSTestInterface.cpp:
2656         * bindings/scripts/test/JS/JSTestInterface.h:
2657         (WebCore::JSTestInterfacePrototype::JSTestInterfacePrototype):
2658         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2659         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
2660         (WebCore::JSTestMediaQueryListListenerPrototype::JSTestMediaQueryListListenerPrototype):
2661         * bindings/scripts/test/JS/JSTestObj.cpp:
2662         * bindings/scripts/test/JS/JSTestObj.h:
2663         (WebCore::JSTestObjPrototype::JSTestObjPrototype):
2664         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2665         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
2666         (WebCore::JSTestSerializedScriptValueInterfacePrototype::JSTestSerializedScriptValueInterfacePrototype):
2667
2668 2011-09-07  Pavel Podivilov  <podivilov@chromium.org>
2669
2670         Web Inspector: get rid of RawSourceCode.createSourceMappingIfNeeded.
2671         https://bugs.webkit.org/show_bug.cgi?id=67717
2672
2673         Listen to SourceMappingUpdated event instead of using createSourceMappingIfNeeded.
2674
2675         Reviewed by Yury Semikhatsky.
2676
2677         * inspector/front-end/DebuggerPresentationModel.js:
2678         (WebInspector.DebuggerPresentationModel):
2679         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation.updateAnchor):
2680         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
2681         (WebInspector.DebuggerPresentationModel.prototype._updateSourceMapping):
2682         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
2683         (WebInspector.DebuggerPresentationModel.prototype._restoreConsoleMessages):
2684         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
2685         (WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded):
2686         (WebInspector.DebuggerPresentationModel.prototype._createPresentationMessage):
2687         (WebInspector.DebuggerPresentationModel.prototype._consoleCleared):
2688         (WebInspector.DebuggerPresentationModel.prototype.continueToLine):
2689         (WebInspector.DebuggerPresentationModel.prototype.messagesForUISourceCode):
2690         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
2691         (WebInspector.PresentationCallFrame.prototype.sourceLine.sourceMappingUpdated):
2692         (WebInspector.PresentationCallFrame.prototype.sourceLine):
2693         * inspector/front-end/SourceFile.js:
2694
2695 2011-09-06  Pavel Podivilov  <podivilov@chromium.org>
2696
2697         Web Inspector: do not re-create RawSourceCode when toggling pretty-print mode.
2698         https://bugs.webkit.org/show_bug.cgi?id=67647
2699
2700         1) Implement RawSourceCode.setFormatted that allows toggling pretty-print mode on the fly without resetting everything.
2701         2) Add RawSourceCode unit tests.
2702         3) Remove source mapping listeners and console messages from presentation model (they live in RawSourceCode now).
2703
2704         Reviewed by Yury Semikhatsky.
2705
2706         Test: inspector/debugger/raw-source-code.html
2707
2708         * inspector/front-end/DebuggerPresentationModel.js:
2709         (WebInspector.DebuggerPresentationModel):
2710         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
2711         (WebInspector.DebuggerPresentationModel.prototype._addScript):
2712         (WebInspector.DebuggerPresentationModel.prototype._sourceMappingUpdated):
2713         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
2714         (WebInspector.DebuggerPresentationModel.prototype._createRawSourceCodeId):
2715         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
2716         * inspector/front-end/ScriptsPanel.js:
2717         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
2718         * inspector/front-end/SourceFile.js:
2719         (WebInspector.RawSourceCode):
2720         (WebInspector.RawSourceCode.prototype.get uiSourceCode):
2721         (WebInspector.RawSourceCode.prototype.setFormatted):
2722         (WebInspector.RawSourceCode.prototype.rawLocationToUILocation):
2723         (WebInspector.RawSourceCode.prototype._saveSourceMapping):
2724
2725 2011-09-08  Alexander Pavlov  <apavlov@chromium.org>
2726
2727         Web Inspector: [REGRESSION] Clear console shortcut Ctrl + L broken
2728         https://bugs.webkit.org/show_bug.cgi?id=67711
2729
2730         Reviewed by Yury Semikhatsky.
2731
2732         * inspector/front-end/ConsoleView.js:
2733         (WebInspector.ConsoleView.prototype._consoleCleared):
2734         (WebInspector.ConsoleView.prototype._registerShortcuts):
2735         (WebInspector.ConsoleView.prototype._promptKeyDown):
2736
2737 2011-09-08  Andras Becsi  <andras.becsi@nokia.com>
2738
2739         [Qt] Build fails with strict compiler
2740         https://bugs.webkit.org/show_bug.cgi?id=67778
2741
2742         Reviewed by Csaba Osztrogon√°c.
2743
2744         No new tests needed.
2745
2746         * platform/graphics/TiledBackingStore.cpp:
2747         (WebCore::TiledBackingStore::resizeEdgeTiles): Remove unused contentsRect variable
2748         which's usage was removed in r94681 to fix the build with [-Werror=unused-but-set-variable].
2749
2750 2011-09-08  Sheriff Bot  <webkit.review.bot@gmail.com>
2751
2752         Unreviewed, rolling out r94695.
2753         http://trac.webkit.org/changeset/94695
2754         https://bugs.webkit.org/show_bug.cgi?id=67776
2755
2756         Hitting an assertion on Snow Leopard, Qt, GTK (Requested by
2757         Zoltan on #webkit).
2758
2759         * rendering/RenderBlock.cpp:
2760         (WebCore::RenderBlock::positionedFloatsNeedRelayout):
2761         (WebCore::RenderBlock::layoutPositionedObjects):
2762
2763 2011-09-08  Alexander Pavlov  <apavlov@chromium.org>
2764
2765         Unreviewed, strip trailing whitespace in the Web Inspector frontend (*.js and *.css).
2766
2767         * inspector/front-end/ApplicationCacheItemsView.js:
2768         * inspector/front-end/AuditResultView.js:
2769         * inspector/front-end/BinarySearch.js:
2770         * inspector/front-end/CSSStyleModel.js:
2771         * inspector/front-end/ConsoleMessage.js:
2772         * inspector/front-end/ConsoleModel.js:
2773         * inspector/front-end/ConsoleView.js:
2774         * inspector/front-end/CookieItemsView.js:
2775         * inspector/front-end/CookieParser.js:
2776         * inspector/front-end/DOMAgent.js:
2777         * inspector/front-end/DOMStorage.js:
2778         * inspector/front-end/DOMStorageItemsView.js:
2779         * inspector/front-end/DataGrid.js:
2780         * inspector/front-end/Database.js:
2781         * inspector/front-end/DatabaseQueryView.js:
2782         * inspector/front-end/DetailedHeapshotGridNodes.js:
2783         * inspector/front-end/DetailedHeapshotView.js:
2784         * inspector/front-end/ElementsTreeOutline.js:
2785         * inspector/front-end/EmptyView.js:
2786         * inspector/front-end/EventListenersSidebarPane.js:
2787         * inspector/front-end/ExtensionCommon.js:
2788         * inspector/front-end/GoToLineDialog.js:
2789         * inspector/front-end/HeapSnapshot.js:
2790         * inspector/front-end/HeapSnapshotProxy.js:
2791         * inspector/front-end/HeapSnapshotWorkerDispatcher.js:
2792         * inspector/front-end/ImageView.js:
2793         * inspector/front-end/InjectedFakeWorker.js:
2794         * inspector/front-end/InspectorFrontendHostStub.js:
2795         * inspector/front-end/MetricsSidebarPane.js:
2796         * inspector/front-end/NetworkManager.js:
2797         * inspector/front-end/NetworkPanel.js:
2798         * inspector/front-end/ObjectPropertiesSection.js:
2799         * inspector/front-end/PartialQuickSort.js:
2800         * inspector/front-end/ProfileView.js:
2801         * inspector/front-end/ProfilesPanel.js:
2802         * inspector/front-end/RemoteObject.js:
2803         * inspector/front-end/Resource.js:
2804         * inspector/front-end/ResourceCategory.js:
2805         * inspector/front-end/ResourceHTMLView.js:
2806         * inspector/front-end/ResourceHeadersView.js:
2807         * inspector/front-end/ResourceJSONView.js:
2808         * inspector/front-end/ResourceTimingView.js:
2809         * inspector/front-end/ResourceTreeModel.js:
2810         * inspector/front-end/ResourceView.js:
2811         * inspector/front-end/ResourcesPanel.js:
2812         * inspector/front-end/SearchController.js:
2813         * inspector/front-end/SettingsScreen.js:
2814         * inspector/front-end/ShortcutsScreen.js:
2815         * inspector/front-end/SourceCSSTokenizer.js:
2816         * inspector/front-end/SourceHTMLTokenizer.js:
2817         * inspector/front-end/SourceJavaScriptTokenizer.js:
2818         * inspector/front-end/StatusBarButton.js:
2819         * inspector/front-end/TextEditorModel.js:
2820         * inspector/front-end/TimelineGrid.js:
2821         * inspector/front-end/View.js:
2822         * inspector/front-end/heapProfiler.css:
2823         * inspector/front-end/inspector.css:
2824         * inspector/front-end/inspector.js:
2825         * inspector/front-end/inspectorSyntaxHighlight.css:
2826         * inspector/front-end/networkPanel.css:
2827         * inspector/front-end/treeoutline.js:
2828         * inspector/front-end/utilities.js:
2829
2830 2011-09-07  Andrey Kosyakov  <caseq@chromium.org>
2831
2832         Web Inspector: trying to scroll mouse wheel when in TextViewer's gutter pane causes EventException::DISPATCH_REQUEST_ERR
2833         https://bugs.webkit.org/show_bug.cgi?id=67715
2834
2835         Reviewed by Yury Semikhatsky.
2836
2837         - avoid exception on attempt to dispatch an event that is being dispatched by cloning the event.
2838
2839         * inspector/front-end/TextViewer.js:
2840         (WebInspector.TextViewer.forwardWheelEvent):
2841         (WebInspector.TextViewer):
2842
2843 2011-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
2844
2845         Unreviewed, rolling out r94674 and r94689.
2846         http://trac.webkit.org/changeset/94674
2847         http://trac.webkit.org/changeset/94689
2848         https://bugs.webkit.org/show_bug.cgi?id=67754
2849
2850         Broke inspector/debugger/script-formatter.html (Requested by
2851         rniwa on #webkit).
2852
2853         * inspector/front-end/DebuggerPresentationModel.js:
2854         (WebInspector.DebuggerPresentationModel):
2855         (WebInspector.DebuggerPresentationModel.prototype.addSourceMappingListener):
2856         (WebInspector.DebuggerPresentationModel.prototype.removeSourceMappingListener):
2857         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
2858         (WebInspector.DebuggerPresentationModel.prototype._addScript):
2859         (WebInspector.DebuggerPresentationModel.prototype._sourceMappingUpdated):
2860         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
2861         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
2862         (WebInspector.DebuggerPresentationModel.prototype._createRawSourceCodeId):
2863         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
2864         * inspector/front-end/ScriptsPanel.js:
2865         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
2866         * inspector/front-end/SourceFile.js:
2867         (WebInspector.RawSourceCode):
2868         (WebInspector.RawSourceCode.prototype.get uiSourceCode):
2869         (WebInspector.RawSourceCode.prototype.get rawSourceCode):
2870         (WebInspector.RawSourceCode.prototype.rawLocationToUILocation):
2871         (WebInspector.RawSourceCode.prototype.requestContent):
2872         (WebInspector.RawSourceCode.prototype._saveSourceMapping):
2873
2874 2011-09-07  Julien Chaffraix  <jchaffraix@webkit.org>
2875
2876         offsetFromRoot optimization is disabled after r93837
2877         https://bugs.webkit.org/show_bug.cgi?id=67677
2878
2879         Reviewed by Simon Fraser.
2880
2881         Unfortunately not covered by any test as it does not change updateLayerPosition complexity (it is still O(n^2)
2882         because of clippedOverflowRectForRepaint). However it is a noticeable slowdown on some use cases but we don't
2883         have a good test harness to cover such slowdown.
2884
2885         * rendering/RenderLayer.cpp:
2886         (WebCore::RenderLayer::updateLayerPositions): Pass offsetFromRoot as not doing so means that we miss
2887         the optimization altogether.
2888
2889         (WebCore::RenderLayer::computeRepaintRects):
2890         (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
2891         * rendering/RenderLayer.h:
2892         Renamed |cachedOffset| to |offsetFromRoot| to be consistent with our latest renaming.
2893
2894 2011-09-07  Ryosuke Niwa  <rniwa@webkit.org>
2895
2896         Windows build fix after r94737.
2897
2898         * rendering/RenderBlock.cpp:
2899         (WebCore::RenderBlock::adjustRectForColumns):
2900
2901 2011-09-07  Dan Bernstein  <mitz@apple.com>
2902
2903         Removed hyphenation function implementations for an usupported build configuration.
2904
2905         Reviewed by Sam Weinig.
2906
2907         * platform/text/cf/HyphenationCF.cpp:
2908
2909 2011-09-07  David Hyatt  <hyatt@apple.com>
2910
2911         https://bugs.webkit.org/show_bug.cgi?id=67739
2912
2913         adjustRectForColumns is O(# of columns) when it can be O(1). Fix the slow performance of this
2914         function by removing the loop and just computing the start and end column for a repaint rect
2915         and uniting everything in between.
2916
2917         Reviewed by Dan Bernstein.
2918
2919         * rendering/RenderBlock.cpp:
2920         (WebCore::RenderBlock::adjustRectForColumns):
2921
2922 2011-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
2923
2924         Unreviewed, rolling out r94714 and r94723.
2925         http://trac.webkit.org/changeset/94714
2926         http://trac.webkit.org/changeset/94723
2927         https://bugs.webkit.org/show_bug.cgi?id=67746
2928
2929         breaks gtk-linux tests with assertion failure (Requested by
2930         thorton on #webkit).
2931
2932         * platform/graphics/GraphicsContext.cpp:
2933         (WebCore::GraphicsContext::GraphicsContext):
2934         (WebCore::GraphicsContext::~GraphicsContext):
2935         * platform/graphics/GraphicsContext.h:
2936         (WebCore::GraphicsContext::inTransparencyLayer):
2937         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2938         (WebCore::GraphicsContext::beginTransparencyLayer):
2939         (WebCore::GraphicsContext::endTransparencyLayer):
2940         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
2941         (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
2942         (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
2943         * platform/graphics/cg/GraphicsContextCG.cpp:
2944         (WebCore::GraphicsContext::beginTransparencyLayer):
2945         (WebCore::GraphicsContext::endTransparencyLayer):
2946         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
2947         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
2948         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
2949         (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
2950         (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
2951         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
2952         (WebCore::GraphicsContext::beginTransparencyLayer):
2953         (WebCore::GraphicsContext::endTransparencyLayer):
2954         * platform/graphics/mac/FontMac.mm:
2955         (WebCore::Font::drawGlyphs):
2956         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
2957         (WebCore::GraphicsContext::beginTransparencyLayer):
2958         (WebCore::GraphicsContext::endTransparencyLayer):
2959         * platform/graphics/qt/GraphicsContextQt.cpp:
2960         (WebCore::GraphicsContext::inTransparencyLayer):
2961         (WebCore::GraphicsContext::beginTransparencyLayer):
2962         (WebCore::GraphicsContext::endTransparencyLayer):
2963         * platform/graphics/skia/GraphicsContextSkia.cpp:
2964         (WebCore::GraphicsContext::beginTransparencyLayer):
2965         (WebCore::GraphicsContext::endTransparencyLayer):
2966         * platform/graphics/win/FontCGWin.cpp:
2967         (WebCore::drawGDIGlyphs):
2968         * platform/graphics/win/GraphicsContextCGWin.cpp:
2969         (WebCore::GraphicsContext::releaseWindowsContext):
2970         * platform/graphics/win/GraphicsContextCairoWin.cpp:
2971         (WebCore::GraphicsContext::releaseWindowsContext):
2972         * platform/graphics/win/GraphicsContextWin.cpp:
2973         (WebCore::GraphicsContext::inTransparencyLayer):
2974         (WebCore::GraphicsContext::getWindowsContext):
2975         * platform/graphics/wince/GraphicsContextWinCE.cpp:
2976         (WebCore::GraphicsContext::beginTransparencyLayer):
2977         (WebCore::GraphicsContext::endTransparencyLayer):
2978         * platform/graphics/wx/GraphicsContextWx.cpp:
2979         (WebCore::GraphicsContext::beginTransparencyLayer):
2980         (WebCore::GraphicsContext::endTransparencyLayer):
2981         * platform/win/ScrollbarThemeWin.cpp:
2982         (WebCore::ScrollbarThemeWin::paintTrackPiece):
2983         (WebCore::ScrollbarThemeWin::paintButton):
2984         (WebCore::ScrollbarThemeWin::paintThumb):
2985         * plugins/win/PluginViewWin.cpp:
2986         (WebCore::PluginView::paint):
2987         * rendering/RenderThemeWin.cpp:
2988         (WebCore::drawControl):
2989
2990 2011-09-07  Chris Fleizach  <cfleizach@apple.com>
2991
2992         Changes to aria-hidden don't change VO navigation
2993         https://bugs.webkit.org/show_bug.cgi?id=67722
2994
2995         Reviewed by Darin Adler.
2996
2997         When altering aria-hidden, WebCore needs to update the children caches of 
2998         affected elements. However, for elements that were children, but ignored, their
2999         caches did not get updated, and stale information would be propagated.
3000
3001         The fix is to always clearChildren() when a parent is asking for children. This 
3002         ensures information is always up to date when the parent itself is asking for new data.
3003
3004         Test: accessibility/aria-hidden-updates-alldescendants.html
3005
3006         * accessibility/AccessibilityObject.h:
3007         * accessibility/AccessibilityRenderObject.cpp:
3008         (WebCore::AccessibilityRenderObject::ariaIsHidden):
3009         (WebCore::AccessibilityRenderObject::childrenChanged):
3010         (WebCore::AccessibilityRenderObject::addChildren):
3011
3012 2011-09-07  Tim Horton  <timothy_horton@apple.com>
3013
3014         Text rendered with a simple (i.e. 0px blur) shadow inside a transparency layer has a double shadow
3015         https://bugs.webkit.org/show_bug.cgi?id=67543
3016         <rdar://problem/10070536>
3017
3018         Reviewed by Simon Fraser.
3019
3020         Generalize (begin|end)TransparencyLayer, which now forward
3021         through to (begin|end)PlatformTransparencyLayer, so that
3022         isInTransparencyLayer can exist on every platform.
3023
3024         Make use of isInTransparencyLayer in FontMac to disable
3025         "simple" shadow drawing when the text is being rendered
3026         into a transparency layer.
3027
3028         Test: svg/custom/simple-text-double-shadow.svg
3029
3030         * platform/graphics/GraphicsContext.cpp:
3031         (WebCore::GraphicsContext::GraphicsContext):
3032         (WebCore::GraphicsContext::~GraphicsContext):
3033         (WebCore::GraphicsContext::beginTransparencyLayer):
3034         (WebCore::GraphicsContext::endTransparencyLayer):
3035         (WebCore::GraphicsContext::isInTransparencyLayer):
3036         * platform/graphics/GraphicsContext.h:
3037         * platform/graphics/cairo/GraphicsContextCairo.cpp:
3038         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
3039         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
3040         (WebCore::GraphicsContext::supportsTransparencyLayers):
3041         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
3042         * platform/graphics/cg/GraphicsContextCG.cpp:
3043         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
3044         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
3045         (WebCore::GraphicsContext::supportsTransparencyLayers):
3046         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
3047         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
3048         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
3049         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
3050         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
3051         (WebCore::GraphicsContext::supportsTransparencyLayers):
3052         * platform/graphics/mac/FontMac.mm:
3053         (WebCore::Font::drawGlyphs):
3054         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
3055         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
3056         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
3057         (WebCore::GraphicsContext::supportsTransparencyLayers):
3058         * platform/graphics/qt/GraphicsContextQt.cpp:
3059         (WebCore::GraphicsContext::isInTransparencyLayer):
3060         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
3061         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
3062         (WebCore::GraphicsContext::supportsTransparencyLayers):
3063         * platform/graphics/skia/GraphicsContextSkia.cpp:
3064         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
3065         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
3066         (WebCore::GraphicsContext::supportsTransparencyLayers):
3067         * platform/graphics/win/FontCGWin.cpp:
3068         (WebCore::drawGDIGlyphs):
3069         * platform/graphics/win/GraphicsContextCGWin.cpp:
3070         (WebCore::GraphicsContext::releaseWindowsContext):
3071         * platform/graphics/win/GraphicsContextCairoWin.cpp:
3072         (WebCore::GraphicsContext::releaseWindowsContext):
3073         * platform/graphics/win/GraphicsContextWin.cpp:
3074         (WebCore::GraphicsContext::getWindowsContext):
3075         * platform/graphics/wince/GraphicsContextWinCE.cpp:
3076         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
3077         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
3078         (WebCore::GraphicsContext::supportsTransparencyLayers):
3079         * platform/graphics/wx/GraphicsContextWx.cpp:
3080         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
3081         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
3082         (WebCore::GraphicsContext::supportsTransparencyLayers):
3083         * platform/win/ScrollbarThemeWin.cpp:
3084         * plugins/win/PluginViewWin.cpp:
3085         * rendering/RenderThemeWin.cpp:
3086
3087 2011-09-07  Dan Bernstein  <mitz@apple.com>
3088
3089         <rdar://problem/8881922> Support the hyphenate-limit-lines property
3090         https://bugs.webkit.org/show_bug.cgi?id=67730
3091
3092         Reviewed by Dave Hyatt.
3093
3094         Tests: fast/css/parsing-hyphenate-limit-lines.html
3095                fast/text/hyphenate-limit-lines.html
3096
3097         * css/CSSComputedStyleDeclaration.cpp:
3098         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Added hyphenate-limit-lines.
3099         * css/CSSParser.cpp:
3100         (WebCore::CSSParser::parseValue): Ditto. Valid values are non-negative integers and the keyword
3101         "no-limit".
3102         * css/CSSPropertyNames.in: Added -webkit-hyphenate-limit-lines.
3103         * css/CSSStyleSelector.cpp:
3104         (WebCore::CSSStyleSelector::applyProperty): Added hyphenate-limit-lines.
3105         * css/CSSValueKeywords.in: Added the "no-limit" value keyword.
3106         * rendering/RenderBlock.h:
3107         * rendering/RenderBlockLineLayout.cpp:
3108         (WebCore::RenderBlock::layoutRunsAndFloats): Count the number of consecutive hyphenated lines
3109         before the start line and pass it to layoutRunsAndFloatsInRange().
3110         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Keep track of the number of consecutive
3111         hyphenated lines before the current line and pass it to LineBreaker::nextLineBreak().
3112         (WebCore::tryHyphenating): Added parameters for the number of consecutive hyphenated lines before
3113         the current line and the limit on consecutive hyphenated lines, and an early return if the limit
3114         has been reached.
3115         (WebCore::RenderBlock::LineBreaker::nextLineBreak): Added a parameter for the number of consecutive
3116         hyphenated lines before the current line, which is passed through to tryHyphenating, along with
3117         the value of hyphenate-limit-lines.
3118         * rendering/RootInlineBox.cpp:
3119         (WebCore::RootInlineBox::isHyphenated): Added. Returns true if the line was hyphenated.
3120         * rendering/RootInlineBox.h:
3121         * rendering/style/RenderStyle.h:
3122         (WebCore::InheritedFlags::hyphenationLimitLines): Added this getter.
3123         (WebCore::InheritedFlags::setHyphenationLimitLines): Added this setter.
3124         (WebCore::InheritedFlags::initialHyphenationLimitLines): Added. The initial value is -1,
3125         corresponding to "no-limit".
3126         * rendering/style/StyleRareInheritedData.cpp:
3127         (WebCore::StyleRareInheritedData::StyleRareInheritedData): Initialize new member variable.
3128         (WebCore::StyleRareInheritedData::operator==): Compare new member variable.
3129         * rendering/style/StyleRareInheritedData.h:
3130
3131 2011-09-02  Ojan Vafai  <ojan@chromium.org>
3132
3133         split overrideSize into overrideHeight and overrideWidth
3134         https://bugs.webkit.org/show_bug.cgi?id=67550
3135
3136         Reviewed by Sam Weinig.
3137
3138         All uses of overrideSize only set one of the width or the height.
3139         This change removes a bool from RenderObject and removes some
3140         flexbox specific logic from RenderBox.
3141
3142         The only downside is that we have two global maps where we used
3143         to have one.
3144
3145         No functional changes so existing tests are sufficient.
3146
3147         * rendering/RenderBox.cpp:
3148         (WebCore::RenderBox::hasOverrideHeight):
3149         (WebCore::RenderBox::hasOverrideWidth):
3150         (WebCore::RenderBox::setOverrideHeight):
3151         (WebCore::RenderBox::setOverrideWidth):
3152         (WebCore::RenderBox::clearOverrideSize):
3153         (WebCore::RenderBox::overrideWidth):
3154         (WebCore::RenderBox::overrideHeight):
3155         (WebCore::RenderBox::computeLogicalWidth):
3156         (WebCore::RenderBox::computeLogicalHeight):
3157         (WebCore::RenderBox::computePercentageLogicalHeight):
3158         * rendering/RenderBox.h:
3159         * rendering/RenderDeprecatedFlexibleBox.cpp:
3160         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
3161         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
3162         (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
3163         * rendering/RenderFlexibleBox.cpp:
3164         (WebCore::RenderFlexibleBox::layoutAndPlaceChildrenHorizontal):
3165         * rendering/RenderObject.cpp:
3166         (WebCore::RenderObject::RenderObject):
3167         * rendering/RenderObject.h:
3168         * rendering/RenderTableCell.cpp:
3169         (WebCore::RenderTableCell::setOverrideHeightFromRowHeight):
3170         * rendering/RenderTableCell.h:
3171         * rendering/RenderTableSection.cpp:
3172         (WebCore::RenderTableSection::calcRowLogicalHeight):
3173         (WebCore::RenderTableSection::layoutRows):
3174
3175 2011-09-07  Alexei Svitkine  <asvitkine@chromium.org>
3176
3177         Add test infrastructure to test rubber-banding overhang drawing along with layout tests for existing Chromium Mac overhang drawing in the non-gpu path.
3178         https://bugs.webkit.org/show_bug.cgi?id=67511
3179
3180         Reviewed by Dimitri Glazkov.
3181
3182         Tests: platform/chromium-mac/rubberbanding/overhang-e.html
3183                platform/chromium-mac/rubberbanding/overhang-n.html
3184                platform/chromium-mac/rubberbanding/overhang-ne.html
3185                platform/chromium-mac/rubberbanding/overhang-nw.html
3186                platform/chromium-mac/rubberbanding/overhang-s.html
3187                platform/chromium-mac/rubberbanding/overhang-se.html
3188                platform/chromium-mac/rubberbanding/overhang-sw.html
3189                platform/chromium-mac/rubberbanding/overhang-w.html
3190
3191         * WebCore.exp.in:
3192         * platform/ScrollableArea.h:
3193         * testing/Internals.cpp:
3194         (WebCore::Internals::setScrollViewPosition):
3195         * testing/Internals.h:
3196         * testing/Internals.idl:
3197
3198 2011-09-07  David Reveman  <reveman@chromium.org>
3199
3200         [Chromium] Render surface anti-aliasing.
3201         https://bugs.webkit.org/show_bug.cgi?id=66437
3202
3203         Reviewed by James Robinson.
3204
3205         Add CCLayerQuad class and CCLayerQuad::Edge subclass to allow
3206         edge computations to be shared between tiled layers and render
3207         surfaces. Move isCCW utility function to FloatQuad class and
3208         add to2dTransform method to TransformationMatrix class. Add
3209         necessary anti-aliasing shaders for render surfaces and use them
3210         to avoid aliased edges.
3211
3212         Tests: compositing/reflections/nested-reflection-transformed.html (existing)
3213
3214         * WebCore.gypi:
3215         * platform/graphics/FloatQuad.cpp:
3216         (WebCore::FloatQuad::isCounterclockwise):
3217         * platform/graphics/FloatQuad.h:
3218         * platform/graphics/chromium/LayerChromium.cpp:
3219         (WebCore::LayerChromium::drawTexturedQuad):
3220         * platform/graphics/chromium/LayerChromium.h:
3221         * platform/graphics/chromium/LayerRendererChromium.cpp:
3222         (WebCore::LayerRendererChromium::LayerRendererChromium):
3223         (WebCore::LayerRendererChromium::headsUpDisplayProgram):
3224         (WebCore::LayerRendererChromium::renderSurfaceProgram):
3225         (WebCore::LayerRendererChromium::renderSurfaceProgramAA):
3226         (WebCore::LayerRendererChromium::renderSurfaceMaskProgram):
3227         (WebCore::LayerRendererChromium::renderSurfaceMaskProgramAA):
3228         (WebCore::LayerRendererChromium::tilerProgramSwizzle):
3229         (WebCore::LayerRendererChromium::canvasLayerProgram):
3230         (WebCore::LayerRendererChromium::pluginLayerProgram):
3231         (WebCore::LayerRendererChromium::videoLayerRGBAProgram):
3232         (WebCore::LayerRendererChromium::videoLayerYUVProgram):
3233         (WebCore::LayerRendererChromium::cleanupSharedObjects):
3234         * platform/graphics/chromium/LayerRendererChromium.h:
3235         (WebCore::LayerRendererChromium::sharedGeometryQuad):
3236         * platform/graphics/chromium/ShaderChromium.cpp:
3237         (WebCore::VertexShaderQuad::VertexShaderQuad):
3238         (WebCore::VertexShaderQuad::init):
3239         (WebCore::VertexShaderQuad::getShaderString):
3240         (WebCore::FragmentShaderRGBATexAlphaAA::FragmentShaderRGBATexAlphaAA):
3241         (WebCore::FragmentShaderRGBATexAlphaAA::init):
3242         (WebCore::FragmentShaderRGBATexAlphaAA::getShaderString):
3243         (WebCore::FragmentTexClampAlphaAABinding::FragmentTexClampAlphaAABinding):
3244         (WebCore::FragmentTexClampAlphaAABinding::init):
3245         (WebCore::FragmentShaderRGBATexClampAlphaAA::getShaderString):
3246         (WebCore::FragmentShaderRGBATexClampSwizzleAlphaAA::getShaderString):
3247         (WebCore::FragmentShaderRGBATexAlphaMaskAA::FragmentShaderRGBATexAlphaMaskAA):
3248         (WebCore::FragmentShaderRGBATexAlphaMaskAA::init):
3249         (WebCore::FragmentShaderRGBATexAlphaMaskAA::getShaderString):
3250         * platform/graphics/chromium/ShaderChromium.h:
3251         (WebCore::VertexShaderQuad::matrixLocation):
3252         (WebCore::VertexShaderQuad::pointLocation):
3253         (WebCore::FragmentShaderRGBATexAlphaAA::alphaLocation):
3254         (WebCore::FragmentShaderRGBATexAlphaAA::samplerLocation):
3255         (WebCore::FragmentShaderRGBATexAlphaAA::edgeLocation):
3256         (WebCore::FragmentShaderRGBATexAlphaMaskAA::alphaLocation):
3257         (WebCore::FragmentShaderRGBATexAlphaMaskAA::samplerLocation):
3258         (WebCore::FragmentShaderRGBATexAlphaMaskAA::maskSamplerLocation):
3259         (WebCore::FragmentShaderRGBATexAlphaMaskAA::edgeLocation):
3260         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
3261         (WebCore::CCCanvasLayerImpl::draw):
3262         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
3263         (WebCore::CCHeadsUpDisplay::draw):
3264         * platform/graphics/chromium/cc/CCLayerQuad.cpp: Added.
3265         (WebCore::CCLayerQuad::Edge::Edge):
3266         (WebCore::CCLayerQuad::CCLayerQuad):
3267         (WebCore::CCLayerQuad::floatQuad):
3268         (WebCore::CCLayerQuad::toFloatArray):
3269         * platform/graphics/chromium/cc/CCLayerQuad.h: Added.
3270         (WebCore::CCLayerQuad::Edge::Edge):
3271         (WebCore::CCLayerQuad::Edge::x):
3272         (WebCore::CCLayerQuad::Edge::y):
3273         (WebCore::CCLayerQuad::Edge::z):
3274         (WebCore::CCLayerQuad::Edge::setX):
3275         (WebCore::CCLayerQuad::Edge::setY):
3276         (WebCore::CCLayerQuad::Edge::setZ):
3277         (WebCore::CCLayerQuad::Edge::set):
3278         (WebCore::CCLayerQuad::Edge::moveX):
3279         (WebCore::CCLayerQuad::Edge::moveY):
3280         (WebCore::CCLayerQuad::Edge::moveZ):
3281         (WebCore::CCLayerQuad::Edge::move):
3282         (WebCore::CCLayerQuad::Edge::scaleX):
3283         (WebCore::CCLayerQuad::Edge::scaleY):
3284         (WebCore::CCLayerQuad::Edge::scaleZ):
3285         (WebCore::CCLayerQuad::Edge::scale):
3286         (WebCore::CCLayerQuad::Edge::intersect):
3287         (WebCore::CCLayerQuad::CCLayerQuad):
3288         (WebCore::CCLayerQuad::left):
3289         (WebCore::CCLayerQuad::top):
3290         (WebCore::CCLayerQuad::right):
3291         (WebCore::CCLayerQuad::bottom):
3292         (WebCore::CCLayerQuad::inflateX):
3293         (WebCore::CCLayerQuad::inflateY):
3294         (WebCore::CCLayerQuad::inflate):
3295         (WebCore::CCLayerQuad::inflateAntiAliasingDistance):
3296         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
3297         (WebCore::CCPluginLayerImpl::draw):
3298         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
3299         (WebCore::CCRenderSurface::draw):
3300         (WebCore::CCRenderSurface::drawLayer):
3301         (WebCore::CCRenderSurface::drawSurface):
3302         * platform/graphics/chromium/cc/CCRenderSurface.h:
3303         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
3304         (WebCore::CCTiledLayerImpl::draw):
3305         (WebCore::CCTiledLayerImpl::drawTiles):
3306         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
3307         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
3308         (WebCore::CCVideoLayerImpl::drawYUV):
3309         (WebCore::CCVideoLayerImpl::drawRGBA):
3310         * platform/graphics/transforms/TransformationMatrix.cpp:
3311         (WebCore::TransformationMatrix::to2dTransform):
3312         * platform/graphics/transforms/TransformationMatrix.h:
3313
3314 2011-09-06  Oliver Hunt  <oliver@apple.com>
3315
3316         Remove JSObjectWithGlobalObject
3317         https://bugs.webkit.org/show_bug.cgi?id=67689
3318
3319         Reviewed by Geoff Garen.
3320
3321         Remove use of anonymous storage and JSObjectWithGlobalObject for
3322         accessing a JSObject's global object now that they're available
3323         on the object's structure.
3324
3325         * bindings/js/JSDOMWindowShell.cpp:
3326         (WebCore::JSDOMWindowShell::setWindow):
3327         * bindings/js/JSDOMWrapper.h:
3328         (WebCore::JSDOMWrapper::globalObject):
3329         (WebCore::JSDOMWrapper::JSDOMWrapper):
3330         * bindings/js/WorkerScriptController.cpp:
3331         (WebCore::WorkerScriptController::initScript):
3332         * bindings/scripts/CodeGeneratorJS.pm:
3333         (GenerateHeader):
3334         (GenerateImplementation):
3335         * bridge/objc/objc_runtime.h:
3336         * bridge/objc/objc_runtime.mm:
3337         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
3338         (JSC::Bindings::ObjcFallbackObjectImp::finishCreation):
3339         * bridge/runtime_object.cpp:
3340         (JSC::Bindings::RuntimeObject::RuntimeObject):
3341         (JSC::Bindings::RuntimeObject::finishCreation):
3342         * bridge/runtime_object.h:
3343
3344 2011-09-07  Ryosuke Niwa  <rniwa@webkit.org>
3345
3346         Mac build fix after r94694.
3347
3348         * WebCore.xcodeproj/project.pbxproj:
3349
3350 2011-09-07  Tim Horton  <timothy_horton@apple.com>
3351
3352         FELighting is using width instead of height to determine skip for parallel(n>2) case
3353         https://bugs.webkit.org/show_bug.cgi?id=67719
3354         <rdar://problem/10086178>
3355
3356         Reviewed by Dirk Schulze.
3357
3358         No new tests, because the bug only exhibits under conditions which are currently
3359         impossible by default (using more than 2 cores) on some platforms.
3360
3361         * platform/graphics/filters/FELighting.cpp:
3362         (WebCore::FELighting::platformApplyGeneric):
3363
3364 2011-09-07  W. James MacLean  <wjmaclean@chromium.org>
3365
3366         Eliminate motion jitter in animated, blurred SVG image
3367         https://bugs.webkit.org/show_bug.cgi?id=67503
3368
3369         Fixes filter shear-free transform applied to SVG images.
3370
3371         In applyResource() the shearFreeAbsoluteTransform is applied to the drawing region,
3372         which is based on the object bounding box (which doesn't move). For a rotation
3373         around the centre of the box, this should really just be the identity matrix,
3374         since the BB should neither change size nor location. So really, we're just interested
3375         in the scale change of the BB here, and not in moving it.
3376
3377         This impacts how slices are extracted, and affects the {x|y}Mid and {x|y}Max extractions
3378         for vertical and horizontal slices, so the test verifies these.
3379
3380         Reviewed by Dirk Schulze.
3381
3382         Test: svg/W3C-SVG-1.1-SE/filters-image-05-f.svg
3383
3384         * rendering/svg/RenderSVGResourceFilter.cpp:
3385         (WebCore::RenderSVGResourceFilter::applyResource):
3386
3387 2011-09-03  Robert Hogan  <robert@webkit.org>
3388
3389         Elements with position:absolute don't move to correct position after images load
3390         https://bugs.webkit.org/show_bug.cgi?id=54611
3391
3392         Reviewed by Simon Fraser.
3393
3394         Test: fast/block/positioning/absolute-layout-after-image-load.html
3395               fast/block/positioning/positioned-float-layout-after-image-load.html
3396
3397         In the test the 'label' block is an absolutely positioned child of an inline flow. So during layout, 
3398         this RenderBlock::layoutPositionedObjects fails to dirty it for rendering because it requires 
3399         the parent to be a BlockFlow. The code to do this was introduced in http://trac.webkit.org/changeset/8284. 
3400         There doesn't seem to be a good reason for requiring a BlockFlow, so remove the check. Do the same
3401         for positioned floats in RenderBlock::positionedFloatsNeedRelayout(), although currently layoutPositionedObjects()
3402         takes care of it this at least ensures no regression in future.
3403
3404         Note: Although the issue is encountered only on first load without a fragment identifier, it 
3405         happens reliably when you include the fragment identifier in the url (#Footnote_1). This is so 
3406         because scrolling to the fragment always happens before the image has loaded, rendering the page 
3407         and clearing the initial dirty bits in the positioned element's renderer. When the image finally 
3408         loads in this scenario, the positioned element is otherwise clean and relies on the above code to get 
3409         re-rendered.
3410
3411         * rendering/RenderBlock.cpp:
3412         (WebCore::RenderBlock::layoutPositionedObjects): remove the check for r->parent()->isBlockFlow() when 
3413                                                          deciding whether to mark children for layout
3414         (WebCore::RenderBlock::positionedFloatsNeedRelayout): ditto
3415
3416 2011-09-07  Anna Cavender  <annacc@chromium.org>
3417
3418         Moving platform/track to html/track to avoid layering violation.
3419         https://bugs.webkit.org/show_bug.cgi?id=67680
3420
3421         Reviewed by Adam Barth.
3422
3423         No new tests. No new functionality.
3424
3425         * CMakeLists.txt:
3426         * GNUmakefile.am:
3427         * GNUmakefile.list.am:
3428         * WebCore.gyp/WebCore.gyp:
3429         * WebCore.gypi:
3430         * WebCore.pri:
3431         * WebCore.pro:
3432         * html/track/CueParser.cpp: Renamed from Source/WebCore/platform/track/CueParser.cpp.
3433         * html/track/CueParser.h: Renamed from Source/WebCore/platform/track/CueParser.h.
3434         * html/track/CueParserPrivate.h: Renamed from Source/WebCore/platform/track/CueParserPrivate.h.
3435         * html/track/WebVTTParser.cpp: Renamed from Source/WebCore/platform/track/WebVTTParser.cpp.
3436         * html/track/WebVTTParser.h: Renamed from Source/WebCore/platform/track/WebVTTParser.h.
3437         * html/track/WebVTTToken.h: Renamed from Source/WebCore/platform/track/WebVTTToken.h.
3438         * html/track/WebVTTTokenizer.cpp: Renamed from Source/WebCore/platform/track/WebVTTTokenizer.cpp.
3439         * html/track/WebVTTTokenizer.h: Renamed from Source/WebCore/platform/track/WebVTTTokenizer.h.
3440
3441 2011-09-07  David Hyatt  <hyatt@apple.com>
3442
3443         https://bugs.webkit.org/show_bug.cgi?id=67286
3444
3445         REGRESSION: css2.1/t090204-display-change-01-b-ao.html fails after r94084.
3446
3447         Make sure that the trailing floats line box explicitly sets the line top with leading and line bottom with
3448         leading to just be the block height.
3449
3450         Reviewed by Dan Bernstein.
3451
3452         * rendering/RenderBlockLineLayout.cpp:
3453         (WebCore::RenderBlock::linkToEndLineIfNeeded):
3454
3455 2011-09-06  Abhishek Arya  <inferno@chromium.org>
3456
3457         Null owningRenderer crash in RenderScrollbar::updateScrollbarParts.
3458         https://bugs.webkit.org/show_bug.cgi?id=67669
3459
3460         Reviewed by James Robinson.
3461
3462         Owning renderer can be cleared for custom scrollbars in clearOwningRenderer()
3463         call. We need a null check in updateScrollbarParts, so that we do not crash.
3464
3465         No tests since issue seen in crash reports only and I donot know a way to
3466         reproduce.
3467
3468         * rendering/RenderScrollbar.cpp:
3469         (WebCore::RenderScrollbar::updateScrollbarParts):
3470
3471 2011-09-05  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3472
3473         [Qt][WK2] Make TiledDrawingArea request tiles only in the direction the viewport is panned to.
3474         https://bugs.webkit.org/show_bug.cgi?id=67606
3475
3476         Reviewed by Noam Rosenthal.
3477
3478         TiledBackingStore previously used different values for horizontal and vertial multiplication
3479         to calculate the cover area.
3480         This patch replaces this mechanism, used to give a bigger panning range to vertical panning,
3481         with the possibility to use the motion vector of the viewport to request tiles ahead instead.
3482         This allows economies on rendering resources as tiles won't be rendered beside the trajectory
3483         of the viewport.
3484
3485         * platform/graphics/TiledBackingStore.cpp:
3486         (WebCore::TiledBackingStore::TiledBackingStore):
3487         (WebCore::TiledBackingStore::setKeepAndCoverAreaMultipliers):
3488         (WebCore::TiledBackingStore::setCoverAreaFocusVector):
3489         (WebCore::TiledBackingStore::createTiles):
3490         (WebCore::TiledBackingStore::calculateKeepRect):
3491         (WebCore::TiledBackingStore::calculateCoverRect):
3492         * platform/graphics/TiledBackingStore.h:
3493         (WebCore::TiledBackingStore::getKeepAndCoverAreaMultipliers):
3494
3495 2011-09-01  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3496
3497         [Qt] TiledBackingStore: Import the resizeEdgeTiles logic from TiledDrawindAreaProxy.
3498         https://bugs.webkit.org/show_bug.cgi?id=67416
3499
3500         Reviewed by Kenneth Rohde Christiansen.
3501
3502         Original code by Antti Koivisto.
3503         With the current code, when the page is layouted during load, edge tiles will
3504         get removed instead of continuing to show their front buffer while the tile
3505         is being rendered for the new size.
3506
3507         * platform/graphics/Tile.h:
3508         * platform/graphics/TiledBackingStore.cpp:
3509         (WebCore::TiledBackingStore::createTiles):
3510         (WebCore::TiledBackingStore::resizeEdgeTiles):
3511         * platform/graphics/TiledBackingStore.h:
3512         * platform/graphics/qt/TileQt.cpp:
3513         (WebCore::TileQt::resize):
3514         * platform/graphics/qt/TileQt.h:
3515
3516 2011-09-07  Tim Horton  <timothy_horton@apple.com>
3517
3518         Don't round-trip through TransformationMatrix in SVGImageBufferTools::clearAffineTransform2DRotation
3519         https://bugs.webkit.org/show_bug.cgi?id=67242
3520         <rdar://problem/10069770>
3521
3522         Reviewed by Dirk Schulze.
3523
3524         No new tests, minor performance improvement.
3525
3526         * platform/graphics/transforms/AffineTransform.cpp:
3527         (WebCore::AffineTransform::blend):
3528         (WebCore::AffineTransform::decompose):
3529         (WebCore::AffineTransform::recompose):
3530         * platform/graphics/transforms/AffineTransform.h:
3531         * rendering/svg/SVGImageBufferTools.cpp:
3532         (WebCore::SVGImageBufferTools::clear2DRotation):
3533
3534 2011-09-06  Pavel Podivilov  <podivilov@chromium.org>
3535
3536         Web Inspector: do not re-create RawSourceCode when toggling pretty-print mode.
3537         https://bugs.webkit.org/show_bug.cgi?id=67647
3538
3539         1) Implement RawSourceCode.setFormatted that allows toggling pretty-print mode on the fly without resetting everything.
3540         2) Add RawSourceCode unit tests.
3541         3) Remove source mapping listeners and console messages from presentation model (they live in RawSourceCode now).
3542
3543         Reviewed by Yury Semikhatsky.
3544
3545         Test: inspector/debugger/raw-source-code.html
3546
3547         * inspector/front-end/DebuggerPresentationModel.js:
3548         (WebInspector.DebuggerPresentationModel):
3549         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
3550         (WebInspector.DebuggerPresentationModel.prototype._addScript):
3551         (WebInspector.DebuggerPresentationModel.prototype._sourceMappingUpdated):
3552         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
3553         (WebInspector.DebuggerPresentationModel.prototype._createRawSourceCodeId):
3554         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
3555         * inspector/front-end/ScriptsPanel.js:
3556         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
3557         * inspector/front-end/SourceFile.js:
3558         (WebInspector.RawSourceCode):
3559         (WebInspector.RawSourceCode.prototype.get uiSourceCode):
3560         (WebInspector.RawSourceCode.prototype.setFormatted):
3561         (WebInspector.RawSourceCode.prototype.rawLocationToUILocation):
3562         (WebInspector.RawSourceCode.prototype._saveSourceMapping):
3563
3564 2011-09-07  Alexander Pavlov  <apavlov@chromium.org>
3565
3566         Web Inspector: Implement circular tabbing through the Styles sidebar pane contents
3567         https://bugs.webkit.org/show_bug.cgi?id=67127
3568
3569         Reviewed by Yury Semikhatsky.
3570
3571         * inspector/front-end/Section.js:
3572         (WebInspector.Section.prototype.get firstSibling):
3573         (WebInspector.Section.prototype.get lastSibling):
3574         * inspector/front-end/StylesSidebarPane.js:
3575         (WebInspector.StylePropertiesSection.prototype.nextEditableSibling):
3576         (WebInspector.StylePropertiesSection.prototype.previousEditableSibling):
3577         (WebInspector.StylePropertiesSection.prototype.startEditingSelector):
3578         (WebInspector.StylePropertiesSection.prototype._moveEditorFromSelector):
3579         (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted.successCallback):
3580         (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted):
3581         (WebInspector.StylePropertyTreeElement.prototype):
3582         (WebInspector.StylePropertyTreeElement.prototype.element.userInput.previousContent.context.moveDirection):
3583
3584 2011-09-02  Andrey Kosyakov  <caseq@chromium.org>
3585
3586         Web Inspector: [Extensions API] expose console API
3587         https://bugs.webkit.org/show_bug.cgi?id=67506
3588
3589         Reviewed by Pavel Feldman.
3590
3591         Test: inspector/extensions/extensions-console.html
3592
3593         * inspector/front-end/ConsoleMessage.js:
3594         (WebInspector.ConsoleMessage.prototype.get text):
3595         (WebInspector.ConsoleMessage.prototype.get parameters):
3596         * inspector/front-end/ExtensionAPI.js:
3597         (WebInspector.injectedExtensionAPI.InspectorExtensionAPI):
3598         (WebInspector.injectedExtensionAPI):
3599         (WebInspector.injectedExtensionAPI.Console.prototype.getMessages):
3600         (WebInspector.injectedExtensionAPI.Console.prototype.addMessage):
3601         (WebInspector.injectedExtensionAPI.Console.prototype.get MessageLevel):
3602         (WebInspector.injectedExtensionAPI.Network.dispatchRequestEvent):
3603         (WebInspector.injectedExtensionAPI.Network):
3604         (WebInspector.injectedExtensionAPI.AuditCategoryImpl.dispatchAuditEvent):
3605         (WebInspector.injectedExtensionAPI.AuditCategoryImpl):
3606         (WebInspector.injectedExtensionAPI.InspectedWindow.dispatchResourceEvent):
3607         (WebInspector.injectedExtensionAPI.InspectedWindow.dispatchResourceContentEvent):
3608         (WebInspector.injectedExtensionAPI.InspectedWindow):
3609         * inspector/front-end/ExtensionCommon.js:
3610         (WebInspector.commonExtensionSymbols):
3611         * inspector/front-end/ExtensionServer.js:
3612         (WebInspector.ExtensionServer):
3613         (WebInspector.ExtensionServer.prototype._notifyConsoleMessageAdded):
3614         (WebInspector.ExtensionServer.prototype._onGetConsoleMessages):
3615         (WebInspector.ExtensionServer.prototype._onAddConsoleMessage):
3616         (WebInspector.ExtensionServer.prototype._makeConsoleMessage):
3617         (WebInspector.ExtensionServer.prototype._makeConsoleMessage.convertParameter):
3618         (WebInspector.ExtensionServer.prototype._dispatchCallback):
3619         (WebInspector.ExtensionServer.prototype.initExtensions):
3620
3621 2011-09-05  Andrey Kosyakov  <caseq@chromium.org>
3622
3623         Web Inspector: disable popover when a mouse button is pressed
3624         https://bugs.webkit.org/show_bug.cgi?id=67610
3625
3626         Reviewed by Pavel Feldman.
3627
3628         - disable popover when a mouse button is pressed
3629         - disable popover in a SourceFrame when the source is being edited
3630
3631         * inspector/front-end/Popover.js:
3632         (WebInspector.PopoverHelper):
3633         (WebInspector.PopoverHelper.prototype._mouseUp):
3634         (WebInspector.PopoverHelper.prototype._mouseDown):
3635         (WebInspector.PopoverHelper.prototype._handleMouseAction):
3636         * inspector/front-end/SourceFrame.js:
3637         (WebInspector.SourceFrame.prototype._onHidePopover):
3638         (WebInspector.SourceFrame.prototype.doubleClick):
3639
3640 2011-09-07  Antti Koivisto  <antti@apple.com>
3641
3642         https://bugs.webkit.org/show_bug.cgi?id=67634
3643         De-virtualize styleForRenderer()
3644
3645         Reviewed by Sam Weinig.
3646         
3647         This has performance and code clarity benefits.
3648
3649         - move styleForRenderer from Node to Element
3650         - get rid of the now unnecessary NodeRenderingContext parameter
3651         - de-virtualize, add virtual customStyleForRenderer()
3652
3653         * dom/Element.cpp:
3654         (WebCore::Element::customStyleForRenderer):
3655         (WebCore::Element::styleForRenderer):
3656         (WebCore::Element::recalcStyle):
3657         * dom/Element.h:
3658         * dom/Node.cpp:
3659         * dom/Node.h:
3660         (WebCore::Node::hasCustomWillOrDidRecalcStyle):
3661         (WebCore::Node::setHasCustomWillOrDidRecalcStyle):
3662         (WebCore::Node::hasCustomStyleForRenderer):
3663         (WebCore::Node::setHasCustomStyleForRenderer):
3664         
3665             Move styleForRenderer, add customStyleForRenderer, add a bit.
3666         
3667         * dom/NodeRenderingContext.cpp:
3668         (WebCore::NodeRendererFactory::createRendererAndStyle): 
3669         
3670             Handle non-element case separately since styleForRenderer was moved from Node to Element.
3671
3672         * html/HTMLNoScriptElement.cpp:
3673         (WebCore::HTMLNoScriptElement::HTMLNoScriptElement):
3674         (WebCore::HTMLNoScriptElement::customStyleForRenderer):
3675         * html/HTMLNoScriptElement.h:
3676         
3677             Move a strange XHTMLMP special case to where it belongs.
3678
3679         * html/HTMLOptGroupElement.cpp:
3680         (WebCore::HTMLOptGroupElement::attach):
3681         * html/HTMLOptionElement.cpp:
3682         (WebCore::HTMLOptionElement::attach):
3683         * html/HTMLTitleElement.cpp:
3684         (WebCore::HTMLTitleElement::textWithDirection):
3685         * html/shadow/TextControlInnerElements.cpp:
3686         (WebCore::TextControlInnerElement::TextControlInnerElement):
3687         (WebCore::TextControlInnerElement::customStyleForRenderer):
3688         (WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
3689         (WebCore::TextControlInnerTextElement::customStyleForRenderer):
3690         * html/shadow/TextControlInnerElements.h:
3691         * rendering/svg/SVGShadowTreeElements.cpp:
3692         (WebCore::SVGShadowTreeContainerElement::customStyleForRenderer):
3693         * rendering/svg/SVGShadowTreeElements.h:
3694         * svg/SVGElement.cpp:
3695         (WebCore::SVGElement::SVGElement):
3696         (WebCore::SVGElement::customStyleForRenderer):
3697         * svg/SVGElement.h:
3698         
3699             Adopt customStyleForRenderer().
3700
3701 2011-09-07  Ryosuke Niwa  <rniwa@webkit.org>
3702
3703         Change event is not fired for input[type=number] when the user reverts a change made by script
3704         https://bugs.webkit.org/show_bug.cgi?id=67697
3705
3706         Reviewed by Kent Tamura.
3707
3708         The bug was caused by HTMLInputElement::setValue not calling setTextAsOfLastFormControlChangeEvent
3709         for text fields other than type=text.
3710
3711         Also fixed a that stepUpFromRenderer does not call setTextAsOfLastFormControlChangeEvent at appropriate
3712         timing due to setValueAsNumber always passing sendChangeEvent=false to setValue by propagating values
3713         through setValueAsNumber and applyStep. This refactoring allows us to remove calls to dispatch* in
3714         stepUpFromRenderer because they're now called in setValueAsNumber or applyStep.
3715
3716         Test: fast/forms/number-input-changeevent.html
3717
3718         * html/BaseDateAndTimeInputType.cpp:
3719         (WebCore::BaseDateAndTimeInputType::setValueAsNumber):
3720         * html/BaseDateAndTimeInputType.h:
3721         * html/HTMLInputElement.cpp:
3722         (WebCore::HTMLInputElement::applyStep):
3723         (WebCore::HTMLInputElement::stepUp):
3724         (WebCore::HTMLInputElement::stepDown):
3725         (WebCore::HTMLInputElement::setValue):
3726         (WebCore::HTMLInputElement::setValueAsNumber):
3727         (WebCore::HTMLInputElement::stepUpFromRenderer):
3728         * html/HTMLInputElement.h:
3729         * html/InputType.cpp:
3730         (WebCore::InputType::setValueAsNumber):
3731         * html/InputType.h:
3732         * html/NumberInputType.cpp:
3733         (WebCore::NumberInputType::setValueAsNumber):
3734         * html/NumberInputType.h:
3735         * html/RangeInputType.cpp:
3736         (WebCore::RangeInputType::setValueAsNumber):
3737         (WebCore::RangeInputType::handleKeydownEvent):
3738         * html/RangeInputType.h:
3739
3740 2011-09-07  Antti Koivisto  <antti@apple.com>
3741
3742         Try to fix Qt build by moving the Qt specific include (which is not really allowed here!).
3743
3744         Not reviewed.
3745
3746         * css/CSSStyleSelector.cpp:
3747         * css/SelectorChecker.cpp:
3748         (WebCore::SelectorChecker::determineLinkStateSlowCase):
3749
3750 2011-09-07  Antti Koivisto  <antti@apple.com>
3751
3752         Move SelectorChecker out from CSSStyleSelector scope
3753         https://bugs.webkit.org/show_bug.cgi?id=67648
3754
3755         Reviewed by Sam Weinig.
3756
3757         - Move SelectorChecker to SelectorChecker.h/cpp
3758         - Make private functions private
3759         - Make members private, add accessors
3760         - Move m_sameOriginOnly to CSSStyleSelector as it is not used by SelectorChecker
3761
3762         * CMakeLists.txt:
3763         * GNUmakefile.list.am:
3764         * WebCore.gypi:
3765         * WebCore.pro:
3766         * WebCore.vcproj/WebCore.vcproj:
3767         * WebCore.xcodeproj/project.pbxproj:
3768         * css/CSSStyleSelector.cpp:
3769         (WebCore::CSSStyleSelector::CSSStyleSelector):
3770         (WebCore::CSSStyleSelector::matchRules):
3771         (WebCore::CSSStyleSelector::matchRulesForList):
3772         (WebCore::CSSStyleSelector::sortMatchedRules):
3773         (WebCore::CSSStyleSelector::initForStyleResolve):
3774         (WebCore::CSSStyleSelector::matchUARules):
3775         (WebCore::CSSStyleSelector::styleForElement):
3776         (WebCore::CSSStyleSelector::pseudoStyleForElement):
3777         (WebCore::CSSStyleSelector::styleForPage):
3778         (WebCore::CSSStyleSelector::adjustRenderStyle):
3779         (WebCore::CSSStyleSelector::pseudoStyleRulesForElement):
3780         (WebCore::CSSStyleSelector::checkSelector):
3781         (WebCore::RuleData::RuleData):
3782         (WebCore::CSSStyleSelector::applyProperty):
3783         (WebCore::CSSStyleSelector::checkForGenericFamilyChange):
3784         (WebCore::CSSStyleSelector::setFontSize):
3785         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
3786         * css/CSSStyleSelector.h:
3787         (WebCore::CSSStyleSelector::style):
3788         (WebCore::CSSStyleSelector::parentStyle):
3789         (WebCore::CSSStyleSelector::rootElementStyle):
3790         (WebCore::CSSStyleSelector::element):
3791         (WebCore::CSSStyleSelector::fontDescription):
3792         (WebCore::CSSStyleSelector::parentFontDescription):
3793         (WebCore::CSSStyleSelector::setFontDescription):
3794         (WebCore::CSSStyleSelector::setZoom):
3795         (WebCore::CSSStyleSelector::setEffectiveZoom):
3796         (WebCore::CSSStyleSelector::setTextSizeAdjust):
3797         (WebCore::CSSStyleSelector::setStyle):
3798         (WebCore::CSSStyleSelector::fontSelector):
3799         (WebCore::CSSStyleSelector::allVisitedStateChanged):
3800         (WebCore::CSSStyleSelector::visitedStateChanged):
3801         (WebCore::CSSStyleSelector::usesSiblingRules):
3802         (WebCore::CSSStyleSelector::usesFirstLineRules):
3803         (WebCore::CSSStyleSelector::usesBeforeAfterRules):
3804         (WebCore::CSSStyleSelector::usesLinkRules):
3805         (WebCore::CSSStyleSelector::addMatchedRule):
3806         (WebCore::CSSStyleSelector::isRightPage):
3807         (WebCore::CSSStyleSelector::ParentStackFrame::ParentStackFrame):
3808         (WebCore::CSSStyleSelector::styleNotYetAvailable):
3809         * css/SelectorChecker.cpp: Added.
3810         (WebCore::SelectorChecker::SelectorChecker):
3811         (WebCore::linkAttribute):
3812         (WebCore::SelectorChecker::determineLinkStateSlowCase):
3813         (WebCore::SelectorChecker::checkSelector):
3814         (WebCore::SelectorChecker::fastCheckSelector):
3815         (WebCore::SelectorChecker::isFastCheckableSelector):
3816         (WebCore::addLocalNameToSet):
3817         (WebCore::createHtmlCaseInsensitiveAttributesSet):
3818         (WebCore::htmlAttributeHasCaseInsensitiveValue):
3819         (WebCore::attributeQualifiedNameMatches):
3820         (WebCore::attributeValueMatches):
3821         (WebCore::anyAttributeMatches):
3822         (WebCore::SelectorChecker::checkOneSelector):
3823         (WebCore::SelectorChecker::checkScrollbarPseudoClass):
3824         (WebCore::SelectorChecker::allVisitedStateChanged):
3825         (WebCore::SelectorChecker::visitedStateChanged):
3826         * css/SelectorChecker.h: Added.
3827         (WebCore::SelectorChecker::document):
3828         (WebCore::SelectorChecker::strictParsing):
3829         (WebCore::SelectorChecker::isCollectingRulesOnly):
3830         (WebCore::SelectorChecker::setCollectingRulesOnly):
3831         (WebCore::SelectorChecker::isMatchingVisitedPseudoClass):
3832         (WebCore::SelectorChecker::setMatchingVisitedPseudoClass):
3833         (WebCore::SelectorChecker::pseudoStyle):
3834         (WebCore::SelectorChecker::setPseudoStyle):
3835         (WebCore::SelectorChecker::hasUnknownPseudoElements):
3836         (WebCore::SelectorChecker::clearHasUnknownPseudoElements):
3837         (WebCore::SelectorChecker::determineLinkState):
3838         * dom/Element.cpp:
3839         (WebCore::Element::webkitMatchesSelector):
3840         * dom/SelectorQuery.cpp:
3841         (WebCore::SelectorQuery::SelectorQuery):
3842         * dom/SelectorQuery.h:
3843
3844 2011-09-07  Dmitry Lomov  <dslomov@google.com>
3845
3846         https://bugs.webkit.org/show_bug.cgi?id=67413 
3847         [Chromium]Web Inspector: inspected page with dedicated worker crashes on refresh.
3848         This patch enforces lifetime ordering between WorkerInspectorController and WorkerScriptController.
3849
3850         Reviewed by Yury Semikhatsky.
3851
3852         * workers/WorkerContext.cpp:
3853         (WebCore::WorkerContext::clearInspector):
3854         * workers/WorkerContext.h:
3855         * workers/WorkerThread.cpp:
3856         (WebCore::WorkerThreadShutdownFinishTask::performTask):
3857
3858 2011-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
3859
3860         Unreviewed, rolling out r94627 and r94632.
3861         http://trac.webkit.org/changeset/94627
3862         http://trac.webkit.org/changeset/94632
3863         https://bugs.webkit.org/show_bug.cgi?id=67698
3864
3865         It broke tests on GTK and Qt (Requested by Ossy on #webkit).
3866
3867         * WebCore.exp.in:
3868         * bindings/js/JSDOMBinding.h:
3869         (WebCore::DOMConstructorObject::DOMConstructorObject):
3870         * bindings/js/JSDOMGlobalObject.cpp:
3871         (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
3872         * bindings/js/JSDOMGlobalObject.h:
3873         * bindings/js/JSDOMWindowShell.cpp:
3874         (WebCore::JSDOMWindowShell::create):
3875         * bindings/js/JSDOMWindowShell.h:
3876         * bindings/js/JSDOMWrapper.h:
3877         (WebCore::JSDOMWrapper::JSDOMWrapper):
3878         * bindings/scripts/CodeGeneratorJS.pm:
3879         (GenerateImplementation):
3880         * bindings/scripts/test/JS/JSTestInterface.cpp:
3881         (WebCore::JSTestInterface::JSTestInterface):
3882         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
3883         (WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener):
3884         * bindings/scripts/test/JS/JSTestObj.cpp:
3885         (WebCore::JSTestObj::JSTestObj):
3886         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3887         (WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface):
3888         * bridge/c/CRuntimeObject.cpp:
3889         (JSC::Bindings::CRuntimeObject::CRuntimeObject):
3890         * bridge/c/CRuntimeObject.h:
3891         * bridge/jni/jsc/JavaRuntimeObject.cpp:
3892         (JSC::Bindings::JavaRuntimeObject::JavaRuntimeObject):
3893         * bridge/jni/jsc/JavaRuntimeObject.h:
3894         * bridge/objc/ObjCRuntimeObject.h:
3895         * bridge/objc/ObjCRuntimeObject.mm:
3896         (JSC::Bindings::ObjCRuntimeObject::ObjCRuntimeObject):
3897         * bridge/objc/objc_runtime.h:
3898         (JSC::Bindings::ObjcFallbackObjectImp::create):
3899         * bridge/objc/objc_runtime.mm:
3900         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
3901         * bridge/qt/qt_instance.cpp:
3902         (JSC::Bindings::QtRuntimeObject::QtRuntimeObject):
3903         * bridge/qt/qt_pixmapruntime.cpp:
3904         (JSC::Bindings::QtPixmapRuntimeObject::QtPixmapRuntimeObject):
3905         * bridge/qt/qt_runtime.cpp:
3906         (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
3907         * bridge/qt/qt_runtime.h:
3908         * bridge/runtime_array.cpp:
3909         (JSC::RuntimeArray::RuntimeArray):
3910         * bridge/runtime_array.h:
3911         (JSC::RuntimeArray::create):
3912         * bridge/runtime_method.cpp:
3913         (JSC::RuntimeMethod::RuntimeMethod):
3914         * bridge/runtime_method.h:
3915         * bridge/runtime_object.cpp:
3916         (JSC::Bindings::RuntimeObject::RuntimeObject):
3917         * bridge/runtime_object.h:
3918         (JSC::Bindings::RuntimeObject::create):
3919
3920 2011-08-31  Yury Semikhatsky  <yurys@chromium.org>
3921
3922         fast/workers/worker-script-error.html fails on Chromium after r94061
3923         https://bugs.webkit.org/show_bug.cgi?id=67206
3924
3925         Default action should be prevented if window.onerror returned true and stay
3926         not prevented otherwise.
3927
3928         Reviewed by Dmitry Titov.
3929
3930         Tests: fast/events/window-onerror14.html
3931                fast/events/window-onerror15.html
3932                fast/events/window-onerror16.html
3933
3934         * bindings/v8/V8AbstractEventListener.cpp:
3935         (WebCore::V8AbstractEventListener::invokeEventHandler):
3936         (WebCore::V8AbstractEventListener::shouldPreventDefault): allow specific
3937         event listeners to decide when to prevent default action based on the handler
3938         return value.
3939         * bindings/v8/V8AbstractEventListener.h:
3940         * bindings/v8/V8WindowErrorHandler.cpp:
3941         (WebCore::V8WindowErrorHandler::callListenerFunction):
3942         (WebCore::V8WindowErrorHandler::shouldPreventDefault):
3943         * bindings/v8/V8WindowErrorHandler.h:
3944         * bindings/v8/V8WorkerContextErrorHandler.cpp:
3945         (WebCore::V8WorkerContextErrorHandler::callListenerFunction):
3946         (WebCore::V8WorkerContextErrorHandler::shouldPreventDefault):
3947         * bindings/v8/V8WorkerContextErrorHandler.h:
3948
3949 2011-09-06  Xianzhu Wang  <wangxianzhu@chromium.org>
3950
3951         Replace usages of Vector<UChar> with existing StringBuilder
3952         https://bugs.webkit.org/show_bug.cgi?id=67079
3953
3954         Reviewed by Gavin Barraclough.
3955
3956         No new tests. All existing unit tests and layout tests should run
3957         as before.
3958
3959         * css/CSSOMUtils.cpp:
3960         (WebCore::appendCharacter):
3961         (WebCore::serializeCharacter):
3962         (WebCore::serializeCharacterAsCodePoint):
3963         (WebCore::serializeIdentifier):
3964         (WebCore::serializeString):
3965         * css/CSSOMUtils.h:
3966         * css/CSSPrimitiveValue.cpp:
3967         (WebCore::CSSPrimitiveValue::cssText):
3968         * css/CSSStyleSelector.cpp:
3969         (WebCore::CSSStyleSelector::SelectorChecker::determineLinkStateSlowCase):
3970         * css/CSSWrapShapes.cpp:
3971         (WebCore::CSSWrapShapeRect::cssText):
3972         (WebCore::CSSWrapShapeCircle::cssText):
3973         (WebCore::CSSWrapShapeEllipse::cssText):
3974         (WebCore::CSSWrapShapePolygon::cssText):
3975         * editing/HTMLInterchange.cpp:
3976         (WebCore::convertHTMLTextToInterchangeFormat):
3977         * editing/MarkupAccumulator.cpp:
3978         (WebCore::appendCharactersReplacingEntities):
3979         (WebCore::MarkupAccumulator::serializeNodes):
3980         (WebCore::MarkupAccumulator::appendStartTag):
3981         (WebCore::MarkupAccumulator::appendEndTag):
3982         (WebCore::MarkupAccumulator::concatenateMarkup):
3983         (WebCore::MarkupAccumulator::appendAttributeValue):
3984         (WebCore::MarkupAccumulator::appendCustomAttributes):
3985         (WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
3986         (WebCore::MarkupAccumulator::appendNodeValue):
3987         (WebCore::MarkupAccumulator::appendNamespace):
3988         (WebCore::MarkupAccumulator::appendText):
3989         (WebCore::MarkupAccumulator::appendComment):
3990         (WebCore::MarkupAccumulator::appendDocumentType):
3991         (WebCore::MarkupAccumulator::appendProcessingInstruction):
3992         (WebCore::MarkupAccumulator::appendElement):
3993         (WebCore::MarkupAccumulator::appendOpenTag):
3994         (WebCore::MarkupAccumulator::appendCloseTag):
3995         (WebCore::MarkupAccumulator::appendAttribute):
3996         (WebCore::MarkupAccumulator::appendCDATASection):
3997         (WebCore::MarkupAccumulator::appendStartMarkup):
3998         (WebCore::MarkupAccumulator::appendEndMarkup):
3999         * editing/MarkupAccumulator.h:
4000         * editing/markup.cpp:
4001         (WebCore::StyledMarkupAccumulator::appendElement):
4002         (WebCore::StyledMarkupAccumulator::wrapWithNode):
4003         (WebCore::StyledMarkupAccumulator::wrapWithStyleNode):
4004         (WebCore::StyledMarkupAccumulator::appendStyleNodeOpenTag):
4005         (WebCore::StyledMarkupAccumulator::takeResults):
4006         (WebCore::StyledMarkupAccumulator::appendText):
4007         (WebCore::urlToMarkup):
4008         * html/DOMTokenList.cpp:
4009         (WebCore::DOMTokenList::removeToken):
4010         * html/HTMLFontElement.cpp: