An <area> element remains focusable even though its associated <img> is not rendered.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-26  Antaryami Pandia  <antaryami.pandia@motorola.com>
2
3         An <area> element remains focusable even though its associated <img> is not rendered.
4         https://bugs.webkit.org/show_bug.cgi?id=71788
5
6         Reviewed by Andy Estes.
7
8         HTMLAreaElement::isFocusable() needs to consider the display and
9         visibility state.
10
11         Test: fast/events/tab-test-not-visible-imagemap.html
12
13         * html/HTMLAreaElement.cpp:
14         (WebCore::HTMLAreaElement::imageElement):
15         (WebCore::HTMLAreaElement::isFocusable):
16         * html/HTMLAreaElement.h: Make imageElement() const.
17         (HTMLAreaElement):
18
19 2012-03-26  Anton Muhin  <antonm@chromium.org>
20
21         Fix a typo in IDL
22         https://bugs.webkit.org/show_bug.cgi?id=82215
23
24         Reviewed by Adam Barth.
25
26         No new tests, just a typo fix.
27
28         * notifications/WorkerContextNotifications.idl:
29
30 2012-03-26  W. James MacLean  <wjmaclean@chromium.org>
31
32         [chromium] Change handleGestureFling() to use CCInputHandlerClient::Wheel.
33         https://bugs.webkit.org/show_bug.cgi?id=82133
34
35         Reviewed by James Robinson.
36
37         Covered by existing unit tests.
38
39         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
40         (WebCore::CCLayerTreeHostImpl::scrollBegin):
41
42 2012-03-26  Mike Lawther  <mikelawther@chromium.org>
43
44         CSS3 calc: mixed percent/absolute for box-reflect
45         https://bugs.webkit.org/show_bug.cgi?id=82161
46
47         Reviewed by Ojan Vafai.
48
49         Tests: css3/calc/box-reflect-expected.html
50                css3/calc/box-reflect.html
51
52         * css/CSSStyleSelector.cpp:
53         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
54
55 2012-03-26  Mike Lawther  <mikelawther@chromium.org>
56
57         CSS3 calc: mixed percent/absolute support for vertical-align
58         https://bugs.webkit.org/show_bug.cgi?id=82152
59
60         Reviewed by Ojan Vafai.
61
62         Tests: css3/calc/vertical-align-expected.html
63                css3/calc/vertical-align.html
64
65         * css/CSSStyleApplyProperty.cpp:
66         (WebCore::ApplyPropertyVerticalAlign::applyValue):
67
68 2012-03-26  Filip Spacek  <fspacek@rim.com>
69
70         [BlackBerry] Accelerated compositing updates
71         https://bugs.webkit.org/show_bug.cgi?id=82058
72
73         Reviewed by Rob Buis.
74
75         * platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
76         (WebCore::CanvasLayerWebKitThread::CanvasLayerWebKitThread):
77         (WebCore::CanvasLayerWebKitThread::~CanvasLayerWebKitThread):
78         (WebCore::CanvasLayerWebKitThread::setDevice):
79         (WebCore::CanvasLayerWebKitThread::updateTextureContentsIfNeeded):
80         * platform/graphics/blackberry/CanvasLayerWebKitThread.h:
81         (WebCore::CanvasLayerWebKitThread::create):
82         (CanvasLayerWebKitThread):
83         * platform/graphics/blackberry/InstrumentedPlatformCanvas.h:
84         (WebCore::InstrumentedPlatformCanvas::InstrumentedPlatformCanvas):
85         (WebCore::InstrumentedPlatformCanvas::save):
86         (WebCore::InstrumentedPlatformCanvas::saveLayer):
87         (WebCore::InstrumentedPlatformCanvas::restore):
88         (WebCore::InstrumentedPlatformCanvas::translate):
89         (WebCore::InstrumentedPlatformCanvas::scale):
90         (WebCore::InstrumentedPlatformCanvas::rotate):
91         (WebCore::InstrumentedPlatformCanvas::skew):
92         (WebCore::InstrumentedPlatformCanvas::concat):
93         (WebCore::InstrumentedPlatformCanvas::setMatrix):
94         (WebCore::InstrumentedPlatformCanvas::clipRect):
95         (WebCore::InstrumentedPlatformCanvas::clipPath):
96         (WebCore::InstrumentedPlatformCanvas::clipRegion):
97         (WebCore::InstrumentedPlatformCanvas::clear):
98         (WebCore::InstrumentedPlatformCanvas::drawPaint):
99         (WebCore::InstrumentedPlatformCanvas::drawPoints):
100         (WebCore::InstrumentedPlatformCanvas::drawRect):
101         (WebCore::InstrumentedPlatformCanvas::drawPath):
102         (WebCore::InstrumentedPlatformCanvas::drawBitmap):
103         (WebCore::InstrumentedPlatformCanvas::drawBitmapRect):
104         (WebCore::InstrumentedPlatformCanvas::drawBitmapMatrix):
105         (WebCore::InstrumentedPlatformCanvas::drawSprite):
106         (WebCore::InstrumentedPlatformCanvas::drawText):
107         (WebCore::InstrumentedPlatformCanvas::drawPosText):
108         (WebCore::InstrumentedPlatformCanvas::drawPosTextH):
109         (WebCore::InstrumentedPlatformCanvas::drawTextOnPath):
110         (WebCore::InstrumentedPlatformCanvas::drawPicture):
111         (WebCore::InstrumentedPlatformCanvas::drawVertices):
112         (WebCore::InstrumentedPlatformCanvas::drawData):
113         * platform/graphics/blackberry/LayerData.h:
114         (WebCore::LayerData::LayerData):
115         (WebCore::LayerData::needsTexture):
116         (LayerData):
117         * platform/graphics/blackberry/LayerTiler.cpp:
118         (WebCore::LayerTiler::updateTextureContentsIfNeeded):
119         * platform/graphics/blackberry/LayerWebKitThread.cpp:
120         (WebCore::LayerWebKitThread::paintContents):
121         (WebCore::LayerWebKitThread::setDrawable):
122         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
123         (WebCore::loadBufferingImageData):
124         * platform/graphics/blackberry/skia/ImageBufferDataSkia.h: Renamed from Source/WebCore/platform/graphics/blackberry/skia/ImageBufferData.h.
125         (WebCore):
126         (ImageBufferData):
127
128 2012-03-26  Stephen Chenney  <schenney@chromium.org>
129
130         Failure to invalidate text position attributes when DOM changes
131         https://bugs.webkit.org/show_bug.cgi?id=81464
132
133         Reviewed by Nikolas Zimmermann.
134
135         The text positioning elements data structure in RenderSVGText must be
136         updated when either the children of the corresponding element are
137         modified, or the length of the text inside the elements changes.
138         Previously, the call to clear the text positioning elements (to force
139         recomputation) was guarded by a flag. If code tried to invalidate when
140         the flag was not set, then something set the flag, the elements would
141         be invalid at use time.
142
143         This patch modifies the method that invalidates the positining
144         attributes so that the action always happens. It also renames the
145         method to more accurately reflect its function.
146
147         Test: svg/custom/delete-modified-text-in-defs-crash.svg
148
149         * rendering/svg/RenderSVGInlineText.cpp:
150         (WebCore::RenderSVGInlineText::setTextInternal): Rename textDOMChanged to invalidateTextPositioningElements
151         * rendering/svg/RenderSVGText.cpp:
152         (WebCore::RenderSVGText::invalidateTextPositioningElements): Rename
153         textDOMChanged to invalidateTextPositioningElements and remove the check against the needsPosition... flag.
154         * rendering/svg/RenderSVGText.h:
155         (RenderSVGText): Rename textDOMChanged to invalidateTextPositioningElements
156         * svg/SVGAElement.cpp:
157         (WebCore::SVGAElement::childrenChanged): Rename textDOMChanged to invalidateTextPositioningElements
158         * svg/SVGTextContentElement.cpp:
159         (WebCore::SVGTextContentElement::childrenChanged): Rename textDOMChanged to invalidateTextPositioningElements
160
161 2012-03-26  Julien Chaffraix  <jchaffraix@webkit.org>
162
163         REGRESSION (r110065-r110080): fast/forms/placeholder-set-attribute.html is failing intermittently because WebKit fails to repaint after setting the placeholder attribute
164         https://bugs.webkit.org/show_bug.cgi?id=81802
165
166         Reviewed by Dan Bernstein.
167
168         Covered by fast/forms/placeholder-set-attribute.html which should be less flaky.
169
170         Unfortunately no new test case as this bug requires a very specific set of conditions that I couldn't reproduce deterministically.
171
172         This is a regression from r110072: RenderTextControlSingleLine would rely on the placeholder's RenderLayer to properly repaint during
173         the first layout as the placeholder has overflow: hidden set. r110072 removed the layer in this case and thus we miss a repaint.
174
175         * rendering/RenderTextControlSingleLine.cpp:
176         (WebCore::RenderTextControlSingleLine::layout):
177         For our first layout, we need to make sure our placeholder is painted. layoutBlockChild has a very similar logic to force repaint
178         on a first layout. We don't hit this logic as the placeholder is explicitly skipped in RenderTextControl::layoutSpecialExcludedChild.
179
180 2012-03-26  Julien Chaffraix  <jchaffraix@webkit.org>
181
182         REGRESSION(r110072): fast/forms/textfield-overflow.html is failing
183         https://bugs.webkit.org/show_bug.cgi?id=80531
184
185         Reviewed by Ojan Vafai.
186
187         Tested by fast/forms/textfield-overflow.html (re-enabled after this change).
188
189         The existing code would happily query layout information before calling layout (FTW!).
190         The solution is to properly layout our object, then modify some dimensions as needed while
191         marking ourself as needing layout and then layouting again.
192
193         * rendering/RenderTextControlSingleLine.cpp:
194         (WebCore::RenderTextControlSingleLine::layout):
195         Implemented a proper 2 pass layout algorithm. Removed the |relayoutChildren| logic as:
196         - layoutBlock handles automatically logical height changes.
197         - we were not modifying the logical width between layouts so we don't need to force a
198         child relayout in this case.
199
200 2012-03-26  Robin Cao  <robin.cao@torchmobile.com.cn>
201
202         [BlackBerry] Upstream LayerCompositingThread.{h, cpp}
203         https://bugs.webkit.org/show_bug.cgi?id=79873
204
205         Reviewed by Rob Buis.
206
207         Initial upstream, no new tests.
208
209         * platform/graphics/blackberry/LayerCompositingThread.cpp: Added.
210         (WebCore):
211         (WebCore::LayerCompositingThread::create):
212         (WebCore::LayerCompositingThread::LayerCompositingThread):
213         (WebCore::LayerCompositingThread::~LayerCompositingThread):
214         (WebCore::LayerCompositingThread::destroyOnCompositingThread):
215         (WebCore::LayerCompositingThread::setLayerRenderer):
216         (WebCore::LayerCompositingThread::deleteTextures):
217         (WebCore::LayerCompositingThread::setDrawTransform):
218         (WebCore::getTransformedRect):
219         (WebCore::LayerCompositingThread::getTransformedHolePunchRect):
220         (WebCore::LayerCompositingThread::drawTextures):
221         (WebCore::LayerCompositingThread::drawSurface):
222         (WebCore::LayerCompositingThread::drawMissingTextures):
223         (WebCore::LayerCompositingThread::releaseTextureResources):
224         (WebCore::LayerCompositingThread::setPluginView):
225         (WebCore::LayerCompositingThread::setMediaPlayer):
226         (WebCore::LayerCompositingThread::clearAnimations):
227         (WebCore::LayerCompositingThread::removeSublayer):
228         (WebCore::LayerCompositingThread::indexOfSublayer):
229         (WebCore::LayerCompositingThread::rootLayer):
230         (WebCore::LayerCompositingThread::removeFromSuperlayer):
231         (WebCore::LayerCompositingThread::setSublayers):
232         (WebCore::LayerCompositingThread::updateTextureContentsIfNeeded):
233         (WebCore::LayerCompositingThread::setVisible):
234         (WebCore::LayerCompositingThread::setNeedsCommit):
235         (WebCore::LayerCompositingThread::scheduleCommit):
236         (WebCore::LayerCompositingThread::updateAnimations):
237         (WebCore::LayerCompositingThread::hasVisibleHolePunchRect):
238         (WebCore::LayerCompositingThread::createLayerRendererSurface):
239         * platform/graphics/blackberry/LayerCompositingThread.h: Added.
240         (Graphics):
241         (WebCore):
242         (LayerCompositingThread):
243         (WebCore::LayerCompositingThread::bindContentsTexture):
244         (WebCore::LayerCompositingThread::getSublayers):
245         (WebCore::LayerCompositingThread::setSuperlayer):
246         (WebCore::LayerCompositingThread::superlayer):
247         (WebCore::LayerCompositingThread::drawTransform):
248         (WebCore::LayerCompositingThread::setDrawOpacity):
249         (WebCore::LayerCompositingThread::drawOpacity):
250         (WebCore::LayerCompositingThread::layerRendererSurface):
251         (WebCore::LayerCompositingThread::clearLayerRendererSurface):
252         (WebCore::LayerCompositingThread::setMaskLayer):
253         (WebCore::LayerCompositingThread::maskLayer):
254         (WebCore::LayerCompositingThread::setReplicaLayer):
255         (WebCore::LayerCompositingThread::replicaLayer):
256         (WebCore::LayerCompositingThread::getDrawRect):
257         (WebCore::LayerCompositingThread::getTransformedBounds):
258         (WebCore::LayerCompositingThread::hasMissingTextures):
259         (WebCore::LayerCompositingThread::isDirty):
260         (WebCore::LayerCompositingThread::isVisible):
261         (WebCore::LayerCompositingThread::setOpacity):
262         (WebCore::LayerCompositingThread::setTransform):
263         (WebCore::LayerCompositingThread::hasRunningAnimations):
264         (WebCore::LayerCompositingThread::numSublayers):
265
266 2012-03-26  Kent Tamura  <tkent@chromium.org>
267
268         Add a notification function for detaching to TextFieldDecorator
269         https://bugs.webkit.org/show_bug.cgi?id=82142
270
271         Reviewed by Dimitri Glazkov.
272
273         Add willDetach() functio to TextFieldDecorator. This will be
274         needed if a decorator opens a popup UI on handleClick(), and the
275         popup UI should be closed when the attaching text field is
276         detached.
277
278         No new tests because of no behavior changes in any platforms.
279
280         * html/shadow/TextFieldDecorationElement.cpp:
281         (WebCore::TextFieldDecorationElement::hostInput):
282         Added. A utilify function to get an HTMLInputElement*.
283         (WebCore::TextFieldDecorationElement::updateImage): Use hostInput().
284         (WebCore::TextFieldDecorationElement::customStyleForRenderer): ditto.
285         (WebCore::TextFieldDecorationElement::detach): Added. Calls TextFieldDecorator::willDetach().
286         (WebCore::TextFieldDecorationElement::defaultEventHandler): Use hostInput().
287         * html/shadow/TextFieldDecorationElement.h:
288         (TextFieldDecorator):
289         (TextFieldDecorationElement):
290
291 2012-03-26  Dan Bernstein  <mitz@apple.com>
292
293         Tried to fix the 32-bit build after r112021.
294
295         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
296         (-[WebAccessibilityObjectWrapper _convertToNSRange:]):
297
298 2012-03-26  Leo Yang  <leo.yang@torchmobile.com.cn>
299
300         [BlackBerry] Skeleton code of AsyncFileSystemBlackBerry.cpp
301         https://bugs.webkit.org/show_bug.cgi?id=82157
302
303         Reviewed by Rob Buis.
304
305         AsyncFileSystemBlackBerry is responsible for asynchronous operating
306         on file system for the blackberry porting. It's just skeleton code
307         containing no implementation yet.
308
309         No new tests because of skeleton code.
310
311         * PlatformBlackBerry.cmake: Add AsyncFileSystemBlackBerry.cpp if ENABLE_FILE_SYSTEM is on.
312         * platform/AsyncFileSystem.cpp:
313         (WebCore):
314         * platform/blackberry/AsyncFileSystemBlackBerry.cpp: Added.
315         (WebCore):
316         (WebCore::AsyncFileSystem::isAvailable):
317         (WebCore::AsyncFileSystem::isValidType):
318         (WebCore::AsyncFileSystem::create):
319         (WebCore::AsyncFileSystem::openFileSystem):
320         (WebCore::AsyncFileSystem::crackFileSystemURL):
321         (WebCore::AsyncFileSystemBlackBerry::AsyncFileSystemBlackBerry):
322         (WebCore::AsyncFileSystemBlackBerry::~AsyncFileSystemBlackBerry):
323         (WebCore::AsyncFileSystemBlackBerry::toURL):
324         (WebCore::AsyncFileSystemBlackBerry::move):
325         (WebCore::AsyncFileSystemBlackBerry::copy):
326         (WebCore::AsyncFileSystemBlackBerry::remove):
327         (WebCore::AsyncFileSystemBlackBerry::removeRecursively):
328         (WebCore::AsyncFileSystemBlackBerry::readMetadata):
329         (WebCore::AsyncFileSystemBlackBerry::createFile):
330         (WebCore::AsyncFileSystemBlackBerry::createDirectory):
331         (WebCore::AsyncFileSystemBlackBerry::fileExists):
332         (WebCore::AsyncFileSystemBlackBerry::directoryExists):
333         (WebCore::AsyncFileSystemBlackBerry::readDirectory):
334         (WebCore::AsyncFileSystemBlackBerry::createWriter):
335         (WebCore::AsyncFileSystemBlackBerry::createSnapshotFileAndReadMetadata):
336         * platform/blackberry/AsyncFileSystemBlackBerry.h: Added.
337         (WebCore):
338         (AsyncFileSystemBlackBerry):
339
340 2012-03-26  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
341
342         [BlackBerry] CredentialBackingStore implement encryptString() and decryptString()
343         https://bugs.webkit.org/show_bug.cgi?id=82204
344
345         Reviewed by Rob Buis.
346
347         Implemented encryptedString() and decryptedString() in class CredentialBackingStore
348         by calling BlackBerry::Platform::Encryptor::encryptString() and
349         BlackBerry::Platform::Encryptor::encryptString() respectively.
350
351         No new tests.
352
353         * platform/network/blackberry/CredentialBackingStore.cpp:
354         (WebCore::CredentialBackingStore::encryptedString):
355         (WebCore::CredentialBackingStore::decryptedString):
356
357 2012-03-26  Pavel Feldman  <pfeldman@chromium.org>
358
359         Web Inspector: 'use strict' exceptions stop in inspector code
360         https://bugs.webkit.org/show_bug.cgi?id=82199
361
362         Reviewed by Yury Semikhatsky.
363
364         Accessing callee from within InjectedScript made inspector stop on handled exceptions.
365         I replaced it with Object.prototype.toString.call(obj) === "[object Arguments]".
366
367         * inspector/InjectedScriptSource.js:
368
369 2012-03-26  Mihai Balan  <mibalan@adobe.com>
370
371         [CSS Regions] In region styling (@-webkit-region) the position for CSS rules is incorrectly computed
372         https://bugs.webkit.org/show_bug.cgi?id=81901
373
374         Reviewed by Antti Koivisto.
375
376         Right now CSS rules position does not take into account rules that are inside a @-webkit-region
377         declaration, leading to buggy behavior where rules that appear later in the document are superseded
378         by rules that appear earlier in the document (opposite as how things should be). The fix updates
379         the "global" rules counter once the rules in a @-webkit-region declaration have been added.
380
381         Tests: fast/regions/region-style-rule-position-expected.html
382                fast/regions/region-style-rule-position.html
383
384         * css/CSSStyleSelector.cpp:
385         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
386
387 2012-03-26  Pierre Rossi  <pierre.rossi@nokia.com>
388
389         [Qt] Disable focus ring in the mobile theme.
390         https://bugs.webkit.org/show_bug.cgi?id=81934
391
392         For mobile devices intended to be used only through
393         touch, the focus rings makes little sense and feels
394         awkward.
395
396         Reviewed by Kenneth Rohde Christiansen.
397
398         No new tests. This is merely a cosmetic touch.
399
400         * platform/qt/RenderThemeQtMobile.h:
401         (RenderThemeQtMobile):
402         (WebCore::RenderThemeQtMobile::platformFocusRingColor):
403
404 2012-03-26  Charles Wei  <charles.wei@torchmobile.com.cn>
405
406         [BlackBerry] Clean up networking code and remove WML support.
407         https://bugs.webkit.org/show_bug.cgi?id=82170
408
409         Reviewed by Rob Buis.
410
411         This just removes the WML support of BlackBerry porting, which is already 
412         removed from WebCore. No new tests needed.
413
414         * platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
415         (WebCore):
416         * platform/network/blackberry/DeferredData.cpp:
417         (WebCore::DeferredData::DeferredData):
418         (WebCore::DeferredData::processDeferredData):
419         * platform/network/blackberry/DeferredData.h:
420         (DeferredData):
421         (WebCore::DeferredData::hasDeferredData):
422         * platform/network/blackberry/NetworkJob.cpp:
423         * platform/network/blackberry/NetworkJob.h:
424         (NetworkJob):
425         * platform/network/blackberry/ResourceResponse.h:
426         (WebCore::ResourceResponse::ResourceResponse):
427         (ResourceResponse):
428         * platform/network/blackberry/ResourceResponseBlackBerry.cpp:
429         (WebCore::ResourceResponse::doPlatformCopyData):
430         (WebCore::ResourceResponse::doPlatformAdopt):
431
432 2012-03-26  Philip Rogers  <pdr@google.com>
433
434         Add invalid bounding box concept to SVG containers
435         https://bugs.webkit.org/show_bug.cgi?id=81104
436
437         Reviewed by Nikolas Zimmermann.
438
439         An empty <g> element needs to use an invalid bounding box because
440         an empty bounding box isn't the default state. This change
441         introduces the concept of an invalid object bounding box for
442         both RenderSVGContainer and RenderSVGRoot. Code that
443         does not explicitly check that the bounding box is valid
444         should be unaffected by this change. We use this new invalid
445         flag in computeContainerBoundingBoxes so that we do not
446         include invalid bounding boxes.
447
448         This change also contains a small fix in
449         RenderSVGContainer::toRenderSVGContainer which depended on
450         RenderSVGViewportContainer not inheriting from RenderSVGContainer,
451         which it now does.
452
453         Test: svg/custom/getBBox-empty-container.html
454
455         * rendering/svg/RenderSVGContainer.cpp:
456         (WebCore::RenderSVGContainer::RenderSVGContainer):
457         (WebCore::RenderSVGContainer::updateCachedBoundaries):
458         * rendering/svg/RenderSVGContainer.h:
459         (WebCore::RenderSVGContainer::isObjectBoundingBoxValid):
460         (RenderSVGContainer):
461         (WebCore::toRenderSVGContainer):
462         * rendering/svg/RenderSVGRoot.cpp:
463         (WebCore::RenderSVGRoot::RenderSVGRoot):
464         (WebCore::RenderSVGRoot::updateCachedBoundaries):
465         * rendering/svg/RenderSVGRoot.h:
466         (RenderSVGRoot):
467         * rendering/svg/SVGRenderSupport.cpp:
468         (WebCore):
469         (WebCore::updateObjectBoundingBox):
470         (WebCore::SVGRenderSupport::computeContainerBoundingBoxes):
471         * rendering/svg/SVGRenderSupport.h:
472         (SVGRenderSupport):
473
474 2012-03-26  Alexei Filippov  <alexeif@chromium.org>
475
476         Web Inspector: Speed up the retainers build phase.
477         https://bugs.webkit.org/show_bug.cgi?id=81763
478
479         Replacing the edge iterator in retainers building phase
480         makes it run 10 times faster (400 ms vs. 4 sec).
481
482         Reviewed by Yury Semikhatsky.
483
484         * inspector/front-end/HeapSnapshot.js:
485         (WebInspector.HeapSnapshot.prototype._buildRetainers):
486
487 2012-03-22  Alexander Pavlov  <apavlov@chromium.org>
488
489         Web Inspector: Migrate InspectorCSSAgent to strict protocol types
490         https://bugs.webkit.org/show_bug.cgi?id=81923
491
492         Reviewed by Pavel Feldman.
493
494         No new tests, as this is a refactoring.
495
496         * inspector/CodeGeneratorInspector.py:
497         * inspector/InspectorCSSAgent.cpp:
498         (SelectorProfile):
499         (WebCore::SelectorProfile::toInspectorObject):
500         (WebCore::InspectorCSSAgent::clearFrontend):
501         (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
502         (WebCore::InspectorCSSAgent::getInlineStylesForNode):
503         (WebCore::InspectorCSSAgent::getComputedStyleForNode):
504         (WebCore::InspectorCSSAgent::getAllStyleSheets):
505         (WebCore::InspectorCSSAgent::getStyleSheet):
506         (WebCore::InspectorCSSAgent::setPropertyText):
507         (WebCore::InspectorCSSAgent::toggleProperty):
508         (WebCore::InspectorCSSAgent::setRuleSelector):
509         (WebCore::InspectorCSSAgent::addRule):
510         (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
511         (WebCore::InspectorCSSAgent::stopSelectorProfiler):
512         (WebCore::InspectorCSSAgent::stopSelectorProfilerImpl):
513         (WebCore::InspectorCSSAgent::collectStyleSheets):
514         (WebCore::InspectorCSSAgent::buildArrayForRuleList):
515         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
516         * inspector/InspectorCSSAgent.h:
517         (InspectorCSSAgent):
518         * inspector/InspectorStyleSheet.cpp:
519         (WebCore::buildSourceRangeObject):
520         (WebCore::buildMediaObject):
521         (WebCore::fillMediaListChain):
522         (WebCore::InspectorStyle::buildObjectForStyle):
523         (WebCore::InspectorStyle::buildArrayForComputedStyle):
524         (WebCore::InspectorStyle::styleWithProperties):
525         (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
526         (WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
527         (WebCore::InspectorStyleSheet::buildObjectForRule):
528         (WebCore::InspectorStyleSheet::buildObjectForStyle):
529         * inspector/InspectorStyleSheet.h:
530         (WebCore::InspectorCSSId::asProtocolValue):
531         (InspectorStyle):
532         (InspectorStyleSheet):
533
534 2012-03-26  Alexander Pavlov  <apavlov@chromium.org>
535
536         Web Inspector: [REGRESSION] Workarounds for security checks when retrieving stylesheet rule lists are broken
537         https://bugs.webkit.org/show_bug.cgi?id=82191
538
539         Reviewed by Vsevolod Vlasov.
540
541         Test: http/tests/inspector/modify-cross-domain-rule.html
542
543         * inspector/InspectorStyleSheet.cpp:
544         (WebCore::asCSSRuleList):
545         (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
546
547 2012-03-26  Carlos Garcia Campos  <cgarcia@igalia.com>
548
549         Unreviewed. Fix make distcheck.
550
551         * GNUmakefile.list.am: Add missing files.
552
553 2012-03-26  Jason Liu  <jason.liu@torchmobile.com.cn>
554
555         [BlackBerry] Cookies mismatch when login to gmail.
556         https://bugs.webkit.org/show_bug.cgi?id=82165
557
558         Redirection's response can add or update cookies. The cookies of ResourceRequest is dirty
559         in this case. We shouldn't copy the dirty cookie header from ResourceRequest to PlatformRequest
560         for redirection loading.
561
562         This issue didn't happen before because we used m_cookieData not the cookie header.
563         Now we use the cookie header to avoid storing double cookie's data, and m_cookieData is removed.
564
565         Reviewed by George Staikos.
566
567         No new tests. It is a refactoring issue.
568
569         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
570         (WebCore::ResourceRequest::initializePlatformRequest):
571
572 2012-03-26  Alexis Menard  <alexis.menard@openbossa.org>
573
574         Increase code sharing between StylePropertySet and CSSPropertyLonghand.
575         https://bugs.webkit.org/show_bug.cgi?id=81960
576
577         Reviewed by Antti Koivisto.
578
579         Use longhands declaration from CSSPropertyLonghand in StylePropertySet in order
580         to avoid code duplication.
581
582         No new tests : refactoring only, we shouldn't have any behavior difference.
583
584         * css/CSSPropertyLonghand.cpp:
585         (WebCore::backgroundLonghand):
586         Re-order the array to match the spec default order.
587         (WebCore::webkitMaskLonghand):
588         Re-order to match the original order.
589         (WebCore::webkitTransformOriginLonghand):
590         A LayoutTest shows that a property was missing.
591         * css/StylePropertySet.cpp:
592         (WebCore::StylePropertySet::getPropertyValue):
593         (WebCore::StylePropertySet::borderSpacingValue):
594         (WebCore::StylePropertySet::get4Values):
595         (WebCore::StylePropertySet::getLayeredShorthandValue):
596         (WebCore::StylePropertySet::getShorthandValue):
597         (WebCore::StylePropertySet::getCommonValue):
598         (WebCore::StylePropertySet::asText):
599         * css/StylePropertySet.h:
600         (WebCore):
601         (StylePropertySet):
602
603 2012-03-26  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
604
605         [Qt] Assert in GestureTapHighlighter.
606         https://bugs.webkit.org/show_bug.cgi?id=82187
607
608         Reviewed by Kenneth Rohde Christiansen.
609
610         Adjust the boundaries of the center-rect before performing the intersection test,
611         since adjusting the boundary may cause a new intersection.
612
613         * page/GestureTapHighlighter.cpp:
614
615 2012-03-26  Antti Koivisto  <antti@apple.com>
616
617         Split MediaList into internal and CSSOM types
618         https://bugs.webkit.org/show_bug.cgi?id=82149
619
620         Reviewed by Andread Kling.
621
622         MediaList is a CSSOM type and should not be used internally.
623         
624         - Use new type MediaQuerySet internally to represent a collection of media queries.
625         - Create MediaList wrapper on-demand for CSSOM purposes only.
626         
627         This moves us forward in separating CSSOM from the internal stylesheet implementation.
628         
629         MediaQuerySet really belongs to a file of its own but that is not part of this patch.
630         
631         * css/CSSGrammar.y:
632         * css/CSSImportRule.cpp:
633         (WebCore::CSSImportRule::create):
634         (WebCore):
635         (WebCore::CSSImportRule::CSSImportRule):
636         (WebCore::CSSImportRule::~CSSImportRule):
637         (WebCore::CSSImportRule::media):
638         (WebCore::CSSImportRule::cssText):
639         * css/CSSImportRule.h:
640         (WebCore):
641         (CSSImportRule):
642         (WebCore::CSSImportRule::mediaQueries):
643         * css/CSSMediaRule.cpp:
644         (WebCore::CSSMediaRule::CSSMediaRule):
645         (WebCore::CSSMediaRule::~CSSMediaRule):
646         (WebCore::CSSMediaRule::cssText):
647         * css/CSSMediaRule.h:
648         (WebCore::CSSMediaRule::create):
649         (WebCore::CSSMediaRule::media):
650         (WebCore::CSSMediaRule::mediaQueries):
651         (CSSMediaRule):
652         * css/CSSParser.cpp:
653         (WebCore::CSSParser::parseMediaQuery):
654         (WebCore::CSSParser::createMediaQuerySet):
655         (WebCore::CSSParser::createImportRule):
656         (WebCore::CSSParser::createMediaRule):
657         (WebCore::CSSParser::updateLastMediaLine):
658         * css/CSSParser.h:
659         (WebCore):
660         (CSSParser):
661         * css/CSSStyleSelector.cpp:
662         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
663         * css/CSSStyleSheet.cpp:
664         (WebCore):
665         (WebCore::CSSStyleSheet::media):
666         (WebCore::CSSStyleSheet::setMediaQueries):
667         * css/CSSStyleSheet.h:
668         (WebCore):
669         (CSSStyleSheet):
670         (WebCore::CSSStyleSheet::mediaQueries):
671         * css/MediaList.cpp:
672         (WebCore):
673         (WebCore::MediaQuerySet::MediaQuerySet):
674         (WebCore::MediaQuerySet::~MediaQuerySet):
675         (WebCore::parseMediaDescriptor):
676         (WebCore::MediaQuerySet::parse):
677         (WebCore::MediaQuerySet::add):
678         (WebCore::MediaQuerySet::remove):
679         (WebCore::MediaQuerySet::addMediaQuery):
680         (WebCore::MediaQuerySet::mediaText):
681         (WebCore::MediaQuerySet::ensureMediaList):
682         
683             - Use OwnPtr<> for MediaQuery ownership.
684             - Move the appropriate functions to MediaQuerySet.
685             - Clean up a bit to make this more readable and better aligned to WebKit style.
686         
687         (WebCore::MediaList::MediaList):
688         (WebCore::MediaList::~MediaList):
689         (WebCore::MediaList::setMediaText):
690         (WebCore::MediaList::item):
691         (WebCore::MediaList::deleteMedium):
692         (WebCore::MediaList::appendMedium):
693         * css/MediaList.h:
694         (WebCore):
695         (WebCore::MediaQuerySet::create):
696         (WebCore::MediaQuerySet::createAllowingDescriptionSyntax):
697         (MediaQuerySet):
698         (WebCore::MediaQuerySet::queryVector):
699         (WebCore::MediaQuerySet::lastLine):
700         (WebCore::MediaQuerySet::setLastLine):
701         (MediaList):
702         (WebCore::MediaList::ref):
703         (WebCore::MediaList::deref):
704         (WebCore::MediaList::length):
705         (WebCore::MediaList::mediaText):
706         (WebCore::MediaList::queries):
707         * css/MediaQueryEvaluator.cpp:
708         (WebCore::MediaQueryEvaluator::eval):
709         * css/MediaQueryEvaluator.h:
710         (WebCore):
711         (MediaQueryEvaluator):
712         * css/MediaQueryList.cpp:
713         (WebCore::MediaQueryList::create):
714         (WebCore::MediaQueryList::MediaQueryList):
715         * css/MediaQueryList.h:
716         (WebCore):
717         (MediaQueryList):
718         * css/MediaQueryMatcher.cpp:
719         (WebCore::MediaQueryMatcher::evaluate):
720         (WebCore::MediaQueryMatcher::matchMedia):
721         * css/MediaQueryMatcher.h:
722         (WebCore):
723         (MediaQueryMatcher):
724         * css/StyleMedia.cpp:
725         (WebCore::StyleMedia::matchMedium):
726         * css/StyleSheet.cpp:
727         (WebCore::StyleSheet::~StyleSheet):
728         
729             Move the media query ownership to CSSStyleSheet where it belongs.
730         
731         (WebCore):
732         * css/StyleSheet.h:
733         (WebCore::StyleSheet::media):
734         (StyleSheet):
735         * dom/DOMImplementation.cpp:
736         (WebCore::DOMImplementation::createCSSStyleSheet):
737         * dom/ProcessingInstruction.cpp:
738         (WebCore::ProcessingInstruction::setCSSStyleSheet):
739         * dom/StyleElement.cpp:
740         (WebCore::StyleElement::createSheet):
741         * html/HTMLLinkElement.cpp:
742         (WebCore::HTMLLinkElement::process):
743         (WebCore::HTMLLinkElement::setCSSStyleSheet):
744         * html/HTMLMediaElement.cpp:
745         (WebCore::HTMLMediaElement::selectNextSourceChild):
746         * html/parser/HTMLPreloadScanner.cpp:
747         (WebCore::HTMLNames::PreloadTask::linkMediaAttributeIsScreen):
748         * inspector/InspectorStyleSheet.cpp:
749         (WebCore::buildMediaObject):
750
751 2012-03-26  Zeno Albisser  <zeno@webkit.org>
752
753         [Qt]WK2] TextureMapperShaderManager should query the program map before creating new shader program instances.
754         https://bugs.webkit.org/show_bug.cgi?id=82178
755
756         If TextureMapperShaderManager already has a reference to an instance of the
757         requested shader program type, this instance should be reused instead of
758         creating a new one.
759
760         Reviewed by Noam Rosenthal.
761
762         * platform/graphics/texmap/TextureMapperShaderManager.h:
763         (WebCore::TextureMapperShaderManager::getShaderProgram):
764
765 2012-03-26  Yury Semikhatsky  <yurys@chromium.org>
766
767         [Chromium] Web Inspector: dedicated worker inspector is empty
768         https://bugs.webkit.org/show_bug.cgi?id=82181
769
770         "beforeunload" event for worker inspector front-end is ingnored if the
771         window url is "about:blank" as it is just unload of the default content
772         before the front-end page load.
773
774         Reviewed by Pavel Feldman.
775
776         * inspector/front-end/WorkerManager.js:
777         (WebInspector.WorkerManager.prototype._workerInspectorClosing):
778
779 2012-03-22  Yury Semikhatsky  <yurys@chromium.org>
780
781         Web Inspector: split nodes and containment edges into two different arrays
782         https://bugs.webkit.org/show_bug.cgi?id=81930
783
784         Extract heap profile nodes and edges into two separate arrays. This
785         way we will have a continuous array of the heap graph nodes and can
786         aviod additional mapping between node index and its position in the
787         heap snapshot.
788
789         Reviewed by Pavel Feldman.
790
791         * inspector/front-end/HeapSnapshot.js:
792         (WebInspector.HeapSnapshot.prototype._init):
793         (WebInspector.HeapSnapshot.prototype._buildContinuousNodeArray):
794         (WebInspector.HeapSnapshot.prototype._createOnlyNodesArray):
795         (WebInspector.HeapSnapshot.prototype._restoreNodeTypes):
796         (WebInspector.HeapSnapshot.prototype._createRetainmentEdgesArray):
797         (WebInspector.HeapSnapshot.prototype._createContainmentEdgesArray):
798         * inspector/front-end/HeapSnapshotProxy.js:
799         (WebInspector.HeapSnapshotWorker):
800
801 2012-03-22  Pavel Podivilov  <podivilov@chromium.org>
802
803         Web Inspector: move resource loading logic from SourceMapParser to CompilerScriptMapping.
804         https://bugs.webkit.org/show_bug.cgi?id=81897
805
806         Reviewed by Vsevolod Vlasov.
807
808         SourceMapParser should only deal with payload parsing.
809
810         * inspector/front-end/CompilerScriptMapping.js:
811         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
812         (WebInspector.CompilerScriptMapping.prototype.addScript):
813         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
814         (WebInspector.SourceMapPayload):
815         (WebInspector.SourceMapParser):
816         (WebInspector.SourceMapParser.prototype.sourceContent):
817         (WebInspector.SourceMapParser.prototype.findEntry):
818         (WebInspector.SourceMapParser.prototype.findEntryReversed):
819         * inspector/front-end/ContentProviders.js:
820         (WebInspector.CompilerSourceMappingContentProvider):
821         (WebInspector.CompilerSourceMappingContentProvider.prototype.requestContent):
822
823 2012-03-26  Ilya Tikhonovsky  <loislo@chromium.org>
824
825         Web Inspector: replace indexOf('a text') === 0 with RegExp because it is much faster.
826         https://bugs.webkit.org/show_bug.cgi?id=82175
827
828         We were using aString.indexOf("Window") but it is not effective from performance point of view.
829         I'm replaced it with RegExp.
830
831         Reviewed by Yury Semikhatsky.
832
833         * inspector/front-end/HeapSnapshot.js:
834         (WebInspector.HeapSnapshotNode.prototype.get isWindow):
835         (WebInspector.HeapSnapshotNode.prototype.get isDetachedDOMTree):
836
837 2012-03-26  Pavel Feldman  <pfeldman@chromium.org>
838
839         Web Inspector: breakpoints should be disabled while live editing JavaScript.
840         https://bugs.webkit.org/show_bug.cgi?id=81947
841
842         Reviewed by Yury Semikhatsky.
843
844         This change disables (removes from the backend) the breakpoints while editing script.
845         Undoing or committing the change restores the breakpoints. Main logic is implemented within
846         JavaScriptSourceFrame, but it required minor tweaking of the text editor: more correct
847         undo/redo wrapper and better detection of the noop opterations.
848
849         * inspector/front-end/JavaScriptSourceFrame.js:
850         (WebInspector.JavaScriptSourceFrame):
851         (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
852         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
853         (WebInspector.JavaScriptSourceFrame.prototype.didEditContent):
854         (WebInspector.JavaScriptSourceFrame.prototype.addBreakpoint):
855         (WebInspector.JavaScriptSourceFrame.prototype.removeBreakpoint):
856         (WebInspector.JavaScriptSourceFrame.prototype._onMouseDown):
857         * inspector/front-end/TextEditorModel.js:
858         (WebInspector.TextEditorModel.endsWithBracketRegex.):
859         * inspector/front-end/TextViewer.js:
860         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo.before):
861         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo.after):
862         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
863         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
864
865 2012-03-25  Nat Duca  <nduca@chromium.org>
866
867         [chromium] Route willBeginFrame from compositor to WebWidget
868         https://bugs.webkit.org/show_bug.cgi?id=82171
869
870         Reviewed by Darin Fisher.
871
872         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
873         (CCLayerTreeHostClient):
874         (WebCore::CCLayerTreeHost::willBeginFrame):
875         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
876         (WebCore::CCThreadProxy::beginFrame):
877
878 2012-03-25  Hayato Ito  <hayato@chromium.org>
879
880         [Shadow DOM] Add Reified DOM Tree traversal internal APIs.
881         https://bugs.webkit.org/show_bug.cgi?id=79197
882
883         Reviewed by Dimitri Glazkov.
884
885         Add internal APIs which can be used to traverse Reified DOM tree, which is
886         a result of node distribution algorithm explained in Shadow DOM spec.
887         https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html
888
889         Every public functions defined in ReifiedTreeTraversal are static
890         functions and are named in a similar way to ones defined in WebCore::Node class.
891         The only difference is that ReifiedTreeTraversal APIs consider shadow
892         hosts and also traverse nodes is Shadow DOM subtrees, crossing shadow's upper and lower boundary
893         transparently.
894
895         There is no actual client which uses these APIs. Follow-up patches for FocusNavigation
896         and EventDispatcher will use the APIs so that they can traverse node in reified tree order.
897
898         Test: fast/dom/shadow/reified-tree-traversal.html
899
900         * CMakeLists.txt:
901         * GNUmakefile.list.am:
902         * Target.pri:
903         * WebCore.exp.in:
904         * WebCore.gypi:
905         * WebCore.vcproj/WebCore.vcproj:
906         * WebCore.xcodeproj/project.pbxproj:
907         * dom/ReifiedTreeTraversal.cpp: Added.
908         (WebCore):
909         (WebCore::isShadowHost):
910         (WebCore::shadowTreeFor):
911         (WebCore::shadowTreeOfParent):
912         (WebCore::ReifiedTreeTraversal::firstChild):
913         (WebCore::ReifiedTreeTraversal::lastChild):
914         (WebCore::ReifiedTreeTraversal::lastChildWithoutCrossingUpperBoundary):
915         (WebCore::ReifiedTreeTraversal::traverseChild):
916         (WebCore::ReifiedTreeTraversal::traverseLightChildren):
917         (WebCore::ReifiedTreeTraversal::traverseNode):
918         (WebCore::ReifiedTreeTraversal::nextSibling):
919         (WebCore::ReifiedTreeTraversal::previousSibling):
920         (WebCore::ReifiedTreeTraversal::traverseSiblingOrBackToInsertionPoint):
921         (WebCore::ReifiedTreeTraversal::traverseSiblingInCurrentTree):
922         (WebCore::ReifiedTreeTraversal::traverseSiblingOrBackToYoungerShadowRoot):
923         (WebCore::ReifiedTreeTraversal::escapeFallbackContentElement):
924         (WebCore::ReifiedTreeTraversal::traverseNodeEscapingFallbackContents):
925         (WebCore::ReifiedTreeTraversal::parentNode):
926         (WebCore::ReifiedTreeTraversal::parentNodeWithoutCrossingUpperBoundary):
927         (WebCore::ReifiedTreeTraversal::parentNodeOrBackToInsertionPoint):
928         (WebCore::ReifiedTreeTraversal::parentNodeInCurrentTree):
929         (WebCore::ReifiedTreeTraversal::parentNodeBackToYoungerShadowRootOrHost):
930         (WebCore::ReifiedTreeTraversal::adjustedParentNode):
931         (WebCore::ReifiedTreeTraversal::traverseNextNode):
932         (WebCore::ReifiedTreeTraversal::traverseNextNodeWithoutCrossingUpperBoundary):
933         (WebCore::ReifiedTreeTraversal::traversePreviousNode):
934         (WebCore::ReifiedTreeTraversal::traversePreviousNodeWithoutCrossingUpperBoundary):
935         * dom/ReifiedTreeTraversal.h: Added.
936         (WebCore):
937         (ReifiedTreeTraversal):
938         * dom/ShadowTree.cpp:
939         (WebCore::ShadowTree::insertionPointFor):
940         (WebCore::ShadowTree::selectionFor):
941         (WebCore):
942         * dom/ShadowTree.h:
943         (WebCore):
944         (ShadowTree):
945         * html/shadow/HTMLContentSelector.cpp:
946         (WebCore::HTMLContentSelector::findFor):
947         * html/shadow/HTMLContentSelector.h:
948         (HTMLContentSelectionSet):
949         (WebCore::HTMLContentSelectionSet::find):
950         (HTMLContentSelector):
951         * html/shadow/InsertionPoint.h:
952         (WebCore::isInsertionPoint):
953         (WebCore::toInsertionPoint):
954         (WebCore):
955         * testing/Internals.cpp:
956         (WebCore::Internals::nextSiblingInReifiedTree):
957         (WebCore):
958         (WebCore::Internals::firstChildInReifiedTree):
959         (WebCore::Internals::lastChildInReifiedTree):
960         (WebCore::Internals::traverseNextNodeInReifiedTree):
961         (WebCore::Internals::traversePreviousNodeInReifiedTree):
962         * testing/Internals.h:
963         (Internals):
964         * testing/Internals.idl:
965
966 2012-03-25  Nikita Vasilyev  <me@elv1s.ru>
967
968         Web Inspector: Indenting fully selected line should not indent the line next to it
969         https://bugs.webkit.org/show_bug.cgi?id=81758
970
971         In the editor, you can select a whole line by moving caret at 0 column
972         position and pressing Shift + Arrow Down/Up. After that, pressing Tab
973         indents 2 lines: fully selected one and the line next to it. The patch
974         changes this behaviour to indent only fully selected line since that is
975         what pretty-match all the other code editors do.
976
977         Reviewed by Pavel Feldman.
978
979         Test: inspector/editor/indentation.html
980
981         * inspector/front-end/TextViewer.js:
982         (WebInspector.TextEditorMainPanel.prototype._indentLines):
983             Do not insert indent at the begging of the last line if a selection
984             ends on its 0 column.
985         (WebInspector.TextEditorMainPanel.prototype._unindentLines):
986             Do not remove indent at the begging of the last line if a selection
987             ends on its 0 column.
988
989 2012-03-25  Abhishek Arya  <inferno@chromium.org>
990
991         Crash in ContainerNode::resumePostAttachCallbacks.
992         https://bugs.webkit.org/show_bug.cgi?id=82159
993
994         Reviewed by Hajime Morita.
995
996         Test: plugins/object-onfocus-mutation-crash.html
997
998         * dom/ContainerNode.cpp:
999         (WebCore::ContainerNode::resumePostAttachCallbacks): dispatching post attach
1000         callbacks when our attach depth is 1 can fire mutation events such as onfocus
1001         which can blow away |this|. Need to protect it with a RefPtr.
1002         * html/HTMLPlugInImageElement.cpp:
1003         (WebCore::HTMLPlugInImageElement::attach): add calls to suspend attach callbacks
1004         until the function completes.
1005
1006 2012-03-25  Dana Jansens  <danakj@chromium.org>
1007
1008         [chromium] Layers with animating transforms should prepaint even if they are not visible yet
1009         https://bugs.webkit.org/show_bug.cgi?id=82117
1010
1011         Reviewed by Adrienne Walker.
1012
1013         For animating transforms, instead of early-outing when the layer's
1014         visible rect is empty, let it prepaint regardless.
1015
1016         For now, we just only paint the outermost tiles, and only for small
1017         layers, with at most 9 tiles.
1018
1019         This changes the behaviour of ContentLayerChromium's
1020         idlePaintContentsIfDirty() so I've guarded the behaviour of the two
1021         prepainting functions that it calls to ensure the old behaviour holds
1022         without animations, and the new behaviour works with them.
1023
1024         Unit test: TiledLayerChromiumTest.idlePaintZeroSizedLayer
1025                    TiledLayerChromiumTest.idlePaintZeroSizedAnimatingLayer
1026                    TiledLayerChromiumTest.idlePaintNonVisibleLayers
1027                    TiledLayerChromiumTest.idlePaintNonVisibleAnimatingLayers
1028
1029         * platform/graphics/chromium/ContentLayerChromium.cpp:
1030         (WebCore::ContentLayerChromium::idlePaintContentsIfDirty):
1031         * platform/graphics/chromium/TiledLayerChromium.cpp:
1032         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
1033         (WebCore::TiledLayerChromium::needsIdlePaint):
1034         (WebCore::TiledLayerChromium::idlePaintRect):
1035         * platform/graphics/chromium/TiledLayerChromium.h:
1036         (WebCore::TiledLayerChromium::numPaintedTiles):
1037         (TiledLayerChromium):
1038
1039 2012-03-25  Antti Koivisto  <antti@apple.com>
1040
1041         Don't use CSSRuleList for child rule ownership
1042         https://bugs.webkit.org/show_bug.cgi?id=82127
1043
1044         Reviewed by Andreas Kling.
1045
1046         CSSMediaRule, WebKitCSSKeyframesRule and WebKitRegionRule use CSSRuleList for storing children. 
1047         They should use a simple rule vector instead. CSSRuleList is a CSSOM type that should be 
1048         instantiated on-demand for API purposes only.
1049         
1050         - Use Vector<RefPtr<CSSRule>> for storing the rule children of CSSMediaRule, WebKitCSSKeyframesRule 
1051           and WebKitRegionRule.
1052         - Add direct accessors, use internally instead of CSSRuleList.
1053         - Make CSSRuleList an abstract base. Add concrete subclasses for dealing with the underlying storage.
1054         - Instantiate CSSRuleLists on-demand.
1055         - Make CSSStyleSheet.cssRules always return the same object instance. This matches Firefox and the rest
1056           of our CSSOM implementation. Tested by fast/dom/gc-9.html.
1057           
1058         The patch decouples internals from the external API. It simplifies the child rule ownership and reduces 
1059         indirection. Memory use of css rules with children is reduced (by a ptr, refcount and heap allocation overhead).
1060
1061         * css/CSSGrammar.y:
1062         * css/CSSMediaRule.cpp:
1063         (WebCore::CSSMediaRule::CSSMediaRule):
1064         (WebCore::CSSMediaRule::~CSSMediaRule):
1065         (WebCore::CSSMediaRule::append):
1066         (WebCore::CSSMediaRule::insertRule):
1067         (WebCore::CSSMediaRule::deleteRule):
1068         (WebCore::CSSMediaRule::cssText):
1069         (WebCore::CSSMediaRule::cssRules):
1070         * css/CSSMediaRule.h:
1071         (WebCore::CSSMediaRule::create):
1072         (CSSMediaRule):
1073         (WebCore::CSSMediaRule::ruleCount):
1074         (WebCore::CSSMediaRule::ruleAt):
1075         * css/CSSParser.cpp:
1076         (WebCore::CSSParser::createMediaRule):
1077         (WebCore::CSSParser::createRuleList):
1078         (WebCore::CSSParser::createRegionRule):
1079         * css/CSSParser.h:
1080         (WebCore):
1081         * css/CSSRuleList.cpp:
1082         (WebCore):
1083         (WebCore::StaticCSSRuleList::StaticCSSRuleList):
1084         (WebCore::StaticCSSRuleList::~StaticCSSRuleList):
1085         (WebCore::StaticCSSRuleList::deref):
1086         (WebCore::StaticCSSRuleList::item):        
1087         * css/CSSRuleList.h:
1088         (CSSRuleList):
1089
1090             Turn CSSRuleList into abstract interface.
1091                     
1092         (StaticCSSRuleList):
1093         (WebCore::StaticCSSRuleList::create):
1094         (WebCore::StaticCSSRuleList::ref):
1095         (WebCore::StaticCSSRuleList::rules):
1096         (WebCore::StaticCSSRuleList::styleSheet):
1097         (WebCore::StaticCSSRuleList::length):
1098         
1099             Concrete implementation for fixed list of rules.
1100     
1101         (WebCore):
1102         (LiveCSSRuleList):
1103         (WebCore::LiveCSSRuleList::LiveCSSRuleList):
1104         (WebCore::LiveCSSRuleList::ref):
1105         (WebCore::LiveCSSRuleList::deref):
1106         (WebCore::LiveCSSRuleList::length):
1107         (WebCore::LiveCSSRuleList::item):
1108         (WebCore::LiveCSSRuleList::styleSheet):
1109         
1110             Concrete implemenation for live list backed by the underlying container rule.
1111             LiveCSSRuleList is owned by the underlying rule. Refcount is forwarded. 
1112         
1113         * css/CSSStyleSelector.cpp:
1114         (WebCore::CSSStyleSelector::sortAndTransferMatchedRules):
1115         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1116         * css/CSSStyleSelector.h:
1117         (CSSStyleSelector):
1118         * css/CSSStyleSheet.cpp:
1119         
1120             The same scheme for CSSStyleSheet.cssRule as with container rules.
1121         
1122         (StyleSheetCSSRuleList):
1123         (WebCore::StyleSheetCSSRuleList::StyleSheetCSSRuleList):
1124         (WebCore::StyleSheetCSSRuleList::ref):
1125         (WebCore::StyleSheetCSSRuleList::deref):
1126         (WebCore::StyleSheetCSSRuleList::length):
1127         (WebCore::StyleSheetCSSRuleList::item):
1128         (WebCore::StyleSheetCSSRuleList::styleSheet):
1129         (WebCore):
1130         (WebCore::CSSStyleSheet::rules):
1131         (WebCore::CSSStyleSheet::cssRules):
1132         * css/CSSStyleSheet.h:
1133         (CSSStyleSheet):
1134         * css/WebKitCSSKeyframesRule.cpp:
1135         (WebCore::WebKitCSSKeyframesRule::WebKitCSSKeyframesRule):
1136         (WebCore::WebKitCSSKeyframesRule::~WebKitCSSKeyframesRule):
1137         (WebCore):
1138         (WebCore::WebKitCSSKeyframesRule::append):
1139         (WebCore::WebKitCSSKeyframesRule::deleteRule):
1140         (WebCore::WebKitCSSKeyframesRule::findRule):
1141         (WebCore::WebKitCSSKeyframesRule::findRuleIndex):
1142         (WebCore::WebKitCSSKeyframesRule::cssText):
1143         (WebCore::WebKitCSSKeyframesRule::cssRules):
1144         * css/WebKitCSSKeyframesRule.h:
1145         (WebKitCSSKeyframesRule):
1146         (WebCore::WebKitCSSKeyframesRule::ruleCount):
1147         (WebCore::WebKitCSSKeyframesRule::ruleAt):
1148         (WebCore::WebKitCSSKeyframesRule::length):
1149         (WebCore::WebKitCSSKeyframesRule::item):
1150         * css/WebKitCSSRegionRule.cpp:
1151         (WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
1152         (WebCore::WebKitCSSRegionRule::~WebKitCSSRegionRule):
1153         (WebCore::WebKitCSSRegionRule::cssText):
1154         (WebCore::WebKitCSSRegionRule::cssRules):
1155         * css/WebKitCSSRegionRule.h:
1156         * inspector/InspectorStyleSheet.cpp:
1157         (WebCore::asCSSRuleList):
1158         (WebCore::InspectorStyleSheet::addRule):
1159         (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
1160
1161 2012-03-25  Kentaro Hara  <haraken@chromium.org>
1162
1163         Remove duplicated GenerateConditionalString() from code generators
1164         https://bugs.webkit.org/show_bug.cgi?id=82148
1165
1166         Reviewed by Adam Barth.
1167
1168         Previously GenerateConditionalString()s were defined in each code generator,
1169         and they were doing the same thing. This patch puts GenerateConditionalString()
1170         in CodeGenerator.pm and removes duplicated GenerateConditionalString()s.
1171
1172         No tests. No change in the generated code.
1173
1174         * bindings/scripts/CodeGenerator.pm:
1175         (GenerateConditionalString):
1176         * bindings/scripts/CodeGeneratorCPP.pm:
1177         (GenerateHeader):
1178         (GenerateImplementation):
1179         * bindings/scripts/CodeGeneratorGObject.pm:
1180         (GenerateProperty):
1181         (GenerateProperties):
1182         (GenerateFunction):
1183         (WriteData):
1184         * bindings/scripts/CodeGeneratorJS.pm:
1185         (GenerateHeaderContentHeader):
1186         (GenerateImplementationContentHeader):
1187         (GenerateHeader):
1188         (GenerateImplementation):
1189         (GenerateCallbackHeader):
1190         (GenerateCallbackImplementation):
1191         * bindings/scripts/CodeGeneratorObjC.pm:
1192         (GenerateHeader):
1193         (GenerateImplementation):
1194         * bindings/scripts/CodeGeneratorV8.pm:
1195         (GenerateHeader):
1196         (GenerateNormalAttrGetter):
1197         (GenerateNormalAttrSetter):
1198         (GenerateOverloadedFunctionCallback):
1199         (GenerateFunctionCallback):
1200         (GenerateBatchedAttributeData):
1201         (GenerateImplementation):
1202         (GenerateHeaderContentHeader):
1203         (GenerateImplementationContentHeader):
1204         (GenerateCallbackHeader):
1205         (GenerateCallbackImplementation):
1206
1207 2012-03-25  Kentaro Hara  <haraken@chromium.org>
1208
1209         Move DOMWindowSQLDatabase.* to DOMWindowWebDatabase.*, and move WorkerContextSQLDatabase.* to WorkerContextWebDatabase.*
1210         https://bugs.webkit.org/show_bug.cgi?id=82146
1211
1212         Reviewed by Adam Barth.
1213
1214         Now SQLDatabase is renamed to WebDatabase (See Modules/webdatabase/).
1215         We should move DOMWindowSQLDatabase.* to DOMWindowWebDatabase.*,
1216         and move WorkerContextSQLDatabase.* to WorkerContextWebDatabase.*.
1217         We'll rename the SQL_DATABASE flag to the WEB_DATABASE flag in a follow-up patch.
1218
1219         No tests. No change in behavior.
1220
1221         * Modules/webdatabase/DOMWindowWebDatabase.cpp: Renamed from Source/WebCore/Modules/webdatabase/DOMWindowSQLDatabase.cpp.
1222         (WebCore):
1223         (WebCore::DOMWindowWebDatabase::openDatabase):
1224         * Modules/webdatabase/DOMWindowWebDatabase.h: Renamed from Source/WebCore/Modules/webdatabase/DOMWindowSQLDatabase.h.
1225         (WebCore):
1226         (DOMWindowWebDatabase):
1227         (WebCore::DOMWindowWebDatabase::DOMWindowWebDatabase):
1228         (WebCore::DOMWindowWebDatabase::~DOMWindowWebDatabase):
1229         * Modules/webdatabase/DOMWindowWebDatabase.idl: Renamed from Source/WebCore/Modules/webdatabase/DOMWindowSQLDatabase.idl.
1230         * Modules/webdatabase/WorkerContextWebDatabase.cpp: Renamed from Source/WebCore/Modules/webdatabase/WorkerContextSQLDatabase.cpp.
1231         (WebCore):
1232         (WebCore::WorkerContextWebDatabase::openDatabase):
1233         (WebCore::WorkerContextWebDatabase::openDatabaseSync):
1234         * Modules/webdatabase/WorkerContextWebDatabase.h: Renamed from Source/WebCore/Modules/webdatabase/WorkerContextSQLDatabase.h.
1235         (WebCore):
1236         (WorkerContextWebDatabase):
1237         (WebCore::WorkerContextWebDatabase::WorkerContextWebDatabase):
1238         (WebCore::WorkerContextWebDatabase::~WorkerContextWebDatabase):
1239         * Modules/webdatabase/WorkerContextWebDatabase.idl: Renamed from Source/WebCore/Modules/webdatabase/WorkerContextSQLDatabase.idl.
1240
1241         * DerivedSources.make:
1242         * DerivedSources.pri:
1243         * GNUmakefile.list.am:
1244         * Target.pri:
1245         * WebCore.gypi:
1246         * WebCore.vcproj/WebCore.vcproj:
1247         * WebCore.xcodeproj/project.pbxproj:
1248
1249 2012-03-25  Philip Rogers  <pdr@google.com>
1250
1251         Avoid race condition when iterating over pending resources
1252         https://bugs.webkit.org/show_bug.cgi?id=82115
1253
1254         Reviewed by Nikolas Zimmermann.
1255
1256         We can hit a race condition in SVGStyledElement::buildPendingResourcesIfNeeded
1257         where pending elements can become non-pending while we iterate over them.
1258
1259         This patch cleans up buildPendingResourcesIfNeeded and re-works how pending
1260         resources are removed. Because pending resources can be modified while
1261         iterating over them, we introduce m_pendingResourcesForRemoval that
1262         holds pending resources that are marked for removal. Instead of iterating
1263         over this list we simply remove each pending resource from
1264         m_pendingResourcesForRemoval; if a pending resource is modified or removed
1265         during the processing of another pending resource this list is updated before
1266         the next element can be accessed.
1267
1268         This change also removes removePendingResourceForElement which is no longer
1269         referenced.
1270
1271         Test: http/tests/svg/change-id-with-pending-resources.html
1272
1273         * svg/SVGDocumentExtensions.cpp:
1274         (WebCore::SVGDocumentExtensions::~SVGDocumentExtensions):
1275         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
1276         (WebCore::SVGDocumentExtensions::removePendingResourceForRemoval):
1277         (WebCore):
1278         (WebCore::SVGDocumentExtensions::markPendingResourcesForRemoval):
1279         (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
1280         * svg/SVGDocumentExtensions.h:
1281         (SVGDocumentExtensions):
1282         * svg/SVGStyledElement.cpp:
1283         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
1284
1285 2012-03-25  Arvid Nilsson  <anilsson@rim.com>
1286
1287         [BlackBerry] Accelerated compositing layers fail to render when using WebPageCompositor
1288         https://bugs.webkit.org/show_bug.cgi?id=82104
1289         RIM PR: 145963
1290
1291         Reviewed by Rob Buis.
1292
1293         The embedder may use vertex buffers, which affected the interpretation
1294         our vertex array pointers from memory pointers to offsets into a vertex
1295         buffer. The resulting geometry often resulted in no visible layers on
1296         screen.
1297
1298         Fixed by getting rid of any bound buffer when we enter
1299         LayerRenderer::drawLayers().
1300
1301         * platform/graphics/blackberry/LayerRenderer.cpp:
1302         (WebCore::LayerRenderer::drawLayers):
1303
1304 2012-03-24  Nat Duca  <nduca@chromium.org>
1305
1306         [chromium] Instrument gesture animations with async traces
1307         https://bugs.webkit.org/show_bug.cgi?id=82076
1308
1309         Reviewed by Adrienne Walker.
1310
1311         * platform/ActivePlatformGestureAnimation.cpp:
1312         (WebCore::ActivePlatformGestureAnimation::~ActivePlatformGestureAnimation):
1313         (WebCore::ActivePlatformGestureAnimation::ActivePlatformGestureAnimation):
1314         * platform/PlatformGestureCurve.h:
1315         (PlatformGestureCurve):
1316         * platform/TouchpadFlingPlatformGestureCurve.h:
1317         (WebCore::TouchpadFlingPlatformGestureCurve::debugName):
1318         * platform/WheelFlingPlatformGestureCurve.h:
1319         (WebCore::WheelFlingPlatformGestureCurve::debugName):
1320         * platform/graphics/chromium/cc/CCActiveGestureAnimation.cpp:
1321         (WebCore::CCActiveGestureAnimation::CCActiveGestureAnimation):
1322         (WebCore::CCActiveGestureAnimation::~CCActiveGestureAnimation):
1323         * platform/graphics/chromium/cc/CCGestureCurve.h:
1324         (CCGestureCurve):
1325
1326 2012-03-24  Jeffrey Pfau  <jpfau@apple.com>
1327
1328         XML error document creation should not fire mutation events
1329         https://bugs.webkit.org/show_bug.cgi?id=80765
1330
1331         Reviewed by Adam Barth.
1332
1333         Broke two tests that expected the old behavior, which have now been updated.
1334
1335         * xml/XMLErrors.cpp:
1336         (WebCore::createXHTMLParserErrorHeader):
1337         (WebCore::XMLErrors::insertErrorMessageBlock):
1338
1339 2012-03-24  Florin Malita  <fmalita@google.com>
1340
1341         ForeignObject content is zoomed two times
1342         https://bugs.webkit.org/show_bug.cgi?id=76282
1343
1344         Reviewed by Nikolas Zimmermann.
1345
1346         Test: svg/zoom/page/zoom-foreign-content.svg
1347
1348         Reset the effective zoom property for FO-nested content to avoid
1349         having the zoom factor applied multiple times (zooming is handled by
1350         the top level SVG root element).
1351
1352         * css/CSSStyleSelector.cpp:
1353         (WebCore::CSSStyleSelector::adjustRenderStyle):
1354
1355 2012-03-24  Chris Fleizach  <cfleizach@apple.com>
1356
1357         AX: Support solution to handle invalid ax text marker
1358         https://bugs.webkit.org/show_bug.cgi?id=82023
1359
1360         Reviewed by Oliver Hunt.
1361
1362         This provides methods to better use text markers so that assistive technologies
1363         can know when they are valid, and can convert them to and from absolute positions.
1364
1365         Test: platform/mac/accessibility/textmarker-routines.html
1366
1367         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
1368         (-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
1369         (-[WebAccessibilityObjectWrapper _convertToNSRange:]):
1370         (-[WebAccessibilityObjectWrapper _indexForTextMarker:]):
1371         (-[WebAccessibilityObjectWrapper _textMarkerForIndex:]):
1372         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
1373
1374 2012-03-24  Victor Carbune  <vcarbune@adobe.com>
1375
1376         Quick fix for rendering controls regression.
1377         https://bugs.webkit.org/show_bug.cgi?id=82125
1378
1379         Reviewed by Eric Carlson.
1380
1381         Only temporary fix. Tests to cover the problem should be added
1382
1383         * html/shadow/MediaControlElements.cpp:
1384         (WebCore::MediaControlPanelElement::makeOpaque): The display:none
1385         property should be toggled only by the media element now.
1386         (WebCore::MediaControlPanelElement::makeTransparent): The timer
1387         that toggles the dispalay:none shouldn't be used now.
1388
1389 2012-03-24  Kevin Ollivier  <kevino@theolliviers.com>
1390
1391         [wx] Unreviewed. Add header needed for compilation.
1392
1393         * html/shadow/TextFieldDecorationElement.cpp:
1394
1395 2012-03-24  Abhishek Arya  <inferno@chromium.org>
1396
1397         Crash in ApplyStyleCommand::applyInlineStyleToNodeRange.
1398         https://bugs.webkit.org/show_bug.cgi?id=81959
1399
1400         Reviewed by Ryosuke Niwa.
1401
1402         Test: editing/execCommand/apply-style-command-crash.html
1403
1404         * editing/ApplyStyleCommand.cpp:
1405         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange): RefPtr the weak
1406         node iterator |node|.
1407         * editing/ApplyStyleCommand.h:
1408         (ApplyStyleCommand): convert |startNode| and |pastEndNode| into PassRefPtr.
1409
1410 2012-03-24  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
1411
1412         Unreviewed, build fix since we use "-Werror=unused-but-set-variable".
1413
1414         The variable 'it' was set at TextureMapperShaderManager.h:110 but never used.
1415
1416         * platform/graphics/texmap/TextureMapperShaderManager.h:
1417         (WebCore::TextureMapperShaderManager::getShaderProgram):
1418
1419 2012-03-24  Zeno Albisser  <zeno@webkit.org>
1420
1421         [Qt][WK2] Make TextureMapperShaderManager::getShaderProgram() not be a template.
1422         https://bugs.webkit.org/show_bug.cgi?id=82049
1423
1424         Change the getShaderProgram() function to not be a template.
1425         This is a workaround for a compiler bug that leads to an assert
1426         when compiling in debug mode on mac.
1427
1428         Reviewed by Noam Rosenthal.
1429
1430         * platform/graphics/texmap/TextureMapperGL.cpp:
1431         (WebCore::TextureMapperGL::drawTexture):
1432         (WebCore::TextureMapperGL::beginClip):
1433         * platform/graphics/texmap/TextureMapperShaderManager.h:
1434         (TextureMapperShaderProgram):
1435         (WebCore::TextureMapperShaderManager::getShaderProgram):
1436         (TextureMapperShaderManager):
1437
1438 2012-03-23  Shawn Singh  <shawnsingh@chromium.org>
1439
1440         [chromium] Incorrect replica originTransform used in CCDamageTracker
1441         https://bugs.webkit.org/show_bug.cgi?id=82118
1442
1443         Reviewed by Adrienne Walker.
1444
1445         Unit test added to CCDamageTrackerTest.cpp
1446
1447         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
1448         (WebCore::CCDamageTracker::extendDamageForRenderSurface):
1449
1450 2012-03-23  Dana Jansens  <danakj@chromium.org>
1451
1452         [chromium] When prepainting fails, tiles dirty rects may be cleared
1453         https://bugs.webkit.org/show_bug.cgi?id=82107
1454
1455         Reviewed by Adrienne Walker.
1456
1457         When prepainting, if a tile is unable to be reserved due to memory
1458         limits, we bail out of prepareToUpdateTiles. But we would have
1459         cleared the dirty rect of any previous tiles. This leaves them
1460         in a bad state where their textures are reserved, but their textureIds
1461         are set to 0, and they are not marked dirty. This means that they will
1462         not be updated and displayed if they become visible, since it is
1463         assumed that valid textures with zero textureId must have a dirty
1464         region.
1465
1466         We fix this by not clearing the dirty rects until we know we are
1467         going to update the layer.
1468
1469         Unit test: TiledLayerChromiumTest.pushTilesAfterIdlePaintFailed
1470
1471         * platform/graphics/chromium/TiledLayerChromium.cpp:
1472         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
1473         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
1474         (WebCore::CCTiledLayerImpl::hasTextureIdForTileAt):
1475         (WebCore):
1476         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
1477         (CCTiledLayerImpl):
1478
1479 2012-03-23  Stephanie Lewis  <slewis@apple.com>
1480
1481         https://bugs.webkit.org/show_bug.cgi?id=81963 WebProcess can get stuck in GC during many low memory signals.
1482         <rdar://problem/11094830> WebProcess appears to get stuck in its GC handler (81963).
1483         Remove the call to garbage collect  in low memory signal handler.  Did some testing with hitting the low memory handler
1484         during Membuster and we would get back at most 100k - 200k.  That isn't enough to help the system, and in 
1485         that state the GC collection can take a substantial amount of time.
1486
1487         Reviewed by Geoff Garen.
1488
1489         Performance Change, no change in behavior.
1490
1491         * platform/mac/MemoryPressureHandlerMac.mm:
1492         (WebCore::MemoryPressureHandler::releaseMemory):
1493
1494 2012-03-23  W. James MacLean  <wjmaclean@chromium.org>
1495
1496         [chromium] CCLayerTreeHostImpl::scrollBegin() should return ScrollFailed for CCInputHandlerClient::Gesture type when wheel handlers found.
1497         https://bugs.webkit.org/show_bug.cgi?id=82106
1498
1499         Reviewed by Adrienne Walker.
1500
1501         Existing unit tests updated.
1502
1503         With gesture scroll events now being handled as mouse wheel events, we should not start a gesture scroll when
1504         wheel handlers are present.
1505
1506         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1507         (WebCore::CCLayerTreeHostImpl::scrollBegin):
1508
1509 2012-03-23  Adam Barth  <abarth@webkit.org>
1510
1511         Move Notifications APIs from WorkerContext.idl to WorkerContextNotifications.idl
1512         https://bugs.webkit.org/show_bug.cgi?id=79635
1513
1514         Reviewed by Kentaro Hara.
1515
1516         This patch moves the NotificationCenter from WorkerContext to
1517         WorkerContextNotificiations, reducing clutter in WorkerContext.  After
1518         this patch, Notifications are almost entirely contained in the
1519         notifications directory.
1520
1521         * CMakeLists.txt:
1522         * DerivedSources.make:
1523         * DerivedSources.pri:
1524         * GNUmakefile.list.am:
1525         * Target.pri:
1526         * WebCore.gypi:
1527         * WebCore.vcproj/WebCore.vcproj:
1528         * WebCore.xcodeproj/project.pbxproj:
1529         * workers/WorkerContext.cpp:
1530         (WebCore::WorkerContext::~WorkerContext):
1531         * workers/WorkerContext.h:
1532         (WebCore):
1533         (WorkerContext):
1534         * workers/WorkerContext.idl:
1535
1536 2012-03-23  Michal Mocny  <mmocny@google.com>
1537
1538         [chromium] RootLayer was not being checked for null causing segfaults very rarely.
1539         https://bugs.webkit.org/show_bug.cgi?id=82111
1540
1541         Reviewed by Adrienne Walker.
1542
1543         * platform/graphics/chromium/LayerRendererChromium.cpp:
1544         (WebCore::LayerRendererChromium::beginDrawingFrame):
1545         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1546         (WebCore::CCLayerTreeHostImpl::drawLayers):
1547
1548 2012-03-23  Shawn Singh  <shawnsingh@chromium.org>
1549
1550         [chromium] Fix race bug that clobbers CCLayerImpl updateRect
1551         https://bugs.webkit.org/show_bug.cgi?id=82109
1552
1553         Reviewed by Dirk Pranke.
1554
1555         If the main thread commits twice before the impl thread actually
1556         draws, then the updateRect of the first frame gets lost forever,
1557         and not propagated to the damage tracker.
1558
1559         The solution is to accumulate the updateRect. The CCLayerImpl
1560         updateRect is already being correctly cleared at the appropriate
1561         time after drawing.
1562
1563         Unit test added to LayerChromiumTest.cpp.
1564
1565         * platform/graphics/chromium/LayerChromium.cpp:
1566         (WebCore::LayerChromium::pushPropertiesTo):
1567
1568 2012-03-23  Rafael Weinstein  <rafaelw@chromium.org>
1569
1570         [MutationObservers] attributeFilter should be case sensitive at all times
1571         https://bugs.webkit.org/show_bug.cgi?id=81822
1572
1573         Reviewed by Ryosuke Niwa.
1574
1575         This removes the behavior in MutationObserverRegistration which treats
1576         attributeFilter as case insensitive for HTML elements in HTML documents.
1577
1578         Relevant tests have been updated.
1579
1580         * dom/MutationObserverRegistration.cpp:
1581         (WebCore::MutationObserverRegistration::resetObservation):
1582         (WebCore::MutationObserverRegistration::shouldReceiveMutationFrom):
1583         * dom/MutationObserverRegistration.h:
1584         (MutationObserverRegistration):
1585
1586 2012-03-23  Kentaro Hara  <haraken@chromium.org>
1587
1588         Move WebSocket APIs from WorkerContext.idl to WorkerContextWebSocket.idl
1589         https://bugs.webkit.org/show_bug.cgi?id=79663
1590
1591         Reviewed by Adam Barth.
1592
1593         For WebKit modularization, this patch moves WebSocket APIs from WorkerContext.idl
1594         to WorkerContextWebSocket.idl.
1595
1596         Tests: http/tests/websocket/tests/hybi/workers/* (No change in test results)
1597
1598         * CMakeLists.txt:
1599         * DerivedSources.make:
1600         * DerivedSources.pri:
1601         * GNUmakefile.list.am:
1602         * Modules/websockets/WorkerContextWebSocket.idl: Added.
1603         * WebCore.gypi:
1604         * WebCore.xcodeproj/project.xcodeproj:
1605         * workers/WorkerContext.idl:
1606
1607 2012-03-23  Parag Radke  <parag@motorola.com>
1608
1609         REGRESSION: can select text of an input button
1610         https://bugs.webkit.org/show_bug.cgi?id=13624
1611
1612         Reviewed by Ryosuke Niwa.
1613
1614         Text in a button should never have a selection background of its own painted
1615         but if the button is inside an editable area, then the whole button should
1616         have it's selection background painted.
1617
1618         Test: editing/selection/selection-button-text.html
1619
1620         * rendering/RenderButton.h:
1621         Added implementation for the virtual function canBeSelectionLeaf()
1622         which returns true if the button renderer is editable, false other wise.
1623         * rendering/RenderTextFragment.h:
1624         Added implementation for the virtual function canBeSelectionLeaf()
1625         which returns true if the text fragment renderer is editable, false other wise.
1626
1627 2012-03-23  Eric Carlson  <eric.carlson@apple.com>
1628
1629         Remove unnecessary ASSERT from LoadableTextTrack::trackElementIndex
1630         https://bugs.webkit.org/show_bug.cgi?id=82095
1631
1632         Reviewed by Dan Bernstein.
1633
1634         No new tests, removed a bogus ASSERT that was sometimes triggered by tests.
1635
1636         * html/track/LoadableTextTrack.cpp:
1637         (WebCore::LoadableTextTrack::trackElementIndex): Remove ASSERT.
1638
1639 2012-03-23  Eric Carlson  <eric.carlson@apple.com>
1640
1641         Layout Test media/video-source-load.html is failing
1642         https://bugs.webkit.org/show_bug.cgi?id=82094
1643
1644         Reviewed by Alexey Proskuryakov.
1645
1646         No new tests, tested by media/video-source-load.html.
1647
1648         * html/HTMLMediaElement.cpp:
1649         (WebCore::HTMLMediaElement::sourceWasAdded): Set m_nextChildNodeToConsider when called 
1650             with networkState == NETWORK_EMPTY because the resource selection algorithm has
1651             not started yet.
1652
1653 2012-03-23  Alexey Proskuryakov  <ap@apple.com>
1654
1655         [Mac] No need for platform-specific ENABLE_BLOB values
1656         https://bugs.webkit.org/show_bug.cgi?id=82102
1657
1658         Reviewed by David Kilzer.
1659
1660         * Configurations/FeatureDefines.xcconfig:
1661
1662 2012-03-23  Kent Tamura  <tkent@chromium.org>
1663
1664         Add TextFieldDecorator and TextFieldDecorationElement
1665         https://bugs.webkit.org/show_bug.cgi?id=80580
1666
1667         Reviewed by Dimitri Glazkov.
1668
1669         These classes will be used to add a decoration icon to a text field
1670         <input> from outside of WebCore. We have a plan to use them in Chromium
1671         port. So this patch doesn't add TextFieldDecorationElement.{cpp,h} to
1672         non-Chromium build files.
1673
1674         How it works:
1675         When a shadow subtree for a text field is created, we ask ChromeClient
1676         to decorate it. ChromeClient appends a TextFieldDecorationElement to the
1677         existing shadow subtree or another shadow tree. A TextFieldDecorator is
1678         associated to a TextFieldDecorationElement, and it provides decoration
1679         icon images and a click handler.
1680
1681         No new tests. This patch won't make any behavior change for now.
1682
1683         * WebCore.gypi: Add TextFieldDecorationElement.cpp and TextFieldDecorationElement.h
1684         * dom/Element.h:
1685         (WebCore::Element::isTextFieldDecoration):
1686         * html/TextFieldInputType.cpp:
1687         (WebCore::TextFieldInputType::createShadowSubtree):
1688         Calls ChromeClient::willAddTextFieldDecorationsTo() and addTextFieldDecorationsTo().
1689         * html/shadow/TextFieldDecorationElement.cpp: Added.
1690         (WebCore::TextFieldDecorator::~TextFieldDecorator):
1691         (WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
1692         (WebCore::TextFieldDecorationElement::create):
1693         (WebCore::TextFieldDecorationElement::isTextFieldDecoration):
1694         (WebCore::TextFieldDecorationElement::updateImage):
1695         (WebCore::TextFieldDecorationElement::customStyleForRenderer):
1696         Sets the size to a square of the font-size.
1697         (WebCore::TextFieldDecorationElement::createRenderer):
1698         Always creates a RenderImage.
1699         (WebCore::TextFieldDecorationElement::attach):
1700         Sets an image for appropriate state.
1701         (WebCore::TextFieldDecorationElement::isMouseFocusable):
1702         (WebCore::TextFieldDecorationElement::defaultEventHandler):
1703         Delegate a click event to the corresponding function of TextFieldDecorator.
1704         * html/shadow/TextFieldDecorationElement.h: Added.
1705         (TextFieldDecorator): Added.
1706         (TextFieldDecorationElement): Added.
1707         (WebCore::toTextFieldDecorationElement): Added.
1708         * page/ChromeClient.h:
1709         (WebCore::ChromeClient::willAddTextFieldDecorationsTo): Add an empty implementation.
1710         (WebCore::ChromeClient::addTextFieldDecorationsTo): ditto.
1711
1712 2012-03-23  Adam Klein  <adamk@chromium.org>
1713
1714         Match DOM4 spec with respect to DocumentFragment insertion
1715         https://bugs.webkit.org/show_bug.cgi?id=82089
1716
1717         Reviewed by Ryosuke Niwa.
1718
1719         DOM4 specifies the behavior of appendChild, insertBefore, and replaceChild
1720         in terms of "mutation algorithms":
1721
1722         http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#mutation-algorithms
1723
1724         This change updates WebKit to match, in particular with regard to DocumentFragments.
1725         Previously, ContainerNode would remove nodes one at a time, then add them to the new parent.
1726         When combined with MutationObservers, this results in overly-verbose mutation records.
1727         Now we create as few records as possible, matching the spec as well as Gecko's implementation
1728         of MutationObservers.
1729
1730         Note that we still need to check validity each time through the loop,
1731         since inserting a node may dispatch events. In a future change, I hope
1732         to move these events so that they fire only after all nodes are inserted,
1733         but that's too much to tackle all in one.
1734
1735         Tests: fast/mutation/document-fragment-insertion.html
1736
1737         * dom/ContainerNode.cpp:
1738         (WebCore::collectChildrenAndRemoveFromOldParent): New helper method
1739         combining collectTargetNodes() with the removal of the collected nodes from
1740         their old parent, if any.
1741         (WebCore::ContainerNode::insertBefore): Use new helper method instead
1742         of removing nodes one at a time from the fragment.
1743         (WebCore::ContainerNode::replaceChild): ditto. Also removed some redundant asserts
1744         and moved the "do nothing" check out of the loop.
1745         (WebCore::ContainerNode::appendChild): Use new helper method.
1746
1747 2012-03-23  Stephen White  <senorblanco@chromium.org>
1748
1749         [skia] Switch to Skia's implementation of the feMorphology filter.
1750         https://bugs.webkit.org/show_bug.cgi?id=82085
1751
1752         Reviewed by Dirk Schulze.
1753
1754         Covered by existing tests in svg/filters/.
1755
1756         * WebCore.gypi:
1757         * platform/graphics/filters/FEMorphology.h:
1758         (FEMorphology):
1759         * platform/graphics/filters/skia/FEMorphologySkia.cpp: Added.
1760         (WebCore):
1761         (WebCore::FEMorphology::platformApplySkia):
1762
1763 2012-03-23  Adam Barth  <abarth@webkit.org>
1764
1765         Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl (Part 3)
1766         https://bugs.webkit.org/show_bug.cgi?id=82027
1767
1768         Reviewed by Kentaro Hara.
1769
1770         Rather than watching for willDetachPage, NotificationCenter can just
1771         override ActiveDOMObject::stop directly to be notified when it needs to
1772         stop.
1773
1774         Switching NotificationCenter over to using ActiveDOMObject callbacks
1775         frees DOMWindowNotification to implement reconnectFrame.  However, this
1776         is only really a victory in princple because NotificationCenter always
1777         returns false for canSuspend(), which means we'll never actually use
1778         the reconnectFrame functionality.  However, this patch does move us
1779         closer to the time when NotificationCenter can implement
1780         ActiveDOMObject::suspend/resume to play nice with the PageCache.
1781
1782         * notifications/DOMWindowNotifications.cpp:
1783         (WebCore::DOMWindowNotifications::disconnectFrame):
1784         (WebCore::DOMWindowNotifications::reconnectFrame):
1785         * notifications/DOMWindowNotifications.h:
1786         (DOMWindowNotifications):
1787         * notifications/NotificationCenter.cpp:
1788         (WebCore::NotificationCenter::NotificationCenter):
1789         (WebCore::NotificationCenter::stop):
1790         * notifications/NotificationCenter.h:
1791         (NotificationCenter):
1792
1793 2012-03-23  Daniel Cheng  <dcheng@chromium.org>
1794
1795         [chromium] Support file drag out using DataTransferItemList::add(File)
1796         https://bugs.webkit.org/show_bug.cgi?id=81261
1797
1798         Reviewed by Tony Chang.
1799
1800         Original patch by Varun Jain <varunjain@chromium.org>.
1801         I've updated the original patch to remove 'downloadurl' handling since it's not tested, nor
1802         is it necessary for File objects, since File objects correspond to a native filesystem path.
1803
1804         Test: fast/events/drag-dataTransferItemList-file-handling.html
1805
1806         * platform/chromium/DataTransferItemListChromium.cpp:
1807         (WebCore::DataTransferItemListChromium::add):
1808
1809 2012-03-23  Zan Dobersek  <zandobersek@gmail.com>
1810
1811         [GObject bindings] Supplemental interfaces are not disabled with the "Conditional" attribute
1812         https://bugs.webkit.org/show_bug.cgi?id=80030
1813
1814         Reviewed by Martin Robinson.
1815
1816         Changes in CodeGeneratorGObject.pm:
1817         - group implementation of private helpers and guard them inside
1818         an ifdef if a root conditional attribute is present.
1819         - always define the type of a GObject binding, even if the root
1820         conditional feature is not enabled
1821         - the methods are generated as well, but are simply stubs if the
1822         feature is not enabled, throwing a warning upon interaction.
1823         - if the method itself is guarded by a conditional attribute,
1824         the stub implementation gains one more level of depth, throwing
1825         a warning if the method's conditional feature is not enabled
1826         but the root conditional feature is.
1827         - small style fixes in random places.
1828
1829         Also changed are GObject baselines for binding tests.
1830
1831         No new tests - no new testable functionality.
1832
1833         * bindings/gobject/GNUmakefile.am:
1834         * bindings/scripts/CodeGeneratorGObject.pm:
1835         (HumanReadableConditional):
1836         (GenerateConditionalWarn):
1837         (GenerateProperty):
1838         (GenerateProperties):
1839         (GenerateFunction):
1840         (GenerateFunctions):
1841         (GenerateCFile):
1842         (GenerateEventTargetIface):
1843         (Generate):
1844         (WriteData):
1845         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
1846         (WebKit):
1847         (WebKit::kit):
1848         (WebKit::wrapFloat64Array):
1849         (webkit_dom_float64array_finalize):
1850         (webkit_dom_float64array_foo):
1851         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
1852         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
1853         (WebKit):
1854         (WebKit::kit):
1855         (WebKit::wrapTestActiveDOMObject):
1856         (webkit_dom_test_active_dom_object_finalize):
1857         (webkit_dom_test_active_dom_object_exciting_function):
1858         (webkit_dom_test_active_dom_object_post_message):
1859         (webkit_dom_test_active_dom_object_get_exciting_attr):
1860         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
1861         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
1862         (WebKit):
1863         (WebKit::kit):
1864         (WebKit::core):
1865         (WebKit::wrapTestCallback):
1866         (webkit_dom_test_callback_finalize):
1867         (webkit_dom_test_callback_callback_with_no_param):
1868         (webkit_dom_test_callback_callback_with_class1param):
1869         (webkit_dom_test_callback_callback_with_class2param):
1870         (webkit_dom_test_callback_callback_with_non_bool_return_type):
1871         (webkit_dom_test_callback_callback_with_string_list):
1872         * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
1873         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
1874         (WebKit):
1875         (WebKit::kit):
1876         (WebKit::wrapTestCustomNamedGetter):
1877         (webkit_dom_test_custom_named_getter_finalize):
1878         (webkit_dom_test_custom_named_getter_another_function):
1879         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
1880         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
1881         (WebKit):
1882         (WebKit::kit):
1883         (WebKit::wrapTestEventConstructor):
1884         (webkit_dom_test_event_constructor_finalize):
1885         (webkit_dom_test_event_constructor_get_attr1):
1886         (webkit_dom_test_event_constructor_get_attr2):
1887         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
1888         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
1889         (WebKit):
1890         (WebKit::core):
1891         (WebKit::wrapTestEventTarget):
1892         (webkit_dom_test_event_target_finalize):
1893         (webkit_dom_test_event_target_item):
1894         (webkit_dom_test_event_target_dispatch_event):
1895         * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
1896         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
1897         (WebKit):
1898         (WebKit::kit):
1899         (WebKit::core):
1900         (WebKit::wrapTestInterface):
1901         (webkit_dom_test_interface_finalize):
1902         (webkit_dom_test_interface_supplemental_method1):
1903         (webkit_dom_test_interface_supplemental_method2):
1904         (webkit_dom_test_interface_supplemental_method4):
1905         (webkit_dom_test_interface_get_supplemental_str1):
1906         (webkit_dom_test_interface_get_supplemental_str2):
1907         (webkit_dom_test_interface_set_supplemental_str2):
1908         (webkit_dom_test_interface_get_supplemental_node):
1909         (webkit_dom_test_interface_set_supplemental_node):
1910         * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
1911         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
1912         (WebKit):
1913         (WebKit::kit):
1914         (WebKit::wrapTestMediaQueryListListener):
1915         (webkit_dom_test_media_query_list_listener_finalize):
1916         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
1917         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
1918         (WebKit):
1919         (WebKit::kit):
1920         (WebKit::wrapTestNamedConstructor):
1921         (webkit_dom_test_named_constructor_finalize):
1922         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
1923         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
1924         (WebKit):
1925         (WebKit::kit):
1926         (WebKit::core):
1927         (WebKit::wrapTestObj):
1928         (webkit_dom_test_obj_finalize):
1929         (webkit_dom_test_obj_set_property):
1930         (webkit_dom_test_obj_get_property):
1931         (webkit_dom_test_obj_constructed):
1932         (webkit_dom_test_obj_class_init):
1933         (webkit_dom_test_obj_init):
1934         (webkit_dom_test_obj_void_method):
1935         (webkit_dom_test_obj_void_method_with_args):
1936         (webkit_dom_test_obj_int_method):
1937         (webkit_dom_test_obj_int_method_with_args):
1938         (webkit_dom_test_obj_obj_method):
1939         (webkit_dom_test_obj_obj_method_with_args):
1940         (webkit_dom_test_obj_method_with_sequence_arg):
1941         (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
1942         (webkit_dom_test_obj_serialized_value):
1943         (webkit_dom_test_obj_idb_key):
1944         (webkit_dom_test_obj_options_object):
1945         (webkit_dom_test_obj_method_with_exception):
1946         (webkit_dom_test_obj_with_script_state_void):
1947         (webkit_dom_test_obj_with_script_state_obj):
1948         (webkit_dom_test_obj_with_script_state_void_exception):
1949         (webkit_dom_test_obj_with_script_state_obj_exception):
1950         (webkit_dom_test_obj_with_script_execution_context):
1951         (webkit_dom_test_obj_with_script_execution_context_and_script_state):
1952         (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
1953         (webkit_dom_test_obj_with_script_execution_context_and_script_state_with_spaces):
1954         (webkit_dom_test_obj_method_with_optional_arg):
1955         (webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
1956         (webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
1957         (webkit_dom_test_obj_method_with_optional_string):
1958         (webkit_dom_test_obj_method_with_optional_string_is_undefined):
1959         (webkit_dom_test_obj_method_with_optional_string_is_null_string):
1960         (webkit_dom_test_obj_conditional_method1):
1961         (webkit_dom_test_obj_conditional_method2):
1962         (webkit_dom_test_obj_conditional_method3):
1963         (webkit_dom_test_obj_class_method):
1964         (webkit_dom_test_obj_class_method_with_optional):
1965         (webkit_dom_test_obj_overloaded_method1):
1966         (webkit_dom_test_obj_convert1):
1967         (webkit_dom_test_obj_convert2):
1968         (webkit_dom_test_obj_convert3):
1969         (webkit_dom_test_obj_convert4):
1970         (webkit_dom_test_obj_convert5):
1971         (webkit_dom_test_obj_mutable_point_function):
1972         (webkit_dom_test_obj_immutable_point_function):
1973         (webkit_dom_test_obj_orange):
1974         (webkit_dom_test_obj_strict_function):
1975         (webkit_dom_test_obj_get_read_only_int_attr):
1976         (webkit_dom_test_obj_get_read_only_string_attr):
1977         (webkit_dom_test_obj_get_read_only_test_obj_attr):
1978         (webkit_dom_test_obj_get_short_attr):
1979         (webkit_dom_test_obj_set_short_attr):
1980         (webkit_dom_test_obj_get_unsigned_short_attr):
1981         (webkit_dom_test_obj_set_unsigned_short_attr):
1982         (webkit_dom_test_obj_get_int_attr):
1983         (webkit_dom_test_obj_set_int_attr):
1984         (webkit_dom_test_obj_get_long_long_attr):
1985         (webkit_dom_test_obj_set_long_long_attr):
1986         (webkit_dom_test_obj_get_unsigned_long_long_attr):
1987         (webkit_dom_test_obj_set_unsigned_long_long_attr):
1988         (webkit_dom_test_obj_get_string_attr):
1989         (webkit_dom_test_obj_set_string_attr):
1990         (webkit_dom_test_obj_get_test_obj_attr):
1991         (webkit_dom_test_obj_set_test_obj_attr):
1992         (webkit_dom_test_obj_get_xml_obj_attr):
1993         (webkit_dom_test_obj_set_xml_obj_attr):
1994         (webkit_dom_test_obj_get_create):
1995         (webkit_dom_test_obj_set_create):
1996         (webkit_dom_test_obj_get_reflected_string_attr):
1997         (webkit_dom_test_obj_set_reflected_string_attr):
1998         (webkit_dom_test_obj_get_reflected_integral_attr):
1999         (webkit_dom_test_obj_set_reflected_integral_attr):
2000         (webkit_dom_test_obj_get_reflected_unsigned_integral_attr):
2001         (webkit_dom_test_obj_set_reflected_unsigned_integral_attr):
2002         (webkit_dom_test_obj_get_reflected_boolean_attr):
2003         (webkit_dom_test_obj_set_reflected_boolean_attr):
2004         (webkit_dom_test_obj_get_reflected_url_attr):
2005         (webkit_dom_test_obj_set_reflected_url_attr):
2006         (webkit_dom_test_obj_get_reflected_custom_integral_attr):
2007         (webkit_dom_test_obj_set_reflected_custom_integral_attr):
2008         (webkit_dom_test_obj_get_reflected_custom_boolean_attr):
2009         (webkit_dom_test_obj_set_reflected_custom_boolean_attr):
2010         (webkit_dom_test_obj_get_reflected_custom_url_attr):
2011         (webkit_dom_test_obj_set_reflected_custom_url_attr):
2012         (webkit_dom_test_obj_get_attr_with_getter_exception):
2013         (webkit_dom_test_obj_set_attr_with_getter_exception):
2014         (webkit_dom_test_obj_get_attr_with_setter_exception):
2015         (webkit_dom_test_obj_set_attr_with_setter_exception):
2016         (webkit_dom_test_obj_get_string_attr_with_getter_exception):
2017         (webkit_dom_test_obj_set_string_attr_with_getter_exception):
2018         (webkit_dom_test_obj_get_string_attr_with_setter_exception):
2019         (webkit_dom_test_obj_set_string_attr_with_setter_exception):
2020         (webkit_dom_test_obj_get_with_script_state_attribute):
2021         (webkit_dom_test_obj_set_with_script_state_attribute):
2022         (webkit_dom_test_obj_get_with_script_execution_context_attribute):
2023         (webkit_dom_test_obj_set_with_script_execution_context_attribute):
2024         (webkit_dom_test_obj_get_with_script_state_attribute_raises):
2025         (webkit_dom_test_obj_set_with_script_state_attribute_raises):
2026         (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
2027         (webkit_dom_test_obj_set_with_script_execution_context_attribute_raises):
2028         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute):
2029         (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute):
2030         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
2031         (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises):
2032         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_with_spaces_attribute):
2033         (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_with_spaces_attribute):
2034         (webkit_dom_test_obj_get_conditional_attr1):
2035         (webkit_dom_test_obj_set_conditional_attr1):
2036         (webkit_dom_test_obj_get_conditional_attr2):
2037         (webkit_dom_test_obj_set_conditional_attr2):
2038         (webkit_dom_test_obj_get_conditional_attr3):
2039         (webkit_dom_test_obj_set_conditional_attr3):
2040         (webkit_dom_test_obj_get_content_document):
2041         (webkit_dom_test_obj_get_mutable_point):
2042         (webkit_dom_test_obj_set_mutable_point):
2043         (webkit_dom_test_obj_get_immutable_point):
2044         (webkit_dom_test_obj_set_immutable_point):
2045         (webkit_dom_test_obj_get_strict_float):
2046         (webkit_dom_test_obj_set_strict_float):
2047         (webkit_dom_test_obj_get_description):
2048         (webkit_dom_test_obj_get_id):
2049         (webkit_dom_test_obj_set_id):
2050         (webkit_dom_test_obj_get_hash):
2051         * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
2052         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
2053         (WebKit):
2054         (WebKit::kit):
2055         (WebKit::core):
2056         (WebKit::wrapTestSerializedScriptValueInterface):
2057         (webkit_dom_test_serialized_script_value_interface_finalize):
2058         (webkit_dom_test_serialized_script_value_interface_accept_transfer_list):
2059         (webkit_dom_test_serialized_script_value_interface_multi_transfer_list):
2060         (webkit_dom_test_serialized_script_value_interface_get_value):
2061         (webkit_dom_test_serialized_script_value_interface_set_value):
2062         (webkit_dom_test_serialized_script_value_interface_get_readonly_value):
2063         (webkit_dom_test_serialized_script_value_interface_get_cached_value):
2064         (webkit_dom_test_serialized_script_value_interface_set_cached_value):
2065         (webkit_dom_test_serialized_script_value_interface_get_cached_readonly_value):
2066         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
2067
2068 2012-03-23  Dana Jansens  <danakj@chromium.org>
2069
2070         [chromium] Record painted pixel counts for measuring effectiveness of per-tile painting
2071         https://bugs.webkit.org/show_bug.cgi?id=82057
2072
2073         Reviewed by Adrienne Walker.
2074
2075         Adds painted pixel metrics to CCOverdrawMetrics class, and calls in
2076         to report painted areas when updating tiles in the TiledLayerChromium
2077         class.
2078
2079         Unit test: TiledLayerChromiumTest.opaqueContentsRegion
2080                    TiledLayerChromiumTest.pixelsPaintedMetrics
2081
2082         * platform/graphics/chromium/TiledLayerChromium.cpp:
2083         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
2084         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
2085         (WebCore::CCOverdrawMetrics::CCOverdrawMetrics):
2086         (WebCore::CCOverdrawMetrics::didPaint):
2087         (WebCore):
2088         (WebCore::CCOverdrawMetrics::recordMetricsInternal):
2089         * platform/graphics/chromium/cc/CCOverdrawMetrics.h:
2090         (CCOverdrawMetrics):
2091         (WebCore::CCOverdrawMetrics::pixelsPainted):
2092
2093 2012-03-23  Abhishek Arya  <inferno@chromium.org>
2094
2095         Crash in RenderBlock::splitBlocks.
2096         https://bugs.webkit.org/show_bug.cgi?id=81926
2097
2098         Reviewed by Julien Chaffraix.
2099
2100         We are updating the :after content before calling splitFlow. The :after content
2101         gets blown away since it will go to the continuation. beforeChild was earlier
2102         set to the first child. Being the last anonymous block, its children gets pulled
2103         up in collapseAnonymousBoxChild and it gets destroyed. So, we need to update
2104         beforeChild value. 
2105
2106         Test: fast/multicol/span/update-after-content-before-child-crash.html
2107
2108         * rendering/RenderBlock.cpp:
2109         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
2110
2111 2012-03-23  Dana Jansens  <danakj@chromium.org>
2112
2113         [chromium] Improved composited debug borders
2114         https://bugs.webkit.org/show_bug.cgi?id=82071
2115
2116         Reviewed by Adrienne Walker.
2117
2118         Fix the problem with missing debug borders. Since we append quads
2119         to the list front to back now, we draw the quads in the list from
2120         back to front of the list. Which means if the debug quad is added
2121         after the layer it is drawing around, the layer can draw over top
2122         of its debug quad. Reverse the ordering when appending to fix it.
2123
2124         Make the border red around tiles that are checkerboarded. Missing
2125         tiles in non-root layers are drawn clear, so this makes them more
2126         visible.
2127
2128         Put a blue border around each render surface, and a purple border
2129         on their replicas.
2130
2131         No new tests.
2132
2133         * platform/graphics/chromium/cc/CCRenderPass.cpp:
2134         (WebCore):
2135         (WebCore::CCRenderPass::appendQuadsForLayer):
2136         (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
2137         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
2138         (WebCore::CCRenderSurface::hasReplica):
2139         (WebCore):
2140         (WebCore::CCRenderSurface::createReplicaSharedQuadState):
2141         * platform/graphics/chromium/cc/CCRenderSurface.h:
2142         (CCRenderSurface):
2143         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2144         (WebCore):
2145         (WebCore::CCTiledLayerImpl::appendQuads):
2146
2147 2012-03-23  Simon Fraser  <simon.fraser@apple.com>
2148
2149         Move code that calls setAcceleratesDrawing() on GraphicsLayers into RenderLayerBacking
2150         https://bugs.webkit.org/show_bug.cgi?id=82092
2151
2152         Reviewed by Dean Jackson.
2153
2154         A RenderLayerBacking manages several GraphicsLayers, but RenderLayerCompositor
2155         was only calling setAcceleratesDrawing() on the one it knows about. Fix by moving
2156         this setting code down into RenderLayerBacking.
2157         
2158         RenderLayerCompositor now caches the setAcceleratesDrawing setting, as it does
2159         for other compositing-related settings, so that RenderLayerBacking doesn't have
2160         to grovel for Settings every time.
2161
2162         * rendering/RenderLayerBacking.cpp:
2163         (WebCore::RenderLayerBacking::createGraphicsLayer):
2164         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
2165         * rendering/RenderLayerCompositor.cpp:
2166         (WebCore::RenderLayerCompositor::RenderLayerCompositor):
2167         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
2168         (WebCore::RenderLayerCompositor::updateBacking):
2169         * rendering/RenderLayerCompositor.h:
2170         (WebCore::RenderLayerCompositor::acceleratedDrawingEnabled):
2171         (RenderLayerCompositor):
2172
2173 2012-03-23  Beth Dakin  <bdakin@apple.com>
2174
2175         https://bugs.webkit.org/show_bug.cgi?id=82083
2176
2177         Rubber-stamped by Simon Fraser.
2178
2179         This patch is just a name change. getExistingScrollAnimator() (which was 
2180         added earlier today) is now existingScrollAnimator().
2181         * loader/FrameLoader.cpp:
2182         (WebCore::FrameLoader::transitionToCommitted):
2183         * page/EventHandler.cpp:
2184         (WebCore::EventHandler::handleGestureTapDown):
2185         * page/FrameView.cpp:
2186         (WebCore::FrameView::setAnimatorsAreActive):
2187         * platform/ScrollView.cpp:
2188         (WebCore::ScrollView::updateScrollbars):
2189         * platform/ScrollableArea.cpp:
2190         (WebCore::ScrollableArea::willStartLiveResize):
2191         (WebCore::ScrollableArea::willEndLiveResize):
2192         (WebCore::ScrollableArea::contentAreaWillPaint):
2193         (WebCore::ScrollableArea::mouseEnteredContentArea):
2194         (WebCore::ScrollableArea::mouseExitedContentArea):
2195         (WebCore::ScrollableArea::mouseMovedInContentArea):
2196         (WebCore::ScrollableArea::contentAreaDidShow):
2197         (WebCore::ScrollableArea::contentAreaDidHide):
2198         (WebCore::ScrollableArea::contentsResized):
2199         (WebCore::ScrollableArea::serviceScrollAnimations):
2200         * platform/ScrollableArea.h:
2201         (WebCore::ScrollableArea::existingScrollAnimator):
2202
2203 2012-03-23  Abhishek Arya  <inferno@chromium.org>
2204
2205         Crash due to accessing removed parent lineboxes when clearing selection.
2206         https://bugs.webkit.org/show_bug.cgi?id=81359
2207
2208         Reviewed by Eric Seidel.
2209
2210         Similar to r110323, adds the canUpdateSelectionOnRootLineBoxes
2211         check to more places.
2212
2213         Test: editing/selection/clear-selection-crash.html
2214
2215         * rendering/RenderObject.cpp:
2216         (WebCore::RenderObject::canUpdateSelectionOnRootLineBoxes):
2217         * rendering/RenderSelectionInfo.h:
2218         (WebCore::RenderSelectionInfo::RenderSelectionInfo):
2219         (WebCore::RenderBlockSelectionInfo::RenderBlockSelectionInfo):
2220
2221 2012-03-23  Beth Dakin  <bdakin@apple.com>
2222
2223         https://bugs.webkit.org/show_bug.cgi?id=82083
2224         Too many ScrollAnimators are allocated on pages with frames
2225
2226         Reviewed by Geoffrey Garen.
2227
2228         This patch adds a new getter to ScrollableArea called 
2229         getExistingScrollAnimator() unlike scrollAnimator() this new function will 
2230         just return null if there is not already a ScrollAnimator. Callers should use 
2231         this new function when they have business with ScrollAnimator that does not 
2232         need to do anything when there are no scrollbars.
2233         * loader/FrameLoader.cpp:
2234         (WebCore::FrameLoader::transitionToCommitted):
2235         * page/EventHandler.cpp:
2236         (WebCore::EventHandler::handleGestureTapDown):
2237         * page/FrameView.cpp:
2238         (WebCore::FrameView::setAnimatorsAreActive):
2239         * platform/ScrollView.cpp:
2240         (WebCore::ScrollView::updateScrollbars):
2241         * platform/ScrollableArea.cpp:
2242         (WebCore::ScrollableArea::willStartLiveResize):
2243         (WebCore::ScrollableArea::willEndLiveResize):
2244         (WebCore::ScrollableArea::contentAreaWillPaint):
2245         (WebCore::ScrollableArea::mouseEnteredContentArea):
2246         (WebCore::ScrollableArea::mouseExitedContentArea):
2247         (WebCore::ScrollableArea::mouseMovedInContentArea):
2248         (WebCore::ScrollableArea::contentAreaDidShow):
2249         (WebCore::ScrollableArea::contentAreaDidHide):
2250         (WebCore::ScrollableArea::willRemoveHorizontalScrollbar):
2251         (WebCore::ScrollableArea::contentsResized):
2252         (WebCore::ScrollableArea::serviceScrollAnimations):
2253         * platform/ScrollableArea.h:
2254         (ScrollableArea):
2255         (WebCore::ScrollableArea::getExistingScrollAnimator):
2256
2257 2012-03-23  Eric Carlson  <eric.carlson@apple.com>
2258
2259         Deal with DOM modifications when evaluating source elements.
2260         https://bugs.webkit.org/show_bug.cgi?id=81163
2261
2262         Reviewed by Alexey Proskuryakov.
2263
2264         Test: media/video-beforeload-remove-source.html
2265
2266         * dom/ContainerNode.cpp: Make NodeVector and collectNodes public, renamed as getChildNodes.
2267         (WebCore::ContainerNode::takeAllChildrenFrom): collectNodes -> getChildNodes.
2268         (WebCore::ContainerNode::willRemove): collectNodes -> getChildNodes.
2269         (WebCore::ContainerNode::willRemoveChildren): collectNodes -> getChildNodes.
2270         (WebCore::ContainerNode::insertedIntoDocument): collectNodes -> getChildNodes.
2271         (WebCore::ContainerNode::removedFromDocument): collectNodes -> getChildNodes.
2272         * dom/ContainerNode.h:
2273         (WebCore::getChildNodes):
2274
2275         * editing/ReplaceSelectionCommand.cpp: Remove unused NodeVector declaration.
2276
2277         * html/HTMLMediaElement.cpp:
2278         (WebCore::HTMLMediaElement::HTMLMediaElement): m_nextChildNodeToConsider and m_currentSourceNode
2279             are now RefPtrs.
2280         (WebCore::HTMLMediaElement::loadTimerFired): Protect HTMLMediaElement from being deleted during
2281             a DOM modification during an event callback.
2282         (WebCore::HTMLMediaElement::load): Ditto.
2283         (WebCore::HTMLMediaElement::selectMediaResource): Set m_nextChildNodeToConsider to the first
2284             child node, it will be the first node considered.
2285         (WebCore::HTMLMediaElement::havePotentialSourceChild): m_nextChildNodeToConsider and m_currentSourceNode
2286             are now RefPtrs.
2287         (WebCore::HTMLMediaElement::selectNextSourceChild): Collect all child nodes in a vector before
2288             looking for <source> nodes because 'beforeload' event handlers can mutate the DOM. Don't
2289             use a <source> that is no longer a child node after 'beforeload'. Use 0 to represent the end
2290             of the child node list because m_nextChildNodeToConsider is now a RefPtr so using the previous 
2291             sentinel, "this", would cause a retain cycle.
2292         (WebCore::HTMLMediaElement::sourceWasAdded):  m_nextChildNodeToConsider and m_currentSourceNode
2293             are now RefPtrs.
2294         (WebCore::HTMLMediaElement::sourceWillBeRemoved): Ditto.
2295         (WebCore::HTMLMediaElement::getPluginProxyParams): Protect HTMLMediaElement from being deleted during
2296             a DOM modification during an event callback.
2297         * html/HTMLMediaElement.h:
2298
2299 2012-03-23  Dean Jackson  <dino@apple.com>
2300
2301         Disable CSS_SHADERS in Apple builds
2302         https://bugs.webkit.org/show_bug.cgi?id=81996
2303
2304         Reviewed by Simon Fraser.
2305
2306         Remove ENABLE_CSS_SHADERS from FeatureDefines. It's now in Platform.h.
2307
2308         * Configurations/FeatureDefines.xcconfig:
2309
2310 2012-03-23  Dave Michael  <dmichael@chromium.org>
2311
2312         Relanding(r111754): HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called
2313         https://bugs.webkit.org/show_bug.cgi?id=80428
2314
2315         Reviewed by Eric Seidel and Ryosuke Niwa.
2316
2317         Make HTMLPluginElement release its m_NPObject in detach() to break a
2318         reference-counting cycle that happens on reload or navigation. With this
2319         change, HTMLPlugInElement::removedFromDocument is unnecessary, so it
2320         was removed. Note that Releasing m_NPObject does not result in a call to
2321         the plugin; it simply releases a reference count on the wrapper object
2322         for this HTMLPlugInElement. (The plugin's NPP_Deallocate is invoked
2323         when the render tree is destroyed, when PluginView calls
2324         PluginPackage::unload.) Thus, it is safe to release m_NPObject in
2325         detach, because it can not result in layout or style changes.
2326
2327         Also added numberOfLiveNodes() and numberOfLiveDocuments() to
2328         window.internals to enable testing.
2329
2330         Test: plugins/netscape-dom-access-and-reload.html
2331
2332         * WebCore.exp.in:
2333         * html/HTMLPlugInElement.cpp:
2334         (WebCore::HTMLPlugInElement::detach):
2335         * html/HTMLPlugInElement.h:
2336         (HTMLPlugInElement):
2337         * testing/Internals.cpp:
2338         (WebCore):
2339         (WebCore::Internals::numberOfLiveNodes):
2340         (WebCore::Internals::numberOfLiveDocuments):
2341         * testing/Internals.h:
2342         (Internals):
2343         * testing/Internals.idl:
2344
2345 2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>
2346
2347         CSSParser doesn't set border-*-width/style/color to initial by border shorthand property
2348         https://bugs.webkit.org/show_bug.cgi?id=82040
2349
2350         Reviewed by Antti Koivisto.
2351
2352         The border shorthand property sets values for border-width, border-style, and border-color shorthand properties.
2353         While CSSParser::parseValue can process these shorthand properties properly and set the longhand properties
2354         such as border-top-width, border-right-width, ... border-left-color, CSSParser::addProperty can't and the
2355         initialization in parseShorthand fails for the border property.
2356
2357         Fixed the bug by explicitly initializing longhand properties.
2358
2359         Changing the behavior here is unlikely to break the Web since our behavior already differs from that of Firefox
2360         and Internet Explorer. Both of those browsers return the actual initial values such as "medium" and "currentColor".
2361         This discrepancy is tracked by https://bugs.webkit.org/show_bug.cgi?id=82078.
2362
2363         Test: fast/css/border-shorthand-initialize-longhands.html
2364
2365         * css/CSSParser.cpp:
2366         (WebCore::CSSParser::parseValue): Uses borderAbridgedLonghand.
2367         (WebCore::CSSParser::parseShorthand): Uses longhand properties for initialization if one is available.
2368         This allows us to initialize multiple properties (e.g. border-*-color) for a single property missing in the set.
2369         * css/CSSPropertyLonghand.cpp:
2370         (WebCore::borderAbridgedLonghand): Added. The longhand here (border-width, border-style, border-color) is
2371         "abridged" in the sense that they're still shorthands.
2372         * css/CSSPropertyLonghand.h:
2373         (WebCore::CSSPropertyLonghand::CSSPropertyLonghand):
2374         (CSSPropertyLonghand): Added the version that takes longhand instances for initialization purposes.
2375         (WebCore::CSSPropertyLonghand::longhandsForInitialization):
2376
2377 2012-03-23  Tony Chang  <tony@chromium.org>
2378
2379         [chromium] rename newwtf target back to wtf
2380         https://bugs.webkit.org/show_bug.cgi?id=82064
2381
2382         Reviewed by Adam Barth.
2383
2384         No new tests, only renaming a build target.
2385
2386         * WebCore.gyp/WebCore.gyp:
2387
2388 2012-03-23  Adrienne Walker  <enne@google.com>
2389
2390         [chromium] Turn off painting of scrollbars on compositor thread for unsupported platforms
2391         https://bugs.webkit.org/show_bug.cgi?id=82066
2392
2393         Reviewed by James Robinson.
2394
2395         With threaded compositing, OSX will crash and Windows will have black
2396         scrollbars. Fix that by reverting to the previosu behavior of updating
2397         scrollbars on the main thread instead.
2398
2399         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
2400         (WebCore::scrollbarLayerDidChange):
2401
2402 2012-03-23  Dan Bernstein  <mitz@apple.com>
2403
2404         <rdar://problem/7883987> ASSERTION FAILED: ASSERT(input == AnimationStateInputEndTimerFired || input == AnimationStateInputPlayStatePaused) in AnimationBase::updateStateMachine causing multiple "crashes" on Lion Intel Debug WebKit testers
2405         https://bugs.webkit.org/show_bug.cgi?id=81351
2406
2407         Rubber-stamped by Jessie Berlin.
2408
2409         * page/animation/AnimationBase.cpp:
2410         (WebCore::AnimationBase::updateStateMachine): Replaced the assertion with a LOG_ERROR so that
2411         the issue is still noticeable, but it does not automatically make the debug bots red.
2412
2413 2012-03-23  Mike Lawther  <mikelawther@chromium.org>
2414
2415         CSS3 calc: image sizing works with mixed percentage/absolute
2416         https://bugs.webkit.org/show_bug.cgi?id=82017
2417
2418         Reviewed by Ojan Vafai.
2419
2420         Test: css3/calc/img-size-expected.html
2421
2422         * rendering/RenderBox.cpp:
2423         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
2424         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
2425
2426 2012-03-23  Julien Chaffraix  <jchaffraix@webkit.org>
2427
2428         REGRESSION(107971): Google Voice contact list is broken in WebKit due to badly allocating the extra height
2429         https://bugs.webkit.org/show_bug.cgi?id=81826
2430
2431         Reviewed by Tony Chang.
2432
2433         Covered by tables/mozilla/bugs/bug27038-{1|2}.html.
2434
2435         This partly reverts r107971: the extra logical height distribution change was not needed
2436         to fix the bug (it is needed by the test though). We revert to giving all the extra height
2437         to the first tbody and not the first section.
2438
2439         This is broken but unfortunately some websites are relying on that. Getting a real
2440         distribution algorithm is covered by bug 81824. However this is super tricky to get
2441         right and I did not want to add more compatibility risks until I have something solid.
2442
2443         * rendering/RenderTable.cpp:
2444         (WebCore::RenderTable::distributeExtraLogicalHeight):
2445
2446 2012-03-23  Xingnan Wang  <xingnan.wang@intel.com>
2447
2448         Optimize for IPP in DirectConvolver::process()
2449         https://bugs.webkit.org/show_bug.cgi?id=80255
2450
2451         Reviewed by Chris Rogers.
2452
2453         Increase ~2X performance by conv() in IPP.
2454
2455         * platform/audio/DirectConvolver.cpp:
2456         (WebCore::DirectConvolver::DirectConvolver):
2457         (WebCore::DirectConvolver::process):
2458         * platform/audio/DirectConvolver.h:
2459         (DirectConvolver):
2460
2461 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
2462
2463         MediaStream API (JSEP): Introducing PeerConnection00 and IceCallback
2464         https://bugs.webkit.org/show_bug.cgi?id=81657
2465
2466         Reviewed by Adam Barth.
2467
2468         Last major WebCore patch for the JSEP PeerConnection, together with the associated
2469         IceCallback (they both depend on each other and IceCallback has very few lines of real code).
2470
2471         My next patch after this one will do a major overhaul of the existing layout tests
2472         and add a few new ones.
2473
2474         * GNUmakefile.list.am:
2475         * Modules/mediastream/DOMWindowMediaStream.idl:
2476         * Modules/mediastream/IceCallback.h: Added.
2477         (WebCore):
2478         (IceCallback):
2479         (WebCore::IceCallback::~IceCallback):
2480         * Modules/mediastream/IceCallback.idl: Added.
2481         * Modules/mediastream/PeerConnection00.cpp: Added.
2482         (WebCore):
2483         (WebCore::PeerConnection00::create):
2484         (WebCore::PeerConnection00::PeerConnection00):
2485         (WebCore::PeerConnection00::~PeerConnection00):
2486         (WebCore::PeerConnection00::hasLocalAudioTrack):
2487         (WebCore::PeerConnection00::hasLocalVideoTrack):
2488         (WebCore::PeerConnection00::parseMediaHints):
2489         (WebCore::PeerConnection00::createOffer):
2490         (WebCore::PeerConnection00::createAnswer):
2491         (WebCore::PeerConnection00::setLocalDescription):
2492         (WebCore::PeerConnection00::setRemoteDescription):
2493         (WebCore::PeerConnection00::localDescription):
2494         (WebCore::PeerConnection00::remoteDescription):
2495         (WebCore::PeerConnection00::startIce):
2496         (WebCore::PeerConnection00::processIceMessage):
2497         (WebCore::PeerConnection00::readyState):
2498         (WebCore::PeerConnection00::iceState):
2499         (WebCore::PeerConnection00::addStream):
2500         (WebCore::PeerConnection00::removeStream):
2501         (WebCore::PeerConnection00::localStreams):
2502         (WebCore::PeerConnection00::remoteStreams):
2503         (WebCore::PeerConnection00::close):
2504         (WebCore::PeerConnection00::didGenerateIceCandidate):
2505         (WebCore::PeerConnection00::didChangeReadyState):
2506         (WebCore::PeerConnection00::didChangeIceState):
2507         (WebCore::PeerConnection00::didAddRemoteStream):
2508         (WebCore::PeerConnection00::didRemoveRemoteStream):
2509         (WebCore::PeerConnection00::interfaceName):
2510         (WebCore::PeerConnection00::scriptExecutionContext):
2511         (WebCore::PeerConnection00::stop):
2512         (WebCore::PeerConnection00::eventTargetData):
2513         (WebCore::PeerConnection00::ensureEventTargetData):
2514         (WebCore::PeerConnection00::changeReadyState):
2515         (WebCore::PeerConnection00::changeIceState):
2516         * Modules/mediastream/PeerConnection00.h: Added.
2517         (WebCore):
2518         (PeerConnection00):
2519         (WebCore::PeerConnection00::refEventTarget):
2520         (WebCore::PeerConnection00::derefEventTarget):
2521         * Modules/mediastream/PeerConnection00.idl: Added.
2522         * WebCore.gypi:
2523         * bindings/generic/RuntimeEnabledFeatures.h:
2524         (WebCore::RuntimeEnabledFeatures::webkitPeerConnection00Enabled):
2525         * bindings/js/JSPeerConnection00Custom.cpp: Added.
2526         (WebCore):
2527         (WebCore::JSPeerConnection00Constructor::constructJSPeerConnection00):
2528         * dom/EventTargetFactory.in:
2529
2530 2012-03-23  Adrienne Walker  <enne@google.com>
2531
2532         [chromium] Fix scrollbarLayerLostContext flaky test crash on 10.6
2533         https://bugs.webkit.org/show_bug.cgi?id=82062
2534
2535         Reviewed by James Robinson.
2536
2537         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
2538         (CCScrollbarLayerImpl):
2539
2540 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
2541
2542         [chromium] MediaStream API (JSEP): Extending WebMediaStreamCenter
2543         https://bugs.webkit.org/show_bug.cgi?id=81924
2544
2545         Reviewed by Adam Barth.
2546
2547         Nothing to test, just moving methods.
2548
2549         * platform/mediastream/MediaStreamCenter.cpp:
2550         (WebCore::MediaStreamCenter::constructSDP):
2551         (WebCore):
2552
2553 2012-03-23  Sami Kyostila  <skyostil@chromium.org>
2554
2555         Reuse buffer allocation if canvas size does not change
2556         https://bugs.webkit.org/show_bug.cgi?id=80871
2557
2558         Reviewed by Stephen White.
2559
2560         If the user changes the width or height attributes of a canvas element,
2561         the contents of the canvas should be cleared and the context state
2562         should be reset. This has become a common idiom to clear the canvas
2563         "efficiently" at the start of a frame.
2564
2565         Previously, this code path triggered a full reallocation of the image
2566         buffer backing the canvas, leading to reduced performance. This patch
2567         implements an optimization where we reuse the previous image buffer
2568         allocation if the size of the canvas did not change. Also, instead of
2569         clearing the canvas every time its dimensions are touched, we only clear
2570         if anything has been drawn into the canvas since it was previously
2571         cleared.
2572
2573         Note that for now this optimization only applies for 2D canvases,
2574         since it is not entirely clear how touching the dimensions of a WebGL
2575         canvas should work.
2576
2577         Test: fast/canvas/canvas-resize-after-paint-without-layout.html +
2578               existing layout tests for canvas resetting.
2579
2580         * html/HTMLCanvasElement.cpp:
2581         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
2582         (WebCore::HTMLCanvasElement::reset):
2583         (WebCore::HTMLCanvasElement::createImageBuffer): Save the initial
2584         graphics context state so we can restore it without creating a new
2585         context.
2586         (WebCore::HTMLCanvasElement::clearImageBuffer):
2587         (WebCore):
2588         (WebCore::HTMLCanvasElement::clearCopiedImage):
2589         * html/HTMLCanvasElement.h:
2590         (HTMLCanvasElement):
2591         * html/canvas/CanvasRenderingContext2D.cpp:
2592         (WebCore::CanvasRenderingContext2D::reset): No need to notify the
2593         compositor when the context is reset, because clearing the image buffer
2594         does the same thing. We can also skip the notification if we did not
2595         have an image buffer at the time of the reset, because the reset will
2596         not have any visual impact in this case. Finally, if the canvas size
2597         did change, the notification is also unnecessary because of the call
2598         to RenderObject::repaint() from HTMLCanvasElement::reset().
2599
2600 2012-03-22  Martin Robinson  <mrobinson@igalia.com>
2601
2602         Fix some code generation warnings on GTK+.
2603
2604         Reviewed by Gustavo Noronha Silva.
2605
2606         No new tests. This just fixes warnings.
2607
2608         * GNUmakefile.am: Remove nonexistent directories from the list IDL directories.
2609
2610 2012-03-23  Sheriff Bot  <webkit.review.bot@gmail.com>
2611
2612         Unreviewed, rolling out r111751.
2613         http://trac.webkit.org/changeset/111751
2614         https://bugs.webkit.org/show_bug.cgi?id=82060
2615
2616         caused 15% page cycler regression for chromium-linux
2617         (Requested by eae on #webkit).
2618
2619         * css/CSSStyleSelector.cpp:
2620         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2621
2622 2012-03-23  Kentaro Hara  <haraken@chromium.org>
2623
2624         Support [ImplementedAs] for attributes
2625         https://bugs.webkit.org/show_bug.cgi?id=81605
2626
2627         Reviewed by Adam Barth.
2628
2629         [ImplementedAs] just supports methods. [ImplementedAs] should support
2630         attributes too.
2631
2632         Explained here: https://trac.webkit.org/wiki/WebKitIDL#ImplementedAs
2633
2634         Test: bindings/scripts/test/TestObj.idl
2635
2636         * bindings/scripts/CodeGenerator.pm: Modified to support [ImplementedAs] for attributes.
2637         (AttributeNameForGetterAndSetter):
2638
2639         * bindings/scripts/test/TestObj.idl: Added a test case.
2640
2641         * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
2642         (WebDOMTestObj::strawberry):
2643         (WebDOMTestObj::setStrawberry):
2644         * bindings/scripts/test/CPP/WebDOMTestObj.h:
2645         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2646         (webkit_dom_test_obj_get_strawberry):
2647         (webkit_dom_test_obj_set_strawberry):
2648         (webkit_dom_test_obj_get_property):
2649         (webkit_dom_test_obj_class_init):
2650         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2651         * bindings/scripts/test/JS/JSTestObj.cpp:
2652         (WebCore):
2653         (WebCore::jsTestObjStrawberry):
2654         (WebCore::setJSTestObjStrawberry):
2655         * bindings/scripts/test/JS/JSTestObj.h:
2656         (WebCore):
2657         * bindings/scripts/test/ObjC/DOMTestObj.h:
2658         * bindings/scripts/test/ObjC/DOMTestObj.mm:
2659         (-[DOMTestObj strawberry]):
2660         (-[DOMTestObj setStrawberry:]):
2661         * bindings/scripts/test/V8/V8TestObj.cpp:
2662         (WebCore::TestObjInternal::strawberryAttrGetter):
2663         (TestObjInternal):
2664         (WebCore::TestObjInternal::strawberryAttrSetter):
2665         (WebCore):
2666
2667 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
2668
2669         The JSC code generator doesn't generate correct code for Constructors
2670         https://bugs.webkit.org/show_bug.cgi?id=82046
2671
2672         Reviewed by Kentaro Hara.
2673
2674         The main bulk of generated code for constructors uses the name jsConstructor
2675         for the created object, and then calls GenerateParametersCheck which generates
2676         code that uses the name castedThis.
2677
2678         * bindings/scripts/CodeGeneratorJS.pm:
2679         (GenerateConstructorDefinition):
2680         * bindings/scripts/test/JS/JSTestInterface.cpp:
2681         (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
2682         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2683         (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
2684         * bindings/scripts/test/JS/JSTestObj.cpp:
2685         (WebCore::JSTestObjConstructor::finishCreation):
2686         (WebCore::JSTestObjConstructor::constructJSTestObj):
2687         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2688         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
2689         * bindings/scripts/test/TestObj.idl:
2690         * bindings/scripts/test/V8/V8TestObj.cpp:
2691         (WebCore::V8TestObj::constructorCallback):
2692
2693 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
2694
2695         The JSC code generator can't handle boolean arguments for Callbacks
2696         https://bugs.webkit.org/show_bug.cgi?id=82045
2697
2698         Reviewed by Kentaro Hara.
2699
2700         CodeGeneratorJS.pm only handles DOMStrings and objects as arguments
2701         for a Callback, so I added support for boolean values as well.
2702
2703         * bindings/scripts/CodeGeneratorJS.pm:
2704         (GenerateCallbackImplementation):
2705         * bindings/scripts/test/CPP/WebDOMTestCallback.cpp:
2706         (WebDOMTestCallback::callbackWithBoolean):
2707         * bindings/scripts/test/CPP/WebDOMTestCallback.h:
2708         (WebDOMTestCallback):
2709         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
2710         (webkit_dom_test_callback_callback_with_boolean):
2711         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
2712         * bindings/scripts/test/JS/JSTestCallback.cpp:
2713         (WebCore::JSTestCallback::callbackWithBoolean):
2714         (WebCore):
2715         * bindings/scripts/test/JS/JSTestCallback.h:
2716         (JSTestCallback):
2717         * bindings/scripts/test/ObjC/DOMTestCallback.h:
2718         * bindings/scripts/test/ObjC/DOMTestCallback.mm:
2719         (-[DOMTestCallback callbackWithBoolean:]):
2720         * bindings/scripts/test/TestCallback.idl:
2721         * bindings/scripts/test/V8/V8TestCallback.cpp:
2722         (WebCore::V8TestCallback::callbackWithBoolean):
2723         (WebCore):
2724         * bindings/scripts/test/V8/V8TestCallback.h:
2725         (V8TestCallback):
2726
2727 2012-03-23  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2728
2729         Touch adjustment forgets some subtarget quads.
2730         https://bugs.webkit.org/show_bug.cgi?id=82044
2731
2732         Reviewed by Kenneth Rohde Christiansen.
2733
2734         Do not uncritically skip all nodes that are ancestors to other test results.
2735         Instead return the inner-most element if multiple nodes have the same distance.
2736
2737         Test: touchadjustment/block-testing.html
2738
2739         * page/TouchAdjustment.cpp:
2740         (WebCore::TouchAdjustment::compileSubtargetList):
2741         (WebCore::TouchAdjustment::findNodeWithLowestDistanceMetric):
2742
2743 2012-03-23  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2744
2745         TouchAdjustment does not correct for frame position
2746         https://bugs.webkit.org/show_bug.cgi?id=82043
2747
2748         Reviewed by Kenneth Rohde Christiansen.
2749
2750         Convert geometry to window coordinates before calculating distance.
2751
2752         Test: touchadjustment/iframe.html
2753
2754         * page/TouchAdjustment.cpp:
2755         (WebCore::TouchAdjustment::distanceSquaredToTargetCenterLine):
2756
2757 2012-03-23  Vlad Voicu  <vladv@rosedu.org>
2758
2759         Fixed minor WebInspector display issue
2760         Clicking on disabled sections in Styles Sidebar Pane creates new elements.
2761         https://bugs.webkit.org/show_bug.cgi?id=81925
2762
2763         Reviewed by Timothy Hatcher
2764
2765         No new tests should be required.
2766
2767         * inspector/front-end/StylesSidebarPane.js:
2768         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
2769         (WebInspector.StylePropertyTreeElement.prototype):
2770
2771 2012-03-23  Kentaro Hara  <haraken@chromium.org>
2772
2773         Unreviewed, rebaselined run-bindings-tests results.
2774
2775         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
2776         * bindings/scripts/test/CPP/WebDOMTestObj.h:
2777         * bindings/scripts/test/JS/JSTestObj.cpp:
2778         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
2779         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
2780         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
2781         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
2782         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
2783         * bindings/scripts/test/V8/V8TestObj.cpp:
2784         (WebCore::TestObjInternal::methodWithCallbackArgCallback):
2785         (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
2786         (WebCore::TestObjInternal::methodWithCallbackAndOptionalArgCallback):
2787         (WebCore::TestObjInternal::overloadedMethod5Callback):
2788         (WebCore::TestObjInternal::overloadedMethodCallback):
2789
2790 2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>
2791
2792         cssText should use StringBuilder
2793         https://bugs.webkit.org/show_bug.cgi?id=82028
2794
2795         Reviewed by Hajime Morita.
2796
2797         Make StylePropertySet::asText more efficient by deploying StringBuilder;
2798         avoids heap churn by String::operator+ and String::operator+=.
2799
2800         * css/StylePropertySet.cpp:
2801         (WebCore::StylePropertySet::asText):
2802
2803 2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>
2804
2805         REGRESSION(r111754): plugins/reloadplugins-and-pages.html fails on all platforms
2806         https://bugs.webkit.org/show_bug.cgi?id=82035
2807
2808         Rollout r111754 since it caused a test to fail and the test added by the patch
2809         is failing on Mac WebKit 2.
2810
2811         * WebCore.exp.in:
2812         * html/HTMLPlugInElement.cpp:
2813         (WebCore::HTMLPlugInElement::detach):
2814         (WebCore):
2815         (WebCore::HTMLPlugInElement::removedFromDocument):
2816         * html/HTMLPlugInElement.h:
2817         (HTMLPlugInElement):
2818         * testing/Internals.cpp:
2819         * testing/Internals.h:
2820         (Internals):
2821         * testing/Internals.idl:
2822
2823 2012-03-23  Adam Barth  <abarth@webkit.org>
2824
2825         Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl (Part 2)
2826         https://bugs.webkit.org/show_bug.cgi?id=82026
2827
2828         Reviewed by Kentaro Hara.
2829
2830         This patch removes DOMWindow::resetNotifications, which was unneeded
2831         special-case logic for clearing the notifications center.  The previous
2832         patch that tried to accomplish the same thing did not override
2833         willDetachPage, which is why it caused crashes.
2834
2835         There's actually a cleaner way to handle these cases, which will let us
2836         implement reconnectFrame, but that will need to wait for the next
2837         patch.
2838
2839         * notifications/DOMWindowNotifications.cpp:
2840         (WebCore::DOMWindowNotifications::DOMWindowNotifications):
2841         (WebCore::DOMWindowNotifications::from):
2842         (WebCore::DOMWindowNotifications::webkitNotifications):
2843         (WebCore):
2844         (WebCore::DOMWindowNotifications::disconnectFrame):
2845         (WebCore::DOMWindowNotifications::willDetachPage):
2846         (WebCore::DOMWindowNotifications::reset):
2847         * notifications/DOMWindowNotifications.h:
2848         (DOMWindowNotifications):
2849         * page/DOMWindow.cpp:
2850         (WebCore::DOMWindow::willDetachPage):
2851         (WebCore::DOMWindow::disconnectDOMWindowProperties):
2852         (WebCore::DOMWindow::clearDOMWindowProperties):
2853         * page/DOMWindow.h:
2854         (DOMWindow):
2855         * page/Frame.cpp:
2856         (WebCore::Frame::willDetachPage):
2857
2858 2012-03-22  Adam Barth  <abarth@webkit.org>
2859
2860         Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl (Part 1)
2861         https://bugs.webkit.org/show_bug.cgi?id=82015
2862
2863         Reviewed by Kentaro Hara.
2864
2865         This patch moves DOMWindow.webkitNotifications from DOMWindow.idl to
2866         DOMWindowNotificiations.idl in preparation for moving notificiations
2867         into Modules.
2868
2869         A future patch will remove DOMWindow::resetNotificaitions in favor of
2870         more general mechanisms.
2871
2872         * CMakeLists.txt:
2873         * DerivedSources.make:
2874         * DerivedSources.pri:
2875         * GNUmakefile.list.am:
2876         * Target.pri:
2877         * WebCore.gypi:
2878         * WebCore.vcproj/WebCore.vcproj:
2879         * WebCore.xcodeproj/project.pbxproj:
2880         * notifications/DOMWindowNotifications.cpp: Added.
2881         (WebCore):
2882         (WebCore::DOMWindowNotifications::DOMWindowNotifications):
2883         (WebCore::DOMWindowNotifications::~DOMWindowNotifications):
2884         (WebCore::DOMWindowNotifications::from):
2885         (WebCore::DOMWindowNotifications::webkitNotifications):
2886         (WebCore::DOMWindowNotifications::reset):
2887         (WebCore::DOMWindowNotifications::supplementName):
2888         * notifications/DOMWindowNotifications.h: Added.
2889         (WebCore):
2890         (DOMWindowNotifications):
2891         * notifications/DOMWindowNotifications.idl: Added.
2892         * page/DOMWindow.cpp:
2893         (WebCore::DOMWindow::~DOMWindow):
2894         (WebCore):
2895         (WebCore::DOMWindow::resetNotifications):
2896         * page/DOMWindow.h:
2897         (WebCore):
2898         (DOMWindow):
2899         * page/DOMWindow.idl:
2900
2901 2012-03-22  Li Yin  <li.yin@intel.com>
2902
2903         A client MUST close a connection if it detects a masked frame
2904         https://bugs.webkit.org/show_bug.cgi?id=81361
2905
2906         Reviewed by Kent Tamura.
2907
2908         A server must not mask any frames that it sends to the client.
2909         Change the test case, not mask the frames from server to client.
2910         
2911         Test: http/tests/websocket/tests/hybi/invalid-masked-frames-from-server.html
2912
2913         * Modules/websockets/WebSocketChannel.cpp:
2914         (WebCore::WebSocketChannel::processFrame):
2915
2916 2012-03-22  Li Yin  <li.yin@intel.com>
2917
2918         [WebSocket]The minimal number of bytes MUST be used to encode the length
2919         https://bugs.webkit.org/show_bug.cgi?id=81443
2920
2921         Reviewed by Kent Tamura.
2922
2923         From RFC 6455 http://tools.ietf.org/html/rfc6455#section-5.2
2924         the minimal number of bytes MUST be used to encode the length
2925         
2926         New test case : http/tests/websocket/tests/hybi/invalid-encode-length.html
2927
2928         * Modules/websockets/WebSocketChannel.cpp:
2929         (WebCore::WebSocketChannel::parseFrame):
2930
2931 2012-03-22  Adam Barth  <abarth@webkit.org>
2932
2933         Unreviewed.  Sort xcodeproj file.
2934
2935         * WebCore.xcodeproj/project.pbxproj:
2936
2937 2012-03-22  Mao Yujie  <yujie.mao@intel.com>
2938
2939         Implement strict testing criterion for callback function definition
2940         https://bugs.webkit.org/show_bug.cgi?id=80005
2941
2942         Reviewed by Adam Barth.
2943
2944         Callback function should be defined as the function type instead of
2945         the object type.
2946
2947         LayoutTest: fast/dom/MediaStream/argument-types.html
2948
2949         * bindings/scripts/CodeGeneratorJS.pm:
2950         (GenerateParametersCheckExpression):
2951         (GenerateParametersCheck):
2952         * bindings/scripts/CodeGeneratorV8.pm:
2953         (GenerateParametersCheckExpression):
2954         (GenerateParametersCheck):
2955
2956 2012-03-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2957
2958         Convert hasGrammarMarker to use Internals interface
2959         https://bugs.webkit.org/show_bug.cgi?id=82004
2960
2961         Reviewed by Ryosuke Niwa.
2962
2963         Remove hasGrammarMarker functions, because it is able to work in the
2964         cross-port way through the Internals interface.
2965
2966         No new tests, since we are improving here the infra-structure
2967         for testing a specific method.
2968
2969         * testing/Internals.cpp:
2970         (WebCore::Internals::hasGrammarMarker):
2971         (WebCore):
2972         * testing/Internals.h:
2973         (Internals):
2974         * testing/Internals.idl:
2975
2976 2012-03-22  Xingnan Wang  <xingnan.wang@intel.com>
2977
2978         Add exception for the setter of "fftSize" in RealtimeAnalyserNode
2979         https://bugs.webkit.org/show_bug.cgi?id=81748
2980
2981         Reviewed by Chris Rogers.
2982
2983         * Modules/webaudio/RealtimeAnalyser.cpp:
2984         (WebCore::RealtimeAnalyser::setFftSize):
2985         * Modules/webaudio/RealtimeAnalyser.h:
2986         (RealtimeAnalyser):
2987         * Modules/webaudio/RealtimeAnalyserNode.cpp:
2988         (WebCore::RealtimeAnalyserNode::setFftSize):
2989         (WebCore):
2990         * Modules/webaudio/RealtimeAnalyserNode.h:
2991         (RealtimeAnalyserNode):
2992         * Modules/webaudio/RealtimeAnalyserNode.idl:
2993
2994 2012-03-22  Leo Yang  <leo.yang@torchmobile.com.cn>
2995
2996         [BlackBerry] Add HistoryItemViewState for BlackBerry port
2997         https://bugs.webkit.org/show_bug.cgi?id=81867
2998
2999         Reviewed by Rob Buis.
3000
3001         HistoryItemViewState is the blackberry specific field of HistoryItem.
3002         It's used to maintain the porting specific view state.
3003
3004         No new test because the port can't be built yet.
3005
3006         * history/HistoryItem.h:
3007         (HistoryItem):
3008         (WebCore::HistoryItem::viewState):
3009
3010 2012-03-22  SravanKumar Sandela  <ssandela@innominds.com>
3011
3012         Fieldset unexpectedly stretches to minimum intrinsic width
3013         https://bugs.webkit.org/show_bug.cgi?id=79128
3014
3015         Reviewed by Julien Chaffraix.
3016
3017         Fieldset element width will now check if css width is specified explicitly
3018         before stretching to minimum intrinsic width. The reference
3019         can be taken from IE9, instead of FF(FF acknowledged the broken behavior). 
3020
3021         Tests: fast/forms/fieldset-width-nostretch-ifspecified-expected.html
3022                fast/forms/fieldset-width-nostretch-ifspecified.html
3023
3024         * rendering/RenderFieldset.cpp:
3025         (WebCore::RenderFieldset::stretchesToMinIntrinsicLogicalWidth):
3026         (WebCore):
3027         * rendering/RenderFieldset.h:
3028         (RenderFieldset):
3029
3030 2012-03-22  Shawn Singh  <shawnsingh@chromium.org>
3031
3032         [chromium] Target surface should be damaged for a new layers even when layer had no changes
3033         https://bugs.webkit.org/show_bug.cgi?id=81879
3034
3035         Reviewed by Adrienne Walker.
3036
3037         Unit test added to CCDamageTrackerTest.
3038
3039         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
3040         (WebCore::CCDamageTracker::removeRectFromCurrentFrame): added a
3041         boolean arg to detect if the layer is new on this update.
3042
3043         (WebCore::CCDamageTracker::extendDamageForLayer): added logic that
3044         damages the target surface if the layer is new.
3045
3046         (WebCore::CCDamageTracker::extendDamageForRenderSurface): added
3047         logic that damages the target surface if the descendant surface is
3048         new; similar logic for the surface's replica if the replica is new.
3049
3050         * platform/graphics/chromium/cc/CCDamageTracker.h:
3051         (CCDamageTracker):
3052
3053 2012-03-22  Charles Wei  <charles.wei@torchmobile.com.cn>
3054
3055         [BlackBerry] Need to store the meta info of a page in the ViewState of the history
3056         https://bugs.webkit.org/show_bug.cgi?id=82000
3057
3058         Reviewed by Rob Buis.
3059
3060         Internally reviewed by George Staikos.
3061
3062         No new tests, BlackBerry porting doesn't build yet upstreaming.
3063
3064         * history/blackberry/HistoryItemViewState.h:
3065         (WebCore::HistoryItemViewState::HistoryItemViewState):
3066         (HistoryItemViewState):
3067
3068 2012-03-22  Adam Klein  <adamk@chromium.org>
3069
3070         [v8] wrapSlow methods should ref underlying object before creating wrapper
3071         https://bugs.webkit.org/show_bug.cgi?id=81919
3072
3073         Reviewed by Adam Barth.
3074
3075         Because instatiating the wrapper can trigger GC, it's important that
3076         wrapSlow() hold a reference to an object when creating a wrapper for
3077         that object. Once the V8 wrapper exists and is associated with the object,
3078         the reference can be handed off (via leakRef) to be handled by the normal
3079         binding code logic (where derefObject is called if the handle is GCed).
3080
3081         Binding tests have been updated to reflect this change.
3082
3083         Testing the change directly is hard. Any test landed today would only
3084         be a valid test until V8's logic about when to GC changes, at which point
3085         it would become dead weight. So I don't think it's worth landing a
3086         layout test along with this.
3087
3088         * bindings/scripts/CodeGeneratorV8.pm:
3089         (GenerateHeader): Make wrapSlow take a PassRefPtr for RefCounted objects.
3090         (GenerateToV8Converters): Get rid of the explicit call to ref() and
3091         instead call leakRef() when adding a RefCounted object to the DOM map.
3092         (GetPassRefPtrType): Helper to generate "PassRefPtr<T>", or "PassRefPtr<T<U> >" as appropriate.
3093         * bindings/scripts/test/V8/V8Float64Array.cpp:
3094         (WebCore::V8Float64Array::wrapSlow):
3095         * bindings/scripts/test/V8/V8Float64Array.h:
3096         (V8Float64Array):
3097         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
3098         (WebCore::V8TestActiveDOMObject::wrapSlow):
3099         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
3100         (V8TestActiveDOMObject):
3101         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
3102         (WebCore::V8TestCustomNamedGetter::wrapSlow):
3103         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
3104         (V8TestCustomNamedGetter):
3105         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
3106         (WebCore::V8TestEventConstructor::wrapSlow):
3107         * bindings/scripts/test/V8/V8TestEventConstructor.h:
3108         (V8TestEventConstructor):
3109         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
3110         (WebCore::V8TestEventTarget::wrapSlow):
3111         * bindings/scripts/test/V8/V8TestEventTarget.h:
3112         (V8TestEventTarget):
3113         * bindings/scripts/test/V8/V8TestInterface.cpp:
3114         (WebCore::V8TestInterface::wrapSlow):
3115         * bindings/scripts/test/V8/V8TestInterface.h:
3116         (V8TestInterface):
3117         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
3118         (WebCore::V8TestMediaQueryListListener::wrapSlow):
3119         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
3120         (V8TestMediaQueryListListener):
3121         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
3122         (WebCore::V8TestNamedConstructor::wrapSlow):
3123         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
3124         (V8TestNamedConstructor):
3125         * bindings/scripts/test/V8/V8TestObj.cpp:
3126         (WebCore::V8TestObj::wrapSlow):
3127         * bindings/scripts/test/V8/V8TestObj.h:
3128         (V8TestObj):
3129         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3130         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
3131         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
3132         (V8TestSerializedScriptValueInterface):
3133
3134 2012-03-22  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
3135
3136         [BlackBerry] add interface clearCredentials() and clearNeverRememberSites()
3137         https://bugs.webkit.org/show_bug.cgi?id=81887
3138
3139         Reviewed by Rob Buis.
3140
3141         Fixed SQL issue when clearing table logins and table never_remember.
3142
3143         No new tests.
3144
3145         * platform/network/blackberry/CredentialBackingStore.cpp:
3146         (WebCore::CredentialBackingStore::clearLogins):
3147         (WebCore::CredentialBackingStore::clearNeverRemember):
3148
3149 2012-03-22  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
3150
3151         [BlackBerry] http authenticate dialog popup only once no matter authentication pass or fail
3152         https://bugs.webkit.org/show_bug.cgi?id=80135
3153
3154         Reviewed by Rob Buis.
3155
3156         Modified the interface function authenticationChallenge() in class
3157         PageClientBlackBerry, moved Credential from return value to the
3158         function's reference parameter, and returned a bool to indicate if
3159         user pressed Ok button or not.
3160         Removed the logic which checks m_currentWebChallenge not null,
3161         because we should challenge user again if the last provided credential
3162         is not valid; also added the logic that will popup challenge
3163         dialog again immediately if user press Ok buttton directly without
3164         inputting anything.
3165
3166         No new tests.
3167
3168         * platform/blackberry/PageClientBlackBerry.h:
3169         * platform/network/blackberry/NetworkJob.cpp:
3170         (WebCore::NetworkJob::handleAuthHeader):
3171         (WebCore::NetworkJob::sendRequestWithCredentials):
3172
3173 2012-03-22  Jason Liu  <jason.liu@torchmobile.com.cn>
3174
3175         [BlackBerry] Synchronize platform/network/blackberry
3176         https://bugs.webkit.org/show_bug.cgi?id=81874
3177
3178         We changed a lot in these files locally. But the changes are not upstreamed.
3179         It is not convenient to do the other upstreaming work based on these differences.
3180         So upstream these changes.
3181
3182         Reviewed by Rob Buis.
3183
3184         No new tests. Just synchronize codes.
3185
3186         * platform/network/blackberry/NetworkJob.cpp:
3187         (WebCore::NetworkJob::NetworkJob):
3188         (WebCore::NetworkJob::initialize):
3189         (WebCore::NetworkJob::handleNotifyHeaderReceived):
3190         (WebCore::NetworkJob::handleNotifyDataReceived):
3191         (WebCore::NetworkJob::sendResponseIfNeeded):
3192         (WebCore::NetworkJob::sendRequestWithCredentials):
3193         (WebCore::NetworkJob::handleAbout):
3194         * platform/network/blackberry/NetworkJob.h:
3195         (WebCore::NetworkJob::isError):
3196         (NetworkJob):
3197         * platform/network/blackberry/NetworkManager.cpp:
3198         (WebCore::NetworkManager::startJob):
3199         * platform/network/blackberry/ResourceRequest.h:
3200         (WebCore::ResourceRequest::ResourceRequest):
3201         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
3202         (WebCore::platformTargetTypeForRequest):
3203
3204 2012-03-22  Tom Sepez  <tsepez@chromium.org>
3205
3206         XSS Auditor bypass via script tag src=data:, URLS.
3207         https://bugs.webkit.org/show_bug.cgi?id=81948
3208
3209         Reviewed by Adam Barth.
3210
3211         This change fixes an XSSAuditor bypass wherby a script with a data: URL src
3212         attribute could evade detection by using characters from the page to create
3213         a snippet for matching not found in the URL's reflected vector.  This change 
3214         terminates the snippet for matching earlier in these cases.
3215         
3216         Test: http/tests/security/xssAuditor/script-tag-with-source-data-url2.html
3217
3218         * html/parser/XSSAuditor.cpp:
3219         (WebCore::XSSAuditor::decodedSnippetForAttribute):
3220
3221 2012-03-22  Dana Jansens  <danakj@chromium.org>
3222
3223         [chromium] Incorrect assert on animating opacity for a surface
3224         https://bugs.webkit.org/show_bug.cgi?id=81994
3225
3226         Reviewed by Adrienne Walker.
3227
3228         Draw opacity and animation state match on the surface itself. A
3229         surface with animating opacity always has an owning layer without
3230         animation, as the surface does the animation for it.
3231
3232         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3233         (WebCore::CCLayerTreeHost::paintLayerContents):
3234
3235 2012-03-22  Dana Jansens  <danakj@chromium.org>
3236
3237         [chromium] Skip frames when checkerboarding an animation
3238         https://bugs.webkit.org/show_bug.cgi?id=81716
3239
3240         Reviewed by Adrienne Walker.
3241
3242         This will stop drawing frames when prepareToDraw fails, if the draw is
3243         not forced. The expected behaviour is outlined below by the unit tests.
3244
3245         When a draw fails, we:
3246         1. Set m_needsRedraw to try again next vsync
3247         2. Set m_needsCommit because we need more data from webkit to succeed
3248         3. Set m_drawIfPossibleFailed. This allows us to try draw again within
3249         the same vsync *if* a commit finishes during this time.
3250
3251         Unit test: CCSchedulerTest.RequestRedrawInsideFailedDraw
3252                    CCSchedulerTest.RequestCommitInsideFailedDraw
3253                    CCSchedulerTest.NoBeginFrameWhenDrawFails
3254                    CCSchedulerStateMachineTest.TestFailedDrawSetsNeedsCommitAndDoesNotDrawAgain
3255                    CCSchedulerStateMachineTest.TestSetNeedsRedrawDuringFailedDrawDoesNotRemoveNeedsRedraw
3256                    CCSchedulerStateMachineTest.TestCommitAfterFailedDrawAllowsDrawInSameFrame
3257                    CCSchedulerStateMachineTest.TestCommitAfterFailedAndSuccessfulDrawDoesNotAllowDrawInSameFrame
3258                    CCSchedulerStateMachineTest.TestFailedDrawIsRetriedNextVSync
3259
3260         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3261         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
3262         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
3263         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3264         (CCLayerTreeHostImpl):
3265         * platform/graphics/chromium/cc/CCScheduler.cpp:
3266         (WebCore::CCScheduler::processScheduledActions):
3267         * platform/graphics/chromium/cc/CCScheduler.h:
3268         (CCSchedulerClient):
3269         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
3270         (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
3271         (WebCore::CCSchedulerStateMachine::nextAction):
3272         (WebCore::CCSchedulerStateMachine::updateState):
3273         (WebCore::CCSchedulerStateMachine::didDrawIfPossibleCompleted):
3274         (WebCore):
3275         * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
3276         (CCSchedulerStateMachine):
3277         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3278         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
3279         (WebCore):
3280         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapIfPossible):
3281         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapForced):
3282         * platform/graphics/chromium/cc/CCThreadProxy.h:
3283         (CCThreadProxy):
3284
3285 2012-03-22  W. James MacLean  <wjmaclean@chromium.org>
3286
3287         [chromium] Force update of nonFastScrollableRegion if target CCLayerImpl has been freshly created.
3288         https://bugs.webkit.org/show_bug.cgi?id=81968
3289
3290         Reviewed by Adrienne Walker.
3291
3292         Added unit test to existing tests for TreeSynchronizer.
3293
3294         When creating a new CCLayerImpl during tree synchronization, make sure we transfer the nonFastScrollableRegion as
3295         the new CCLayerImpl will default to an empty region.
3296
3297         * platform/graphics/chromium/LayerChromium.h:
3298         (WebCore::LayerChromium::nonFastScrollableRegion):
3299         (WebCore::LayerChromium::setNonFastScrollableRegionChanged):
3300         * platform/graphics/chromium/TreeSynchronizer.cpp:
3301         (WebCore::TreeSynchronizer::reuseOrCreateCCLayerImpl):
3302
3303 2012-03-22  Raphael Kubo da Costa  <rakuco@FreeBSD.org>
3304
3305         [CMake] Unreviewed build fix after r111778.
3306
3307         * CMakeLists.txt: Replace ${JAVASCRIPTCORE_DIR}/wtf includes with
3308         ${WTF_DIR}/wtf ones.
3309
3310 2012-03-22  Tony Chang  <tony@chromium.org>
3311
3312         Unreviewed, fix chromium build after wtf move.
3313
3314         Only use newwtf, remove references to wtf.
3315
3316         * WebCore.gyp/WebCore.gyp:
3317
3318 2012-03-22  Benjamin Poulain  <bpoulain@apple.com>
3319
3320         Remove an obsolete comment regarding magic frames from Geolocation
3321         https://bugs.webkit.org/show_bug.cgi?id=81871
3322
3323         Reviewed by Alexey Proskuryakov.
3324
3325         Moving a frame into another document is no longer possible after r111361. The comment
3326         is now irrelevant.
3327
3328         * Modules/geolocation/Geolocation.cpp:
3329         (WebCore::Geolocation::stop):
3330
3331 2012-03-22  Csaba Osztrogon√°c  <ossy@webkit.org>
3332
3333         Actually move WTF files to their new home
3334         https://bugs.webkit.org/show_bug.cgi?id=81844
3335
3336         [Qt] Unreviewed buildfix after r111778.
3337
3338         * Target.pri:
3339
3340 2012-03-22  Kentaro Hara  <haraken@chromium.org>
3341
3342         run-bindings-tests output a lot of errors in TestSerializedScriptValueInterface.idl
3343         https://bugs.webkit.org/show_bug.cgi?id=81852
3344
3345         Reviewed by Adam Barth.
3346
3347         run-bindings-tests output a lot of errors in TestSerializedScriptValueInterface.idl:
3348
3349         Use of uninitialized value in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2743.
3350         Use of uninitialized value $name in substitution (s///) at WebCore/bindings/scripts/CodeGenerator.pm line 119.
3351         Use of uninitialized value $type in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2969.
3352         Use of uninitialized value $type in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2972.
3353         Use of uninitialized value $type in hash element at WebCore/bindings/scripts/CodeGenerator.pm line 367.
3354         Use of uninitialized value $type in hash element at WebCore/bindings/scripts/CodeGenerator.pm line 368.
3355         ...
3356
3357         This is because [Constructor(...)] does not yet support [Optional] arguments.
3358         It just supports [Optional=DefaultIsUndefined] and [Optional=DefaultIsNullString] arguments:
3359         https://trac.webkit.org/wiki/WebKitIDL#Constructor
3360
3361         This patch replaces [Optional] with [Optional=DefaultIsUndefined]
3362         in TestSerializedScriptValueInterface.idl.
3363
3364         Test: bindings/scripts/test/TestSerializedScriptValueInterface.idl
3365
3366         * bindings/scripts/CodeGeneratorJS.pm:
3367         (GenerateConstructorDefinition):
3368         * bindings/scripts/CodeGeneratorV8.pm:
3369         (GenerateConstructorCallback):
3370         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3371         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
3372         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
3373         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3374         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
3375
3376 2012-03-22  Michal Mocny  <mmocny@google.com>
3377
3378         [chromium] LayerRendererChromium should use GpuMemoryAllocationChanged callback to explicitly manage framebuffer.
3379         https://bugs.webkit.org/show_bug.cgi?id=81823
3380
3381         Reviewed by Adrienne Walker.
3382
3383         New UnitTests: LayerRendererChromiumTest
3384
3385         * platform/graphics/chromium/LayerRendererChromium.cpp:
3386         (LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
3387         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::create):
3388         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::~LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
3389         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChanged):
3390         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
3391         (WebCore):
3392         (WebCore::LayerRendererChromium::LayerRendererChromium):
3393         (WebCore::LayerRendererChromium::initialize):
3394         (WebCore::LayerRendererChromium::~LayerRendererChromium):
3395         (WebCore::LayerRendererChromium::setVisible):
3396         (WebCore::LayerRendererChromium::swapBuffers):
3397         (WebCore::LayerRendererChromium::discardFramebuffer):
3398         (WebCore::LayerRendererChromium::ensureFramebuffer):
3399         * platform/graphics/chromium/LayerRendererChromium.h:
3400         (WebCore):
3401         (LayerRendererChromiumClient):
3402         (LayerRendererChromium):
3403         (WebCore::LayerRendererChromium::isFramebufferDiscarded):
3404         (ScopedEnsureFramebufferAllocation):
3405         (WebCore::ScopedEnsureFramebufferAllocation::ScopedEnsureFramebufferAllocation):
3406         (WebCore::ScopedEnsureFramebufferAllocation::~ScopedEnsureFramebufferAllocation):
3407         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3408         (WebCore::LayerRendererCapabilities::LayerRendererCapabilities):
3409         (LayerRendererCapabilities):
3410         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3411         (WebCore::CCLayerTreeHostImpl::setVisible):
3412         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3413         (CCLayerTreeHostImpl):
3414         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
3415         (WebCore::CCSingleThreadProxy::compositeAndReadback):
3416         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3417         (WebCore::CCThreadProxy::compositeAndReadback):
3418
3419 2012-03-22  Adam Barth  <abarth@webkit.org>
3420
3421         ContainerNode::insertedIntoTree and removedFromTree use weak iteration patterns
3422         https://bugs.webkit.org/show_bug.cgi?id=80570
3423
3424         Reviewed by Ryosuke Niwa.
3425
3426         These functions use weak iteration patterns, but as far as I can tell,
3427         we never execute script below these functions.  This patch adds ASSERTs
3428         to help us avoid adding events in the future.
3429
3430         * dom/ContainerNode.cpp:
3431         (WebCore::ContainerNode::insertedIntoTree):
3432         (WebCore::ContainerNode::removedFromTree):
3433         * html/HTMLMediaElement.cpp:
3434         (WebCore::HTMLMediaElement::loadInternal):
3435             - There's a somewhat complex call chain from insertedIntoTree into
3436               HTMLMediaElement, and somewhat complex control flow below
3437               loadInternal that eventually leads to the BeforeLoad event being
3438               fired.  In studying this code, I don't see a way for the
3439               BeforeLoad event to be fired during insertedIntoTree, but I've
3440               added this assert here to make sure we don't call loadInternal
3441               when we're not supposed to dispatch events.  This ASSERT should
3442               help us catch these BeforeLoad errors more quickly.
3443
3444 2012-03-22  Raphael Kubo da Costa  <rakuco@FreeBSD.org>
3445
3446         Crash in fast/dom/navigator-detached-nocrash.html
3447         https://bugs.webkit.org/show_bug.cgi?id=81773
3448
3449         Reviewed by Adam Barth.
3450
3451         BatteryManager::create() blindly assumes the Navigator* it
3452         receives has a valid Frame, which is not always the case, as made
3453         evident by the crashing test.
3454
3455         Follow abarth's suggestion and just stop
3456         NavigatorBattery::webkitBattery() before it reaches the call to
3457         BatteryManager::create() if that's the case.
3458
3459         No new tests, covered by fast/dom/navigator-detached-nocrash.html.
3460
3461         * Modules/battery/NavigatorBattery.cpp:
3462         (WebCore::NavigatorBattery::webkitBattery):
3463
3464 2012-03-22  Emil A Eklund  <eae@chromium.org>
3465
3466         Unreviewed, add missing include statement for CSSValueList.h.
3467
3468         * css/CSSStyleSelector.h: