<rdar://problem/10098679> Assertion failure in RenderLayer::paintPaginatedChildLayer()
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-09-27  Dan Bernstein  <mitz@apple.com>
2
3         <rdar://problem/10098679> Assertion failure in RenderLayer::paintPaginatedChildLayer()
4
5         Reviewed by Simon Fraser.
6
7         Test: fast/dynamic/layer-no-longer-paginated.html
8
9         FrameView::layout() calls adjustViewSize() before calling RenderLayer::updateLayerPositions().
10         The former may trigger painting with a layer tree that is not entirely up-to-date. Specifically,
11         the isPaginated() state of a layer may be incorrect, leading to the assertion in this bug. Instead
12         of asserting, return early and count on the upcoming updateLayerPositions() to repaint as needed.
13
14         * rendering/RenderLayer.cpp:
15         (WebCore::RenderLayer::paintPaginatedChildLayer): Replaced the assertion with an early return.
16
17 2011-09-27  Ojan Vafai  <ojan@chromium.org>
18
19         offsetTop/offsetLeft return the wrong values for horizontal-bt/vertical-rl writing modes
20         https://bugs.webkit.org/show_bug.cgi?id=68304
21
22         Reviewed by David Hyatt.
23
24         When grabbing the x/y values of the RenderBox, we need to take writing mode
25         flipping into account.
26
27         Test: fast/dom/offset-position-writing-modes.html
28
29         * rendering/RenderBox.cpp:
30         (WebCore::RenderBox::locationIncludingFlipping):
31         * rendering/RenderBox.h:
32         (WebCore::RenderBox::yFlippedForWritingMode):
33         (WebCore::RenderBox::xFlippedForWritingMode):
34         * rendering/RenderBoxModelObject.cpp:
35         (WebCore::RenderBoxModelObject::offsetLeft):
36         (WebCore::RenderBoxModelObject::offsetTop):
37
38 2011-09-27  Tim Horton  <timothy_horton@apple.com>
39
40         Rapidly refreshing a feMorphology[erode] with r=0 can sometimes cause display corruption
41         https://bugs.webkit.org/show_bug.cgi?id=68816
42         <rdar://problem/10186468>
43
44         Reviewed by Simon Fraser.
45
46         If a filter returns without writing into its result buffer, make sure to return an cleared buffer.
47
48         Test: svg/filters/feMorphology-zero-radius.svg
49
50         * platform/graphics/filters/FEMorphology.cpp:
51         (WebCore::FEMorphology::apply):
52         * platform/graphics/filters/FETurbulence.cpp:
53         (WebCore::FETurbulence::apply):
54
55 2011-09-27  Ryosuke Niwa  <rniwa@webkit.org>
56
57         CompositeEditCommand::prune should remove subtree at once
58         https://bugs.webkit.org/show_bug.cgi?id=68866
59
60         Reviewed by Darin Adler.
61
62         Extracted the logic to find the highest ancestor to remove as highestNodeToRemoveInPruning from prune.
63         This reduces the number of node removals from O(n) to O(1) where n is the depth of the tree.
64
65         * editing/CompositeEditCommand.cpp:
66         (WebCore::hasARenderedDescendant): Takes excludedNode in addition to node. excludedNode is used to ignore
67         the child node from which we climbed up the tree in highestNodeToRemoveInPruning.
68         (WebCore::highestNodeToRemoveInPruning): Extracted from prune.
69         (WebCore::CompositeEditCommand::prune):
70         (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
71
72 2011-09-27  David Hyatt  <hyatt@apple.com>
73
74         https://bugs.webkit.org/show_bug.cgi?id=68922
75
76         Paginated floats should not grow the height of a block when they don't end
77         up being tied to a line. Floats encountered in skipLeadingWhitespace that
78         paginate can't immediately grow the height of the block, since there may not
79         end up being any actual line content. We only want to push the height of the
80         block down if we have actual line content that we want to keep with the
81         float.
82         
83         Make positionNewFloatOnLine check if the line is empty or not, and if it is,
84         it just puts the desired pagination strut into LineInfo. If and when actual
85         line content is encountered and setEmpty becomes false, we'll grow the block
86         height then.
87         
88         Reviewed by Dan Bernstein.
89
90         Added fast/multicol/float-paginate-empty-lines.html and
91         fast/regions/webkit-flow-double-pagination-float-push.html.
92
93         * rendering/RenderBlock.h:
94         * rendering/RenderBlockLineLayout.cpp:
95         (WebCore::LineWidth::LineWidth):
96         (WebCore::LineWidth::fitsOnLine):
97         (WebCore::LineWidth::currentWidth):
98         (WebCore::LineWidth::uncommittedWidth):
99         (WebCore::LineWidth::committedWidth):
100         (WebCore::LineWidth::availableWidth):
101         (WebCore::LineWidth::addUncommittedWidth):
102         (WebCore::LineWidth::commit):
103         (WebCore::LineWidth::computeAvailableWidthFromLeftAndRight):
104         (WebCore::LineWidth::updateAvailableWidth):
105         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
106         (WebCore::LineWidth::applyOverhang):
107         (WebCore::LineWidth::fitBelowFloats):
108         (WebCore::LineInfo::LineInfo):
109         (WebCore::LineInfo::floatPaginationStrut):
110         (WebCore::LineInfo::setEmpty):
111         (WebCore::LineInfo::setFloatPaginationStrut):
112         (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
113         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
114         (WebCore::RenderBlock::positionNewFloatOnLine):
115
116 2011-09-27  Dean Jackson  <dino@apple.com>
117
118         Add 'filter' value to RenderStyle
119         https://bugs.webkit.org/show_bug.cgi?id=68471
120
121         Reviewed by Simon Fraser.
122
123         Add a filter property to RenderStyle when ENABLE(CSS_FILTERS)
124         is turned on. Similar to -webkit-transform, -webkit-filter is a
125         list of FilterOperations, each identifying what type of operation
126         it is. This change simply adds the basic objects, it does not
127         parse the property to generate the list.
128
129         * CMakeLists.txt:
130         * GNUmakefile.list.am:
131         * WebCore.gypi:
132         * WebCore.pro:
133         * WebCore.vcproj/WebCore.vcproj:
134         * WebCore.xcodeproj/project.pbxproj:
135         * platform/graphics/filters/FilterOperation.h: Added.
136         (WebCore::FilterOperation::~FilterOperation):
137         (WebCore::FilterOperation::operator!=):
138         (WebCore::FilterOperation::getOperationType):
139         (WebCore::FilterOperation::isSameType):
140         (WebCore::FilterOperation::FilterOperation):
141         (WebCore::ReferenceFilterOperation::create):
142         (WebCore::ReferenceFilterOperation::reference):
143         (WebCore::ReferenceFilterOperation::operator==):
144         (WebCore::ReferenceFilterOperation::ReferenceFilterOperation):
145         (WebCore::BasicColorMatrixFilterOperation::create):
146         (WebCore::BasicColorMatrixFilterOperation::amount):
147         (WebCore::BasicColorMatrixFilterOperation::operator==):
148         (WebCore::BasicColorMatrixFilterOperation::BasicColorMatrixFilterOperation):
149         (WebCore::BasicComponentTransferFilterOperation::create):
150         (WebCore::BasicComponentTransferFilterOperation::amount):
151         (WebCore::BasicComponentTransferFilterOperation::operator==):
152         (WebCore::BasicComponentTransferFilterOperation::BasicComponentTransferFilterOperation):
153         (WebCore::GammaFilterOperation::create):
154         (WebCore::GammaFilterOperation::amplitude):
155         (WebCore::GammaFilterOperation::exponent):
156         (WebCore::GammaFilterOperation::offset):
157         (WebCore::GammaFilterOperation::operator==):
158         (WebCore::GammaFilterOperation::GammaFilterOperation):
159         (WebCore::BlurFilterOperation::create):
160         (WebCore::BlurFilterOperation::stdDeviationX):
161         (WebCore::BlurFilterOperation::stdDeviationY):
162         (WebCore::BlurFilterOperation::operator==):
163         (WebCore::BlurFilterOperation::BlurFilterOperation):
164         (WebCore::SharpenFilterOperation::create):
165         (WebCore::SharpenFilterOperation::radius):
166         (WebCore::SharpenFilterOperation::threshold):
167         (WebCore::SharpenFilterOperation::amount):
168         (WebCore::SharpenFilterOperation::operator==):
169         (WebCore::SharpenFilterOperation::SharpenFilterOperation):
170         (WebCore::DropShadowFilterOperation::create):
171         (WebCore::DropShadowFilterOperation::shadow):
172         (WebCore::DropShadowFilterOperation::operator==):
173         (WebCore::DropShadowFilterOperation::DropShadowFilterOperation):
174         * platform/graphics/filters/FilterOperations.cpp: Added.
175         (WebCore::FilterOperations::FilterOperations):
176         (WebCore::FilterOperations::operator==):
177         * platform/graphics/filters/FilterOperations.h: Added.
178         (WebCore::FilterOperations::operator!=):
179         (WebCore::FilterOperations::clear):
180         (WebCore::FilterOperations::operations):
181         (WebCore::FilterOperations::size):
182         (WebCore::FilterOperations::at):
183         * rendering/style/RenderStyle.cpp:
184         (WebCore::RenderStyle::RenderStyle):
185         * rendering/style/RenderStyle.h:
186         (WebCore::InheritedFlags::filter):
187         (WebCore::InheritedFlags::hasFilter):
188         (WebCore::InheritedFlags::setFilter):
189         (WebCore::InheritedFlags::initialFilter):
190         * rendering/style/StyleAllInOne.cpp: Added include of new StyleFilterData.
191         * rendering/style/StyleFilterData.cpp: Added.
192         (WebCore::StyleFilterData::StyleFilterData):
193         (WebCore::StyleFilterData::operator==):
194         * rendering/style/StyleFilterData.h: Added.
195         (WebCore::StyleFilterData::create):
196         (WebCore::StyleFilterData::copy):
197         (WebCore::StyleFilterData::operator!=):
198         * rendering/style/StyleRareNonInheritedData.cpp:
199         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
200         (WebCore::StyleRareNonInheritedData::operator==):
201         * rendering/style/StyleRareNonInheritedData.h: New filter DataRef.
202
203 2011-09-27  James Robinson  <jamesr@chromium.org>
204
205         [chromium] LayerRenderChromium asserts about leaking textures.
206         https://bugs.webkit.org/show_bug.cgi?id=68190
207
208         Reviewed by Kenneth Russell.
209
210         This introduces an interface TextureAllocator that the TextureManager uses to allocate/deallocate textures.
211         This means that TextureManager does not need to depend directly on GraphicsContext3D, other than for the format
212         enum type, making it more testable.  It also allows us to track the allocations by subclassing TextureAllocator
213         to make sure we aren't leaking any textures.
214
215         * WebCore.gypi:
216         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
217         (WebCore::Canvas2DLayerChromium::updateCompositorResources):
218         * platform/graphics/chromium/Canvas2DLayerChromium.h:
219         * platform/graphics/chromium/ImageLayerChromium.cpp:
220         (WebCore::ImageLayerTextureUpdater::updateTextureRect):
221         * platform/graphics/chromium/LayerChromium.h:
222         (WebCore::LayerChromium::updateCompositorResources):
223         * platform/graphics/chromium/LayerRendererChromium.cpp:
224         (WebCore::LayerRendererChromium::LayerRendererChromium):
225         (WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
226         (WebCore::LayerRendererChromium::drawLayers):
227         (WebCore::LayerRendererChromium::useRenderSurface):
228         (WebCore::LayerRendererChromium::initializeSharedObjects):
229         (WebCore::LayerRendererChromium::cleanupSharedObjects):
230         * platform/graphics/chromium/LayerRendererChromium.h:
231         (WebCore::LayerRendererChromium::renderSurfaceTextureAllocator):
232         (WebCore::LayerRendererChromium::contentsTextureAllocator):
233         * platform/graphics/chromium/LayerTextureUpdater.h:
234         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
235         (WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
236         (WebCore::LayerTextureUpdaterSkPicture::updateTextureRect):
237         * platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
238         * platform/graphics/chromium/ManagedTexture.cpp:
239         (WebCore::ManagedTexture::bindTexture):
240         (WebCore::ManagedTexture::framebufferTexture2D):
241         * platform/graphics/chromium/ManagedTexture.h:
242         * platform/graphics/chromium/TextureManager.cpp:
243         (WebCore::TextureManager::memoryUseBytes):
244         (WebCore::TextureManager::deleteEvictedTextures):
245         (WebCore::TextureManager::evictAndDeleteAllTextures):
246         (WebCore::TextureManager::removeTexture):
247         (WebCore::TextureManager::allocateTexture):
248         (WebCore::TextureManager::requestTexture):
249         * platform/graphics/chromium/TextureManager.h:
250         (WebCore::TextureAllocator::~TextureAllocator):
251         * platform/graphics/chromium/TiledLayerChromium.cpp:
252         (WebCore::TiledLayerChromium::updateCompositorResources):
253         * platform/graphics/chromium/TiledLayerChromium.h:
254         * platform/graphics/chromium/TrackingTextureAllocator.cpp: Added.
255         (WebCore::TrackingTextureAllocator::TrackingTextureAllocator):
256         (WebCore::TrackingTextureAllocator::~TrackingTextureAllocator):
257         (WebCore::TrackingTextureAllocator::createTexture):
258         (WebCore::TrackingTextureAllocator::deleteTexture):
259         * platform/graphics/chromium/TrackingTextureAllocator.h: Copied from Source/WebCore/platform/graphics/chromium/ManagedTexture.h.
260         (WebCore::TrackingTextureAllocator::create):
261         (WebCore::TrackingTextureAllocator::currentMemoryUseBytes):
262         * platform/graphics/chromium/VideoLayerChromium.cpp:
263         (WebCore::VideoLayerChromium::updateCompositorResources):
264         (WebCore::VideoLayerChromium::updateTexture):
265         * platform/graphics/chromium/VideoLayerChromium.h:
266         * platform/graphics/chromium/WebGLLayerChromium.cpp:
267         (WebCore::WebGLLayerChromium::updateCompositorResources):
268         * platform/graphics/chromium/WebGLLayerChromium.h:
269         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
270         (WebCore::CCHeadsUpDisplay::draw):
271         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
272         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
273         (WebCore::CCLayerTreeHost::deleteContentsTexturesOnCCThread):
274         (WebCore::CCLayerTreeHost::commitToOnCCThread):
275         (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
276         (WebCore::CCLayerTreeHost::updateCompositorResources):
277         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
278         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
279         (WebCore::CCLayerTreeHostImpl::contentsTextureAllocator):
280         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
281         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
282         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
283         (WebCore::CCRenderSurface::drawSurface):
284         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
285         (WebCore::CCSingleThreadProxy::setNeedsCommit):
286         (WebCore::CCSingleThreadProxy::stop):
287         (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
288         (WebCore::CCSingleThreadProxy::commitIfNeeded):
289         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
290         (WebCore::CCThreadProxy::commitOnCCThread):
291         (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
292
293 2011-06-28  Robert Hogan  <robert@webkit.org>
294
295         Reviewed by David Hyatt.
296
297         Replaced elements squeezed when width is specified as percentage inside a table with Auto layout
298         https://bugs.webkit.org/show_bug.cgi?id=29447
299
300         If inserting a 'replaced' element (e.g. image, plugin) in a table cell that is not descendant from
301         a block with fixed layout then do not squeeze the element, let it use its intrinsic width and height.
302
303         Test: fast/replaced/table-percent-width.html
304
305         * rendering/RenderBox.cpp:
306         (WebCore::avoidSqueezingWidth):
307         (WebCore::avoidSqueezingHeight):
308         (WebCore::RenderBox::containingBlockReplacedLogicalWidthForContent):
309         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
310         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
311         * rendering/RenderBox.h:
312
313 2011-09-27  Simon Fraser  <simon.fraser@apple.com>
314
315         https://bugs.webkit.org/show_bug.cgi?id=67858
316
317         Roll r96070 back in now that the crash has been fixed in r96130.
318
319         Reviewed by Darin Adler.
320         
321         When non-overlay scrollbars are hidden on a composited iframe, nothing invalidated
322         the scrollbar areas or the scroll corner, so the scrollbars appear to remain.
323         
324         Fix by invalidating the scrollbars and scroll corner when they are removed. Invalidation
325         on scrollbar creation appears to happen via updating the scrollbar style.
326
327         Tested by compositing/iframes/repaint-after-losing-scrollbars.html which no longer shows
328         stale scrollbars when run manually, even though the green squares are missing from the
329         pixel result (bug 67878).
330
331         * page/FrameView.cpp:
332         (WebCore::FrameView::updateScrollCorner): Pass the corner rect into invalidateScrollCorner().
333         * platform/ScrollView.cpp:
334         (WebCore::ScrollView::setHasHorizontalScrollbar): Invalidate the scrollbar area if hiding it.
335         (WebCore::ScrollView::setHasVerticalScrollbar): Ditto.
336         (WebCore::ScrollView::updateScrollbars): In the case where both scrollbars are going away,
337         compute the scroll corner rect while we still have scrollbars, and then invalidate it
338         explicitly. (updateScrollCorner() doesn't, because it doesn't have access to the old corner
339         rect.)
340         * platform/ScrollableArea.cpp:
341         (WebCore::ScrollableArea::invalidateScrollCorner): Pass the rect in, because we can't
342         compute it in the case where the scrollbars are going away.
343         * platform/ScrollableArea.h: Pass in a rect to invalidateScrollCorner(), which matches
344         invalidateScrollbar().
345         * rendering/RenderLayerCompositor.cpp:
346         (WebCore::RenderLayerCompositor::destroyRootLayer): Pass the corner rect into invalidateScrollCorner().
347         * rendering/RenderScrollbarPart.cpp: Ditto.
348         (WebCore::RenderScrollbarPart::imageChanged): Ditto.
349
350 2011-09-27  Mihai Parparita  <mihaip@chromium.org>
351
352         Fix Chromium Mac build after r96130.
353
354         * page/FrameView.cpp:
355         (WebCore::FrameView::layerForOverhangAreas):
356
357 2011-09-27  Kaustubh Atrawalkar  <kaustubh@motorola.com>
358
359         Autofocus on readonly inputs does not focus the element.
360         https://bugs.webkit.org/show_bug.cgi?id=24092
361
362         Reviewed by Ryosuke Niwa.
363
364         Readonly input elements should be autofocusable. Removed the check.
365
366         Tests: fast/forms/autofocus-readonly-attribute.html
367
368         * html/HTMLFormControlElement.cpp:
369         (WebCore::shouldAutofocus):
370
371 2011-09-27  Simon Fraser  <simon.fraser@apple.com>
372
373         Clean up how FrameView accesses the RenderView
374         https://bugs.webkit.org/show_bug.cgi?id=68914
375
376         Reviewed by Sam Weinig.
377
378         Clean up how FrameView accesses the content renderer of its
379         frame. Previously, this was done in several different ways,
380         only some of which did null-checking.
381         
382         Use an inline method to avoid having to expose Frame
383         in the header.
384         
385         Standardize the terminology to use 'root' for this RenderView.
386
387         * page/FrameView.cpp:
388         (WebCore::rootRenderer):
389         (WebCore::FrameView::setFrameRect):
390         (WebCore::FrameView::adjustViewSize):
391         (WebCore::FrameView::updateCompositingLayers):
392         (WebCore::FrameView::clearBackingStores):
393         (WebCore::FrameView::restoreBackingStores):
394         (WebCore::FrameView::layerForHorizontalScrollbar):
395         (WebCore::FrameView::layerForVerticalScrollbar):
396         (WebCore::FrameView::layerForScrollCorner):
397         (WebCore::FrameView::layerForOverhangAreas):
398         (WebCore::FrameView::syncCompositingStateForThisFrame):
399         (WebCore::FrameView::hasCompositedContent):
400         (WebCore::FrameView::enterCompositingMode):
401         (WebCore::FrameView::isSoftwareRenderable):
402         (WebCore::FrameView::didMoveOnscreen):
403         (WebCore::FrameView::willMoveOffscreen):
404         (WebCore::FrameView::layout):
405         (WebCore::FrameView::embeddedContentBox):
406         (WebCore::FrameView::contentsInCompositedLayer):
407         (WebCore::FrameView::scrollContentsFastPath):
408         (WebCore::FrameView::scrollContentsSlowPath):
409         (WebCore::FrameView::maintainScrollPositionAtAnchor):
410         (WebCore::FrameView::scrollPositionChanged):
411         (WebCore::FrameView::repaintFixedElementsAfterScrolling):
412         (WebCore::FrameView::visibleContentsResized):
413         (WebCore::FrameView::scheduleRelayoutOfSubtree):
414         (WebCore::FrameView::needsLayout):
415         (WebCore::FrameView::setNeedsLayout):
416         (WebCore::FrameView::performPostLayoutTasks):
417         (WebCore::FrameView::updateControlTints):
418         (WebCore::FrameView::paintContents):
419         (WebCore::FrameView::forceLayoutForPagination):
420         (WebCore::FrameView::adjustPageHeightDeprecated):
421         (WebCore::FrameView::isVerticalDocument):
422         (WebCore::FrameView::isFlippedDocument):
423
424 2011-09-27  Dominic Mazzoni  <dmazzoni@google.com>
425
426         AXObjectCache cleared unnecessarily when non-top Document is detached.
427         https://bugs.webkit.org/show_bug.cgi?id=68636
428
429         Reviewed by Chris Fleizach.
430
431         Test: accessibility/deleting-iframe-destroys-axcache.html
432
433         * dom/Document.cpp:
434         (WebCore::Document::attach):
435         (WebCore::Document::detach):
436
437 2011-09-27  Sheriff Bot  <webkit.review.bot@gmail.com>
438
439         Unreviewed, rolling out r96108, r96111, r96113, and r96116.
440         http://trac.webkit.org/changeset/96108
441         http://trac.webkit.org/changeset/96111
442         http://trac.webkit.org/changeset/96113
443         http://trac.webkit.org/changeset/96116
444         https://bugs.webkit.org/show_bug.cgi?id=68913
445
446         Wait for working Qt5 (Requested by ossy on #webkit).
447
448         * WebCore.pri:
449         * platform/graphics/qt/GraphicsLayerQt.cpp:
450
451 2011-09-27  Csaba Osztrogonác  <ossy@webkit.org>
452
453         Fix ENABLE(SQL_DATABASE)=0 build after r95919
454         https://bugs.webkit.org/show_bug.cgi?id=68902
455
456         r95919 enabled OFFLINE_WEB_APPLICATIONS by default and
457         it needs SQLite stuff even if ENABLE_SQL_DATABASE=0.
458
459         Reviewed by Adam Barth.
460
461         * platform/sql/SQLiteAuthorizer.cpp:
462         * platform/sql/SQLiteDatabase.cpp:
463         * platform/sql/SQLiteFileSystem.cpp:
464         * platform/sql/SQLiteStatement.cpp:
465         * platform/sql/SQLiteTransaction.cpp:
466         * storage/DatabaseAuthorizer.cpp:
467
468 2011-09-27  Julien Chaffraix  <jchaffraix@webkit.org>
469
470         Crash because CSSPrimitiveValue::computeLengthDouble assumes fontMetrics are available
471         https://bugs.webkit.org/show_bug.cgi?id=66291
472
473         Reviewed by Darin Adler.
474
475         Test: fast/canvas/crash-set-font.html
476
477         This is Yet Another Missing updateFont (similar to bug 57756 and likely others). Here the issue is that
478         applying one of the font properties could mutate the parent style's font if m_parentStyle == m_style.
479         We would then query the newly created font when applying CSSPropertyFontSize, which has no font fallback
480         list as Font::update was never called.
481
482         The right fix would be to refactor of how we handle fonts to avoid such manual updates (see bug 62390).
483         Until this happens, it is better not to crash.
484
485         * css/CSSStyleSelector.cpp:
486         (WebCore::CSSStyleSelector::applyProperty): Added updateFont() here as the fonts could have been
487         mutated by the previous property change. Also added a comment explaining why it is safe to do it
488         this way.
489
490 2011-09-27  No'am Rosenthal  <noam.rosenthal@nokia.com>
491
492         [Texmap] Code cleanup: remove unused boundingRect/visibleRect calculations
493         https://bugs.webkit.org/show_bug.cgi?id=68897
494
495         Reviewed by Andreas Kling.
496
497         No new functionality so no new tests.
498
499         * platform/graphics/texmap/TextureMapperNode.cpp:
500         (WebCore::TextureMapperNode::computeAllTransforms):
501         (WebCore::TextureMapperNode::computeTiles):
502         (WebCore::TextureMapperNode::syncCompositingState):
503         * platform/graphics/texmap/TextureMapperNode.h:
504
505 2011-09-27  No'am Rosenthal  <noam.rosenthal@nokia.com>
506
507         [Texmap][Qt] Refactor texture-upload to allow direct chunk update
508         https://bugs.webkit.org/show_bug.cgi?id=68808
509
510         Add a function to BitmapTexture for direct pixel updates.
511         Modify BitmapTextureGL::endPaint to use that function. Since the BGRA
512         to RGBA swizzling is done inside that function, there's no need for the 
513         RGBA32PremultipliedBuffer class to contain such function. Also,
514         RGBA32PremultipliedBuffer was renamed to BGRA32PremultipliedBuffer, correcting
515         an old mistake.
516
517         Reviewed by Andreas Kling.
518
519         No new tests. Existing tests in LayoutTests/compositing test this.
520
521         * platform/graphics/opengl/TextureMapperGL.cpp:
522         (WebCore::BitmapTextureGL::beginPaint):
523         (WebCore::BitmapTextureGL::endPaint):
524         (WebCore::swizzleBGRAToRGBA):
525         (WebCore::BitmapTextureGL::updateContents):
526         * platform/graphics/opengl/TextureMapperGL.h:
527         (WebCore::BGRA32PremultimpliedBuffer::~BGRA32PremultimpliedBuffer):
528         * platform/graphics/qt/TextureMapperQt.cpp:
529         (WebCore::BitmapTextureQt::updateContents):
530         (WebCore::BGRA32PremultimpliedBufferQt::data):
531         (WebCore::BGRA32PremultimpliedBuffer::create):
532         * platform/graphics/qt/TextureMapperQt.h:
533         * platform/graphics/texmap/TextureMapper.h:
534
535 2011-09-23  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
536
537         [Qt] Fix build against Qt5 after refactor of widgets out of QtGUi
538
539         QWidget and friends now live in the QtWidgets library. We update
540         includes in implementation files and private headers to us the
541         non-module-prefixed path, and leave the lookup for the include
542         path. For public headers we have to ifdef the includes as the
543         user might now have the modules we need in his QT config.
544
545         Finally, QSGCanvas is no longer a QWidget but a QWindow, so we
546         have to update our code and use windowHandle() for setting the
547         parent relationships.
548
549         https://bugs.webkit.org/show_bug.cgi?id=68687
550
551         Reviewed by Andreas Kling.
552
553         * WebCore.pri:
554         * platform/graphics/qt/GraphicsLayerQt.cpp:
555
556 2011-09-27  Pavel Feldman  <pfeldman@google.com>
557
558         Web Inspector: split DOM.attributesUpdated into attributeModified and attributeRemoved.
559         Send attribute name and value within the event.
560         https://bugs.webkit.org/show_bug.cgi?id=68613
561
562         Reviewed by Yury Semikhatsky.
563
564         * dom/Element.cpp:
565         (WebCore::Element::setAttribute):
566         (WebCore::Element::removeAttribute):
567         * inspector/Inspector.draft-01.json:
568         * inspector/Inspector.json:
569         * inspector/InspectorDOMAgent.cpp:
570         (WebCore::InspectorDOMAgent::didModifyDOMAttr):
571         (WebCore::InspectorDOMAgent::didRemoveDOMAttr):
572         * inspector/InspectorDOMAgent.h:
573         * inspector/InspectorInstrumentation.cpp:
574         (WebCore::InspectorInstrumentation::didModifyDOMAttrImpl):
575         (WebCore::InspectorInstrumentation::didRemoveDOMAttrImpl):
576         * inspector/InspectorInstrumentation.h:
577         (WebCore::InspectorInstrumentation::didModifyDOMAttr):
578         (WebCore::InspectorInstrumentation::didRemoveDOMAttr):
579         * inspector/front-end/DOMAgent.js:
580         (WebInspector.DOMNode.prototype._addAttribute):
581         (WebInspector.DOMNode.prototype._setAttribute):
582         (WebInspector.DOMNode.prototype._removeAttribute):
583         (WebInspector.DOMAgent.prototype._attributeModified):
584         (WebInspector.DOMAgent.prototype._attributeRemoved):
585         (WebInspector.DOMAgent.prototype._inlineStyleInvalidated):
586         (WebInspector.DOMAgent.prototype._loadNodeAttributes):
587         (WebInspector.DOMDispatcher.prototype.attributeModified):
588         (WebInspector.DOMDispatcher.prototype.attributeRemoved):
589         * inspector/front-end/ElementsPanel.js:
590         (WebInspector.ElementsPanel):
591         (WebInspector.ElementsPanel.prototype._attributesUpdated):
592         * inspector/front-end/MetricsSidebarPane.js:
593         (WebInspector.MetricsSidebarPane):
594         (WebInspector.MetricsSidebarPane.prototype._attributesUpdated):
595         * inspector/front-end/StylesSidebarPane.js:
596         (WebInspector.StylesSidebarPane):
597         (WebInspector.StylesSidebarPane.prototype._attributesModified):
598         (WebInspector.StylesSidebarPane.prototype._attributesRemoved):
599         (WebInspector.StylesSidebarPane.prototype._styleInvalidated):
600         (WebInspector.StylePropertyTreeElement.prototype.event):
601         (WebInspector.StylePropertyTreeElement.prototype):
602         * inspector/validate-protocol-compatibility:
603
604 2011-09-27  Sheriff Bot  <webkit.review.bot@gmail.com>
605
606         Unreviewed, rolling out r96070 and r96075.
607         http://trac.webkit.org/changeset/96070
608         http://trac.webkit.org/changeset/96075
609         https://bugs.webkit.org/show_bug.cgi?id=68893
610
611         WK2 tests started crashing after r96070 for SL and Qt
612         (Requested by torarne on #webkit).
613
614         * page/FrameView.cpp:
615         (WebCore::FrameView::updateScrollCorner):
616         * platform/ScrollView.cpp:
617         (WebCore::ScrollView::setHasHorizontalScrollbar):
618         (WebCore::ScrollView::setHasVerticalScrollbar):
619         (WebCore::ScrollView::updateScrollbars):
620         * platform/ScrollableArea.cpp:
621         (WebCore::ScrollableArea::invalidateScrollCorner):
622         * platform/ScrollableArea.h:
623         * rendering/RenderLayerCompositor.cpp:
624         (WebCore::RenderLayerCompositor::destroyRootLayer):
625         * rendering/RenderScrollbarPart.cpp:
626         (WebCore::RenderScrollbarPart::imageChanged):
627
628 2011-09-27  Andrey Kosyakov  <caseq@chromium.org>
629
630         Web Inspector: JS exception upon clicking on "Word Wrap" checkbox in Settings screen
631         https://bugs.webkit.org/show_bug.cgi?id=68888
632
633         Reviewed by Pavel Feldman.
634
635         * inspector/front-end/ElementsPanel.js:
636         (WebInspector.ElementsPanel.prototype._domWordWrapSettingChanged):
637
638 2011-09-21  Pavel Podivilov  <podivilov@chromium.org>
639
640         Web Inspector: migrate RawSourceCode clients to SourceMapping class.
641         https://bugs.webkit.org/show_bug.cgi?id=68524
642
643         Clients should use uiSourceCode(), rawLocationToUILocation(), uiLocationToRawLocation() methods of SourceMapping class.
644         Initially, RawSourceCode may not have associated SourceMapping, so it is natural to extract this methods and associated state to a separate class.
645
646         Reviewed by Yury Semikhatsky.
647
648         * inspector/front-end/BreakpointManager.js:
649         (WebInspector.BreakpointManager.prototype._materializeBreakpoint):
650         (WebInspector.BreakpointManager.prototype._breakpointDebuggerLocationChanged):
651         * inspector/front-end/DebuggerPresentationModel.js:
652         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation.updateAnchor):
653         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
654         (WebInspector.DebuggerPresentationModel.prototype._addScript):
655         (WebInspector.DebuggerPresentationModel.prototype._updateSourceMapping):
656         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
657         (WebInspector.DebuggerPresentationModel.prototype._restoreConsoleMessages):
658         (WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded):
659         (WebInspector.DebuggerPresentationModel.prototype._createPresentationMessage):
660         (WebInspector.DebuggerPresentationModel.prototype.continueToLine):
661         (WebInspector.PresentationCallFrame.prototype.get url):
662         (WebInspector.PresentationCallFrame.prototype.sourceLine.sourceMappingUpdated):
663         (WebInspector.PresentationCallFrame.prototype.sourceLine):
664         (WebInspector.DebuggerPresentationModelResourceBinding.prototype.canSetContent):
665         (WebInspector.DebuggerPresentationModelResourceBinding.prototype.setContent):
666         * inspector/front-end/SourceFile.js:
667         (WebInspector.RawSourceCode.prototype.get sourceMapping):
668
669 2011-09-27  Vineet Chaudhary  <vineet.chaudhary@motorola.com>
670
671         wrap attribute of textarea element cannot be accessed by JavaScript.
672         https://bugs.webkit.org/show_bug.cgi?id=68592
673
674         Reviewed by Kent Tamura.
675
676         Added JS interface for wrap attribute to HTMLTextAreaElement.idl.
677
678         Test: fast/forms/textarea-wrap-attribute.html
679
680         * html/HTMLTextAreaElement.idl:
681
682 2011-09-27  Xan Lopez  <xlopez@igalia.com>
683
684         [GTK] Add compatibility methods for DOM bindings
685         https://bugs.webkit.org/show_bug.cgi?id=68884
686
687         Reviewed by Philippe Normand.
688
689         Add compatibility methods for our DOM bindings.
690
691         * bindings/gobject/WebKitDOMCustom.cpp:
692         (webkit_dom_blob_slice): alias to the new method name.
693         (webkit_dom_html_form_element_dispatch_form_change): this was
694         removed from WebCore, so just print a warning about it.
695         (webkit_dom_html_form_element_dispatch_form_input): ditto.
696         * bindings/gobject/WebKitDOMCustom.h:
697
698 2011-09-27  Ryosuke Niwa  <rniwa@webkit.org>
699
700         Encapsulate m_firstNodeInserted and m_lastLeafInserted in node insertion logic
701         https://bugs.webkit.org/show_bug.cgi?id=68875
702
703         Reviewed by Kent Tamura.
704
705         Added InsertedNode class inside ReplaceSelection to encapsulate m_firstNodeInserted and m_lastLeafInserted.
706         Deployed it in removeRedundantStylesAndKeepStyleSpanInline, doApply, and insertAsListItems of ReplaceSelectionCommand.
707
708         * editing/DeleteSelectionCommand.cpp:
709         (WebCore::DeleteSelectionCommand::removeNode):
710         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
711         * editing/ReplaceSelectionCommand.cpp:
712         (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
713         (WebCore::ReplaceSelectionCommand::doApply):
714         (WebCore::ReplaceSelectionCommand::insertAsListItems):
715         * editing/ReplaceSelectionCommand.h:
716         (WebCore::ReplaceSelectionCommand::InsertedNodes::respondToNodeInsertion):
717         (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode):
718         (WebCore::ReplaceSelectionCommand::InsertedNodes::firstNodeInserted):
719         (WebCore::ReplaceSelectionCommand::InsertedNodes::lastLeafInserted):
720         (WebCore::ReplaceSelectionCommand::InsertedNodes::pastLastLeaf):
721         * editing/htmlediting.cpp:
722         (WebCore::updatePositionForNodeRemoval): Moved from DeleteSelectionCommand.cpp.
723         * editing/htmlediting.h:
724
725 2011-09-27  Arun Patole  <bmf834@motorola.com>
726
727         Audio element doesn't emit the 'playing' event every time it starts playing, after it has finished playing.
728         https://bugs.webkit.org/show_bug.cgi?id=60972
729
730         Reviewed by Philippe Normand.
731
732         The paused attribute should be set to true and the media element should emit a 'paused' at the end of playback.
733         WHATWG revision r6562: http://html5.org/tools/web-apps-tracker?from=6561&to=6562
734
735         Test: media/media-element-play-after-eos.html
736
737         * html/HTMLMediaElement.cpp:
738         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): set m_paused to true and schedule 'pause' event when playback ended.
739
740 2011-09-27  Rakesh KN  <rakesh.kn@motorola.com>
741
742         <input> with autofocus doesn't lose focus when it has a certain onblur listener
743         https://bugs.webkit.org/show_bug.cgi?id=68513
744
745         Reviewed by Kent Tamura.
746
747         Test: fast/forms/autofocus-focus-only-once.html
748
749         These changes make sure that an element is focused only once when autofocus attribute is used.
750
751         * html/HTMLFormControlElement.cpp:
752         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
753         (WebCore::shouldAutofocus):
754         (WebCore::HTMLFormControlElement::attach):
755         * html/HTMLFormControlElement.h:
756         (WebCore::HTMLFormControlElement::hasAutofocused):
757         (WebCore::HTMLFormControlElement::setAutofocused):
758
759 2011-09-26  Kentaro Hara  <haraken@chromium.org>
760
761         Implement PopStateEvent.state with SerializedScriptValue and ScriptValue
762         https://bugs.webkit.org/show_bug.cgi?id=68345
763
764         Reviewed by Adam Barth.
765
766         Previously, the following test cases fail or crash:
767
768         - shouldBe("new PopStateEvent('eventType', { state: object1 }).state", "object1") -> FAIL
769         - new PopStateEvent('eventType', { state: document }).state -> CRASH in DRT
770
771         This is because PopStateEvent.state is implemented not as ScriptValue but as SerializedScriptValue.
772         However, we cannot simply change the type of PopStateEvent.state to ScriptValue,
773         since PopStateEvent can be constructed in the context that does not know ScriptValue.
774         For example, Document.cpp calls PopStateEvent::create() with SerializedScriptValue
775         popped from HistoryItem, but we cannot deserialize the SerializedScriptValue into
776         the corresponding ScriptValue here because the deserialization requires ExecState.
777         In other words, although we want to store PopStateEvent.state by ScriptValue internally,
778         PopStateEvent still needs to provide an API to construct it with SerializedScriptValue.
779         With these observations, this patch makes the following changes:
780
781         - If PopStateEvent is constructed with ScriptValue, it is stored as ScriptValue internally.
782         When PopStateEvent.state is called, the ScriptValue is returned.
783         - If PopStateEvent is constructed with SerializedScriptValue, it is stored as
784         SerializedScriptValue internally (since we cannot deserialize it into ScriptValue
785         at this point). When PopStateEvent.state is called, the SerializedScriptValue is
786         deserialized into the corresponding ScriptValue, and the ScriptValue is returned.
787
788         Tests: fast/events/constructors/pop-state-event-constructor.html
789                fast/events/fire-popstate-event.html
790
791         * GNUmakefile.list.am: Added JSPopStateEventCustom.cpp.
792         * UseJSC.cmake: Ditto.
793         * WebCore.gypi: Ditto.
794         * WebCore.pro: Ditto.
795         * WebCore.xcodeproj/project.pbxproj: Ditto.
796         * bindings/js/JSBindingsAllInOne.cpp: Ditto.
797         * bindings/js/JSPopStateEventCustom.cpp:
798         (WebCore::JSPopStateEvent::state): Custom getter for PopStateEvent.state.
799         * bindings/v8/custom/V8PopStateEventCustom.cpp:
800         (WebCore::V8PopStateEvent::stateAccessorGetter): Custom getter for PopStateEvent.state.
801         * dom/PopStateEvent.cpp:
802         (WebCore::PopStateEventInit::PopStateEventInit): Added initialization code for PopStateEvent.m_state.
803         (WebCore::PopStateEvent::PopStateEvent): Ditto.
804         (WebCore::PopStateEvent::create): Ditto.
805         (WebCore::PopStateEvent::initPopStateEvent): Ditto.
806         * dom/PopStateEvent.h:
807         (WebCore::PopStateEvent::serializedState): Getter.
808         (WebCore::PopStateEvent::state): Getter.
809         * dom/PopStateEvent.idl: Change the type of 'stateArg' and 'state' to DOMObject. Added [CustomGetter] to 'state'.
810
811 2011-09-09  Simon Fraser  <simon.fraser@apple.com>
812
813         Pixel result shows that compositing/iframes/repaint-after-losing-scrollbars.html is failing
814         https://bugs.webkit.org/show_bug.cgi?id=67858
815
816         Reviewed by Darin Adler.
817         
818         When non-overlay scrollbars are hidden on a composited iframe, nothing invalidated
819         the scrollbar areas or the scroll corner, so the scrollbars appear to remain.
820         
821         Fix by invalidating the scrollbars and scroll corner when they are removed. Invalidation
822         on scrollbar creation appears to happen via updating the scrollbar style.
823
824         Tested by compositing/iframes/repaint-after-losing-scrollbars.html which no longer shows
825         stale scrollbars when run manually, even though the green squares are missing from the
826         pixel result (bug 67878).
827
828         * page/FrameView.cpp:
829         (WebCore::FrameView::updateScrollCorner): Pass the corner rect into invalidateScrollCorner().
830         * platform/ScrollView.cpp:
831         (WebCore::ScrollView::setHasHorizontalScrollbar): Invalidate the scrollbar area if hiding it.
832         (WebCore::ScrollView::setHasVerticalScrollbar): Ditto.
833         (WebCore::ScrollView::updateScrollbars): In the case where both scrollbars are going away,
834         compute the scroll corner rect while we still have scrollbars, and then invalidate it
835         explicitly. (updateScrollCorner() doesn't, because it doesn't have access to the old corner
836         rect.)
837         * platform/ScrollableArea.cpp:
838         (WebCore::ScrollableArea::invalidateScrollCorner): Pass the rect in, because we can't
839         compute it in the case where the scrollbars are going away.
840         * platform/ScrollableArea.h: Pass in a rect to invalidateScrollCorner(), which matches
841         invalidateScrollbar().
842         * rendering/RenderLayerCompositor.cpp:
843         (WebCore::RenderLayerCompositor::destroyRootLayer): Pass the corner rect into invalidateScrollCorner().
844         * rendering/RenderScrollbarPart.cpp: Ditto.
845         (WebCore::RenderScrollbarPart::imageChanged): Ditto.
846
847 2011-09-09  Simon Fraser  <simon.fraser@apple.com>
848
849         Translucent scrollbars on composited layers render incorrectly
850         https://bugs.webkit.org/show_bug.cgi?id=58515
851
852         Reviewed by Sam Weinig.
853         
854         Scrollbars in composited elements were getting drawn twice,
855         because r41203 moved the call to paintOverflowControls() out of
856         RenderLayer::paintLayer(), but forgot to change RenderLayerBacking::paintIntoLayer().
857
858         Test: compositing/scrollbar-painting.html
859
860         * rendering/RenderLayerBacking.cpp:
861         (WebCore::RenderLayerBacking::paintIntoLayer):
862
863 2011-09-26  Nat Duca  <nduca@chromium.org>
864
865         [chromium] Make CCThreadProxy draw
866         https://bugs.webkit.org/show_bug.cgi?id=67417
867
868         Update the CCThreadProxy to correctly implement the CCProxy
869         interface, do all the right committing and updating steps, and
870         draw a picture on the screen.
871
872         Reviewed by James Robinson.
873
874         * platform/graphics/IntRect.h:
875         * platform/graphics/chromium/LayerRendererChromium.cpp:
876         (WebCore::LayerRendererChromium::~LayerRendererChromium):
877         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
878         (WebCore::CCHeadsUpDisplay::enabled):
879         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
880         (WebCore::CCLayerImpl::CCLayerImpl):
881         (WebCore::CCLayerImpl::~CCLayerImpl):
882         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
883         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
884         (WebCore::CCLayerTreeHost::commitTo):
885         (WebCore::CCLayerTreeHost::commitComplete):
886         (WebCore::CCLayerTreeHost::setNeedsRedraw):
887         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
888         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
889         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
890         (WebCore::CCLayerTreeHostImpl::~CCLayerTreeHostImpl):
891         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
892         (WebCore::CCSingleThreadProxy::finishAllRendering):
893         (WebCore::CCSingleThreadProxy::setNeedsCommit):
894         (WebCore::CCSingleThreadProxy::commitIfNeeded):
895         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
896         (WebCore::CCThreadProxy::CCThreadProxy):
897         (WebCore::CCThreadProxy::~CCThreadProxy):
898         (WebCore::CCThreadProxy::compositeAndReadback):
899         (WebCore::CCThreadProxy::drawLayersAndReadbackOnCCThread):
900         (WebCore::CCThreadProxy::finishAllRendering):
901         (WebCore::CCThreadProxy::isStarted):
902         (WebCore::CCThreadProxy::setNeedsCommit):
903         (WebCore::CCThreadProxy::setNeedsCommitAndRedraw):
904         (WebCore::CCThreadProxy::setNeedsRedraw):
905         (WebCore::CCThreadProxy::start):
906         (WebCore::CCThreadProxy::stop):
907         (WebCore::CCThreadProxy::finishAllRenderingOnCCThread):
908         (WebCore::CCThreadProxy::createBeginFrameAndCommitTaskOnCCThread):
909         (WebCore::CCThreadProxy::beginFrameAndCommit):
910         (WebCore::CCThreadProxy::commitOnCCThread):
911         (WebCore::CCThreadProxy::scheduleDrawTaskOnCCThread):
912         (WebCore::CCThreadProxy::drawLayersAndPresentOnCCThread):
913         (WebCore::CCThreadProxy::drawLayersOnCCThread):
914         (WebCore::CCThreadProxy::updateSchedulerStateOnCCThread):
915         * platform/graphics/chromium/cc/CCThreadProxy.h:
916
917 2011-09-26  Adam Klein  <adamk@chromium.org>
918
919         [MutationObservers] implement MutationRecord
920         https://bugs.webkit.org/show_bug.cgi?id=68824
921
922         Reviewed by Darin Adler.
923
924         Implements MutationRecord as specified in the thread at
925         http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html,
926         including some minor naming changes from the original proposal.
927
928         This is a small part of the MutationObserver API, see
929         https://bugs.webkit.org/show_bug.cgi?id=68729 for the metabug covering
930         this feature.
931
932         No new tests as this isn't yet exposed to the platform.
933
934         * CMakeLists.txt:
935         * DerivedSources.cpp:
936         * DerivedSources.make:
937         * GNUmakefile.list.am:
938         * WebCore.gypi:
939         * WebCore.pro:
940         * WebCore.vcproj/WebCore.vcproj:
941         * WebCore.xcodeproj/project.pbxproj:
942         * dom/MutationRecord.cpp: Added.
943         (WebCore::MutationRecord::createChildList):
944         (WebCore::MutationRecord::createAttributes):
945         (WebCore::MutationRecord::createCharacterData):
946         (WebCore::MutationRecord::MutationRecord):
947         (WebCore::MutationRecord::~MutationRecord):
948         * dom/MutationRecord.h: Added.
949         (WebCore::MutationRecord::target):
950         (WebCore::MutationRecord::addedNodes):
951         (WebCore::MutationRecord::removedNodes):
952         (WebCore::MutationRecord::previousSibling):
953         (WebCore::MutationRecord::nextSibling):
954         (WebCore::MutationRecord::attributeName):
955         (WebCore::MutationRecord::attributeNamespace):
956         (WebCore::MutationRecord::oldValue):
957         (WebCore::MutationRecord::setOldValue):
958         * dom/MutationRecord.idl: Added.
959
960 2011-09-26  Kentaro Hara  <haraken@chromium.org>
961
962         Implement a CloseEvent constructor for V8
963         https://bugs.webkit.org/show_bug.cgi?id=68793
964
965         Reviewed by Adam Barth.
966
967         Test: fast/events/constructors/close-event-constructor.html
968
969         * bindings/v8/OptionsObject.cpp:
970         (WebCore::OptionsObject::getKey): Just removed an extra space.
971         (WebCore::OptionsObject::getKeyValue): Returns an unsigned short value corresponding to the given key.
972         * bindings/v8/OptionsObject.h:
973         * bindings/v8/custom/V8EventConstructors.cpp: Added the CloseEvent constructor.
974         * websockets/CloseEvent.idl: Added a 'V8CustomConstructor' attribute.
975
976 2011-09-26  Nate Chapin  <japhet@chromium.org>
977
978         Clean up CachedResource::load(). Collapse its
979         logic into a single callsite, taking just a
980         CachedResourceLoader and a ResourceLoaderOptions.
981
982         1. Its 'incremental' parameter is redundant.
983         2. With 'incremental' removed, the SecurityCheckPolicy is the only
984            parameter difference between the CachedResource::load() variants.
985            Making it a part of ResourceLoaderOptions removes yet another random
986            enum that is passed around individually.
987         3. We currently have to call setResourceLoaderOptions() before load() on a
988            new CachedResource, so we should just take the ResourceLoaderOptions in load().
989
990         https://bugs.webkit.org/show_bug.cgi?id=67443
991
992         Reviewed by Antti Koivisto.
993
994         No new tests, refactor only.
995
996         * loader/DocumentThreadableLoader.cpp:
997         * loader/FrameLoaderTypes.h: Move SecurityCheckPolicy to ResourceLoaderOptions.h.
998         * loader/MainResourceLoader.cpp:
999         * loader/NetscapePlugInStreamLoader.cpp:
1000         * loader/ResourceLoadScheduler.cpp:
1001         * loader/ResourceLoadScheduler.h:
1002         * loader/ResourceLoader.cpp: Enforce SecurityCheckPolicy here instead of SubresourceLoader.
1003         * loader/ResourceLoaderOptions.h: Store SecurityCheckPolicy on ResourceLoaderOptions.
1004         * loader/SubresourceLoader.cpp:
1005         * loader/SubresourceLoader.h:
1006         * loader/cache/CachedFont.cpp:
1007         * loader/cache/CachedFont.h:
1008         * loader/cache/CachedImage.cpp:
1009         * loader/cache/CachedImage.h:
1010         * loader/cache/CachedResource.cpp:
1011         * loader/cache/CachedResource.h:
1012         * loader/cache/CachedResourceLoader.cpp:
1013         (WebCore::defaultCachedResourceOptions): Define the default ResourceLoaderOptions for
1014             CachedResource loads here instead of as a default parameter on requestResource().
1015         * loader/cache/CachedResourceLoader.h:
1016         * loader/cache/CachedResourceRequest.cpp:
1017         (WebCore::CachedResourceRequest::didReceiveData): Remove m_incremental, since its purpose
1018             is already enforced in the data() implementation of every CachedResource that doesn't want
1019             incremental loads.
1020         * loader/cache/CachedResourceRequest.h:
1021
1022 2011-09-26  Joshua Bell  <jsbell@chromium.org>
1023
1024         IndexedDB: Second half of IDBFactory.getDatabaseNames implementation
1025         https://bugs.webkit.org/show_bug.cgi?id=68818
1026
1027         Reviewed by Tony Chang.
1028
1029         Test: storage/indexeddb/factory-basics.html
1030
1031         Adds ability to enumerate IndexedDB databases within an origin.
1032
1033         * bindings/v8/custom/V8IDBAnyCustom.cpp:
1034         (WebCore::toV8):
1035         * storage/IDBAny.cpp:
1036         (WebCore::IDBAny::domStringList):
1037         (WebCore::IDBAny::set):
1038         * storage/IDBAny.h:
1039         * storage/IDBBackingStore.h:
1040         * storage/IDBCallbacks.h:
1041         * storage/IDBFactory.cpp:
1042         (WebCore::IDBFactory::getDatabaseNames):
1043         * storage/IDBFactory.h:
1044         * storage/IDBFactory.idl:
1045         * storage/IDBFactoryBackendImpl.cpp:
1046         (WebCore::IDBFactoryBackendImpl::getDatabaseNames):
1047         (WebCore::IDBFactoryBackendImpl::open):
1048         (WebCore::IDBFactoryBackendImpl::openBackingStore):
1049         * storage/IDBFactoryBackendImpl.h:
1050         * storage/IDBFactoryBackendInterface.h:
1051         * storage/IDBLevelDBBackingStore.cpp:
1052         (WebCore::IDBLevelDBBackingStore::getDatabaseNames):
1053         (WebCore::IDBLevelDBBackingStore::getObjectStores):
1054         (WebCore::IDBLevelDBBackingStore::getIndexes):
1055         * storage/IDBLevelDBBackingStore.h:
1056         * storage/IDBLevelDBCoding.cpp:
1057         (WebCore::IDBLevelDBCoding::DatabaseNameKey::encodeMinKeyForOrigin):
1058         (WebCore::IDBLevelDBCoding::DatabaseNameKey::encodeStopKeyForOrigin):
1059         * storage/IDBLevelDBCoding.h:
1060         * storage/IDBRequest.cpp:
1061         (WebCore::IDBRequest::onSuccess):
1062         * storage/IDBRequest.h:
1063         * storage/IDBSQLiteBackingStore.cpp:
1064         (WebCore::IDBSQLiteBackingStore::getDatabaseNames):
1065         * storage/IDBSQLiteBackingStore.h:
1066
1067 2011-09-26  Tim Horton  <timothy_horton@apple.com>
1068
1069         <animateColor> applied to filtered ellipse does not update
1070         https://bugs.webkit.org/show_bug.cgi?id=68457
1071         <rdar://problem/10154777>
1072
1073         Reviewed by Darin Adler.
1074
1075         Invalidate the filter's cache when style changes take place so that style changes are respected.
1076
1077         Test: svg/filters/animate-fill.svg
1078
1079         * rendering/svg/SVGResourcesCache.cpp:
1080         (WebCore::SVGResourcesCache::clientStyleChanged):
1081         (WebCore::SVGResourcesCache::clientUpdatedFromElement):
1082
1083 2011-09-26  Max Perepelitsyn  <pph34r@gmail.com>
1084
1085         Set but unused variables cleanup in v8 bindings (gcc 4.6)
1086         https://bugs.webkit.org/show_bug.cgi?id=68079
1087
1088         Reviewed by Adam Barth.
1089
1090         Test: http/tests/websocket/tests/hybi/send-object-tostring-check.html
1091
1092         * bindings/scripts/CodeGeneratorV8.pm:
1093         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1094         (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
1095         * bindings/scripts/test/V8/V8TestObj.cpp:
1096         (WebCore::ConfigureV8TestObjTemplate):
1097         * bindings/v8/WorkerScriptDebugServer.cpp:
1098         (WebCore::WorkerScriptDebugServer::addListener):
1099         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
1100         (WebCore::V8HTMLOptionsCollection::lengthAccessorSetter):
1101         * bindings/v8/custom/V8WebSocketCustom.cpp:
1102         (WebCore::V8WebSocket::sendCallback):
1103
1104 2011-09-26  Tony Chang  <tony@chromium.org>
1105
1106         switch the initial value of flex-order to 0
1107         https://bugs.webkit.org/show_bug.cgi?id=68820
1108
1109         The spec changed from having an initial value of 1 to 0.
1110
1111         Reviewed by Ojan Vafai.
1112
1113         * rendering/style/RenderStyle.h:
1114         (WebCore::InheritedFlags::initialFlexOrder):
1115
1116 2011-09-26  Chris Rogers  <crogers@google.com>
1117
1118         OfflineAudioDestinationNode must wait for thread completion in uninitialize()
1119         https://bugs.webkit.org/show_bug.cgi?id=68725
1120
1121         Reviewed by Kenneth Russell.
1122
1123         No new tests.  This fixes internal implementation details.
1124
1125         * webaudio/OfflineAudioDestinationNode.cpp:
1126         (WebCore::OfflineAudioDestinationNode::uninitialize):
1127
1128 2011-09-26  Xan Lopez  <xlopez@igalia.com>
1129
1130         [GTK] Do not ignore 'Replaceable' attributes in the DOM bindings
1131         https://bugs.webkit.org/show_bug.cgi?id=68837
1132
1133         Reviewed by Martin Robinson.
1134
1135         * bindings/scripts/CodeGeneratorGObject.pm: add getters (but not
1136         setters) for 'Replaceable' attributes. Punt for the future
1137         actually making them settable, since it seems non trivial.
1138
1139 2011-09-26  Ryosuke Niwa  <rniwa@webkit.org>
1140
1141         Leopard build fix.
1142
1143         * testing/Internals.cpp:
1144         (WebCore::Internals::setZoomAnimatorTransform):
1145
1146 2011-09-26  Joshua Bell  <jsbell@chromium.org>
1147
1148         IndexedDB: Null key path gets stored as empty string key path
1149         https://bugs.webkit.org/show_bug.cgi?id=68726
1150
1151         Reviewed by Tony Chang.
1152
1153         Store additional flag to indicate if object store key path
1154         is null vs. empty. Added additional runtime tests for integrity
1155         of object store metadata.
1156
1157         * storage/IDBLevelDBBackingStore.cpp:
1158         (WebCore::checkObjectStoreAndMetaDataType):
1159         (WebCore::IDBLevelDBBackingStore::getObjectStores):
1160         (WebCore::IDBLevelDBBackingStore::createObjectStore):
1161         * storage/IDBLevelDBCoding.cpp:
1162
1163 2011-09-26  John Bauman  <jbauman@chromium.org>
1164
1165         Fix nonpremultiplied webgl toDataURL to jpeg
1166         https://bugs.webkit.org/show_bug.cgi?id=68366
1167
1168         The canvas spec says that toDataURL to formats without an alpha must
1169         be "composited onto a solid black background using the source-over
1170         operator." Do that.
1171
1172         Reviewed by Kenneth Russell.
1173
1174         * platform/graphics/cg/ImageBufferCG.cpp:
1175         (WebCore::CGImageToDataURL):
1176         (WebCore::ImageBuffer::toDataURL):
1177         (WebCore::ImageDataToDataURL):
1178         * platform/image-encoders/skia/JPEGImageEncoder.cpp:
1179         (WebCore::RGBAtoRGB):
1180
1181 2011-09-26  Raphael Kubo da Costa  <kubo@profusion.mobi>
1182
1183         [CMake] Remove FindFreetype.cmake
1184         https://bugs.webkit.org/show_bug.cgi?id=68778
1185
1186         Reviewed by Adam Barth.
1187
1188         CMake has provided its own FindFreetype.cmake forever, so there is no
1189         need to have another implementation in WebKit.
1190
1191         No new tests, just a buildsystem change.
1192
1193         * CMakeListsEfl.txt: Use FREETYPE_{LIBRARIES,INCLUDE_DIRS} instead of
1194         Freetype_{LIBRARIES,INCLUDE_DIRS}.
1195
1196 2011-09-26  Alexei Svitkine  <asvitkine@chromium.org>
1197
1198         Fix full-page rubber band overhang appearing when gesturing during a slow page load.
1199         https://bugs.webkit.org/show_bug.cgi?id=68568
1200
1201         Chromium bug: http://code.google.com/p/chromium/issues/detail?id=97243
1202
1203         (This also happens on Safari.)
1204
1205         The problem was that ScrollView::overhangAmount() was returning a full-page overhang due to contentsSize() being 0 briefly during a page load, which was then getting used by ScrollAnimatorChromiumMac.mm to update the overhang on a gesture event. This change makes the relevant logic not return an overhang if the contentsSize() is empty.
1206
1207         Reviewed by Adam Barth.
1208
1209         No new tests, since this is highly timing-related.
1210
1211         * platform/ScrollView.cpp:
1212         (WebCore::ScrollView::overhangAmount):
1213         (WebCore::ScrollView::wheelEvent):
1214
1215 2011-09-26  W. James MacLean  <wjmaclean@chromium.org>
1216
1217         [chromium] Revise zoom animator backend to use full transform instead of just scale.
1218         https://bugs.webkit.org/show_bug.cgi?id=68535
1219
1220         Reviewed by Kenneth Russell.
1221
1222         * page/Settings.cpp:
1223         (WebCore::Settings::Settings):
1224         * page/Settings.h:
1225         (WebCore::Settings::setZoomAnimatorScale):
1226         (WebCore::Settings::zoomAnimatorScale):
1227         (WebCore::Settings::setZoomAnimatorPosition):
1228         (WebCore::Settings::zoomAnimatorPosX):
1229         (WebCore::Settings::zoomAnimatorPosY):
1230         * platform/graphics/chromium/LayerRendererChromium.cpp:
1231         (WebCore::LayerRendererChromium::LayerRendererChromium):
1232         (WebCore::LayerRendererChromium::drawLayersInternal):
1233         * platform/graphics/chromium/LayerRendererChromium.h:
1234         (WebCore::LayerRendererChromium::setZoomAnimatorTransform):
1235         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1236         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
1237         (WebCore::CCLayerTreeHost::commitTo):
1238         (WebCore::CCLayerTreeHost::setZoomAnimatorTransform):
1239         (WebCore::CCLayerTreeHost::updateLayers):
1240         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1241         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1242         (WebCore::CCLayerTreeHostImpl::setZoomAnimatorTransform):
1243         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1244         * testing/Internals.cpp:
1245         (WebCore::Internals::setZoomAnimatorTransform):
1246         * testing/Internals.h:
1247         * testing/Internals.idl:
1248
1249 2011-09-26  Dan Bernstein  <mitz@apple.com>
1250
1251         REGRESSION (r95926) Assert firing in svg/clip-path/clip-path-on-svg.svg
1252         https://bugs.webkit.org/show_bug.cgi?id=68819
1253
1254         Reviewed by Dave Hyatt.
1255
1256         * rendering/RenderObject.cpp:
1257         (WebCore::RenderObject::scheduleRelayout): Revert to using view() instead of the RenderView**
1258         parameter of isRooted, since only the former returns 0 when the document is detached.
1259
1260 2011-09-26  Vsevolod Vlasov  <vsevik@chromium.org>
1261
1262         Web Inspector: XMLHttpRequest console logging messages should link to network panel when possible.
1263         https://bugs.webkit.org/show_bug.cgi?id=67399
1264
1265         Reviewed by Pavel Feldman.
1266
1267         * inspector/ConsoleMessage.cpp:
1268         (WebCore::ConsoleMessage::ConsoleMessage):
1269         * inspector/ConsoleMessage.h:
1270         * inspector/InspectorConsoleAgent.cpp:
1271         (WebCore::InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest):
1272         * inspector/InspectorConsoleAgent.h:
1273         * inspector/InspectorInstrumentation.cpp:
1274         (WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl):
1275         * inspector/front-end/ConsoleMessage.js:
1276         (WebInspector.ConsoleMessage.prototype._formatMessage.else.else.linkifier):
1277         (WebInspector.ConsoleMessage.prototype._formatMessage):
1278         * inspector/front-end/ResourcesPanel.js:
1279         (WebInspector.ResourcesPanel.prototype.showAnchorLocation):
1280         * inspector/front-end/inspector.js:
1281         (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
1282         (WebInspector.linkifyStringAsFragment):
1283
1284 2011-09-26  Jer Noble  <jer.noble@apple.com>
1285
1286         White flash when entering full-screen using element.webkitRequestFullScreen()
1287         https://bugs.webkit.org/show_bug.cgi?id=68481
1288
1289         Reviewed by Simon Fraser.
1290
1291         No new tests; covered by existing full screen tests.
1292
1293         During an animation, renderers may try to paint into the FullScreenRenderer's 
1294         GraphicsLayer, and an optimization we previously added for the FullScreenRenderer's 
1295         background will cause these paints to fail. Remove this optimization in 
1296         containsPaintedContent, and taking non-composited elements into full screen will
1297         animate correctly.
1298
1299         * rendering/RenderLayerBacking.cpp:
1300         (WebCore::RenderLayerBacking::containsPaintedContent):
1301
1302 2011-09-26  Mihai Parparita  <mihaip@chromium.org>
1303
1304         Unreviewed, rolling out r95960.
1305         http://trac.webkit.org/changeset/95960
1306         https://bugs.webkit.org/show_bug.cgi?id=58608
1307
1308         Significantly changes table border rendering
1309
1310         * rendering/RenderObject.cpp:
1311         (WebCore::RenderObject::drawLineForBoxSide):
1312
1313 2011-09-23  Simon Fraser  <simon.fraser@apple.com>
1314
1315         Repaint tests don't work in WebKit2
1316         https://bugs.webkit.org/show_bug.cgi?id=68453
1317
1318         Reviewed by Sam Weinig.
1319
1320         Have FrameView keep track of repaint rects when asked to, and
1321         expose this set of repaint rects via private WebKit API for later
1322         use by DumpRenderTree.
1323         
1324         The repaint rects are in WebView coordinates, so we have to
1325         unapply the scroll offset.
1326
1327         * WebCore.exp.in:
1328         * page/FrameView.cpp:
1329         (WebCore::FrameView::FrameView):
1330         (WebCore::FrameView::reset):
1331         (WebCore::FrameView::repaintContentRectangle):
1332         (WebCore::FrameView::setTracksRepaints):
1333         * page/FrameView.h:
1334         (WebCore::FrameView::isTrackingRepaints):
1335         (WebCore::FrameView::resetTrackedRepaints):
1336         (WebCore::FrameView::trackedRepaintRects):
1337
1338 2011-09-26  Antti Koivisto  <antti@apple.com>
1339
1340         Optimize matching of common pseudo classes
1341         https://bugs.webkit.org/show_bug.cgi?id=68633
1342
1343         Reviewed by Dave Hyatt, Darin Adler, Dimitri Glazkov.
1344         
1345         :link, :visited and :focus are quite common. They often used as univeral selectors (including in our
1346         default stylesheet) so we try to match them for all elements in the document. They take always the 
1347         slow matching path. In addition we match link styles twice due to visited link pseudo style generation
1348         so the overhead is doubled. As a result substantial portion of our style matching time is spent 
1349         dealing with these pseudo classes. 
1350         
1351         This patch adds new lists to RuleSet for common pseudo class rules. The rules on the lists are only checked
1352         if the element has approprate type and stat. ases where the rightmost pseudo class can then be rejected immediately.
1353         We can also enable the fast path checking for the rest of the selector in many cases.
1354     
1355         This seems to be >30% progression in selector matching performance with typical style sheets. It saves ~0.9s
1356         when loading the full HTML5 spec.
1357
1358         * css/CSSStyleSelector.cpp:
1359         (WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
1360         (WebCore::RuleSet::idRules):
1361         (WebCore::RuleSet::classRules):
1362         (WebCore::RuleSet::tagRules):
1363         (WebCore::RuleSet::shadowPseudoElementRules):
1364         (WebCore::RuleSet::linkPseudoClassRules):
1365         (WebCore::RuleSet::visitedPseudoClassRules):
1366         (WebCore::RuleSet::focusPseudoClassRules):
1367         (WebCore::RuleSet::universalRules):
1368         (WebCore::RuleSet::pageRules):
1369         
1370             Add a new lists, some stylistic renamings.
1371     
1372         (WebCore::CSSStyleSelector::matchRules):
1373         
1374             New link and focus checks.
1375
1376         (WebCore::CSSStyleSelector::matchRulesForList):
1377         (WebCore::CSSStyleSelector::checkSelector):
1378         
1379             Inline the rightmost selector tag checking, skip if unnecessary.
1380         
1381         (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
1382         
1383             Common pseudo classes now match based on early filtering (though it is not a hash in this case).
1384
1385         (WebCore::RuleData::RuleData):
1386         (WebCore::RuleSet::~RuleSet):
1387         (WebCore::RuleSet::addRule):
1388         
1389             Sort pseudo classes to new lists.
1390         
1391         (WebCore::RuleSet::collectFeatures):
1392         (WebCore::RuleSet::shrinkToFit):
1393         (WebCore::CSSStyleSelector::matchPageRules):
1394         * css/SelectorChecker.cpp:
1395         (WebCore::SelectorChecker::checkSelector):
1396         
1397             Adopt to expanded fast path (this is used by querySelectorAll).
1398
1399         (WebCore::SelectorChecker::fastCheckRightmostSelector):
1400         (WebCore::SelectorChecker::fastCheckSelector):
1401         
1402             Rightmost selector is now checked differently than the rest. RuleSet based selection in CSSStyleSelector
1403             is equivalent to fastCheckRightmostSelector().
1404         
1405         (WebCore::isFastCheckableRelation):
1406         (WebCore::isFastCheckableMatch):
1407         (WebCore::isFastCheckableRightmostSelector):
1408         (WebCore::SelectorChecker::isFastCheckableSelector):
1409         (WebCore::SelectorChecker::checkOneSelector):
1410         (WebCore::SelectorChecker::commonPseudoClassSelectorMatches):
1411         (WebCore::SelectorChecker::isFrameFocused):
1412         * css/SelectorChecker.h:
1413         (WebCore::SelectorChecker::isCommonPseudoClassSelector):
1414         (WebCore::SelectorChecker::linkMatchesVisitedPseudoClass):
1415         (WebCore::SelectorChecker::matchesFocusPseudoClass):
1416         (WebCore::SelectorChecker::tagMatches):
1417         
1418             Refactor a bunch of shared checks into functions.
1419
1420 2011-09-12  Ryosuke Niwa  <rniwa@webkit.org>
1421
1422         REGRESSION(r74971): Selection doesn't work correctly in BiDi Text
1423         https://bugs.webkit.org/show_bug.cgi?id=57340
1424
1425         Reviewed by Eric Seidel.
1426
1427         This patch adds the end point adjustment mechanism at bidi boundaries similar to the one NSTextView implements.
1428
1429         To understand the problem, suppose we have strong RTL letters "ABC" in a LTR block (visually laid out as CBA).
1430
1431         Per NSTextView convention, logical offsets between each letter is placed as (0)C(2)B(1)A(3). In other words,
1432         placing the caret visually on the left of CBA yields the position inside the text node of "ABC" at offset 0.
1433         Likewise, placing it between C and B yields ("ABC", 2), and placing it on the right of CBA yields ("ABC", 3).
1434
1435         Now suppose a user attempts to select the letter A by a mouse drag from the right of CBA to a point between
1436         B and A. First, the initial mouse down places the selection's base at ("ABC", 3). Then as the mouse pointer
1437         moves to a point on the left of A, the selection's extent is set at ("ABC", 1), selecting "BC".
1438
1439         To mitigate this issue, NSTextView adjusts selection base and extent under certain conditions. In the above
1440         example, NSTextView detects user's intent and changes the selection's base to ("ABC", 0) temporarily.
1441
1442         This patch implements a similar trick on WebKit. We adjust the base or the extent when they're at the left
1443         end or at the right end of a bidi run and the other end is inside of the run. In the above example, the
1444         base position on the right of A is the right end of a bidi run and the extent position between B and A is
1445         inside the same run (CBA), so we would adjust the base to be ("ABC", 0) as NSTextView does.
1446
1447         Take another example abcABC. Note offsets are assigned as (0)a(1)b(2)c(3)C(5)B(4)A(6) When the user starts
1448         a mouse drag from the right of A to a point between B and A, we adjust the selection base to be ("abcABC", 3)
1449         because the base is at the right end of a bidi run and the extent is in the same run. We keep the adjustment
1450         when the mouse pointer moves to a point between C and B. However, when the mouser pointer reaches a point
1451         between letters b and c, the selection extent is placed at ("abcABC", 2). Because the extent is outside of
1452         the bidi run started from the selection base, we restore the original base at this point. Had we not done this,
1453         we'll end up selecting just "c".
1454
1455         While this algorithm is implemented in FrameSelection::setNonDirectionalSelectionIfNeeded, this patch adds
1456         various member functions to RenderedPosition to facilitate abstraction around inline boxes and bidi runs.
1457
1458         Test: editing/selection/select-bidi-run.html
1459
1460         * editing/FrameSelection.cpp:
1461         (WebCore::adjustEndpointsAtBidiBoundary): Added. Implements the endpoints adjustment algorithm.
1462         (WebCore::FrameSelection::setNonDirectionalSelectionIfNeeded): Calls adjustEndpointsAtBidiBoundary, and
1463         restores the original base as needed.
1464         * editing/FrameSelection.h:
1465         * editing/RenderedPosition.cpp:
1466         (WebCore::RenderedPosition::RenderedPosition):
1467         (WebCore::RenderedPosition::prevLeafChild): Added to cache prevLeafChild of the current inline box.
1468         (WebCore::RenderedPosition::nextLeafChild): Ditto for nextLeafChild.
1469         (WebCore::RenderedPosition::isEquivalent): Compares two RenderedPositions considering neighboring inline boxes
1470         so that the rightmost position in a box and the leftmost position in the following box is considered equal.
1471         (WebCore::RenderedPosition::bidiLevelOnLeft): Added. Returns the bidi level of the run on the left. We can't
1472         add a generic bidiLevel to this class because it'll be ambiguous at bidi boundaries.
1473         (WebCore::RenderedPosition::bidiLevelOnRight): Ditto for the run on the right.
1474         (WebCore::RenderedPosition::leftBoundaryOfBidiRun): Added.
1475         (WebCore::RenderedPosition::rightBoundaryOfBidiRun): Added.
1476         (WebCore::RenderedPosition::atLeftBoundaryOfBidiRun): Added.
1477         (WebCore::RenderedPosition::atRightBoundaryOfBidiRun): Added.
1478         (WebCore::RenderedPosition::positionAtLeftBoundaryOfBiDiRun): Returns Position at the left edge of a bidi run
1479         if RenderedPosition is at such a position. Asserts atLeftBoundaryOfBidiRun.
1480         (WebCore::RenderedPosition::positionAtRightBoundaryOfBiDiRun): Ditto for the right edge.
1481         * editing/RenderedPosition.h:
1482         (WebCore::RenderedPosition::atLeftBoundaryOfBidiRun): Added.
1483         (WebCore::RenderedPosition::atRightBoundaryOfBidiRun): Added.
1484         (WebCore::RenderedPosition::atLeftmostOffsetInBox): Added.
1485         (WebCore::RenderedPosition::atRightmostOffsetInBox): Added.
1486         (WebCore::RenderedPosition::uncachedInlineBox): Added. We can't use a static const variable because gcc thinks
1487         reinterpret_cast<InlineBox*>(1) is not an integral value.
1488         (WebCore::RenderedPosition::RenderedPosition):
1489         * editing/VisibleSelection.h:
1490         (WebCore::VisibleSelection::visibleBase): Added.
1491         (WebCore::VisibleSelection::visibleExtent): Added.
1492         * page/EventHandler.cpp:
1493         (WebCore::EventHandler::updateSelectionForMouseDrag):
1494
1495 2011-09-26  Sheriff Bot  <webkit.review.bot@gmail.com>
1496
1497         Unreviewed, rolling out r95256.
1498         http://trac.webkit.org/changeset/95256
1499         https://bugs.webkit.org/show_bug.cgi?id=68814
1500
1501         Temporary CRASH calls no longer needed (Requested by enne on
1502         #webkit).
1503
1504         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1505         (WebCore::CCLayerTreeHost::commitTo):
1506
1507 2011-09-26  Mark Rowe  <mrowe@apple.com>
1508
1509         <http://webkit.org/b/68809> IconDatabase::syncThreadMainLoop can assert if wakeSyncThread is called before thread starts executing
1510
1511         If wakeSyncThread is called before syncThreadMainLoop starts executing then m_syncThreadHasWorkToDo would be set
1512         while executing the body of the sync thread loop, causing us to skip blocking on the condition variable. This would
1513         lead to us hitting the assertion failure due to m_disabledSuddenTerminationForSyncThread being false, unless the main
1514         thread happened to call wakeSyncThread a second time while the first loop iteration was executing.
1515
1516         Reviewed by Anders Carlsson.
1517
1518         * loader/icon/IconDatabase.cpp:
1519         (WebCore::IconDatabase::syncThreadMainLoop): Clear m_syncThreadHasWorkToDo to indicate that we're about to perform
1520         all pending work.
1521
1522 2011-09-26  Antaryami Pandia  <antaryami.pandia@motorola.com>
1523
1524         Groove/inset/outset borders show solid if the color is black.
1525         https://bugs.webkit.org/show_bug.cgi?id=58608
1526
1527         Reviewed by Simon Fraser.
1528
1529         Lightened the border side colors when drawing borders with styles as
1530         Outset/Inset/Groove/Ridge.
1531
1532         Tests: fast/borders/border-groove.html
1533                fast/borders/border-inset.html
1534                fast/borders/border-outset.html
1535                fast/borders/border-ridge.html
1536
1537         * rendering/RenderObject.cpp:
1538         (WebCore::RenderObject::drawLineForBoxSide):
1539
1540 2011-09-26  Abhishek Arya  <inferno@chromium.org>
1541
1542         Delete retired custom font data only on document
1543         destruction, and not on recalc style.
1544         https://bugs.webkit.org/show_bug.cgi?id=68805
1545
1546         Reviewed by Dave Hyatt.
1547
1548         Test: fast/text/custom-font-data-crash.html
1549
1550         * dom/Document.cpp:
1551         (WebCore::Document::recalcStyle):
1552
1553 2011-09-23  Adrienne Walker  <enne@google.com>
1554
1555         [chromium] Update VideoLayerChromium textures after texture resources are reclaimed
1556         https://bugs.webkit.org/show_bug.cgi?id=68742
1557
1558         Reviewed by James Robinson.
1559
1560         If video textures are reclaimed (such as during a visibility change on
1561         a tab), the dirty rect for the layer is empty and it skips out of
1562         updating compositor resources, leaving the video textures invalid.
1563         Instead, check the textures here to make sure they're still valid
1564         first before early out so that they can get reupdated if necessary.
1565
1566         Additionally, fix a small bug in pushPropertiesTo where 1 plane RGB
1567         videos would not get drawn because all 3 planes didn't have valid
1568         textures.
1569
1570         Test: compositing/video-page-visibility.html
1571
1572         * platform/graphics/chromium/VideoLayerChromium.cpp:
1573         (WebCore::VideoLayerChromium::VideoLayerChromium):
1574         (WebCore::VideoLayerChromium::cleanupResources):
1575         (WebCore::VideoLayerChromium::updateCompositorResources):
1576         (WebCore::VideoLayerChromium::pushPropertiesTo):
1577         (WebCore::VideoLayerChromium::setLayerTreeHost):
1578         (WebCore::VideoLayerChromium::texturesValid):
1579         * platform/graphics/chromium/VideoLayerChromium.h:
1580
1581 2011-09-26  Pavel Feldman  <pfeldman@google.com>
1582
1583         Web Inspector: introduce protocol backwards compatibility validator.
1584         https://bugs.webkit.org/show_bug.cgi?id=68800
1585
1586         Reviewed by Yury Semikhatsky.
1587
1588         * inspector/Inspector.json:
1589         * inspector/Inspector.draft-01.json: Copied from Source/WebCore/inspector/Inspector.json.
1590         * inspector/validate-protocol-compatibility: Added.
1591
1592 2011-09-26  Andreas Kling  <kling@webkit.org>
1593
1594         [Qt] Unused variable in QNetworkReplyHandler::sendNetworkRequest.
1595         https://bugs.webkit.org/show_bug.cgi?id=68798
1596
1597         Reviewed by Noam Rosenthal.
1598
1599         * platform/network/qt/QNetworkReplyHandler.cpp:
1600         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
1601
1602 2011-09-26  Ilya Tikhonovsky  <loislo@chromium.org>
1603
1604         Second unreviewed build fix for r95941
1605
1606         * inspector/InspectorInstrumentation.cpp:
1607         (WebCore::InspectorInstrumentation::willCallFunctionImpl):
1608
1609 2011-09-26  Ilya Tikhonovsky  <loislo@chromium.org>
1610
1611         Unreviewed build fix for webkit builds after r95941.
1612
1613         * inspector/InspectorInstrumentation.cpp:
1614         (WebCore::InspectorInstrumentation::willCallFunctionImpl):
1615
1616 2011-09-26  Andrey Kosyakov  <caseq@chromium.org>
1617
1618         Web Inspector: [Extensions API] allow resources to hook on click on resource links
1619         https://bugs.webkit.org/show_bug.cgi?id=68528
1620
1621         Reviewed by Yury Semikhatsky.
1622
1623         * WebCore.gypi:
1624         * WebCore.vcproj/WebCore.vcproj:
1625         * inspector/front-end/ExtensionAPI.js:
1626         (injectedExtensionAPI.Console.prototype.get Severity):
1627         (injectedExtensionAPI.Panels.prototype.create):
1628         (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler.else.callbackWrapper):
1629         (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler):
1630         (injectedExtensionAPI.ExtensionServerClient.prototype.hasHandler):
1631         (injectedExtensionAPI.ExtensionServerClient.prototype.deregisterHandler):
1632         * inspector/front-end/ExtensionServer.js:
1633         (WebInspector.ExtensionServer):
1634         (WebInspector.ExtensionServer.prototype._onSetOpenResourceHandler):
1635         (WebInspector.ExtensionServer.prototype._handleAnchorClicked):
1636         (WebInspector.ExtensionServer.prototype._addExtensions):
1637         (WebInspector.ExtensionServer.prototype._addExtension):
1638         (WebInspector.ExtensionServer.prototype._registerExtension):
1639         * inspector/front-end/SettingsScreen.js:
1640         (WebInspector.SettingsScreen):
1641         (WebInspector.SettingsScreen.prototype._createCustomSetting):
1642         * inspector/front-end/WebKit.qrc:
1643         * inspector/front-end/helpScreen.css:
1644         (.help-content select):
1645         (.help-content select:disabled):
1646         (.help-content option):
1647         * inspector/front-end/inspector.html:
1648         * inspector/front-end/inspector.js:
1649         (WebInspector.set attached):
1650         (WebInspector._showAnchorLocation):
1651
1652 2011-09-23  Ilya Tikhonovsky  <loislo@chromium.org>
1653
1654         Web Inspector: Timeline: record root event for the function calls enforced by console eval.
1655         https://bugs.webkit.org/show_bug.cgi?id=68695
1656
1657         In a complex web application developer might want to timeline a specific piece of code.
1658
1659         In this case he can do the next steps:
1660         1) start timeline;
1661         2) eval a command in console;
1662         3) stop timeline.
1663
1664         I think it'd be nice to have a root event for the all the events that happened as the result of such eval.
1665
1666         Reviewed by Yury Semikhatsky.
1667
1668         Test: inspector/timeline/timeline-injected-script-eval.html
1669
1670         * bindings/v8/ScriptFunctionCall.cpp:
1671         * inspector/InjectedScript.cpp:
1672         (WebCore::InjectedScript::makeCall):
1673         * inspector/InspectorInstrumentation.cpp:
1674         (WebCore::InspectorInstrumentation::willCallFunctionImpl):
1675
1676 2011-09-26  No'am Rosenthal  <noam.rosenthal@nokia.com>
1677
1678         [Texmap][Qt] Enable TextureMapperGL in platforms where BGRA is not present
1679         https://bugs.webkit.org/show_bug.cgi?id=65473
1680
1681         Reviewed by Andreas Kling.
1682
1683         For now, swap RGBA->BGRA in software if we're in OpenGL ES 2.
1684         We do that by iterating on the pixels and manually swapping each pixel's red and blue
1685         values. This can be done faster with shaders, but for now this is a working solution
1686         for platforms without BGRA support.
1687
1688         No new tests. Existing layout tests cover this.
1689
1690         * platform/graphics/opengl/TextureMapperGL.cpp:
1691         (WebCore::BitmapTextureGL::endPaint):
1692         * platform/graphics/opengl/TextureMapperGL.h:
1693         * platform/graphics/qt/TextureMapperQt.cpp:
1694         (WebCore::RGBA32PremultimpliedBufferQt::swapRGB):
1695
1696 2011-09-26  Sergio Villar Senin  <svillar@igalia.com>
1697
1698         [GTK] Fix coding style bits in ResourceHandleSoup.cpp
1699         https://bugs.webkit.org/show_bug.cgi?id=68634
1700
1701         Reviewed by Martin Robinson.
1702
1703         No new tests needed.
1704
1705         * platform/network/soup/ResourceHandleSoup.cpp:
1706         (WebCore::ResourceHandle::defaultSession):
1707
1708 2011-09-26  James Robinson  <jamesr@chromium.org>
1709
1710         [mac] Timestamp parameter to requestAnimationFrame is busted in USE(REQUEST_ANIMATION_FRAME_TIMER) path
1711         https://bugs.webkit.org/show_bug.cgi?id=68769
1712
1713         Reviewed by Simon Fraser.
1714
1715         Convert the time parameter from double to DOMTimeStamp using convertSecondsToDOMTimeStamp rather than relying on
1716         implicit double->long conversion, which ignores the units of the value.
1717
1718         Test: fast/animation/request-animation-frame-timestamps-advance.html
1719
1720         * dom/ScriptedAnimationController.cpp:
1721         (WebCore::ScriptedAnimationController::animationTimerFired):
1722
1723 2011-09-25  Mark Hahnenberg  <mhahnenberg@apple.com>
1724
1725         Add custom vtable struct to ClassInfo struct
1726         https://bugs.webkit.org/show_bug.cgi?id=68567
1727
1728         Reviewed by Oliver Hunt.
1729
1730         No new tests.
1731
1732         Added CREATE_METHOD_TABLE macro to generate the custom vtable for the 
1733         specified class in its ClassInfo.  Also added to it the first function to use 
1734         this macro, visitChildren.  This is part of the process of getting rid of all 
1735         C++ virtual methods in JSCell.  Eventually all virtual functions in JSCell 
1736         that can't easily be converted to non-virtual functions will be put into 
1737         this custom vtable structure.
1738
1739         * bindings/js/JSAudioConstructor.cpp:
1740         * bindings/js/JSDOMGlobalObject.cpp:
1741         * bindings/js/JSDOMWindowBase.cpp:
1742         * bindings/js/JSDOMWindowShell.cpp:
1743         * bindings/js/JSImageConstructor.cpp:
1744         * bindings/js/JSImageDataCustom.cpp:
1745         (WebCore::toJS):
1746         * bindings/js/JSOptionConstructor.cpp:
1747         * bindings/js/JSWorkerContextBase.cpp:
1748
1749         Changed the bindings generator to add the call to the CREATE_METHOD_TABLE macro where
1750         necessary.
1751         * bindings/scripts/CodeGeneratorJS.pm:
1752         (GenerateImplementation):
1753         (GenerateConstructorDefinition):
1754         * bindings/scripts/test/JS/JSTestInterface.cpp:
1755         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
1756         * bindings/scripts/test/JS/JSTestObj.cpp:
1757         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1758         * bridge/c/CRuntimeObject.cpp:
1759         * bridge/c/c_instance.cpp:
1760         * bridge/jni/jsc/JavaInstanceJSC.cpp:
1761         * bridge/jni/jsc/JavaRuntimeObject.cpp:
1762         * bridge/objc/ObjCRuntimeObject.mm:
1763         * bridge/objc/objc_instance.mm:
1764         * bridge/objc/objc_runtime.mm:
1765         * bridge/qt/qt_instance.cpp:
1766         * bridge/qt/qt_pixmapruntime.cpp:
1767         * bridge/qt/qt_runtime.cpp:
1768         * bridge/runtime_array.cpp:
1769         * bridge/runtime_method.cpp:
1770         * bridge/runtime_object.cpp:
1771
1772 2011-09-25  Eunmi Lee  <eunmi15.lee@samsung.com>
1773
1774         [EFL] Move GtkWidgetBackingStoreCairo to the cairo directory and modify to use in the EFL.
1775         https://bugs.webkit.org/show_bug.cgi?id=63502
1776
1777         Reviewed by Martin Robinson.
1778
1779         The gtk/GtkWidgetBackingStoreCairo.cpp is moved to the cairo/WidgetBackingStoreCairo.cpp and
1780         some codes for EFL are added.
1781         WidgetBackingStoreCairo creates cairo_image_surface and has a role to copy reusable area
1782         when scrolling. So, it will be used in the WebKit2 EFL port's BackingStore.
1783
1784         * CMakeListsEfl.txt:
1785         * GNUmakefile.list.am:
1786         * platform/cairo/WidgetBackingStore.h:
1787         * platform/cairo/WidgetBackingStoreCairo.cpp: Renamed from Source/WebCore/platform/gtk/GtkWidgetBackingStoreCairo.cpp.
1788         (WebCore::createSurfaceForBackingStore):
1789         (WebCore::WidgetBackingStorePrivate::create):
1790         (WebCore::WidgetBackingStorePrivate::WidgetBackingStorePrivate):
1791         (WebCore::WidgetBackingStore::create):
1792         (WebCore::WidgetBackingStore::WidgetBackingStore):
1793         (WebCore::WidgetBackingStore::~WidgetBackingStore):
1794         (WebCore::WidgetBackingStore::cairoSurface):
1795         (WebCore::WidgetBackingStore::scroll):
1796         * platform/gtk/GtkWidgetBackingStoreX11.cpp:
1797
1798 2011-09-25  Adam Barth  <abarth@webkit.org>
1799
1800         Finish removing PLATFORM(BREWMP) by removing associated code
1801         https://bugs.webkit.org/show_bug.cgi?id=68779
1802
1803         Reviewed by Sam Weinig.
1804
1805         When Geoffrey Garen removed PLATFORM(BREWMP) in
1806         http://trac.webkit.org/changeset/95555, he did not remove all the
1807         associated code.  This completes the work started in r95555 by removing
1808         all the code assoicated with PLATFORM(BREWMP).
1809
1810         * WebCore.gyp/WebCore.gyp:
1811         * WebCore.gypi:
1812         * bindings/js/ScriptControllerBrew.cpp: Removed.
1813         * editing/brew: Removed.
1814         * editing/brew/EditorBrew.cpp: Removed.
1815         * gyp/WebCore.gyp:
1816         * page/brew: Removed.
1817         * page/brew/ChromeClientBrew.h: Removed.
1818         * page/brew/DragControllerBrew.cpp: Removed.
1819         * page/brew/EventHandlerBrew.cpp: Removed.
1820         * page/brew/FrameBrew.cpp: Removed.
1821         * platform/brew: Removed.
1822         * platform/brew/ClipboardBrew.cpp: Removed.
1823         * platform/brew/ClipboardBrew.h: Removed.
1824         * platform/brew/ContextMenuBrew.cpp: Removed.
1825         * platform/brew/ContextMenuItemBrew.cpp: Removed.
1826         * platform/brew/CursorBrew.cpp: Removed.
1827         * platform/brew/DragDataBrew.cpp: Removed.
1828         * platform/brew/EventLoopBrew.cpp: Removed.
1829         * platform/brew/FileSystemBrew.cpp: Removed.
1830         * platform/brew/KURLBrew.cpp: Removed.
1831         * platform/brew/LanguageBrew.cpp: Removed.
1832         * platform/brew/LocalizedStringsBrew.cpp: Removed.
1833         * platform/brew/LoggingBrew.cpp: Removed.
1834         * platform/brew/MIMETypeRegistryBrew.cpp: Removed.
1835         * platform/brew/PasteboardBrew.cpp: Removed.
1836         * platform/brew/PlatformKeyboardEventBrew.cpp: Removed.
1837         * platform/brew/PlatformMouseEventBrew.cpp: Removed.
1838         * platform/brew/PlatformTouchEventBrew.cpp: Removed.
1839         * platform/brew/PlatformTouchPointBrew.cpp: Removed.
1840         * platform/brew/PopupMenuBrew.cpp: Removed.
1841         * platform/brew/PopupMenuBrew.h: Removed.
1842         * platform/brew/SSLKeyGeneratorBrew.cpp: Removed.
1843         * platform/brew/ScreenBrew.cpp: Removed.
1844         * platform/brew/ScrollbarThemeBrew.cpp: Removed.
1845         * platform/brew/ScrollbarThemeBrew.h: Removed.
1846         * platform/brew/SearchPopupMenuBrew.cpp: Removed.
1847         * platform/brew/SearchPopupMenuBrew.h: Removed.
1848         * platform/brew/SharedBufferBrew.cpp: Removed.
1849         * platform/brew/SharedTimerBrew.cpp: Removed.
1850         * platform/brew/SoundBrew.cpp: Removed.
1851         * platform/brew/SystemTimeBrew.cpp: Removed.
1852         * platform/brew/TemporaryLinkStubs.cpp: Removed.
1853         * platform/brew/WidgetBrew.cpp: Removed.
1854         * platform/graphics/brew: Removed.
1855         * platform/graphics/brew/IconBrew.cpp: Removed.
1856         * platform/graphics/brew/ImageBrew.cpp: Removed.
1857         * platform/graphics/brew/IntPointBrew.cpp: Removed.
1858         * platform/graphics/brew/IntSizeBrew.cpp: Removed.
1859         * platform/network/brew: Removed.
1860         * platform/network/brew/DNSBrew.cpp: Removed.
1861         * platform/network/brew/SocketStreamError.h: Removed.
1862         * platform/network/brew/SocketStreamHandle.h: Removed.
1863         * platform/network/brew/SocketStreamHandleBrew.cpp: Removed.
1864         * platform/network/brew/SocketStreamHandlePrivate.h: Removed.
1865         * platform/text/brew: Removed.
1866         * platform/text/brew/TextBoundariesBrew.cpp: Removed.
1867         * platform/text/brew/TextBreakIteratorBrew.cpp: Removed.
1868         * platform/text/brew/TextCodecBrew.cpp: Removed.
1869         * platform/text/brew/TextCodecBrew.h: Removed.
1870
1871 2011-09-25  Kentaro Hara  <haraken@chromium.org>
1872
1873         Implement a CloseEvent constructor for JSC
1874         https://bugs.webkit.org/show_bug.cgi?id=68340
1875
1876         Reviewed by Oliver Hunt.
1877
1878         The spec of the CloseEvent constructor is here:
1879         http://dev.w3.org/html5/websockets/#closeevent
1880
1881         Test: fast/events/constructors/close-event-constructor.html
1882
1883         * bindings/generic/EventConstructors.h: Added a definition for the CloseEvent constructor.
1884         * bindings/js/JSEventConstructors.cpp: Added #includes for CloseEvent.
1885         * websockets/CloseEvent.h: Added a definition for CloseEventInit.
1886         (WebCore::CloseEventInit::CloseEventInit):
1887         (WebCore::CloseEvent::create):
1888         (WebCore::CloseEvent::CloseEvent):
1889         * websockets/CloseEvent.idl: Makes CloseEvent constructible.
1890
1891 2011-09-25  Mark Rowe  <mrowe@apple.com>
1892
1893         <rdar://problem/10177824> IconDatabase’s use of ThreadCondition leads to assertion failures in the face of spurious wakeups
1894
1895         It's possible for ThreadCondition::wait to return spuriously without the condition having been signaled.
1896         When that happens we should immediately return to waiting rather than doing our normal work, as some of that
1897         work relies on wakeSyncThread having been called to signal the condition.
1898
1899         Reviewed by Sam Weinig.
1900
1901         * loader/icon/IconDatabase.cpp:
1902         (WebCore::IconDatabase::IconDatabase):
1903         (WebCore::IconDatabase::wakeSyncThread): Note that we have work for the sync thread to do.
1904         (WebCore::IconDatabase::syncThreadMainLoop): If we were woken with no work to do, immediately
1905         go back to waiting on the condition variable. Otherwise, reset m_syncThreadHasWorkToDo and then
1906         do that work. We also switch to moving m_disabledSuddenTerminationForSyncThread immediately in to
1907         our local shouldReenableSuddenTermination variable since it can be updated by other threads while
1908         we don't hold the lock. This makes it inappropriate to make assumptions about its value after dropping
1909         and reacquiring the lock.
1910         * loader/icon/IconDatabase.h:
1911
1912 2011-09-25  Dan Bernstein  <mitz@apple.com>
1913
1914         <rdar://problem/10156263> ASSERT in WebCore::FrameView::scheduleRelayoutOfSubtree
1915
1916         Reviewed by Sam Weinig.
1917
1918         Test: fast/dynamic/subtree-unrooted.html
1919
1920         * rendering/RenderObject.cpp:
1921         (WebCore::RenderObject::scheduleRelayout): Replaced the check that the renderer is parented,
1922         which was added in r21162, with a check that it is “rooted”.
1923
1924 2011-09-24  Abhishek Arya  <inferno@chromium.org>
1925
1926         Issues with merging block children of a ruby
1927         base with another ruby base having inline children. 
1928         https://bugs.webkit.org/show_bug.cgi?id=66124
1929
1930         Reviewed by Dan Bernstein.
1931
1932         Test: fast/ruby/ruby-base-merge-block-children-crash.html
1933
1934         * rendering/RenderRubyBase.cpp:
1935         (WebCore::RenderRubyBase::moveInlineChildren): add a firstChild()
1936         check to prevent empty anonymous block addition, just like
1937         moveBlockChildren method.
1938         * rendering/RenderRubyBase.cpp:
1939         (WebCore::RenderRubyBase::moveBlockChildren): This was incorrectly
1940         doing optimizations to see if current ruby base has only inline
1941         children before beforeChild and then trying to take out them from 
1942         their parent anonymous blocks. The problem is those inlines could
1943         be split and have continuations because of encountering a block
1944         inside inline flow. In those cases, we cannot take the inline out.
1945         So, we should just make children non-inline in the destination
1946         block and transfer the children as it-is.
1947         * rendering/RenderRubyBase.h: remove unncessary functions.
1948
1949 2011-09-25  Adam Barth  <abarth@webkit.org>
1950
1951         Remove PLATFORM(HAIKU) and associated code
1952         https://bugs.webkit.org/show_bug.cgi?id=68774
1953
1954         Reviewed by Sam Weinig.
1955
1956         As discussed on webkit-dev, the Haiku port has been inactive for over a
1957         year.  A year and a half ago, we discussed removing the port, but folks
1958         said they planned to work on it more.  That work does not appear to
1959         have happened in the intervening time.
1960
1961         * WebCore.gyp/WebCore.gyp:
1962         * WebCore.gypi:
1963         * bindings/js/ScriptControllerHaiku.cpp: Removed.
1964         * editing/haiku: Removed.
1965         * editing/haiku/EditorHaiku.cpp: Removed.
1966         * gyp/WebCore.gyp:
1967         * loader/cache/CachedFont.cpp:
1968         * page/EventHandler.cpp:
1969         (WebCore::EventHandler::eventInvertsTabsToLinksClientCallResult):
1970         * page/haiku: Removed.
1971         * page/haiku/DragControllerHaiku.cpp: Removed.
1972         * page/haiku/EventHandlerHaiku.cpp: Removed.
1973         * page/haiku/FrameHaiku.cpp: Removed.
1974         * platform/ContextMenuItem.h:
1975         * platform/Cursor.h:
1976         * platform/DragData.h:
1977         * platform/DragImage.h:
1978         * platform/PlatformKeyboardEvent.h:
1979         * platform/PlatformMenuDescription.h:
1980         * platform/PlatformMouseEvent.h:
1981         * platform/Widget.h:
1982         * platform/graphics/BitmapImage.h:
1983         * platform/graphics/Color.h:
1984         * platform/graphics/FloatPoint.h:
1985         * platform/graphics/FloatRect.h:
1986         * platform/graphics/Gradient.h:
1987         * platform/graphics/GraphicsContext.cpp:
1988         * platform/graphics/GraphicsContext.h:
1989         * platform/graphics/ImageBufferData.h:
1990         * platform/graphics/ImageSource.h:
1991         * platform/graphics/IntPoint.h:
1992         * platform/graphics/IntRect.h:
1993         * platform/graphics/IntSize.h:
1994         * platform/graphics/Path.h:
1995         * platform/graphics/Pattern.h:
1996         * platform/graphics/SimpleFontData.h:
1997         * platform/graphics/haiku: Removed.
1998         * platform/graphics/haiku/ColorHaiku.cpp: Removed.
1999         * platform/graphics/haiku/FloatPointHaiku.cpp: Removed.
2000         * platform/graphics/haiku/FloatRectHaiku.cpp: Removed.
2001         * platform/graphics/haiku/FontCacheHaiku.cpp: Removed.
2002         * platform/graphics/haiku/FontCustomPlatformData.cpp: Removed.
2003         * platform/graphics/haiku/FontCustomPlatformData.h: Removed.
2004         * platform/graphics/haiku/FontHaiku.cpp: Removed.
2005         * platform/graphics/haiku/FontPlatformData.h: Removed.
2006         * platform/graphics/haiku/GlyphPageTreeNodeHaiku.cpp: Removed.
2007         * platform/graphics/haiku/GradientHaiku.cpp: Removed.
2008         * platform/graphics/haiku/GraphicsContextHaiku.cpp: Removed.
2009         * platform/graphics/haiku/IconHaiku.cpp: Removed.
2010         * platform/graphics/haiku/ImageBufferDataHaiku.h: Removed.
2011         * platform/graphics/haiku/ImageBufferHaiku.cpp: Removed.
2012         * platform/graphics/haiku/ImageHaiku.cpp: Removed.
2013         * platform/graphics/haiku/IntPointHaiku.cpp: Removed.
2014         * platform/graphics/haiku/IntRectHaiku.cpp: Removed.
2015         * platform/graphics/haiku/IntSizeHaiku.cpp: Removed.
2016         * platform/graphics/haiku/PathHaiku.cpp: Removed.
2017         * platform/graphics/haiku/SimpleFontDataHaiku.cpp: Removed.
2018         * platform/graphics/haiku/StillImageHaiku.cpp: Removed.
2019         * platform/graphics/haiku/StillImageHaiku.h: Removed.
2020         * platform/haiku: Removed.
2021         * platform/haiku/ClipboardHaiku.cpp: Removed.
2022         * platform/haiku/ClipboardHaiku.h: Removed.
2023         * platform/haiku/ContextMenuHaiku.cpp: Removed.
2024         * platform/haiku/ContextMenuItemHaiku.cpp: Removed.
2025         * platform/haiku/CookieJarHaiku.cpp: Removed.
2026         * platform/haiku/CursorHaiku.cpp: Removed.
2027         * platform/haiku/DragDataHaiku.cpp: Removed.
2028         * platform/haiku/DragImageHaiku.cpp: Removed.
2029         * platform/haiku/EventLoopHaiku.cpp: Removed.
2030         * platform/haiku/FileSystemHaiku.cpp: Removed.
2031         * platform/haiku/LocalizedStringsHaiku.cpp: Removed.
2032         * platform/haiku/LoggingHaiku.cpp: Removed.
2033         * platform/haiku/MIMETypeRegistryHaiku.cpp: Removed.
2034         * platform/haiku/PasteboardHaiku.cpp: Removed.
2035         * platform/haiku/PlatformKeyboardEventHaiku.cpp: Removed.
2036         * platform/haiku/PlatformMouseEventHaiku.cpp: Removed.
2037         * platform/haiku/PlatformWheelEventHaiku.cpp: Removed.
2038         * platform/haiku/PopupMenuHaiku.cpp: Removed.
2039         * platform/haiku/PopupMenuHaiku.h: Removed.
2040         * platform/haiku/RenderThemeHaiku.cpp: Removed.
2041         * platform/haiku/RenderThemeHaiku.h: Removed.
2042         * platform/haiku/ScreenHaiku.cpp: Removed.
2043         * platform/haiku/ScrollbarThemeHaiku.cpp: Removed.
2044         * platform/haiku/ScrollbarThemeHaiku.h: Removed.
2045         * platform/haiku/SearchPopupMenuHaiku.cpp: Removed.
2046         * platform/haiku/SearchPopupMenuHaiku.h: Removed.
2047         * platform/haiku/SharedBufferHaiku.cpp: Removed.
2048         * platform/haiku/SharedTimerHaiku.cpp: Removed.
2049         * platform/haiku/SoundHaiku.cpp: Removed.
2050         * platform/haiku/TemporaryLinkStubs.cpp: Removed.
2051         * platform/haiku/WidgetHaiku.cpp: Removed.
2052         * platform/image-decoders/haiku: Removed.
2053         * platform/image-decoders/haiku/ImageDecoderHaiku.cpp: Removed.
2054         * platform/text/UnicodeRange.h:
2055         * platform/text/haiku: Removed.
2056         * platform/text/haiku/TextBreakIteratorInternalICUHaiku.cpp: Removed.
2057
2058 2011-09-25  Adam Barth  <abarth@webkit.org>
2059
2060         Attempted build fixes for GTK and Qt.
2061
2062         * GNUmakefile.list.am:
2063         * WebCore.pro:
2064
2065 2011-09-24  Adam Barth  <abarth@webkit.org>
2066
2067         Always enable ENABLE(OFFLINE_WEB_APPLICATIONS)
2068         https://bugs.webkit.org/show_bug.cgi?id=68767
2069
2070         Reviewed by Eric Seidel.
2071
2072         As discussed on webkit-dev, almost everyone has this enable turned on
2073         and this feature is unlikely to be removed from the web platform given
2074         its popularity.
2075
2076         * CMakeLists.txt:
2077         * Configurations/FeatureDefines.xcconfig:
2078         * GNUmakefile.am:
2079         * GNUmakefile.list.am:
2080         * WebCore.exp.in:
2081         * WebCore.pro:
2082         * bindings/cpp/WebDOMEventTarget.cpp:
2083         (toWebKit):
2084         * bindings/js/JSEventTarget.cpp:
2085         (WebCore::toJS):
2086         (WebCore::toEventTarget):
2087         * bindings/v8/V8DOMWrapper.cpp:
2088         (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
2089         * dom/EventTarget.cpp:
2090         (WebCore::EventTarget::toDOMApplicationCache):
2091         * dom/EventTarget.h:
2092         * features.pri:
2093         * history/PageCache.cpp:
2094         (WebCore::logCanCacheFrameDecision):
2095         (WebCore::PageCache::canCachePageContainingThisFrame):
2096         * html/HTMLHtmlElement.cpp:
2097         (WebCore::HTMLHtmlElement::insertedByParser):
2098         * html/HTMLHtmlElement.h:
2099         * html/HTMLMediaElement.cpp:
2100         (WebCore::createFileURLForApplicationCacheResource):
2101         (WebCore::HTMLMediaElement::loadResource):
2102         * html/ImageDocument.cpp:
2103         (WebCore::ImageDocument::createDocumentStructure):
2104         * html/MediaDocument.cpp:
2105         (WebCore::MediaDocumentParser::createDocumentStructure):
2106         * html/PluginDocument.cpp:
2107         (WebCore::PluginDocumentParser::createDocumentStructure):
2108         * html/parser/HTMLConstructionSite.cpp:
2109         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
2110         * inspector/InspectorApplicationCacheAgent.cpp:
2111         * inspector/InspectorApplicationCacheAgent.h:
2112         * inspector/InspectorController.cpp:
2113         (WebCore::InspectorController::InspectorController):
2114         (WebCore::InspectorController::connectFrontend):
2115         (WebCore::InspectorController::disconnectFrontend):
2116         * inspector/InspectorController.h:
2117         * inspector/InspectorInstrumentation.cpp:
2118         (WebCore::InspectorInstrumentation::updateApplicationCacheStatusImpl):
2119         * inspector/InspectorInstrumentation.h:
2120         (WebCore::InspectorInstrumentation::networkStateChanged):
2121         (WebCore::InspectorInstrumentation::updateApplicationCacheStatus):
2122         * inspector/InstrumentingAgents.h:
2123         (WebCore::InstrumentingAgents::InstrumentingAgents):
2124         (WebCore::InstrumentingAgents::setInspectorApplicationCacheAgent):
2125         * inspector/WorkerInspectorController.cpp:
2126         (WebCore::WorkerInspectorController::connectFrontend):
2127         * inspector/generate-inspector-idl:
2128         * loader/DocumentLoader.cpp:
2129         (WebCore::DocumentLoader::DocumentLoader):
2130         (WebCore::DocumentLoader::mainReceivedError):
2131         (WebCore::DocumentLoader::stopLoading):
2132         (WebCore::DocumentLoader::detachFromFrame):
2133         (WebCore::DocumentLoader::handledOnloadEvents):
2134         * loader/DocumentLoader.h:
2135         (WebCore::DocumentLoader::applicationCacheHost):
2136         * loader/EmptyClients.h:
2137         (WebCore::EmptyChromeClient::reachedApplicationCacheOriginQuota):
2138         * loader/FrameLoader.cpp:
2139         (WebCore::FrameLoader::loadResourceSynchronously):
2140         * loader/MainResourceLoader.cpp:
2141         (WebCore::MainResourceLoader::willSendRequest):
2142         (WebCore::MainResourceLoader::didReceiveResponse):
2143         (WebCore::MainResourceLoader::didReceiveData):
2144         (WebCore::MainResourceLoader::didFinishLoading):
2145         (WebCore::MainResourceLoader::didFail):
2146         (WebCore::MainResourceLoader::load):
2147         * loader/ResourceLoader.cpp:
2148         (WebCore::ResourceLoader::start):
2149         (WebCore::ResourceLoader::willSendRequest):
2150         (WebCore::ResourceLoader::didSendData):
2151         (WebCore::ResourceLoader::didReceiveResponse):
2152         (WebCore::ResourceLoader::didReceiveData):
2153         (WebCore::ResourceLoader::didFinishLoading):
2154         (WebCore::ResourceLoader::didFail):
2155         (WebCore::ResourceLoader::wasBlocked):
2156         (WebCore::ResourceLoader::cannotShowURL):
2157         (WebCore::ResourceLoader::shouldUseCredentialStorage):
2158         (WebCore::ResourceLoader::willCacheResponse):
2159         * loader/ResourceLoader.h:
2160         * loader/appcache/ApplicationCache.cpp:
2161         * loader/appcache/ApplicationCache.h:
2162         * loader/appcache/ApplicationCacheGroup.cpp:
2163         * loader/appcache/ApplicationCacheGroup.h:
2164         * loader/appcache/ApplicationCacheHost.cpp:
2165         * loader/appcache/ApplicationCacheHost.h:
2166         * loader/appcache/ApplicationCacheResource.cpp:
2167         * loader/appcache/ApplicationCacheResource.h:
2168         * loader/appcache/ApplicationCacheStorage.cpp:
2169         * loader/appcache/ApplicationCacheStorage.h:
2170         * loader/appcache/DOMApplicationCache.cpp:
2171         * loader/appcache/DOMApplicationCache.h:
2172         * loader/appcache/DOMApplicationCache.idl:
2173         * loader/appcache/ManifestParser.cpp:
2174         (WebCore::parseManifest):
2175         * loader/appcache/ManifestParser.h:
2176         * loader/chromium/ResourceLoaderChromium.cpp:
2177         (WebCore::ResourceLoader::didDownloadData):
2178         * page/ChromeClient.h:
2179         * page/DOMWindow.cpp:
2180         (WebCore::DOMWindow::clear):
2181         (WebCore::DOMWindow::applicationCache):
2182         * page/DOMWindow.h:
2183         (WebCore::DOMWindow::optionalApplicationCache):
2184         * page/DOMWindow.idl:
2185         * xml/parser/XMLDocumentParserLibxml2.cpp:
2186         (WebCore::XMLDocumentParser::startElementNs):
2187         * xml/parser/XMLDocumentParserQt.cpp:
2188         (WebCore::XMLDocumentParser::parseStartElement):
2189
2190 2011-09-24  Adam Barth  <abarth@webkit.org>
2191
2192         Remove ENABLE(WCSS) and associated code
2193         https://bugs.webkit.org/show_bug.cgi?id=68759
2194
2195         Reviewed by Darin Adler.
2196
2197         As discussed on webkit-dev, we are removing this feature from trunk to
2198         reduce the number of different configurations.
2199
2200         * CodeGenerators.pri:
2201         * GNUmakefile.am:
2202         * WebCore.pro:
2203         * css/CSSParser.cpp:
2204         (WebCore::CSSParser::parseValue):
2205         * css/CSSParser.h:
2206         * css/CSSPrimitiveValueMappings.h:
2207         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2208         * css/CSSStyleSelector.cpp:
2209         (WebCore::CSSStyleSelector::applyProperty):
2210         * css/WCSSPropertyNames.in: Removed.
2211         * css/WCSSValueKeywords.in: Removed.
2212         * features.pri:
2213         * html/HTMLInputElement.cpp:
2214         (WebCore::HTMLInputElement::HTMLInputElement):
2215         * html/HTMLInputElement.h:
2216         * html/TextFieldInputType.cpp:
2217         (WebCore::TextFieldInputType::sanitizeValue):
2218         (WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
2219         * rendering/RenderMarquee.cpp:
2220         (WebCore::RenderMarquee::start):
2221         * rendering/RenderObject.cpp:
2222         (WebCore::RenderObject::createObject):
2223         * rendering/style/RenderStyleConstants.h:
2224
2225 2011-09-24  Young Han Lee  <joybro@company100.net>
2226
2227         SVGAnimation does not support 'values' for from-to animations
2228         https://bugs.webkit.org/show_bug.cgi?id=64859
2229
2230         Reviewed by Dirk Schulze.
2231
2232         If from-to animation have discrete calc-mode and have a 'keyTimes' list, values of
2233         the keyTimes indicate the begin and the end of the animation respectively.[1][2]
2234
2235         When keyTimes is given, calculate the progress percentage of the animation with it
2236         even for from-to animation.
2237
2238         [1] http://www.w3.org/TR/SVG/animate.html#ValueAttributes
2239         [2] http://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncValues
2240
2241         Test: svg/animations/animate-from-to-keyTimes.html
2242
2243         * svg/SVGAnimationElement.cpp:
2244         (WebCore::SVGAnimationElement::calculatePercentForFromTo):
2245         (WebCore::SVGAnimationElement::updateAnimation):
2246         * svg/SVGAnimationElement.h:
2247
2248 2011-09-23  Chris Fleizach  <cfleizach@apple.com>
2249
2250         WebKit does not expose AXPlaceholder value on password fields
2251         https://bugs.webkit.org/show_bug.cgi?id=68745
2252
2253         Reviewed by Oliver Hunt.
2254
2255         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
2256         (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
2257
2258 2011-09-23  Mark Rowe  <mrowe@apple.com>
2259
2260         Fix the build.
2261
2262         * loader/CrossOriginAccessControl.cpp:
2263         (WebCore::passesAccessControlCheck): Get rid of the exit-time destructor.
2264
2265 2011-09-23  Adam Barth  <abarth@webkit.org>
2266
2267         Canvas security checks show up on HTML5GamingTest benchmark
2268         https://bugs.webkit.org/show_bug.cgi?id=68743
2269
2270         Reviewed by Oliver Hunt.
2271
2272         Prior to this patch, the canvas security checks took as much as 4% of
2273         the time on the HTML5GamingTest benchmark:
2274
2275         http://craftymind.com/factory/guimark2/HTML5GamingTest.html
2276
2277         This patch uses a couple of AtomicStrings and shuffles around the order
2278         of the security check to take this down to around 0.1% (which is near
2279         the noise floor of what I can measure with my profiler).
2280
2281         * html/canvas/CanvasRenderingContext.cpp:
2282         (WebCore::CanvasRenderingContext::wouldTaintOrigin):
2283         * loader/CrossOriginAccessControl.cpp:
2284         (WebCore::passesAccessControlCheck):
2285
2286 2011-09-23  Justin Novosad  <junov@chromium.org>
2287
2288         Unwarranted DOM Exception when canvas2D drawImage is called with src
2289         rect out of bounds
2290         https://bugs.webkit.org/show_bug.cgi?id=65709
2291
2292         Reviewed by Oliver Hunt.
2293
2294         * html/canvas/CanvasRenderingContext2D.cpp:
2295         (WebCore::CanvasRenderingContext2D::drawImage):
2296         Return early without throwing an exception if source rectangle is out of 
2297         bounds to match the spec.
2298
2299 2011-09-23  Lukasz Slachciak  <l.slachciak@samsung.com>
2300
2301         Printing of notImplemented() when logging enabled.
2302         https://bugs.webkit.org/show_bug.cgi?id=64590
2303
2304         Printing of notImplemented() method was enabled on Debug builds only.
2305         Now it is enabled when logging is enabled.
2306
2307         Reviewed by Oliver Hunt.
2308
2309         No new tests because there is no new functionality.
2310
2311         * platform/NotImplemented.h: Non-debug mode replaced with non-logging mode.
2312
2313 2011-09-23  Mihai Parparita  <mihaip@chromium.org>
2314
2315         [Chromium] REGRESSION (r95725): Resizing a window doesn't resize the contents
2316         https://bugs.webkit.org/show_bug.cgi?id=68730
2317
2318         Reviewed by James Robinson.
2319
2320         Adds a missing contentsResized() call in ScrollView::setFrameRect.
2321
2322         Test: fast/dom/Window/window-resize-contents.html
2323
2324         * platform/ScrollView.cpp:
2325         (WebCore::ScrollView::setFrameRect):
2326
2327 2011-09-23  Adam Klein  <adamk@chromium.org>
2328
2329         Add ENABLE_MUTATION_OBSERVERS feature flag
2330         https://bugs.webkit.org/show_bug.cgi?id=68732
2331
2332         Reviewed by Ojan Vafai.
2333
2334         This flag will guard an implementation of the "Mutation Observers" proposed in
2335         http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html
2336
2337         * Configurations/FeatureDefines.xcconfig:
2338         * GNUmakefile.am:
2339
2340 2011-09-23  Varun Jain  <varunjain@google.com>
2341
2342         Refactor WebViewImpl::scrollFocusedNodeIntoRect to a better place and add tests 
2343         https://bugs.webkit.org/show_bug.cgi?id=68198
2344
2345         Reviewed by Dimitri Glazkov.
2346
2347         Tests: fast/dom/scroll-element-to-rect-centered.html
2348                fast/dom/scroll-element-to-rect.html
2349
2350         * WebCore.exp.in:
2351         * page/FrameView.cpp:
2352         (WebCore::FrameView::scrollElementToRect):
2353         * page/FrameView.h:
2354         * testing/Internals.cpp:
2355         (WebCore::Internals::scrollElementToRect):
2356         * testing/Internals.h:
2357         * testing/Internals.idl:
2358
2359 2011-09-23  Mihai Parparita  <mihaip@chromium.org>
2360
2361         Unreviewed, rolling out r95860.
2362         http://trac.webkit.org/changeset/95860
2363         https://bugs.webkit.org/show_bug.cgi?id=68648
2364
2365         Breaks overhang rendering on Chromium Mac
2366
2367         * platform/chromium/ScrollbarThemeChromium.cpp:
2368         * platform/chromium/ScrollbarThemeChromium.h:
2369         * platform/chromium/ScrollbarThemeChromiumMac.h:
2370         * platform/chromium/ScrollbarThemeChromiumMac.mm:
2371         (WebCore::ScrollbarThemeChromiumMac::ScrollbarThemeChromiumMac):
2372         (WebCore::ScrollbarThemeChromiumMac::paintOverhangAreas):
2373
2374 2011-09-23  Dean Jackson  <dino@apple.com>
2375
2376         Add -webkit-filter to CSSPropertyNames
2377         https://bugs.webkit.org/show_bug.cgi?id=68675
2378
2379         Reviewed by Simon Fraser.
2380
2381         Add property and rudimentary parsing for -webkit-filter. The
2382         property value isn't preserved anywhere yet. Add
2383         stub definition for computed style.
2384
2385         Test: css3/filters/filter-property.html
2386
2387         * css/CSSComputedStyleDeclaration.cpp:
2388         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2389         * css/CSSParser.cpp:
2390         (WebCore::CSSParser::parseValue):
2391         (WebCore::CSSParser::parseFilter):
2392         * css/CSSParser.h:
2393         * css/CSSPropertyNames.in:
2394         * css/CSSStyleSelector.cpp:
2395         (WebCore::CSSStyleSelector::applyProperty):
2396
2397 2011-09-23  Antoine Labour  <piman@chromium.org>
2398
2399         Remove preserves3D() from CCLayerDelegate, replacing it by setting the
2400         value explicitly after creating a layer, or setting its delegate.
2401         https://bugs.webkit.org/show_bug.cgi?id=68295
2402
2403         Reviewed by James Robinson.
2404
2405         Covered by compositing/ layeout tests.
2406
2407         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2408         (WebCore::GraphicsLayerChromium::setContentsToCanvas):
2409         (WebCore::GraphicsLayerChromium::setContentsToMedia):
2410         (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
2411         (WebCore::GraphicsLayerChromium::setupContentsLayer):
2412         * platform/graphics/chromium/GraphicsLayerChromium.h:
2413         * platform/graphics/chromium/LayerChromium.cpp:
2414         (WebCore::LayerChromium::LayerChromium):
2415         * platform/graphics/chromium/LayerChromium.h:
2416         (WebCore::LayerChromium::setPreserves3D):
2417         (WebCore::LayerChromium::preserves3D):
2418
2419 2011-09-23  Julien Chaffraix  <jchaffraix@webkit.org>
2420
2421         Implicit conversion double to float in ShadowBlur::adjustBlurRadius
2422         https://bugs.webkit.org/show_bug.cgi?id=68722
2423
2424         Reviewed by Simon Fraser.
2425
2426         * platform/graphics/ShadowBlur.cpp:
2427         (WebCore::ShadowBlur::adjustBlurRadius): Added 2 explicit
2428         conversions.
2429
2430 2011-09-23  Dan Bernstein  <mitz@apple.com>
2431
2432         <rdar://problem/10178576> REGRESSION (r95391): Crash in -[WebCascadeList objectAtIndex:] when a font-family list contains missing fonts
2433         https://bugs.webkit.org/show_bug.cgi?id=68737
2434
2435         Reviewed by Darin Adler.
2436
2437         Test: fast/text/combining-character-sequence-fallback-crash.html
2438
2439         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
2440         (-[WebCascadeList initWithFont:WebCore::character:]): Changed to intialize _count to the exact
2441         number of FontData instances in the fallback list rather than the number of font families in the
2442         font description.
2443
2444 2011-09-23  David Reveman  <reveman@chromium.org>
2445
2446         [Chromium] Fix CSS 3D corner anti-aliasing.
2447         https://bugs.webkit.org/show_bug.cgi?id=68087
2448
2449         Reviewed by James Robinson.
2450
2451         Render sharp corners more correctly by adding bounding box
2452         edges to anti-aliasing shaders.
2453
2454         Test: platform/chromium/compositing/3d-corners.html
2455
2456         * platform/graphics/chromium/ShaderChromium.cpp:
2457         (WebCore::FragmentShaderRGBATexAlphaAA::getShaderString):
2458         (WebCore::FragmentShaderRGBATexClampAlphaAA::getShaderString):
2459         (WebCore::FragmentShaderRGBATexClampSwizzleAlphaAA::getShaderString):
2460         (WebCore::FragmentShaderRGBATexAlphaMaskAA::getShaderString):
2461         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
2462         (WebCore::CCRenderSurface::drawLayer):
2463         (WebCore::CCRenderSurface::drawSurface):
2464         * platform/graphics/chromium/cc/CCRenderSurface.h:
2465         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2466         (WebCore::CCTiledLayerImpl::draw):
2467         (WebCore::CCTiledLayerImpl::drawTiles):
2468         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2469
2470 2011-09-23  Oliver Hunt  <oliver@apple.com>
2471
2472         Make write barriers actually do something when enabled
2473         https://bugs.webkit.org/show_bug.cgi?id=68717
2474
2475         Reviewed by Geoffrey Garen.
2476
2477         Add a forwarding header, and fix an evaluation ordering
2478         issue that shows up if you try to use write barriers.
2479
2480         * ForwardingHeaders/heap/CardSet.h: Added.
2481         * bindings/js/JSEventListener.h:
2482         (WebCore::JSEventListener::jsFunction):
2483
2484 2011-09-23  James Robinson  <jamesr@chromium.org>
2485
2486         Avoid updating compositing state during paint
2487         https://bugs.webkit.org/show_bug.cgi?id=68727
2488
2489         Reviewed by Simon Fraser.
2490
2491         We shouldn't update our compositing state in the middle of a paint. The call to
2492         updateCompositingAndLayerListsIfNeeded() was added to RenderLayer::paintLayer in r45715, which was intended to
2493         fix this exact issue. Based off the ChangeLog entries, I think that this was just a typo.
2494
2495         * rendering/RenderLayer.cpp:
2496         (WebCore::RenderLayer::paintLayer):
2497         (WebCore::RenderLayer::updateCompositingAndLayerListsIfNeeded):
2498         * rendering/RenderLayerCompositor.cpp:
2499         (WebCore::RenderLayerCompositor::updateCompositingLayers):
2500         * rendering/RenderLayerCompositor.h:
2501
2502 2011-09-23  Fady Samuel  <fsamuel@chromium.org>
2503
2504         Refactor paintOverhangAreas to allow non-Mac Chromium platforms to reuse code
2505         https://bugs.webkit.org/show_bug.cgi?id=68648
2506
2507         Reviewed by Dimitri Glazkov.
2508
2509         No new tests because there's no change in functionality (yet).
2510
2511         * platform/chromium/ScrollbarThemeChromium.cpp:
2512         (WebCore::ScrollbarThemeChromium::ScrollbarThemeChromium):
2513         (WebCore::ScrollbarThemeChromium::~ScrollbarThemeChromium):
2514         (WebCore::ScrollbarThemeChromium::paintOverhangAreas):
2515         * platform/chromium/ScrollbarThemeChromium.h:
2516         * platform/chromium/ScrollbarThemeChromiumMac.h:
2517         * platform/chromium/ScrollbarThemeChromiumMac.mm:
2518         (WebCore::ScrollbarThemeChromiumMac::ScrollbarThemeChromiumMac):
2519
2520 2011-09-23  Ojan Vafai  <ojan@chromium.org>
2521
2522         remove physical flex-flow values to match the updated spec
2523         https://bugs.webkit.org/show_bug.cgi?id=68728
2524
2525         Reviewed by Tony Chang.
2526
2527         * css/CSSParser.cpp:
2528         (WebCore::CSSParser::parseValue):
2529         * css/CSSPrimitiveValueMappings.h:
2530         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2531         (WebCore::CSSPrimitiveValue::operator EFlexFlow):
2532         * css/CSSValueKeywords.in:
2533         * rendering/style/RenderStyleConstants.h:
2534
2535 2011-09-23  Abhishek Arya  <inferno@chromium.org>
2536
2537         Style not updated for :before, :after content
2538         in ruby text.
2539         https://bugs.webkit.org/show_bug.cgi?id=68625
2540
2541         Reviewed by Dave Hyatt.
2542
2543         Test: fast/ruby/ruby-text-before-after-content.html
2544
2545         * rendering/RenderRubyText.cpp:
2546         (WebCore::RenderRubyText::updateBeforeAfterContent):
2547         * rendering/RenderRubyText.h:
2548
2549 2011-09-22  Ojan Vafai  <ojan@chromium.org>
2550
2551         refactor RenderFlexibleBox to use flex-flow aware methods
2552         https://bugs.webkit.org/show_bug.cgi?id=68665
2553
2554         Reviewed by Tony Chang.
2555
2556         This is just a refactor. Just move the all the code that needs to
2557         be flow aware into helper functions. Actually making them flow-aware
2558         can be done in a followup patch.
2559
2560         * rendering/RenderBlock.cpp:
2561         * rendering/RenderBlock.h:
2562         Moved setLogicalLocationForChild into RenderFlexibleBox since that was the only caller.
2563         * rendering/RenderFlexibleBox.cpp:
2564         (WebCore::RenderFlexibleBox::hasOrthogonalFlow):
2565         (WebCore::RenderFlexibleBox::isHorizontalFlow):
2566         (WebCore::RenderFlexibleBox::isLeftToRightFlow):
2567         (WebCore::RenderFlexibleBox::setFlowAwareLogicalHeight):
2568         (WebCore::RenderFlexibleBox::flowAwareLogicalHeightForChild):
2569         (WebCore::RenderFlexibleBox::flowAwareLogicalWidthForChild):
2570         (WebCore::RenderFlexibleBox::flowAwareLogicalHeight):
2571         (WebCore::RenderFlexibleBox::flowAwareContentLogicalWidth):
2572         (WebCore::RenderFlexibleBox::flowAwareAvailableLogicalWidth):
2573         (WebCore::RenderFlexibleBox::flowAwareBorderStart):
2574         (WebCore::RenderFlexibleBox::flowAwareBorderBefore):
2575         (WebCore::RenderFlexibleBox::flowAwareBorderAfter):
2576         (WebCore::RenderFlexibleBox::flowAwarePaddingStart):
2577         (WebCore::RenderFlexibleBox::flowAwarePaddingBefore):
2578         (WebCore::RenderFlexibleBox::flowAwarePaddingAfter):
2579         (WebCore::RenderFlexibleBox::flowAwareMarginStartForChild):
2580         (WebCore::RenderFlexibleBox::flowAwareMarginBeforeForChild):
2581         (WebCore::RenderFlexibleBox::flowAwareMarginAfterForChild):
2582         (WebCore::RenderFlexibleBox::setFlowAwareMarginStartForChild):
2583         (WebCore::RenderFlexibleBox::setFlowAwareMarginEndForChild):
2584         (WebCore::RenderFlexibleBox::setFlowAwareLogicalLocationForChild):
2585         (WebCore::RenderFlexibleBox::logicalBorderAndPaddingWidthForChild):
2586         (WebCore::RenderFlexibleBox::logicalScrollbarHeightForChild):
2587         (WebCore::RenderFlexibleBox::marginStartStyleForChild):
2588         (WebCore::RenderFlexibleBox::marginEndStyleForChild):
2589         (WebCore::RenderFlexibleBox::preferredLogicalContentWidthForFlexItem):
2590         (WebCore::RenderFlexibleBox::layoutInlineDirection):
2591         (WebCore::RenderFlexibleBox::logicalPositiveFlexForChild):
2592         (WebCore::RenderFlexibleBox::logicalNegativeFlexForChild):
2593         (WebCore::RenderFlexibleBox::computePreferredLogicalWidth):
2594         (WebCore::RenderFlexibleBox::runFreeSpaceAllocationAlgorithmInlineDirection):
2595         (WebCore::RenderFlexibleBox::setLogicalOverrideSize):
2596         (WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):
2597         * rendering/RenderFlexibleBox.h:
2598
2599 2011-09-23  David Hyatt  <hyatt@apple.com>
2600
2601         https://bugs.webkit.org/show_bug.cgi?id=68719
2602         
2603         Push through multiple regions when an object doesn't fit in any of them. Unlike with pages and
2604         columns, when regions have a non-uniform height, we may need to push through multiple regions
2605         in order to find one that fits.
2606         
2607         Added an optimization for quickly noticing if regions do have a uniform height so that we can
2608         treat them like columns and pages if so.
2609
2610         Also fixed the end line matchup to properly null out endLine when no next line box exists. The new
2611         layout tests I wrote to cover this feature exposed this crasher, so fixing it in order to land
2612         the new tests.
2613
2614         Reviewed by Anders Carlsson.
2615
2616         Added new tests in fast/regions.
2617
2618         * rendering/RenderBlock.cpp:
2619         (WebCore::RenderBlock::adjustForUnsplittableChild):
2620         (WebCore::RenderBlock::pushToNextPageWithMinimumLogicalHeight):
2621         (WebCore::RenderBlock::adjustLinePositionForPagination):
2622         * rendering/RenderBlock.h:
2623         * rendering/RenderBlockLineLayout.cpp:
2624         (WebCore::RenderBlock::matchedEndLine):
2625         * rendering/RenderFlowThread.cpp:
2626         (WebCore::RenderFlowThread::RenderFlowThread):
2627         (WebCore::RenderFlowThread::layout):
2628         * rendering/RenderFlowThread.h:
2629
2630 2011-09-23  Konstantin Scheglov  <scheglov@google.com>
2631
2632         Redrawing dirty parts of a large table is very slow
2633         https://bugs.webkit.org/show_bug.cgi?id=64546
2634
2635         Reviewed by David Hyatt.
2636
2637         Move CollapsedBorderValues into RenderTable.h.
2638         Calculate collapsed borders only once and re-use during paintObject().
2639         Invalidate cache when cell, row, row group, col, col group or table border is changed.
2640
2641         Tests: fast/table/border-collapsing/cached-cell-append.html
2642                fast/table/border-collapsing/cached-cell-remove.html
2643                fast/table/border-collapsing/cached-change-cell-border-color.html
2644                fast/table/border-collapsing/cached-change-cell-border-width.html
2645                fast/table/border-collapsing/cached-change-col-border-color.html
2646                fast/table/border-collapsing/cached-change-col-border-width.html
2647                fast/table/border-collapsing/cached-change-colgroup-border-color.html
2648                fast/table/border-collapsing/cached-change-colgroup-border-width.html
2649                fast/table/border-collapsing/cached-change-row-border-color.html
2650                fast/table/border-collapsing/cached-change-row-border-width.html
2651                fast/table/border-collapsing/cached-change-table-border-color.html
2652                fast/table/border-collapsing/cached-change-table-border-width.html
2653                fast/table/border-collapsing/cached-change-tbody-border-color.html
2654                fast/table/border-collapsing/cached-change-tbody-border-width.html
2655
2656         * rendering/RenderTable.cpp:
2657         (WebCore::RenderTable::RenderTable):
2658         (WebCore::RenderTable::styleDidChange): Invalidate cache on border change.
2659         (WebCore::RenderTable::layout): Invalidate cache if layout changed.
2660         (WebCore::RenderTable::recalcCollapsedBorders): Ensures that cache is valid.
2661         (WebCore::RenderTable::paintObject): Use cached collapsed borders.
2662         * rendering/RenderTable.h:
2663         (WebCore::RenderTable::invalidateCollapsedBorders): Accessor to mark cache invalid.
2664         (WebCore::RenderTable::currentBorderValue): Rename to use word "value".
2665         * rendering/RenderTableCell.cpp:
2666         (WebCore::RenderTableCell::styleDidChange): If border changed, invalidate cache.
2667
2668         Rename to use word "value".
2669         (WebCore::addBorderStyle):
2670         (WebCore::RenderTableCell::collectBorderValues):
2671         (WebCore::compareBorderValuesForQSort):
2672         (WebCore::RenderTableCell::sortBorderValues):
2673         (WebCore::RenderTableCell::paintCollapsedBorder):
2674         * rendering/RenderTableCell.h:
2675         
2676         If border changed, invalidate cache.
2677         * rendering/RenderTableCol.cpp:
2678         (WebCore::RenderTableCol::styleDidChange):
2679         * rendering/RenderTableCol.h:
2680         * rendering/RenderTableRow.cpp:
2681         (WebCore::RenderTableRow::styleDidChange):
2682         * rendering/RenderTableSection.cpp:
2683         (WebCore::RenderTableSection::styleDidChange):
2684
2685 2011-09-23  Mark Hahnenberg  <mhahnenberg@apple.com>
2686
2687         Add static version of JSCell::visitChildren
2688         https://bugs.webkit.org/show_bug.cgi?id=68404
2689
2690         Reviewed by Darin Adler.
2691
2692         No new tests.
2693
2694         In this patch we just extract the bodies of the virtual visitChildren methods
2695         throughout the JSCell inheritance hierarchy out into static methods, which are 
2696         now called from the virtual methods.  This is an intermediate step in trying to 
2697         move the virtual-ness of visitChildren into our own custom vtable stored in 
2698         ClassInfo.  We need to convert the methods to static methods in order to be 
2699         able to more easily store and refer to them in our custom vtable since normal 
2700         member methods store some implicit information in their types, making it 
2701         impossible to store them generically in ClassInfo.
2702
2703         * WebCore.exp.in:
2704         * bindings/js/JSAttrCustom.cpp:
2705         (WebCore::JSAttr::visitChildrenVirtual):
2706         (WebCore::JSAttr::visitChildren):
2707         * bindings/js/JSAudioContextCustom.cpp:
2708         (WebCore::JSAudioContext::visitChildrenVirtual):
2709         (WebCore::JSAudioContext::visitChildren):
2710         * bindings/js/JSCSSRuleCustom.cpp:
2711         (WebCore::JSCSSRule::visitChildrenVirtual):
2712         (WebCore::JSCSSRule::visitChildren):
2713         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
2714         (WebCore::JSCSSStyleDeclaration::visitChildrenVirtual):
2715         (WebCore::JSCSSStyleDeclaration::visitChildren):
2716         * bindings/js/JSCanvasRenderingContextCustom.cpp:
2717         (WebCore::JSCanvasRenderingContext::visitChildrenVirtual):
2718         (WebCore::JSCanvasRenderingContext::visitChildren):
2719         * bindings/js/JSDOMGlobalObject.cpp:
2720         (WebCore::JSDOMGlobalObject::visitChildrenVirtual):
2721         (WebCore::JSDOMGlobalObject::visitChildren):
2722         * bindings/js/JSDOMGlobalObject.h:
2723         * bindings/js/JSDOMWindowCustom.cpp:
2724         (WebCore::JSDOMWindow::visitChildrenVirtual):
2725         (WebCore::JSDOMWindow::visitChildren):
2726         * bindings/js/JSDOMWindowShell.cpp:
2727         (WebCore::JSDOMWindowShell::visitChildrenVirtual):
2728         (WebCore::JSDOMWindowShell::visitChildren):
2729         * bindings/js/JSDOMWindowShell.h:
2730         * bindings/js/JSJavaScriptAudioNodeCustom.cpp:
2731         (WebCore::JSJavaScriptAudioNode::visitChildrenVirtual):
2732         (WebCore::JSJavaScriptAudioNode::visitChildren):
2733         * bindings/js/JSMessageChannelCustom.cpp:
2734         (WebCore::JSMessageChannel::visitChildrenVirtual):
2735         (WebCore::JSMessageChannel::visitChildren):
2736         * bindings/js/JSMessagePortCustom.cpp:
2737         (WebCore::JSMessagePort::visitChildrenVirtual):
2738         (WebCore::JSMessagePort::visitChildren):
2739         * bindings/js/JSNamedNodeMapCustom.cpp:
2740         (WebCore::JSNamedNodeMap::visitChildrenVirtual):
2741         (WebCore::JSNamedNodeMap::visitChildren):
2742         * bindings/js/JSNodeCustom.cpp:
2743         (WebCore::JSNode::visitChildrenVirtual):
2744         (WebCore::JSNode::visitChildren):
2745         * bindings/js/JSNodeFilterCustom.cpp:
2746         (WebCore::JSNodeFilter::visitChildrenVirtual):
2747         (WebCore::JSNodeFilter::visitChildren):
2748         * bindings/js/JSNodeIteratorCustom.cpp:
2749         (WebCore::JSNodeIterator::visitChildrenVirtual):
2750         (WebCore::JSNodeIterator::visitChildren):
2751         * bindings/js/JSSVGElementInstanceCustom.cpp:
2752         (WebCore::JSSVGElementInstance::visitChildrenVirtual):
2753         (WebCore::JSSVGElementInstance::visitChildren):
2754         * bindings/js/JSSharedWorkerCustom.cpp:
2755         (WebCore::JSSharedWorker::visitChildrenVirtual):
2756         (WebCore::JSSharedWorker::visitChildren):
2757         * bindings/js/JSStyleSheetCustom.cpp:
2758         (WebCore::JSStyleSheet::visitChildrenVirtual):
2759         (WebCore::JSStyleSheet::visitChildren):
2760         * bindings/js/JSTreeWalkerCustom.cpp:
2761         (WebCore::JSTreeWalker::visitChildrenVirtual):
2762         (WebCore::JSTreeWalker::visitChildren):
2763         * bindings/js/JSWebGLRenderingContextCustom.cpp:
2764         (WebCore::JSWebGLRenderingContext::visitChildrenVirtual):
2765         (WebCore::JSWebGLRenderingContext::visitChildren):
2766         * bindings/js/JSWorkerContextCustom.cpp:
2767         (WebCore::JSWorkerContext::visitChildrenVirtual):
2768         (WebCore::JSWorkerContext::visitChildren):
2769         * bindings/js/JSXMLHttpRequestCustom.cpp:
2770         (WebCore::JSXMLHttpRequest::visitChildrenVirtual):
2771         (WebCore::JSXMLHttpRequest::visitChildren):
2772         * bindings/js/JSXPathResultCustom.cpp:
2773         (WebCore::JSXPathResult::visitChildrenVirtual):
2774         (WebCore::JSXPathResult::visitChildren):
2775         * bindings/scripts/CodeGeneratorJS.pm:
2776         (GenerateHeader):
2777         (GenerateImplementation):
2778         * bindings/scripts/test/JS/JSTestObj.cpp:
2779         (WebCore::JSTestObj::visitChildrenVirtual):
2780         (WebCore::JSTestObj::visitChildren):
2781         * bindings/scripts/test/JS/JSTestObj.h:
2782         * bridge/qt/qt_instance.cpp:
2783         (JSC::Bindings::QtRuntimeObject::visitChildrenVirtual):
2784         (JSC::Bindings::QtRuntimeObject::visitChildren):
2785         * bridge/qt/qt_runtime.cpp:
2786         (JSC::Bindings::QtRuntimeMetaMethod::visitChildrenVirtual):
2787         (JSC::Bindings::QtRuntimeMetaMethod::visitChildren):
2788         * bridge/qt/qt_runtime.h:
2789         * workers/WorkerContext.h:
2790
2791 2011-09-23  Mario Sanchez Prada  <msanchez@igalia.com>
2792
2793         [GTK] Remove extra space at the beginning of the last line.
2794         https://bugs.webkit.org/show_bug.cgi?id=68710
2795
2796         Reviewed by Gustavo Noronha Silva.
2797
2798         * platform/network/soup/SocketStreamHandleSoup.cpp:
2799
2800 2011-09-23  Mario Sanchez Prada  <msanchez@igalia.com>
2801
2802         [GTK] Fix coding style issues in ResourceRequestSoup.cpp
2803         https://bugs.webkit.org/show_bug.cgi?id=68707
2804
2805         Reviewed by Xan Lopez.
2806
2807         This patch fixes some issues as reported by check-webkit-style.
2808
2809         * platform/network/soup/ResourceRequestSoup.cpp:
2810         (WebCore::ResourceRequest::updateFromSoupMessage):
2811
2812 2011-09-22  Ademar de Souza Reis Jr.  <ademar.reis@openbossa.org>
2813
2814         Unreviewed: [Qt] Workaround MSVC2010 problems when linking QtWebKit
2815
2816         Include MSVC2010 in the list of compilers where incremental
2817         build is disabled (INCREMENTAL:NO).
2818
2819         Change suggested by Simo Falt <simo.falt@nokia.com>, already present
2820         in the Qt-4.8 repository where the problem was identified.
2821
2822         * WebCore.pri:
2823
2824 2011-09-23  Darin Adler  <darin@apple.com>
2825
2826         Try to fix warning seen in some 32-bit builds.
2827
2828         * rendering/RenderBoxModelObject.cpp:
2829         (WebCore::backgroundRectAdjustedForBleedAvoidance):
2830         Use an explicit cast for the conversion from a double to a LayoutUnit.
2831
2832 2011-09-23  Vsevolod Vlasov  <vsevik@chromium.org>
2833
2834         Web Inspector: Clicking on error doesn't point on the correct line if user searched something
2835         https://bugs.webkit.org/show_bug.cgi?id=68627
2836
2837         Reviewed by Yury Semikhatsky.
2838
2839         * inspector/front-end/SearchController.js:
2840         (WebInspector.SearchController.prototype.disableSearchUntilExplicitAction):
2841         * inspector/front-end/inspector.js:
2842         (WebInspector._showAnchorLocationInPanel):
2843
2844 2011-09-23  Vsevolod Vlasov  <vsevik@chromium.org>
2845
2846         Web Inspector: InspectorStyleSheet should use stylesheet's original url, not final one.
2847         https://bugs.webkit.org/show_bug.cgi?id=68631
2848
2849         Reviewed by Yury Semikhatsky.
2850
2851         Test: http/tests/inspector/styles/styles-redirected-css.html
2852
2853         * inspector/InspectorStyleSheet.cpp:
2854         (WebCore::InspectorStyleSheet::resourceStyleSheetText):
2855
2856 2011-09-23  Vsevolod Vlasov  <vsevik@chromium.org>
2857
2858         Web Inspector: XHRs requests with the same url as main resource should have correct category.
2859         https://bugs.webkit.org/show_bug.cgi?id=68646
2860
2861         Reviewed by Yury Semikhatsky.
2862
2863         Test: http/tests/inspector/network/network-xhr-same-url-as-main-resource.html
2864
2865         * inspector/InspectorResourceAgent.cpp:
2866         (WebCore::InspectorResourceAgent::didReceiveResponse):
2867
2868 2011-09-23  Vsevolod Vlasov  <vsevik@chromium.org>
2869
2870         Web Inspector: Add context menu action to navigate from resources panel resource to network panel.
2871         https://bugs.webkit.org/show_bug.cgi?id=68657
2872
2873         Reviewed by Yury Semikhatsky.
2874
2875         * English.lproj/localizedStrings.js:
2876         * inspector/front-end/NetworkPanel.js:
2877         (WebInspector.NetworkPanel.prototype.showAnchorLocation):
2878         (WebInspector.NetworkPanel.prototype.revealAndHighlightResource):
2879         * inspector/front-end/ResourcesPanel.js:
2880         (WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent):
2881         (WebInspector.FrameResourceTreeElement.prototype._appendOpenInNetworkPanelAction):
2882         * inspector/front-end/inspector.js:
2883         (WebInspector.openInNetworkPanelLabel):
2884         (WebInspector.openRequestInNetworkPanel):
2885
2886 2011-09-23  Deepak Sherveghar  <bpwv64@motorola.com>
2887
2888         [Gtk] Title attribute is not respected on option elements.
2889         https://bugs.webkit.org/show_bug.cgi?id=68615
2890
2891         Reviewed by Martin Robinson.
2892
2893         Set tooltip on PopupMenuGtk items created from GtkActions.
2894
2895         * platform/gtk/GtkPopupMenu.cpp:
2896         (WebCore::GtkPopupMenu::appendItem): Added a call to gtk_widget_set_tooltip_text()
2897             to set the tooltip on menuitem. Tooltip text is retrieved from GtkAction.
2898         * platform/gtk/PopupMenuGtk.cpp:
2899         (WebCore::PopupMenuGtk::createGtkActionForMenuItem): Pass the tooltip text
2900             from client when creating a GtkAction.
2901
2902 2011-09-23  Yael Aharon  <yael.aharon@nokia.com>
2903
2904         [Qt][Gtk] Wrong state when pausing a video in the "playing" event handler
2905         https://bugs.webkit.org/show_bug.cgi?id=68589
2906
2907         Reviewed by Philippe Normand.
2908
2909         Test: media/video-playing-and-pause.html
2910
2911         As suggested by Alexis Menard on IRC, query gstreamer's state instead of using a cached value
2912         in MediaPlayerGstreamerPrivate::paused(). 
2913
2914         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2915         (WebCore::MediaPlayerPrivateGStreamer::paused):
2916
2917 2011-09-15  Pavel Podivilov  <podivilov@chromium.org>
2918
2919         Web Inspector: skip overlapping scripts when displaying concatenated content.
2920         https://bugs.webkit.org/show_bug.cgi?id=68144
2921
2922         Dynamically appended script tags have wrong offsets and cause troubles building concatenated content.
2923
2924         Reviewed by Pavel Feldman.
2925
2926         * inspector/front-end/SourceFile.js:
2927         (WebInspector.ConcatenatedScriptsContentProvider.prototype._concatenateScriptsContent.appendChunk):
2928         (WebInspector.ConcatenatedScriptsContentProvider.prototype._concatenateScriptsContent):
2929
2930 2011-09-23  Ilya Tikhonovsky  <loislo@chromium.org>
2931
2932         Web Inspector: file open dialog appears when user clicks on the timeline bar in timeline panel.
2933         https://bugs.webkit.org/show_bug.cgi?id=68312
2934
2935         Reviewed by Yury Semikhatsky.
2936
2937         * inspector/front-end/TimelinePanel.js:
2938         (WebInspector.TimelinePanel.prototype._createFileSelector):
2939
2940 2011-09-23  Sheriff Bot  <webkit.review.bot@gmail.com>
2941
2942         Unreviewed, rolling out r95383.
2943         http://trac.webkit.org/changeset/95383
2944         https://bugs.webkit.org/show_bug.cgi?id=68690
2945
2946         It broke WebInspector.Timeline.LoadFromFile feature.
2947         (Requested by loislo on #webkit).
2948
2949         * inspector/front-end/TimelinePanel.js:
2950         (WebInspector.TimelinePanel.prototype._createFileSelector):
2951
2952 2011-09-23  Rob Buis  <rbuis@rim.com>
2953
2954         use after free in WebCore::SVGTRefElement::updateReferencedText
2955         https://bugs.webkit.org/show_bug.cgi?id=67555
2956
2957         Reviewed by Nikolas Zimmermann.
2958
2959         Event listeners can outlive the tref element that created them when
2960         the tref is cloned and then garbage collected, causing a dangling pointer to the
2961         tref. To fix this do not install event listener until the tref is inserted into the document.
2962
2963         Test: svg/custom/tref-clone-crash.html
2964
2965         * svg/SVGTRefElement.cpp:
2966         (WebCore::SVGTRefElement::svgAttributeChanged):
2967         (WebCore::SVGTRefElement::insertedIntoDocument):
2968         * svg/SVGTRefElement.h:
2969
2970 2011-09-23  Vsevolod Vlasov  <vsevik@chromium.org>
2971
2972         ASSERTION FAILED: documentLoader in WebKit/Source/WebCore/inspector/InspectorInstrumentation.cpp(597)
2973         https://bugs.webkit.org/show_bug.cgi?id=68291
2974
2975         Reviewed by Tony Chang.
2976
2977         * dom/Document.cpp:
2978         (WebCore::Document::finishedParsing):
2979         * inspector/InspectorInstrumentation.cpp:
2980         (WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl):
2981         (WebCore::InspectorInstrumentation::loadEventFiredImpl):
2982         * inspector/InspectorInstrumentation.h:
2983         (WebCore::InspectorInstrumentation::domContentLoadedEventFired):
2984         (WebCore::InspectorInstrumentation::loadEventFired):
2985         * page/DOMWindow.cpp:
2986         (WebCore::DOMWindow::dispatchLoadEvent):
2987
2988 2011-09-22  Tony Chang  <tony@chromium.org>
2989
2990         implement -webkit-flex-order
2991         https://bugs.webkit.org/show_bug.cgi?id=67432
2992
2993         Reviewed by Ojan Vafai.
2994
2995         flex-order can be an int (including negative), but we disallow the two
2996         smallest values so we can put the numbers into a hash set.
2997
2998         Also, create two iterators: one that goes in render tree order (we use
2999         this for the first pass and to collect the possible flex order values)
3000         and one that goes in flex order.
3001
3002         Test: css3/flexbox/flex-order.html
3003
3004         * css/CSSParser.cpp:
3005         (WebCore::CSSParser::parseValue):
3006         * rendering/RenderFlexibleBox.cpp:
3007         (WebCore::FlexOrderHashTraits::emptyValue):
3008         (WebCore::FlexOrderHashTraits::constructDeletedValue):
3009         (WebCore::FlexOrderHashTraits::isDeletedValue):
3010         (WebCore::RenderFlexibleBox::TreeOrderIterator::TreeOrderIterator): A simple iterator
3011             that goes in render tree order.
3012         (WebCore::RenderFlexibleBox::TreeOrderIterator::next):
3013         (WebCore::RenderFlexibleBox::TreeOrderIterator::reset):
3014         (WebCore::RenderFlexibleBox::TreeOrderIterator::flexOrderValues):
3015         (WebCore::RenderFlexibleBox::FlexOrderIterator::FlexOrderIterator): An iterator that
3016             goes in flex-order order.  Creating this involves sorting, so only create it once
3017             and pass it around.
3018         (WebCore::RenderFlexibleBox::FlexOrderIterator::first):
3019         (WebCore::RenderFlexibleBox::FlexOrderIterator::next):
3020         (WebCore::RenderFlexibleBox::FlexOrderIterator::reset):
3021         (WebCore::RenderFlexibleBox::layoutHorizontalBlock):
3022         (WebCore::RenderFlexibleBox::computePreferredLogicalWidth):
3023         (WebCore::RenderFlexibleBox::runFreeSpaceAllocationAlgorithmInlineDirection):
3024         (WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):
3025         * rendering/RenderFlexibleBox.h:
3026
3027 2011-09-22  Darin Adler  <darin@apple.com>
3028
3029         Use AffineTransform scale functions in ShadowBlur::adjustBlurRadius
3030         https://bugs.webkit.org/show_bug.cgi?id=68667
3031
3032         Reviewed by Simon Fraser.
3033
3034         * platform/graphics/ShadowBlur.cpp:
3035         (WebCore::ShadowBlur::adjustBlurRadius): Use AffineTransform::xScale and
3036         AffineTransform::yScale instead of the custom code here that seems to do
3037         the same thing.
3038
3039 2011-09-22  Darin Adler  <darin@apple.com>
3040
3041         Remove unneeded type conversion from background bleed code
3042         https://bugs.webkit.org/show_bug.cgi?id=68669
3043
3044         Reviewed by Geoffrey Garen.
3045
3046         * rendering/RenderBoxModelObject.cpp:
3047         (WebCore::backgroundRectAdjustedForBleedAvoidance): Use ceil instead of ceilf
3048         and eliminate superflous conversion to float and use of FloatSize. Also added
3049         a "why" comment.
3050
3051 2011-09-22  Darin Adler  <darin@apple.com>
3052
3053         Refactor checks for antialiasing lines to share a single function
3054         https://bugs.webkit.org/show_bug.cgi?id=68666
3055
3056         Reviewed by Dan Bernstein.
3057
3058         * rendering/RenderBlock.cpp:
3059         (WebCore::RenderBlock::paintColumnRules): Call shouldAntialiasLines.
3060         * rendering/RenderBoxModelObject.cpp:
3061         (WebCore::RenderBoxModelObject::paintBorder): Ditto.
3062         (WebCore::RenderBoxModelObject::shouldAntialiasLines): Added.
3063         * rendering/RenderBoxModelObject.h: Added shouldAntialiasLines function.
3064         * rendering/RenderInline.cpp:
3065         (WebCore::RenderInline::paintOutlineForLine): Call shouldAntialiasLines.
3066         * rendering/RenderTableCell.cpp:
3067         (WebCore::RenderTableCell::paintCollapsedBorder): Ditto.
3068
3069 2011-09-22  Antoine Labour  <piman@chromium.org>
3070
3071         Remove unused members from LayerChromium.
3072         These members are never set, and never used.
3073         Other members that are set but not used have been left (we may use them
3074         later, e.g. m_opaque).
3075         https://bugs.webkit.org/show_bug.cgi?id=68297
3076
3077         Reviewed by James Robinson.
3078
3079         No functional change, no new test needed.
3080
3081         * platform/graphics/chromium/LayerChromium.cpp:
3082         (WebCore::LayerChromium::LayerChromium):
3083         * platform/graphics/chromium/LayerChromium.h:
3084
3085 2011-09-22  Tom Sepez  <tsepez@chromium.org>
3086
3087         Make XSSAuditor extract meaningful snippet from script blocks for comparison
3088         against the URL when checking for reflection.  Avoids getting caugh up in
3089         trailing comments.
3090         https://bugs.webkit.org/show_bug.cgi?id=68094
3091
3092         Reviewed by Adam Barth.
3093
3094         Tests: http/tests/security/xssAuditor/script-tag-with-trailing-comment.html
3095                http/tests/security/xssAuditor/script-tag-with-trailing-comment2.html
3096                http/tests/security/xssAuditor/script-tag-with-trailing-comment3.html
3097
3098         * html/parser/XSSAuditor.cpp:
3099         (WebCore::XSSAuditor::filterTokenAfterScriptStartTag):
3100         (WebCore::XSSAuditor::extractCodeFragment):
3101         * html/parser/XSSAuditor.h:
3102
3103 2011-09-22  Nate Chapin  <japhet@chromium.org>
3104
3105         Remove didReceiveAuthenticationChallenge() from SubresourceLoaderClient.
3106         Instead, add a load-specific policy for showing the user authentication
3107         challenge down to ResourceLoaderOptions and enforce it in ResourceLoader.
3108         https://bugs.webkit.org/show_bug.cgi?id=65330
3109
3110         Reviewed by Alexey Proskuryakov.
3111
3112         No new tests, refactor only.
3113
3114         * loader/DocumentThreadableLoader.cpp:
3115         * loader/DocumentThreadableLoader.h:
3116         * loader/MainResourceLoader.cpp:
3117         * loader/NetscapePlugInStreamLoader.cpp:
3118         * loader/ResourceLoadScheduler.h:
3119         * loader/ResourceLoader.cpp:
3120         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
3121            For resource types that always send a challenge to the embedder,
3122            this patch doesn't change anything. For those that don't, we will
3123            always try to continue without credentials when they are forbidden
3124            and the platform supports it.
3125            When continuing without credentials was initially implemented in
3126            DocumentThreadableLoader, we sent the ThreadableLoaderClient a didFail(),
3127            then canceled the SubresourceLoader. This was necessary because of the
3128            quirks of ThreadableLoader cancellation (we sever the client/loader connections
3129            before the load actually cancels), but a simple didFail() should suffice at
3130            the ResourceLoader layer.
3131         * loader/ResourceLoaderOptions.h:
3132         * loader/SubresourceLoader.cpp:
3133         * loader/SubresourceLoader.h:
3134         * loader/SubresourceLoaderClient.h:
3135         * loader/cache/CachedResource.cpp:
3136         * loader/cache/CachedResourceLoader.cpp:
3137         * loader/cache/CachedResourceLoader.h:
3138         * loader/icon/IconLoader.cpp: The ResourceLoader implementation of
3139             didReceiveAuthenticationChallege means that IconLoader will now
3140             try to continue with credentials on platforms that support it,
3141             rather than just canceling outright. We still will never prompt
3142             for authentication for icons.
3143         * loader/icon/IconLoader.h:
3144
3145 2011-09-22  Dean Jackson  <dino@apple.com>
3146
3147         Add ENABLE_CSS_FILTERS
3148         https://bugs.webkit.org/show_bug.cgi?id=68652
3149
3150         Reviewed by Simon Fraser.
3151
3152         * Configurations/FeatureDefines.xcconfig:
3153
3154 2011-09-22  Anders Carlsson  <andersca@apple.com>
3155
3156         Make sure to update scrollbars in ScrollView::setFrameRect
3157         https://bugs.webkit.org/show_bug.cgi?id=68663
3158
3159         Reviewed by Sam Weinig.
3160
3161         Call updateScrollbars after setting the frame rect. This was previously done by the
3162         call to setBoundsSize from RenderWidget::setWidgetGeometry but setBoundsSize was removed
3163         completely in http://trac.webkit.org/changeset/95725.
3164
3165         * platform/ScrollView.cpp:
3166         (WebCore::ScrollView::setFrameRect):
3167
3168 2011-09-22  Jon Lee  <jonlee@apple.com>
3169
3170         Progress control gets cropped on the bottom
3171         https://bugs.webkit.org/show_bug.cgi?id=68302
3172         <rdar://problem/10069915>
3173
3174         Reviewed by Kent Tamura.
3175
3176         As it turns out the smaller control type does not get rendered either, so this patch
3177         fixes both.
3178
3179         * manual-tests/dom/progressbar.html: Altered to show both sizes of controls
3180         * rendering/RenderThemeMac.h:
3181         * rendering/RenderThemeMac.mm: Added methods to inflate the drawing rect
3182         (WebCore::RenderThemeMac::progressBarSizes):
3183         (WebCore::RenderThemeMac::progressBarMargins):
3184         (WebCore::RenderThemeMac::minimumProgressBarHeight):
3185         (WebCore::RenderThemeMac::paintProgressBar): Inflate the rect based on minimum desired
3186         control height and glow margin.
3187
3188 2011-09-22  David Hyatt  <hyatt@apple.com>
3189
3190         https://bugs.webkit.org/show_bug.cgi?id=68658
3191
3192         Make matchedEndLine smart enough to not match lines that have moved to new
3193         regions with different available content logical widths. When this happens, we go ahead and treat
3194         the line as failing to match.
3195
3196         Reviewed by Anders Carlsson.
3197
3198         Added new tests in fast/regions.
3199
3200         * rendering/RenderBlock.cpp:
3201         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
3202         * rendering/RenderBlock.h:
3203         Enhanced to take an optional delta, so that you can check a new position without having to move
3204         the line box.
3205
3206         * rendering/RenderBlockLineLayout.cpp:
3207         (WebCore::RenderBlock::checkPaginationAndFloatsAtEndLine):
3208         New function that refactors checking for line width changes from region movement as well as the
3209         float checks. Since the float checks were duplicated twice, this is a nice refactoring.
3210
3211         (WebCore::RenderBlock::matchedEndLine):
3212         Changed to call the new helper function that will check both floats and pagination.
3213
3214 2011-09-22  Gavin Barraclough  <barraclough@apple.com>
3215
3216         Implement Function.prototype.bind
3217         https://bugs.webkit.org/show_bug.cgi?id=26382
3218
3219         Reviewed by Sam Weinig.
3220
3221         Test: fast/js/function-bind.html
3222
3223         * bindings/js/JSDOMBinding.cpp:
3224         (WebCore::objectToStringFunctionGetter):
3225         * bindings/js/JSDOMWindowCustom.cpp:
3226         (WebCore::nonCachingStaticFunctionGetter):
3227         * bindings/js/JSHistoryCustom.cpp:
3228         (WebCore::nonCachingStaticBackFunctionGetter):
3229         (WebCore::nonCachingStaticForwardFunctionGetter):
3230         (WebCore::nonCachingStaticGoFunctionGetter):
3231         * bindings/js/JSLocationCustom.cpp:
3232         (WebCore::nonCachingStaticReplaceFunctionGetter):
3233         (WebCore::nonCachingStaticReloadFunctionGetter):
3234         (WebCore::nonCachingStaticAssignFunctionGetter):
3235             - Function::create no longer requires functionStructure() to be passed.
3236 2011-09-22  David Hyatt  <hyatt@apple.com>
3237
3238         https://bugs.webkit.org/show_bug.cgi?id=68650
3239         
3240         Make determineStartPosition smart enough to not skip over clean lines that have moved to a new
3241         region with a different available content logical width. When this happens, we go ahead and treat
3242         the line as dirty.
3243
3244         Reviewed by Sam Weinig.
3245
3246         Covered by existing fast/regions tests.
3247
3248         * rendering/RenderBlock.cpp:
3249         (WebCore::RenderBlock::layoutBlock):
3250         Disable region fitting if we detect that the regions all have uniform widths. In this case we know
3251         the content width can't vary, so there's no reason to waste time worrying about it.
3252
3253         (WebCore::RenderBlock::computeLogicalLocationForFloat):
3254         Pull the content width checking code into computeLogicalLocationForFloat, since we've incorporated
3255         region fitting into the fixed offsets now rather than the line functions.
3256
3257         (WebCore::RenderBlock::positionNewFloats):
3258         Changed because more code moved from here into computeLogicalLocationForFloat.
3259         
3260         (WebCore::RenderBlock::adjustForRegionFittingIfNeeded):
3261         No changes. Just moved the function above the left offset function.
3262
3263         (WebCore::RenderBlock::logicalLeftOffsetForContent):
3264         (WebCore::RenderBlock::logicalRightOffsetForContent):
3265         Added. These new functions give the fixed left and right offsets for lines in a particular region.
3266         When no regions are present or when all the regions have a uniform width, they are identical
3267         to the versions of the functions that take no arguments.
3268
3269         (WebCore::RenderBlock::logicalRightOffsetForLine):
3270         Changed to no longer do region fitting, since that's built into logicalRightOffsetForContent now.
3271
3272         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
3273         New function that takes a root line box and compares its cached old content width with the width
3274         available at the line's new location.
3275     
3276         * rendering/RenderBlock.h:
3277         (WebCore::RenderBlock::logicalRightOffsetForLine):
3278         (WebCore::RenderBlock::logicalLeftOffsetForLine):
3279         Modified to call the logicalXXXOffsetForContent functions that take a block direction position.
3280
3281         (WebCore::RenderBlock::logicalRightOffsetForContent):
3282         (WebCore::RenderBlock::logicalLeftOffsetForContent):
3283         Added the new functions that take a position so that they can fit to the correct region.
3284
3285         (WebCore::RenderBlock::availableLogicalWidthForContent):
3286         New helper function that calls right - left (similar to the corresponding line function that includes
3287         floats).
3288
3289         * rendering/RenderBlockLineLayout.cpp:
3290         (WebCore::RenderBlock::determineStartPosition):
3291         Patched to check if a line has moved to a place with a different available content width. If so, the line
3292         is dirtied so that line layout can re-run.
3293
3294         * rendering/RootInlineBox.cpp:
3295         (WebCore::RootInlineBox::RootInlineBox):
3296         (WebCore::RootInlineBox::alignBoxesInBlockDirection):
3297         Sets the paginated line width from the current block logical height.
3298
3299         * rendering/RootInlineBox.h:
3300         (WebCore::RootInlineBox::paginationStrut):
3301         (WebCore::RootInlineBox::setPaginationStrut):
3302         Fixed paginationStrut to be LayoutUnit instead of int.
3303
3304         (WebCore::RootInlineBox::paginatedLineWidth):
3305         (WebCore::RootInlineBox::setPaginatedLineWidth):
3306         Added paginatedLineWidth getter/setter for caching the content width for a given root line.
3307
3308 2011-09-21  Anders Carlsson  <andersca@apple.com>
3309
3310         Remove Widget::beforeMouseDown and Widget::afterMouseDown
3311         https://bugs.webkit.org/show_bug.cgi?id=68570
3312
3313         Reviewed by Darin Adler.
3314
3315         These two member functions were originally added to avoid crashes due to removing NSViews while they were
3316         being tracked by AppKit. Since they were added, we've moved away from NSViews for form controls, and the bugs in
3317         AppKit that lead to crashes have been fixed.
3318
3319         This patch was rolled out in r95743 because it broke a bunch of tests. The patch accidentally removed setting back
3320         m_sendingEventToSubview to false.
3321
3322         * page/mac/EventHandlerMac.mm:
3323         (WebCore::EventHandler::passMouseDownEventToWidget):
3324         * platform/Widget.h:
3325         * platform/mac/WidgetMac.mm:
3326         (WebCore::Widget::Widget):
3327         (WebCore::Widget::removeFromSuperview):
3328
3329         * rendering/RenderWidget.cpp:
3330         Change widgetHierarchyUpdateSuspendCount to be an unsigned integer instead of a size_t.
3331
3332 2011-09-22  Sheriff Bot  <webkit.review.bot@gmail.com>
3333
3334         Unreviewed, rolling out r95335 and r95645.
3335         http://trac.webkit.org/changeset/95335
3336         http://trac.webkit.org/changeset/95645
3337         https://bugs.webkit.org/show_bug.cgi?id=68649
3338
3339         Wrong fix (Requested by rniwa on #webkit).
3340
3341         * editing/DeleteSelectionCommand.cpp:
3342         (WebCore::DeleteSelectionCommand::saveTypingStyleState):
3343         * editing/EditingStyle.cpp:
3344         (WebCore::EditingStyle::removeStyleAddedByNode):
3345         * editing/EditingStyle.h:
3346         * editing/ReplaceSelectionCommand.cpp:
3347         (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
3348         * editing/markup.cpp:
3349         (WebCore::StyledMarkupAccumulator::serializeNodes):
3350         (WebCore::ancestorToRetainStructureAndAppearance):
3351         * editing/markup.h:
3352
3353 2011-09-22  Ryosuke Niwa  <rniwa@webkit.org>
3354
3355         Revert r95673 since it caused hundreds of tests to fail on Leopard / Snow Leopard.
3356
3357         * page/mac/EventHandlerMac.mm:
3358         (WebCore::EventHandler::passMouseDownEventToWidget):
3359         * platform/Widget.h:
3360         * platform/mac/WidgetMac.mm:
3361         (WebCore::Widget::Widget):
3362         (WebCore::Widget::removeFromSuperview):
3363         (WebCore::Widget::beforeMouseDown):
3364         (WebCore::Widget::afterMouseDown):
3365         * rendering/RenderWidget.cpp:
3366
3367 2011-09-22  David Hyatt  <hyatt@apple.com>
3368
3369         https://bugs.webkit.org/show_bug.cgi?id=68638
3370         
3371         Make RenderFlowThread cache whether or not it has regions of varying widths. This will
3372         be relevant for performance as we begin adding code to do custom block painting and
3373         layout based off regions not having the same width.
3374
3375         Reviewed by Dan Bernstein and Adam Roben.
3376
3377         * rendering/RenderFlowThread.cpp:
3378         (WebCore::RenderFlowThread::RenderFlowThread):
3379         (WebCore::RenderFlowThread::layout):
3380         * rendering/RenderFlowThread.h:
3381
3382 2011-09-22  Anders Carlsson  <andersca@apple.com>
3383
3384         FrameView::invalidateRect and FrameView::setFrameRect shouldn't take LayoutRects
3385         https://bugs.webkit.org/show_bug.cgi?id=68639
3386
3387         Reviewed by David Hyatt.
3388
3389         FrameView::invalidateRect and FrameView::setFrameRect override Widget and ScrollView
3390         member functions that take IntRects, and Widget coordinates are currently defined in terms of
3391         IntRects (and probably always should since we want them to be pixel-aligned).
3392
3393         * page/FrameView.cpp:
3394         (WebCore::FrameView::invalidateRect):
3395         (WebCore::FrameView::setFrameRect):
3396         * page/FrameView.h:
3397
3398 2011-09-22  Tim Horton  <timothy_horton@apple.com>
3399
3400         Unreviewed build fix (fixes warning about too many parens).
3401
3402         * rendering/RenderBox.cpp:
3403         (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
3404
3405 2011-09-22  Anders Carlsson  <andersca@apple.com>
3406
3407         Widget::frameRect shouldn't be virtual
3408         https://bugs.webkit.org/show_bug.cgi?id=68637
3409
3410         Reviewed by Sam Weinig.
3411
3412         Nobody overrides Widget::frameRect and nobody should.
3413
3414         * platform/Widget.h:
3415
3416 2011-09-22  Sergey Glazunov  <serg.glazunov@gmail.com>
3417
3418         Ref protect shaders in V8WebGLRenderingContext::getAttachedShadersCallback
3419         https://bugs.webkit.org/show_bug.cgi?id=68630
3420
3421         Reviewed by Adam Barth.
3422
3423         Test: fast/canvas/webgl/shader-deleted-by-accessor.html
3424
3425         * bindings/js/JSWebGLRenderingContextCustom.cpp:
3426         (WebCore::JSWebGLRenderingContext::getAttachedShaders):
3427         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
3428         (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
3429         * html/canvas/WebGLRenderingContext.cpp:
3430         (WebCore::WebGLRenderingContext::getAttachedShaders):
3431         * html/canvas/WebGLRenderingContext.h:
3432
3433 2011-09-05  Robert Hogan  <robert@webkit.org>
3434
3435         CSS 2.1 failure: abspos-non-replaced-width-margin-000, abspos-replaced-width-margin-000
3436         https://bugs.webkit.org/show_bug.cgi?id=47148
3437
3438         Reviewed by David Hyatt.
3439
3440         * rendering/RenderBlock.h:
3441         * rendering/RenderBlockLineLayout.cpp:
3442         (WebCore::RenderBlock::startOffsetForLine): Return offset from right, rather than offset from left + logicalwidth
3443         * rendering/RenderBlockLineLayout.cpp:
3444         (WebCore::RenderBlock::startAlignedOffsetForLine): 
3445               Return the correct alignment for RTL blocks too. Looks like neither FF or Opera do this correctly.
3446               Covered by new test left-right-center-inline-alignment-in-ltr-and-rtl-blocks.html
3447         * rendering/RenderBox.cpp:
3448         (WebCore::computeInlineStaticDistance):