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