1 2012-02-02 No'am Rosenthal <noam.rosenthal@nokia.com>
3 [Qt][Texmap] Refactor TextureMapper API to use ImageBuffers when possible.
4 https://bugs.webkit.org/show_bug.cgi?id=77148
6 Reviewed by Martin Robinson.
8 Removed TextureMapperQt, and instead created a TextureMapperImageBuffer class,
9 which responds to an "Software" mode of TextureMapper, instead of creating subclasses
10 of TextureMapper directly. This allows using the software fallback of TextureMapper by any
13 To make the ImageBuffer backend easier, content updates to BitmapTexture can now use either
14 an image, or a raw data pointer. The raw data pointer is provided for performance reasons,
15 as converting data to/from Image references in Qt generates unnecessary deep copies of the
18 Also, functions that use TransformationMatrix were added to GraphicsContext, to allow for
19 3D transforms in cross platform code.
20 After this patch everything renders the same. An additional bug report was created to allow
21 ImageBuffer shallow image copies: https://bugs.webkit.org/show_bug.cgi?id=77689
23 Covered extensively by existing tests, no behavioral changes.
26 * platform/graphics/GraphicsContext.cpp:
27 * platform/graphics/GraphicsContext.h:
30 * platform/graphics/cairo/TextureMapperCairo.cpp:
31 * platform/graphics/opengl/TextureMapperGL.cpp:
32 (TextureMapperGLData):
34 (WebCore::BitmapTextureGL::BitmapTextureGL):
35 (WebCore::TextureMapperGL::beginPainting):
36 (WebCore::BitmapTextureGL::reset):
38 (WebCore::swizzleBGRAToRGBA):
39 (WebCore::BitmapTextureGL::updateContents):
40 (WebCore::BitmapTextureGL::destroy):
41 (WebCore::TextureMapperGL::bindSurface):
42 (WebCore::TextureMapper::platformCreateAccelerated):
43 * platform/graphics/opengl/TextureMapperGL.h:
45 (WebCore::TextureMapperGL::accelerationMode):
47 * platform/graphics/qt/GraphicsContext3DQt.cpp:
48 (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
49 * platform/graphics/qt/GraphicsContextQt.cpp:
51 (WebCore::GraphicsContext::get3DTransform):
52 (WebCore::GraphicsContext::concat3DTransform):
53 (WebCore::GraphicsContext::set3DTransform):
54 * platform/graphics/qt/TextureMapperQt.cpp: Removed.
55 * platform/graphics/qt/TextureMapperQt.h: Removed.
56 * platform/graphics/texmap/TextureMapper.cpp:
58 (BitmapTextureImageBuffer):
59 (TextureMapperImageBuffer):
60 * platform/graphics/texmap/TextureMapper.h:
61 (WebCore::BitmapTexture::BitmapTexture):
63 (WebCore::BitmapTexture::bpp):
64 (WebCore::BitmapTexture::isOpaque):
65 (WebCore::TextureMapper::setGraphicsContext):
66 (WebCore::TextureMapper::graphicsContext):
68 (WebCore::TextureMapper::TextureMapper):
69 (WebCore::TextureMapper::platformCreateAccelerated):
70 * platform/graphics/texmap/TextureMapperNode.cpp:
71 (WebCore::TextureMapperNode::renderContent):
72 (WebCore::TextureMapperNode::setContentsTileBackBuffer):
73 * platform/graphics/texmap/TextureMapperNode.h:
76 2012-02-02 Adam Barth <abarth@webkit.org>
78 Rename checkNodeSecurity and allowsAccessFromFrame to have sensible names
79 https://bugs.webkit.org/show_bug.cgi?id=75796
81 Reviewed by Eric Seidel.
83 As requested by Darin Adler, this patch renames these functions be
84 clear that we're asking whether the access should be allowed rather
85 than explicitly allowing the access.
87 * bindings/generic/BindingSecurity.h:
89 (WebCore::::shouldAllowAccessToNode):
90 (WebCore::::allowSettingFrameSrcToJavascriptUrl):
91 * bindings/js/JSDOMBinding.cpp:
92 (WebCore::shouldAllowAccessToNode):
93 (WebCore::shouldAllowAccessToFrame):
94 * bindings/js/JSDOMBinding.h:
96 * bindings/js/JSHTMLFrameElementCustom.cpp:
97 (WebCore::allowSettingJavascriptURL):
98 * bindings/js/JSHistoryCustom.cpp:
99 (WebCore::JSHistory::getOwnPropertySlotDelegate):
100 (WebCore::JSHistory::getOwnPropertyDescriptorDelegate):
101 (WebCore::JSHistory::putDelegate):
102 (WebCore::JSHistory::deleteProperty):
103 (WebCore::JSHistory::getOwnPropertyNames):
104 * bindings/js/JSLocationCustom.cpp:
105 (WebCore::JSLocation::getOwnPropertySlotDelegate):
106 (WebCore::JSLocation::getOwnPropertyDescriptorDelegate):
107 (WebCore::JSLocation::putDelegate):
108 (WebCore::JSLocation::deleteProperty):
109 (WebCore::JSLocation::getOwnPropertyNames):
110 (WebCore::JSLocation::toStringFunction):
111 * bindings/js/ScriptController.cpp:
112 (WebCore::ScriptController::canAccessFromCurrentOrigin):
113 * bindings/scripts/CodeGeneratorJS.pm:
114 (GenerateGetOwnPropertyDescriptorBody):
115 (GenerateImplementation):
116 * bindings/scripts/CodeGeneratorV8.pm:
117 (GenerateNormalAttrGetter):
118 (GenerateFunctionCallback):
119 * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
120 (WebCore::JSTestActiveDOMObject::getOwnPropertyDescriptor):
121 * bindings/scripts/test/JS/JSTestObj.cpp:
122 (WebCore::jsTestObjContentDocument):
123 (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
124 * bindings/scripts/test/V8/V8TestObj.cpp:
125 (WebCore::TestObjInternal::contentDocumentAttrGetter):
126 (WebCore::TestObjInternal::getSVGDocumentCallback):
128 2012-02-02 Kalev Lember <kalevlember@gmail.com>
130 [GTK] Make gtk+ symbols available to WidgetBackingStoreCairo.cpp
131 https://bugs.webkit.org/show_bug.cgi?id=77679
133 WidgetBackingStoreCairo.cpp uses GTK+ symbols, so we need it in
134 webcoregtk_sources instead of webcore_sources.
136 Reviewed by Martin Robinson.
138 * GNUmakefile.list.am: Move WidgetBackingStoreCairo.cpp to webcoregtk.
140 2012-02-02 Shinya Kawanaka <shinyak@google.com>
142 StyleRecalc should occur when shadow root exists and light children are changed.
143 https://bugs.webkit.org/show_bug.cgi?id=76262
145 Reviewed by Hajime Morita.
147 When light children is changed, the element included in HTMLContentElement may also be changed.
148 So we have to recalculate inclusion of content element again.
150 Test: fast/dom/shadow/shadow-contents-fallback-dynamic.html
153 (WebCore::Element::childrenChanged):
155 2012-02-02 Ami Fischman <fischman@chromium.org>
157 Avoid crashing renderer when GPU process dies by not caching textures between video frames.
158 https://bugs.webkit.org/show_bug.cgi?id=77654
160 Reviewed by James Robinson.
162 * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
163 (WebCore::CCVideoLayerImpl::draw):
165 2012-02-02 Anders Carlsson <andersca@apple.com>
167 Add ScrollingTree class
168 https://bugs.webkit.org/show_bug.cgi?id=77695
170 Reviewed by Andreas Kling.
172 * WebCore.xcodeproj/project.pbxproj:
175 * page/scrolling/ScrollingCoordinator.cpp:
176 (WebCore::ScrollingCoordinator::ScrollingCoordinator):
177 Create a scrolling tree.
179 (WebCore::ScrollingCoordinator::~ScrollingCoordinator):
180 Assert that the scrolling tree is null.
182 (WebCore::ScrollingCoordinator::pageDestroyed):
183 Null out the scrolling tree member variable and tell it to invalidate itself.
185 * page/scrolling/ScrollingTree.cpp: Added.
187 (WebCore::ScrollingTree::invalidate):
188 Null out the scrolling coordinator, breaking the reference cycle between the scrolling
189 coordinator and the scrolling tree.
191 * page/scrolling/ScrollingTree.h: Added.
193 2012-02-02 Tim Dresser <tdresser@chromium.org>
195 Refactor plugin drawing to be more data driven
196 https://bugs.webkit.org/show_bug.cgi?id=76715
198 Reviewed by James Robinson.
200 CCPluginLayerImpl no longer handles drawing itself, but produces a list of CCPluginDrawQuads.
201 These quads are then drawn by LayerRendererChromium.
203 CCLayerImpl::willDraw(LayerRendererChromium*) is called directly before appendQuads.
204 This allows for CCLayerImpl objects to allocate textures before appendQuads is called.
206 This is a refactor, so no new tests were added.
207 Flash was tested manually on Linux and Mac.
209 * platform/graphics/chromium/LayerRendererChromium.cpp:
210 (WebCore::PluginProgramBinding::set):
211 (PluginProgramBinding):
213 (WebCore::TexStretchPluginProgramBinding::set):
214 (TexStretchPluginProgramBinding):
215 (WebCore::TexTransformPluginProgramBinding::set):
216 (TexTransformPluginProgramBinding):
217 (WebCore::LayerRendererChromium::drawPluginQuad):
218 * platform/graphics/chromium/cc/CCLayerImpl.h:
219 (WebCore::CCLayerImpl::willDraw):
220 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
221 (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
222 * platform/graphics/chromium/cc/CCPluginDrawQuad.cpp:
223 (WebCore::CCPluginDrawQuad::create):
224 (WebCore::CCPluginDrawQuad::CCPluginDrawQuad):
225 * platform/graphics/chromium/cc/CCPluginDrawQuad.h:
227 (WebCore::CCPluginDrawQuad::uvRect):
228 (WebCore::CCPluginDrawQuad::textureId):
229 (WebCore::CCPluginDrawQuad::flipped):
230 (WebCore::CCPluginDrawQuad::ioSurfaceWidth):
231 (WebCore::CCPluginDrawQuad::ioSurfaceHeight):
232 (WebCore::CCPluginDrawQuad::ioSurfaceTextureId):
233 * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
234 (WebCore::CCPluginLayerImpl::willDraw):
235 (WebCore::CCPluginLayerImpl::appendQuads):
236 * platform/graphics/chromium/cc/CCPluginLayerImpl.h:
239 2012-01-29 Pablo Flouret <pablof@motorola.com>
241 V8 idl code generator doesn't handle SerializedScriptValue attributes properly.
242 https://bugs.webkit.org/show_bug.cgi?id=77295
244 Reviewed by Kentaro Hara.
246 Only the case of one (and only one) SerializedScriptValue attribute was
247 handled, and it was deserialized eagerly in the constructor instead of
248 generating getters/setters. This patch gets rid of that behavior and
249 generates the getters and setters instead (similar to what the JSC
251 Also handle the case of SSV attributes with [CachedAttribute]
252 declaration, caching the deserialized value in a hidden attribute on the
255 * bindings/scripts/CodeGeneratorV8.pm:
256 (GenerateNormalAttrGetter):
257 (GenerateNormalAttrSetter):
258 (GenerateConstructorCallback):
259 (GenerateNamedConstructorCallback):
260 (GenerateSingleBatchedAttribute):
261 (GenerateImplementation):
262 (GenerateToV8Converters):
265 * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp:
266 (WebDOMTestSerializedScriptValueInterface::setValue):
267 (WebDOMTestSerializedScriptValueInterface::readonlyValue):
268 (WebDOMTestSerializedScriptValueInterface::cachedValue):
269 (WebDOMTestSerializedScriptValueInterface::setCachedValue):
270 (WebDOMTestSerializedScriptValueInterface::cachedReadonlyValue):
271 * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.h:
272 (WebDOMTestSerializedScriptValueInterface):
273 * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
274 (webkit_dom_test_serialized_script_value_interface_set_value):
275 (webkit_dom_test_serialized_script_value_interface_get_readonly_value):
276 (webkit_dom_test_serialized_script_value_interface_get_cached_value):
277 (webkit_dom_test_serialized_script_value_interface_set_cached_value):
278 (webkit_dom_test_serialized_script_value_interface_get_cached_readonly_value):
279 (webkit_dom_test_serialized_script_value_interface_get_property):
280 (webkit_dom_test_serialized_script_value_interface_class_init):
281 * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
282 * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
284 (WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
286 (WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
287 (WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
288 (WebCore::JSTestSerializedScriptValueInterface::put):
289 (WebCore::setJSTestSerializedScriptValueInterfaceValue):
290 (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
291 * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
292 (JSTestSerializedScriptValueInterface):
293 (JSTestSerializedScriptValueInterfacePrototype):
295 * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h:
296 * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:
297 (-[DOMTestSerializedScriptValueInterface setValue:]):
298 (-[DOMTestSerializedScriptValueInterface readonlyValue]):
299 (-[DOMTestSerializedScriptValueInterface cachedValue]):
300 (-[DOMTestSerializedScriptValueInterface setCachedValue:]):
301 (-[DOMTestSerializedScriptValueInterface cachedReadonlyValue]):
302 * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
303 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
304 (WebCore::TestSerializedScriptValueInterfaceInternal::valueAttrGetter):
305 (TestSerializedScriptValueInterfaceInternal):
306 (WebCore::TestSerializedScriptValueInterfaceInternal::valueAttrSetter):
307 (WebCore::TestSerializedScriptValueInterfaceInternal::readonlyValueAttrGetter):
308 (WebCore::TestSerializedScriptValueInterfaceInternal::cachedValueAttrGetter):
309 (WebCore::TestSerializedScriptValueInterfaceInternal::cachedValueAttrSetter):
310 (WebCore::TestSerializedScriptValueInterfaceInternal::cachedReadonlyValueAttrGetter):
312 (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
313 (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
314 (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
316 2012-02-02 Adam Barth <abarth@webkit.org>
318 BMW Car Configuration Page doesn't work (Only manifests in Chromium)
319 https://bugs.webkit.org/show_bug.cgi?id=77312
321 Reviewed by Dimitri Glazkov.
323 When we autogenerated the event factory, we missed the check for
324 whether touch events were enabled at runtime:
325 http://trac.webkit.org/changeset/97933/trunk/Source/WebCore/dom/Document.cpp
327 This patch adds the check back.
329 Unfortunately, there isn't a testing frame work for
330 RuntimeEnabledFeatures. The main difficulty is that these static bools
331 need to be set when WebKit is initialized and can't be changed (which
332 is why they're not part of WebCore::Settings). To test them properly,
333 we'd need a testing framework that booted up WebKit for each test.
335 We could test this particular change (which doesn't need the bool to be
336 constant through the runtime of WebKit), but that would create a
337 sandtrap for future patches who might thing that this testing framework
338 can really be used to test RuntimeEnabledFeatures.
340 The net result is that Chromium is going to end up living with the
341 non-default codepath for these settings being untested, which will lead
342 to regressions like this one. If we ened up with a bunch of these
343 regressions, we'll likely end up with a testing framework similar to
344 Chromium's browsers_tests, which create a fresh subprocess for each
347 * dom/EventFactory.in:
348 * dom/make_event_factory.pl:
349 (defaultItemFactory):
350 (generateImplementation):
352 2012-02-02 Justin Novosad <junov@chromium.org>
354 [Chromium] Use SkCanvas::flush in skia port
355 https://bugs.webkit.org/show_bug.cgi?id=77463
357 Reviewed by Stephen White.
359 Code cleanup in skia port. Using SkCanvas::flush to remove
360 unnecessary dependency on GrContext. Removed unnecessary inclusions
361 and forward declarations of GrContext in several source files.
363 * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
364 (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
365 * platform/graphics/chromium/LayerRendererChromium.cpp:
366 * platform/graphics/chromium/LayerRendererChromium.h:
367 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
368 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
369 * platform/graphics/chromium/cc/CCProxy.h:
370 * platform/graphics/skia/PlatformContextSkia.cpp:
372 2012-02-02 Chris Marrin <cmarrin@apple.com>
374 Turn on CSS Filters on Windows
375 https://bugs.webkit.org/show_bug.cgi?id=76667
377 Turning on CSS_FILTERS flag for Windows and fixed a couple of resultant build errors
379 Reviewed by Adele Peterson.
381 * WebCore.vcproj/copyForwardingHeaders.cmd:
382 * platform/graphics/ca/win/PlatformCALayerWin.cpp:
383 (PlatformCALayer::setFilters):
384 (PlatformCALayer::filtersCanBeComposited):
386 2012-02-02 Jon Lee <jonlee@apple.com>
388 Clear shown notifications when context is no longer active
389 https://bugs.webkit.org/show_bug.cgi?id=77363
390 <rdar://problem/10568907>
392 Reviewed by Darin Adler.
394 * notifications/NotificationPresenter.h: Add new virtual function to clear notifications
395 associated with a given execution context. By default the notifications are left alone, as
396 before. Individual implementations can override to allow notifications to clear them.
398 * notifications/NotificationCenter.cpp:
399 (WebCore::NotificationCenter::disconnectFrame): When disconnecting the page from the frame, we
400 call clearNotifications().
402 (WebCore::Frame::pageDestroyed): When the page is destroyed, tell the DOM window to reset notifications.
404 2012-02-02 Anders Carlsson <andersca@apple.com>
406 The overhang area layer should have a linen background
407 https://bugs.webkit.org/show_bug.cgi?id=77670
408 <rdar://problem/10797727>
410 Reviewed by Andreas Kling.
412 * page/scrolling/mac/ScrollingCoordinatorMac.mm:
413 (WebCore::ScrollingCoordinator::scrollByOnScrollingThread):
414 Add an #ifdef so that scroll position clamping can be disabled. This will be
415 removed once rubber-banding works properly.
417 * platform/ScrollbarTheme.h:
418 (WebCore::ScrollbarTheme::setUpOverhangAreasLayerContents):
419 Add new empty function.
421 * platform/mac/ScrollbarThemeMac.h:
423 * platform/mac/ScrollbarThemeMac.mm:
424 (WebCore::linenBackgroundColor):
425 Helper function for getting the CGColorRef that represents the linen background color.
427 (WebCore::ScrollbarThemeMac::setUpOverhangAreasLayerContents):
428 Set the linen background color as the overhang areas layer background color.
430 * rendering/RenderLayerCompositor.cpp:
431 (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
432 Call ScrollbarTheme::setUpOverhangAreasLayerContents.
434 2012-02-02 Sheriff Bot <webkit.review.bot@gmail.com>
436 Unreviewed, rolling out r106566.
437 http://trac.webkit.org/changeset/106566
438 https://bugs.webkit.org/show_bug.cgi?id=77673
440 Broke the Windows build (Requested by jessieberlin on
443 * WebCore.vcproj/copyForwardingHeaders.cmd:
444 * platform/graphics/ca/win/PlatformCALayerWin.cpp:
446 2012-02-02 Tommy Widenflycht <tommyw@google.com>
448 [chromium] MediaStream API: Adding the embedding code for MediaStreamCenter
449 https://bugs.webkit.org/show_bug.cgi?id=73130
451 Reviewed by Darin Fisher.
453 Tests for the Media Stream API will be provided by the bug 56587, pending enough landed code.
455 * mediastream/UserMediaClient.h:
457 * mediastream/UserMediaRequest.cpp:
458 (WebCore::UserMediaRequest::didCompleteQuery):
459 * mediastream/UserMediaRequest.h:
461 (WebCore::UserMediaRequest::audio):
462 (WebCore::UserMediaRequest::video):
463 (WebCore::UserMediaRequest::cameraPreferenceUser):
464 (WebCore::UserMediaRequest::cameraPreferenceEnvironment):
465 * platform/mediastream/MediaStreamCenter.cpp:
467 (WebCore::MediaStreamCenter::queryMediaStreamSources):
468 * platform/mediastream/MediaStreamCenter.h:
470 (MediaStreamSourcesQueryClient):
473 2012-02-02 Raymond Toy <rtoy@google.com>
475 Constant values to set "distanceModel" are undefined
476 https://bugs.webkit.org/show_bug.cgi?id=74273
478 Reviewed by Kenneth Russell.
480 Tests: webaudio/distance-exponential.html
481 webaudio/distance-inverse.html
482 webaudio/distance-linear.html
484 * webaudio/AudioPannerNode.h: Define enum for the new constants
485 for the distance models.
486 * webaudio/AudioPannerNode.idl: Define matching constants for the
489 2012-02-02 Raymond Toy <rtoy@google.com>
491 Illegal panner model values should throw an exception
492 https://bugs.webkit.org/show_bug.cgi?id=77235
494 Reviewed by Kenneth Russell.
496 Modified existing panner-set-model test to catch exceptions.
497 Debug build should not crash anymore.
499 * webaudio/AudioPannerNode.cpp:
500 (WebCore::AudioPannerNode::setPanningModel): Throw exception for
501 invalid model values.
502 * webaudio/AudioPannerNode.h:
503 (AudioPannerNode): Update declaration
504 * webaudio/AudioPannerNode.idl: Setting panner model can throw
507 2012-02-02 Kentaro Hara <haraken@chromium.org>
509 Rename [ConvertUndefinedOrNullToNullString] to
510 [TreatNullAs=EmptyString, TreatUndefinedAs=EmptyString]
511 https://bugs.webkit.org/show_bug.cgi?id=77611
513 Reviewed by Adam Barth.
515 This patch renames [ConvertUndefinedOrNullToNullString] to
516 [TreatNullAs=EmptyString, TreatUndefinedAs=EmptyString], according to the spec
517 (http://dev.w3.org/2006/webapi/WebIDL/#TreatNullAs,
518 http://dev.w3.org/2006/webapi/WebIDL/#TreatUndefinedAs).
520 No tests. No changes in behavior.
522 * bindings/scripts/CodeGeneratorJS.pm:
524 * bindings/scripts/CodeGeneratorV8.pm:
525 (GetNativeTypeFromSignature):
526 * dom/DOMImplementation.idl:
529 * fileapi/DirectoryEntry.idl:
530 * fileapi/DirectoryEntrySync.idl:
532 * fileapi/EntrySync.idl:
533 * fileapi/WebKitBlobBuilder.idl:
534 * html/HTMLButtonElement.idl:
535 * html/HTMLCanvasElement.idl:
536 * html/HTMLFieldSetElement.idl:
537 * html/HTMLInputElement.idl:
538 * html/HTMLKeygenElement.idl:
539 * html/HTMLObjectElement.idl:
540 * html/HTMLOutputElement.idl:
541 * html/HTMLSelectElement.idl:
542 * html/HTMLTextAreaElement.idl:
544 * page/DOMWindow.idl:
546 * bindings/scripts/test/TestObj.idl: No changes in run-bindings-tests results.
548 2012-02-02 Anders Carlsson <andersca@apple.com>
550 NPAPI will not send mouse up events when mouse is outside plugin area
551 https://bugs.webkit.org/show_bug.cgi?id=77657
552 <rdar://problem/10160674>
554 Reviewed by Andreas Kling.
556 Export EventHandler::setCapturingMouseEventsNode.
560 2012-02-02 Antti Koivisto <antti@apple.com>
562 Move remaining implementation from CSSStyleDeclaration to subclasses
563 https://bugs.webkit.org/show_bug.cgi?id=77621
565 Reviewed by Andreas Kling.
567 This leaves CSSStyleDeclaration a near-pure CSSOM interface.
569 * bindings/js/JSCSSStyleDeclarationCustom.cpp:
570 (WebCore::isCSSPropertyName):
571 (WebCore::JSCSSStyleDeclaration::putDelegate):
572 * css/CSSComputedStyleDeclaration.cpp:
573 (WebCore::CSSComputedStyleDeclaration::parentRule):
575 * css/CSSComputedStyleDeclaration.h:
576 (CSSComputedStyleDeclaration):
577 * css/CSSMutableStyleDeclaration.cpp:
578 (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
579 (WebCore::CSSMutableStyleDeclaration::contextStyleSheet):
581 (WebCore::CSSMutableStyleDeclaration::parentRule):
582 * css/CSSMutableStyleDeclaration.h:
583 (WebCore::CSSMutableStyleDeclaration::isInlineStyleDeclaration):
584 (WebCore::CSSMutableStyleDeclaration::parentRuleInternal):
585 (WebCore::CSSMutableStyleDeclaration::clearParentRule):
586 (CSSMutableStyleDeclaration):
587 (WebCore::CSSMutableStyleDeclaration::parentElement):
588 (WebCore::CSSMutableStyleDeclaration::clearParentElement):
589 (WebCore::CSSMutableStyleDeclaration::parentStyleSheet):
591 (WebCore::parseColorValue):
592 (WebCore::parseSimpleLengthValue):
593 (WebCore::CSSParser::parseValue):
594 (WebCore::CSSParser::parseDeclaration):
595 * css/CSSStyleDeclaration.cpp:
597 * css/CSSStyleDeclaration.h:
598 (CSSStyleDeclaration):
599 (WebCore::CSSStyleDeclaration::parentStyleSheet):
600 (WebCore::CSSStyleDeclaration::CSSStyleDeclaration):
601 * css/CSSStyleRule.cpp:
602 (WebCore::CSSStyleRule::setSelectorText):
604 Eliminate unnecessary call to CSSMutableStyleDeclaration::parentStyleSheet()
606 * css/CSSStyleRule.h:
607 (WebCore::CSSStyleRule::setDeclaration):
608 * css/CSSStyleSelector.cpp:
609 (WebCore::isInsideRegionRule):
610 (WebCore::CSSStyleSelector::applyDeclaration):
611 * css/WebKitCSSKeyframeRule.cpp:
612 (WebCore::WebKitCSSKeyframeRule::setDeclaration):
613 * page/PageSerializer.cpp:
614 (WebCore::PageSerializer::serializeFrame):
615 (WebCore::PageSerializer::serializeCSSStyleSheet):
616 (WebCore::PageSerializer::retrieveResourcesForCSSRule):
617 (WebCore::PageSerializer::retrieveResourcesForCSSDeclaration):
618 * page/PageSerializer.h:
620 Eliminate unnecessary call to CSSMutableStyleDeclaration::parentStyleSheet()
625 2012-02-02 Chris Marrin <cmarrin@apple.com>
627 Turn on CSS Filters on Windows
628 https://bugs.webkit.org/show_bug.cgi?id=76667
630 Turning on CSS_FILTERS flag for Windows and fixed a couple of resultant build errors
632 Reviewed by Adele Peterson.
634 * WebCore.vcproj/copyForwardingHeaders.cmd:
635 * platform/graphics/ca/win/PlatformCALayerWin.cpp:
636 (PlatformCALayer::setFilters):
637 (PlatformCALayer::filtersCanBeComposited):
639 2012-02-02 Anders Carlsson <andersca@apple.com>
641 Move ScrollingThread to its own file
642 https://bugs.webkit.org/show_bug.cgi?id=77652
644 Reviewed by Sam Weinig.
646 This just shuffles some classes around and makes ScrollingCoordinator call into ScrollingThread.
647 Hopefully we'll be able to make ScrollingThread use the new WebCore::RunLoop class eventually.
649 * WebCore.xcodeproj/project.pbxproj:
650 * page/scrolling/ScrollingCoordinator.cpp:
651 (WebCore::ScrollingCoordinator::handleWheelEvent):
652 * page/scrolling/ScrollingCoordinator.h:
653 (ScrollingCoordinator):
654 * page/scrolling/ScrollingThread.cpp: Added.
656 (WebCore::ScrollingThread::ScrollingThread):
657 (WebCore::ScrollingThread::isCurrentThread):
658 (WebCore::ScrollingThread::dispatch):
659 (WebCore::ScrollingThread::shared):
660 (WebCore::ScrollingThread::createThreadIfNeeded):
661 (WebCore::ScrollingThread::threadCallback):
662 (WebCore::ScrollingThread::threadBody):
663 (WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):
664 * page/scrolling/ScrollingThread.h: Added.
667 * page/scrolling/mac/ScrollingCoordinatorMac.mm:
668 (WebCore::ScrollingCoordinator::scrollByOnScrollingThread):
669 (WebCore::ScrollingCoordinator::updateMainFrameScrollLayerPositionOnScrollingThread):
670 * page/scrolling/mac/ScrollingThreadMac.mm: Added.
672 (WebCore::ScrollingThread::initializeRunLoop):
673 (WebCore::ScrollingThread::wakeUpRunLoop):
674 (WebCore::ScrollingThread::threadRunLoopSourceCallback):
676 2012-02-02 Sheriff Bot <webkit.review.bot@gmail.com>
678 Unreviewed, rolling out r106551.
679 http://trac.webkit.org/changeset/106551
680 https://bugs.webkit.org/show_bug.cgi?id=77648
682 Breaking mac and gtk tests due to font differences. (Requested
683 by _pdr_ on #webkit).
685 * platform/graphics/SVGGlyph.cpp:
686 (WebCore::charactersWithArabicForm):
687 * svg/SVGFontData.cpp:
688 (WebCore::SVGFontData::applySVGGlyphSelection):
692 2012-02-02 Alexander Pavlov <apavlov@chromium.org>
694 Web Inspector: [REGRESSION] Slow continuous DOM traversal with Up/Down keys
695 https://bugs.webkit.org/show_bug.cgi?id=77643
697 Reviewed by Pavel Feldman.
699 Test: inspector/styles/updates-during-dom-traversal.html
701 * inspector/front-end/StylesSidebarPane.js:
702 (WebInspector.StylesSidebarPane.prototype._executeRebuildUpdate):
704 2012-02-02 Claudio Saavedra <csaavedra@igalia.com> and Martin Robinson <mrobinson@igalia.com>
706 [GTK] WebKitWebView won't work in a GtkOffscreenWindow
707 https://bugs.webkit.org/show_bug.cgi?id=76911
709 Reviewed by Philippe Normand.
711 * platform/gtk/GtkUtilities.cpp:
712 (WebCore::widgetIsOnscreenToplevelWindow): Added this helper.
713 * platform/gtk/GtkUtilities.h:
714 (WebCore): Added helper declaration.
716 2012-02-02 Allan Sandfeld Jensen <allan.jensen@nokia.com>
718 Update active and hover state on touch release.
719 https://bugs.webkit.org/show_bug.cgi?id=77620
721 Reviewed by Kenneth Rohde Christiansen.
723 * rendering/HitTestRequest.h:
724 (WebCore::HitTestRequest::move):
725 (WebCore::HitTestRequest::release):
726 (WebCore::HitTestRequest::touchEvent):
727 (WebCore::HitTestRequest::mouseEvent):
728 (WebCore::HitTestRequest::touchMove):
729 (WebCore::HitTestRequest::touchRelease):
730 Rename the enum values in HitTestRequest to be mouse/touch
731 agnostic, and add value for recognizing touch events.
732 * rendering/RenderFrameSet.cpp:
733 (WebCore::RenderFrameSet::nodeAtPoint): Update for HitTestRequest rename.
734 * rendering/RenderLayer.cpp:
735 (WebCore::RenderLayer::hitTest): ditto
736 (WebCore::RenderLayer::updateHoverActiveState): Reset hoverstate on touch release.
737 * page/EventHandler.cpp:
738 (WebCore::EventHandler::updateSelectionForMouseDrag): Update for HitTestRequest rename.
739 (WebCore::EventHandler::handleMouseMoveEvent): ditto
740 (WebCore::EventHandler::handleMouseReleaseEvent): ditto
741 (WebCore::EventHandler::hoverTimerFired): ditto
742 (WebCore::EventHandler::dragSourceEndedAt): ditto
743 (WebCore::EventHandler::handleTouchEvent): Hittest touch release to reset
744 active and hover states and add touch enum to all touch hittests.
746 2012-02-02 Pavel Feldman <pfeldman@google.com>
748 Web Inspector: enable editing of selected rows on single click in elements panel.
749 https://bugs.webkit.org/show_bug.cgi?id=77627
751 Reviewed by Vsevolod Vlasov.
753 * inspector/front-end/ElementsTreeOutline.js:
754 (WebInspector.ElementsTreeElement.prototype.onattach):
755 (WebInspector.ElementsTreeElement.prototype.onselect):
756 (WebInspector.ElementsTreeElement.prototype._mouseDown):
757 * inspector/front-end/treeoutline.js:
758 (TreeElement.prototype.selectOnMouseDown):
759 (TreeElement.prototype.select):
761 2012-02-02 Philip Rogers <pdr@google.com>
763 Fix mirroring with SVG fonts
764 https://bugs.webkit.org/show_bug.cgi?id=77067
766 Reviewed by Nikolas Zimmermann.
768 SVG fonts were incorrectly handling mirrored characters in bidi text.
769 In this change I added the function createStringWithMirroredCharacters
770 which handles mirroring the characters when selecting glyphs for SVG
771 fonts. I also made a small cosmetic change in the function
772 charactersWithArabicForm, changing the bool parameter "mirror" to "rtl"
773 which better reflects what it actually does.
775 Several new tests were added to test mirroring with SVG fonts in the
776 presence of Arabic forms and non-BMP characters.
778 Tests: svg/custom/glyph-selection-arabic-forms.svg
779 svg/custom/glyph-selection-bidi-mirror.svg
780 svg/custom/glyph-selection-non-bmp.svg
782 * platform/graphics/SVGGlyph.cpp:
783 (WebCore::charactersWithArabicForm):
784 * svg/SVGFontData.cpp:
785 (WebCore::SVGFontData::applySVGGlyphSelection):
786 (WebCore::SVGFontData::createStringWithMirroredCharacters):
790 2012-02-02 Pavel Feldman <pfeldman@google.com>
792 Web Inspector: add experiment for single click styles editing.
793 https://bugs.webkit.org/show_bug.cgi?id=77624
795 Reviewed by Vsevolod Vlasov.
797 * inspector/front-end/Settings.js:
798 (WebInspector.ExperimentsSettings):
799 * inspector/front-end/StylesSidebarPane.js:
800 (WebInspector.StylePropertiesSection):
801 (WebInspector.StylePropertyTreeElement.prototype.onattach):
802 (WebInspector.StylePropertyTreeElement.prototype._mouseDown):
803 (WebInspector.StylePropertyTreeElement.prototype._resetMouseDownElement):
804 (WebInspector.StylePropertyTreeElement.prototype):
805 (WebInspector.StylePropertyTreeElement.prototype.selectElement.context):
807 2012-02-02 Kenneth Rohde Christiansen <kenneth@webkit.org>
809 Make the tap highlighting work for all test cases
810 https://bugs.webkit.org/show_bug.cgi?id=77626
812 Reviewed by Simon Hausmann.
814 Clean up of the current code to make it more generic. Now uses
815 addFocusRingRects for finding the areas to highlight.
817 Tested by current manual tests.
819 * page/GestureTapHighlighter.cpp:
820 (WebCore::GestureTapHighlighter::pathForNodeHighlight):
822 2012-02-02 Mario Sanchez Prada <msanchez@igalia.com>
824 [Gtk] atk_text_get_text_at_offset() sometimes fails to provide the correct line
825 https://bugs.webkit.org/show_bug.cgi?id=72382
827 Reviewed by Martin Robinson.
829 Do not add unnecesary blanks at the end of a line of text.
831 * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
832 (textForRenderer): Do not just append a '\n' at the end of a line
833 if the linebreak for that line was already considered.
835 2012-02-02 Raul Hudea <rhudea@adobe.com>
837 Regions should ignore the saved currentRenderFlowThread during repainting
838 because if there are imbricated flow threads, it might end using the wrong one.
840 [CSSRegions] Assert failure in RenderView::computeRectForRepaint
841 https://bugs.webkit.org/show_bug.cgi?id=77430
843 Reviewed by David Hyatt.
845 Test: fast/regions/imbricated-flow-threads-crash.html
847 * rendering/RenderFlowThread.cpp:
848 (CurrentRenderFlowThreadDisabler):
849 (WebCore::CurrentRenderFlowThreadDisabler::CurrentRenderFlowThreadDisabler):
850 (WebCore::CurrentRenderFlowThreadDisabler::~CurrentRenderFlowThreadDisabler):
852 (WebCore::RenderFlowThread::repaintRectangleInRegions):
854 2012-02-02 Kinuko Yasuda <kinuko@chromium.org>
856 Cleanup: Move chrome-specific filesystem type handling code (for FileSystem API) under chromium directory (re-landing r105395)
857 https://bugs.webkit.org/show_bug.cgi?id=76551
859 Reviewed by David Levin.
861 Moved the implementation of crackFileSystemURL() and toURL() from
862 WebCore/fileapi/DOMFileSystemBase into WebCore/platform/AsyncFileSystem
863 so that each platform can extend/implement their behavior if necessary.
865 No new tests as it has no functional changes.
867 * fileapi/DOMFileSystemBase.cpp: Moved crackFileSystemURL() to AsyncFileSystem.
868 * fileapi/DOMFileSystemBase.h:
870 * fileapi/EntryBase.cpp: Moved toURL() to AsyncFileSystem.
871 (WebCore::EntryBase::toURL):
872 * page/DOMWindow.cpp: Made corresponding callsite changes.
873 (WebCore::DOMWindow::webkitRequestFileSystem):
874 (WebCore::DOMWindow::webkitResolveLocalFileSystemURL):
876 * platform/AsyncFileSystem.cpp:
877 (WebCore::AsyncFileSystem::isValidType): Added.
878 * platform/AsyncFileSystem.h:
880 * workers/WorkerContext.cpp: Made corresponding callsite changes.
881 (WebCore::WorkerContext::webkitRequestFileSystem):
882 (WebCore::WorkerContext::webkitRequestFileSystemSync):
883 (WebCore::WorkerContext::webkitResolveLocalFileSystemURL):
884 (WebCore::WorkerContext::webkitResolveLocalFileSystemSyncURL):
885 * workers/WorkerContext.h:
887 2012-02-02 Yury Semikhatsky <yurys@chromium.org>
889 Web Inspector: pause on uncaugh exceptions state is not properly restored
890 https://bugs.webkit.org/show_bug.cgi?id=77558
892 'Pause on exceptions' state is now stored in InspectorState object so that it is
893 properly restored on inspected process change.
895 Reviewed by Vsevolod Vlasov.
897 * inspector/InspectorDebuggerAgent.cpp:
898 (DebuggerAgentState):
899 (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
900 (WebCore::InspectorDebuggerAgent::disable):
901 (WebCore::InspectorDebuggerAgent::restore):
902 (WebCore::InspectorDebuggerAgent::setPauseOnExceptions):
904 (WebCore::InspectorDebuggerAgent::setPauseOnExceptionsImpl):
905 * inspector/InspectorDebuggerAgent.h:
906 (InspectorDebuggerAgent):
908 2012-02-02 Kentaro Hara <haraken@chromium.org>
910 The third argument of addEventListener/removeEventListener of PeerConnection should be optional
911 https://bugs.webkit.org/show_bug.cgi?id=77606
913 Reviewed by Adam Barth.
915 This patch corrects a typo in PeerConnection.idl, i.e. [optional] => [Optional].
917 Test: fast/mediastream/peerconnection-eventlistener-optional-argument.html
919 * mediastream/PeerConnection.idl:
921 2012-02-02 Rakesh KN <rakesh.kn@motorola.com>
923 hidden attribute on <input type=file /> suppresses the file selection dialog
924 https://bugs.webkit.org/show_bug.cgi?id=58208
926 Reviewed by Ryosuke Niwa.
928 We want to allow opening file dialog on hidden element when click() is called
929 on the element. The behaviour is similar to Firefox and IE.
931 Added manual test as the file dialog opens only on user gesture.
933 * html/FileInputType.cpp:
934 (WebCore::FileInputType::handleDOMActivateEvent):
935 Removed renderer check as input can be hidden.
937 2012-02-01 Philippe Normand <pnormand@igalia.com>
939 [GStreamer] FFTFrame implementation
940 https://bugs.webkit.org/show_bug.cgi?id=73545
942 Reviewed by Chris Rogers.
944 FFTFrame implementation based on GStreamer's FFT processing
947 No new tests, existing WebAudio tests cover this.
950 * GNUmakefile.list.am:
951 * platform/audio/FFTFrame.h:
952 * platform/audio/FFTFrameStub.cpp:
953 * platform/audio/gstreamer/FFTFrameGStreamer.cpp: Added.
954 (WebCore::FFTFrame::FFTFrame):
955 (WebCore::FFTFrame::initialize):
956 (WebCore::FFTFrame::cleanup):
957 (WebCore::FFTFrame::~FFTFrame):
958 (WebCore::FFTFrame::multiply):
959 (WebCore::FFTFrame::doFFT):
960 (WebCore::FFTFrame::doInverseFFT):
961 (WebCore::FFTFrame::realData):
962 (WebCore::FFTFrame::imagData):
964 2012-02-02 Kentaro Hara <haraken@chromium.org>
966 Rename [CheckFrameSecurity] and [SVGCheckSecurity] to [CheckAccessToNode]
967 https://bugs.webkit.org/show_bug.cgi?id=77601
969 Reviewed by Adam Barth.
971 [CheckFrameSecurity] and [SVGCheckSecurity] have the same meaning; i.e. generate code
972 to check allowAccessToNode() for a given attribute or method. This patch renames them
973 to [CheckAccessToNode].
975 No tests. No changes in behavior.
977 * bindings/scripts/CodeGeneratorJS.pm:
978 (GenerateImplementation):
979 * bindings/scripts/CodeGeneratorV8.pm:
980 (GenerateNormalAttrGetter):
981 (GenerateFunctionCallback):
982 * html/HTMLEmbedElement.idl:
983 * html/HTMLFrameElement.idl:
984 * html/HTMLIFrameElement.idl:
985 * html/HTMLObjectElement.idl:
987 * bindings/scripts/test/TestObj.idl:
988 * bindings/scripts/test/V8/V8TestObj.cpp: Updated the test results.
991 2012-02-01 Kentaro Hara <haraken@chromium.org>
993 Rename [V8DisallowShadowing] to [V8Unforgeable]
994 https://bugs.webkit.org/show_bug.cgi?id=77599
996 Reviewed by Adam Barth.
998 This patch renames [V8DisallowShadowing] to [V8Unforgeable], following the Web IDL
999 spec (http://dev.w3.org/2006/webapi/WebIDL/#Unforgeable).
1001 No tests. No change in behavior.
1003 * bindings/scripts/CodeGeneratorV8.pm:
1004 (GenerateNormalAttrGetter):
1005 (GenerateSingleBatchedAttribute):
1006 (GenerateImplementation):
1007 * page/DOMWindow.idl:
1008 * page/Location.idl:
1010 2012-02-01 Kentaro Hara <haraken@chromium.org>
1012 Rename [ConvertNullToNullString] to [TreatNullAs=EmptyString]
1013 https://bugs.webkit.org/show_bug.cgi?id=77602
1015 Reviewed by Adam Barth.
1017 This patch renames [ConvertNullToNullString] to [TreatNullAs=EmptyString],
1018 according to the spec (http://dev.w3.org/2006/webapi/WebIDL/#TreatNullAs).
1020 No tests. No changes in behavior.
1022 * bindings/scripts/CodeGeneratorJS.pm:
1024 * bindings/scripts/CodeGeneratorV8.pm:
1025 (GetNativeTypeFromSignature):
1027 * css/CSSCharsetRule.idl:
1028 * css/CSSPageRule.idl:
1030 * css/CSSStyleDeclaration.idl:
1031 * css/CSSStyleRule.idl:
1033 * css/MediaList.idl:
1034 * css/WebKitCSSKeyframesRule.idl:
1036 * dom/CharacterData.idl:
1037 * dom/DOMImplementation.idl:
1040 * dom/NamedNodeMap.idl:
1042 * dom/ProcessingInstruction.idl:
1043 * dom/ShadowRoot.idl:
1044 * html/HTMLAnchorElement.idl:
1045 * html/HTMLButtonElement.idl:
1046 * html/HTMLDocument.idl:
1047 * html/HTMLElement.idl:
1048 * html/HTMLFormElement.idl:
1049 * html/HTMLFrameElement.idl:
1050 * html/HTMLInputElement.idl:
1051 * html/HTMLMediaElement.idl:
1052 * html/HTMLOutputElement.idl:
1053 * html/HTMLScriptElement.idl:
1054 * html/HTMLSelectElement.idl:
1055 * html/HTMLTextAreaElement.idl:
1056 * html/HTMLTitleElement.idl:
1057 * html/canvas/CanvasRenderingContext2D.idl:
1058 * page/DOMWindow.idl:
1059 * storage/StorageEvent.idl:
1061 * svg/SVGElement.idl:
1062 * svg/SVGLength.idl:
1063 * svg/SVGScriptElement.idl:
1065 * bindings/scripts/test/TestObj.idl: No change in the run-bindings-tests results.
1067 2012-02-01 Kentaro Hara <haraken@chromium.org>
1069 Remove [GenerateConstructor] from IDL files
1070 https://bugs.webkit.org/show_bug.cgi?id=77598
1072 Reviewed by Adam Barth.
1074 [GenerateConstructor] is used in some IDL files but it is not implemented
1075 in code generators. I could not find any history about [GenerateConstructor]
1076 in code generators. This patch removes them from IDL files.
1078 Maybe we want to replace [GenerateConstructor] with [Constructor] eventually,
1079 but currently no tests are written for their constructors (e.g. "new DOMTokenList()").
1080 So simply removing them would make sense.
1082 No new tests. No change in behavior.
1084 * dom/DOMStringList.idl:
1085 * html/DOMSettableTokenList.idl:
1086 * html/DOMTokenList.idl:
1087 * svg/SVGFEConvolveMatrixElement.idl:
1088 * webaudio/AudioPannerNode.idl:
1090 2012-02-01 Eric Carlson <eric.carlson@apple.com>
1092 Consider user's preferred language when choosing text tracks
1093 https://bugs.webkit.org/show_bug.cgi?id=74121
1095 Reviewed by Alexey Proskuryakov.
1097 Tests: media/track/track-language-preference.html
1098 media/track/track-prefer-captions.html
1100 * html/HTMLMediaElement.cpp:
1101 (WebCore::HTMLMediaElement::loadTimerFired): configureTextTracks -> configureNewTextTracks.
1102 (WebCore::HTMLMediaElement::textTracksAreReady): Add more comments.
1103 (WebCore::HTMLMediaElement::textTrackModeChanged): Ditto.
1104 (WebCore::HTMLMediaElement::showingTrackWithSameKind): Minor restructuring.
1105 (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Renamed from userIsInterestedInThisTrack,
1106 don't consider user's language preference.
1107 (WebCore::HTMLMediaElement::configureTextTrackGroup): New, configure all tracks in a group,
1108 considering user's kind and language preferences.
1109 (WebCore::HTMLMediaElement::configureNewTextTracks): New, configure all newly added tracks.
1110 * html/HTMLMediaElement.h:
1111 (WebCore::HTMLMediaElement::TrackGroup::TrackGroup):
1114 * platform/Language.cpp:
1115 (WebCore::canonicalLanguageIdentifier): New, create a canonicalized version of a language string.
1116 (WebCore::bestMatchingLanguage): New, return the language from the list that best matches the
1118 (WebCore::preferredLanguageFromList): New, return the language in the specified list that best
1119 matches the user's language preference.
1120 * platform/Language.h:
1122 * testing/Internals.cpp:
1123 (WebCore::Internals::setShouldDisplayTrackType): New, allow DRT to set the track type preference.
1124 (WebCore::Internals::shouldDisplayTrackType): New, allow DRT to read the track type preference.
1125 * testing/Internals.h:
1126 * testing/Internals.idl:
1128 2012-02-01 Hayato Ito <hayato@chromium.org>
1130 Change class hierarycy so that ShadowRoot can inherit DocumentFragment.
1131 https://bugs.webkit.org/show_bug.cgi?id=76693
1133 Reviewed by Darin Adler.
1135 Make ShadowRoot inherit DocumentFragment so that it matches the class hierarchy of IDL in the spec.
1136 TreeScope becomes a separated class, which is now inherited by Document and ShadowRoot using multiple-inheritance.
1137 This patch is pre-requirement for coming IDL change.
1139 No tests. No change in behavior.
1142 (WebCore::Document::Document):
1143 (WebCore::Document::~Document):
1144 (WebCore::Document::buildAccessKeyMap):
1145 (WebCore::Document::childrenChanged):
1146 (WebCore::Document::attach):
1147 (WebCore::Document::detach):
1150 * dom/DocumentFragment.cpp:
1151 (WebCore::DocumentFragment::DocumentFragment):
1152 * dom/DocumentFragment.h:
1154 * dom/DocumentOrderedMap.cpp:
1155 (WebCore::DocumentOrderedMap::get):
1156 * dom/ShadowRoot.cpp:
1157 (WebCore::ShadowRoot::ShadowRoot):
1158 (WebCore::ShadowRoot::~ShadowRoot):
1159 (WebCore::ShadowRoot::attach):
1161 * dom/TreeScope.cpp:
1162 (WebCore::TreeScope::TreeScope):
1163 (WebCore::TreeScope::~TreeScope):
1164 (WebCore::TreeScope::setParentTreeScope):
1165 (WebCore::TreeScope::getImageMap):
1166 (WebCore::TreeScope::findAnchor):
1169 (WebCore::TreeScope::rootNode):
1171 * dom/TreeScopeAdopter.cpp:
1172 (WebCore::TreeScopeAdopter::moveTreeToNewScope):
1173 * page/DragController.cpp:
1174 (WebCore::asFileInput):
1175 * page/FocusController.cpp:
1176 (WebCore::ownerOfTreeScope):
1177 (WebCore::FocusController::nextFocusableNode):
1178 (WebCore::FocusController::previousFocusableNode):
1180 2012-02-01 Benjamin Poulain <bpoulain@apple.com>
1182 WorkerScriptController::evaluate() should not return anything
1183 https://bugs.webkit.org/show_bug.cgi?id=77587
1185 Reviewed by Adam Barth.
1187 Remove the return value from WorkerScriptController as it is
1188 (and should be) unused.
1190 * bindings/js/WorkerScriptController.cpp:
1191 (WebCore::WorkerScriptController::evaluate):
1192 * bindings/js/WorkerScriptController.h:
1193 (WorkerScriptController):
1194 * bindings/v8/WorkerScriptController.cpp:
1195 (WebCore::WorkerScriptController::evaluate):
1196 * bindings/v8/WorkerScriptController.h:
1197 (WorkerScriptController):
1199 2012-02-01 Kentaro Hara <haraken@chromium.org>
1201 Remove [DelegatingPrototypeGetOwnPropertySlot], [HasCustomIndexGetter],
1202 [HasIndexSetter], [JSConstructorTemplate] and [NonEmpty] from code generators
1203 https://bugs.webkit.org/show_bug.cgi?id=77585
1205 Reviewed by Adam Barth.
1207 This patch removes [DelegatingPrototypeGetOwnPropertySlot], [HasCustomIndexGetter],
1208 [HasIndexSetter], [JSConstructorTemplate] and [NonEmpty] from code generators,
1209 since they are not used by no IDL files.
1211 No tests. No change in behavior.
1213 * bindings/scripts/CodeGenerator.pm:
1215 * bindings/scripts/CodeGeneratorJS.pm:
1216 (GenerateGetOwnPropertySlotBody):
1217 (GenerateGetOwnPropertyDescriptorBody):
1219 (GenerateImplementation):
1221 (IsConstructorTemplate):
1223 * bindings/scripts/test/TestObj.idl:
1224 * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated the run-bindings-tests results.
1225 * bindings/scripts/test/CPP/WebDOMTestObj.h: Ditto.
1226 * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto.
1227 (webkit_dom_test_obj_set_property):
1228 (webkit_dom_test_obj_get_property):
1229 (webkit_dom_test_obj_class_init):
1230 * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto.
1231 * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
1233 * bindings/scripts/test/JS/JSTestObj.h: Ditto.
1235 * bindings/scripts/test/ObjC/DOMTestObj.h: Ditto.
1236 * bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto.
1237 * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
1240 2012-02-01 Shinya Kawanaka <shinyak@google.com>
1242 Select attribute of HTMLContentElement should be able be changed dynamically.
1243 https://bugs.webkit.org/show_bug.cgi?id=76261
1245 Reviewed by Hajime Morita.
1247 When select attribute is changed, the flag to recalc style is set.
1249 Test: fast/dom/shadow/content-element-select-dynamic.html
1251 * html/shadow/HTMLContentElement.cpp:
1252 (WebCore::HTMLContentElement::parseMappedAttribute):
1253 Sets recalc style when select is changed.
1254 * html/shadow/HTMLContentElement.h:
1255 (HTMLContentElement):
1257 2012-02-01 Kentaro Hara <haraken@chromium.org>
1259 Remove [ImplementationUUID] and [InterfaceUUID] from html/canvas/*.idl
1260 https://bugs.webkit.org/show_bug.cgi?id=77589
1262 Reviewed by Adam Barth.
1264 [ImplementationUUID] and [InterfaceUUID] are used in html/canvas/*.idl,
1265 but they are not implemented in code generators and thus have no meaning.
1266 This patch removes them.
1268 No tests. No change in behavior.
1270 * html/canvas/CanvasGradient.idl:
1271 * html/canvas/CanvasPattern.idl: The file is now empty though.
1272 * html/canvas/CanvasRenderingContext.idl:
1273 * html/canvas/CanvasRenderingContext2D.idl:
1274 * html/canvas/WebGLRenderingContext.idl:
1276 2012-02-01 Sheriff Bot <webkit.review.bot@gmail.com>
1278 Unreviewed, rolling out r106408.
1279 http://trac.webkit.org/changeset/106408
1280 https://bugs.webkit.org/show_bug.cgi?id=77592
1282 crashes in chromium mac release tests (Requested by japhet on
1285 * platform/graphics/Region.cpp:
1286 * platform/graphics/Region.h:
1290 2012-02-01 No'am Rosenthal <noam.rosenthal@nokia.com>
1292 [Texmap] Use glScissors for clipping in TextureMapperGL when possible
1293 https://bugs.webkit.org/show_bug.cgi?id=77575
1295 Reviewed by Martin Robinson.
1297 Maintain a clipping stack, that helps us use stencils in conjunction with scissors.
1298 We apply scissors when the clip region is rectalinear, and stencil when it's not.
1300 No behavior changes so no new tests.
1302 * platform/graphics/opengl/TextureMapperGL.cpp:
1304 (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
1305 (WebCore::TextureMapperGL::drawTexture):
1306 (WebCore::TextureMapperGL::bindSurface):
1308 (WebCore::scissorClip):
1309 (WebCore::TextureMapperGL::beginScissorClip):
1310 (WebCore::TextureMapperGL::endScissorClip):
1311 (WebCore::TextureMapperGL::beginClip):
1312 (WebCore::TextureMapperGL::endClip):
1313 * platform/graphics/opengl/TextureMapperGL.h:
1316 2012-02-01 Anders Carlsson <andersca@apple.com>
1318 Move the scrolling coordinator to page/scrolling
1319 https://bugs.webkit.org/show_bug.cgi?id=77590
1321 Reviewed by Dan Bernstein.
1323 Put scrolling related files in page/scrolling to avoid cluttering the page directory.
1325 * WebCore.xcodeproj/project.pbxproj:
1326 * page/scrolling/ScrollingCoordinator.cpp: Renamed from Source/WebCore/page/ScrollingCoordinator.cpp.
1327 * page/scrolling/ScrollingCoordinator.h: Renamed from Source/WebCore/page/ScrollingCoordinator.h.
1328 * page/scrolling/mac/ScrollingCoordinatorMac.mm: Renamed from Source/WebCore/page/mac/ScrollingCoordinatorMac.mm.
1330 2012-02-01 Kentaro Hara <haraken@chromium.org>
1332 Remove [ObjCPrefix], [V8ConstructorTemplate], [allowAccessToNode],
1333 [v8implname] and [v8referenceattr] from code generators
1334 https://bugs.webkit.org/show_bug.cgi?id=77588
1336 Reviewed by Adam Barth.
1338 This patch removes [ObjCPrefix], [V8ConstructorTemplate], [allowAccessToNode],
1339 [v8implname] and [v8referenceattr] from code generators, since they are not used
1342 No tests. No changes in behavior.
1344 * bindings/scripts/CodeGeneratorJS.pm:
1345 (GenerateImplementation):
1346 * bindings/scripts/CodeGeneratorObjC.pm:
1348 (GenerateImplementation):
1349 * bindings/scripts/CodeGeneratorV8.pm:
1351 (IsConstructorTemplate):
1352 (GenerateNormalAttrGetter):
1353 (GenerateFunctionCallString):
1355 2012-02-01 Pablo Flouret <pablof@motorola.com>
1357 Support targetOrigin = "/" in postMessage for sending messages to same origin as source document.
1358 https://bugs.webkit.org/show_bug.cgi?id=77580
1360 Reviewed by Adam Barth.
1362 No new tests. Modified http/tests/security/postMessage/target-origin.html
1363 to test this case as well.
1365 * page/DOMWindow.cpp:
1366 (WebCore::DOMWindow::postMessage):
1368 2012-02-01 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
1370 Avoid creating NamedNodeMap unnecessarily
1371 https://bugs.webkit.org/show_bug.cgi?id=77574
1373 Reviewed by Ryosuke Niwa.
1375 The method Element::attributes() was being used for multiple things in our
1376 codebase: (1) as the getter for NamedNodeMap exposed to DOM, (2) as a way to other WebCore
1377 code get the "attribute storage" (currently inside NamedNodeMap), and (3) as a way to
1378 get the attribute storage creating one if necessary.
1380 This commit separate the jobs in different functions:
1382 1) attributes() keeps being the DOM getter, and loses its boolean parameter.
1384 2) updatedAttributes() updates the invalid attributes and returns the attribute
1385 storage. If we don't have one, return 0.
1387 3) ensureUpdatedAttributes() updates the invalid attributes and forces the
1388 creation of attribute storage to return.
1390 There is also another way to get to the attribute storage currently, via
1391 attributeMap(), which doesn't update the attributes for possible changes in Style
1394 Note that the new functions are not available in Node class, so C++ code manipulating
1395 attributes should cast to Element.
1397 This separation also made easier to spot and fix some places where we do not
1398 need to create the attribute storage if it doesn't exist.
1400 No new tests, this commit shouldn't change the behavior of existing code.
1402 * css/SelectorChecker.cpp:
1403 (WebCore::SelectorChecker::checkOneSelector):
1404 * dom/DatasetDOMStringMap.cpp:
1405 (WebCore::DatasetDOMStringMap::getNames):
1406 (WebCore::DatasetDOMStringMap::item):
1407 (WebCore::DatasetDOMStringMap::contains):
1409 (WebCore::Document::importNode):
1411 (WebCore::Element::setAttribute):
1412 (WebCore::Element::hasAttributes):
1413 (WebCore::Element::setAttributeNode):
1414 (WebCore::Element::setAttributeNodeNS):
1415 (WebCore::Element::removeAttributeNode):
1416 (WebCore::Element::getAttributeNode):
1417 (WebCore::Element::getAttributeNodeNS):
1418 (WebCore::Element::hasAttribute):
1419 (WebCore::Element::hasAttributeNS):
1420 (WebCore::Element::normalizeAttributes):
1423 (WebCore::Element::attributes):
1424 (WebCore::Element::ensureAttributeData):
1425 (WebCore::Element::ensureUpdatedAttributes):
1426 (WebCore::Element::updatedAttributes):
1427 (WebCore::Element::setAttributesFromElement):
1428 (WebCore::Element::ensureAttributeMap): Made const to be reused by ensureUpdatedAttributes().
1429 (WebCore::Element::updateInvalidAttributes):
1431 * dom/NamedNodeMap.cpp:
1432 (WebCore::NamedNodeMap::mapsEquivalent): Having no attributes is equivalent to
1433 not having an attribute storage because the attribute storage is lazily created.
1435 (WebCore::Node::isEqualNode): Do not force the creation of attribute storage to
1437 (WebCore::Node::isDefaultNamespace): Use updatedAttributes(). Since we iterate
1438 using length, it's OK if the attribute storage is empty.
1439 (WebCore::Node::lookupNamespaceURI): Ditto.
1440 (WebCore::Node::lookupNamespacePrefix): Ditto.
1441 (WebCore::Node::compareDocumentPosition): Ditto.
1442 * editing/ApplyStyleCommand.cpp:
1443 (WebCore::hasNoAttributeOrOnlyStyleAttribute):
1444 (WebCore::isEmptyFontTag):
1445 * editing/CompositeEditCommand.cpp:
1446 (WebCore::CompositeEditCommand::isRemovableBlock): Use isElementNode() explicitly
1447 to identify non-Element nodes, then use hasAttributes() if is Element.
1448 * editing/InsertParagraphSeparatorCommand.cpp:
1449 (WebCore::highestVisuallyEquivalentDivBelowRoot):
1450 * editing/MarkupAccumulator.cpp:
1451 (WebCore::MarkupAccumulator::appendElement): Do not create the attribute storage
1453 * editing/htmlediting.cpp:
1454 (WebCore::areIdenticalElements): Do not create the attribute storage
1455 unnecessarily. Use mapsEquivalent() for comparing the attributes.
1456 * editing/markup.cpp:
1457 (WebCore::completeURLs): Do not create the attribute storage unnecessarily.
1458 (WebCore::StyledMarkupAccumulator::appendElement): Ditto.
1459 (WebCore::isPlainTextMarkup): hasAttributes() will avoid creating the attribute
1460 storage unnecessarily.
1461 * html/HTMLEmbedElement.cpp:
1462 (WebCore::HTMLEmbedElement::parametersForPlugin):
1463 * html/HTMLObjectElement.cpp:
1464 (WebCore::HTMLObjectElement::parametersForPlugin):
1465 * html/HTMLParamElement.cpp:
1466 (WebCore::HTMLParamElement::isURLAttribute): Do not create the attribute storage
1468 * html/parser/HTMLConstructionSite.cpp:
1469 (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement): Use
1470 ensureUpdatedAttributes() since we will add new attributes.
1472 * inspector/InspectorCSSAgent.cpp:
1473 (WebCore::InspectorCSSAgent::buildArrayForAttributeStyles):
1474 * inspector/InspectorDOMAgent.cpp:
1475 (WebCore::InspectorDOMAgent::setAttributesAsText):
1476 (WebCore::InspectorDOMAgent::performSearch):
1477 (WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
1478 * page/PageSerializer.cpp:
1479 (WebCore::isCharsetSpecifyingNode): Do not assume attributeMap will exist.
1480 * svg/properties/SVGAnimatedPropertySynchronizer.h: Use ensureUpdatedAttributes()
1481 since we will add new attributes.
1482 * xml/XPathFunctions.cpp:
1483 (WebCore::XPath::FunLang::evaluate): Do not create the attribute storage
1485 * xml/XPathNodeSet.cpp:
1486 (WebCore::XPath::NodeSet::traversalSort):
1487 * xml/XPathStep.cpp:
1488 (WebCore::XPath::Step::nodesInAxis): Use isElementNode() instead of comparing
1489 nodeType() manually. Do not create the attribute storage unnecessarily.
1490 * xml/parser/XMLDocumentParserLibxml2.cpp:
1491 (WebCore::XMLDocumentParser::XMLDocumentParser): Do not create the attribute
1492 storage unnecessarily.
1493 * xml/parser/XMLDocumentParserQt.cpp:
1494 (WebCore::XMLDocumentParser::XMLDocumentParser): Ditto.
1495 * xml/parser/XMLTreeBuilder.cpp:
1496 (WebCore::XMLTreeBuilder::XMLTreeBuilder): Ditto.
1498 2012-02-01 Adam Barth <abarth@webkit.org>
1500 contentDispositionType misparses the Content-Disposition header in some obscure corner cases
1501 https://bugs.webkit.org/show_bug.cgi?id=77577
1503 Reviewed by Eric Seidel.
1505 The contentDispositionType extracts the disposition-type from the
1506 Content-Disposition header. According to RFC 6266 (and previous RFCs),
1507 the disposition-type must be an RFC 2616 token. Rather than enforce
1508 this general rule, we had special-cased some examples (including
1509 name=foo and filename=bar). This patch generalizes our check to
1510 properly validate that the disposition-type is an RFC 2616 token.
1512 In conjunction with some other work in the Chromium network stack, this
1513 causes Chromium to pass the following tests:
1515 http://greenbytes.de/tech/tc2231/#inlonlyquoted
1516 http://greenbytes.de/tech/tc2231/#attonlyquoted
1518 Without this patch, these test cases neither trigger a navigation nor a
1519 download in Chromium. This patch does not appear to cause any visible
1520 change in Safari. (Safari passes these tests both before and after
1523 * platform/network/HTTPParsers.cpp:
1524 (WebCore::isRFC2616Token):
1525 (WebCore::contentDispositionType):
1526 - This patch also adds a comment to
1527 filenameFromHTTPContentDisposition, which explains some of the
1528 was this function incorrectly implements the requirements in
1529 RFC 6266. Resolving these issues is a subject for a future
1531 * platform/network/HTTPParsers.h:
1533 2012-02-01 Dan Bernstein <mitz@apple.com>
1535 WebCore part of <rdar://problem/10442663> Paginated display does not respect page-break-{before,after}
1536 https://bugs.webkit.org/show_bug.cgi?id=77505
1538 Reviewed by Darin Adler.
1541 (WebCore::Page::Pagination::Pagination): Added initializer for the behavesLikeColumns member
1543 (WebCore::Page::Pagination::operator==): Added comparison of behavesLikeColumns values.
1544 (Pagination): Added behavesLikeColumns member variable. When set to false (the default),
1545 paginated display respects the page-break-{before,after} properties rather than the
1546 column-break-{before,after} ones.
1547 * rendering/ColumnInfo.h:
1548 (WebCore::ColumnInfo::ColumnInfo): Added initializer for the m_paginationUnit member.
1549 (WebCore::ColumnInfo::paginationUnit): Added this getter.
1550 (WebCore::ColumnInfo::setPaginationUnit): Added this setter.
1551 (ColumnInfo): Added m_paginationUnit member. It defaults to Column.
1552 * rendering/LayoutState.h:
1553 (WebCore::LayoutState::isPaginatingColumns): Changed to check the pagination unit.
1554 * rendering/RenderBlock.cpp:
1555 (WebCore::RenderBlock::layoutBlock): Added code to set the pagination unit in the ColumnInfo.
1556 (WebCore::RenderBlock::paginationUnit): Added. The base class implementation returns Column.
1557 * rendering/RenderBlock.h:
1558 * rendering/RenderView.cpp:
1559 (WebCore::RenderView::paginationUnit): Added this override that returns Page, unless
1560 this is the RenderView for the main frame and pagination is set to behave like columns.
1561 * rendering/RenderView.h:
1563 2012-02-01 Florin Malita <fmalita@google.com>
1565 Backgrounds in HTML inside foreignObject don't draw
1566 https://bugs.webkit.org/show_bug.cgi?id=23111
1568 Reviewed by Eric Seidel.
1570 Test: svg/foreignObject/body-background.svg
1572 * rendering/RenderBox.cpp:
1573 (WebCore::RenderBox::paintBackground):
1574 Tweak the <body> background inhibiting logic to allow drawing when the element is embedded in FOs.
1577 2012-02-01 Gustavo Lima Chaves <glima@profusion.mobi>
1579 Make one able to set the local storage (tracker) database dir's path
1580 https://bugs.webkit.org/show_bug.cgi?id=77006
1582 Reviewed by Darin Adler.
1584 There are no behavior changes with the diff, so no need for new tests.
1586 * storage/StorageTracker.cpp:
1587 (WebCore::StorageTracker::setDatabaseDirectoryPath):
1589 (WebCore::StorageTracker::databaseDirectoryPath):
1590 * storage/StorageTracker.h:
1593 2012-02-01 Anders Carlsson <andersca@apple.com>
1597 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
1598 (WebCore::LayerClient::platformCALayerDidCreateTiles):
1599 * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
1600 (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerDidCreateTiles):
1602 2012-02-01 John Yani <vanuan@gmail.com>
1604 GetMIMEDescription should return const char *
1605 https://bugs.webkit.org/show_bug.cgi?id=77297
1607 Reviewed by Alexey Proskuryakov.
1609 No new tests. No change in behaviour.
1611 * plugins/blackberry/PluginPackageBlackBerry.cpp:
1612 (WebCore::PluginPackage::fetchInfo):
1613 * plugins/efl/PluginPackageEfl.cpp:
1615 (WebCore::PluginPackage::fetchInfo):
1617 * plugins/npfunctions.h:
1618 * plugins/qt/PluginPackageQt.cpp:
1619 (WebCore::PluginPackage::fetchInfo):
1621 2012-02-01 Timothy Hatcher <timothy@apple.com>
1623 Consolidate duplicate "willHide" functions in DetailedHeapshotView.js to fix
1624 a syntax error in JSC and make the Inspector open again in Release builds.
1626 https://webkit.org/b/77424
1628 Reviewed by Brian Weinstein.
1630 * inspector/front-end/DetailedHeapshotView.js:
1631 (WebInspector.DetailedHeapshotView.prototype.willHide): Consolidated.
1632 (WebInspector.DetailedHeapshotView.prototype.willHide): Removed.
1634 2012-02-01 Justin Novosad <junov@chromium.org>
1636 [Chromium] Enable deferred canvas rendering in the skia port
1637 https://bugs.webkit.org/show_bug.cgi?id=76732
1639 Reviewed by Stephen White.
1641 No new tests: covered by existing canvas layout tests
1643 Adding a new setting to enable deferred 2d canvas rendering.
1644 Added support for deferred 2d canvas rendering in ImageBufferSkia
1645 and Canvas2DLayerChromium, mostly plumbing. Deffered rendering
1646 implementation is provided by skia (class SkDeferredCanvas).
1648 * html/HTMLCanvasElement.cpp:
1649 (WebCore::HTMLCanvasElement::shouldDefer):
1651 (WebCore::HTMLCanvasElement::createImageBuffer):
1652 * html/HTMLCanvasElement.h:
1653 (HTMLCanvasElement):
1654 * page/Settings.cpp:
1655 (WebCore::Settings::Settings):
1656 (WebCore::Settings::setAccelerated2dCanvasEnabled):
1658 (WebCore::Settings::setDeferred2dCanvasEnabled):
1661 (WebCore::Settings::deferred2dCanvasEnabled):
1662 * platform/graphics/ImageBuffer.h:
1663 (WebCore::ImageBuffer::create):
1665 * platform/graphics/cairo/ImageBufferCairo.cpp:
1666 (WebCore::ImageBuffer::ImageBuffer):
1667 * platform/graphics/cg/ImageBufferCG.cpp:
1668 (WebCore::ImageBuffer::ImageBuffer):
1669 * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1670 (WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
1672 (WebCore::Canvas2DLayerChromium::setCanvas):
1673 (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
1674 * platform/graphics/chromium/Canvas2DLayerChromium.h:
1675 (Canvas2DLayerChromium):
1676 * platform/graphics/qt/ImageBufferQt.cpp:
1677 (WebCore::ImageBuffer::ImageBuffer):
1678 * platform/graphics/skia/ImageBufferSkia.cpp:
1679 (AcceleratedDeviceContext):
1680 (WebCore::AcceleratedDeviceContext::AcceleratedDeviceContext):
1681 (WebCore::AcceleratedDeviceContext::prepareForDraw):
1682 (WebCore::AcceleratedDeviceContext::flush):
1684 (WebCore::createAcceleratedCanvas):
1685 (WebCore::ImageBuffer::ImageBuffer):
1686 * platform/graphics/wince/ImageBufferWinCE.cpp:
1687 (WebCore::ImageBuffer::ImageBuffer):
1688 * platform/graphics/wx/ImageBufferWx.cpp:
1689 (WebCore::ImageBuffer::ImageBuffer):
1691 2012-02-01 Ryosuke Niwa <rniwa@webkit.org>
1693 Gcc build fix after r106482.
1695 * platform/graphics/ca/GraphicsLayerCA.h:
1698 2012-02-01 Beth Dakin <bdakin@apple.com>
1700 https://bugs.webkit.org/show_bug.cgi?id=77383
1701 Add a different didFirstVisuallNonEmptyLayout heuristic to experiment with
1703 <rdar://problem/10709560>
1705 Reviewed by Sam Weinig.
1707 The goal is to re-vamp didFirstVisuallyNonEmptyLayout to be more accurate.
1708 This patch adds a new heuristic called didNewFirstVisuallNonEmptyLayout and
1709 leaves the old one for the time being. That is temporary.
1711 The heuristic for didNewFirstVisuallNonEmptyLayout is to count relevant
1712 painted RenderObjects on Page.
1714 (WebCore::Page::Page):
1715 (WebCore::Page::setPaintedObjectsCounterThreshold):
1716 (WebCore::Page::addRelevantRepaintedObject):
1720 (WebCore::Page::startCountingRepaintedObjects):
1723 Start counting relevant painted RenderObjects on the page once the first
1725 * page/FrameView.cpp:
1726 (WebCore::FrameView::performPostLayoutTasks):
1728 Machinery for firing didNewFirstVisuallNonEmptyLayout.
1729 * loader/EmptyClients.h:
1730 (WebCore::EmptyFrameLoaderClient::dispatchDidNewFirstVisuallyNonEmptyLayout):
1731 * loader/FrameLoader.cpp:
1732 (WebCore::FrameLoader::didNewFirstVisuallyNonEmptyLayout):
1734 * loader/FrameLoader.h:
1736 * loader/FrameLoaderClient.h:
1737 (WebCore::FrameLoaderClient::dispatchDidNewFirstVisuallyNonEmptyLayout):
1739 These RenderObjects are the ones that this api currently consider to be
1740 relevant. If their repaint rects intersect with the viewRect, then they are
1741 added to the relevant objects set on the Page.
1742 * rendering/InlineBox.cpp:
1743 (WebCore::InlineBox::paint):
1744 * rendering/InlineTextBox.cpp:
1745 (WebCore::InlineTextBox::paint):
1746 * rendering/RenderEmbeddedObject.cpp:
1747 (WebCore::RenderEmbeddedObject::paintReplaced):
1748 * rendering/RenderHTMLCanvas.cpp:
1749 (WebCore::RenderHTMLCanvas::paintReplaced):
1750 * rendering/RenderImage.cpp:
1751 (WebCore::RenderImage::paintReplaced):
1752 * rendering/RenderRegion.cpp:
1753 (WebCore::RenderRegion::paintReplaced):
1754 * rendering/RenderReplaced.cpp:
1755 (WebCore::RenderReplaced::paint):
1756 * rendering/RenderVideo.cpp:
1757 (WebCore::RenderVideo::paintReplaced):
1758 * rendering/svg/RenderSVGRoot.cpp:
1759 (WebCore::RenderSVGRoot::paintReplaced):
1761 2012-02-01 Alexis Menard <alexis.menard@openbossa.org>
1763 CSSStyleDeclaration.getPropertyPriority() fails for CSS shorthand properties with 'important' priority
1764 https://bugs.webkit.org/show_bug.cgi?id=49058
1766 Reviewed by Andreas Kling.
1768 CSSMutableStyleDeclaration::getPropertyPriority was not handling shorthands properly. Shorthands are
1769 not part of the property list of the style so we need to query the longhands which are the one added
1770 in the list. Only if the longhands have equal priority the shorthand priority is known. I also renamed
1771 getPropertyPriority (not the CSSOM exposed method) to something more consistent with WebKit naming guidelines.
1773 Test: fast/css/shorthand-priority.html
1775 * css/CSSMutableStyleDeclaration.cpp:
1776 (WebCore::CSSMutableStyleDeclaration::propertyIsImportant):
1777 (WebCore::CSSMutableStyleDeclaration::addParsedProperty):
1778 (WebCore::CSSMutableStyleDeclaration::getPropertyPriority):
1779 * css/CSSMutableStyleDeclaration.h:
1780 (CSSMutableStyleDeclaration):
1781 * editing/EditingStyle.cpp:
1782 (WebCore::EditingStyle::extractAndRemoveTextDirection):
1783 (WebCore::EditingStyle::collapseTextDecorationProperties):
1784 (WebCore::EditingStyle::conflictsWithInlineStyleOfElement):
1785 (WebCore::setTextDecorationProperty):
1786 * editing/RemoveCSSPropertyCommand.cpp:
1787 (WebCore::RemoveCSSPropertyCommand::doApply):
1789 2012-02-01 Ryosuke Niwa <rniwa@webkit.org>
1791 Crash in EventHandler::updateDragAndDrop
1792 https://bugs.webkit.org/show_bug.cgi?id=77569
1794 Reviewed by Alexey Proskuryakov.
1796 Test: fast/events/remove-target-with-shadow-in-drag.html
1798 * page/EventHandler.cpp:
1799 (WebCore::EventHandler::updateDragAndDrop):
1801 2012-02-01 Sheriff Bot <webkit.review.bot@gmail.com>
1803 Unreviewed, rolling out r106382.
1804 http://trac.webkit.org/changeset/106382
1805 https://bugs.webkit.org/show_bug.cgi?id=77571
1807 Causing chromium crashes in PNGImageDecoder (Requested by
1810 * bindings/v8/V8Proxy.cpp:
1811 (WebCore::V8Proxy::evaluate):
1813 (WebCore::Console::time):
1814 (WebCore::Console::timeEnd):
1815 * platform/chromium/PlatformSupport.h:
1816 * platform/chromium/TraceEvent.h:
1819 (WebCore::internal::ScopeTracer::ScopeTracer):
1820 (WebCore::internal::ScopeTracer::~ScopeTracer):
1822 2012-02-01 Anders Carlsson <andersca@apple.com>
1824 Reviewed by Darin Adler.
1826 Simplify the code that creates a new tile layer by getting a reference to the RetainPtr<WebTileLayer>&
1827 slot in the hash map and assign directly into it.
1829 * platform/graphics/ca/mac/TileCache.mm:
1830 (WebCore::TileCache::revalidateTiles):
1832 2012-02-01 Anders Carlsson <andersca@apple.com>
1834 Tile cache doesn't have an upper limit
1835 https://bugs.webkit.org/show_bug.cgi?id=77564
1836 <rdar://problem/10710744>
1838 Reviewed by Darin Adler.
1840 Cache enough tiles to cover 3x the visible height and 2x the visible width of the page,
1841 and drop tiles that are outside that area.
1843 * platform/graphics/ca/GraphicsLayerCA.cpp:
1844 (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
1845 Call GraphicsLayerClient::notifySyncRequired here, which will schedule a layer flush and ensure that
1846 the page layout is up to date before the new tiles are painted.
1848 * platform/graphics/ca/PlatformCALayerClient.h:
1849 Add platformCALayerDidCreateTiles member function.
1851 * platform/graphics/ca/mac/TileCache.h:
1852 Update for new/removed member functions and member variables.
1854 * platform/graphics/ca/mac/TileCache.mm:
1855 (WebCore::TileCache::TileCache):
1856 Initialize the tile revalidation timer.
1858 (WebCore::TileCache::tileCacheLayerBoundsChanged):
1859 If we don't have any tiles at all right now, revalidate the tiles immediately. Otherwise,
1860 schedule the revalidation timer.
1862 (WebCore::TileCache::setNeedsDisplayInRect):
1863 Return early if we have no tiles.
1865 (WebCore::TileCache::visibleRectChanged):
1866 Schedule tile revalidation.
1868 (WebCore::TileCache::rectForTileIndex):
1869 New helper function that returns the bounds rect of a tile given its tile index.
1871 (WebCore::TileCache::getTileIndexRangeForRect):
1872 Clamp the rect to the bounds of the tile cache layer.
1874 (WebCore::TileCache::scheduleTileRevalidation):
1875 Schedule the revalidation timer if it hasn't already been scheduled.
1877 (WebCore::TileCache::tileRevalidationTimerFired):
1878 Call revalidateTiles.
1880 (WebCore::TileCache::revalidateTiles):
1881 Compute the tile coverage rect and remove all tiles that are outside. Create new tiles for any
1882 parts of the tile coverage rect that don't have tiles already.
1884 (WebCore::TileCache::tileLayerAtIndex):
1885 Remove invalid assertions.
1887 2012-02-01 Max Vujovic <mvujovic@adobe.com>
1889 Add support for fixed and percent min-width on the table element for table-layout: auto to
1890 match Firefox and Opera's behavior.
1892 In FixedTableLayout.cpp, the computePreferredLogicalWidths method looks like it has
1893 issues based on the comment: "FIXME: This entire calculation is incorrect for both
1894 minwidth and maxwidth." (minwidth and maxwidth refer to the preferred widths, not the
1895 min-width and max-width styles). I have not implemented min-width for FixedTableLayout
1896 in this patch since it requires some more research around that comment.
1898 min-width and max-width on the table element was discussed on the www-style list:
1899 http://lists.w3.org/Archives/Public/www-style/2012Jan/0684.html
1901 min-width is not implemented on <table> for table-layout: auto
1902 https://bugs.webkit.org/show_bug.cgi?id=76553
1904 Reviewed by Julien Chaffraix.
1906 Test: fast/table/min-width.html
1908 * rendering/AutoTableLayout.cpp:
1909 (WebCore::AutoTableLayout::computePreferredLogicalWidths):
1911 If the min or max preferred logical width is less than a fixed min width style, it is
1912 set to the fixed min width style. Like a percent width style, a percent min-width style
1913 does not affect the min or max preferred logical widths computed by the table layout
1914 algorithm. RenderTable's computeLogicalWidth method handles percent min-width styles.
1916 min-width for the table-layout: fixed case has been split out into this bug:
1917 https://bugs.webkit.org/show_bug.cgi?id=76948
1919 * rendering/RenderTable.cpp:
1920 (WebCore::RenderTable::computeLogicalWidth):
1922 If the RenderStyle's logical min width is defined and greater than the logical width
1923 calculation, this method sets the logical width to the logical min width.
1925 (WebCore::RenderTable::convertStyleWidthToComputedWidth):
1927 This new method generalizes and factors out logic from RenderTable::computeLogicalWidth
1928 that converted the width style to a computed value in the fixed and percent case.
1929 RenderTable::computeLogicalWidth now calls this method to determine the computed values
1930 for both the width style and the min-width style. In the future, it can also be used for
1931 the max-width style.
1933 Note that this method handles the special CSS table case, which requires borders and
1934 paddings to be included in the computed width calculation. This applies to all width
1935 styles, including width, min-width, and max-width. Before, this special case was handled
1936 in RenderTable::computeLogicalWidth.
1938 * rendering/RenderTable.h:
1940 2012-02-01 Brian Salomon <bsalomon@google.com>
1942 [SKIA/CHROMIUM] Perform getImageData format conversions using Skia
1943 https://bugs.webkit.org/show_bug.cgi?id=77553
1945 Reviewed by Stephen White.
1947 Many existing canvas tests exercise this functionality.
1949 * platform/graphics/skia/ImageBufferSkia.cpp:
1950 (WebCore::getImageData):
1952 2012-02-01 Nate Chapin <japhet@chromium.org>
1954 preventDefault() in a mousedown in a subframe should not
1955 prevent the scrollbar from handling mouse movements if the
1956 cursor leaves the subframe.
1957 https://bugs.webkit.org/show_bug.cgi?id=73097
1959 Reviewed by Darin Adler.
1961 Test: fast/events/scroll-div-with-prevent-default-in-subframe.html
1963 * page/EventHandler.cpp:
1964 (WebCore::EventHandler::handleMousePressEvent):
1966 2012-02-01 Mario Sanchez Prada <msanchez@igalia.com>
1968 [GTK] editing/inserting/4960120-2.html flaky crash
1969 https://bugs.webkit.org/show_bug.cgi?id=76815
1971 Reviewed by Martin Robinson.
1973 Check if the node for the first parent object not ignoring
1974 accessibility is null before using it. This might happen with
1975 certain kind of accessibility objects, such as the root one (the
1976 scroller containing the webArea object as its only child).
1978 * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
1979 (objectFocusedAndCaretOffsetUnignored): Add missing null check.
1981 2012-02-01 Antti Koivisto <antti@apple.com>
1983 Make CSSMappedAttributeDeclaration have CSSMutableStyleDeclaration instead of being one
1984 https://bugs.webkit.org/show_bug.cgi?id=77545
1986 Reviewed by Andreas Kling.
1988 This is the easiest path for eliminating the last remaining subclass of CSSMutableStyleDeclaration.
1990 On negative side this increases memory use of CSSMappedAttributeDeclaration by one ptr and refcount
1991 (it loses the vptr) in total.
1993 This is not meant to be the end state, just an intermediate refactoring step. CSSMappedAttributeDeclaration
1994 should clearly be renamed too but this patch doesn't do that. It might not exist in its current form
1997 * css/CSSMutableStyleDeclaration.cpp:
1998 (WebCore::CSSMutableStyleDeclaration::setProperty):
1999 (WebCore::CSSMutableStyleDeclaration::merge):
2000 * css/CSSMutableStyleDeclaration.h:
2002 Remove protected section. No subclasses remain.
2003 Rename setPropertyInternal() to setProperty(). All public methods here are internal.
2005 (CSSMutableStyleDeclaration):
2006 * css/CSSParser.cpp:
2007 (WebCore::CSSParser::parseMappedAttributeValue):
2008 * dom/Attribute.cpp:
2009 (WebCore::Attribute::clone):
2012 (WebCore::Attribute::decl):
2013 (WebCore::Attribute::mappedAttributeDeclaration):
2014 (WebCore::Attribute::setMappedAttributeDeclaration):
2015 (WebCore::Attribute::Attribute):
2016 * dom/CSSMappedAttributeDeclaration.cpp:
2017 (WebCore::CSSMappedAttributeDeclaration::setMappedImageProperty):
2018 (WebCore::CSSMappedAttributeDeclaration::setMappedProperty):
2019 (WebCore::CSSMappedAttributeDeclaration::removeMappedProperty):
2020 * dom/CSSMappedAttributeDeclaration.h:
2021 (CSSMappedAttributeDeclaration):
2022 (WebCore::CSSMappedAttributeDeclaration::declaration):
2023 (WebCore::CSSMappedAttributeDeclaration::CSSMappedAttributeDeclaration):
2025 Make CSSMutableStyleDeclaration a member instead of the base class.
2027 * dom/StyledElement.cpp:
2028 (WebCore::StyledElement::attributeChanged):
2029 (WebCore::StyledElement::removeCSSProperty):
2030 (WebCore::StyledElement::addCSSProperty):
2031 (WebCore::StyledElement::addCSSImageProperty):
2032 (WebCore::StyledElement::addCSSLength):
2033 (WebCore::StyledElement::addCSSColor):
2034 (WebCore::StyledElement::createMappedDecl):
2035 * svg/SVGStyledElement.cpp:
2036 (WebCore::SVGStyledElement::getPresentationAttribute):
2038 2012-02-01 Allan Sandfeld Jensen <allan.jensen@nokia.com>
2040 [Qt] Set all PlatformTouchPoint values possible from a QTouch event.
2041 https://bugs.webkit.org/show_bug.cgi?id=77442
2043 Reviewed by Kenneth Rohde Christiansen.
2045 * platform/qt/PlatformTouchPointQt.cpp:
2046 (WebCore::PlatformTouchPoint::PlatformTouchPoint):
2048 2012-02-01 Peter Rybin <peter.rybin@gmail.com>
2050 Web Inspector: CodeGeneratorInspector.py: move type builder code to dedicated InspectorTypeBuilder .h/.cpp
2051 https://bugs.webkit.org/show_bug.cgi?id=77471
2053 Reviewed by Yury Semikhatsky.
2055 Code is moved physically to other file -- generator is changed accrodingly.
2057 * inspector/CodeGeneratorInspector.py:
2063 2012-02-01 Yury Semikhatsky <yurys@chromium.org>
2065 Web Inspector: debugger reports wrong sources when paused in inline script on page reload
2066 https://bugs.webkit.org/show_bug.cgi?id=77548
2068 V8 returns treats each script source as ending with \n, now we take
2069 this into account when reporting script line count to the inspector
2072 Reviewed by Vsevolod Vlasov.
2074 Test: inspector/debugger/pause-in-inline-script.html
2076 * bindings/js/ScriptDebugServer.cpp:
2077 (WebCore::ScriptDebugServer::dispatchDidParseSource):
2078 * bindings/v8/DebuggerScript.js:
2080 2012-02-01 Shinya Kawanaka <shinyak@google.com>
2082 Content element should be able to be dynamically added/removed/replaced in a shadow tree.
2083 https://bugs.webkit.org/show_bug.cgi?id=76611
2085 Reviewed by Hajime Morita
2087 When a content element is added/removed/replaced in a shadow tree, we have to recreate
2088 the shadow tree to recalculate inclusions of content elements. Currently we didn't recalculate it
2089 when content element is removed. (When added, it is recalculated.)
2090 This patch enables us to recalcurate the shadow tree when content element is removed.
2092 Test: fast/dom/shadow/content-element-move.html
2095 (WebCore::Element::attach):
2096 If a shadow root exists, attaches shadow tree before attaching child elements.
2097 * dom/ShadowRoot.cpp:
2098 Added a flag to recalculate shadow tree.
2099 (WebCore::ShadowRoot::ShadowRoot):
2100 (WebCore::ShadowRoot::recalcShadowTreeStyle):
2101 Recalculates light children and shadow tree.
2102 (WebCore::ShadowRoot::setNeedsReattachHostChildrenAndShadow):
2103 (WebCore::ShadowRoot::reattachHostChildrenAndShadow):
2104 Detaches shadow tree and host light children, and attaches them again.
2106 (WebCore::ShadowRoot::clearNeedsReattachHostChildrenAndShadow):
2107 (WebCore::ShadowRoot::needsReattachHostChildrenAndShadow):
2108 * html/shadow/HTMLContentElement.cpp:
2109 (WebCore::HTMLContentElement::attach):
2110 Does not need to detach included elements, because they are not attached in ContainerNode anymore.
2111 (WebCore::HTMLContentElement::detach):
2112 When a content element detached, reattaches a shadow tree.
2114 2012-02-01 Peter Beverloo <peter@chromium.org>
2116 getIntersectionList causes transforms to be recalculated in SVG
2117 https://bugs.webkit.org/show_bug.cgi?id=77179
2119 Reviewed by Nikolas Zimmermann.
2121 Introduce a local variable to store the element's local-to-parent
2122 transformation matrix in, removing the need for the const_cast and
2123 stopping us from modifying any matrices elsewhere.
2125 Test: svg/custom/intersection-list-transforms.svg
2127 * rendering/svg/RenderSVGModelObject.cpp:
2128 (WebCore::getElementCTM):
2130 2012-02-01 Vsevolod Vlasov <vsevik@chromium.org>
2132 Web Inspector: [InspectorIndexedDB] Add tests for database names and database structure requests.
2133 https://bugs.webkit.org/show_bug.cgi?id=77439
2135 Reviewed by Pavel Feldman.
2137 Tests: http/tests/inspector/indexeddb/database-names.html
2138 http/tests/inspector/indexeddb/database-structure.html
2140 * inspector/front-end/IndexedDBModel.js:
2141 (WebInspector.IndexedDBModel.prototype.refreshDatabase):
2143 2012-01-31 Vsevolod Vlasov <vsevik@chromium.org>
2145 Web Inspector: Scripts navigator becomes empty after "show folders" settings change.
2146 https://bugs.webkit.org/show_bug.cgi?id=77441
2148 Reviewed by Pavel Feldman.
2150 * inspector/front-end/ScriptsNavigator.js:
2151 (WebInspector.ScriptsNavigator.prototype._reset):
2152 * inspector/front-end/utilities.js:
2154 2012-02-01 Shawn Singh <shawnsingh@chromium.org>
2156 Fix the semantics of passing contentsVisible flag to GraphicsLayers
2157 https://bugs.webkit.org/show_bug.cgi?id=76975
2159 Reviewed by Simon Fraser.
2161 This patch is covered by existing tests, in particular
2162 compositing/visibility/layer-visible-content.html; its
2163 expectations are rebaselined.
2165 * rendering/RenderLayerBacking.cpp:
2166 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2168 2012-02-01 Philippe Normand <pnormand@igalia.com>
2170 Unreviewed, another GTK build fix after r106446.
2172 * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2173 Restore webKitWebSrcGetProtocols as it was before r106446.
2175 2012-02-01 Philippe Normand <pnormand@igalia.com>
2177 Unreviewed, GTK build fix after r106446.
2179 * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2181 2012-02-01 Sheriff Bot <webkit.review.bot@gmail.com>
2183 Unreviewed, rolling out r106432.
2184 http://trac.webkit.org/changeset/106432
2185 https://bugs.webkit.org/show_bug.cgi?id=77529
2187 it breaks tests (Requested by shinyak on #webkit).
2190 (WebCore::Element::attach):
2191 * dom/ShadowRoot.cpp:
2192 (WebCore::ShadowRoot::recalcShadowTreeStyle):
2195 * html/shadow/HTMLContentElement.cpp:
2196 (WebCore::HTMLContentElement::attach):
2197 (WebCore::HTMLContentElement::detach):
2199 2012-02-01 Hayato Ito <hayato@chromium.org>
2201 Remove unnecessary [OldStyleObjC] from ShadowRoot.idl.
2202 https://bugs.webkit.org/show_bug.cgi?id=77516
2204 Reviewed by Kentaro Hara.
2206 No new tests. No change in behavior.
2208 * dom/ShadowRoot.idl:
2210 2012-01-26 Philippe Normand <pnormand@igalia.com>
2212 [GStreamer] 0.11 webkitwebsrc
2213 https://bugs.webkit.org/show_bug.cgi?id=77086
2215 Port the webkitwebsrc element to GStreamer 0.11 APIs.
2217 Reviewed by Gustavo Noronha Silva.
2219 No new tests, existing http media layout tests should cover this.
2221 * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2222 (webkit_web_src_class_init):
2224 2012-01-31 Hans Wennborg <hans@chromium.org>
2226 Speech Input: Report speech element rect relative to window rather than frame
2227 https://bugs.webkit.org/show_bug.cgi?id=76443
2229 Reviewed by Darin Fisher.
2231 When requesting speech input, report the speech element rect relative
2232 to the window rather than the frame. The embedder will typically use
2233 this position to show a bubble indicating that speech recognition is
2236 Test: fast/speech/bubble-position.html
2238 * html/shadow/TextControlInnerElements.cpp:
2239 (WebCore::InputFieldSpeechButtonElement::startSpeechInput):
2241 2012-01-31 Andreas Kling <awesomekling@apple.com>
2243 Make elements that don't have attributes smaller.
2244 <http://webkit.org/b/76876>
2246 Reviewed by Sam Weinig and Antti Koivisto.
2248 Move the inline style declaration from StyledElement to ElementAttributeData, since having
2249 an inline style declaration also implies having a style attribute on the element.
2250 This saves one CPU word per element that has no attributes.
2252 This reduces memory consumption by 412 kB (on 64-bit) when viewing the full
2253 HTML5 spec at <http://whatwg.org/c>.
2255 This was rolled out once because of a performance regression which has been averted this
2256 time around by adding an Element::ensureAttributeMap() so we can force creation of the
2257 NamedNodeMap without also serializing the inline style for the "style" attribute.
2261 (WebCore::Element::ensureAttributeMap):
2263 * dom/ElementAttributeData.h:
2264 (ElementAttributeData):
2265 * dom/NamedNodeMap.cpp:
2266 (WebCore::NamedNodeMap::ensureInlineStyleDecl):
2268 (WebCore::NamedNodeMap::destroyInlineStyleDecl):
2269 * dom/NamedNodeMap.h:
2270 (WebCore::NamedNodeMap::inlineStyleDecl):
2272 * dom/StyledElement.cpp:
2273 (WebCore::StyledElement::addSubresourceAttributeURLs):
2274 * dom/StyledElement.h:
2275 (WebCore::StyledElement::inlineStyleDecl):
2276 (WebCore::StyledElement::ensureInlineStyleDecl):
2278 (WebCore::StyledElement::destroyInlineStyleDecl):
2280 2012-01-31 Hayato Ito <hayato@chromium.org>
2282 Add APIs, getElementsByXXX family, to ShadowRoot IDL.
2283 https://bugs.webkit.org/show_bug.cgi?id=77323
2285 Reviewed by Dimitri Glazkov.
2287 Add APIs (getElementById, getElemesntByTagName, getElementsByClassName and getElementsByTagNameNS)
2290 * dom/ShadowRoot.idl:
2292 2012-01-31 Shinya Kawanaka <shinyak@google.com>
2294 Content element should be able to be dynamically added/removed/replaced in a shadow tree.
2295 https://bugs.webkit.org/show_bug.cgi?id=76611
2297 Reviewed by Hajime Morita.
2299 When a content element is added/removed/replaced in a shadow tree, we have to recreate
2300 the shadow tree to recalculate inclusions of content elements. Currently we didn't recalculate it
2301 when content element is removed. (When added, it is recalculated.)
2302 This patch enables us to recalcurate the shadow tree when content element is removed.
2304 Test: fast/dom/shadow/content-element-move.html
2307 (WebCore::Element::attach):
2308 If a shadow root exists, attaches shadow tree before attaching child elements.
2309 * dom/ShadowRoot.cpp:
2310 (WebCore::ShadowRoot::recalcShadowTreeStyle):
2311 Recalculates light children and shadow tree.
2312 (WebCore::ShadowRoot::reattachHostChildrenAndShadow):
2313 Detaches shadow tree and host light children, and attaches them again.
2315 Added a flag to recalculate shadow tree.
2316 (WebCore::ShadowRoot::setNeedsShadowTreeStyleRecalc):
2317 (WebCore::ShadowRoot::clearNeedsShadowTreeStyleRecalc):
2318 (WebCore::ShadowRoot::needsShadowTreeStyleRecalc):
2319 * html/shadow/HTMLContentElement.cpp:
2320 (WebCore::HTMLContentElement::attach):
2321 Does not need to detach included elements, because they are not attached in ContainerNode anymore.
2322 (WebCore::HTMLContentElement::detach):
2323 When a content element detached, reattaches a shadow tree.
2325 2012-01-31 Joe Thomas <joethomas@motorola.com>
2327 https://bugs.webkit.org/show_bug.cgi?id=76801
2328 Listboxes incorrectly display contents when cleared and then re-populated.
2330 Whenever the number of items in the listbox is less than the size of listbox (number of visible items the listbox can accomodate),
2331 we set the listbox scroll-offset to zero. The scroll-offset of the Scrollbar should also be set to 0 so that when the listbox is re-populated,
2332 scrollbar position and the content inside the listbox are in sync.
2334 Reviewed by Andreas Kling.
2336 Tests: fast/forms/listbox-clear-restore.html
2338 * rendering/RenderListBox.cpp:
2339 (WebCore::RenderListBox::computeLogicalHeight): Setting the scroll-offset of the Scrollbar to 0 when scrollbar is not needed.
2341 2012-01-31 Gyuyoung Kim <gyuyoung.kim@samsung.com>
2343 Unreviewed. Fix build break after r106373.
2347 2012-01-31 Adam Barth <abarth@webkit.org>
2349 HTMLPreloadScanner should understand the <base> element
2350 https://bugs.webkit.org/show_bug.cgi?id=77231
2352 Reviewed by Eric Seidel.
2354 Previously, the HTMLPreloadScanner would ignore the <base> element when
2355 preloading resources. If there was a <base> tag, this could cause the
2356 preload scanner to make a bunch of useless requests.
2358 This patch teaches the preload scanner to use <base> tags to better
2359 predict which URLs will be used by the document.
2361 Tests: fast/preloader/first-base-tag-scanned-wins.html
2362 fast/preloader/first-base-tag-wins.html
2363 fast/preloader/understands-base-tag.html
2366 (WebCore::Document::completeURL):
2370 (WebCore::Document::baseElementURL):
2371 * html/parser/HTMLPreloadScanner.cpp:
2372 (WebCore::HTMLNames::PreloadTask::PreloadTask):
2373 (WebCore::HTMLNames::PreloadTask::processAttributes):
2374 (WebCore::HTMLNames::PreloadTask::preload):
2375 (WebCore::HTMLNames::PreloadTask::baseElementHref):
2377 (WebCore::HTMLPreloadScanner::scan):
2378 (WebCore::HTMLPreloadScanner::processToken):
2379 (WebCore::HTMLPreloadScanner::updatePredictedBaseElementURL):
2381 * html/parser/HTMLPreloadScanner.h:
2382 (HTMLPreloadScanner):
2384 2012-01-31 Raymond Liu <raymond.liu@intel.com>
2386 Dynamic allocate AudioBus with required number of channels for AudioNodeInput
2387 https://bugs.webkit.org/show_bug.cgi?id=76516
2389 Reviewed by Kenneth Russell.
2391 No new tests required.
2393 * webaudio/AudioBasicProcessorNode.cpp:
2394 (WebCore::AudioBasicProcessorNode::checkNumberOfChannelsForInput):
2395 * webaudio/AudioChannelMerger.cpp:
2396 (WebCore::AudioChannelMerger::checkNumberOfChannelsForInput):
2397 * webaudio/AudioGainNode.cpp:
2398 (WebCore::AudioGainNode::checkNumberOfChannelsForInput):
2399 * webaudio/AudioNode.cpp:
2400 (WebCore::AudioNode::checkNumberOfChannelsForInput):
2401 * webaudio/AudioNode.h:
2402 * webaudio/AudioNodeInput.cpp:
2403 (WebCore::AudioNodeInput::AudioNodeInput):
2404 (WebCore::AudioNodeInput::updateInternalBus):
2405 (WebCore::AudioNodeInput::internalSummingBus):
2406 * webaudio/AudioNodeInput.h:
2408 2012-01-31 Alexey Proskuryakov <ap@apple.com>
2410 REGRESSION (WebKit2): event.keyCode is always zero when typing in Russian
2411 https://bugs.webkit.org/show_bug.cgi?id=77473
2412 <rdar://problem/10751357>
2414 Reviewed by Darin Adler.
2416 Test: platform/mac/fast/events/non-roman-key-code.html
2419 * platform/mac/PlatformEventFactoryMac.h:
2420 * platform/mac/PlatformEventFactoryMac.mm:
2421 (WebCore::keyIdentifierForKeyEvent):
2422 (WebCore::windowsKeyCodeForKeyEvent):
2423 Export functions for reuse in WebKit2. I did not attempt any larger refactoring at this time.
2425 2012-01-31 Gregg Tavares <gman@google.com>
2427 Make WebGL put synthesized errors in the JS console
2428 https://bugs.webkit.org/show_bug.cgi?id=77267
2430 Reviewed by Kenneth Russell.
2432 No new functionality so no new tests.
2434 * html/canvas/WebGLCompressedTextures.cpp:
2435 (WebCore::WebGLCompressedTextures::validateCompressedTexFuncData):
2436 (WebCore::WebGLCompressedTextures::compressedTexImage2D):
2437 (WebCore::WebGLCompressedTextures::compressedTexSubImage2D):
2438 * html/canvas/WebGLCompressedTextures.h:
2439 (WebGLCompressedTextures):
2440 * html/canvas/WebGLDebugShaders.cpp:
2441 (WebCore::WebGLDebugShaders::getTranslatedShaderSource):
2442 * html/canvas/WebGLRenderingContext.cpp:
2443 (WebCore::WebGLRenderingContext::activeTexture):
2444 (WebCore::WebGLRenderingContext::attachShader):
2445 (WebCore::WebGLRenderingContext::bindAttribLocation):
2446 (WebCore::WebGLRenderingContext::checkObjectToBeBound):
2447 (WebCore::WebGLRenderingContext::bindBuffer):
2448 (WebCore::WebGLRenderingContext::bindFramebuffer):
2449 (WebCore::WebGLRenderingContext::bindRenderbuffer):
2450 (WebCore::WebGLRenderingContext::bindTexture):
2451 (WebCore::WebGLRenderingContext::blendEquation):
2452 (WebCore::WebGLRenderingContext::blendEquationSeparate):
2453 (WebCore::WebGLRenderingContext::blendFunc):
2454 (WebCore::WebGLRenderingContext::blendFuncSeparate):
2455 (WebCore::WebGLRenderingContext::bufferData):
2456 (WebCore::WebGLRenderingContext::bufferSubData):
2457 (WebCore::WebGLRenderingContext::checkFramebufferStatus):
2458 (WebCore::WebGLRenderingContext::clear):
2459 (WebCore::WebGLRenderingContext::compileShader):
2460 (WebCore::WebGLRenderingContext::compressedTexImage2D):
2461 (WebCore::WebGLRenderingContext::compressedTexSubImage2D):
2462 (WebCore::WebGLRenderingContext::copyTexImage2D):
2463 (WebCore::WebGLRenderingContext::copyTexSubImage2D):
2464 (WebCore::WebGLRenderingContext::createShader):
2465 (WebCore::WebGLRenderingContext::deleteObject):
2466 (WebCore::WebGLRenderingContext::depthRange):
2467 (WebCore::WebGLRenderingContext::detachShader):
2468 (WebCore::WebGLRenderingContext::disable):
2469 (WebCore::WebGLRenderingContext::disableVertexAttribArray):
2470 (WebCore::WebGLRenderingContext::validateWebGLObject):
2471 (WebCore::WebGLRenderingContext::drawArrays):
2472 (WebCore::WebGLRenderingContext::drawElements):
2473 (WebCore::WebGLRenderingContext::enable):
2474 (WebCore::WebGLRenderingContext::enableVertexAttribArray):
2475 (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
2476 (WebCore::WebGLRenderingContext::framebufferTexture2D):
2477 (WebCore::WebGLRenderingContext::generateMipmap):
2478 (WebCore::WebGLRenderingContext::getActiveAttrib):
2479 (WebCore::WebGLRenderingContext::getActiveUniform):
2480 (WebCore::WebGLRenderingContext::getAttachedShaders):
2481 (WebCore::WebGLRenderingContext::getAttribLocation):
2482 (WebCore::WebGLRenderingContext::getBufferParameter):
2483 (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
2484 (WebCore::WebGLRenderingContext::getParameter):
2485 (WebCore::WebGLRenderingContext::getProgramParameter):
2486 (WebCore::WebGLRenderingContext::getProgramInfoLog):
2487 (WebCore::WebGLRenderingContext::getRenderbufferParameter):
2488 (WebCore::WebGLRenderingContext::getShaderParameter):
2489 (WebCore::WebGLRenderingContext::getShaderInfoLog):
2490 (WebCore::WebGLRenderingContext::getShaderSource):
2491 (WebCore::WebGLRenderingContext::getTexParameter):
2492 (WebCore::WebGLRenderingContext::getUniform):
2493 (WebCore::WebGLRenderingContext::getUniformLocation):
2494 (WebCore::WebGLRenderingContext::getVertexAttrib):
2495 (WebCore::WebGLRenderingContext::hint):
2496 (WebCore::WebGLRenderingContext::isEnabled):
2497 (WebCore::WebGLRenderingContext::linkProgram):
2498 (WebCore::WebGLRenderingContext::pixelStorei):
2499 (WebCore::WebGLRenderingContext::readPixels):
2500 (WebCore::WebGLRenderingContext::renderbufferStorage):
2501 (WebCore::WebGLRenderingContext::scissor):
2502 (WebCore::WebGLRenderingContext::shaderSource):
2503 (WebCore::WebGLRenderingContext::stencilFunc):
2504 (WebCore::WebGLRenderingContext::stencilFuncSeparate):
2505 (WebCore::WebGLRenderingContext::stencilMaskSeparate):
2506 (WebCore::WebGLRenderingContext::texImage2DBase):
2507 (WebCore::WebGLRenderingContext::texImage2DImpl):
2508 (WebCore::WebGLRenderingContext::texImage2D):
2509 (WebCore::WebGLRenderingContext::videoFrameToImage):
2510 (WebCore::WebGLRenderingContext::texParameter):
2511 (WebCore::WebGLRenderingContext::texSubImage2DBase):
2512 (WebCore::WebGLRenderingContext::texSubImage2DImpl):
2513 (WebCore::WebGLRenderingContext::texSubImage2D):
2514 (WebCore::WebGLRenderingContext::uniform1f):
2515 (WebCore::WebGLRenderingContext::uniform1fv):
2516 (WebCore::WebGLRenderingContext::uniform1i):
2517 (WebCore::WebGLRenderingContext::uniform1iv):
2518 (WebCore::WebGLRenderingContext::uniform2f):
2519 (WebCore::WebGLRenderingContext::uniform2fv):
2520 (WebCore::WebGLRenderingContext::uniform2i):
2521 (WebCore::WebGLRenderingContext::uniform2iv):
2522 (WebCore::WebGLRenderingContext::uniform3f):
2523 (WebCore::WebGLRenderingContext::uniform3fv):
2524 (WebCore::WebGLRenderingContext::uniform3i):
2525 (WebCore::WebGLRenderingContext::uniform3iv):
2526 (WebCore::WebGLRenderingContext::uniform4f):
2527 (WebCore::WebGLRenderingContext::uniform4fv):
2528 (WebCore::WebGLRenderingContext::uniform4i):
2529 (WebCore::WebGLRenderingContext::uniform4iv):
2530 (WebCore::WebGLRenderingContext::uniformMatrix2fv):
2531 (WebCore::WebGLRenderingContext::uniformMatrix3fv):
2532 (WebCore::WebGLRenderingContext::uniformMatrix4fv):
2533 (WebCore::WebGLRenderingContext::useProgram):
2534 (WebCore::WebGLRenderingContext::validateProgram):
2535 (WebCore::WebGLRenderingContext::vertexAttrib1f):
2536 (WebCore::WebGLRenderingContext::vertexAttrib1fv):
2537 (WebCore::WebGLRenderingContext::vertexAttrib2f):
2538 (WebCore::WebGLRenderingContext::vertexAttrib2fv):
2539 (WebCore::WebGLRenderingContext::vertexAttrib3f):
2540 (WebCore::WebGLRenderingContext::vertexAttrib3fv):
2541 (WebCore::WebGLRenderingContext::vertexAttrib4f):
2542 (WebCore::WebGLRenderingContext::vertexAttrib4fv):
2543 (WebCore::WebGLRenderingContext::vertexAttribPointer):
2544 (WebCore::WebGLRenderingContext::viewport):
2545 (WebCore::WebGLRenderingContext::forceLostContext):
2546 (WebCore::WebGLRenderingContext::loseContextImpl):
2547 (WebCore::WebGLRenderingContext::forceRestoreContext):
2548 (WebCore::WebGLRenderingContext::validateTextureBinding):
2549 (WebCore::WebGLRenderingContext::validateLocationLength):
2550 (WebCore::WebGLRenderingContext::validateSize):
2551 (WebCore::WebGLRenderingContext::validateString):
2552 (WebCore::WebGLRenderingContext::validateTexFuncFormatAndType):
2553 (WebCore::WebGLRenderingContext::validateTexFuncLevel):
2554 (WebCore::WebGLRenderingContext::validateTexFuncParameters):
2555 (WebCore::WebGLRenderingContext::validateTexFuncData):
2556 (WebCore::WebGLRenderingContext::validateDrawMode):
2557 (WebCore::WebGLRenderingContext::validateStencilSettings):
2558 (WebCore::WebGLRenderingContext::validateStencilFunc):
2559 (WebCore::WebGLRenderingContext::validateFramebufferFuncParameters):
2560 (WebCore::WebGLRenderingContext::validateBlendEquation):
2561 (WebCore::WebGLRenderingContext::validateBlendFuncFactors):
2562 (WebCore::WebGLRenderingContext::validateCapability):
2563 (WebCore::WebGLRenderingContext::validateUniformParameters):
2564 (WebCore::WebGLRenderingContext::validateUniformMatrixParameters):
2565 (WebCore::WebGLRenderingContext::validateBufferDataParameters):
2566 (WebCore::WebGLRenderingContext::validateHTMLImageElement):
2567 (WebCore::WebGLRenderingContext::vertexAttribfImpl):
2568 (WebCore::WebGLRenderingContext::vertexAttribfvImpl):
2569 (WebCore::WebGLRenderingContext::maybeRestoreContext):
2571 (WebCore::WebGLRenderingContext::synthesizeGLError):
2572 * html/canvas/WebGLRenderingContext.h:
2573 (WebGLRenderingContext):
2575 2012-01-31 Raymond Liu <raymond.liu@intel.com>
2577 Clean up m_processLock logic in AudioBasicProcessorNode and AudioGainNode
2578 https://bugs.webkit.org/show_bug.cgi?id=76772
2580 Reviewed by Kenneth Russell.
2582 No new tests required.
2584 * webaudio/AudioBasicProcessorNode.cpp:
2585 (WebCore::AudioBasicProcessorNode::process):
2586 (WebCore::AudioBasicProcessorNode::checkNumberOfChannelsForInput):
2587 * webaudio/AudioBasicProcessorNode.h:
2588 * webaudio/AudioGainNode.cpp:
2589 (WebCore::AudioGainNode::process):
2590 (WebCore::AudioGainNode::checkNumberOfChannelsForInput):
2591 * webaudio/AudioGainNode.h:
2594 2012-01-31 Adam Klein <adamk@chromium.org>
2596 ProcessingInstruction should not be a ContainerNode
2597 https://bugs.webkit.org/show_bug.cgi?id=75141
2599 Reviewed by Darin Adler.
2601 Per the DOM spec, ProcessingInstruction can't have any children.
2602 And the WebCore behavior already matches the spec by always returning
2603 false for childTypeAllowed(). This change simplifies
2604 ProcessingInstruction's implementation by making it subclass Node
2605 instead of ContainerNode.
2607 Test: fast/dom/processing-instruction-appendChild-exceptions.xhtml
2609 * dom/ContainerNode.cpp: Moved dispatchBeforeLoadEvent up to Node.
2610 * dom/ContainerNode.h:
2612 (WebCore::Node::dispatchBeforeLoadEvent): Moved up from ContainerNode
2613 since it's used both by ProcessingInstruction and various Element
2616 * dom/ProcessingInstruction.cpp:
2617 (WebCore::ProcessingInstruction::ProcessingInstruction): Call Node constructor.
2618 (WebCore::ProcessingInstruction::insertedIntoDocument): Call Node impl.
2619 (WebCore::ProcessingInstruction::removedFromDocument): ditto.
2620 (WebCore::ProcessingInstruction::finishParsingChildren): ditto.
2621 * dom/ProcessingInstruction.h:
2623 2012-01-31 Matthew Delaney <mdelaney@apple.com>
2625 Failing 2d.shadow.enable.off.2.html on Lion
2626 https://bugs.webkit.org/show_bug.cgi?id=77489
2628 Reviewed by Dan Bernstein.
2630 The canvas spec requires that shadows not be drawn under certain
2631 circumstances outlined here: http://www.whatwg.org/specs/web-apps/current-work/#shadows
2632 This patch adds in those checks which allows us to pass now (on Lion)
2633 the philip canvas test that was checking that constraint.
2635 No new tests. Unskipping the test on Lion that this patch fixes.
2637 * html/canvas/CanvasRenderingContext2D.cpp:
2638 (WebCore::CanvasRenderingContext2D::setAllAttributesToDefault):
2639 (WebCore::CanvasRenderingContext2D::setShadow):
2640 (WebCore::CanvasRenderingContext2D::applyShadow):
2641 (WebCore::CanvasRenderingContext2D::shouldDrawShadows):
2642 * html/canvas/CanvasRenderingContext2D.h:
2643 (CanvasRenderingContext2D):
2645 2012-01-31 Anders Carlsson <andersca@apple.com>
2647 TileCache::setNeedsDisplayInRect cleanup
2648 https://bugs.webkit.org/show_bug.cgi?id=77486
2650 Reviewed by Andreas Kling.
2652 * platform/graphics/ca/mac/TileCache.h:
2653 * platform/graphics/ca/mac/TileCache.mm:
2654 (WebCore::TileCache::setNeedsDisplayInRect):
2655 TileCache::tileLayerAtIndex can in the future return nil, so cope with that. Also, replace
2656 nested if statements with continue statements.
2658 (WebCore::TileCache::getTileIndexRangeForRect):
2659 Rename this to better indicate that it returns a range of indices.
2661 2012-01-31 Dana Jansens <danakj@chromium.org>
2663 Add contains() test to Region
2664 https://bugs.webkit.org/show_bug.cgi?id=72294
2666 Reviewed by Anders Carlsson.
2668 * platform/graphics/Region.cpp:
2669 (WebCore::Region::contains):
2671 * platform/graphics/Region.h:
2674 (WebCore::operator==):
2677 2012-01-31 Sami Kyostila <skyostil@chromium.org>
2679 [chromium] Compositor debug borders are not scaled correctly
2680 https://bugs.webkit.org/show_bug.cgi?id=77468
2682 Use CCLayerImpl::contentBounds() instead of CCLayerImpl::bounds() to calculate debug
2683 border geometry so that the borders are properly scaled.
2685 Reviewed by James Robinson.
2687 * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2688 (WebCore::CCLayerImpl::appendDebugBorderQuad):
2690 2012-01-31 Sheriff Bot <webkit.review.bot@gmail.com>
2692 Unreviewed, rolling out r106376.
2693 http://trac.webkit.org/changeset/106376
2694 https://bugs.webkit.org/show_bug.cgi?id=77481
2696 Broke WebGLLayerChromiumTest in webkit_unit_tests (Requested
2697 by kbr_google on #webkit).
2699 * platform/graphics/gpu/DrawingBuffer.cpp:
2701 (WebCore::DrawingBuffer::reset):
2703 2012-01-31 Mihnea Ovidenie <mihnea@adobe.com>
2705 [CSSRegions]Reduce the cases when the box style in region is computed
2706 https://bugs.webkit.org/show_bug.cgi?id=77446
2708 Reviewed by David Hyatt.
2710 Covered by existing region style tests.
2712 * rendering/RenderRegion.cpp:
2713 (WebCore::RenderRegion::setRegionBoxesRegionStyle):
2714 (WebCore::RenderRegion::restoreRegionBoxesOriginalStyle):
2716 2012-01-31 Anders Carlsson <andersca@apple.com>
2718 Put tiles in a HashMap
2719 https://bugs.webkit.org/show_bug.cgi?id=77480
2721 Reviewed by Antti Koivisto.
2723 Put tiles in a hash map keyed off the tile index.
2725 * platform/graphics/ca/mac/TileCache.h:
2726 Shuffle member variables around so the order makes more sense.
2729 * platform/graphics/ca/mac/TileCache.mm:
2730 (WebCore::TileCache::TileCache):
2731 Update member initializers.
2733 (WebCore::TileCache::setNeedsDisplayInRect):
2734 Call tileLayerAtIndex instead of tileLayerAtPosition.
2736 (WebCore::TileCache::setAcceleratesDrawing):
2737 (WebCore::TileCache::setTileDebugBorderWidth):
2738 (WebCore::TileCache::setTileDebugBorderColor):
2739 Iterate over the hash map instead of the sublayers.
2741 (WebCore::TileCache::resizeTileGrid):
2742 Add the created layers to the map.
2744 (WebCore::TileCache::tileLayerAtIndex):
2745 Rename from tileLayerAtPoint to better reflect that this member function
2746 returns a tile layer at the given index and not the given point.
2748 2012-01-31 Antti Koivisto <antti@apple.com>
2750 Make CSSOM style() return CSSStyleDeclaration*
2751 https://bugs.webkit.org/show_bug.cgi?id=77475
2753 Reviewed by Anders Carlsson
2755 CSSStyleRule::style() and some other places return CSSMutableStyleDeclaration.
2756 They should return the plain CSSOM type instead.
2758 CSSMutableStyleDeclaration* should be available through non-CSSOM function.
2760 * css/CSSFontFaceRule.h:
2761 (WebCore::CSSFontFaceRule::style):
2762 (WebCore::CSSFontFaceRule::declaration):
2763 * css/CSSFontSelector.cpp:
2764 (WebCore::CSSFontSelector::addFontFaceRule):
2765 * css/CSSStyleRule.h:
2766 (WebCore::CSSStyleRule::style):
2767 (WebCore::CSSStyleRule::declaration):
2768 * css/CSSStyleSelector.cpp:
2769 (WebCore::CSSStyleSelector::styleForKeyframe):
2770 * css/WebKitCSSKeyframeRule.h:
2772 (WebCore::WebKitCSSKeyframeRule::style):
2773 (WebCore::WebKitCSSKeyframeRule::declaration):
2774 (WebKitCSSKeyframeRule):
2775 * editing/EditingStyle.cpp:
2776 (WebCore::styleFromMatchedRulesForElement):
2777 * inspector/InspectorStyleSheet.cpp:
2778 (WebCore::InspectorStyleSheet::revalidateStyle):
2779 * page/PageSerializer.cpp:
2780 (WebCore::PageSerializer::retrieveResourcesForCSSRule):
2781 * svg/SVGFontFaceElement.cpp:
2782 (WebCore::SVGFontFaceElement::parseMappedAttribute):
2783 (WebCore::SVGFontFaceElement::fontFamily):
2784 (WebCore::SVGFontFaceElement::rebuildFontFace):
2786 2012-01-31 Scott Graham <scottmg@chromium.org>
2788 [Chromium] Remove references to gyp cygwin build target
2789 https://bugs.webkit.org/show_bug.cgi?id=77253
2791 Reviewed by Julien Chaffraix.
2793 Target dependency is no longer required, it's done earlier in the
2796 * WebCore.gyp/WebCore.gyp:
2798 2012-01-31 Jon Lee <jonlee@apple.com>
2800 Hidden form elements do not save their state prior to form submission
2801 https://bugs.webkit.org/show_bug.cgi?id=77391
2802 <rdar://problem/10563108>
2804 Reviewed by Brady Eidson.
2806 Test: fast/forms/state-restore-hidden.html
2808 * html/HiddenInputType.cpp: Teach hidden inputs to save and restore their state.
2809 (WebCore::HiddenInputType::saveFormControlState):
2810 (WebCore::HiddenInputType::restoreFormControlState):
2811 * html/HiddenInputType.h:
2814 2012-01-31 Joshua Bell <jsbell@chromium.org>
2816 IndexedDB: IDBCursor.update() should raise exception if key changed
2817 https://bugs.webkit.org/show_bug.cgi?id=76952
2819 Move the test from the async task to the synchronous call, per spec. Also re-ordered the tests
2820 done during the synchronous call and the asynchronous task to follow the spec order.
2822 Reviewed by Tony Chang.
2824 Tests: storage/indexeddb/cursor-update.html
2826 * storage/IDBObjectStoreBackendImpl.cpp:
2827 (WebCore::IDBObjectStoreBackendImpl::put): Added check during update() call, order checks per spec.
2828 (WebCore::IDBObjectStoreBackendImpl::putInternal): Move effective key calculation inline.
2829 * storage/IDBObjectStoreBackendImpl.h: Removed selectKeyForPut method.
2831 2012-01-31 Anders Carlsson <andersca@apple.com>
2833 Inform the tile cache whenever the visible rect changes
2834 https://bugs.webkit.org/show_bug.cgi?id=77470
2836 Reviewed by Andreas Kling.
2838 * platform/graphics/GraphicsLayer.h:
2839 (WebCore::GraphicsLayer::visibleRectChanged):
2842 * platform/graphics/ca/GraphicsLayerCA.cpp:
2843 (WebCore::GraphicsLayerCA::visibleRectChanged):
2844 Call through to the PlatformCALayer.
2846 * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2847 (PlatformCALayer::visibleRectChanged):
2848 Call through to the underlying WebTileCacheLayer.
2850 * platform/graphics/ca/mac/TileCache.mm:
2851 (WebCore::TileCache::visibleRectChanged):
2854 (WebCore::TileCache::visibleRect):
2855 Add new (currently unused) helper function that returns the visible rect of the
2858 * platform/graphics/ca/mac/WebTileCacheLayer.h:
2859 * platform/graphics/ca/mac/WebTileCacheLayer.mm:
2860 (-[WebTileCacheLayer visibleRectChanged]):
2861 Call through to the TielCache object.
2863 * platform/graphics/ca/win/PlatformCALayerWin.cpp:
2864 (PlatformCALayer::visibleRectChanged):
2867 * rendering/RenderLayerCompositor.cpp:
2868 (WebCore::RenderLayerCompositor::frameViewDidScroll):
2869 Call GraphicsLayer::visibleRectChanged.
2871 2012-01-31 Antti Koivisto <antti@apple.com>
2873 Remove CSSStyleDeclaration isElementStyleDeclaration bit
2874 https://bugs.webkit.org/show_bug.cgi?id=77460
2876 Reviewed by Andreas Kling.
2878 Inline style declaration is now the only type of style declaration with element parent.
2879 We can remove the bit and the associated logic.
2881 * bindings/js/JSDOMBinding.h:
2883 * css/CSSMutableStyleDeclaration.cpp:
2884 (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
2885 (WebCore::CSSMutableStyleDeclaration::setNeedsStyleRecalc):
2886 * css/CSSMutableStyleDeclaration.h:
2887 (WebCore::CSSMutableStyleDeclaration::createInline):
2888 (CSSMutableStyleDeclaration):
2889 * css/CSSStyleDeclaration.cpp:
2890 (WebCore::CSSStyleDeclaration::CSSStyleDeclaration):
2892 (WebCore::CSSStyleDeclaration::parentStyleSheet):
2893 * css/CSSStyleDeclaration.h:
2894 (WebCore::CSSStyleDeclaration::parentRule):
2895 (WebCore::CSSStyleDeclaration::clearParentRule):
2896 (WebCore::CSSStyleDeclaration::parentElement):
2897 (WebCore::CSSStyleDeclaration::clearParentElement):
2898 (CSSStyleDeclaration):
2900 2012-01-31 Dana Jansens <danakj@chromium.org>
2902 [chromium] Compute occlusion during paint loop
2903 https://bugs.webkit.org/show_bug.cgi?id=76858
2905 Reviewed by James Robinson.
2907 New unit tests in TiledLayerChromiumTest.cpp, CCLayerTreeHostCommonTest.cpp, CCLayerTreeHostTest.cpp
2909 * platform/graphics/FloatRect.cpp:
2910 (WebCore::enclosedIntRect):
2912 * platform/graphics/FloatRect.h:
2914 * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
2915 (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
2916 * platform/graphics/chromium/Canvas2DLayerChromium.h:
2917 (Canvas2DLayerChromium):
2918 * platform/graphics/chromium/ContentLayerChromium.cpp:
2919 (WebCore::ContentLayerChromium::paintContentsIfDirty):
2920 * platform/graphics/chromium/ContentLayerChromium.h:
2921 (ContentLayerChromium):
2922 * platform/graphics/chromium/ImageLayerChromium.cpp:
2923 (WebCore::ImageLayerChromium::paintContentsIfDirty):
2924 * platform/graphics/chromium/ImageLayerChromium.h:
2925 (ImageLayerChromium):
2926 * platform/graphics/chromium/LayerChromium.cpp:
2927 (WebCore::LayerChromium::contentToScreenSpaceTransform):
2929 (WebCore::LayerChromium::addSelfToOccludedScreenSpace):
2930 (WebCore::LayerChromium::isPaintedAxisAlignedInScreen):
2931 * platform/graphics/chromium/LayerChromium.h:
2933 (WebCore::LayerChromium::paintContentsIfDirty):
2935 * platform/graphics/chromium/RenderSurfaceChromium.h:
2936 (RenderSurfaceChromium):
2937 * platform/graphics/chromium/TiledLayerChromium.cpp:
2938 (WebCore::TiledLayerChromium::addSelfToOccludedScreenSpace):
2939 * platform/graphics/chromium/TiledLayerChromium.h:
2942 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2943 (WebCore::CCLayerTreeHost::paintContentsIfDirty):
2944 (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
2945 (RenderSurfaceRegion):
2947 (WebCore::pushTargetRenderSurfaceRegion):
2948 (WebCore::popAndPushTargetRenderSurfaceRegion):
2949 (WebCore::CCLayerTreeHost::paintLayerContents):
2950 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2953 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2955 2012-01-31 John Bates <jbates@google.com>
2957 [Chromium] Add chromium-style tracing support
2958 https://bugs.webkit.org/show_bug.cgi?id=76885
2960 Reviewed by Darin Fisher.
2962 This code enables WebKit trace events to pass through more data to the
2963 chromium platform tracing API and generally to use the full tracing
2964 API provided by chromium.
2966 * bindings/v8/V8Proxy.cpp:
2967 (WebCore::V8Proxy::evaluate): Replace old tracing API.
2969 (WebCore::Console::time): Replace old tracing API.
2970 (WebCore::Console::timeEnd): Replace old tracing API.
2971 * platform/chromium/PlatformSupport.h:
2972 * platform/chromium/TraceEvent.h:
2973 (WebCore::TraceEvent::TraceID::TraceID):
2974 (WebCore::TraceEvent::TraceID::data):
2975 (WebCore::TraceEvent::TraceStringWithCopy::TraceStringWithCopy):
2976 (WebCore::TraceEvent::TraceStringWithCopy::operator const char* ):
2977 (WebCore::TraceEvent::setTraceValue):
2978 (WebCore::TraceEvent::addTraceEvent):
2979 (WebCore::TraceEvent::TraceEndOnScopeClose::TraceEndOnScopeClose):
2980 (WebCore::TraceEvent::TraceEndOnScopeClose::~TraceEndOnScopeClose):
2981 (WebCore::TraceEvent::TraceEndOnScopeClose::initialize):
2982 (WebCore::TraceEvent::TraceEndOnScopeClose::addEventIfEnabled):
2983 (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::TraceEndOnScopeCloseThreshold):
2984 (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::~TraceEndOnScopeCloseThreshold):
2985 (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::initialize):
2986 (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::addEventIfEnabled):
2988 2012-01-31 Ryosuke Niwa <rniwa@webkit.org>
2990 Crash in DeleteSelectionCommand::handleGeneralDelete when attempting to delete the start block
2991 https://bugs.webkit.org/show_bug.cgi?id=77077
2993 Reviewed by Enrica Casucci.
2995 The crash was caused by a missing null check after removing the position out of the start block.
2996 Fixed the bug by adding an early return.
2998 Tests: editing/deleting/delete-start-block.html
2999 editing/selection/move-into-empty-root-inline-box.html
3001 * editing/DeleteSelectionCommand.cpp:
3002 (WebCore::DeleteSelectionCommand::handleGeneralDelete):
3004 2012-01-31 Rafael Brandao <rafael.lobo@openbossa.org>
3006 HTMLIsIndexElement should not expose HTMLInputElement properties
3007 https://bugs.webkit.org/show_bug.cgi?id=76095
3009 Reviewed by Eric Seidel.
3011 This is a buildfix for r106373.
3013 * DerivedSources.pri: Removed reference to HTMLIsIndexElement.idl
3015 2012-01-31 Yongsheng Zhu <yongsheng.zhu@intel.com>
3017 WebGL must allocate smaller drawing buffer when the allocation fails.
3018 https://bugs.webkit.org/show_bug.cgi?id=76654
3020 Reviewed by Kenneth Russell.
3022 Test: fast/canvas/webgl/drawingbuffer-test.html
3024 * platform/graphics/gpu/DrawingBuffer.cpp:
3026 (WebCore::DrawingBuffer::create):
3027 (WebCore::DrawingBuffer::reset):
3029 2012-01-25 Eric Seidel <eric@webkit.org>
3031 HTMLIsIndexElement should not expose HTMLInputElement properties
3032 https://bugs.webkit.org/show_bug.cgi?id=76095
3034 Reviewed by Adam Barth.
3036 document.createElement("isindex") should produce an HTMLUnknownElement
3037 per the HTML5 spec. The parser automagically translates <isindex> into
3038 a whole dom tree roughly representing what <isindex> used to do 15 years ago. :)
3040 This patch just removes our support for HTMLIsIndexElement. The parser
3041 support was already in. Having support for HTMLIsIndexElement was causing
3042 one of the IE TestCenter tests to fail.
3044 Test: fast/dom/HTMLIsIndexElement/prototype-chain.html
3046 * DerivedSources.cpp:
3047 * DerivedSources.make:
3048 * DerivedSources.pri:
3049 * GNUmakefile.list.am:
3054 * WebCore.vcproj/WebCore.vcproj:
3055 * WebCore.xcodeproj/project.pbxproj:
3056 * bindings/gobject/GNUmakefile.am:
3057 * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
3058 (WebKit::createHTMLElementWrapper):
3059 * bindings/objc/DOM.mm:
3060 (WebCore::createElementClassMap):
3061 * bindings/objc/DOMHTML.h:
3062 * bindings/objc/PublicDOMInterfaces.h:
3063 * html/HTMLElementsAllInOne.cpp:
3064 * html/HTMLIsIndexElement.cpp: Removed.
3065 * html/HTMLIsIndexElement.h: Removed.
3066 * html/HTMLIsIndexElement.idl: Removed.
3067 * html/HTMLTagNames.in:
3068 * page/DOMWindow.idl:
3070 2012-01-31 Alexis Menard <alexis.menard@openbossa.org>
3072 Unreviewed include cleanup.
3074 Tested locally on Qt and Chromium port.
3078 2012-01-31 Arko Saha <arko@motorola.com>
3080 The spec renamed addTrack() to addTextTrack().
3081 https://bugs.webkit.org/show_bug.cgi?id=77381
3083 Reviewed by Eric Carlson.
3085 Renamed addTrack() to addTextTrack().
3086 Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#media-elements
3088 * html/HTMLMediaElement.cpp:
3089 (WebCore::HTMLMediaElement::addTextTrack):
3090 * html/HTMLMediaElement.h:
3091 (WebCore::HTMLMediaElement::addTextTrack):
3092 * html/HTMLMediaElement.idl:
3094 2012-01-31 Peter Rybin <peter.rybin@gmail.com>
3096 Web Inspector: CodeGeneratorInspector.py: reimplement generated array types
3097 https://bugs.webkit.org/show_bug.cgi?id=77289
3099 Reviewed by Vsevolod Vlasov.
3101 Arrays are now rendered as a single template class. Its type-specific
3102 details are provided by an additional ArrayItemHelper class that is
3103 defined using C++ specialization technique.
3105 * inspector/CodeGeneratorInspector.py:
3107 (RawTypes.String.get_array_item_raw_c_type_text):
3109 (RawTypes.Int.get_array_item_raw_c_type_text):
3111 (RawTypes.Number.get_array_item_raw_c_type_text):
3113 (RawTypes.Bool.get_array_item_raw_c_type_text):
3115 (RawTypes.Object.get_array_item_raw_c_type_text):
3117 (RawTypes.Any.get_array_item_raw_c_type_text):
3119 (RawTypes.Array.get_array_item_raw_c_type_text):
3121 (TypeBindings.create_type_declaration_.EnumBinding):
3122 (TypeBindings.create_type_declaration_.EnumBinding.get_array_item_c_type_text):
3123 (TypeBindings.create_type_declaration_.PlainString):
3124 (TypeBindings.create_type_declaration_.PlainString.get_array_item_c_type_text):
3125 (TypeBindings.create_type_declaration_.TypedefString):
3126 (TypeBindings.create_type_declaration_.TypedefString.get_array_item_c_type_text):
3128 (get_array_item_c_type_text):
3129 (PlainObjectBinding):
3130 (PlainObjectBinding.get_array_item_c_type_text):
3132 (AdHocTypeContext.get_type_name_fix):
3133 (AdHocTypeContext.add_type):
3135 (ArrayBinding.resolve_inner):
3136 (ArrayBinding.resolve_inner.ResolveData):
3137 (ArrayBinding.request_user_runtime_cast):
3138 (ArrayBinding.request_internal_runtime_cast):
3139 (ArrayBinding.get_code_generator):
3140 (ArrayBinding.get_code_generator.CodeGenerator):
3141 (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder):
3142 (ArrayBinding.get_code_generator.CodeGenerator.generate_forward_declaration):
3143 (ArrayBinding.get_code_generator.CodeGenerator.register_use):
3144 (ArrayBinding.get_code_generator.CodeGenerator.get_generate_pass_id):
3145 (ArrayBinding.get_validator_call_text):
3146 (ArrayBinding.get_in_c_type_text):
3147 (ArrayBinding.get_array_item_c_type_text):
3148 (ArrayBinding.get_setter_value_expression_pattern):
3149 (ArrayBinding.reduce_to_raw_type):
3150 (RawTypeBinding.get_array_item_c_type_text):
3156 2012-01-31 Antti Koivisto <antti@apple.com>
3158 Parent SVGFontFaceElements style declaration to the rule
3159 https://bugs.webkit.org/show_bug.cgi?id=77421
3161 Reviewed by Adam Roben.
3163 For some reason the declaration is parented to the element which adds a bunch of unnecessary special case code.
3164 The invalidation on mutation is done explicitly by SVGFontFaceElement so that is not affected. The declaration
3165 is not exposed so the change is not observable with a test.
3167 * css/CSSFontFaceRule.cpp:
3168 (WebCore::CSSFontFaceRule::~CSSFontFaceRule):
3169 * css/CSSMutableStyleDeclaration.h:
3170 (WebCore::CSSMutableStyleDeclaration::createInline):
3171 * svg/SVGFontFaceElement.cpp:
3172 (WebCore::SVGFontFaceElement::SVGFontFaceElement):
3173 (WebCore::SVGFontFaceElement::parseMappedAttribute):
3174 (WebCore::SVGFontFaceElement::fontFamily):
3175 (WebCore::SVGFontFaceElement::rebuildFontFace):
3176 * svg/SVGFontFaceElement.h:
3178 Remove the unnecessary m_styleDeclaration field, access through m_fontFaceRule instead.
3180 2012-01-31 Kenneth Rohde Christiansen <kenneth@webkit.org>
3182 Tap highlighting: Support better outlines for multiline inlines
3183 https://bugs.webkit.org/show_bug.cgi?id=77428
3185 Reviewed by Simon Hausmann.
3187 Covered by manual tests.
3189 Do not use the linesBoundingBox anymore but draw a custom path
3190 with rounded corners. Inlines are drawn as max 3 rects, first
3191 line rect, joined middle rect and the rect for the last line.
3193 * page/GestureTapHighlighter.cpp:
3194 * platform/graphics/Path.h: Make addBeziersForRoundedRect public.
3196 2012-01-31 Alexei Filippov <alexeif@chromium.org>
3198 Web Inspector: show sizes in bytes instead of KB, MB in heap profiler.
3199 https://bugs.webkit.org/show_bug.cgi?id=77199
3201 Reviewed by Pavel Feldman.
3203 * inspector/front-end/DetailedHeapshotGridNodes.js:
3204 (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
3205 (WebInspector.HeapSnapshotInstanceNode.prototype._enhanceData):
3206 (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
3207 (WebInspector.HeapSnapshotDiffNode.prototype.get data):
3208 * inspector/front-end/UIUtils.js:
3209 (Number.withThousandsSeparator):
3211 2012-01-26 Hans Wennborg <hans@chromium.org>
3213 Speech Input: move MockSpeechInputClient into Chromium DumpRenderTree implementation
3214 https://bugs.webkit.org/show_bug.cgi?id=77083
3216 Reviewed by Darin Fisher.
3218 Remove SpeechInputClientMock. The mock is moving to the DumpRenderTree
3221 No new tests, just refactoring.
3223 * GNUmakefile.list.am:
3226 * WebCore.vcproj/WebCore.vcproj:
3227 * WebCore.xcodeproj/project.pbxproj:
3228 * platform/mock/SpeechInputClientMock.cpp: Removed.
3229 * platform/mock/SpeechInputClientMock.h: Removed.
3231 2012-01-31 Pavel Feldman <pfeldman@google.com>
3233 Web Inspector: boost protocol version to 1.0
3234 https://bugs.webkit.org/show_bug.cgi?id=77408
3236 Reviewed by Yury Semikhatsky.
3238 * inspector/Inspector-1.0.json: Copied from Source/WebCore/inspector/Inspector.json.
3239 * inspector/Inspector.json:
3241 2012-01-31 Roland Steiner <rolandsteiner@chromium.org>
3243 <style scoped>: Improve shortcut code for cases where <style scoped> isn't used
3244 https://bugs.webkit.org/show_bug.cgi?id=77410
3246 Move shortcut from setupScopingElementStack(), do it at the calling sites instead
3247 (where a larger chunk of work can be skipped).
3249 Reviewed by Antti Koivisto.
3251 No new tests. (refactoring)
3253 * css/CSSStyleSelector.cpp:
3254 (WebCore::CSSStyleSelector::setupScopingElementStack): remove shortcut code
3255 (WebCore::CSSStyleSelector::pushParent): add shortcut code
3256 (WebCore::CSSStyleSelector::matchScopedAuthorRules): factor matching scoped rules out from matchAuthorRules
3257 (WebCore::CSSStyleSelector::matchAuthorRules): add shortcut code
3258 * css/CSSStyleSelector.h:
3259 (CSSStyleSelector): add matchScopedAuthorRules
3261 2012-01-31 Pavel Feldman <pfeldman@google.com>
3263 Web Inspector: DOMDebugger.setEventListenerBreakpoint should accept regular DOM event names.
3264 https://bugs.webkit.org/show_bug.cgi?id=77409
3266 Reviewed by Yury Semikhatsky.
3268 * inspector/Inspector.json:
3269 * inspector/InspectorDOMDebuggerAgent.cpp:
3270 (WebCore::InspectorDOMDebuggerAgent::setEventListenerBreakpoint):
3272 (WebCore::InspectorDOMDebuggerAgent::setInstrumentationBreakpoint):
3273 (WebCore::InspectorDOMDebuggerAgent::setBreakpoint):
3274 (WebCore::InspectorDOMDebuggerAgent::removeEventListenerBreakpoint):
3275 (WebCore::InspectorDOMDebuggerAgent::removeInstrumentationBreakpoint):
3276 (WebCore::InspectorDOMDebuggerAgent::removeBreakpoint):
3277 (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
3278 * inspector/InspectorDOMDebuggerAgent.h:
3279 (InspectorDOMDebuggerAgent):
3280 * inspector/InspectorInstrumentation.cpp:
3281 (WebCore::InspectorInstrumentation::didInstallTimerImpl):
3282 (WebCore::InspectorInstrumentation::didRemoveTimerImpl):
3283 (WebCore::InspectorInstrumentation::willHandleEventImpl):
3284 (WebCore::InspectorInstrumentation::willFireTimerImpl):
3285 (WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
3286 * inspector/InspectorInstrumentation.h:
3287 (InspectorInstrumentation):
3288 * inspector/front-end/BreakpointsSidebarPane.js:
3289 (WebInspector.EventListenerBreakpointsSidebarPane.prototype._setBreakpoint):
3290 (WebInspector.EventListenerBreakpointsSidebarPane.prototype._removeBreakpoint):
3292 2012-01-31 Pablo Flouret <pablof@motorola.com>
3294 Fix compilation errors on build-webkit --debug --no-workers on mac.
3295 https://bugs.webkit.org/show_bug.cgi?id=75869
3297 Reviewed by Adam Barth.
3301 2012-01-30 Konrad Piascik <kpiascik@rim.com>
3303 Web Inspector: [BlackBerry] Add BlackBerry UA Strings to the Inspector's UA switcher
3304 https://bugs.webkit.org/show_bug.cgi?id=77343
3306 Reviewed by Yury Semikhatsky.
3308 * inspector/front-end/SettingsScreen.js:
3309 (WebInspector.SettingsScreen.prototype._createUserAgentSelectRowElement.get const):
3311 2012-01-30 Yury Semikhatsky <yurys@chromium.org>
3313 Web Inspector: should be possible to step through all event listeners when event listener breakpoint is hit
3314 https://bugs.webkit.org/show_bug.cgi?id=77331
3316 Inspector instrumentation is called before and after each event handler invokation.
3317 In case inspector front-end is closed it is no-op, otherwise it may stop execution
3318 on an event listener breakpoint.
3320 Reviewed by Pavel Feldman.
3322 Test: inspector/debugger/step-through-event-listeners.html
3324 * dom/EventTarget.cpp:
3325 (WebCore::EventTarget::fireEventListeners):
3326 * inspector/InspectorInstrumentation.cpp:
3327 (WebCore::InspectorInstrumentation::willDispatchEventImpl):
3328 (WebCore::InspectorInstrumentation::willHandleEventImpl):
3330 (WebCore::InspectorInstrumentation::didHandleEventImpl):
3331 (WebCore::InspectorInstrumentation::didDispatchEventImpl):
3332 (WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
3333 (WebCore::InspectorInstrumentation::didDispatchEventOnWindowImpl):
3334 * inspector/InspectorInstrumentation.h:
3335 (InspectorInstrumentation):
3336 (WebCore::InspectorInstrumentation::willHandleEvent):
3338 (WebCore::InspectorInstrumentation::didHandleEvent):
3340 2011-01-30 Hayato Ito <hayato@chromium.org>
3342 Attach light children after removing a shadow root.
3343 https://bugs.webkit.org/show_bug.cgi?id=74267
3345 Reviewed by Ryosuke Niwa.
3347 Tests: fast/dom/shadow/dynamically-created-shadow-root-expected.html
3348 fast/dom/shadow/dynamically-created-shadow-root.html:
3351 (WebCore::Element::removeShadowRoot):
3353 2012-01-30 Sheriff Bot <webkit.review.bot@gmail.com>
3355 Unreviewed, rolling out r106324.
3356 http://trac.webkit.org/changeset/106324
3357 https://bugs.webkit.org/show_bug.cgi?id=77406
3359 Broke CCLayerTreeHostTestLayerOcclusion.runMultiThread and
3360 runSingleThread (Requested by yuzo1 on #webkit).
3362 * platform/graphics/FloatRect.cpp:
3363 * platform/graphics/FloatRect.h:
3365 * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
3366 (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
3367 * platform/graphics/chromium/Canvas2DLayerChromium.h:
3369 (Canvas2DLayerChromium):
3370 * platform/graphics/chromium/ContentLayerChromium.cpp:
3371 (WebCore::ContentLayerChromium::paintContentsIfDirty):
3372 * platform/graphics/chromium/ContentLayerChromium.h:
3374 (ContentLayerChromium):
3375 * platform/graphics/chromium/ImageLayerChromium.cpp:
3376 (WebCore::ImageLayerChromium::paintContentsIfDirty):
3377 * platform/graphics/chromium/ImageLayerChromium.h:
3379 (ImageLayerChromium):
3380 * platform/graphics/chromium/LayerChromium.cpp:
3381 * platform/graphics/chromium/LayerChromium.h:
3383 (WebCore::LayerChromium::paintContentsIfDirty):
3385 * platform/graphics/chromium/RenderSurfaceChromium.h:
3386 * platform/graphics/chromium/TiledLayerChromium.cpp:
3387 * platform/graphics/chromium/TiledLayerChromium.h:
3389 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3390 (WebCore::CCLayerTreeHost::paintContentsIfDirty):
3391 (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
3392 (WebCore::CCLayerTreeHost::paintLayerContents):
3393 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3395 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
3396 (WebCore::enclosedIntRect):
3399 2012-01-30 Raymond Liu <raymond.liu@intel.com>
3401 Fix ASSERT fail within AudioBus::processWithGainFrom()
3402 https://bugs.webkit.org/show_bug.cgi?id=76685
3404 Reviewed by Daniel Bates.
3406 Test: webaudio/audionode-connect-order.html
3408 * webaudio/AudioBasicProcessorNode.cpp:
3409 (WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):
3411 2012-01-30 Roland Steiner <rolandsteiner@chromium.org>
3413 <style scoped>: Implement scoped stylesheets and basic application
3414 https://bugs.webkit.org/show_bug.cgi?id=73190
3416 Implementing support for <style scoped>:
3417 Add a vector stack to CSSStyleSelector that keeps track of encountered scoping elements. This is
3418 used for O(1) access to all relevant style sheets for a given element.
3419 Adapt matching of author style sheets to also consult appropriate scoped sheets.
3420 Finally, prevent style sharing from crossing into/out of scoped style boundaries.
3422 Reviewed by Antti Koivisto.
3424 Tests: fast/css/style-scoped/style-scoped-attach.html
3425 fast/css/style-scoped/style-scoped-basic.html
3426 fast/css/style-scoped/style-scoped-detach.html
3427 fast/css/style-scoped/style-scoped-remove-scoped.html
3428 fast/css/style-scoped/style-scoped-set-scoped.html
3430 * css/CSSStyleSelector.cpp:
3432 (WebCore::CSSStyleSelector::CSSStyleSelector): add code for scoped style sheets
3433 (WebCore::CSSStyleSelector::collectFeatures): ditto
3435 (WebCore::CSSStyleSelector::determineScopingElement): determine whether an author sheet is scoped (and to which scope), or global
3436 (WebCore::CSSStyleSelector::scopedRuleSetForElement): returns the RuleSet for the <style scoped> contained by the passed-in element (if any), or 0
3437 (WebCore::CSSStyleSelector::appendAuthorStylesheets): add code for scoped style sheets
3438 (WebCore::CSSStyleSelector::setupScopingElementStack): determine scoping element ancestors of the given element
3439 (WebCore::CSSStyleSelector::pushParent): simplify and refactor SelectorChecker::pushParent, as code in CSStyleSelector needs partial access
3440 (WebCore::CSSStyleSelector::popParent): ditto
3441 (WebCore::CSSStyleSelector::sortAndTransferMatchedRules): helper function
3442 (WebCore::CSSStyleSelector::matchAuthorRules): use AuthorRuleSetIterator to iterate over all relevant RuleSets
3443 (WebCore::CSSStyleSelector::matchRules): adapt for scoped style rules
3444 (WebCore::CSSStyleSelector::matchAllRules): ditto
3445 (WebCore::CSSStyleSelector::locateCousinList): prevent style sharing across scope boundaries
3446 (WebCore::CSSStyleSelector::canShareStyleWithElement): ditto
3447 (WebCore::CSSStyleSelector::locateSharedStyle): ditto
3448 (WebCore::CSSStyleSelector::pseudoStyleForElement): changed call to matchAuthorRules
3449 (WebCore::CSSStyleSelector::styleForPage): add comment
3450 (WebCore::CSSStyleSelector::checkRegionStyle): add global scope parameter
3451 (WebCore::CSSStyleSelector::pseudoStyleRulesForElement): changed call to matchAuthorRules
3452 (WebCore::RuleSet::addRulesFromSheet): adapt for scoped style rules
3453 * css/CSSStyleSelector.h:
3455 (WebCore::CSSStyleSelector::ScopeStackFrame::ScopeStackFrame): struct holding an Element pointer and a RuleSet pointer, to be used in a Vector
3456 (WebCore::CSSStyleSelector::scopingElementStackIsConsistent): returns if the last seen parent matches the passed-in element
3457 * css/SelectorChecker.cpp:
3458 (WebCore::SelectorChecker::setupParentStack): set up the parent stack (refactoring)
3459 (WebCore::SelectorChecker::pushParent): simplify and refactor
3460 * css/SelectorChecker.h:
3461 (WebCore::SelectorChecker::popParent): ditto
3462 (WebCore::SelectorChecker::parentStackIsEmpty): ditto
3463 (WebCore::SelectorChecker::parentStackIsConsistent): make parameter const
3465 2012-01-30 Dana Jansens <danakj@chromium.org>
3467 [chromium] Compute occlusion during paint loop
3468 https://bugs.webkit.org/show_bug.cgi?id=76858
3470 Reviewed by James Robinson.
3472 New unit tests in TiledLayerChromiumTest.cpp, CCLayerTreeHostCommonTest.cpp, CCLayerTreeHostTest.cpp
3474 * platform/graphics/FloatRect.cpp:
3475 (WebCore::enclosedIntRect):
3477 * platform/graphics/FloatRect.h:
3479 * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
3480 (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
3481 * platform/graphics/chromium/Canvas2DLayerChromium.h:
3482 (Canvas2DLayerChromium):
3483 * platform/graphics/chromium/ContentLayerChromium.cpp:
3484 (WebCore::ContentLayerChromium::paintContentsIfDirty):
3485 * platform/graphics/chromium/ContentLayerChromium.h:
3486 (ContentLayerChromium):
3487 * platform/graphics/chromium/ImageLayerChromium.cpp:
3488 (WebCore::ImageLayerChromium::paintContentsIfDirty):
3489 * platform/graphics/chromium/ImageLayerChromium.h:
3490 (ImageLayerChromium):
3491 * platform/graphics/chromium/LayerChromium.cpp:
3492 (WebCore::LayerChromium::contentToScreenSpaceTransform):
3494 (WebCore::LayerChromium::addSelfToOccludedScreenSpace):
3495 (WebCore::LayerChromium::isPaintedAxisAlignedInScreen):
3496 * platform/graphics/chromium/LayerChromium.h:
3498 (WebCore::LayerChromium::paintContentsIfDirty):
3500 * platform/graphics/chromium/RenderSurfaceChromium.h:
3501 (RenderSurfaceChromium):
3502 * platform/graphics/chromium/TiledLayerChromium.cpp:
3503 (WebCore::TiledLayerChromium::addSelfToOccludedScreenSpace):
3504 * platform/graphics/chromium/TiledLayerChromium.h:
3507 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3508 (WebCore::CCLayerTreeHost::paintContentsIfDirty):
3509 (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
3510 (RenderSurfaceRegion):
3512 (WebCore::pushTargetRenderSurfaceRegion):
3513 (WebCore::popAndPushTargetRenderSurfaceRegion):
3514 (WebCore::CCLayerTreeHost::paintLayerContents):
3515 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3518 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
3520 2012-01-30 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
3522 Add ElementAttributeData class to replace internal uses of NamedNodeMap
3523 https://bugs.webkit.org/show_bug.cgi?id=77233
3525 Reviewed by Andreas Kling.
3527 Move part of non-DOM functionality of NamedNodeMap into a separate class. This is
3528 the first step toward the goal of separating NamedNodeMap from internal attribute
3529 storage, as described in https://bugs.webkit.org/show_bug.cgi?id=75069.
3531 The internal attribute storage is exposed as attributeData() in Element, and when
3532 necessary (because it has no back pointer to Element) via methods in Element.
3534 No new tests. Except from setClass() change this is just moving the code, no new
3538 * GNUmakefile.list.am:
3541 * WebCore.xcodeproj/project.pbxproj:
3542 * dom/DOMAllInOne.cpp:
3544 (WebCore::Element::idAttributeChanged):
3546 (WebCore::Element::attributeData):
3547 (WebCore::Element::ensureAttributeData):
3549 (WebCore::Element::idForStyleResolution):
3550 * dom/ElementAttributeData.cpp: Added.
3552 (WebCore::ElementAttributeData::setClass): the only caller of this function
3553 already deal with the case when the element has no class, so don't do it here.
3554 * dom/ElementAttributeData.h: Added.
3556 (ElementAttributeData):
3557 (WebCore::ElementAttributeData::clearClass):
3558 (WebCore::ElementAttributeData::classNames):
3559 (WebCore::ElementAttributeData::idForStyleResolution):
3560 (WebCore::ElementAttributeData::setIdForStyleResolution):
3561 (WebCore::ElementAttributeData::ElementAttributeData):
3562 * dom/NamedNodeMap.cpp:
3563 (WebCore::NamedNodeMap::clearAttributes):
3564 * dom/NamedNodeMap.h:
3565 (WebCore::NamedNodeMap::attributeData):
3567 * dom/StyledElement.cpp:
3568 (WebCore::StyledElement::classAttributeChanged):
3569 * dom/StyledElement.h:
3570 (WebCore::StyledElement::classNames):
3571 * html/ClassList.cpp:
3572 (WebCore::ClassList::classNames):
3574 2012-01-30 Gregg Tavares <gman@chromium.org>
3576 Add Plumming to get graphics error messages to JS Console
3577 https://bugs.webkit.org/show_bug.cgi?id=77238
3579 Reviewed by Kenneth Russell.
3581 No new tests. No change in behavior.
3583 * html/canvas/WebGLRenderingContext.cpp:
3584 (WebGLRenderingContextErrorMessageCallback):
3585 (WebCore::WebGLRenderingContextErrorMessageCallback::WebGLRenderingContextErrorMessageCallback):
3586 (WebCore::WebGLRenderingContextErrorMessageCallback::onErrorMessage):
3587 (WebCore::WebGLRenderingContextErrorMessageCallback::~WebGLRenderingContextErrorMessageCallback):
3589 (WebCore::WebGLRenderingContext::create):
3590 (WebCore::WebGLRenderingContext::initializeNewContext):
3591 (WebCore::WebGLRenderingContext::~WebGLRenderingContext):
3592 * html/canvas/WebGLRenderingContext.h:
3593 (WebGLRenderingContext):
3594 * platform/graphics/GraphicsContext3D.h:
3595 (ErrorMessageCallback):
3596 (WebCore::GraphicsContext3D::ErrorMessageCallback::~ErrorMessageCallback):
3597 (GraphicsContext3D):
3598 * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
3599 (WebCore::GraphicsContext3D::setErrorMessageCallback):
3601 * platform/graphics/efl/GraphicsContext3DEfl.cpp:
3602 (WebCore::GraphicsContext3D::setErrorMessageCallback):
3604 * platform/graphics/qt/GraphicsContext3DQt.cpp:
3605 (WebCore::GraphicsContext3D::setErrorMessageCallback):
3608 2012-01-30 Anders Carlsson <andersca@apple.com>
3610 Simplify RenderLayerCompositor::frameViewDidScroll
3611 https://bugs.webkit.org/show_bug.cgi?id=77398
3613 Reviewed by Sam Weinig.
3615 Remove the scrollPosition parameter from RenderLayerCompositor::frameViewDidScroll; we can just get it
3616 from the associated FrameView object.
3618 * page/FrameView.cpp:
3619 (WebCore::FrameView::scrollPositionChanged):
3620 * rendering/RenderLayerCompositor.cpp:
3621 (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
3622 Call frameViewDidScroll() here instead of setting the scroll layer position explicitly.
3624 (WebCore::RenderLayerCompositor::frameViewDidScroll):
3625 (WebCore::RenderLayerCompositor::ensureRootLayer):
3626 * rendering/RenderLayerCompositor.h:
3627 (RenderLayerCompositor):
3629 2012-01-30 Pablo Flouret <pablof@motorola.com>
3631 Don't select the next selectable index when deselecting an option in select elements with size set to a value greater than one.
3632 https://bugs.webkit.org/show_bug.cgi?id=76389
3634 Reviewed by Kent Tamura.
3636 This behavior matches the rest of the browsers.
3638 Test: fast/forms/select/option-selecting.html
3640 * html/HTMLSelectElement.cpp:
3641 (WebCore::HTMLSelectElement::optionSelectionStateChanged):
3643 2012-01-30 Anders Carlsson <andersca@apple.com>
3645 Scrollbars don't show when scrolling on the scrolling thread
3646 https://bugs.webkit.org/show_bug.cgi?id=77396
3647 <rdar://problem/10710736>
3649 Reviewed by Sam Weinig.
3651 Use ScrollAnimator::scrollToOffsetWithoutAnimation when updating the frame view scroll offset,
3652 since that function will end up invalidating the scrollbars correctly.
3654 * page/ScrollingCoordinator.cpp:
3655 (WebCore::ScrollingCoordinator::didUpdateMainFrameScrollPosition):
3657 2012-01-30 Anders Carlsson <andersca@apple.com>
3659 Show repaint counters in individual tiles
3660 https://bugs.webkit.org/show_bug.cgi?id=77390
3661 <rdar://problem/10767967>
3663 Reviewed by Darin Adler.
3665 * platform/graphics/ca/mac/TileCache.h:
3666 * platform/graphics/ca/mac/TileCache.mm:
3667 (WebCore::TileCache::setNeedsDisplayInRect):
3668 Make sure to invalidate the repaint counter rect if necessary.
3670 (WebCore::TileCache::drawLayer):
3671 Draw the repaint counter.
3673 (WebCore::TileCache::showRepaintCounter):
3674 New function that determines whether we should show repaint counters for the given tile cache.
3676 * platform/graphics/ca/mac/WebTileLayer.h:
3677 * platform/graphics/ca/mac/WebTileLayer.mm:
3678 (-[WebTileLayer incrementRepaintCount]):
3679 Add method for getting the repaint count.
3681 2012-01-30 Dan Bernstein <mitz@apple.com>
3683 <rdar://problem/10778045> REGRESSION (r91935): text-combine fails
3684 https://bugs.webkit.org/show_bug.cgi?id=77373
3686 Reviewed by Darin Adler.
3688 Removed tests that were failing because of this bug from the Lion skipped
3691 * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
3692 (WebCore::GlyphPage::fill): Changed to use CTFontGetGlyphsForCharacters,
3693 rather than wkGetVerticalGlyphsForCharacters, for non-fullwidth fonts.
3695 2012-01-30 Christopher Hutten-Czapski <chutten@rim.com>
3697 BlackBerry - Support Proxy-Authenticate headers when a proxy is configured
3698 https://bugs.webkit.org/show_bug.cgi?id=77361
3700 Though we have a proxy configured, we might not have the auth
3701 credentials it requires. Support Proxy-Authenticate for that case.
3703 Reviewed by George Staikos.
3705 * platform/network/blackberry/NetworkJob.cpp:
3706 (WebCore::NetworkJob::handleNotifyHeaderReceived):
3707 (WebCore::NetworkJob::handleAuthHeader):
3708 (WebCore::NetworkJob::sendRequestWithCredentials):
3709 * platform/network/blackberry/NetworkJob.h:
3710 * platform/network/blackberry/NetworkManager.cpp:
3711 (WebCore::NetworkManager::startJob):
3713 2012-01-27 James Robinson <jamesr@chromium.org>
3715 [chromium] Remove unnecessary retry logic in LayerRendererChromium initialization for accelerated painting
3716 https://bugs.webkit.org/show_bug.cgi?id=77247
3718 Reviewed by Kenneth Russell.
3720 The accelerate painting setting is done differently from other capability-dependent settings for no good reason,
3721 requiring that we retry initialization with different settings. For all other settings we set the capabilities
3722 bit to true if the setting is requested and if the required capabilities exist on the underlying context.
3724 * platform/graphics/chromium/LayerRendererChromium.cpp:
3725 (WebCore::LayerRendererChromium::create):
3726 (WebCore::LayerRendererChromium::initialize):
3727 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3728 (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
3730 2012-01-30 Brady Eidson <beidson@apple.com>
3732 <rdar://problem/10707072>
3733 Crashes in WebProcess at WebCore::Node::rendererIsNeeded
3735 Reviewed by Darin Adler.
3737 In specific circumstances a plugin element can be without a render style at the point in time where
3738 the page navigated and enters the page cache.
3740 When this is the cash, the element should not enter into the "custom style for renderer" mode and should
3741 instead use the default render style machinery.
3743 Test: plugins/crash-restoring-pluging-page-from-page-cache.html
3745 * html/HTMLPlugInImageElement.cpp:
3746 (WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache): Only setHasCustomStyleForRenderer and
3747 forceRecalc if there actually is a custom style to be used.
3748 (WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache): Only clearHasCustomStyleForRenderer if there
3749 actually was a custom style to be cleared.
3750 (WebCore::HTMLPlugInImageElement::customStyleForRenderer): This should only be called if there actually is a
3751 custom style to be used. Otherwise the element would have to fallback to the "normal" RenderStyle which might
3754 2012-01-30 Anders Carlsson <andersca@apple.com>
3756 Show debug borders for individual tile cache tiles
3757 https://bugs.webkit.org/show_bug.cgi?id=77388
3759 Reviewed by Sam Weinig.
3761 * platform/graphics/GraphicsLayer.cpp:
3762 (WebCore::GraphicsLayer::updateDebugIndicators):
3763 Give tile cache tiles a thin dark blue border.
3765 * platform/graphics/ca/mac/TileCache.h:
3766 (WebCore::TileCache::tileDebugBorderWidth):
3767 (WebCore::TileCache::tileDebugBorderColor):
3768 Add getters and member variables for the tile debug border width and color.
3770 * platform/graphics/ca/mac/TileCache.mm:
3771 (WebCore::TileCache::TileCache):
3772 Initialize m_tileDebugBorderWidth.
3774 (WebCore::TileCache::setTileDebugBorderWidth):
3775 Update the border width of each tile layer.
3777 (WebCore::TileCache::setTileDebugBorderColor):
3778 Update the border color of each tile layer.
3780 (WebCore::TileCache::createTileLayer):
3781 Set the border color and border width.
3783 * platform/graphics/ca/mac/WebTileCacheLayer.h:
3784 * platform/graphics/ca/mac/WebTileCacheLayer.mm:
3785 (-[WebTileCacheLayer borderColor]):
3786 (-[WebTileCacheLayer setBorderColor:]):
3787 (-[WebTileCacheLayer borderWidth]):
3788 (-[WebTileCacheLayer setBorderWidth:]):
3789 Call through to the TileCache.
3791 * platform/graphics/mac/WebLayer.mm:
3792 (drawLayerContents):
3793 Don't draw the repaint counter for tile cache layers, each tile will maintain its own repaint counter.
3795 2012-01-30 Rakesh KN <rakesh.kn@motorola.com>
3797 single-file input elements should refuse multi-file drags
3798 https://bugs.webkit.org/show_bug.cgi?id=25913
3800 Reviewed by Eric Seidel.
3802 Refuse the multiple file drags onto a single file input element.
3804 No new tests: Covered by existing tests, updated the expected results.
3806 * page/DragController.cpp:
3807 (WebCore::DragController::tryDocumentDrag):
3808 Setting the dragSession.numberOfItemsToBeAccepted to 0 so that drag operation is none if the
3809 file input element under mouse is single input type and number of files dragged onto that
3810 input element are more than 1.
3812 2012-01-30 Dana Jansens <danakj@chromium.org>
3814 [chromium] Use region reported painted opaque for draw culling
3815 https://bugs.webkit.org/show_bug.cgi?id=76015
3817 Reviewed by James Robinson.
3819 New unit tests in CCTiledLayerImplTest.cpp, CCQuadCullerTest.cpp, CCLayerTreeHostImplTest.cpp
3821 * platform/graphics/chromium/LayerChromium.cpp:
3822 (WebCore::LayerChromium::setOpaque):
3823 * platform/graphics/chromium/TiledLayerChromium.cpp:
3825 (WebCore::TiledLayerChromium::pushPropertiesTo):
3826 (WebCore::TiledLayerChromium::prepareToUpdateTiles):
3827 * platform/graphics/chromium/cc/CCDrawQuad.cpp:
3828 (WebCore::CCDrawQuad::opaqueRect):
3830 * platform/graphics/chromium/cc/CCDrawQuad.h:
3832 (WebCore::CCDrawQuad::needsBlending):
3833 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
3834 (WebCore::CCQuadCuller::cullOccludedQuads):
3835 * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp:
3836 (WebCore::CCSolidColorDrawQuad::CCSolidColorDrawQuad):
3837 * platform/graphics/chromium/cc/CCTileDrawQuad.cpp:
3838 (WebCore::CCTileDrawQuad::create):
3839 (WebCore::CCTileDrawQuad::CCTileDrawQuad):
3840 * platform/graphics/chromium/cc/CCTileDrawQuad.h:
3842 * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
3844 (WebCore::DrawableTile::opaqueRect):
3845 (WebCore::DrawableTile::setOpaqueRect):
3846 (WebCore::CCTiledLayerImpl::appendQuads):
3847 (WebCore::CCTiledLayerImpl::pushTileProperties):
3848 * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
3851 2012-01-30 Ryosuke Niwa <rniwa@webkit.org>
3853 Crash in previousLinePosition when moving into a root inline box without leaves
3854 https://bugs.webkit.org/show_bug.cgi?id=76812
3856 Reviewed by Enrica Casucci.
3858 The crash was caused by us assuming that every root inline box has at least one leaf,
3859 which isn't true when we create inline boxes for an empty text run with margin, border, etc...
3861 Test: editing/selection/move-into-empty-root-inline-box.html
3863 * editing/visible_units.cpp:
3864 (WebCore::previousLinePosition):
3865 (WebCore::nextLinePosition):
3867 2012-01-30 Levi Weintraub <leviw@chromium.org>
3869 !m_insideRegionPaint assertion in RenderRegion.cpp is invalid
3870 https://bugs.webkit.org/show_bug.cgi?id=77372
3872 Reviewed by David Hyatt.
3874 Removing the !m_insideRegionPaint assertion that's in three functions in
3875 RenderRegion. It's triggering in numerous layout tests and isn't valid.
3877 No new tests as this just removes assertions.
3879 * rendering/RenderRegion.cpp:
3880 (WebCore::RenderRegion::setRenderBoxRegionInfo):
3881 (WebCore::RenderRegion::takeRenderBoxRegionInfo):
3882 (WebCore::RenderRegion::removeRenderBoxRegionInfo):
3884 2012-01-30 Adrienne Walker <enne@google.com>
3886 [chromium] Always pre-reserve scrollbar and scroll corner textures
3887 https://bugs.webkit.org/show_bug.cgi?id=77251
3889 Reviewed by James Robinson.
3891 Add a flag to LayerChromium that says that a layer's textures should
3892 always be reserved. Prior to painting layers, find all layers marked
3893 as such and reserve their textures. This will prevent texture memory
3894 limits from being hit before the root layer's scrollbars are reserved
3897 * platform/graphics/chromium/LayerChromium.cpp:
3898 (WebCore::LayerChromium::LayerChromium):
3899 * platform/graphics/chromium/LayerChromium.h:
3901 (WebCore::LayerChromium::reserveTextures):
3902 (WebCore::LayerChromium::setAlwaysReserveTextures):
3903 (WebCore::LayerChromium::alwaysReserveTextures):
3904 * platform/graphics/chromium/TiledLayerChromium.cpp:
3905 (WebCore::TiledLayerChromium::reserveTextures):
3906 * platform/graphics/chromium/TiledLayerChromium.h:
3908 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3909 (WebCore::CCLayerTreeHost::updateLayers):
3910 (WebCore::CCLayerTreeHost::reserveTextures):
3912 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3915 2012-01-30 Beth Dakin <bdakin@apple.com>
3917 Speculative 32-bit build-fix.
3921 2012-01-30 Mihnea Ovidenie <mihnea@adobe.com>
3923 [CSSRegions]Add support for background-color in region styling
3924 https://bugs.webkit.org/show_bug.cgi?id=71488
3926 Reviewed by David Hyatt.
3928 Based on work by Alexandru Chiculita (achicu@adobe.com).
3929 Previous patches for region styling were touching RenderObject::style() method. After several attempts to avoid regressions
3930 (including caching of RenderObject::style() pointer in most used methods), we decided to attempt a different approach:
3931 Step1: before each region is repainted, we compute the style for each box that falls into the region
3932 Step2: before paint, we store the box original style
3933 Step3: paint the region contents using the style in region
3934 Step4: after paint is finished, we restore the box original style (and store the box style in region for future region paint)
3936 Tests for region styling are also enabled with this patch.
3939 * rendering/RenderFlowThread.cpp:
3940 (WebCore::RenderFlowThread::clearRenderBoxCustomStyle):
3941 (WebCore::RenderFlowThread::setRegionRangeForBox):
3942 * rendering/RenderFlowThread.h:
3944 * rendering/RenderLayer.cpp:
3945 (WebCore::RenderLayer::paint):
3946 (WebCore::RenderLayer::hitTest):
3947 * rendering/RenderObject.cpp:
3948 * rendering/RenderObject.h:
3949 (WebCore::RenderObject::style):
3951 * rendering/RenderObjectChildList.cpp:
3952 (WebCore::RenderObjectChildList::removeChildNode):
3953 * rendering/RenderRegion.cpp:
3954 (WebCore::RenderRegion::RenderRegion):
3955 (WebCore::RenderRegion::setRegionBoxesRegionStyle):
3957 (WebCore::RenderRegion::restoreRegionBoxesOriginalStyle):
3958 (WebCore::RenderRegion::paintReplaced):
3959 (WebCore::RenderRegion::setRenderBoxRegionInfo):
3960 (WebCore::RenderRegion::takeRenderBoxRegionInfo):
3961 (WebCore::RenderRegion::removeRenderBoxRegionInfo):
3962 (WebCore::RenderRegion::renderBoxRegionStyle):
3963 (WebCore::RenderRegion::computeStyleInRegion):
3964 (WebCore::RenderRegion::clearBoxStyleInRegion):
3965 * rendering/RenderRegion.h:
3967 * rendering/RenderView.cpp:
3968 (WebCore::RenderView::RenderView):
3969 * rendering/RenderView.h:
3973 2012-01-30 Jessie Berlin <jberlin@apple.com>
3975 WebCore build exceeds address space on 32-bit Windows builders (again).
3976 https://bugs.webkit.org/show_bug.cgi?id=77357
3978 Reviewed by Adam Roben.
3980 Add an Inspector All-In-One file, but only use it in Release and Production builds.
3981 This differs from our other All-In-One files, but it is a better approach because it makes
3982 debugging possible in the Debug configuration (the symbols will be in the correct .obj file
3983 for the original .cpp files).
3985 * WebCore.vcproj/WebCore.vcproj:
3986 Also, let VS have its way with the vcproj file.
3987 * inspector/InspectorAllInOne.cpp: Added.
3989 2012-01-28 Matthew Delaney <mdelaney@apple.com>
3991 Limit periodic flushing inside ImageBufferCG to just Lion
3992 https://bugs.webkit.org/show_bug.cgi?id=77353
3993 <rdar://problem/10328309>
3995 Reviewed by Chris Marrin.
3997 * platform/graphics/cg/ImageBufferCG.cpp:
3998 * platform/graphics/cg/ImageBufferDataCG.h:
4000 2012-01-30 Tommy Widenflycht <tommyw@google.com>
4002 Memory leak caused by PeerConnection add a NULL media stream
4003 https://bugs.webkit.org/show_bug.cgi?id=76150
4005 It was my missunderstanding that the IDL keyword [StrictTypeChecking] also protects against
4006 null or undefined arguments, it doesn't. Added checks for null pointers.
4008 Reviewed by Adam Barth.
4010 Test: fast/mediastream/peerconnection-addstream.html
4012 * mediastream/PeerConnection.cpp:
4013 (WebCore::PeerConnection::addStream):
4014 (WebCore::PeerConnection::removeStream):
4016 2012-01-26 Andy Estes <aestes@apple.com>
4018 [Windows] Optionally invert colors when drawing to a WebView's backing store.
4019 https://bugs.webkit.org/show_bug.cgi?id=77168
4021 Reviewed by Sam Weinig.
4023 * css/CSSPrimitiveValueMappings.h: Assert that CompositeDifference is
4024 not converted to a CSS value. Exposing a new compositing operation to
4025 CSS is outside the scope of this patch.
4026 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
4027 * platform/graphics/GraphicsTypes.h: Add CompositeDifference as a
4028 CompositeOperator. Also, remove an outdated comment.
4029 * platform/graphics/cg/GraphicsContextCG.cpp:
4030 (WebCore::GraphicsContext::setPlatformCompositeOperation): Map
4031 CompositeDifference to kCGBlendModeDifference.
4033 2012-01-28 Matthew Delaney <mdelaney@apple.com>
4035 Limit the shadow offset CG hack to just SL and Lion
4036 https://bugs.webkit.org/show_bug.cgi?id=77348
4037 <rdar://problem/10158016>
4039 Reviewed by Chris Marrin.
4041 No new tests, current tests cover this.
4043 * platform/graphics/cg/GraphicsContextCG.cpp:
4044 (WebCore::GraphicsContext::setPlatformShadow):
4046 2012-01-30 Beth Dakin <bdakin@apple.com>
4048 https://bugs.webkit.org/show_bug.cgi?id=77263
4049 PlatformScreenMac should not rely on NSWindow for important bits of data
4051 Reviewed by Geoff Garen.
4053 The main problem is that we cannot rely on the NSWindow for information about
4054 the deviceScaleFactor because we cannot access an NSWindow from within
4055 WebCore for WebKit2 windows. Instead, we can fetch it from
4056 WebCore::deviceScaleFactor(), but we need a Frame to call that. So
4057 screenAvailableRect and screenRect both now take a FrameView* instead of a
4058 Widget*. All existing call sites actually sent a FrameView in anyway, so this
4059 is not a big change, but it does require touching a lot of platforms.
4061 * platform/PlatformScreen.h:
4063 * platform/blackberry/PlatformScreenBlackBerry.cpp:
4064 (WebCore::screenAvailableRect):
4065 (WebCore::screenRect):
4066 * platform/chromium/PlatformScreenChromium.cpp:
4067 (WebCore::screenRect):
4068 (WebCore::screenAvailableRect):
4069 * platform/chromium/PlatformSupport.h:
4073 * platform/efl/PlatformScreenEfl.cpp:
4074 (WebCore::screenRect):
4075 (WebCore::screenAvailableRect):
4076 * platform/gtk/PlatformScreenGtk.cpp:
4077 (WebCore::screenRect):
4078 (WebCore::screenAvailableRect):
4079 * platform/qt/PlatformScreenQt.cpp:
4080 (WebCore::screenRect):
4081 (WebCore::screenAvailableRect):
4082 * platform/win/PlatformScreenWin.cpp:
4083 (WebCore::screenRect):
4084 (WebCore::screenAvailableRect):
4085 * platform/wx/ScreenWx.cpp:
4086 (WebCore::screenRect):
4087 (WebCore::screenAvailableRect):
4089 The Mac-only functions toUserSpace() and toDeviceSpace() were also updated to
4090 take a parameter for the deviceScaleFactor.
4091 * platform/mac/PlatformScreenMac.mm:
4092 (WebCore::screenRect):
4093 (WebCore::screenAvailableRect):
4094 (WebCore::toUserSpace):
4095 (WebCore::toDeviceSpace):
4097 2012-01-30 Antti Koivisto <antti@apple.com>
4099 Kill CSSMutableStyleDeclarationConstIterator
4100 https://bugs.webkit.org/show_bug.cgi?id=77342
4102 Reviewed by Sam Weinig.
4104 CSSMutableStyleDeclaration is an array and should be iterated using an index. This simplifies the code.
4106 * css/CSSMutableStyleDeclaration.cpp:
4107 (WebCore::CSSMutableStyleDeclaration::copyPropertiesFrom):
4108 (WebCore::CSSMutableStyleDeclaration::removeProperty):
4109 (WebCore::CSSMutableStyleDeclaration::setProperty):