2010-12-09 Kenneth Russell <kbr@google.com>
[WebKit.git] / WebCore / ChangeLog
1 2010-12-09  Kenneth Russell  <kbr@google.com>
2
3         Unreviewed. Another speculative Gtk build fix after r73669. Add
4         needed derived sources to GNUmakefile.am.
5
6         * GNUmakefile.am:
7
8 2010-12-09  Kenneth Russell  <kbr@google.com>
9
10         Unreviewed. Speculative Gtk build fix after
11         https://bugs.webkit.org/show_bug.cgi?id=36512 / r73669. Process
12         all of the WebGL classes' IDL files.
13
14         * CMakeLists.txt:
15
16 2010-12-09  Zhenyao Mo  <zmo@google.com>
17
18         Reviewed by Kenneth Russell.
19
20         Expose constructor functions for instanceof checks of WebGL objects
21         https://bugs.webkit.org/show_bug.cgi?id=36512
22
23         Test: fast/canvas/webgl/instanceof-test.html
24
25         * bindings/generic/RuntimeEnabledFeatures.h:
26         (WebCore::RuntimeEnabledFeatures::webGLActiveInfoEnabled):
27         (WebCore::RuntimeEnabledFeatures::webGLBufferEnabled):
28         (WebCore::RuntimeEnabledFeatures::webGLFramebufferEnabled):
29         (WebCore::RuntimeEnabledFeatures::webGLProgramEnabled):
30         (WebCore::RuntimeEnabledFeatures::webGLRenderbufferEnabled):
31         (WebCore::RuntimeEnabledFeatures::webGLShaderEnabled):
32         (WebCore::RuntimeEnabledFeatures::webGLTextureEnabled):
33         (WebCore::RuntimeEnabledFeatures::webGLUniformLocationEnabled):
34         * html/canvas/WebGLActiveInfo.idl: Remove OmitConstructor.
35         * html/canvas/WebGLBuffer.idl: Ditto.
36         * html/canvas/WebGLFramebuffer.idl: Ditto.
37         * html/canvas/WebGLProgram.idl: Ditto.
38         * html/canvas/WebGLRenderbuffer.idl: Ditto.
39         * html/canvas/WebGLShader.idl: Ditto.
40         * html/canvas/WebGLTexture.idl: Ditto.
41         * html/canvas/WebGLUniformLocation.idl: Ditto.
42         * page/DOMWindow.idl: Expose constructors for WebGL objects in DOMWindow.
43
44 2010-12-09  Timothy Hatcher  <timothy@apple.com>
45
46         Export Color::white and Color::transparent.
47
48         Reviewed by Anders Carlsson.
49
50         * WebCore.exp.in:
51
52 2010-12-09  Sam Weinig  <sam@webkit.org>
53
54         Fix failing Mac tests.
55
56         * platform/mac/ScrollAnimatorMac.mm:
57         (WebCore::ScrollAnimatorMac::scroll): Don't smooth scroll if the default
58         AppleScrollAnimationEnabled is false.
59
60 2010-12-09  James Robinson  <jamesr@chromium.org>
61
62         Reviewed by Kenneth Russell.
63
64         [chromium] Compositor needs to manage its VRAM use
65         https://bugs.webkit.org/show_bug.cgi?id=49629
66
67         This adds a basic texture manager to the Chromium compositor to limit the amount of VRAM
68         used by compositor textures and switches ContentLayerChromium, ImageLayerChromium, and
69         RenderSurfaceChromium to use managed LayerTexture.  The other *LayerChromium classes (Canvas,
70         Video, and WebGL) and the root layer are still unmanaged.
71
72         The TextureManager works by providing tokens to callers that want to use a managed texture.
73         The token can be used to request a texture, see if the previously requested texture is still
74         available, and to protect/unprotect textures when they cannot be collected.  Whenever a
75         texture is created the manager attempts to free up the least recently used textures until the
76         total memory use is below the provided threshhold.  If the manager cannot satisfy the memory
77         limit it will not return any new textures until some old textures are released.
78
79         A LayerTexture wraps a TextureManager token, size, and format.  A LayerChromium can check if a
80         previously requested texture is still available for use and reserve the LayerTexture's underlying
81         storage between the updateContentsIfDirty() and the draw() call.
82
83         Also changes LayerChromium from having separate contentsDirty()/updateContents() calls to a single
84         updateContentsIfDirty().
85
86         Tests: platform/chromium/compositing/lots-of-img-layers-with-opacity.html
87                platform/chromium/compositing/lots-of-img-layers.html
88
89         * WebCore.gypi:
90         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
91         (WebCore::Canvas2DLayerChromium::updateContentsIfDirty):
92         * platform/graphics/chromium/Canvas2DLayerChromium.h:
93         * platform/graphics/chromium/ContentLayerChromium.cpp:
94         (WebCore::ContentLayerChromium::cleanupResources):
95         (WebCore::ContentLayerChromium::updateContentsIfDirty):
96         (WebCore::ContentLayerChromium::updateTextureRect):
97         (WebCore::ContentLayerChromium::draw):
98         * platform/graphics/chromium/ContentLayerChromium.h:
99         * platform/graphics/chromium/ImageLayerChromium.cpp:
100         (WebCore::ImageLayerChromium::updateContentsIfDirty):
101         * platform/graphics/chromium/ImageLayerChromium.h:
102         * platform/graphics/chromium/LayerChromium.h:
103         (WebCore::LayerChromium::updateContentsIfDirty):
104         (WebCore::LayerChromium::draw):
105         * platform/graphics/chromium/LayerRendererChromium.cpp:
106         (WebCore::LayerRendererChromium::LayerRendererChromium):
107         (WebCore::LayerRendererChromium::useShader):
108         (WebCore::LayerRendererChromium::prepareToDrawLayers):
109         (WebCore::LayerRendererChromium::updateRootLayerTextureRect):
110         (WebCore::LayerRendererChromium::drawLayers):
111         (WebCore::LayerRendererChromium::getFramebufferPixels):
112         (WebCore::LayerRendererChromium::createLayerTexture):
113         (WebCore::LayerRendererChromium::deleteLayerTexture):
114         (WebCore::LayerRendererChromium::updateLayersRecursive):
115         (WebCore::LayerRendererChromium::useRenderSurface):
116         (WebCore::LayerRendererChromium::drawLayer):
117         (WebCore::LayerRendererChromium::setScissorToRect):
118         (WebCore::LayerRendererChromium::setDrawViewportRect):
119         (WebCore::LayerRendererChromium::initializeSharedObjects):
120         (WebCore::LayerRendererChromium::cleanupSharedObjects):
121         * platform/graphics/chromium/LayerRendererChromium.h:
122         (WebCore::LayerRendererChromium::renderSurfaceSharedValues):
123         (WebCore::LayerRendererChromium::textureManager):
124         * platform/graphics/chromium/LayerTexture.cpp: Added.
125         (WebCore::LayerTexture::LayerTexture):
126         (WebCore::LayerTexture::~LayerTexture):
127         (WebCore::LayerTexture::isValid):
128         (WebCore::LayerTexture::reserve):
129         (WebCore::LayerTexture::unreserve):
130         (WebCore::LayerTexture::bindTexture):
131         (WebCore::LayerTexture::framebufferTexture2D):
132         * platform/graphics/chromium/LayerTexture.h: Added.
133         (WebCore::LayerTexture::create):
134         * platform/graphics/chromium/PluginLayerChromium.cpp:
135         (WebCore::PluginLayerChromium::updateContentsIfDirty):
136         * platform/graphics/chromium/PluginLayerChromium.h:
137         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
138         (WebCore::RenderSurfaceChromium::SharedValues::SharedValues):
139         (WebCore::RenderSurfaceChromium::SharedValues::~SharedValues):
140         (WebCore::RenderSurfaceChromium::RenderSurfaceChromium):
141         (WebCore::RenderSurfaceChromium::cleanupResources):
142         (WebCore::RenderSurfaceChromium::prepareContentsTexture):
143         (WebCore::RenderSurfaceChromium::draw):
144         * platform/graphics/chromium/RenderSurfaceChromium.h:
145         (WebCore::RenderSurfaceChromium::SharedValues::shaderProgram):
146         (WebCore::RenderSurfaceChromium::SharedValues::shaderSamplerLocation):
147         (WebCore::RenderSurfaceChromium::SharedValues::shaderMatrixLocation):
148         (WebCore::RenderSurfaceChromium::SharedValues::shaderAlphaLocation):
149         (WebCore::RenderSurfaceChromium::SharedValues::initialized):
150         * platform/graphics/chromium/TextureManager.cpp: Added.
151         (WebCore::memoryUseBytes):
152         (WebCore::TextureManager::TextureManager):
153         (WebCore::TextureManager::getToken):
154         (WebCore::TextureManager::releaseToken):
155         (WebCore::TextureManager::hasTexture):
156         (WebCore::TextureManager::protectTexture):
157         (WebCore::TextureManager::unprotectTexture):
158         (WebCore::TextureManager::reduceMemoryToLimit):
159         (WebCore::TextureManager::addTexture):
160         (WebCore::TextureManager::removeTexture):
161         (WebCore::TextureManager::requestTexture):
162         * platform/graphics/chromium/TextureManager.h: Added.
163         (WebCore::TextureManager::create):
164         * platform/graphics/chromium/VideoLayerChromium.cpp:
165         (WebCore::VideoLayerChromium::updateContentsIfDirty):
166         * platform/graphics/chromium/VideoLayerChromium.h:
167         * platform/graphics/chromium/WebGLLayerChromium.cpp:
168         (WebCore::WebGLLayerChromium::updateContentsIfDirty):
169         * platform/graphics/chromium/WebGLLayerChromium.h:
170
171 2010-12-09  Darin Adler  <darin@apple.com>
172
173         Reviewed by Sam Weinig.
174
175         Rework my recent setLocation refactoring to use DOMWindow instead of Frame.
176         It's difficult to make correct security decisions based on Frame since a
177         Frame can navigate to a new document.
178
179         Fixes some test failures that I somehow missed before the last check-in.
180
181         * bindings/js/JSDOMWindowBase.cpp:
182         (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage): Call to the
183         shell DOMWindow; not sure this one matters, but it's closer to the old
184         code before my last patch. Also pass the DOMWindow rather than the
185         frame to crossDomainAccessErrorMessage.
186
187         * bindings/js/JSDOMWindowCustom.cpp:
188         (WebCore::JSDOMWindow::setLocation): Pass DOMWindow rather than Frame
189         to the DOMWindow::setLocation function.
190
191         * page/DOMWindow.cpp:
192         (WebCore::DOMWindow::setLocation): Take DOMWindow rather than Frame.
193         (WebCore::DOMWindow::crossDomainAccessErrorMessage): Ditto.
194
195         * page/DOMWindow.h: Update new functions to take DOMWindow rather
196         than Frame.
197
198 2010-12-09  Sam Weinig  <sam@webkit.org>
199
200         Try and fix the mac build.
201
202         * WebCore.exp.in:
203
204 2010-12-09  Dan Bernstein  <mitz@apple.com>
205
206         Reviewed by Dave Hyatt.
207
208         Removed an unused variable.
209
210         * rendering/InlineFlowBox.cpp:
211         (WebCore::InlineFlowBox::computeLogicalBoxHeights): Removed parentLineHeight.
212
213 2010-12-09  Darin Adler  <darin@apple.com>
214
215         Reviewed by Geoffrey Garen.
216
217         Move DOMWindow::setLocation logic into DOMWindow class and out of JavaScript binding
218         https://bugs.webkit.org/show_bug.cgi?id=50640
219
220         * bindings/js/JSDOMBinding.cpp:
221         (WebCore::printErrorMessageForFrame): Removed body; just call through to
222         DOMWindow::printErrorMessage.
223
224         * bindings/js/JSDOMWindowBase.cpp:
225         (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage): Removed body;
226         just call through to DOMWindow::crossDomainAccessErrorMessage.
227
228         * bindings/js/JSDOMWindowCustom.cpp:
229         (WebCore::JSDOMWindow::setLocation): Changed terminology to use activeFrame and
230         firstFrame, rather than the older lexicalFrame and dynamicFrame. Removed most
231         of the body and moved it into DOMWindow::setLocation.
232
233         * page/DOMWindow.cpp:
234         (WebCore::DOMWindow::setLocation): Added. Does all the same work that
235         JSDOMWindow::setLocation used to do, but in a way that's not specific
236         to JavaScript.
237         (WebCore::DOMWindow::printErrorMessage): Added.
238         (WebCore::DOMWindow::crossDomainAccessErrorMessage): Added.
239
240         * page/DOMWindow.h: Added setLocation, printErrorMessage, and
241         crossDomainAccessErrorMessage.
242
243 2010-12-09  Sam Weinig  <sam@webkit.org>
244
245         Reviewed by Dan Bernstein.
246
247         WebKit2 needs smooth scrolling support on the mac
248         <rdar://problem/8219402>
249
250         * WebCore.xcodeproj/project.pbxproj: Change ScrollAnimatorMac.cpp to ScrollAnimatorMac.mm.
251         * platform/mac/ScrollAnimatorMac.cpp: Removed.
252         * platform/mac/ScrollAnimatorMac.h:
253         * platform/mac/ScrollAnimatorMac.mm: Copied from platform/mac/ScrollAnimatorMac.cpp.
254         (-[ScrollAnimationHelperDelegate initWithScrollAnimator:WebCore::]):
255         (-[ScrollAnimationHelperDelegate bounds]):
256         (-[ScrollAnimationHelperDelegate _immediateScrollToPoint:]):
257         (-[ScrollAnimationHelperDelegate convertSizeToBase:]):
258         (-[ScrollAnimationHelperDelegate convertSizeFromBase:]):
259         (-[ScrollAnimationHelperDelegate superview]):
260         (-[ScrollAnimationHelperDelegate documentView]):
261         (-[ScrollAnimationHelperDelegate window]):
262         (-[ScrollAnimationHelperDelegate _recursiveRecomputeToolTips]):
263         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
264         (WebCore::ScrollAnimatorMac::scroll):
265         (WebCore::ScrollAnimatorMac::setScrollPositionAndStopAnimation):
266         (WebCore::ScrollAnimatorMac::currentPosition):
267         (WebCore::ScrollAnimatorMac::immediateScrollToPoint):
268         Add implementation of ScrollAnimator for the Mac.
269
270 2010-12-09  Brady Eidson  <beidson@apple.com>
271
272         Reviewed by Anders Carlsson.
273
274         <rdar://problem/8613779> and https://bugs.webkit.org/show_bug.cgi?id=50777
275         WebKit2 ContextMenuClient support
276
277         Export some symbols and headers needed by WebKit2 Mac:
278         * WebCore.exp.in:
279         * WebCore.xcodeproj/project.pbxproj:
280
281 2010-12-09  Sheriff Bot  <webkit.review.bot@gmail.com>
282
283         Unreviewed, rolling out r73635.
284         http://trac.webkit.org/changeset/73635
285         https://bugs.webkit.org/show_bug.cgi?id=50778
286
287         'Side-effects on 3 css tests needs closer review' (Requested
288         by mwenge on #webkit).
289
290         * platform/graphics/qt/ImageQt.cpp:
291         (loadResourcePixmap):
292         * platform/qt/RenderThemeQt.cpp:
293         (WebCore::RenderThemeQt::computeSizeBasedOnStyle):
294         (WebCore::RenderThemeQt::paintSearchField):
295         (WebCore::RenderThemeQt::adjustSearchFieldStyle):
296         (WebCore::RenderThemeQt::adjustSearchFieldCancelButtonStyle):
297         (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
298         * platform/qt/RenderThemeQt.h:
299
300 2010-12-09  Robert Hogan  <robert@webkit.org>
301
302         Reviewed by Andreas Kling.
303
304         [Qt] Search input field doesn't have cancel button
305
306         Add a cancel button to the search field and make it customizable
307         by the client. For now, use the close dialog button associated
308         with the application's style as the default.
309
310         https://bugs.webkit.org/show_bug.cgi?id=42887
311
312         * platform/graphics/qt/ImageQt.cpp:
313         (loadResourcePixmap):
314         * platform/qt/RenderThemeQt.cpp:
315         (WebCore::RenderThemeQt::computeSizeBasedOnStyle):
316         (WebCore::RenderThemeQt::paintSearchField):
317         (WebCore::RenderThemeQt::adjustSearchFieldStyle):
318         (WebCore::RenderThemeQt::adjustSearchFieldCancelButtonStyle):
319         (WebCore::RenderThemeQt::convertToPaintingRect):
320         (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
321         * platform/qt/RenderThemeQt.h:
322
323 2010-12-09  Yael Aharon  <yael.aharon@nokia.com>
324
325         Reviewed by Antonio Gomes.
326
327         Spatial Navigation: Crash when handling iframe of size 0.
328         https://bugs.webkit.org/show_bug.cgi?id=50730
329
330         if we have a frame of size 0, we would get into infinite loop and eventually crash. The reason is
331         that when the algorithm sees a starting rect of size 0, it assumes that there is no focused node,
332         thus restarts itself. The solution is to avoid considering iframes with size 0 for the spatial
333         navigation algorithm.
334
335         Test: fast/spatial-navigation/snav-hidden-iframe-zero-size.html
336
337         * page/FocusController.cpp:
338         (WebCore::updateFocusCandidateIfNeeded):
339
340 2010-12-09  Sheriff Bot  <webkit.review.bot@gmail.com>
341
342         Unreviewed, rolling out r73616.
343         http://trac.webkit.org/changeset/73616
344         https://bugs.webkit.org/show_bug.cgi?id=50772
345
346         Breaks chromium win build (Requested by hwennborg on #webkit).
347
348         * bindings/v8/IDBBindingUtilities.cpp:
349         (WebCore::createIDBKeyFromValue):
350         * bindings/v8/custom/V8IDBKeyCustom.cpp:
351         (WebCore::toV8):
352         * storage/IDBFactoryBackendImpl.cpp:
353         (WebCore::createTables):
354         (WebCore::IDBFactoryBackendImpl::open):
355         * storage/IDBKey.cpp:
356         (WebCore::IDBKey::IDBKey):
357         (WebCore::IDBKey::fromQuery):
358         (WebCore::IDBKey::bind):
359         (WebCore::IDBKey::bindWithNulls):
360         * storage/IDBKey.h:
361         (WebCore::IDBKey::create):
362         (WebCore::IDBKey::number):
363
364 2010-12-09  Antonio Gomes  <agomes@rim.com>
365
366         Rubber stamped by by Gustavo Noronha Silva.
367
368         Buildfix for GTK+ with building with -no-video.
369
370         paintStockIcon static function was implemented under the ENABLE(VIDEO) guard
371         but used from outside the guard. See RenderThemeGtk::paintSearchFieldResultsDecoration()
372         and RenderThemeGtk::paintSearchFieldCancelButton() methods.
373
374         * platform/gtk/RenderThemeGtk.cpp:
375         (WebCore::getMediaElementFromRenderObject):
376
377 2010-12-07  Antonio Gomes  <agomes@rim.com>
378
379         Reviewed by Daniel Bates.
380
381         Spatial Navigation: code clean up
382         https://bugs.webkit.org/show_bug.cgi?id=50666
383
384         Patch unifies two FocusCandidate constructors, making caller sites
385         simpler. Now the special handling HTMLAreaElement gets is done within
386         the non default constructor (i.e. FocusCanditate(Node*, FocusDirection)).
387
388         No new tests needed.
389
390         * page/FocusController.cpp:
391         (WebCore::FocusController::findFocusCandidateInContainer):
392         * page/SpatialNavigation.cpp:
393         (WebCore::FocusCandidate::FocusCandidate):
394
395 2010-12-09  Philippe Normand  <pnormand@igalia.com>
396
397         Reviewed by Eric Carlson.
398
399         [GStreamer] disable fullscreen on MacOS Tiger and Leopard
400         https://bugs.webkit.org/show_bug.cgi?id=50748
401
402         Don't support fullscreen video on Tiger and Leopard, just like the
403         QTKit player.
404
405         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
406         (WebCore::MediaPlayerPrivateGStreamer::supportsFullscreen):
407
408 2010-12-06  Philippe Normand  <pnormand@igalia.com>
409
410         Reviewed by Martin Robinson.
411
412         [GTK] Support the Mozilla-style Fullscreen Javascript API
413         https://bugs.webkit.org/show_bug.cgi?id=50572
414
415         * GNUmakefile.am: enable the Javascript Fullscreen API feature if
416         it's been requested at configure time.
417
418 2010-12-09  Yong Li  <yoli@rim.com>
419
420         Reviewed by Darin Adler.
421
422         Check the return value of ImageBuffer::create()
423         to avoid crash when ImageBuffer::create() fails.
424         https://bugs.webkit.org/show_bug.cgi?id=50631
425
426         No new test because it relies on the platform implementation
427         of ImageBuffer. It is hard to make ImageBuffer::create() fail
428         in most ports.
429
430         * platform/graphics/GeneratedImage.cpp:
431         (WebCore::GeneratedImage::drawPattern):
432
433 2010-12-09  Maciej Stachowiak  <mjs@apple.com>
434
435         Reviewed by Dan Bernstein.
436
437         Implement "Use Selection for Find" in WebKit2
438         https://bugs.webkit.org/show_bug.cgi?id=50737
439         <rdar://problem/8564881>
440
441         Implement a TakeFindStringFromSelection editor command. This is
442         used solely to implement the "Use Selection for Find" menu command
443         on Mac, and is not made available to script. On WebKit2, it is
444         very convenient to reuse the editing machinery since this command
445         is very similar to Copy.
446
447         * editing/Editor.h:
448         * editing/EditorCommand.cpp:
449         (WebCore::executeTakeFindStringFromSelection): Call to a mac-only Editor function.
450         (WebCore::enabledTakeFindStringFromSelection): Check using Editor::canCopyExcludingStandaloneImage
451         (WebCore::createCommandMap): Add "TakeFindStringFromSelection" command.
452         * editing/mac/EditorMac.mm:
453         (WebCore::Editor::canCopyExcludingStandaloneImages): Helper function; we can't use Editor::canCopy
454         since it would make no sense to enable "Use Selection for Find" when viewing a standalone image
455         document.
456         (WebCore::Editor::takeFindStringFromSelection): Implement by copying the selected text
457         to the special Find pasteboard.
458
459 2010-12-09  Abhishek Arya  <inferno@chromium.org>
460
461         Reviewed by Dimitri Glazkov.
462
463         As part of r73559, I added the referenceNode check to validate whether the root
464         node of the iterator matches the node which is getting moved to other document.
465         referenceNode is initialized to root, however can get moved using previousNode
466         and nextNode methods, so it is required to use root directly.
467         https://bugs.webkit.org/show_bug.cgi?id=50764
468
469         Test: fast/dom/node-iterator-reference-node-moved-crash.html
470
471         * dom/Document.cpp:
472         (WebCore::Document::moveNodeIteratorsToNewDocument): change referenceNode to root.
473
474 2010-12-08  Dimitri Glazkov  <dglazkov@chromium.org>
475
476         Reviewed by Darin Adler.
477
478         Provide a generic way to store shadowParent on a Node.
479         https://bugs.webkit.org/show_bug.cgi?id=50184
480
481         This patch makes TreeShared::m_parent act as either parentNode() or
482         shadowHost() for Node. The distinction is controlled by IsShadowRootFlag.
483
484         Refactoring, so no new tests. See performance result testing in bug.
485
486         * dom/Element.cpp:
487         (WebCore::Element::recalcStyle): Changed to use parentOrHostNode().
488         * dom/Node.cpp:
489         (WebCore::Node::shadowHost): Added.
490         (WebCore::Node::setShadowHost): Added.
491         (WebCore::Node::isContentEditable): Changed to use parentOrHostNode().
492         (WebCore::Node::isContentRichlyEditable): Ditto.
493         (WebCore::Node::nextRenderer): Ditto.
494         (WebCore::Node::virtualComputedStyle): Ditto.
495         (WebCore::Node::canStartSelection): Ditto.
496         (WebCore::Node::shadowTreeRootNode): Changed to use parentNodeGuaranteedHostFree().
497         (WebCore::Node::getEventAncestors): Ditto.
498         (WebCore::Node::defaultEventHandler): Changed to use parentOrHostNode(). 
499         * dom/Node.h: Added an extra flag and adjusted bit counts.
500         (WebCore::Node::isShadowNode): Made non-virtual, switched to use flag.
501         (WebCore::Node::parentNode): Made to recognize flag.
502         (WebCore::Node::parentOrHostNode): Changed to use straight parent() and made const.
503         (WebCore::Node::parentNodeGuaranteedHostFree): Added.
504         (WebCore::Node::shadowParentNode): Made non-virtual and const.
505         * editing/TextIterator.cpp:
506         (WebCore::depthCrossingShadowBoundaries): Changed to use parentOrHostNode();
507         (WebCore::nextInPreOrderCrossingShadowBoundaries): Ditto.
508         (WebCore::previousInPostOrderCrossingShadowBoundaries):  Ditto.
509         (WebCore::setUpFullyClippedStack): Ditto.
510         (WebCore::TextIterator::advance): Ditto.
511         (WebCore::SimplifiedBackwardsTextIterator::advance): Ditto.
512         * page/DOMSelection.cpp:
513         (WebCore::DOMSelection::anchorNode): Changed to use parentNodeGuaranteedHostFree().
514         (WebCore::DOMSelection::focusNode): Ditto.
515         (WebCore::DOMSelection::baseNode): Ditto.
516         (WebCore::DOMSelection::extentNode): Ditto.
517         (WebCore::DOMSelection::getRangeAt): Ditto.
518         * rendering/MediaControlElements.cpp:
519         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
520             Changed to setShadowHost().
521         (WebCore::MediaControlShadowRootElement::updateStyle): Changed to use shadowHost().
522         (WebCore::MediaControlShadowRootElement::detach): Added an override to
523             explicitly set shadowHost to 0. Otherwise, the element will leak.
524         * rendering/MediaControlElements.h: Added detach def, removed members that are
525             no longer needed.
526         * rendering/RenderSVGShadowTreeRootContainer.cpp:
527         (WebCore::RenderSVGShadowTreeRootContainer::~RenderSVGShadowTreeRootContainer):
528             Added explicit clearing of shadowHost to avoid leaking and crashes,
529             because SVG shadow DOM can be dynamically attached/detached, producing
530             stale nodes in over/out event handling.
531         * rendering/RenderSlider.cpp:
532         (WebCore::SliderThumbElement::defaultEventHandler): Changed to use shadowHost().
533         * rendering/RenderTextControlSingleLine.cpp:
534         (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
535             Added explicit clearing of shadowHost and explicit destruction to
536             avoid out-of-order removal of children.
537         * rendering/RenderTreeAsText.cpp:
538         (WebCore::nodePosition): Simplified code.
539         * rendering/SVGShadowTreeElements.cpp:
540         (WebCore::SVGShadowTreeRootElement::SVGShadowTreeRootElement): Added
541             setting of shadowHost.
542         (WebCore::SVGShadowTreeRootElement::attachElement): Changed to use shadowHost().
543         (WebCore::SVGShadowTreeRootElement::clearShadowHost): Added.
544         * rendering/SVGShadowTreeElements.h: Added def, removed members that are
545              no longer needed.
546         * rendering/ShadowElement.cpp:
547         (WebCore::ShadowBlockElement::initAsPart): Changed to use shadowHost().
548         * rendering/ShadowElement.h: Removed members that are no longer needed.
549         (WebCore::ShadowElement::ShadowElement): Added setting of shadowHost.
550         (WebCore::ShadowElement::detach): Added.
551         * rendering/TextControlInnerElements.cpp:
552         (WebCore::TextControlInnerElement::TextControlInnerElement): Added setting
553             of shadowHost.
554         (WebCore::TextControlInnerElement::attachInnerElement): Changed to use
555             isShadowNode().
556         (WebCore::TextControlInnerElement::detach): Added.
557         * rendering/TextControlInnerElements.h: Removed members that are no
558             longer needed.
559         * svg/SVGElement.cpp:
560         (WebCore::SVGElement::ownerSVGElement): Simplified code.
561         (WebCore::SVGElement::viewportElement): Ditto.
562         * svg/SVGLocatable.cpp:
563         (WebCore::SVGLocatable::computeCTM): Ditto.
564         * svg/SVGStyledElement.cpp:
565         (WebCore::SVGStyledElement::title): Ditto.
566         * svg/SVGUseElement.cpp:
567         (WebCore::ShadowTreeUpdateBlocker::while): Ditto.
568
569 2010-12-09  Hans Wennborg  <hans@chromium.org>
570
571         Reviewed by Jeremy Orlow.
572
573         IndexedDB: Numeric keys are floats.
574         https://bugs.webkit.org/show_bug.cgi?id=50674
575
576         Use floating point to represent numeric keys,
577         add version meta data to the SQLite db,
578         and migrate object stores that use integers.
579
580         * bindings/v8/IDBBindingUtilities.cpp:
581         (WebCore::createIDBKeyFromValue):
582         * bindings/v8/custom/V8IDBKeyCustom.cpp:
583         (WebCore::toV8):
584         * storage/IDBFactoryBackendImpl.cpp:
585         (WebCore::createTables):
586         (WebCore::migrateDatabase):
587         (WebCore::IDBFactoryBackendImpl::open):
588         * storage/IDBKey.cpp:
589         (WebCore::IDBKey::IDBKey):
590         (WebCore::IDBKey::fromQuery):
591         (WebCore::IDBKey::bind):
592         (WebCore::IDBKey::bindWithNulls):
593         * storage/IDBKey.h:
594         (WebCore::IDBKey::create):
595         (WebCore::IDBKey::number):
596
597 2010-12-09  Brady Eidson  <beidson@apple.com>
598
599         Reviewed by Maciej Stachowiak.
600
601         <rdar://problem/7660733> and https://bugs.webkit.org/show_bug.cgi?id=50191
602         WebKit2 Authentication Support
603
604         * WebCore.exp.in:
605
606 2010-12-09  Peter Beverloo  <peter@lvp-media.com>
607
608         Reviewed by Maciej Stachowiak.
609
610         Default CSS definitions for the figure and figcaption elements.
611
612         Tests: fast/html/figcaption-element.html
613                fast/html/figure-element.html
614
615         * css/html.css:
616         (figure): The default figure-style equals a blockquote
617         (figcaption): A non-sectioning block-level element
618
619 2010-12-09  Yury Semikhatsky  <yurys@chromium.org>
620
621         Reviewed by Pavel Feldman.
622
623         Web Inspector: Console records for failed XHRs should contain call stack and request method
624         https://bugs.webkit.org/show_bug.cgi?id=50390
625
626         When inspector front-end is open we capture call stack at the place where request is sent and
627         pass the stack along with other request data. There is a new type of console messages which
628         is NetworkErrorMessageType, all messages of that type will have requestId field initialized
629         with the corresponding network request identifier so that later on when we need to display
630         that message in the front-end we could pull request data from the Network panel using
631         this identifier. If there are no data for given requestId message formatting falls back to
632         the old implementation which lacks such things as call stack, request method and exact
633         source location.
634
635         * inspector/ConsoleMessage.cpp:
636         (WebCore::ConsoleMessage::ConsoleMessage):
637         (WebCore::ConsoleMessage::addToFrontend):
638         (WebCore::ConsoleMessage::isEqual):
639         * inspector/ConsoleMessage.h:
640         * inspector/Inspector.idl:
641         * inspector/InspectorController.cpp:
642         (WebCore::InspectorController::didReceiveResponse):
643         (WebCore::InspectorController::didFailLoading):
644         * inspector/InspectorResourceAgent.cpp:
645         (WebCore::InspectorResourceAgent::identifierForInitialRequest):
646         * inspector/front-end/ConsoleView.js:
647         (WebInspector.ConsoleView.prototype.updateMessageRepeatCount):
648         (WebInspector.ConsoleMessage):
649         (WebInspector.ConsoleMessage.prototype._formatMessage):
650         (WebInspector.ConsoleMessage.prototype.toMessageElement):
651         (WebInspector.ConsoleMessage.prototype.toString):
652         (WebInspector.ConsoleMessage.prototype.isEqual):
653         * inspector/front-end/ResourceManager.js:
654         (WebInspector.ResourceManager.prototype.identifierForInitialRequest):
655         * inspector/front-end/inspector.js:
656         (WebInspector.addConsoleMessage):
657         * page/Console.h:
658
659 2010-12-09  Dai Mikurube  <dmikurube@google.com>
660
661         Reviewed by Kent Tamura.
662
663         Implement "required" attribute for select tags
664         https://bugs.webkit.org/show_bug.cgi?id=50380
665
666         Test: fast/forms/select-live-pseudo-selectors.html
667               platform/mac/fast/objc/dom-html-select-live-pseudo-selectors.html
668
669         * dom/SelectElement.cpp:
670         (WebCore::SelectElement::updateValidity): Added. It's a pure virtual function which is prepared so that HTMLSelectElement::updateValidity() calls HTMLSelectElement::setNeedsValidityCheck().
671         (WebCore::SelectElement::parseMultipleAttribute): Added calling updateValidity().
672         * html/HTMLSelectElement.cpp:
673         (WebCore::HTMLSelectElement::deselectItems): Added calling setNeedsValidityCheck() to enable validity check after changing. No tests for this change since this function is not exposed to JavaScript or any web interface.
674         (WebCore::HTMLSelectElement::setSelectedIndex): Added calling setNeedsValidityCheck().
675         (WebCore::HTMLSelectElement::setSelectedIndexByUser): Added calling setNeedsValidityCheck().
676         (WebCore::HTMLSelectElement::valueMissing): Added valueMissing() to check if selecting an invalid or placeholder label option when a valid required attribute is specified.
677         (WebCore::HTMLSelectElement::listBoxSelectItem): Added calling setNeedsValidityCheck(). No tests for this change since it is not called yet. Look at the bug 36177 and the changeset 56180.
678         (WebCore::HTMLSelectElement::add): Added calling setNeedsValidityCheck().
679         (WebCore::HTMLSelectElement::remove): Added calling setNeedsValidityCheck().
680         (WebCore::HTMLSelectElement::restoreFormControlState): Added calling setNeedsValidityCheck().
681         (WebCore::HTMLSelectElement::parseMappedAttribute): Added calling setNeedsValidityCheck().
682         (WebCore::HTMLSelectElement::selectAll): Added calling setNeedsValidityCheck().
683         (WebCore::HTMLSelectElement::reset): Added calling setNeedsValidityCheck().
684         (WebCore::HTMLSelectElement::updateListBoxSelection): Added calling setNeedsValidityCheck(). Skipped adding tests for this change as too complicated..
685         (WebCore::HTMLSelectElement::setLength): Added calling setNeedsValidityCheck().
686         (WebCore::HTMLSelectElement::isRequiredFormControl): Check if required or not.
687         (WebCore::HTMLSelectElement::hasPlaceholderLabelOption): Added.
688         (WebCore::HTMLSelectElement::updateValidity): Added. It calls setNeedsValidityCheck().
689         * html/HTMLSelectElement.h:
690         (WebCore::HTMLSelectElement::isOptionalFormControl): Check if not required.
691         * html/HTMLSelectElement.idl: Added a required attribute to select elements..
692         * html/ValidityState.cpp:
693         (WebCore::ValidityState::valueMissing): Added valueMissing check for select elements into the global checker, ValidityState::valueMissing().
694         * wml/WMLSelectElement.h:
695         (WebCore::WMLSelectElement::updateValidity): Added. It does nothing.
696
697 2010-12-07  Jeremy Orlow  <jorlow@chromium.org>
698
699         Reviewed by Steve Block.
700
701         IndexedDB returns the wrong exceptions
702         https://bugs.webkit.org/show_bug.cgi?id=50632
703
704         IndexedDB exceptions need to have an offset so they can
705         be distinguished from DOM exceptions.  We also need to
706         add strings for the various exceptions.  Lastly, make
707         IDBDatabaseException use the common exception base class.
708
709         * bindings/js/JSDOMBinding.cpp:
710         (WebCore::setDOMException):
711         * bindings/v8/V8Proxy.cpp:
712         (WebCore::V8Proxy::setDOMException):
713         * dom/ExceptionCode.cpp:
714         (WebCore::getExceptionCodeDescription):
715         * dom/ExceptionCode.h:
716         * storage/IDBDatabaseError.h:
717         (WebCore::IDBDatabaseError::code):
718         * storage/IDBDatabaseException.h:
719         (WebCore::IDBDatabaseException::create):
720         (WebCore::IDBDatabaseException::ErrorCodeToExceptionCode):
721         (WebCore::IDBDatabaseException::IDBDatabaseException):
722         * storage/IDBDatabaseException.idl:
723
724 2010-12-09  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
725
726         Build fix for GTK+3. Use functions added for GTK+ 2.24 to get the
727         GDK window size.
728
729         * plugins/gtk/gtk2xtbin.c:
730         (gtk_xtbin_realize):
731
732 2010-12-09  Siddharth Mathur  <siddharth.mathur@nokia.com>
733
734         Reviewed by Laszlo Gombos.
735
736         Use BUILDING_WEBKIT like other ports
737         https://bugs.webkit.org/show_bug.cgi?id=50713
738
739         * WebCore.pro: Change BUILD_WEBKIT to BUILDING_WEBKIT
740
741 2010-12-08  Erik Arvidsson  <arv@chromium.org>
742
743         Reviewed by Darin Adler.
744
745         Replace getAttribute().isNull() with fastHasAttribute()
746         https://bugs.webkit.org/show_bug.cgi?id=50719
747
748         Covered by existing tests.
749
750         * dom/SelectElement.cpp:
751         (WebCore::SelectElement::reset):
752         * html/HTMLAppletElement.cpp:
753         (WebCore::HTMLAppletElement::rendererIsNeeded):
754         * html/HTMLCollection.cpp:
755         (WebCore::HTMLCollection::itemAfter):
756         * html/HTMLFormControlElement.cpp:
757         (WebCore::HTMLFormControlElement::formNoValidate):
758         * html/HTMLFormElement.cpp:
759         (WebCore::HTMLFormElement::noValidate):
760         * html/HTMLInputElement.cpp:
761         (WebCore::HTMLInputElement::defaultChecked):
762         (WebCore::HTMLInputElement::multiple):
763         (WebCore::HTMLInputElement::webkitdirectory):
764         * html/HTMLOptionElement.cpp:
765         (WebCore::HTMLOptionElement::defaultSelected):
766         * html/HTMLScriptElement.cpp:
767         (WebCore::HTMLScriptElement::asyncAttributeValue):
768         (WebCore::HTMLScriptElement::deferAttributeValue):
769         * rendering/RenderFileUploadControl.cpp:
770         (WebCore::RenderFileUploadControl::allowsMultipleFiles):
771         (WebCore::RenderFileUploadControl::allowsDirectoryUpload):
772
773 2010-12-08  Nicolas Dufresne  <nicolas.dufresne@collabora.co.uk>
774
775         Reviewed by Martin Robinson.
776
777         Full page size flash plugins do not show in all situations
778         https://bugs.webkit.org/show_bug.cgi?id=47742
779
780         This patch moves the plugin widget size allocation after the
781         NPP_SetWindow is called with the effect that the resize of Flash
782         content no longer result in grey flash. This seems logical since the
783         widget tree cannot be fully constructed before the plugin receives
784         the new container window.
785
786         Test: manual-tests/plugins/gtk-windowed-grey-glitch.html
787
788         * plugins/gtk/PluginViewGtk.cpp:
789         (WebCore::PluginView::setNPWindowIfNeeded):
790
791 2010-12-08  David Hyatt  <hyatt@apple.com>
792
793         Reviewed by Simon Fraser.
794
795         Fix regression from xji's wheel scroll patch.  The vertical case is looking at the horizontal
796         maximum position and not the vertical position.
797
798         * platform/ScrollView.cpp:
799         (WebCore::ScrollView::wheelEvent):
800
801 2010-12-08  Sam Weinig  <sam@webkit.org>
802
803         Reviewed by Darin Adler.
804
805         Need a way to get a WKBundleFrameRef from JS HTMLIFrameElement
806         https://bugs.webkit.org/show_bug.cgi?id=50726
807
808         * WebCore.xcodeproj/project.pbxproj: Expose HTMLIFrameElement.h.
809
810 2010-12-08  Matthew Delaney  <mdelaney@apple.com>
811
812         Reviewed by Simon Fraser.
813
814         Add getter and setters for acceleratesRendering flag on layers
815         https://bugs.webkit.org/show_bug.cgi?id=50717
816
817         * platform/graphics/GraphicsLayer.cpp:
818         * platform/graphics/ca/GraphicsLayerCA.cpp:
819         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
820         Plumbed through acceleratedRendering flag.
821
822 2010-12-07  Zhenyao Mo  <zmo@google.com>
823
824         Reviewed by Kenneth Russell.
825
826         WebGLUniformLocation objects must be invalidated during linkProgram
827         https://bugs.webkit.org/show_bug.cgi?id=37118
828
829         * html/canvas/WebGLProgram.cpp:
830         (WebCore::WebGLProgram::WebGLProgram): Initialize link count to 0.
831         (WebCore::WebGLProgram::cacheActiveAttribLocations): Don't check link status through gl call; use the cached status instead.
832         * html/canvas/WebGLProgram.h:
833         (WebCore::WebGLProgram::getLinkCount): Get link count.
834         (WebCore::WebGLProgram::increaseLinkCount): Increase link count by 1.
835         * html/canvas/WebGLRenderingContext.cpp:
836         (WebCore::WebGLRenderingContext::getUniform): Fix a bug where wrong error is generated.
837         (WebCore::WebGLRenderingContext::linkProgram): call increaseLinkCount after linkProgram.
838         * html/canvas/WebGLUniformLocation.cpp:
839         (WebCore::WebGLUniformLocation::WebGLUniformLocation): Set program's link count upon creation.
840         (WebCore::WebGLUniformLocation::program): Return null if count doesn't match the program's.
841         (WebCore::WebGLUniformLocation::location): Return -1 if count doesn't match the program's.
842         * html/canvas/WebGLUniformLocation.h:
843
844 2010-12-08  Adele Peterson  <adele@apple.com>
845
846         Reviewed by Darin Adler.
847
848         Fix for https://bugs.webkit.org/show_bug.cgi?id=50725
849         <rdar://problem/8694972> REGRESSION (r72052): "Search" placeholder in MobileMe mail is positioned too high
850
851         Test: fast/forms/placeholder-position.html
852
853         Since we center the inner text element for single line text controls, 
854         we should ask the subclass to give us the y offset instead of trying to calculate it in the RenderTextControl class.
855
856         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::paintPlaceholder):
857         * rendering/RenderTextControl.h:
858         * rendering/RenderTextControlMultiLine.cpp: (WebCore::RenderTextControlMultiLine::textBlockInsetTop):
859         * rendering/RenderTextControlMultiLine.h:
860         * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::textBlockInsetTop):
861         * rendering/RenderTextControlSingleLine.h:
862
863 2010-12-08  Chris Rogers  <crogers@google.com>
864
865         Reviewed by Kenneth Russell.
866
867         Add web audio files to mac port Xcode projects
868         https://bugs.webkit.org/show_bug.cgi?id=50721
869
870         No new tests since audio API is not yet implemented.
871
872         * WebCore.xcodeproj/project.pbxproj:
873         * bindings/js/JSDOMWindowCustom.cpp:
874         (WebCore::JSDOMWindow::webkitAudioContext):
875
876 2010-12-08  Kent Tamura  <tkent@chromium.org>
877
878         Reviewed by Alexey Proskuryakov.
879
880         Yensign hack should work with Shift_JIS and ISO-2022-JP encodings.
881         https://bugs.webkit.org/show_bug.cgi?id=49714
882
883         IE chooses a font which shows a yensign for 0x5c code point for a page
884         encoded in x-mac-japanese, ISO-2022-JP, EUC-JP, Shift_JIS, Shift_JIS_X0213-2000,
885         x-sjis, and Windows-31J.
886         We have emulated this behavior by replacing 0x5c with 0xa5 for EUC-JP and
887         Shift_JIS_X0213-2000. This change adds other encodings above.
888
889         Also, we move the HashSet initialization for isJapanese() and
890         backslashAsCurrencySymbol() to TextEncodingRegistry.cpp because of
891         ease of making them multi-thread safe.
892
893         * platform/text/TextEncoding.cpp:
894         (WebCore::TextEncoding::isJapanese): Just calls isJapaneseEncoding().
895         (WebCore::TextEncoding::backslashAsCurrencySymbol): Uses shouldShowBackslashAsCurrencySymbolIn().
896         * platform/text/TextEncodingRegistry.cpp:
897         (WebCore::addEncodingName): Moved from TextEncoding.cpp, and stop using atomicCanonicalTextEncodingName().
898         (WebCore::buildQuirksSets): Added. Initializes HashSets for isJapaneseEncoding() and shouldShowBackslashAsCurrencySymbolIn().
899         (WebCore::isJapaneseEncoding):
900         (WebCore::shouldShowBackslashAsCurrencySymbolIn):
901         (WebCore::extendTextCodecMaps): Add a call to buildQuirksSets().
902         * platform/text/TextEncodingRegistry.h:
903
904 2010-12-08  Andy Estes  <aestes@apple.com>
905
906         Reviewed by Darin Adler.
907
908         Reflected unsigned attributes should be in the range [0, 2^31).
909         https://bugs.webkit.org/show_bug.cgi?id=50472
910
911         HTML5 says that unsigned reflected attributes should be in the range
912         [0, 2^31). When a value isn't in this range, a default value (or 0)
913         should be returned instead. Update the JS bindings code generator to
914         ensure 0 is returned when a content attribute value falls outside of
915         this range.
916
917         Tests: bindings/scripts/test/TestObj.idl
918                fast/html/marquee-element.html
919
920         * bindings/scripts/CodeGeneratorJS.pm: Return the maximum of 0 and the
921         content attribute as a 32-bit signed int when converting a native value
922         to an unsigned JS value.
923         * bindings/scripts/test/TestObj.idl: Add a reflected unsigned attribute
924         to test code generation.
925         * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Update test results.
926         * bindings/scripts/test/CPP/WebDOMTestObj.h: Ditto.
927         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto.
928         * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto.
929         * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
930         * bindings/scripts/test/JS/JSTestObj.h: Ditto.
931         * bindings/scripts/test/ObjC/DOMTestObj.h: Ditto.
932         * bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto.
933         * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
934
935 2010-12-08  Carlos Garcia Campos  <cgarcia@igalia.com>
936
937         Reviewed by Martin Robinson.
938
939         [GTK] Use gtk_icon_set_render_icon() to render icons in RenderThemeGtk
940         https://bugs.webkit.org/show_bug.cgi?id=50623
941
942         We don't need to cache the icons since the will be cached by GTK+,
943         and they will be rendered using the state and text direction.
944
945         * platform/gtk/RenderThemeGtk.cpp:
946         (WebCore::paintStockIcon):
947         (WebCore::getMediaButtonIconSize):
948         (WebCore::RenderThemeGtk::initMediaColors):
949         (WebCore::RenderThemeGtk::initMediaButtons):
950         (WebCore::RenderThemeGtk::RenderThemeGtk):
951         (WebCore::RenderThemeGtk::~RenderThemeGtk):
952         (WebCore::RenderThemeGtk::gtkIconState):
953         (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationStyle):
954         (WebCore::centerRectVerticallyInParentInputElement):
955         (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
956         (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
957         (WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
958         (WebCore::RenderThemeGtk::platformColorsDidChange):
959         (WebCore::RenderThemeGtk::paintMediaButton):
960         (WebCore::RenderThemeGtk::paintMediaFullscreenButton):
961         (WebCore::RenderThemeGtk::paintMediaMuteButton):
962         (WebCore::RenderThemeGtk::paintMediaPlayButton):
963         (WebCore::RenderThemeGtk::paintMediaSeekBackButton):
964         (WebCore::RenderThemeGtk::paintMediaSeekForwardButton):
965         * platform/gtk/RenderThemeGtk.h:
966
967 2010-12-08  Abhishek Arya  <inferno@chromium.org>
968
969         Reviewed by Dimitri Glazkov.
970
971         Detach node iterator and move to new document when node gets moved.
972         https://bugs.webkit.org/show_bug.cgi?id=50697
973
974         Test: fast/dom/node-iterator-document-moved-crash.html
975
976         * dom/Document.cpp: Method that takes a node and new document as argument.
977         It detaches the node iterators belonging to the current document and attaches
978         them to the new document.
979         (WebCore::Document::moveNodeIteratorsToNewDocument):
980         * dom/Document.h: Function definition.
981         * dom/Node.cpp: When node is moved to another document, call the function to move
982         the iterators appropriately.
983         (WebCore::Node::setDocument):
984
985 2010-12-08  James Robinson  <jamesr@chromium.org>
986
987         Reviewed by Kenneth Russell.
988
989         [chromium] Text is blurry on a large composited layer with an odd center x/y coordinate
990         https://bugs.webkit.org/show_bug.cgi?id=50702
991
992         Compute the center of a large layer using floats instead of ints to avoid roundoff errors.
993
994         Test: compositing/text-on-large-layer.html
995
996         * platform/graphics/chromium/ContentLayerChromium.cpp:
997         (WebCore::ContentLayerChromium::draw):
998
999 2010-12-08  Ryosuke Niwa  <rniwa@webkit.org>
1000
1001         Reviewed by Dan Bernstein.
1002
1003         REGRESSION: LayoutTests/editing/selection/caret-rtl-2.html fails
1004         https://bugs.webkit.org/show_bug.cgi?id=33503
1005
1006         The bug was caused by Font::offsetForPosition's not taking into account the containing block's text direction.
1007         When RTL text appears in a LTR block, the offset at the beginning of RTL text is on the left of RTL text,
1008         and the offset at the end of RTL text is on the right of RTL text. For example, if we had RTL text CBA,
1009         then the correspondance between letters and offsets in logical order are: A -> 0, B -> 1, and C -> 2.
1010
1011         Case 1. CBA appears in a RTL block:
1012           In this case, clicking on the visual left of CBA puts the caret naturally at Position("CBA", 2).
1013           Clicking on the visual right of CBA puts the caret at Position("CBA", 0) as expected.
1014         Case 2. CBA appears in a LTR block:
1015           Because the containing block flows from left to right, by convention, Position("CBA", 2") corresponds
1016           to the visual right of CBA, and Position("CBA", 0) corresponds to the visual left of CBA.
1017           Therefore, clicking on the visual left of CBA should put the caret at Position("CBA", 0),
1018           and clicking on the visual right should put it at Position("CBA", 2).
1019
1020         The bug was caused by WebKit's not considering case 2. The same bug also exist for LTR text in a RTL block.
1021         Fixed the bug by taking care of the case 2 in InlineTextBox::offsetForPosition.
1022
1023         Tests: editing/selection/caret-ltr-2-left.html
1024                editing/selection/caret-ltr-2.html
1025                editing/selection/caret-ltr-right.html
1026                editing/selection/caret-ltr.html
1027                editing/selection/caret-rtl-2-left.html
1028                editing/selection/caret-rtl-right.html
1029
1030         * rendering/InlineTextBox.cpp:
1031         (WebCore::InlineTextBox::offsetForPosition):
1032
1033 2010-12-08  Anders Carlsson  <andersca@apple.com>
1034
1035         Reviewed by Darin Adler.
1036
1037         Fix some clang++ warnings (one of which was an actual bug)
1038         https://bugs.webkit.org/show_bug.cgi?id=50700
1039
1040         * page/mac/DragControllerMac.mm:
1041         (WebCore::DragController::dragOperation):
1042         Add parentheses to silent a clang warning.
1043
1044         * page/mac/EventHandlerMac.mm:
1045         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
1046         Fix || vs && precedence bug uncovered by clang.
1047
1048         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
1049         (WebCore::GraphicsContext3D::reshape):
1050         Use an early return to avoid a warning.
1051
1052 2010-12-08  Chris Marrin  <cmarrin@apple.com>
1053
1054         Reviewed by Simon Fraser.
1055
1056         Share code between Mac (CA) and Windows (CACF) GraphicsLayer implementations
1057         https://bugs.webkit.org/show_bug.cgi?id=49388
1058
1059         Added copy constructors and casting operators to go between 
1060         TransformationMatrix and CATransform3D. Also added a copy
1061         constructor to go from CGAffineTransform to TransformationMatrix.
1062         Used these new methods to clean up platform CA code. This will
1063         make it easier to port to Windows.
1064
1065         I also fixed a couple of build issues found when trying out a 
1066         Windows build.
1067
1068         This is a resubmission of changesets r73477 and r73483 with a 
1069         fix for the SL build. The failure was because TransformationMatrix
1070         included QuartzCore/CATransform3D.h which brought in some system
1071         libraries, including Quickdraw, which has a definition for
1072         'Cursor' which clashed with WebCore's 'Cursor' class. So I had
1073         to qualify its use in WebChromeClient.cpp in WebKit2.
1074
1075         * WebCore.xcodeproj/project.pbxproj:
1076         * platform/graphics/ca/GraphicsLayerCA.cpp:
1077         (WebCore::GraphicsLayerCA::updateContentsTransform):
1078         (WebCore::GraphicsLayerCA::ensureCloneLayers):
1079         (WebCore::GraphicsLayerCA::fetchCloneLayers):
1080         * platform/graphics/ca/TransformationMatrixCA.cpp: Copied from WebCore/platform/graphics/ca/TransformationMatrixCA.cpp.
1081         * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
1082         (PlatformCAAnimation::setFromValue):
1083         (PlatformCAAnimation::setToValue):
1084         (PlatformCAAnimation::setValues):
1085         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1086         (PlatformCALayer::transform):
1087         (PlatformCALayer::setTransform):
1088         (PlatformCALayer::sublayerTransform):
1089         (PlatformCALayer::setSublayerTransform):
1090         (PlatformCALayer::contentsTransform):
1091         (PlatformCALayer::setContentsTransform):
1092         * platform/graphics/cg/TransformationMatrixCG.cpp:
1093         (WebCore::TransformationMatrix::TransformationMatrix):
1094         * platform/graphics/transforms/TransformationMatrix.h:
1095
1096 2010-12-07  Brian Weinstein  <bweinstein@apple.com>
1097
1098         Reviewed by John Sullivan.
1099
1100         Layering Violation in ContextMenu - member variable of type HitTestResult
1101         https://bugs.webkit.org/show_bug.cgi?id=50586
1102         
1103         ContextMenu had a layering violation by having a member variable of type HitTestResult, because
1104         classes in WebCore/platform can't know about classes in WebCore.
1105         
1106         This patch moves the HitTestResult and all functions that use it out of ContextMenu into ContextMenuController.
1107         All of the functions that dealt with populating the ContextMenu are now in ContextMenuController, and this
1108         allowed us to delete the ContextMenu file, putting all of the cross-platform code that used to be it
1109         in ContextMenuController, and the rest of the code is in the platform-specific files.
1110
1111         No change in behavior, no new tests.
1112
1113         * Android.mk: Removed ContextMenu.cpp.
1114         * CMakeLists.txt: Ditto.
1115         * GNUmakefile.am: Ditto.
1116         * WebCore.gypi: Ditto.
1117         * WebCore.pro: Ditto.
1118         * WebCore.vcproj/WebCore.vcproj: Ditto.
1119         * WebCore.xcodeproj/project.pbxproj: Ditto.
1120
1121         * page/ContextMenuController.cpp:
1122         (WebCore::ContextMenuController::ContextMenuController): Initialized m_hitTestResult to an empty HitTestResult.
1123         (WebCore::ContextMenuController::handleContextMenuEvent): Call populate on the ContextMenuController instead
1124             of the ContextMenu.
1125         (WebCore::ContextMenuController::createContextMenu): Fix some indination, and store the HitTestResult in a member
1126             variable.
1127         (WebCore::ContextMenuController::showContextMenu): Call addInspectElementItem on the ContextMenuController.
1128         (WebCore::ContextMenuController::contextMenuItemSelected): Use m_hitTestResult whenever we need a HitTestResult.
1129         (WebCore::ContextMenuController::appendItem): Validates the item for its state, and then appends it to the parent menu.
1130             This allowed us to move checkOrEnableIfNeeded from ContextMenu.
1131
1132         These functions were all moved from ContextMenu, and changed slightly to fit in ContextMenuController.
1133         All calls to ContextMenu::appendItem were changed to ContextMenuController::appendItem, which takes care
1134         of validating the menu.
1135         (WebCore::separatorItem): Moved from ContextMenu.
1136         (WebCore::ContextMenuController::createAndAppendFontSubMenu): Ditto.
1137         (WebCore::ContextMenuController::createAndAppendSpellingAndGrammarSubMenu): Ditto.
1138         (WebCore::ContextMenuController::createAndAppendSpeechSubMenu): Ditto.
1139         (WebCore::ContextMenuController::createAndAppendWritingDirectionSubMenu): Ditto.
1140         (WebCore::ContextMenuController::createAndAppendTextDirectionSubMenu): Ditto.
1141         (WebCore::ContextMenuController::createAndAppendSubstitutionsSubMenu): Ditto.
1142         (WebCore::ContextMenuController::createAndAppendTransformationsSubMenu): Ditto.
1143         (WebCore::selectionContainsPossibleWord): Ditto.
1144         (WebCore::ContextMenuController::populate): Ditto.
1145         (WebCore::ContextMenuController::addInspectElementItem): Ditto.
1146         (WebCore::ContextMenuController::checkOrEnableIfNeeded): Ditto.
1147         
1148         * page/ContextMenuController.h:
1149         (WebCore::ContextMenuController::hitTestResult): Returns the HitTestResult of the current ContextMenu.
1150
1151         * platform/ContextMenu.cpp: Removed.
1152         * platform/ContextMenu.h:
1153         * platform/efl/ContextMenuEfl.cpp:
1154         (WebCore::ContextMenu::ContextMenu): Removed m_hitTestResult from the constructor.
1155         (WebCore::ContextMenu::appendItem): Removed the call to checkOrEnableIfNeeded.
1156         * platform/gtk/ContextMenuGtk.cpp:
1157         (WebCore::ContextMenu::ContextMenu): Removed m_hitTestResult from the constructor.
1158         (WebCore::ContextMenu::appendItem): Ditto.
1159         * platform/haiku/ContextMenuHaiku.cpp:
1160         (WebCore::ContextMenu::ContextMenu): Removed m_hitTestResult from the constructor.
1161         (WebCore::ContextMenu::appendItem): Ditto.
1162         (WebCore::ContextMenu::insertItem): Ditto.
1163         * platform/mac/ContextMenuMac.mm:
1164         (-[WebCoreMenuTarget validateMenuItem:]): Calls checkOrEnableIfNeeded on the controller instead of
1165             the context menu.
1166         (WebCore::ContextMenu::ContextMenu): Removed m_hitTestResult from the constructor.
1167         (WebCore::ContextMenu::appendItem): Removed the call to checkOrEnableIfNeeded.
1168         (WebCore::ContextMenu::insertItem): Ditto.
1169         * platform/win/ContextMenuWin.cpp:
1170         (WebCore::ContextMenu::ContextMenu): Removed m_hitTestResult from the constructor.
1171         (WebCore::ContextMenu::insertItem): Removed the call to checkOrEnableIfNeeded.
1172         * platform/wx/ContextMenuWx.cpp:
1173         (WebCore::ContextMenu::ContextMenu): Removed m_hitTestResult from the constructor.
1174         (ContextMenu::appendItem): Ditto.
1175
1176 2010-12-08  Martin Robinson  <mrobinson@igalia.com>
1177
1178         Reviewed by John Sullivan.
1179
1180         [GTK] Layering violation in ContextMenuGtk.cpp
1181         https://bugs.webkit.org/show_bug.cgi?id=50676
1182
1183         ContextMenuGtk accesses the page's ContextMenuController, which is a layering
1184         violation. This was fixed for Mac with change r73469. We make a similar fix here
1185         by moving the "activated" signal connection to the WebKit layer.
1186
1187         * platform/gtk/ContextMenuGtk.cpp:
1188         (WebCore::ContextMenu::appendItem): Remove access of ContextMenuController. This
1189         is a layering violation.
1190
1191 2010-12-08  Jessie Berlin  <jberlin@apple.com>
1192
1193         Reviewed by Adam Roben.
1194
1195         WebKit2: Implement WebChromeClient::exceededDatabaseQuota
1196         https://bugs.webkit.org/show_bug.cgi?id=50656
1197
1198         * WebCore.exp.in:
1199         Export the symbol for SecurityOrigin::databaseIdentifier.
1200
1201 2010-12-08  Csaba Osztrogon√°c  <ossy@webkit.org>
1202
1203         Unreviewed, rolling out r73521.
1204         http://trac.webkit.org/changeset/73521
1205         https://bugs.webkit.org/show_bug.cgi?id=50640
1206
1207         It broke 90 layout tests
1208
1209         * bindings/js/JSDOMBinding.cpp:
1210         (WebCore::printErrorMessageForFrame):
1211         * bindings/js/JSDOMWindowBase.cpp:
1212         (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
1213         * bindings/js/JSDOMWindowCustom.cpp:
1214         (WebCore::JSDOMWindow::setLocation):
1215         * page/DOMWindow.cpp:
1216         * page/DOMWindow.h:
1217
1218 2010-12-08  David Hyatt  <hyatt@apple.com>
1219
1220         Reviewed by Anders Carlsson.
1221
1222         https://bugs.webkit.org/show_bug.cgi?id=50576
1223
1224         REGRESSION in position of autocomplete popup on RTL page.
1225
1226         RTL static position computation did not subtract out the width of the enclosing box if the
1227         immediate parent was a RenderInline.  This bug was exposed by properly changing the RenderView
1228         to be RTL when the document was RTL.
1229
1230         Added three new tests in fast/block/positioning.
1231
1232         * rendering/RenderBox.cpp:
1233         (WebCore::RenderBox::computePositionedLogicalWidth):
1234
1235 2010-12-08  Xiaomei Ji  <xji@chromium.org>
1236
1237         Reviewed by David Hyatt.
1238
1239         Fix backward mouse wheeling not working when scroll position is below 0.
1240         https://bugs.webkit.org/show_bug.cgi?id=50370
1241
1242         Tests: fast/events/wheelevent-in-horizontal-scrollbar-in-rtl.html
1243                fast/events/wheelevent-in-vertical-scrollbar-in-rtl.html
1244
1245         * platform/ScrollView.cpp:
1246         (WebCore::ScrollView::wheelEvent):
1247
1248 2010-12-08  Simon Fraser  <simon.fraser@apple.com>
1249
1250         Reviewed by Dan Bernstein.
1251
1252         Fix pauseAnimation API to work with shorthand properties
1253         https://bugs.webkit.org/show_bug.cgi?id=50639
1254         
1255         The pause API is always called with a long-hand property, but that
1256         property may be animating via a shorthand. Detect this, and pause
1257         such shorthand animations.
1258
1259         * page/animation/AnimationBase.cpp:
1260         (WebCore::ShorthandPropertyWrapper::propertyWrappers): Expose the vector
1261         of wrappers used by a shorthand wrapper.
1262
1263         (WebCore::gatherEnclosingShorthandProperties): Utility function that walks
1264         through the shorthand wrappers, keeping track of which can affect the given
1265         property.
1266         (WebCore::AnimationBase::animatableShorthandsAffectingProperty): Return a set
1267         of shorthand properties that can affect the given property.
1268
1269         * page/animation/AnimationBase.h: New method.
1270         * page/animation/CompositeAnimation.cpp:
1271         (WebCore::CompositeAnimation::pauseTransitionAtTime): If we don't find the
1272         property itself, check whether it's being animated via shorthands.
1273
1274 2010-12-08  David Hyatt  <hyatt@apple.com>
1275
1276         Reviewed by Beth Dakin.
1277
1278         <rdar://problem/8740920> Gestures: Frame::scalePage() broken by r73885
1279
1280         Make sure the transform applied to the RenderView for page scaling is incorporated into the
1281         docTop/Bottom/Left/Right accessors.
1282
1283         * rendering/RenderView.cpp:
1284         (WebCore::RenderView::docTop):
1285         (WebCore::RenderView::docBottom):
1286         (WebCore::RenderView::docLeft):
1287         (WebCore::RenderView::docRight):
1288
1289 2010-12-08  Ilya Tikhonovsky  <loislo@chromium.org>
1290
1291         Reviewed by Yury Semikhatsky.
1292
1293         Web Inspector: Protocol cleanup task. Remove WebInspector wrappers
1294         for TimelineAgent functions.
1295
1296         https://bugs.webkit.org/show_bug.cgi?id=50690
1297
1298         * inspector/Inspector.idl:
1299         * inspector/front-end/TimelineAgent.js:
1300         * inspector/front-end/TimelinePanel.js:
1301         (WebInspector.TimelinePanel):
1302         (WebInspector.TimelinePanel.prototype.timelineProfilerWasStarted):
1303         (WebInspector.TimelinePanel.prototype.timelineProfilerWasStopped):
1304
1305 2010-12-08  Philippe Normand  <pnormand@igalia.com>
1306
1307         Reviewed by Gustavo Noronha Silva.
1308
1309         [GTK] media/fullscreen* failing on 64-bits Debug
1310         https://bugs.webkit.org/show_bug.cgi?id=50394
1311
1312         Avoid emiting durationchanged in the case where the previous
1313         duration was 0 because that case is already handled by the
1314         HTMLMediaElement.
1315
1316         Test: media/media-fullscreen*.html
1317
1318         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1319         (WebCore::MediaPlayerPrivateGStreamer::durationChanged):
1320
1321 2010-12-07  Darin Adler  <darin@apple.com>
1322
1323         Reviewed by Geoffrey Garen.
1324
1325         Move DOMWindow::setLocation logic into DOMWindow class and out of JavaScript binding
1326         https://bugs.webkit.org/show_bug.cgi?id=50640
1327
1328         * bindings/js/JSDOMBinding.cpp:
1329         (WebCore::printErrorMessageForFrame): Removed body; just call through to
1330         DOMWindow::printErrorMessage.
1331
1332         * bindings/js/JSDOMWindowBase.cpp:
1333         (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage): Removed body;
1334         just call through to DOMWindow::crossDomainAccessErrorMessage.
1335
1336         * bindings/js/JSDOMWindowCustom.cpp:
1337         (WebCore::JSDOMWindow::setLocation): Changed terminology to use activeFrame and
1338         firstFrame, rather than the older lexicalFrame and dynamicFrame. Removed most
1339         of the body and moved it into DOMWindow::setLocation.
1340
1341         * page/DOMWindow.cpp:
1342         (WebCore::DOMWindow::setLocation): Added. Does all the same work that
1343         JSDOMWindow::setLocation used to do, but in a way that's not specific
1344         to JavaScript.
1345         (WebCore::DOMWindow::printErrorMessage): Added.
1346         (WebCore::DOMWindow::crossDomainAccessErrorMessage): Added.
1347
1348         * page/DOMWindow.h: Added setLocation, printErrorMessage, and
1349         crossDomainAccessErrorMessage.
1350
1351 2010-12-08  Alejandro G. Castro  <alex@igalia.com>
1352
1353         Unreviewed, rolling out r73494.
1354         http://trac.webkit.org/changeset/73494
1355         https://bugs.webkit.org/show_bug.cgi?id=50380
1356
1357         The tests added are crashing in the debug bots (macn and gtk)
1358
1359         * html/HTMLSelectElement.cpp:
1360         (WebCore::HTMLSelectElement::deselectItems):
1361         (WebCore::HTMLSelectElement::setSelectedIndex):
1362         (WebCore::HTMLSelectElement::setSelectedIndexByUser):
1363         (WebCore::HTMLSelectElement::listBoxSelectItem):
1364         (WebCore::HTMLSelectElement::add):
1365         (WebCore::HTMLSelectElement::remove):
1366         (WebCore::HTMLSelectElement::restoreFormControlState):
1367         (WebCore::HTMLSelectElement::parseMappedAttribute):
1368         (WebCore::HTMLSelectElement::selectAll):
1369         (WebCore::HTMLSelectElement::reset):
1370         (WebCore::HTMLSelectElement::updateListBoxSelection):
1371         (WebCore::HTMLSelectElement::setLength):
1372         * html/HTMLSelectElement.h:
1373         (WebCore::HTMLSelectElement::isOptionalFormControl):
1374         * html/HTMLSelectElement.idl:
1375         * html/ValidityState.cpp:
1376         (WebCore::ValidityState::valueMissing):
1377
1378 2010-12-07  Ilya Tikhonovsky  <loislo@chromium.org>
1379
1380         Reviewed by Pavel Feldman.
1381
1382         Web Inspector: Inspector protocol cleanup task. Remove
1383         WebInspector wrappers for DOMAgent functions.
1384
1385         There were a lot of wrappers in WebInspector namespace
1386         for different WebInspector agents functions. As far as we have a
1387         generic mechanic for such functions we can remove these
1388         wrappers and register domAgent instance as a handler for
1389         DOM domain notifications.
1390
1391         https://bugs.webkit.org/show_bug.cgi?id=50626
1392
1393         * inspector/Inspector.idl:
1394         * inspector/front-end/DOMAgent.js:
1395         (WebInspector.DOMNode):
1396         (WebInspector.DOMAgent):
1397         (WebInspector.DOMAgent.prototype.attributesUpdated):
1398         (WebInspector.DOMAgent.prototype.characterDataModified):
1399         (WebInspector.DOMAgent.prototype.setDocument):
1400         (WebInspector.DOMAgent.prototype.setDetachedRoot):
1401         (WebInspector.DOMAgent.prototype.setChildNodes):
1402         (WebInspector.DOMAgent.prototype.childNodeCountUpdated):
1403         (WebInspector.DOMAgent.prototype.childNodeInserted):
1404         (WebInspector.DOMAgent.prototype.childNodeRemoved):
1405         (WebInspector.EventListeners.getEventListenersForNodeAsync):
1406         * inspector/front-end/inspector.js:
1407         (WebInspector.didCommitLoad):
1408
1409 2010-12-08  Yury Semikhatsky  <yurys@chromium.org>
1410
1411         Reviewed by Pavel Feldman.
1412
1413         Web Inspector: remove groupLevel counter from console messages
1414         https://bugs.webkit.org/show_bug.cgi?id=50672
1415
1416         * inspector/ConsoleMessage.cpp:
1417         (WebCore::ConsoleMessage::ConsoleMessage):
1418         (WebCore::ConsoleMessage::addToFrontend):
1419         (WebCore::ConsoleMessage::isEqual):
1420         * inspector/ConsoleMessage.h:
1421         * inspector/InspectorController.cpp:
1422         (WebCore::InspectorController::InspectorController):
1423         (WebCore::InspectorController::addMessageToConsole):
1424         (WebCore::InspectorController::clearConsoleMessages):
1425         (WebCore::InspectorController::startGroup):
1426         (WebCore::InspectorController::endGroup):
1427         * inspector/InspectorController.h:
1428         * inspector/front-end/ConsoleView.js:
1429         (WebInspector.ConsoleView.createFilterElement):
1430         (WebInspector.ConsoleView):
1431         (WebInspector.ConsoleView.prototype.filter):
1432         (WebInspector.ConsoleView.prototype.afterShow):
1433         (WebInspector.ConsoleView.prototype.addMessage):
1434         (WebInspector.ConsoleView.prototype.updateMessageRepeatCount):
1435         (WebInspector.ConsoleView.prototype.clearMessages):
1436         (WebInspector.ConsoleMessage):
1437         (WebInspector.ConsoleMessage.createTextMessage):
1438         (WebInspector.ConsoleMessage.prototype.toMessageElement):
1439         (WebInspector.ConsoleMessage.prototype._addMessageHeader):
1440         (WebInspector.ConsoleMessage.prototype._updateRepeatCount):
1441         (WebInspector.ConsoleMessage.prototype.toString):
1442         (WebInspector.ConsoleMessage.prototype.isEqual):
1443         (WebInspector.ConsoleGroup):
1444         * inspector/front-end/Resource.js:
1445         (WebInspector.Resource.prototype._checkWarning):
1446         * inspector/front-end/SourceFrame.js:
1447         (WebInspector.SourceFrame.prototype._addMessageToSource):
1448         * inspector/front-end/inspector.js:
1449         (WebInspector.addConsoleMessage):
1450         (WebInspector.log.logMessage):
1451         (WebInspector.log):
1452
1453 2010-12-07  Pavel Podivilov  <podivilov@chromium.org>
1454
1455         Reviewed by Pavel Feldman.
1456
1457         Web Inspector: introduce DebuggerModel class representing InspectorDebuggerAgent state.
1458         https://bugs.webkit.org/show_bug.cgi?id=50567
1459
1460         Moved debugging-related code from BreakpointManager to DebuggerModel. Moved Breakpoint class to a separate file.
1461
1462         * English.lproj/localizedStrings.js:
1463         * WebCore.gypi:
1464         * WebCore.vcproj/WebCore.vcproj:
1465         * inspector/front-end/Breakpoint.js: Added.
1466         (WebInspector.Breakpoint): Moved from BreakpointManager.js.
1467         * inspector/front-end/BreakpointManager.js:
1468         (WebInspector.BreakpointManager): Remove debugger-related methods.
1469         * inspector/front-end/CallStackSidebarPane.js:
1470         (WebInspector.CallStackSidebarPane):
1471         (WebInspector.CallStackSidebarPane.prototype._nativeBreakpointHit):
1472         (WebInspector.CallStackSidebarPane.prototype._scriptBreakpointHit):
1473         * inspector/front-end/DebuggerModel.js: Added.
1474         (WebInspector.DebuggerModel): Moved debugger-related methods from BreakpointManager.
1475         * inspector/front-end/ScriptsPanel.js:
1476         (WebInspector.ScriptsPanel):
1477         (WebInspector.ScriptsPanel.prototype.continueToLine):
1478         (WebInspector.ScriptsPanel.prototype.editScriptSource.mycallback):
1479         (WebInspector.ScriptsPanel.prototype.editScriptSource):
1480         (WebInspector.ScriptsPanel.prototype._debuggerPaused):
1481         (WebInspector.ScriptsPanel.prototype._debuggerResumed):
1482         (WebInspector.ScriptsPanel.prototype.reset):
1483         * inspector/front-end/SourceFrame.js:
1484         (WebInspector.SourceFrame.prototype._createViewerIfNeeded):
1485         (WebInspector.SourceFrameDelegate.prototype.addBreakpoint):
1486         (WebInspector.SourceFrameDelegate.prototype.breakpoints):
1487         (WebInspector.SourceFrameDelegate.prototype.findBreakpoint):
1488         * inspector/front-end/WebKit.qrc:
1489         * inspector/front-end/inspector.html:
1490         * inspector/front-end/inspector.js:
1491         (WebInspector.createJSBreakpointsSidebarPane):
1492         (WebInspector.restoredBreakpoint):
1493         (WebInspector.pausedScript):
1494         (WebInspector.resumedScript):
1495         (WebInspector.reset):
1496
1497 2010-12-08  Pavel Podivilov  <podivilov@chromium.org>
1498
1499         Reviewed by Pavel Feldman.
1500
1501         Web Inspector: SourceFrame refactoring.
1502         https://bugs.webkit.org/show_bug.cgi?id=50223
1503
1504         SourceFrame should ask BreakpointManager about existing breakpoints instead of maintaining
1505         it's own storages. Move common code from ScriptView and SourceView to SourceFrame.
1506
1507         * inspector/front-end/BreakpointManager.js:
1508         (WebInspector.BreakpointManager.prototype.findBreakpoints):
1509         (WebInspector.BreakpointManager.prototype.findBreakpoint):
1510         * inspector/front-end/Script.js:
1511         (WebInspector.Script):
1512         (WebInspector.Script.prototype.get linesCount):
1513         (WebInspector.Script.prototype.get source):
1514         (WebInspector.Script.prototype.set source):
1515         * inspector/front-end/ScriptView.js:
1516         (WebInspector.ScriptView):
1517         (WebInspector.ScriptView.prototype._scriptSourceChanged):
1518         (WebInspector.ScriptFrameDelegateImpl):
1519         (WebInspector.ScriptFrameDelegateImpl.prototype.canEditScripts):
1520         (WebInspector.ScriptFrameDelegateImpl.prototype.editLineComplete):
1521         (WebInspector.ScriptFrameDelegateImpl.prototype.scripts):
1522         * inspector/front-end/ScriptsPanel.js:
1523         (WebInspector.ScriptsPanel):
1524         * inspector/front-end/SourceFrame.js:
1525         (WebInspector.SourceFrame): Add common methods of ScriptView and SourceView.
1526         (WebInspector.SourceFrameDelegate):
1527         (WebInspector.SourceFrameDelegate.prototype.canEditScripts):
1528         (WebInspector.SourceFrameDelegate.prototype.editLineComplete):
1529         (WebInspector.SourceFrameDelegate.prototype.scripts):
1530         * inspector/front-end/SourceView.js:
1531         (WebInspector.SourceView):
1532         (WebInspector.SourceView.prototype._contentLoaded):
1533         (WebInspector.ResourceFrameDelegateImpl):
1534         (WebInspector.ResourceFrameDelegateImpl.prototype.canEditScripts):
1535         (WebInspector.ResourceFrameDelegateImpl.prototype.editLineComplete):
1536         (WebInspector.ResourceFrameDelegateImpl.prototype.scripts):
1537
1538 2010-12-08  Yuta Kitamura  <yutak@chromium.org>
1539
1540         Unreviewed, rolling out r73492.
1541         http://trac.webkit.org/changeset/73492
1542         https://bugs.webkit.org/show_bug.cgi?id=49914
1543
1544         Caused a lot of pixel test failures and broke Windows build.
1545
1546         * WebCore.xcodeproj/project.pbxproj:
1547         * platform/graphics/GraphicsContext.cpp:
1548         (WebCore::GraphicsContext::createGraphicsContextPrivate):
1549         (WebCore::GraphicsContext::destroyGraphicsContextPrivate):
1550         (WebCore::GraphicsContext::save):
1551         (WebCore::GraphicsContext::restore):
1552         (WebCore::GraphicsContext::setStrokeThickness):
1553         (WebCore::GraphicsContext::setStrokeStyle):
1554         (WebCore::GraphicsContext::setStrokeColor):
1555         (WebCore::GraphicsContext::setShadow):
1556         (WebCore::GraphicsContext::clearShadow):
1557         (WebCore::GraphicsContext::getShadow):
1558         (WebCore::GraphicsContext::strokeThickness):
1559         (WebCore::GraphicsContext::strokeStyle):
1560         (WebCore::GraphicsContext::strokeColor):
1561         (WebCore::GraphicsContext::strokeColorSpace):
1562         (WebCore::GraphicsContext::fillRule):
1563         (WebCore::GraphicsContext::setFillRule):
1564         (WebCore::GraphicsContext::setFillColor):
1565         (WebCore::GraphicsContext::fillColor):
1566         (WebCore::GraphicsContext::fillColorSpace):
1567         (WebCore::GraphicsContext::setShouldAntialias):
1568         (WebCore::GraphicsContext::shouldAntialias):
1569         (WebCore::GraphicsContext::setStrokePattern):
1570         (WebCore::GraphicsContext::setFillPattern):
1571         (WebCore::GraphicsContext::setStrokeGradient):
1572         (WebCore::GraphicsContext::setFillGradient):
1573         (WebCore::GraphicsContext::fillGradient):
1574         (WebCore::GraphicsContext::strokeGradient):
1575         (WebCore::GraphicsContext::fillPattern):
1576         (WebCore::GraphicsContext::strokePattern):
1577         (WebCore::GraphicsContext::setShadowsIgnoreTransforms):
1578         (WebCore::GraphicsContext::updatingControlTints):
1579         (WebCore::GraphicsContext::setUpdatingControlTints):
1580         (WebCore::GraphicsContext::setPaintingDisabled):
1581         (WebCore::GraphicsContext::paintingDisabled):
1582         (WebCore::GraphicsContext::textDrawingMode):
1583         (WebCore::GraphicsContext::setTextDrawingMode):
1584         * platform/graphics/GraphicsContext.h:
1585         * platform/graphics/GraphicsContextPrivate.h: Added.
1586         (WebCore::GraphicsContextState::GraphicsContextState):
1587         (WebCore::GraphicsContextPrivate::GraphicsContextPrivate):
1588         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1589         (WebCore::setPlatformFill):
1590         (WebCore::setPlatformStroke):
1591         (WebCore::drawPathShadow):
1592         (WebCore::fillCurrentCairoPath):
1593         (WebCore::strokeCurrentCairoPath):
1594         (WebCore::GraphicsContext::GraphicsContext):
1595         (WebCore::GraphicsContext::~GraphicsContext):
1596         (WebCore::GraphicsContext::fillPath):
1597         (WebCore::GraphicsContext::strokePath):
1598         (WebCore::GraphicsContext::fillRect):
1599         (WebCore::GraphicsContext::setPlatformShadow):
1600         (WebCore::GraphicsContext::strokeRect):
1601         (WebCore::GraphicsContext::setAlpha):
1602         (WebCore::GraphicsContext::getAlpha):
1603         * platform/graphics/cg/GraphicsContextCG.cpp:
1604         (WebCore::GraphicsContext::GraphicsContext):
1605         (WebCore::GraphicsContext::~GraphicsContext):
1606         (WebCore::GraphicsContext::applyStrokePattern):
1607         (WebCore::GraphicsContext::applyFillPattern):
1608         (WebCore::GraphicsContext::drawPath):
1609         (WebCore::GraphicsContext::fillPath):
1610         (WebCore::GraphicsContext::strokePath):
1611         (WebCore::GraphicsContext::fillRect):
1612         (WebCore::GraphicsContext::setPlatformShadow):
1613         (WebCore::GraphicsContext::strokeRect):
1614         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
1615         (WebCore::GraphicsContext::GraphicsContext):
1616         (WebCore::GraphicsContext::~GraphicsContext):
1617         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
1618         (WebCore::GraphicsContext::GraphicsContext):
1619         (WebCore::GraphicsContext::~GraphicsContext):
1620         (WebCore::GraphicsContext::fillPath):
1621         (WebCore::GraphicsContext::strokePath):
1622         (WebCore::GraphicsContext::clip):
1623         (WebCore::GraphicsContext::clipOut):
1624         (WebCore::GraphicsContext::addInnerRoundedRectClip):
1625         * platform/graphics/qt/GraphicsContextQt.cpp:
1626         (WebCore::GraphicsContext::GraphicsContext):
1627         (WebCore::GraphicsContext::~GraphicsContext):
1628         (WebCore::GraphicsContext::fillPath):
1629         (WebCore::GraphicsContext::strokePath):
1630         (WebCore::GraphicsContext::fillRect):
1631         (WebCore::GraphicsContext::setPlatformShadow):
1632         * platform/graphics/skia/GraphicsContextSkia.cpp:
1633         (WebCore::GraphicsContext::GraphicsContext):
1634         (WebCore::GraphicsContext::~GraphicsContext):
1635         (WebCore::GraphicsContext::fillPath):
1636         (WebCore::GraphicsContext::setPlatformShadow):
1637         * platform/graphics/win/GraphicsContextCGWin.cpp:
1638         (WebCore::GraphicsContext::GraphicsContext):
1639         * platform/graphics/win/GraphicsContextCairoWin.cpp:
1640         (WebCore::GraphicsContext::GraphicsContext):
1641         * platform/graphics/wince/GraphicsContextWinCE.cpp:
1642         (WebCore::GraphicsContext::GraphicsContext):
1643         (WebCore::GraphicsContext::~GraphicsContext):
1644         (WebCore::GraphicsContext::fillPath):
1645         (WebCore::GraphicsContext::fillRect):
1646         * platform/graphics/wx/GraphicsContextWx.cpp:
1647         (WebCore::GraphicsContext::GraphicsContext):
1648         (WebCore::GraphicsContext::~GraphicsContext):
1649
1650 2010-12-08  Dai Mikurube  <dmikurube@google.com>
1651
1652         Reviewed by Kent Tamura.
1653
1654         Implement "required" attribute for select tags
1655         https://bugs.webkit.org/show_bug.cgi?id=50380
1656
1657         Test: fast/forms/select-live-pseudo-selectors.html
1658               platform/mac/fast/objc/dom-html-select-live-pseudo-selectors.html
1659
1660         * html/HTMLSelectElement.cpp:
1661         (WebCore::HTMLSelectElement::deselectItems): Added calling setNeedsValidityCheck() to enable validity check after changing. No tests for this change since this function is not exposed to JavaScript or any web interface.
1662         (WebCore::HTMLSelectElement::setSelectedIndex): Added calling setNeedsValidityCheck().
1663         (WebCore::HTMLSelectElement::setSelectedIndexByUser): Added calling setNeedsValidityCheck().
1664         (WebCore::HTMLSelectElement::valueMissing): Added valueMissing() to check if selecting an invalid or placeholder label option when a valid required attribute is specified.
1665         (WebCore::HTMLSelectElement::listBoxSelectItem): Added calling setNeedsValidityCheck(). No tests for this change since it is not called yet. Look at the bug 36177 and the changeset 56180.
1666         (WebCore::HTMLSelectElement::add): Added calling setNeedsValidityCheck().
1667         (WebCore::HTMLSelectElement::remove): Added calling setNeedsValidityCheck().
1668         (WebCore::HTMLSelectElement::restoreFormControlState): Added calling setNeedsValidityCheck().
1669         (WebCore::HTMLSelectElement::parseMappedAttribute): Added calling setNeedsValidityCheck().
1670         (WebCore::HTMLSelectElement::selectAll): Added calling setNeedsValidityCheck().
1671         (WebCore::HTMLSelectElement::reset): Added calling setNeedsValidityCheck().
1672         (WebCore::HTMLSelectElement::updateListBoxSelection): Added calling setNeedsValidityCheck(). Skipped adding tests for this change as too complicated..
1673         (WebCore::HTMLSelectElement::setLength): Added calling setNeedsValidityCheck().
1674         (WebCore::HTMLSelectElement::isRequiredFormControl): Check if required or not.
1675         (WebCore::HTMLSelectElement::hasPlaceholderLabelOption): Added.
1676         * html/HTMLSelectElement.h:
1677         (WebCore::HTMLSelectElement::isOptionalFormControl): Check if not required.
1678         * html/HTMLSelectElement.idl: Added a required attribute to select elements..
1679         * html/ValidityState.cpp:
1680         (WebCore::ValidityState::valueMissing): Added valueMissing check for select elements into the global checker, ValidityState::valueMissing().
1681
1682 2010-12-08  Renata Hodovan  <reni@webkit.org>
1683
1684         Reviewed by Andreas Kling.
1685
1686         GraphicsContext: Merge m_common and m_data
1687         https://bugs.webkit.org/show_bug.cgi?id=49914
1688
1689         Move data members from GraphicsContextPrivate into GraphicsContext. So GraphicsContextPlatform.h
1690         and m_common became unnecessary. They are removed.
1691         Add two methods to GraphicsContext: platformInit() and platformDestroy(), which
1692         make the constructor of GraphicsContext clearer.
1693         Besides add a getter to the private GraphicsContext::m_state member, because some inline
1694         functions in cairo need it.
1695
1696         No new test is needed, because this is a refactoring.
1697
1698         * WebCore.xcodeproj/project.pbxproj:
1699         * platform/graphics/GraphicsContext.cpp:
1700         (WebCore::GraphicsContext::GraphicsContext):
1701         (WebCore::GraphicsContext::~GraphicsContext):
1702         (WebCore::GraphicsContext::save):
1703         (WebCore::GraphicsContext::restore):
1704         (WebCore::GraphicsContext::setStrokeThickness):
1705         (WebCore::GraphicsContext::setStrokeStyle):
1706         (WebCore::GraphicsContext::setStrokeColor):
1707         (WebCore::GraphicsContext::setShadow):
1708         (WebCore::GraphicsContext::clearShadow):
1709         (WebCore::GraphicsContext::getShadow):
1710         (WebCore::GraphicsContext::strokeThickness):
1711         (WebCore::GraphicsContext::strokeStyle):
1712         (WebCore::GraphicsContext::strokeColor):
1713         (WebCore::GraphicsContext::strokeColorSpace):
1714         (WebCore::GraphicsContext::fillRule):
1715         (WebCore::GraphicsContext::setFillRule):
1716         (WebCore::GraphicsContext::setFillColor):
1717         (WebCore::GraphicsContext::fillColor):
1718         (WebCore::GraphicsContext::fillColorSpace):
1719         (WebCore::GraphicsContext::setShouldAntialias):
1720         (WebCore::GraphicsContext::shouldAntialias):
1721         (WebCore::GraphicsContext::state):
1722         (WebCore::GraphicsContext::setStrokePattern):
1723         (WebCore::GraphicsContext::setFillPattern):
1724         (WebCore::GraphicsContext::setStrokeGradient):
1725         (WebCore::GraphicsContext::setFillGradient):
1726         (WebCore::GraphicsContext::fillGradient):
1727         (WebCore::GraphicsContext::strokeGradient):
1728         (WebCore::GraphicsContext::fillPattern):
1729         (WebCore::GraphicsContext::strokePattern):
1730         (WebCore::GraphicsContext::setShadowsIgnoreTransforms):
1731         (WebCore::GraphicsContext::updatingControlTints):
1732         (WebCore::GraphicsContext::setUpdatingControlTints):
1733         (WebCore::GraphicsContext::setPaintingDisabled):
1734         (WebCore::GraphicsContext::paintingDisabled):
1735         (WebCore::GraphicsContext::textDrawingMode):
1736         (WebCore::GraphicsContext::setTextDrawingMode):
1737         * platform/graphics/GraphicsContext.h:
1738         (WebCore::GraphicsContextState::GraphicsContextState):
1739         * platform/graphics/GraphicsContextPrivate.h: Removed.
1740         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1741         (WebCore::setPlatformFill):
1742         (WebCore::setPlatformStroke):
1743         (WebCore::drawPathShadow):
1744         (WebCore::fillCurrentCairoPath):
1745         (WebCore::strokeCurrentCairoPath):
1746         (WebCore::GraphicsContext::platformInit):
1747         (WebCore::GraphicsContext::platformDestroy):
1748         (WebCore::GraphicsContext::fillPath):
1749         (WebCore::GraphicsContext::strokePath):
1750         (WebCore::GraphicsContext::fillRect):
1751         (WebCore::GraphicsContext::setPlatformShadow):
1752         (WebCore::GraphicsContext::strokeRect):
1753         (WebCore::GraphicsContext::setAlpha):
1754         (WebCore::GraphicsContext::getAlpha):
1755         * platform/graphics/cg/GraphicsContextCG.cpp:
1756         (WebCore::GraphicsContext::platformInit):
1757         (WebCore::GraphicsContext::platformDestroy):
1758         (WebCore::GraphicsContext::applyStrokePattern):
1759         (WebCore::GraphicsContext::applyFillPattern):
1760         (WebCore::GraphicsContext::drawPath):
1761         (WebCore::GraphicsContext::fillPath):
1762         (WebCore::GraphicsContext::strokePath):
1763         (WebCore::GraphicsContext::fillRect):
1764         (WebCore::GraphicsContext::setPlatformShadow):
1765         (WebCore::GraphicsContext::strokeRect):
1766         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
1767         (WebCore::GraphicsContext::platformInit):
1768         (WebCore::GraphicsContext::platformDestroy):
1769         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
1770         (WebCore::GraphicsContext::platformInit):
1771         (WebCore::GraphicsContext::platformDestroy):
1772         (WebCore::GraphicsContext::fillPath):
1773         (WebCore::GraphicsContext::strokePath):
1774         (WebCore::GraphicsContext::clip):
1775         (WebCore::GraphicsContext::clipOut):
1776         (WebCore::GraphicsContext::addInnerRoundedRectClip):
1777         * platform/graphics/qt/GraphicsContextQt.cpp:
1778         (WebCore::GraphicsContext::platformInit):
1779         (WebCore::GraphicsContext::platformDestroy):
1780         (WebCore::GraphicsContext::fillPath):
1781         (WebCore::GraphicsContext::strokePath):
1782         (WebCore::GraphicsContext::fillRect):
1783         (WebCore::GraphicsContext::setPlatformShadow):
1784         * platform/graphics/skia/GraphicsContextSkia.cpp:
1785         (WebCore::GraphicsContext::platformInit):
1786         (WebCore::GraphicsContext::platformDestroy):
1787         (WebCore::GraphicsContext::fillPath):
1788         (WebCore::GraphicsContext::setPlatformShadow):
1789         * platform/graphics/win/GraphicsContextCGWin.cpp:
1790         (WebCore::GraphicsContext::platformInit):
1791         * platform/graphics/win/GraphicsContextCairoWin.cpp:
1792         (WebCore::GraphicsContext::platformInit):
1793         * platform/graphics/wince/GraphicsContextWinCE.cpp:
1794         (WebCore::GraphicsContext::platformInit):
1795         (WebCore::GraphicsContext::platformDestroy):
1796         (WebCore::GraphicsContext::fillPath):
1797         (WebCore::GraphicsContext::fillRect):
1798         * platform/graphics/wx/GraphicsContextWx.cpp:
1799         (WebCore::GraphicsContext::platformInit):
1800         (WebCore::GraphicsContext::platformDestroy):
1801
1802 2010-12-07  Anton Muhin  <antonm@chromium.org>
1803
1804         Reviewed by Nate Chapin.
1805
1806         Port http://trac.webkit.org/changeset/72819/ to v8-backed ports.
1807         https://bugs.webkit.org/show_bug.cgi?id=50246
1808
1809         * bindings/v8/V8DOMMap.h:
1810         (WebCore::AbstractWeakReferenceMap::Visitor::startMap):
1811         (WebCore::AbstractWeakReferenceMap::Visitor::endMap):
1812         (WebCore::WeakReferenceMap::visit):
1813         * bindings/v8/V8GCController.cpp:
1814         (WebCore::GrouperItem::GrouperItem):
1815         (WebCore::GrouperItem::groupId):
1816         (WebCore::makeV8ObjectGroups):
1817         (WebCore::NodeGrouperVisitor::NodeGrouperVisitor):
1818         (WebCore::NodeGrouperVisitor::visitDOMWrapper):
1819         (WebCore::NodeGrouperVisitor::applyGrouping):
1820         (WebCore::DOMObjectGrouperVisitor::ObjectGrouperVisitor):
1821         (WebCore::DOMObjectGrouperVisitor::startMap):
1822         (WebCore::DOMObjectGrouperVisitor::endMap):
1823         (WebCore::DOMObjectGrouperVisitor::visitDOMWrapper):
1824         (WebCore::V8GCController::gcPrologue):
1825
1826 2010-12-07  Daniel Bates  <dbates@rim.com>
1827
1828         Reviewed by Martin Robinson.
1829
1830         Implement focus ring support for image maps
1831         https://bugs.webkit.org/show_bug.cgi?id=50371
1832
1833         Implement GraphicsContext::drawFocusRing(const Path&, ...) so as to support
1834         drawing a focus ring for image maps.
1835
1836         Tests: fast/images/imagemap-circle-focus-ring.html
1837                fast/images/imagemap-polygon-focus-ring.html
1838
1839         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1840         (WebCore::adjustFocusRingColor): Added.
1841         (WebCore::adjustFocusRingLineWidth): Added.
1842         (WebCore::focusRingStrokeStyle): Added.
1843         (WebCore::GraphicsContext::drawFocusRing): Moved code for determining focus ring- color,
1844         line width and stroke style into functions adjustFocusRingColor(), adjustFocusRingLineWidth(),
1845         and focusRingStrokeStyle(), respectively. Implemented GraphicsContext::drawFocusRing(const Path&, ...).
1846
1847 2010-12-07  Sergio Villar Senin  <svillar@igalia.com>
1848
1849         Reviewed by Xan Lopez.
1850
1851         [GTK] WebKitSoupCache fails to load resources when cache contents are externally removed
1852         https://bugs.webkit.org/show_bug.cgi?id=50577
1853
1854         Try to download cached resources again if they are no longer
1855         accesible by the cache.
1856
1857         * platform/network/soup/cache/soup-request-http.c:
1858         (send_async_cb):
1859         (webkit_soup_request_http_send_async):
1860
1861 2010-12-06  MORITA Hajime  <morrita@google.com>
1862
1863         Reviewed by Dimitri Glazkov.
1864
1865         RenderIndicator subclasses should not change the render tree during layout.
1866         https://bugs.webkit.org/show_bug.cgi?id=50026
1867
1868         The old code created shadow elements during a layout computation,
1869         that makes the layout state inconsisntent and cause an assertion failure. 
1870         This change created shadow elements before the layout to avoid  
1871         state inconsistencies.
1872         
1873         Instead of creating shadows on demand, RenderMeter and
1874         RenderProgress now create all necessary shadows before layouts,
1875         and change its visibilities during the layout: Changing
1876         visibilities doesn't trigger relayout and keep the state
1877         consistent.
1878         
1879         RenderMeter uses new HidablePartElement for shadow elements,
1880         which can toggle visibiliby between hidden and original value.
1881
1882         Test: fast/dom/HTMLMeterElement/meter-element-crash.html
1883
1884         * html/HTMLMeterElement.cpp:
1885         (WebCore::HTMLMeterElement::attach): Calling updateFromElement()
1886         * html/HTMLMeterElement.h:
1887         * html/HTMLProgressElement.cpp:
1888         (WebCore::HTMLProgressElement::attach): Calling updateFromElement()
1889         * html/HTMLProgressElement.h:
1890         * rendering/RenderIndicator.cpp:
1891         * rendering/RenderIndicator.h:
1892         * rendering/RenderMeter.cpp:
1893         (WebCore::MeterPartElement::MeterPartElement): Added to hold a restorable visibility.
1894         (WebCore::MeterPartElement::createForPart):
1895         (WebCore::MeterPartElement::hide):
1896         (WebCore::MeterPartElement::restoreVisibility):
1897         (WebCore::MeterPartElement::updateStyleForPart):
1898         (WebCore::MeterPartElement::saveVisibility):
1899         (WebCore::RenderMeter::~RenderMeter):
1900         (WebCore::RenderMeter::createPart): Extracted
1901         (WebCore::RenderMeter::updateFromElement): Had a shadow generation.
1902         (WebCore::RenderMeter::layoutParts): Removed shadow generation code.
1903         (WebCore::RenderMeter::shouldHaveParts):
1904         (WebCore::RenderMeter::valuePartRect): Adopted orientation.
1905         (WebCore::RenderMeter::orientation): Morphed from isHorizontal()
1906         (WebCore::RenderMeter::valuePseudoId): Adoptedn orientation
1907         (WebCore::RenderMeter::barPseudoId): Adopted orientation.
1908         * rendering/RenderMeter.h:
1909         (WebCore::RenderMeter::shadowAttached):
1910         * rendering/RenderProgress.cpp:
1911         (WebCore::RenderProgress::updateFromElement): Had a shadow generation.
1912         (WebCore::RenderProgress::layoutParts):
1913         * rendering/RenderProgress.h:
1914         * rendering/ShadowElement.cpp:
1915         (WebCore::ShadowBlockElement::createForPart): Extracted initAsPart().
1916         (WebCore::ShadowBlockElement::initAsPart): Extracted from createForPart().
1917         * rendering/ShadowElement.h:
1918
1919 2010-11-29  Mihai Parparita  <mihaip@chromium.org>
1920
1921         Reviewed by Adam Barth.
1922
1923         returning to a POST result within a frame does a GET instead of a POST
1924         https://bugs.webkit.org/show_bug.cgi?id=10199
1925         
1926         FrameLoader::loadURLIntoChildFrame had a check for whether a frame
1927         had a HistoryItem, and if so used that item's URL. However, that did
1928         not handle the case where the HistoryItem had FormData and thus was the
1929         result of a POST request. FrameLoader::navigateToDifferentDocument (now
1930         renamed to loadDifferentDocumentItem) does all that, so just switch to
1931         using it instead.
1932         
1933         Besides the bug fix, the only difference in behavior is that we use the
1934         HistoryItem's URL instead of original URL when restoring it in a child
1935         frame. This seems desirable too (for consistency with other browsers, and
1936         so that we can avoid form double-submits for forms that that do
1937         POST-then-redirect), and is tested by
1938         fast/history/history-back-initial-vs-final-url.html.
1939         
1940         Tests: fast/history/history-back-initial-vs-final-url.html
1941                http/tests/navigation/post-frames-goback1.html
1942                http/tests/navigation/postredirect-frames-goback1.html
1943
1944         * loader/FrameLoader.cpp:
1945         (WebCore::FrameLoader::loadURLIntoChildFrame): Switch to using
1946             loadDifferentDocumentItem. Also cleaned up ordering slightly (if
1947             on the archive path, there's no need to do any of the other checks).
1948         (WebCore::FrameLoader::loadDifferentDocumentItem): Renamed from
1949             navigateToDifferentDocument so that calling it from loadItem and
1950             loadURLIntoChildFrame flows more easily.
1951         (WebCore::FrameLoader::loadSameDocumentItem): Similarly, renamed from
1952             navigateWithinDocument.
1953         (WebCore::FrameLoader::loadItem): Update callsites to the above methods.
1954         * loader/FrameLoader.h:
1955
1956 2010-12-07  Dan Bernstein  <mitz@apple.com>
1957
1958         Reviewed by Darin Adler.
1959
1960         Made tables repaint correctly in all writing modes
1961         Part of: Make tables work with vertical text
1962         https://bugs.webkit.org/show_bug.cgi?id=46417
1963
1964         Tests: fast/repaint/table-writing-modes-h.html
1965                fast/repaint/table-writing-modes-v.html
1966
1967         * rendering/RenderTableSection.cpp:
1968         (WebCore::RenderTableSection::paintObject): Compute the ranges of rows and
1969         columns to repaint based on the logical extent of the repaint rect.
1970
1971 2010-12-07  Alexey Marinichev  <amarinichev@chromium.org>
1972
1973         Reviewed by James Robinson.
1974
1975         [chromium] compositor lost context recovery fix
1976         https://bugs.webkit.org/show_bug.cgi?id=50614
1977
1978         To test, load a page that triggers the compositor, kill the GPU
1979         process and hover over a link to redraw and thus restart the GPU
1980         process.  Without this patch it will assert in
1981         ContentLayerChromium::updateTextureRect; with this patch it will not.
1982
1983         * platform/graphics/chromium/LayerChromium.cpp:
1984         (WebCore::LayerChromium::setNeedsDisplay):
1985
1986 2010-12-07  Anders Carlsson  <andersca@apple.com>
1987
1988         Fix the last clang++ build error.
1989
1990         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1991         (PlatformCALayer::animationForKey):
1992         Cast the returned animation to the correct type.
1993
1994 2010-12-07  Anders Carlsson  <andersca@apple.com>
1995
1996         Fix some clang++ build errors.
1997
1998         * platform/graphics/ca/GraphicsLayerCA.cpp:
1999         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
2000         Remove unused variable.
2001
2002         * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
2003         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2004         Fix constness of pointers.
2005
2006 2010-12-07  Simon Fraser  <simon.fraser@apple.com>
2007
2008         Reviewed by Chris Marrin.
2009
2010         Fix the Color -> CGColorRef conversions for the debug colors
2011         used for compositing layers.
2012
2013         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2014         (PlatformCALayer::setBackgroundColor):
2015         (PlatformCALayer::setBorderColor):
2016
2017 2010-12-07  Brian Weinstein  <bweinstein@apple.com>
2018
2019         Reviewed by John Sullivan.
2020
2021         Part of Layering Violation in ContextMenu
2022         https://bugs.webkit.org/show_bug.cgi?id=50586
2023         
2024         ContextMenuMac.mm had a WebCoreMenuTarget class, which was responsible for wrapping
2025         a ContextMenuItem, and calling through to the ContextMenuController to validate it
2026         and call a function when it was selected.
2027         
2028         It was a layering violation to have this class here, because ContextMenu can't know
2029         about ContextMenuController.
2030         
2031         This patch moves the class that wraps the ContextMenuItems to WebKit/mac/WebHTMLView.mm,
2032         and sets up the menu targets there.
2033
2034         No change in behavior, no new tests.
2035
2036         * WebCore.exp.in: Added function that needs to be exported.
2037         * platform/mac/ContextMenuMac.mm:
2038         (WebCore::ContextMenu::ContextMenu): Don't set the sharedMenuTarget anymore.
2039         (WebCore::ContextMenu::appendItem): Don't call setMenuItemTarget (this is done in WebKit now).
2040         (WebCore::ContextMenu::insertItem): Ditto.
2041
2042 2010-12-07  Simon Fraser  <simon.fraser@apple.com>
2043
2044         Reviewed by Dan Bernstein.
2045
2046         -webkit-transition Fails on Multiple text-shadow Shadows
2047         https://bugs.webkit.org/show_bug.cgi?id=42281
2048         
2049         When transitioning multiple shadows, the blend function for
2050         ShadowData dropped all but the first and last shadow because
2051         of a failure to append to the end of the list. Fixed.
2052
2053         Test: transitions/multiple-text-shadow-transition.html
2054
2055         * page/animation/AnimationBase.cpp:
2056         (WebCore::PropertyWrapperShadow::blend):
2057
2058 2010-12-07  Simon Fraser  <simon.fraser@apple.com>
2059
2060         Reviewed by Beth Dakin.
2061
2062         CSS animation doesn't work for border-radius
2063         https://bugs.webkit.org/show_bug.cgi?id=48340
2064         
2065         Include CSSPropertyBorderRadius in the list of shorthand
2066         properties, so that the individual border-radius properties
2067         get animated.
2068
2069         Test: transitions/border-radius-transition.html
2070
2071         * page/animation/AnimationBase.cpp:
2072         (WebCore::addShorthandProperties):
2073
2074 2010-12-07  Maciej Stachowiak  <mjs@apple.com>
2075
2076         Reviewed by Kent Tamura.
2077
2078         Implement HTML5 hidden attribute
2079         https://bugs.webkit.org/show_bug.cgi?id=40511
2080
2081         Test: fast/html/hidden-attr.html
2082
2083         * html/HTMLElement.cpp:
2084         (WebCore::HTMLElement::mapToEntry): Pick up hidden as a global mapped attribute.
2085         (WebCore::HTMLElement::parseMappedAttribute): Map hidden attribute to display: none.
2086
2087 2010-12-07  Kenneth Russell  <kbr@google.com>
2088
2089         Reviewed by David Levin.
2090
2091         Fix compilation of core web audio files on Windows
2092         https://bugs.webkit.org/show_bug.cgi?id=50603
2093
2094         Changed a few constructs using C99 features of math.h to use
2095         wtf/MathExtras.h instead. Changed inline definitions of a couple of
2096         const static doubles in classes to out-of-line. Built Chrome with
2097         web audio enabled on Windows and Mac OS X to test these changes.
2098
2099         No new tests since audio API is not yet implemented.
2100
2101         * WebCore.gypi:
2102         * platform/audio/AudioResampler.cpp:
2103         * platform/audio/Biquad.cpp:
2104         (WebCore::Biquad::setLowpassParams):
2105         (WebCore::Biquad::setHighpassParams):
2106         (WebCore::Biquad::setLowShelfParams):
2107         * platform/audio/Cone.cpp:
2108         (WebCore::ConeEffect::gain):
2109         * platform/audio/EqualPowerPanner.cpp:
2110         (WebCore::EqualPowerPanner::pan):
2111         * platform/audio/FFTFrame.cpp:
2112         (WebCore::FFTFrame::interpolateFrequencyComponents):
2113         (WebCore::FFTFrame::extractAverageGroupDelay):
2114         (WebCore::FFTFrame::addConstantGroupDelay):
2115         * platform/audio/HRTFKernel.cpp:
2116         * platform/audio/HRTFPanner.cpp:
2117         * webaudio/AudioBufferSourceNode.cpp:
2118         (WebCore::AudioBufferSourceNode::readFromBufferWithGrainEnvelope):
2119         * webaudio/AudioPannerNode.cpp:
2120         (WebCore::AudioPannerNode::getAzimuthElevation):
2121         * webaudio/AudioParam.cpp: Added.
2122         (AudioParam::setValue):
2123         (AudioParam::smooth):
2124         * webaudio/AudioParam.h:
2125         * webaudio/RealtimeAnalyser.cpp:
2126
2127 2010-11-25  Philippe Normand  <pnormand@igalia.com>
2128
2129         Reviewed by Martin Robinson.
2130
2131         [GStreamer] faster elements linking
2132         https://bugs.webkit.org/show_bug.cgi?id=50067
2133
2134         Perform less checks during GStreamer elements linking if building
2135         against GStreamer >= 0.10.30.
2136
2137         * platform/graphics/gstreamer/GStreamerGWorld.cpp:
2138         (WebCore::GStreamerGWorld::enterFullscreen):
2139         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2140         (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
2141
2142 2010-12-07  Philippe Normand  <pnormand@igalia.com>
2143
2144         Reviewed by Gustavo Noronha Silva.
2145
2146         [GStreamer] ::buffered() should return multiple ranges in some cases
2147         https://bugs.webkit.org/show_bug.cgi?id=45101
2148
2149         Improved the ::buffered() method thanks to the new buffering query
2150         support that landed in GStreamer 0.10.31. The method now
2151         queries the media buffered-ranges on the pipeline and queue2
2152         handles it if it's buffering the media to disk.
2153
2154         The webkitwebsrc element also gained BYTES duration query
2155         support. This is needed in the rare cases where uridecodebin
2156         configures its queue before the HTTP server returns the media
2157         Content-Length.
2158
2159         Test: http/tests/media/video-buffered.html
2160
2161         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2162         (WebCore::MediaPlayerPrivateGStreamer::buffered):
2163         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2164         (webkit_web_src_init):
2165         (webKitWebSrcQuery): Make webkitwebsrc handle the duration queries
2166         if it's aware of the media content-length.
2167         * platform/gtk/RenderThemeGtk.cpp:
2168         (WebCore::RenderThemeGtk::paintMediaSliderTrack): Fix position of
2169         the second and next buffered ranges.
2170
2171 2010-12-07  Yael Aharon  <yael.aharon@nokia.com>
2172
2173         Reviewed by Antonio Gomes.
2174
2175         Spatial navigation not Working for Map and Area Tags
2176         https://bugs.webkit.org/show_bug.cgi?id=47142
2177
2178         Give area elements special treatment in spatial navigation algorithm by getting the
2179         rect of the area from the associated image. Since area elements are likely to overlap
2180         if they are not rects, or if authors are not careful, we flatten the rect of area elements.
2181
2182         Tests: fast/spatial-navigation/snav-imagemap-area-not-focusable.html
2183                fast/spatial-navigation/snav-imagemap-area-without-image.html
2184                fast/spatial-navigation/snav-imagemap-overlapped-areas.html
2185                fast/spatial-navigation/snav-imagemap-simple.html
2186
2187         * page/FocusController.cpp:
2188         (WebCore::FocusController::findFocusCandidateInContainer):
2189         (WebCore::FocusController::advanceFocusDirectionallyInContainer):
2190         (WebCore::FocusController::advanceFocusDirectionally):
2191         * page/SpatialNavigation.cpp:
2192         (WebCore::FocusCandidate::FocusCandidate):
2193         (WebCore::virtualRectForDirection):
2194         (WebCore::virtualRectForAreaElementAndDirection):
2195         * page/SpatialNavigation.h:
2196         (WebCore::FocusCandidate::FocusCandidate):
2197
2198 2010-12-07  Darin Adler  <darin@apple.com>
2199
2200         Try to fix V8 build.
2201
2202         * bindings/generic/BindingDOMWindow.h:
2203         (WebCore::BindingDOMWindow::createWindow): Pass security origin.
2204
2205 2010-12-07  Darin Adler  <darin@apple.com>
2206
2207         Another build fix.
2208
2209         * loader/CrossOriginAccessControl.cpp: Added a missing include.
2210
2211 2010-12-07  Darin Adler  <darin@apple.com>
2212
2213         Try to fix build.
2214
2215         * plugins/PluginView.cpp:
2216         (WebCore::PluginView::start): Pass security origin.
2217         (WebCore::PluginView::getURLNotify): Ditto.
2218         (WebCore::PluginView::getURL): Ditto.
2219         (WebCore::PluginView::handlePost): Ditto.
2220
2221 2010-12-06  Darin Adler  <darin@apple.com>
2222
2223         Reviewed by Sam Weinig.
2224
2225         Pass security origin to make local file decision correctly
2226         https://bugs.webkit.org/show_bug.cgi?id=48603
2227
2228         * bindings/generic/BindingDOMWindow.h:
2229         (WebCore::BindingDOMWindow::createWindow): Pass security origin.
2230         (WebCore::BindingDOMWindow::open): Ditto.
2231         * bindings/generic/BindingFrame.h:
2232         (WebCore::BindingFrame::navigateIfAllowed): Ditto.
2233
2234         * bindings/js/JSDOMWindowCustom.cpp:
2235         (WebCore::JSDOMWindow::setLocation): Pass security origin.
2236         (WebCore::createWindow): Ditto.
2237         (WebCore::JSDOMWindow::open): Ditto.
2238
2239         * bindings/js/JSDocumentCustom.cpp:
2240         (WebCore::JSDocument::setLocation): Pass security origin.
2241
2242         * dom/Document.cpp:
2243         (WebCore::Document::processHttpEquiv): Pass security origin.
2244
2245         * inspector/InspectorController.cpp:
2246         (WebCore::InspectorController::openInInspectedWindow):
2247         Pass security origin.
2248
2249         * loader/FrameLoader.cpp:
2250         (WebCore::FrameLoader::changeLocation): Added a security origin
2251         argument, passed through to urlSelected.
2252         (WebCore::FrameLoader::urlSelected): Replaced the resource request
2253         and frame name arguments with a frame load request arguments in one
2254         overload, and changed the other overload to pass in the current
2255         frame's document for the security origin.
2256         (WebCore::FrameLoader::loadFrameRequest): Moved the canDisplay
2257         check before the referrer computation because it no longer needs
2258         to look at the referrer. Replaced the call to canDisplay that
2259         used the target frame's security origin and the call to
2260         deprecatedCanDisplay with a single call to canDisplay that uses
2261         the requester security origin.
2262
2263         * loader/FrameLoader.h: Updated for argument changes above.
2264
2265         * loader/NavigationScheduler.cpp:
2266         (WebCore::ScheduledURLNavigation::ScheduledURLNavigation): Added
2267         a security origin.
2268         (WebCore::ScheduledURLNavigation::fire): Pass the security origin
2269         in to FrameLoader::changeLocation.
2270         (WebCore::ScheduledURLNavigation::securityOrigin): Added.
2271         (WebCore::ScheduledRedirect::ScheduledRedirect): Added a security
2272         origin argument.
2273         (WebCore::ScheduledLocationChange::ScheduledLocationChange): Ditto.
2274         (WebCore::ScheduledRefresh::ScheduledRefresh): Ditto.
2275         (WebCore::ScheduledRefresh::fire): Pass the security origin in to
2276         FrameLoader::changeLocation.
2277         (WebCore::ScheduledFormSubmission::fire): Include the security
2278         origin when constructing form submission.
2279         (WebCore::NavigationScheduler::scheduleRedirect): Include the security
2280         origin when creating the scheduled navigation object.
2281         (WebCore::NavigationScheduler::scheduleLocationChange): Ditto.
2282         (WebCore::NavigationScheduler::scheduleRefresh): Ditto.
2283
2284         * loader/NavigationScheduler.h: Added the security origin argument
2285         to scheduleLocationChange.
2286
2287         * loader/SubframeLoader.cpp:
2288         (WebCore::SubframeLoader::loadOrRedirectSubframe): Pass in the security
2289         origin when calling scheduleLocationChange.
2290         * loader/appcache/ApplicationCacheGroup.cpp:
2291         (WebCore::ApplicationCacheGroup::selectCache): Ditto.
2292
2293         * page/ContextMenuController.cpp:
2294         (WebCore::openNewWindow): Pass in the security origin.
2295         (WebCore::ContextMenuController::contextMenuItemSelected): Ditto.
2296
2297         * page/FrameLoadRequest.h: Added a security origin called the requester
2298         to all FrameLoadRequest objects.
2299
2300         * page/XSSAuditor.cpp:
2301         (WebCore::XSSAuditor::findInRequest): Added the security origin.
2302
2303 2010-12-07  Yury Semikhatsky  <yurys@chromium.org>
2304
2305         Reviewed by Pavel Feldman.
2306
2307         Web Inspector: avoid initializing Context on when creating attaching listener to ScriptDebugServer
2308         https://bugs.webkit.org/show_bug.cgi?id=50627
2309
2310         * bindings/v8/ScriptDebugServer.cpp:
2311         (WebCore::ScriptDebugServer::addListener): don't try to collect already parsed scripts if context has
2312         not been initialized yet.
2313
2314 2010-12-07  Csaba Osztrogon√°c  <ossy@webkit.org>
2315
2316         Unreviewed. Rolling out r73421, because it made transitions/color-transition-all.html flakey.
2317
2318         * page/animation/AnimationBase.cpp:
2319         (WebCore::addShorthandProperties):
2320
2321 2010-12-07  Martin Robinson  <mrobinson@igalia.com>
2322
2323         Unreviewed, rolling out r73392.
2324         http://trac.webkit.org/changeset/73392
2325         https://bugs.webkit.org/show_bug.cgi?id=50489
2326
2327         This commit caused crashes on the GTK+ bots
2328
2329         * bindings/ScriptControllerBase.cpp:
2330         (WebCore::ScriptController::executeIfJavaScriptURL):
2331         * dom/Document.cpp:
2332         (WebCore::Document::Document):
2333         (WebCore::Document::close):
2334         (WebCore::Document::lastModified):
2335         (WebCore::Document::finishedParsing):
2336         (WebCore::Document::initSecurityContext):
2337         (WebCore::Document::updateURLForPushOrReplaceState):
2338         * dom/Document.h:
2339         * dom/ProcessingInstruction.cpp:
2340         (WebCore::ProcessingInstruction::checkStyleSheet):
2341         * dom/ScriptElement.cpp:
2342         (WebCore::ScriptElement::scriptCharset):
2343         * html/HTMLLinkElement.cpp:
2344         (WebCore::HTMLLinkElement::process):
2345         * html/MediaDocument.cpp:
2346         (WebCore::MediaDocument::replaceMediaElementTimerFired):
2347         * html/PluginDocument.cpp:
2348         (WebCore::PluginDocumentParser::createDocumentStructure):
2349         * loader/DocumentLoader.cpp:
2350         (WebCore::DocumentLoader::DocumentLoader):
2351         (WebCore::DocumentLoader::finishedLoading):
2352         (WebCore::DocumentLoader::commitData):
2353         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
2354         (WebCore::DocumentLoader::setFrame):
2355         * loader/DocumentLoader.h:
2356         * loader/DocumentWriter.cpp:
2357         (WebCore::DocumentWriter::begin):
2358         * loader/DocumentWriter.h:
2359         * loader/FrameLoader.cpp:
2360         (WebCore::FrameLoader::FrameLoader):
2361         (WebCore::FrameLoader::init):
2362         (WebCore::FrameLoader::clear):
2363         (WebCore::FrameLoader::receivedFirstData):
2364         (WebCore::FrameLoader::transitionToCommitted):
2365         (WebCore::FrameLoader::open):
2366         (WebCore::FrameLoader::finishedLoadingDocument):
2367         (WebCore::FrameLoader::addExtraFieldsToRequest):
2368         * loader/FrameLoader.h:
2369         (WebCore::FrameLoader::writer):
2370         * loader/cache/CachedResourceLoader.cpp:
2371         (WebCore::CachedResourceLoader::requestPreload):
2372         * platform/network/FormDataBuilder.cpp:
2373         (WebCore::FormDataBuilder::encodingFromAcceptCharset):
2374         * svg/graphics/SVGImage.cpp:
2375         (WebCore::SVGImage::dataChanged):
2376
2377 2010-12-07  Patrick Gansterer  <paroga@webkit.org>
2378
2379         Reviewed by Andreas Kling.
2380
2381         [CMake] Remove WebKitGenerators
2382         https://bugs.webkit.org/show_bug.cgi?id=50445
2383
2384         Move remaining logic into main CMakeLists.txt.
2385
2386         * CMakeLists.txt:
2387
2388 2010-12-07  Justin Schuh  <jschuh@chromium.org>
2389
2390         Reviewed by Nikolas Zimmermann.
2391
2392         Clear old SVG cursor entry before adding a new one
2393         https://bugs.webkit.org/show_bug.cgi?id=50549
2394
2395         Test: svg/css/cursor-replace.svg
2396
2397         * css/CSSCursorImageValue.cpp:
2398         (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
2399         * svg/SVGCursorElement.cpp:
2400         (WebCore::SVGCursorElement::~SVGCursorElement):
2401         (WebCore::SVGCursorElement::removeClient):
2402         (WebCore::SVGCursorElement::removeReferencedElement):
2403         * svg/SVGCursorElement.h:
2404         * svg/SVGElement.cpp:
2405         (WebCore::SVGElement::setCursorElement):
2406         (WebCore::SVGElement::cursorElementRemoved):
2407         (WebCore::SVGElement::setCursorImageValue):
2408         (WebCore::SVGElement::cursorImageElementRemoved):
2409         * svg/SVGElement.h:
2410
2411 2010-12-07  Kenichi Ishibashi  <bashi@google.com>
2412
2413         Reviewed by Kent Tamura.
2414
2415         Let HTMLObjectElement be a form associated element
2416         https://bugs.webkit.org/show_bug.cgi?id=48821
2417
2418         Introduces FormAssociatedElement class which would be a super class
2419         of form assocated elements. Some of member functions and variables of
2420         HTMLFormControlElement are migrated into this class.
2421         Following the HTML5 spec, HTMLFormControlElement class and
2422         HTMLObjectElement class are subclasses of it for now.
2423
2424         Test: fast/forms/form-collection-elements-order.html
2425
2426         * Android.mk: Added FormAssociatedElement.cpp
2427         * CMakeLists.txt: Ditto.
2428         * GNUmakefile.am: Added FormAssociatedElement.{cpp,h}
2429         * WebCore.exp.in: Added the symbol for toHTMLElement(FormAssociatedElement*)
2430         * WebCore.gypi: Added FormAssociatedElement.{cpp,h}
2431         * WebCore.pro: Ditto.
2432         * WebCore.vcproj/WebCore.vcproj: Ditto.
2433         * WebCore.xcodeproj/project.pbxproj: Ditto.
2434         * dom/CheckedRadioButtons.h: Fixed class forward declaration order.
2435         * dom/Document.cpp:
2436         (WebCore::Document::registerFormElementWithFormAttribute): Modified to
2437         use FormAssociatedElement instead of HTMLFormControlElement
2438         (WebCore::Document::unregisterFormElementWithFormAttribute): Ditto.
2439         (WebCore::Document::resetFormElementsOwner):
2440         * dom/Document.h: Ditto.
2441         * html/DOMFormData.cpp: Ditto.
2442         (WebCore::DOMFormData::DOMFormData):
2443         * html/FormAssociatedElement.cpp: Copied and renamed from WebCore/html/HTMLFormControlElement.cpp.
2444         (WebCore::FormAssociatedElement::FormAssociatedElement):
2445         (WebCore::FormAssociatedElement::~FormAssociatedElement):
2446         (WebCore::FormAssociatedElement::validity):
2447         (WebCore::FormAssociatedElement::insertedIntoTree):
2448         (WebCore::FormAssociatedElement::removedFromTree):
2449         (WebCore::FormAssociatedElement::removeFromForm):
2450         (WebCore::FormAssociatedElement::resetFormOwner):
2451         (WebCore::FormAssociatedElement::formAttributeChanged):
2452         (WebCore::toHTMLElement):
2453         * html/FormAssociatedElement.h: Ditto.
2454         (WebCore::FormAssociatedElement::ref):
2455         (WebCore::FormAssociatedElement::deref):
2456         (WebCore::FormAssociatedElement::formDestroyed):
2457         (WebCore::FormAssociatedElement::setForm):
2458         * html/HTMLElement.h: Changed the access level of findFormAncestor().
2459         * html/HTMLFormCollection.cpp:
2460         (WebCore::HTMLFormCollection::item): Modified to use FormAssociatedElement
2461         instead of HTMLFormControlElement.
2462         (WebCore::HTMLFormCollection::getNamedFormItem): Ditto.
2463         (WebCore::HTMLFormCollection::updateNameCache): Ditto.
2464         * html/HTMLFormControlElement.cpp: Modified regarding with the change of class
2465         hierarchy.
2466         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
2467         (WebCore::HTMLFormControlElement::~HTMLFormControlElement):
2468         (WebCore::HTMLFormControlElement::insertedIntoTree):
2469         (WebCore::HTMLFormControlElement::removedFromTree):
2470         (WebCore::HTMLFormControlElement::supportsFocus):
2471         (WebCore::HTMLFormControlElement::checkValidity):
2472         (WebCore::HTMLFormControlElement::virtualForm):
2473         (WebCore::HTMLFormControlElement::isDefaultButtonForForm):
2474         (WebCore::HTMLFormControlElement::attributeChanged):
2475         * html/HTMLFormControlElement.h: Ditto.
2476         (WebCore::HTMLFormControlElement::form):
2477         (WebCore::HTMLFormControlElement::disabled):
2478         (WebCore::HTMLFormControlElement::type):
2479         (WebCore::HTMLFormControlElement::refFormAssociatedElement):
2480         (WebCore::HTMLFormControlElement::derefFormAssociatedElement):
2481         * html/HTMLFormElement.cpp: Modified to use FormAssociatedElement
2482         instead of HTMLFormControlElement.
2483         (WebCore::HTMLFormElement::submitImplicitly):
2484         (WebCore::HTMLFormElement::validateInteractively):
2485         (WebCore::HTMLFormElement::submit):
2486         (WebCore::HTMLFormElement::reset):
2487         (WebCore::HTMLFormElement::formElementIndexWithFormAttribute):
2488         (WebCore::HTMLFormElement::formElementIndex):
2489         (WebCore::HTMLFormElement::registerFormElement):
2490         (WebCore::HTMLFormElement::removeFormElement):
2491         (WebCore::HTMLFormElement::defaultButton):
2492         (WebCore::HTMLFormElement::checkValidity):
2493         (WebCore::HTMLFormElement::collectUnhandledInvalidControls):
2494         (WebCore::HTMLFormElement::documentDidBecomeActive):
2495         * html/HTMLFormElement.h: Ditto.
2496         (WebCore::HTMLFormElement::associatedElements):
2497         * html/HTMLInputElement.cpp: Ditto.
2498         (WebCore::HTMLInputElement::updateCheckedRadioButtons):
2499         * html/HTMLObjectElement.cpp: Modified regarding with the change of class
2500         hierarchy.
2501         (WebCore::HTMLObjectElement::HTMLObjectElement):
2502         (WebCore::HTMLObjectElement::~HTMLObjectElement):
2503         (WebCore::HTMLObjectElement::create):
2504         (WebCore::HTMLObjectElement::attributeChanged):
2505         (WebCore::HTMLObjectElement::insertedIntoTree):
2506         (WebCore::HTMLObjectElement::removedFromTree):
2507         (WebCore::HTMLObjectElement::appendFormData):
2508         (WebCore::HTMLObjectElement::formControlName):
2509         * html/HTMLObjectElement.h: Ditto.
2510         (WebCore::HTMLObjectElement::form):
2511         (WebCore::HTMLObjectElement::isFormControlElement):
2512         (WebCore::HTMLObjectElement::isEnumeratable):
2513         (WebCore::HTMLObjectElement::refFormAssociatedElement):
2514         (WebCore::HTMLObjectElement::derefFormAssociatedElement):
2515         * html/HTMLTagNames.in: Added constructorNeedsFormElement to object tag.
2516         * html/ValidationMessage.cpp: Modified to use FormAssociatedElement
2517         instead of HTMLFormControlElement.
2518         (WebCore::ValidationMessage::ValidationMessage):
2519         (WebCore::ValidationMessage::create):
2520         * html/ValidationMessage.h: Ditto.
2521         * html/ValidityState.cpp: Ditto.
2522         (WebCore::ValidityState::validationMessage):
2523         (WebCore::ValidityState::setCustomErrorMessage):
2524         (WebCore::ValidityState::valueMissing):
2525         (WebCore::ValidityState::typeMismatch):
2526         (WebCore::ValidityState::patternMismatch):
2527         (WebCore::ValidityState::tooLong):
2528         (WebCore::ValidityState::rangeUnderflow):
2529         (WebCore::ValidityState::rangeOverflow):
2530         (WebCore::ValidityState::stepMismatch):
2531         * html/ValidityState.h: Ditto.
2532         (WebCore::ValidityState::create):
2533         (WebCore::ValidityState::ValidityState):
2534         * loader/FormSubmission.cpp: Ditto.
2535         (WebCore::FormSubmission::create):
2536
2537 2010-12-06  Pavel Feldman  <pfeldman@chromium.org>
2538
2539         Not reviewed. Rolling out r72988 for breaking iframes.
2540
2541         * css/CSSImportRule.cpp:
2542         (WebCore::CSSImportRule::insertedIntoParent):
2543
2544 2010-12-06  Hironori Bono  <hbono@chromium.org>
2545
2546         Reviewed by David Levin.
2547
2548         [Chromium] Refactor FontCacheChromiumWin.cpp
2549         https://bugs.webkit.org/show_bug.cgi?id=50611
2550         
2551         This change just moved the helper functions for the WebCore::FontCache class to the beginning of ths file.
2552
2553         No new tests are added since this is a refactoring.
2554
2555         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2556         (WebCore::fontDataFromDescriptionAndLogFont): Moved to the beginning of the file.
2557         (WebCore::toGDIFontWeight): Moved to the beginning of the file.
2558         (WebCore::FillLogFont): Moved to the beginning of the file.
2559         (WebCore::TraitsInFamilyProcData::TraitsInFamilyProcData): Moved to the beginning of the file.
2560         (WebCore::traitsInFamilyEnumProc): Moved to the beginning of the file.
2561         (WebCore::FontCache::platformInit): Moved after the static functions.
2562
2563 2010-12-06  Alexey Marinichev  <amarinichev@chromium.org>
2564
2565         Reviewed by Kenneth Russell.
2566
2567         Throw webglcontextlost and webglcontextrestored events when a WebGL context is lost and restored.
2568         https://bugs.webkit.org/show_bug.cgi?id=50364
2569
2570         No new tests since there is currently no way to force a context lost event.
2571
2572         * html/canvas/WebGLRenderingContext.cpp:
2573         (WebCore::WebGLRenderingContext::WebGLRenderingContextRestoreTimer::fired):
2574         (WebCore::WebGLRenderingContext::create):
2575         (WebCore::WebGLRenderingContext::WebGLRenderingContext):
2576         (WebCore::WebGLRenderingContext::isContextLost):
2577         (WebCore::WebGLRenderingContext::loseContext):
2578         (WebCore::WebGLRenderingContext::restoreContext):
2579         * html/canvas/WebGLRenderingContext.h:
2580         (WebCore::WebGLRenderingContext::WebGLRenderingContextRestoreTimer::WebGLRenderingContextRestoreTimer):
2581
2582 2010-12-06  David Hyatt  <hyatt@apple.com>
2583
2584         Reviewed by Simon Fraser.
2585
2586         https://bugs.webkit.org/show_bug.cgi?id=50593
2587         
2588         Fix background canvas painting for documents with left/top overflow.  The math from the original RTL patch was incorrect.
2589         
2590         Just use the RenderView's document dimensions always.
2591
2592         * rendering/RenderBox.cpp:
2593         (WebCore::RenderBox::paintRootBoxDecorations):
2594
2595 2010-12-06  Simon Fraser  <simon.fraser@apple.com>
2596
2597         Reviewed by Beth Dakin.
2598
2599         CSS animation doesn't work for border-radius
2600         https://bugs.webkit.org/show_bug.cgi?id=48340
2601         
2602         Include CSSPropertyBorderRadius in the list of shorthand
2603         properties, so that the individual border-radius properties
2604         get animated.
2605
2606         Test: transitions/border-radius-transition.html
2607
2608         * page/animation/AnimationBase.cpp:
2609         (WebCore::addShorthandProperties):
2610
2611 2010-12-06  Ryosuke Niwa  <rniwa@webkit.org>
2612
2613         Reviewed by Tony Chang.
2614
2615         ApplyStyleCommand should take EditingStyle instead of CSSStyleDeclaration
2616         https://bugs.webkit.org/show_bug.cgi?id=49938
2617
2618         Modified ApplyStyleCommand::ApplyStyleCommand and ApplyStyleCommand::create to take EditingStyle*
2619         instead of CSSStyleDeclaration*. Also replaced much of code in Editor::computeAndSetTypingStyle
2620         by calls to EditingStyle's member functions and extracted EditingStyle::overrideWith and
2621         EditingStyle::extractAndRemoveBlockProperties.
2622
2623         No new tests are added since this is a refactoring.
2624
2625         * WebCore.exp.in: Added SelectionController::copyTypingStyle and EditingStyle::~EditingStyle.
2626         * css/CSSMutableStyleDeclaration.cpp: Made CSSMutableStyleDeclaration* in the argument list const.
2627         (WebCore::CSSMutableStyleDeclaration::merge):
2628         * css/CSSMutableStyleDeclaration.h:
2629         * editing/ApplyStyleCommand.cpp:
2630         (WebCore::ApplyStyleCommand::ApplyStyleCommand): Takes EditingStyle* instead of CSSStyleDeclaration*.
2631         (WebCore::ApplyStyleCommand::doApply): Uses EditingStyle.
2632         * editing/ApplyStyleCommand.h: m_style is now a ref-pointer to EditingStyle instead of CSSMutableStyleDeclaration.
2633         (WebCore::ApplyStyleCommand::create): Takes EditingStyle* instead of CSSStyleDeclaration*.
2634         * editing/CompositeEditCommand.cpp:
2635         (WebCore::CompositeEditCommand::applyStyle): Ditto.
2636         (WebCore::CompositeEditCommand::moveParagraphs): Calls applyStyle.
2637         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem): Ditto.
2638         * editing/CompositeEditCommand.h:
2639         * editing/DeleteSelectionCommand.cpp:
2640         (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Ditto.
2641         * editing/EditCommand.cpp:
2642         * editing/EditCommand.h:
2643         * editing/EditingStyle.cpp:
2644         (WebCore::EditingStyle::~EditingStyle): Added.
2645         (WebCore::EditingStyle::overrideWithStyle): Extracted from Editor::calculateTypingStyleAfterDelete.
2646         (WebCore::EditingStyle::copy): Added.
2647         (WebCore::EditingStyle::extractAndRemoveBlockProperties): Extracted from Editor::calculateTypingStyleAfterDelete.
2648         * editing/EditingStyle.h:
2649         * editing/Editor.cpp:
2650         (WebCore::Editor::applyStyle): Calls ApplyStyleCommand::create.
2651         (WebCore::Editor::applyParagraphStyle): Ditto.
2652         (WebCore::Editor::computeAndSetTypingStyle): Ditto.
2653         * editing/InsertLineBreakCommand.cpp:
2654         (WebCore::InsertLineBreakCommand::doApply): Calls applyStyle.
2655         * editing/InsertParagraphSeparatorCommand.cpp:
2656         (WebCore::InsertParagraphSeparatorCommand::applyStyleAfterInsertion): Ditto.
2657         * editing/InsertTextCommand.cpp:
2658         (WebCore::InsertTextCommand::input): Ditto.
2659         * editing/RemoveFormatCommand.cpp:
2660         (WebCore::RemoveFormatCommand::doApply): Calls ApplyStyleCommand::create.
2661         * editing/ReplaceSelectionCommand.cpp:
2662         (WebCore::ReplaceSelectionCommand::completeHTMLReplacement): Calls applyStyle.
2663         * editing/SelectionController.cpp:
2664         (WebCore::SelectionController::copyTypingStyle): Moved from SelectionController.h
2665         * editing/SelectionController.h:
2666
2667 2010-12-05  Ryosuke Niwa  <rniwa@webkit.org>
2668
2669         Reviewed by Tony Chang.
2670
2671         Executing FormatBlock on multiple paragraphs inside pre does not remove the outer pre
2672         https://bugs.webkit.org/show_bug.cgi?id=47300
2673
2674         The bug was caused by FormatBlockCommand::formatRange's not removing refNode when the refNode
2675         contains more than one paragraphs even when the refNode is fully selected.
2676
2677         Fixed the bug by modifying FormatBlockCommand::formatRange to correctly remove the node in
2678         such a situation.
2679
2680         Also fixed a bug in ApplyBlockElementCommand::formatSelection that the end of selection
2681         is not properly updated when the end of selection resides in the node split by
2682         rangeForParagraphSplittingTextNodesIfNeeded or endOfNextParagrahSplittingTextNodesIfNeeded.
2683
2684         Test: editing/execCommand/format-block-multiple-paragraphs-in-pre.html
2685
2686         * editing/ApplyBlockElementCommand.cpp:
2687         (WebCore::ApplyBlockElementCommand::formatSelection): Calls formatRange with m_endOfLastParagraph.
2688         (WebCore::ApplyBlockElementCommand::rangeForParagraphSplittingTextNodesIfNeeded): Updates
2689         m_endOfLastParagraph when the position points to the node split by this function.
2690         (WebCore::ApplyBlockElementCommand::endOfNextParagrahSplittingTextNodesIfNeeded): Ditto.
2691         * editing/ApplyBlockElementCommand.h: Added m_endOfLastParagraph as a member variable.
2692         * editing/FormatBlockCommand.cpp:
2693         (WebCore::FormatBlockCommand::formatRange): See above.
2694         * editing/FormatBlockCommand.h:
2695         * editing/IndentOutdentCommand.cpp:
2696         (WebCore::IndentOutdentCommand::formatRange): Ignores the end of selection.
2697         * editing/IndentOutdentCommand.h:
2698
2699 2010-12-03  Zhenyao Mo  <zmo@google.com>
2700
2701         Reviewed by Kenneth Russell.
2702
2703         Postpone gl delete* calls until shaders/programs are no longer attached
2704         https://bugs.webkit.org/show_bug.cgi?id=50501
2705
2706         * html/canvas/WebGLBuffer.cpp:
2707         (WebCore::WebGLBuffer::deleteObjectImpl): Simply delete GL resource.
2708         * html/canvas/WebGLFramebuffer.cpp:
2709         (WebCore::WebGLFramebuffer::deleteObjectImpl): Ditto.
2710         * html/canvas/WebGLObject.cpp:
2711         (WebCore::WebGLObject::deleteObject): Tracking whether deleteObjectImpl should be called or not.
2712         * html/canvas/WebGLObject.h:
2713         (WebCore::WebGLObject::detachContext): Set attachmentCount to 0 to ensure OpenGL resource deletion.
2714         (WebCore::WebGLObject::onDetached): No need to track attachmentCount here as we track it in deleteObject.
2715         (WebCore::WebGLObject::isDeleted): Make this public.
2716         * html/canvas/WebGLProgram.cpp:
2717         (WebCore::WebGLProgram::deleteObjectImpl): Simply delete GL resource.
2718         * html/canvas/WebGLRenderbuffer.cpp:
2719         (WebCore::WebGLRenderbuffer::deleteObjectImpl): Ditto.
2720         * html/canvas/WebGLRenderingContext.cpp:
2721         (WebCore::WebGLRenderingContext::getProgramParameter): intercept DELETE_STATUS.
2722         (WebCore::WebGLRenderingContext::getShaderParameter): Ditto.
2723         * html/canvas/WebGLShader.cpp:
2724         (WebCore::WebGLShader::deleteObjectImpl): Simply delete GL resource.
2725         * html/canvas/WebGLTexture.cpp:
2726         (WebCore::WebGLTexture::deleteObjectImpl): Simply delete GL resource.
2727
2728 2010-12-06  Ryosuke Niwa  <rniwa@webkit.org>
2729
2730         Yet unreviewed another Leopard build fix for r73380.
2731
2732         * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
2733         (PlatformCAAnimation::setKeyTimes):
2734         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2735         (PlatformCALayer::platformCALayer):
2736
2737 2010-12-06  Andy Estes  <aestes@apple.com>
2738
2739         Reviewed by Darin Adler.
2740
2741         Marquee elements do not stop animating when scrollAmount is set to 0.
2742         https://bugs.webkit.org/show_bug.cgi?id=50434
2743
2744         Test: fast/html/marquee-scrollamount.html
2745
2746         * rendering/RenderMarquee.cpp:
2747         (WebCore::RenderMarquee::timerFired): Allow increment to be 0.
2748
2749 2010-12-06  Ryosuke Niwa  <rniwa@webkit.org>
2750
2751         Unreviewed Leopard buildfix for r73380.
2752
2753         * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
2754         (PlatformCAAnimation::setTimingFunctions):
2755         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2756         (PlatformCALayer::PlatformCALayer):
2757
2758 2010-12-06  Philippe Normand  <pnormand@igalia.com>
2759
2760         Reviewed by Martin Robinson.
2761
2762         [GStreamer] use ResourceHandle::setDefersLoading in WebKitWebSourceGStreamer
2763         https://bugs.webkit.org/show_bug.cgi?id=44157
2764
2765         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2766         (webKitWebSrcNeedDataMainCb):
2767         (webKitWebSrcEnoughDataMainCb): Replaced platform-specific code
2768         with cross-platform ResourceHandle::setDefersLoading calls.
2769
2770 2010-12-06  Ryosuke Niwa  <rniwa@webkit.org>
2771
2772         Unreviewed Leopard build fix for r73388.
2773
2774         * accessibility/AccessibilitySlider.cpp:
2775         (WebCore::AccessibilitySlider::maxValueForRange):
2776         (WebCore::AccessibilitySlider::minValueForRange):
2777
2778 2010-12-06  Ryosuke Niwa  <rniwa@webkit.org>
2779
2780         Unreviewed build fix for Leopard after r73379.
2781
2782         * platform/graphics/cg/GraphicsContextCG.cpp:
2783         (WebCore::GraphicsContext::setAllowsFontSmoothing):
2784
2785 2010-12-06  Nate Chapin  <japhet@chromium.org>
2786
2787         Reviewed by Adam Barth.
2788
2789         Make DocumentWriter a member of DocumentLoader
2790         instead of FrameLoader.
2791         https://bugs.webkit.org/show_bug.cgi?id=50489
2792
2793         Refactor, no new tests.
2794
2795         * bindings/ScriptControllerBase.cpp:
2796         (WebCore::ScriptController::executeIfJavaScriptURL):
2797         * dom/Document.cpp:
2798         (WebCore::Document::Document):
2799         (WebCore::Document::close):
2800         (WebCore::Document::lastModified):
2801         (WebCore::Document::finishedParsing):
2802         (WebCore::Document::initSecurityContext):
2803         (WebCore::Document::updateURLForPushOrReplaceState):
2804         * dom/Document.h:
2805         (WebCore::Document::setDocumentLoader):
2806         (WebCore::Document::loader):
2807         * dom/ProcessingInstruction.cpp:
2808         (WebCore::ProcessingInstruction::checkStyleSheet):
2809         * dom/ScriptElement.cpp:
2810         (WebCore::ScriptElement::scriptCharset):
2811         * html/HTMLLinkElement.cpp:
2812         (WebCore::HTMLLinkElement::process):
2813         * html/MediaDocument.cpp:
2814         (WebCore::MediaDocument::replaceMediaElementTimerFired):
2815         * html/PluginDocument.cpp:
2816         (WebCore::PluginDocumentParser::createDocumentStructure):
2817         * loader/DocumentLoader.cpp:
2818         (WebCore::DocumentLoader::DocumentLoader):
2819         (WebCore::DocumentLoader::finishedLoading):
2820         (WebCore::DocumentLoader::commitData):
2821         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
2822         (WebCore::DocumentLoader::setFrame):
2823         * loader/DocumentLoader.h:
2824         (WebCore::DocumentLoader::writer):
2825         * loader/DocumentWriter.h:
2826         (WebCore::DocumentWriter::setFrame):
2827         * loader/FrameLoader.cpp:
2828         (WebCore::FrameLoader::FrameLoader):
2829         (WebCore::FrameLoader::init):
2830         (WebCore::FrameLoader::clear):
2831         (WebCore::FrameLoader::receivedFirstData):
2832         (WebCore::FrameLoader::transitionToCommitted):
2833         (WebCore::FrameLoader::open):
2834         (WebCore::FrameLoader::finishedLoadingDocument):
2835         (WebCore::FrameLoader::addExtraFieldsToRequest):
2836         * loader/FrameLoader.h:
2837         (WebCore::FrameLoader::notifier):
2838         * loader/cache/CachedResourceLoader.cpp:
2839         (WebCore::CachedResourceLoader::requestPreload):
2840         * platform/network/FormDataBuilder.cpp:
2841         (WebCore::FormDataBuilder::encodingFromAcceptCharset):
2842         * svg/graphics/SVGImage.cpp:
2843         (WebCore::SVGImage::dataChanged):
2844
2845 2010-12-06  Mark Rowe  <mrowe@apple.com>
2846
2847         Build fix.
2848
2849         * WebCore.xcodeproj/project.pbxproj: Don't force WebCore to build against the 10.5 SDK.
2850         That's just plain wrong.
2851
2852 2010-12-06  Chris Fleizach  <cfleizach@apple.com>
2853
2854         Reviewed by Darin Adler.
2855
2856         HTML5 Slider does not work correctly with VoiceOver
2857         https://bugs.webkit.org/show_bug.cgi?id=50505
2858
2859         Address a few problems with the Mac implementation for the accessibility slider.
2860             1) The value indicator is not hit testable.
2861             2) The value indicator does not return an AXValue.
2862             3) In the slider, the min/max values are not correct when min/max attributes are not present.
2863             4) When you change the value with the keyboard, it doesn't send out the right notification.
2864             5) Sliders were returning AXValue and AXTopLevelUIElement attributes twice in their list of attributes.
2865  
2866         Test: platform/mac/accessibility/html-slider-indicator.html
2867
2868         * accessibility/AccessibilityObject.cpp:
2869         (WebCore::AccessibilityObject::getAttribute):
2870             Use fastGetAttribute on Element, instead of getAttribute.
2871         * accessibility/AccessibilityObject.h:
2872         (WebCore::AccessibilityObject::isInputSlider):
2873         * accessibility/AccessibilityRenderObject.cpp:
2874         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
2875         * accessibility/AccessibilitySlider.cpp:
2876         (WebCore::AccessibilitySlider::doAccessibilityHitTest):
2877         (WebCore::AccessibilitySlider::maxValueForRange):
2878         (WebCore::AccessibilitySlider::minValueForRange):
2879         * accessibility/AccessibilitySlider.h:
2880         (WebCore::AccessibilitySlider::isInputSlider):
2881         * accessibility/mac/AccessibilityObjectWrapper.mm:
2882         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
2883         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
2884         * html/HTMLInputElement.cpp:
2885         (WebCore::HTMLInputElement::applyStep):
2886
2887 2010-12-06  David Hyatt  <hyatt@apple.com>
2888
2889         Reviewed by Simon Fraser.
2890
2891         Fix for https://bugs.webkit.org/show_bug.cgi?id=49220 <<rdar://problem/8644849>, REGRESSION: transforms now
2892         O(n^3) from pathological behavior in lowestPosition, rightmostPosition, leftmostPosition and topmostPosition.
2893
2894         This patch throws out the lowest/rightmost/leftmost/topmostPosition functions and re-architects layout overflow
2895         in the engine to cache all the information required to properly handle scrolling.
2896
2897         In the old code, there were two types of overflow: layout overflow and visual overflow.  The former could
2898         affect scrolling and the latter could not.  The distinction was largely meaningless, since layout overflow
2899         wasn't actually used to determine scroll width or scroll height.  It didn't propagate across self-painting layer
2900         boundaries either.  In the old code, the term visible overflow meant the union of the layout overflow and
2901         visual overflow rects.
2902
2903         In the new code, the two types of overflow remain, but the distinction between the two is now clear.  Visual overflow
2904         is used purely for painting and hit testing checks and layout overflow is used specifically for scrolling.  It has
2905         been expanded to propagate across self-painting layers, to factor in relative positioning and transforms, and to
2906         work with writing modes.
2907
2908         In order to minimize layout test changes, layers no longer incorporate right/bottom overflow into their width/height members.
2909         Doing so uncovered two bugs where left/top overflow was ignored (proof that even having layer dimensions is harmful).
2910         A render tree dump hack has been put into the code to keep this overflow dumping for the RenderView's layer, since otherwise
2911         a huge number of tests would change.
2912
2913         Added fast/overflow/overflow-rtl-vertical.html to test vertical writing-mode overflow.  Existing tests cover the rest.
2914
2915         * page/FrameView.cpp:
2916         (WebCore::FrameView::adjustViewSize):
2917         (WebCore::FrameView::forceLayoutForPagination):
2918         Changed to use RenderView's docTop/Left/Width/Height accessors, which simply grab the overflow and properly flip it
2919         to account for writing modes.
2920
2921         * platform/graphics/IntRect.h:
2922         (WebCore::IntRect::shiftLeftEdgeTo):
2923         (WebCore::IntRect::shiftRightEdgeTo):
2924         (WebCore::IntRect::shiftTopEdgeTo):
2925         (WebCore::IntRect::shiftBottomEdgeTo):
2926         New helper functions for sliding the edge of a rectangle without moving any of the other three edges.
2927
2928         * rendering/InlineBox.h:
2929         (WebCore::InlineBox::frameRect):
2930         frameRect is a helper for obtaining the x, y, width, height of an InlineBox as an IntRect.
2931
2932         * rendering/InlineFlowBox.cpp:
2933         (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
2934         All of the overflow setting in the inline direction has been removed from this function.  All line overflow is computed
2935         at once now in a single function: computeOverflow.
2936
2937         (WebCore::InlineFlowBox::addBoxShadowVisualOverflow):
2938         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
2939         (WebCore::InlineFlowBox::addReplacedChildOverflow):
2940         Helper for propagating overflow from specific types of children that occur on a line into the InlineFlowBox's overflow.
2941
2942         (WebCore::InlineFlowBox::computeOverflow):
2943         The new function that computes both horizontal and vertical overflow for a line box.
2944
2945         (WebCore::InlineFlowBox::setLayoutOverflow):
2946         (WebCore::InlineFlowBox::setVisualOverflow):
2947         (WebCore::InlineFlowBox::setOverflowFromLogicalRects):
2948         New functions that set the overflow computed by computeOverflow.  These replace setBlockDirectionOverflowPositions
2949         and setInlineDirectionOverflowPositions.  They essentially do the same thing, but they operate on rectangles.
2950
2951         (WebCore::InlineFlowBox::nodeAtPoint):
2952         (WebCore::InlineFlowBox::paint):
2953         Changed to use visual overflow instead of visible overflow.  (Visible overflow as a union of layout and visual
2954         overflow is no longer necessary, since visual overflow is now equivalent to the old visible overflow concept.)
2955
2956         * rendering/InlineFlowBox.h:
2957         (WebCore::InlineFlowBox::logicalLayoutOverflowRect):
2958         (WebCore::InlineFlowBox::logicalVisualOverflowRect):
2959         Helpers for obtaining logical overflow rectangles, since lines compute their overflow in logical terms before
2960         converting to block coordinates at the end.
2961
2962         * rendering/RenderBlock.cpp:
2963         (WebCore::RenderBlock::layoutBlock):
2964         (WebCore::RenderBlock::addOverflowFromChildren):
2965         (WebCore::RenderBlock::computeOverflow):
2966         (WebCore::RenderBlock::addOverflowFromFloats):
2967         (WebCore::RenderBlock::addOverflowFromPositionedObjects):
2968         Blocks now have a computeOverflow function called at the end of layout that adds in all the types of overflow.  The addOverflowFromChildren
2969         method is virtual so that RenderListItem and RenderTable can subclass it.  RenderListItem has to position its list marker and
2970         propagate marker overflow up, and RenderTable adds in overflow from its sections.
2971
2972         (WebCore::RenderBlock::layoutOnlyPositionedObjects):
2973         (WebCore::RenderBlock::layoutPositionedObjects):
2974         When only positioned objects lay out, overflow must still be recomputed.  The refactoring of overflow computation into a single
2975         callable method: computeOverflow, makes it possible for this to be done easily.
2976
2977         (WebCore::RenderBlock::paint):
2978         visible -> visual.
2979
2980         (WebCore::RenderBlock::addOverhangingFloats):
2981         The propagation of float overflow has changed substantially.  The basic rules are:
2982             (1) The float must be in our floating objects list to contribute to overflow.
2983             (2) The float must be a descendant to contribute to overflow.
2984             (3) The block must have the outermost list that contains the float, or it has a self-painting layer and
2985                 so the float needs to be included in its overflow.
2986
2987         (WebCore::RenderBlock::nodeAtPoint):
2988         visible -> visual.
2989
2990         (WebCore::RenderBlock::layoutColumns):
2991         Remove column overflow computation from layoutColumns and move it to computeOverflow.
2992
2993         (WebCore::RenderBlock::adjustLinePositionForPagination):
2994         visible -> visual.
2995
2996         * rendering/RenderBlock.h:
2997         (WebCore::RenderBlock::scrollbarsChanged):
2998         Added a new virtual method used by table cells when scrollbars in an overflow:auto/scroll table cell come and go.
2999
3000         * rendering/RenderBlockLineLayout.cpp:
3001         (WebCore::RenderBlock::layoutInlineChildren):
3002         (WebCore::RenderBlock::determineStartPosition):
3003         (WebCore::RenderBlock::matchedEndLine):
3004         (WebCore::RenderBlock::addOverflowFromInlineChildren):
3005         (WebCore::RenderBlock::beforeSideVisualOverflowForLine):
3006         (WebCore::RenderBlock::afterSideVisualOverflowForLine):
3007         visible -> visual.
3008
3009         * rendering/RenderBox.cpp:
3010         (WebCore::RenderBox::scrollWidth):
3011         (WebCore::RenderBox::scrollHeight):
3012         Patched to use layoutOverflow functions instead of the old rightmost/leftmostPosition functions.
3013
3014         (WebCore::RenderBox::paintRootBoxDecorations):
3015         Use docLeft and docTop here, so that writing modes are handled.
3016
3017         (WebCore::RenderBox::clippedOverflowRectForRepaint):
3018         visible -> visual.
3019
3020         (WebCore::RenderBox::addOverflowFromChild):
3021         (WebCore::RenderBox::addLayoutOverflow):
3022         (WebCore::RenderBox::addVisualOverflow):
3023         (WebCore::RenderBox::logicalVisualOverflowRectForPropagation):
3024         (WebCore::RenderBox::visualOverflowRectForPropagation):
3025         (WebCore::RenderBox::logicalLayoutOverflowRectForPropagation):
3026         (WebCore::RenderBox::layoutOverflowRectForPropagation):
3027         * rendering/RenderBox.h:
3028         The new overflow system for boxes.  Layout overflow now crosses self-painting layer boundaries and adjusts child boxes
3029         for transforms, relative positioning and writing mode differences.
3030
3031         (WebCore::RenderBox::layoutOverflowRect):
3032         (WebCore::RenderBox::topLayoutOverflow):
3033         (WebCore::RenderBox::bottomLayoutOverflow):
3034         (WebCore::RenderBox::leftLayoutOverflow):
3035         (WebCore::RenderBox::rightLayoutOverflow):
3036         Changed the default rectangle for layout overflow to be the client box to match the scrollable areas of overflow regions.
3037
3038         (WebCore::RenderBox::clientLogicalBottom):
3039         New helper for obtaining the logical bottom of the client box.
3040
3041         (WebCore::RenderBox::clientBoxRect):
3042         New helper for obtaining the clientLeft/Top/Width/Height box.
3043
3044         * rendering/RenderBoxModelObject.h:
3045         (WebCore::RenderBoxModelObject::relativePositionLogicalOffset):
3046         Helper for obtaining the relative position offset transposed for vertical writing modes.  Used by line overflow.
3047
3048         * rendering/RenderFlexibleBox.cpp:
3049         (WebCore::RenderFlexibleBox::layoutBlock):
3050         Changed flexible boxes to just call the base class computeOverflow method.
3051
3052         * rendering/RenderInline.cpp:
3053         (WebCore::RenderInline::linesVisualOverflowBoundingBox):
3054         (WebCore::RenderInline::clippedOverflowRectForRepaint):
3055         visible -> visual.
3056
3057         * rendering/RenderInline.h:
3058         * rendering/RenderLayer.cpp:
3059         (WebCore::RenderLayer::updateLayerPosition):
3060         Changed layers to no longer incorporate right/bottom overflow into width/height.  This is the reason many layout
3061         tests change.  (Not doing this makes the layout test changes far worse, since overflow propagates across self-painting
3062         layers now.)
3063
3064         (WebCore::RenderLayer::overflowTop):
3065         (WebCore::RenderLayer::overflowBottom):
3066         (WebCore::RenderLayer::overflowLeft):
3067         (WebCore::RenderLayer::overflowRight):
3068         overflowTop/Bottom/Left/Right return overflow that accounts for writing modes, i.e., purely physical overflow that can be used
3069         to set up the scroll area.
3070
3071         (WebCore::RenderLayer::computeScrollDimensions):
3072         Drastically simplified this method now that overflowTop/Bottom/Left/Right just do the right thing regarding unreachable overflow.
3073
3074         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
3075         Make sure to explicitly set the vertical scrollbar's position just as we did with horizontal scrollbars, so that clamping to the
3076         bottom works.
3077
3078         (WebCore::performOverlapTests):
3079         (WebCore::RenderLayer::paintLayer):
3080         Fix a bug in performOverlapTests.  It incorrectly used the layer's bounds, and so it didn't account for left/top overflow out
3081         of the layer (see why I hate layers even having dimensions?).  Changed it to use the bounding box of the layer instead.
3082
3083         (WebCore::RenderLayer::hitTest):
3084         Fix a bug in hit testing.  It incorrectly used the root layer's bounds as the limit of the hit test, and so it didn't account
3085         for left/top overflow in a ScrollView (hate hate hate layers having dimensions).  I changed it to use the hit test rect instead,
3086         so that the damage rect never stops the point from being tested (unless the hit test request says not to ignore clipping).
3087
3088         (WebCore::RenderLayer::localBoundingBox):
3089         visible -> visual.
3090
3091         * rendering/RenderLayer.h:
3092         Added the new overflowTop/Left/Right/Bottom accessors.
3093
3094         * rendering/RenderLineBoxList.cpp:
3095         (WebCore::RenderLineBoxList::anyLineIntersectsRect):
3096         (WebCore::RenderLineBoxList::lineIntersectsDirtyRect):
3097         (WebCore::RenderLineBoxList::paint):
3098         (WebCore::RenderLineBoxList::hitTest):
3099         visible -> visual.
3100
3101         * rendering/RenderListItem.cpp:
3102         (WebCore::RenderListItem::addOverflowFromChildren):
3103         (WebCore::RenderListItem::positionListMarker):
3104         * rendering/RenderListItem.h:
3105         RenderListItem now positions the list marker when computing its overflow, since the marker propagates overflow back up to the list item.
3106
3107         * rendering/RenderListMarker.cpp:
3108         (WebCore::RenderListMarker::paint):
3109         visible -> visual.
3110
3111         * rendering/RenderMarquee.cpp:
3112         (WebCore::RenderMarquee::computePosition):
3113         Changed to use overflow functions instead of rightmost/lowestPosition.
3114
3115         * rendering/RenderMedia.cpp:
3116         * rendering/RenderMedia.h:
3117         Removed the lowest/topmost/rightmost/leftmostPosition functions, since control overflow is handled properly already.
3118
3119         * rendering/RenderOverflow.h:
3120         (WebCore::RenderOverflow::RenderOverflow):
3121         (WebCore::RenderOverflow::setLayoutOverflow):
3122         (WebCore::RenderOverflow::setVisualOverflow):
3123         Add new setters for layout and visual overflow as rects.
3124
3125         * rendering/RenderReplaced.cpp:
3126         (WebCore::RenderReplaced::shouldPaint):
3127         (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
3128         visible -> visual.
3129
3130         * rendering/RenderRubyRun.cpp:
3131         (WebCore::RenderRubyRun::layout):
3132         Call computeOverflow to recompute our overflow information after we adjust the ruby.
3133
3134         * rendering/RenderTable.cpp:
3135         (WebCore::RenderTable::layout):
3136         (WebCore::RenderTable::addOverflowFromChildren):
3137         (WebCore::RenderTable::paint):
3138         * rendering/RenderTable.h:
3139         Move section overflow propagation into addOverflowFromChildren, and change RenderTable to just call computeOverflow.
3140
3141         * rendering/RenderTableCell.cpp:
3142         (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
3143         visible -> visual.
3144
3145         (WebCore::RenderTableCell::scrollbarsChanged):
3146         Adding unreachable overflow support (something that in the old code only existed for positioned objects in the root view) exposed
3147         a bug in table layout.  If scrollbars are added during the layout that occurs after intrinsic padding was incorporated into the
3148         cell, then the cell won't lay out properly the second time (after the scrollbars have been added).  We have to adjust the intrinsic
3149         padding accounting for the presence of the new scrollbar so the second layout will get the right dimensions.
3150
3151         * rendering/RenderTableCell.h:
3152         (WebCore::RenderTableCell::hasVisualOverflow):
3153         visible -> visual.
3154
3155         * rendering/RenderTableSection.cpp:
3156         (WebCore::RenderTableSection::layoutRows):
3157         * rendering/RenderTableSection.h:
3158         visible -> visual.  Removed the leftmost/rightmost/topmost/bottommostPosition functions.
3159
3160         * rendering/RenderTreeAsText.cpp:
3161         (WebCore::writeLayers):
3162         Added a hack to render tree dumping to include right/bottom overflow for the root layer only.  This keeps a zillion layout tests
3163         from failing.
3164
3165         * rendering/RenderView.cpp:
3166         (WebCore::RenderView::layout):
3167         (WebCore::RenderView::docTop):
3168         (WebCore::RenderView::docBottom):
3169         (WebCore::RenderView::docLeft):
3170         (WebCore::RenderView::docRight):
3171         * rendering/RenderView.h:
3172         (WebCore::RenderView::docHeight):
3173         (WebCore::RenderView::docWidth):
3174         RenderView now uses docLeft/Top/Height/Width functions, which are just overflow queries that account for writing modes.  These methods
3175         are now the preferred way to query for the physical dimensions of a document.
3176
3177         * rendering/RootInlineBox.cpp:
3178         (WebCore::RootInlineBox::addHighlightOverflow):
3179         Changed to call setOverflowFromLogicalRects instead of the block/inline position functions.
3180
3181         (WebCore::RootInlineBox::alignBoxesInBlockDirection):
3182         Remove the computation of block direction overflow, since it now all happens at once after the line is built.
3183
3184         (WebCore::RootInlineBox::paddedLayoutOverflowRect):
3185         * rendering/RootInlineBox.h:
3186         Added a new helper function for incorporating the end padding into a line.  This end padding also includes the single pixel for a caret
3187         in LTR if needed.
3188
3189 2010-12-06  Chris Marrin  <cmarrin@apple.com>
3190
3191         Reviewed by Simon Fraser.
3192
3193         Share code between Mac (CA) and Windows (CACF) GraphicsLayer implementations
3194         https://bugs.webkit.org/show_bug.cgi?id=49388
3195
3196         Replaced GraphicsLayerMac with GraphicsLayerCA. GraphicsLayerCA is essentially 
3197         identical to GraphicsLayerMac, but replaces all the CoreAnimation specific calls 
3198         with calls to PlatformCALayer and PlatformCAAnimation. This makes GraphicsLayerCA 
3199         platform neutral as long as implementations of those two classes are available. 
3200         Added implementations in PlatformCALayerMac and PlatformCAAnimationMac. Also got 
3201         rid of GraphicsLayer::nativeLayer() and replaced it with GraphicsLayer::platformLayer() 
3202         to avoid confusion since both names were used to refer to the same thing. 
3203
3204         This patch is only for Mac. Windows implementation has not changed.
3205
3206         * WebCore.xcodeproj/project.pbxproj:
3207         * platform/graphics/GraphicsLayer.h:
3208         * platform/graphics/ca/GraphicsLayerCA.cpp: Copied from WebCore/platform/graphics/ca/GraphicsLayerCA.cpp.
3209         * platform/graphics/ca/GraphicsLayerCA.h: Copied from WebCore/platform/graphics/ca/GraphicsLayerCA.h.
3210         * platform/graphics/ca/PlatformCAAnimation.h: Copied from WebCore/platform/graphics/ca/PlatformCAAnimation.h.
3211         * platform/graphics/ca/PlatformCALayer.h: Copied from WebCore/platform/graphics/ca/PlatformCALayer.h.
3212         * platform/graphics/ca/mac/PlatformCAAnimationMac.mm: Copied from WebCore/platform/graphics/ca/mac/PlatformCAAnimationMac.mm.
3213         (toCAMediaTimingFunction):
3214         * platform/graphics/ca/mac/PlatformCALayerMac.mm: Copied from WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm.
3215         (PlatformCALayer::PlatformCALayer):
3216         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
3217         * platform/graphics/chromium/GraphicsLayerChromium.h:
3218         * platform/graphics/mac/GraphicsLayerMac.h: Removed.
3219         * platform/graphics/mac/GraphicsLayerMac.mm: Removed.
3220         * platform/graphics/mac/WebLayer.h:
3221         * platform/graphics/mac/WebLayer.mm:
3222         (-[WebLayer setNeedsDisplay]):
3223         (-[WebLayer setNeedsDisplayInRect:]):
3224         (-[WebLayer display]):
3225         (-[WebLayer drawInContext:]):
3226         * platform/graphics/mac/WebTiledLayer.h:
3227         * platform/graphics/mac/WebTiledLayer.mm:
3228         (-[WebTiledLayer setNeedsDisplay]):
3229         (-[WebTiledLayer setNeedsDisplayInRect:]):
3230         (-[WebTiledLayer display]):
3231         (-[WebTiledLayer drawInContext:]):
3232         * platform/graphics/qt/GraphicsLayerQt.cpp:
3233         (WebCore::GraphicsLayerQtImpl::flushChanges):
3234         * platform/graphics/qt/GraphicsLayerQt.h:
3235         * platform/graphics/win/GraphicsLayerCACF.cpp:
3236         * platform/graphics/win/GraphicsLayerCACF.h:
3237
3238 2010-12-06  Simon Fraser  <simon.fraser@apple.com>
3239
3240         Reviewed by Dan Bernstein.
3241
3242         Font antialiasing (smoothing) changes when elements are rendered into compositing layers
3243         https://bugs.webkit.org/show_bug.cgi?id=23364
3244
3245         Text rendered by Core Graphics over a transparent background looks bad because of 
3246         font smoothing, so turn off smoothing when rendering text into compositing layers.
3247
3248         * platform/graphics/GraphicsContext.h:
3249         * platform/graphics/cg/GraphicsContextCG.cpp:
3250         (WebCore::GraphicsContext::setAllowsFontSmoothing):
3251         * platform/graphics/mac/WebLayer.mm:
3252         (drawLayerContents):
3253
3254 2010-12-06  Patrick Gansterer  <paroga@webkit.org>
3255
3256         Reviewed by Andreas Kling.
3257
3258         [WINCE] Add build system
3259         https://bugs.webkit.org/show_bug.cgi?id=50522
3260
3261         * CMakeListsWinCE.txt: Added.
3262
3263 2010-12-06  Chris Fleizach  <cfleizach@apple.com>
3264
3265         Reviewed by Oliver Hunt.
3266
3267         AX does not support HTML5 "required"
3268         https://bugs.webkit.org/show_bug.cgi?id=50507
3269
3270         Test: platform/mac/accessibility/html5-required-attribute.html
3271
3272         * accessibility/AccessibilityRenderObject.cpp:
3273         (WebCore::AccessibilityRenderObject::isRequired):
3274
3275 2010-12-06  Alejandro G. Castro  <alex@igalia.com>
3276
3277         Reviewed by Martin Robinson.
3278
3279         [GTK] using shadows leaks memory
3280         https://bugs.webkit.org/show_bug.cgi?id=50541
3281
3282         Fixed leaks in the shadow code.
3283         * platform/graphics/cairo/CairoUtilities.cpp:
3284         (WebCore::drawPatternToCairoContext): adoptRef instead of just
3285         getting a new reference.
3286         * platform/graphics/cairo/GraphicsContextCairo.cpp:
3287         (WebCore::drawPathShadow): handle cairo_path_t with smart
3288         pointers.
3289
3290 2010-12-06  Yury Semikhatsky  <yurys@chromium.org>
3291
3292         Reviewed by Pavel Feldman.
3293
3294         [v8] Web Inspector: remove duplicate code for capturing stack trace
3295         https://bugs.webkit.org/show_bug.cgi?id=50461
3296
3297         No new tests. Covered with existing inspector tests.
3298
3299         * bindings/js/ScriptCallStackFactory.cpp:
3300         (WebCore::createScriptCallStack):
3301         * bindings/js/ScriptCallStackFactory.h:
3302         * bindings/v8/ScriptCallStackFactory.cpp:
3303         (WebCore::toScriptCallFrame):
3304         (WebCore::toScriptCallFramesVector):
3305         (WebCore::createScriptCallStack):
3306         * bindings/v8/ScriptCallStackFactory.h:
3307         * bindings/v8/V8ConsoleMessage.cpp:
3308         (WebCore::V8ConsoleMessage::handler):
3309         * inspector/ScriptCallFrame.cpp:
3310         (WebCore::ScriptCallFrame::ScriptCallFrame):
3311         (WebCore::ScriptCallFrame::isEqual):
3312         (WebCore::ScriptCallFrame::buildInspectorObject):
3313         * inspector/ScriptCallFrame.h:
3314         (WebCore::ScriptCallFrame::sourceURL):
3315         * inspector/ScriptCallStack.h:
3316         * inspector/TimelineRecordFactory.cpp:
3317         (WebCore::TimelineRecordFactory::createGenericRecord):
3318         * inspector/front-end/ConsoleView.js:
3319         (WebInspector.ConsoleMessage.prototype._populateStackTraceTreeElement):
3320
3321 == Rolled over to ChangeLog-2010-12-06 ==