b99929039bd3fdc537c3e819e1c1370b90c00327
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-09-12  David Levin  <levin@chromium.org>
2
3         Make the ThreadSafeRefCounted support in CrossThreadCopier work for T*.
4         https://bugs.webkit.org/show_bug.cgi?id=67947
5
6         Reviewed by Adam Barth.
7
8         The changes are tested by compiling and added compile asserts to do some verification as well.
9
10         * platform/CrossThreadCopier.cpp:
11         Added some compile asserts to verify various match and non-matches for CrossThreadCopier.
12         * platform/CrossThreadCopier.h:
13         Added a typedef to convert T* to T, just like the typedef's to remove RefPtr and PassRefPtr.
14         Added a compile assert to verify that only one of the typedef did anything.
15         (CrossThreadCopierBase<false, true, T>::copy): Remove "get" as it is unnecessary.
16         It shouldn't have been here (PassRefPtr and RefPtr easily and sometimes more efficiently
17         convert to PassRefPtr without get). Also, a raw pointer doesn't have a get() method.
18
19 2011-09-12  Chris Rogers  <crogers@google.com>
20
21         Address lifetime issues in OfflineAudioDestinationNode
22         https://bugs.webkit.org/show_bug.cgi?id=67949
23
24         Reviewed by Kenneth Russell.
25
26         No new tests.  This does not change JavaScript API.
27
28         * webaudio/OfflineAudioDestinationNode.cpp:
29         (WebCore::OfflineAudioDestinationNode::~OfflineAudioDestinationNode):
30         (WebCore::OfflineAudioDestinationNode::render):
31         (WebCore::OfflineAudioDestinationNode::notifyCompleteDispatch):
32
33 2011-09-12  Jeff Timanus  <twiz@chromium.org>
34
35         [chromium]  Prevent a crash when tearing down an ImageBuffer that was not successfully initialized.
36         https://bugs.webkit.org/show_bug.cgi?id=67944
37
38         Reviewed by Stephen White.
39         
40         * platform/graphics/skia/ImageBufferSkia.cpp:
41         (WebCore::ImageBuffer::~ImageBuffer):
42
43 2011-09-12  Michael Saboff  <msaboff@apple.com>
44
45         Update RegExp and related classes to use 8 bit strings when available
46         https://bugs.webkit.org/show_bug.cgi?id=67337
47
48         Updated call to match to use UString& instead of UChar*.
49
50         Reviewed by Gavin Barraclough.
51
52         No new tests, Covered by existing tests.
53
54         * platform/text/RegularExpression.cpp:
55         (WebCore::RegularExpression::match):
56
57 2011-09-12  Beth Dakin  <bdakin@apple.com>
58
59         https://bugs.webkit.org/show_bug.cgi?id=67898
60         REGRESSION(r94900): fast/images/support-broken-image-delegate.html fails on Mac
61
62         Reviewed by Simon Fraser.
63
64         New function willPaintBrokenImage() returns true when there has been an error 
65         loading the image and the broken image icon will be used in its place. This is 
66         necessary since it is possible to have an error loading an image and to NOT use 
67         the broken image icon. 
68         * loader/cache/CachedImage.cpp:
69         (WebCore::CachedImage::willPaintBrokenImage):
70         * loader/cache/CachedImage.h:
71         * rendering/RenderImage.cpp:
72         (WebCore::RenderImage::imageSizeForError):
73
74 2011-09-12  James Robinson  <jamesr@chromium.org>
75
76         [chromium] Move contents texture manager from LayerRendererChromium to CCLayerTreeHost
77         https://bugs.webkit.org/show_bug.cgi?id=67440
78
79         Reviewed by Kenneth Russell.
80
81         This moves the contents TextureManager over to the CCLayerTreeHost, where it belongs, and adds in a commit path
82         to make sure that textures are deleted even if the page is not visible.  This move also removed the need for
83         LayerRendererChromium's CCLayerTreeHost pointer, so I removed that as well.  That meant moving the
84         layerTreeAsText() logic over to the CCLayerImpl side, which is where it really belonged anyway.
85
86         Covered by existing compositing/ tests and
87         platform/chromium/compositor/lost-compositor-context-with-rendersurface.html
88
89         * platform/graphics/chromium/LayerRendererChromium.cpp:
90         (WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
91         (WebCore::LayerRendererChromium::drawLayers):
92         (WebCore::LayerRendererChromium::initializeSharedObjects):
93         (WebCore::LayerRendererChromium::cleanupSharedObjects):
94         * platform/graphics/chromium/LayerRendererChromium.h:
95         (WebCore::LayerRendererChromium::setContentsTextureMemoryUseBytes):
96         * platform/graphics/chromium/TextureManager.cpp:
97         (WebCore::TextureManager::highLimitBytes):
98         (WebCore::TextureManager::reclaimLimitBytes):
99         (WebCore::TextureManager::lowLimitBytes):
100         * platform/graphics/chromium/TextureManager.h:
101         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
102         (WebCore::CCLayerTreeHost::initialize):
103         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
104         (WebCore::CCLayerTreeHost::deleteContentsTextures):
105         (WebCore::CCLayerTreeHost::commitTo):
106         (WebCore::CCLayerTreeHost::setVisible):
107         (WebCore::CCLayerTreeHost::contentsTextureManager):
108         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
109         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
110         (WebCore::CCLayerTreeHostImpl::setVisible):
111         * platform/graphics/chromium/cc/CCProxy.h:
112         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
113         (WebCore::CCSingleThreadProxy::setNeedsCommit):
114         (WebCore::CCSingleThreadProxy::stop):
115         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
116         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
117         (WebCore::CCThreadProxy::setNeedsCommit):
118         (WebCore::CCThreadProxy::setNeedsCommitOnCCThread):
119         (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
120         * platform/graphics/chromium/cc/CCThreadProxy.h:
121
122 2011-09-12  Chris Rogers  <crogers@google.com>
123
124         DelayNode delay buffer is not correctly wrapping around
125         https://bugs.webkit.org/show_bug.cgi?id=67872
126
127         Reviewed by Kenneth Russell.
128
129         Test: webaudio/delaynode.html
130
131         * webaudio/DelayDSPKernel.cpp:
132         (WebCore::DelayDSPKernel::process):
133
134 2011-09-12  Arko Saha  <arko@motorola.com>
135
136         Selectstart is not fired when selection was created by arrow keys.
137         https://bugs.webkit.org/show_bug.cgi?id=60430
138
139         Reviewed by Ryosuke Niwa.
140
141         Fire selectstart when a user starts extending the selection using arrow key.
142         Fixed by Arko Saha  <arko@motorola.com> and Kaustubh Atrawalkar  <kaustubh@motorola.com>
143
144         Tests: fast/events/selectstart-by-arrow-keys-prevent-default.html
145                fast/events/selectstart-by-arrow-keys.html
146
147         * editing/FrameSelection.cpp:
148         (WebCore::FrameSelection::modify):
149         (WebCore::FrameSelection::shouldChangeSelection):
150         (WebCore::FrameSelection::dispatchSelectStart):
151         * editing/FrameSelection.h:
152
153 2011-09-12  James Robinson  <jamesr@chromium.org>
154
155         [chromium] REGRESSION(94353): Compositor textures and resources leaked when tab closed that is not last tab in the process
156         https://bugs.webkit.org/show_bug.cgi?id=67816
157
158         Reviewed by Kenneth Russell.
159
160         We lack infrastructure to construct an automated test for this today. To test manually, open up a composited
161         page (like the poster circle), duplicate the tab many times, close all the duplicates, and verify that the
162         memory use returns to the single tab level.
163
164         * platform/graphics/chromium/LayerChromium.h:
165         * platform/graphics/chromium/TiledLayerChromium.cpp:
166         (WebCore::TiledLayerChromium::setLayerTreeHost):
167         * platform/graphics/chromium/VideoLayerChromium.cpp:
168         (WebCore::VideoLayerChromium::setLayerTreeHost):
169         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
170         (WebCore::CCLayerTreeHost::clearRenderSurfacesRecursive):
171         (WebCore::CCLayerTreeHost::setRootLayer):
172         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
173
174 2011-09-12  Kentaro Hara  <haraken@google.com>
175
176         Implement a HashChangeEvent constructor for JSC
177         https://bugs.webkit.org/show_bug.cgi?id=67924
178
179         Reviewed by Sam Weinig.
180
181         The spec for the HashChangeEvent constructor is here:
182         http://www.whatwg.org/specs/web-apps/current-work/#hashchangeevent
183
184         Test: fast/events/constructors/hash-change-event-constructor.html
185
186         * bindings/generic/EventConstructors.h: Added a definition for the HashChangeEvent constructor.
187         * bindings/js/JSEventConstructors.cpp: Added #includes for HashChangeEvent.
188         * dom/HashChangeEvent.h: Added a definition for HashChangeEventInit.
189         (WebCore::HashChangeEventInit::HashChangeEventInit):
190         (WebCore::HashChangeEvent::create):
191         (WebCore::HashChangeEvent::HashChangeEvent):
192         * dom/HashChangeEvent.idl: Makes HashChangeEvent constructible.
193
194 2011-09-12  Mike Reed  <reed@google.com>
195
196         [skia] remove dead code, no functionality change
197         https://bugs.webkit.org/show_bug.cgi?id=67844
198
199         Reviewed by Kenneth Russell.
200
201         No new tests. just removing dead-code, existing tests apply
202
203         * platform/graphics/chromium/FontChromiumWin.cpp:
204         (WebCore::Font::drawGlyphs):
205
206 2011-09-12  Pavel Feldman  <pfeldman@google.com>
207
208         Web Inspector: Runtime.callFunctionOn does not accept arguments that evaluate to false.
209         https://bugs.webkit.org/show_bug.cgi?id=67934
210
211         Reviewed by Tony Gentilcore.
212
213         * inspector/InjectedScriptSource.js:
214
215 2011-09-12  Pavel Feldman  <pfeldman@google.com>
216
217         Web Inspector: event dividers do not update timeline boundaries.
218         https://bugs.webkit.org/show_bug.cgi?id=67932
219
220         * inspector/front-end/NetworkPanel.js:
221         (WebInspector.NetworkLogView.prototype._onLoadEventFired):
222         (WebInspector.NetworkLogView.prototype._domContentLoadedEventFired):
223         (WebInspector.NetworkLogView.prototype.refresh):
224         (WebInspector.NetworkTimeCalculator.prototype.updateBoundariesForEventTime):
225
226 2011-09-12  Kentaro Hara  <haraken@google.com>
227
228         Implement a WebKitAnimationEvent constructor for V8
229         https://bugs.webkit.org/show_bug.cgi?id=67922
230
231         Reviewed by Adam Barth.
232
233         Test: fast/events/constructors/webkit-animation-event-constructor.html
234
235         * bindings/v8/custom/V8EventConstructors.cpp: Added the WebKitAnimationEvent constructor.
236         * dom/WebKitAnimationEvent.idl: Added a 'V8CustomConstructor' attribute.
237
238 2011-09-12  Andreas Kling  <kling@webkit.org>
239
240         Shrink CanvasGradient for builds without ENABLE(DASHBOARD_SUPPORT).
241         https://bugs.webkit.org/show_bug.cgi?id=67916
242
243         Reviewed by Kenneth Rohde Christiansen.
244
245         * html/canvas/CanvasGradient.cpp:
246         (WebCore::CanvasGradient::CanvasGradient):
247         (WebCore::CanvasGradient::addColorStop):
248         * html/canvas/CanvasGradient.h:
249
250 2011-09-12  Shinya Kawanaka  <shinyak@google.com>
251
252         Characters beyond U+10000 should be deleted by one pressing delete key.
253         https://bugs.webkit.org/show_bug.cgi?id=40351
254
255         Reviewed by Kent Tamura.
256
257         If a character is the trail part of unicode surrogate pair, the lead part of it
258         should also be deleted. Also, If in MacOSX, the deletion should honor Mac's behavior.
259
260         Test: editing/deleting/delete-surrogatepair.html
261
262         * rendering/RenderText.cpp:
263         (WebCore::RenderText::previousOffsetForBackwardDeletion):
264           Added if-macro to support chromium on mac, and added trail part check for unicode character.
265
266 2011-09-11  Kentaro Hara  <haraken@google.com>
267
268         Implement a ProgressEvent constructor for V8
269         https://bugs.webkit.org/show_bug.cgi?id=67800
270
271         Reviewed by Sam Weinig.
272
273         Test: fast/events/constructors/progress-event-constructor.html
274
275         * bindings/js/JSDictionary.cpp:
276         (WebCore::JSDictionary::convertValue): Replaced UnsignedLongLongMax with std::numeric_limits<unsigned long long>::max().
277         * bindings/v8/OptionsObject.cpp:
278         (WebCore::OptionsObject::getKeyValue): Returns an unsigned long long value corresponding to a given key. Spec: http://www.w3.org/TR/WebIDL/#es-unsigned-long-long
279         * bindings/v8/OptionsObject.h:
280         * bindings/v8/custom/V8EventConstructors.cpp: Added the ProgressEvent constructor.
281         * dom/ProgressEvent.idl: Added a 'V8CustomConstructor' attribute.
282
283 2011-09-11  Dimitri Glazkov  <dglazkov@chromium.org>
284
285         REGRESSION (r87351): toggling display of lots (thousands) of elements with display:none is very slow
286         https://bugs.webkit.org/show_bug.cgi?id=67581
287
288         Reviewed by Darin Adler.
289
290         Test: perf/show-hide-table-rows.html
291
292         * dom/NodeRenderingContext.cpp:
293         (WebCore::NodeRendererFactory::createRendererAndStyle): Moved style-creating code into createRendererIfNeeded, renamed
294             to createRenderer.
295         (WebCore::NodeRendererFactory::createRendererIfNeeded): Re-arrange code to avoid unnecessary creation of renderers.
296
297 2011-09-11  Jeremy Moskovich  <jeremy@chromium.org>
298
299         [Chromium] Change OOP Font loading code to use CGFont*() APIs.
300         https://bugs.webkit.org/show_bug.cgi?id=66935
301
302         This change is necessary due a bug in ATSFontDeactivate() on 10.7.
303         See crbug.com/93191 for details.
304
305         Reviewed by Eric Seidel.
306
307         No new tests - covered by existing tests.
308
309         * platform/chromium/PlatformBridge.h:
310         * platform/graphics/chromium/CrossProcessFontLoading.h:
311         * platform/graphics/chromium/CrossProcessFontLoading.mm:
312         (WebCore::MemoryActivatedFont::create):
313         (WebCore::MemoryActivatedFont::MemoryActivatedFont):
314         (WebCore::MemoryActivatedFont::~MemoryActivatedFont):
315
316 2011-09-09  Oliver Hunt  <oliver@apple.com>
317
318         Remove support for anonymous storage from jsobjects
319         https://bugs.webkit.org/show_bug.cgi?id=67881
320
321         Reviewed by Sam Weinig.
322
323         Remove all use of anonymous slots, this required modifying
324         bindings generation to add member variables for cached attributes,
325         and override visitChildren with the necessary logic to mark those
326         new members.
327
328         I added bindings generation tests for these values.
329
330         * bindings/js/JSAudioConstructor.h:
331         (WebCore::JSAudioConstructor::createStructure):
332         * bindings/js/JSDOMBinding.h:
333         (WebCore::DOMConstructorObject::createStructure):
334         * bindings/js/JSDOMGlobalObject.h:
335         (WebCore::JSDOMGlobalObject::createStructure):
336         * bindings/js/JSDOMWindowBase.h:
337         (WebCore::JSDOMWindowBase::createStructure):
338         * bindings/js/JSDOMWindowShell.h:
339         (WebCore::JSDOMWindowShell::createStructure):
340         * bindings/js/JSDOMWrapper.h:
341         (WebCore::JSDOMWrapper::createStructure):
342         * bindings/js/JSImageConstructor.h:
343         (WebCore::JSImageConstructor::createStructure):
344         * bindings/js/JSMessageEventCustom.cpp:
345         (WebCore::JSMessageEvent::data):
346         (WebCore::JSMessageEvent::initMessageEvent):
347         * bindings/js/JSOptionConstructor.h:
348         (WebCore::JSOptionConstructor::createStructure):
349         * bindings/js/JSWorkerContextBase.h:
350         (WebCore::JSWorkerContextBase::createStructure):
351         * bindings/scripts/CodeGeneratorJS.pm:
352         (GenerateHeader):
353         (GenerateImplementation):
354         (GenerateConstructorDeclaration):
355         * bindings/scripts/test/JS/JSTestInterface.cpp:
356         (WebCore::JSTestInterfaceConstructor::createStructure):
357         * bindings/scripts/test/JS/JSTestInterface.h:
358         (WebCore::JSTestInterface::createStructure):
359         (WebCore::JSTestInterfacePrototype::createStructure):
360         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
361         (WebCore::JSTestMediaQueryListListenerConstructor::createStructure):
362         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
363         (WebCore::JSTestMediaQueryListListener::createStructure):
364         (WebCore::JSTestMediaQueryListListenerPrototype::createStructure):
365         * bindings/scripts/test/JS/JSTestObj.cpp:
366         (WebCore::JSTestObjConstructor::createStructure):
367         (WebCore::jsTestObjCachedAttribute1):
368         (WebCore::jsTestObjCachedAttribute2):
369         (WebCore::JSTestObj::visitChildren):
370         * bindings/scripts/test/JS/JSTestObj.h:
371         (WebCore::JSTestObj::createStructure):
372         (WebCore::JSTestObjPrototype::createStructure):
373         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
374         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::createStructure):
375         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
376         (WebCore::JSTestSerializedScriptValueInterface::createStructure):
377         (WebCore::JSTestSerializedScriptValueInterfacePrototype::createStructure):
378         * bindings/scripts/test/TestObj.idl:
379         * bindings/scripts/test/V8/V8TestObj.cpp:
380         (WebCore::TestObjInternal::cachedAttribute1AttrGetter):
381         (WebCore::TestObjInternal::cachedAttribute2AttrGetter):
382         * bridge/c/CRuntimeObject.h:
383         (JSC::Bindings::CRuntimeObject::createStructure):
384         * bridge/c/c_instance.cpp:
385         (JSC::Bindings::CRuntimeMethod::createStructure):
386         * bridge/jni/jsc/JavaInstanceJSC.cpp:
387         (JavaRuntimeMethod::createStructure):
388         * bridge/jni/jsc/JavaRuntimeObject.h:
389         (JSC::Bindings::JavaRuntimeObject::createStructure):
390         * bridge/objc/ObjCRuntimeObject.h:
391         (JSC::Bindings::ObjCRuntimeObject::createStructure):
392         * bridge/objc/objc_instance.mm:
393         (ObjCRuntimeMethod::createStructure):
394         * bridge/objc/objc_runtime.h:
395         (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
396         * bridge/runtime_array.h:
397         (JSC::RuntimeArray::createStructure):
398         * bridge/runtime_method.h:
399         (JSC::RuntimeMethod::createStructure):
400         * bridge/runtime_object.h:
401         (JSC::Bindings::RuntimeObject::createStructure):
402
403 2011-09-01  Filip Pizlo  <fpizlo@apple.com>
404
405         The executable allocator makes it difficult to free individual
406         chunks of executable memory
407         https://bugs.webkit.org/show_bug.cgi?id=66363
408
409         Reviewed by Oliver Hunt.
410         
411         Introduced a best-fit, balanced-tree based allocator. The allocator
412         required a balanced tree that does not allocate memory and that
413         permits the removal of individual nodes directly (as opposed to by
414         key); neither AVLTree nor WebCore's PODRedBlackTree supported this.
415         Changed all references to executable code to use a reference counted
416         handle.
417
418         No new layout tests because behavior is not changed.  New API unit
419         tests:
420         Tests/WTF/RedBlackTree.cpp
421         Tests/WTF/MetaAllocator.cpp
422
423         * ForwardingHeaders/wtf/MetaAllocatorHandle.h: Added.
424
425 2011-09-10  Sam Weinig  <sam@webkit.org>
426
427         Add isInterruptedExecutionException and isTerminatedExecutionException predicates
428         https://bugs.webkit.org/show_bug.cgi?id=67892
429
430         Reviewed by Andy "First Time Reviewer" Estes.
431
432         * bindings/js/JSDOMBinding.cpp:
433         (WebCore::reportException):
434         * bindings/js/JSEventListener.cpp:
435         (WebCore::JSEventListener::handleEvent):
436         * bindings/js/WorkerScriptController.cpp:
437         (WebCore::WorkerScriptController::evaluate):
438         Use the new predicates instead of probing the ClassInfo directly.
439
440 2011-09-10  Kevin Ollivier  <kevino@theolliviers.com>
441
442         [wx] Unreviewed build fix. MSW build fixes.
443
444         * config.h:
445
446 2011-09-09  David Hyatt  <hyatt@apple.com>
447
448         https://bugs.webkit.org/show_bug.cgi?id=67861
449         
450         Implement border-image-outset (and the mask equivalents).
451
452         Reviewed by Beth Dakin.
453
454         Added new tests in fast/borders and fast/reflections.
455
456         * css/CSSBorderImageValue.cpp:
457         (WebCore::CSSBorderImageValue::CSSBorderImageValue):
458         (WebCore::CSSBorderImageValue::cssText):
459         * css/CSSBorderImageValue.h:
460         (WebCore::CSSBorderImageValue::create):
461         Add m_outset field to CSSBorderImageValue and teach it how to dump the field as
462         part of cssText().
463
464         * css/CSSComputedStyleDeclaration.cpp:
465         (WebCore::valueForNinePieceImageQuad):
466         (WebCore::valueForNinePieceImage):
467         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
468         Add support for border-image-outset and -webkit-mask-box-image-outset. Refactor
469         the code so that border-image-width and border-image-outset use a common
470         function.
471
472         * css/CSSParser.cpp:
473         (WebCore::CSSParser::parseValue):
474         (WebCore::BorderImageParseContext::BorderImageParseContext):
475         (WebCore::BorderImageParseContext::allowOutset):
476         (WebCore::BorderImageParseContext::commitSlash):
477         (WebCore::BorderImageParseContext::commitBorderWidth):
478         (WebCore::BorderImageParseContext::commitBorderOutset):
479         (WebCore::BorderImageParseContext::commitRepeat):
480         (WebCore::BorderImageParseContext::commitBorderImage):
481         (WebCore::CSSParser::parseBorderImage):
482         Teach the border image parsing code about outsets. This code will soon be
483         replaced by true shorthand parsing code, but for now keep it working and add
484         outset support to it.
485
486         (WebCore::BorderImageQuadParseContext::BorderImageQuadParseContext):
487         (WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
488         (WebCore::CSSParser::parseBorderImageQuad):
489         (WebCore::CSSParser::parseBorderImageWidth):
490         (WebCore::CSSParser::parseBorderImageOutset):
491         * css/CSSParser.h:
492         Refactor the border-image-width code so that it can be shared by border-image-outset, since
493         they are extremely similar.
494
495         * css/CSSPropertyNames.in:
496         Add the new properties.
497
498         * css/CSSStyleSelector.cpp:
499         (WebCore::CSSStyleSelector::applyProperty):
500         (WebCore::CSSStyleSelector::mapNinePieceImage):
501         (WebCore::CSSStyleSelector::mapNinePieceImageQuad):
502         (WebCore::CSSStyleSelector::loadPendingImages):
503         * css/CSSStyleSelector.h:
504         Refactor the code so that width/outset share common mapping functions. Add support for outset.
505
506         * rendering/InlineFlowBox.cpp:
507         (WebCore::InlineFlowBox::addToLine):
508         (WebCore::InlineFlowBox::addBoxShadowVisualOverflow):
509         (WebCore::InlineFlowBox::addBorderOutsetVisualOverflow):
510         (WebCore::InlineFlowBox::computeOverflow):
511         Add new functions for computing the visual overflow caused by border outsets. Fix bugs in
512         the shadow overflow code as well.
513
514         (WebCore::clipRectForNinePieceImageStrip):
515         (WebCore::InlineFlowBox::paintBoxDecorations):
516         (WebCore::InlineFlowBox::paintMask):
517         * rendering/InlineFlowBox.h:
518         Make sure the clip rect pushed when painting one piece of a split inline strip is expanded to
519         include the border and mask outsets. Always include the block direction expansion, and conditionally
520         include the inline direction expansion based off includeLogicalLeftEdge()/includeLogicalRightEdge().
521         clipRectForNinePieceImageStrip is a common function shared by masks and border images that does this
522         work.
523
524         * rendering/RenderBlock.cpp:
525         (WebCore::RenderBlock::computeOverflow):
526         * rendering/RenderBox.cpp:
527         (WebCore::RenderBox::maskClipRect):
528         (WebCore::RenderBox::addBoxShadowAndBorderOverflow):
529         * rendering/RenderBox.h:
530         Rename addShadowOverflow to addBoxShadowAndBorderOverflow. Have it compute both shadow and border image
531         outset overflow. Fix bugs with shadow overflow computation.
532
533         * rendering/RenderBoxModelObject.cpp:
534         (WebCore::RenderBoxModelObject::paintNinePieceImage):
535         Change painting to apply the outsets to inflate the border image drawing area.
536
537         * rendering/RenderEmbeddedObject.cpp:
538         (WebCore::RenderEmbeddedObject::layout):
539         * rendering/RenderIFrame.cpp:
540         (WebCore::RenderIFrame::layout):
541         Patched to call the renamed addBoxShadowAndBorderOverflow function instead of addShadowOverflow.
542
543         * rendering/RenderLayer.cpp:
544         (WebCore::RenderLayer::calculateRects):
545         Patched to no longer apply box-shadow to overflow clip areas when inflating the intersection area for the
546         layer bounds. Instead we generically apply all visual overflow so that border image outsets will also be
547         included. This fixes https://bugs.webkit.org/show_bug.cgi?id=37467.
548
549         * rendering/RenderReplaced.cpp:
550         (WebCore::RenderReplaced::layout):
551         Patched to call the renamed addBoxShadowAndBorderOverflow function instead of addShadowOverflow.
552
553         * rendering/style/NinePieceImage.cpp:
554         (WebCore::NinePieceImage::operator==):
555         * rendering/style/NinePieceImage.h:
556         (WebCore::NinePieceImage::NinePieceImage):
557         (WebCore::NinePieceImage::outset):
558         (WebCore::NinePieceImage::setOutset):
559         (WebCore::NinePieceImage::computeOutset):
560         (WebCore::NinePieceImage::copyOutsetFrom):
561         Add the outset field to NinePieceImage along with some helpers for manipulating outsets.
562
563         * rendering/style/RenderStyle.cpp:
564         (WebCore::RenderStyle::getImageOutsets):
565         (WebCore::RenderStyle::getImageHorizontalOutsets):
566         (WebCore::RenderStyle::getImageVerticalOutsets):
567         * rendering/style/RenderStyle.h:
568         (WebCore::InheritedFlags::hasBorderImageOutsets):
569         (WebCore::InheritedFlags::getBorderImageOutsets):
570         (WebCore::InheritedFlags::getBorderImageHorizontalOutsets):
571         (WebCore::InheritedFlags::getBorderImageVerticalOutsets):
572         (WebCore::InheritedFlags::getBorderImageInlineDirectionOutsets):
573         (WebCore::InheritedFlags::getBorderImageBlockDirectionOutsets):
574         (WebCore::InheritedFlags::getImageInlineDirectionOutsets):
575         (WebCore::InheritedFlags::getImageBlockDirectionOutsets):
576         Helpers for outset computation used by painting and overflow functions.
577
578 2011-09-10  Dan Bernstein  <mitz@apple.com>
579
580         Actually prevent unnecessary casts to MediaControls*.
581
582         Reviewed by Oliver Hunt.
583
584         * html/shadow/MediaControls.h:
585
586 2011-09-10  Ryosuke Niwa  <rniwa@webkit.org>
587
588         Remove printf added by r94900.
589
590         * rendering/RenderLayer.cpp:
591         (WebCore::RenderLayer::drawPlatformResizerImage):
592
593 2011-09-09  Chris Marrin  <cmarrin@apple.com>
594
595         requestAnimationFrame doesn't throttle on Mac
596         https://bugs.webkit.org/show_bug.cgi?id=67171
597
598         Reviewed by Simon Fraser.
599
600         Changed requestAnimationFrame to use a Timer in ScriptedAnimationController
601         on Mac, rather than runLoopObservers. The Timer is throttled to fire no
602         faster than every 15ms. It is behind a WTF_USE_REQUEST_ANIMATION_FRAME_TIMER
603         flag and can be used by any implementation, but currently it is only enabled
604         by PLATFORM(MAC).
605
606         * dom/ScriptedAnimationController.cpp:
607         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
608         (WebCore::ScriptedAnimationController::resume):
609         (WebCore::ScriptedAnimationController::registerCallback):
610         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
611         (WebCore::ScriptedAnimationController::scheduleAnimation):
612         (WebCore::ScriptedAnimationController::animationTimerFired):
613         * dom/ScriptedAnimationController.h:
614         * loader/EmptyClients.h:
615         * page/Chrome.cpp:
616         (WebCore::Chrome::scheduleAnimation):
617         * page/ChromeClient.h:
618
619 2011-09-10  Jarred Nicholls  <jarred@sencha.com>
620
621         [Qt] QWebSettings::setUserStyleSheetUrl() does not work with windows paths that contain drive letters
622         https://bugs.webkit.org/show_bug.cgi?id=34884
623         
624         KURL::path() alone does not handle removing the leading slash from a windows file path.
625         Using QUrl::toLocalFile() will turn file:///C:/path into C:/path appropriately.
626
627         Reviewed by Andreas Kling.
628
629         * platform/qt/KURLQt.cpp:
630         (WebCore::KURL::fileSystemPath):
631
632 2011-09-10  Ken Buchanan <kenrb@chromium.org>
633
634         Crash due to bad data in SVGDocumentExtensions m_pendingResources
635         https://bugs.webkit.org/show_bug.cgi?id=67488
636
637         Reviewed by Nikolas Zimmermann.
638
639         Resolving a crash condition caused by the deletion of
640         elements while pending resource entries for those elements are still
641         recorded.
642
643         * rendering/svg/RenderSVGResourceContainer.cpp:
644         (WebCore::RenderSVGResourceContainer::registerResource)
645         * svg/SVGDocumentExtensions.h:
646         (WebCore::SVGDocumentExtensions::isElementInPendingResources)
647         * svg/SVGDocumentExtensions.cpp:
648         (WebCore::SVGDocumentExtensions::addPendingResource)
649         (WebCore::SVGDocumentExtensions::isElementInPendingResources)
650         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources)
651         * svg/SVGStyledElement.h:
652         (WebCore::SVGStyledElement::clearHasPendingResourcesIfPossible)
653         * svg/SVGStyledElement.cpp:
654         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded)
655         (WebCore::SVGStyledElement::clearHasPendingResourcesIfPossible)
656         * svg/SVGUseElement.cpp:
657         (WebCore::SVGUseElement::svgAttributeChanged)
658
659 2011-09-10  Adam Barth  <abarth@webkit.org>
660
661         Remove DocumentWriter::deprecatedFrameEncoding()
662         https://bugs.webkit.org/show_bug.cgi?id=67882
663
664         Reviewed by Eric Seidel.
665
666         Three years ago, in http://trac.webkit.org/changeset/39026, Alexey
667         Proskuryakov added ContentDispositionEncodingFallbackArray to work
668         around a web site compatibility issue with a non-ASCII file name
669         becoming garbled when received in the Content-Disposition header.
670
671         Since that time, there has been copious discussion of this topic among
672         browser vendors, in the IETF, and in the broader web community.  For
673         example, here is a Stack Overflow thread about this topic:
674
675         http://stackoverflow.com/questions/93551/how-to-encode-the-filename-parameter-of-content-disposition-header-in-http
676
677         Eric Lawrence has written a blog post that summarizes IE's perspective
678         on this issue:
679
680         http://blogs.msdn.com/b/ieinternals/archive/2010/06/07/content-disposition-attachment-and-international-unicode-characters.aspx
681
682         The current consensus is that browsers should implement RFC 6266,
683         which is a new RFC that updates the definition of the
684         Content-Disposition header.  Chrome and Firefox have both implemented
685         RFC 6266 and have encountered only one issue, which was then fixed by
686         the web site operator.  IE has also implemented RFC 6266, but I don't
687         have detailed information about their compatibility experience.
688
689         This patch add explicit PLATFORM #ifdefs around the quirky
690         implementation previously used in Apple's Mac and Windows ports.  This
691         code is already only used on Apple's ports, so this patch introduces no
692         functional changes.  It does, however, discourage other ports from
693         adopting this quirk.  IMHO, Apple should remove this quirk as soon as
694         compatibility allows and converge behavior with the other major browser
695         vendors.
696
697         See bug for manual test (the bug manifests in Safari download UI).
698
699         * loader/DocumentWriter.cpp:
700         * loader/DocumentWriter.h:
701         * loader/FrameLoader.cpp:
702         (WebCore::FrameLoader::addExtraFieldsToRequest):
703         * platform/network/ResourceRequestBase.cpp:
704         (WebCore::ResourceRequestBase::adopt):
705         (WebCore::ResourceRequestBase::copyData):
706         * platform/network/ResourceRequestBase.h:
707
708 2011-09-09  Beth Dakin  <bdakin@apple.com>
709
710         Attempted Leopard build fix.
711
712         * rendering/RenderImage.cpp:
713         (WebCore::RenderImage::paintReplaced):
714         * rendering/RenderLayer.cpp:
715         (WebCore::RenderLayer::drawPlatformResizerImage):
716
717 2011-09-09  Beth Dakin  <bdakin@apple.com>
718
719         Fix for https://bugs.webkit.org/show_bug.cgi?id=67819
720         Use high resolution platform images when the deviceScaleFactor > 1
721         -and corresponding-
722         <rdar://problem/10003098>
723
724         Reviewed by Darin Adler.
725
726         Add all of the new high resolution images. I also removed some tiffs from the 
727         project and replaced them with png equivalents (that are already checked into 
728         WebCore anyway). Since the high resolution images are pngs, it makes sense to use 
729         pngs for all of the images that load through Image::loadPlatformResource()
730         * WebCore.xcodeproj/project.pbxproj:
731         * platform/graphics/mac/ImageMac.mm:
732         (WebCore::Image::loadPlatformResource):
733
734         Load the @2x resource for deviceScaleFactors >= 2.
735         * editing/DeleteButtonController.cpp:
736         (WebCore::DeleteButtonController::createDeletionUI):
737
738         CachedImage::brokenImage() is no longer a static helper function, but a real 
739         member function. It also now loads the @2x resource for deviceScaleFactors >= 2 
740         and takes a parameter for the deviceScaleFactor. When CachedImage::image() returns 
741         the brokenImage(), it just returns the 1x version. brokenImage() has to be called 
742         directly to reliably return the deviceScaleFactor-appropriate resource.
743         * loader/cache/CachedImage.cpp:
744         (WebCore::CachedImage::brokenImage):
745         (WebCore::CachedImage::image):
746         * loader/cache/CachedImage.h:
747         * rendering/RenderLayer.cpp:
748         (WebCore::RenderLayer::drawPlatformResizerImage):
749         (WebCore::RenderLayer::paintResizer):
750         * rendering/RenderLayer.h:
751
752         New static function to retrieve the deviceScaleFactor for callers that do not have 
753         direct access to a Page.
754         * page/Page.cpp:
755         (WebCore::Page::deviceScaleFactor):
756         * page/Page.h:
757
758         Call CachedImage::brokenImage() for the broken-image image at an accurate 
759         resolution.
760         * rendering/RenderImage.cpp:
761         (WebCore::RenderImage::imageSizeForError):
762         (WebCore::RenderImage::paintReplaced):
763
764 2011-09-09  Erik Arvidsson  <arv@chromium.org>
765
766         Move Element.contains to Node
767         https://bugs.webkit.org/show_bug.cgi?id=67651
768
769         Reviewed by Darin Adler.
770
771         This moves the contains method from Element to Node as in the DOM4 working draft: 
772         http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-contains
773
774         This also special cases Document contains to make it O(1) instead of O(depth).
775
776         Tests: fast/dom/Node/contains-method.html
777                perf/document-contains.html
778
779         * bindings/objc/PublicDOMInterfaces.h: Move contains from DOMElement to DOMNode.
780         * dom/Element.idl:
781         * dom/Node.cpp:
782         (WebCore::Node::contains): Added document special case.
783         * dom/Node.idl:
784         * editing/DeleteSelectionCommand.cpp:
785         (WebCore::DeleteSelectionCommand::mergeParagraphs): Added a null check.
786
787 2011-09-09  Tim Horton  <timothy_horton@apple.com>
788
789         Text rendered with a simple (i.e. 0px blur) shadow inside a transparency layer has a double shadow
790         https://bugs.webkit.org/show_bug.cgi?id=67543
791         <rdar://problem/10070536>
792
793         Reviewed by Darin Adler.
794
795         Generalize (begin|end)TransparencyLayer, which now forward
796         through to (begin|end)PlatformTransparencyLayer, so that
797         isInTransparencyLayer can exist on every platform.
798
799         Make use of isInTransparencyLayer in FontMac to disable
800         "simple" shadow drawing when the text is being rendered
801         into a transparency layer.
802
803         Test: svg/custom/simple-text-double-shadow.svg
804
805         * platform/graphics/GraphicsContext.cpp:
806         (WebCore::GraphicsContext::GraphicsContext):
807         (WebCore::GraphicsContext::~GraphicsContext):
808         (WebCore::GraphicsContext::beginTransparencyLayer):
809         (WebCore::GraphicsContext::endTransparencyLayer):
810         (WebCore::GraphicsContext::isInTransparencyLayer):
811         * platform/graphics/GraphicsContext.h:
812         * platform/graphics/cairo/GraphicsContextCairo.cpp:
813         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
814         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
815         (WebCore::GraphicsContext::supportsTransparencyLayers):
816         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
817         * platform/graphics/cg/GraphicsContextCG.cpp:
818         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
819         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
820         (WebCore::GraphicsContext::supportsTransparencyLayers):
821         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
822         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
823         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
824         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
825         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
826         (WebCore::GraphicsContext::supportsTransparencyLayers):
827         * platform/graphics/mac/FontMac.mm:
828         (WebCore::Font::drawGlyphs):
829         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
830         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
831         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
832         (WebCore::GraphicsContext::supportsTransparencyLayers):
833         * platform/graphics/qt/GraphicsContextQt.cpp:
834         (WebCore::GraphicsContext::isInTransparencyLayer):
835         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
836         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
837         (WebCore::GraphicsContext::supportsTransparencyLayers):
838         * platform/graphics/skia/GraphicsContextSkia.cpp:
839         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
840         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
841         (WebCore::GraphicsContext::supportsTransparencyLayers):
842         * platform/graphics/win/FontCGWin.cpp:
843         (WebCore::drawGDIGlyphs):
844         * platform/graphics/win/GraphicsContextCGWin.cpp:
845         (WebCore::GraphicsContext::releaseWindowsContext):
846         * platform/graphics/win/GraphicsContextCairoWin.cpp:
847         (WebCore::GraphicsContext::releaseWindowsContext):
848         * platform/graphics/win/GraphicsContextWin.cpp:
849         (WebCore::GraphicsContext::getWindowsContext):
850         * platform/graphics/wince/GraphicsContextWinCE.cpp:
851         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
852         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
853         (WebCore::GraphicsContext::supportsTransparencyLayers):
854         * platform/graphics/wx/GraphicsContextWx.cpp:
855         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
856         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
857         (WebCore::GraphicsContext::supportsTransparencyLayers):
858         * platform/win/ScrollbarThemeWin.cpp:
859         * plugins/win/PluginViewWin.cpp:
860         * rendering/RenderThemeWin.cpp:
861
862 2011-09-09  Julien Chaffraix  <jchaffraix@webkit.org>
863
864         [V8] V8WebKitPoint::constructorCallback leaks
865         https://bugs.webkit.org/show_bug.cgi?id=67865
866
867         Reviewed by Adam Barth.
868
869         Covered by fast/js/instanceof-XMLHttpRequest.html under Valgrind.
870
871         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
872         (WebCore::V8WebKitPoint::constructorCallback): Changed the code
873         to use a RefPtr (per our usual style). Also use toV8 that will
874         take care of properly wrapping the object.
875
876 2011-09-09  Chris Rogers  <crogers@google.com>
877
878         HRTFDatabaseLoader should not call WTF::waitForThreadCompletion() more than once
879         https://bugs.webkit.org/show_bug.cgi?id=67866
880
881         Reviewed by David Levin.
882
883         No new tests since this is difficult to test.
884         This is designed to fix existing webaudio layout test failures.
885
886         * platform/audio/HRTFDatabaseLoader.cpp:
887         (WebCore::HRTFDatabaseLoader::HRTFDatabaseLoader):
888         (WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
889         (WebCore::HRTFDatabaseLoader::loadAsynchronously):
890         (WebCore::HRTFDatabaseLoader::waitForLoaderThreadCompletion):
891         * platform/audio/HRTFDatabaseLoader.h:
892
893 2011-09-09  Jessie Berlin  <jberlin@apple.com>
894
895         Cookies are not available after turning off Private Browsing after the last window has been
896         closed.
897         https://bugs.webkit.org/show_bug.cgi?id=67874
898
899         Reviewed by Darin Adler.
900
901         The private browsing storage session is a global setting that is being incorrectly set on a
902         per-page basis (see http://webkit.org/b/67870).
903
904         In this case, the global value was getting out of sync with the per-page setting:
905         1. The global value was getting set to true when setPrivateBrowsingEnabled(true) was called.
906         2. All Pages were then closed, destroying their Settings objects.
907         3. When a new Page was created, a new Settings object was created and its
908            m_privateBrowsingEnabled value was getting set to false.
909         4. The WebPage settings were then applied to the new Settings object, resulting in
910            setPrivateBrowsingEnabled(false) to be called.
911         5. An if (m_privateBrowsingEnabled == privateBrowsingEnabled) early return prevented the
912            global value for the storage session from being destroyed.
913
914         * page/Settings.cpp:
915         (WebCore::Settings::setPrivateBrowsingEnabled):
916         Move the early return to be after setting the global private browsing values, and add a
917         clearer comment + FIXME.
918
919 2011-09-09  Kentaro Hara  <haraken@google.com>
920
921         Generate a WebKitCSSMatrix constructor of V8 using the IDL 'Constructor' extended attribute
922         https://bugs.webkit.org/show_bug.cgi?id=67458
923
924         Reviewed by Adam Barth.
925
926         Added a 'CallWithNullValue' extended attribute.
927         If a parameter is optional and missing, 'CallWithDefaultValue'
928         handles it as a string "undefined". On the other hand,
929         'CallWithNullValue' handles it as a null string
930         (Note: not a string "null", but a null string).
931
932         Tests: fast/dom/Window/custom-constructors.html
933                transforms/svg-vs-css.xhtml
934                transforms/cssmatrix-2d-interface.xhtml
935                transforms/cssmatrix-3d-interface.xhtmlGenerate a WebKitCSSMatrix constructor
936
937         * WebCore.gypi: Removed V8WebKitCSSMatrixConstructor.cpp.
938         * WebCore.pro: Removed V8WebKitCSSMatrixConstructor.cpp.
939         * bindings/scripts/CodeGeneratorV8.pm:
940         (GenerateParametersCheck): If the 'CallWithNullValue' extended attribute is set, we call MAYBE_MISSING_PARAMETER() with MissingIsEmpty mode to obtain a maybe missing parameter. Otherwise, we call MAYBE_MISSING_PARAMETER() with MissingIsUndefined mode.
941         (RequiresCustomSignature):
942         * bindings/scripts/test/V8/V8TestInterface.cpp: Updated test results.
943         (WebCore::V8TestInterface::constructorCallback):
944         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp: Ditto.
945         (WebCore::TestMediaQueryListListenerInternal::methodCallback):
946         * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
947         (WebCore::TestObjInternal::voidMethodWithArgsCallback):
948         (WebCore::TestObjInternal::intMethodWithArgsCallback):
949         (WebCore::TestObjInternal::objMethodWithArgsCallback):
950         (WebCore::TestObjInternal::methodThatRequiresAllArgsCallback):
951         (WebCore::TestObjInternal::methodThatRequiresAllArgsAndThrowsCallback):
952         (WebCore::TestObjInternal::optionsObjectCallback):
953         (WebCore::TestObjInternal::customArgsAndExceptionCallback):
954         (WebCore::TestObjInternal::withDynamicFrameAndArgCallback):
955         (WebCore::TestObjInternal::withDynamicFrameAndOptionalArgCallback):
956         (WebCore::TestObjInternal::withDynamicFrameAndUserGestureCallback):
957         (WebCore::TestObjInternal::withDynamicFrameAndUserGestureASADCallback):
958         (WebCore::TestObjInternal::methodWithOptionalArgCallback):
959         (WebCore::TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback):
960         (WebCore::TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
961         (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
962         (WebCore::TestObjInternal::overloadedMethod1Callback):
963         (WebCore::TestObjInternal::overloadedMethod2Callback):
964         (WebCore::TestObjInternal::overloadedMethod3Callback):
965         (WebCore::TestObjInternal::overloadedMethod4Callback):
966         (WebCore::TestObjInternal::classMethodWithOptionalCallback):
967         (WebCore::TestObjInternal::enabledAtRuntimeMethod1Callback):
968         (WebCore::TestObjInternal::enabledAtRuntimeMethod2Callback):
969         * bindings/v8/V8Binding.h:
970         (WebCore::V8ParameterBase::prepareBase): The fact that V8ParameterBase does not have any object means that we do not need to prepare anything, i.e. we should just return true in this case.
971         (WebCore::::prepare): If V8ParameterBase does not have any object, then we set a null string.
972         * bindings/v8/custom/V8BindingMacros.h: MAYBE_MISSING_PARAMETER() returns the parameter of a given index if the parameter exists. If the parameter does not exist and MissingIsUndefined is set, this macro returns an object that represents undefined. If the parameter does not exist and MissingIsEmpty is set, this macro returns an empty object.
973         * bindings/v8/custom/V8WebKitCSSMatrixConstructor.cpp: Removed.
974         * css/WebKitCSSMatrix.idl: Added the 'Constructor' extended attribute.
975
976 2011-09-09  Geoffrey Garen  <ggaren@apple.com>
977
978         Reviewed by Dan Bernstein.
979
980         Removed ENABLE(SINGLE_THREADED) support, since it is always false
981         https://bugs.webkit.org/show_bug.cgi?id=67862
982
983         Next step toward making the baseline platform assumption that threads exist.
984
985         * WebCore.pri:
986         * features.pri: 
987         * platform/sql/SQLiteDatabase.cpp:
988         (WebCore::SQLiteDatabase::interrupt): Removed now-dead code.
989
990 2011-09-09  Fady Samuel  <fsamuel@chromium.org>
991
992         Move pageScaleFactor code from Frame.{h|cpp} to Page.{h|cpp}
993         https://bugs.webkit.org/show_bug.cgi?id=67250
994
995         Reviewed by Simon Fraser.
996
997         No new tests because there's no change in functionality.
998
999         * WebCore.exp.in:
1000         * css/CSSStyleSelector.cpp:
1001         (WebCore::CSSStyleSelector::styleForDocument):
1002         * dom/Element.cpp:
1003         (WebCore::Element::getClientRects):
1004         (WebCore::Element::getBoundingClientRect):
1005         * dom/Range.cpp:
1006         (WebCore::adjustFloatQuadsForScrollAndAbsoluteZoomAndPageScale):
1007         * loader/HistoryController.cpp:
1008         (WebCore::HistoryController::restoreScrollPositionAndViewState):
1009         * page/Frame.cpp:
1010         (WebCore::Frame::Frame):
1011         (WebCore::Frame::pageScaleFactor):
1012         * page/Frame.h:
1013         * page/Page.cpp:
1014         (WebCore::Page::Page):
1015         (WebCore::Page::setPageScaleFactor):
1016         * page/Page.h:
1017         (WebCore::Page::pageScaleFactor):
1018         * rendering/RenderLayerCompositor.cpp:
1019         (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame):
1020         (WebCore::RenderLayerCompositor::pageScaleFactor):
1021         * rendering/RenderView.cpp:
1022         (WebCore::RenderView::paintBoxDecorations):
1023
1024 2011-09-09  Dominic Mazzoni  <dmazzoni@google.com>
1025
1026         AX: Images within anchors causes crash
1027         https://bugs.webkit.org/show_bug.cgi?id=44149
1028
1029         Reviewed by Chris Fleizach.
1030
1031         Fixes the way parent RenderObject of an AccessibilityRenderObject
1032         is computed in the presence of adjacent continuations.
1033
1034         Test: accessibility/div-within-anchors-causes-crash.html
1035
1036         * accessibility/AccessibilityRenderObject.cpp:
1037         (WebCore::AccessibilityRenderObject::renderParentObject):
1038
1039 2011-09-09  Kulanthaivel Palanichamy  <kulanthaivel@codeaurora.org>
1040
1041         CSS rules not being applied when a hidden field is inserted between an input[type=checkbox] and a label
1042         https://bugs.webkit.org/show_bug.cgi?id=66887
1043
1044         Reviewed by David Hyatt.
1045
1046         Test: fast/css/adjacent-sibling-selector.html
1047
1048         This patch addresses the problem of elements not getting their style recomputed
1049         when they are affected by direct adjacent sibling rules and one of their sibling in
1050         their corresponding rules is modified dynamically.
1051
1052         * css/CSSStyleSelector.cpp:
1053         (WebCore::CSSStyleSelector::canShareStyleWithElement):
1054         (WebCore::parentStylePreventsSharing):
1055         * css/SelectorChecker.cpp:
1056         (WebCore::SelectorChecker::checkSelector):
1057         * dom/Element.cpp:
1058         (WebCore::Element::recalcStyle):
1059         (WebCore::checkForSiblingStyleChanges):
1060         * rendering/style/RenderStyle.cpp:
1061         (WebCore::RenderStyle::RenderStyle):
1062         * rendering/style/RenderStyle.h:
1063         (WebCore::InheritedFlags::affectedByDirectAdjacentRules):
1064         (WebCore::InheritedFlags::setAffectedByDirectAdjacentRules):
1065
1066 2011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>
1067
1068         Make the EFL port use the correct rendering file.
1069         https://bugs.webkit.org/show_bug.cgi?id=66323
1070
1071         Reviewed by Martin Robinson.
1072
1073         When compiling with Pango support, the EFL port should use
1074         FontPango.cpp instead of FontEfl.cpp (which is just full of stubs).
1075
1076         No new functionality so no new tests.
1077
1078         * CMakeListsEfl.txt:
1079
1080 2011-09-09  Chris Rogers  <crogers@google.com>
1081
1082         AudioBufferSourceNode must validate AudioBuffer in .buffer attribute setter
1083         https://bugs.webkit.org/show_bug.cgi?id=67749
1084
1085         Reviewed by Kenneth Russell.
1086
1087         Test: webaudio/audiobuffersource-channels.html
1088
1089         * WebCore.gypi:
1090         * bindings/js/JSAudioBufferSourceNodeCustom.cpp:
1091         (WebCore::JSAudioBufferSourceNode::setBuffer):
1092         * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp: Copied from Source/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp.
1093         (WebCore::V8AudioBufferSourceNode::bufferAccessorSetter):
1094         * webaudio/AudioBufferSourceNode.cpp:
1095         (WebCore::AudioBufferSourceNode::setBuffer):
1096         * webaudio/AudioBufferSourceNode.h:
1097         * webaudio/AudioBufferSourceNode.idl:
1098
1099 2011-09-09  Dan Bernstein  <mitz@apple.com>
1100
1101         RenderBlock::addOverhangingFloats() takes superfluous parameters
1102         https://bugs.webkit.org/show_bug.cgi?id=67863
1103
1104         Reviewed by Dave Hyatt.
1105
1106         No new tests, because behavior is unchanged.
1107
1108         * rendering/RenderBlock.cpp:
1109         (WebCore::RenderBlock::layoutBlock):
1110         (WebCore::RenderBlock::layoutBlockChild):
1111         (WebCore::RenderBlock::addOverhangingFloats): Removed the logical{Left, Top}Offset parameters,
1112         since they were always the inverse of the logical{Left, Top}() of the child parameter.
1113         * rendering/RenderBlock.h:
1114
1115 2011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>
1116
1117         Add replacement functions for gdk ones.
1118         https://bugs.webkit.org/show_bug.cgi?id=66323
1119
1120         Reviewed by Martin Robinson.
1121
1122         This will allow the EFL port to don't depend on gdk anymore.
1123
1124         No new functionality so no new tests.
1125
1126         * CMakeListsEfl.txt:
1127         * platform/graphics/cairo/CairoUtilities.cpp:
1128         (WebCore::appendRegionToCairoContext):
1129         * platform/graphics/cairo/CairoUtilities.h:
1130         * platform/graphics/pango/FontPango.cpp:
1131         (WebCore::drawGlyphsShadow):
1132         (WebCore::Font::drawComplexText):
1133         * platform/graphics/pango/PangoUtilities.cpp: Added.
1134         (WebCore::getLineClipRegionFromLayoutIter):
1135         (WebCore::getClipRegionFromPangoLayoutLine):
1136         * platform/graphics/pango/PangoUtilities.h: Added.
1137
1138 2011-09-09  Mark Hahnenberg  <mhahnenberg@apple.com>
1139
1140         Unzip initialization lists and constructors in JSCell hierarchy (5/7)
1141         https://bugs.webkit.org/show_bug.cgi?id=67420
1142
1143         Reviewed by Geoffrey Garen.
1144
1145         No new tests.
1146
1147         Completed the fifth level of the refactoring to add finishCreation() 
1148         methods to all classes within the JSCell hierarchy with non-trivial 
1149         constructor bodies.
1150
1151         This primarily consists of pushing the calls to finishCreation() down 
1152         into the constructors of the subclasses of the second level of the hierarchy 
1153         as well as pulling the finishCreation() calls out into the class's corresponding
1154         create() method if it has one.  Doing both simultaneously allows us to 
1155         maintain the invariant that the finishCreation() method chain is called exactly 
1156         once during the creation of an object, since calling it any other number of 
1157         times (0, 2, or more) will cause an assertion failure.
1158
1159         * WebCore.exp.in:
1160         * bindings/js/JSDOMBinding.h:
1161         (WebCore::DOMConstructorObject::DOMConstructorObject):
1162         * bindings/js/JSDOMGlobalObject.cpp:
1163         (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
1164         (WebCore::JSDOMGlobalObject::finishCreation):
1165         * bindings/js/JSDOMGlobalObject.h:
1166         * bindings/js/JSDOMWindowShell.cpp:
1167         * bindings/js/JSDOMWindowShell.h:
1168         (WebCore::JSDOMWindowShell::create):
1169         * bindings/js/JSDOMWrapper.h:
1170         (WebCore::JSDOMWrapper::JSDOMWrapper):
1171         * bindings/scripts/CodeGeneratorJS.pm:
1172         (GenerateImplementation):
1173         * bindings/scripts/test/JS/JSTestInterface.cpp:
1174         (WebCore::JSTestInterface::JSTestInterface):
1175         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
1176         (WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener):
1177         * bindings/scripts/test/JS/JSTestObj.cpp:
1178         (WebCore::JSTestObj::JSTestObj):
1179         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1180         (WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface):
1181         * bridge/c/CRuntimeObject.cpp:
1182         (JSC::Bindings::CRuntimeObject::CRuntimeObject):
1183         (JSC::Bindings::CRuntimeObject::finishCreation):
1184         * bridge/c/CRuntimeObject.h:
1185         * bridge/jni/jsc/JavaRuntimeObject.cpp:
1186         (JSC::Bindings::JavaRuntimeObject::JavaRuntimeObject):
1187         (JSC::Bindings::JavaRuntimeObject::finishCreation):
1188         * bridge/jni/jsc/JavaRuntimeObject.h:
1189         * bridge/objc/ObjCRuntimeObject.h:
1190         * bridge/objc/ObjCRuntimeObject.mm:
1191         (JSC::Bindings::ObjCRuntimeObject::ObjCRuntimeObject):
1192         (JSC::Bindings::ObjCRuntimeObject::finishCreation):
1193         * bridge/objc/objc_runtime.h:
1194         (JSC::Bindings::ObjcFallbackObjectImp::create):
1195         * bridge/objc/objc_runtime.mm:
1196         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
1197         * bridge/qt/qt_instance.cpp:
1198         (JSC::Bindings::QtRuntimeObject::QtRuntimeObject):
1199         * bridge/qt/qt_pixmapruntime.cpp:
1200         (JSC::Bindings::QtPixmapRuntimeObject::QtPixmapRuntimeObject):
1201         * bridge/qt/qt_runtime.cpp:
1202         (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
1203         (JSC::Bindings::QtRuntimeMethod::finishCreation):
1204         * bridge/qt/qt_runtime.h:
1205         * bridge/runtime_array.cpp:
1206         (JSC::RuntimeArray::RuntimeArray):
1207         * bridge/runtime_array.h:
1208         (JSC::RuntimeArray::create):
1209         * bridge/runtime_method.cpp:
1210         (JSC::RuntimeMethod::RuntimeMethod):
1211         (JSC::RuntimeMethod::finishCreation):
1212         * bridge/runtime_method.h:
1213         * bridge/runtime_object.cpp:
1214         (JSC::Bindings::RuntimeObject::RuntimeObject):
1215         * bridge/runtime_object.h:
1216         (JSC::Bindings::RuntimeObject::create):
1217
1218 2011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>
1219
1220         Rename FontGtk.cpp to FontPango.cpp
1221         https://bugs.webkit.org/show_bug.cgi?id=66323
1222
1223         Reviewed by Martin Robinson.
1224
1225         This file will be used by the EFL port too, and since it's not GTK
1226         specific anymore, rename it to something better.
1227
1228         No new functionality so no new tests.
1229
1230         * GNUmakefile.list.am:
1231         * platform/graphics/pango/FontPango.cpp: Renamed from Source/WebCore/platform/graphics/gtk/FontGtk.cpp.
1232
1233 2011-09-09  Adam Klein  <adamk@chromium.org>
1234
1235         Initialize ExceptionCode in Element::removeAttribute
1236         https://bugs.webkit.org/show_bug.cgi?id=67820
1237
1238         Reviewed by Darin Adler.
1239
1240         Silences valgrind warning reported in http://crbug.com/76490.
1241
1242         No new tests since this would only very occasionally be flaky,
1243         and in the codepath in the valgrind report, the ec is ignored anyway.
1244
1245         * dom/Element.cpp:
1246         (WebCore::Element::removeAttribute): Initialize ec to 0.
1247
1248 2011-09-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
1249
1250         [Qt] Remove common.pri
1251         https://bugs.webkit.org/show_bug.cgi?id=67814
1252
1253         Reviewed by Andreas Kling.
1254
1255         No new tests, no change in functionality.
1256
1257         * CodeGenerators.pri:
1258         * WebCore.pri:
1259
1260 2011-09-09  Dominic Mazzoni  <dmazzoni@google.com>
1261
1262         Assert being hit in AccessibilityRenderObject::addChildren()
1263         https://bugs.webkit.org/show_bug.cgi?id=61805
1264
1265         Reviewed by Chris Fleizach.
1266
1267         Fix nextSibling and previousSibling to handle adjacent continuations
1268         properly, otherwise nodes end up appearing in the accessibility
1269         tree twice (or a debug assertion could be raised).
1270
1271         Test: accessibility/adjacent-continuations-cause-assertion-failure.html
1272
1273         * accessibility/AccessibilityRenderObject.cpp:
1274         (WebCore::AccessibilityRenderObject::previousSibling):
1275         (WebCore::AccessibilityRenderObject::nextSibling):
1276
1277 2011-09-08  Kentaro Hara  <haraken@google.com>
1278
1279         Implement a WebKitAnimationEvent constructor.
1280         https://bugs.webkit.org/show_bug.cgi?id=67825
1281
1282         Reviewed by Sam Weinig.
1283
1284         There is no spec for the WebKitAnimationEvent constructor
1285         since it is WebKit-specific. However, based on the current
1286         IDL of initWebKitAnimationEvent(), the constructor IDL
1287         should be as follows.
1288
1289         [Constructor(DOMString type, optional WebKitAnimationEventInit eventInitDict)]
1290         interface WebKitAnimationEvent : Event {
1291             ...;
1292         }
1293
1294         dictionary WebKitAnimationEventInit : EventInit {
1295             DOMString animationName;
1296             double elapsedTime;
1297         }
1298
1299         Test: fast/events/constructors/webkit-animation-event-constructor.html
1300
1301         * bindings/generic/EventConstructors.h: Added a definition for the WebKitAnimationEvent constructor.
1302         * bindings/js/JSEventConstructors.cpp: Added #includes for WebKitAnimationEvent.
1303         * dom/WebKitAnimationEvent.cpp:
1304         (WebCore::WebKitAnimationEventInit::WebKitAnimationEventInit):
1305         (WebCore::WebKitAnimationEvent::WebKitAnimationEvent):
1306         * dom/WebKitAnimationEvent.h: Added a definition for WebKitAnimationEventInit.
1307         (WebCore::WebKitAnimationEvent::create):
1308         * dom/WebKitAnimationEvent.idl: Makes WebKitAnimationEvent constructible.
1309
1310 2011-09-08  Abhishek Arya  <inferno@chromium.org>
1311
1312         :before content rendering issues with list markers and run-ins.
1313         https://bugs.webkit.org/show_bug.cgi?id=67735
1314
1315         1) Remove the isAnonymous checks for run-in detection since the
1316         run-in can belong to a node.
1317         2) When the parent has block children, then the list marker will
1318         be enclosed in an anonymous block. In that case, for going to the
1319         next list marker, we need to traverse one level up. We don't need
1320         this check when searching for generated run-in (loop 2), since we
1321         know parent will have inline children, so the list marker wont be
1322         enclosed in an anonymous block.
1323
1324         Reviewed by Dave Hyatt.
1325
1326         Tests: fast/lists/list-marker-before-content-table.html
1327                fast/runin/runin-generated-before-content.html
1328
1329         * rendering/RenderObjectChildList.cpp:
1330         (WebCore::RenderObjectChildList::beforePseudoElementRenderer):
1331
1332 2011-09-09  Pavel Podivilov  <podivilov@chromium.org>
1333
1334         Web Inspector: introduce JavaScriptSourceFrame class.
1335         https://bugs.webkit.org/show_bug.cgi?id=67838
1336
1337         SourceFrame should not deal with JavaScript debugging since it is a base class for all source frame implementations.
1338
1339         Reviewed by Pavel Feldman.
1340
1341         * WebCore.gypi:
1342         * WebCore.vcproj/WebCore.vcproj:
1343         * inspector/front-end/JavaScriptSourceFrame.js: Added.
1344         (WebInspector.JavaScriptSourceFrame):
1345         (WebInspector.SourceFrameDelegateForScriptsPanel): moved from ScriptsPanel.js
1346         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.requestContent):
1347         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.debuggingSupported):
1348         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.setBreakpoint):
1349         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.updateBreakpoint):
1350         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.removeBreakpoint):
1351         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.findBreakpoint):
1352         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.continueToLine):
1353         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.canEditScriptSource):
1354         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.setScriptSource):
1355         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.setScriptSourceIsBeingEdited):
1356         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.debuggerPaused):
1357         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.evaluateInSelectedCallFrame):
1358         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.releaseEvaluationResult):
1359         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.suggestedFileName):
1360         * inspector/front-end/ScriptsPanel.js:
1361         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
1362         * inspector/front-end/WebKit.qrc:
1363         * inspector/front-end/inspector.html:
1364
1365 2011-09-09  Sheriff Bot  <webkit.review.bot@gmail.com>
1366
1367         Unreviewed, rolling out r94845.
1368         http://trac.webkit.org/changeset/94845
1369         https://bugs.webkit.org/show_bug.cgi?id=67839
1370
1371         This patch kicked Qt-SL bots, but we don't need this
1372         modification. (Requested by ossy_ on #webkit).
1373
1374         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1375         * platform/mac/WebVideoFullscreenController.mm:
1376         * platform/mac/WebVideoFullscreenHUDWindowController.mm:
1377
1378 2011-09-09  Csaba Osztrogon√°c  <ossy@webkit.org>
1379
1380         [Qt][Mac]REGRESSION(r94774): Build is broken
1381         https://bugs.webkit.org/show_bug.cgi?id=67799
1382
1383         It seems these files didn't rebuilt because of a
1384         dependency bug. Touch them to trigger a rebuild.
1385
1386         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1387         * platform/mac/WebVideoFullscreenController.mm:
1388         * platform/mac/WebVideoFullscreenHUDWindowController.mm:
1389
1390 2011-09-09  Alexander Pavlov  <apavlov@chromium.org>
1391
1392         Unreviewed, Chromium valgrind build fix.
1393
1394         Web Inspector: [Chromium] Valgrind signals use of uninitialized field in InspectorStyleSheetForInlineStyle
1395         https://bugs.webkit.org/show_bug.cgi?id=67837
1396
1397         * inspector/InspectorStyleSheet.cpp:
1398         (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
1399
1400 2011-09-09  Sheriff Bot  <webkit.review.bot@gmail.com>
1401
1402         Unreviewed, rolling out r94536.
1403         http://trac.webkit.org/changeset/94536
1404         https://bugs.webkit.org/show_bug.cgi?id=67836
1405
1406         breaks absoluteLocation() of RelatedMouseEvent (Requested by
1407         jknotten on #webkit).
1408
1409         * dom/MouseRelatedEvent.cpp:
1410         (WebCore::MouseRelatedEvent::MouseRelatedEvent):
1411
1412 2011-09-08  Alexander Pavlov  <apavlov@chromium.org>
1413
1414         Web Inspector: live edit both for JS and CSS is not discoverable.
1415         https://bugs.webkit.org/show_bug.cgi?id=65962
1416
1417         Add the "Edit" button to SourceFrame, so that resources/scripts can be edited both in the
1418         Resources and the Scripts panels. The button is grayed out if the resource/script is not editable.
1419
1420         Reviewed by Yury Semikhatsky.
1421
1422         * inspector/front-end/Images/statusbarButtonGlyphs.png:
1423         * inspector/front-end/ResourceView.js:
1424         (WebInspector.EditableResourceSourceFrame.prototype.canEditSource):
1425         * inspector/front-end/ScriptsPanel.js:
1426         (WebInspector.ScriptsPanel.prototype.get statusBarItems):
1427         (WebInspector.ScriptsPanel.prototype.set visibleView):
1428         * inspector/front-end/SourceFrame.js:
1429         (WebInspector.SourceFrame):
1430         (WebInspector.SourceFrame.prototype.get statusBarItems):
1431         (WebInspector.SourceFrame.prototype._initializeTextViewer):
1432         (WebInspector.SourceFrame.prototype._editButtonClicked):
1433         (WebInspector.SourceFrame.prototype.canEditSource):
1434         (WebInspector.SourceFrame.prototype.startEditing):
1435         (WebInspector.SourceFrame.prototype.commitEditing):
1436         (WebInspector.SourceFrame.prototype._setReadOnly):
1437         (WebInspector.TextViewerDelegateForSourceFrame.prototype.doubleClick):
1438         * inspector/front-end/TextViewer.js:
1439         (WebInspector.TextEditorMainPanel.prototype.set readOnly):
1440         (WebInspector.TextEditorMainPanel.prototype._updateSelectionOnStartEditing):
1441         * inspector/front-end/inspector.css:
1442         (button.edit-source-status-bar-item .glyph):
1443         (button.edit-source-status-bar-item.toggled-on .glyph):
1444
1445 2011-09-09  Shinya Kawanaka  <shinyak@google.com>
1446
1447         Crashes in WebCore::AppendNodeCommand::create().
1448         https://bugs.webkit.org/show_bug.cgi?id=67767
1449
1450         Reviewed by Darin Adler.
1451
1452         In CompositeEditCommand::closeParagraphUnderNewElement(), lastNode could be a non Element node.
1453         The current code assumes lastNode is an Element node. This patch checks it.
1454
1455         Test: editing/execCommand/ident-crashes-topnode-is-text.html
1456
1457         * editing/CompositeEditCommand.cpp:
1458         (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement): Added an element node check.
1459
1460 2011-09-09  Shinya Kawanaka  <shinyak@google.com>
1461
1462         Crashes in WebCore::ApplyStyleCommand.doApply()
1463         https://bugs.webkit.org/show_bug.cgi?id=67765
1464
1465         Reviewed by Ryosuke Niwa.
1466
1467         WebCore::enclosingBlock may return null, but ApplyStyleCommand::applyBlockStyle did not check it. This patch make it to be checked.
1468
1469         Test: editing/style/remove-format-without-enclosing-block.html
1470
1471         * editing/ApplyStyleCommand.cpp:
1472         (WebCore::ApplyStyleCommand::applyBlockStyle): Added null check.
1473
1474 2011-09-09  James Simonsen  <simonjam@chromium.org>
1475
1476         [Chromium] Fix leak of Skia stream with custom CSS fonts
1477         https://bugs.webkit.org/show_bug.cgi?id=67815
1478
1479         Reviewed by Adam Barth.
1480
1481         Test: fast/css/font-face-opentype.html under valgrind
1482
1483         * platform/graphics/mac/FontCustomPlatformData.cpp:
1484         (WebCore::createFontCustomPlatformData):
1485         * platform/graphics/skia/FontCustomPlatformData.cpp:
1486         (WebCore::createFontCustomPlatformData):
1487
1488 2011-09-07  Ryosuke Niwa  <rniwa@webkit.org>
1489
1490         Push more code from HTMLInputElement::setValue to TextFieldInputType::setValue
1491         https://bugs.webkit.org/show_bug.cgi?id=67742
1492
1493         Reviewed by Darin Adler.
1494
1495         Moved more code in HTMLInputElement::setValue to TextFieldInputType::setValue, and merged
1496         InputType::valueChanged into InputType::setValue. Also introduced
1497         InputType::dispatchChangeEventInResponseToSetValue to be overridden by TextFieldInputType.
1498
1499         * html/BaseButtonInputType.cpp:
1500         (WebCore::BaseButtonInputType::setValue):
1501         * html/BaseButtonInputType.h:
1502         * html/BaseCheckableInputType.cpp:
1503         (WebCore::BaseCheckableInputType::setValue):
1504         * html/BaseCheckableInputType.h:
1505         * html/ColorInputType.cpp:
1506         * html/ColorInputType.h:
1507         * html/FileInputType.cpp:
1508         (WebCore::FileInputType::setValue):
1509         * html/FileInputType.h:
1510         * html/HTMLInputElement.cpp:
1511         (WebCore::HTMLInputElement::setValue):
1512         * html/HTMLInputElement.h:
1513         (WebCore::HTMLInputElement::cacheSelectionInResponseToSetValue):
1514         * html/HiddenInputType.cpp:
1515         (WebCore::HiddenInputType::setValue):
1516         * html/HiddenInputType.h:
1517         * html/InputType.cpp:
1518         (WebCore::InputType::setValue):
1519         (WebCore::InputType::dispatchChangeEventInResponseToSetValue):
1520         * html/InputType.h:
1521         * html/RangeInputType.cpp:
1522         (WebCore::RangeInputType::setValue):
1523         * html/RangeInputType.h:
1524         * html/TextFieldInputType.cpp:
1525         (WebCore::TextFieldInputType::setValue):
1526         (WebCore::TextFieldInputType::dispatchChangeEventInResponseToSetValue):
1527         * html/TextFieldInputType.h:
1528
1529 2011-09-08  Annie Sullivan  <sullivan@chromium.org>
1530
1531         Crashes in WebCore::InsertNodeBeforeCommand constructor.
1532         https://bugs.webkit.org/show_bug.cgi?id=67763
1533
1534         Reviewed by Ryosuke Niwa.
1535
1536         Changes editableRootForPosition() to use the position's containerNode instead of deprecatedNode so that
1537         positions which are before or after a given node cannot return that node as the editable root.
1538
1539         Test: editing/inserting/insert-paragraph-selection-outside-contenteditable.html
1540
1541         * editing/htmlediting.cpp:
1542         (WebCore::editableRootForPosition): use containerNode instead of deprecatedNode.
1543
1544 2011-09-08  James Weatherall  <wez@chromium.org>
1545
1546         Release the reference to the HTMLPlugInElement's script object, when the element is removed from the document.  This breaks a cyclical reference that would otherwise cause the element to be retained until the document is torn down.
1547         https://bugs.webkit.org/show_bug.cgi?id=66181
1548
1549         Reviewed by Anders Carlsson.
1550
1551         No new tests - no functional change.
1552
1553         * html/HTMLPlugInElement.cpp:
1554         (WebCore::HTMLPlugInElement::removedFromDocument):
1555         * html/HTMLPlugInElement.h:
1556
1557 2011-09-08  Daniel Bates  <dbates@webkit.org>
1558
1559         XSS filter bypass via non-standard URL encoding
1560         https://bugs.webkit.org/show_bug.cgi?id=66588
1561
1562         Reviewed by Adam Barth.
1563
1564         Tests: http/tests/security/xssAuditor/script-tag-with-16bit-unicode-surrogate-pair.html
1565                http/tests/security/xssAuditor/script-tag-with-16bit-unicode.html
1566                http/tests/security/xssAuditor/script-tag-with-16bit-unicode2.html
1567                http/tests/security/xssAuditor/script-tag-with-16bit-unicode3.html
1568                http/tests/security/xssAuditor/script-tag-with-16bit-unicode4.html
1569                http/tests/security/xssAuditor/script-tag-with-16bit-unicode5.html
1570                http/tests/security/xssAuditor/script-tag-with-three-times-url-encoded-16bit-unicode.html
1571                http/tests/security/xssAuditor/window-open-without-url-should-not-assert.html
1572
1573         Implement support for decoding non-standard 16-bit Unicode escape sequences of
1574         the form %u26C4 as described in <http://www.w3.org/International/iri-edit/draft-duerst-iri.html#anchor29>.
1575
1576         See also <http://en.wikipedia.org/wiki/Percent-encoding#Non-standard_implementations>.
1577
1578         * GNUmakefile.list.am: Added DecodeEscapeSequences.h.
1579         * WebCore.gypi: Ditto.
1580         * WebCore.pro: Ditto.
1581         * WebCore.vcproj/WebCore.vcproj: Ditto.
1582         * WebCore.xcodeproj/project.pbxproj: Ditto.
1583         * html/parser/XSSAuditor.cpp:
1584         (WebCore::decode16BitUnicodeEscapeSequences): Added.
1585         (WebCore::decodeStandardURLEscapeSequences): Added.
1586         (WebCore::fullyDecodeString): Modified to call decode16BitUnicodeEscapeSequences().
1587         (WebCore::XSSAuditor::init): Modified to return early when the URL of the document
1588         is the empty string. This can happen when opening a new browser window or calling
1589         window.open("").
1590         * platform/KURL.cpp:
1591         (WebCore::decodeURLEscapeSequences): Abstracted code into template-function decodeEscapeSequences().
1592         This function just calls decodeEscapeSequences<URLEscapeSequence>().
1593         * platform/text/DecodeEscapeSequences.h: Added.
1594         (WebCore::Unicode16BitEscapeSequence::findInString):
1595         (WebCore::Unicode16BitEscapeSequence::matchStringPrefix):
1596         (WebCore::Unicode16BitEscapeSequence::decodeRun):
1597         (WebCore::URLEscapeSequence::findInString):
1598         (WebCore::URLEscapeSequence::matchStringPrefix):
1599         (WebCore::URLEscapeSequence::decodeRun):
1600         (WebCore::decodeEscapeSequences):
1601
1602 2011-09-08  Adam Barth  <abarth@webkit.org>
1603
1604         DocumentWriter::deprecatedFrameEncoding doesn't need to refert to Settings
1605         https://bugs.webkit.org/show_bug.cgi?id=67812
1606
1607         Reviewed by Eric Seidel.
1608
1609         The one caller of this function does this work already.
1610
1611         * loader/DocumentWriter.cpp:
1612         (WebCore::DocumentWriter::deprecatedFrameEncoding):
1613
1614 2011-09-08  Adam Klein  <adamk@chromium.org>
1615
1616         Always zero-out m_sortedTextBoxesPosition to avoid uninitialized read in TextIterator
1617         https://bugs.webkit.org/show_bug.cgi?id=67810
1618
1619         Reviewed by Tony Chang.
1620
1621         Reported as a valgrind failure in http://crbug.com/84777.
1622
1623         No possible change in behavior, so no tests. The unitialized read
1624         could never have an impact:
1625
1626            if (m_sortedTextBoxesPosition + 1 < m_sortedTextBoxes.size()) ...
1627
1628         Since m_sortedTextBoxes.size() will be zero here if
1629         m_sortedTextBoxesPosition is uninitialized, and they're both unsigned,
1630         so no possible value of m_sortedTextBoxesPosition could be < 0.
1631
1632         * editing/TextIterator.cpp:
1633         (WebCore::TextIterator::TextIterator):
1634
1635 2011-09-08  Tony Chang  <tony@chromium.org>
1636
1637         Cleanup of switch statements with default cases
1638         https://bugs.webkit.org/show_bug.cgi?id=67808
1639
1640         Reviewed by Adam Barth.
1641
1642         No new tests, just a small refactoring.
1643
1644         * page/WebKitAnimation.cpp:
1645         (WebCore::WebKitAnimation::fillMode):
1646         * platform/audio/Distance.cpp:
1647         (WebCore::DistanceEffect::gain):
1648
1649 2011-09-08  Eric Seidel  <eric@webkit.org>
1650
1651         [BiDi] Add support for the BDI element
1652         https://bugs.webkit.org/show_bug.cgi?id=50913
1653
1654         Reviewed by Ryosuke Niwa.
1655
1656         This patch is ridiculously trivial now that we have unicode-bidi: isolate support in WebKit.
1657
1658         Test: css3/bdi-element.html
1659
1660         * css/html.css:
1661         (bdi):
1662
1663 2011-09-08  David Levin  <levin@chromium.org>
1664
1665         [chromium] KURL::copy doesn't produce something usable on another thread.
1666         https://bugs.webkit.org/show_bug.cgi?id=67809
1667
1668         Reviewed by Adam Barth.
1669
1670         No new functionality exposed so no new test. This was caught by testing code: the thread
1671         sanitizer run in Chromium (http://code.google.com/p/chromium/issues/detail?id=93708).
1672
1673         * platform/KURLGoogle.cpp:
1674         (WebCore::KURLGooglePrivate::copyTo): Clear out the invalid String so that it will
1675         not be used on another thread.
1676
1677 2011-09-08  Alexey Proskuryakov  <ap@apple.com>
1678
1679         REGRESSION (r66874): Missing RefPtr in ScriptController
1680         https://bugs.webkit.org/show_bug.cgi?id=67748
1681
1682         Reviewed by Adam Barth.
1683
1684         * bindings/ScriptControllerBase.cpp: (WebCore::ScriptController::executeScript):
1685
1686 2011-09-08  Adam Barth  <abarth@webkit.org>
1687
1688         Second attempt to fix Chromium build.
1689
1690         * dom/Document.h:
1691
1692 2011-09-08  Oliver Hunt  <oliver@apple.com>
1693
1694         Use bump allocator for initial property storage
1695         https://bugs.webkit.org/show_bug.cgi?id=67494
1696
1697         Reviewed by Geoffrey Garen.
1698
1699         Add a forwarding header.
1700
1701         * ForwardingHeaders/runtime/StorageBarrier.h: Added.
1702
1703 2011-09-08  Roland Steiner  <rolandsteiner@chromium.org>
1704
1705         Unreviewed, rolling out r94809.
1706         http://trac.webkit.org/changeset/94809
1707         https://bugs.webkit.org/show_bug.cgi?id=67718
1708
1709         commit _still_ premature, despite CQ eagerness
1710
1711         * html/HTMLAttributeNames.in:
1712         * html/HTMLStyleElement.cpp:
1713         * html/HTMLStyleElement.h:
1714         * html/HTMLStyleElement.idl:
1715
1716 2011-09-08  Sam Weinig  <sam@webkit.org>
1717
1718         Remove the Completion object from JSC, I have never liked it
1719         https://bugs.webkit.org/show_bug.cgi?id=67755
1720
1721         Reviewed by Gavin Barraclough.
1722
1723         * bindings/js/JSDOMBinding.cpp:
1724         (WebCore::reportException):
1725         * bindings/js/JSEventListener.cpp:
1726         (WebCore::JSEventListener::handleEvent):
1727         * bindings/js/JSInjectedScriptManager.cpp:
1728         (WebCore::InjectedScriptManager::createInjectedScript):
1729         * bindings/js/JSMainThreadExecState.h:
1730         (WebCore::JSMainThreadExecState::evaluate):
1731         * bindings/js/ScriptController.cpp:
1732         (WebCore::ScriptController::evaluateInWorld):
1733         * bindings/js/WorkerScriptController.cpp:
1734         (WebCore::WorkerScriptController::evaluate):
1735         * bindings/objc/WebScriptObject.mm:
1736         (-[WebScriptObject evaluateWebScript:]):
1737         * bridge/NP_jsobject.cpp:
1738         (_NPN_Evaluate):
1739         * bridge/jni/jni_jsobject.mm:
1740         (JavaJSObject::eval):
1741
1742 2011-09-08  Adam Barth  <abarth@webkit.org>
1743
1744         Inline DocumentWriter::encoding() into it's only caller: deprecatedFrameEncoding()
1745         https://bugs.webkit.org/show_bug.cgi?id=67807
1746
1747         Reviewed by Eric Seidel.
1748
1749         This function is super nutty.  We don't want any more folks to call it
1750         thinking that it does something sane.
1751
1752         * loader/DocumentWriter.cpp:
1753         (WebCore::DocumentWriter::deprecatedFrameEncoding):
1754         * loader/DocumentWriter.h:
1755
1756 2011-09-08  Roland Steiner  <rolandsteiner@chromium.org>
1757
1758         <style scoped>: Add 'scoped' attribute
1759         https://bugs.webkit.org/show_bug.cgi?id=67718
1760
1761         Add 'scoped' attribute to IDL and attribute list,
1762         implement and test setting/resetting of the attribute.
1763
1764         Reviewed by Dimitri Glazkov.
1765
1766         Test: fast/css/style-scoped/basic-attribute.html
1767
1768         * html/HTMLAttributeNames.in:
1769         * html/HTMLStyleElement.cpp:
1770         (WebCore::HTMLStyleElement::scoped):
1771         (WebCore::HTMLStyleElement::setScoped):
1772         (WebCore::HTMLStyleElement::scopingElement):
1773         * html/HTMLStyleElement.h:
1774         * html/HTMLStyleElement.idl:
1775
1776 2011-09-08  Sheriff Bot  <webkit.review.bot@gmail.com>
1777
1778         Unreviewed, rolling out r94781.
1779         http://trac.webkit.org/changeset/94781
1780         https://bugs.webkit.org/show_bug.cgi?id=67806
1781
1782         Broke Objective-C binding on Mac (Requested by rniwa on
1783         #webkit).
1784
1785         * dom/Element.idl:
1786         * dom/Node.cpp:
1787         (WebCore::Node::contains):
1788         * dom/Node.idl:
1789         * editing/DeleteSelectionCommand.cpp:
1790         (WebCore::DeleteSelectionCommand::mergeParagraphs):
1791
1792 2011-09-08  Eric Seidel  <eric@webkit.org>
1793
1794         Remove DocumentWriter::setDecoder as a grep of WebKit shows no callers
1795         https://bugs.webkit.org/show_bug.cgi?id=67803
1796
1797         Reviewed by Adam Barth.
1798
1799         Smells like dead code.
1800
1801         * loader/DocumentWriter.cpp:
1802         * loader/DocumentWriter.h:
1803
1804 2011-09-08  Shinya Kawanaka  <shinyak@google.com>
1805
1806         Crashes in WebCore::ReplaceSelectionCommand::doApply
1807         https://bugs.webkit.org/show_bug.cgi?id=67762
1808
1809         Reviewed by Ryosuke Niwa.
1810
1811         WebCore::enclosingBlock may return null, but its return value was not checked. This patch checks it.
1812
1813         Tests: editing/inserting/insert-without-enclosing-block.html
1814
1815         * editing/ReplaceSelectionCommand.cpp:
1816         (WebCore::ReplaceSelectionCommand::doApply): Added null check.
1817
1818 2011-09-08  Sheriff Bot  <webkit.review.bot@gmail.com>
1819
1820         Unreviewed, rolling out r94784.
1821         http://trac.webkit.org/changeset/94784
1822         https://bugs.webkit.org/show_bug.cgi?id=67796
1823
1824         Commit was premature (Requested by rolandsteiner on #webkit).
1825
1826         * html/HTMLAttributeNames.in:
1827         * html/HTMLStyleElement.cpp:
1828         * html/HTMLStyleElement.h:
1829         * html/HTMLStyleElement.idl:
1830
1831 2011-09-08  W. James MacLean  <wjmaclean@chromium.org>
1832
1833         [chromium] Add backend compositor support for rescaling (zooming) textures during zoom animation.
1834         https://bugs.webkit.org/show_bug.cgi?id=66472
1835
1836         This patch contains plumbing from Internals to WebViewImpl that can be removed
1837         at a later time when the zoom animator code is complete.
1838
1839         Reviewed by James Robinson.
1840
1841         Test: platform/chromium/compositing/zoom-animator-scale-test.html
1842
1843         * page/Settings.cpp:
1844         (WebCore::Settings::Settings):
1845         * page/Settings.h:
1846         (WebCore::Settings::setZoomAnimatorScale):
1847         (WebCore::Settings::zoomAnimatorScale):
1848         * platform/graphics/chromium/LayerRendererChromium.cpp:
1849         (WebCore::LayerRendererChromium::LayerRendererChromium):
1850         (WebCore::LayerRendererChromium::drawLayersInternal):
1851         * platform/graphics/chromium/LayerRendererChromium.h:
1852         (WebCore::LayerRendererChromium::setZoomAnimatorScale):
1853         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1854         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
1855         (WebCore::CCLayerTreeHost::commitTo):
1856         (WebCore::CCLayerTreeHost::setZoomAnimatorScale):
1857         (WebCore::CCLayerTreeHost::updateLayers):
1858         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1859         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1860         (WebCore::CCLayerTreeHostImpl::setZoomAnimatorScale):
1861         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1862         * testing/Internals.cpp:
1863         (WebCore::Internals::setZoomAnimatorScale):
1864         * testing/Internals.h:
1865         * testing/Internals.idl:
1866
1867 2011-09-08  Eric Carlson  <eric.carlson@apple.com>
1868
1869         HTMLMediaElement is missing initialTime attribute
1870         https://bugs.webkit.org/show_bug.cgi?id=67791
1871
1872         Reviewed by Darin Adler.
1873
1874         Test: media/media-initialTime.html
1875
1876         * html/HTMLMediaElement.cpp:
1877         (WebCore::HTMLMediaElement::initialTime):
1878         * html/HTMLMediaElement.h:
1879         * html/HTMLMediaElement.idl:
1880         * platform/graphics/MediaPlayer.cpp:
1881         (WebCore::MediaPlayer::initialTime):
1882         * platform/graphics/MediaPlayer.h:
1883         * platform/graphics/MediaPlayerPrivate.h:
1884         (WebCore::MediaPlayerPrivateInterface::initialTime):
1885
1886 2011-09-03  Robert Hogan  <robert@webkit.org>
1887
1888         Elements with position:absolute don't move to correct position after images load
1889         https://bugs.webkit.org/show_bug.cgi?id=54611
1890
1891         Reviewed by Simon Fraser.
1892
1893         Test: fast/block/positioning/absolute-layout-after-image-load.html
1894
1895         In the test the 'label' block is an absolutely positioned child of an inline flow. So during layout, 
1896         this RenderBlock::layoutPositionedObjects fails to dirty it for rendering because it requires 
1897         the parent to be a BlockFlow. The code to do this was introduced in http://trac.webkit.org/changeset/8284. 
1898         There doesn't seem to be a good reason for requiring a BlockFlow, so remove the check. 
1899
1900         Note: Although the issue is encountered only on first load without a fragment identifier, it 
1901         happens reliably when you include the fragment identifier in the url (#Footnote_1). This is so 
1902         because scrolling to the fragment always happens before the image has loaded, rendering the page 
1903         and clearing the initial dirty bits in the positioned element's renderer. When the image finally 
1904         loads in this scenario, the positioned element is otherwise clean and relies on the above code to get 
1905         re-rendered.
1906
1907         Note: This was originally landed in r94755 but positioned-float-layout-after-image-load.html exposed
1908               an ASSERT bug, unrelated to this change, and was rolled out. That issue is tracked separately
1909               in bug 67759.
1910
1911         * rendering/RenderBlock.cpp:
1912         (WebCore::RenderBlock::layoutPositionedObjects): remove the check for r->parent()->isBlockFlow() when 
1913                                                          deciding whether to mark children for layout
1914
1915 2011-09-08  Roland Steiner  <rolandsteiner@chromium.org>
1916
1917         <style scoped>: Add 'scoped' attribute
1918         https://bugs.webkit.org/show_bug.cgi?id=67718
1919
1920         Add 'scoped' attribute to IDL and attribute list,
1921         implement and test setting/resetting of the attribute.
1922
1923         Reviewed by Dimitri Glazkov.
1924
1925         Test: fast/css/style-scoped/basic-attribute.html
1926
1927         * html/HTMLAttributeNames.in:
1928         * html/HTMLStyleElement.cpp:
1929         (WebCore::HTMLStyleElement::scoped):
1930         (WebCore::HTMLStyleElement::setScoped):
1931         (WebCore::HTMLStyleElement::scopingElement):
1932         * html/HTMLStyleElement.h:
1933         * html/HTMLStyleElement.idl:
1934
1935 2011-09-08  Erik Arvidsson  <arv@chromium.org>
1936
1937         Move Element.contains to Node
1938         https://bugs.webkit.org/show_bug.cgi?id=67651
1939
1940         Reviewed by Darin Adler.
1941
1942         This moves the contains method from Element to Node as in the DOM4 working draft: 
1943         http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-contains
1944
1945         This also special cases Document contains to make it O(1) instead of O(depth).
1946
1947         Tests: fast/dom/Node/contains-method.html
1948                perf/document-contains.html
1949
1950         * dom/Element.idl:
1951         * dom/Node.cpp:
1952         (WebCore::Node::contains): Added document special case.
1953         * dom/Node.idl:
1954         * editing/DeleteSelectionCommand.cpp:
1955         (WebCore::DeleteSelectionCommand::mergeParagraphs): Added a null check.
1956
1957 2011-09-08  Chris Rogers  <crogers@google.com>
1958
1959         Check AudioContext createChannelMerger() for thread safety
1960         https://bugs.webkit.org/show_bug.cgi?id=67247
1961
1962         Reviewed by Kenneth Russell.
1963
1964         Test: webaudio/audiochannelmerger-stereo.html
1965
1966         * webaudio/AudioChannelMerger.cpp:
1967         (WebCore::AudioChannelMerger::process):
1968         (WebCore::AudioChannelMerger::checkNumberOfChannelsForInput):
1969         * webaudio/AudioChannelMerger.h:
1970
1971 2011-09-08  Ned Holbrook  <nholbrook@apple.com>
1972
1973         Refactor hyphen measurement
1974         https://bugs.webkit.org/show_bug.cgi?id=67728
1975
1976         Reviewed by Darin Adler.
1977
1978         No new tests, purely refactoring.
1979
1980         * rendering/RenderBlockLineLayout.cpp:
1981         (WebCore::measureHyphenWidth): Added.
1982         (WebCore::setLogicalWidthForTextRun): Use measureHyphenWidth().
1983         (WebCore::tryHyphenating): Ditto.
1984         (WebCore::RenderBlock::LineBreaker::nextLineBreak): Ditto.
1985
1986 2011-09-08  Julien Chaffraix  <jchaffraix@webkit.org>
1987
1988         Remove LayoutStateDisabler instances from RenderLayer
1989         https://bugs.webkit.org/show_bug.cgi?id=66896
1990
1991         Reviewed by Simon Fraser.
1992
1993         As part of r93614, scrollTo does not call updateLayerPositions anymore.
1994         This means that we don't need to disable LayoutState from the scrolling code
1995         in RenderLayer.
1996
1997         This change is covered by the existing tests.
1998
1999         * rendering/RenderLayer.cpp:
2000         (WebCore::RenderLayer::updateLayerPositions): Updated the comment
2001         that was not accurate anymore. Also explained what is wrong with
2002         LayoutState vs RenderLayer now. Note that the ASSERT is still
2003         valid and will not trigger as the remaining calls to updateLayerPositions
2004         are done *outside* layout() where LayoutState is not set (thus disabled).
2005
2006         (WebCore::RenderLayer::updateScrollInfoAfterLayout): Removed
2007         2 LayoutStateDisabler surrounding scrollToOffset.
2008
2009 2011-09-08  Julien Chaffraix  <jchaffraix@webkit.org>
2010
2011         Factor out the code to get the first non-null RenderTableSection in RenderTable
2012         https://bugs.webkit.org/show_bug.cgi?id=66972
2013
2014         Reviewed by Darin Adler.
2015
2016         Refactoring only, covered by existing tests.
2017
2018         * accessibility/AccessibilityTable.cpp:
2019         (WebCore::AccessibilityTable::addChildren):
2020         (WebCore::AccessibilityTable::cellForColumnAndRow):
2021         * accessibility/AccessibilityTableCell.cpp:
2022         (WebCore::AccessibilityTableCell::rowIndexRange):
2023         Updated those for the signature change in sectionBelow. Also added
2024         a FIXME where topSection should be used instead of iterating
2025         over the section (and likely missing some corner cases).
2026
2027         * rendering/FixedTableLayout.cpp:
2028         (WebCore::FixedTableLayout::calcWidthArray):
2029         * rendering/RenderTable.cpp:
2030         (WebCore::RenderTable::calcBorderStart):
2031         (WebCore::RenderTable::calcBorderEnd):
2032         (WebCore::RenderTable::outerBorderBefore):
2033         (WebCore::RenderTable::sectionAbove):
2034         (WebCore::RenderTable::sectionBelow):
2035         (WebCore::RenderTable::firstLineBoxBaseline):
2036         Updated all those functions to use the newly added functions. Also changed
2037         the variable names to match the functions.
2038
2039         (WebCore::RenderTable::layout):
2040         (WebCore::RenderTable::topNonEmptySection): Newly added function
2041         that returns the top non null section of the table that has at least a
2042         row.
2043
2044         (WebCore::RenderTable::cellAbove):
2045         (WebCore::RenderTable::cellBelow):
2046         Update the signature of those 2 functions to take an enum as it makes the
2047         rest of the code more readable.
2048
2049         * rendering/RenderTable.h:
2050         (WebCore::RenderTable::topSection): Newly added function to return
2051         the top non null section in the table.
2052
2053 2011-04-19  Eric Seidel  <eric@webkit.org>
2054
2055         Reviewed by Ryosuke Niwa.
2056
2057         [BiDi] [CSS3] MASTER: Add support for the unicode-bidi:isolate CSS property
2058         https://bugs.webkit.org/show_bug.cgi?id=50912
2059
2060         This patch adds support for CSS3 unicode-bidi: isolate property, under the -webkit- vendor prefix.
2061         Parsing support was added in a previous patch, this wires up the RenderStyle values
2062         to code changes in the BidiResolver.
2063
2064         The effect of this patch is that it makes it possible to "isolate" runs of text
2065         so that their RTL-ness or LTR-ness does not bleed out into the rest of your text
2066         and effect layout.  This is important because many unicode characters (like parenthesis, ':', '-', etc.)
2067         do not have intrinsic directionality and are affected by whatever characters come before/after.
2068         If you have usernames which include RTL text, if you inject those usernames in your page
2069         you might end up with nearby characters moving!
2070         (like 'RTL USERNAME - my awesome site' as a title, could end up as
2071         'my awesome site - USERNAME RTL' when correct would be 'USERNAME RTL - my awesome site'.)
2072         This patch makes it possible to wrap sections of text in isolated spans, so that
2073         they correctly order all their RTL/LTR contents, but also correctly participate in the
2074         larger RTL/LTR ordering without affecting nearby characters.
2075
2076         Because much of this code is old and rarely touched, I've included extra background
2077         information in hopes of expanding my set of potential reviewers:
2078
2079         WebKit uses the standard "Unicode Bidi Algorithm" henceforth known as the UBA.
2080         The UBA is defined at http://unicode.org/reports/tr9/ for those not faint of heart.
2081
2082         Text layout is done per-block (<div>, <p>, etc), and begins with a string of text
2083         (which in our case comes from the rendering tree) and a specified width.
2084         First:  Text is measured and wrapped into lines.
2085         Second: The UBA is run over the lines of text.
2086         Third:  WebKit builds InlineBoxes (its linebox tree) and eventually render the text.
2087
2088         This patch modifies our UBA to ignore all text content inside "isolated" inlines (treating them as neutral characters)
2089         and then adds another step after running the UBA, where we run the UBA recursively on any
2090         previously identified "isolated" content.
2091
2092         The result of the UBA is an ordered list of "runs" of text with the RTL runs
2093         correctly RTL and the LTR runs LTR.
2094
2095         The UBA does three things:
2096         1.  It assigns a "class" to each character in a text stream (like neutral, strongly-RTL, strongly-LTR, etc.)
2097         2.  Divides the text stream up into "runs" of characters of the same directionality (all RTL, all LTR).
2098         3.  Re-orders those runs.
2099
2100         The UBA in WebKit is implemented by BidiResolver<T> in BidiResolver.h
2101
2102         The InlineBidiResolver (BidiResolver specialization which knows about the rendering tree)
2103         walks along its InlineIterators, looking at each character and running the
2104         Unicode Bidi Algorithm (UBA).  It walks through the rendering tree subtree under
2105         a block, using a (poorly named) bidiNext function which returns the next inline object.
2106         Each inline object (or text character there-in) has a corresponding meaning in the UBA
2107         such as a "strong RTL" character or a "neutral" character.  The UBA reads these sequence
2108         of characters, and figures out what direction (RTL or LTR) to assign to any neutral
2109         characters it encounters, based on surrounding characters.
2110
2111         As the InlineBidiResolver is walking the rendering tree, the InlineIterator::advance()
2112         function calls bidiNext(), which in turn can call notifyObserverEnteredObject/notifyObserverWillExitObject
2113         notifying InlineBidiResolver that it is entering or exiting an "isolated"
2114         span, at which point it will either start or stop ignoring the stream of characters
2115         from the InlineIterator.  When the InlineBidiResolver is ignoring the stream of
2116         characters, instead of creating separate BidiRuns at each RTL/LTR boundary
2117         as it normally would, it instead creates one "fake" run for the entire
2118         isolated span.  These fake runs participate in the normal UBA run ordering process,
2119         but after the main UBA, a second pass is made where we examine
2120         the list of isolatedRuns() and run the UBA on each of them, replacing the fake
2121         run we previously inserted, with the resulting list of runs from that inner UBA run.
2122         The way it "ignores" characters is by treating them all as neutral when inside an isolate.
2123         Thus all the characters end up grouped in a single run, but their directionality (as a group)
2124         is correctly affected by any surrounding strong characters.
2125
2126         If you understood that last paragraph, than the rest of the change is just plumbing.
2127
2128         I added a huge number of FIXMEs to this code, because this code has a variety of
2129         design choices (or lack there of) which make some of this very difficult.
2130
2131         For example the bidiNext iterator function has two sets of mutually exclusive
2132         parameters and can be used optionally with or without an observer.  Prior to this
2133         change there was only ever one object which cared about observing a walk over inlines
2134         and that was InlineBidiResolver.  This patch (regretfully) templatizes bidiNext
2135         to support a new Observer type.  The correct fix would be to rip bidiNext into
2136         multiple functions and rip need for observation out of InlineBidiResolver.
2137         Unfortunately I've tried both in separate bugs and failed.  This code is very very
2138         old and very poorly understood.  We're slowly moving forward, this is another tiny step.
2139
2140         This is my fourth iteration of this patch (I'm happy to do more!), but I believe
2141         it's a good compromise between fixing all of the design gotcha's of our bidi
2142         system and doing the minimum amount to add this killer CSS feature.
2143
2144         I ran the PLT.  (It averaged 0.2% faster with this change, but I attribute that to noise).
2145
2146         Test: css3/unicode-bidi-isolate-basic.html and css3/unicode-bidi-isolate-aharon.html
2147
2148         * platform/text/BidiResolver.h:
2149         (WebCore::BidiCharacterRun::setNext):
2150          - Needed by the new replaceRunWithRuns function.
2151         (WebCore::BidiResolver::BidiResolver):
2152         (WebCore::BidiResolver::~BidiResolver):
2153         (WebCore::BidiResolver::enterIsolate):
2154         (WebCore::BidiResolver::exitIsolate):
2155         (WebCore::BidiResolver::inIsolate):
2156         (WebCore::BidiResolver::isolatedRuns):
2157          - Used to track isolated spans of text as they're encoutered.
2158            They're stuffed away here to be processed recursively
2159            after the main UBA has done its thang.
2160         (WebCore::::appendRun):
2161         (WebCore::::embed):
2162         (WebCore::::commitExplicitEmbedding):
2163         (WebCore::::createBidiRunsForLine):
2164         * platform/text/BidiRunList.h:
2165         (WebCore::::replaceRunWithRuns):
2166          - This effectively takes all the runs from one runlist and adds them to
2167            this one, replacing the fake run we inserted during a previous pass of the UBA.
2168          - This RunList now owns the runs, so we call clear() on the other RunList
2169            so that we don't end up double-freeing the runs.
2170         (WebCore::::clear):
2171          - This allows us to "take" runs from another run list and then clear it.
2172         * rendering/BidiRun.h:
2173         (WebCore::BidiRun::object):
2174         * rendering/InlineIterator.h:
2175         (WebCore::InlineIterator::object):
2176         (WebCore::InlineIterator::offset):
2177         (WebCore::notifyObserverEnteredObject): Mostly just renaming and adding a FIXME about plaintext.
2178         (WebCore::notifyObserverWillExitObject): Mostly just renaming.
2179         (WebCore::addPlaceholderRunForIsolatedInline):
2180         (WebCore::isIsolatedInline):
2181         (WebCore::InlineBidiResolver::appendRun):
2182         * rendering/RenderBlockLineLayout.cpp:
2183         (WebCore::statusWithDirection):
2184         (WebCore::constructBidiRuns):
2185          - This is the heavy-lifting of this change.  This function
2186            runs the UBA recursively on all the previously identified isolated spans.
2187          - If we encounter more isolated spans in our run, we just add them to the
2188            main list an keep going.  Because the runs are linked lists and we have
2189            direct pointers to our placeholder objects, we don't care what order
2190            we process the placeholders in, so long as when we're done, they're all processed.
2191         (WebCore::RenderBlock::layoutInlineChildren):
2192
2193 2011-09-08  Kentaro Hara  <haraken@google.com>
2194
2195         Implement a ProgressEvent constructor for JSC
2196         https://bugs.webkit.org/show_bug.cgi?id=67537
2197
2198         Reviewed by Sam Weinig.
2199
2200         The spec for the ProgressEvent constructor is here:
2201         http://www.w3.org/TR/progress-events/#interface-progressevent
2202
2203         Test: fast/events/constructors/progress-event-constructor.html
2204
2205         * bindings/generic/EventConstructors.h: Added a definition for the ProgressEvent constructor.
2206         * bindings/js/JSDictionary.cpp:
2207         (WebCore::JSDictionary::convertValue): Converts an ECMA-262 Number into an IDL unsigned long long value. Spec: http://www.w3.org/TR/WebIDL/#es-unsigned-long-long
2208         * bindings/js/JSEventConstructors.cpp: Added #includes for ProgressEvent.
2209         * dom/ProgressEvent.cpp:
2210         (WebCore::ProgressEventInit::ProgressEventInit):
2211         (WebCore::ProgressEvent::ProgressEvent):
2212         * dom/ProgressEvent.h: Added a definition for ProgressEventInit.
2213         (WebCore::ProgressEvent::create):
2214         * dom/ProgressEvent.idl: Makes ProgressEvent constructible.
2215
2216 2011-09-08  Ryosuke Niwa  <rniwa@webkit.org>
2217
2218         Make bindings tests quiet after r94701.
2219
2220         * bindings/scripts/test/JS/JSTestInterface.cpp:
2221         * bindings/scripts/test/JS/JSTestInterface.h:
2222         (WebCore::JSTestInterfacePrototype::JSTestInterfacePrototype):
2223         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2224         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
2225         (WebCore::JSTestMediaQueryListListenerPrototype::JSTestMediaQueryListListenerPrototype):
2226         * bindings/scripts/test/JS/JSTestObj.cpp:
2227         * bindings/scripts/test/JS/JSTestObj.h:
2228         (WebCore::JSTestObjPrototype::JSTestObjPrototype):
2229         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2230         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
2231         (WebCore::JSTestSerializedScriptValueInterfacePrototype::JSTestSerializedScriptValueInterfacePrototype):
2232
2233 2011-09-07  Pavel Podivilov  <podivilov@chromium.org>
2234
2235         Web Inspector: get rid of RawSourceCode.createSourceMappingIfNeeded.
2236         https://bugs.webkit.org/show_bug.cgi?id=67717
2237
2238         Listen to SourceMappingUpdated event instead of using createSourceMappingIfNeeded.
2239
2240         Reviewed by Yury Semikhatsky.
2241
2242         * inspector/front-end/DebuggerPresentationModel.js:
2243         (WebInspector.DebuggerPresentationModel):
2244         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation.updateAnchor):
2245         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
2246         (WebInspector.DebuggerPresentationModel.prototype._updateSourceMapping):
2247         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
2248         (WebInspector.DebuggerPresentationModel.prototype._restoreConsoleMessages):
2249         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
2250         (WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded):
2251         (WebInspector.DebuggerPresentationModel.prototype._createPresentationMessage):
2252         (WebInspector.DebuggerPresentationModel.prototype._consoleCleared):
2253         (WebInspector.DebuggerPresentationModel.prototype.continueToLine):
2254         (WebInspector.DebuggerPresentationModel.prototype.messagesForUISourceCode):
2255         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
2256         (WebInspector.PresentationCallFrame.prototype.sourceLine.sourceMappingUpdated):
2257         (WebInspector.PresentationCallFrame.prototype.sourceLine):
2258         * inspector/front-end/SourceFile.js:
2259
2260 2011-09-06  Pavel Podivilov  <podivilov@chromium.org>
2261
2262         Web Inspector: do not re-create RawSourceCode when toggling pretty-print mode.
2263         https://bugs.webkit.org/show_bug.cgi?id=67647
2264
2265         1) Implement RawSourceCode.setFormatted that allows toggling pretty-print mode on the fly without resetting everything.
2266         2) Add RawSourceCode unit tests.
2267         3) Remove source mapping listeners and console messages from presentation model (they live in RawSourceCode now).
2268
2269         Reviewed by Yury Semikhatsky.
2270
2271         Test: inspector/debugger/raw-source-code.html
2272
2273         * inspector/front-end/DebuggerPresentationModel.js:
2274         (WebInspector.DebuggerPresentationModel):
2275         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
2276         (WebInspector.DebuggerPresentationModel.prototype._addScript):
2277         (WebInspector.DebuggerPresentationModel.prototype._sourceMappingUpdated):
2278         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
2279         (WebInspector.DebuggerPresentationModel.prototype._createRawSourceCodeId):
2280         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
2281         * inspector/front-end/ScriptsPanel.js:
2282         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
2283         * inspector/front-end/SourceFile.js:
2284         (WebInspector.RawSourceCode):
2285         (WebInspector.RawSourceCode.prototype.get uiSourceCode):
2286         (WebInspector.RawSourceCode.prototype.setFormatted):
2287         (WebInspector.RawSourceCode.prototype.rawLocationToUILocation):
2288         (WebInspector.RawSourceCode.prototype._saveSourceMapping):
2289
2290 2011-09-08  Alexander Pavlov  <apavlov@chromium.org>
2291
2292         Web Inspector: [REGRESSION] Clear console shortcut Ctrl + L broken
2293         https://bugs.webkit.org/show_bug.cgi?id=67711
2294
2295         Reviewed by Yury Semikhatsky.
2296
2297         * inspector/front-end/ConsoleView.js:
2298         (WebInspector.ConsoleView.prototype._consoleCleared):
2299         (WebInspector.ConsoleView.prototype._registerShortcuts):
2300         (WebInspector.ConsoleView.prototype._promptKeyDown):
2301
2302 2011-09-08  Andras Becsi  <andras.becsi@nokia.com>
2303
2304         [Qt] Build fails with strict compiler
2305         https://bugs.webkit.org/show_bug.cgi?id=67778
2306
2307         Reviewed by Csaba Osztrogon√°c.
2308
2309         No new tests needed.
2310
2311         * platform/graphics/TiledBackingStore.cpp:
2312         (WebCore::TiledBackingStore::resizeEdgeTiles): Remove unused contentsRect variable
2313         which's usage was removed in r94681 to fix the build with [-Werror=unused-but-set-variable].
2314
2315 2011-09-08  Sheriff Bot  <webkit.review.bot@gmail.com>
2316
2317         Unreviewed, rolling out r94695.
2318         http://trac.webkit.org/changeset/94695
2319         https://bugs.webkit.org/show_bug.cgi?id=67776
2320
2321         Hitting an assertion on Snow Leopard, Qt, GTK (Requested by
2322         Zoltan on #webkit).
2323
2324         * rendering/RenderBlock.cpp:
2325         (WebCore::RenderBlock::positionedFloatsNeedRelayout):
2326         (WebCore::RenderBlock::layoutPositionedObjects):
2327
2328 2011-09-08  Alexander Pavlov  <apavlov@chromium.org>
2329
2330         Unreviewed, strip trailing whitespace in the Web Inspector frontend (*.js and *.css).
2331
2332         * inspector/front-end/ApplicationCacheItemsView.js:
2333         * inspector/front-end/AuditResultView.js:
2334         * inspector/front-end/BinarySearch.js:
2335         * inspector/front-end/CSSStyleModel.js:
2336         * inspector/front-end/ConsoleMessage.js:
2337         * inspector/front-end/ConsoleModel.js:
2338         * inspector/front-end/ConsoleView.js:
2339         * inspector/front-end/CookieItemsView.js:
2340         * inspector/front-end/CookieParser.js:
2341         * inspector/front-end/DOMAgent.js:
2342         * inspector/front-end/DOMStorage.js:
2343         * inspector/front-end/DOMStorageItemsView.js:
2344         * inspector/front-end/DataGrid.js:
2345         * inspector/front-end/Database.js:
2346         * inspector/front-end/DatabaseQueryView.js:
2347         * inspector/front-end/DetailedHeapshotGridNodes.js:
2348         * inspector/front-end/DetailedHeapshotView.js:
2349         * inspector/front-end/ElementsTreeOutline.js:
2350         * inspector/front-end/EmptyView.js:
2351         * inspector/front-end/EventListenersSidebarPane.js:
2352         * inspector/front-end/ExtensionCommon.js:
2353         * inspector/front-end/GoToLineDialog.js:
2354         * inspector/front-end/HeapSnapshot.js:
2355         * inspector/front-end/HeapSnapshotProxy.js:
2356         * inspector/front-end/HeapSnapshotWorkerDispatcher.js:
2357         * inspector/front-end/ImageView.js:
2358         * inspector/front-end/InjectedFakeWorker.js:
2359         * inspector/front-end/InspectorFrontendHostStub.js:
2360         * inspector/front-end/MetricsSidebarPane.js:
2361         * inspector/front-end/NetworkManager.js:
2362         * inspector/front-end/NetworkPanel.js:
2363         * inspector/front-end/ObjectPropertiesSection.js:
2364         * inspector/front-end/PartialQuickSort.js:
2365         * inspector/front-end/ProfileView.js:
2366         * inspector/front-end/ProfilesPanel.js:
2367         * inspector/front-end/RemoteObject.js:
2368         * inspector/front-end/Resource.js:
2369         * inspector/front-end/ResourceCategory.js:
2370         * inspector/front-end/ResourceHTMLView.js:
2371         * inspector/front-end/ResourceHeadersView.js:
2372         * inspector/front-end/ResourceJSONView.js:
2373         * inspector/front-end/ResourceTimingView.js:
2374         * inspector/front-end/ResourceTreeModel.js:
2375         * inspector/front-end/ResourceView.js:
2376         * inspector/front-end/ResourcesPanel.js:
2377         * inspector/front-end/SearchController.js:
2378         * inspector/front-end/SettingsScreen.js:
2379         * inspector/front-end/ShortcutsScreen.js:
2380         * inspector/front-end/SourceCSSTokenizer.js:
2381         * inspector/front-end/SourceHTMLTokenizer.js:
2382         * inspector/front-end/SourceJavaScriptTokenizer.js:
2383         * inspector/front-end/StatusBarButton.js:
2384         * inspector/front-end/TextEditorModel.js:
2385         * inspector/front-end/TimelineGrid.js:
2386         * inspector/front-end/View.js:
2387         * inspector/front-end/heapProfiler.css:
2388         * inspector/front-end/inspector.css:
2389         * inspector/front-end/inspector.js:
2390         * inspector/front-end/inspectorSyntaxHighlight.css:
2391         * inspector/front-end/networkPanel.css:
2392         * inspector/front-end/treeoutline.js:
2393         * inspector/front-end/utilities.js:
2394
2395 2011-09-07  Andrey Kosyakov  <caseq@chromium.org>
2396
2397         Web Inspector: trying to scroll mouse wheel when in TextViewer's gutter pane causes EventException::DISPATCH_REQUEST_ERR
2398         https://bugs.webkit.org/show_bug.cgi?id=67715
2399
2400         Reviewed by Yury Semikhatsky.
2401
2402         - avoid exception on attempt to dispatch an event that is being dispatched by cloning the event.
2403
2404         * inspector/front-end/TextViewer.js:
2405         (WebInspector.TextViewer.forwardWheelEvent):
2406         (WebInspector.TextViewer):
2407
2408 2011-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
2409
2410         Unreviewed, rolling out r94674 and r94689.
2411         http://trac.webkit.org/changeset/94674
2412         http://trac.webkit.org/changeset/94689
2413         https://bugs.webkit.org/show_bug.cgi?id=67754
2414
2415         Broke inspector/debugger/script-formatter.html (Requested by
2416         rniwa on #webkit).
2417
2418         * inspector/front-end/DebuggerPresentationModel.js:
2419         (WebInspector.DebuggerPresentationModel):
2420         (WebInspector.DebuggerPresentationModel.prototype.addSourceMappingListener):
2421         (WebInspector.DebuggerPresentationModel.prototype.removeSourceMappingListener):
2422         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
2423         (WebInspector.DebuggerPresentationModel.prototype._addScript):
2424         (WebInspector.DebuggerPresentationModel.prototype._sourceMappingUpdated):
2425         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
2426         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
2427         (WebInspector.DebuggerPresentationModel.prototype._createRawSourceCodeId):
2428         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
2429         * inspector/front-end/ScriptsPanel.js:
2430         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
2431         * inspector/front-end/SourceFile.js:
2432         (WebInspector.RawSourceCode):
2433         (WebInspector.RawSourceCode.prototype.get uiSourceCode):
2434         (WebInspector.RawSourceCode.prototype.get rawSourceCode):
2435         (WebInspector.RawSourceCode.prototype.rawLocationToUILocation):
2436         (WebInspector.RawSourceCode.prototype.requestContent):
2437         (WebInspector.RawSourceCode.prototype._saveSourceMapping):
2438
2439 2011-09-07  Julien Chaffraix  <jchaffraix@webkit.org>
2440
2441         offsetFromRoot optimization is disabled after r93837
2442         https://bugs.webkit.org/show_bug.cgi?id=67677
2443
2444         Reviewed by Simon Fraser.
2445
2446         Unfortunately not covered by any test as it does not change updateLayerPosition complexity (it is still O(n^2)
2447         because of clippedOverflowRectForRepaint). However it is a noticeable slowdown on some use cases but we don't
2448         have a good test harness to cover such slowdown.
2449
2450         * rendering/RenderLayer.cpp:
2451         (WebCore::RenderLayer::updateLayerPositions): Pass offsetFromRoot as not doing so means that we miss
2452         the optimization altogether.
2453
2454         (WebCore::RenderLayer::computeRepaintRects):
2455         (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
2456         * rendering/RenderLayer.h:
2457         Renamed |cachedOffset| to |offsetFromRoot| to be consistent with our latest renaming.
2458
2459 2011-09-07  Ryosuke Niwa  <rniwa@webkit.org>
2460
2461         Windows build fix after r94737.
2462
2463         * rendering/RenderBlock.cpp:
2464         (WebCore::RenderBlock::adjustRectForColumns):
2465
2466 2011-09-07  Dan Bernstein  <mitz@apple.com>
2467
2468         Removed hyphenation function implementations for an usupported build configuration.
2469
2470         Reviewed by Sam Weinig.
2471
2472         * platform/text/cf/HyphenationCF.cpp:
2473
2474 2011-09-07  David Hyatt  <hyatt@apple.com>
2475
2476         https://bugs.webkit.org/show_bug.cgi?id=67739
2477
2478         adjustRectForColumns is O(# of columns) when it can be O(1). Fix the slow performance of this
2479         function by removing the loop and just computing the start and end column for a repaint rect
2480         and uniting everything in between.
2481
2482         Reviewed by Dan Bernstein.
2483
2484         * rendering/RenderBlock.cpp:
2485         (WebCore::RenderBlock::adjustRectForColumns):
2486
2487 2011-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
2488
2489         Unreviewed, rolling out r94714 and r94723.
2490         http://trac.webkit.org/changeset/94714
2491         http://trac.webkit.org/changeset/94723
2492         https://bugs.webkit.org/show_bug.cgi?id=67746
2493
2494         breaks gtk-linux tests with assertion failure (Requested by
2495         thorton on #webkit).
2496
2497         * platform/graphics/GraphicsContext.cpp:
2498         (WebCore::GraphicsContext::GraphicsContext):
2499         (WebCore::GraphicsContext::~GraphicsContext):
2500         * platform/graphics/GraphicsContext.h:
2501         (WebCore::GraphicsContext::inTransparencyLayer):
2502         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2503         (WebCore::GraphicsContext::beginTransparencyLayer):
2504         (WebCore::GraphicsContext::endTransparencyLayer):
2505         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
2506         (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
2507         (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
2508         * platform/graphics/cg/GraphicsContextCG.cpp:
2509         (WebCore::GraphicsContext::beginTransparencyLayer):
2510         (WebCore::GraphicsContext::endTransparencyLayer):
2511         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
2512         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
2513         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
2514         (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
2515         (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
2516         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
2517         (WebCore::GraphicsContext::beginTransparencyLayer):
2518         (WebCore::GraphicsContext::endTransparencyLayer):
2519         * platform/graphics/mac/FontMac.mm:
2520         (WebCore::Font::drawGlyphs):
2521         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
2522         (WebCore::GraphicsContext::beginTransparencyLayer):
2523         (WebCore::GraphicsContext::endTransparencyLayer):
2524         * platform/graphics/qt/GraphicsContextQt.cpp:
2525         (WebCore::GraphicsContext::inTransparencyLayer):
2526         (WebCore::GraphicsContext::beginTransparencyLayer):
2527         (WebCore::GraphicsContext::endTransparencyLayer):
2528         * platform/graphics/skia/GraphicsContextSkia.cpp:
2529         (WebCore::GraphicsContext::beginTransparencyLayer):
2530         (WebCore::GraphicsContext::endTransparencyLayer):
2531         * platform/graphics/win/FontCGWin.cpp:
2532         (WebCore::drawGDIGlyphs):
2533         * platform/graphics/win/GraphicsContextCGWin.cpp:
2534         (WebCore::GraphicsContext::releaseWindowsContext):
2535         * platform/graphics/win/GraphicsContextCairoWin.cpp:
2536         (WebCore::GraphicsContext::releaseWindowsContext):
2537         * platform/graphics/win/GraphicsContextWin.cpp:
2538         (WebCore::GraphicsContext::inTransparencyLayer):
2539         (WebCore::GraphicsContext::getWindowsContext):
2540         * platform/graphics/wince/GraphicsContextWinCE.cpp:
2541         (WebCore::GraphicsContext::beginTransparencyLayer):
2542         (WebCore::GraphicsContext::endTransparencyLayer):
2543         * platform/graphics/wx/GraphicsContextWx.cpp:
2544         (WebCore::GraphicsContext::beginTransparencyLayer):
2545         (WebCore::GraphicsContext::endTransparencyLayer):
2546         * platform/win/ScrollbarThemeWin.cpp:
2547         (WebCore::ScrollbarThemeWin::paintTrackPiece):
2548         (WebCore::ScrollbarThemeWin::paintButton):
2549         (WebCore::ScrollbarThemeWin::paintThumb):
2550         * plugins/win/PluginViewWin.cpp:
2551         (WebCore::PluginView::paint):
2552         * rendering/RenderThemeWin.cpp:
2553         (WebCore::drawControl):
2554
2555 2011-09-07  Chris Fleizach  <cfleizach@apple.com>
2556
2557         Changes to aria-hidden don't change VO navigation
2558         https://bugs.webkit.org/show_bug.cgi?id=67722
2559
2560         Reviewed by Darin Adler.
2561
2562         When altering aria-hidden, WebCore needs to update the children caches of 
2563         affected elements. However, for elements that were children, but ignored, their
2564         caches did not get updated, and stale information would be propagated.
2565
2566         The fix is to always clearChildren() when a parent is asking for children. This 
2567         ensures information is always up to date when the parent itself is asking for new data.
2568
2569         Test: accessibility/aria-hidden-updates-alldescendants.html
2570
2571         * accessibility/AccessibilityObject.h:
2572         * accessibility/AccessibilityRenderObject.cpp:
2573         (WebCore::AccessibilityRenderObject::ariaIsHidden):
2574         (WebCore::AccessibilityRenderObject::childrenChanged):
2575         (WebCore::AccessibilityRenderObject::addChildren):
2576
2577 2011-09-07  Tim Horton  <timothy_horton@apple.com>
2578
2579         Text rendered with a simple (i.e. 0px blur) shadow inside a transparency layer has a double shadow
2580         https://bugs.webkit.org/show_bug.cgi?id=67543
2581         <rdar://problem/10070536>
2582
2583         Reviewed by Simon Fraser.
2584
2585         Generalize (begin|end)TransparencyLayer, which now forward
2586         through to (begin|end)PlatformTransparencyLayer, so that
2587         isInTransparencyLayer can exist on every platform.
2588
2589         Make use of isInTransparencyLayer in FontMac to disable
2590         "simple" shadow drawing when the text is being rendered
2591         into a transparency layer.
2592
2593         Test: svg/custom/simple-text-double-shadow.svg
2594
2595         * platform/graphics/GraphicsContext.cpp:
2596         (WebCore::GraphicsContext::GraphicsContext):
2597         (WebCore::GraphicsContext::~GraphicsContext):
2598         (WebCore::GraphicsContext::beginTransparencyLayer):
2599         (WebCore::GraphicsContext::endTransparencyLayer):
2600         (WebCore::GraphicsContext::isInTransparencyLayer):
2601         * platform/graphics/GraphicsContext.h:
2602         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2603         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2604         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2605         (WebCore::GraphicsContext::supportsTransparencyLayers):
2606         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
2607         * platform/graphics/cg/GraphicsContextCG.cpp:
2608         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2609         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2610         (WebCore::GraphicsContext::supportsTransparencyLayers):
2611         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
2612         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
2613         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
2614         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2615         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2616         (WebCore::GraphicsContext::supportsTransparencyLayers):
2617         * platform/graphics/mac/FontMac.mm:
2618         (WebCore::Font::drawGlyphs):
2619         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
2620         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2621         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2622         (WebCore::GraphicsContext::supportsTransparencyLayers):
2623         * platform/graphics/qt/GraphicsContextQt.cpp:
2624         (WebCore::GraphicsContext::isInTransparencyLayer):
2625         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2626         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2627         (WebCore::GraphicsContext::supportsTransparencyLayers):
2628         * platform/graphics/skia/GraphicsContextSkia.cpp:
2629         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2630         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2631         (WebCore::GraphicsContext::supportsTransparencyLayers):
2632         * platform/graphics/win/FontCGWin.cpp:
2633         (WebCore::drawGDIGlyphs):
2634         * platform/graphics/win/GraphicsContextCGWin.cpp:
2635         (WebCore::GraphicsContext::releaseWindowsContext):
2636         * platform/graphics/win/GraphicsContextCairoWin.cpp:
2637         (WebCore::GraphicsContext::releaseWindowsContext):
2638         * platform/graphics/win/GraphicsContextWin.cpp:
2639         (WebCore::GraphicsContext::getWindowsContext):
2640         * platform/graphics/wince/GraphicsContextWinCE.cpp:
2641         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2642         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2643         (WebCore::GraphicsContext::supportsTransparencyLayers):
2644         * platform/graphics/wx/GraphicsContextWx.cpp:
2645         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2646         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2647         (WebCore::GraphicsContext::supportsTransparencyLayers):
2648         * platform/win/ScrollbarThemeWin.cpp:
2649         * plugins/win/PluginViewWin.cpp:
2650         * rendering/RenderThemeWin.cpp:
2651
2652 2011-09-07  Dan Bernstein  <mitz@apple.com>
2653
2654         <rdar://problem/8881922> Support the hyphenate-limit-lines property
2655         https://bugs.webkit.org/show_bug.cgi?id=67730
2656
2657         Reviewed by Dave Hyatt.
2658
2659         Tests: fast/css/parsing-hyphenate-limit-lines.html
2660                fast/text/hyphenate-limit-lines.html
2661
2662         * css/CSSComputedStyleDeclaration.cpp:
2663         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Added hyphenate-limit-lines.
2664         * css/CSSParser.cpp:
2665         (WebCore::CSSParser::parseValue): Ditto. Valid values are non-negative integers and the keyword
2666         "no-limit".
2667         * css/CSSPropertyNames.in: Added -webkit-hyphenate-limit-lines.
2668         * css/CSSStyleSelector.cpp:
2669         (WebCore::CSSStyleSelector::applyProperty): Added hyphenate-limit-lines.
2670         * css/CSSValueKeywords.in: Added the "no-limit" value keyword.
2671         * rendering/RenderBlock.h:
2672         * rendering/RenderBlockLineLayout.cpp:
2673         (WebCore::RenderBlock::layoutRunsAndFloats): Count the number of consecutive hyphenated lines
2674         before the start line and pass it to layoutRunsAndFloatsInRange().
2675         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Keep track of the number of consecutive
2676         hyphenated lines before the current line and pass it to LineBreaker::nextLineBreak().
2677         (WebCore::tryHyphenating): Added parameters for the number of consecutive hyphenated lines before
2678         the current line and the limit on consecutive hyphenated lines, and an early return if the limit
2679         has been reached.
2680         (WebCore::RenderBlock::LineBreaker::nextLineBreak): Added a parameter for the number of consecutive
2681         hyphenated lines before the current line, which is passed through to tryHyphenating, along with
2682         the value of hyphenate-limit-lines.
2683         * rendering/RootInlineBox.cpp:
2684         (WebCore::RootInlineBox::isHyphenated): Added. Returns true if the line was hyphenated.
2685         * rendering/RootInlineBox.h:
2686         * rendering/style/RenderStyle.h:
2687         (WebCore::InheritedFlags::hyphenationLimitLines): Added this getter.
2688         (WebCore::InheritedFlags::setHyphenationLimitLines): Added this setter.
2689         (WebCore::InheritedFlags::initialHyphenationLimitLines): Added. The initial value is -1,
2690         corresponding to "no-limit".
2691         * rendering/style/StyleRareInheritedData.cpp:
2692         (WebCore::StyleRareInheritedData::StyleRareInheritedData): Initialize new member variable.
2693         (WebCore::StyleRareInheritedData::operator==): Compare new member variable.
2694         * rendering/style/StyleRareInheritedData.h:
2695
2696 2011-09-02  Ojan Vafai  <ojan@chromium.org>
2697
2698         split overrideSize into overrideHeight and overrideWidth
2699         https://bugs.webkit.org/show_bug.cgi?id=67550
2700
2701         Reviewed by Sam Weinig.
2702
2703         All uses of overrideSize only set one of the width or the height.
2704         This change removes a bool from RenderObject and removes some
2705         flexbox specific logic from RenderBox.
2706
2707         The only downside is that we have two global maps where we used
2708         to have one.
2709
2710         No functional changes so existing tests are sufficient.
2711
2712         * rendering/RenderBox.cpp:
2713         (WebCore::RenderBox::hasOverrideHeight):
2714         (WebCore::RenderBox::hasOverrideWidth):
2715         (WebCore::RenderBox::setOverrideHeight):
2716         (WebCore::RenderBox::setOverrideWidth):
2717         (WebCore::RenderBox::clearOverrideSize):
2718         (WebCore::RenderBox::overrideWidth):
2719         (WebCore::RenderBox::overrideHeight):
2720         (WebCore::RenderBox::computeLogicalWidth):
2721         (WebCore::RenderBox::computeLogicalHeight):
2722         (WebCore::RenderBox::computePercentageLogicalHeight):
2723         * rendering/RenderBox.h:
2724         * rendering/RenderDeprecatedFlexibleBox.cpp:
2725         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
2726         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
2727         (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
2728         * rendering/RenderFlexibleBox.cpp:
2729         (WebCore::RenderFlexibleBox::layoutAndPlaceChildrenHorizontal):
2730         * rendering/RenderObject.cpp:
2731         (WebCore::RenderObject::RenderObject):
2732         * rendering/RenderObject.h:
2733         * rendering/RenderTableCell.cpp:
2734         (WebCore::RenderTableCell::setOverrideHeightFromRowHeight):
2735         * rendering/RenderTableCell.h:
2736         * rendering/RenderTableSection.cpp:
2737         (WebCore::RenderTableSection::calcRowLogicalHeight):
2738         (WebCore::RenderTableSection::layoutRows):
2739
2740 2011-09-07  Alexei Svitkine  <asvitkine@chromium.org>
2741
2742         Add test infrastructure to test rubber-banding overhang drawing along with layout tests for existing Chromium Mac overhang drawing in the non-gpu path.
2743         https://bugs.webkit.org/show_bug.cgi?id=67511
2744
2745         Reviewed by Dimitri Glazkov.
2746
2747         Tests: platform/chromium-mac/rubberbanding/overhang-e.html
2748                platform/chromium-mac/rubberbanding/overhang-n.html
2749                platform/chromium-mac/rubberbanding/overhang-ne.html
2750                platform/chromium-mac/rubberbanding/overhang-nw.html
2751                platform/chromium-mac/rubberbanding/overhang-s.html
2752                platform/chromium-mac/rubberbanding/overhang-se.html
2753                platform/chromium-mac/rubberbanding/overhang-sw.html
2754                platform/chromium-mac/rubberbanding/overhang-w.html
2755
2756         * WebCore.exp.in:
2757         * platform/ScrollableArea.h:
2758         * testing/Internals.cpp:
2759         (WebCore::Internals::setScrollViewPosition):
2760         * testing/Internals.h:
2761         * testing/Internals.idl:
2762
2763 2011-09-07  David Reveman  <reveman@chromium.org>
2764
2765         [Chromium] Render surface anti-aliasing.
2766         https://bugs.webkit.org/show_bug.cgi?id=66437
2767
2768         Reviewed by James Robinson.
2769
2770         Add CCLayerQuad class and CCLayerQuad::Edge subclass to allow
2771         edge computations to be shared between tiled layers and render
2772         surfaces. Move isCCW utility function to FloatQuad class and
2773         add to2dTransform method to TransformationMatrix class. Add
2774         necessary anti-aliasing shaders for render surfaces and use them
2775         to avoid aliased edges.
2776
2777         Tests: compositing/reflections/nested-reflection-transformed.html (existing)
2778
2779         * WebCore.gypi:
2780         * platform/graphics/FloatQuad.cpp:
2781         (WebCore::FloatQuad::isCounterclockwise):
2782         * platform/graphics/FloatQuad.h:
2783         * platform/graphics/chromium/LayerChromium.cpp:
2784         (WebCore::LayerChromium::drawTexturedQuad):
2785         * platform/graphics/chromium/LayerChromium.h:
2786         * platform/graphics/chromium/LayerRendererChromium.cpp:
2787         (WebCore::LayerRendererChromium::LayerRendererChromium):
2788         (WebCore::LayerRendererChromium::headsUpDisplayProgram):
2789         (WebCore::LayerRendererChromium::renderSurfaceProgram):
2790         (WebCore::LayerRendererChromium::renderSurfaceProgramAA):
2791         (WebCore::LayerRendererChromium::renderSurfaceMaskProgram):
2792         (WebCore::LayerRendererChromium::renderSurfaceMaskProgramAA):
2793         (WebCore::LayerRendererChromium::tilerProgramSwizzle):
2794         (WebCore::LayerRendererChromium::canvasLayerProgram):
2795         (WebCore::LayerRendererChromium::pluginLayerProgram):
2796         (WebCore::LayerRendererChromium::videoLayerRGBAProgram):
2797         (WebCore::LayerRendererChromium::videoLayerYUVProgram):
2798         (WebCore::LayerRendererChromium::cleanupSharedObjects):
2799         * platform/graphics/chromium/LayerRendererChromium.h:
2800         (WebCore::LayerRendererChromium::sharedGeometryQuad):
2801         * platform/graphics/chromium/ShaderChromium.cpp:
2802         (WebCore::VertexShaderQuad::VertexShaderQuad):
2803         (WebCore::VertexShaderQuad::init):
2804         (WebCore::VertexShaderQuad::getShaderString):
2805         (WebCore::FragmentShaderRGBATexAlphaAA::FragmentShaderRGBATexAlphaAA):
2806         (WebCore::FragmentShaderRGBATexAlphaAA::init):
2807         (WebCore::FragmentShaderRGBATexAlphaAA::getShaderString):
2808         (WebCore::FragmentTexClampAlphaAABinding::FragmentTexClampAlphaAABinding):
2809         (WebCore::FragmentTexClampAlphaAABinding::init):
2810         (WebCore::FragmentShaderRGBATexClampAlphaAA::getShaderString):
2811         (WebCore::FragmentShaderRGBATexClampSwizzleAlphaAA::getShaderString):
2812         (WebCore::FragmentShaderRGBATexAlphaMaskAA::FragmentShaderRGBATexAlphaMaskAA):
2813         (WebCore::FragmentShaderRGBATexAlphaMaskAA::init):
2814         (WebCore::FragmentShaderRGBATexAlphaMaskAA::getShaderString):
2815         * platform/graphics/chromium/ShaderChromium.h:
2816         (WebCore::VertexShaderQuad::matrixLocation):
2817         (WebCore::VertexShaderQuad::pointLocation):
2818         (WebCore::FragmentShaderRGBATexAlphaAA::alphaLocation):
2819         (WebCore::FragmentShaderRGBATexAlphaAA::samplerLocation):
2820         (WebCore::FragmentShaderRGBATexAlphaAA::edgeLocation):
2821         (WebCore::FragmentShaderRGBATexAlphaMaskAA::alphaLocation):
2822         (WebCore::FragmentShaderRGBATexAlphaMaskAA::samplerLocation):
2823         (WebCore::FragmentShaderRGBATexAlphaMaskAA::maskSamplerLocation):
2824         (WebCore::FragmentShaderRGBATexAlphaMaskAA::edgeLocation):
2825         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
2826         (WebCore::CCCanvasLayerImpl::draw):
2827         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2828         (WebCore::CCHeadsUpDisplay::draw):
2829         * platform/graphics/chromium/cc/CCLayerQuad.cpp: Added.
2830         (WebCore::CCLayerQuad::Edge::Edge):
2831         (WebCore::CCLayerQuad::CCLayerQuad):
2832         (WebCore::CCLayerQuad::floatQuad):
2833         (WebCore::CCLayerQuad::toFloatArray):
2834         * platform/graphics/chromium/cc/CCLayerQuad.h: Added.
2835         (WebCore::CCLayerQuad::Edge::Edge):
2836         (WebCore::CCLayerQuad::Edge::x):
2837         (WebCore::CCLayerQuad::Edge::y):
2838         (WebCore::CCLayerQuad::Edge::z):
2839         (WebCore::CCLayerQuad::Edge::setX):
2840         (WebCore::CCLayerQuad::Edge::setY):
2841         (WebCore::CCLayerQuad::Edge::setZ):
2842         (WebCore::CCLayerQuad::Edge::set):
2843         (WebCore::CCLayerQuad::Edge::moveX):
2844         (WebCore::CCLayerQuad::Edge::moveY):
2845         (WebCore::CCLayerQuad::Edge::moveZ):
2846         (WebCore::CCLayerQuad::Edge::move):
2847         (WebCore::CCLayerQuad::Edge::scaleX):
2848         (WebCore::CCLayerQuad::Edge::scaleY):
2849         (WebCore::CCLayerQuad::Edge::scaleZ):
2850         (WebCore::CCLayerQuad::Edge::scale):
2851         (WebCore::CCLayerQuad::Edge::intersect):
2852         (WebCore::CCLayerQuad::CCLayerQuad):
2853         (WebCore::CCLayerQuad::left):
2854         (WebCore::CCLayerQuad::top):
2855         (WebCore::CCLayerQuad::right):
2856         (WebCore::CCLayerQuad::bottom):
2857         (WebCore::CCLayerQuad::inflateX):
2858         (WebCore::CCLayerQuad::inflateY):
2859         (WebCore::CCLayerQuad::inflate):
2860         (WebCore::CCLayerQuad::inflateAntiAliasingDistance):
2861         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
2862         (WebCore::CCPluginLayerImpl::draw):
2863         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
2864         (WebCore::CCRenderSurface::draw):
2865         (WebCore::CCRenderSurface::drawLayer):
2866         (WebCore::CCRenderSurface::drawSurface):
2867         * platform/graphics/chromium/cc/CCRenderSurface.h:
2868         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2869         (WebCore::CCTiledLayerImpl::draw):
2870         (WebCore::CCTiledLayerImpl::drawTiles):
2871         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2872         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2873         (WebCore::CCVideoLayerImpl::drawYUV):
2874         (WebCore::CCVideoLayerImpl::drawRGBA):
2875         * platform/graphics/transforms/TransformationMatrix.cpp:
2876         (WebCore::TransformationMatrix::to2dTransform):
2877         * platform/graphics/transforms/TransformationMatrix.h:
2878
2879 2011-09-06  Oliver Hunt  <oliver@apple.com>
2880
2881         Remove JSObjectWithGlobalObject
2882         https://bugs.webkit.org/show_bug.cgi?id=67689
2883
2884         Reviewed by Geoff Garen.
2885
2886         Remove use of anonymous storage and JSObjectWithGlobalObject for
2887         accessing a JSObject's global object now that they're available
2888         on the object's structure.
2889
2890         * bindings/js/JSDOMWindowShell.cpp:
2891         (WebCore::JSDOMWindowShell::setWindow):
2892         * bindings/js/JSDOMWrapper.h:
2893         (WebCore::JSDOMWrapper::globalObject):
2894         (WebCore::JSDOMWrapper::JSDOMWrapper):
2895         * bindings/js/WorkerScriptController.cpp:
2896         (WebCore::WorkerScriptController::initScript):
2897         * bindings/scripts/CodeGeneratorJS.pm:
2898         (GenerateHeader):
2899         (GenerateImplementation):
2900         * bridge/objc/objc_runtime.h:
2901         * bridge/objc/objc_runtime.mm:
2902         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
2903         (JSC::Bindings::ObjcFallbackObjectImp::finishCreation):
2904         * bridge/runtime_object.cpp:
2905         (JSC::Bindings::RuntimeObject::RuntimeObject):
2906         (JSC::Bindings::RuntimeObject::finishCreation):
2907         * bridge/runtime_object.h:
2908
2909 2011-09-07  Ryosuke Niwa  <rniwa@webkit.org>
2910
2911         Mac build fix after r94694.
2912
2913         * WebCore.xcodeproj/project.pbxproj:
2914
2915 2011-09-07  Tim Horton  <timothy_horton@apple.com>
2916
2917         FELighting is using width instead of height to determine skip for parallel(n>2) case
2918         https://bugs.webkit.org/show_bug.cgi?id=67719
2919         <rdar://problem/10086178>
2920
2921         Reviewed by Dirk Schulze.
2922
2923         No new tests, because the bug only exhibits under conditions which are currently
2924         impossible by default (using more than 2 cores) on some platforms.
2925
2926         * platform/graphics/filters/FELighting.cpp:
2927         (WebCore::FELighting::platformApplyGeneric):
2928
2929 2011-09-07  W. James MacLean  <wjmaclean@chromium.org>
2930
2931         Eliminate motion jitter in animated, blurred SVG image
2932         https://bugs.webkit.org/show_bug.cgi?id=67503
2933
2934         Fixes filter shear-free transform applied to SVG images.
2935
2936         In applyResource() the shearFreeAbsoluteTransform is applied to the drawing region,
2937         which is based on the object bounding box (which doesn't move). For a rotation
2938         around the centre of the box, this should really just be the identity matrix,
2939         since the BB should neither change size nor location. So really, we're just interested
2940         in the scale change of the BB here, and not in moving it.
2941
2942         This impacts how slices are extracted, and affects the {x|y}Mid and {x|y}Max extractions
2943         for vertical and horizontal slices, so the test verifies these.
2944
2945         Reviewed by Dirk Schulze.
2946
2947         Test: svg/W3C-SVG-1.1-SE/filters-image-05-f.svg
2948
2949         * rendering/svg/RenderSVGResourceFilter.cpp:
2950         (WebCore::RenderSVGResourceFilter::applyResource):
2951
2952 2011-09-03  Robert Hogan  <robert@webkit.org>
2953
2954         Elements with position:absolute don't move to correct position after images load
2955         https://bugs.webkit.org/show_bug.cgi?id=54611
2956
2957         Reviewed by Simon Fraser.
2958
2959         Test: fast/block/positioning/absolute-layout-after-image-load.html
2960               fast/block/positioning/positioned-float-layout-after-image-load.html
2961
2962         In the test the 'label' block is an absolutely positioned child of an inline flow. So during layout, 
2963         this RenderBlock::layoutPositionedObjects fails to dirty it for rendering because it requires 
2964         the parent to be a BlockFlow. The code to do this was introduced in http://trac.webkit.org/changeset/8284. 
2965         There doesn't seem to be a good reason for requiring a BlockFlow, so remove the check. Do the same
2966         for positioned floats in RenderBlock::positionedFloatsNeedRelayout(), although currently layoutPositionedObjects()
2967         takes care of it this at least ensures no regression in future.
2968
2969         Note: Although the issue is encountered only on first load without a fragment identifier, it 
2970         happens reliably when you include the fragment identifier in the url (#Footnote_1). This is so 
2971         because scrolling to the fragment always happens before the image has loaded, rendering the page 
2972         and clearing the initial dirty bits in the positioned element's renderer. When the image finally 
2973         loads in this scenario, the positioned element is otherwise clean and relies on the above code to get 
2974         re-rendered.
2975
2976         * rendering/RenderBlock.cpp:
2977         (WebCore::RenderBlock::layoutPositionedObjects): remove the check for r->parent()->isBlockFlow() when 
2978                                                          deciding whether to mark children for layout
2979         (WebCore::RenderBlock::positionedFloatsNeedRelayout): ditto
2980
2981 2011-09-07  Anna Cavender  <annacc@chromium.org>
2982
2983         Moving platform/track to html/track to avoid layering violation.
2984         https://bugs.webkit.org/show_bug.cgi?id=67680
2985
2986         Reviewed by Adam Barth.
2987
2988         No new tests. No new functionality.
2989
2990         * CMakeLists.txt:
2991         * GNUmakefile.am:
2992         * GNUmakefile.list.am:
2993         * WebCore.gyp/WebCore.gyp:
2994         * WebCore.gypi:
2995         * WebCore.pri:
2996         * WebCore.pro:
2997         * html/track/CueParser.cpp: Renamed from Source/WebCore/platform/track/CueParser.cpp.
2998         * html/track/CueParser.h: Renamed from Source/WebCore/platform/track/CueParser.h.
2999         * html/track/CueParserPrivate.h: Renamed from Source/WebCore/platform/track/CueParserPrivate.h.
3000         * html/track/WebVTTParser.cpp: Renamed from Source/WebCore/platform/track/WebVTTParser.cpp.
3001         * html/track/WebVTTParser.h: Renamed from Source/WebCore/platform/track/WebVTTParser.h.
3002         * html/track/WebVTTToken.h: Renamed from Source/WebCore/platform/track/WebVTTToken.h.
3003         * html/track/WebVTTTokenizer.cpp: Renamed from Source/WebCore/platform/track/WebVTTTokenizer.cpp.
3004         * html/track/WebVTTTokenizer.h: Renamed from Source/WebCore/platform/track/WebVTTTokenizer.h.
3005
3006 2011-09-07  David Hyatt  <hyatt@apple.com>
3007
3008         https://bugs.webkit.org/show_bug.cgi?id=67286
3009
3010         REGRESSION: css2.1/t090204-display-change-01-b-ao.html fails after r94084.
3011
3012         Make sure that the trailing floats line box explicitly sets the line top with leading and line bottom with
3013         leading to just be the block height.
3014
3015         Reviewed by Dan Bernstein.
3016
3017         * rendering/RenderBlockLineLayout.cpp:
3018         (WebCore::RenderBlock::linkToEndLineIfNeeded):
3019
3020 2011-09-06  Abhishek Arya  <inferno@chromium.org>
3021
3022         Null owningRenderer crash in RenderScrollbar::updateScrollbarParts.
3023         https://bugs.webkit.org/show_bug.cgi?id=67669
3024
3025         Reviewed by James Robinson.
3026
3027         Owning renderer can be cleared for custom scrollbars in clearOwningRenderer()
3028         call. We need a null check in updateScrollbarParts, so that we do not crash.
3029
3030         No tests since issue seen in crash reports only and I donot know a way to
3031         reproduce.
3032
3033         * rendering/RenderScrollbar.cpp:
3034         (WebCore::RenderScrollbar::updateScrollbarParts):
3035
3036 2011-09-05  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3037
3038         [Qt][WK2] Make TiledDrawingArea request tiles only in the direction the viewport is panned to.
3039         https://bugs.webkit.org/show_bug.cgi?id=67606
3040
3041         Reviewed by Noam Rosenthal.
3042
3043         TiledBackingStore previously used different values for horizontal and vertial multiplication
3044         to calculate the cover area.
3045         This patch replaces this mechanism, used to give a bigger panning range to vertical panning,
3046         with the possibility to use the motion vector of the viewport to request tiles ahead instead.
3047         This allows economies on rendering resources as tiles won't be rendered beside the trajectory
3048         of the viewport.
3049
3050         * platform/graphics/TiledBackingStore.cpp:
3051         (WebCore::TiledBackingStore::TiledBackingStore):
3052         (WebCore::TiledBackingStore::setKeepAndCoverAreaMultipliers):
3053         (WebCore::TiledBackingStore::setCoverAreaFocusVector):
3054         (WebCore::TiledBackingStore::createTiles):
3055         (WebCore::TiledBackingStore::calculateKeepRect):
3056         (WebCore::TiledBackingStore::calculateCoverRect):
3057         * platform/graphics/TiledBackingStore.h:
3058         (WebCore::TiledBackingStore::getKeepAndCoverAreaMultipliers):
3059
3060 2011-09-01  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3061
3062         [Qt] TiledBackingStore: Import the resizeEdgeTiles logic from TiledDrawindAreaProxy.
3063         https://bugs.webkit.org/show_bug.cgi?id=67416
3064
3065         Reviewed by Kenneth Rohde Christiansen.
3066
3067         Original code by Antti Koivisto.
3068         With the current code, when the page is layouted during load, edge tiles will
3069         get removed instead of continuing to show their front buffer while the tile
3070         is being rendered for the new size.
3071
3072         * platform/graphics/Tile.h:
3073         * platform/graphics/TiledBackingStore.cpp:
3074         (WebCore::TiledBackingStore::createTiles):
3075         (WebCore::TiledBackingStore::resizeEdgeTiles):
3076         * platform/graphics/TiledBackingStore.h:
3077         * platform/graphics/qt/TileQt.cpp:
3078         (WebCore::TileQt::resize):
3079         * platform/graphics/qt/TileQt.h:
3080
3081 2011-09-07  Tim Horton  <timothy_horton@apple.com>
3082
3083         Don't round-trip through TransformationMatrix in SVGImageBufferTools::clearAffineTransform2DRotation
3084         https://bugs.webkit.org/show_bug.cgi?id=67242
3085         <rdar://problem/10069770>
3086
3087         Reviewed by Dirk Schulze.
3088
3089         No new tests, minor performance improvement.
3090
3091         * platform/graphics/transforms/AffineTransform.cpp:
3092         (WebCore::AffineTransform::blend):
3093         (WebCore::AffineTransform::decompose):
3094         (WebCore::AffineTransform::recompose):
3095         * platform/graphics/transforms/AffineTransform.h:
3096         * rendering/svg/SVGImageBufferTools.cpp:
3097         (WebCore::SVGImageBufferTools::clear2DRotation):
3098
3099 2011-09-06  Pavel Podivilov  <podivilov@chromium.org>
3100
3101         Web Inspector: do not re-create RawSourceCode when toggling pretty-print mode.
3102         https://bugs.webkit.org/show_bug.cgi?id=67647
3103
3104         1) Implement RawSourceCode.setFormatted that allows toggling pretty-print mode on the fly without resetting everything.
3105         2) Add RawSourceCode unit tests.
3106         3) Remove source mapping listeners and console messages from presentation model (they live in RawSourceCode now).
3107
3108         Reviewed by Yury Semikhatsky.
3109
3110         Test: inspector/debugger/raw-source-code.html
3111
3112         * inspector/front-end/DebuggerPresentationModel.js:
3113         (WebInspector.DebuggerPresentationModel):
3114         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
3115         (WebInspector.DebuggerPresentationModel.prototype._addScript):
3116         (WebInspector.DebuggerPresentationModel.prototype._sourceMappingUpdated):
3117         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
3118         (WebInspector.DebuggerPresentationModel.prototype._createRawSourceCodeId):
3119         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
3120         * inspector/front-end/ScriptsPanel.js:
3121         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
3122         * inspector/front-end/SourceFile.js:
3123         (WebInspector.RawSourceCode):
3124         (WebInspector.RawSourceCode.prototype.get uiSourceCode):
3125         (WebInspector.RawSourceCode.prototype.setFormatted):
3126         (WebInspector.RawSourceCode.prototype.rawLocationToUILocation):
3127         (WebInspector.RawSourceCode.prototype._saveSourceMapping):
3128
3129 2011-09-07  Alexander Pavlov  <apavlov@chromium.org>
3130
3131         Web Inspector: Implement circular tabbing through the Styles sidebar pane contents
3132         https://bugs.webkit.org/show_bug.cgi?id=67127
3133
3134         Reviewed by Yury Semikhatsky.
3135
3136         * inspector/front-end/Section.js:
3137         (WebInspector.Section.prototype.get firstSibling):
3138         (WebInspector.Section.prototype.get lastSibling):
3139         * inspector/front-end/StylesSidebarPane.js:
3140         (WebInspector.StylePropertiesSection.prototype.nextEditableSibling):
3141         (WebInspector.StylePropertiesSection.prototype.previousEditableSibling):
3142         (WebInspector.StylePropertiesSection.prototype.startEditingSelector):
3143         (WebInspector.StylePropertiesSection.prototype._moveEditorFromSelector):
3144         (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted.successCallback):
3145         (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted):
3146         (WebInspector.StylePropertyTreeElement.prototype):
3147         (WebInspector.StylePropertyTreeElement.prototype.element.userInput.previousContent.context.moveDirection):
3148
3149 2011-09-02  Andrey Kosyakov  <caseq@chromium.org>
3150
3151         Web Inspector: [Extensions API] expose console API
3152         https://bugs.webkit.org/show_bug.cgi?id=67506
3153
3154         Reviewed by Pavel Feldman.
3155
3156         Test: inspector/extensions/extensions-console.html
3157
3158         * inspector/front-end/ConsoleMessage.js:
3159         (WebInspector.ConsoleMessage.prototype.get text):
3160         (WebInspector.ConsoleMessage.prototype.get parameters):
3161         * inspector/front-end/ExtensionAPI.js:
3162         (WebInspector.injectedExtensionAPI.InspectorExtensionAPI):
3163         (WebInspector.injectedExtensionAPI):
3164         (WebInspector.injectedExtensionAPI.Console.prototype.getMessages):
3165         (WebInspector.injectedExtensionAPI.Console.prototype.addMessage):
3166         (WebInspector.injectedExtensionAPI.Console.prototype.get MessageLevel):
3167         (WebInspector.injectedExtensionAPI.Network.dispatchRequestEvent):
3168         (WebInspector.injectedExtensionAPI.Network):
3169         (WebInspector.injectedExtensionAPI.AuditCategoryImpl.dispatchAuditEvent):
3170         (WebInspector.injectedExtensionAPI.AuditCategoryImpl):
3171         (WebInspector.injectedExtensionAPI.InspectedWindow.dispatchResourceEvent):
3172         (WebInspector.injectedExtensionAPI.InspectedWindow.dispatchResourceContentEvent):
3173         (WebInspector.injectedExtensionAPI.InspectedWindow):
3174         * inspector/front-end/ExtensionCommon.js:
3175         (WebInspector.commonExtensionSymbols):
3176         * inspector/front-end/ExtensionServer.js:
3177         (WebInspector.ExtensionServer):
3178         (WebInspector.ExtensionServer.prototype._notifyConsoleMessageAdded):
3179         (WebInspector.ExtensionServer.prototype._onGetConsoleMessages):
3180         (WebInspector.ExtensionServer.prototype._onAddConsoleMessage):
3181         (WebInspector.ExtensionServer.prototype._makeConsoleMessage):
3182         (WebInspector.ExtensionServer.prototype._makeConsoleMessage.convertParameter):
3183         (WebInspector.ExtensionServer.prototype._dispatchCallback):
3184         (WebInspector.ExtensionServer.prototype.initExtensions):
3185
3186 2011-09-05  Andrey Kosyakov  <caseq@chromium.org>
3187
3188         Web Inspector: disable popover when a mouse button is pressed
3189         https://bugs.webkit.org/show_bug.cgi?id=67610
3190
3191         Reviewed by Pavel Feldman.
3192
3193         - disable popover when a mouse button is pressed
3194         - disable popover in a SourceFrame when the source is being edited
3195
3196         * inspector/front-end/Popover.js:
3197         (WebInspector.PopoverHelper):
3198         (WebInspector.PopoverHelper.prototype._mouseUp):
3199         (WebInspector.PopoverHelper.prototype._mouseDown):
3200         (WebInspector.PopoverHelper.prototype._handleMouseAction):
3201         * inspector/front-end/SourceFrame.js:
3202         (WebInspector.SourceFrame.prototype._onHidePopover):
3203         (WebInspector.SourceFrame.prototype.doubleClick):
3204
3205 2011-09-07  Antti Koivisto  <antti@apple.com>
3206
3207         https://bugs.webkit.org/show_bug.cgi?id=67634
3208         De-virtualize styleForRenderer()
3209
3210         Reviewed by Sam Weinig.
3211         
3212         This has performance and code clarity benefits.
3213
3214         - move styleForRenderer from Node to Element
3215         - get rid of the now unnecessary NodeRenderingContext parameter
3216         - de-virtualize, add virtual customStyleForRenderer()
3217
3218         * dom/Element.cpp:
3219         (WebCore::Element::customStyleForRenderer):
3220         (WebCore::Element::styleForRenderer):
3221         (WebCore::Element::recalcStyle):
3222         * dom/Element.h:
3223         * dom/Node.cpp:
3224         * dom/Node.h:
3225         (WebCore::Node::hasCustomWillOrDidRecalcStyle):
3226         (WebCore::Node::setHasCustomWillOrDidRecalcStyle):
3227         (WebCore::Node::hasCustomStyleForRenderer):
3228         (WebCore::Node::setHasCustomStyleForRenderer):
3229         
3230             Move styleForRenderer, add customStyleForRenderer, add a bit.
3231         
3232         * dom/NodeRenderingContext.cpp:
3233         (WebCore::NodeRendererFactory::createRendererAndStyle): 
3234         
3235             Handle non-element case separately since styleForRenderer was moved from Node to Element.
3236
3237         * html/HTMLNoScriptElement.cpp:
3238         (WebCore::HTMLNoScriptElement::HTMLNoScriptElement):
3239         (WebCore::HTMLNoScriptElement::customStyleForRenderer):
3240         * html/HTMLNoScriptElement.h:
3241         
3242             Move a strange XHTMLMP special case to where it belongs.
3243
3244         * html/HTMLOptGroupElement.cpp:
3245         (WebCore::HTMLOptGroupElement::attach):
3246         * html/HTMLOptionElement.cpp:
3247         (WebCore::HTMLOptionElement::attach):
3248         * html/HTMLTitleElement.cpp:
3249         (WebCore::HTMLTitleElement::textWithDirection):
3250         * html/shadow/TextControlInnerElements.cpp:
3251         (WebCore::TextControlInnerElement::TextControlInnerElement):
3252         (WebCore::TextControlInnerElement::customStyleForRenderer):
3253         (WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
3254         (WebCore::TextControlInnerTextElement::customStyleForRenderer):
3255         * html/shadow/TextControlInnerElements.h:
3256         * rendering/svg/SVGShadowTreeElements.cpp:
3257         (WebCore::SVGShadowTreeContainerElement::customStyleForRenderer):
3258         * rendering/svg/SVGShadowTreeElements.h:
3259         * svg/SVGElement.cpp:
3260         (WebCore::SVGElement::SVGElement):
3261         (WebCore::SVGElement::customStyleForRenderer):
3262         * svg/SVGElement.h:
3263         
3264             Adopt customStyleForRenderer().
3265
3266 2011-09-07  Ryosuke Niwa  <rniwa@webkit.org>
3267
3268         Change event is not fired for input[type=number] when the user reverts a change made by script
3269         https://bugs.webkit.org/show_bug.cgi?id=67697
3270
3271         Reviewed by Kent Tamura.
3272
3273         The bug was caused by HTMLInputElement::setValue not calling setTextAsOfLastFormControlChangeEvent
3274         for text fields other than type=text.
3275
3276         Also fixed a that stepUpFromRenderer does not call setTextAsOfLastFormControlChangeEvent at appropriate
3277         timing due to setValueAsNumber always passing sendChangeEvent=false to setValue by propagating values
3278         through setValueAsNumber and applyStep. This refactoring allows us to remove calls to dispatch* in
3279         stepUpFromRenderer because they're now called in setValueAsNumber or applyStep.
3280
3281         Test: fast/forms/number-input-changeevent.html
3282
3283         * html/BaseDateAndTimeInputType.cpp:
3284         (WebCore::BaseDateAndTimeInputType::setValueAsNumber):
3285         * html/BaseDateAndTimeInputType.h:
3286         * html/HTMLInputElement.cpp:
3287         (WebCore::HTMLInputElement::applyStep):
3288         (WebCore::HTMLInputElement::stepUp):
3289         (WebCore::HTMLInputElement::stepDown):
3290         (WebCore::HTMLInputElement::setValue):
3291         (WebCore::HTMLInputElement::setValueAsNumber):
3292         (WebCore::HTMLInputElement::stepUpFromRenderer):
3293         * html/HTMLInputElement.h:
3294         * html/InputType.cpp:
3295         (WebCore::InputType::setValueAsNumber):
3296         * html/InputType.h:
3297         * html/NumberInputType.cpp:
3298         (WebCore::NumberInputType::setValueAsNumber):
3299         * html/NumberInputType.h:
3300         * html/RangeInputType.cpp:
3301         (WebCore::RangeInputType::setValueAsNumber):
3302         (WebCore::RangeInputType::handleKeydownEvent):
3303         * html/RangeInputType.h:
3304
3305 2011-09-07  Antti Koivisto  <antti@apple.com>
3306
3307         Try to fix Qt build by moving the Qt specific include (which is not really allowed here!).
3308
3309         Not reviewed.
3310
3311         * css/CSSStyleSelector.cpp:
3312         * css/SelectorChecker.cpp:
3313         (WebCore::SelectorChecker::determineLinkStateSlowCase):
3314
3315 2011-09-07  Antti Koivisto  <antti@apple.com>
3316
3317         Move SelectorChecker out from CSSStyleSelector scope
3318         https://bugs.webkit.org/show_bug.cgi?id=67648
3319
3320         Reviewed by Sam Weinig.
3321
3322         - Move SelectorChecker to SelectorChecker.h/cpp
3323         - Make private functions private
3324         - Make members private, add accessors
3325         - Move m_sameOriginOnly to CSSStyleSelector as it is not used by SelectorChecker
3326
3327         * CMakeLists.txt:
3328         * GNUmakefile.list.am:
3329         * WebCore.gypi:
3330         * WebCore.pro:
3331         * WebCore.vcproj/WebCore.vcproj:
3332         * WebCore.xcodeproj/project.pbxproj:
3333         * css/CSSStyleSelector.cpp:
3334         (WebCore::CSSStyleSelector::CSSStyleSelector):
3335         (WebCore::CSSStyleSelector::matchRules):
3336         (WebCore::CSSStyleSelector::matchRulesForList):
3337         (WebCore::CSSStyleSelector::sortMatchedRules):
3338         (WebCore::CSSStyleSelector::initForStyleResolve):
3339         (WebCore::CSSStyleSelector::matchUARules):
3340         (WebCore::CSSStyleSelector::styleForElement):
3341         (WebCore::CSSStyleSelector::pseudoStyleForElement):
3342         (WebCore::CSSStyleSelector::styleForPage):
3343         (WebCore::CSSStyleSelector::adjustRenderStyle):
3344         (WebCore::CSSStyleSelector::pseudoStyleRulesForElement):
3345         (WebCore::CSSStyleSelector::checkSelector):
3346         (WebCore::RuleData::RuleData):
3347         (WebCore::CSSStyleSelector::applyProperty):
3348         (WebCore::CSSStyleSelector::checkForGenericFamilyChange):
3349         (WebCore::CSSStyleSelector::setFontSize):
3350         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
3351         * css/CSSStyleSelector.h:
3352         (WebCore::CSSStyleSelector::style):
3353         (WebCore::CSSStyleSelector::parentStyle):
3354         (WebCore::CSSStyleSelector::rootElementStyle):
3355         (WebCore::CSSStyleSelector::element):
3356         (WebCore::CSSStyleSelector::fontDescription):
3357         (WebCore::CSSStyleSelector::parentFontDescription):
3358         (WebCore::CSSStyleSelector::setFontDescription):
3359         (WebCore::CSSStyleSelector::setZoom):
3360         (WebCore::CSSStyleSelector::setEffectiveZoom):
3361         (WebCore::CSSStyleSelector::setTextSizeAdjust):
3362         (WebCore::CSSStyleSelector::setStyle):
3363         (WebCore::CSSStyleSelector::fontSelector):
3364         (WebCore::CSSStyleSelector::allVisitedStateChanged):
3365         (WebCore::CSSStyleSelector::visitedStateChanged):
3366         (WebCore::CSSStyleSelector::usesSiblingRules):
3367         (WebCore::CSSStyleSelector::usesFirstLineRules):
3368         (WebCore::CSSStyleSelector::usesBeforeAfterRules):
3369         (WebCore::CSSStyleSelector::usesLinkRules):
3370         (WebCore::CSSStyleSelector::addMatchedRule):
3371         (WebCore::CSSStyleSelector::isRightPage):
3372         (WebCore::CSSStyleSelector::ParentStackFrame::ParentStackFrame):
3373         (WebCore::CSSStyleSelector::styleNotYetAvailable):
3374         * css/SelectorChecker.cpp: Added.
3375         (WebCore::SelectorChecker::SelectorChecker):
3376         (WebCore::linkAttribute):
3377         (WebCore::SelectorChecker::determineLinkStateSlowCase):
3378         (WebCore::SelectorChecker::checkSelector):
3379         (WebCore::SelectorChecker::fastCheckSelector):
3380         (WebCore::SelectorChecker::isFastCheckableSelector):
3381         (WebCore::addLocalNameToSet):
3382         (WebCore::createHtmlCaseInsensitiveAttributesSet):
3383         (WebCore::htmlAttributeHasCaseInsensitiveValue):
3384         (WebCore::attributeQualifiedNameMatches):
3385         (WebCore::attributeValueMatches):
3386         (WebCore::anyAttributeMatches):
3387         (WebCore::SelectorChecker::checkOneSelector):
3388         (WebCore::SelectorChecker::checkScrollbarPseudoClass):
3389         (WebCore::SelectorChecker::allVisitedStateChanged):
3390         (WebCore::SelectorChecker::visitedStateChanged):
3391         * css/SelectorChecker.h: Added.
3392         (WebCore::SelectorChecker::document):
3393         (WebCore::SelectorChecker::strictParsing):
3394         (WebCore::SelectorChecker::isCollectingRulesOnly):
3395         (WebCore::SelectorChecker::setCollectingRulesOnly):
3396         (WebCore::SelectorChecker::isMatchingVisitedPseudoClass):
3397         (WebCore::SelectorChecker::setMatchingVisitedPseudoClass):
3398         (WebCore::SelectorChecker::pseudoStyle):
3399         (WebCore::SelectorChecker::setPseudoStyle):
3400         (WebCore::SelectorChecker::hasUnknownPseudoElements):
3401         (WebCore::SelectorChecker::clearHasUnknownPseudoElements):
3402         (WebCore::SelectorChecker::determineLinkState):
3403         * dom/Element.cpp:
3404         (WebCore::Element::webkitMatchesSelector):
3405         * dom/SelectorQuery.cpp:
3406         (WebCore::SelectorQuery::SelectorQuery):
3407         * dom/SelectorQuery.h:
3408
3409 2011-09-07  Dmitry Lomov  <dslomov@google.com>
3410
3411         https://bugs.webkit.org/show_bug.cgi?id=67413 
3412         [Chromium]Web Inspector: inspected page with dedicated worker crashes on refresh.
3413         This patch enforces lifetime ordering between WorkerInspectorController and WorkerScriptController.
3414
3415         Reviewed by Yury Semikhatsky.
3416
3417         * workers/WorkerContext.cpp:
3418         (WebCore::WorkerContext::clearInspector):
3419         * workers/WorkerContext.h:
3420         * workers/WorkerThread.cpp:
3421         (WebCore::WorkerThreadShutdownFinishTask::performTask):
3422
3423 2011-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
3424
3425         Unreviewed, rolling out r94627 and r94632.
3426         http://trac.webkit.org/changeset/94627
3427         http://trac.webkit.org/changeset/94632
3428         https://bugs.webkit.org/show_bug.cgi?id=67698
3429
3430         It broke tests on GTK and Qt (Requested by Ossy on #webkit).
3431
3432         * WebCore.exp.in:
3433         * bindings/js/JSDOMBinding.h:
3434         (WebCore::DOMConstructorObject::DOMConstructorObject):
3435         * bindings/js/JSDOMGlobalObject.cpp:
3436         (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
3437         * bindings/js/JSDOMGlobalObject.h:
3438         * bindings/js/JSDOMWindowShell.cpp:
3439         (WebCore::JSDOMWindowShell::create):
3440         * bindings/js/JSDOMWindowShell.h:
3441         * bindings/js/JSDOMWrapper.h:
3442         (WebCore::JSDOMWrapper::JSDOMWrapper):
3443   &nbs