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