1 2013-04-11 Ryosuke Niwa <rniwa@webkit.org>
3 Remove ResourceLoadInfo
4 https://bugs.webkit.org/show_bug.cgi?id=113302
6 Reviewed by Benjamin Poulain.
8 Co-authored by Christophe Dumez.
10 Removed ResourceLoadInfo since it had been only used by Chromium port.
12 * GNUmakefile.list.am:
15 * WebCore.vcproj/WebCore.vcproj:
16 * WebCore.vcxproj/WebCore.vcxproj:
17 * WebCore.vcxproj/WebCore.vcxproj.filters:
18 * WebCore.xcodeproj/project.pbxproj:
19 * inspector/InspectorResourceAgent.cpp:
20 (WebCore::buildObjectForResourceResponse):
21 * loader/FrameLoader.cpp:
22 (WebCore::FrameLoader::loadResourceSynchronously):
23 * platform/network/ResourceLoadInfo.h: Removed.
24 * platform/network/ResourceResponseBase.cpp:
26 (WebCore::ResourceResponseBase::reportMemoryUsage):
27 * platform/network/ResourceResponseBase.h:
28 (ResourceResponseBase):
30 2013-04-11 Ryosuke Niwa <rniwa@webkit.org>
32 Another Mac Lion build fix attempt after r148197.
34 * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
36 2013-04-11 Sukolsak Sakshuwong <sukolsak@gmail.com>
38 Unable to paste twice in input field when specific CSS present
39 https://bugs.webkit.org/show_bug.cgi?id=108675
41 Reviewed by Ryosuke Niwa.
43 When we are pre-rendering text in ReplaceSelectionCommand, we shouldn't care
44 whether the content is clipped by its ancestors or not. This bug was caused
45 by the fact the plainText() method returned an empty string because the text
46 was fully clipped by its ancestors. Make plainText ignore style visibility.
48 Test: editing/inserting/insert-text-into-text-field.html
50 * editing/ReplaceSelectionCommand.cpp:
51 (WebCore::ReplacementFragment::ReplacementFragment):
53 2013-04-11 Martin Robinson <mrobinson@igalia.com>
55 [GTK] Add accelerated 2D canvas support using cairo-gl
56 https://bugs.webkit.org/show_bug.cgi?id=104672
58 Reviewed by Alejandro G. Castro.
60 No new tests. We do not yet have the ability to run tests against
63 * platform/graphics/GraphicsContext.cpp:
64 (WebCore): We don't use the stub implementation of isAcceleratedContext any longer.
65 * platform/graphics/ImageBuffer.cpp:
66 (WebCore): Ditto for ImageBuffer::platformLayer.
67 * platform/graphics/cairo/GLContext.h:
68 (GLContext): Added method to get a cairo_device_t from the context.
69 * platform/graphics/cairo/GraphicsContextCairo.cpp:
70 (WebCore::GraphicsContext::isAcceleratedContext): Return true when we are a CairoGL surface.
71 * platform/graphics/cairo/ImageBufferCairo.cpp:
72 (WebCore::ImageBufferData::ImageBufferData): Initialize the size and the texture to 0.
73 (WebCore::createCairoGLSurface): Added this helper.
74 (WebCore::ImageBuffer::ImageBuffer): When we are in accelerated rendering mode, create
76 (WebCore::ImageBuffer::platformTransformColorSpace): Do not implement this for accelerated
78 (WebCore::mapSurfaceToImage): Added this helper, since we don't require Cairo 1.12 yet,
79 which provides an builtin implementation.
80 (WebCore::unmapSurfaceFromImage): Ditto.
81 (WebCore::getImageData): Map the surface to an image surface first.
82 (WebCore::ImageBuffer::putByteArray): Ditto.
83 (WebCore::ImageBufferData::paintToTextureMapper): Connect the accelerated canvas into the
84 TextureMapper infrastructure.
85 (WebCore::ImageBuffer::platformLayer): This lets the TextureMapper at the ImageBufferData.
86 * platform/graphics/cairo/ImageBufferDataCairo.h:
87 (ImageBufferData): Subclass TexturMapperPlatformLayer where appropriate.
88 * platform/graphics/egl/GLContextEGL.cpp: Added implementation of cairoDevice.
89 * platform/graphics/egl/GLContextEGL.h: Ditto.
90 * platform/graphics/glx/GLContextGLX.cpp: Ditto
91 * platform/graphics/glx/GLContextGLX.h: Ditto.
93 2013-04-11 Anders Carlsson <andersca@apple.com>
95 Implement removing storage area items
96 https://bugs.webkit.org/show_bug.cgi?id=114472
98 Reviewed by Beth Dakin.
100 Export StorageMap::removeItem.
104 2013-04-11 Brendan Long <b.long@cablelabs.com>
106 TextTrackList's .onremovetrack is missing from IDL
107 https://bugs.webkit.org/show_bug.cgi?id=103421
109 Reviewed by Eric Carlson.
111 Fixed test media/track/opera/interfaces/TextTrackList/onremovetrack.html
113 * html/track/TextTrackList.cpp:
114 (TextTrackList::remove):
115 (TextTrackList::scheduleRemoveTrackEvent):
116 * html/track/TextTrackList.h:
118 * html/track/TextTrackList.idl:
120 2013-04-11 Alberto Garcia <agarcia@igalia.com>
122 [BlackBerry] Upstream the filesystem code
123 https://bugs.webkit.org/show_bug.cgi?id=114437
125 Reviewed by Rob Buis.
127 This patch contains contributions from many members of the
128 BlackBerry WebKit team.
130 * platform/blackberry/AsyncFileWriterBlackBerry.cpp: Added.
132 (WebCore::AsyncFileWriterBlackBerry::write):
133 * platform/blackberry/AsyncFileWriterBlackBerry.h: Added.
135 (WTF::BlackBerry::Platform::WebFileWriter):
137 * platform/blackberry/DOMFileSystemBlackBerry.cpp: Added.
139 (WebCore::DOMFileSystemBase::createFileSystemURL):
140 (WebCore::DOMFileSystemBase::crackFileSystemURL):
141 (WebCore::DOMFileSystemBase::supportsToURL):
142 (WebCore::DOMFileSystemBase::isValidType):
143 * platform/blackberry/LocalFileSystemBlackBerry.cpp: Added.
145 (WebCore::fileSystemTypeString):
146 (WebCore::openFileSystem):
147 (WebCore::LocalFileSystem::deleteFileSystem):
148 (WebCore::LocalFileSystem::readFileSystem):
149 (WebCore::LocalFileSystem::requestFileSystem):
150 * platform/blackberry/PlatformAsyncFileSystemCallbacks.cpp: Added.
152 (WebCore::PlatformAsyncFileSystemCallbacks::notifyOpenFileSystem):
153 (WebCore::PlatformAsyncFileSystemCallbacks::notifySucceed):
154 (WebCore::PlatformAsyncFileSystemCallbacks::notifyFail):
155 (WebCore::getFileMetadata):
156 (WebCore::PlatformAsyncFileSystemCallbacks::notifyReadMetadata):
157 (WebCore::PlatformAsyncFileSystemCallbacks::notifyCreateSnapshotFileAndReadMetadata):
158 (WebCore::PlatformAsyncFileSystemCallbacks::notifyReadDirectory):
159 (WebCore::PlatformAsyncFileSystemCallbacks::notifyCreateFileWriter):
160 (WebCore::PlatformAsyncFileSystemCallbacks::createAsyncFileSystem):
161 (WebCore::PlatformAsyncFileSystemCallbacks::createAsyncFileWriter):
162 (WebCore::PlatformAsyncFileSystemCallbacks::deleteMe):
163 * platform/blackberry/PlatformAsyncFileSystemCallbacks.h: Added.
165 * platform/blackberry/PlatformBlob.cpp: Added.
167 (WebCore::PlatformBlob::nextDataItem):
168 * platform/blackberry/PlatformBlob.h: Added.
170 * platform/blackberry/PlatformFileWriterClient.cpp: Added.
172 (WebCore::PlatformFileWriterClient::notifyWrite):
173 (WebCore::PlatformFileWriterClient::notifyTruncate):
174 (WebCore::PlatformFileWriterClient::notifyFail):
175 * platform/blackberry/PlatformFileWriterClient.h: Added.
178 (WTF::WebCore::PlatformFileWriterClient):
179 * platform/blackberry/WorkerAsyncFileSystemBlackBerry.cpp: Added.
181 (WebCore::WorkerAsyncFileSystemBlackBerry::WorkerAsyncFileSystemBlackBerry):
182 (WebCore::WorkerAsyncFileSystemBlackBerry::~WorkerAsyncFileSystemBlackBerry):
183 (WebCore::WorkerAsyncFileSystemBlackBerry::waitForOperationToComplete):
184 (WebCore::WorkerAsyncFileSystemBlackBerry::openFileSystemOnMainThread):
185 (WebCore::WorkerAsyncFileSystemBlackBerry::deleteFileSystemOnMainThread):
186 (WebCore::WorkerAsyncFileSystemBlackBerry::moveOnMainThread):
187 (WebCore::WorkerAsyncFileSystemBlackBerry::copyOnMainThread):
188 (WebCore::WorkerAsyncFileSystemBlackBerry::removeOnMainThread):
189 (WebCore::WorkerAsyncFileSystemBlackBerry::removeRecursivelyOnMainThread):
190 (WebCore::WorkerAsyncFileSystemBlackBerry::readMetadataOnMainThread):
191 (WebCore::WorkerAsyncFileSystemBlackBerry::createFileOnMainThread):
192 (WebCore::WorkerAsyncFileSystemBlackBerry::createDirectoryOnMainThread):
193 (WebCore::WorkerAsyncFileSystemBlackBerry::fileExistsOnMainThread):
194 (WebCore::WorkerAsyncFileSystemBlackBerry::directoryExistsOnMainThread):
195 (WebCore::WorkerAsyncFileSystemBlackBerry::readDirectoryOnMainThread):
196 (WebCore::WorkerAsyncFileSystemBlackBerry::createWriterOnMainThread):
197 (WebCore::WorkerAsyncFileSystemBlackBerry::createSnapshotFileAndReadMetadataOnMainThread):
198 (WebCore::WorkerAsyncFileSystemBlackBerry::openFileSystem):
199 (WebCore::WorkerAsyncFileSystemBlackBerry::deleteFileSystem):
200 (WebCore::WorkerAsyncFileSystemBlackBerry::move):
201 (WebCore::WorkerAsyncFileSystemBlackBerry::copy):
202 (WebCore::WorkerAsyncFileSystemBlackBerry::remove):
203 (WebCore::WorkerAsyncFileSystemBlackBerry::removeRecursively):
204 (WebCore::WorkerAsyncFileSystemBlackBerry::readMetadata):
205 (WebCore::WorkerAsyncFileSystemBlackBerry::createFile):
206 (WebCore::WorkerAsyncFileSystemBlackBerry::createDirectory):
207 (WebCore::WorkerAsyncFileSystemBlackBerry::fileExists):
208 (WebCore::WorkerAsyncFileSystemBlackBerry::directoryExists):
209 (WebCore::WorkerAsyncFileSystemBlackBerry::readDirectory):
210 (WebCore::WorkerAsyncFileSystemBlackBerry::createWriter):
211 (WebCore::WorkerAsyncFileSystemBlackBerry::createSnapshotFileAndReadMetadata):
212 * platform/blackberry/WorkerAsyncFileSystemBlackBerry.h: Added.
214 (WorkerAsyncFileSystemBlackBerry):
215 (WebCore::WorkerAsyncFileSystemBlackBerry::create):
216 * platform/blackberry/WorkerAsyncFileWriterBlackBerry.cpp: Added.
218 (WebCore::WorkerAsyncFileWriterBlackBerry::writeOnMainThread):
219 (WebCore::WorkerAsyncFileWriterBlackBerry::truncateOnMainThread):
220 (WebCore::WorkerAsyncFileWriterBlackBerry::abortOnMainThread):
221 (WebCore::WorkerAsyncFileWriterBlackBerry::write):
222 (WebCore::WorkerAsyncFileWriterBlackBerry::truncate):
223 (WebCore::WorkerAsyncFileWriterBlackBerry::abort):
224 (WebCore::WorkerAsyncFileWriterBlackBerry::waitForOperationToComplete):
225 (WebCore::WorkerAsyncFileWriterBlackBerry::platformWriterClient):
226 * platform/blackberry/WorkerAsyncFileWriterBlackBerry.h: Added.
228 * platform/blackberry/WorkerPlatformAsyncFileSystemCallbacks.cpp: Added.
230 (WebCore::performTaskOnMainThread):
231 (WebCore::postTaskToMainThread):
232 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyStop):
233 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyOpenFileSystem):
234 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifySucceed):
235 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyFail):
236 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyReadMetadata):
237 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyReadDirectory):
238 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyCreateFileWriter):
239 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::createAsyncFileSystem):
240 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::createAsyncFileWriter):
241 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::deleteMe):
242 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::postTaskToWorkerThread):
243 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyOpenFileSystemOnWorkerThread):
244 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifySucceedOnWorkerThread):
245 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyFailOnWorkerThread):
246 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyReadMetadataOnWorkerThread):
247 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyReadDirectoryEntryOnWorkerThread):
248 (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyCreateFileWriterOnWorkerThread):
249 * platform/blackberry/WorkerPlatformAsyncFileSystemCallbacks.h: Added.
251 * platform/blackberry/WorkerPlatformFileWriterClient.cpp: Added.
253 (WebCore::WorkerPlatformFileWriterClient::notifyWriteOnWorkerThread):
254 (WebCore::WorkerPlatformFileWriterClient::notifyFailOnWorkerThread):
255 (WebCore::WorkerPlatformFileWriterClient::notifyTruncateOnWorkerThread):
256 (WebCore::WorkerPlatformFileWriterClient::notifyWrite):
257 (WebCore::WorkerPlatformFileWriterClient::notifyTruncate):
258 (WebCore::WorkerPlatformFileWriterClient::notifyFail):
259 (WebCore::WorkerPlatformFileWriterClient::postTaskToWorkerThreadIfNeeded):
260 * platform/blackberry/WorkerPlatformFileWriterClient.h: Added.
263 (WTF::WebCore::WorkerPlatformFileWriterClient):
265 2013-04-11 Ryosuke Niwa <rniwa@webkit.org>
267 Mac Lion build fix attempt after r148197.
269 * page/scrolling/mac/ScrollingStateNodeMac.mm:
271 2013-04-11 Alexey Proskuryakov <ap@apple.com>
273 <rdar://problem/10416316> [Mac] WebSocket doesn't work with authenticating proxies
274 https://bugs.webkit.org/show_bug.cgi?id=114464
276 Reviewed by Brady Eidson.
278 * platform/mac/WebCoreSystemInterface.h:
279 * platform/mac/WebCoreSystemInterface.mm:
280 Updated for new wkCopyCONNECTProxyResponse signature.
282 * platform/network/cf/SocketStreamHandleCFNet.cpp:
283 (WebCore::SocketStreamHandle::executePACFileURL): Fixed a typo in a comment.
284 (WebCore::SocketStreamHandle::addCONNECTCredentials): Don't crash even if the rest
285 of the fix didn't work (which would be the case on some OS versions).
286 (WebCore::SocketStreamHandle::readStreamCallback): Replaced most breaks with returns,
287 because breaks were confusing in such a huge switch. Changed null proxyResponse
288 to not be treated as authentication success, because it's not. Merged two parts
289 of WaitingForConnect state handling for clarity.
290 (WebCore::SocketStreamHandle::writeStreamCallback): Don't blindly assume that we
291 can start WebSocket handshake after kCFStreamEventCanAcceptBytes. Perhaps it's
292 nothing but a failed CONNECT, and a read callback still needs to send authentication.
293 Without this, establishing connections was flaky. Added a check for Closed state,
294 matching read callback.
296 2013-04-11 Sukolsak Sakshuwong <sukolsak@gmail.com>
298 MutationRecord is not exposed
299 https://bugs.webkit.org/show_bug.cgi?id=114288
301 Reviewed by Darin Adler.
303 Expose MutationRecord on DOMWindow. This patch is copied from a patch
304 by Adam Klein. https://codereview.chromium.org/13861028
306 Test: fast/dom/MutationObserver/mutation-record-constructor.html
308 * page/DOMWindow.idl:
310 2013-04-11 Beth Dakin <bdakin@apple.com>
312 Cannot scroll to footer on a page with overflow:hidden on the body
313 https://bugs.webkit.org/show_bug.cgi?id=114462
315 <rdar://problem/13530042>
317 Reviewed by Simon Fraser.
319 Add a new scenario in which we want to overrideHidden -- whenever we are the
320 mainFrame and there is a header or footer.
322 * page/FrameView.cpp:
323 (WebCore::FrameView::applyOverflowToViewport):
325 2013-04-11 Commit Queue <rniwa@webkit.org>
327 Unreviewed, rolling out r148034, r148052, r148097, and
329 http://trac.webkit.org/changeset/148034
330 http://trac.webkit.org/changeset/148052
331 http://trac.webkit.org/changeset/148097
332 http://trac.webkit.org/changeset/148194
333 https://bugs.webkit.org/show_bug.cgi?id=114463
335 broke mutiresolution favicons, among other things (Requested
336 by thorton on #webkit).
338 * loader/icon/IconDatabase.cpp:
339 (WebCore::IconDatabase::setIconDataForIconURL):
340 * loader/icon/IconDatabase.h:
342 * loader/icon/IconDatabaseBase.h:
343 * loader/icon/IconRecord.cpp:
344 * loader/icon/IconRecord.h:
347 2013-04-11 ChangSeok Oh <changseok.oh@collabora.com>
349 [GTK][AC] Implement GraphicsLayerClutter::moveOrCopyAnimations
350 https://bugs.webkit.org/show_bug.cgi?id=114019
352 Reviewed by Gustavo Noronha Silva.
354 Fill moveOrCopyAnimations that is based on Mac port implementation.
356 Tests: animations/3d/change-transform-in-end-event.html
357 animations/3d/transform-origin-vs-functions.html
358 compositing/animation/state-at-end-event-transform-layer.html
360 * platform/graphics/clutter/GraphicsLayerClutter.cpp:
361 (WebCore::GraphicsLayerClutter::moveOrCopyLayerAnimation):
363 (WebCore::GraphicsLayerClutter::moveOrCopyAnimations):
364 * platform/graphics/clutter/GraphicsLayerClutter.h:
366 2013-04-11 Anders Carlsson <andersca@apple.com>
368 Implement StorageManager::getValues
369 https://bugs.webkit.org/show_bug.cgi?id=114461
371 Reviewed by Beth Dakin.
373 Expose the item hash map.
375 * storage/StorageMap.h:
376 (WebCore::StorageMap::items):
378 2013-04-11 Eli Fidler <efidler@blackberry.com>
380 [BlackBerry] Use the platform list of languages with fonts instead of hardcoding
381 https://bugs.webkit.org/show_bug.cgi?id=114452
383 Reviewed by Rob Buis.
386 Internally reviewed by Jeff Rogers
388 No functional change, but platform font changes won't need a WebKit change
391 * page/blackberry/SettingsBlackBerry.cpp:
392 (WebCore::Settings::initializeDefaultFontFamilies):
394 2013-04-11 Dirk Schulze <krit@webkit.org>
396 [CSS Shaders] Parse parameters descriptor
397 https://bugs.webkit.org/show_bug.cgi?id=114455
399 Reviewed by Dean Jackson.
401 Add support for the 'parameters' descriptor in the filter at-rule to support
402 parameterization of CSS Shaders.
404 https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#custom-filter-parameters
406 Tests: css3/filters/custom-with-at-rule-syntax/parsing-parameters-property-invalid.html
407 css3/filters/custom-with-at-rule-syntax/parsing-parameters-property-valid.html
409 * css/CSSComputedStyleDeclaration.cpp:
410 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
411 * css/CSSParser.cpp: Added 'parameters' property and fail parsing if not inside
413 (WebCore::CSSParser::parseValue):
414 (WebCore::CSSParser::parseFilterRuleParameters): New helper function to verify
418 * css/CSSProperty.cpp:
419 (WebCore::CSSProperty::isInheritedProperty):
420 * css/CSSPropertyNames.in: Added new property name 'parameters'.
421 * css/StyleResolver.cpp:
422 (WebCore::StyleResolver::applyProperty):
424 2013-04-11 Arunprasad Rajkumar <arunprasadr@nds.com>
426 Default Implementation of toString for NPObject shouldn't return NPClass & NPObject address as String
427 https://bugs.webkit.org/show_bug.cgi?id=114450
429 Reviewed by Anders Carlsson.
431 * bridge/c/c_instance.cpp:
432 (JSC::Bindings::CInstance::stringValue):
434 2013-04-11 Robert Hogan <robert@webkit.org>
436 REGRESSION (142152): ensure we skip past out-of-flow objects when detecting whitespace to ignore after leading empty inlines
437 https://bugs.webkit.org/show_bug.cgi?id=114311
439 Reviewed by Emil A Eklund.
441 When we hit an empty inline in line layout and try to detect whether it has any whitespace after it that we ought to ignore, then
442 we need to skip past out-of-flow and floating objects when looking for that whitespace. Failure to do so will result in us
443 adding the width from the first space we encounter to our line width and over-estimating the real width of the line.
445 We're hitting this bug now because we have broadened the category of empty inlines that get lineboxes so we go into line layout
446 and have to deal with them and their subsequent whitespace there. Previously this sort of whitespace would have been simply
447 consumed by |skipLeadingWhitespace|.
449 Test: fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline.html
451 * rendering/RenderBlockLineLayout.cpp:
452 (WebCore::shouldSkipWhitespaceAfterStartObject):
454 2013-04-11 Ryosuke Niwa <rniwa@webkit.org>
456 Autocorrected text doesn't have a marker of type autocorrected
457 https://bugs.webkit.org/show_bug.cgi?id=114337
459 Reviewed by Darin Adler.
461 The bug was caused by markAndReplaceFor's text replacement errornously assuming that there are
462 no other text checking result starting at the same offset. That resulted in us adjusting location
463 offsets of the subsequent results pointing at the replaced text, hit an assertion, and blow up.
465 Fixed the bug by skipping all remaining results for the replaced text since they're no longer
468 Tests: Existing autocorection tests have been updated to assert new behavior.
470 * editing/Editor.cpp:
471 (WebCore::Editor::markAndReplaceFor):
473 2013-04-11 Michelangelo De Simone <michelangelo@webkit.org>
475 [CSS Shaders] Parse the geometry descriptor
476 https://bugs.webkit.org/show_bug.cgi?id=110815
478 Added initial parsing for the "geometry" descriptor, as per specification:
479 https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#geometry
480 This descriptor allows to specify the mesh geometry for custom filters.
482 Reviewed by Dirk Schulze.
484 Tests: css3/filters/custom-with-at-rule-syntax/parsing-geometry-property-invalid.html
485 css3/filters/custom-with-at-rule-syntax/parsing-geometry-property-valid.html
487 * css/CSSComputedStyleDeclaration.cpp:
488 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
490 (WebCore::CSSParser::parseValue):
491 (WebCore::CSSParser::parseGeometry): New method that parses the geometry
495 * css/CSSProperty.cpp:
496 (WebCore::CSSProperty::isInheritedProperty):
497 * css/CSSPropertyNames.in: Added conditional "geometry" property.
498 * css/CSSValueKeywords.in: Added conditional "attached" value keyword; detached
501 2013-04-11 Anders Carlsson <andersca@apple.com>
503 Make StorageAreaMap dispatch session storage events
504 https://bugs.webkit.org/show_bug.cgi?id=114454
506 Reviewed by Beth Dakin.
508 Export storage symbols and headers needed by WebKit2.
511 * WebCore.xcodeproj/project.pbxproj:
513 2013-04-11 Allan Sandfeld Jensen <allan.jensen@digia.com>
515 handleMouseMoveEvent should let hit-testing hit-test scrollbars
516 https://bugs.webkit.org/show_bug.cgi?id=114430
518 Reviewed by Antonio Gomes.
520 Allow hit-testing to hit-test frame scrollbars so handleMouseMoveEvent
521 does not have to do it itself.
523 * page/EventHandler.cpp:
524 (WebCore::EventHandler::handleMouseMoveEvent):
526 2013-04-11 Brian Holt <brian.holt@samsung.com>
528 [Gtk] Combo boxes should be arrow-out-of-able similar to list boxes when caret-browsing is enabled.
529 https://bugs.webkit.org/show_bug.cgi?id=76796
531 Reviewed by Chris Fleizach.
533 When using caret-browsing with the right and left arrows, the
534 behaviour of menuLists should be the same as listBoxes. This means
535 not default-handling the event and passing it up the stack instead.
537 * html/HTMLSelectElement.cpp:
538 (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
540 2013-04-11 Alexey Proskuryakov <ap@apple.com>
542 Remove some ResourceHandle.h includes
543 https://bugs.webkit.org/show_bug.cgi?id=114416
545 Reviewed by Ryosuke Niwa.
547 * loader/CrossOriginAccessControl.h:
548 * loader/CrossOriginPreflightResultCache.h:
549 These files don't need ResourceHandle.h, just ResourceHandleTypes.h.
551 * loader/TextTrackLoader.cpp:
552 * loader/ThreadableLoader.h:
553 * loader/appcache/ApplicationCacheGroup.h:
554 * loader/cache/MemoryCache.h:
555 * loader/mac/ResourceLoaderMac.mm:
557 * platform/network/AuthenticationChallengeBase.cpp:
558 * platform/network/cf/CookieJarCFNet.cpp:
559 * platform/network/cf/ResourceRequestCFNet.cpp:
560 * xml/XSLTProcessorLibxslt.cpp:
561 * xml/parser/XMLDocumentParser.cpp:
562 * xml/parser/XMLDocumentParserLibxml2.cpp:
563 Just straightforward removal of includes.
565 2013-04-04 Allan Sandfeld Jensen <allan.jensen@digia.com>
567 Use CSS4 image-rendering to determing image scaling quality
568 https://bugs.webkit.org/show_bug.cgi?id=113405
570 Reviewed by Simon Fraser.
572 Implement the new CSS4 image-rendering property values.
574 Image scaling now uses low-quality (pixelated) scaling for
575 crisp-edges, pixelated and optimizeSpeed values, and always
576 use high quality (smooth) scaling for -webkit-smooth and
577 optimizeQuality. The latter can be used to disable low quality
578 scaling during CSS animations or live resizing.
580 The new values are protected with a new CSS4_IMAGES feature, but
581 the crisp-edge value has been introduced before to displace the
582 deprecated -webkit-optimize-contrast value, and optimizeSpeed
583 and optimizeQuality values are supported for SVG compatibility.
586 (WebCore::isValidKeywordPropertyAndValue):
587 * css/CSSPrimitiveValueMappings.h:
588 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
589 (WebCore::CSSPrimitiveValue::operator EImageRendering):
590 * css/CSSValueKeywords.in:
591 * rendering/RenderBoxModelObject.cpp:
592 (WebCore::ImageQualityController::shouldPaintAtLowQuality):
593 * rendering/RenderHTMLCanvas.cpp:
594 (WebCore::RenderHTMLCanvas::paintReplaced):
595 * rendering/style/RenderStyleConstants.h:
597 2013-04-11 Adenilson Cavalcanti <cavalcantii@gmail.com>
599 Build fix: use of uninitialized variable in ScrollingStateTree
600 https://bugs.webkit.org/show_bug.cgi?id=114443
602 Reviewed by Anders Carlsson.
604 Initialize pointer to zero before use, fixes build.
605 No new tests, no changes on behavior.
607 * page/scrolling/ScrollingStateTree.cpp:
608 (WebCore::ScrollingStateTree::attachNode):
610 2013-04-11 Dirk Schulze <krit@webkit.org>
612 [CSS Shaders] Parse mix descriptor
613 https://bugs.webkit.org/show_bug.cgi?id=114414
615 Reviewed by Antti Koivisto.
617 Add support for the 'mix' descriptor in the filter at-rule to support blend modes
618 and composite operators in CSS Shaders.
619 Each pixel in the fragment shader will be blended and composited with the
620 backdrop by taking these values into account.
622 https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#custom-filter-mix
624 Tests: css3/filters/custom-with-at-rule-syntax/parsing-mix-property-invalid.html
625 css3/filters/custom-with-at-rule-syntax/parsing-mix-property-valid.html
627 * css/CSSComputedStyleDeclaration.cpp:
628 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
629 * css/CSSParser.cpp: Added 'mix' property and fail parsing if not inside
631 (WebCore::CSSParser::parseValue):
632 (WebCore::CSSParser::parseFilterRuleMix): New helper function to verify
636 * css/CSSProperty.cpp:
637 (WebCore::CSSProperty::isInheritedProperty):
638 * css/CSSPropertyNames.in: Added new property name 'mix'.
639 * css/StyleResolver.cpp:
640 (WebCore::StyleResolver::applyProperty):
642 2013-04-11 Zalan Bujtas <zalan@apple.com>
644 Parent box with background-size auto and gradient image does not get properly repainted when child box is resized.
645 https://bugs.webkit.org/show_bug.cgi?id=114424
647 Reviewed by Antti Koivisto.
649 Initiate full repaint on fill layer, when the image is generated and the background
650 property defines auto size.
651 http://www.w3.org/TR/css3-background/#background-size
652 'If the image has neither an intrinsic width nor an intrinsic height, its size is determined as for 'contain'.'
654 Extended fast/repaint/background-shorthand-with-gradient-and-height-changes.html
655 to cover this case too.
657 * rendering/RenderObject.cpp:
658 (WebCore::mustRepaintFillLayers):
660 2013-04-11 ChangSeok Oh <changseok.oh@collabora.com>
662 [GTK][AC] use a smart pointer for GList and ClutterCanvas
663 https://bugs.webkit.org/show_bug.cgi?id=114057
665 Reviewed by Gustavo Noronha Silva.
667 We can make simple code & prevent possible memory leak by using a proper smart pointer.
668 Especially if we get children by clutter_actor_get_children, we should free it after using.
670 No functionality changed.
672 * platform/graphics/clutter/GraphicsLayerActor.cpp:
673 (graphicsLayerActorUpdateTexture):
674 (graphicsLayerActorRemoveAll):
676 2013-04-11 Arvid Nilsson <anilsson@rim.com>
678 [BlackBerry][CSS Filters] Blur filter fails to recompute blur size when layer size changes
679 https://bugs.webkit.org/show_bug.cgi?id=114272
681 Reviewed by Rob Buis.
683 Blur appeared blocky or pixelated when surface changed size after
684 creating the filter actions. The initial image size was used to
685 determine the blur size (expressed in texture coordinate system).
686 Fixed by recomputing the blur size when the surface size changes, using
687 a new Uniform1f subclass that can use a functor to compute the uniform
690 This fixes css3/filters/effect-blur-hw.html. This can only be verified
691 by manual inspection because the BlackBerry port is not currently using
696 * platform/graphics/blackberry/LayerFilterRenderer.cpp:
699 (WebCore::SurfaceFunctor::SurfaceFunctor):
700 (InverseSurfaceWidth):
701 (WebCore::InverseSurfaceWidth::InverseSurfaceWidth):
702 (WebCore::InverseSurfaceWidth::operator()):
703 (InverseSurfaceHeight):
704 (WebCore::InverseSurfaceHeight::InverseSurfaceHeight):
705 (WebCore::LayerFilterRenderer::actionsForOperations):
706 * platform/graphics/blackberry/LayerFilterRenderer.h:
709 (Uniform1fWithFunctor):
710 (WebCore::Uniform1fWithFunctor::create):
711 (WebCore::Uniform1fWithFunctor::Uniform1fWithFunctor):
712 (WebCore::Uniform1fWithFunctor::apply):
713 (WebCore::Uniform1f::createWithFunctor):
715 2013-04-11 Arvid Nilsson <anilsson@rim.com>
717 [BlackBerry] Accelerated compositing debug rectangle incorrectly drawn for layers with surfaces
718 https://bugs.webkit.org/show_bug.cgi?id=114275
720 Reviewed by Carlos Garcia Campos.
722 The drawDebugBorder method was updated to mirror the logic in
723 compositeLayersRecursive, i.e. if we're compositing a surface to the
724 screen, use the transformed bounds stored in the surface. The bounds
725 stored in the layer should only be used when drawing the layer to the
728 Speaking of which, also update the code to skip border drawing when
729 drawing a layer to a surface. Drawing the borders inside the surface
730 would only result in messing up the surface contents, especially when
731 CSS filters like blur were the reason for having a surface in the first
732 place - the border would be blurred and hard to discern.
734 Only manually testable, the debug border is disabled during layout
739 * platform/graphics/blackberry/LayerRenderer.cpp:
740 (WebCore::LayerRenderer::drawDebugBorder):
741 * platform/graphics/blackberry/LayerRendererSurface.cpp:
742 (WebCore::LayerRendererSurface::drawRect):
743 (WebCore::LayerRendererSurface::transformedBounds): Added.
745 * platform/graphics/blackberry/LayerRendererSurface.h:
746 (LayerRendererSurface):
748 2013-04-11 Arvid Nilsson <anilsson@rim.com>
750 [BlackBerry] Compiler warning in LayerWebKitThread.cpp
751 https://bugs.webkit.org/show_bug.cgi?id=114277
753 Reviewed by Carlos Garcia Campos.
755 All the relevant WTF::Vector APIs use size_t, storing the position in
756 an int resulted in a compiler warning. Fixed by switching to size_t.
758 No change in behavior, no new tests.
762 * platform/graphics/blackberry/LayerWebKitThread.cpp:
763 (WebCore::LayerWebKitThread::remove):
764 (WebCore::LayerWebKitThread::replaceSublayer):
766 2013-04-11 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
768 [CoordinatedGraphics] Use ScrollingStateTree to handle fixed elements positioning while scrolling
769 https://bugs.webkit.org/show_bug.cgi?id=114353
771 Reviewed by Noam Rosenthal.
773 ScrollingCoordinatorCoordinatedGraphics should implement threaded scrolling interface and
774 re-use threaded scrolling approach (ScrollingStateTree and ViewportConstraints) to handle
775 fixed/sticky elements positioning while scrolling. The rationals are below.
777 Before the change ScrollingCoordinatorCoordinatedGraphics was implementing Chromium-specific
778 interface which is going to be removed eventually as there is no ScrollingCoordinatorChromium
781 Tested by existing manual tests (fixed-position.html for example.
785 Included ScrollingStateTree files.
787 * page/scrolling/ScrollingStateFixedNode.cpp:
788 * page/scrolling/ScrollingStateFixedNode.h:
789 * page/scrolling/ScrollingStateNode.cpp:
790 * page/scrolling/ScrollingStateNode.h:
791 * page/scrolling/ScrollingStateScrollingNode.cpp:
792 * page/scrolling/ScrollingStateScrollingNode.h:
793 * page/scrolling/ScrollingStateStickyNode.cpp:
794 * page/scrolling/ScrollingStateStickyNode.h:
795 * page/scrolling/ScrollingStateTree.cpp:
796 * page/scrolling/ScrollingStateTree.h:
797 Removed ENABLE(THREADED_SCROLLING) code guards.
799 * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
800 (WebCore::ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics):
801 (WebCore::ScrollingCoordinatorCoordinatedGraphics::~ScrollingCoordinatorCoordinatedGraphics):
803 (WebCore::ScrollingCoordinatorCoordinatedGraphics::attachToStateTree):
804 (WebCore::ScrollingCoordinatorCoordinatedGraphics::detachFromStateTree):
805 (WebCore::ScrollingCoordinatorCoordinatedGraphics::clearStateTree):
806 (WebCore::ScrollingCoordinatorCoordinatedGraphics::updateViewportConstrainedNode):
807 * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
808 ScrollingCoordinatorCoordinatedGraphics is using threaded scrolling approach to handle fixed
809 elements positioning while scrolling.
812 (ScrollingCoordinatorCoordinatedGraphics):
813 * page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp: Added.
815 (WebCore::ScrollingStateNode::platformScrollLayer):
816 (WebCore::ScrollingStateNode::setScrollPlatformLayer):
817 (WebCore::ScrollingStateNode::setScrollLayer):
818 * page/scrolling/coordinatedgraphics/ScrollingStateScrollingNodeCoordinatedGraphics.cpp: Added.
820 (WebCore::ScrollingStateScrollingNode::counterScrollingPlatformLayer):
821 (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
823 2013-04-11 Allan Sandfeld Jensen <allan.jensen@digia.com>
825 [Qt] EventHandler should handle Space and BackSpace
826 https://bugs.webkit.org/show_bug.cgi?id=114428
828 Reviewed by Jocelyn Turcotte.
830 Enable default space-handling for Qt.
832 * page/EventHandler.cpp:
834 2013-04-11 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
836 IconDatabase: Simplify boolean logic in assertion.
837 https://bugs.webkit.org/show_bug.cgi?id=114425
839 Reviewed by Andreas Kling.
841 Follow-up to r148097; drop the overzealous use of !! to turn a
842 PassRefPtr into a boolean.
844 * loader/icon/IconDatabase.cpp:
845 (WebCore::IconDatabase::updateIconRecord):
847 2013-04-11 Arvid Nilsson <anilsson@rim.com>
849 [BlackBerry] LayerTexture refactoring
850 https://bugs.webkit.org/show_bug.cgi?id=114276
852 Reviewed by Carlos Garcia Campos.
854 Remove the GpuHandle and HostType typedefs from LayerTexture, they
855 don't make any sense now that we removed the Skia code paths. With Skia
856 they used to be an OpenGL texture ID and an SkBitmap respectively, but
857 now it's just BlackBerry::Platform::Graphics::Buffer all around.
859 This allows us to rename textureId() into buffer() which is more to the
860 point. The texture ID concept is now up for grabs and can be used to
861 consolidate all the various code for extracting an OpenGL texture from
862 a BlackBerry::Platform::Graphics::Buffer. This opportunity is seized in
863 LayerTexture::platformTexture(), a name which makes more sense than
864 textureId() for anyone familiar with the GraphicsContext3D code. We can
865 also leverage the Platform3DObject typedef to avoid including gl2.h.
867 The vertex attribute state was getting trampled when interacting with
868 BlackBerry::Platform::Graphics in the LayerFilterRenderer. Some
869 additional GL state save/restore incantations when accessing the OpenGL
870 texture for a LayerTexture in the new LayerTexture::platformTexture()
871 method fixes various CSS Filters test cases.
873 Since we removed the Skia integration from LayerTiler, nobody cares
874 about the dirty rect, tile rect or opaqueness of the tile contents. So
875 remove those parameters from the updateContents code path.
877 No change in behavior except for fixing CSS Filters tests like
878 css3/filters/effect-blur-hw.html. This can only be verified by manually
879 looking at the tests, we don't have pixel test support to catch this
884 * platform/graphics/blackberry/LayerCompositingThread.cpp:
885 (WebCore::LayerCompositingThread::drawSurface):
886 * platform/graphics/blackberry/LayerFilterRenderer.cpp:
887 (WebCore::LayerFilterRenderer::ping):
888 (WebCore::LayerFilterRenderer::pong):
889 (WebCore::LayerFilterRenderer::pushSnapshot):
890 (WebCore::LayerFilterRenderer::popSnapshot):
891 (WebCore::LayerFilterRenderer::applyActions):
892 * platform/graphics/blackberry/LayerRenderer.cpp:
893 (WebCore::LayerRenderer::useSurface):
894 * platform/graphics/blackberry/LayerTexture.cpp:
895 (WebCore::LayerTexture::LayerTexture):
896 (WebCore::LayerTexture::updateContents):
897 (WebCore::LayerTexture::setContentsToColor):
898 (WebCore::LayerTexture::protect):
899 (WebCore::LayerTexture::platformTexture):
901 * platform/graphics/blackberry/LayerTexture.h:
902 (WebCore::LayerTexture::isDirty):
903 (WebCore::LayerTexture::buffer):
905 (WebCore::LayerTexture::setBuffer):
906 * platform/graphics/blackberry/LayerTile.cpp:
907 (WebCore::LayerTile::setContents):
908 (WebCore::LayerTile::updateContents):
909 * platform/graphics/blackberry/LayerTile.h:
910 (WebCore::LayerTile::hasTexture):
912 * platform/graphics/blackberry/LayerTiler.cpp:
913 (WebCore::LayerTiler::updateTextureContentsIfNeeded):
914 (WebCore::LayerTiler::uploadTexturesIfNeeded):
915 (WebCore::LayerTiler::performTileJob):
916 (WebCore::LayerTiler::drawTile):
917 * platform/graphics/blackberry/LayerTiler.h:
918 (WebCore::LayerTiler::TextureJob::TextureJob):
919 (WebCore::LayerTiler::TextureJob::setContents):
920 (WebCore::LayerTiler::TextureJob::updateContents):
923 * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
924 (WebCore::TextureCacheCompositingThread::createBuffer):
925 (WebCore::TextureCacheCompositingThread::collectGarbage):
926 (WebCore::TextureCacheCompositingThread::install):
927 (WebCore::TextureCacheCompositingThread::resizeTexture):
928 (WebCore::TextureCacheCompositingThread::evict):
929 (WebCore::TextureCacheCompositingThread::textureForContents):
930 (WebCore::TextureCacheCompositingThread::updateContents):
931 * platform/graphics/blackberry/TextureCacheCompositingThread.h:
932 (TextureCacheCompositingThread):
933 (WebCore::TextureCacheCompositingThread::ZombieTexture::ZombieTexture):
936 2013-04-11 Alberto Garcia <agarcia@igalia.com>
938 [BlackBerry] RenderThemeBlackBerry: upstream missing code
939 https://bugs.webkit.org/show_bug.cgi?id=114343
941 Reviewed by Xan Lopez.
943 Add implementations of sliderTickSize() and
944 sliderTickOffsetFromTrackCenter(), as well as a missing header.
946 * platform/blackberry/RenderThemeBlackBerry.cpp:
948 (WebCore::RenderThemeBlackBerry::sliderTickSize):
949 (WebCore::RenderThemeBlackBerry::sliderTickOffsetFromTrackCenter):
950 * platform/blackberry/RenderThemeBlackBerry.h:
951 (RenderThemeBlackBerry):
953 2013-04-11 Allan Sandfeld Jensen <allan.jensen@digia.com>
955 HitTestRequest::AllowFrameScrollbars does not test main frame scrollbar
956 https://bugs.webkit.org/show_bug.cgi?id=112563
958 Reviewed by Antonio Gomes.
960 Move the frame scrollbar testing from RenderPart to RenderView, so that it is
961 tested by all frame and not just child frames. At the same time remove the
962 main frame test from the one current callsite using the option.
964 Tested by fast/events/touch/gesture/gesture-scrollbar.html.
966 * page/EventHandler.cpp:
967 (WebCore::EventHandler::handleGestureEvent):
968 * rendering/RenderPart.cpp:
969 (WebCore::RenderPart::nodeAtPoint):
970 * rendering/RenderView.cpp:
971 (WebCore::RenderView::hitTest):
973 2013-04-11 Rune Lillesveen <rune@opera.com>
975 Incorrect evaluation of resolution media queries
976 https://bugs.webkit.org/show_bug.cgi?id=114029
978 Reviewed by Kenneth Rohde Christiansen.
980 The implementation used the physical resolution to evaluate the
981 resolution media features. Changed to use the actual CSS resolution,
982 also known as the device-pixel-ratio, instead. Unified the code for
983 evaluating the resolution and device-pixel-ratio media features.
985 No new tests, covered by existing tests.
988 * css/CSSPrimitiveValue.h:
989 (WebCore::CSSPrimitiveValue::isResolution):
990 * css/MediaQueryEvaluator.cpp:
991 (WebCore::evalResolution):
992 (WebCore::device_pixel_ratioMediaFeatureEval):
993 (WebCore::resolutionMediaFeatureEval):
1000 * testing/InternalSettings.cpp:
1001 (WebCore::InternalSettings::Backup::Backup):
1002 (WebCore::InternalSettings::Backup::restoreTo):
1003 * testing/InternalSettings.h:
1006 * testing/InternalSettings.idl:
1008 2013-04-11 Carlos Garcia Campos <cgarcia@igalia.com>
1010 FrameLoaderClient::assignIdentifierToInitialRequest() not called for the main resource when loaded from the memory cache
1011 https://bugs.webkit.org/show_bug.cgi?id=112418
1013 Reviewed by Darin Adler.
1015 When the main resource is loaded from the memory cache the
1016 response is not added to the ResponseVector of the document
1017 loader, so that when committing the provisional load the remaining
1018 delegate messages are not called because the ResponseVector of the
1019 document loader is empty. When the main resource is loaded from
1020 the memory cache, there's no resource loader, and the client is
1021 notified about the response received using
1022 ResourceLoadNotifier::dispatchDidReceiveResponse() directly
1023 instead of ResourceLoadNotifier::didReceiveResponse() which is the
1024 one adding the response to the ResponseVector of the document
1025 loader. So, the problem can be fixed by adding the response to the
1026 ResponseVector before calling dispatchDidReceiveResponse() when
1027 loading the main resource without a resource loade
1029 Test: loader/go-back-cached-main-resource.html
1031 * loader/DocumentLoader.cpp:
1032 (WebCore::DocumentLoader::responseReceived):
1034 2013-04-10 Alexey Proskuryakov <ap@apple.com>
1036 Remove some includes of CachedImage.h
1037 https://bugs.webkit.org/show_bug.cgi?id=114411
1039 Reviewed by Dan Bernstein.
1041 * css/CSSCrossfadeValue.h: Initializing CachedResourceHandle with 0 requires a
1042 definition of a class it holds, but default construction does not.
1044 * rendering/RenderImageResource.cpp:
1045 * rendering/RenderImageResource.h:
1046 Moved definitions of virtual functions to a .cpp file. There is no win from having
1047 them inline, and now we don't need CachedImage.h in the header.
1049 * bindings/js/JSNodeCustom.cpp:
1050 * dom/Clipboard.cpp:
1051 (WebCore::Clipboard::Clipboard):
1052 * platform/mac/ClipboardMac.h:
1053 * rendering/InlineFlowBox.cpp:
1054 * rendering/RenderBox.cpp:
1055 * rendering/RenderListItem.cpp:
1056 * rendering/RenderListMarker.cpp:
1057 * rendering/RenderTableCol.cpp:
1058 * rendering/RenderTableRow.cpp:
1059 * rendering/RenderTableSection.cpp:
1060 * svg/graphics/SVGImageCache.cpp:
1061 Removed unnecessary includes.
1063 * platform/mac/PasteboardMac.mm:
1064 * rendering/RenderSnapshottedPlugIn.cpp:
1065 Added ones where they are now necessary.
1067 2013-04-10 No'am Rosenthal <noam@webkit.org>
1069 Allow direct compositing of background images
1070 https://bugs.webkit.org/show_bug.cgi?id=108203
1072 Reviewed by Simon Fraser.
1074 Use setContentsToImage for background images, if the GraphicsLayer has only a background
1075 bitmap image and nothing else. Compute the contentsRect/contentsTileRect from the box model.
1076 Added new properties to GraphicsLayer, contentsTilePhase and contentsTileSize, which controls the "single tile rect",
1077 which allows us to compute the pattern-space transform of a tile, thus allowing background-size
1078 and other characteristics of background images.
1080 This feature is explicitly disabled when there is any composition with a background color or if
1081 there are several background images, as in that case having a single backing store has some
1082 advantages over directly compositing in hardware.
1084 Currently, this feature is disabled for all ports, allowing ports to implement their backend
1085 and decide when to enable it.
1087 Note that RenderBoxModelObject::getGeometryForBackgroundImage crops the contents rect to the
1088 area that contains the tiles, which allows us to assume full tiling in GraphicsLayer.
1089 In this way contentsTileSize/Phase is equivalent to GraphicsContext::drawTiledImage.
1091 Tests: compositing/patterns/direct-pattern-compositing-add-text.html
1092 compositing/patterns/direct-pattern-compositing-change.html
1093 compositing/patterns/direct-pattern-compositing-contain.html
1094 compositing/patterns/direct-pattern-compositing-cover.html
1095 compositing/patterns/direct-pattern-compositing-load.html
1096 compositing/patterns/direct-pattern-compositing-padding.html
1097 compositing/patterns/direct-pattern-compositing-position.html
1098 compositing/patterns/direct-pattern-compositing-rotation.html
1099 compositing/patterns/direct-pattern-compositing-size.html
1100 compositing/patterns/direct-pattern-compositing.html
1102 * platform/graphics/GraphicsLayer.h:
1104 (WebCore::GraphicsLayer::setContentsTileSize):
1105 (WebCore::GraphicsLayer::setContentsTilePhase):
1106 (WebCore::GraphicsLayer::contentsTileSize):
1107 (WebCore::GraphicsLayer::contentsTilePhase):
1108 (WebCore::GraphicsLayer::supportsContentsTiling):
1109 Add a contentsTileRect property that enables tile-repeat of background images.
1111 * rendering/RenderBox.cpp:
1112 (WebCore::RenderBox::imageChanged):
1113 Pass background image changes to the layer backing.
1115 * rendering/RenderBoxModelObject.cpp:
1116 * rendering/RenderBoxModelObject.h:
1117 (WebCore::RenderBoxModelObject::getGeometryForBackgroundImage):
1118 Expose a function that performs the geometry calculations needed to determine
1119 the tileRect for a background image. This function is also responsible
1120 for cropping the contentsRect to fit the area that is drawn into.
1122 * rendering/RenderLayerBacking.h:
1123 * rendering/RenderLayerBacking.cpp:
1124 (WebCore::RenderLayerBacking::contentChanged):
1125 (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
1126 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1127 (WebCore::RenderLayerBacking::updateDirectlyCompositedContents):
1128 (WebCore::RenderLayerBacking::resetContentsRect):
1129 (WebCore::hasBoxDecorationsOrBackgroundImage):
1130 (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor):
1131 (WebCore::canCreateTiledImage):
1132 (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
1133 (WebCore::backgroundRectForBox):
1134 Allow background images to be directly composited if conditions allow (see bug description).
1136 2013-04-10 Patrick Gansterer <paroga@webkit.org>
1138 Replace ENABLE_LEGACY_WEB_AUDIO preprocessor statements in IDL files with Conditional attribute
1139 https://bugs.webkit.org/show_bug.cgi?id=114351
1141 Reviewed by Ryosuke Niwa.
1143 The Conditional attribute does not need a preprocessor, which is source of much pain on native windows.
1145 * Modules/webaudio/AudioBufferSourceNode.idl:
1146 * Modules/webaudio/AudioContext.idl:
1147 * Modules/webaudio/AudioParam.idl:
1148 * Modules/webaudio/OscillatorNode.idl:
1150 2013-04-10 Patrick Gansterer <paroga@webkit.org>
1152 Replace ENABLE_DIRECTORY_UPLOAD preprocessor statements in IDL files with Conditional attribute
1153 https://bugs.webkit.org/show_bug.cgi?id=114350
1155 Reviewed by Ryosuke Niwa.
1157 The Conditional attribute does not need a preprocessor, which is source of much pain on native windows.
1161 2013-04-10 Ryosuke Niwa <rniwa@webkit.org>
1163 Cleanup local variables in Editor::markAndReplaceFor
1164 https://bugs.webkit.org/show_bug.cgi?id=114383
1166 Reviewed by Enrica Casucci.
1168 Added resultEndLocation, which is the sum of resultLocation and resultLength.
1170 Also replaced ambiguousBoundaryOffset by useAmbiguousBoundaryOffset since the ambiguous offset is always
1171 selectionOffset -1 to avoid the extra house keeping and obnoxious -1 check.
1173 * editing/Editor.cpp:
1174 (WebCore::Editor::markAndReplaceFor):
1176 2013-04-10 Benjamin Poulain <bpoulain@apple.com>
1178 Mass remove all the empty directories
1180 Rubberstamped by Ryosuke Niwa.
1182 * Modules/intents: Removed.
1183 * Modules/protocolhandler: Removed.
1184 * Modules/speech/mac: Removed.
1185 * accessibility/efl: Removed.
1186 * accessibility/gtk: Removed.
1187 * bridge/jni/jsc: Removed.
1188 * editing/android: Removed.
1189 * editing/gtk: Removed.
1190 * history/android: Removed.
1191 * page/android: Removed.
1192 * platform/android: Removed.
1193 * platform/clutter: Removed.
1194 * platform/graphics/blackberry/skia: Removed.
1195 * platform/graphics/harfbuzz/ng: Removed.
1196 * platform/graphics/pango: Removed.
1197 * platform/image-decoders/cg: Removed.
1198 * platform/image-decoders/qt: Removed.
1199 * platform/network/android: Removed.
1200 * platform/network/soup/cache/webkit: Removed.
1201 * platform/text/android: Removed.
1202 * platform/text/wince: Removed.
1203 * platform/track: Removed.
1205 2013-04-10 Simon Fraser <simon.fraser@apple.com>
1207 Log when the animation timer fires
1208 https://bugs.webkit.org/show_bug.cgi?id=114393
1210 Reviewed by Dean Jackson.
1212 Logging to the Animations log channel when the updateAnimationTimer
1213 fires is useful, because it indicates whether we're running
1214 software animations.
1216 * page/animation/AnimationController.cpp:
1217 (WebCore::AnimationControllerPrivate::updateAnimationTimer):
1219 2013-04-10 Beth Dakin <bdakin@apple.com>
1221 Inspector highlights are offset when the WKView has a header
1222 https://bugs.webkit.org/show_bug.cgi?id=114389
1224 <rdar://problem/13522434>
1226 Reviewed by Sam Weinig.
1228 rootViewToContents() and contentsToRootView() need to factor in the
1229 headerHeight(), much like windowToContents() and contentsToWindow() do already.
1230 * platform/ScrollView.cpp:
1231 (WebCore::ScrollView::rootViewToContents):
1232 (WebCore::ScrollView::contentsToRootView):
1234 2013-04-10 Simon Fraser <simon.fraser@apple.com>
1236 Flesh out the Animations logging
1237 https://bugs.webkit.org/show_bug.cgi?id=114388
1239 Reviewed by Dean Jackson.
1241 Log state changes and transition/animation creation and destruction
1242 to the Animations log channel.
1244 * page/animation/AnimationBase.cpp:
1245 (WebCore::nameForState):
1246 (WebCore::AnimationBase::updateStateMachine):
1247 (WebCore::AnimationBase::fireAnimationEventsIfNeeded):
1248 (WebCore::AnimationBase::goIntoEndingOrLoopingState):
1249 (WebCore::AnimationBase::freezeAtTime):
1250 * page/animation/CompositeAnimation.cpp:
1251 (WebCore::CompositeAnimation::updateTransitions):
1252 (WebCore::CompositeAnimation::updateKeyframeAnimations):
1253 * page/animation/KeyframeAnimation.h:
1254 (WebCore::KeyframeAnimation::keyframes):
1255 (KeyframeAnimation):
1257 2013-04-10 Alexey Proskuryakov <ap@apple.com>
1259 <rdar://problem/13047266> External XML entities are not loaded with modern libxml2
1260 https://bugs.webkit.org/show_bug.cgi?id=114377
1262 Reviewed by Darin Adler.
1264 Covered by http/tests/security/xss-DENIED-xml-external-entity.xhtml when using
1267 * xml/parser/XMLDocumentParserLibxml2.cpp:
1268 (WebCore::switchToUTF16): Added a FIXME with an idea for improvement.
1269 (WebCore::XMLParserContext::createStringParser): Apply XML_PARSE_NOENT in a non-hacky
1270 way, so that the new libxml2 check doesn't fail.
1271 (WebCore::XMLParserContext::createMemoryParser): Updated an unhelpful and incorrect
1272 comment (XML_PARSE_NODICT actually means "Do not reuse the context dictionary").
1274 2013-04-10 Eric Carlson <eric.carlson@apple.com>
1276 [Mac] in-band tracks sometimes not recognized
1277 https://bugs.webkit.org/show_bug.cgi?id=114380
1279 Reviewed by Jer Noble.
1281 No new tests, covered by existing in-band tests.
1283 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1284 (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Don't call selectMediaOption,
1285 availableMediaCharacteristicsWithMediaSelectionOptions is unlikely to be loaded at this time.
1286 (WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks): Disable automatic text track
1288 (WebCore::assetMetadataKeyNames): Watch for the status of availableMediaCharacteristicsWithMediaSelectionOptions
1291 2013-04-10 Hans Muller <hmuller@adobe.com>
1293 [CSS Exclusions] Zoom causes shape-inside to fail when shape-padding is specified
1294 https://bugs.webkit.org/show_bug.cgi?id=113730
1296 Reviewed by Dirk Schulze.
1298 Snap computed margin and polygon boundaries to the LayoutUnit grid to ensure
1299 that they fall within the shape's LayoutUnit bounding box.
1301 Test: fast/exclusions/shape-inside/shape-inside-polygon-zoom.html
1303 * rendering/ExclusionPolygon.cpp:
1304 (WebCore::snapVerticesToLayoutUnitGrid): Convert the FloatPoint coordinates to LayoutUnits and then back to floats.
1305 (WebCore::computeShapePaddingBounds): Now calls snapVerticesToLayoutUnitGrid() before creating a FloatPolygon.
1306 (WebCore::computeShapeMarginBounds): Ditto.
1308 2013-04-10 Csaba Osztrogonác <ossy@webkit.org>
1310 One more unreviewed buildfix after r148123.
1312 * platform/graphics/filters/CustomFilterMeshGenerator.h:
1314 2013-04-10 Beth Dakin <bdakin@apple.com>
1316 FindBanner matches are offset when the WKView has a header or footer
1317 https://bugs.webkit.org/show_bug.cgi?id=114314
1319 <rdar://problem/13522434>
1321 Reviewed by Simon Fraser.
1323 There were already a few places in the code where we needed to adjust the
1324 scrollOffset() to pretend that (0,0) is that the top of the Document rather than
1325 the top of the header. To fix the FindBanner issues, we need to know that version
1326 of the offset in a few more places, so I added a function on ScrollView to fetch
1327 it called scrollOffsetRelativeToDocument().
1329 New function subtracts out the headerHeight() to treat the top of
1330 the document as (0,0).
1332 * platform/ScrollView.cpp:
1333 (WebCore::ScrollView::scrollOffsetRelativeToDocument):
1335 Use scrollOffsetRelativeToDocument() where we were previously making this
1336 calculation. Also re-name an inaccurately named variable where we are actually
1337 converting FROM a document offset to a ScrollableArea offset.
1338 (WebCore::ScrollView::windowToContents):
1339 * platform/ScrollView.h:
1342 getRectToExpose needs to know about the actual visibleContentRect and the
1343 visibleContentRect that is relative to the Document. So this
1344 patch adds a new parameter to getRectToExpose for that purpose.
1345 * rendering/RenderLayer.cpp:
1346 (WebCore::RenderLayer::scrollRectToVisible):
1347 (WebCore::RenderLayer::getRectToExpose):
1348 * rendering/RenderLayer.h:
1350 2013-04-10 Chris Fleizach <cfleizach@apple.com>
1352 when ARIA button contains a link, label text is ignored (affects main buttons on m.facebook.com)
1353 https://bugs.webkit.org/show_bug.cgi?id=113906
1355 Reviewed by Tim Horton.
1357 If an element does not expose any children, then it's safe to include all of its sub children when determining
1359 The bug is that all elements were ignoring focusable elements (like <a>) when determining visible children text
1361 Test: accessibility/link-inside-button-accessible-text.html
1363 * accessibility/AccessibilityNodeObject.cpp:
1364 (WebCore::shouldUseAccessiblityObjectInnerText):
1365 * accessibility/AccessibilityNodeObject.h:
1366 (AccessibilityNodeObject):
1367 * accessibility/AccessibilityObject.h:
1368 (WebCore::AccessibilityObject::isDescendantOfBarrenParent):
1369 (AccessibilityObject):
1371 2013-04-10 Chris Fleizach <cfleizach@apple.com>
1373 AX: Make sure all AX methods called from outside call prepareAccessibility
1374 https://bugs.webkit.org/show_bug.cgi?id=113818
1376 Reviewed by Darin Adler.
1378 Make sure any calls that can be made from outside WebCore are protected with the
1379 prepareAccessibility method.
1381 * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
1382 (-[WebAccessibilityObjectWrapper accessibilityMathRootIndexObject]):
1383 (-[WebAccessibilityObjectWrapper accessibilityMathRadicandObject]):
1384 (-[WebAccessibilityObjectWrapper accessibilityMathNumeratorObject]):
1385 (-[WebAccessibilityObjectWrapper accessibilityMathDenominatorObject]):
1386 (-[WebAccessibilityObjectWrapper accessibilityMathBaseObject]):
1387 (-[WebAccessibilityObjectWrapper accessibilityMathSubscriptObject]):
1388 (-[WebAccessibilityObjectWrapper accessibilityMathSuperscriptObject]):
1389 (-[WebAccessibilityObjectWrapper accessibilityMathUnderObject]):
1390 (-[WebAccessibilityObjectWrapper accessibilityMathOverObject]):
1391 (-[WebAccessibilityObjectWrapper accessibilityMathFencedOpenString]):
1392 (-[WebAccessibilityObjectWrapper accessibilityMathFencedCloseString]):
1393 (-[WebAccessibilityObjectWrapper accessibilityIsMathTopObject]):
1394 (-[WebAccessibilityObjectWrapper accessibilityMathType]):
1396 2013-04-10 Csaba Osztrogonác <ossy@webkit.org>
1398 Unreviewed buildfix after r148123.
1400 * inspector/InspectorInstrumentation.h:
1403 2013-04-10 Xabier Rodriguez Calvar <calvaris@igalia.com>
1405 Clicking on the volume slider of HTML5 elements is pausing sometimes
1406 https://bugs.webkit.org/show_bug.cgi?id=112548
1408 Reviewed by Eric Carlson.
1410 Test: media/click-volume-bar-not-pausing.html
1412 * html/shadow/MediaControlElementTypes.cpp:
1413 (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
1414 Calling the setDefaultHandled() method on the event prevents it
1415 from being incorrectly propagated from the volume button up to the
1418 2013-04-10 Arvid Nilsson <anilsson@rim.com>
1420 [BlackBerry] Rename BlackBerry specific Texture class
1421 https://bugs.webkit.org/show_bug.cgi?id=95781
1423 Reviewed by Rob Buis.
1425 Texture was a bit too generic and prone to name conflicts. Renamed it
1428 No change in behavior, no new tests.
1432 * PlatformBlackBerry.cmake:
1433 * platform/graphics/blackberry/LayerCompositingThread.cpp:
1434 (WebCore::LayerCompositingThread::drawSurface):
1435 (WebCore::LayerCompositingThread::contentsTexture):
1436 * platform/graphics/blackberry/LayerCompositingThread.h:
1437 (LayerCompositingThread):
1438 * platform/graphics/blackberry/LayerCompositingThreadClient.h:
1440 (WebCore::LayerCompositingThreadClient::contentsTexture):
1441 * platform/graphics/blackberry/LayerFilterRenderer.cpp:
1442 (WebCore::LayerFilterRenderer::applyActions):
1443 * platform/graphics/blackberry/LayerFilterRenderer.h:
1444 (LayerFilterRenderer):
1445 * platform/graphics/blackberry/LayerRendererSurface.h:
1446 (WebCore::LayerRendererSurface::texture):
1447 (LayerRendererSurface):
1448 * platform/graphics/blackberry/LayerTexture.cpp: Renamed from Source/WebCore/platform/graphics/blackberry/Texture.cpp.
1450 (WebCore::LayerTexture::LayerTexture):
1451 (WebCore::LayerTexture::~LayerTexture):
1452 (WebCore::LayerTexture::updateContents):
1453 (WebCore::LayerTexture::setContentsToColor):
1454 (WebCore::LayerTexture::protect):
1455 * platform/graphics/blackberry/LayerTexture.h: Renamed from Source/WebCore/platform/graphics/blackberry/Texture.h.
1458 (WebCore::LayerTexture::create):
1459 (WebCore::LayerTexture::textureId):
1460 (WebCore::LayerTexture::isDirty):
1461 (WebCore::LayerTexture::hasTexture):
1462 (WebCore::LayerTexture::isColor):
1463 (WebCore::LayerTexture::isOpaque):
1464 (WebCore::LayerTexture::isProtected):
1465 (WebCore::LayerTexture::protect):
1466 (WebCore::LayerTexture::unprotect):
1467 (WebCore::LayerTexture::size):
1468 (WebCore::LayerTexture::width):
1469 (WebCore::LayerTexture::height):
1470 (WebCore::LayerTexture::bytesPerPixel):
1471 (WebCore::LayerTexture::sizeInBytes):
1472 (WebCore::LayerTexture::setTextureId):
1473 (WebCore::LayerTexture::setSize):
1474 * platform/graphics/blackberry/LayerTile.cpp:
1475 (WebCore::LayerTile::setContents):
1476 (WebCore::LayerTile::updateContents):
1477 (WebCore::LayerTile::setTexture):
1478 * platform/graphics/blackberry/LayerTile.h:
1479 (WebCore::LayerTile::texture):
1481 * platform/graphics/blackberry/LayerTiler.cpp:
1482 (WebCore::LayerTiler::drawTile):
1483 (WebCore::LayerTiler::contentsTexture):
1484 * platform/graphics/blackberry/LayerTiler.h:
1486 (WebCore::LayerTiler::TextureJob::TextureJob):
1487 (WebCore::LayerTiler::TextureJob::setContents):
1488 (WebCore::LayerTiler::TextureJob::updateContents):
1490 * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
1491 (WebCore::TextureProtector::TextureProtector):
1493 (WebCore::TextureCacheCompositingThread::allocateTextureId):
1494 (WebCore::freeTextureId):
1495 (WebCore::TextureCacheCompositingThread::textureResized):
1496 (WebCore::TextureCacheCompositingThread::textureSizeInBytesChanged):
1497 (WebCore::TextureCacheCompositingThread::textureDestroyed):
1498 (WebCore::TextureCacheCompositingThread::install):
1499 (WebCore::TextureCacheCompositingThread::resizeTexture):
1500 (WebCore::TextureCacheCompositingThread::evict):
1501 (WebCore::TextureCacheCompositingThread::textureAccessed):
1502 (WebCore::TextureCacheCompositingThread::prune):
1503 (WebCore::TextureCacheCompositingThread::textureForTiledContents):
1504 (WebCore::TextureCacheCompositingThread::textureForColor):
1505 (WebCore::TextureCacheCompositingThread::updateContents):
1506 * platform/graphics/blackberry/TextureCacheCompositingThread.h:
1507 (WebCore::TextureCacheCompositingThread::createTexture):
1508 (TextureCacheCompositingThread):
1509 (WebCore::TextureCacheCompositingThread::ZombieTexture::ZombieTexture):
1512 2013-04-10 Andreas Kling <akling@apple.com>
1514 Disallow programmatic movement of the browser window while user gestures are in progress.
1515 <http://webkit.org/b/114271>
1516 <rdar://problem/13226530>
1518 Reviewed by Oliver Hunt.
1520 * page/DOMWindow.cpp:
1521 (WebCore::DOMWindow::moveBy):
1522 (WebCore::DOMWindow::moveTo):
1523 (WebCore::DOMWindow::resizeBy):
1524 (WebCore::DOMWindow::resizeTo):
1526 2013-04-10 Ryosuke Niwa <rniwa@webkit.org>
1528 Refactor Editor::markAndReplaceFor before fixing autocorrection bugs
1529 https://bugs.webkit.org/show_bug.cgi?id=114344
1531 Reviewed by Enrica Casucci.
1533 This patch refactors Editor::markAndReplaceFor so that we can start fixing bugs in a sane state.
1534 Extracted isAutomaticTextReplacementType and correctSpellcheckingPreservingTextCheckingParagraph,
1535 and made convenience local variables const.
1537 In particular, shouldMarkSpelling used to be assigned of false when shouldShowCorrectionPanel was true
1538 in a middle of a function but this was removed in favor of explicitly checking this condition later
1539 since shouldMarkSpelling was only referenced once after the assignment.
1541 * editing/Editor.cpp:
1542 (WebCore::isAutomaticTextReplacementType): Extracted.
1544 (WebCore::correctSpellcheckingPreservingTextCheckingParagraph): Extracted. Used highestAncestor
1545 and rangeFromLocationAndLength to match the rest of the up-to-date editing code.
1547 (WebCore::Editor::markAndReplaceFor): See above.
1549 2013-04-08 Anders Carlsson <andersca@apple.com>
1551 Remove unneeded headers from FrameLoader.h
1552 https://bugs.webkit.org/show_bug.cgi?id=114223
1554 Reviewed by Geoffrey Garen.
1556 Remove unneeded headers from FrameLoader.h and add them back into the respective .cpp files where needed.
1559 * history/CachedFrame.cpp:
1560 * history/PageCache.cpp:
1561 * inspector/InspectorResourceAgent.cpp:
1562 * loader/DocumentLoader.cpp:
1563 * loader/FrameLoader.cpp:
1564 (WebCore::FrameLoader::FrameLoader):
1565 (WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad):
1566 * loader/FrameLoader.h:
1568 (WebCore::FrameLoader::policyChecker):
1569 (WebCore::FrameLoader::history):
1570 (WebCore::FrameLoader::icon):
1571 * loader/MixedContentChecker.h:
1572 * loader/icon/IconLoader.cpp:
1575 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
1576 * testing/Internals.cpp:
1578 2013-04-10 Simon Fraser <simon.fraser@apple.com>
1580 Minor code cleanup in AnimationBase::progress
1581 https://bugs.webkit.org/show_bug.cgi?id=114371
1583 Reviewed by Dean Jackson.
1585 Convert some "return; else if" to just "return; if".
1587 * page/animation/AnimationBase.cpp:
1588 (WebCore::AnimationBase::progress):
1590 2013-04-10 Robert Hogan <robert@webkit.org>
1592 Empty inline continuations should only get lineboxes if the padding applies to their side of the inline
1593 https://bugs.webkit.org/show_bug.cgi?id=113896
1595 Reviewed by David Hyatt.
1597 Test: fast/inline/inline-with-empty-inline-continuations.html
1599 Where an empty inline is split across anonymous blocks we should only give lineboxes to the 'sides' of the
1600 inline that have borders, padding or margin.
1602 * rendering/RenderBlockLineLayout.cpp:
1603 (WebCore::shouldApplyStartBorderPaddingOrMargin):
1605 (WebCore::shouldApplyEndBorderPaddingOrMargin):
1606 (WebCore::hasInlineDirectionBordersPaddingOrMargin):
1607 (WebCore::alwaysRequiresLineBox):
1609 2013-04-10 Zoltan Horvath <zoltan@webkit.org>
1611 [CSS Exclusions] Increasing padding does not correctly layout child blocks
1612 https://bugs.webkit.org/show_bug.cgi?id=112929
1614 Reviewed by David Hyatt.
1616 If a child block has changed dimension inside a shape and it has affected the block siblings
1617 we need to relayout the content inside the shape.
1619 Test: fast/exclusions/shape-inside/shape-inside-sibling-block-dimension-change-needs-relayout.html
1621 * rendering/RenderBlock.cpp:
1622 (WebCore::RenderBlock::updateRegionsAndExclusionsAfterChildLayout): Add condition for dimension change.
1623 (WebCore::RenderBlock::layoutBlock): Call updateRegionsAndExclusionsAfterChildLayout with the new parameter.
1624 * rendering/RenderBlock.h:
1625 (RenderBlock): Add extra parameter to updateRegionsAndExclusionsAfterChildLayout(...)
1627 2013-04-10 Geoffrey Garen <ggaren@apple.com>
1629 Removed bitrotted TimeoutChecker code
1630 https://bugs.webkit.org/show_bug.cgi?id=114336
1632 Reviewed by Alexey Proskuryakov.
1634 This mechanism hasn't worked for a while.
1636 MarkL is working on a new version of this feature with a distinct
1639 * bindings/js/JSCallbackData.cpp:
1640 (WebCore::JSCallbackData::invokeCallback):
1641 * bindings/js/JSCustomXPathNSResolver.cpp:
1642 (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
1643 * bindings/js/JSDOMWindowBase.cpp:
1644 (WebCore::JSDOMWindowBase::commonJSGlobalData):
1645 * bindings/js/JSErrorHandler.cpp:
1646 (WebCore::JSErrorHandler::handleEvent):
1647 * bindings/js/JSEventListener.cpp:
1648 (WebCore::JSEventListener::handleEvent):
1649 * bindings/js/JSMutationCallback.cpp:
1650 (WebCore::JSMutationCallback::call):
1651 * bindings/js/ScheduledAction.cpp:
1652 (WebCore::ScheduledAction::executeFunctionInContext):
1653 * bindings/js/ScriptController.cpp:
1654 (WebCore::ScriptController::evaluateInWorld):
1655 * bindings/js/SerializedScriptValue.cpp:
1656 (WebCore::CloneBase::CloneBase):
1657 (WebCore::CloneSerializer::serialize):
1658 (WebCore::CloneDeserializer::deserialize):
1659 * bindings/js/WorkerScriptController.cpp:
1660 (WebCore::WorkerScriptController::evaluate):
1661 * bindings/objc/WebScriptObject.mm:
1662 (-[WebScriptObject callWebScriptMethod:withArguments:]):
1663 (-[WebScriptObject evaluateWebScript:]):
1665 2013-04-10 Patrick Gansterer <paroga@webkit.org>
1667 Replace ENABLE_JAVASCRIPT_DEBUGGER preprocessor statements in IDL files with Conditional attribute
1668 https://bugs.webkit.org/show_bug.cgi?id=114352
1670 Reviewed by Timothy Hatcher.
1672 The Conditional attribute does not need a preprocessor, which is source of much pain on native windows.
1676 2013-04-10 Alexandru Chiculita <achicu@adobe.com>
1678 Layers with opacity and blur filters are reported as opaque to the compositor
1679 https://bugs.webkit.org/show_bug.cgi?id=114295
1681 Reviewed by Simon Fraser.
1683 Test: compositing/contents-opaque/filter.html
1685 Some filters like opacity and blur might still trigger transparency in the layer, even though the
1686 background is opaque. I've added the special case in RenderLayer::backgroundIsKnownToBeOpaqueInRect to check
1687 for filters that might have transparency. Note that this special case is required only for software drawn
1688 filters, as the transparency is going to be backed in the GraphicsLayer content. Composited filters can
1689 figure it out in the compositor.
1691 * rendering/RenderLayer.cpp:
1692 (WebCore::RenderLayer::backgroundIsKnownToBeOpaqueInRect):
1694 2013-04-10 Noam Rosenthal <noam@webkit.org>
1696 [Texmap] In certain situations nested blending with overflow:hidden displays clipped results
1697 https://bugs.webkit.org/show_bug.cgi?id=114290
1699 Reviewed by Allan Sandfeld Jensen.
1701 Always apply the clip when binding a surface, even if it hasn't changed.
1702 Otherwise when binding a nested surface and rebinding its container surface,
1703 the clip wouldn't apply.
1705 Test: compositing/overlap-blending/nested-overlap-overflow.html
1707 * platform/graphics/texmap/TextureMapperGL.cpp:
1708 (WebCore::BitmapTextureGL::bind):
1710 2013-04-10 Antti Koivisto <antti@apple.com>
1712 Use minimal tiles during live resize
1713 https://bugs.webkit.org/show_bug.cgi?id=114364
1715 Reviewed by Darin Adler.
1717 We currently update non-visible speculative tiles during resizing. We should just drop them.
1719 * page/FrameView.cpp:
1720 (WebCore::FrameView::willStartLiveResize):
1721 (WebCore::FrameView::willEndLiveResize):
1723 * rendering/RenderLayerBacking.cpp:
1724 (WebCore::computeTileCoverage):
1726 Use minimal coverage in live resize state.
1728 2013-04-10 Victor Costan <costan@gmail.com>
1730 Blob content type normalization.
1731 https://bugs.webkit.org/show_bug.cgi?id=111380
1733 Reviewed by Alexey Proskuryakov.
1735 Tests: http/tests/fast/files/blob-constructor.js
1736 http/tests/fileapi/xhr-send-form-data-filename-escaping.html
1737 http/tests/fileapi/xhr-send-form-data-mimetype-normalization.html
1739 * WebCore.exp.in: exported Blob::isNormalizedContentType()
1740 * bindings/js/JSBlobCustom.cpp:
1741 (WebCore::JSBlobConstructor::constructJSBlob): remove checks on Blob type, BlobBuilder will normalize it
1743 (BlobType): utilities for normalizing a Blob's type according to the File API spec
1744 (WebCore::BlobType::isValid): content type validity checks in the File API spec
1745 (WebCore::BlobType::normalize): implements the normalization rules in the File API spec
1746 (WebCore::BlobType::isNormalized): useful for ASSERTing that a Blob type has been normalized
1747 (WebCore): implement Blob type normalization according to the File API spec
1748 (WebCore::Blob::Blob): normalize the Blob type in the data URL
1749 (WebCore::Blob::slice): normalize the Blob type argument
1751 (BlobType): utilities for normalizing a Blob's type according to the File API spec
1752 (WebCore::Blob::create): assert that the deserialized Blob's type was normalized
1754 (WebCore::createBlobDataForFileWithType): assert that the File's MIME type is a normalized Blob type
1755 * fileapi/WebKitBlobBuilder.cpp:
1756 (WebCore::BlobBuilder::getBlob): normalize the Blob's type before building it
1757 * platform/network/BlobData.h:
1758 (WebCore::BlobData::setContentType): assert that the Blob type has been normalized
1759 * platform/network/FormData.cpp:
1760 (WebCore::FormData::appendKeyValuePairItems): assert that Blob's type has been normalized
1761 * platform/network/FormDataBuilder.cpp:
1762 (WebCore::FormDataBuilder::addContentTypeToMultiPartHeader): assert that the Content-Type field is normalized
1763 * xml/XMLHttpRequest.cpp: when responseType is blob, normalize Content-Type before passing to Blob constructor
1765 2013-04-10 Tim Horton <timothy_horton@apple.com>
1767 TileController doesn't remove tiles when the view is resized, leading to stale content
1768 https://bugs.webkit.org/show_bug.cgi?id=114323
1769 <rdar://problem/13520671>
1771 Reviewed by Simon Fraser.
1773 Ensure that tiles are removed if the view shrinks, so that they are not displayed
1774 with stale content if the view later grows again (they will not be repainted by WebCore
1777 * platform/graphics/ca/mac/TileController.h:
1778 * platform/graphics/ca/mac/TileController.mm:
1779 (WebCore::TileController::revalidateTiles):
1781 2013-04-10 Jessie Berlin <jberlin@apple.com>
1783 Update the localizable strings file.
1785 Rubber-stamped by Dan Bernstein.
1787 * English.lproj/Localizable.strings:
1789 2013-04-10 Patrick Gansterer <paroga@webkit.org>
1791 Replace ENABLE_CHANNEL_MESSAGING preprocessor statements in IDL files with Conditional attribute
1792 https://bugs.webkit.org/show_bug.cgi?id=114346
1794 Reviewed by Geoffrey Garen.
1796 The Conditional attribute does not need a preprocessor, which is source of much pain on native windows.
1798 * page/DOMWindow.idl:
1799 * workers/WorkerContext.idl:
1801 2013-04-10 Eric Carlson <eric.carlson@apple.com>
1803 Update all float attributes in HTMLMediaElement to double
1804 https://bugs.webkit.org/show_bug.cgi?id=113615
1806 Reviewed by Geoffrey Garen
1807 Patch by Aaron Colwell
1809 No new tests. Primary behavior doesn't change. Just time, playbackRate, and volume precision.
1810 All existing LayoutTests/media tests still pass.
1812 * WebCore.exp.in: Remove function that no longer need to be exported.
1814 * html/HTMLMediaElement.cpp: Change all float attributes to double.
1815 * html/HTMLMediaElement.h: Ditto.
1816 * html/HTMLMediaElement.idl: Ditto.
1817 * html/MediaController.cpp: Ditto.
1818 * html/MediaController.h: Ditto.
1819 * html/MediaControllerInterface.h: Ditto.
1820 * html/TimeRanges.cpp: Ditto.
1821 * html/TimeRanges.idl: Ditto.
1822 * html/shadow/MediaControlElementTypes.cpp: Ditto.
1823 * html/shadow/MediaControlElementTypes.h: Ditto.
1824 * html/shadow/MediaControlElements.cpp: Ditto.
1825 * html/shadow/MediaControlElements.h: Ditto.
1826 * html/shadow/MediaControls.cpp: Ditto.
1827 * html/shadow/MediaControlsApple.cpp: Ditto.
1828 * html/shadow/MediaControlsBlackBerry.cpp: Ditto.
1829 * html/shadow/MediaControlsBlackBerry.h: Ditto.
1830 * html/shadow/MediaControlsGtk.cpp: Ditto.
1831 * html/track/TextTrackCue.cpp: Ditto.
1832 * html/track/TextTrackCue.h: Ditto.
1833 * platform/Clock.h: Ditto.
1834 * platform/ClockGeneric.cpp: Ditto.
1835 * platform/ClockGeneric.h: Ditto.
1836 * platform/graphics/MediaPlayer.cpp: Ditto.
1837 * platform/graphics/MediaPlayer.h: Ditto.
1838 * platform/graphics/MediaPlayerPrivate.h: Ditto.
1839 * platform/mac/PlatformClockCA.cpp: Ditto.
1840 * platform/mac/PlatformClockCA.h: Ditto.
1841 * platform/mac/PlatformClockCM.h: Ditto.
1842 * platform/mac/PlatformClockCM.mm: Ditto.
1844 2013-04-10 Patrick Gansterer <paroga@webkit.org>
1846 Replace ENABLE_MICRODATA preprocessor statements in IDL files with Conditional attribute
1847 https://bugs.webkit.org/show_bug.cgi?id=114349
1849 Reviewed by Geoffrey Garen.
1851 The Conditional attribute does not need a preprocessor, which is source of much pain on native windows.
1854 * html/HTMLElement.idl:
1856 2013-04-10 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
1858 REGRESSION(r148034): IconDatabase::updateIconRecord crashes with null iconData and iconBitmap.
1859 https://bugs.webkit.org/show_bug.cgi?id=114356
1861 Reviewed by Tim Horton.
1863 When loading an icon fails (for example, when a non-existent URI is
1864 passed to the loader), updateIconRecord can be called with both
1865 iconData and iconBitmap having no data.
1867 This used to be fine before r148034, but causes an assertion now.
1869 No new tests, existing tests such as fast/encoding/mispositioned-meta.html
1872 * loader/icon/IconDatabase.cpp:
1873 (WebCore::IconDatabase::updateIconRecord): Change the ASSERT() to check
1874 for a NAND condition that only fails if both iconData and iconBitmap
1877 2013-04-10 JungJik Lee <jungjik.lee@samsung.com>
1879 [Texmap] Update a dirty region which is not covered with keepRect.
1880 https://bugs.webkit.org/show_bug.cgi?id=113752
1882 Reviewed by Jocelyn Turcotte.
1884 There can be a dirty region which is not covered with keepRect.
1885 However the dirty could be inside the tile area. In this case,
1886 currently we ignore the dirty by intersecting with keepRect
1887 and the dirty region will not be invalidated until the tile is
1888 recreated. We must expand the keep rect to its intersecting tiles
1889 to make sure that the dirty region is applied to existing tiles.
1891 No tests needed, change is unobservable.
1893 * platform/graphics/TiledBackingStore.cpp:
1894 (WebCore::TiledBackingStore::invalidate):
1896 2013-04-10 Laszlo Gombos <l.gombos@samsung.com>
1898 Remove ENABLE_3D_PLUGIN
1899 https://bugs.webkit.org/show_bug.cgi?id=108002
1901 Remove ENABLE_3D_PLUGIN, it was only used by Chromium.
1903 Reviewed by Antti Koivisto.
1905 No new tests, removing dead code.
1907 * loader/SubframeLoader.cpp:
1908 (WebCore::SubframeLoader::loadPlugin):
1910 2013-04-10 Noam Rosenthal <noam@webkit.org>
1912 [Texmap] Hierarchy of layers with opacity may result in wrong blending.
1913 https://bugs.webkit.org/show_bug.cgi?id=113732
1915 Reviewed by Allan Sandfeld Jensen.
1917 This is a combination of three issues with nested intermediate surfaces:
1918 - glScissor inside an intermediate surface should not be mirrored.
1919 - The current surface should be passed to the next surface in paintOptions.
1920 - When clipping for the non-overlap region, the containing surface offset
1923 Though the changes are separate, they cannot be tested separately as neither
1924 fixes a testable case on its own.
1926 Tests: compositing/overlap-blending/nested-non-overlap-clipping.html
1927 compositing/overlap-blending/nested-overlap.html
1929 * platform/graphics/texmap/TextureMapperGL.cpp:
1930 (WebCore::TextureMapperGL::ClipStack::reset):
1931 (WebCore::TextureMapperGL::ClipStack::apply):
1932 (WebCore::TextureMapperGL::beginPainting):
1933 (WebCore::BitmapTextureGL::clearIfNeeded):
1934 * platform/graphics/texmap/TextureMapperGL.h:
1936 Do not mirror the scissor clip when painting to an FBO.
1937 Also a minor refactor to avoid reading the viewport values from the driver.
1939 * platform/graphics/texmap/TextureMapperLayer.cpp:
1940 (WebCore::TextureMapperLayer::paintUsingOverlapRegions):
1941 Apply the offset when clipping for a non-overlap region.
1942 (WebCore::TextureMapperLayer::paintIntoSurface):
1943 Make sure the current surface is passed to the next one.
1945 2013-04-10 Antti Koivisto <antti@apple.com>
1947 Create fewer tiles when page is loading
1948 https://bugs.webkit.org/show_bug.cgi?id=114294
1950 Reviewed by Anders Carlsson.
1952 We currently create speculative tiles immediately. Page is often changing rapidly during loading and
1953 keeping the speculative tiles up to date creates extra work.
1955 Tests: platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-speculative.html
1956 platform/mac-wk2/tiled-drawing/tile-coverage-speculative.html
1958 * loader/FrameLoader.cpp:
1959 (WebCore::FrameLoader::loadProgressingStatusChanged):
1960 * page/FrameView.cpp:
1961 (WebCore::FrameView::adjustTiledBackingCoverage):
1962 (WebCore::FrameView::setWasScrolledByUser):
1964 User scrolling enables speculative tiling no matter what the load status.
1967 * rendering/RenderLayerBacking.cpp:
1968 (WebCore::computeTileCoverage):
1969 (WebCore::RenderLayerBacking::adjustTiledBackingCoverage):
1971 Cover only the viewport during loading.
1973 2013-04-10 Alberto Garcia <agarcia@igalia.com>
1975 [BlackBerry] RenderThemeBlackBerry: get rid of all the SKIA code
1976 https://bugs.webkit.org/show_bug.cgi?id=114339
1978 Reviewed by Carlos Garcia Campos.
1980 * platform/blackberry/RenderThemeBlackBerry.cpp:
1981 (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
1982 (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
1983 (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
1984 (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderThumb):
1986 2013-04-10 Zan Dobersek <zdobersek@igalia.com>
1988 REGRESSION (r147719): Failures in two a11y tests on GTK
1989 https://bugs.webkit.org/show_bug.cgi?id=114259
1991 Reviewed by Ryosuke Niwa.
1993 No new tests - covered by existing tests.
1995 Partially revert r147719, restoring the possible creation of the AXObject cache
1996 and the subsequent call to its handleFocusedUIElementChanged method. Removing this
1997 code caused regressions in accessibility tests on the GTK port, so the comment about
1998 the AXObject cache is adjusted accordingly.
2001 (WebCore::Document::setFocusedNode):
2003 2013-04-09 Philippe Normand <pnormand@igalia.com>
2005 [GStreamer] playbin uri getter is invalid
2006 https://bugs.webkit.org/show_bug.cgi?id=113884
2008 Reviewed by Martin Robinson.
2010 When loading a new media location use the url stored as a member
2011 variable instead of the one stored as a playbin property. The uri
2012 property semantic changed in playbin since 0.10.36+. One should
2013 now use current-uri but to avoid ifdefs depending on GStreamer
2014 version we simply use the url already known as member variable.
2016 Test: http/tests/media/video-redirect.html
2018 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2020 2013-04-09 Geoffrey Garen <ggaren@apple.com>
2022 [JSC] Script run from an isolated world should bypass a page's CSP
2023 https://bugs.webkit.org/show_bug.cgi?id=100815
2025 Reviewed by Oliver Hunt.
2027 * bindings/js/ScriptController.cpp:
2028 (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
2029 * bindings/js/ScriptController.h: Test the current caller's DOM wrapper
2030 world to decide whether CSP should be enforced.
2032 Like most of CSP, this is a stupid policy because it doesn't address
2033 second-order effects like <script> parsing or event handler execution,
2034 which might be triggered indirectly by privileged scripts. These indirect
2035 effects are still broken. Oh well.
2037 2013-04-09 Benjamin Poulain <bpoulain@apple.com>
2039 Remove chromium exceptions from WebCore's gitattributes
2040 https://bugs.webkit.org/show_bug.cgi?id=114327
2042 Reviewed by Darin Adler.
2046 2013-04-09 Adam Klein <adamk@chromium.org>
2048 Update Document's event listener type bitfield when adopting a Node
2049 https://bugs.webkit.org/show_bug.cgi?id=114322
2051 Reviewed by Darin Adler.
2053 Without this, moving a Node between documents can silently deactivate
2054 an event listener, if it's one of the types that whose creation is
2055 optimized away by Document::hasListenerType.
2057 An alternate approach would be to simply copy the old document's
2058 bitfield over. It's a tradeoff between making adoption fast and making
2059 the operation of any operation depending on these event types fast.
2060 The latter seems like the right optimization given that adoption
2061 doesn't happen very often.
2063 Test: fast/events/event-listener-moving-documents.html
2066 (WebCore::Node::didMoveToNewDocument): For each event listener type on the adopted node, update the new document's list of listener types.
2068 2013-04-09 Dean Jackson <dino@apple.com>
2070 Add logging channel for animations
2071 https://bugs.webkit.org/show_bug.cgi?id=114325
2073 Reviewed by Simon Fraser.
2075 * platform/Logging.cpp: Add LogAnimations.
2076 (WebCore::getChannelFromName): Return LogAnimations for "Animations".
2077 * platform/Logging.h: Add LogAnimations.
2078 * platform/mac/LoggingMac.mm:
2079 (WebCore::initializeLoggingChannelsIfNecessary): Copy preference.
2080 * platform/win/LoggingWin.cpp:
2081 (WebCore::initializeLoggingChannelsIfNecessary): Copy preference.
2083 2013-04-09 Dongwoo Joshua Im <dw.im@samsung.com>
2085 [CSS3] Parsing the property, text-justify.
2086 https://bugs.webkit.org/show_bug.cgi?id=100058
2088 Reviewed by Andreas Kling.
2090 This patch implements the parsing side of the "text-justify" property specified
2091 in CSS3 working draft, with "-webkit-" prefix, under ENABLE_CSS3_TEXT flag.
2092 Specification link : http://www.w3.org/TR/css3-text/#text-justify
2094 Tests: fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify-inherited.html
2095 fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify.html
2097 * css/CSSComputedStyleDeclaration.cpp:
2099 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2100 * css/CSSParser.cpp:
2101 (WebCore::isValidKeywordPropertyAndValue):
2102 (WebCore::isKeywordPropertyID):
2103 (WebCore::CSSParser::parseValue):
2104 * css/CSSPrimitiveValueMappings.h:
2106 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2107 (WebCore::CSSPrimitiveValue::operator TextJustify):
2108 * css/CSSProperty.cpp:
2109 (WebCore::CSSProperty::isInheritedProperty):
2110 * css/CSSPropertyNames.in:
2111 * css/CSSValueKeywords.in:
2112 * css/StyleBuilder.cpp:
2113 (WebCore::StyleBuilder::StyleBuilder):
2114 * css/StylePropertySet.cpp:
2116 * css/StyleResolver.cpp:
2117 (WebCore::StyleResolver::applyProperty):
2118 * rendering/style/RenderStyle.h:
2119 * rendering/style/RenderStyleConstants.h:
2120 * rendering/style/StyleRareInheritedData.cpp:
2121 (WebCore::StyleRareInheritedData::StyleRareInheritedData):
2122 (WebCore::StyleRareInheritedData::operator==):
2123 * rendering/style/StyleRareInheritedData.h:
2124 (StyleRareInheritedData):
2126 2013-04-09 Joone Hur <joone.hur@intel.com>
2128 [GTK][AC] Adding contentsLayer for image and video
2129 https://bugs.webkit.org/show_bug.cgi?id=113912
2131 Reviewed by Gustavo Noronha Silva.
2133 contentsLayer is a ClutterActor, which is added to the main layer
2134 as a child when GraphicsLayer needs to render an image or video.
2136 No new tests, already covered by existing AC tests.
2138 * platform/graphics/clutter/GraphicsLayerActor.cpp:
2139 (graphicsLayerActorUpdateTexture):
2140 * platform/graphics/clutter/GraphicsLayerClutter.cpp:
2141 (WebCore::GraphicsLayerClutter::GraphicsLayerClutter):
2142 (WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
2144 (WebCore::GraphicsLayerClutter::setContentsToImage): Pass a Cairo surface to GraphicsLayer.
2145 (WebCore::GraphicsLayerClutter::setContentsNeedsDisplay):
2146 (WebCore::GraphicsLayerClutter::setContentsRect):
2147 (WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers):
2148 (WebCore::GraphicsLayerClutter::setupContentsLayer):
2149 (WebCore::GraphicsLayerClutter::updateContentsImage): Set the Cairo surface for contentsLayer
2150 to upload it as a texture.
2151 (WebCore::GraphicsLayerClutter::updateContentsNeedsDisplay):
2152 (WebCore::GraphicsLayerClutter::updateContentsRect):
2153 (WebCore::GraphicsLayerClutter::updateSublayerList):
2154 * platform/graphics/clutter/GraphicsLayerClutter.h:
2155 (WebCore::GraphicsLayerClutter::hasContentsLayer):
2156 (GraphicsLayerClutter):
2157 (WebCore::GraphicsLayerClutter::contentsLayer):
2159 2013-04-09 Alexey Proskuryakov <ap@apple.com>
2161 REGRESSION: Blob URLs broken with NetworkProcess
2162 https://bugs.webkit.org/show_bug.cgi?id=114320
2164 Reviewed by Brady Eidson.
2166 Update BlobResourceHandle to use modern resource client calls.
2168 * platform/network/BlobResourceHandle.cpp:
2169 (WebCore::BlobResourceHandle::readSync): Don't call notifyReceiveData if there is
2170 no data (it's especially egregious when length is -1, signaling an error).
2171 (WebCore::BlobResourceHandle::notifyResponseOnSuccess): Use didReceiveResponseAsync
2172 when a client wants async callbacks. This is not very clean, as we don't wait
2173 for response, but should be workable for blobs.
2174 (WebCore::BlobResourceHandle::notifyResponseOnError): Ditto.
2175 (WebCore::BlobResourceHandle::notifyReceiveData): Use didReceiveBuffer (clients
2176 that only implement didReceiveData will have it automatically unwrapped).
2178 2013-04-09 Jer Noble <jer.noble@apple.com>
2180 REGRESSION (r123837): Full screen transition is broken at apple.com
2181 https://bugs.webkit.org/show_bug.cgi?id=95650
2183 Reviewed by Simon Fraser.
2185 Cancel any outstanding animations on <video> elements as they enter full screen, so as to
2186 not confuse the WebKit/WebKit2 full screen window animation about the starting and destination
2189 * css/fullscreen.css:
2190 (video:-webkit-full-screen, audio:-webkit-full-screen):
2192 2013-04-09 Jer Noble <jer.noble@apple.com>
2194 hang in mediaSelectionGroupForMediaCharacteristic
2195 https://bugs.webkit.org/show_bug.cgi?id=114054
2197 Reviewed by Eric Carlson.
2199 No new tests; Fixes sporadic hangs in media/ tests.
2201 -[AVURLAsset mediaSelectionGroupForMediaCharacteristic:] can deadlock in certain situations: When AVURLAsset
2202 posts a synchronous AVAssetResourceLoader notification to the main thread, calling -mediaSelectionGroupForMediaCharacteristic:
2203 on the main thread requires IO to occur if the media characteristics are not yet loaded. Instead of blocking,
2204 bail out early if the media characteristics are not yet known.
2206 Add a new method, safeMediaSelectionGroupForLegibleMedia(), which first checks selection group availability
2207 before calling mediaSelectionGroupForMediaCharacteristic:.
2209 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2210 (MediaPlayerPrivateAVFoundationObjC):
2211 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2212 (WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForLegibleMedia): Added.
2213 (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Use new safe method.
2214 (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Ditto.
2215 (WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks): Ditto.
2216 (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Ditto.
2218 2013-04-09 Chris Fleizach <cfleizach@apple.com>
2220 AX: Bounding paths should be made available through accessibility
2221 https://bugs.webkit.org/show_bug.cgi?id=113817
2223 Unreviewed build fix for iOS.
2225 * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
2226 (-[WebAccessibilityObjectWrapper _accessibilityPath]):
2227 * accessibility/mac/WebAccessibilityObjectWrapperBase.h:
2229 2013-04-09 Eric Carlson <eric.carlson@apple.com>
2231 Unreviewed correctness fix: use lroundf instead of lround for a float to int conversion.
2233 * html/shadow/MediaControlElements.cpp:
2234 (WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
2236 2013-04-06 Roger Fong <roger_fong@apple.com>
2238 Change requisite hardware checks for enabling antialiasing.
2239 https://bugs.webkit.org/show_bug.cgi?id=114101
2240 <rdar://problem/12342776>.
2242 m_maySupportMultisampling should be true by default for all platforms/hardware now except older versions of AMD.
2244 Reviewed by Dean Jackson.
2246 * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
2247 (WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
2249 2013-04-09 Commit Queue <rniwa@webkit.org>
2251 Unreviewed, rolling out r148010.
2252 http://trac.webkit.org/changeset/148010
2253 https://bugs.webkit.org/show_bug.cgi?id=114310
2255 Causes problems with focus rings (Requested by anttik on
2258 * css/StyleBuilder.cpp:
2259 (WebCore::ApplyPropertyComputeLength::applyValue):
2260 (WebCore::ApplyPropertyComputeLength::createHandler):
2261 (WebCore::StyleBuilder::StyleBuilder):
2263 2013-04-09 Eric Carlson <eric.carlson@apple.com>
2265 Unreviewed, another fix for the Windows build after r148050.
2267 * html/track/TextTrackCueGeneric.cpp:
2268 (WebCore::TextTrackCueGeneric::setFontSize): Use lround().
2270 2013-04-09 Bem Jones-Bey <bjonesbe@adobe.com>
2272 [CSS Exclusions] Properly position multiple stacked floats with non rectangular shape outside
2273 https://bugs.webkit.org/show_bug.cgi?id=110372
2275 Reviewed by Dean Jackson.
2277 Stacked floats get positioned based on the bounding box of the shape,
2278 not on the shape contours itself. This patch causes that to happen.
2280 Test: fast/exclusions/shape-outside-floats/shape-outside-floats-stacked.html
2282 * rendering/RenderBlock.cpp:
2283 (WebCore::RenderBlock::computeLogicalLocationForFloat): Use the
2284 "BoundingBoxOffset" mode so that we compute offsets based on the shape
2285 bounding boxes of previous floats, not the shape contour.
2286 (WebCore::RenderBlock::logicalLeftOffsetForLine): Check the
2287 ShapeOutsideFloatOffsetMode to determine if the offset should be
2288 adjusted for the shape contour or not.
2289 (WebCore::RenderBlock::logicalRightOffsetForLine): Ditto.
2290 * rendering/RenderBlock.h:
2291 (WebCore::RenderBlock::logicalRightOffsetForLine): Add parameter for offset mode.
2292 (WebCore::RenderBlock::logicalLeftOffsetForLine): Ditto.
2294 * rendering/RenderBlockLineLayout.cpp:
2295 (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): If the
2296 new float is being added on top of a previous float on the same line,
2297 undo the offset for the previous float's shape contour so that we
2298 position the new float based on the bounding box.
2300 2013-04-09 Eric Carlson <eric.carlson@apple.com>
2302 Unreviewed, fix the Windows build after r148050.
2304 * html/shadow/MediaControlElements.cpp:
2305 (WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Use lround().
2307 2013-04-09 Tim Horton <timothy_horton@apple.com>
2309 [wk2] IconDatabase images should be decoded in the WebProcess
2310 ​https://bugs.webkit.org/show_bug.cgi?id=112524
2311 <rdar://problem/10133914>
2313 Reviewed by Simon Fraser.
2315 Move an ASSERT that dereferenced a pointer inside the null-check for that pointer.
2317 * loader/icon/IconDatabase.cpp:
2318 (WebCore::IconDatabase::setIconBitmapForIconURL):
2320 2013-04-09 Eric Carlson <eric.carlson@apple.com>
2322 [Mac] user caption styles not applied to correct element
2323 https://bugs.webkit.org/show_bug.cgi?id=114230
2325 Reviewed by Jer Noble.
2327 Test: media/track/track-css-user-override.html
2329 * html/HTMLMediaElement.cpp:
2330 (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Drive by clean-up so we don't log excessively.
2332 * html/shadow/MediaControlElements.cpp:
2333 (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement): Initialize
2334 new member variables.
2335 (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Set cue font size when it is
2336 inserted into the tree.
2337 (WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Update the font size of
2339 (WebCore::MediaControlTextTrackContainerElement::updateSizes): Set size-relative CSS properties
2340 after a time because this can be called during layout.
2341 * html/shadow/MediaControlElements.h:
2343 * html/shadow/MediaControls.cpp:
2344 (WebCore::MediaControls::textTrackPreferencesChanged): Call closedCaptionTracksChanged before updateSizes.
2346 * html/track/TextTrackCue.cpp:
2347 (WebCore::TextTrackCue::setFontSize): New, set the cue's font size.
2348 * html/track/TextTrackCue.h:
2350 * html/track/TextTrackCueGeneric.cpp:
2351 (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties): Set cue properties on the cue element
2352 instead of on the cue box to match what we do for the "cue" pseudo element.
2353 (WebCore::TextTrackCueGeneric::setFontSize): New, set the cue's font size.
2354 * html/track/TextTrackCueGeneric.h:
2356 * html/track/TextTrackList.cpp:
2357 (TextTrackList::remove): Drive-by cleanup, don't ASSERT when the media element is NULL.
2359 * page/CaptionUserPreferences.cpp:
2360 (WebCore::CaptionUserPreferences::setCaptionsStyleSheetOverride): New, allow user CSS overrides
2361 to be tested in DRT.
2362 (WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride): New, generate a user style
2363 sheet override. Moved here from CaptionUserPreferencesMac.
2364 * page/CaptionUserPreferences.h:
2366 * page/CaptionUserPreferencesMac.h:
2367 * page/CaptionUserPreferencesMac.mm:
2368 (WebCore::CaptionUserPreferencesMac::captionsBackgroundCSS): Don't ignore background color importance.
2369 (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Implement even when we don't
2370 have the media accessibility framework so this can be tested in DRT. Apply all cue properties
2371 to the element used for the "cue" pseudo element.
2373 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2374 (WebCore::MediaPlayerPrivateAVFoundation::didLoadingProgress): Drive-by cleanup, remove logging
2375 because this method is called so frequently and the logging is not especially useful.
2376 (WebCore::MediaPlayerPrivateAVFoundation::updateStates): Only log when the ready/network
2377 state changes because this method is called so frequently.
2379 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2380 (WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer): Drive-by cleanup, remove logging
2381 because this method is called so frequently and the logging is not especially useful.
2382 (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Make the logging more useful.
2384 * testing/Internals.cpp:
2385 (WebCore::Internals::resetToConsistentState): Reset captions style sheet override.
2386 (WebCore::Internals::captionsStyleSheetOverride): New, return the captions style sheet override.
2387 (WebCore::Internals::setCaptionsStyleSheetOverride): New, override the captions style sheet override.
2388 * testing/Internals.h:
2389 * testing/Internals.idl:
2391 2013-04-08 Simon Fraser <simon.fraser@apple.com>
2393 Repaint rect too small on elements with shadows
2394 https://bugs.webkit.org/show_bug.cgi?id=114225
2396 Reviewed by Dain Adler.
2398 We assumed that shadows (box-shadow, text-shadow, svg shadows)
2399 only required inflating the repaint rect by the blur radius of
2400 the shadow. However, this is incorrect; the shadow can extend
2401 further, which resulted in clipped or incorrectly invalidated
2404 Fix by disambiguating the blur radius (which is 2x the standard
2405 deviation of the Gaussian distribution used to generate the blur),
2406 from the painting extent, which is how far the shadow visually
2407 projects. Using a 1.4 multiplier of the blur radius is a good
2408 approximation for the painting extent.
2410 Renamed ShadowData::blur() to ShadowData::radius(), and added
2411 ShadowData::paintingExtent(). Use the latter in all places
2412 which relate to invalidation.
2414 Test: fast/box-shadow/shadow-repaint.html
2416 * css/CSSComputedStyleDeclaration.cpp:
2417 (WebCore::CSSComputedStyleDeclaration::valueForShadow):
2418 * editing/mac/EditorMac.mm:
2419 (WebCore::Editor::fontAttributesForSelectionStart):
2420 * page/animation/CSSPropertyAnimation.cpp:
2421 (WebCore::blendFunc):
2422 * rendering/EllipsisBox.cpp:
2423 (WebCore::EllipsisBox::paint):
2424 * rendering/InlineTextBox.cpp:
2425 (WebCore::InlineTextBox::applyShadowToGraphicsContext):
2426 (WebCore::InlineTextBox::paintDecoration):
2427 * rendering/RenderBoxModelObject.cpp:
2428 (WebCore::applyBoxShadowForBackground):
2429 (WebCore::areaCastingShadowInHole):
2430 (WebCore::RenderBoxModelObject::paintBoxShadow):
2431 * rendering/style/RenderStyle.cpp:
2432 (WebCore::RenderStyle::getShadowExtent):
2433 (WebCore::RenderStyle::getShadowInsetExtent):
2434 (WebCore::RenderStyle::getShadowHorizontalExtent):
2435 (WebCore::RenderStyle::getShadowVerticalExtent):
2436 * rendering/style/ShadowData.cpp:
2437 (WebCore::ShadowData::ShadowData):
2438 (WebCore::ShadowData::operator==):
2439 (WebCore::calculateShadowExtent):
2440 * rendering/style/ShadowData.h:
2441 (WebCore::ShadowData::ShadowData):
2442 (WebCore::ShadowData::radius):
2443 (WebCore::ShadowData::paintingExtent):
2444 * rendering/svg/SVGRenderingContext.cpp:
2445 (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
2447 2013-04-08 Simon Fraser <simon.fraser@apple.com>
2449 window.internals.repaintRectsAsText() is hard to use because it doesn't force layout
2450 https://bugs.webkit.org/show_bug.cgi?id=114219
2452 Reviewed by Beth Dakin.
2454 Force layout when setTracksRepaints() is set to true, to flush out any pending
2455 repaints from a layout that hasn't happened yet. Also force layout in
2456 trackedRepaintRectsAsText(), so that any pending layout happpens and thus
2459 * page/FrameView.cpp:
2460 (WebCore::FrameView::setTracksRepaints):
2461 (WebCore::FrameView::trackedRepaintRectsAsText):
2463 2013-04-09 Chris Fleizach <cfleizach@apple.com>
2465 AX: Bounding paths should be made available through accessibility
2466 https://bugs.webkit.org/show_bug.cgi?id=113817
2468 Unreviewed build fix (again).
2470 * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2471 (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
2473 2013-04-09 Chris Fleizach <cfleizach@apple.com>
2475 AX: Bounding paths should be made available through accessibility
2476 https://bugs.webkit.org/show_bug.cgi?id=113817
2478 Unreviewed build fix.
2480 * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2481 (WebTransformCGPathToNSBezierPath):
2483 2013-04-09 Chris Fleizach <cfleizach@apple.com>
2485 AX: Bounding paths should be made available through accessibility
2486 https://bugs.webkit.org/show_bug.cgi?id=113817
2488 Reviewed by Tim Horton.
2490 Minor fix from review feedback.
2492 * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2493 (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
2495 2013-04-09 Tim Horton <timothy_horton@apple.com>
2497 [wk2] IconDatabase images should be decoded in the WebProcess
2498 https://bugs.webkit.org/show_bug.cgi?id=112524
2499 <rdar://problem/10133914>
2501 Reviewed by Oliver Hunt.
2503 No testable behavior change.
2505 * loader/icon/IconDatabase.cpp:
2506 (WebCore::IconDatabase::updateIconRecord):
2507 Added updateIconRecord, which factors most of setIconDataForIconURL out so it can
2508 be shared with setIconBitmapForIconURL. This function will set either a bitmap or
2509 raw image data for the given icon URL.
2511 (WebCore::IconDatabase::setIconBitmapForIconURL):
2512 Added; make a copy of the bitmap for thread-safety purposes, and call updateIconRecord.
2514 (WebCore::IconDatabase::setIconDataForIconURL):
2515 Factored out of what is now updateIconRecord.
2517 * loader/icon/IconDatabase.h:
2518 (IconDatabase): Add setIconBitmapForIconURL and updateIconRecord.
2520 * loader/icon/IconDatabaseBase.h:
2521 (WebCore::IconDatabaseBase::setIconBitmapForIconURL): Added.
2522 * loader/icon/IconRecord.cpp:
2523 (WebCore::IconRecord::setImage): Set the image for an icon record directly (as opposed
2524 to setting the image data, which causes the image to be decoded in the WebProcess).
2525 * loader/icon/IconRecord.h:
2526 (IconRecord): Add setImage.
2528 2013-04-09 Chris Fleizach <cfleizach@apple.com>
2530 AX: The bounding paths should be made available through accessibility
2531 https://bugs.webkit.org/show_bug.cgi?id=113817
2533 Reviewed by David Kilzer.
2535 This allows bounding paths to be returned for some web elements (image map areas and SVG shapes).
2536 This provides more accuracy when assistive technologies highlight elements.
2537 The Mac and iOS platforms share some code to help transform paths to their screen coordinates.
2539 Tests: platform/iphone-simulator/accessibility/element-paths.html
2540 platform/mac/accessibility/element-paths.html
2542 * accessibility/AccessibilityImageMapLink.cpp:
2543 (WebCore::AccessibilityImageMapLink::imageMapLinkRenderer):
2545 (WebCore::AccessibilityImageMapLink::elementPath):
2546 (WebCore::AccessibilityImageMapLink::elementRect):
2547 * accessibility/AccessibilityImageMapLink.h:
2548 (AccessibilityImageMapLink):
2549 (WebCore::AccessibilityImageMapLink::supportsPath):
2550 * accessibility/AccessibilityObject.h:
2551 (WebCore::AccessibilityObject::elementPath):
2552 (WebCore::AccessibilityObject::supportsPath):
2553 * accessibility/AccessibilityRenderObject.cpp:
2555 (WebCore::AccessibilityRenderObject::supportsPath):
2556 (WebCore::AccessibilityRenderObject::elementPath):
2557 * accessibility/AccessibilityRenderObject.h:
2558 (AccessibilityRenderObject):
2559 * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
2560 (-[WebAccessibilityObjectWrapper _accessibilityPath]):
2561 (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
2562 (-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
2563 (-[WebAccessibilityObjectWrapper accessibilityActivationPoint]):
2564 (-[WebAccessibilityObjectWrapper accessibilityFrame]):
2565 (-[WebAccessibilityObjectWrapper frameForTextMarkers:]):
2566 * accessibility/mac/WebAccessibilityObjectWrapperBase.h:
2568 * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
2569 (PathConversionInfo):
2570 (ConvertPathToScreenSpaceFunction):
2571 (-[WebAccessibilityObjectWrapperBase convertPathToScreenSpace:]):
2572 (-[WebAccessibilityObjectWrapperBase convertPointToScreenSpace:]):
2573 * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2574 (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
2575 (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
2576 (WebTransformCGPathToNSBezierPath):
2577 (-[WebAccessibilityObjectWrapper bezierPathFromPath:]):
2578 (-[WebAccessibilityObjectWrapper path]):
2579 (-[WebAccessibilityObjectWrapper position]):
2580 (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2582 2013-04-09 Benjamin Poulain <bpoulain@apple.com>
2584 Remove the WebKit copy of GLU and the file using it
2585 https://bugs.webkit.org/show_bug.cgi?id=114249
2587 Reviewed by Darin Adler.
2589 * platform/graphics/gpu/LoopBlinnPathProcessor.cpp: Removed.
2591 2013-04-09 Andreas Kling <akling@apple.com>
2593 Throttle resize events during live window resize.
2594 <http://webkit.org/b/114292>
2595 <rdar://problem/13411454>
2597 Reviewed by Geoffrey Garen.
2599 Limit resize events to one at max every 0.2 seconds during live window resize.
2600 This mitigates heavy CPU usage during resize on pages with complex onresize handlers.
2601 If there's a pending resize event when the live resize ends, it fires immediately.
2603 * page/FrameView.cpp:
2604 (WebCore::FrameView::sendResizeEvent):
2606 Factored out dispatch of the resize event after layout so we can call it on a timer
2607 instead of immediately while live window resize is active.
2609 (WebCore::FrameView::FrameView):
2610 (WebCore::FrameView::performPostLayoutTasks):
2611 (WebCore::FrameView::delayedResizeEventTimerFired):
2612 (WebCore::FrameView::willEndLiveResize):
2613 (WebCore::FrameView::scheduleResizeEvent):
2615 * platform/ScrollableArea.h:
2617 Made willStartLiveResize() and willEndLiveResize() virtual so we can override
2620 2013-04-09 Jeff Rogers <jrogers@rim.com>
2622 Add webp to supported image mime types if WEBP feature is enabled/used
2623 https://bugs.webkit.org/show_bug.cgi?id=112819
2625 Reviewed by Darin Adler.
2627 Add WebP to list of supported image types in MIMETypeRegistry if enabled.
2629 No new tests: WebP image decoding already covered by exisiting tests.
2631 * platform/MIMETypeRegistry.cpp:
2632 (WebCore::initializeSupportedImageMIMETypes):
2634 2013-04-09 Arnaud Renevier <a.renevier@sisa.samsung.com>
2636 Whitespace in particular source code changes rendering; does not in Firefox
2637 https://bugs.webkit.org/show_bug.cgi?id=100943
2639 Reviewed by Darin Adler.
2641 A render inline which requires a line box is considered a possible
2642 trailing object. So, ensureLineBoxInsideIgnoredSpaces will be called
2643 for it, even if it is placed after a text render ending with a single
2646 Tests: fast/text/whitespace/trailing-space-before-empty-span-1.html
2647 fast/text/whitespace/trailing-space-before-empty-span-2.html
2649 * rendering/RenderBlockLineLayout.cpp:
2651 (WebCore::TrailingObjects::appendBoxIfNeeded):
2652 (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
2654 2013-04-09 Andrei Bucur <abucur@adobe.com>
2656 Use DOM ordering for list counts
2657 https://bugs.webkit.org/show_bug.cgi?id=110352
2659 Reviewed by Elliott Sprehn.
2661 Currently the list items ordering is made by traversing the render tree. This gives bad results for:
2662 - list items flown inside regions because they are not rendered as descendants of their DOM list ancestors.
2663 - list items matched to insertion points inside a shadow tree. The insertion point may be a child of a
2664 list so the numbering gets broken.
2666 To implement correct DOM ordering I've taken into account the fact that pseudo-elements can have display: list-item
2667 so they should be included when traversing the DOM tree. I've added helper methods on the NodeTraversal
2668 namespace that should allow easily traversing the tree including the pseudo-elements (e.g. firstChildWithPseudo
2669 for an element with pseudo-before will return the before PseudoElement). Using these helper methods I've implemented
2670 pre-order traversal methods aware of the pseudo-elements.
2671 An effect of this change is how the list items inside shadow tree update their counting. With the patch, if there's
2672 no <ol> or <ul> element on the ancestor chain of a <li> element to the shadow root, the list node will be considered the
2673 first parent of the <li> or the shadow root if there is no ancestor.
2674 The RenderListItem class now makes use of this new method of traversal, replacing the one based on the render tree.
2675 To simplify the CSS counters implementation, I've changed the traversal functions inside RenderCounter to also make use
2676 of this method. The CSS counters and the list items now have the same traversal algorithm.
2678 In later patches I'll add tests that should cover the regions and shadow DOM use cases.
2679 Tests bug for shadow DOM: https://bugs.webkit.org/show_bug.cgi?id=113193
2680 Tests bug for regions: https://bugs.webkit.org/show_bug.cgi?id=103975
2682 Tests: no new tests is this patch; added the correct expectations for fast/lists/positioned-count-crash.html
2683 and fast/dom/shadow/shadow-and-list-elements.html
2686 (WebCore::Node::pseudoAwarePreviousSibling):
2688 (WebCore::Node::pseudoAwareNextSibling):
2689 (WebCore::Node::pseudoAwareFirstChild):
2690 (WebCore::Node::pseudoAwareLastChild):
2693 * dom/NodeTraversal.cpp:
2695 (WebCore::NodeTraversal::previousIncludingPseudo):
2697 (WebCore::NodeTraversal::nextIncludingPseudo):
2698 (WebCore::NodeTraversal::nextIncludingPseudoSkippingChildren):
2699 * dom/NodeTraversal.h:
2702 (WebCore::ElementTraversal::previousIncludingPseudo):
2703 (WebCore::ElementTraversal::nextIncludingPseudo):
2704 (WebCore::ElementTraversal::nextIncludingPseudoSkippingChildren):
2705 (WebCore::ElementTraversal::pseudoAwarePreviousSibling):
2706 * html/HTMLLIElement.cpp:
2707 (WebCore::HTMLLIElement::attach):
2708 * html/HTMLOListElement.cpp:
2709 (WebCore::HTMLOListElement::updateItemValues):
2710 (WebCore::HTMLOListElement::recalculateItemCount):
2711 * rendering/RenderCounter.cpp:
2712 (WebCore::previousInPreOrder):
2713 (WebCore::previousSiblingOrParent):
2714 (WebCore::parentElement):
2715 (WebCore::nextInPreOrder):
2716 * rendering/RenderListItem.cpp:
2718 (WebCore::enclosingList):
2719 (WebCore::RenderListItem::nextListItem):
2720 (WebCore::previousListItem):
2721 (WebCore::RenderListItem::calcValue):
2722 (WebCore::RenderListItem::explicitValueChanged):
2723 (WebCore::previousOrNextItem):
2724 (WebCore::RenderListItem::updateListMarkerNumbers):
2725 * rendering/RenderListItem.h:
2728 2013-04-09 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
2730 [Texmap] TextureMapperLayer refactor for readiblity
2731 https://bugs.webkit.org/show_bug.cgi?id=114278
2733 Reviewed by Noam Rosenthal.
2735 Removes non-needed return values, function parameters and changes
2736 boolean values with enums for readibility.
2738 No behavioral changes, thus no tests.
2740 * platform/graphics/texmap/TextureMapperLayer.cpp:
2741 (WebCore::TextureMapperLayer::computeTransformsRecursive):
2742 (WebCore::TextureMapperLayer::paintSelf):
2743 (WebCore::TextureMapperLayer::sortByZOrder):
2744 (WebCore::TextureMapperLayer::computeOverlapRegions):
2745 (WebCore::TextureMapperLayer::paintUsingOverlapRegions):
2746 (WebCore::commitSurface):
2747 (WebCore::TextureMapperLayer::paintWithIntermediateSurface):
2748 (WebCore::TextureMapperLayer::paintRecursive):
2749 * platform/graphics/texmap/TextureMapperLayer.h:
2750 (TextureMapperLayer):
2752 2013-04-09 Lamarque V. Souza <Lamarque.Souza@basyskom.com>
2754 [WebSocket] Ignore incoming message in CLOSING state
2755 https://bugs.webkit.org/show_bug.cgi?id=85934
2757 Reviewed by Kent Tamura.
2759 Change WebSocket implementation to suit the new WebSocket API, which
2760 states that we should ignore messages in CLOSING state.
2762 No new tests, updating existing tests.
2764 * Modules/websockets/WebSocket.cpp:
2765 (WebCore::WebSocket::didReceiveMessage):
2767 2013-04-09 Seokju Kwon <seokju.kwon@gmail.com>
2769 Web Inspector: Add Localized strings after r144154 and r135127
2770 https://bugs.webkit.org/show_bug.cgi?id=114269
2772 Reviewed by Timothy Hatcher.
2774 No new tests, no behavior change.
2776 * English.lproj/localizedStrings.js:
2778 2013-04-09 Antti Koivisto <antti@apple.com>
2780 Throttle compositing layer flushes in subframes
2781 https://bugs.webkit.org/show_bug.cgi?id=114267
2783 Reviewed by Andreas Kling.
2785 Throttle compositing layer flushes in all frames, not just the main one.
2787 This especially reduces flushes/repaints generated by ads in iframes.
2789 * loader/FrameLoader.cpp:
2790 (WebCore::FrameLoader::loadProgressingStatusChanged):
2791 * page/FrameView.cpp:
2792 (WebCore::FrameView::updateLayerFlushThrottlingInAllFrames):
2795 2013-04-09 Suchit Agrawal <a.suchit@samsung.com>
2797 Table border doesn't show up
2798 https://bugs.webkit.org/show_bug.cgi?id=13709
2800 Reviewed by Antti Koivisto.
2802 Border issue is fixed when border width is less than 0.8pt
2804 Border width is stored as unsigned. Border width (specified by
2805 author) is converted into pixels and some times this pixel value
2806 goes less than 1px. In this case, border width becomes 0px when
2807 pixel value (double type) assigned to unsigned type.
2808 Border width should not fall to 0px unless it is specified by
2811 Test: fast/borders/border-width-less-then-a-unit-of-pt.html
2813 * css/StyleBuilder.cpp:
2814 ApplyPropetyComputeLength class is replaced with 3 classes :
2815 ApplyPropertyComputeBorderWidth, ApplyPropertyComputeTextSpacing
2816 and ApplyPropertyComputeTransformOriginZ.
2818 (WebCore::ApplyPropertyComputeBorderWidth::applyValue):
2819 (WebCore::ApplyPropertyComputeBorderWidth::createHandler):
2820 This class handles all width properties like border, outline,
2821 etc. These all properties stores value in integer types.
2822 Pixel value rounded of to 1px if value less than 1px and greater
2826 (ApplyPropertyComputeTextSpacing):
2827 (WebCore::ApplyPropertyComputeTextSpacing::setValue):
2828 (WebCore::ApplyPropertyComputeTextSpacing::applyValue):
2829 (WebCore::ApplyPropertyComputeTextSpacing::createHandler):
2830 This class handles all spacing properties like word-spacing,
2833 (ApplyPropertyComputeTransformOriginZ):
2834 (WebCore::ApplyPropertyComputeTransformOriginZ::setValue):
2835 (WebCore::ApplyPropertyComputeTransformOriginZ::applyValue):
2836 (WebCore::ApplyPropertyComputeTransformOriginZ::createHandler):
2837 This class handles TransformOriginZ Property.
2839 (WebCore::StyleBuilder::StyleBuilder):
2840 ApplyProprtyComputeLength class usage changed with defined new
2841 classes as per class definition.
2843 2013-04-09 Gabor Loki <loki@webkit.org>
2845 Initialization skipped error on WinCario after r147643
2846 https://bugs.webkit.org/show_bug.cgi?id=114258
2848 Reviewed by Csaba Osztrogonác.
2850 Build fix. Adding extra block statement to avoid error C2362 on WinCario
2852 * platform/win/DragImageCairoWin.cpp:
2853 (WebCore::createDragImageFromImage):
2855 2013-04-09 Jinwoo Song <jinwoo7.song@samsung.com>
2857 [WK2] Remove build warnings for unused parameters
2858 https://bugs.webkit.org/show_bug.cgi?id=114234
2860 Reviewed by Andreas Kling.
2862 Fix build warnings -Wunused-parameter.
2864 * Modules/indexeddb/IDBBackingStore.cpp:
2865 (WebCore::IDBBackingStore::openInMemory):
2866 * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
2867 (WebCore::CreateIndexAbortOperation::perform):
2868 (WebCore::DeleteIndexAbortOperation::perform):
2869 (WebCore::CreateObjectStoreAbortOperation::perform):
2870 (WebCore::DeleteObjectStoreAbortOperation::perform):
2871 (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
2872 * Modules/indexeddb/IDBLevelDBCoding.cpp:
2873 (WebCore::IDBLevelDBCoding::decodeBool):
2874 (WebCore::IDBLevelDBCoding::KeyPrefix::KeyPrefix):
2875 * Modules/indexeddb/IDBLevelDBCoding.h:
2876 (WebCore::IDBLevelDBCoding::encodeIntSafely):
2877 * bindings/js/IDBBindingUtilities.cpp:
2879 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
2880 (WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
2881 * platform/leveldb/LevelDBDatabase.cpp:
2882 (WebCore::ComparatorAdapter::FindShortestSeparator):
2883 (WebCore::ComparatorAdapter::FindShortSuccessor):
2885 2013-04-09 Thiago Marcos P. Santos <thiago.santos@intel.com>
2887 [WK2] Drop WebProcess capabilities on Linux using seccomp filters
2888 https://bugs.webkit.org/show_bug.cgi?id=89875
2890 Reviewed by Maciej Stachowiak.
2892 Make the DATA_DIR global since it is now needed for WebCore and WebKit2.
2893 It is now used to set a sandbox policy for the EFL port.
2895 * PlatformEfl.cmake:
2897 2013-04-08 Ryosuke Niwa <rniwa@webkit.org>
2899 Remove WebCore.gyp/gypi
2900 https://bugs.webkit.org/show_bug.cgi?id=114239
2902 Reviewed by Benjamin Poulain.
2904 * WebCore.gyp: Removed.
2905 * WebCore.gyp/.gitignore: Removed.
2906 * WebCore.gyp/ConvertFileToHeaderWithCharacterArray.gypi: Removed.
2907 * WebCore.gyp/MakeNames.gypi: Removed.
2908 * WebCore.gyp/WebCore.gyp: Removed.
2909 * WebCore.gyp/mac: Removed.
2910 * WebCore.gyp/mac/adjust_visibility.sh: Removed.
2911 * WebCore.gyp/mac/check_objc_rename.sh: Removed.
2912 * WebCore.gyp/scripts: Removed.
2913 * WebCore.gyp/scripts/action_csspropertynames.py: Removed.
2914 * WebCore.gyp/scripts/action_cssvaluekeywords.py: Removed.
2915 * WebCore.gyp/scripts/action_derivedsourcesallinone.py: Removed.
2916 * WebCore.gyp/scripts/action_makenames.py: Removed.
2917 * WebCore.gyp/scripts/action_useragentstylesheets.py: Removed.
2918 * WebCore.gyp/scripts/rule_bison.py: Removed.
2919 * WebCore.gyp/scripts/supplemental_idl_files.py: Removed.
2920 * WebCore.gypi: Removed.
2922 2013-04-08 Mihai Maerean <mmaerean@adobe.com>
2924 Rollout r147756: performance regression
2925 https://bugs.webkit.org/show_bug.cgi?id=114176
2927 Reviewed by Alexis Menard.
2929 Rolling out the patch for https://bugs.webkit.org/show_bug.cgi?id=74144 "[CSS Regions] Elements in a region
2930 should be assignable to a named flow" because of the performance regression in Parser/html5-full-render.html .
2932 No new tests (because this is a rollout patch).
2936 * dom/NodeRenderingContext.cpp:
2937 (WebCore::NodeRenderingContext::parentRenderer):
2938 (WebCore::NodeRenderingContext::shouldCreateRenderer):
2939 (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
2940 * dom/NodeRenderingContext.h:
2941 * dom/PseudoElement.h:
2943 (WebCore::Text::textRendererIsNeeded):
2944 (WebCore::Text::updateTextRenderer):
2946 * rendering/FlowThreadController.cpp:
2947 * rendering/FlowThreadController.h:
2948 * rendering/RenderObject.h:
2949 * rendering/RenderRegion.h:
2950 * svg/SVGElement.cpp:
2953 2013-04-08 Benjamin Poulain <benjamin@webkit.org>
2955 Remove HTML Notification
2956 https://bugs.webkit.org/show_bug.cgi?id=114231
2958 Reviewed by Ryosuke Niwa.
2960 The feature is dead. It was only kept in the tree because of chromium.
2962 * Configurations/FeatureDefines.xcconfig:
2963 * Modules/notifications/Notification.cpp:
2965 (WebCore::Notification::Notification):
2966 * Modules/notifications/Notification.h:
2968 * Modules/notifications/NotificationCenter.h:
2969 (NotificationCenter):
2970 * Modules/notifications/NotificationCenter.idl:
2971 * page/FeatureObserver.h:
2973 2013-04-08 Dean Jackson <dino@apple.com>
2975 Don't try to remove a non-existent snapshot
2976 https://bugs.webkit.org/show_bug.cgi?id=114226
2977 <rdar://problem/13604480>
2979 Reviewed by Darin Adler.
2981 We don't need to trigger the timer to remove a snapshot
2982 if there was never a snapshot displayed.
2984 * html/HTMLPlugInImageElement.cpp:
2985 (WebCore::HTMLPlugInImageElement::setDisplayState): Detect if we're moving from the DisplayingSnapshot state.
2986 (WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired): Guard against a missing renderer.
2988 2013-04-08 Patrick Gansterer <paroga@webkit.org>
2990 Do not define CAN_THEME_URL_ICON for PLATFORM(WIN_CAIRO)
2991 https://bugs.webkit.org/show_bug.cgi?id=108444
2993 Reviewed by Darin Adler.
2995 Image::loadPlatformResource("urlIcon") returns nothing
2996 since r30961 on Windows which makes the code useless.
2998 * loader/icon/IconDatabase.cpp:
3000 2013-04-05 Roger Fong <roger_fong@apple.com>
3004 * platform/win/DragImageWin.cpp:
3005 (WebCore::createDragImageIconForCachedImageFilename):
3007 2013-04-08 Geoffrey Garen <ggaren@apple.com>
3009 Stop #include-ing all of JavaScriptCore in every DOM-related file
3010 https://bugs.webkit.org/show_bug.cgi?id=114220
3012 Reviewed by Sam Weinig.
3014 I separated ScriptWrappableInlines.h from ScriptWrappable.h so
3015 WebCore data types that inherit from ScriptWrappable don't
3016 have to #include all of the infrastructure for accessing that data member.
3018 * ForwardingHeaders/heap/PassWeak.h: Added.
3019 * ForwardingHeaders/heap/WeakInlines.h: Added.
3020 * WebCore.xcodeproj/project.pbxproj:
3021 * bindings/js/DOMWrapperWorld.h:
3022 * bindings/js/JSDOMBinding.h:
3024 * bindings/js/JSEventListener.h:
3025 * bindings/js/JSMutationCallback.cpp:
3026 * bindings/js/JSNodeFilterCondition.h:
3027 * bindings/js/ScriptWrappable.h:
3031 * bindings/js/ScriptWrappableInlines.h: Added.
3033 (WebCore::ScriptWrappable::wrapper):
3034 (WebCore::ScriptWrappable::setWrapper):
3035 (WebCore::ScriptWrappable::clearWrapper):
3036 * bridge/qt/qt_instance.h:
3037 * bridge/qt/qt_runtime.h:
3038 * bridge/runtime_root.cpp:
3039 * bridge/runtime_root.h:
3040 * css/StylePropertySet.cpp:
3041 * dom/LiveNodeList.cpp:
3042 (WebCore::LiveNodeListBase::reportMemoryUsage):
3044 (WebCore::Node::reportMemoryUsage):
3045 * inspector/InspectorDebuggerAgent.cpp:
3046 * inspector/NetworkResourcesData.cpp:
3047 * loader/cache/CachedSVGDocument.cpp:
3048 * xml/XMLHttpRequest.cpp:
3049 (WebCore::XMLHttpRequest::reportMemoryUsage):
3051 2013-04-08 Tiancheng Jiang <tijiang@rim.com>
3053 [BlackBerry] Clean up render theme code.
3054 https://bugs.webkit.org/show_bug.cgi?id=114216
3056 Reviewed by Rob Buis.
3058 BlackBerry PR 323062
3060 Clean up redundant code.
3062 * platform/blackberry/RenderThemeBlackBerry.cpp:
3064 (WebCore::RenderThemeBlackBerry::paintSliderTrack):
3065 * platform/blackberry/RenderThemeBlackBerry.h:
3066 (RenderThemeBlackBerry):
3068 2013-04-08 Arunprasad Rajkumar <arunprasadr@nds.com>
3070 Call Netscape Plugin's toString() and valueOf() instead of providing default implementation
3071 https://bugs.webkit.org/show_bug.cgi?id=113139
3073 Reviewed by Anders Carlsson.
3075 Tests: plugins/npruntime/tostring.html
3076 plugins/npruntime/valueof.html
3078 * bridge/c/c_instance.cpp:
3079 (JSC::Bindings::CInstance::~CInstance):
3080 (JSC::Bindings::CInstance::invokeMethod):
3081 (JSC::Bindings::CInstance::invokeDefaultMethod):
3083 (JSC::Bindings::CInstance::invokeConstruct):
3084 (JSC::Bindings::CInstance::stringValue):
3085 (JSC::Bindings::CInstance::booleanValue):
3086 (JSC::Bindings::CInstance::valueOf):
3087 (JSC::Bindings::CInstance::toJSPrimitive):
3088 * bridge/c/c_instance.h:
3091 2013-04-08 Tim Horton <timothy_horton@apple.com>
3093 REGRESSION (r138858): Crash in WebCore::FrameLoader::~FrameLoader() when opening page in a background tab
3094 https://bugs.webkit.org/show_bug.cgi?id=109935
3095 <rdar://problem/13225963>
3097 Reviewed by Brady Eidson.
3099 Previously, we were deciding if a Page could go into
3100 the PageCache by blacklisting certain load types. Instead,
3101 whitelist the load types that we know can go into the cache,
3102 so that newly-added load types are not cached unless
3103 that is explicitly desired.
3105 The crash occurs when a page which is actively loading
3106 is put into the page cache while doing a redirect with
3107 FrameLoadTypeRedirectWithLockedBackForwardList (note that
3108 this is a redirect that was not covered in the blacklist),
3109 and then promptly removed from the page cache, resulting
3110 in resources from the redirect target (the now-active page)
3111 being incorrectly destroyed.
3113 No new tests, only known crash repro case is extremely
3114 timing dependent (and only happens in WebKit2, with tiled
3115 drawing, in background tabs).
3117 * history/PageCache.cpp:
3118 (WebCore::PageCache::canCache):
3120 2013-04-08 Anders Carlsson <andersca@apple.com>
3124 * platform/network/ResourceHandle.cpp:
3125 (WebCore::ResourceHandle::continueDidReceiveResponse):
3127 2013-04-08 Anders Carlsson <andersca@apple.com>
3129 Add an async version of ResourceHandle::didReceiveResponse
3130 https://bugs.webkit.org/show_bug.cgi?id=114215
3132 Reviewed by Sam Weinig.
3134 In order to support converting NSURLConnections to NSURLDownloads when using the network process
3135 we need an async version of didReceiveResponse.
3138 * platform/network/ResourceHandleClient.cpp:
3139 (WebCore::ResourceHandleClient::didReceiveResponseAsync):
3140 Just call continueDidReceiveResponse().
3142 * platform/network/mac/ResourceHandleMac.mm:
3143 (WebCore::ResourceHandle::continueWillSendRequest):
3144 Split up a single condition in two, making it easier to see which assertion fails.
3146 (WebCore::ResourceHandle::continueDidReceiveResponse):
3147 Call -[WebCoreResourceHandleAsOperationQueueDelegate continueDidReceiveResponse].
3149 (WebCore::ResourceHandle::continueShouldUseCredentialStorage):
3150 (WebCore::ResourceHandle::continueCanAuthenticateAgainstProtectionSpace):
3151 (WebCore::ResourceHandle::continueWillCacheResponse):
3152 Split up a single condition in two, making it easier to see which assertion fails.
3154 * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
3155 * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
3156 (-[WebCoreResourceHandleAsOperationQueueDelegate continueDidReceiveResponse]):
3157 Signal the semaphore.
3159 (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
3160 Call didReceiveResponseAsync on the main thread and wait on the semaphore.
3162 2013-04-08 Beth Dakin <bdakin@apple.com>
3164 Crash in ScrollingCoordinator::mainThreadScrollingReasons() when going back
3165 https://bugs.webkit.org/show_bug.cgi?id=114214
3167 <rdar://problem/13208616>
3169 Reviewed by Anders Carlsson.
3171 When a page is restoring from the page cache, the mainFrame can have a null
3172 Document. So we should null-check the Document here.
3174 * page/scrolling/ScrollingCoordinator.cpp:
3175 (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
3177 2013-04-08 Andrei Bucur <abucur@adobe.com>
3179 Simplify ContainerNode::removeChildren
3180 https://bugs.webkit.org/show_bug.cgi?id=113517
3182 Reviewed by Darin Adler.
3184 The patch is based on the work made by Elliott Sprehn. He kindly agreed
3185 for me to finalize the last bits and pieces of the fix.
3187 Simplify ContainerNode::removeChildren by merging the loops and removing
3188 willRemoveChildren. This removes two traversals of the children, avoids
3189 refing and derefing all the children once, avoids allocating a second
3190 NodeVector of children, and means we detach() in the same order as
3193 This does mean you can get into an infinite loop with DOMNodeRemoved
3194 listeners by continously adding nodes but this is true in all other browsers
3195 and the current behavior is bad because it means you don't get notified
3196 of nodes added during removal (which other browsers do notify of). This
3197 patch removes the containerNode.html test that originally tested for this
3198 infinite loop and adds a new one that tests that all nodes get notified.
3200 This makes PerformanceTests/Parser/innerHTML-setter.html 2-6% faster.
3202 There's also a new test verifying ranges remain consistent if modified
3203 inside an mutation event handler. Without the patch it's possible to create
3204 a range with boundaries outside of the DOM tree.
3206 Tests: fast/dom/Range/range-remove-children-event.html
3207 fast/events/mutation-during-innerHTML.html
3209 * dom/ContainerNode.cpp:
3210 (WebCore::ContainerNode::removeChildren):
3212 * dom/Document.h: nodeChildrenWillBeRemoved is not needed any more.
3214 * dom/Range.h: nodeChildrenWillBeRemoved is not needed any more.
3216 2013-04-06 Simon Fraser <simon.fraser@apple.com>
3218 Remove some #includes in headers in rendering code
3219 https://bugs.webkit.org/show_bug.cgi?id=114079
3221 Reviewed by Sam Weinig.
3223 Clean up #includes in RenderObject, RenderLayer etc.
3224 Moved makeMatrixRenderable() into RenderLayer.app, allowing
3225 the removal of a TransformationMatrix.h include.
3227 Make some RenderLayer functions that deal with filters not inline,
3228 to avoid including RenderLayerFilterInfo.h.
3230 * platform/graphics/GraphicsLayer.h:
3231 * platform/graphics/ImageOrientation.cpp:
3232 * platform/graphics/cairo/GraphicsContextCairo.cpp:
3233 * platform/graphics/qt/GraphicsContextQt.cpp:
3234 * platform/graphics/transforms/AffineTransform.cpp:
3235 * platform/graphics/transforms/AffineTransform.h:
3236 * rendering/RenderBoxModelObject.h:
3237 * rendering/RenderLayer.cpp:
3238 (WebCore::makeMatrixRenderable):
3239 (WebCore::RenderLayer::filterRenderer):
3240 (WebCore::RenderLayer::filterInfo):
3241 (WebCore::RenderLayer::ensureFilterInfo):
3242 (WebCore::RenderLayer::removeFilterInfoIfNeeded):
3243 * rendering/RenderLayer.h:
3244 * rendering/RenderLayerBacking.h:
3245 * rendering/RenderLineBoxList.h:
3246 * rendering/RenderObject.h:
3248 2013-04-08 Robert Hogan <robert@webkit.org>
3250 Unreviewed, rolling out r147850.
3251 http://trac.webkit.org/changeset/147850
3252 https://bugs.webkit.org/show_bug.cgi?id=113706
3254 Changeset crossed paths with 147505, which is the same fix.
3256 * rendering/RenderBlockLineLayout.cpp:
3257 (WebCore::inlineLogicalWidth):
3259 2013-04-08 Alexey Proskuryakov <ap@apple.com>
3261 <rdar://problem/12834449> Crashes in WebSocketChannel::processFrame when processing a ping
3262 https://bugs.webkit.org/show_bug.cgi?id=114178
3264 Reviewed by Brady Eidson.
3266 No test, I could never reproduce even manually.
3268 Calling enqueueRawFrame() could change incoming buffer, so a subsequent skipBuffer()
3269 would operate on wrong assumptions. This happened because enqueueRawFrame() actually
3270 tried to process the queue, and send failure sometimed clears m_buffer.
3272 Fixing this by decoupling enqueuing from sending, and making sure that skipBuffer()
3273 in ping frame processing case is performed at a safe time.
3275 * Modules/websockets/WebSocketChannel.cpp:
3276 (WebCore::WebSocketChannel::send):
3277 (WebCore::WebSocketChannel::startClosingHandshake):
3278 (WebCore::WebSocketChannel::processFrame):
3279 (WebCore::WebSocketChannel::enqueueTextFrame):
3280 (WebCore::WebSocketChannel::enqueueRawFrame):
3281 (WebCore::WebSocketChannel::enqueueBlobFrame):
3283 2013-04-08 Max Vujovic <mvujovic@adobe.com>
3285 REGRESSION (r147502): Animations of CA filters broken
3286 https://bugs.webkit.org/show_bug.cgi?id=114067
3288 Reviewed by Dean Jackson.
3290 Revert r147502 [1] because it broke CA filter animations.
3292 [1]: http://trac.webkit.org/changeset/147502
3294 * platform/graphics/IntRectExtent.h:
3295 (WebCore::IntRectExtent::isZero):
3297 * rendering/RenderLayer.cpp:
3298 (WebCore::RenderLayer::needsCompositingLayersRebuiltForOverflow):
3300 (WebCore::RenderLayer::styleChanged):
3301 * rendering/RenderLayer.h:
3303 * rendering/RenderLayerBacking.cpp:
3304 (WebCore::RenderLayerBacking::updateFilters):
3305 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
3306 * rendering/RenderLayerBacking.h:
3307 (RenderLayerBacking):
3308 * rendering/RenderLayerCompositor.cpp:
3309 (WebCore::RenderLayerCompositor::calculateCompositedBounds):
3311 2013-04-08 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
3313 [Qt] Avoid "QFont::setPixelSize: Pixel size <= 0 (0)"
3314 https://bugs.webkit.org/show_bug.cgi?id=114175
3316 Reviewed by Allan Sandfeld Jensen.
3318 QFont doesn't support a 0-size but WebCore does.
3319 Leave our QFont in its default state in this case to avoid the warning.
3321 * platform/graphics/qt/FontPlatformDataQt.cpp:
3322 (WebCore::FontPlatformData::FontPlatformData):
3324 2013-04-08 Yi Shen <max.hong.shen@gmail.com>
3326 Counter still gets incremented when counter-increment is set to none
3327 https://bugs.webkit.org/show_bug.cgi?id=84985
3329 Reviewed by Darin Adler.
3331 When the counter-increment is set to none, no counters are incremented.
3333 Tests: New test cases added in fast/css/counters/counter-increment-tests.htm
3335 * css/StyleBuilder.cpp:
3336 (WebCore::ApplyPropertyCounter::applyValue):
3338 2013-04-08 Douglas Stockwell <dstockwell@chromium.org>
3340 Crash in WebCore::ElementRuleCollector::collectMatchingRulesForList
3341 https://bugs.webkit.org/show_bug.cgi?id=113458
3343 Reviewed by Darin Adler.
3345 A stylesheet which has been invalidated (type changed from "" or
3346 "text/css") was not correctly removed from the list of active
3347 style sheets when its children are changed.
3349 This change releases StyleElement::m_sheet in advance of calling
3350 DocumentStyleSheetCollection::updateActiveStyleSheets.
3352 (StyleElement::clearSheet calls CSSStyleSheet::clearOwnerNode calls
3353 CSSStyleSheet::didMutate calls Document::styleResolverChanged calls
3354 DocumentStyleSheetCollection::updateActiveStyleSheets)
3356 Test: fast/css/style-element-invalidation-crash.html
3358 * dom/StyleElement.cpp:
3359 (WebCore::StyleElement::clearSheet): Release m_sheet before we
3360 trigger an update of the active style sheets.
3362 2013-04-08 Carlos Garcia Campos <cgarcia@igalia.com>
3364 [GTK] DOM objects created wrapping a base class have incorrect GObject type
3365 https://bugs.webkit.org/show_bug.cgi?id=113132
3367 Reviewed by Gustavo Noronha Silva.
3369 Some of the DOM methods can create a concrete instance of another
3370 object, but return a base class. GObject bindings provide custom
3371 kit implementations for Node, Element, Event and EvenTarget, so
3372 any concrete HTMLElement wrapped as an HTMLElement ends up
3373 wrapping the right WebCore object but in the wrong GObject type.
3374 This affects not only HTMLElements, but any polymorphic object
3375 wrapped using a base class.
3376 This patch changes the way objects are created, so that all
3377 classes have their own kit implementation, but for polymorphic
3378 objects the kit implementation of the base class is always
3379 used. The kit method of polymorphic base classes use a generic
3380 wrap method instead of the wrapFoo method like all other
3381 classes. In the static code we provide the implementation of the
3382 generic wrap method for every polimorphic base class, falling back
3383 to their wrapFoo method if the concrete object can't be used to
3385 Both WebKitDOMBinding and WebKitHTMLElementWrapperFactory now provide
3386 implementations of wrap and have been renamed to WebKitDOMPrivate
3387 and WebKitDOMHTMLPrivate.
3389 * bindings/gobject/GNUmakefile.am:
3390 * bindings/gobject/WebKitDOMBinding.cpp: Removed.
3391 * bindings/gobject/WebKitDOMEventTarget.cpp:
3392 (WebKit::kit): Moved kit implementation from WebKitDOMBinding for
3393 consistency with all other objects that have their own kit.
3394 (WebKit::core): Updated to match the core implementation fo all
3396 * bindings/gobject/WebKitDOMEventTargetPrivate.h:
3399 * bindings/gobject/WebKitDOMHTMLPrivate.cpp: Added.
3400 (WebKit): Use preprocessor macros to define and set the wrap
3401 functions of all HTML elements, removing a lot of boilerplate code
3402 and making it easier to add new wrap functions in the future.
3404 * bindings/gobject/WebKitDOMHTMLPrivate.h: Renamed from Source/WebCore/bindings/gobject/WebKitHTMLElementWrapperFactory.h.
3407 * bindings/gobject/WebKitDOMObject.cpp:
3408 * bindings/gobject/WebKitDOMPrivate.cpp: Added.
3411 * bindings/gobject/WebKitDOMPrivate.h: Renamed from Source/WebCore/bindings/gobject/WebKitDOMBinding.h.
3414 * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp: Removed.
3415 * bindings/scripts/CodeGeneratorGObject.pm:
3416 (IsBaseType): Helper function to check if a type is a base class.
3417 (GetBaseClass): Helper function to get the base class for a given
3419 (GenerateFunction): Remove special case for EventTarget since the
3420 kit prototype of EventTarget is in its private header like all
3422 (GenerateCFile): Add a kit implementation for all objects.
3423 (IsPolymorphic): Helper function to check if the given type is the
3424 base class of a polymorphic object.
3425 (Generate): Include the private header of the base class for
3426 polymorphic objects.
3427 (WriteData): Remove the special case for WebKitDOMNode since now
3428 all objects has a kit method.
3429 * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
3431 * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
3433 * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
3434 * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
3436 * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
3437 * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
3439 * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
3440 * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
3442 * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
3443 * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
3445 * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
3446 * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
3448 * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
3449 * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
3451 * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
3452 * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
3454 * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
3455 * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
3457 * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
3458 * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
3460 * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
3462 * bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
3464 * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: