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