876b1a5f39792c69eb1f87feaff23383b991cda1
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-05-29  MORITA Hajime  <morrita@google.com>
2
3         [Shadow DOM] Node distribution should be orthogonal from node attachment
4         https://bugs.webkit.org/show_bug.cgi?id=87223
5
6         Reviewed by Dimitri Glazkov.
7
8         This chagne reorganizes Shadow DOM subtree distribution implementation.
9
10         Originally, it was interleaved across attach() of several classes like
11         InsertionPoint and ShadowRoot. Its invalidation was also mixed as a part of
12         the style recalculation and detach()-es.
13
14         This change extracts these bits of code to a set of ContentDistributor methods, which are
15         facaded by two ElementShadow API. Following two API are the primary entry points:
16
17         - ElementShadow::ensureDistribution()
18         - ElementShadow::invalidateDistribution()
19
20         The actual implementations are ContentDistributor::distribute() and
21         ContentDistributor::invalidate() respectively.
22
23         When clients need to traverse composed tree, before attach() for
24         example, they should call ensureDistribution() to make sure that
25         the traversal data structure ("the distribution") is ready.  When
26         there is any DOM mutation which can result a composed tree
27         mutation, then clients should call invalidateDistribution() to
28         mark the distribution being dated.
29
30         Here are such DOM mutations:
31
32         - The children of any ShadowRoots are changed,
33         - The children of any InsertionPoints are changed,
34         - The children of any host elements are changed,
35         - Any insertion point is inserted to or removed from the shadow tree,
36         - @select attribute of <content> is modified and
37         - New ShadowRoot is added to the shadow tree.
38
39         Note that the validity of the distribution is tracked and
40         unnecessary distribution requests are ignored.
41
42         After the invalidation, that shadow subtrees are detached once and
43         request  their  re-attachment  through  the  style  recalculation.
44         Then,  on the  responding  style recalculation  and attach(),  new
45         distribution will be computed.
46
47         No new tests. Covered by existing tests.
48
49         * dom/Element.cpp:
50         (WebCore::Element::~Element):
51         (WebCore::Element::childrenChanged):
52         * dom/ElementShadow.cpp:
53         (WebCore::ElementShadow::~ElementShadow):
54         (WebCore::ElementShadow::addShadowRoot):
55         (WebCore::ElementShadow::removeAllShadowRoots):
56         (WebCore::ElementShadow::attach):
57         (WebCore::ElementShadow::recalcStyle):
58         (WebCore::ElementShadow::ensureDistribution):
59         (WebCore::ElementShadow::invalidateDistribution):
60         * dom/ElementShadow.h:
61         (ElementShadow):
62         * dom/NodeRenderingContext.cpp:
63         (WebCore::NodeRenderingContext::NodeRenderingContext):
64         (WebCore::NodeRendererFactory::createRendererIfNeeded):
65         * dom/NodeRenderingContext.h:
66         (NodeRenderingContext):
67         * dom/ShadowRoot.cpp:
68         (WebCore::ShadowRoot::setApplyAuthorStyles):
69         (WebCore::ShadowRoot::attach):
70         (WebCore::ShadowRoot::childrenChanged):
71         (WebCore):
72         * dom/ShadowRoot.h:
73         (ShadowRoot):
74         * html/HTMLFormControlElement.cpp:
75         * html/ValidationMessage.cpp:
76         (WebCore::ValidationMessage::buildBubbleTree):
77         * html/shadow/ContentDistributor.cpp:
78         (WebCore::ContentDistributor::ContentDistributor):
79         (WebCore::ContentDistributor::~ContentDistributor):
80         (WebCore::ContentDistributor::findInsertionPointFor):
81         (WebCore::ContentDistributor::distribute):
82         (WebCore::ContentDistributor::invalidate):
83         (WebCore::ContentDistributor::finishInivalidation):
84         (WebCore::ContentDistributor::distributeSelectionsTo):
85         (WebCore::ContentDistributor::distributeShadowChildrenTo):
86         (WebCore::ContentDistributor::invalidateDistributionIn):
87         * html/shadow/ContentDistributor.h:
88         (WebCore::ContentDistributor::needsInvalidation):
89         (ContentDistributor):
90         (WebCore::ContentDistributor::needsDistribution):
91         * html/shadow/HTMLContentElement.cpp:
92         (WebCore::HTMLContentElement::parseAttribute):
93         * html/shadow/InsertionPoint.cpp:
94         (WebCore::InsertionPoint::attach):
95         (WebCore::InsertionPoint::detach):
96         (WebCore::InsertionPoint::nextTo):
97         (WebCore::InsertionPoint::previousTo):
98         (WebCore::InsertionPoint::childrenChanged):
99         * html/shadow/InsertionPoint.h:
100         (WebCore::InsertionPoint::setDistribution):
101         (WebCore::InsertionPoint::clearDistribution):
102         (InsertionPoint):
103
104 2012-05-29  Luke Macpherson  <macpherson@chromium.org>
105
106         Implement post-landing feedback for WebKitCSSTransformValue::customCSSText().
107         https://bugs.webkit.org/show_bug.cgi?id=87684
108
109         Reviewed by Darin Adler.
110
111         Darin provided some style suggesting on https://bugs.webkit.org/show_bug.cgi?id=87462 after it landed.
112         This patch incorporates those suggestions, namely using 0 instead of empty string for UnknownTransformOperation
113         and WTF_ARRAY_LENGTH instead of hard coding the array length.
114
115         Covered by existing transform tests.
116
117         * css/WebKitCSSTransformValue.cpp:
118         (WebCore):
119         (WebCore::WebKitCSSTransformValue::customCssText):
120
121 2012-05-29  Eric Seidel  <eric@webkit.org>
122
123         Fix ENABLE_IFRAME_SEAMLESS to actually fully disable <iframe seamless>
124         https://bugs.webkit.org/show_bug.cgi?id=87646
125
126         Reviewed by Adam Barth.
127
128         In the process of moving the seamless feature out of github and into bugs.webkit.org
129         multiple versions of the shouldDisplaySeamlessly function got written
130         (and moved from HTMLIFrameElement to Document), but only one of them was wrapped
131         in ENABLE_IFRAME_SEAMLESS.  HTMLIFrameElement was checking mayDisplaySeamlessly
132         directly (as was my original design), which got around the ENABLE_IFRAME_SEAMLESS check.
133         I've fixed this oversight, and the feature is now off when we tell it to be off.
134
135         This is covered by many existing tests.  I've verified locally that
136         all tests fail when ENABLE_IFRAME_SEAMLESS is disabled instead of
137         only some of them.
138
139         * dom/SecurityContext.h:
140         (SecurityContext):
141         * html/HTMLIFrameElement.cpp:
142         (WebCore::HTMLIFrameElement::shouldDisplaySeamlessly):
143
144 2012-05-29  Scott Graham  <scottmg@chromium.org>
145
146         Fix warning in preprocessing Source/WebCore/dom/DOMError.idl
147         https://bugs.webkit.org/show_bug.cgi?id=87763
148
149         Reviewed by Adam Barth.
150
151         Add newline at end of file to avoid warning:
152         ../dom/DOMError.idl:35:2: warning: no newline at end of file
153
154         * dom/DOMError.idl:
155
156 2012-05-29  Mark Pilgrim  <pilgrim@chromium.org>
157
158         [Chromium] Move fileExists to Platform.h
159         https://bugs.webkit.org/show_bug.cgi?id=87531
160
161         Reviewed by Adam Barth.
162
163         Part of a refactoring series. See tracking bug 82948.
164
165         * platform/chromium/FileSystemChromium.cpp:
166         (WebCore::fileExists):
167         * platform/chromium/PlatformSupport.h:
168         (PlatformSupport):
169
170 2012-05-29  Kentaro Hara  <haraken@chromium.org>
171
172         [V8] Rename v8Null() to v8NullWithCheck()
173         https://bugs.webkit.org/show_bug.cgi?id=87713
174
175         Reviewed by Adam Barth.
176
177         In IRC, cmarcelo@ pointed out that v8::Null() and v8Null()
178         are confusing. This patch renames v8Null() to v8NullWithCheck().
179
180         No tests. No behavior change.
181
182         * bindings/scripts/CodeGeneratorV8.pm:
183         (GenerateHeader):
184         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
185         (WebCore::toV8):
186         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
187         (WebCore::toV8):
188         * bindings/scripts/test/V8/V8TestEventConstructor.h:
189         (WebCore::toV8):
190         * bindings/scripts/test/V8/V8TestEventTarget.h:
191         (WebCore::toV8):
192         * bindings/scripts/test/V8/V8TestException.h:
193         (WebCore::toV8):
194         * bindings/scripts/test/V8/V8TestInterface.h:
195         (WebCore::toV8):
196         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
197         (WebCore::toV8):
198         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
199         (WebCore::toV8):
200         * bindings/scripts/test/V8/V8TestNode.h:
201         (WebCore::toV8):
202         * bindings/scripts/test/V8/V8TestObj.h:
203         (WebCore::toV8):
204         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
205         (WebCore::toV8):
206         * bindings/v8/V8Binding.h:
207         (WebCore::v8NullWithCheck):
208         (WebCore::v8DateOrNull):
209
210 2012-05-29  Christophe Dumez  <christophe.dumez@intel.com>
211
212         Some Content Security Policy console messages are missing line numbers in JSC
213         https://bugs.webkit.org/show_bug.cgi?id=87558
214
215         Reviewed by Adam Barth.
216
217         Make ScriptController::eventHandlerPosition() behave the same way on
218         JSC than V8. This means that TextPosition::minimumPosition() is
219         returned if parser is null, instead of
220         TextPosition::belowRangePosition(). The line numbers are now correctly
221         printed in the output of Content Security Policy tests.
222
223         Tests: http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url.html
224                http/tests/security/contentSecurityPolicy/javascript-url-blocked.html
225
226         * bindings/js/ScriptController.cpp:
227         (WebCore::ScriptController::eventHandlerPosition):
228
229 2012-05-29  Shawn Singh  <shawnsingh@chromium.org>
230
231         [chromium] make WebTransformationMatrix object usable by non-webkit code
232         https://bugs.webkit.org/show_bug.cgi?id=87315
233
234         Reviewed by James Robinson.
235
236         This change is covered by existing tests and by whether it
237         compiles. There should be no changes in behavior.
238
239         * platform/chromium/support/WebTransformationMatrix.cpp:
240         (WebKit::WebTransformationMatrix::WebTransformationMatrix):
241         (WebKit::WebTransformationMatrix::operator=):
242         (WebKit::WebTransformationMatrix::operator==):
243         (WebKit::WebTransformationMatrix::inverse):
244         (WebKit::WebTransformationMatrix::to2dTransform):
245         (WebKit::WebTransformationMatrix::multiply):
246         (WebKit::WebTransformationMatrix::makeIdentity):
247         (WebKit::WebTransformationMatrix::translate):
248         (WebKit::WebTransformationMatrix::translate3d):
249         (WebKit::WebTransformationMatrix::translateRight3d):
250         (WebKit::WebTransformationMatrix::scale):
251         (WebKit::WebTransformationMatrix::scaleNonUniform):
252         (WebKit::WebTransformationMatrix::scale3d):
253         (WebKit::WebTransformationMatrix::rotate):
254         (WebKit::WebTransformationMatrix::rotate3d):
255         (WebKit::WebTransformationMatrix::skewX):
256         (WebKit::WebTransformationMatrix::skewY):
257         (WebKit::WebTransformationMatrix::applyPerspective):
258         (WebKit::WebTransformationMatrix::blend):
259         (WebKit::WebTransformationMatrix::hasPerspective):
260         (WebKit::WebTransformationMatrix::isInvertible):
261         (WebKit::WebTransformationMatrix::isBackFaceVisible):
262         (WebKit::WebTransformationMatrix::isIdentity):
263         (WebKit::WebTransformationMatrix::isIdentityOrTranslation):
264         (WebKit::WebTransformationMatrix::isIntegerTranslation):
265         (WebKit::WebTransformationMatrix::m11):
266         (WebKit::WebTransformationMatrix::setM11):
267         (WebKit::WebTransformationMatrix::m12):
268         (WebKit::WebTransformationMatrix::setM12):
269         (WebKit::WebTransformationMatrix::m13):
270         (WebKit::WebTransformationMatrix::setM13):
271         (WebKit::WebTransformationMatrix::m14):
272         (WebKit::WebTransformationMatrix::setM14):
273         (WebKit::WebTransformationMatrix::m21):
274         (WebKit::WebTransformationMatrix::setM21):
275         (WebKit::WebTransformationMatrix::m22):
276         (WebKit::WebTransformationMatrix::setM22):
277         (WebKit::WebTransformationMatrix::m23):
278         (WebKit::WebTransformationMatrix::setM23):
279         (WebKit::WebTransformationMatrix::m24):
280         (WebKit::WebTransformationMatrix::setM24):
281         (WebKit::WebTransformationMatrix::m31):
282         (WebKit::WebTransformationMatrix::setM31):
283         (WebKit::WebTransformationMatrix::m32):
284         (WebKit::WebTransformationMatrix::setM32):
285         (WebKit::WebTransformationMatrix::m33):
286         (WebKit::WebTransformationMatrix::setM33):
287         (WebKit::WebTransformationMatrix::m34):
288         (WebKit::WebTransformationMatrix::setM34):
289         (WebKit::WebTransformationMatrix::m41):
290         (WebKit::WebTransformationMatrix::setM41):
291         (WebKit::WebTransformationMatrix::m42):
292         (WebKit::WebTransformationMatrix::setM42):
293         (WebKit::WebTransformationMatrix::m43):
294         (WebKit::WebTransformationMatrix::setM43):
295         (WebKit::WebTransformationMatrix::m44):
296         (WebKit::WebTransformationMatrix::setM44):
297         (WebKit::WebTransformationMatrix::a):
298         (WebKit::WebTransformationMatrix::setA):
299         (WebKit::WebTransformationMatrix::b):
300         (WebKit::WebTransformationMatrix::setB):
301         (WebKit::WebTransformationMatrix::c):
302         (WebKit::WebTransformationMatrix::setC):
303         (WebKit::WebTransformationMatrix::d):
304         (WebKit::WebTransformationMatrix::setD):
305         (WebKit::WebTransformationMatrix::e):
306         (WebKit::WebTransformationMatrix::setE):
307         (WebKit::WebTransformationMatrix::f):
308         (WebKit::WebTransformationMatrix::setF):
309         (WebKit::WebTransformationMatrix::toWebCoreTransform):
310         (WebKit::WebTransformationMatrix::mapRect):
311         (WebKit::WebTransformationMatrix::mapPoint):
312         (WebKit::WebTransformationMatrix::mapQuad):
313         (WebKit::WebTransformationMatrix::projectPoint):
314
315 2012-05-29  Alexis Menard  <alexis.menard@openbossa.org>
316
317         [CSS3 Backgrounds and Borders] Implement box-decoration-break parsing.
318         https://bugs.webkit.org/show_bug.cgi?id=87678
319
320         Reviewed by Eric Seidel.
321
322         Implement the parsing part of box-decoration-break. The specification
323         is located at http://www.w3.org/TR/css3-background/#box-decoration-break.
324         So far Opera implements it. This patch only implements the parsing part of
325         the property. A following patch will implement the rendering part. Despite
326         the rendering part missing it improves http://css3test.com by 1%.
327
328         Test: fast/box-decoration-break/box-decoration-break-parsing.html
329
330         * css/CSSComputedStyleDeclaration.cpp:
331         (WebCore):
332         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
333         * css/CSSParser.cpp:
334         (WebCore::isValidKeywordPropertyAndValue):
335         (WebCore::isKeywordPropertyID):
336         * css/CSSPrimitiveValueMappings.h:
337         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
338         (WebCore):
339         (WebCore::CSSPrimitiveValue::operator EBoxDecorationBreak):
340         * css/CSSProperty.cpp:
341         (WebCore::CSSProperty::isInheritedProperty):
342         * css/CSSPropertyNames.in:
343         * css/CSSValueKeywords.in:
344         * css/StyleBuilder.cpp:
345         (WebCore::StyleBuilder::StyleBuilder):
346         * rendering/style/RenderStyle.h:
347         * rendering/style/RenderStyleConstants.h:
348         * rendering/style/StyleBoxData.cpp:
349         (WebCore::StyleBoxData::StyleBoxData):
350         (WebCore::StyleBoxData::operator==):
351         * rendering/style/StyleBoxData.h:
352         (WebCore::StyleBoxData::boxDecorationBreak):
353         (StyleBoxData):
354
355 2012-05-29  David Barr  <davidbarr@chromium.org>
356
357         [text-overflow: ellipsis] WebKit should ignore the ellipsis for the purpose of dispatching mouse events
358         https://bugs.webkit.org/show_bug.cgi?id=63781
359
360         Reviewed by Eric Seidel.
361
362         "Ellipsing only affects rendering and must not affect layout nor dispatching of pointer events."
363         http://www.w3.org/TR/2012/WD-css3-ui-20120117/#text-overflow
364
365         Test: fast/css/text-overflow-ellipsis-hit-test.html
366
367         * rendering/EllipsisBox.cpp:
368         (WebCore::EllipsisBox::nodeAtPoint): Always return false.
369
370 2012-05-29  Gavin Peters  <gavinp@chromium.org>
371
372         [Chromium] Remove assertions on state in Prerender.cpp
373         https://bugs.webkit.org/show_bug.cgi?id=87746
374
375         Chrome was crashing in the new Prerender API on Google Web Search; this was because the DOM would stop(), setting the
376         state of the Prerenders in the document to Inactive, but an asyncronous GC would later come come along and trigger the
377         removedFromDocument behaviour on each element, including the <link> element launching the prerender.  This causes an
378         assertion failure.
379
380         I believe the late-deletion of the DOM, and the HTMLElement::removedFromDocument calls are legal, and it was the
381         overzealous assertions in Prerender that were inappropriate.
382
383         Reviewed by Adam Barth.
384
385         No new automated tests, working on a Chromium browser test. Manually test by entering many prerender and non-prerendered
386         queries into Google Web Search.
387
388         * platform/chromium/Prerender.cpp:
389         (WebCore::Prerender::Prerender):
390         (WebCore::Prerender::add):
391         (WebCore::Prerender::cancel):
392         (WebCore::Prerender::abandon):
393         * platform/chromium/Prerender.h:
394         (Prerender):
395
396 2012-05-29  Victor Carbune  <victor@rosedu.org>
397
398         Display cues in the controls area
399         https://bugs.webkit.org/show_bug.cgi?id=87591
400
401         Reviewed by Eric Carlson.
402
403         Changed the behaviour to implicitly hide the volume slidebar
404         if the controls are hidden (due mouse moving out of the video
405         area or controls are toggled through JS).
406
407         This seems to be the simplest fix to this issue, otherwise
408         on toggling the display:none property on the controls the
409         volume slidebar might appear below the video.
410
411         Re-enabled failing tests for this functionality.
412
413         * html/shadow/MediaControlElements.cpp:
414         (WebCore::MediaControlPanelElement::makeTransparent): Re-enabled
415         timer to set the display:none property on the controls.
416         * html/shadow/MediaControlRootElement.cpp:
417         (WebCore::MediaControlRootElement::hide): Added a call to hide
418         the volume slider.
419         (WebCore::MediaControlRootElement::makeTransparent): Same.
420         * html/shadow/MediaControlRootElementChromium.cpp:
421         (WebCore::MediaControlRootElementChromium::hide): Same.
422         (WebCore::MediaControlRootElementChromium::makeTransparent): Same.
423
424 2012-05-29  Adrienne Walker  <enne@google.com>
425
426         Fix transparent iframes with composited contents in WK1 on Mac
427         https://bugs.webkit.org/show_bug.cgi?id=76478
428
429         Reviewed by Simon Fraser.
430
431         Test: compositing/iframes/repaint-after-losing-scrollbars.html
432
433         * page/FrameView.cpp:
434         (WebCore::FrameView::useSlowRepaints):
435
436 2012-05-29  David Hyatt  <hyatt@apple.com>
437
438         https://bugs.webkit.org/show_bug.cgi?id=87787
439         
440         [New Multicolumn] Refactor the region and flow thread code so that it can pick up the correct column widths
441         and heights when determining the logical width and height of the flow thread itself.
442
443         This patch adds new virtual methods to RenderRegion: logicalWidthForFlowThreadContent and logicalHeightForFlowThreadContent.
444         For normal regions, these methods return the contentWidth and contentHeight of the regions themselves. For column sets,
445         however, these methods actually return the column widths and heights.
446         
447         This allows the flow thread to properly lay out according to the column width.
448         
449         Region invalidation is also done properly by using these new methods.
450         
451         In some cases the code is actually simplified, since we can get rid of some isHorizontalWritingMode() switching.
452         
453         With this patch the flow thread now actually lays out and paints at the right width (spilling out of the region set in a single unbroken
454         column).
455
456         Reviewed by Dan Bernstein.
457
458         * rendering/RenderFlowThread.cpp:
459         (WebCore::RenderFlowThread::layout):
460         (WebCore::RenderFlowThread::computeLogicalWidth):
461         (WebCore::RenderFlowThread::computeLogicalHeight):
462         * rendering/RenderMultiColumnBlock.cpp:
463         (WebCore::RenderMultiColumnBlock::ensureColumnSets):
464         * rendering/RenderMultiColumnBlock.h:
465         (WebCore::RenderMultiColumnBlock::isRenderMultiColumnBlock):
466         (RenderMultiColumnBlock):
467         (WebCore::toRenderMultiColumnBlock):
468         (WebCore):
469         * rendering/RenderMultiColumnSet.cpp:
470         (WebCore::RenderMultiColumnSet::computeLogicalWidth):
471         (WebCore):
472         (WebCore::RenderMultiColumnSet::computeLogicalHeight):
473         * rendering/RenderMultiColumnSet.h:
474         (WebCore::RenderMultiColumnSet::setColumnWidthAndCount):
475         (RenderMultiColumnSet):
476         * rendering/RenderObject.h:
477         (WebCore::RenderObject::isRenderMultiColumnBlock):
478         * rendering/RenderRegion.cpp:
479         (WebCore::RenderRegion::logicalWidthForFlowThreadContent):
480         (WebCore):
481         (WebCore::RenderRegion::logicalHeightForFlowThreadContent):
482         (WebCore::RenderRegion::layout):
483         * rendering/RenderRegion.h:
484         (RenderRegion):
485
486 2012-05-29  Alec Flett  <alecflett@chromium.org>
487
488         IndexedDB: Align codes and names for IDB-specific and DOM-specific errors/exceptions
489         https://bugs.webkit.org/show_bug.cgi?id=87276
490
491         Reviewed by Tony Chang.
492
493         No new tests. Existing tests have been updated to use the new
494         exception constant values.
495
496         The IDB spec has evolved to DOM4-style DOMExceptions, which are
497         referred to with MixedCase, string-based style names for
498         exceptions rather than UNDERSCORE_CONSTANT_ERR codes. Change to
499         use MixedCase error/exception names, and tease out the
500         IDB-specific exception/error codes/names from the system-level
501         codes. Make sure that the legacy IDB-masked exception code values
502         match the DOM exception values. Make sure that
503         IDBDatabaseException[exception.name] still works.
504
505         * Modules/indexeddb/IDBDatabase.cpp:
506         (WebCore::IDBDatabase::createObjectStore):
507         (WebCore::IDBDatabase::transaction):
508         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
509         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
510         (WebCore::IDBDatabaseBackendImpl::setVersion):
511         (WebCore::IDBDatabaseBackendImpl::transaction):
512         * Modules/indexeddb/IDBDatabaseException.cpp:
513         (IDBDatabaseExceptionNameDescription):
514         (WebCore):
515         (WebCore::IDBDatabaseException::initializeDescription):
516         * Modules/indexeddb/IDBDatabaseException.h:
517         * Modules/indexeddb/IDBDatabaseException.idl:
518         * Modules/indexeddb/IDBObjectStore.cpp:
519         (WebCore::IDBObjectStore::createIndex):
520         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
521         (WebCore::IDBObjectStoreBackendImpl::index):
522         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
523         * Modules/indexeddb/IDBRequest.cpp:
524         (WebCore::IDBRequest::abort):
525         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
526         (WebCore::IDBTransactionBackendImpl::objectStore):
527
528 2012-05-29  David Hyatt  <hyatt@apple.com>
529
530         https://bugs.webkit.org/show_bug.cgi?id=87775
531
532         [New Multicolumn] Make sure RenderMultiColumnSets have their own copy of the count, width and height of their columns. 
533
534         Reviewed by Anders Carlsson.
535
536         * rendering/RenderMultiColumnBlock.cpp:
537         (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
538         (WebCore::RenderMultiColumnBlock::ensureColumnSets):
539         * rendering/RenderMultiColumnBlock.h:
540         (WebCore::RenderMultiColumnBlock::columnWidth):
541         (WebCore::RenderMultiColumnBlock::columnCount):
542         (RenderMultiColumnBlock):
543         * rendering/RenderMultiColumnSet.cpp:
544         (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
545         * rendering/RenderMultiColumnSet.h:
546         (WebCore::RenderMultiColumnSet::columnCount):
547         (WebCore::RenderMultiColumnSet::columnWidth):
548         (WebCore::RenderMultiColumnSet::columnHeight):
549         (RenderMultiColumnSet):
550         (WebCore::RenderMultiColumnSet::setColumnWidthAndCount):
551         (WebCore::RenderMultiColumnSet::setColumnHeight):
552
553 2012-05-29  Simon Fraser  <simon.fraser@apple.com>
554
555         Incomplete repaint on twitter.com when replying to a tweet
556         https://bugs.webkit.org/show_bug.cgi?id=87553
557
558         Reviewed by Dean Jackson.
559         
560         Style changes can cause a compositing layer to change between
561         requiring its own backing store or not, e.g. with the addition
562         or removal of a transform.
563         
564         When that happens, we need to repaint the ancesetor layer that
565         this layer was, or will be drawing into.
566         
567         Factored some code out of layerWillBeRemoved() to be able to
568         also call it from setRequiresOwnBackingStore().
569
570         New manual test, ManualTests/compositing/requires-backing-change.html.
571         I was not able to get an automated pixel test to work.
572
573         * rendering/RenderLayerBacking.cpp:
574         (WebCore::RenderLayerBacking::setRequiresOwnBackingStore):
575         * rendering/RenderLayerCompositor.cpp:
576         (WebCore::RenderLayerCompositor::updateCompositingLayers): Remove trailing whitespace.
577         (WebCore::RenderLayerCompositor::repaintInCompositedAncestor):
578         (WebCore::RenderLayerCompositor::layerWillBeRemoved):
579         * rendering/RenderLayerCompositor.h:
580
581 2012-05-29  David Hyatt  <hyatt@apple.com>
582
583         https://bugs.webkit.org/show_bug.cgi?id=87771
584         
585         [New Multicolumn] Make sure we have one column set by default and add it to the flow thread's region list.
586
587         Reviewed by Anders Carlsson.
588
589         * rendering/RenderMultiColumnBlock.cpp:
590         (WebCore::RenderMultiColumnBlock::ensureColumnSets):
591         * rendering/RenderRegion.cpp:
592         (WebCore::RenderRegion::RenderRegion):
593
594 2012-05-29  John Sullivan  <sullivan@apple.com>
595
596         Update label for blacklisted plug-in
597         https://bugs.webkit.org/show_bug.cgi?id=87767
598         rdar://problem/11550048
599         
600         Reviewed by Kevin Decker.
601
602         * English.lproj/Localizable.strings:
603         Regenerated.
604         
605         * platform/LocalizedStrings.cpp:
606         (WebCore::insecurePluginVersionText):
607         Changed this string.
608
609 2012-05-29  Julien Chaffraix  <jchaffraix@webkit.org>
610
611         REGRESSION(r111742): box-sizing: border-box doesn't work on fixed table layout
612         https://bugs.webkit.org/show_bug.cgi?id=87536
613
614         Reviewed by Tony Chang.
615
616         Tests: fast/table/fixed-table-layout/cell-box-sizing-fixed-table-layout.html
617                fast/table/fixed-table-layout/column-box-sizing-fixed-table-layout.html
618                fast/table/fixed-table-layout/column-group-box-sizing-fixed-table-layout.html
619                fast/table/fixed-table-layout/column-in-column-group-box-sizing-fixed-table-layout.html
620
621         The change in r111742 completely ignored border-sizing (following the table's code lead unfortunately).
622         The issue is that we would count the borders and paddings twice for the border-box case which would lead
623         to the content-box including them too. From a web-author, this behavior is equivalent to ignoring box-sizing.
624
625         * rendering/FixedTableLayout.cpp:
626         (WebCore::FixedTableLayout::calcWidthArray):
627         Reworked the function to properly use computeBorderBoxLogicalWidth() for correctness. This matches
628         what RenderBox and the rendering code does generally. Also refactored the code to avoid the need
629         for local variables and make it more readable.
630
631 2012-05-25  Ojan Vafai  <ojan@chromium.org>
632
633         Absolute positioned elements in a relative positioned CSS3 Flexbox fail to display properly
634         https://bugs.webkit.org/show_bug.cgi?id=58453
635
636         Reviewed by Tony Chang.
637
638         Test: css3/flexbox/align-absolute-child.html
639
640         * rendering/RenderFlexibleBox.cpp:
641         (WebCore::RenderFlexibleBox::prepareChildForPositionedLayout):
642         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
643         (WebCore::RenderFlexibleBox::adjustAlignmentForChild):
644         When adjusting positioned items, adjust their static position, not their location.
645         (WebCore::RenderFlexibleBox::flipForRightToLeftColumn):
646         (WebCore::RenderFlexibleBox::flipForWrapReverse):
647         * rendering/RenderFlexibleBox.h:
648
649 2012-05-29  Abhishek Arya  <inferno@chromium.org>
650
651         Crash due to text fragment destruction when updating first-letter block.
652         https://bugs.webkit.org/show_bug.cgi?id=87751
653
654         Reviewed by Eric Seidel.
655
656         Test: fast/text/text-fragment-first-letter-update-crash.html
657
658         * rendering/RenderObject.cpp:
659         (WebCore::RenderObject::setStyle):
660
661 2012-05-29  David Hyatt  <hyatt@apple.com>
662
663         https://bugs.webkit.org/show_bug.cgi?id=87764
664         
665         Add implementation of checkForPaginationLogicalHeightChange to RenderMultiColumnBlock.
666         
667         Also stub out ensureColumnSets() and write a comment describing how it's going to work.
668
669         Reviewed by Anders Carlsson.
670
671         * rendering/RenderMultiColumnBlock.cpp:
672         (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
673         (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
674         (WebCore):
675         (WebCore::RenderMultiColumnBlock::ensureColumnSets):
676         * rendering/RenderMultiColumnBlock.h:
677         (WebCore::RenderMultiColumnBlock::columnHeight):
678         (WebCore::RenderMultiColumnBlock::setColumnHeight):
679         (RenderMultiColumnBlock):
680
681 2012-05-29  Sheriff Bot  <webkit.review.bot@gmail.com>
682
683         Unreviewed, rolling out r118620.
684         http://trac.webkit.org/changeset/118620
685         https://bugs.webkit.org/show_bug.cgi?id=87760
686
687         This patch causes regression to read an empty file/blob via
688         FileReader (Requested by jianli on #webkit).
689
690         * fileapi/FileReader.cpp:
691         (WebCore::FileReader::stringResult):
692
693 2012-05-29  Andreas Kling  <kling@webkit.org>
694
695         Make StylePropertySet a variable-sized object to reduce memory use.
696         <http://webkit.org/b/87506>
697
698         Reviewed by Antti Koivisto.
699
700         Make immutable StylePropertySet objects variable-sized and allocate exactly
701         the space needed to hold the CSSProperty objects passed at construction.
702         This lets us avoid the memory overhead of Vector<CSSProperty, 4>.
703
704         Renamed StylePropertySet::adopt* to create and createImmutable since they no
705         longer adopt the incoming vector. More cleanup will follow in this area.
706
707         This reduces memory usage across the board - the more CSS declarations,
708         the bigger the benefit. As an example, we save around ~0.5MB on wsj.com.
709
710         * css/CSSComputedStyleDeclaration.cpp:
711         (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
712         * css/CSSParser.cpp:
713         (WebCore::CSSParser::createStylePropertySet):
714         * css/StylePropertySet.cpp:
715         (WebCore::StylePropertySet::createImmutable):
716         (WebCore::StylePropertySet::StylePropertySet):
717         (WebCore::StylePropertySet::~StylePropertySet):
718         (WebCore::StylePropertySet::copyPropertiesFrom):
719         (WebCore::StylePropertySet::removeProperty):
720         (WebCore::StylePropertySet::setProperty):
721         (WebCore::StylePropertySet::parseDeclaration):
722         (WebCore::StylePropertySet::addParsedProperties):
723         (WebCore::StylePropertySet::asText):
724         (WebCore::StylePropertySet::merge):
725         (WebCore::StylePropertySet::addSubresourceStyleURLs):
726         (WebCore::StylePropertySet::removePropertiesInSet):
727         (WebCore::StylePropertySet::findPropertyWithId):
728         (WebCore::StylePropertySet::removeEquivalentProperties):
729         (WebCore::StylePropertySet::copyPropertiesInSet):
730         (WebCore::StylePropertySet::averageSizeInBytes):
731         (SameSizeAsStylePropertySet):
732         (WebCore::StylePropertySet::append):
733         * css/StylePropertySet.h:
734         (WebCore::StylePropertySet::create):
735         (StylePropertySet):
736         (WebCore::StylePropertySet::propertyAt):
737         (WebCore::StylePropertySet::propertyCount):
738         (WebCore::StylePropertySet::isEmpty):
739         (WebCore::StylePropertySet::array):
740         * dom/StyledElement.cpp:
741         (WebCore::StyledElement::updateAttributeStyle):
742
743 2012-05-29  David Hyatt  <hyatt@apple.com>
744
745         https://bugs.webkit.org/show_bug.cgi?id=87759
746         
747         Pull the initial page logical height checking for columns into its own separate function. This
748         will allow the derived RenderMultiColumnBlock class to do its own setup there. It also has the
749         effect of cleaning up layoutBlock even for the existing code.
750
751         Reviewed by Anders Carlsson.
752
753         * rendering/RenderBlock.cpp:
754         (WebCore::RenderBlock::checkForPaginationLogicalHeightChange):
755         (WebCore):
756         (WebCore::RenderBlock::layoutBlock):
757         * rendering/RenderBlock.h:
758         (RenderBlock):
759
760 2012-05-29  Victor Carbune  <victor@rosedu.org>
761
762         Update cue event dispatching for zero and negative duration cues
763         https://bugs.webkit.org/show_bug.cgi?id=85143
764
765         Reviewed by Eric Carlson.
766
767         Updated existing test.
768
769         * html/HTMLMediaElement.cpp:
770         (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Explicitly
771         treated event dispatching for zero and negative duration cues.
772         (WebCore::HTMLMediaElement::textTrackAddCue): Interval tree doesn't
773         handle invalid cues with intervals - negative cues need to be treated
774         as zero-length cues as they are always missed cues anyway.
775         (WebCore::HTMLMediaElement::textTrackRemoveCue): Same.
776
777 2012-05-29  MORITA Hajime  <morrita@google.com>
778
779         ShadowRoot.getElementById() returns removed node.
780         https://bugs.webkit.org/show_bug.cgi?id=62184
781
782         Deregitration of m_elementsById map is done at Element::removedFrom()
783         But the tree scope of the removed node is already reset from a shadow root
784         to a document.
785
786         This change lookup the old shadow root through its parent node and
787         deregitrater the node against it.
788
789         Reviewed by Dimitri Glazkov.
790
791         Test: fast/dom/shadow/get-element-by-id-in-shadow-mutation.html
792
793         * dom/Element.cpp:
794         (WebCore::treeScopeOfParent):
795         (WebCore):
796         (WebCore::Element::removedFrom):
797         * dom/Element.h:
798         (Element):
799         (WebCore::Element::updateId):
800         (WebCore):
801
802 2012-05-29  Dana Jansens  <danakj@chromium.org>
803
804         [chromium] Unoccluded area in surfaces should always be clipped to the rootScissorRect
805         https://bugs.webkit.org/show_bug.cgi?id=87677
806
807         Reviewed by Adrienne Walker.
808
809         When a contributing surface is visited, and we have not visited another
810         surface, then we know the surface is completely unoccluded. However, the
811         root scissor rect should still be applied, and anything outside of it
812         should be considered occluded.
813
814         Unit test: WebKitTests::CCOcclusionTrackerTestTopmostSurfaceIsClippedToScissor
815
816         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
817         (WebCore::RenderSurfaceChromium::targetRenderSurface):
818         (WebCore):
819         * platform/graphics/chromium/RenderSurfaceChromium.h:
820         (RenderSurfaceChromium):
821         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
822         (WebCore::::unoccludedContributingSurfaceContentRect):
823         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
824         (WebCore::CCRenderSurface::targetRenderSurface):
825         (WebCore):
826         * platform/graphics/chromium/cc/CCRenderSurface.h:
827         (CCRenderSurface):
828
829 2012-05-29  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
830
831         [BlackBerry] Refactoring http/proxy authentication to use authcallback mechanism introduced with libcurl
832         https://bugs.webkit.org/show_bug.cgi?id=87706
833
834         Reviewed by Antonio Gomes.
835
836         Because we use authentication callback mechanism of libcurl,
837         which will take care of all the authentication communication
838         between UA and server, so the only thing we need to do is to
839         provide credential information when authentication callback
840         is triggered. By using this we don't need to process
841         intermediate headers for each http authentication scheme.
842
843         Implemented interface function notifyAuthReceived() in
844         NetworkJob to handle the authentication notification from
845         networking thread.
846         When the authentication callback is triggered, we should
847         cancel the current loading request and restart a new one with
848         credential information attached which comes from
849         credentialStorage or user input.
850
851         Internally reviewed by Joe Mason <jmason@rim.com>.
852
853         No new tests since there is no behavior change.
854
855         * platform/network/blackberry/NetworkJob.cpp:
856         (WebCore::NetworkJob::notifyAuthReceived):
857         (WebCore):
858         (WebCore::NetworkJob::handleNotifyHeaderReceived):
859         (WebCore::NetworkJob::sendRequestWithCredentials):
860         * platform/network/blackberry/NetworkJob.h:
861         (NetworkJob):
862
863 2012-05-29  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
864
865         [BlackBerry] http authentication challenge issue when loading subresource
866         https://bugs.webkit.org/show_bug.cgi?id=87660
867
868         Reviewed by Rob Buis.
869
870         We should try to store the credential information as soon as we
871         receive http status notification which indicates that the
872         authentication succeeds, instead of storing credentials when the
873         main resource receives notify done which is too late for loading
874         subresource.
875
876         Internally reviewed by Joe Mason <jmason@rim.com>
877
878         No new tests since there is no change in behavior.
879
880         * platform/network/blackberry/NetworkJob.cpp:
881         (WebCore::NetworkJob::handleNotifyStatusReceived):
882         (WebCore::NetworkJob::handleNotifyClose):
883
884 2012-05-29  Alexey Proskuryakov  <ap@apple.com>
885
886         [Mac] Move DefaultFonts.plist to C++ code
887         https://bugs.webkit.org/show_bug.cgi?id=87560
888         <rdar://problem/11466119>
889
890         Reviewed by Dan Bernstein.
891
892         * DerivedSources.make:
893         * Resources/DefaultFonts.plist.in: Removed.
894         * WebCore.xcodeproj/project.pbxproj:
895         * page/mac/SettingsMac.mm: (WebCore::Settings::initializeDefaultFontFamilies):
896         Instead of having a separate configuration file, just hardcode the settings in C++.
897
898 2012-05-29  Alexei Filippov  <alexeif@chromium.org>
899
900         Web Inspector: Retainers are missing for all objects
901         https://bugs.webkit.org/show_bug.cgi?id=87655
902
903         Reviewed by Yury Semikhatsky.
904
905         * inspector/front-end/HeapSnapshotDataGrids.js:
906         (WebInspector.HeapSnapshotContainmentDataGrid.prototype.setDataSource):
907
908 2012-05-29  Philippe Normand  <pnormand@igalia.com>
909
910         [GStreamer] Video sink doesn't respect WebKit code style
911         https://bugs.webkit.org/show_bug.cgi?id=87693
912
913         Reviewed by Alexis Menard.
914
915         No change in behavior of the sink, this patch only adapts the code
916         style to WebKit's.
917
918         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
919         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
920         (_WebKitVideoSinkPrivate):
921         (webkitVideoSinkTimeoutCallback):
922         (webkitVideoSinkRender):
923         (webkitVideoSinkDispose):
924         (unlockBufferMutex):
925         (webkitVideoSinkUnlock):
926         (webkitVideoSinkUnlockStop):
927         (webkitVideoSinkStop):
928         (webkitVideoSinkStart):
929         (webkitVideoSinkMarshalVoidAndMiniObject):
930         (webkit_video_sink_class_init):
931         (webkitVideoSinkNew):
932         * platform/graphics/gstreamer/VideoSinkGStreamer.h:
933         (_WebKitVideoSink):
934         (_WebKitVideoSinkClass):
935
936 2012-05-29  Roland Takacs  <takacs.roland@stud.u-szeged.hu>
937
938         [Qt] Uninitialized shader compiler when GLES is used
939         https://bugs.webkit.org/show_bug.cgi?id=87712
940
941         The '#if !defined(QT_OPENGL_ES_2)' has been removed before the initialization
942         of shader compiler to compile shader codes for ES-platforms as well.
943
944         Reviewed by Noam Rosenthal.
945
946         * platform/graphics/qt/GraphicsContext3DQt.cpp:
947         (WebCore::GraphicsContext3D::GraphicsContext3D):
948
949 2012-05-29  Taiju Tsuiki  <tzik@chromium.org>
950
951         Add InspectorFileSystemAgent::FrontendProvider
952         https://bugs.webkit.org/show_bug.cgi?id=87635
953
954         InspectorFileSystemAgent needs weak reference to its frontend to perform
955         asynchronous operation.
956
957         Reviewed by Yury Semikhatsky.
958
959         * inspector/InspectorFileSystemAgent.cpp:
960         (InspectorFileSystemAgent::FrontendProvider):
961         (WebCore):
962         (WebCore::InspectorFileSystemAgent::~InspectorFileSystemAgent):
963         (WebCore::InspectorFileSystemAgent::enable):
964         (WebCore::InspectorFileSystemAgent::disable):
965         (WebCore::InspectorFileSystemAgent::setFrontend):
966         (WebCore::InspectorFileSystemAgent::clearFrontend):
967         (WebCore::InspectorFileSystemAgent::restore):
968         (WebCore::InspectorFileSystemAgent::InspectorFileSystemAgent):
969         * inspector/InspectorFileSystemAgent.h:
970         (InspectorFileSystemAgent):
971
972 2012-05-29  Yoshifumi Inoue  <yosin@chromium.org>
973
974         REGRESSION(r109729): The optgroup element's "disabled" attribute has no effect to rendering and selection
975         https://bugs.webkit.org/show_bug.cgi?id=87614
976
977         Reviewed by Kent Tamura.
978
979         This patch adds HTMLOptGroupElement::disabled and isEnabledFormControl
980         methods which was implemented in HTMLFormControlElement at r109729 and
981         updates CSS pseudo class checker to check "optgroup" element.
982
983         Tests: fast/forms/select/optgroup-clicking.html
984                fast/forms/select/optgroup-disabled.html
985                fast/forms/select/optgroup-rendering.html
986
987         * css/SelectorChecker.cpp:
988         (WebCore::SelectorChecker::checkOneSelector): On disabled and enabled pseudo class checker. 
989         We checked tag name "optgroup" in addition isFormControlElement.
990         * css/StyleResolver.cpp:
991         (WebCore::StyleResolver::canShareStyleWithElement): Checks optgroup.disabled.
992         * html/HTMLOptGroupElement.cpp:
993         (WebCore::HTMLOptGroupElement::disabled): Added.
994         * html/HTMLOptGroupElement.h:
995         (HTMLOptGroupElement): Added isEnabledFormControl.
996
997 2012-05-29  Alexander Pavlov  <apavlov@chromium.org>
998
999         [Chromium] [Regression] SELECT popup misplaced when there is not enough vertical space
1000         https://bugs.webkit.org/show_bug.cgi?id=87735
1001
1002         Reviewed by Kent Tamura.
1003
1004         This change fixes the obsolete WebWidget Y-repositioning code for the insufficient vertical space case, not removed in r113418.
1005
1006         No new tests, as popups are not testable in Chromium.
1007
1008         * platform/chromium/PopupContainer.cpp:
1009         (WebCore::PopupContainer::layoutAndCalculateWidgetRect):
1010
1011 2012-05-29  Andrei Bucur  <abucur@adobe.com>
1012
1013         [CSS Regions]Rename NamedFlow::overflow to NamedFlow::overset
1014         https://bugs.webkit.org/show_bug.cgi?id=87491
1015
1016         This patch updates the CSSOM property name overflow to overset. There are no changes in functionality.
1017         Link to spec: http://www.w3.org/TR/2012/WD-css3-regions-20120503/
1018
1019         Reviewed by Andreas Kling.
1020
1021         Test: fast/regions/webkit-named-flow-overset.html
1022
1023         * dom/WebKitNamedFlow.cpp:
1024         (WebCore::WebKitNamedFlow::overset):
1025         * dom/WebKitNamedFlow.h:
1026         (WebKitNamedFlow):
1027         * dom/WebKitNamedFlow.idl:
1028         * rendering/RenderFlowThread.cpp:
1029         (WebCore::RenderFlowThread::RenderFlowThread):
1030         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
1031         * rendering/RenderFlowThread.h:
1032
1033 2012-05-29  Andreas Kling  <kling@webkit.org>
1034
1035         Give StylePropertySet a proper mutability flag.
1036         <http://webkit.org/b/87675>
1037
1038         Reviewed by Antti Koivisto.
1039
1040         Add a flag to StylePropertySet that determines whether it's mutable or not. Only objects
1041         constructed from the CSS parser (by way of StylePropertySet::adopt()) are made immutable.
1042         This is clean-up and prep work for implementing a more efficient storage scheme for immutable
1043         StylePropertySets (fixed-size array instead of vector) as the vast majority of them are
1044         unlikely to ever mutate during their lifetime.
1045
1046         Sprinkled ASSERT(isMutable()) all over StylePropertySet to catch any attempts to modify
1047         an immutable object.
1048
1049         Also made properties() const on StyleRule and friends, which brought some additional code
1050         churn along with it.
1051
1052         * css/CSSComputedStyleDeclaration.cpp:
1053         (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
1054         * css/CSSFontFaceRule.cpp:
1055         (WebCore::CSSFontFaceRule::style):
1056         (WebCore::CSSFontFaceRule::reattach):
1057         * css/CSSFontFaceSrcValue.cpp:
1058         (WebCore::CSSFontFaceSrcValue::addSubresourceStyleURLs):
1059         * css/CSSFontFaceSrcValue.h:
1060         (CSSFontFaceSrcValue):
1061         * css/CSSPageRule.cpp:
1062         (WebCore::CSSPageRule::style):
1063         (WebCore::CSSPageRule::reattach):
1064         * css/CSSPrimitiveValue.cpp:
1065         (WebCore::CSSPrimitiveValue::addSubresourceStyleURLs):
1066         * css/CSSPrimitiveValue.h:
1067         (CSSPrimitiveValue):
1068         * css/CSSReflectValue.cpp:
1069         (WebCore::CSSReflectValue::addSubresourceStyleURLs):
1070         * css/CSSReflectValue.h:
1071         (CSSReflectValue):
1072         * css/CSSStyleRule.cpp:
1073         (WebCore::CSSStyleRule::style):
1074         (WebCore::CSSStyleRule::reattach):
1075         * css/CSSValue.cpp:
1076         (WebCore::CSSValue::addSubresourceStyleURLs):
1077         * css/CSSValue.h:
1078         (CSSValue):
1079         * css/CSSValueList.cpp:
1080         (WebCore::CSSValueList::addSubresourceStyleURLs):
1081         * css/CSSValueList.h:
1082         (CSSValueList):
1083         * css/StylePropertySet.cpp:
1084         (WebCore::StylePropertySet::StylePropertySet):
1085         (WebCore::StylePropertySet::setCSSParserMode):
1086         (WebCore):
1087         (WebCore::StylePropertySet::copyPropertiesFrom):
1088         (WebCore::StylePropertySet::removeShorthandProperty):
1089         (WebCore::StylePropertySet::removeProperty):
1090         (WebCore::StylePropertySet::setProperty):
1091         (WebCore::StylePropertySet::parseDeclaration):
1092         (WebCore::StylePropertySet::addParsedProperties):
1093         (WebCore::StylePropertySet::addParsedProperty):
1094         (WebCore::StylePropertySet::merge):
1095         (WebCore::StylePropertySet::addSubresourceStyleURLs):
1096         (WebCore::StylePropertySet::removePropertiesInSet):
1097         (WebCore::StylePropertySet::findPropertyWithId):
1098         (WebCore::StylePropertySet::removeEquivalentProperties):
1099         (WebCore::StylePropertySet::copyPropertiesInSet):
1100         * css/StylePropertySet.h:
1101         (WebCore::StylePropertySet::adopt):
1102         (WebCore::StylePropertySet::adoptMutable):
1103         (StylePropertySet):
1104         (WebCore::StylePropertySet::isMutable):
1105         * css/StyleResolver.cpp:
1106         (WebCore::StyleResolver::addMatchedProperties):
1107         (WebCore::StyleResolver::collectMatchingRulesForList):
1108         * css/StyleResolver.h:
1109         (StyleResolver):
1110         * css/StyleRule.cpp:
1111         (WebCore::StyleRule::mutableProperties):
1112         (WebCore):
1113         (WebCore::StyleRulePage::mutableProperties):
1114         (WebCore::StyleRuleFontFace::mutableProperties):
1115         * css/StyleRule.h:
1116         (WebCore::StyleRule::properties):
1117         (StyleRule):
1118         (WebCore::StyleRuleFontFace::properties):
1119         (StyleRuleFontFace):
1120         (WebCore::StyleRulePage::properties):
1121         (StyleRulePage):
1122         * dom/ElementAttributeData.cpp:
1123         (WebCore::ElementAttributeData::ensureInlineStyle):
1124         (WebCore::ElementAttributeData::updateInlineStyleAvoidingMutation):
1125         * editing/EditingStyle.cpp:
1126         (WebCore::styleFromMatchedRulesForElement):
1127         * svg/SVGFontFaceElement.cpp:
1128         (WebCore::SVGFontFaceElement::parseAttribute):
1129         (WebCore::SVGFontFaceElement::rebuildFontFace):
1130         (WebCore::SVGFontFaceElement::removedFrom):
1131
1132 2012-05-29  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
1133
1134         [EFL] Refactoring. Get rid of unnecessary singleCharacterString() function
1135         https://bugs.webkit.org/show_bug.cgi?id=87654
1136
1137         Reviewed by Csaba Osztrogonác.
1138
1139         Evas key events already provide key string, so no practical need for singleCharacterString() 
1140         evaluating the event string from keyname.
1141         Modified code related functionality is already covered with fast/events and fast/forms tests.
1142
1143         * platform/efl/EflKeyboardUtilities.cpp:
1144         * platform/efl/PlatformKeyboardEventEfl.cpp:
1145         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
1146
1147 2012-05-29  Ilya Tikhonovsky  <loislo@chromium.org>
1148
1149         Unreviewed: Web Inspector: single line fix after r118742.
1150
1151         * inspector/front-end/HeapSnapshotView.js:
1152         (WebInspector.HeapProfileHeader.prototype.saveToFile):
1153
1154 2012-05-29  Kentaro Hara  <haraken@chromium.org>
1155
1156         Remove m_rootNode and m_selectorChecker from SelectorQuery.h
1157         https://bugs.webkit.org/show_bug.cgi?id=87650
1158
1159         Reviewed by Antti Koivisto.
1160
1161         To avoid parsing CSS selectors every time, I am planning to cache
1162         SelectorQuery objects into a HashMap, which will be defined in
1163         Node::querySelector(). To make the size of SelectorQuery small,
1164         this patch removes m_rootNode and m_selectorChecker from SelectorQuery.h.
1165
1166         Tests: fast/dom/SelectorAPI/*. No change in test results.
1167
1168         * dom/Node.cpp:
1169         (WebCore::Node::querySelector):
1170         (WebCore::Node::querySelectorAll):
1171         * dom/SelectorQuery.cpp:
1172         (WebCore::SelectorQuery::SelectorQuery):
1173         (WebCore):
1174         (WebCore::SelectorQuery::queryAll):
1175         (WebCore::SelectorQuery::queryFirst):
1176         * dom/SelectorQuery.h:
1177         (SelectorQuery):
1178
1179 2012-05-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
1180
1181         Web Inspector: Tabbed Settings Screen
1182         https://bugs.webkit.org/show_bug.cgi?id=87497
1183
1184         Reviewed by Yury Semikhatsky.
1185
1186         Combine settings screen and shortcuts screen
1187         to a single tabbed settings screen.
1188         This will make shortcuts screen more discoverable.
1189
1190         * inspector/front-end/HelpScreen.js:
1191         (WebInspector.HelpScreen): Make titled tamplate optional.
1192         (WebInspector.HelpScreen.prototype._createCloseButton): Extract method.
1193         * inspector/front-end/SettingsScreen.js:
1194         (WebInspector.SettingsScreen): Split initialization and UI construction.
1195         (WebInspector.SettingsScreen.prototype._createSettingsTabView.appendSection):
1196         (WebInspector.SettingsScreen.prototype._createSettingsTabView):
1197         Extract GUI construction method.
1198         (WebInspector.SettingsScreen.prototype._getOrCreateTabbedPane):
1199         Make GUI construction lazy.
1200         (WebInspector.SettingsScreen.prototype.selectTab):
1201         Add method for external tab swithching.
1202         (WebInspector.SettingsScreen.prototype.wasShown):
1203         Make GUI construction lazy.
1204         (WebInspector.SettingsScreenTabbedPane):
1205         Extend class to access protected member.
1206         (WebInspector.SettingsController.prototype._buttonClicked):
1207         Change "showSettingsScreen" visibility and parameters.
1208         (WebInspector.SettingsController.prototype._onHideSettingsScreen):
1209         Preserve settings screen state.
1210         (WebInspector.SettingsController.prototype.showSettingsScreen):
1211         Change method visibility and parameters.
1212         * inspector/front-end/ShortcutsScreen.js:
1213         (WebInspector.ShortcutsScreen): Remove inheritance from HelpScreen.
1214         (WebInspector.ShortcutsScreen.prototype._createShortcutsTabView):
1215         Refactoring of GUI construction.
1216         (WebInspector.ShortcutsSection.prototype.renderSection):
1217         Ditto.
1218         * inspector/front-end/helpScreen.css:
1219         (.help-window-main ::-webkit-scrollbar): Rebind scrollbar settings.
1220         (.help-window-main ::-webkit-resizer): Ditto.
1221         (.help-window-main ::-webkit-scrollbar-thumb:vertical): Ditto.
1222         (.help-window-main ::-webkit-scrollbar-thumb:vertical:active): Ditto.
1223         (.help-window-main ::-webkit-scrollbar-track:vertical): Ditto.
1224         (body:not(.compact) #settings-screen .tabbed-pane): Fix container height.
1225         (#settings-screen .tabbed-pane-header): Ditto.
1226         (#settings-screen .tabbed-pane-header-tabs): Adjust spacing.
1227         (#settings-screen .tabbed-pane-header-tab): Adjust style.
1228         (#settings-screen .help-close-button): Adjust spacing.
1229         (#settings-screen .tabbed-pane-header-tab.selected):
1230         Erase line below active tab.
1231         (#settings-screen .tabbed-pane-content): Adjust spacing.
1232         (#settings-screen .help-content): Ditto.
1233         * inspector/front-end/inspector.js:
1234         (WebInspector.documentKeyDown): Use Settings screen to show shortcuts.
1235
1236 2012-05-29  Ilya Tikhonovsky  <loislo@chromium.org>
1237
1238         Web Inspector: REGRESSION: load heap snapshot doesn't work.
1239         https://bugs.webkit.org/show_bug.cgi?id=87642
1240
1241         HeapSnapshotReceiver interface was introduced.
1242         It declares the API for HeapSnapshotLoader, HeapSnapshotLoaderProxy and HeapSnapshotSaveToFileReceiver.
1243         The HeapProfileHeader was refactored and tests were added.
1244
1245         Reviewed by Yury Semikhatsky.
1246
1247         * inspector/front-end/HeapSnapshotLoader.js:
1248         (WebInspector.HeapSnapshotLoader):
1249         (WebInspector.HeapSnapshotLoader.prototype.startLoading):
1250         (WebInspector.HeapSnapshotLoader.prototype.dispose):
1251         (WebInspector.HeapSnapshotLoader.prototype._reset):
1252         (WebInspector.HeapSnapshotLoader.prototype.finishLoading):
1253         * inspector/front-end/HeapSnapshotProxy.js:
1254         (WebInspector.HeapSnapshotWorker.prototype.startCheckingForLongRunningCalls):
1255         (WebInspector.HeapSnapshotLoaderProxy.prototype.startLoading):
1256         (WebInspector.HeapSnapshotLoaderProxy.prototype.pushJSONChunk):
1257         (WebInspector.HeapSnapshotLoaderProxy.prototype.finishLoading):
1258         * inspector/front-end/HeapSnapshotView.js:
1259         (WebInspector.HeapSnapshotReceiver):
1260         (WebInspector.HeapSnapshotReceiver.prototype.startLoading):
1261         (WebInspector.HeapSnapshotReceiver.prototype.pushJSONChunk):
1262         (WebInspector.HeapSnapshotReceiver.prototype.finishLoading):
1263         (WebInspector.HeapSnapshotReceiver.prototype.dispose):
1264         (WebInspector.HeapProfileHeader):
1265         (WebInspector.HeapProfileHeader.prototype.load):
1266         (WebInspector.HeapProfileHeader.prototype._setupWorker):
1267         (WebInspector.HeapProfileHeader.prototype.dispose):
1268         (WebInspector.HeapProfileHeader.prototype._saveStatusUpdate):
1269         (WebInspector.HeapProfileHeader.prototype.pushJSONChunk):
1270         (WebInspector.HeapProfileHeader.prototype._parsed):
1271         (WebInspector.HeapProfileHeader.prototype.finishHeapSnapshot):
1272         (WebInspector.HeapProfileHeader.prototype.saveToFile):
1273         (WebInspector.HeapProfileHeader.prototype.loadFromFile.onLoad):
1274         (WebInspector.HeapProfileHeader.prototype.loadFromFile):
1275         (WebInspector.HeapProfileHeader.prototype._loadNextChunk):
1276         (WebInspector.HeapProfileHeader.prototype._nextChunkLoaded):
1277         (WebInspector.HeapProfileHeader.prototype._createFileReader):
1278         (WebInspector.HeapSnapshotSaveToFileReceiver):
1279         (WebInspector.HeapSnapshotSaveToFileReceiver.prototype.startLoading):
1280         (WebInspector.HeapSnapshotSaveToFileReceiver.prototype.pushJSONChunk):
1281         (WebInspector.HeapSnapshotSaveToFileReceiver.prototype.finishLoading):
1282         (WebInspector.HeapSnapshotSaveToFileReceiver.prototype.dispose):
1283         (WebInspector.HeapSnapshotSaveToFileReceiver.prototype._startSavingSnapshot):
1284         (WebInspector.HeapSnapshotSaveToFileReceiver.prototype._saveStatusUpdate):
1285         * inspector/front-end/ProfilesPanel.js:
1286         (WebInspector.ProfilesPanel.prototype._createFileSelectorElement.onChange):
1287         (WebInspector.ProfilesPanel.prototype._createFileSelectorElement):
1288         (WebInspector.ProfilesPanel.prototype._loadFromFile):
1289
1290 2012-05-29  Eric Seidel  <eric@webkit.org>
1291
1292         Add HTMLIFrameElement.seamless property accessor now that seamless is enabled and works
1293         https://bugs.webkit.org/show_bug.cgi?id=87708
1294
1295         Reviewed by Adam Barth.
1296
1297         Lots of tests in fast/frames/seamless cover this property.
1298
1299         * html/HTMLIFrameElement.idl:
1300
1301 2012-05-29  Kentaro Hara  <haraken@chromium.org>
1302
1303         [Performance] Optimize querySelector() and querySelectorAll() by removing
1304         redundant dummy style sheet creations
1305         https://bugs.webkit.org/show_bug.cgi?id=87627
1306
1307         Reviewed by Antti Koivisto.
1308
1309         This patch improves performance of querySelector("#id") by 4.2% ~ 17.7%
1310         in Safari and Chromium.
1311
1312         Performance tests: https://bugs.webkit.org/attachment.cgi?id=144288
1313
1314         The performance test results in my desktop:
1315
1316         [Safari/Mac]
1317         document.querySelector("#headId") :               13.60 ms =>  12.40 ms  +9.68%
1318         document.querySelector("#duplicatedId") :         14.80 ms =>  14.20 ms  +4.23%
1319         document.querySelector("#tailId") :               13.80 ms =>  12.20 ms  +13.11%
1320         document.querySelectorAll("#headId") :            17.80 ms =>  14.60 ms  +21.92%
1321         document.querySelectorAll("#duplicatedId") :     513.80 ms => 471.60 ms  +8.95%
1322         document.querySelectorAll("#tailId") :            19.20 ms =>  16.40 ms  +17.07%
1323         document.querySelector("h1") :                    14.40 ms =>  13.60 ms  +5.88%
1324         document.querySelector("h2") :                    14.80 ms =>  13.80 ms  +7.25%
1325         document.querySelector("h3") :                   312.00 ms => 306.60 ms  +1.76%
1326         document.querySelectorAll("h1") :                322.00 ms => 314.60 ms  +2.35%
1327         document.querySelectorAll("h2") :                481.00 ms => 420.60 ms  +14.36%
1328         document.querySelectorAll("h3") :                326.80 ms => 315.80 ms  +3.48%
1329         document.querySelector(".headClass") :            16.20 ms =>  15.40 ms  +5.19%
1330         document.querySelector(".duplicatedClass") :      17.00 ms =>  15.40 ms  +10.39%
1331         document.querySelector(".tailClass") :           369.60 ms => 362.60 ms  +1.93%
1332         document.querySelectorAll(".headClass") :        388.20 ms => 377.60 ms  +2.81%
1333         document.querySelectorAll(".duplicatedClass") :  605.00 ms => 581.20 ms  +4.09%
1334         document.querySelectorAll(".tailClass") :        401.60 ms => 391.40 ms  +2.61%
1335
1336         [Chromium/Linux]
1337         ocument.querySelector("#headId") :                16.00 ms =>  13.60 ms  +17.65%
1338         document.querySelector("#duplicatedId") :         16.80 ms =>  15.40 ms  +9.09%
1339         document.querySelector("#tailId") :               16.00 ms =>  13.60 ms  +17.65%
1340         document.querySelectorAll("#headId") :            29.00 ms =>  25.00 ms  +16.00%
1341         document.querySelectorAll("#duplicatedId") :     561.40 ms => 505.20 ms  +11.12%
1342         document.querySelectorAll("#tailId") :            34.00 ms =>  26.80 ms  +26.87%
1343         document.querySelector("h1") :                    18.20 ms =>  15.80 ms  +15.19%
1344         document.querySelector("h2") :                    19.00 ms =>  16.60 ms  +14.46%
1345         document.querySelector("h3") :                   280.40 ms => 274.00 ms  +2.34%
1346         document.querySelectorAll("h1") :                300.20 ms => 365.20 ms  -17.80%
1347         document.querySelectorAll("h2") :                487.60 ms => 504.20 ms  -3.29%
1348         document.querySelectorAll("h3") :                349.40 ms => 324.00 ms  +7.84%
1349         document.querySelector(".headClass") :            18.40 ms =>  16.00 ms  +15.00%
1350         document.querySelector(".duplicatedClass") :      19.40 ms =>  16.20 ms  +19.75%
1351         document.querySelector(".tailClass") :           349.60 ms => 345.40 ms  +1.22%
1352         document.querySelectorAll(".headClass") :        382.80 ms => 378.20 ms  +1.22%
1353         document.querySelectorAll(".duplicatedClass") :  550.80 ms => 574.20 ms  -4.08%
1354         document.querySelectorAll(".tailClass") :        381.00 ms => 387.00 ms  -1.55%
1355
1356         I've found that StyleSheetInternal::create() in CSSParser::parseSelector()
1357         is a bottleneck of querySelector() and querySelectorAll().
1358
1359         void CSSParser::parseSelector(const String& string, CSSSelectorList& selectorList)
1360         {
1361             RefPtr<StyleSheetInternal> dummyStyleSheet = StyleSheetInternal::create();
1362             setStyleSheet(dummyStyleSheet.get());
1363             ...;
1364         }
1365
1366         This patch removes a dummy style sheet. Previously the dummy style sheet
1367         was needed to avoid null checks of m_styleSheet in CSSGrammer.y.
1368         This patch fixes CSSGrammer.y so that it works fine with a null m_styleSheet.
1369
1370         Tests: fast/dom/SelectorAPI/*. No change in the test results.
1371
1372         * css/CSSGrammar.y:
1373         * css/CSSParser.cpp:
1374         (WebCore::CSSParser::parseSelector):
1375
1376 2012-05-29  Nikolas Zimmermann  <nzimmermann@rim.com>
1377
1378         SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented
1379         https://bugs.webkit.org/show_bug.cgi?id=15495
1380
1381         Reviewed by Rob Buis.
1382
1383         Finish SVGViewSpec implementation and expose it to the Web. Numerous smaller bugs are fixed:
1384         - SVGViewSpec and all of its contents should be read-only. Enforce that and test it.
1385           Add a new enum to SVGPropertyInfo so that each SVGAnimatedProperty knows if its content is supposed to be read-write or read-only.
1386         - Make the 'transform' attribute of SVGViewSpec exposable by switching to a SVGTransformListProperty - it can now be accessed from JS.
1387         - Assure that following XXXString methods are in sync with the corresponding SVG DOM interfaces
1388             readonly attribute DOMString viewBoxString;
1389             readonly attribute DOMString preserveAspectRatioString;
1390             readonly attribute DOMString transformString;
1391             readonly attribute DOMString viewTargetString;
1392         - Cleanup code in svg/properties that was intended to handle SVGViewSpec. Turns out lot of the complexity was unncessary, and can be removed.
1393         - Move SVGFitToViewBox to the same pattern SVGZoomAndPan uses since two days, that avoids any virtual function calls for attribute parsing.
1394         - Create/expose ObjectiveC/JS bindings for SVGViewSpec.
1395         - Enable SVGViewSpec constructor.
1396
1397         Tests: svg/custom/linking-a-03-b-all-expected.svg
1398                svg/dom/SVGViewSpec-defaults.html
1399                svg/dom/SVGViewSpec.html
1400                svg/dom/complex-svgView-specification.html
1401                svg/dom/viewspec-parser.html
1402
1403         * CMakeLists.txt:
1404         * DerivedSources.cpp:
1405         * DerivedSources.make:
1406         * DerivedSources.pri:
1407         * GNUmakefile.list.am:
1408         * Target.pri:
1409         * WebCore.gyp/WebCore.gyp:
1410         * WebCore.gypi:
1411         * WebCore.order:
1412         * WebCore.vcproj/WebCore.vcproj:
1413         * WebCore.xcodeproj/project.pbxproj:
1414         * bindings/js/JSSVGLengthCustom.cpp:
1415         (WebCore::JSSVGLength::setValue):
1416         (WebCore::JSSVGLength::convertToSpecifiedUnits):
1417         * bindings/objc/DOMSVG.h:
1418         * bindings/scripts/CodeGeneratorJS.pm:
1419         (GenerateImplementation):
1420         (NativeToJSValue):
1421         * bindings/scripts/CodeGeneratorObjC.pm:
1422         (GenerateImplementation):
1423         * bindings/scripts/CodeGeneratorV8.pm:
1424         (GenerateNormalAttrGetter):
1425         (GenerateNormalAttrSetter):
1426         (GenerateFunctionCallback):
1427         * bindings/v8/custom/V8SVGLengthCustom.cpp:
1428         (WebCore::V8SVGLength::valueAccessorSetter):
1429         (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
1430         * page/DOMWindow.idl:
1431         * rendering/svg/RenderSVGResourcePattern.cpp:
1432         (WebCore::RenderSVGResourcePattern::buildTileImageTransform):
1433         * svg/SVGFitToViewBox.cpp:
1434         * svg/SVGFitToViewBox.h:
1435         (SVGFitToViewBox):
1436         (WebCore::SVGFitToViewBox::parseAttribute):
1437         * svg/SVGMarkerElement.cpp:
1438         (WebCore::SVGMarkerElement::orientTypePropertyInfo):
1439         (WebCore::SVGMarkerElement::parseAttribute):
1440         (WebCore::SVGMarkerElement::synchronizeOrientType):
1441         (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper):
1442         * svg/SVGPathElement.cpp:
1443         (WebCore::SVGPathElement::dPropertyInfo):
1444         (WebCore::SVGPathElement::svgAttributeChanged):
1445         (WebCore::SVGPathElement::pathByteStream):
1446         (WebCore::SVGPathElement::lookupOrCreateDWrapper):
1447         (WebCore::SVGPathElement::synchronizeD):
1448         * svg/SVGPathSegWithContext.h:
1449         (WebCore::SVGPathSegWithContext::animatedProperty):
1450         * svg/SVGPatternElement.cpp:
1451         (WebCore::SVGPatternElement::parseAttribute):
1452         * svg/SVGPolyElement.cpp:
1453         (WebCore::SVGPolyElement::pointsPropertyInfo):
1454         (WebCore::SVGPolyElement::parseAttribute):
1455         (WebCore::SVGPolyElement::synchronizePoints):
1456         (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper):
1457         * svg/SVGRect.h:
1458         * svg/SVGSVGElement.cpp:
1459         (WebCore::SVGSVGElement::~SVGSVGElement):
1460         (WebCore::SVGSVGElement::currentView):
1461         (WebCore::SVGSVGElement::parseAttribute):
1462         (WebCore::SVGSVGElement::currentViewBoxRect):
1463         (WebCore::SVGSVGElement::viewBoxToViewTransform):
1464         (WebCore::SVGSVGElement::setupInitialView):
1465         (WebCore::SVGSVGElement::inheritViewAttributes):
1466         * svg/SVGSVGElement.h:
1467         (SVGSVGElement):
1468         * svg/SVGSVGElement.idl:
1469         * svg/SVGSymbolElement.cpp:
1470         (WebCore::SVGSymbolElement::parseAttribute):
1471         * svg/SVGTests.cpp:
1472         (WebCore::SVGTests::requiredFeaturesPropertyInfo):
1473         (WebCore::SVGTests::requiredExtensionsPropertyInfo):
1474         (WebCore::SVGTests::systemLanguagePropertyInfo):
1475         (WebCore::SVGTests::synchronizeRequiredFeatures):
1476         (WebCore::SVGTests::synchronizeRequiredExtensions):
1477         (WebCore::SVGTests::synchronizeSystemLanguage):
1478         * svg/SVGTextContentElement.cpp:
1479         (WebCore::SVGTextContentElement::textLengthPropertyInfo):
1480         (WebCore::SVGTextContentElement::synchronizeTextLength):
1481         (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper):
1482         * svg/SVGViewElement.cpp:
1483         (WebCore::SVGViewElement::parseAttribute):
1484         * svg/SVGViewElement.h:
1485         * svg/SVGViewSpec.cpp:
1486         (WebCore::SVGViewSpec::viewBoxPropertyInfo):
1487         (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo):
1488         (WebCore::SVGViewSpec::transformPropertyInfo):
1489         (WebCore::SVGViewSpec::SVGViewSpec):
1490         (WebCore::SVGViewSpec::viewBoxIdentifier):
1491         (WebCore::SVGViewSpec::preserveAspectRatioIdentifier):
1492         (WebCore::SVGViewSpec::transformIdentifier):
1493         (WebCore::SVGViewSpec::setZoomAndPan):
1494         (WebCore::SVGViewSpec::setTransformString):
1495         (WebCore::SVGViewSpec::transformString):
1496         (WebCore::SVGViewSpec::viewBoxString):
1497         (WebCore::SVGViewSpec::preserveAspectRatioString):
1498         (WebCore::SVGViewSpec::viewTarget):
1499         (WebCore::SVGViewSpec::transform):
1500         (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper):
1501         (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
1502         (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper):
1503         (WebCore::SVGViewSpec::reset):
1504         (WebCore::SVGViewSpec::parseViewSpec):
1505         * svg/SVGViewSpec.h:
1506         (WebCore::SVGViewSpec::~SVGViewSpec):
1507         (SVGViewSpec):
1508         (WebCore::SVGViewSpec::create):
1509         (WebCore::SVGViewSpec::setViewTargetString):
1510         (WebCore::SVGViewSpec::setZoomAndPan):
1511         (WebCore::SVGViewSpec::contextElement):
1512         (WebCore::SVGViewSpec::resetContextElement):
1513         (WebCore::SVGViewSpec::transformBaseValue):
1514         (WebCore::SVGViewSpec::viewBoxAnimated):
1515         (WebCore::SVGViewSpec::viewBox):
1516         (WebCore::SVGViewSpec::viewBoxBaseValue):
1517         (WebCore::SVGViewSpec::setViewBoxBaseValue):
1518         (WebCore::SVGViewSpec::preserveAspectRatioAnimated):
1519         (WebCore::SVGViewSpec::preserveAspectRatio):
1520         (WebCore::SVGViewSpec::preserveAspectRatioBaseValue):
1521         (WebCore::SVGViewSpec::setPreserveAspectRatioBaseValue):
1522         * svg/SVGViewSpec.idl:
1523         * svg/properties/SVGAnimatedProperty.h:
1524         (WebCore::SVGAnimatedProperty::isReadOnly):
1525         (WebCore::SVGAnimatedProperty::setIsReadOnly):
1526         (SVGAnimatedProperty):
1527         (WebCore::SVGAnimatedProperty::lookupOrCreateWrapper):
1528         (WebCore::SVGAnimatedProperty::lookupWrapper):
1529         (WebCore::SVGAnimatedProperty::SVGAnimatedProperty):
1530         * svg/properties/SVGAnimatedPropertyMacros.h:
1531         (WebCore::SVGSynchronizableAnimatedProperty::synchronize):
1532         (SVGSynchronizableAnimatedProperty):
1533         * svg/properties/SVGAnimatedPropertySynchronizer.h: Removed.
1534         * svg/properties/SVGAttributeToPropertyMap.h:
1535         * svg/properties/SVGListProperty.h:
1536         * svg/properties/SVGListPropertyTearOff.h:
1537         (SVGListPropertyTearOff):
1538         (WebCore::SVGListPropertyTearOff::isReadOnly):
1539         * svg/properties/SVGPathSegListPropertyTearOff.h:
1540         (SVGPathSegListPropertyTearOff):
1541         (WebCore::SVGPathSegListPropertyTearOff::isReadOnly):
1542         * svg/properties/SVGProperty.h:
1543         (SVGProperty):
1544         * svg/properties/SVGPropertyInfo.h:
1545         (WebCore::SVGPropertyInfo::SVGPropertyInfo):
1546         (SVGPropertyInfo):
1547         * svg/properties/SVGPropertyTearOff.h:
1548         (WebCore::SVGPropertyTearOff::isReadOnly):
1549         * svg/properties/SVGStaticListPropertyTearOff.h:
1550         (SVGStaticListPropertyTearOff):
1551         (WebCore::SVGStaticListPropertyTearOff::isReadOnly):
1552
1553 2012-05-29  Kent Tamura  <tkent@chromium.org>
1554
1555         REGRESSION (r90971): the cursor is painted “behind” the placeholder text
1556         https://bugs.webkit.org/show_bug.cgi?id=87155
1557
1558         Reviewed by Hajime Morita.
1559
1560         This regression happened only on platforms on which
1561         RenderTheme::shouldShowPlaceholderWhenFocused() returns true.
1562
1563         Because the order of renderers for the editable node and the placeholder
1564         node was:
1565          - A renderer for the editable node
1566          - A renderer for the placeholder node,
1567         The text caret was painted, then the palceholder was painted.
1568
1569         We should not use z-index in the built-in shadow nodes. So the patch
1570         fixes this bug by re-ordering these renderers.
1571
1572         Tests: fast/forms/input-placeholder-paint-order-2.html
1573                fast/forms/input-placeholder-paint-order.html
1574                fast/forms/textarea/textarea-placeholder-paint-order-2.html
1575                fast/forms/textarea/textarea-placeholder-paint-order.html
1576
1577         * html/HTMLTextFormControlElement.cpp:
1578         (WebCore::HTMLTextFormControlElement::fixPlaceholderRenderer):
1579         Added. Reorder the order of renderers so that the placeholder renderer
1580         precedes the inner text renderer.
1581         * html/HTMLTextFormControlElement.h: Add fixPlaceholderRenderer() declaration.
1582
1583         * html/HTMLTextAreaElement.cpp:
1584         (WebCore::HTMLTextAreaElement::attach): Calls fixPlaceholderRenderer().
1585         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
1586         ditto. Also, use innerTextElement() to improvde code readability.
1587         * html/HTMLTextAreaElement.h:
1588         (HTMLTextAreaElement): Overrides attach().
1589
1590         * html/TextFieldInputType.cpp:
1591         (WebCore::TextFieldInputType::updatePlaceholderText):
1592         Calls fixPlaceholderRenderer().
1593         (WebCore::TextFieldInputType::attach): ditto.
1594         * html/TextFieldInputType.h:
1595         (TextFieldInputType): Overrides attach().
1596
1597 2012-05-28  Kentaro Hara  <haraken@chromium.org>
1598
1599         [V8] Implement V8Binding::v8Null(isolate) and use it in CodeGeneratorV8.pm
1600         https://bugs.webkit.org/show_bug.cgi?id=87692
1601
1602         Reviewed by Adam Barth.
1603
1604         Since v8::Null(isolate) crashes if we pass a NULL isolate, we are planning
1605         to pass Isolate to v8::Null() in the following steps:
1606
1607         [1] Implement V8Bindings::v8Null(isolate). v8Null(isolate) does the NULL check.
1608         If isolate is NULL, v8Null(isolate) calls v8::Null(). Otherwise,
1609         v8Null(isolate) calls v8::Null(isolate).
1610
1611         [2] In V8 bindings, we replace v8::Null() with v8::Null(isolate) for a non-optional
1612         'isolate' parameter. (e.g. void foo(..., Isolate* isolate) { v8::Null(); } )
1613
1614         [3] In V8 bindings, we replace v8::Null() with v8Null(isolate) for an optional
1615         'isolate' parameter. (e.g. void foo(..., Isolate* isolate = 0) { v8::Null(); } )
1616
1617         This bug fixes [1] by implementing V8Binding::v8Null(isolate). Also this patch uses
1618         V8Binding::v8Null(isolate) in bindings/v8/*.{h,cpp}.
1619
1620         No tests. No behavior change.
1621
1622         * bindings/scripts/CodeGeneratorV8.pm:
1623         (GenerateHeader):
1624         (NativeToJSValue):
1625         * bindings/scripts/test/V8/V8Float64Array.h:
1626         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1627         (WebCore::toV8):
1628         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1629         (WebCore::toV8):
1630         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1631         (WebCore::toV8):
1632         * bindings/scripts/test/V8/V8TestEventTarget.h:
1633         (WebCore::toV8):
1634         * bindings/scripts/test/V8/V8TestException.h:
1635         (WebCore::toV8):
1636         * bindings/scripts/test/V8/V8TestInterface.h:
1637         (WebCore::toV8):
1638         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1639         (WebCore::toV8):
1640         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1641         (WebCore::toV8):
1642         * bindings/scripts/test/V8/V8TestNode.h:
1643         (WebCore::toV8):
1644         * bindings/scripts/test/V8/V8TestObj.h:
1645         (WebCore::toV8):
1646         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1647         (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetter):
1648         (WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetter):
1649         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
1650         (WebCore::toV8):
1651         * bindings/v8/V8Binding.h:
1652         (WebCore::v8Null):
1653         (WebCore):
1654         (WebCore::v8DateOrNull):
1655         * bindings/v8/V8DOMWrapper.cpp:
1656         * bindings/v8/V8DOMWrapper.h:
1657         (WebCore):
1658
1659 2012-05-28  Kent Tamura  <tkent@chromium.org>
1660
1661         Fix a crash in HTMLFormControlElement::disabled().
1662         https://bugs.webkit.org/show_bug.cgi?id=86534
1663
1664         Reviewed by Ryosuke Niwa.
1665
1666         Stop to hold pointers of fildset and legend elements. We can avoid it by
1667         holding ancestor's disabled state.
1668
1669         The ancesotr's disabled state should be invalidated when
1670          - fieldset's disabled value is changed.
1671          - fieldset's children is updated because a legend position might be changed.
1672          - A form control is attached to or detached from a tree.
1673
1674         No new tests. It's almost impossible to make a reliable test.
1675
1676         * html/HTMLFieldSetElement.cpp:
1677         (WebCore::HTMLFieldSetElement::invalidateDisabledStateUnder):
1678         Added. Invalidate disabled state of form controls under the specified node.
1679         (WebCore::HTMLFieldSetElement::disabledAttributeChanged):
1680         Uses invalidateDisabledStateUnder().
1681         (WebCore::HTMLFieldSetElement::childrenChanged):
1682         Added new override function. We need invalidate disabled state of form
1683         controls under legend elements.
1684
1685         * html/HTMLFieldSetElement.h:
1686         (HTMLFieldSetElement): Add invalidateDisabledStateUnder() and childrenChanged().
1687
1688         * html/HTMLFormControlElement.cpp:
1689         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
1690         Remove initialization of the removed data members.
1691         Initialize m_ancestorDisabledState.
1692         (WebCore::HTMLFormControlElement::updateAncestorDisabledState):
1693         Update m_ancestorDisabledState. It should be
1694         AncestorDisabledStateDisabled if the control is under a disabled
1695         fieldset and not under the first legend child of the disabled filedset.
1696         (WebCore::HTMLFormControlElement::ancestorDisabledStateWasChanged):
1697         Invalidate m_ancestorDisabledState.
1698         (WebCore::HTMLFormControlElement::insertedInto): ditto.
1699         (WebCore::HTMLFormControlElement::removedFrom): ditto.
1700         (WebCore::HTMLFormControlElement::disabled):
1701         Calls updateAncestorDisabledState() if needed.
1702         (WebCore::HTMLFormControlElement::recalcWillValidate):
1703         Remove unnecessary check for m_legendAncestor.
1704
1705         * html/HTMLFormControlElement.h:
1706         (HTMLFormControlElement):
1707         - Rename updateFieldSetAndLegendAncestor() to updateAncestorDisabledState(), and make it private.
1708         - Remove m_fieldSetAncestor, m_legendAncestor, and m_fieldSetAncestorValid.
1709         - Add m_ancestorDisabledState.
1710
1711 2012-05-28  Takashi Toyoshima  <toyoshim@chromium.org>
1712
1713         [WebSocket] Receiving reserved close codes, 1005, 1006, and 1015 must appear as code=1006 and wasClean=false
1714         https://bugs.webkit.org/show_bug.cgi?id=87084
1715
1716         Reviewed by Kent Tamura.
1717
1718         Status codes 1005, 1006, and 1015 are forbidden to be sent in actual close frames.
1719         If a client received these frames, the client should handle them as broken.
1720         Close frames containing invalid body size are the same as these forbidden cases.
1721         Update close-code-and-reason tests to verify this patch.
1722
1723         * Modules/websockets/WebSocket.cpp: Handle AbnormalClosure as wasClean == false
1724         (WebCore::WebSocket::didClose):
1725         * Modules/websockets/WebSocketChannel.cpp: Handle close frames' status code carefully
1726         (WebCore::WebSocketChannel::processFrame):
1727         * Modules/websockets/WebSocketChannel.h: Update on newly defined close event codes
1728
1729 2012-05-28  Kentaro Hara  <haraken@chromium.org>
1730
1731         [V8] Avoid passing NULL to an 'isolate' parameter
1732         https://bugs.webkit.org/show_bug.cgi?id=87689
1733
1734         Reviewed by Adam Barth.
1735
1736         v8::Null(isolate) crashes if we pass a NULL isolate.
1737         Thus we are planning to replace v8::Null()s in a following way:
1738
1739         - Implement V8Bindings::v8Null(isolate). v8Null(isolate) does the NULL check.
1740         If isolate is NULL, v8Null(isolate) calls v8::Null(). Otherwise,
1741         v8Null(isolate) calls v8::Null(isolate).
1742
1743         - In V8 bindings, we replace v8::Null() with v8::Null(isolate) for a
1744         non-optional 'isolate' parameter.
1745         (e.g. void foo(..., Isolate* isolate) { v8::Null(); } )
1746
1747         - In V8 bindings, we replace v8::Null() with v8Null(isolate) for an
1748         optional 'isolate' parameter.
1749         (e.g. void foo(..., Isolate* isolate = 0) { v8::Null(); } )
1750
1751         However, currently we cannot do the replacement mechanically, since some code
1752         pass NULL to a non-optional 'isolate' parameter. In other words, currently
1753         "non-optional" does not guarantee that 'isolate' is not NULL.
1754
1755         This patch removes all the code that passes NULL to a non-optional 'isolate'
1756         parameter. This will enable us to achieve the replacement mechanically.
1757
1758         No tests. No behavior change.
1759
1760         * bindings/scripts/CodeGeneratorV8.pm:
1761         (GenerateCallbackImplementation):
1762         (NativeToJSValue):
1763         * bindings/scripts/test/V8/V8TestCallback.cpp:
1764         (WebCore::V8TestCallback::callbackWithClass1Param):
1765         (WebCore::V8TestCallback::callbackWithClass2Param):
1766         (WebCore::V8TestCallback::callbackWithStringList):
1767         (WebCore::V8TestCallback::callbackRequiresThisToPass):
1768         * bindings/scripts/test/V8/V8TestObj.cpp:
1769         (WebCore::V8TestObj::installPerContextProperties):
1770         * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
1771         (WebCore::V8SQLStatementErrorCallback::handleEvent):
1772         * bindings/v8/custom/V8MutationCallbackCustom.cpp:
1773         (WebCore::V8MutationCallback::handleEvent):
1774
1775 2012-05-28  Kent Tamura  <tkent@chromium.org>
1776
1777         Form controls in <fieldset disabled> should not be validated.
1778         https://bugs.webkit.org/show_bug.cgi?id=87381
1779
1780         Reviewed by Hajime Morita.
1781
1782         We need to use disabeld() instead of m_disabled to calculate
1783         willValidate property. Also, we need to update willValidate if
1784         necessary.
1785
1786         Test: fast/forms/fieldset/validation-in-fieldset.html
1787
1788         * html/HTMLFieldSetElement.cpp:
1789         (WebCore::HTMLFieldSetElement::disabledAttributeChanged):
1790          - Do not traverse this.
1791          - Calls ancestorDisabledStateWasChanged() instead of
1792           setNeedsStyleRecalc() because we'd like to do additional tasks.
1793         * html/HTMLFormControlElement.cpp:
1794         (WebCore::HTMLFormControlElement::ancestorDisabledStateWasChanged):
1795         Added. Just calls disabledAttributeChanged().
1796         (WebCore::HTMLFormControlElement::parseAttribute):
1797         Do not call setNeedsWillValidateCheck() whenever an attribute is updated.
1798         It should be called only if disabled or readonly attribute is updated.
1799         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
1800         Add setNeedsWillValidateCheck(). It was moved from parseAttribute().
1801         (WebCore::HTMLFormControlElement::insertedInto):
1802         Invalidate ancestor information.
1803         (WebCore::HTMLFormControlElement::recalcWillValidate):
1804         Use disabled() instead of m_disabled. disabled() takes care of
1805         ancestor's disabled state.
1806         * html/HTMLFormControlElement.h:
1807         (HTMLFormControlElement):
1808
1809 2012-05-28  Rakesh KN  <rakesh.kn@motorola.com>
1810
1811         [Forms] HTMLFieldSetElement.idl doesn't have elements attribute.
1812         https://bugs.webkit.org/show_bug.cgi?id=80110
1813
1814         Reviewed by Kent Tamura.
1815
1816         Implemented elements attribute for HTMLFieldSetElement. This is spec'ed at
1817         http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#dom-fieldset-elements
1818
1819         Tests: fast/forms/fieldset/fieldset-elements.html
1820                fast/forms/fieldset/fieldset-form-collection-radionode-list.html
1821
1822         * dom/Node.cpp:
1823         (WebCore::Node::radioNodeList):
1824         Extended ASSERT to assert if not HTMLFieldSetElement or HTMLFormElement.
1825         * html/HTMLFieldSetElement.cpp:
1826         (WebCore::HTMLFieldSetElement::elements):
1827         Elements attribute implementation.
1828         (WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
1829         Update the formcontrol elements collections if dom tree got modified.
1830         (WebCore::HTMLFieldSetElement::associatedElements):
1831         FormControl elements collection accessor.
1832         (WebCore::HTMLFieldSetElement::length):
1833         Number of elements in the fieldset group.
1834         * html/HTMLFieldSetElement.h:
1835         Added elements collection member and form control collection members.
1836         * html/HTMLFieldSetElement.idl:
1837         Added elements attribute.
1838         * html/HTMLFormCollection.cpp:
1839         (WebCore::HTMLFormCollection::formControlElements):
1840         Added support for HTMLFieldSetElement, based on base element type gets its associated elements.
1841         (WebCore::HTMLFormCollection::numberOfFormControlElements): Ditto
1842         (WebCore::HTMLFormCollection::getNamedFormItem): Process image elements only for form element.
1843         (WebCore::HTMLFormCollection::updateNameCache): Ditto
1844         * html/RadioNodeList.cpp:
1845         (WebCore::RadioNodeList::RadioNodeList):
1846         DynamicSubTree root element is decided based on the type whether base element is form or fieldset element.
1847         Renamed m_formElement to m_baseElement.
1848         (WebCore::RadioNodeList::~RadioNodeList):
1849         Renamed m_formElement to m_baseElement.
1850         (WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
1851         Form element specific changes moved under form element check.
1852         * html/RadioNodeList.h:
1853         (WebCore::RadioNodeList::create):
1854         (RadioNodeList):
1855         Renamed m_formElement to m_baseElement.
1856
1857 2012-05-28  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
1858
1859         [BlackBerry] http authenticate dialog popup only once no matter authentication pass or fail
1860         https://bugs.webkit.org/show_bug.cgi?id=80135
1861
1862         Reviewed by Rob Buis.
1863
1864         RIM PR: 145660
1865         Fixed a regression introduced by r111810, we should cancel the new
1866         request when user press cancel button in http authentication challenge
1867         dialog, and we should also allow sending empty username and password
1868         with the request.
1869         Also removed redundant codes which checked the existence of the
1870         FrameLoaderClient pointer, as we've already moved authenticationChallenge()
1871         out of class FrameLoaderClient, it is not needed.
1872
1873         Manual test added. Testing http authentication dialog relies on user interaction.
1874
1875         Resubmit the patch reverted by r115104 after the digest infinite loop
1876         issue for BlackBerry porting get identified and fixed.
1877
1878         Internally reviewed by Joe Mason <jmason@rim.com>
1879
1880         * platform/blackberry/PageClientBlackBerry.h:
1881         * platform/network/blackberry/NetworkJob.cpp:
1882         (WebCore::NetworkJob::sendRequestWithCredentials):
1883
1884 2012-05-28  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
1885
1886         [BlackBerry] http authentication challenge issue when loading favicon
1887         https://bugs.webkit.org/show_bug.cgi?id=87665
1888
1889         Reviewed by Rob Buis.
1890
1891         Provide the TargetType when generating a favicon loading
1892         request. Loading favicons is triggered after the main resource
1893         has been loaded and parsed, so if we cancel the authentication
1894         challenge when loading main resource, we should also cancel
1895         loading the favicon when it starts to load. If not we will
1896         receive another challenge after we canceled the main resource
1897         loading, which may confuse the user.
1898
1899         Internally reviewed by Joe Mason <jmason@rim.com>
1900
1901         No new tests because of no behavior changes.
1902
1903         * loader/icon/IconLoader.cpp:
1904         (WebCore::IconLoader::startLoading):
1905         * platform/network/blackberry/NetworkJob.cpp:
1906         (WebCore::NetworkJob::sendRequestWithCredentials):
1907
1908 2012-05-28  MORITA Hajime  <morrita@google.com>
1909
1910         Rename FrameLoaderClient::shadowDOMAllowed() to allowShadowDOM()
1911         https://bugs.webkit.org/show_bug.cgi?id=87101
1912
1913         Reviewed by Kentaro Hara.
1914
1915         No new tests. No behavior change.
1916
1917         * bindings/generic/ContextEnabledFeatures.cpp:
1918         (WebCore::ContextEnabledFeatures::shadowDOMEnabled):
1919         * loader/FrameLoaderClient.h:
1920         (WebCore::FrameLoaderClient::allowShadowDOM):
1921
1922 2012-05-28  David Barton  <dbarton@mathscribe.com>
1923
1924         mathml/presentation/mo-stretch.html and mroot-pref-width.html tests fail on Mac
1925         https://bugs.webkit.org/show_bug.cgi?id=86786
1926
1927         Reviewed by Darin Adler.
1928
1929         The fix to https://bugs.webkit.org/show_bug.cgi?id=84167 changed inline-table baselines,
1930         including for <mtable>. We therefore have to correct <mtable>'s vertical-align CSS
1931         property.
1932
1933         Tested by existing tests mo-stretch.html, row-alignment.xhtml, and tables.xhtml.
1934
1935         * css/mathml.css:
1936         (mtable):
1937
1938 2012-05-28  Luke Macpherson  <macpherson@chromium.org>
1939
1940         Make CSSParser::filteredProperties() O(n) instead of O(n^2) and improve readability.
1941         https://bugs.webkit.org/show_bug.cgi?id=87078
1942
1943         Reviewed by Darin Adler.
1944
1945         This patch implements a number of improvements to filteredProperties:
1946         1) Make the code more linearly readable by separating out handling of important and non-important properties.
1947         2) Eliminate one BitArray instance (reduces hot memory so more cache friendly).
1948         3) Remove O(n^2) behavior caused by scanning for and removing previously encountered definitions of each property.
1949         The key algorithmic change is to add properties in decreasing precedence:
1950         a) Iterating once per (important, !important) so that important properties are visited first.
1951         b) Reverse iteration of m_parsedProperties visits the properties in decreasing precedence.
1952
1953         Covered by loads of existing tests - getting CSS property precedence wrong results in too many errors to list.
1954         In particular fast/css contains test cases for important corner cases like duplicated important properties.
1955
1956         * css/CSSParser.cpp:
1957         (WebCore::CSSParser::createStylePropertySet):
1958         * css/CSSProperty.h:
1959         Add vector traits so that CSSProperty can just be memset by vector without calling constructor.
1960
1961 2012-05-28  MORITA Hajime  <morrita@google.com>
1962
1963         Can't edit <input> elements with :first-letter
1964         https://bugs.webkit.org/show_bug.cgi?id=87615
1965
1966         Reviewed by Kent Tamura.
1967
1968         A check using canHaveGeneratedChildren() should cover not only
1969         button and menulist, but also RenderTextControl.
1970         This change pulles canHaveGeneratedChildren() up
1971         from RenderDeprecatedFlexibleBox to RenderObject,
1972         and lets RenderTextControl override it.
1973
1974         Test: fast/forms/input-first-letter-edit.html
1975
1976         * rendering/RenderBlock.cpp:
1977         (WebCore):
1978         (WebCore::RenderBlock::styleDidChange):
1979         (WebCore::RenderBlock::updateFirstLetter):
1980         * rendering/RenderBlock.h: Removed a static function canHaveGeneratedChildren()
1981         (RenderBlock):
1982         * rendering/RenderDeprecatedFlexibleBox.h:
1983         * rendering/RenderObject.cpp:
1984         (WebCore):
1985         (WebCore::RenderObject::canHaveGeneratedChildren): Added.
1986         * rendering/RenderObject.h:
1987         (RenderObject):
1988         * rendering/RenderTextControl.h:
1989
1990 2012-05-28  Arvid Nilsson  <anilsson@rim.com>
1991
1992         [BlackBerry] Add support for layers with scale invariant size
1993         https://bugs.webkit.org/show_bug.cgi?id=87601
1994
1995         Reviewed by Rob Buis.
1996
1997         To support layers that have a "floating" appearance, i.e. don't change size
1998         when the web page is drawn at a different scale, we add a new layer property
1999         named "sizeIsScaleInvariant".
2000
2001         The anchor position will still be given in document coordinates for these
2002         "floating" layers, so this is well suited for interface elements like selection
2003         handles whose size is always the same but move with the web page contents.
2004
2005         PR #156812
2006
2007         * platform/graphics/blackberry/LayerCompositingThread.cpp:
2008         (WebCore::LayerCompositingThread::setDrawTransform):
2009         (WebCore::LayerCompositingThread::drawTextures):
2010         (WebCore::LayerCompositingThread::drawMissingTextures):
2011         * platform/graphics/blackberry/LayerCompositingThread.h:
2012         (LayerCompositingThread):
2013         * platform/graphics/blackberry/LayerCompositingThreadClient.h:
2014         (LayerCompositingThreadClient):
2015         (WebCore::LayerCompositingThreadClient::drawMissingTextures):
2016         * platform/graphics/blackberry/LayerData.h:
2017         (WebCore::LayerData::LayerData):
2018         (WebCore::LayerData::sizeIsScaleInvariant):
2019         (LayerData):
2020         * platform/graphics/blackberry/LayerRenderer.cpp:
2021         (WebCore::LayerRenderer::LayerRenderer):
2022         (WebCore::LayerRenderer::compositeLayers):
2023         (WebCore::LayerRenderer::updateLayersRecursive):
2024         (WebCore::LayerRenderer::compositeLayersRecursive):
2025         * platform/graphics/blackberry/LayerRenderer.h:
2026         (LayerRenderer):
2027         * platform/graphics/blackberry/LayerTiler.cpp:
2028         (WebCore::LayerTiler::updateTextureContentsIfNeeded):
2029         (WebCore::LayerTiler::drawTextures):
2030         (WebCore::LayerTiler::drawMissingTextures):
2031         (WebCore::LayerTiler::drawTexturesInternal):
2032         * platform/graphics/blackberry/LayerTiler.h:
2033         (LayerTiler):
2034         * platform/graphics/blackberry/LayerWebKitThread.h:
2035         (WebCore::LayerWebKitThread::setSizeIsScaleInvariant):
2036         (LayerWebKitThread):
2037
2038 2012-05-28  Arvid Nilsson  <anilsson@rim.com>
2039
2040         [BlackBerry] Make it possible to manipulate layers on the compositing thread
2041         https://bugs.webkit.org/show_bug.cgi?id=87602
2042
2043         Reviewed by Rob Buis.
2044
2045         Normally, layers are manipulated on the WebKit thread, and the changes are
2046         synced to the compositing thread during the next accelerated compositing commit
2047         operation.
2048
2049         However, for overlay layers the ability to manipulate layers on the compositing
2050         thread is necessary for adequate user interface responsiveness.
2051
2052         Two mechanisms are added:
2053         1. For a layer with a WebKit-thread counterpart, you can temporarily override
2054         attributes or add animations whose output override attributes.
2055         2. For a layer with no WebKit-thread counterpart, you can now directly set the
2056         compositing thread values for attributes. If you attempt to do this for layers
2057         that do have a WebKit-thread counterpart, the compositing thread values will
2058         be overwritten at the time of the next commit, which makes the override
2059         mechanism more useful there.
2060
2061         PR #156812
2062
2063         * platform/graphics/blackberry/LayerCompositingThread.cpp:
2064         (WebCore::LayerCompositingThread::addSublayer):
2065         (WebCore):
2066         (WebCore::LayerCompositingThread::updateAnimations):
2067         (WebCore::LayerCompositingThread::removeAnimation):
2068         (WebCore::LayerCompositingThread::override):
2069         (WebCore::LayerCompositingThread::clearOverride):
2070         * platform/graphics/blackberry/LayerCompositingThread.h:
2071         (LayerOverride):
2072         (WebCore::LayerOverride::create):
2073         (WebCore::LayerOverride::setPosition):
2074         (WebCore::LayerOverride::setAnchorPoint):
2075         (WebCore::LayerOverride::setBounds):
2076         (WebCore::LayerOverride::setTransform):
2077         (WebCore::LayerOverride::setOpacity):
2078         (WebCore::LayerOverride::addAnimation):
2079         (WebCore::LayerOverride::LayerOverride):
2080         (WebCore):
2081         (LayerCompositingThread):
2082         (WebCore::LayerCompositingThread::setPosition):
2083         (WebCore::LayerCompositingThread::setAnchorPoint):
2084         (WebCore::LayerCompositingThread::setBounds):
2085         (WebCore::LayerCompositingThread::setSizeIsScaleInvariant):
2086         (WebCore::LayerCompositingThread::setTransform):
2087         (WebCore::LayerCompositingThread::setOpacity):
2088         (WebCore::LayerCompositingThread::setNeedsTexture):
2089         * platform/graphics/blackberry/LayerWebKitThread.cpp:
2090         (WebCore::LayerWebKitThread::LayerWebKitThread):
2091         (WebCore::LayerWebKitThread::commitOnCompositingThread):
2092         * platform/graphics/blackberry/LayerWebKitThread.h:
2093         (LayerWebKitThread):
2094         (WebCore::LayerWebKitThread::clearOverride):
2095
2096 2012-05-28  Rob Flack  <flackr@chromium.org>
2097
2098         [chromium] Only increase size of Combo Box Options when displayed on touch screen
2099         https://bugs.webkit.org/show_bug.cgi?id=85921
2100
2101         Reviewed by Adam Barth.
2102
2103         Adds a flag to set whether the current device is a touch screen, independent of whether touch events are supported and use this for the combo box sizing.
2104
2105         No new tests as this is a flag change and covered by existing tests: WebKit/chromium/tests/PopupMenuTest.cpp
2106
2107         * page/Settings.cpp:
2108         (WebCore::Settings::Settings):
2109         * page/Settings.h:
2110         (WebCore::Settings::setDeviceSupportsTouch):
2111         (WebCore::Settings::deviceSupportsTouch):
2112         (Settings):
2113         * platform/chromium/PopupListBox.cpp:
2114         (WebCore::PopupListBox::getRowHeight):
2115         * platform/chromium/PopupListBox.h:
2116         (PopupContainerSettings):
2117         * platform/chromium/PopupMenuChromium.cpp:
2118         (WebCore::PopupMenuChromium::show):
2119
2120 2012-05-28  Arvid Nilsson  <anilsson@rim.com>
2121
2122         [BlackBerry] Make custom compositing thread layers more flexible
2123         https://bugs.webkit.org/show_bug.cgi?id=87600
2124
2125         Reviewed by Rob Buis.
2126
2127         Introduce a LayerCompositingThreadClient that's used to fine tune the
2128         behaviour of custom layers. Let the LayerTiler be a
2129         LayerCompositingThreadClient and thus decouple it from
2130         LayerCompositingThread. Adjust method signatures to allow a one-to-many
2131         relationship between Client and Layer.
2132
2133         Remove the old LayerCompositingThread::drawCustom() in favour of this new
2134         Client interface.
2135
2136         PR #156812
2137
2138         * platform/graphics/blackberry/LayerCompositingThread.cpp:
2139         (WebCore::LayerCompositingThread::create):
2140         (WebCore::LayerCompositingThread::LayerCompositingThread):
2141         (WebCore::LayerCompositingThread::~LayerCompositingThread):
2142         (WebCore::LayerCompositingThread::deleteTextures):
2143         (WebCore::LayerCompositingThread::drawTextures):
2144         (WebCore::LayerCompositingThread::hasMissingTextures):
2145         (WebCore::LayerCompositingThread::drawMissingTextures):
2146         (WebCore::LayerCompositingThread::updateTextureContentsIfNeeded):
2147         (WebCore::LayerCompositingThread::bindContentsTexture):
2148         (WebCore::LayerCompositingThread::setVisible):
2149         (WebCore::LayerCompositingThread::scheduleCommit):
2150         * platform/graphics/blackberry/LayerCompositingThread.h:
2151         (WebCore):
2152         (LayerCompositingThread):
2153         * platform/graphics/blackberry/LayerCompositingThreadClient.h: Added.
2154         (WebCore):
2155         (LayerCompositingThreadClient):
2156         (WebCore::LayerCompositingThreadClient::~LayerCompositingThreadClient):
2157         (WebCore::LayerCompositingThreadClient::bindContentsTexture):
2158         (WebCore::LayerCompositingThreadClient::hasMissingTextures):
2159         (WebCore::LayerCompositingThreadClient::drawMissingTextures):
2160         (WebCore::LayerCompositingThreadClient::scheduleCommit):
2161         * platform/graphics/blackberry/LayerRenderer.cpp:
2162         (WebCore::LayerRenderer::drawDebugBorder):
2163         * platform/graphics/blackberry/LayerTiler.cpp:
2164         (WebCore::LayerTiler::LayerTiler):
2165         (WebCore::LayerTiler::layerCompositingThreadDestroyed):
2166         (WebCore::LayerTiler::layerVisibilityChanged):
2167         (WebCore::LayerTiler::uploadTexturesIfNeeded):
2168         (WebCore::LayerTiler::deleteTextures):
2169         (WebCore::LayerTiler::scheduleCommit):
2170         (WebCore):
2171         (WebCore::LayerTiler::bindContentsTexture):
2172         * platform/graphics/blackberry/LayerTiler.h:
2173         (LayerTiler):
2174         (WebCore::LayerTiler::hasMissingTextures):
2175         * platform/graphics/blackberry/LayerWebKitThread.cpp:
2176         (WebCore::LayerWebKitThread::LayerWebKitThread):
2177         * platform/graphics/blackberry/LayerWebKitThread.h:
2178         (LayerWebKitThread):
2179
2180 2012-05-25  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
2181
2182         WebKitTestRunner needs to support layoutTestController.setJavaScriptProfilingEnabled
2183         https://bugs.webkit.org/show_bug.cgi?id=42328
2184
2185         Reviewed by Eric Seidel.
2186
2187         Add setJavaScriptProfilingEnabled() to window.internals.settings. No new tests, but this
2188         change will allow more tests to run in WebKitTestRunner and DRT for ports that weren't
2189         implementing this function before.
2190         This patch also refactors InspectorController::enableProfiler() and
2191         InspectorController::disableProfiler() to InspectorController::setProfilerEnabled(bool).
2192
2193         * WebCore.exp.in:
2194         * inspector/InspectorController.cpp:
2195         (WebCore::InspectorController::profilerEnabled):
2196         (WebCore::InspectorController::setProfilerEnabled):
2197         * inspector/InspectorController.h:
2198         (InspectorController):
2199         * testing/InternalSettings.cpp:
2200         (WebCore::InternalSettings::InternalSettings):
2201         (WebCore::InternalSettings::restoreTo):
2202         (WebCore::InternalSettings::setJavaScriptProfilingEnabled):
2203         (WebCore):
2204         * testing/InternalSettings.h:
2205         (InternalSettings):
2206         * testing/InternalSettings.idl:
2207
2208 2012-05-28  Yong Li  <yoli@rim.com>
2209
2210         Crash on incomplete :not().
2211         https://bugs.webkit.org/show_bug.cgi?id=86673
2212
2213         Reviewed by Antti Koivisto.
2214
2215         Add back null-checks for incomplete :not() class
2216         which were dropped by r81845.
2217
2218         * css/CSSSelector.cpp:
2219         (WebCore::CSSSelector::specificityForOneSelector):
2220         (WebCore::CSSSelector::selectorText):
2221         * css/SelectorChecker.cpp:
2222         (WebCore::SelectorChecker::checkOneSelector):
2223         (WebCore::SelectorChecker::determineLinkMatchType):
2224
2225 2012-05-28  Leo Yang  <leo.yang@torchmobile.com.cn>
2226
2227         FileWriterSync binding should have no static table
2228         https://bugs.webkit.org/show_bug.cgi?id=87645
2229
2230         Reviewed by George Staikos.
2231
2232         FileWriterSync could be used in filesystem FileWriter in worker thread, so we should add ProgressEvent in idl file.
2233
2234         Covered by existing test: fast/filesystem/workers/sync-operations.html.
2235
2236         * Modules/filesystem/FileWriterSync.idl:
2237
2238 2012-05-28  Arvid Nilsson  <anilsson@rim.com>
2239
2240         [BlackBerry] Add an overlay layer
2241         https://bugs.webkit.org/show_bug.cgi?id=87567
2242
2243         Reviewed by Antonio Gomes.
2244
2245         The overlay layer allows us to have compositing layers even though the
2246         web page is not currently using accelerated compositing.
2247
2248         These layers can be used to implement tap highlight, inspector overlay
2249         and more.
2250
2251         The WebCore changes support the overlay layer functionality in WebKit
2252         by making it possible to add animations from the compositing thread
2253         without them being instantly overwritten during the next commit.
2254
2255         Also a new custom layer type is added, which allow an overlay layer to
2256         draw itself using raw OpenGL calls. An instance of a custom subclass of
2257         LayerCompositingThread must be provided when creating the
2258         LayerWebKitThread. Then, the custom layer can be used as the content
2259         layer of a GraphicsLayer, or by itself.
2260
2261         Reviewed internally by Filip Spacek.
2262
2263         PR #154335
2264
2265         * platform/graphics/blackberry/LayerCompositingThread.cpp:
2266         (WebCore::LayerCompositingThread::~LayerCompositingThread):
2267         (WebCore::LayerCompositingThread::deleteTextures):
2268         (WebCore::LayerCompositingThread::drawTextures):
2269         (WebCore::LayerCompositingThread::drawMissingTextures):
2270         (WebCore::LayerCompositingThread::updateTextureContentsIfNeeded):
2271         (WebCore::LayerCompositingThread::setVisible):
2272         (WebCore::LayerCompositingThread::scheduleCommit):
2273         * platform/graphics/blackberry/LayerCompositingThread.h:
2274         (WebCore::LayerCompositingThread::addAnimation):
2275         (WebCore::LayerCompositingThread::setRunningAnimations):
2276         (WebCore::LayerCompositingThread::setSuspendedAnimations):
2277         (LayerCompositingThread):
2278         (WebCore::LayerCompositingThread::drawCustom):
2279         * platform/graphics/blackberry/LayerData.h:
2280         (LayerData):
2281         * platform/graphics/blackberry/LayerWebKitThread.cpp:
2282         (WebCore::LayerWebKitThread::LayerWebKitThread):
2283         (WebCore):
2284         (WebCore::LayerWebKitThread::~LayerWebKitThread):
2285         (WebCore::LayerWebKitThread::updateTextureContentsIfNeeded):
2286         (WebCore::LayerWebKitThread::startAnimations):
2287         (WebCore::LayerWebKitThread::commitOnCompositingThread):
2288         (WebCore::LayerWebKitThread::setNeedsDisplayInRect):
2289         (WebCore::LayerWebKitThread::setNeedsDisplay):
2290         (WebCore::LayerWebKitThread::setIsMask):
2291         (WebCore::LayerWebKitThread::setRunningAnimations):
2292         (WebCore::LayerWebKitThread::setSuspendedAnimations):
2293         * platform/graphics/blackberry/LayerWebKitThread.h:
2294         (LayerWebKitThread):
2295
2296 2012-05-28  Leo Yang  <leo.yang@torchmobile.com.cn>
2297
2298         ProgressEvent JSC binding should have no static table
2299         https://bugs.webkit.org/show_bug.cgi?id=87365
2300
2301         Reviewed by George Staikos.
2302
2303         ProgressEvent could be used in filesystem FileWriter in worker thread, so we should add ProgressEvent in idl file.
2304
2305         Covered by existing test: fast/filesystem/workers/file-writer-events.html.
2306
2307         * dom/ProgressEvent.idl:
2308
2309 2012-05-28  Arvid Nilsson  <anilsson@rim.com>
2310
2311         [BlackBerry] Update WebPageCompositor::render() API
2312         https://bugs.webkit.org/show_bug.cgi?id=87565
2313
2314         Reviewed by Rob Buis.
2315
2316         The new API allows the embedder to specify the root transform and many
2317         OpenGL related parameters.
2318
2319         Also refactor the code to allow several sets of layers to be rendered,
2320         and to allow interleaving the rendering of layers with rendering of
2321         buffers and checkerboard.
2322
2323         Reviewed internally by Filip Spacek.
2324
2325         PR #154334
2326
2327         * platform/graphics/blackberry/LayerCompositingThread.cpp:
2328         (WebCore::LayerCompositingThread::drawTextures):
2329         (WebCore::LayerCompositingThread::drawSurface):
2330         * platform/graphics/blackberry/LayerRenderer.cpp:
2331         (WebCore::LayerRenderer::orthoMatrix):
2332         (WebCore::LayerRenderer::LayerRenderer):
2333         (WebCore::LayerRenderer::prepareFrame):
2334         (WebCore):
2335         (WebCore::LayerRenderer::setViewport):
2336         (WebCore::LayerRenderer::compositeLayers):
2337         (WebCore::LayerRenderer::compositeBuffer):
2338         (WebCore::LayerRenderer::drawCheckerboardPattern):
2339         (WebCore::LayerRenderer::drawLayersOnSurfaces):
2340         (WebCore::LayerRenderer::prepareFrameRecursive):
2341         (WebCore::LayerRenderer::updateLayersRecursive):
2342         (WebCore::LayerRenderer::compositeLayersRecursive):
2343         (WebCore::LayerRenderer::updateScissorIfNeeded):
2344         (WebCore::LayerRenderingResults::addHolePunchRect):
2345         * platform/graphics/blackberry/LayerRenderer.h:
2346         (LayerRenderer):
2347
2348 2012-05-28  Antti Koivisto  <antti@apple.com>
2349
2350         REGRESSION(r96517): Attribute selector fails to match dynamically modified style attribute
2351         https://bugs.webkit.org/show_bug.cgi?id=87349
2352
2353         Reviewed by Andreas Kling.
2354         
2355         Selector fast path does not trigger lazy style attribute generation. Since attribute selectors matching
2356         style attribute are rare, disallow them from the fast path rather than making it more branchy.
2357
2358         Test: fast/css/dynamic-style-attribute-query.html
2359
2360         * css/SelectorChecker.cpp:
2361         (WebCore::isFastCheckableMatch):
2362
2363 2012-05-28  Peter Rybin  <peter.rybin@gmail.com>
2364
2365         Web Inspector: Expose function (closure) scopes in remote protocol
2366         https://bugs.webkit.org/show_bug.cgi?id=86861
2367
2368         Reviewed by Yury Semikhatsky.
2369
2370         A data transfer from V8's FunctionMirror via DebuggerScript.js via InjectedScriptHost is built.
2371         Scope field is added to protocol declaration similar to scopes of stack call frame.
2372         Test for function details is extended.
2373         JSC code binging got fixme for implemting the corresponding feature.
2374
2375         * bindings/js/JSInjectedScriptHostCustom.cpp:
2376         (WebCore::JSInjectedScriptHost::functionDetails):
2377         * bindings/v8/DebuggerScript.js:
2378         * bindings/v8/ScriptDebugServer.cpp:
2379         (WebCore::ScriptDebugServer::functionScopes):
2380         (WebCore):
2381         * bindings/v8/ScriptDebugServer.h:
2382         (ScriptDebugServer):
2383         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
2384         (WebCore::V8InjectedScriptHost::functionDetailsCallback):
2385         * inspector/InjectedScriptHost.cpp:
2386         (WebCore):
2387         (WebCore::InjectedScriptHost::scriptDebugServer):
2388         * inspector/InjectedScriptHost.h:
2389         (WebCore):
2390         (WebCore::InjectedScriptHost::init):
2391         (InjectedScriptHost):
2392         * inspector/InjectedScriptSource.js:
2393         (.):
2394         * inspector/Inspector.json:
2395         * inspector/InspectorController.cpp:
2396         (WebCore::InspectorController::InspectorController):
2397         * inspector/WorkerInspectorController.cpp:
2398         (WebCore::WorkerInspectorController::WorkerInspectorController):
2399
2400 2012-05-28  Arvid Nilsson  <anilsson@rim.com>
2401
2402         [BlackBerry] Add a constructor to create a Path from an SkPath
2403         https://bugs.webkit.org/show_bug.cgi?id=87566
2404
2405         Reviewed by Antonio Gomes.
2406
2407         Skia allows the creation of more complex paths than WebCore would
2408         allow. This will be used in the BlackBerry port to implement a default
2409         tap highlight appearance.
2410
2411         Reviewed internally by Mike Lattanzio.
2412
2413         PR #154329
2414
2415         * platform/graphics/Path.h:
2416         (Path):
2417         * platform/graphics/skia/PathSkia.cpp:
2418         (WebCore):
2419         (WebCore::Path::Path):
2420
2421 2012-05-28  Alexis Menard  <alexis.menard@openbossa.org>
2422
2423         Unreviewed build fix for Mac on Lion.
2424
2425         * inspector/CodeGeneratorInspector.py:
2426
2427 2012-05-28  Keishi Hattori  <keishi@webkit.org>
2428
2429         Expose value localization function of HTMLInputElement
2430         https://bugs.webkit.org/show_bug.cgi?id=84356
2431
2432         Reviewed by Kent Tamura.
2433
2434         No new tests.
2435
2436         We want to localize the values that are defined in the datalist element.
2437         This adds HTMLInputElement::localizeValue() which will localize a given
2438         value.
2439
2440         * html/BaseDateAndTimeInputType.cpp:
2441         (WebCore::BaseDateAndTimeInputType::localizeValue):
2442         (WebCore):
2443         (WebCore::BaseDateAndTimeInputType::visibleValue):
2444         * html/BaseDateAndTimeInputType.h:
2445         (BaseDateAndTimeInputType):
2446         * html/HTMLInputElement.cpp:
2447         (WebCore::HTMLInputElement::localizeValue):
2448         (WebCore):
2449         * html/HTMLInputElement.h:
2450         (HTMLInputElement):
2451         * html/InputType.cpp:
2452         (WebCore::InputType::localizeValue):
2453         (WebCore):
2454         * html/InputType.h:
2455         (InputType):
2456         * html/NumberInputType.cpp:
2457         (WebCore::NumberInputType::localizeValue):
2458         (WebCore):
2459         (WebCore::NumberInputType::visibleValue):
2460         * html/NumberInputType.h:
2461         (NumberInputType):
2462
2463 2012-05-28  Yury Semikhatsky  <yurys@chromium.org>
2464
2465         Unreviewed. Test fix after r118670: saved timeline data may
2466         not have DOM counters data and MemoryStatistics object should
2467         take this into account.
2468
2469         * inspector/front-end/MemoryStatistics.js:
2470         (WebInspector.MemoryStatistics.prototype._onRecordAdded):
2471
2472 2012-05-28  Sheriff Bot  <webkit.review.bot@gmail.com>
2473
2474         Unreviewed, rolling out r118580.
2475         http://trac.webkit.org/changeset/118580
2476         https://bugs.webkit.org/show_bug.cgi?id=87647
2477
2478         Caused webkit_unit_tests to crash on chromium. (Requested by
2479         bulach on #webkit).
2480
2481         * platform/graphics/chromium/ContentLayerChromium.cpp:
2482         (WebCore::ContentLayerPainter::create):
2483         (WebCore::ContentLayerPainter::paint):
2484         (WebCore::ContentLayerPainter::ContentLayerPainter):
2485         (ContentLayerPainter):
2486         (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded):
2487         * platform/graphics/chromium/TiledLayerChromium.cpp:
2488         (UpdatableTile):
2489         (WebCore::UpdatableTile::UpdatableTile):
2490         (WebCore::TiledLayerChromium::updateTiles):
2491         * platform/graphics/chromium/TiledLayerChromium.h:
2492         (TiledLayerChromium):
2493         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2494         (WebCore::CCSettings::CCSettings):
2495         (CCSettings):
2496
2497 2012-05-28  Peter Beverloo  <peter@chromium.org>
2498
2499         &AElig doesn't get rendered as U+00C6
2500         https://bugs.webkit.org/show_bug.cgi?id=87465
2501
2502         Reviewed by Adam Barth.
2503
2504         The if-statement to check whether the first entry of a certain letter
2505         already exists in the index used .get(). The very first alphabetical
2506         entry is in position "0", which evaluates to false, causing the first
2507         entry to be ignored. Instead, use a "x not in y" check here.
2508
2509         Also update WebCore.gyp to list the create-html-entity-table script as
2510         an input for the action, to make sure the table will be recreated.
2511
2512         Test: html5lib/resources/entities02.dat
2513
2514         * WebCore.gyp/WebCore.gyp:
2515         * html/parser/create-html-entity-table:
2516
2517 2012-05-28  Yury Semikhatsky  <yurys@chromium.org>
2518
2519         Web Inspector: dom counters graphs vanish on switching between timeline views
2520         https://bugs.webkit.org/show_bug.cgi?id=87628
2521
2522         Reviewed by Vsevolod Vlasov.
2523
2524         MemoryStatistics object now listens to the TimelineModel events instead of being
2525         populated by timeline panel. This behavior mathes that of the overview pane.
2526
2527         * inspector/front-end/MemoryStatistics.js:
2528         (WebInspector.MemoryStatistics.prototype.addTimlineEvent):
2529         * inspector/front-end/TimelinePanel.js:
2530         (WebInspector.TimelinePanel.prototype._onTimelineEventRecorded):
2531         (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
2532
2533 2012-05-28  Marcus Bulach  <bulach@chromium.org>
2534
2535         [chromium] Buildfix: remove obsolete file from gypi.
2536         https://bugs.webkit.org/show_bug.cgi?id=87643
2537
2538         Reviewed by no-reviewer.
2539
2540         Following http://trac.webkit.org/changeset/118610.
2541         Removes reference to platform/graphics/gstreamer/ImageGStreamerCG.mm
2542
2543         * WebCore.gypi:
2544
2545 2012-05-28  MORITA Hajime  <morrita@google.com>
2546
2547         HTMLFormControlElement::m_validationMessage shouldn't be cleared on detach()
2548         https://bugs.webkit.org/show_bug.cgi?id=87608
2549
2550         Reviewed by Kent Tamura.
2551
2552         Moved m_validationMessage clearance from detach() to removedFrom() and
2553         remove detach().
2554
2555         No new tests. This change has no visible difference. Upcoming changes rely on this though.
2556
2557         * html/HTMLFormControlElement.cpp:
2558         (WebCore::HTMLFormControlElement::removedFrom):
2559
2560 2012-05-28  Yury Semikhatsky  <yurys@chromium.org>
2561
2562         Web Inspector: "Record CPU profile" button doesn't change its state after finishing profiling
2563         https://bugs.webkit.org/show_bug.cgi?id=87624
2564
2565         Reviewed by Vsevolod Vlasov.
2566
2567         Keep record button state in sync with the current profiling state.
2568
2569         * inspector/front-end/ProfilesPanel.js:
2570         (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
2571
2572 2012-05-28  Sheriff Bot  <webkit.review.bot@gmail.com>
2573
2574         Unreviewed, rolling out r118650.
2575         http://trac.webkit.org/changeset/118650
2576         https://bugs.webkit.org/show_bug.cgi?id=87639
2577
2578         Patch caused massive failures throughout the builders
2579         (Requested by zdobersek on #webkit).
2580
2581         * css/MediaQuery.cpp:
2582         (WebCore):
2583         (WebCore::MediaQuery::serialize):
2584         (WebCore::MediaQuery::MediaQuery):
2585         (WebCore::MediaQuery::cssText):
2586         * css/MediaQuery.h:
2587         (WebCore::MediaQuery::expressions):
2588         (WebCore::MediaQuery::mediaType):
2589         (MediaQuery):
2590         (WebCore::MediaQuery::copy):
2591         * css/MediaQueryEvaluator.cpp:
2592         (WebCore::MediaQueryEvaluator::MediaQueryEvaluator):
2593         (WebCore::MediaQueryEvaluator):
2594         (WebCore::MediaQueryEvaluator::eval):
2595         (WebCore::aspect_ratioMediaFeatureEval):
2596         (WebCore::device_aspect_ratioMediaFeatureEval):
2597         (WebCore::transform_3dMediaFeatureEval):
2598         (WebCore::view_modeMediaFeatureEval):
2599         (WebCore::createFunctionMap):
2600         * css/MediaQueryEvaluator.h:
2601         (WebCore):
2602         (MediaQueryEvaluator):
2603         * css/StyleResolver.cpp:
2604         (WebCore):
2605         (WebCore::StyleResolver::collectMatchingRulesForList):
2606         * css/StyleResolver.h:
2607         (MediaQueryResult):
2608         (WebCore::MediaQueryResult::MediaQueryResult):
2609         (WebCore):
2610         (StyleResolver):
2611
2612 2012-05-28  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2613
2614         Move allowRoundingHacks to Internals interface
2615         https://bugs.webkit.org/show_bug.cgi?id=87328
2616
2617         Reviewed by Hajime Morita.
2618
2619         Add allowRoundingHacks function, because it is able to work in the
2620         cross-port way by means of the Internals interface.
2621
2622         In addition, a function is added in order to restore default setting values.
2623
2624         No new tests, since we are improving here the infra-structure for testing
2625         a specific method.
2626
2627         * testing/Internals.cpp:
2628         (WebCore::Internals::reset):
2629         (WebCore):
2630         (WebCore::Internals::resetDefaultsToConsistentValues):
2631         (WebCore::Internals::allowRoundingHacks):
2632         * testing/Internals.h:
2633         (Internals):
2634         * testing/Internals.idl:
2635
2636 2012-05-28  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
2637
2638         [BlackBerry] http authentication crash the browser when user commit or cancel the http authentication dialog
2639         https://bugs.webkit.org/show_bug.cgi?id=87579
2640
2641         Reviewed by George Staikos.
2642
2643         In function NetworkJob::startNewJobWithRequest, We should cancel the
2644         NetworkJob first before we start a new NetworkJob which reuses the
2645         resource handle of the old one. If we only set the m_handle = 0 of the
2646         old NetworkJob without cancelling itself, it will still receives data
2647         notification from network thread and handles the received data with
2648         the released resource handler, which will cause the crash.
2649
2650         No new tests because no behavior has changed.
2651
2652         * platform/network/blackberry/NetworkJob.cpp:
2653         (WebCore::NetworkJob::startNewJobWithRequest):
2654
2655 2012-05-27  MORITA Hajime  <morrita@google.com>
2656
2657         [Refactoring][ShadowDOM] Some ElementShadow methods can be inlined.
2658         https://bugs.webkit.org/show_bug.cgi?id=87617
2659
2660         Reviewed by Kentaro Hara.
2661
2662         Inlined ElementShadow::attachHost(), ElementShadow::detachHost() and
2663         ElementShadow::reattach()
2664
2665         No new tests. No behavior change.
2666
2667         * dom/Element.cpp:
2668         (WebCore::Element::attach):
2669         (WebCore::Element::detach):
2670         * dom/ElementShadow.cpp:
2671         (WebCore::ElememtnShadow::reattachHostChildrenAndShadow):
2672         * dom/ElementShadow.h:
2673         (ElementShadow):
2674
2675 2012-05-28  Peter Rybin  <peter.rybin@gmail.com>
2676
2677         Web Inspector: CodeGeneratorInspector.py: protect typed API from C++ implicit float to int cast
2678         https://bugs.webkit.org/show_bug.cgi?id=87183
2679
2680         Reviewed by Yury Semikhatsky.
2681
2682         An intermediate C++ class is introduced that uses C++ template technique to control actual type
2683         of its constructor argument.
2684         All input parameters of type "int" now have type ExactlyInt. 
2685         All usage sites are fixed accordingly.
2686
2687         * inspector/CodeGeneratorInspector.py:
2688         (TypeModel.RefPtrBased):
2689         (TypeModel.Enum):
2690         (TypeModel.ValueType):
2691         (TypeModel.ValueType.get_opt_output_type_):
2692         (TypeModel.ValueType.ValueOptional.get_command_return_pass_model):
2693         (TypeModel.ExactlyInt):
2694         (TypeModel.ExactlyInt.__init__):
2695         (TypeModel.ExactlyInt.get_input_param_type_text):
2696         (TypeModel.ExactlyInt.get_opt_output_type_):
2697         (TypeModel.init_class):
2698         (ExactlyInt):
2699         * inspector/InspectorAgent.cpp:
2700         (WebCore::InspectorAgent::enable):
2701         (WebCore::InspectorAgent::didCreateWorker):
2702         (WebCore::InspectorAgent::didDestroyWorker):
2703         (WebCore::InspectorAgent::evaluateForTestInFrontend):
2704         * inspector/InspectorApplicationCacheAgent.cpp:
2705         (WebCore::InspectorApplicationCacheAgent::updateApplicationCacheStatus):
2706         (WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
2707         * inspector/InspectorDOMAgent.cpp:
2708         (WebCore::InspectorDOMAgent::buildObjectForNode):
2709         * inspector/InspectorMemoryAgent.cpp:
2710         (WebCore::jsHeapInfo):
2711         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2712         * inspector/PageRuntimeAgent.cpp:
2713         (WebCore::PageRuntimeAgent::notifyContextCreated):
2714
2715 2012-05-28  Kentaro Hara  <haraken@chromium.org>
2716
2717         Unreviewed. Rebaselined run-binding-tests results.
2718
2719         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
2720         (WebCore::JSTestActiveDOMObjectOwner::finalize):
2721         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
2722         (WebCore::JSTestCustomNamedGetterOwner::finalize):
2723         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
2724         (WebCore::JSTestEventConstructorOwner::finalize):
2725         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
2726         (WebCore::JSTestEventTargetOwner::finalize):
2727         * bindings/scripts/test/JS/JSTestException.cpp:
2728         (WebCore::JSTestExceptionOwner::finalize):
2729         * bindings/scripts/test/JS/JSTestInterface.cpp:
2730         (WebCore::JSTestInterfaceOwner::finalize):
2731         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2732         (WebCore::JSTestMediaQueryListListenerOwner::finalize):
2733         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2734         (WebCore::JSTestNamedConstructorOwner::finalize):
2735         * bindings/scripts/test/JS/JSTestObj.cpp:
2736         (WebCore::JSTestObjOwner::finalize):
2737         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2738         (WebCore::JSTestSerializedScriptValueInterfaceOwner::finalize):
2739         * bindings/scripts/test/V8/V8TestObj.cpp:
2740         (WebCore::V8TestObj::installPerContextProperties):
2741
2742 2012-05-28  Darin Adler  <darin@apple.com>
2743
2744         StyleResolver need not allocate each MediaQueryResult on the heap
2745         https://bugs.webkit.org/show_bug.cgi?id=75223
2746
2747         Reviewed by Daniel Bates.
2748
2749         * css/MediaQuery.cpp: Removed some comments that pointed to CSS documents.
2750         There is no guarantee these links will be valid over time.
2751         (WebCore::MediaQuery::MediaQuery): Rewrote for clarity, conventional WebKit coding
2752         style, and simplicity.
2753         (WebCore::MediaQuery::copy): Moved out of line; not performance critical, and this
2754         allows us to cut down header dependencies.
2755         (WebCore::MediaQuery::cssText): Updated for change to data member name.
2756
2757         * css/MediaQuery.h: Removed unneeded includes. Removed non-helpful argument name
2758         "exprs". Changed expressions function to return a reference instead of
2759         a pointer. Changed mediaType and cssText functions to return a reference. Renamed
2760         m_serializationCache to m_serializedQuery. Moved copy function out of header.
2761
2762         * css/MediaQueryEvaluator.cpp: Renamed EvalFunc to MediaFeatureEvaluationFunction.
2763         Broke a FIXME into three and reworded for clarity.
2764         (WebCore::MediaQueryEvaluator): Updated for name changes.
2765         (WebCore::MediaQueryEvaluator::eval): Rewrote this for clarity and to regularize
2766         the logic a bit.
2767         (WebCore::aspect_ratioMediaFeatureEval): Got rid of a != 0 that is contrary to the
2768         normal WebKit style.
2769         (WebCore::device_aspect_ratioMediaFeatureEval): Ditto.
2770         (WebCore::transform_3dMediaFeatureEval): Fixed mangled #if that was here.
2771         (WebCore::view_modeMediaFeatureEval): Replaced UNUSED_PARAM usage with ASSERT_UNUSED.
2772         (WebCore::createFunctionMap): Changed this so it returns the map so we can use a
2773         cleaner style in the caller.
2774         (WebCore::MediaQueryEvaluator::eval): Updated to take a reference and improved the
2775         comments and coding style a bit.
2776
2777         * css/MediaQueryEvaluator.h: Updated comment style. Removed unused constructor.
2778         Removed unneeded destructor declaration. Renamed m_expResult to m_mediaFeatureResult.
2779
2780         * css/StyleResolver.cpp: Moved the MediaQueryResult class into this file
2781         and made it a structure rather than a class.
2782         (WebCore::StyleResolver::addViewportDependentMediaQueryResult): Updated to take
2783         a reference argument instead of a pointer and for the new vector type.
2784         (WebCore::StyleResolver::affectedByViewportChange): Updated for above changes.
2785
2786         * css/StyleResolver.h: Removed many unneeded includes and forward declarations of
2787         classes, including now-unneeded include of MediaQueryExp.h. Replaced MediaQueryResult
2788         definition with a forward declaration. Changed addViewportDependentMediaQueryResult
2789         to take a reference instead of a pointer. Changed m_viewportDependentMediaQueryResults
2790         to be a vector of values rather than of pointers.
2791
2792 2012-05-27  Shinya Kawanaka  <shinyak@chromium.org>
2793
2794         cut, copy or paste event won't be fired in Shadow DOM.
2795         https://bugs.webkit.org/show_bug.cgi?id=87352
2796
2797         Reviewed by Dimitri Glazkov.
2798
2799         cut, copy or paste event was not fired in Shadow DOM.
2800         Since event re-targeting has been implemented, it should be safe to fire them in Shadow DOM now.
2801
2802         Tests: fast/dom/shadow/cppevent-in-shadow.html
2803                fast/dom/shadow/cppevent-input-in-shadow.html
2804
2805         * editing/Editor.cpp:
2806         (WebCore::Editor::findEventTargetFrom):
2807
2808 2012-05-27  Hayato Ito  <hayato@chromium.org>
2809
2810         Support multiple shadow roots in event dispatching.
2811         https://bugs.webkit.org/show_bug.cgi?id=87470
2812
2813         Reviewed by Dimitri Glazkov.
2814
2815         The current implementation does not set event's target correctly
2816         if an event happens on DOM tree with multiple shadow roots.  So
2817         this patch updates an event re-targeting algorithm so that it
2818         works even if it is applied to multiple shadow roots.
2819
2820         Tests: fast/dom/shadow/shadow-dom-event-dispatching.html
2821
2822         * dom/ComposedShadowTreeWalker.cpp:
2823         (WebCore::ComposedShadowTreeWalker::traverseParentIncludingInsertionPointAndShadowRoot):
2824         * dom/EventDispatcher.cpp:
2825         (WebCore::EventDispatcher::ensureEventAncestors):
2826
2827 2012-05-27  Benjamin Poulain  <benjamin@webkit.org>
2828
2829         Minor code cleaning for the interface of MainResourceLoader
2830         https://bugs.webkit.org/show_bug.cgi?id=87607
2831
2832         Reviewed by Darin Adler.
2833
2834         * loader/MainResourceLoader.cpp:
2835         (WebCore::MainResourceLoader::MainResourceLoader):
2836         (WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
2837         (WebCore::MainResourceLoader::handleSubstituteDataLoadSoon):
2838         * loader/MainResourceLoader.h:
2839         (MainResourceLoader):
2840         -Add the OVERRIDE keyword for the methods inherited from ResourceLoader.
2841         -Remove the useless declaration of handleDataLoad(ResourceRequest&), this method does not exist.
2842         -Rename handleDataLoadNow() to handleSubstituteDataLoadNow() and make the method private. This should
2843          only be used by handleSubstituteDataLoadSoon() and indirectly through the timer.
2844
2845 2012-05-27  Yoshifumi Inoue  <yosin@chromium.org>
2846
2847         [WTF] Introduce UINT64_C to MathExtras.h
2848         https://bugs.webkit.org/show_bug.cgi?id=87485
2849
2850         Reviewed by Kent Tamura.
2851
2852         This patch introduces UINT64_C for all platforms to avoid using
2853         conditional compilation.
2854
2855         No new tests. This patch doesn't change behavior.
2856
2857         * Modules/websockets/WebSocketFrame.cpp:
2858         (WebCore::WebSocketFrame::parseFrame): Replace conditional compilation with UINT64_C.
2859
2860 2012-05-27  Luke Macpherson  <macpherson@chromium.org>
2861
2862         Use StringBuilder in WebKitCSSTransformValue::customCssText() to allow code reuse with CSS Variables.
2863         https://bugs.webkit.org/show_bug.cgi?id=87462
2864
2865         Reviewed by Dimitri Glazkov.
2866
2867         Factor out strings into a const char* array, and use a StringBuilder instead of String concatenation.
2868         This will allow future code to re-use the array of transform names, and StringBuilder is generally faster.
2869
2870         Covered by existing CSS transform tests.
2871
2872         * css/WebKitCSSTransformValue.cpp:
2873         (WebCore):
2874         (WebCore::WebKitCSSTransformValue::customCssText):
2875
2876 2012-05-27  Arvid Nilsson  <anilsson@rim.com>
2877
2878         [BlackBerry] Update color for tap highlight and selection
2879         https://bugs.webkit.org/show_bug.cgi?id=87606
2880
2881         Reviewed by Antonio Gomes.
2882
2883         PR #154813
2884
2885         * platform/blackberry/RenderThemeBlackBerry.cpp:
2886         (WebCore::RenderThemeBlackBerry::platformTapHighlightColor):
2887         (WebCore::RenderThemeBlackBerry::platformActiveSelectionBackgroundColor):
2888
2889 2012-05-27  Benjamin Poulain  <bpoulain@apple.com>
2890
2891         When pages are loaded from AppCache with DeferredLoading, willSendRequest() is never called
2892         https://bugs.webkit.org/show_bug.cgi?id=87582
2893
2894         Reviewed by Darin Adler.
2895
2896         Previously, there was a shortcut when a deferred MainResourceLoader is resumed: If the data
2897         was coming from AppCache we could jump directly to startDataLoadTimer().
2898
2899         The problem with the shortcut is willSendRequest() is never called in that particular case
2900         (substituteData + deferred-resume). The imbalance between willSendRequest() and didReceiveResponse()
2901         causes problems.
2902
2903         This patch removes the shortcut so that MainResourceLoader::loadNow() is used regardless of
2904         the deferred loading. The method MainResourceLoader::loadNow() handle the substituteData as if the loading
2905         was not deferred.
2906
2907         Test: http/tests/appcache/load-from-appcache-defer-resume-crash.html
2908
2909         * loader/MainResourceLoader.cpp:
2910         (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
2911         (WebCore::MainResourceLoader::handleSubstituteDataLoadSoon):
2912         Rename the method to be consistent with the attribute it uses, making the naming more explicit.
2913         (WebCore::MainResourceLoader::loadNow):
2914         (WebCore::MainResourceLoader::setDefersLoading):
2915         * loader/MainResourceLoader.h:
2916         (MainResourceLoader):
2917
2918 2012-05-27  David Kilzer  <ddkilzer@apple.com>
2919
2920         Use xcrun to find gperf path on platforms that use Xcode
2921         <http://webkit.org/b/87587>
2922
2923         Reviewed by Dan Bernstein.
2924
2925         * WebCore.xcodeproj/project.pbxproj:
2926         (Generate Derived Sources): Set GPERF environment variable using
2927         xcrun.
2928         * css/makeprop.pl: Use GPERF environment variable if set, else
2929         "gperf".
2930         * css/makevalues.pl: Ditto.
2931         * make-hash-tools.pl: Ditto.
2932
2933 2012-05-27  Li Yin  <li.yin@intel.com>
2934
2935         [FileAPI] FileReader should fire progress event when blob has been completely read into memory
2936         https://bugs.webkit.org/show_bug.cgi?id=87585
2937
2938         Reviewed by Kentaro Hara.
2939
2940         From Spec: http://www.w3.org/TR/FileAPI/#dfn-progress-event
2941         One progress event will fire when blob has been completely read into memory.
2942         Firefox, Opera and IE follows the spec.
2943         Webkit based browser doesn't do that, it only fires progress event at interval of 50ms.
2944         WebKit should add the behavior to make the conformance with the spec.
2945
2946         Tests: fast/files/file-reader-event-listener.html
2947
2948         * fileapi/FileReader.cpp:
2949         (WebCore::FileReader::didFinishLoading):
2950
2951 2012-05-26  Li Yin  <li.yin@intel.com>
2952
2953         [FileAPI] The result attribute of FileReader shuold use null to replace empty string
2954         https://bugs.webkit.org/show_bug.cgi?id=87578
2955
2956         Reviewed by Kentaro Hara.
2957
2958         From Spec: http://www.w3.org/TR/FileAPI/#filedata-attr
2959         Before read method has been called or an error in reading has occurred,
2960         the result attribute should be null, not empty string.
2961
2962         Currently, Firefox, Opera and IE 10 follows the spec, but Webkit based 
2963         browser don't.
2964         WebKit should change the returned value empty string into null to keep 
2965         conformance with the spec.
2966
2967         Tests: fast/files/read-file-async.html
2968                fast/files/blob-slice-test.html
2969                fast/files/read-blob-async.html
2970                fast/files/workers/worker-read-blob-async.html
2971                fast/files/workers/worker-read-file-async.html
2972
2973         * fileapi/FileReader.cpp:
2974         (WebCore::FileReader::stringResult):
2975
2976 2012-05-26  Andy Estes  <aestes@apple.com>
2977
2978         Fix the build when NETSCAPE_PLUGIN_API is disabled by marking a
2979         parameter as unused.
2980
2981         * plugins/PluginData.cpp:
2982         (WebCore::PluginData::initPlugins):
2983
2984 2012-05-26  Nate Chapin  <japhet@chromium.org>
2985
2986         Cancel CachedResource loads when the last client is removed.
2987         https://bugs.webkit.org/show_bug.cgi?id=35377
2988
2989         Reviewed by Darin Adler.
2990
2991         Test: http/tests/cache/cancel-in-progress-load.html
2992
2993         * loader/SubresourceLoader.cpp:
2994         (WebCore::SubresourceLoader::errorLoadingResource):
2995         * loader/cache/CachedCSSStyleSheet.cpp:
2996         (WebCore::CachedCSSStyleSheet::allClientsRemoved):
2997         * loader/cache/CachedFont.cpp:
2998         (WebCore::CachedFont::allClientsRemoved):
2999         * loader/cache/CachedImage.cpp:
3000         (WebCore::CachedImage::allClientsRemoved):
3001         * loader/cache/CachedRawResource.cpp:
3002         (WebCore):
3003         * loader/cache/CachedRawResource.h:
3004         (WebCore::CachedRawResource::shouldIgnoreHTTPStatusCodeErrors):
3005         * loader/cache/CachedResource.cpp:
3006         (WebCore::CachedResource::allClientsRemoved):
3007         (WebCore):
3008         * loader/cache/CachedResource.h:
3009         (CachedResource):
3010         * loader/cache/CachedScript.cpp:
3011         (WebCore::CachedScript::allClientsRemoved):
3012
3013 2012-05-26  Simon Fraser  <simon.fraser@apple.com>
3014
3015         fast/block/inline-children-root-linebox-crash.html asserts after r118567
3016         https://bugs.webkit.org/show_bug.cgi?id=87544
3017
3018         Reviewed by Darin Adler.
3019         
3020         RenderInline::offsetFromContainer() set offsetDependsOnPoint to true based
3021         on the container's flipped writing mode. However, offsetFromContainer() would
3022         then overwrite that, since it only checked for columns.
3023         
3024         Fix by having RenderInline::offsetFromContainer() check for flipping on
3025         the container. This fixes the assertion.
3026         
3027         The new testcase exercises fixes another issue; unlike mapLocalToAbsolute(),
3028         RenderGeometryMap::absoluteRect() didn't pass the rect center point through
3029         the mapping, which resulted in a different result in some flipping cases.
3030
3031         Test: compositing/geometry/flipped-blocks-inline-mapping.html
3032
3033         * rendering/RenderGeometryMap.cpp:
3034         (WebCore::RenderGeometryMap::absoluteRect):
3035         * rendering/RenderInline.cpp:
3036         (WebCore::RenderInline::offsetFromContainer):
3037         (WebCore::RenderInline::pushMappingToContainer):
3038
3039 2012-05-26  Geoffrey Garen  <ggaren@apple.com>
3040
3041         WebKit should be lazy-finalization-safe (esp. the DOM) v2
3042         https://bugs.webkit.org/show_bug.cgi?id=87581
3043
3044         Reviewed by Oliver Hunt.
3045
3046         * bindings/js/JSDOMGlobalObject.cpp:
3047         (WebCore::JSDOMGlobalObject::destroy):
3048         * bindings/js/JSDOMWindowBase.cpp:
3049         (WebCore::JSDOMWindowBase::destroy):
3050         * bindings/js/JSDOMWindowShell.cpp:
3051         (WebCore::JSDOMWindowShell::destroy):
3052         * bindings/js/JSNodeCustom.cpp:
3053         (WebCore::JSNodeOwner::finalize):
3054         * bindings/js/JSWorkerContextBase.cpp:
3055         (WebCore::JSWorkerContextBase::destroy):
3056         * bindings/scripts/CodeGeneratorJS.pm:
3057         (GenerateImplementation):
3058         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
3059         (WebCore::JSTestActiveDOMObject::destroy):
3060         (WebCore::JSTestActiveDOMObjectOwner::finalize):
3061         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
3062         (WebCore::JSTestCustomNamedGetter::destroy):
3063         (WebCore::JSTestCustomNamedGetterOwner::finalize):
3064         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
3065         (WebCore::JSTestEventConstructor::destroy):
3066         (WebCore::JSTestEventConstructorOwner::finalize):
3067         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
3068         (WebCore::JSTestEventTarget::destroy):
3069         (WebCore::JSTestEventTargetOwner::finalize):
3070         * bindings/scripts/test/JS/JSTestException.cpp:
3071         (WebCore::JSTestException::destroy):
3072         (WebCore::JSTestExceptionOwner::finalize):
3073         * bindings/scripts/test/JS/JSTestInterface.cpp:
3074         (WebCore::JSTestInterface::destroy):
3075         (WebCore::JSTestInterfaceOwner::finalize):
3076         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
3077         (WebCore::JSTestMediaQueryListListener::destroy):
3078         (WebCore::JSTestMediaQueryListListenerOwner::finalize):
3079         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
3080         (WebCore::JSTestNamedConstructor::destroy):
3081         (WebCore::JSTestNamedConstructorOwner::finalize):
3082         * bindings/scripts/test/JS/JSTestObj.cpp:
3083         (WebCore::JSTestObj::destroy):
3084         (WebCore::JSTestObjOwner::finalize):
3085         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3086         (WebCore::JSTestSerializedScriptValueInterface::destroy):
3087         (WebCore::JSTestSerializedScriptValueInterfaceOwner::finalize):
3088         * bridge/objc/objc_runtime.mm:
3089         (JSC::Bindings::ObjcFallbackObjectImp::destroy):
3090         * bridge/qt/qt_runtime.cpp:
3091         (JSC::Bindings::QtRuntimeMethod::destroy):
3092         * bridge/qt/qt_runtime_qt4.cpp:
3093         (JSC::Bindings::QtRuntimeMethod::destroy):
3094         * bridge/runtime_array.cpp:
3095         (JSC::RuntimeArray::destroy):
3096         * bridge/runtime_method.cpp:
3097         (JSC::RuntimeMethod::destroy):
3098         * bridge/runtime_object.cpp:
3099         (JSC::Bindings::RuntimeObject::destroy):
3100         * bridge/runtime_root.cpp:
3101         (JSC::Bindings::RootObject::finalize): Use static_cast instead of jsCast because
3102         jsCast does Structure-based validation, and our Structure is not guaranteed
3103         to be alive when we get finalized.
3104
3105 2012-05-26  Simon Fraser  <simon.fraser@apple.com>
3106
3107         Clip rects assertion when hovering div with transform
3108         https://bugs.webkit.org/show_bug.cgi?id=87580
3109
3110         Reviewed by Eric Seidel.
3111         
3112         Hit testing used to use temporary clip rects in composited documents,
3113         until r118562. Now that we cache clip rects for hit testing, we need
3114         to clear the cache on descendant layers when a layer gains or loses
3115         a transform.
3116
3117         Test: fast/layers/clip-rects-assertion.html
3118
3119         * rendering/RenderLayer.cpp:
3120         (WebCore::RenderLayer::updateTransform):
3121
3122 2012-05-25  Dan Bernstein  <mitz@apple.com>
3123
3124         <rdar://problem/11439771> WebProcess sends many synchronous messages to the UI process while scrolling beneath ScrollView::contentsToScreen()
3125         https://bugs.webkit.org/show_bug.cgi?id=87571
3126
3127         Reviewed by Anders Carlsson.
3128
3129         fakeMouseEventTimerFired() uses the last known mouse position for the fake mouse event, but
3130         calls contentsToScreen() to compute a corresponding position in screen coordinates. Avoid
3131         this by also recording the last known mouse position in screen coordinates, and using that
3132         value.
3133
3134         * page/EventHandler.cpp:
3135         (WebCore::EventHandler::clear): Added resetting m_currentMouseGlobalPosition.
3136         (WebCore::EventHandler::handleMousePressEvent): Added updating m_currentMouseGlobalPosition
3137         when updating m_currentMousePosition.
3138         (WebCore::EventHandler::handleMouseDoubleClickEvent): Ditto.
3139         (WebCore::EventHandler::handleMouseMoveEvent): Ditto.
3140         (WebCore::EventHandler::handleMouseReleaseEvent): Ditto.
3141         (WebCore::EventHandler::fakeMouseMoveEventTimerFired): Changed to use m_currentMouseGlobalPosition
3142         in the fake event instead of calling contentsToScreen().
3143         * page/EventHandler.h: Added m_currentMouseGlobalPosition data member.
3144
3145 2012-05-25  Philippe Normand  <pnormand@igalia.com>
3146
3147         [GStreamer] Remove ImageGStreamerCG implementation
3148         https://bugs.webkit.org/show_bug.cgi?id=87559
3149
3150         The ImageGStreamerCG abstraction is being removed until I manage to
3151         port my gst-mac WebKit branch over to the WebKit2 mac port. No
3152         need to update the XCode project because this file is not
3153         referenced there anyway.
3154
3155         Reviewed by Martin Robinson.
3156
3157         * platform/graphics/gstreamer/ImageGStreamer.h:
3158         (ImageGStreamer):
3159         * platform/graphics/gstreamer/ImageGStreamerCG.mm: Removed.
3160
3161 2012-05-26  Rob Buis  <rwlbuis@webkit.org>
3162
3163         Bug 15799: textPath element does not re-render when referenced path changes
3164         https://bugs.webkit.org/show_bug.cgi?id=15799
3165
3166         Reviewed by Nikolas Zimmermann.
3167
3168         Support textPath updating to changes on the referenced path. To make this possible
3169         use the target reference functionality also used by SVGFEImageElement.
3170
3171         Tests: svg/custom/textPath-change-id-expected.svg
3172                svg/custom/textPath-change-id-pattern-expected.svg
3173                svg/custom/textPath-change-id-pattern.svg
3174                svg/custom/textPath-change-id.svg
3175                svg/custom/textPath-change-id2-expected.svg
3176                svg/custom/textPath-change-id2-pattern-expected.svg
3177                svg/custom/textPath-change-id2-pattern.svg
3178                svg/custom/textPath-change-id2.svg
3179                svg/custom/textPath-change-reference-expected.svg
3180                svg/custom/textPath-change-reference-pattern-expected.svg
3181                svg/custom/textPath-change-reference-pattern.svg
3182                svg/custom/textPath-change-reference-using-baseval-expected.svg
3183                svg/custom/textPath-change-reference-using-baseval-pattern-expected.svg
3184                svg/custom/textPath-change-reference-using-baseval-pattern.svg
3185                svg/custom/textPath-change-reference-using-baseval.svg
3186                svg/custom/textPath-change-reference.svg
3187                svg/custom/textPath-change-reference2-expected.svg
3188                svg/custom/textPath-change-reference2-pattern-expected.svg
3189                svg/custom/textPath-change-reference2-pattern.svg
3190                svg/custom/textPath-change-reference2-using-baseval-expected.svg
3191                svg/custom/textPath-change-reference2-using-baseval-pattern-expected.svg
3192                svg/custom/textPath-change-reference2-using-baseval-pattern.svg
3193                svg/custom/textPath-change-reference2-using-baseval.svg
3194                svg/custom/textPath-change-reference2.svg
3195                svg/custom/textPath-insert-path-expected.svg
3196                svg/custom/textPath-insert-path-pattern-expected.svg
3197                svg/custom/textPath-insert-path-pattern.svg
3198                svg/custom/textPath-insert-path.svg
3199                svg/custom/textPath-modify-child-expected.svg
3200                svg/custom/textPath-modify-child-pattern-expected.svg
3201                svg/custom/textPath-modify-child-pattern.svg
3202                svg/custom/textPath-modify-child.svg
3203                svg/custom/textPath-path-change-expected.svg
3204                svg/custom/textPath-path-change-pattern-expected.svg
3205                svg/custom/textPath-path-change-pattern.svg
3206                svg/custom/textPath-path-change-using-svg-dom-expected.svg
3207                svg/custom/textPath-path-change-using-svg-dom-pattern-expected.svg
3208                svg/custom/textPath-path-change-using-svg-dom-pattern.svg
3209                svg/custom/textPath-path-change-using-svg-dom.svg
3210                svg/custom/textPath-path-change.svg
3211                svg/custom/textPath-path-change2-expected.svg
3212                svg/custom/textPath-path-change2-pattern-expected.svg
3213                svg/custom/textPath-path-change2-pattern.svg
3214                svg/custom/textPath-path-change2.svg
3215                svg/custom/textPath-remove-path-expected.svg
3216                svg/custom/textPath-remove-path-pattern-expected.svg
3217                svg/custom/textPath-remove-path-pattern.svg
3218                svg/custom/textPath-remove-path.svg
3219                svg/custom/textPath-set-id-expected.svg
3220                svg/custom/textPath-set-id.svg
3221                svg/custom/textPath-startoffset-expected.svg
3222                svg/custom/textPath-startoffset-pattern-expected.svg
3223                svg/custom/textPath-startoffset-pattern.svg
3224                svg/custom/textPath-startoffset.svg
3225
3226         * svg/SVGTextPathElement.cpp:
3227         (WebCore::SVGTextPathElement::~SVGTextPathElement):
3228         (WebCore):
3229         (WebCore::SVGTextPathElement::clearResourceReferences):
3230         (WebCore::SVGTextPathElement::svgAttributeChanged):
3231         (WebCore::SVGTextPathElement::buildPendingResource):
3232         (WebCore::SVGTextPathElement::insertedInto):
3233         (WebCore::SVGTextPathElement::removedFrom):
3234         * svg/SVGTextPathElement.h:
3235
3236 2012-05-26  Nikolas Zimmermann  <nzimmermann@rim.com>
3237
3238         Avoid updateFromElement() usage in SVG
3239         https://bugs.webkit.org/show_bug.cgi?id=87573
3240
3241         Stop relying on updateFromElement() - instead rely on addChild/removeChild, which
3242         allows us to optimize the resources re-fetching. When a child is added to the tree
3243         we don't need to remove existing resources from the SVGResourcesCache - the renderer
3244         can't be in the cache yet. Similary, remove the entry from the cache earlier: as soon
3245         as the renderer is removed from the tree, instead of waiting for willBeDestroyed().
3246
3247         No new tests, refactoring only.
3248
3249         * rendering/svg/RenderSVGBlock.cpp:
3250         * rendering/svg/RenderSVGBlock.h:
3251         (RenderSVGBlock):
3252         * rendering/svg/RenderSVGContainer.cpp:
3253         (WebCore::RenderSVGContainer::addChild):
3254         (WebCore):
3255         (WebCore::RenderSVGContainer::removeChild):
3256         * rendering/svg/RenderSVGContainer.h:
3257         (RenderSVGContainer):
3258         * rendering/svg/RenderSVGInline.cpp:
3259         (WebCore::RenderSVGInline::addChild):
3260         (WebCore::RenderSVGInline::removeChild):
3261         * rendering/svg/RenderSVGInline.h:
3262         (RenderSVGInline):
3263         * rendering/svg/RenderSVGModelObject.cpp:
3264         * rendering/svg/RenderSVGModelObject.h:
3265         (RenderSVGModelObject):
3266         * rendering/svg/RenderSVGResourceContainer.cpp:
3267         (WebCore::RenderSVGResourceContainer::registerResource):
3268         * rendering/svg/RenderSVGRoot.cpp:
3269         (WebCore::RenderSVGRoot::addChild):
3270         (WebCore):
3271         (WebCore::RenderSVGRoot::removeChild):
3272         * rendering/svg/RenderSVGRoot.h:
3273         (RenderSVGRoot):
3274         * rendering/svg/RenderSVGText.cpp:
3275         (WebCore::RenderSVGText::addChild):
3276         (WebCore::RenderSVGText::removeChild):
3277         * rendering/svg/SVGResourcesCache.cpp:
3278         (WebCore::SVGResourcesCache::clientStyleChanged):
3279         (WebCore::rendererCanHaveResources):
3280         (WebCore):
3281         (WebCore::SVGResourcesCache::clientWasAddedToTree):
3282         (WebCore::SVGResourcesCache::clientWillBeRemovedFromTree):
3283         * rendering/svg/SVGResourcesCache.h:
3284         (SVGResourcesCache):
3285         * svg/SVGStyledElement.cpp:
3286         * svg/SVGStyledElement.h:
3287         (SVGStyledElement):
3288
3289 2012-05-25  Nat Duca  <nduca@chromium.org>
3290
3291         [chromium] Instrument V8 GC with TraceEvent
3292         https://bugs.webkit.org/show_bug.cgi?id=87530
3293
3294         Reviewed by Kentaro Hara.
3295
3296         We sometimes get performance issues where performance stalls can
3297         be attributed to badly timed GC operations, especially ones that
3298         happen just before a frame running. This adds tracing calls around
3299         GC so that we can better understand these kinds of hangs.
3300
3301         * bindings/v8/V8GCController.cpp:
3302         (WebCore::V8GCController::gcPrologue):
3303         (WebCore::V8GCController::gcEpilogue):
3304
3305 2012-05-25  Garrett Casto  <gcasto@chromium.org>
3306
3307         Allow WebTextFieldDecoratorClient to see applied decorations.
3308         https://bugs.webkit.org/show_bug.cgi?id=86557
3309
3310         Reviewed by Kent Tamura.
3311
3312         * html/shadow/TextFieldDecorationElement.cpp:
3313         (WebCore::TextFieldDecorationElement::fromShadowRoot): A function
3314         that will extract a TextFielDecorationElement from a ShadowRoot, if
3315         there is one.
3316         * html/shadow/TextFieldDecorationElement.h:
3317         (WebCore):
3318         (TextFieldDecorator):
3319
3320 2012-05-25  Tony Chang  <tony@chromium.org>
3321
3322         implement new negative flexing algorithm
3323         https://bugs.webkit.org/show_bug.cgi?id=86528
3324
3325         Reviewed by Ojan Vafai.
3326
3327         Rather than just scale by the negative flexibility, we also take the
3328         flex-basis (preferred size) into consideration.  That means items with
3329         a larger preferred size will shrink faster.
3330
3331         Test: css3/flexbox/flex-algorithm.html (new test cases added)
3332
3333         * rendering/RenderFlexibleBox.cpp:
3334         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild): Handle overflow.
3335         (WebCore::RenderFlexibleBox::layoutFlexItems):
3336         (WebCore::RenderFlexibleBox::computeNextFlexLine): Sum weighted negative flex.
3337         (WebCore::RenderFlexibleBox::freezeViolations):
3338         (WebCore::RenderFlexibleBox::resolveFlexibleLengths): Shrink by weighted amount.
3339         Also handle large values by making sure the flex values are finite.
3340         * rendering/RenderFlexibleBox.h:
3341
3342 2012-05-25  Mihai Parparita  <mihaip@chromium.org>
3343
3344         Allow synchronous XHRs to be disabled in documents
3345         https://bugs.webkit.org/show_bug.cgi?id=87540
3346
3347         Reviewed by Eric Seidel.
3348
3349         Test: fast/xmlhttprequest/xmlhttprequest-sync-disabled.html
3350
3351         Synchronous XMLHttpRequests are a problematic API, since they result
3352         in blocked UI threads. Some clients may wish to always disable them;
3353         give them a setting to do so (see also r103629 for other cases where
3354         synchronous XHRs are disabled).
3355
3356         * page/Settings.cpp:
3357         (WebCore):
3358         (WebCore::Settings::Settings):
3359         * page/Settings.h:
3360         (Settings):
3361         (WebCore::Settings::setSyncXHRInDocumentsEnabled):
3362         (WebCore::Settings::syncXHRInDocumentsEnabled):
3363         * testing/InternalSettings.cpp:
3364         (WebCore::InternalSettings::InternalSettings):
3365         (WebCore::InternalSettings::restoreTo):
3366         (WebCore::InternalSettings::setSyncXHRInDocumentsEnabled):
3367         (WebCore):
3368         * testing/InternalSettings.h:
3369         (InternalSettings):
3370         * testing/InternalSettings.idl:
3371         * xml/XMLHttpRequest.cpp:
3372         (WebCore::XMLHttpRequest::open):
3373
3374 2012-05-25  Kinuko Yasuda  <kinuko@chromium.org>
3375
3376         [chromium] Deprecate FileUtilities::getFileSize and getFileModifiedTime in favor of getFileMetadata
3377         https://bugs.webkit.org/show_bug.cgi?id=87492
3378
3379         Reviewed by Adam Barth.
3380
3381         No new tests: existing tests (http/tests/local/fileapi/* and fast/files/*) should pass.
3382
3383         * platform/chromium/FileSystemChromium.cpp:
3384         (WebCore::getFileSize):
3385         (WebCore::getFileModificationTime):
3386         (WebCore::getFileMetadata):
3387         * platform/chromium/PlatformSupport.h:
3388         (PlatformSupport):
3389
3390 2012-05-25  Abhishek Arya  <inferno@chromium.org>
3391
3392         Crash in RenderTableSection::paintCell.
3393         https://bugs.webkit.org/show_bug.cgi?id=87445
3394
3395         Reviewed by Eric Seidel and Julien Chaffraix.
3396
3397         Fix the crash by preventing table parts from being set
3398         as layout root. This prevents us from accessing removed
3399         table cells which can happen if RenderTableSection::layout
3400         is called directly without calling RenderTable::layout first
3401         (in case of cell recalc).
3402
3403         Add ASSERTs to RenderTableSection::layout to prevent
3404         layout to happen when we are already pending cell recalc
3405         or our table is pending section recalc. In those cases,
3406         RenderTable::layout should be called first to relayout
3407         the entire table.
3408
3409         Test: tables/table-section-overflow-clip-crash.html
3410
3411         * rendering/RenderObject.cpp:
3412         (WebCore::objectIsRelayoutBoundary):
3413         * rendering/RenderTableSection.cpp:
3414         (WebCore::RenderTableSection::layout):
3415
3416 2012-05-25  Philip Rogers  <pdr@google.com>
3417
3418         Fix for self-closing <use> tags
3419         https://bugs.webkit.org/show_bug.cgi?id=87504
3420
3421         Reviewed by Adam Barth.
3422
3423         This change causes self-closing non-html tags to behave the same
3424         as tags immediately followed by the closing tag.
3425
3426         Test: svg/custom/svg-self-closing-use.html
3427
3428         * html/parser/HTMLConstructionSite.cpp:
3429         (WebCore::HTMLConstructionSite::attachLater):
3430         (WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
3431         (WebCore::HTMLConstructionSite::insertForeignElement):
3432         * html/parser/HTMLConstructionSite.h:
3433         (HTMLConstructionSite):
3434
3435 2012-05-25  Dan Bernstein  <mitz@apple.com>
3436
3437         Make the ICU-based implementation of NonSharedCharacterBreakIterator work in configurations
3438         that do not have COMPARE_AND_SWAP enabled.
3439
3440         Reviewed by Jessie Berlin.
3441
3442         * platform/text/TextBreakIteratorICU.cpp:
3443         (WebCore::compareAndSwapNonSharedCharacterBreakIterator): Added this helper. It uses
3444         weakCompareAndSwap when COMPARE_AND_SWAP is enabled, and uses a mutex to do the atomic
3445         compare and swap otherwise.
3446         (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Changed to use
3447         compareAndSwapNonSharedCharacterBreakIterator().
3448         (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Ditto.
3449
3450 2012-05-25  Tommy Widenflycht  <tommyw@google.com>
3451
3452         MediaStream API: Make sure IceCallback is valid for PeerConnection00
3453         https://bugs.webkit.org/show_bug.cgi?id=87480
3454
3455         Reviewed by Adam Barth.
3456
3457         Existing tests have been extended to cover this change.
3458
3459         * Modules/mediastream/PeerConnection00.cpp:
3460         (WebCore::PeerConnection00::create):
3461         * Modules/mediastream/PeerConnection00.h:
3462         * Modules/mediastream/PeerConnection00.idl:
3463
3464 2012-05-25  Mike West  <mkwst@chromium.org>
3465
3466         Inline script and style blocked by Content Security Policy should provide more detailed console errors.
3467         https://bugs.webkit.org/show_bug.cgi?id=86848
3468
3469         Reviewed by Adam Barth.
3470
3471         This change adds a URL and line number for context to each call to
3472         `ContentSecurityPolicy::allowInline*`, and pipes it through to the
3473         console message generation in `CSPDirectiveList::reportViolation`.
3474
3475         Line numbers are not added for injected scripts (`document.write(...)`,
3476         `document.body.appendChild`, and etc.).
3477
3478         Tests: http/tests/security/contentSecurityPolicy/injected-inline-script-allowed.html
3479                http/tests/security/contentSecurityPolicy/injected-inline-script-blocked.html
3480                http/tests/security/contentSecurityPolicy/injected-inline-style-allowed.html
3481                http/tests/security/contentSecurityPolicy/injected-inline-style-blocked.html
3482
3483         * bindings/ScriptControllerBase.cpp:
3484         (WebCore::ScriptController::executeIfJavaScriptURL):
3485         * bindings/js/JSLazyEventListener.cpp:
3486         (WebCore::JSLazyEventListener::initializeJSFunction):
3487         * bindings/v8/V8LazyEventListener.cpp:
3488         (WebCore::V8LazyEventListener::prepareListenerObject):
3489         * dom/ScriptElement.cpp:
3490         (WebCore::ScriptElement::ScriptElement):
3491         (WebCore::ScriptElement::executeScript):
3492         * dom/ScriptElement.h:
3493         (ScriptElement):
3494         * dom/StyleElement.cpp:
3495         (WebCore::StyleElement::StyleElement):
3496         (WebCore::StyleElement::createSheet):
3497         * dom/StyleElement.h:
3498         (StyleElement):
3499         * dom/StyledElement.cpp:
3500         (WebCore::StyledElement::StyledElement):
3501         (WebCore):
3502         (WebCore::StyledElement::style):
3503         (WebCore::StyledElement::styleAttributeChanged):
3504         * dom/StyledElement.h:
3505         (StyledElement):
3506         * page/ContentSecurityPolicy.cpp:
3507         (CSPDirectiveList):
3508         (WebCore::CSPDirectiveList::reportViolation):
3509         (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
3510         (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
3511         (WebCore::CSPDirectiveList::allowJavaScriptURLs):
3512         (WebCore::CSPDirectiveList::allowInlineEventHandlers):
3513         (WebCore::CSPDirectiveList::allowInlineScript):
3514         (WebCore::CSPDirectiveList::allowInlineStyle):
3515         (WebCore::CSPDirectiveList::allowEval):
3516         (WebCore):
3517         (WebCore::isAllowedByAllWithCallStack):
3518         (WebCore::isAllowedByAllWithContext):
3519         (WebCore::ContentSecurityPolicy::allowJavaScriptURLs):
3520         (WebCore::ContentSecurityPolicy::allowInlineEventHandlers):
3521         (WebCore::ContentSecurityPolicy::allowInlineScript):
3522         (WebCore::ContentSecurityPolicy::allowInlineStyle):
3523         * page/ContentSecurityPolicy.h:
3524         (WTF):
3525
3526 2012-05-25  Tim Horton  <timothy_horton@apple.com>
3527
3528         ENABLE_CSS3_FLEXBOX is insufficient to disable all web-facing bits of the feature
3529         https://bugs.webkit.org/show_bug.cgi?id=87537
3530         <rdar://problem/11524921>
3531
3532         Reviewed by Simon Fraser.
3533
3534         Allow the feature flag to disable more web-facing parts of the CSS3 flexbox
3535         implementation (primarily fallout from hiding it from computed style).
3536
3537         * css/CSSComputedStyleDeclaration.cpp:
3538         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3539         * css/CSSParser.cpp:
3540         (WebCore::isValidKeywordPropertyAndValue):
3541         (WebCore::isKeywordPropertyID):
3542         (WebCore::CSSParser::parseValue):
3543         * css/CSSPrimitiveValueMappings.h:
3544         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
3545         * css/CSSProperty.cpp:
3546         (WebCore::CSSProperty::isInheritedProperty):
3547         * css/CSSPropertyNames.in:
3548         * css/CSSValueKeywords.in:
3549         * css/StyleBuilder.cpp:
3550         (WebCore::StyleBuilder::StyleBuilder):
3551         * css/StylePropertySet.cpp:
3552         (WebCore::StylePropertySet::getPropertyValue):
3553         (WebCore::StylePropertySet::asText):
3554         * css/StylePropertyShorthand.cpp:
3555         (WebCore::shorthandForProperty):
3556         * css/StylePropertyShorthand.h:
3557         * css/StyleResolver.cpp:
3558         (WebCore::StyleResolver::collectMatchingRulesForList):
3559         * page/animation/CSSPropertyAnimation.cpp:
3560         (WebCore::CSSPropertyAnimation::ensurePropertyMap):
3561         * rendering/RenderObject.cpp:
3562         (WebCore::RenderObject::createObject):
3563         * rendering/style/RenderStyleConstants.h:
3564
3565 2012-05-25  Adrienne Walker  <enne@google.com>
3566
3567         [chromium] Add setting for painting debug info onto tiles
3568         https://bugs.webkit.org/show_bug.cgi?id=75763
3569
3570         Reviewed by James Robinson.
3571
3572         Add a compile-time CCSetting to paint debug information onto tiles. This
3573         can help to understand paint counts and layer indices. This setting is
3574         off by default.
3575
3576         * platform/graphics/chromium/ContentLayerChromium.cpp:
3577         (WebCore::ContentLayerPainter::create):
3578         (WebCore::ContentLayerPainter::paint):
3579         (WebCore::ContentLayerPainter::ContentLayerPainter):
3580         (WebCore::ContentLayerChromium::createTextureUpdater):
3581         * platform/graphics/chromium/TiledLayerChromium.cpp:
3582         (WebCore::UpdatableTile::UpdatableTile):
3583         (WebCore::UpdatableTile::setUpdateFrame):
3584         (WebCore::UpdatableTile::incrementPaintCount):
3585         (WebCore::UpdatableTile::updateFrame):
3586         (WebCore::UpdatableTile::paintCount):
3587         (WebCore::TiledLayerChromium::TiledLayerChromium):
3588         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
3589         (WebCore::TiledLayerChromium::paintDebugTileInfo):
3590         * platform/graphics/chromium/TiledLayerChromium.h:
3591         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3592         (WebCore::CCSettings::CCSettings):
3593
3594 2012-05-25  Ami Fischman  <fischman@chromium.org>
3595
3596         [chromium] Default media controls should render only the currentTime-containing buffered range
3597         https://bugs.webkit.org/show_bug.cgi?id=85925
3598
3599         Reviewed by Eric Carlson.
3600
3601         Test: http/tests/media/video-buffered-range-contains-currentTime.html
3602
3603         * rendering/RenderMediaControlsChromium.cpp:
3604         (WebCore::paintMediaSlider):
3605
3606 2012-05-25  Simon Fraser  <simon.fraser@apple.com>
3607
3608         Build fix: add TransformationMatrix ctor from an AffineTransform.
3609
3610         * platform/graphics/transforms/TransformationMatrix.cpp:
3611         (WebCore::TransformationMatrix::TransformationMatrix):
3612         (WebCore):
3613         * platform/graphics/transforms/TransformationMatrix.h:
3614         (TransformationMatrix):
3615
3616 2012-05-24  Ryosuke Niwa  <rniwa@webkit.org>
3617
3618         createContextualFragment and insertAdjacentHTML should throw syntax error
3619         https://bugs.webkit.org/show_bug.cgi?id=87454
3620
3621         Reviewed by Darin Adler.
3622
3623         Before this patch, createContextualFragment threw NOT_SUPPORTED_ERR and insertAdjacentHTML didn't throw any errors.
3624         Make them throw SYNTAX_ERR to be consistent with the spec and Firefox:
3625         http://html5.org/specs/dom-parsing.html#parsing
3626         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-xhtml-syntax.html#xml-fragment-parsing-algorithm
3627
3628         Also reduced the code duplication.
3629
3630         Test: fast/dom/xhtml-fragment-parsing-exceptions.xhtml
3631
3632         * dom/Range.cpp:
3633         (WebCore::Range::createContextualFragment):
3634         * dom/ShadowRoot.cpp:
3635         (WebCore::ShadowRoot::setInnerHTML): Explicitly pass AllowScriptingContent. 
3636         * editing/markup.cpp:
3637         (WebCore::createFragmentFromMarkup):
3638         (WebCore::createFragmentForInnerOuterHTML): Takes ExceptionCode now.
3639         (WebCore::createContextualFragment): Share code with createFragmentForInnerOuterHTML
3640         and propagate the exception code.
3641         * editing/markup.h:
3642         * html/HTMLElement.cpp:
3643         (WebCore::HTMLElement::setInnerHTML): Explicitly pass AllowScriptingContent.
3644         (WebCore::HTMLElement::setOuterHTML): Ditto.
3645         (WebCore::HTMLElement::insertAdjacentHTML): Ditto; also rename ignoredEc to ignoredEC
3646         per Darin's comment on the bug 87339.
3647
3648 2012-05-25  John Knottenbelt  <jknotten@chromium.org>
3649
3650         Body scrollWidth() and scrollHeight() should be page scale-invariant
3651         https://bugs.webkit.org/show_bug.cgi?id=87494
3652
3653         RenderView::documentRect() is calculating the "scaled" document rect by applying
3654         the current transformation matrix to the unscaledDocumentRect() and then
3655         returning the rounded-out IntRect result.
3656
3657         This rounding out is incorrect because it allows the scaled rectangle to
3658         represent an area that is not actually covered by the document.
3659
3660         We fix this by applying the current transform to the document rect
3661         as a FloatRect and then explicitly converting to IntRect, which
3662         takes the floor of the resulting rectangle coordinates instead of
3663         rounding them out.
3664
3665         This is evidenced by the document.body.scrollWidth() and
3666         document.body.scrollHeight() changing under page scale factor when
3667         they are expected to remain invariant.
3668
3669         Reviewed by James Robinson.
3670
3671         Test: fast/dom/window-scroll-scaling.html
3672
3673         * rendering/RenderView.cpp:
3674         (WebCore::RenderView::documentRect):
3675
3676 2012-05-25  Dan Bernstein  <mitz@apple.com>
3677
3678         characterBreakIterator() is not safe to use reentrantly or from multiple threads
3679         https://bugs.webkit.org/show_bug.cgi?id=87521
3680
3681         Reviewed by Darin Adler.
3682
3683         Replaced characterBreakIterator() with a NonSharedCharacterBreakIterator class, which
3684         obtains a unique TextBreakIterator. Replaced the global shared instance with a single-entry
3685         cache.
3686
3687         * dom/CharacterData.cpp:
3688         (WebCore::CharacterData::parserAppendData): Changed to use NonSharedCharacterBreakIterator.
3689
3690         * platform/graphics/StringTruncator.cpp:
3691         (WebCore::centerTruncateToBuffer): Ditto.
3692         (WebCore::rightTruncateToBuffer): Ditto.
3693
3694         * platform/text/String.cpp:
3695         (WebCore::numGraphemeClusters): Ditto.
3696         (WebCore::numCharactersInGraphemeClusters): Ditto.
3697
3698         * platform/text/TextBreakIterator.h: Removed the declaration of characterBreakIterator().
3699         (NonSharedCharacterBreakIterator): Added. An instance of this class has a character break
3700         iterator instance that is unique to it for the lifetime of the instance.
3701         (WebCore::NonSharedCharacterBreakIterator::operator TextBreakIterator*): Added.
3702
3703         * platform/text/TextBreakIteratorICU.cpp:
3704         (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Added. Tries
3705         to swap the m_iterator member variable with the cached instance. If that fails, initializes
3706         m_iterator to a new character break iterator.
3707         (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Added. Tries
3708         to put the m_iterator member variable back in the cache. If that fails, meaning there is
3709         already something in the cache, destroys m_iterator.
3710
3711         * platform/text/gtk/TextBreakIteratorGtk.cpp:
3712         (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Same as in
3713         TextBreakIteratorICU.cpp.
3714         (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Ditto.
3715         (WebCore::cursorMovementIterator): Moved the old implementation of characterBreakIterator()
3716         here.
3717
3718         * platform/text/qt/TextBreakIteratorQt.cpp:
3719         (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Same as in
3720         TextBreakIteratorICU.cpp.
3721         (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Ditto.
3722         (WebCore::cursorMovementIterator): Moved the old implementation of characterBreakIterator()
3723         here.
3724
3725         * platform/text/wince/TextBreakIteratorWinCE.cpp:
3726         (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Same as in
3727         TextBreakIteratorICU.cpp.
3728         (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Ditto.
3729         (WebCore::cursorMovementIterator): Moved the old implementation of characterBreakIterator()
3730         here.
3731
3732 2012-05-25  Simon Fraser  <simon.fraser@apple.com>
3733
3734         Terrible performance on http://alliances.commandandconquer.com/ and http://www.lordofultima.com/
3735         https://bugs.webkit.org/show_bug.cgi?id=84410
3736
3737         Reviewed by Dave Hyatt.
3738         
3739         First part of fixing O(N^2) issues when walking the RenderLayer tree
3740         for computeCompositingRequirements().
3741         
3742         For each layer that goes into the OverlapMap, we were computing an absolute
3743         layer bounds, which requires walking back to the root of the tree.
3744         Optimize this when possible by storing a stack of offsets as we walk
3745         the tree, and using this stack to do the mapping.
3746         
3747         The stack of offsets and transforms is managed by RenderGeometryMap.
3748         When visiting a RenderLayer, RenderLayerCompositor pushes onto
3749         the geometry map stack data about offsets and transforms between
3750         the current layer and its stacking-parent. RenderGeometryMap handles
3751         the case where the previous renderer pushed is between the current
3752         renderer and its container. RenderGeometryMap can also handle callers
3753         pushing renderers with multiple containers between them.
3754         
3755         RenderGeometryMap stores some flags about whether the set of mapping
3756         steps in the stack involve transforms, fixed position, or special non-uniform
3757         mappings like CSS columns. In some cases, it falls back to mapping via
3758         renderers.
3759
3760         Once constructed, the RenderGeometryMap stack can be used to map multiple
3761         rects or points efficiently. Stacks consisting of simple offsets are
3762         collapsed to a single offset.
3763         
3764         Mappings between renderers and their containers are pushed by pushMappingToContainer()
3765         methods, which are similar to mapLocalToContainer() methods. Having this code
3766         in RenderObjects was deemed preferable to handling columns, transforms etc. all in
3767         RenderLayer code.
3768
3769         Tested by assertions in RenderGeometryMap code that its mapping matches
3770         mapping via localToAbsolute() calls.
3771         
3772         RenderLayerCompositor::updateCompositingLayers() creates a RenderGeometryMap,
3773         and pushes and pops layer renderers as it visits them. The geometry map is used
3774         by RenderLayerCompositor::addToOverlapMap() when computing absolute layer bounds.
3775         
3776         Futher optimizations in RenderGeometryMap are possible, especially with stacks that
3777         have many offsets and a few transforms.
3778
3779         Tests: compositing/geometry/composited-in-columns.html
3780                compositing/geometry/flipped-writing-mode.html
3781
3782         * CMakeLists.txt: Add RenderGeometryMap
3783         * GNUmakefile.list.am: Ditt
3784         * Target.pri: Ditto
3785         * WebCore.gypi: Ditto
3786         * WebCore.vcproj/WebCore.vcproj: Ditto
3787         * WebCore.xcodeproj/project.pbxproj: Ditto
3788         * rendering/RenderBox.cpp:
3789         (WebCore::RenderBox::absoluteContentBox):
3790         (WebCore::RenderBox::pushMappingToContainer):
3791         (WebCore::RenderBox::offsetFromContainer):
3792         * rendering/RenderBox.h:
3793         * rendering/RenderGeometryMap.cpp: Added.
3794         (RenderGeometryMapStep):
3795         (WebCore::RenderGeometryMapStep::RenderGeometryMapStep):
3796         (WebCore::RenderGeometryMapStep::mapPoint):
3797         (WebCore::RenderGeometryMapStep::mapQuad):
3798         (WebCore::RenderGeometryMap::RenderGeometryMap):
3799         (WebCore::RenderGeometryMap::~RenderGeometryMap):
3800         (WebCore::RenderGeometryMap::absolutePoint):
3801         (WebCore::RenderGeometryMap::absoluteRect):
3802         (WebCore::RenderGeometryMap::mapToAbsolute):
3803         (WebCore::RenderGeometryMap::pushMappingsToAncestor):
3804         (WebCore::RenderGeometryMap::push):
3805         (WebCore::RenderGeometryMap::pushView):
3806         (WebCore::RenderGeometryMap::popMappingsToAncestor):
3807         (WebCore::RenderGeometryMap::stepInserted):
3808         (WebCore::RenderGeometryMap::stepRemoved):
3809         * rendering/RenderGeometryMap.h: Added.
3810         (RenderGeometryMap):
3811         (WebCore::RenderGeometryMap::hasNonUniformStep):
3812         (WebCore::RenderGeometryMap::hasTransformStep):
3813         (WebCore::RenderGeometryMap::hasFixedPositionStep):
3814         * rendering/RenderInline.cpp:
3815         (WebCore::RenderInline::offsetFromContainer):
3816         (WebCore::RenderInline::pushMappingToContainer):
3817         * rendering/RenderInline.h:
3818         (RenderInline):
3819         * rendering/RenderLayerCompositor.cpp:
3820         (WebCore::RenderLayerCompositor::updateCompositingLayers):
3821         (WebCore::RenderLayerCompositor::addToOverlapMap):
3822         (WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
3823         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
3824         * rendering/RenderLayerCompositor.h:
3825         (RenderLayerCompositor):
3826         * rendering/RenderObject.cpp:
3827         (WebCore::RenderObject::mapLocalToContainer):
3828         (WebCore::RenderObject::pushMappingToContainer):
3829         (WebCore::RenderObject::offsetFromContainer):
3830         (WebCore::RenderObject::container):
3831         * rendering/RenderObject.h:
3832         * rendering/RenderTableCell.cpp:
3833         (WebCore::RenderTableCell::offsetFromContainer):
3834         * rendering/RenderTableCell.h:
3835         (RenderTableCell):
3836         * rendering/RenderView.cpp:
3837         (WebCore::RenderView::pushMappingToContainer):
3838         * rendering/RenderView.h:
3839         * rendering/svg/RenderSVGForeignObject.cpp:
3840         (WebCore::RenderSVGForeignObject::pushMappingToContainer):
3841         * rendering/svg/RenderSVGForeignObject.h:
3842         (RenderSVGForeignObject):
3843         * rendering/svg/RenderSVGInline.cpp:
3844         (WebCore::RenderSVGInline::pushMappingToContainer):
3845         * rendering/svg/RenderSVGInline.h:
3846         (RenderSVGInline):
3847         * rendering/svg/RenderSVGModelObject.cpp:
3848         (WebCore::RenderSVGModelObject::pushMappingToContainer):
3849         * rendering/svg/RenderSVGModelObject.h:
3850         (RenderSVGModelObject):
3851         * rendering/svg/RenderSVGRoot.cpp:
3852         (WebCore::RenderSVGRoot::pushMappingToContainer):
3853         * rendering/svg/RenderSVGRoot.h:
3854         (RenderSVGRoot):
3855         * rendering/svg/RenderSVGText.cpp:
3856         (WebCore::RenderSVGText::pushMappingToContainer):
3857         * rendering/svg/RenderSVGText.h:
3858         (RenderSVGText):
3859         * rendering/svg/SVGRenderSupport.cpp:
3860         (WebCore::SVGRenderSupport::pushMappingToContainer):
3861         * rendering/svg/SVGRenderSupport.h:
3862         (SVGRenderSupport):
3863
3864 2012-05-25  Simon Fraser  <simon.fraser@apple.com>
3865
3866         Cache absolute clip rects on RenderLayer for compositing overlap testing
3867         https://bugs.webkit.org/show_bug.cgi?id=87212
3868
3869         Reviewed by Dave Hyatt.
3870         
3871         Enhance the cache of ClipRects on RenderLayers to store three
3872         different types of ClipRects, rather than just one.
3873         
3874         We need to compute clip rects relative to different layers
3875         for different purposes. For painting, we compute relative to
3876         the compositing layer which is acting as a painting root.
3877         For hit testing, we compute relative to the root, except
3878         for transformed layers. For composting overlap testing, we
3879         compute relative to the root ("absolute"). At other times, we do one-off
3880         computation which we never want to cache ("temporary clip rects").
3881         
3882         This change allows us to cache rects for hit testing, and for
3883         compositing overlap testing. This has huge performance benefits
3884         on some pages (bug 84410).
3885         
3886         This change also makes ClipRects not arena-allocated, so we
3887         can use RefPtr<ClipRect>.
3888
3889         No testable behavior change.
3890
3891         * rendering/RenderBoxModelObject.cpp:
3892         (WebCore::RenderBoxModelObject::willBeDestroyed): No need for the
3893         explicit clipRects teardown, since clipRects don't need a live
3894         RenderObject for arena-based destruction.
3895
3896         * rendering/RenderLayer.cpp: Remove arena-related new and delete.
3897         (WebCore::RenderLayer::RenderLayer): No need to explicitly initialize m_clipRects,
3898         since it's an OwnPtr now.
3899         (WebCore::RenderLayer::~RenderLayer): No explicit clipRect teardown required.
3900         (WebCore::RenderLayer::clippingRootForPainting): Renamed to make its purpose
3901         more obvious.
3902         (WebCore::RenderLayer::paintLayer): Use the TemporaryClipRects type when necessary.
3903         (WebCore::RenderLayer::paintLayerContents): Ditto
3904         (WebCore::RenderLayer::hitTestLayer): No longer need to use temporary clipRects when
3905         hit testing since we cache clip rects for hit testing.
3906         (WebCore::RenderLayer::updateClipRects): Take a ClipRectsType and pass it through.
3907         (WebCore::RenderLayer::calculateClipRects): Ditto
3908         (WebCore::RenderLayer::parentClipRects): Ditto
3909         (WebCore::RenderLayer::backgroundClipRect): Ditto
3910         (WebCore::RenderLayer::calculateRects): Take ClipRectsType, which obviates temporaryClipRects.
3911         (WebCore::RenderLayer::childrenClipRect): Use clippingRootForPainting().
3912         (WebCore::RenderLayer::selfClipRect): Ditto
3913         (WebCore::RenderLayer::localClipRect): Ditto
3914         (WebCore::RenderLayer::clearClipRectsIncludingDescendants): Take a type of clip rect to clear
3915         (include all). Allows us to just clear painting clip rects.
3916         (WebCore::RenderLayer::clearClipRects):
3917
3918         * rendering/RenderLayer.h:
3919         (WebCore::ClipRects::create): We don't use RefCounted<> in order to use a bit in
3920         the refCount for a flag. Add create() method.
3921         (WebCore::ClipRects::deref): No longer arena-allocated.
3922         (WebCore::ClipRectsCache::ClipRectsCache): Struct that holds a small
3923         array of the 3 types of clipRects (and, in debug, the layer relative
3924         to which they were computed).
3925         (WebCore::RenderLayer::clipRects):
3926
3927         * rendering/RenderLayerBacking.cpp:
3928         (WebCore::RenderLayerBacking::updateCompositedBounds): Use AbsoluteClipRects; rootLayer
3929         is always the RenderView's layer here.
3930         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Use TemporaryClipRects.
3931         (WebCore::RenderLayerBacking::setRequiresOwnBackingStore): When this variable changes,
3932         we need to invalidate painting clipRects, since it affects the ancestor relative to which
3933         those rects are computed.
3934
3935         * rendering/RenderLayerBacking.h:
3936         * rendering/RenderLayerCompositor.cpp:
3937         (WebCore::RenderLayerCompositor::updateBacking): When the composited state
3938         of a layer changes, we have to clear all descendant clip rects, since this
3939         can affect the layers relative to which clip rects are computed.
3940         (WebCore::RenderLayerCompositor::addToOverlapMap): Use AbsoluteClipRects.
3941         (WebCore::RenderLayerCompositor::computeCompositingRequirements): No need
3942         to call updateLayerPosition(), since that should have always happened after
3943         layout. That call cleared clip rects, so removing it is very beneficial.
3944         (WebCore::RenderLayerCompositor::clippedByAncestor): Use TemporaryClipRects.
3945
3946         * rendering/RenderTreeAsText.cpp:
3947         (WebCore::writeLayers): Use TemporaryClipRects.
3948
3949 2012-05-25  Dean Jackson  <dino@apple.com>
3950
3951         Unreviewed, rolling out r112155.
3952         http://trac.webkit.org/changeset/112155
3953         https://bugs.webkit.org/show_bug.cgi?id=79389
3954         Hitch (due to style recalc?) when starting CSS3 animation
3955
3956         This caused a number of issues, including:
3957         https://bugs.webkit.org/show_bug.cgi?id=87146
3958         https://bugs.webkit.org/show_bug.cgi?id=84194
3959         <rdar://problem/11506629>
3960         <rdar://problem/11267408>
3961         <rdar://problem/11531859>
3962
3963         * dom/Element.cpp:
3964         (WebCore::Element::recalcStyle):
3965
3966 2012-05-25  David Hyatt  <hyatt@apple.com>
3967
3968         https://bugs.webkit.org/show_bug.cgi?id=87525
3969         
3970         For the new multi-column layout, create a flow thread and make sure the children get put inside it.
3971
3972         Reviewed by Eric Seidel.
3973
3974         * rendering/RenderMultiColumnBlock.cpp:
3975         (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
3976         (WebCore::RenderMultiColumnBlock::addChild):
3977         (WebCore):
3978         * rendering/RenderMultiColumnBlock.h:
3979         (WebCore):
3980         (RenderMultiColumnBlock):
3981         (WebCore::RenderMultiColumnBlock::flowThread):
3982         * rendering/RenderMultiColumnFlowThread.cpp:
3983         (WebCore::RenderMultiColumnFlowThread::~RenderMultiColumnFlowThread):
3984         (WebCore):
3985         * rendering/RenderMultiColumnFlowThread.h:
3986         (RenderMultiColumnFlowThread):
3987         * rendering/RenderMultiColumnSet.h:
3988         * rendering/RenderObject.h:
3989         (RenderObject):
3990         (WebCore::RenderObject::isRenderMultiColumnSet):
3991
3992 2012-05-25  Emil A Eklund  <eae@chromium.org>
3993
3994         Change RenderBoxModelObject to compute relativePositionOffset as size
3995         https://bugs.webkit.org/show_bug.cgi?id=87447
3996
3997         Reviewed by Eric Seidel.
3998
3999         Compute relativePositionOffset as size instead of doing one axis at a
4000         time as all call sites uses the size version of the method. This avoids
4001         having to walk the DOM twice to accumulate the offsets.
4002
4003         Also remove the relativePositionOffsetX and Y methods as they are no
4004         longer used.
4005
4006         No new tests, covered by existing tests.
4007
4008         * rendering/RenderBox.cpp:
4009         (WebCore::RenderBox::layoutOverflowRectForPropagation):
4010         * rendering/RenderBoxModelObject.cpp:
4011         (WebCore::accumulateRelativePositionOffsets):
4012         (WebCore::RenderBoxModelObject::relativePositionOffset):
4013         * rendering/RenderBoxModelObject.h:
4014         (RenderBoxModelObject):
4015
4016 2012-05-25  Sheriff Bot  <webkit.review.bot@gmail.com>
4017
4018         Unreviewed, rolling out r118395.
4019         http://trac.webkit.org/changeset/118395
4020         https://bugs.webkit.o