<!doctype html><div><body><frameset> doesn't parse correctly
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-12-16  Adam Barth  <abarth@webkit.org>
2
3         <!doctype html><div><body><frameset> doesn't parse correctly
4         https://bugs.webkit.org/show_bug.cgi?id=74745
5
6         Reviewed by Eric Seidel.
7
8         We were missing one place the spec tells us to set this bool.
9
10         Tests: html5lib/runner.html
11
12         * html/parser/HTMLTreeBuilder.cpp:
13
14 2011-12-16  Jarred Nicholls  <jarred@sencha.com>
15
16         Support HTML documents in XHR.responseXML
17         https://bugs.webkit.org/show_bug.cgi?id=74626
18
19         Latest W3C XHR spec details for the responseXML attribute:
20         http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#the-responsexml-attribute
21         http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#document-response-entity-body
22
23         XHR.responseXML was not compliant per the latest editor's draft of the XHR spec.
24         The following compliance issue have been corrected:
25           - A responseType of "text" should disallow access to responseXML by throwing an InvalidState exception.
26           - When the error flag is toggled, responseXML should return "null" immediately and not attempt to create a new Document.
27           - responseXML should return a valid HTML document when the MIME type is "text/html", but only when the caller has
28             explicitly set responseType to "document".
29
30         Reviewed by Alexey Proskuryakov.
31
32         Tests: fast/xmlhttprequest/xmlhttprequest-responseXML-html-document-responsetype-quirks.html
33                fast/xmlhttprequest/xmlhttprequest-responseXML-html-document-responsetype-strict.html
34                fast/xmlhttprequest/xmlhttprequest-responseXML-html-no-responsetype.html
35                fast/xmlhttprequest/xmlhttprequest-responseXML-invalid-xml.html
36                fast/xmlhttprequest/xmlhttprequest-responseXML-xml-document-responsetype.html
37                fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype.html
38
39         * xml/XMLHttpRequest.cpp:
40         (WebCore::XMLHttpRequest::responseXML):
41         (WebCore::XMLHttpRequest::clearResponseBuffers):
42         * xml/XMLHttpRequest.h: Rename m_responseXML to m_responseDocument
43         (WebCore::XMLHttpRequest::optionalResponseXML):
44
45 2011-12-16  Ryosuke Niwa  <rniwa@webkit.org>
46
47         Only EditCommandComposition should implement unapply and reapply
48         https://bugs.webkit.org/show_bug.cgi?id=74490
49
50         Reviewed by Eric Seidel.
51
52         Introduce new abstract class UndoStep to replace EditCommand for EditorClient, and make EditCommand
53         private to WebCore.
54
55         * GNUmakefile.list.am:
56         * Target.pri:
57         * WebCore.exp.in:
58         * WebCore.gypi:
59         * WebCore.vcproj/WebCore.vcproj:
60         * WebCore.xcodeproj/project.pbxproj:
61         * editing/CompositeEditCommand.cpp:
62         (WebCore::EditCommandComposition::create): Takes EditAction instead of boolean for CreateLinkCommand.
63         (WebCore::EditCommandComposition::EditCommandComposition): Ditto.
64         (WebCore::EditCommandComposition::unapply): Moved from EditCommand; we don't have to call isTopLevelCommand
65         anymore because EditCommandComposition is always top-level. In fact, the only thing unapply/reapply do
66         in addition to what doUnapply/doReapply do for sub-level commands is disabling and enabling delete button
67         and defining an event queue scope. However, these can be done at top-level command anyway, so we now only call
68         doApply for sub-level commands.
69         (WebCore::EditCommandComposition::reapply): Ditto.
70         (WebCore::EditCommandComposition::setStartingSelection): Added.
71         (WebCore::EditCommandComposition::setEndingSelection): Added.
72         (WebCore::applyCommand): Moved from EditCommand.
73         (WebCore::CompositeEditCommand::apply): Moved from EditCommand; doesn't call isTopLevelCommand for the same reason.
74         (WebCore::CompositeEditCommand::ensureComposition):
75         (WebCore::CompositeEditCommand::applyCommandToComposite): Call doApply instead of apply for the same reason.
76         * editing/CompositeEditCommand.h:
77         (WebCore::EditCommandComposition::wasCreateLinkCommand):
78         (WebCore::EditCommandComposition::startingSelection): Added.
79         (WebCore::EditCommandComposition::endingSelection): Added.
80         * editing/EditCommand.cpp:
81         (WebCore::EditCommand::setStartingSelection):
82         (WebCore::EditCommand::setEndingSelection):
83         (WebCore::SimpleEditCommand::doReapply): Moved from EditCommand.
84         * editing/EditCommand.h:
85         * editing/UndoStep.h: Added.
86         (WebCore::UndoStep::~UndoStep):
87         * loader/EmptyClients.h:
88         (WebCore::EmptyEditorClient::shouldInsertNode):
89         (WebCore::EmptyEditorClient::didSetSelectionTypesForPasteboard):
90         (WebCore::EmptyEditorClient::registerCommandForUndo): Takes UndoStep instead of EditCommand.
91         (WebCore::EmptyEditorClient::registerCommandForRedo): Ditto.
92         * page/EditorClient.h:
93
94 2011-12-16  Simon Fraser  <simon.fraser@apple.com>
95
96         Allow a PlatformCALayer to own its own sublayers
97         https://bugs.webkit.org/show_bug.cgi?id=74744
98
99         Reviewed by Anders Carlsson.
100
101         GraphicsLayerCA rebuilds the sublayer list of CALayers, which would
102         blow away any custom layers that a PlatformCALayer wants to maintain
103         as children.
104         
105         Make it possible for a PlatformLayerCA to indicate that it wants
106         a specific list of sublayers to be maintained as the first layers
107         in the child list.
108         
109         * platform/graphics/ca/GraphicsLayerCA.cpp:
110         (WebCore::GraphicsLayerCA::updateSublayerList):
111         * platform/graphics/ca/PlatformCALayer.h:
112         (WebCore::PlatformCALayer::customSublayers):
113         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
114         (PlatformCALayer::PlatformCALayer):
115
116 2011-12-16  Adam Barth  <abarth@webkit.org>
117
118         <!DOCTYPE html><pre>&#x0a;&#x0a;A</pre> doesn't parse correctly
119         https://bugs.webkit.org/show_bug.cgi?id=74658
120
121         Reviewed by Darin Adler.
122
123         Previously, we handled skipping newlines after <pre> in the tokenizer,
124         which isn't how the spec handles them.  Instead, the spec skips them in
125         the tree builder.  This isn't usually observable, except in the case of
126         an HTML entity.  In that case, the tokenzier sees '&' (because the
127         entity hasn't been decoded yet), but the tree builder sees '\n' (the
128         decoded entity).  This patch fixes the bug by more closely aligning our
129         implementation with the spec.
130
131         Test: html5lib/runner.html
132
133         * html/parser/HTMLTokenizer.cpp:
134         (WebCore::HTMLTokenizer::reset):
135         (WebCore::HTMLTokenizer::nextToken):
136         * html/parser/HTMLTokenizer.h:
137         * html/parser/HTMLTreeBuilder.cpp:
138         (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipAtMostOneLeadingNewline):
139         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
140         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
141         (WebCore::HTMLTreeBuilder::processCharacterBuffer):
142         * html/parser/HTMLTreeBuilder.h:
143         * xml/parser/MarkupTokenizerBase.h:
144
145 2011-12-16  Joshua Bell  <jsbell@chromium.org>
146
147         IndexedDB: Implement IDBObjectStore.count() and IDBIndex.count()
148         https://bugs.webkit.org/show_bug.cgi?id=73686
149
150         Reviewed by Tony Chang.
151
152         These new methods open an internal cursor and iterate through the
153         results, returning the number of items found. Note that only
154         passing an IDBKeyRange is supported, not an IDBKey. Supporting
155         that will require some IDL/binding monkeying; several other
156         methods also need the same Key-or-KeyRange behavior.
157
158         Tests: storage/indexeddb/index-count.html
159                storage/indexeddb/objectstore-count.html
160
161         * bindings/v8/SerializedScriptValue.cpp:
162         (WebCore::SerializedScriptValue::numberValue):
163         * bindings/v8/SerializedScriptValue.h:
164         * storage/IDBIndex.cpp:
165         (WebCore::IDBIndex::openCursor):
166         (WebCore::IDBIndex::count):
167         * storage/IDBIndex.h:
168         (WebCore::IDBIndex::count):
169         * storage/IDBIndex.idl:
170         * storage/IDBIndexBackendImpl.cpp:
171         (WebCore::IDBIndexBackendImpl::countInternal):
172         (WebCore::IDBIndexBackendImpl::count):
173         * storage/IDBIndexBackendImpl.h:
174         * storage/IDBIndexBackendInterface.h:
175         * storage/IDBObjectStore.cpp:
176         (WebCore::IDBObjectStore::count):
177         * storage/IDBObjectStore.h:
178         (WebCore::IDBObjectStore::count):
179         * storage/IDBObjectStore.idl:
180         * storage/IDBObjectStoreBackendImpl.cpp:
181         (WebCore::IDBObjectStoreBackendImpl::count):
182         (WebCore::IDBObjectStoreBackendImpl::countInternal):
183         * storage/IDBObjectStoreBackendImpl.h:
184         * storage/IDBObjectStoreBackendInterface.h:
185
186 2011-12-16  Yael Aharon  <yael.aharon@nokia.com>
187
188         Audio file in video element has a size of 0x0 .
189         https://bugs.webkit.org/show_bug.cgi?id=74738
190
191         Reviewed by Kenneth Rohde Christiansen.
192
193         When the source of a video element has audio only, the intrinsic size of the video should
194         not be 0x0. Instead, it should be the same as as no media was loaded.
195
196         No new tests. An existing test is covering this case and was modified to reflect this change.
197
198         * rendering/RenderVideo.cpp:
199         (WebCore::RenderVideo::calculateIntrinsicSize):
200
201 2011-12-16  Alexis Menard  <alexis.menard@openbossa.org>
202
203         getComputedStyle for border-width is not implemented.
204         https://bugs.webkit.org/show_bug.cgi?id=74635
205
206         Reviewed by Tony Chang.
207
208         Implement getComputedStyle for border-width.
209
210         Test: fast/css/getComputedStyle/getComputedStyle-border-width.html
211
212         * css/CSSComputedStyleDeclaration.cpp:
213         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
214
215 2011-12-16  Branimir Lambov  <blambov@google.com>
216
217         [chromium] svg/clip-path/clip-in-mask.svg fails on Windows and Linux
218         https://bugs.webkit.org/show_bug.cgi?id=53378
219
220         Reviewed by Tony Chang.
221
222         Fixes a problem in Skia's clipping layer code's handling of coordinate
223         transformations that was causing all complex clipping (including text
224         and/or masks) to fail.
225
226         The method beginLayerClippedToImage was taking rectangle coordinates
227         in one local coordinate space, but it was applying them in a different  
228         one because of the delay between the time it is called and the actual 
229         application occurs in applyClipFromImage. The fix translates the 
230         coordinates passed to beginLayerClippedToImage to absolute ones, so 
231         that they are not affected by any change in the transform matrix, and 
232         makes sure that applyClipFromImage clears the matrix before drawing
233         the clip layer to correctly apply the absolute coordinates.
234
235         * platform/graphics/skia/PlatformContextSkia.cpp:
236         (WebCore::PlatformContextSkia::beginLayerClippedToImage):
237         (WebCore::PlatformContextSkia::applyClipFromImage):
238         * platform/graphics/skia/PlatformContextSkia.h:
239
240 2011-12-16  Mark Hahnenberg  <mhahnenberg@apple.com>
241
242         De-virtualize destructors
243         https://bugs.webkit.org/show_bug.cgi?id=74331
244
245         Reviewed by Geoffrey Garen.
246
247         No new tests.
248
249         Doing everything here that was done to the JSCell hierarchy in JavaScriptCore. 
250         See the ChangeLog for this commit for a more in-depth description.
251
252         * WebCore.exp.in: Add/remove symbols.
253         * bindings/js/JSCanvasRenderingContext2DCustom.cpp: Remove first arg from isJSArray call.
254         (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
255         * bindings/js/JSDOMBinding.cpp: Add trival destructor assert for DOMConstructorObject 
256         and DOMConstructorWithDocument.
257         * bindings/js/JSDOMGlobalObject.cpp: Add static destroy.  Add implementation for 
258         scriptExecutionContext that dispatches to different functions in subclasses 
259         depending on our current ClassInfo.  We do this so that we can get rid of the 
260         virtual-ness of scriptExecutionContext, because any virtual functions will throw 
261         off the layout of the object and we'll crash at runtime.
262         (WebCore::JSDOMGlobalObject::destroy):
263         (WebCore::JSDOMGlobalObject::scriptExecutionContext):
264         * bindings/js/JSDOMGlobalObject.h:
265         * bindings/js/JSDOMWindowBase.cpp: Add static destroy.
266         (WebCore::JSDOMWindowBase::destroy):
267         * bindings/js/JSDOMWindowBase.h: De-virtualize scriptExecutionContext.
268         * bindings/js/JSDOMWindowShell.cpp: Add static destroy.
269         (WebCore::JSDOMWindowShell::destroy):
270         * bindings/js/JSDOMWindowShell.h:
271         * bindings/js/JSDOMWrapper.cpp: Add trivial destructor assert.
272         * bindings/js/JSDOMWrapper.h: Add a ClassInfo to JSDOMWrapper since it now overrides 
273         a MethodTable function. Remove vtableAnchor virtual function.
274         * bindings/js/JSImageConstructor.cpp: Add trivial destructor assert.
275         * bindings/js/JSNodeCustom.cpp: Change implementation of pushEventHandlerScope so that 
276         it dispatches to the correct function depending on the 
277         identity of the class as specified by the ClassInfo.  
278         See JSDOMGlobalObject::scriptExecutionContext for explanation.
279         (WebCore::JSNode::pushEventHandlerScope):
280         * bindings/js/JSWebSocketCustom.cpp: Remove first arg to isJSArray call.
281         (WebCore::JSWebSocketConstructor::constructJSWebSocket):
282         * bindings/js/JSWorkerContextBase.cpp: Add static destroy.
283         (WebCore::JSWorkerContextBase::destroy):
284         * bindings/js/JSWorkerContextBase.h: 
285         * bindings/js/ScriptValue.cpp: Remove first arg to isJSArray call.
286         (WebCore::jsToInspectorValue): 
287         * bindings/js/SerializedScriptValue.cpp: Ditto.
288         (WebCore::CloneSerializer::isArray):
289         (WebCore::CloneSerializer::getSparseIndex):
290         * bindings/scripts/CodeGeneratorJS.pm:
291         (GenerateHeader): Remove virtual-ness of any custom pushEventHandlerScope (see 
292         JSNodeCustom::pushEventHandlerScope for explanation).  Remove virtual toBoolean 
293         for anybody who masquerades as undefined, since our JSObject implementation handles 
294         this based on the TypeInfo in the Structure. Add trivial destructor assert for any 
295         class other than DOMWindow or WorkerContexts.
296         (GenerateImplementation): Change ClassInfo definitions to use Base::s_info, since 
297         typing the parent class more than once is duplication of information and increases 
298         the likelihood of mistakes.  Pass ClassInfo to TypeArrayDescriptors instead of vptr. 
299         (GenerateConstructorDefinition): Add trivial destructor assert for all generated constructors.
300         * bridge/c/CRuntimeObject.cpp: Remove empty virtual destructor.
301         * bridge/c/CRuntimeObject.h: 
302         * bridge/jni/jsc/JavaRuntimeObject.cpp: Ditto.
303         * bridge/jni/jsc/JavaRuntimeObject.h: 
304         * bridge/objc/ObjCRuntimeObject.h: Ditto.
305         * bridge/objc/ObjCRuntimeObject.mm:
306         * bridge/objc/objc_runtime.h: Add static destroy for ObjcFallbackObjectImp. De-virtualize 
307         toBoolean in the short term.  Need longer term fix.
308         * bridge/objc/objc_runtime.mm:
309         (JSC::Bindings::ObjcFallbackObjectImp::destroy):
310         * bridge/qt/qt_runtime.cpp: Add static destroy to QtRuntimeMethod.
311         (JSC::Bindings::QtRuntimeMethod::destroy):
312         * bridge/qt/qt_runtime.h: De-virtualize ~QtRuntimeMethod.
313         * bridge/runtime_array.cpp: De-virtualize destructor. Add static destroy.
314         (JSC::RuntimeArray::destroy):
315         * bridge/runtime_array.h:
316         * bridge/runtime_method.cpp: Remove vtableAnchor. Add static destroy.
317         (JSC::RuntimeMethod::destroy):
318         * bridge/runtime_method.h:
319         * bridge/runtime_object.cpp: Add static destroy.
320         (JSC::Bindings::RuntimeObject::destroy):
321         * bridge/runtime_object.h:
322
323 2011-12-15  Alexey Proskuryakov  <ap@apple.com>
324
325         Poor XPath performance when evaluating an expression that returns a lot of nodes
326         https://bugs.webkit.org/show_bug.cgi?id=74665
327         <rdar://problem/10517146>
328
329         Reviewed by Darin Adler.
330
331         No change in funcitonality. Well covered by existing tests (ran them with zero cutoff to
332         execute the new code path).
333
334         Our sorting function is optimized for small node sets in large documents, and this is the
335         opposite of it. Added another one that traverses the whole document, adding nodes from the
336         node set to sorted list. That doesn't grow with the number of nodes nearly as fast.
337
338         Cutoff amount chosen for the document referenced in bug - this is roughly where the algorithms
339         have the same performance on it.
340
341         * xml/XPathNodeSet.cpp:
342         (WebCore::XPath::NodeSet::sort):
343         (WebCore::XPath::findRootNode):
344         (WebCore::XPath::NodeSet::traversalSort):
345         * xml/XPathNodeSet.h:
346
347 2011-12-15  Antti Koivisto  <antti@apple.com>
348
349         https://bugs.webkit.org/show_bug.cgi?id=74677
350         Count ResourceLoadScheduler suspends/resumes
351
352         Reviewed by Andreas Kling.
353
354         Using boolean is not robust when there are multiple clients calling suspendPendingRequests/resumePendingRequests.
355         
356         Increment and decrement suspend count instead of just setting/unsetting a boolean.
357
358         * loader/ResourceLoadScheduler.cpp:
359         (WebCore::ResourceLoadScheduler::ResourceLoadScheduler):
360         (WebCore::ResourceLoadScheduler::servePendingRequests):
361         (WebCore::ResourceLoadScheduler::suspendPendingRequests):
362         (WebCore::ResourceLoadScheduler::resumePendingRequests):
363         * loader/ResourceLoadScheduler.h:
364         (WebCore::ResourceLoadScheduler::isSuspendingPendingRequests):
365
366 2011-12-16  Adam Klein  <adamk@chromium.org>
367
368         Improve performance of ChildListMutationScope when no MutationObservers are present
369         https://bugs.webkit.org/show_bug.cgi?id=74671
370
371         Reviewed by Ojan Vafai.
372
373         Inline ChildListMutationScope's methods (including constructor and
374         destructor), and provide a fast-fail case when no mutation observers
375         are present.
376
377         The code reorganization necessary for the above also removed the
378         anonymous namespace in ChildListMutationScope.cpp, making both helper
379         classes private inner classes of ChildListMutationScope.
380
381         No new tests, refactoring only.
382
383         * dom/ChildListMutationScope.cpp:
384         (WebCore::ChildListMutationScope::MutationAccumulator::MutationAccumulator):
385         (WebCore::ChildListMutationScope::MutationAccumulator::~MutationAccumulator):
386         (WebCore::ChildListMutationScope::MutationAccumulator::isAddedNodeInOrder):
387         (WebCore::ChildListMutationScope::MutationAccumulator::childAdded):
388         (WebCore::ChildListMutationScope::MutationAccumulator::isRemovedNodeInOrder):
389         (WebCore::ChildListMutationScope::MutationAccumulator::willRemoveChild):
390         (WebCore::ChildListMutationScope::MutationAccumulator::enqueueMutationRecord):
391         (WebCore::ChildListMutationScope::MutationAccumulator::clear):
392         (WebCore::ChildListMutationScope::MutationAccumulator::isEmpty):
393         (WebCore::ChildListMutationScope::MutationAccumulationRouter::MutationAccumulationRouter):
394         (WebCore::ChildListMutationScope::MutationAccumulationRouter::~MutationAccumulationRouter):
395         (WebCore::ChildListMutationScope::MutationAccumulationRouter::initialize):
396         (WebCore::ChildListMutationScope::MutationAccumulationRouter::instance):
397         (WebCore::ChildListMutationScope::MutationAccumulationRouter::childAdded):
398         (WebCore::ChildListMutationScope::MutationAccumulationRouter::willRemoveChild):
399         (WebCore::ChildListMutationScope::MutationAccumulationRouter::incrementScopingLevel):
400         (WebCore::ChildListMutationScope::MutationAccumulationRouter::decrementScopingLevel):
401         * dom/ChildListMutationScope.h:
402         (WebCore::ChildListMutationScope::ChildListMutationScope):
403         (WebCore::ChildListMutationScope::~ChildListMutationScope):
404         (WebCore::ChildListMutationScope::childAdded):
405         (WebCore::ChildListMutationScope::willRemoveChild):
406
407 2011-12-16  Dean Jackson  <dino@apple.com>
408
409         Filters need to affect visual overflow
410         https://bugs.webkit.org/show_bug.cgi?id=71930
411
412         Reviewed by Simon Fraser.
413
414         Make sure filters are included in visual overflow.
415         Add a new method to calculate the expansion of overflow
416         region given a list of FilterOperations. This is a slight
417         duplication of code from the rendering path, but is needed
418         because overflow is calculated before the FilterEffect
419         chain is built.
420
421         Also, filters were always rendered into their
422         input rectangle which was wrong for any effect
423         that produced a different sized result - drop-shadow
424         and blur. This required two changes. First, FilterEffect
425         needed a flag to decide whether or not to clip
426         output to primitive regions (as required by SVG but not
427         what we want here). Second, the rendering operation
428         draws into the rectangle the filter claims is its painting
429         rectangle.
430
431         Test: css3/filters/regions-expanding.html
432
433         * platform/graphics/filters/FEDropShadow.cpp:
434         (WebCore::FEDropShadow::determineAbsolutePaintRect): Only
435         clipToBounds if necessary.
436         * platform/graphics/filters/FEGaussianBlur.cpp:
437         (WebCore::FEGaussianBlur::calculateUnscaledKernelSize): CSS filters
438         ask for the kernel size before the Filter object is created, so
439         add a new method to return an unscaled kernel.
440         (WebCore::FEGaussianBlur::calculateKernelSize):
441         (WebCore::FEGaussianBlur::determineAbsolutePaintRect): Only
442         clipToBounds if necessary.
443         * platform/graphics/filters/FEGaussianBlur.h:
444         * platform/graphics/filters/FEMorphology.cpp:
445         (WebCore::FEMorphology::determineAbsolutePaintRect): Only
446         clipToBounds if necessary.
447         * platform/graphics/filters/FEOffset.cpp:
448         (WebCore::FEOffset::determineAbsolutePaintRect): Only
449         clipToBounds if necessary.
450         * platform/graphics/filters/FilterEffect.cpp:
451         (WebCore::FilterEffect::FilterEffect): Initialize clipToBounds
452         as false so SVG remains unchanged.
453         (WebCore::FilterEffect::determineAbsolutePaintRect): Only
454         clipToBounds if necessary.
455         * platform/graphics/filters/FilterEffect.h:
456         (WebCore::FilterEffect::clipsToBounds):
457         (WebCore::FilterEffect::setClipsToBounds):
458         * rendering/FilterEffectRenderer.cpp:
459         (WebCore::FilterEffectRenderer::build): Make sure we set our
460         filters here to NOT clip to bounds.
461         * rendering/FilterEffectRenderer.h:
462         (WebCore::FilterEffectRenderer::outputRect): Asks the filter
463         operation for the size of the result image.
464         * rendering/RenderBlock.cpp:
465         (WebCore::RenderBlock::computeOverflow):
466         * rendering/RenderBox.cpp:
467         (WebCore::RenderBox::addVisualEffectOverflow): Change the name
468         from addBoxShadowAndBorderOverflow().
469         * rendering/RenderBox.h:
470         * rendering/RenderEmbeddedObject.cpp:
471         (WebCore::RenderEmbeddedObject::layout):
472         * rendering/RenderIFrame.cpp:
473         (WebCore::RenderIFrame::layout):
474         * rendering/RenderLayer.cpp:
475         (WebCore::RenderLayer::paintLayer):
476         * rendering/RenderLayerBacking.cpp:
477         (WebCore::hasBoxDecorations): Change name from
478         hasBorderOutlineOrShadow().
479         (WebCore::hasBoxDecorationsOrBackground):
480         (WebCore::hasBoxDecorationsOrBackgroundImage):
481         * rendering/RenderReplaced.cpp:
482         (WebCore::RenderReplaced::layout):
483         * rendering/style/FilterOperations.cpp:
484         (WebCore::outsetSizeForBlur): Return an IntSize that is the amount
485         of offset.
486         (WebCore::FilterOperations::hasOutsets):
487         (WebCore::FilterOperations::getOutsets):
488         * rendering/style/FilterOperations.h:
489         * rendering/style/RenderStyle.h:
490         (WebCore::InheritedFlags::getFilterOutsets):
491         (WebCore::InheritedFlags::hasFilterOutsets):
492         * svg/graphics/filters/SVGFEImage.cpp:
493         (WebCore::FEImage::determineAbsolutePaintRect): Only
494         clipToBounds if necessary.
495
496 2011-12-16  Alexis Menard  <alexis.menard@openbossa.org>, Jakub Wieczorek  <jwieczorek@webkit.org>
497
498         Add support for <ol reversed>.
499         https://bugs.webkit.org/show_bug.cgi?id=36724
500
501         The reversed attribute makes an ordered list appear with marker values
502         decreasing from n, where n is the number of items.
503         See: http://www.whatwg.org/specs/web-apps/current-work/#attr-ol-reversed
504
505         Reviewed by Darin Adler.
506
507         Tests: fast/lists/ol-reversed-dynamic-simple.html
508                fast/lists/ol-reversed-dynamic.html
509                fast/lists/ol-reversed-nested-items.html
510                fast/lists/ol-reversed-nested-list.html
511                fast/lists/ol-reversed-simple.html
512
513         * html/HTMLAttributeNames.in:
514         * html/HTMLOListElement.cpp:
515         (WebCore::HTMLOListElement::HTMLOListElement):
516         (WebCore::HTMLOListElement::parseMappedAttribute):
517         (WebCore::HTMLOListElement::updateItemValues):
518         (WebCore::HTMLOListElement::recalculateItemCount):
519         * html/HTMLOListElement.h:
520         (WebCore::HTMLOListElement::start):
521         (WebCore::HTMLOListElement::isReversed):
522         (WebCore::HTMLOListElement::itemCountChanged):
523         (WebCore::HTMLOListElement::itemCount):
524         * html/HTMLOListElement.idl:
525         * rendering/RenderListItem.cpp:
526         (WebCore::RenderListItem::nextListItem):
527         (WebCore::previousListItem):
528         (WebCore::RenderListItem::calcValue):
529         (WebCore::RenderListItem::explicitValueChanged):
530         (WebCore::previousOrNextItem):
531         (WebCore::RenderListItem::updateListMarkerNumbers):
532         * rendering/RenderListItem.h:
533
534 2011-12-16  Mikhail Naganov  <mnaganov@chromium.org>
535
536         Scroll non-visible edit controls and caret into the center of the view when starting typing.
537         https://bugs.webkit.org/show_bug.cgi?id=65027
538
539         Reviewed by Ryosuke Niwa.
540
541         Tests: editing/input/caret-at-the-edge-of-contenteditable.html
542                editing/input/caret-at-the-edge-of-input.html
543                editing/input/reveal-caret-of-multiline-contenteditable.html
544                editing/input/reveal-caret-of-multiline-input.html
545                editing/input/reveal-contenteditable-on-input-vertically.html
546                editing/input/reveal-contenteditable-on-paste-vertically.html
547                editing/input/reveal-edit-on-input-vertically.html
548                editing/input/reveal-edit-on-paste-vertically.html
549
550         * editing/Editor.cpp:
551         (WebCore::Editor::insertTextWithoutSendingTextEvent):
552         (WebCore::Editor::revealSelectionAfterEditingOperation):
553
554 2011-12-16  Ryosuke Niwa  <rniwa@webkit.org>
555
556         Touch RenderStyle in an attempt to fix linking errors on Chromium Windows bots.
557
558         * rendering/style/RenderStyle.h:
559
560 2011-12-14  Nat Duca  <nduca@chromium.org>
561
562         [chromium] DelayBasedTimeSource should not change its timebase on late ticks
563         https://bugs.webkit.org/show_bug.cgi?id=74573
564
565         The original DelayBasedTimeSource was designed to shift its timebase
566         to the tick time when a tick came back "late." The rationale was that it is
567         better to just "start fresh" after a stutter. After profiling this,
568         this time-rebasing just destabilizes frame rate anytime the thread gets
569         loaded.  This patch keeps the timebase stationary, leading to vastly
570         smoother framerates when the message loop is under load.
571
572         Reviewed by James Robinson.
573
574         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
575         (WebCore::CCDelayBasedTimeSource::updateState):
576
577 2011-12-16  Sheriff Bot  <webkit.review.bot@gmail.com>
578
579         Unreviewed, rolling out r103062.
580         http://trac.webkit.org/changeset/103062
581         https://bugs.webkit.org/show_bug.cgi?id=74715
582
583         It broke many tests (Requested by Ossy on #webkit).
584
585         * html/HTMLAttributeNames.in:
586         * html/HTMLOListElement.cpp:
587         (WebCore::HTMLOListElement::HTMLOListElement):
588         (WebCore::HTMLOListElement::parseMappedAttribute):
589         * html/HTMLOListElement.h:
590         (WebCore::HTMLOListElement::start):
591         * html/HTMLOListElement.idl:
592         * rendering/RenderListItem.cpp:
593         (WebCore::previousListItem):
594         (WebCore::RenderListItem::calcValue):
595         (WebCore::RenderListItem::explicitValueChanged):
596         (WebCore::RenderListItem::updateListMarkerNumbers):
597         * rendering/RenderListItem.h:
598
599 2011-12-16  Alexis Menard  <alexis.menard@openbossa.org>, Jakub Wieczorek  <jwieczorek@webkit.org>
600
601         Add support for <ol reversed>.
602         https://bugs.webkit.org/show_bug.cgi?id=36724
603
604         The reversed attribute makes an ordered list appear with marker values
605         decreasing from n, where n is the number of items.
606         See: http://www.whatwg.org/specs/web-apps/current-work/#attr-ol-reversed
607
608         Reviewed by Darin Adler.
609
610         Tests: fast/lists/ol-reversed-dynamic-simple.html
611                fast/lists/ol-reversed-dynamic.html
612                fast/lists/ol-reversed-nested-items.html
613                fast/lists/ol-reversed-nested-list.html
614                fast/lists/ol-reversed-simple.html
615
616         * html/HTMLAttributeNames.in:
617         * html/HTMLOListElement.cpp:
618         (WebCore::HTMLOListElement::HTMLOListElement):
619         (WebCore::HTMLOListElement::parseMappedAttribute):
620         (WebCore::HTMLOListElement::updateItemValues):
621         (WebCore::HTMLOListElement::recalculateItemCount):
622         * html/HTMLOListElement.h:
623         (WebCore::HTMLOListElement::start):
624         (WebCore::HTMLOListElement::isReversed):
625         (WebCore::HTMLOListElement::itemCountChanged):
626         (WebCore::HTMLOListElement::itemCount):
627         * html/HTMLOListElement.idl:
628         * rendering/RenderListItem.cpp:
629         (WebCore::RenderListItem::nextListItem):
630         (WebCore::previousListItem):
631         (WebCore::RenderListItem::calcValue):
632         (WebCore::RenderListItem::explicitValueChanged):
633         (WebCore::previousOrNextItem):
634         (WebCore::RenderListItem::updateListMarkerNumbers):
635         * rendering/RenderListItem.h:
636
637 2011-12-15  Stephen White  <senorblanco@chromium.org>
638
639         Enable CSS_FILTERS in Chromium.
640         https://bugs.webkit.org/show_bug.cgi?id=74334
641
642         Reviewed by Chris Marrin.
643
644         Covered by css3/filters (when enabled).
645
646         * platform/graphics/filters/FilterOperation.h:
647         (WebCore::PassthroughFilterOperation::PassthroughFilterOperation):
648         Since wingdi.h #define's PASSTHROUGH, #undef it after the includes.
649
650 2011-12-16  Patrick Gansterer  <paroga@webkit.org>
651
652         Unreviewed WinCE build fix after r102979.
653
654         Make everHadLayout() public accessible as it was before the change.
655
656         * rendering/RenderObject.h:
657         (WebCore::RenderObject::everHadLayout):
658
659 2011-12-15  Hans Wennborg  <hans@chromium.org>
660
661         IndexedDB: Don't prefetch values from key cursors
662         https://bugs.webkit.org/show_bug.cgi?id=74604
663
664         Reviewed by Tony Chang.
665
666         Since index key cursors don't have values, prefetching should not try
667         to retrieve them. Doing so trips an ASSERT in debug builds.
668
669         This will be tested Chromium-side.
670
671         * storage/IDBCursorBackendImpl.cpp:
672         (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
673
674 2011-12-16  Yosifumi Inoue  <yosin@chromium.org>
675
676         [Forms] The "maxlength" attribute on "textarea" tag miscounts hard newlines
677         https://bugs.webkit.org/show_bug.cgi?id=74686
678
679         Reviewed by Kent Tamura.
680
681         This patch counts LF in textarea value as two for LF to CRLF conversion on submission.
682
683         No new tests. Existing tests cover all changes.
684
685         * html/HTMLTextAreaElement.cpp:
686         (WebCore::computeLengthForSubmission): Count LF as 2 for CR LF conversion on submission.
687         (WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent): Use computeLengthForSubmission instead of numGraphemeClusters.
688         (WebCore::HTMLTextAreaElement::tooLong): Use computeLengthForSubmission instead of numGraphemeClusters.
689
690 2011-12-16  Hajime Morrita  <morrita@chromium.org>
691
692         Unreviewed, rolling out r103045.
693         http://trac.webkit.org/changeset/103045
694         https://bugs.webkit.org/show_bug.cgi?id=74590
695
696         Breaks select-script-onchange.html on Chromium Windows
697
698         * html/HTMLSelectElement.cpp:
699         (WebCore::HTMLSelectElement::typeAheadFind):
700
701 2011-12-16  Carlos Garcia Campos  <cgarcia@igalia.com>
702
703         Unreviewed. Fix make distcheck.
704
705         * GNUmakefile.list.am: Add missing header file.
706
707 2011-12-16  Yosifumi Inoue  <yosin@chromium.org>
708
709         [Forms] Selection change by type-ahead doesn't fire 'change' event
710         https://bugs.webkit.org/show_bug.cgi?id=74590
711
712         Reviewed by Kent Tamura.
713
714         Fire onchange even for type ahead selection.
715
716         Test: fast/forms/select/menulist-type-ahead-find.html
717
718         * html/HTMLSelectElement.cpp:
719         (WebCore::HTMLSelectElement::typeAheadFind): Add DispatchChangeEvent when
720         calling selectOption method.
721
722 2011-12-16  Andreas Kling  <kling@webkit.org>
723
724         Don't call Document::body() twice in the same function.
725         <http://webkit.org/b/74683>
726
727         Reviewed by Dan Bernstein.
728
729         Document::body() is O(n), so we should avoid calling it multiple
730         times unnecessarily.
731
732         * dom/Document.cpp:
733         (WebCore::Document::updateLayoutIgnorePendingStylesheets):
734
735 2011-12-16  Daniel Sievers  <sievers@chromium.org>
736
737         [Chromium] Add trace events for decoding and drawing images.
738         https://bugs.webkit.org/show_bug.cgi?id=74547
739
740         Reviewed by James Robinson.
741
742         * platform/graphics/skia/ImageSkia.cpp:
743         (WebCore::drawResampledBitmap):
744         (WebCore::paintSkBitmap):
745         (WebCore::Image::drawPattern):
746         * platform/graphics/skia/NativeImageSkia.cpp:
747         (WebCore::NativeImageSkia::resizedBitmap):
748         * platform/image-decoders/bmp/BMPImageDecoder.cpp:
749         (WebCore::BMPImageDecoder::decode):
750         * platform/image-decoders/gif/GIFImageDecoder.cpp:
751         (WebCore::GIFImageDecoder::decode):
752         * platform/image-decoders/ico/ICOImageDecoder.cpp:
753         (WebCore::ICOImageDecoder::decode):
754         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
755         (WebCore::JPEGImageDecoder::decode):
756         * platform/image-decoders/png/PNGImageDecoder.cpp:
757         (WebCore::PNGImageDecoder::decode):
758         * platform/image-decoders/webp/WEBPImageDecoder.cpp:
759         (WebCore::WEBPImageDecoder::decode):
760
761 2011-12-15  Martin Robinson  <mrobinson@igalia.com>
762
763         Fix 'make dist' in preparation for the GTK+ release.
764
765         * GNUmakefile.list.am: Add missing header.
766
767 2011-12-15  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
768
769         Don't create empty files on error.
770         https://bugs.webkit.org/show_bug.cgi?id=74373
771
772         Reviewed by Ryosuke Niwa.
773
774         * css/makeprop.pl:
775         * css/makevalues.pl:
776         * make-hash-tools.pl:
777
778 2011-12-15  Yongjun Zhang  <yongjun_zhang@apple.com>
779
780         PODIntervalTree takes 1.7MB memory on www.nytimes.com.
781         https://bugs.webkit.org/show_bug.cgi?id=73712
782
783         Reviewed by Kenneth Russell.
784
785         For a RenderBlock which has floating objects inside, we will create a PODIntervalTree and a PODArena with
786         at least one 16KB chunk.  A page could have a large number of such RenderBlocks and they could take huge
787         amount of memory.  To fix that, we can create a shared PODArena in the root RenderView.  Instead of having
788         their own PODArena, each RenderBlock with floating objects could share this PODArena to reduce memory consumption.
789
790         The shared PODArena could grow unboundedly if we keep removing and adding floating objects.  We can fix that
791         by reusing the freed memory in each chunk.  However, a PODArena could allocate objects of different sizes and
792         it would be complex to keep track of the size for each allocation in PODArena.  To address that, this patch
793         added class PODFreeListArena<T> which only allocates objects of type T (hence the same size).  We can then use a
794         free list to track freed nodes inside the chunk and reuse the free nodes in future allocations.
795
796         Manually tested on nytimes.com and the heap consumption of PODIntervalTree reduced from 1.7MB to 16KB. Performance
797         doesn't regress on test PerformanceTests/Layout/floats.html.
798
799         * WebCore.xcodeproj/project.pbxproj: add new header file PODFreeListArena.h.
800         * platform/PODArena.h:
801         (WebCore::PODArena::~PODArena): change dtor to virtual.
802         (WebCore::PODArena::Chunk::~Chunk): ditto.
803         * platform/PODFreeListArena.h: Added.
804         (WebCore::PODFreeListArena::create): 
805         (WebCore::PODFreeListArena::allocateObject): allocate an object.
806         (WebCore::PODFreeListArena::freeObject): free an object, find the right chunk and update its free list.
807         (WebCore::PODFreeListArena::allocate): allocate memory from the free list or current chunk.
808         (WebCore::PODFreeListArena::FreeListChunk::FreeListChunk): add m_freeList to track freed cells.
809         (WebCore::PODFreeListArena::FreeListChunk::allocate): reuse a free cell if there is one.
810         (WebCore::PODFreeListArena::FreeListChunk::free): make the memory taken by this object is free, and link it to m_freeList.
811         (WebCore::PODFreeListArena::FreeListChunk::contains): check if a pointer is inside this chunk.
812         (WebCore::PODFreeListArena::FreeListChunk::hasFreeList): check if this chunk has free cells.
813         * platform/PODRedBlackTree.h:
814         (WebCore::PODRedBlackTree::PODRedBlackTree): take PODFreeListArena instead of PODArena, since nodes of a particular PODRedBlackTree
815             is always of the same size.
816         (WebCore::PODRedBlackTree::clear): mark all nodes before clearing the tree.
817         (WebCore::PODRedBlackTree::initIfNeeded): add initIfNeeded to take an external PODFreeListArena.
818         (WebCore::PODRedBlackTree::add):
819         (WebCore::PODRedBlackTree::deleteNode): mark the node free in arena after it is removed from the tree.
820         (WebCore::PODRedBlackTree::markFree): mark all node free in the tree.
821         * rendering/RenderBlock.cpp:
822         (WebCore::RenderBlock::insertFloatingObject):
823         (WebCore::RenderBlock::addOverhangingFloats):
824         (WebCore::RenderBlock::addIntrudingFloats):
825         (WebCore::RenderBlock::FloatingObjects::computePlacedFloatsTree):  passing the shared PODFreeListArena to m_placedFloatsTree.
826         * rendering/RenderBlock.h:
827         (WebCore::RenderBlock::FloatingObjects::FloatingObjects):
828         * rendering/RenderView.cpp:
829         (WebCore::RenderView::intervalArena): create the shared PODFreeListArena lazily.
830         * rendering/RenderView.h:
831
832 2011-12-15  Tony Chang  <tony@chromium.org>
833
834         Unreviewed, rollout r102825 because it didn't improve performance.
835         https://bugs.webkit.org/show_bug.cgi?id=74622
836
837         * css/CSSStyleSelector.cpp:
838         (WebCore::CSSStyleSelector::styleForElement):
839         (WebCore::CSSStyleSelector::pseudoStyleForElement):
840
841 2011-12-15  Ryosuke Niwa  <rniwa@webkit.org>
842
843         sizeof(RenderObject) is 32 instead of 24 on Windows
844         https://bugs.webkit.org/show_bug.cgi?id=74646
845
846         Reviewed by Darin Adler.
847
848         Make all bitfields in RenderObject to unsigned and wrap them around by RenderObjectBitfields.
849         Also add a compilation time assertion to make sure we won't grow RenderObject's size unintentionally.
850
851         * rendering/RenderBlock.cpp:
852         (WebCore::RenderBlock::layoutBlock):
853         (WebCore::RenderBlock::layoutBlockChild):
854         (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
855         (WebCore::RenderBlock::layoutColumns):
856         * rendering/RenderBlock.h:
857         (WebCore::RenderBlock::FloatWithRect::FloatWithRect):
858         * rendering/RenderObject.cpp:
859         (WebCore::SameSizeAsRenderObject::~SameSizeAsRenderObject):
860         (WebCore::RenderObject::RenderObject):
861         (WebCore::RenderObject::markContainingBlocksForLayout):
862         (WebCore::RenderObject::setPreferredLogicalWidthsDirty):
863         (WebCore::RenderObject::invalidateContainerPreferredLogicalWidths):
864         (WebCore::RenderObject::styleWillChange):
865         (WebCore::RenderObject::styleDidChange):
866         (WebCore::RenderObject::willBeDestroyed):
867         (WebCore::RenderObject::updateDragState):
868         * rendering/RenderObject.h:
869         (WebCore::RenderObject::hasCounterNodeMap):
870         (WebCore::RenderObject::setHasCounterNodeMap):
871         (WebCore::RenderObject::childrenInline):
872         (WebCore::RenderObject::setChildrenInline):
873         (WebCore::RenderObject::hasColumns):
874         (WebCore::RenderObject::setHasColumns):
875         (WebCore::RenderObject::inRenderFlowThread):
876         (WebCore::RenderObject::setInRenderFlowThread):
877         (WebCore::RenderObject::isAnonymous):
878         (WebCore::RenderObject::setIsAnonymous):
879         (WebCore::RenderObject::isAnonymousBlock):
880         (WebCore::RenderObject::isFloating):
881         (WebCore::RenderObject::isPositioned):
882         (WebCore::RenderObject::isRelPositioned):
883         (WebCore::RenderObject::isText):
884         (WebCore::RenderObject::isBox):
885         (WebCore::RenderObject::isInline):
886         (WebCore::RenderObject::isDragging):
887         (WebCore::RenderObject::isReplaced):
888         (WebCore::RenderObject::isHorizontalWritingMode):
889         (WebCore::RenderObject::hasLayer):
890         (WebCore::RenderObject::hasBoxDecorations):
891         (WebCore::RenderObject::needsLayout):
892         (WebCore::RenderObject::selfNeedsLayout):
893         (WebCore::RenderObject::needsPositionedMovementLayout):
894         (WebCore::RenderObject::needsPositionedMovementLayoutOnly):
895         (WebCore::RenderObject::posChildNeedsLayout):
896         (WebCore::RenderObject::needsSimplifiedNormalFlowLayout):
897         (WebCore::RenderObject::normalChildNeedsLayout):
898         (WebCore::RenderObject::preferredLogicalWidthsDirty):
899         (WebCore::RenderObject::hasOverflowClip):
900         (WebCore::RenderObject::hasTransform):
901         (WebCore::RenderObject::node):
902         (WebCore::RenderObject::setPositioned):
903         (WebCore::RenderObject::setRelPositioned):
904         (WebCore::RenderObject::setFloating):
905         (WebCore::RenderObject::setInline):
906         (WebCore::RenderObject::setHasBoxDecorations):
907         (WebCore::RenderObject::setIsText):
908         (WebCore::RenderObject::setIsBox):
909         (WebCore::RenderObject::setReplaced):
910         (WebCore::RenderObject::setHorizontalWritingMode):
911         (WebCore::RenderObject::setHasOverflowClip):
912         (WebCore::RenderObject::setHasLayer):
913         (WebCore::RenderObject::setHasTransform):
914         (WebCore::RenderObject::setHasReflection):
915         (WebCore::RenderObject::hasReflection):
916         (WebCore::RenderObject::setHasMarkupTruncation):
917         (WebCore::RenderObject::hasMarkupTruncation):
918         (WebCore::RenderObject::selectionState):
919         (WebCore::RenderObject::setSelectionState):
920         (WebCore::RenderObject::hasSelectedChildren):
921         (WebCore::RenderObject::isMarginBeforeQuirk):
922         (WebCore::RenderObject::isMarginAfterQuirk):
923         (WebCore::RenderObject::setMarginBeforeQuirk):
924         (WebCore::RenderObject::setMarginAfterQuirk):
925         (WebCore::RenderObject::everHadLayout):
926         (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
927         (WebCore::RenderObject::RenderObjectBitfields::selectionState):
928         (WebCore::RenderObject::RenderObjectBitfields::setSelectionState):
929         (WebCore::RenderObject::setNeedsPositionedMovementLayout):
930         (WebCore::RenderObject::setNormalChildNeedsLayout):
931         (WebCore::RenderObject::setPosChildNeedsLayout):
932         (WebCore::RenderObject::setNeedsSimplifiedNormalFlowLayout):
933         (WebCore::RenderObject::setPaintBackground):
934         (WebCore::RenderObject::setIsDragging):
935         (WebCore::RenderObject::setEverHadLayout):
936         (WebCore::RenderObject::setNeedsLayout):
937         (WebCore::RenderObject::setChildNeedsLayout):
938         * rendering/RenderObjectChildList.cpp:
939         (WebCore::RenderObjectChildList::removeChildNode):
940         * rendering/svg/RenderSVGContainer.cpp:
941         (WebCore::RenderSVGContainer::layout):
942
943 2011-12-15  Wei Charles  <charles.wei@torchmobile.com.cn>
944
945         [BlackBerry] Upstream BlackBerry porting of pluginView
946         https://bugs.webkit.org/show_bug.cgi?id=73397
947
948         Reviewed by Daniel Bates.
949
950         No new tests for now.
951
952         * plugins/blackberry/PluginViewBlackBerry.cpp: Added.
953
954 2011-12-15  Joshua Bell  <jsbell@chromium.org>
955
956         IndexedDB: Can't pass DOMStringList to IDBDatabase.transaction()
957         https://bugs.webkit.org/show_bug.cgi?id=74452
958
959         Reviewed by Adam Barth.
960
961         V8 code generator generated checks for DOMStringList arguments, then
962         deferred to a function that only handled array inputs. This previously
963         worked for IndexedDB because it would fall into a now-removed default
964         handler.
965
966         Modified storage/indexeddb/transaction-basics.html to test this.
967
968         * bindings/v8/V8Binding.cpp:
969         (WebCore::v8ValueToWebCoreDOMStringList):
970
971 2011-12-15  Adam Klein  <adamk@chromium.org>
972
973         Make Element::setAttributeInternal inline in an attempt to avoid function call overhead
974         https://bugs.webkit.org/show_bug.cgi?id=74638
975
976         Reviewed by Andreas Kling.
977
978         In r102695, I factored common code in setAttribute into
979         Element::setAttributeInternal. This may have caused a perf regression
980         due to the extra function call, which inlining should eliminate.
981
982         Running Dromaeo locally suggests that this will improve performance
983         by ~9% on the "dom-attr element.property = value" test (which assigns
984         a value to an element's id).
985
986         * dom/Element.cpp:
987         (WebCore::Element::setAttributeInternal):
988
989 2011-12-15  Mary Wu  <mary.wu@torchmobile.com.cn>
990
991         Upstream FileSystemBlackBerry.cpp into WebCore/platform/blackberry
992         https://bugs.webkit.org/show_bug.cgi?id=74491
993
994         Reviewed by Rob Buis.
995
996         We are using POSIX porting of FileSystem, so here only implement other 
997         necessary functions.
998
999         Initial upstream, no new tests.
1000
1001         * platform/blackberry/FileSystemBlackBerry.cpp: Added.
1002         (WebCore::homeDirectoryPath):
1003         (WebCore::fileSystemRepresentation):
1004         (WebCore::unloadModule):
1005         (WebCore::openTemporaryFile):
1006
1007 2011-12-15  Adrienne Walker  <enne@google.com>
1008
1009         [chromium] Clean up unnecessary leaf functions in GraphicsLayerChromium
1010         https://bugs.webkit.org/show_bug.cgi?id=74140
1011
1012         Reviewed by James Robinson.
1013
1014         Tested by existing compositor layout tests.
1015
1016         This is a follow-on cleanup to r102196, which made some of these
1017         functions less useful than they had been in the past.
1018
1019         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1020         (WebCore::GraphicsLayerChromium::setContentsOpaque):
1021         (WebCore::GraphicsLayerChromium::setBackfaceVisibility):
1022         (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
1023         * platform/graphics/chromium/GraphicsLayerChromium.h:
1024
1025 2011-12-15  Kenneth Russell  <kbr@google.com>
1026
1027         Unreviewed, rolling out r103000.
1028         http://trac.webkit.org/changeset/103000
1029         https://bugs.webkit.org/show_bug.cgi?id=74658
1030
1031         Does not handle text/plain documents correctly.
1032
1033         * html/parser/HTMLTokenizer.cpp:
1034         * html/parser/HTMLTokenizer.h:
1035         * html/parser/HTMLTreeBuilder.cpp:
1036         * html/parser/HTMLTreeBuilder.h:
1037         * xml/parser/MarkupTokenizerBase.h:
1038
1039 2011-12-15  James Robinson  <jamesr@chromium.org>
1040
1041         [chromium] Set the CCLayerTreeHost pointer on LayerChromium instances eagerly
1042         https://bugs.webkit.org/show_bug.cgi?id=74477
1043
1044         Reviewed by Kenneth Russell.
1045
1046         This enforces that the m_layerTreeHost pointer on LayerChromium instances is always up to date, instead of
1047         lazily setting it in the paintContents loop. There are two invariants:
1048         1.) If a LayerChromium is the root layer of a CCLayerTreeHost, or is reachable via the children, mask, or
1049         replica pointers from the root layer of a CCLayerTreeHost, then that LayerChromium's m_layerTreeHost pointer
1050         refers to that CCLayerTreeHost
1051         2.) If a LayerChromium is not a root layer or reachable from a root layer of any CCLayerTreeHost, its
1052         CCLayerTreeHost pointer is nil.
1053
1054         Covered by several new layout tests in LayerChromiumTest
1055
1056         * platform/graphics/chromium/LayerChromium.cpp:
1057         (WebCore::LayerChromium::setLayerTreeHost):
1058         (WebCore::LayerChromium::setParent):
1059         (WebCore::LayerChromium::setMaskLayer):
1060         (WebCore::LayerChromium::setReplicaLayer):
1061         * platform/graphics/chromium/LayerChromium.h:
1062         * platform/graphics/chromium/TiledLayerChromium.cpp:
1063         (WebCore::TiledLayerChromium::createTile):
1064         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1065         (WebCore::CCLayerTreeHost::setRootLayer):
1066         (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
1067         (WebCore::CCLayerTreeHost::paintLayerContents):
1068         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1069
1070 2011-12-15  Sheriff Bot  <webkit.review.bot@gmail.com>
1071
1072         Unreviewed, rolling out r102652 and r102717.
1073         http://trac.webkit.org/changeset/102652
1074         http://trac.webkit.org/changeset/102717
1075         https://bugs.webkit.org/show_bug.cgi?id=74674
1076
1077         Broke too many webs. (Requested by kling on #webkit).
1078
1079         * WebCore.exp.in:
1080
1081 2011-12-15  Anders Carlsson  <andersca@apple.com>
1082
1083         Lazily create the scrolling coordinator and add a setting for enabling it
1084         https://bugs.webkit.org/show_bug.cgi?id=74667
1085
1086         Reviewed by Darin Adler.
1087
1088         * WebCore.xcodeproj/project.pbxproj:
1089         Make ScrollingCoordinator.h a private header so it can be used in WebKit.
1090         * page/Page.cpp:
1091         (WebCore::Page::Page):
1092         Don't create the scrolling coordinator.
1093
1094         (WebCore::Page::~Page):
1095         Check for a null scrolling coordinator.
1096
1097         (WebCore::Page::scrollingCoordinator):
1098         Create the scrolling coordinator lazily.
1099
1100         * page/Settings.cpp:
1101         (WebCore::Settings::Settings):
1102         * page/Settings.h:
1103         (WebCore::Settings::setScrollingCoordinatorEnabled):
1104         (WebCore::Settings::scrollingCoordinatorEnabled):
1105         Add a setting for enabling the scrolling coordinator.
1106
1107         * rendering/RenderLayerBacking.cpp:
1108         (WebCore::RenderLayerBacking::RenderLayerBacking):
1109         Use a tile cache layer for the main frame when the scrolling coordinator is neabled.
1110
1111 2011-12-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1112
1113         Unreviewed. Fix build break when data-transfer-items is enabled.
1114
1115         * platform/efl/ClipboardEfl.cpp:
1116         (WebCore::ClipboardEfl::items):
1117         * platform/efl/ClipboardEfl.h:
1118
1119 2011-12-15  Adam Barth  <abarth@webkit.org>
1120
1121         <ruby><div><p><rp> parses incorrectly
1122         https://bugs.webkit.org/show_bug.cgi?id=74668
1123
1124         Reviewed by Darin Adler.
1125
1126         This patch updates our implementation to match a change to the HTML5
1127         specification regarding how <ruby> elements parse.  Previously, <rp>
1128         and similar tags used to pop the stack up to the <ruby> element.  Now
1129         the popping does not occur.
1130
1131         Tests: html5lib/runner.html
1132
1133         * html/parser/HTMLTreeBuilder.cpp:
1134
1135 2011-12-15  Daniel Sievers  <sievers@chromium.org>
1136
1137         [Chromium] Avoid strdup() for extra argument when tracing is disabled.
1138         https://bugs.webkit.org/show_bug.cgi?id=74637
1139
1140         Reviewed by James Robinson.
1141
1142         * platform/chromium/TraceEvent.h:
1143         (WebCore::internal::ScopeTracer::ScopeTracer):
1144
1145 2011-12-15  Rafael Weinstein  <rafaelw@chromium.org>
1146
1147         [MutationObservers] Add a document-level flag that can trivially be checked to avoid doing unnessary work if mutation observers absent
1148         https://bugs.webkit.org/show_bug.cgi?id=74641
1149
1150         Reviewed by Ojan Vafai.
1151
1152         This patch adds a byte of flags to Document, of which three bits are used to signal if any
1153         node owned by the document has a Mutation Observer of the given type. This is used to
1154         reduce the cost of discovering there are none to a single (inlined) method call and bit-check.
1155         Also, a similar byte of flags which was used to optimize a particular case when mutation observers
1156         are present has been removed, with the reasoning that we should first focus on minimizing impact on
1157         the null-case before optimizing particular in-use cases.
1158
1159         Also, MutationObserverInterestGroup is broken out into its own file (which probably should have happened
1160         earlier, but now avoids a circular header dependency).
1161
1162         No tests needed. This patch is just a refactor.
1163
1164         * CMakeLists.txt:
1165         * GNUmakefile.list.am:
1166         * Target.pri:
1167         * WebCore.gypi:
1168         * WebCore.vcproj/WebCore.vcproj:
1169         * WebCore.xcodeproj/project.pbxproj:
1170         * css/CSSMutableStyleDeclaration.cpp:
1171         * dom/CharacterData.cpp:
1172         * dom/ChildListMutationScope.cpp:
1173         * dom/Document.cpp:
1174         (WebCore::Document::Document):
1175         * dom/Document.h:
1176         (WebCore::Document::hasMutationObserversOfType):
1177         (WebCore::Document::hasMutationObservers):
1178         (WebCore::Document::addMutationObserverTypes):
1179         * dom/Element.cpp:
1180         * dom/MutationObserverInterestGroup.cpp: Added.
1181         (WebCore::MutationObserverInterestGroup::createIfNeeded):
1182         (WebCore::MutationObserverInterestGroup::MutationObserverInterestGroup):
1183         (WebCore::MutationObserverInterestGroup::isOldValueRequested):
1184         (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
1185         * dom/MutationObserverInterestGroup.h: Copied from Source/WebCore/dom/WebKitMutationObserver.h.
1186         (WebCore::MutationObserverInterestGroup::createForChildListMutation):
1187         (WebCore::MutationObserverInterestGroup::createForCharacterDataMutation):
1188         (WebCore::MutationObserverInterestGroup::createForAttributesMutation):
1189         (WebCore::MutationObserverInterestGroup::hasOldValue):
1190         * dom/Node.cpp:
1191         (WebCore::Node::didMoveToNewOwnerDocument):
1192         (WebCore::Node::getRegisteredMutationObserversOfType):
1193         (WebCore::Node::notifyMutationObserversNodeWillDetach):
1194         * dom/Node.h:
1195         * dom/WebKitMutationObserver.cpp:
1196         (WebCore::WebKitMutationObserver::observe):
1197         * dom/WebKitMutationObserver.h:
1198
1199 2011-12-15  Adam Barth  <abarth@webkit.org>
1200
1201         <!DOCTYPE html><pre>&#x0a;&#x0a;A</pre> doesn't parse correctly
1202         https://bugs.webkit.org/show_bug.cgi?id=74658
1203
1204         Reviewed by Darin Adler.
1205
1206         Previously, we handled skipping newlines after <pre> in the tokenizer,
1207         which isn't how the spec handles them.  Instead, the spec skips them in
1208         the tree builder.  This isn't usually observable, except in the case of
1209         an HTML entity.  In that case, the tokenzier sees '&' (because the
1210         entity hasn't been decoded yet), but the tree builder sees '\n' (the
1211         decoded entity).  This patch fixes the bug by more closely aligning our
1212         implementation with the spec.
1213
1214         Test: html5lib/runner.html
1215
1216         * html/parser/HTMLTokenizer.cpp:
1217         (WebCore::HTMLTokenizer::reset):
1218         (WebCore::HTMLTokenizer::nextToken):
1219         * html/parser/HTMLTokenizer.h:
1220         * html/parser/HTMLTreeBuilder.cpp:
1221         (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipAtMostOneLeadingNewline):
1222         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
1223         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
1224         (WebCore::HTMLTreeBuilder::processCharacterBuffer):
1225         * html/parser/HTMLTreeBuilder.h:
1226         * xml/parser/MarkupTokenizerBase.h:
1227
1228 2011-12-15  Kenneth Russell  <kbr@google.com>
1229
1230         Unreviewed, rolling out r102989.
1231         http://trac.webkit.org/changeset/102989
1232         https://bugs.webkit.org/show_bug.cgi?id=74580
1233
1234         Caused SHOULD NOT BE REACHED assertions in debug builds.
1235
1236         * css/CSSComputedStyleDeclaration.cpp:
1237         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1238         * css/CSSPrimitiveValueMappings.h:
1239         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1240         (WebCore::CSSPrimitiveValue::operator EBoxAlignment):
1241         * css/CSSStyleSelector.cpp:
1242         (WebCore::CSSStyleSelector::applyProperty):
1243         * rendering/RenderDeprecatedFlexibleBox.cpp:
1244         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
1245         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
1246         * rendering/RenderFullScreen.cpp:
1247         (createFullScreenStyle):
1248         * rendering/style/RenderStyle.h:
1249         (WebCore::InheritedFlags::boxPack):
1250         (WebCore::InheritedFlags::setBoxAlign):
1251         (WebCore::InheritedFlags::setBoxPack):
1252         (WebCore::InheritedFlags::initialBoxPack):
1253         * rendering/style/RenderStyleConstants.h:
1254         * rendering/style/StyleDeprecatedFlexibleBoxData.h:
1255
1256 2011-12-15  Ryosuke Niwa  <rniwa@webkit.org>
1257
1258         Touch make_name.pl in an attempt to make Qt bots happy.
1259
1260         * dom/make_names.pl:
1261         (printNamesHeaderFile):
1262
1263 2011-12-15  Kentaro Hara  <haraken@chromium.org>
1264
1265         Unreviewed. Rebaselined run-bindings-tests results.
1266
1267         * bindings/scripts/test/JS/JSFloat64Array.cpp:
1268         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
1269         * bindings/scripts/test/JS/JSTestObj.cpp:
1270
1271 2011-12-15  Luke Macpherson   <macpherson@chromium.org>
1272
1273         Separate box alignment and box pack values into separate enums.
1274         https://bugs.webkit.org/show_bug.cgi?id=74580
1275
1276         Reviewed by Darin Adler.
1277
1278         No new tests / refactoring only.
1279
1280         Separating these types cleans up the code by removing several assertions that
1281         values are in the correct ranges, as this is ensured by the type system.
1282
1283         * css/CSSComputedStyleDeclaration.cpp:
1284         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1285         * css/CSSPrimitiveValueMappings.h:
1286         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1287         (WebCore::CSSPrimitiveValue::operator EBoxPack):
1288         (WebCore::CSSPrimitiveValue::operator EBoxAlignment):
1289         * css/CSSStyleSelector.cpp:
1290         (WebCore::CSSStyleSelector::applyProperty):
1291         * rendering/RenderDeprecatedFlexibleBox.cpp:
1292         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
1293         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
1294         * rendering/RenderFullScreen.cpp:
1295         (createFullScreenStyle):
1296         * rendering/style/RenderStyle.h:
1297         (WebCore::InheritedFlags::boxPack):
1298         (WebCore::InheritedFlags::setBoxAlign):
1299         (WebCore::InheritedFlags::setBoxPack):
1300         (WebCore::InheritedFlags::initialBoxPack):
1301         * rendering/style/RenderStyleConstants.h:
1302         * rendering/style/StyleDeprecatedFlexibleBoxData.h:
1303
1304 2011-12-15  Kentaro Hara  <haraken@chromium.org>
1305
1306         REGRESSION(r102663): generate-bindings.pl runs every time
1307         https://bugs.webkit.org/show_bug.cgi?id=74481
1308
1309         Reviewed by Adam Barth.
1310
1311         See the comment #1 of bug 74481 for the cause of this bug.
1312
1313         This patch fixes generate-bindings.pl so that it generates .h and .cpp files
1314         even for IDL files that do not need .h and .cpp files. This is just to prevent
1315         build scripts from trying to generate .h and .cpp files at every build.
1316
1317         No new tests. No change in behavior.
1318
1319         * bindings/scripts/generate-bindings.pl:
1320         (generateEmptyHeaderAndCpp): Generates .h and .cpp files for IDL files
1321         that do not need .h and .cpp files.
1322         * bindings/scripts/test/CPP/CPPTestSupplemental.cpp: Added.
1323         * bindings/scripts/test/CPP/CPPTestSupplemental.h: Added.
1324         * bindings/scripts/test/GObject/GObjectTestSupplemental.cpp: Added.
1325         * bindings/scripts/test/GObject/GObjectTestSupplemental.h: Added.
1326         * bindings/scripts/test/JS/JSTestSupplemental.cpp: Added.
1327         * bindings/scripts/test/JS/JSTestSupplemental.h: Added.
1328         * bindings/scripts/test/ObjC/ObjCTestSupplemental.cpp: Added.
1329         * bindings/scripts/test/ObjC/ObjCTestSupplemental.h: Added.
1330         * bindings/scripts/test/V8/V8TestSupplemental.cpp: Added.
1331         * bindings/scripts/test/V8/V8TestSupplemental.h: Added.
1332
1333 2011-12-15  Jarred Nicholls  <jarred@sencha.com>
1334
1335         Unreviewed build fix. Mac build broken when CSS Filters enabled.
1336         Needed to move Filter headers out as private headers in WebCore.framework.
1337
1338         * WebCore.xcodeproj/project.pbxproj:
1339
1340 2011-12-15  Eric Seidel  <eric@webkit.org>
1341
1342         WebCore has two (disconnected) ways to keep track of updated widgets, should be unified
1343         https://bugs.webkit.org/show_bug.cgi?id=74367
1344
1345         Reviewed by Adam Barth.
1346
1347         It seems the FrameView updateWidgets set is needed for now,
1348         so just making FrameView::addWidgetToUpdate mark the DOM node
1349         as needing a widget update and later when it goes to call
1350         updateWidget() checking first if it needs an update.
1351
1352         No new tests, just adding an assert.
1353
1354         * html/HTMLEmbedElement.cpp:
1355         (WebCore::HTMLEmbedElement::updateWidget):
1356         * html/HTMLObjectElement.cpp:
1357         (WebCore::HTMLObjectElement::updateWidget):
1358         * html/HTMLPlugInImageElement.h:
1359         (WebCore::HTMLPlugInImageElement::needsWidgetUpdate):
1360         (WebCore::HTMLPlugInImageElement::setNeedsWidgetUpdate):
1361         * page/FrameView.cpp:
1362         (WebCore::FrameView::addWidgetToUpdate):
1363         (WebCore::FrameView::updateWidget):
1364
1365 2011-12-15  Alexandru Chiculita  <achicu@adobe.com>
1366
1367         Windows project file is broken. It has a missing </File> enclosing tag
1368         https://bugs.webkit.org/show_bug.cgi?id=74632
1369
1370         Reviewed by Anders Carlsson.
1371
1372         No new tests, just fixing the project file.
1373
1374         * WebCore.vcproj/WebCore.vcproj:
1375
1376 2011-12-15  Adam Barth  <abarth@webkit.org>
1377
1378         <table><tr><td><svg><desc><td> parses incorrectly
1379         https://bugs.webkit.org/show_bug.cgi?id=68106
1380
1381         Reviewed by Eric Seidel.
1382
1383         This patch updates our implementation of the HTML5 parser to account
1384         for recent changes in the spec.  The main change in this patch is to
1385         remove the "in foreign content" state from the tree builder.  Rather
1386         than maintaining this as a separate state, the parser now introspects
1387         on the stack of open elements to determine whether the parser is in
1388         foriegn content.  In the process, I've deleted some now-unused
1389         machinery in the tree builder.
1390
1391         Tested by the html5lib LayoutTests.  These tests show the progression
1392         in our spec compliance.
1393
1394         * html/parser/HTMLElementStack.cpp:
1395         * html/parser/HTMLElementStack.h:
1396         * html/parser/HTMLTreeBuilder.cpp:
1397         * html/parser/HTMLTreeBuilder.h:
1398         * mathml/mathattrs.in:
1399
1400 2011-12-15  Ryosuke Niwa  <rniwa@webkit.org>
1401
1402         m_hasCounterNodeMap and m_everHadLayout should be private to RenderObject
1403         https://bugs.webkit.org/show_bug.cgi?id=74645
1404
1405         Reviewed by Eric Seidel.
1406
1407         Made them private and added getters and setters as needed.
1408
1409         * rendering/RenderCounter.cpp:
1410         (WebCore::makeCounterNode):
1411         (WebCore::RenderCounter::destroyCounterNodes):
1412         (WebCore::updateCounters):
1413         (WebCore::RenderCounter::rendererStyleChanged):
1414         (showCounterRendererTree):
1415         * rendering/RenderFlowThread.cpp:
1416         (WebCore::RenderFlowThread::layout):
1417         * rendering/RenderObject.h:
1418         (WebCore::RenderObject::hasCounterNodeMap):
1419         (WebCore::RenderObject::setHasCounterNodeMap):
1420         (WebCore::RenderObject::everHadLayout):
1421         * rendering/svg/RenderSVGForeignObject.cpp:
1422         (WebCore::RenderSVGForeignObject::layout):
1423         * rendering/svg/RenderSVGImage.cpp:
1424         (WebCore::RenderSVGImage::layout):
1425         * rendering/svg/RenderSVGResourceContainer.cpp:
1426         (WebCore::RenderSVGResourceContainer::layout):
1427         * rendering/svg/RenderSVGResourceMarker.cpp:
1428         (WebCore::RenderSVGResourceMarker::layout):
1429         * rendering/svg/RenderSVGRoot.cpp:
1430         (WebCore::RenderSVGRoot::layout):
1431         * rendering/svg/RenderSVGShape.cpp:
1432         (WebCore::RenderSVGShape::layout):
1433         * rendering/svg/RenderSVGText.cpp:
1434         (WebCore::RenderSVGText::layout):
1435
1436 2011-12-15  Vsevolod Vlasov  <vsevik@chromium.org>
1437
1438         Not able to navigate the Resource tab options properly with arrow keys after adding the sticky-notes.
1439         https://bugs.webkit.org/show_bug.cgi?id=72013
1440
1441         Reviewed by Pavel Feldman.
1442
1443         * inspector/front-end/DatabaseQueryView.js:
1444         (WebInspector.DatabaseQueryView):
1445         (WebInspector.DatabaseQueryView.prototype._messagesClicked):
1446         * inspector/front-end/ResourcesPanel.js:
1447         (WebInspector.DatabaseTreeElement.prototype.onexpand):
1448
1449 2011-12-15  Anders Carlsson  <andersca@apple.com>
1450
1451         Add ScrollingCoordinator class and ENABLE_THREADED_SCROLLING define
1452         https://bugs.webkit.org/show_bug.cgi?id=74639
1453
1454         Reviewed by Andreas Kling.
1455
1456         Add a ScrollingCoordinator class and make it a member of Page. Tear it down
1457         when the page goes away.
1458
1459         * WebCore.xcodeproj/project.pbxproj:
1460         * page/Page.cpp:
1461         (WebCore::Page::Page):
1462         (WebCore::Page::~Page):
1463         * page/Page.h:
1464         (WebCore::Page::scrollingCoordinator):
1465         * page/ScrollingCoordinator.cpp: Added.
1466         (WebCore::ScrollingCoordinator::create):
1467         (WebCore::ScrollingCoordinator::ScrollingCoordinator):
1468         (WebCore::ScrollingCoordinator::~ScrollingCoordinator):
1469         (WebCore::ScrollingCoordinator::pageDestroyed):
1470         * page/ScrollingCoordinator.h: Added.
1471
1472 2011-12-15  Kenneth Russell  <kbr@google.com>
1473
1474         Rename WEBKIT_lose_context to WEBKIT_WEBGL_lose_context
1475         https://bugs.webkit.org/show_bug.cgi?id=71870
1476
1477         Reviewed by James Robinson.
1478
1479         Re-landing after original commit was rolled out.
1480
1481         Rename largely done with do-webcore-rename with a couple of
1482         necessary manual fixups. Ran WebGL layout tests.
1483
1484         * CMakeLists.txt:
1485         * DerivedSources.make:
1486         * DerivedSources.pri:
1487         * GNUmakefile.list.am:
1488         * Target.pri:
1489         * WebCore.gypi:
1490         * WebCore.xcodeproj/project.pbxproj:
1491         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1492         (WebCore::toJS):
1493         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
1494         (WebCore::toV8Object):
1495         * html/canvas/WebGLExtension.h:
1496         * html/canvas/WebGLLoseContext.cpp: Copied from Source/WebCore/html/canvas/WebKitLoseContext.cpp.
1497         (WebCore::WebGLLoseContext::WebGLLoseContext):
1498         (WebCore::WebGLLoseContext::~WebGLLoseContext):
1499         (WebCore::WebGLLoseContext::getName):
1500         (WebCore::WebGLLoseContext::create):
1501         (WebCore::WebGLLoseContext::loseContext):
1502         (WebCore::WebGLLoseContext::restoreContext):
1503         * html/canvas/WebGLLoseContext.h: Copied from Source/WebCore/html/canvas/WebKitLoseContext.h.
1504         * html/canvas/WebGLLoseContext.idl: Copied from Source/WebCore/html/canvas/WebKitLoseContext.idl.
1505         * html/canvas/WebGLRenderingContext.cpp:
1506         (WebCore::WebGLRenderingContext::getExtension):
1507         (WebCore::WebGLRenderingContext::getSupportedExtensions):
1508         (WebCore::WebGLRenderingContext::maybeRestoreContext):
1509         * html/canvas/WebGLRenderingContext.h:
1510         * html/canvas/WebKitLoseContext.cpp: Removed.
1511         * html/canvas/WebKitLoseContext.h: Removed.
1512         * html/canvas/WebKitLoseContext.idl: Removed.
1513
1514 2011-12-15  Brady Eidson  <beidson@apple.com>
1515
1516         https://bugs.webkit.org/show_bug.cgi?id=74631
1517         HTMLMediaElement should not register for document activation callbacks as it doesn't use them
1518
1519         Reviewed by Eric Carlson.
1520
1521         No new tests. (No behavior change, pruning useless code)
1522
1523         * html/HTMLMediaElement.cpp:
1524         (WebCore::HTMLMediaElement::HTMLMediaElement):
1525         (WebCore::HTMLMediaElement::~HTMLMediaElement):
1526         (WebCore::HTMLMediaElement::willMoveToNewOwnerDocument):
1527         (WebCore::HTMLMediaElement::didMoveToNewOwnerDocument):
1528
1529 2011-12-15  Eric Carlson  <eric.carlson@apple.com>
1530
1531         Text tracks should be treated differently according to their kind
1532         https://bugs.webkit.org/show_bug.cgi?id=72547
1533
1534         Reviewed by Sam Weinig.
1535
1536         Tests: media/track/track-default-attribute.html
1537                media/track/track-mode-not-changed-by-new-track.html
1538                media/track/track-mode-triggers-loading.html
1539
1540         * html/HTMLAudioElement.cpp:
1541         (WebCore::HTMLAudioElement::HTMLAudioElement): Add "createdByParser" parameter.
1542         (WebCore::HTMLAudioElement::create): Ditto.
1543         (WebCore::HTMLAudioElement::createForJSConstructor): Deal with constructor change.
1544         * html/HTMLAudioElement.h:
1545
1546         * html/HTMLMediaElement.cpp:
1547         (WebCore::HTMLMediaElement::HTMLMediaElement): Add "createdByParser" parameter. Initialize m_parsingInProgress.
1548         (WebCore::HTMLMediaElement::finishParsingChildren): Clear m_parsingInProgress. Schedule track
1549             loading if necessary.
1550         (WebCore::HTMLMediaElement::loadTimerFired): Call configureTextTracks not call scheduleLoad, 
1551             it just schedules the load timer again.
1552         (WebCore::HTMLMediaElement::prepareForLoad): Add all non-disabled track elements to a vector
1553             so we can prevent the media element's readyState from reaching HAVE_METADATA until the
1554             tracks are ready.
1555         (WebCore::HTMLMediaElement::textTracksAreReady): New. Return false unless all tracks that were
1556             not disabled when loading started have loaded or failed.
1557         (WebCore::HTMLMediaElement::textTrackReadyStateChanged): Call setReadyState when a track is
1558             stops loading.
1559         (WebCore::HTMLMediaElement::textTrackModeChanged): Trigger <track> loading when the mode
1560             changes to hidden or showing for the first time.
1561         (WebCore::HTMLMediaElement::setReadyState): Do not advance to HAVE_METADATA or higher while
1562             track elements are loading.
1563         (WebCore::HTMLMediaElement::addTrack): Removed.
1564         (WebCore::HTMLMediaElement::showingTrackWithSameKind): New.
1565         (WebCore::HTMLMediaElement::trackWasAdded):
1566         (WebCore::HTMLMediaElement::trackWillBeRemoved): Flag a track as unconfigured so it will be
1567             reconfigured if it is added to another element.
1568         (WebCore::HTMLMediaElement::userIsInterestedInThisLanguage): New.
1569         (WebCore::HTMLMediaElement::userIsInterestedInThisTrack): New. Consider user preferences.
1570         (WebCore::HTMLMediaElement::configureTextTrack): New. Configure a track as per the user's preferences.
1571         (WebCore::HTMLMediaElement::configureTextTracks): New. Configure all track elements.
1572         * html/HTMLMediaElement.h:
1573         * html/HTMLMediaElement.h:
1574
1575         * html/HTMLTagNames.in: Add constructorNeedsCreatedByParser to audio and video.
1576
1577         * html/HTMLTrackElement.cpp:
1578         (WebCore::HTMLTrackElement::HTMLTrackElement): Initialize m_hasBeenConfigured.
1579         * html/HTMLTrackElement.h:
1580         (WebCore::HTMLTrackElement::hasBeenConfigured):
1581         (WebCore::HTMLTrackElement::setHasBeenConfigured):
1582
1583         * html/HTMLVideoElement.cpp:
1584         (WebCore::HTMLVideoElement::HTMLVideoElement): Add "createdByParser" parameter.
1585         (WebCore::HTMLVideoElement::create): Ditto.
1586         * html/HTMLVideoElement.h:
1587
1588         * html/TextTrack.cpp:
1589         (WebCore::TextTrack::TextTrack): Initialize m_mode to DISABLED, not HIDDEN. Initialize m_showingByDefault.
1590         (WebCore::TextTrack::setMode): Clear the "showing by default" flag when a track's mode is
1591             explicitly set to SHOWING.
1592         (WebCore::TextTrack::mode): Return SHOWING whenever the "showing by default" flag is set.
1593         * html/TextTrack.h:
1594         (WebCore::TextTrack::showingByDefault):
1595         (WebCore::TextTrack::setShowingByDefault):
1596
1597         * html/TextTrackCue.cpp:
1598         (WebCore::TextTrackCue::isActive): Return false if a cue has no track, or if its track is disabled.
1599         (WebCore::TextTrackCue::setIsActive): Don't enable a cue if it has no track, or if its track
1600             is disabled.
1601
1602 2011-12-15  Brady Eidson  <beidson@apple.com>
1603
1604         Unreviewed, rolling out r102829.
1605         http://trac.webkit.org/changeset/102829
1606         https://bugs.webkit.org/show_bug.cgi?id=74533
1607
1608         Caused https://bugs.webkit.org/show_bug.cgi?id=74555
1609
1610         * html/HTMLPlugInImageElement.cpp:
1611         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
1612         (WebCore::HTMLPlugInImageElement::willMoveToNewOwnerDocument):
1613         (WebCore::HTMLPlugInImageElement::didMoveToNewOwnerDocument):
1614         (WebCore::HTMLPlugInImageElement::documentWillBecomeInactive):
1615         (WebCore::HTMLPlugInImageElement::documentDidBecomeActive):
1616         * html/HTMLPlugInImageElement.h:
1617
1618 2011-12-15  James Simonsen  <simonjam@chromium.org>
1619
1620         [Navigation Timing] Use monotonicallyIncreasingTime() instead of currentTime()
1621         https://bugs.webkit.org/show_bug.cgi?id=58354
1622
1623         Reviewed by Pavel Feldman.
1624
1625         No new tests. Relies on existing webtiming-* tests.
1626
1627         * CMakeLists.txt:
1628         * GNUmakefile.list.am:
1629         * WebCore.gypi:
1630         * WebCore.pro:
1631         * WebCore.vcproj/WebCore.vcproj:
1632         * WebCore.xcodeproj/project.pbxproj:
1633         * dom/Document.cpp: Use monotonic times.
1634         (WebCore::Document::setReadyState):
1635         (WebCore::Document::finishedParsing):
1636         * inspector/InspectorInstrumentation.cpp:
1637         (WebCore::InspectorInstrumentation::didFinishLoadingImpl): Convert monotonicFinishTime to wall time if needed.
1638         * inspector/InspectorResourceAgent.cpp:
1639         (WebCore::buildObjectForTiming): Convert monotonic requestTime to wall time.
1640         (WebCore::buildObjectForResourceResponse): Plumbing for above.
1641         (WebCore::buildObjectForCachedResource): Ditto.
1642         (WebCore::InspectorResourceAgent::willSendRequest): Ditto.
1643         (WebCore::InspectorResourceAgent::didReceiveResponse): Ditto.
1644         (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache): Ditto.
1645         * loader/DocumentLoadTiming.cpp: Added.
1646         (WebCore::DocumentLoadTiming::DocumentLoadTiming):
1647         (WebCore::DocumentLoadTiming::setNavigationStart): Determine reference time and root reference time.
1648         (WebCore::DocumentLoadTiming::addRedirect): Moved logic from MainResourceLoader.
1649         (WebCore::DocumentLoadTiming::convertMonotonicTimeToDocumentTime): Helper to compute wall time from monotonic time.
1650         * loader/DocumentLoadTiming.h: Turned into class. Made times monotonic.
1651         (WebCore::DocumentLoadTiming::setUnloadEventStart):
1652         (WebCore::DocumentLoadTiming::setUnloadEventEnd):
1653         (WebCore::DocumentLoadTiming::setRedirectStart):
1654         (WebCore::DocumentLoadTiming::setRedirectEnd):
1655         (WebCore::DocumentLoadTiming::setFetchStart):
1656         (WebCore::DocumentLoadTiming::setResponseEnd):
1657         (WebCore::DocumentLoadTiming::setLoadEventStart):
1658         (WebCore::DocumentLoadTiming::setLoadEventEnd):
1659         (WebCore::DocumentLoadTiming::setHasSameOriginAsPreviousDocument):
1660         (WebCore::DocumentLoadTiming::navigationStart):
1661         (WebCore::DocumentLoadTiming::unloadEventStart):
1662         (WebCore::DocumentLoadTiming::unloadEventEnd):
1663         (WebCore::DocumentLoadTiming::redirectStart):
1664         (WebCore::DocumentLoadTiming::redirectEnd):
1665         (WebCore::DocumentLoadTiming::redirectCount):
1666         (WebCore::DocumentLoadTiming::fetchStart):
1667         (WebCore::DocumentLoadTiming::responseEnd):
1668         (WebCore::DocumentLoadTiming::loadEventStart):
1669         (WebCore::DocumentLoadTiming::loadEventEnd):
1670         (WebCore::DocumentLoadTiming::hasCrossOriginRedirect):
1671         (WebCore::DocumentLoadTiming::hasSameOriginAsPreviousDocument):
1672         * loader/FrameLoader.cpp:
1673         (WebCore::FrameLoader::stopLoading):
1674         (WebCore::FrameLoader::commitProvisionalLoad):
1675         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm):
1676         (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
1677         * loader/MainResourceLoader.cpp:
1678         (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
1679         (WebCore::MainResourceLoader::willSendRequest): Moved logic to DocumentLoadTiming.
1680         (WebCore::MainResourceLoader::didReceiveData): Use monotonic time.
1681         (WebCore::MainResourceLoader::didFinishLoading): Ditto.
1682         (WebCore::MainResourceLoader::load):
1683         * page/DOMWindow.cpp:
1684         (WebCore::DOMWindow::dispatchLoadEvent):
1685         * page/DOMWindow.h: Removed dispatchTimedEvent. It doesn't really help in the new model.
1686         * page/PerformanceNavigation.cpp:
1687         (WebCore::PerformanceNavigation::redirectCount):
1688         * page/PerformanceTiming.cpp: Removed skew correction code. This should never happen now.
1689         (WebCore::PerformanceTiming::navigationStart):
1690         (WebCore::PerformanceTiming::unloadEventStart):
1691         (WebCore::PerformanceTiming::unloadEventEnd):
1692         (WebCore::PerformanceTiming::redirectStart):
1693         (WebCore::PerformanceTiming::redirectEnd):
1694         (WebCore::PerformanceTiming::fetchStart):
1695         (WebCore::PerformanceTiming::responseEnd):
1696         (WebCore::PerformanceTiming::domLoading):
1697         (WebCore::PerformanceTiming::domInteractive):
1698         (WebCore::PerformanceTiming::domContentLoadedEventStart):
1699         (WebCore::PerformanceTiming::domContentLoadedEventEnd):
1700         (WebCore::PerformanceTiming::domComplete):
1701         (WebCore::PerformanceTiming::loadEventStart):
1702         (WebCore::PerformanceTiming::loadEventEnd):
1703         (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute): Used for ResourceLoadTiming.
1704         (WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds): Used for DocumentTiming and DocumentLoadTiming.
1705         * page/PerformanceTiming.h:
1706         * platform/network/ResourceLoadTiming.cpp:
1707         (WebCore::ResourceLoadTiming::convertResourceLoadTimeToDocumentTime):
1708         * platform/network/ResourceLoadTiming.h: Added helper function to convert to wall times. Added instructions for use.
1709
1710 2011-12-15  Martin Robinson  <mrobinson@igalia.com>
1711
1712         plugin crash
1713
1714         [GTK] Plugins sometimes crash WebKitGTK+ with Gdk-CRITICAL **: gdk_window_get_toplevel: assertion `GDK_IS_WINDOW (window)' failed
1715         https://bugs.webkit.org/show_bug.cgi?id=73719
1716
1717         Reviewed by Philippe Normand.
1718
1719         No new tests. It's difficult to test or reproduce this exact situation
1720         as it only occurs when running plugins under nspluginwrapper.
1721
1722         * plugins/gtk/PluginViewGtk.cpp:
1723         (WebCore::PluginView::platformGetValue): Properly handle when the plugin tries to
1724         get the window value when the GtkSocket is no longer realized.
1725
1726 2011-12-15  Martin Kosiba  <mkosiba@google.com>
1727
1728         Fix find on web pages with -webkit-user-select: none for Chromium
1729         https://bugs.webkit.org/show_bug.cgi?id=72281
1730
1731         Reviewed by Ryosuke Niwa.
1732
1733         Adding findStringAndScrollToVisible to Editor. This new method returns
1734         the new match as a range rather than modify the active selection.
1735
1736         Test: editing/text-iterator/findString-selection-disabled.html
1737
1738         * editing/Editor.cpp:
1739         (WebCore::Editor::findStringAndScrollToVisible):
1740         * editing/Editor.h:
1741
1742 2011-12-14  Anders Carlsson  <andersca@apple.com>
1743
1744         Add WTF::Function to wtf/Forward.h
1745         https://bugs.webkit.org/show_bug.cgi?id=74576
1746
1747         Reviewed by Adam Roben.
1748
1749         * bindings/scripts/CodeGeneratorJS.pm:
1750         (GenerateImplementation):
1751         Add a JSC:: qualifier to the Function flags to avoid ambiguities.
1752
1753 2011-12-15  Julien Chaffraix  <jchaffraix@webkit.org>
1754
1755         Hardware-backed renderLayer could avoid repainting during a positioned movement layout
1756         https://bugs.webkit.org/show_bug.cgi?id=74370
1757
1758         Reviewed by Simon Fraser.
1759
1760         Tests: compositing/absolute-position-changed-in-composited-layer.html
1761                compositing/absolute-position-changed-with-composited-parent-layer.html
1762                compositing/fixed-position-changed-in-composited-layer.html
1763                compositing/fixed-position-changed-within-composited-parent-layer.html
1764
1765         To be able to properly skip repainting after a positioned movement layout only, we
1766         needed to add more state to the current |setNeedsFullRepaint| method. As part of that
1767         we refactored the callers and internal fields to better match the new meaning.
1768
1769         * rendering/RenderBoxModelObject.cpp:
1770         (WebCore::RenderBoxModelObject::styleDidChange):
1771         Explicitely gave the RepaintStatus to setRepaintStatus.
1772
1773         * rendering/RenderLayer.cpp:
1774         (WebCore::RenderLayer::RenderLayer):
1775         (WebCore::RenderLayer::removeOnlyThisLayer):
1776         Updated those function after the renamings.
1777
1778         (WebCore::RenderLayer::updateLayerPositions):
1779         Ditto. Also added a sholdRepaintAfterLayout check.
1780
1781         (WebCore::RenderLayer::shouldRepaintAfterLayout):
1782         Heart of the optimization, if we just did a positioned movement layout of composited RenderLayer,
1783         then don't repaint. All the other cases should still trigger a repaint.
1784
1785         * rendering/RenderLayer.h:
1786         (WebCore::RenderLayer::setRepaintStatus):
1787         Renamed setNeedsFullRepaint to setRepaintStatus. Also added a new enum RepaintStatus.
1788
1789         * rendering/RenderObject.cpp:
1790         (WebCore::RenderObject::setLayerNeedsFullRepaint):
1791         Updated after the renamings.
1792
1793         (WebCore::RenderObject::setLayerNeedsFullRepaintForPositionedMovementLayout):
1794         New method that pass a new value to the RenderLayer.
1795
1796         * rendering/RenderObject.h:
1797         (WebCore::RenderObject::setNeedsPositionedMovementLayout):
1798         Switched the call to the dedicated method.
1799
1800 2011-12-15  Antti Koivisto  <antti@apple.com>
1801
1802         Don't invoke CSSStyleSelector::pushParent before Text::recalcTextStyle
1803         https://bugs.webkit.org/show_bug.cgi?id=74575
1804
1805         Reviewed by Darin Adler.
1806         
1807         Text::recalcTextStyle never enters the style selector so pushing the state is not necessary
1808
1809         * dom/Element.cpp:
1810         (WebCore::Element::recalcStyle):
1811
1812 2011-12-15  Chris Marrin  <cmarrin@apple.com>
1813
1814         Fixed error in Target.pri.
1815
1816         Unreviewed.
1817
1818         * Target.pri:
1819
1820 2011-12-15  Alexander Pavlov  <apavlov@chromium.org>
1821
1822         Web Inspector: #hex colors are not highlighted in CSS files
1823         https://bugs.webkit.org/show_bug.cgi?id=74570
1824
1825         Reviewed by Pavel Feldman.
1826
1827         Drive by: highlight color keywords as colors, not as keywords.
1828
1829         * inspector/front-end/CSSKeywordCompletions.js:
1830         (WebInspector.CSSKeywordCompletions.colors):
1831         * inspector/front-end/SourceCSSTokenizer.js:
1832         (WebInspector.SourceCSSTokenizer):
1833         (WebInspector.SourceCSSTokenizer.prototype.nextToken):
1834         * inspector/front-end/SourceCSSTokenizer.re2js:
1835
1836 2011-12-14  Chris Marrin  <cmarrin@apple.com>
1837
1838         Hardware acceleration of W3C Filter Effects
1839         https://bugs.webkit.org/show_bug.cgi?id=68479
1840
1841         Reviewed by Simon Fraser.
1842
1843         Move FilterOperation(s) to platform/graphics/filters so it can be used to pass filter information 
1844         down to GraphicsLayer for hardware acceleration. This leaves the CustomFilterOperation subclass in
1845         rendering/style since it has dependencies outside platform. Some part of that class will
1846         eventually need to be down in platform.
1847
1848         * CMakeLists.txt:
1849         * GNUmakefile.list.am:
1850         * Target.pri:
1851         * WebCore.gypi:
1852         * WebCore.vcproj/WebCore.vcproj:
1853         * WebCore.xcodeproj/project.pbxproj:
1854         * platform/graphics/filters/FilterOperation.cpp: Renamed from Source/WebCore/rendering/style/FilterOperation.cpp.
1855         (WebCore::BasicColorMatrixFilterOperation::blend):
1856         (WebCore::BasicColorMatrixFilterOperation::passthroughAmount):
1857         (WebCore::BasicComponentTransferFilterOperation::blend):
1858         (WebCore::BasicComponentTransferFilterOperation::passthroughAmount):
1859         (WebCore::GammaFilterOperation::blend):
1860         (WebCore::BlurFilterOperation::blend):
1861         (WebCore::DropShadowFilterOperation::blend):
1862         * platform/graphics/filters/FilterOperation.h: Renamed from Source/WebCore/rendering/style/FilterOperation.h.
1863         (WebCore::FilterOperation::~FilterOperation):
1864         (WebCore::FilterOperation::operator!=):
1865         (WebCore::FilterOperation::blend):
1866         (WebCore::FilterOperation::getOperationType):
1867         (WebCore::FilterOperation::isSameType):
1868         (WebCore::FilterOperation::FilterOperation):
1869         (WebCore::PassthroughFilterOperation::create):
1870         (WebCore::PassthroughFilterOperation::operator==):
1871         (WebCore::PassthroughFilterOperation::PassthroughFilterOperation):
1872         (WebCore::ReferenceFilterOperation::create):
1873         (WebCore::ReferenceFilterOperation::reference):
1874         (WebCore::ReferenceFilterOperation::operator==):
1875         (WebCore::ReferenceFilterOperation::ReferenceFilterOperation):
1876         (WebCore::BasicColorMatrixFilterOperation::create):
1877         (WebCore::BasicColorMatrixFilterOperation::amount):
1878         (WebCore::BasicColorMatrixFilterOperation::operator==):
1879         (WebCore::BasicColorMatrixFilterOperation::BasicColorMatrixFilterOperation):
1880         (WebCore::BasicComponentTransferFilterOperation::create):
1881         (WebCore::BasicComponentTransferFilterOperation::amount):
1882         (WebCore::BasicComponentTransferFilterOperation::operator==):
1883         (WebCore::BasicComponentTransferFilterOperation::BasicComponentTransferFilterOperation):
1884         (WebCore::GammaFilterOperation::create):
1885         (WebCore::GammaFilterOperation::amplitude):
1886         (WebCore::GammaFilterOperation::exponent):
1887         (WebCore::GammaFilterOperation::offset):
1888         (WebCore::GammaFilterOperation::operator==):
1889         (WebCore::GammaFilterOperation::GammaFilterOperation):
1890         (WebCore::BlurFilterOperation::create):
1891         (WebCore::BlurFilterOperation::stdDeviationX):
1892         (WebCore::BlurFilterOperation::stdDeviationY):
1893         (WebCore::BlurFilterOperation::operator==):
1894         (WebCore::BlurFilterOperation::BlurFilterOperation):
1895         (WebCore::SharpenFilterOperation::create):
1896         (WebCore::SharpenFilterOperation::amount):
1897         (WebCore::SharpenFilterOperation::radius):
1898         (WebCore::SharpenFilterOperation::threshold):
1899         (WebCore::SharpenFilterOperation::operator==):
1900         (WebCore::SharpenFilterOperation::SharpenFilterOperation):
1901         (WebCore::DropShadowFilterOperation::create):
1902         (WebCore::DropShadowFilterOperation::x):
1903         (WebCore::DropShadowFilterOperation::y):
1904         (WebCore::DropShadowFilterOperation::stdDeviation):
1905         (WebCore::DropShadowFilterOperation::color):
1906         (WebCore::DropShadowFilterOperation::operator==):
1907         (WebCore::DropShadowFilterOperation::DropShadowFilterOperation):
1908         * platform/graphics/filters/FilterOperations.cpp: Renamed from Source/WebCore/rendering/style/FilterOperations.cpp.
1909         (WebCore::FilterOperations::FilterOperations):
1910         (WebCore::FilterOperations::operator==):
1911         (WebCore::FilterOperations::operationsMatch):
1912         * platform/graphics/filters/FilterOperations.h: Renamed from Source/WebCore/rendering/style/FilterOperations.h.
1913         (WebCore::FilterOperations::operator!=):
1914         (WebCore::FilterOperations::clear):
1915         (WebCore::FilterOperations::operations):
1916         (WebCore::FilterOperations::size):
1917         (WebCore::FilterOperations::at):
1918
1919 2011-12-15  Igor Oliveira  <igor.oliveira@openbossa.org>
1920
1921         [Qt] Support requestAnimationFrame API
1922         https://bugs.webkit.org/show_bug.cgi?id=74528
1923
1924         Add necessary files to Target.pri when enabling requestAnimationFrame option.
1925
1926         Reviewed by Kenneth Rohde Christiansen.
1927
1928         * Target.pri:
1929
1930 2011-12-15  Otto Cheung  <ocheung@rim.com>
1931
1932         Removing BlackBerryCookieCache from the build system
1933         https://bugs.webkit.org/show_bug.cgi?id=74318
1934
1935         Reviewed by Rob Buis.
1936
1937         Removing any references to BlackBerryCookieCache in files that are upstreamed.
1938
1939         We are removing the BlackBerryCookieCache because the CookieManager cookie structure has been
1940         refactored to have a similar structure to the cache. Since the read speeds in both structures
1941         are similar, we no longer need the cache to speed up read performance.
1942
1943         No new tests, this patch by itself will not work. This patch is only removing
1944         the references to BlackBerryCookieCache in files that are upstreamed.
1945
1946         * PlatformBlackBerry.cmake:
1947         * platform/network/blackberry/NetworkJob.cpp:
1948         (WebCore::NetworkJob::handleNotifyHeaderReceived):
1949
1950 2011-12-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1951
1952         [Qt] Mobile theme improvements
1953
1954         Rubberstamped by Simon Hausmann.
1955
1956         - Invert the gradient on the checkboxes
1957         - Make the buttons on the multi select combobox work on floats
1958         - Mini cleanups
1959
1960         * platform/qt/RenderThemeQtMobile.cpp:
1961         (WebCore::StylePainterMobile::drawCheckableBackground):
1962         (WebCore::StylePainterMobile::drawMultipleComboButton):
1963         (WebCore::StylePainterMobile::getButtonImageSize):
1964         (WebCore::StylePainterMobile::drawComboBox):
1965
1966 2011-12-15  Peter Rybin  <peter.rybin@gmail.com>
1967
1968         Web Inspector: CodeGeneratorInspector.py convert script conditions to precompiler #ifs
1969         https://bugs.webkit.org/show_bug.cgi?id=74534
1970
1971         Reviewed by Pavel Feldman.
1972
1973         Generator is rewritten to add #if's to output.
1974
1975         * inspector/CodeGeneratorInspector.py:
1976         (DomainNameFixes.get_fixed_data.Res.get_guard.Guard.generate_open):
1977         (DomainNameFixes.get_fixed_data.Res.get_guard.Guard):
1978         (DomainNameFixes.get_fixed_data.Res.get_guard.Guard.generate_close):
1979         (DomainNameFixes.get_fixed_data.Res):
1980         (DomainNameFixes.get_fixed_data.Res.get_guard):
1981         (Generator.go):
1982         (Generator.process_event):
1983         (Generator.process_command):
1984         (Generator.process_types):
1985
1986 2011-12-15  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
1987
1988         [Qt][WK2] Setting Download as action for navigation request crashes WebProcess
1989         https://bugs.webkit.org/show_bug.cgi?id=74526
1990
1991         Reviewed by Simon Hausmann.
1992
1993         Adding checks for networkcontext and networkAccessManager
1994         and return true in case they don't exist, following the same
1995         logic as if the CookieJar doesn't exist.
1996
1997         * platform/qt/ThirdPartyCookiesQt.cpp:
1998         (WebCore::thirdPartyCookiePolicyPermits):
1999
2000 2011-12-14  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2001
2002         [Qt] Get rid of layering violation in PluginViewQt
2003
2004         PluginViewQt has a layering violation in relying on QWebPagePrivate for
2005         the check if running under DRT. We remove this and add a specific flag
2006         in the PluginView for this check, enabled from DRTSupport. This isn't
2007         pretty, but an improvement over what's currently there.
2008
2009         Reviewed by Simon Hausmann.
2010
2011         * plugins/PluginView.h:
2012         * plugins/qt/PluginViewQt.cpp:
2013         (WebCore::PluginView::updatePluginWidget):
2014         (WebCore::setXKeyEventSpecificFields):
2015
2016 2011-12-14  Vsevolod Vlasov  <vsevik@chromium.org>
2017
2018         Web Inspector: Console should show network messages origins.
2019         https://bugs.webkit.org/show_bug.cgi?id=74521
2020
2021         Reviewed by Pavel Feldman.
2022
2023         * inspector/front-end/ConsoleMessage.js:
2024         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
2025
2026 2011-12-15  Rakesh KN  <rakesh.kn@motorola.com>
2027
2028         "user-select none" causes selection to incorrectly escape from clicked container
2029         https://bugs.webkit.org/show_bug.cgi?id=57289
2030
2031         Reviewed by Ryosuke Niwa.
2032
2033         Not selecting the nearest word from the target node if target node has -webkit-user-select:none
2034
2035         Test: fast/events/mouse-double-triple-click-should-not-select-next-node-for-user-select-none.html
2036
2037         * page/EventHandler.cpp:
2038         (WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart):
2039         If target node has webkit-user-select:none style then do not update the selection.
2040
2041 2011-12-13  Andrey Kosyakov  <caseq@chromium.org>
2042
2043         Web Inspector: Generated HAR is missing pages.startedDateTime
2044         https://bugs.webkit.org/show_bug.cgi?id=74188
2045
2046         Reviewed by Pavel Feldman.
2047
2048         * inspector/front-end/HAREntry.js:
2049         (WebInspector.HARLog.prototype._buildPages):
2050         * inspector/front-end/NetworkLog.js:
2051         (WebInspector.NetworkLog):
2052         (WebInspector.NetworkLog.prototype.get mainResourceStartTime):
2053         (WebInspector.NetworkLog.prototype._mainFrameNavigated):
2054         * inspector/front-end/NetworkPanel.js:
2055         (WebInspector.NetworkLogView.prototype._updateSummaryBar):
2056
2057 2011-12-15  Kenichi Ishibashi  <bashi@chromium.org>
2058
2059         Supports Unicode variation selector
2060         https://bugs.webkit.org/show_bug.cgi?id=50999
2061
2062         Reviewed by Nikolas Zimmermann.
2063
2064         Adds SimpleFontData::updateGlyphWithVariationSelector() which substitutes the
2065         glyph in question based on the selector. WidthIterator::advance() calls it
2066         when an unicode variation selector follows the character.
2067
2068         Test: fast/text/unicode-variation-selector.html
2069
2070         * platform/graphics/SimpleFontData.h: Added updateGlyphWithVariationSelector().
2071         * platform/graphics/SurrogatePairAwareTextIterator.cpp:
2072         (WebCore::isUnicodeBMPVariationSelector): Added.
2073         (WebCore::isUnicodeSupplementaryVariationSelector): Added.
2074         (WebCore::SurrogatePairAwareTextIterator::hasTrailingVariationSelector): Added.
2075         * platform/graphics/SurrogatePairAwareTextIterator.h:
2076         * platform/graphics/WidthIterator.cpp:
2077         (WebCore::WidthIterator::advance): Changed to detect variation selectors.
2078         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
2079         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Added.
2080         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
2081         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2082         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
2083         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2084         * platform/graphics/mac/SimpleFontDataMac.mm:
2085         (WebCore::decomposeToUTF16): Ditto.
2086         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2087         * platform/graphics/pango/SimpleFontDataPango.cpp:
2088         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2089         * platform/graphics/qt/SimpleFontDataQt.cpp:
2090         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2091         * platform/graphics/win/SimpleFontDataWin.cpp:
2092         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2093         * platform/graphics/wince/SimpleFontDataWinCE.cpp:
2094         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2095         * platform/graphics/wx/SimpleFontDataWx.cpp:
2096         (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
2097
2098 2011-12-15  Alexander Pavlov  <apavlov@chromium.org>
2099
2100         [v8] Expose the "filter" property in V8CSSStyleDeclaration
2101         https://bugs.webkit.org/show_bug.cgi?id=73426
2102
2103         Reviewed by Adam Barth.
2104
2105         Test: fast/css/style-enumerate-properties.html
2106
2107         The "filter" CSS property used to be masked to be compliant with JSC, but JSC has supported
2108         this property for quite a while.
2109
2110         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
2111         (WebCore::hasCSSPropertyNamePrefix): clean up WTF prefixes
2112         (WebCore::cssPropertyInfo): remove the "wasFilter" flag
2113         (WebCore::V8CSSStyleDeclaration::namedPropertyEnumerator): remove the "filter" check
2114         (WebCore::V8CSSStyleDeclaration::namedPropertyGetter): return the "filter" value as v8String
2115
2116 2011-12-15  Hajime Morrita  <morrita@chromium.org>
2117
2118         Unreviewed build fix attempt for Chromium Mac.
2119
2120         * page/PerformanceTiming.h:
2121
2122 2011-12-15  Alexander Pavlov  <apavlov@chromium.org>
2123
2124         Unreviewed, build fix after r102906 (poor merge).
2125
2126         * inspector/front-end/ProfileView.js:
2127         (WebInspector.CPUProfileType.prototype.buttonClicked):
2128
2129 2011-12-15  Vsevolod Vlasov  <vsevik@chromium.org>
2130
2131         Unreviewed revert of r102696 ([Navigation Timing] Use monotonicallyIncreasingTime() instead of currentTime()).
2132         Breaks inspector's network panel timeline on chromium.
2133
2134         * CMakeLists.txt:
2135         * GNUmakefile.list.am:
2136         * Target.pri:
2137         * WebCore.gypi:
2138         * WebCore.vcproj/WebCore.vcproj:
2139         * WebCore.xcodeproj/project.pbxproj:
2140         * dom/Document.cpp:
2141         (WebCore::Document::setReadyState):
2142         (WebCore::Document::finishedParsing):
2143         * inspector/InspectorInstrumentation.cpp:
2144         (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
2145         * inspector/InspectorResourceAgent.cpp:
2146         (WebCore::buildObjectForTiming):
2147         (WebCore::buildObjectForResourceResponse):
2148         (WebCore::buildObjectForCachedResource):
2149         (WebCore::InspectorResourceAgent::willSendRequest):
2150         (WebCore::InspectorResourceAgent::didReceiveResponse):
2151         (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
2152         * loader/DocumentLoadTiming.cpp: Removed.
2153         * loader/DocumentLoadTiming.h:
2154         (WebCore::DocumentLoadTiming::DocumentLoadTiming):
2155         * loader/FrameLoader.cpp:
2156         (WebCore::FrameLoader::stopLoading):
2157         (WebCore::FrameLoader::commitProvisionalLoad):
2158         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm):
2159         (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
2160         * loader/MainResourceLoader.cpp:
2161         (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
2162         (WebCore::MainResourceLoader::willSendRequest):
2163         (WebCore::MainResourceLoader::didReceiveData):
2164         (WebCore::MainResourceLoader::didFinishLoading):
2165         (WebCore::MainResourceLoader::load):
2166         * page/DOMWindow.cpp:
2167         (WebCore::DOMWindow::dispatchLoadEvent):
2168         (WebCore::DOMWindow::dispatchTimedEvent):
2169         * page/DOMWindow.h:
2170         * page/PerformanceNavigation.cpp:
2171         (WebCore::PerformanceNavigation::redirectCount):
2172         * page/PerformanceTiming.cpp:
2173         (WebCore::getPossiblySkewedTimeInKnownRange):
2174         (WebCore::PerformanceTiming::navigationStart):
2175         (WebCore::PerformanceTiming::unloadEventStart):
2176         (WebCore::PerformanceTiming::unloadEventEnd):
2177         (WebCore::PerformanceTiming::redirectStart):
2178         (WebCore::PerformanceTiming::redirectEnd):
2179         (WebCore::PerformanceTiming::fetchStart):
2180         (WebCore::PerformanceTiming::responseEnd):
2181         (WebCore::PerformanceTiming::domLoading):
2182         (WebCore::PerformanceTiming::domInteractive):
2183         (WebCore::PerformanceTiming::domContentLoadedEventStart):
2184         (WebCore::PerformanceTiming::domContentLoadedEventEnd):
2185         (WebCore::PerformanceTiming::domComplete):
2186         (WebCore::PerformanceTiming::loadEventStart):
2187         (WebCore::PerformanceTiming::loadEventEnd):
2188         (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
2189         * page/PerformanceTiming.h:
2190         * platform/network/ResourceLoadTiming.cpp: Removed.
2191         * platform/network/ResourceLoadTiming.h:
2192
2193 2011-12-15  Alexander Pavlov  <apavlov@chromium.org>
2194
2195         Unreviewed, fix Closure compiler warnings after r102905.
2196
2197         * inspector/front-end/CSSStyleModel.js: Add JSDoc annotations
2198
2199 2011-12-14  Alexander Pavlov  <apavlov@chromium.org>
2200
2201         Web Inspector: make ProfilesPanel scale as the number of ProfileTypes grows
2202         https://bugs.webkit.org/show_bug.cgi?id=74391
2203
2204         Reviewed by Pavel Feldman.
2205
2206         Whenever a profile is started, this change disables all profile recording buttons, except the one
2207         that correponds to the running profile. Once the profiling is finished, all buttons get enabled back again.
2208
2209         * English.lproj/localizedStrings.js:
2210         * inspector/front-end/ProfileView.js:
2211         (WebInspector.CPUProfileView.profileCallback):
2212         (WebInspector.CPUProfileType.prototype.get buttonTooltip):
2213         (WebInspector.CPUProfileType.prototype.get buttonStyle):
2214         (WebInspector.CPUProfileType.prototype.buttonClicked):
2215         * inspector/front-end/ProfilesPanel.js:
2216         (WebInspector.ProfilesPanel.prototype.get statusBarItems.clickHandler):
2217         (WebInspector.ProfilesPanel.prototype.get statusBarItems):
2218         (WebInspector.ProfilesPanel.prototype._addProfileHeader):
2219         (WebInspector.ProfilesPanel.prototype.updateProfileTypeButtons):
2220         (WebInspector.ProfilesPanel.prototype._updateInterface):
2221         (WebInspector.ProfilesPanel.prototype.setRecordingProfile):
2222         (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
2223         (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress):
2224         (WebInspector.ProfilerDispatcher.prototype.setRecordingProfile):
2225         * inspector/front-end/inspector.css:
2226         (.record-cpu-profile-status-bar-item .glyph):
2227         (.record-cpu-profile-status-bar-item.toggled-on .glyph):
2228
2229 2011-12-15  Alexander Pavlov  <apavlov@chromium.org>
2230
2231         Web Inspector: [Styles] Update selected DOM element styles whenever applicable media queries change
2232         https://bugs.webkit.org/show_bug.cgi?id=74292
2233
2234         The change introduces and handles in the frontend a new event type for the CSS domain,
2235         "mediaQueryResultChanged", which gets fired every time a viewport-dependent media feature
2236         changes its value. This allows users to see live changes of the (media-dependent) matched
2237         rules for inspected elements.
2238
2239         Reviewed by Pavel Feldman.
2240
2241         * inspector/CodeGeneratorInspector.py:
2242         (DomainNameFixes):
2243         * inspector/Inspector.json:
2244         * inspector/InspectorCSSAgent.cpp:
2245         (WebCore::InspectorCSSAgent::InspectorCSSAgent):
2246         (WebCore::InspectorCSSAgent::setFrontend):
2247         (WebCore::InspectorCSSAgent::clearFrontend):
2248         (WebCore::InspectorCSSAgent::restore):
2249         (WebCore::InspectorCSSAgent::enable):
2250         (WebCore::InspectorCSSAgent::disable):
2251         (WebCore::InspectorCSSAgent::mediaQueryResultChanged):
2252         * inspector/InspectorCSSAgent.h:
2253         * inspector/InspectorInstrumentation.cpp:
2254         (WebCore::InspectorInstrumentation::mediaQueryResultChangedImpl):
2255         * inspector/InspectorInstrumentation.h:
2256         (WebCore::InspectorInstrumentation::mediaQueryResultChanged):
2257         * inspector/front-end/CSSStyleModel.js:
2258         (WebInspector.CSSStyleModel):
2259         (WebInspector.CSSStyleModel.prototype.mediaQueryResultChanged):
2260         (WebInspector.CSSDispatcher):
2261         (WebInspector.CSSDispatcher.prototype.mediaQueryResultChanged):
2262         * inspector/front-end/MetricsSidebarPane.js:
2263         (WebInspector.MetricsSidebarPane):
2264         (WebInspector.MetricsSidebarPane.prototype._styleSheetOrMediaQueryResultChanged):
2265         * inspector/front-end/StylesSidebarPane.js:
2266         (WebInspector.StylesSidebarPane):
2267         (WebInspector.StylesSidebarPane.prototype._styleSheetOrMediaQueryResultChanged):
2268         * page/FrameView.cpp:
2269         (WebCore::FrameView::layout):
2270
2271 2011-12-14  Vsevolod Vlasov  <vsevik@chromium.org>
2272
2273         Web Inspector: [Regression] Network manager fails to show resource type and MIME type in incorrect MIME type console message.
2274         https://bugs.webkit.org/show_bug.cgi?id=74516
2275
2276         Reviewed by Pavel Feldman.
2277
2278         Test: http/tests/inspector/network/script-as-text-loading.html
2279
2280         * inspector/front-end/ConsoleMessage.js:
2281         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
2282         * inspector/front-end/NetworkManager.js:
2283         (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
2284
2285 2011-11-03  Kent Tamura  <tkent@chromium.org>
2286
2287         A spin button changes the value incorrectly if it is clicked after touch events.
2288         https://bugs.webkit.org/show_bug.cgi?id=71181
2289
2290         Reviewed by Ryosuke Niwa.
2291
2292         SpinButtonElement assumed setHovered(true) was always called before a
2293         mousemove event in the element. It is not true for touch events.
2294
2295         We should not reset m_upDownState to Indetermiante in setHovered(true),
2296         and should reset it when the mouse pointer moves out.
2297
2298         This change fixes the flakiness of fast/forms/input-step-as-double.html.
2299
2300         Test: fast/events/touch/touch-before-pressing-spin-button.html
2301
2302         * html/shadow/TextControlInnerElements.cpp:
2303         (WebCore::SpinButtonElement::defaultEventHandler):
2304         Add an assertion that m_upDownState should not be Indetermiante.
2305         Reset m_upDownState to Indeterminate when the mouse pointer moves out
2306         from the element.
2307         (WebCore::SpinButtonElement::setHovered):
2308         Reset m_upDownState to Indeterminate when the element becomes unhovered.
2309
2310 2011-12-14  Lucas Forschler  <lforschler@apple.com>
2311     
2312         https://bugs.webkit.org/show_bug.cgi?id=74543
2313         Add CSS*.cpp to a new CSSAllInOne.cpp file with two exceptions:
2314             CSSProperty.cpp
2315             CSSPrimitiveValue.cpp
2316         Adding these two broke things with a templates problem that was not easily fixable.
2317
2318         Reviewed by Steve Falkenburg.
2319
2320         * WebCore.vcproj/WebCore.vcproj:
2321         * css/CSSAllInOne.cpp: Added.
2322
2323 2011-12-14  Tim Horton  <timothy_horton@apple.com>
2324
2325         Generated images should respect the accelerated state of the context they're going to be drawn into
2326         https://bugs.webkit.org/show_bug.cgi?id=74577
2327         <rdar://problem/10584392>
2328
2329         Reviewed by Simon Fraser.
2330
2331         The tiled code path for GeneratorGeneratedImage and CrossfadeGeneratedImage blindly creates
2332         an unaccelerated ImageBuffer. Instead, take into account the accelerated state of the destination context.
2333
2334         No new tests, as this is a simple performance improvement.
2335
2336         * platform/graphics/CrossfadeGeneratedImage.cpp:
2337         (WebCore::CrossfadeGeneratedImage::drawPattern):
2338         * platform/graphics/GeneratorGeneratedImage.cpp:
2339         (WebCore::GeneratorGeneratedImage::drawPattern):
2340
2341 2011-12-14  Ilya Tikhonovsky  <loislo@chromium.org>
2342
2343         Web Inspector: cleanup unused variable introduced at r102803
2344
2345         * inspector/front-end/NetworkManager.js:
2346         (WebInspector.NetworkManager.prototype.enableResourceTracking):
2347         (WebInspector.NetworkManager.prototype.disableResourceTracking):
2348
2349 2011-12-14  Wei James  <james.wei@intel.com>
2350
2351         fast path to accelerate processing in AudioBus::processWithGainFromMonoStereo
2352         https://bugs.webkit.org/show_bug.cgi?id=74054
2353
2354         Reviewed by Kenneth Russell.
2355
2356         Avoid de-zippering when the gain has converged on the targetGain. 
2357         It can get about 75% performance gain at most when all frames don't need
2358         de-zippering.
2359
2360         * platform/audio/AudioBus.cpp:
2361         (WebCore::AudioBus::processWithGainFromMonoStereo):
2362
2363 2011-12-14  Adam Klein  <adamk@chromium.org>
2364
2365         Optimize MutationObserverInterestGroup construction
2366         https://bugs.webkit.org/show_bug.cgi?id=74563
2367
2368         Reviewed by Ojan Vafai.
2369
2370         Inline MutationObserverInterestGroup's creation methods and fix an
2371         accidental pass-by-value in an attempt to further reduce the CPU
2372         footprint of MutationObservers.
2373
2374         No new tests, refactor only.
2375
2376         * dom/WebKitMutationObserver.cpp:
2377         (WebCore::MutationObserverInterestGroup::MutationObserverInterestGroup): Pass observers HashMap by reference.
2378         * dom/WebKitMutationObserver.h:
2379         (WebCore::MutationObserverInterestGroup::createForChildListMutation): Inline.
2380         (WebCore::MutationObserverInterestGroup::createForCharacterDataMutation): Inline.
2381         (WebCore::MutationObserverInterestGroup::createForAttributesMutation): Inline.
2382         (WebCore::MutationObserverInterestGroup::hasOldValue): Remove spurious inline keyword.
2383
2384 2011-12-14  Dominic Mazzoni  <dmazzoni@google.com>
2385
2386         Seeing crash in DRT after loading-iframe-sends-notification.html land
2387         https://bugs.webkit.org/show_bug.cgi?id=72624
2388
2389         When an iframe finishes loading, send an accessibility notification
2390         on the renderer, rather than on a parent node. The only reason it was
2391         being posted on a parent before was because there was no way to detect
2392         that in a test. This is simpler and now covered by the test.
2393
2394         Reviewed by Chris Fleizach.
2395
2396         Updates existing test:
2397         accessibility/loading-iframe-sends-notification.html
2398
2399         * dom/Document.cpp:
2400         (WebCore::Document::implicitClose):
2401
2402 2011-12-14  Nat Duca  <nduca@chromium.org>
2403
2404         [chromium] Add inhibitDraw to CCScheduler and drop root impl to prevent background flash on tab restore
2405         https://bugs.webkit.org/show_bug.cgi?id=74351
2406
2407         Reviewed by James Robinson.
2408
2409         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2410         (WebCore::CCLayerTreeHost::setNeedsCommit):
2411         (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
2412         * platform/graphics/chromium/cc/CCScheduler.cpp:
2413         (WebCore::CCScheduler::getNextAction):
2414         (WebCore::CCScheduler::processScheduledActions):
2415         * platform/graphics/chromium/cc/CCScheduler.h:
2416         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
2417         (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
2418         (WebCore::CCSchedulerStateMachine::nextAction):
2419         * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
2420         (WebCore::CCSchedulerStateMachine::setInhibitDraw):
2421         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2422         (WebCore::CCThreadProxy::setVisibleOnImplThread):
2423         (WebCore::CCThreadProxy::inhibitDraw):
2424         * platform/graphics/chromium/cc/CCThreadProxy.h:
2425
2426 2011-12-14  Ken Buchanan  <kenrb@chromium.org>
2427
2428         Crash due to incorrect parsing of isolates
2429         https://bugs.webkit.org/show_bug.cgi?id=74311
2430         When <bdi> content is wrapped, all hell breaks loose
2431         https://bugs.webkit.org/show_bug.cgi?id=74396
2432
2433         Reviewed by Eric Seidel.
2434
2435         When an isolate was encountered during run layout, the entire isolate
2436         would be parsed, even if the run started in the middle of the isolate.
2437         This would sometimes cause parts of the isolate to be added multiple
2438         times as runs. This patch marks the starting position within the
2439         isolate so nothing is parsed twice.
2440
2441         This patch changes appendRun() so that when a run is added that is
2442         inside an isolate, it saves the start position of the run rather than
2443         the root. This allows constructBidiRuns() to resume parsing the
2444         isolate from the correct position.
2445
2446         The change to RenderBox partially reverts a previous change I had
2447         done. It makes sense to screen for the condition, as was previously
2448         the case.
2449
2450         This patch does not add the test case from 74396 because a separate
2451         bug is preventing it from rendering correctly.
2452
2453         * rendering/InlineIterator.h:
2454         (WebCore::addPlaceholderRunForIsolatedInline)
2455         (WebCore::IsolateTracker::addFakeRunIfNecessary)
2456         (WebCore::InlineBidiResolver::appendRun)
2457         * rendering/RenderBlockLineLayout.cpp:
2458         (WebCore::RenderBlockLineLayout::constructBidiRuns)
2459         * rendering/RenderBox.cpp:
2460         (WebCore::RenderBox::positionLineBox)
2461
2462 2011-12-14  Jing Zhao  <jingzhao@chromium.org>
2463
2464         Opening two popup menus by dispatchEvent() makes problems.
2465         https://bugs.webkit.org/show_bug.cgi?id=73304
2466
2467         Reviewed by Kent Tamura.
2468
2469         By using element.dispatchEvent(), a user written script can open two
2470         popup menus, which causes various problems in different platforms.
2471
2472         Add a hasOpenedPopup() method in ChromeClient and a wrapper in Chrome.
2473         In RenderMenuList::showPopup(), check if there is an opened popup menu
2474         before opening a new popup menu.
2475
2476         Test: fast/forms/select-popup-crash.html
2477
2478         * loader/EmptyClients.h: Overrides hasOpenedPopup().
2479         (WebCore::EmptyChromeClient::hasOpenedPopup): Returns false as a default case.
2480         * page/Chrome.cpp:
2481         (WebCore::Chrome::hasOpenedPopup): Calls ChromeClient::hasOpenedPopup().
2482         * page/Chrome.h: Declares hasOpenedPopup().
2483         * page/ChromeClient.h: Declares hasOpenedPopup() as a pure virtual function.
2484         * rendering/RenderMenuList.cpp:
2485         (WebCore::RenderMenuList::showPopup): Calls Chrome::hasOpenedPopup() before opening a new popup menu.
2486
2487 2011-12-14  Tony Chang  <tony@chromium.org>
2488
2489         Clean up style in CSSStyleSelector.cpp
2490         https://bugs.webkit.org/show_bug.cgi?id=74548
2491
2492         Reviewed by Ojan Vafai.
2493
2494         * css/CSSStyleSelector.cpp:
2495         (WebCore::CSSStyleSelector::styleForElement):
2496         (WebCore::CSSStyleSelector::pseudoStyleForElement):
2497
2498 2011-12-14  Kenneth Russell  <kbr@google.com>
2499
2500         Unreviewed, rolling out r102794.
2501         http://trac.webkit.org/changeset/102794
2502         https://bugs.webkit.org/show_bug.cgi?id=74220
2503
2504         Reapplying patch since it is not the cause of the problems
2505         described in bug 74220.
2506
2507         * bindings/v8/V8Proxy.cpp:
2508         (WebCore::V8Proxy::reportUnsafeAccessTo):
2509         * bindings/v8/V8Proxy.h:
2510         * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
2511         (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
2512
2513 2011-12-14  Sam Weinig  <weinig@apple.com>
2514
2515         Remove whitespace from InheritedPropertySheets attributes in
2516         vsprops files to appease the Visual Studio project migrator.
2517
2518         Reviewed by Adam Roben.
2519
2520         * WebCore.vcproj/QTMovieWinDebug.vsprops:
2521         * WebCore.vcproj/QTMovieWinDebugAll.vsprops:
2522         * WebCore.vcproj/QTMovieWinDebugCairoCFLite.vsprops:
2523         * WebCore.vcproj/QTMovieWinProduction.vsprops:
2524         * WebCore.vcproj/QTMovieWinRelease.vsprops:
2525         * WebCore.vcproj/QTMovieWinReleaseCairoCFLite.vsprops:
2526         * WebCore.vcproj/WebCoreDebug.vsprops:
2527         * WebCore.vcproj/WebCoreDebugAll.vsprops:
2528         * WebCore.vcproj/WebCoreDebugCairoCFLite.vsprops:
2529         * WebCore.vcproj/WebCoreProduction.vsprops:
2530         * WebCore.vcproj/WebCoreRelease.vsprops:
2531         * WebCore.vcproj/WebCoreReleaseCairoCFLite.vsprops:
2532
2533 2011-12-14  Enrica Casucci  <enrica@apple.com>
2534
2535         One more attempt to fix the release build (hopefully the last)
2536
2537         Unreviewed.
2538
2539         * editing/ReplaceSelectionCommand.cpp: Added NodeRenderStyle.h
2540
2541 2011-12-14  Kenneth Russell  <kbr@google.com>
2542
2543         Unreviewed, rolling out r102816.
2544         http://trac.webkit.org/changeset/102816
2545         https://bugs.webkit.org/show_bug.cgi?id=74415
2546
2547         Implicated in font-related crashes on Chromium canaries.
2548
2549         * platform/graphics/chromium/FontChromiumWin.cpp:
2550         (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
2551         (WebCore::Font::drawGlyphs):
2552         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
2553         (WebCore::FontPlatformData::FontPlatformData):
2554         (WebCore::FontPlatformData::operator=):
2555         (WebCore::FontPlatformData::~FontPlatformData):
2556         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
2557         (WebCore::FontPlatformData::size):
2558         (WebCore::FontPlatformData::hash):
2559         * platform/graphics/skia/SkiaFontWin.cpp:
2560         (WebCore::setupPaintForFont):
2561         (WebCore::paintSkiaText):
2562         * platform/graphics/skia/SkiaFontWin.h:
2563
2564 2011-12-14  Simon Fraser  <simon.fraser@apple.com>
2565
2566         Filter amounts should accept percentages
2567         https://bugs.webkit.org/show_bug.cgi?id=74531
2568
2569         Reviewed by Chris Marrin.
2570         
2571         Support percentage arguments for some filter functions, using the FPercent flag
2572         to validUnit(). Fix CSSStyleSelector::createFilterOperations() to do the divide by 100
2573         for percentages.
2574         
2575         Replaced isValidFilterArgument(), which just tested arguments one by one for validity, with
2576         parseBuiltinFilterArguments() which tests and creates the CSSValues at the same time, which
2577         is a little more efficient. It also allows filter-specific behavior to be more localized in this
2578         method.
2579
2580         Covered by existing tests.
2581
2582         * css/CSSParser.cpp:
2583         (WebCore::CSSParser::parseBuiltinFilterArguments):
2584         (WebCore::CSSParser::parseFilter):
2585         * css/CSSParser.h:
2586         * css/CSSStyleSelector.cpp:
2587         (WebCore::CSSStyleSelector::createFilterOperations):
2588
2589 2011-12-14  Enrica Casucci  <enrica@apple.com>
2590
2591         Build fix.
2592
2593         Unreviewed.
2594
2595         * editing/ReplaceSelectionCommand.cpp: Added include RenderStyle.h
2596
2597 2011-12-14  Hajime Morrita  <morrita@chromium.org>
2598
2599         JS_INLINE and WTF_INLINE should be visible from WebCore
2600         https://bugs.webkit.org/show_bug.cgi?id=73191
2601
2602         Reviewed by Kevin Ollivier.
2603
2604         - Moved export related definitions from config.h
2605           to ExportMacros.h, JSExportMacros.h and PlatformExportMacros.h
2606         - Added forwarding headers which are referred from config.h
2607
2608         No new tests. Only build related changes.
2609
2610         * ForwardingHeaders/runtime/JSExportMacros.h: Added.
2611         * ForwardingHeaders/wtf/ExportMacros.h: Added.
2612         * WebCore.xcodeproj/project.pbxproj:
2613         * config.h:
2614         * platform/PlatformExportMacros.h: Copied from Source/JavaScriptCore/wtf/ExportMacros.h.
2615
2616 2011-12-14  Enrica Casucci  <enrica@apple.com>
2617
2618         Need a way to produce leaner markup when pasting a fragment containing verbose markup
2619         https://bugs.webkit.org/show_bug.cgi?id=74514
2620         <rdar://problem/10208653>
2621
2622         Reviewed by Ryosuke Niwa.
2623
2624         This patch is another step in the direction of reducing the verbosity of the markup
2625         produced with editing operations.
2626         After the copied fragment is inserted in the document, it is analyzed to remove all
2627         the elements that don't contribute to the style. The decision is made comparing the
2628         render styles. As part of the cleanup, unstyled divs with single child element are
2629         removed. The logic to determine the blocks that can be removed is the same used in
2630         DeleteSelectionCommand and has been moved in CompositeEditCommand.
2631         
2632         Test: editing/pasteboard/paste-and-sanitize.html
2633
2634         * editing/CompositeEditCommand.cpp:
2635         (WebCore::CompositeEditCommand::isRemovableBlock): Implements logic to determine
2636         if a block can be removed.
2637         * editing/CompositeEditCommand.h: Added isRemovableBlock declaration.
2638         * editing/DeleteSelectionCommand.cpp:
2639         (WebCore::DeleteSelectionCommand::removeRedundantBlocks): Implemented using
2640         isRemovableBlock from CompositeEditCommand.
2641         * editing/Editor.cpp:
2642         (WebCore::Editor::replaceSelectionWithFragment): Added SanitizeFragment option.
2643         * editing/ReplaceSelectionCommand.cpp:
2644         (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand): Added initialization
2645         of m_sanitizeFragment member.
2646         (WebCore::ReplaceSelectionCommand::removeRedundantMarkup): New method implementing
2647         the cleanup logic.
2648         (WebCore::ReplaceSelectionCommand::doApply): Added call to removeRedundantMarkup
2649         after the fragment is inserted in the document.
2650         * editing/ReplaceSelectionCommand.h: Added new value to the enum CommandOption,
2651         a new member variable and the new method declaration.
2652
2653 2011-12-14  Adrienne Walker  <enne@google.com>
2654
2655         [chromium] Refactor tile drawing to be more data-driven
2656         https://bugs.webkit.org/show_bug.cgi?id=73059
2657
2658         Reviewed by James Robinson.
2659
2660         Partially tested by compositor layout tests. Debug borders and
2661         checkerboarding tested manually.
2662
2663         This is the first part of a move towards rendering quads on screen
2664         from a bag of data rather than in virtual CCLayerImpl::draw functions.
2665
2666         CCDrawQuad-derived classes store material-specific pieces of data to
2667         use when rendering. CCLayerImpl classes now create these CCDrawQuad
2668         objects rather than issuing direct GL commands. Where this data is
2669         shared between quads that come from the same layer, that data is
2670         stored in a CCSharedQuadState object rather than duplicated.
2671
2672         CCRenderPass is the class that holds the list of quads and the target
2673         surface that they draw into. Drawing a frame consists of drawing a
2674         series of render passes onto their respective surfaces.
2675
2676         CCLayerTreeHostImpl constructs these render passes from the output of
2677         calculateDrawTransformsAndVisibility by asking each layer to insert
2678         quads into a list and hands them off to LayerRendererChromium for
2679         rendering.
2680
2681         * WebCore.gypi:
2682         * platform/graphics/chromium/LayerRendererChromium.cpp:
2683         (WebCore::LayerRendererChromium::clearSurfaceForDebug):
2684         (WebCore::LayerRendererChromium::beginDrawingFrame):
2685         (WebCore::LayerRendererChromium::drawRenderPass):
2686         (WebCore::LayerRendererChromium::drawQuad):
2687         (WebCore::LayerRendererChromium::drawDebugBorderQuad):
2688         (WebCore::LayerRendererChromium::drawRenderSurfaceQuad):
2689         (WebCore::LayerRendererChromium::drawSolidColorQuad):
2690         (WebCore::tileUniformLocation):
2691         (WebCore::findTileProgramUniforms):
2692         (WebCore::LayerRendererChromium::drawTileQuad):
2693         (WebCore::LayerRendererChromium::drawCustomLayerQuad):
2694         (WebCore::LayerRendererChromium::finishDrawingFrame):
2695         (WebCore::LayerRendererChromium::useRenderSurface):
2696         * platform/graphics/chromium/LayerRendererChromium.h:
2697         * platform/graphics/chromium/ShaderChromium.h:
2698         (WebCore::FragmentTexAlphaBinding::edgeLocation):
2699         (WebCore::FragmentTexAlphaBinding::fragmentTexTransformLocation):
2700         (WebCore::FragmentTexOpaqueBinding::edgeLocation):
2701         (WebCore::FragmentTexOpaqueBinding::fragmentTexTransformLocation):
2702         * platform/graphics/chromium/TiledLayerChromium.cpp:
2703         (WebCore::TiledLayerChromium::pushPropertiesTo):
2704         * platform/graphics/chromium/cc/CCCustomLayerDrawQuad.cpp: Added.
2705         (WebCore::CCCustomLayerDrawQuad::create):
2706         (WebCore::CCCustomLayerDrawQuad::CCCustomLayerDrawQuad):
2707         * platform/graphics/chromium/cc/CCCustomLayerDrawQuad.h: Added.
2708         (WebCore::CCCustomLayerDrawQuad::layer):
2709         * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.cpp: Added.
2710         (WebCore::CCDebugBorderDrawQuad::create):
2711         (WebCore::CCDebugBorderDrawQuad::CCDebugBorderDrawQuad):
2712         * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.h: Added.
2713         (WebCore::CCDebugBorderDrawQuad::color):
2714         (WebCore::CCDebugBorderDrawQuad::width):
2715         * platform/graphics/chromium/cc/CCDrawQuad.cpp: Added.
2716         (WebCore::CCDrawQuad::CCDrawQuad):
2717         (WebCore::CCDrawQuad::toDebugBorderDrawQuad):
2718         (WebCore::CCDrawQuad::toRenderSurfaceDrawQuad):
2719         (WebCore::CCDrawQuad::toSolidColorDrawQuad):
2720         (WebCore::CCDrawQuad::toTileDrawQuad):
2721         (WebCore::CCDrawQuad::toCustomLayerDrawQuad):
2722         * platform/graphics/chromium/cc/CCDrawQuad.h: Added.
2723         (WebCore::CCDrawQuad::quadRect):
2724         (WebCore::CCDrawQuad::quadTransform):
2725         (WebCore::CCDrawQuad::layerTransform):
2726         (WebCore::CCDrawQuad::layerRect):
2727         (WebCore::CCDrawQuad::clipRect):
2728         (WebCore::CCDrawQuad::opacity):
2729         (WebCore::CCDrawQuad::drawsOpaque):
2730         (WebCore::CCDrawQuad::needsBlending):
2731         (WebCore::CCDrawQuad::isLayerAxisAlignedIntRect):
2732         (WebCore::CCDrawQuad::material):
2733         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2734         (WebCore::CCLayerImpl::createSharedQuadState):
2735         (WebCore::CCLayerImpl::appendQuads):
2736         (WebCore::CCLayerImpl::appendDebugBorderQuad):
2737         (WebCore::CCLayerImpl::quadTransform):
2738         * platform/graphics/chromium/cc/CCLayerImpl.h:
2739         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2740         (WebCore::CCLayerTreeHostImpl::trackDamageForAllSurfaces):
2741         (WebCore::computeScreenSpaceTransformForSurface):
2742         (WebCore::damageInSurfaceSpace):
2743         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2744         (WebCore::CCLayerTreeHostImpl::drawLayers):
2745         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2746         * platform/graphics/chromium/cc/CCRenderPass.cpp: Added.
2747         (WebCore::CCRenderPass::create):
2748         (WebCore::CCRenderPass::CCRenderPass):
2749         (WebCore::CCRenderPass::appendQuadsForLayer):
2750         (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
2751         * platform/graphics/chromium/cc/CCRenderPass.h: Added.
2752         (WebCore::CCRenderPass::quadList):
2753         (WebCore::CCRenderPass::targetSurface):
2754         (WebCore::CCRenderPass::setSurfaceDamageRect):
2755         (WebCore::CCRenderPass::surfaceDamageRect):
2756         * platform/graphics/chromium/cc/CCRenderSurfaceDrawQuad.cpp: Added.
2757         (WebCore::CCRenderSurfaceDrawQuad::create):
2758         (WebCore::CCRenderSurfaceDrawQuad::CCRenderSurfaceDrawQuad):
2759         * platform/graphics/chromium/cc/CCRenderSurfaceDrawQuad.h: Added.
2760         (WebCore::CCRenderSurfaceDrawQuad::layer):
2761         (WebCore::CCRenderSurfaceDrawQuad::surfaceDamageRect):
2762         * platform/graphics/chromium/cc/CCSharedQuadState.cpp: Added.
2763         (WebCore::CCSharedQuadState::create):
2764         (WebCore::CCSharedQuadState::CCSharedQuadState):
2765         (WebCore::CCSharedQuadState::isLayerAxisAlignedIntRect):
2766         * platform/graphics/chromium/cc/CCSharedQuadState.h: Added.
2767         (WebCore::CCSharedQuadState::quadTransform):
2768         (WebCore::CCSharedQuadState::layerTransform):
2769         (WebCore::CCSharedQuadState::layerRect):
2770         (WebCore::CCSharedQuadState::clipRect):
2771         (WebCore::CCSharedQuadState::opacity):
2772         (WebCore::CCSharedQuadState::isOpaque):
2773         * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp: Added.
2774         (WebCore::CCSolidColorDrawQuad::create):
2775         (WebCore::CCSolidColorDrawQuad::CCSolidColorDrawQuad):
2776         * platform/graphics/chromium/cc/CCSolidColorDrawQuad.h: Added.
2777         (WebCore::CCSolidColorDrawQuad::color):
2778         * platform/graphics/chromium/cc/CCTileDrawQuad.cpp: Added.
2779         (WebCore::CCTileDrawQuad::create):
2780         (WebCore::CCTileDrawQuad::CCTileDrawQuad):
2781         * platform/graphics/chromium/cc/CCTileDrawQuad.h: Added.
2782         (WebCore::CCTileDrawQuad::textureId):
2783         (WebCore::CCTileDrawQuad::textureOffset):
2784         (WebCore::CCTileDrawQuad::textureSize):
2785         (WebCore::CCTileDrawQuad::textureFilter):
2786         (WebCore::CCTileDrawQuad::swizzleContents):
2787         (WebCore::CCTileDrawQuad::leftEdgeAA):
2788         (WebCore::CCTileDrawQuad::topEdgeAA):
2789         (WebCore::CCTileDrawQuad::rightEdgeAA):
2790         (WebCore::CCTileDrawQuad::bottomEdgeAA):
2791         (WebCore::CCTileDrawQuad::isAntialiased):
2792         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2793         (WebCore::CCTiledLayerImpl::CCTiledLayerImpl):
2794         (WebCore::CCTiledLayerImpl::quadTransform):
2795         (WebCore::CCTiledLayerImpl::appendQuads):
2796         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2797         (WebCore::CCTiledLayerImpl::setContentsSwizzled):
2798         (WebCore::CCTiledLayerImpl::contentsSwizzled):
2799
2800 2011-12-14  Ojan Vafai  <ojan@chromium.org>
2801
2802         Implement flexDirection and flexWrap and make flexFlow a proper shorthand.
2803         https://bugs.webkit.org/show_bug.cgi?id=74542
2804
2805         Reviewed by Tony Chang.
2806
2807         In a followup patch, I'll cleanup all the *Flow methods in RenderFlexibleBox.
2808
2809         Existing tests cover all the rendering behaviors, so only need to test
2810         the css property parsing.
2811
2812         * css/CSSComputedStyleDeclaration.cpp:
2813         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2814         * css/CSSMutableStyleDeclaration.cpp:
2815         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
2816         * css/CSSParser.cpp:
2817         (WebCore::CSSParser::parseValue):
2818         * css/CSSPrimitiveValueMappings.h:
2819         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2820         (WebCore::CSSPrimitiveValue::operator EFlexDirection):
2821         * css/CSSProperty.cpp:
2822         (WebCore::CSSProperty::isInheritedProperty):
2823         * css/CSSPropertyLonghand.cpp:
2824         (WebCore::initShorthandMap):
2825         * css/CSSPropertyNames.in:
2826         * css/CSSStyleApplyProperty.cpp:
2827         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
2828         * css/CSSStyleSelector.cpp:
2829         (WebCore::CSSStyleSelector::applyProperty):
2830         * rendering/RenderBox.cpp:
2831         (WebCore::RenderBox::sizesToIntrinsicLogicalWidth):
2832         * rendering/RenderFlexibleBox.cpp:
2833         (WebCore::RenderFlexibleBox::isColumnFlow):
2834         (WebCore::RenderFlexibleBox::isLeftToRightFlow):
2835         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
2836         (WebCore::RenderFlexibleBox::alignChildren):
2837         * rendering/style/RenderStyle.h:
2838         (WebCore::InheritedFlags::flexDirection):
2839         (WebCore::InheritedFlags::isColumnFlexDirection):
2840         (WebCore::InheritedFlags::setFlexDirection):
2841         (WebCore::InheritedFlags::initialFlexDirection):
2842         * rendering/style/RenderStyleConstants.h:
2843         * rendering/style/StyleFlexibleBoxData.cpp:
2844         (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
2845         (WebCore::StyleFlexibleBoxData::operator==):
2846         * rendering/style/StyleFlexibleBoxData.h:
2847
2848 2011-12-13  Jon Lee  <jonlee@apple.com>
2849
2850         Enable notifications on Mac.
2851
2852         Reviewed by Sam Weinig.
2853
2854         * Configurations/FeatureDefines.xcconfig:
2855
2856 2011-12-14  Ryosuke Niwa  <rniwa@webkit.org>
2857
2858         COMPILE_ASSERT in CSSStyleSelector.cpp doesn't compile on Windows
2859         https://bugs.webkit.org/show_bug.cgi?id=74327
2860
2861         Reviewed by Darin Adler.
2862
2863         Always use unsigned instead of bool and unsigned in the bitfields of RuleData to shrink
2864         its size under MSVC.
2865
2866         Unlike gcc and clang, MSVC pads each consecutive member variables of the same type
2867         in bitfields. e.g. if you have:
2868         sturct AB {
2869             unsigned m_1 : 31;
2870             bool m_2 : 1;
2871         }
2872         then MSVC pads m_1 and allocates sizeof(unsigned) * 2 for AB whereas gcc and clang
2873         only allocate sizeof(unsigned) * 1 for AB.
2874
2875         * css/CSSStyleSelector.cpp:
2876         (WebCore::RuleData::RuleData):
2877
2878 2011-12-14  Ryosuke Niwa  <rniwa@webkit.org>
2879
2880         NodeChildList shouldn't be in NodeListNodeData
2881         https://bugs.webkit.org/show_bug.cgi?id=73969
2882
2883         Reviewed by Sam Weinig.
2884
2885         Move NodeChildList out of NodeListNodeData to separate it from the other node lists in order to
2886         resolve the bug 73853. Unlike other DynamicNodeList, we don't need to invalidate NodeChildList
2887         on ancestors when children change. Moving ChildNodeList out of NodeListNodeData makes this difference
2888         apparent and makes DynamicNodeList::Caches in NodeListNodeData always held by a DynamicSubtreeNodeList,
2889         eliminating the need for hasOwnCaches() checks in various places.
2890
2891         Also renamed the existing DynamicNodeList to DynamicSubtreeNodeList and re-introduced DynamicNodeList
2892         from which DynamicSubtreeNodeList and ChildNodeList both inherit to share the code for itemWithName.
2893
2894         In addition, renamed registerDynamicNodeList and unregisterDynamicNodeList, which updates a counter for
2895         TreeScope::hasNodeListCaches, to registerDynamicSubtreeNodeList and unregisterDynamicSubtreeNodeList
2896         respectively. They are no longer called by ChildNodeList in order to avoid walking up the DOM tree
2897         inside invalidateNodeListsCacheAfterAttributeChanged and invalidateNodeListsCacheAfterChildrenChanged.
2898
2899         Test: fast/dom/childnode-item-after-itemname.html
2900
2901         * bindings/js/JSNodeListCustom.cpp:
2902         (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
2903         * dom/ChildNodeList.cpp:
2904         (WebCore::ChildNodeList::ChildNodeList):
2905         (WebCore::ChildNodeList::length):
2906         (WebCore::ChildNodeList::item):
2907         (WebCore::ChildNodeList::nodeMatches):
2908         * dom/ChildNodeList.h:
2909         * dom/ClassNodeList.cpp:
2910         (WebCore::ClassNodeList::ClassNodeList):
2911         (WebCore::ClassNodeList::~ClassNodeList):
2912         * dom/ClassNodeList.h:
2913         * dom/ContainerNode.cpp:
2914         (WebCore::ContainerNode::childrenChanged):
2915         * dom/DynamicNodeList.cpp:
2916         (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
2917         (WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList):
2918         (WebCore::DynamicSubtreeNodeList::length):
2919         (WebCore::DynamicSubtreeNodeList::itemForwardsFromCurrent):
2920         (WebCore::DynamicSubtreeNodeList::itemBackwardsFromCurrent):
2921         (WebCore::DynamicSubtreeNodeList::item):
2922         (WebCore::DynamicNodeList::itemWithName):
2923         (WebCore::DynamicSubtreeNodeList::isDynamicNodeList):
2924         (WebCore::DynamicSubtreeNodeList::invalidateCache):
2925         (WebCore::DynamicSubtreeNodeList::Caches::Caches):
2926         (WebCore::DynamicSubtreeNodeList::Caches::create):
2927         (WebCore::DynamicSubtreeNodeList::Caches::reset):
2928         * dom/DynamicNodeList.h:
2929         (WebCore::DynamicNodeList::DynamicNodeList):
2930         (WebCore::DynamicNodeList::~DynamicNodeList):
2931         (WebCore::DynamicNodeList::node):
2932         (WebCore::DynamicSubtreeNodeList::rootNode):
2933         * dom/NameNodeList.cpp:
2934         (WebCore::NameNodeList::NameNodeList):
2935         (WebCore::NameNodeList::~NameNodeList):
2936         * dom/NameNodeList.h:
2937         * dom/Node.cpp:
2938         (WebCore::Node::childNodes):
2939         (WebCore::Node::registerDynamicSubtreeNodeList):
2940         (WebCore::Node::unregisterDynamicSubtreeNodeList):
2941         (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged):
2942         (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged):
2943         (WebCore::Node::removeCachedClassNodeList):
2944         (WebCore::Node::removeCachedNameNodeList):
2945         (WebCore::Node::removeCachedTagNodeList):
2946         (WebCore::Node::removeCachedLabelsNodeList):
2947         (WebCore::NodeListsNodeData::invalidateCaches):
2948         (WebCore::NodeListsNodeData::isEmpty):
2949         (WebCore::NodeRareData::clearChildNodeListCache):
2950         * dom/Node.h:
2951         * dom/NodeRareData.h:
2952         (WebCore::NodeRareData::nodeLists):
2953         (WebCore::NodeRareData::ensureChildNodeListCache):
2954         * dom/TagNodeList.cpp:
2955         (WebCore::TagNodeList::TagNodeList):
2956         (WebCore::TagNodeList::~TagNodeList):
2957         * dom/TagNodeList.h:
2958         * html/LabelsNodeList.cpp:
2959         (WebCore::LabelsNodeList::LabelsNodeList):
2960         * html/LabelsNodeList.h:
2961
2962 2011-12-14  Ryosuke Niwa  <rniwa@webkit.org>
2963
2964         Push more member functions from EditCommand to CompositeEditCommand
2965         https://bugs.webkit.org/show_bug.cgi?id=74249
2966
2967         Reviewed by Enrica Casucci.
2968
2969         Moved startingRootEditableElement and endingRootEditableElement from EditCommand to EditCommandComposition,
2970         and isTypingCommand, preservesTypingStyle, shouldRetainAutocorrectionIndicator,
2971         setShouldRetainAutocorrectionIndicator, and shouldStopCaretBlinking from EditCommand to CompositeEditCommand.
2972         Also removed EditCommand::updateLayout().
2973
2974         * editing/ApplyBlockElementCommand.cpp:
2975         (WebCore::ApplyBlockElementCommand::doApply):
2976         * editing/ApplyStyleCommand.cpp:
2977         (WebCore::ApplyStyleCommand::applyBlockStyle):
2978         (WebCore::ApplyStyleCommand::applyInlineStyle):
2979         * editing/CompositeEditCommand.cpp:
2980         (WebCore::EditCommandComposition::EditCommandComposition):
2981         (WebCore::EditCommandComposition::setStartingSelection):
2982         (WebCore::EditCommandComposition::setEndingSelection):
2983         (WebCore::CompositeEditCommand::preservesTypingStyle):
2984         (WebCore::CompositeEditCommand::isTypingCommand):
2985         (WebCore::CompositeEditCommand::shouldRetainAutocorrectionIndicator):
2986         (WebCore::CompositeEditCommand::setShouldRetainAutocorrectionIndicator):
2987         (WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
2988         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
2989         (WebCore::CompositeEditCommand::moveParagraphs):
2990         * editing/CompositeEditCommand.h:
2991         (WebCore::EditCommandComposition::startingRootEditableElement):
2992         (WebCore::EditCommandComposition::endingRootEditableElement):
2993         (WebCore::CompositeEditCommand::shouldStopCaretBlinking):
2994         * editing/DeleteSelectionCommand.cpp:
2995         (WebCore::DeleteSelectionCommand::removeNode):
2996         (WebCore::DeleteSelectionCommand::fixupWhitespace):
2997         * editing/EditCommand.cpp:
2998         (WebCore::EditCommand::apply):
2999         (WebCore::EditCommand::unapply):
3000         (WebCore::EditCommand::reapply):
3001         (WebCore::EditCommand::setStartingSelection):
3002         (WebCore::EditCommand::setEndingSelection):
3003         (WebCore::EditCommand::setParent):
3004         * editing/EditCommand.h:
3005         (WebCore::EditCommand::isEditCommandComposition):
3006         * editing/Editor.cpp:
3007         (WebCore::dispatchEditableContentChangedEvents):
3008         (WebCore::Editor::appliedEditing):
3009         (WebCore::Editor::unappliedEditing):
3010         (WebCore::Editor::reappliedEditing):
3011         * editing/Editor.h:
3012         (WebCore::Editor::lastEditCommand):
3013         * editing/FrameSelection.cpp:
3014         (WebCore::FrameSelection::updateAppearance):
3015         * editing/IndentOutdentCommand.cpp:
3016         (WebCore::IndentOutdentCommand::outdentParagraph):
3017         * editing/InsertLineBreakCommand.cpp:
3018         (WebCore::InsertLineBreakCommand::doApply):
3019         * editing/InsertParagraphSeparatorCommand.cpp:
3020         (WebCore::InsertParagraphSeparatorCommand::doApply):
3021         * editing/TypingCommand.cpp:
3022         (WebCore::TypingCommand::lastTypingCommandIfStillOpenForTyping):
3023         * editing/TypingCommand.h:
3024         (WebCore::TypingCommand::shouldRetainAutocorrectionIndicator):
3025
3026 2011-12-14  Tony Chang  <tony@chromium.org>
3027
3028         Fix compile on gcc on Mac.
3029
3030         css/CSSStyleSelector.cpp:1254:166: error: unused parameter 'regionForStyling' [-Werror,-Wunused-parameter,3]
3031         css/CSSStyleSelector.cpp:1425:134: error: unused parameter 'regionForStyling' [-Werror,-Wunused-parameter,3]
3032
3033         * css/CSSStyleSelector.cpp:
3034         (WebCore::CSSStyleSelector::styleForElement):
3035         (WebCore::CSSStyleSelector::pseudoStyleForElement):
3036
3037 2011-12-14  Brady Eidson  <beidson@apple.com>
3038
3039         <rdar://problem/10576732> and https://bugs.webkit.org/show_bug.cgi?id=74533
3040         REGRESSION(r102619): Reproducible crash closing window with video + poster image inside an object element
3041
3042         Reviewed by Darin Adler.
3043
3044         Test: media/crash-closing-page-with-media-as-plugin-fallback.html
3045
3046         Switch HTMLPlugInImageElement from using document activation callbacks to using the ActiveDOMObject
3047         mechanism which will prevent the unnecessary (and crashy) work at Document teardown:
3048         * html/HTMLPlugInImageElement.cpp:
3049         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
3050         (WebCore::HTMLPlugInImageElement::canSuspend):
3051         (WebCore::HTMLPlugInImageElement::suspend):
3052         (WebCore::HTMLPlugInImageElement::resume):
3053         * html/HTMLPlugInImageElement.h:
3054
3055 2011-12-14  Adrienne Walker  <enne@google.com>
3056
3057         [chromium] Compositor needs to set texture filtering on canvas layers
3058         https://bugs.webkit.org/show_bug.cgi?id=74530
3059
3060         Reviewed by James Robinson.
3061
3062         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
3063         (WebCore::CCCanvasLayerImpl::draw):
3064
3065 2011-12-14  Tony Chang  <tony@chromium.org>
3066
3067         Remove added calls to CSSStyleSelector to gain back another 2% in page cyclers
3068         https://bugs.webkit.org/show_bug.cgi?id=74537
3069
3070         Reviewed by Ojan Vafai.
3071
3072         In r102234, calls to initForRegionStyling() were added in CSSStyleSelector.
3073         There's still a 2% perf regression in chromium page cyclers, so try removing
3074         these calls.
3075
3076         * css/CSSStyleSelector.cpp:
3077         (WebCore::CSSStyleSelector::styleForElement):
3078         (WebCore::CSSStyleSelector::pseudoStyleForElement):
3079
3080 2011-12-14  Jonathan Backer  <backer@chromium.org>
3081
3082         [chromium] Plumb through flag for enabling partial swap
3083         https://bugs.webkit.org/show_bug.cgi?id=74513
3084
3085         Reviewed by James Robinson.
3086
3087         * page/Settings.h:
3088         (WebCore::Settings::setPartialSwapEnabled):
3089         (WebCore::Settings::partialSwapEnabled):
3090         * platform/graphics/chromium/LayerRendererChromium.cpp:
3091         (WebCore::LayerRendererChromium::initialize):
3092         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3093         (WebCore::CCSettings::CCSettings):
3094
3095 2011-12-14  Mike Reed  <reed@google.com>
3096
3097         [skia] cache typeface in FontPlatformData
3098         https://bugs.webkit.org/show_bug.cgi?id=74415
3099
3100         Reviewed by Stephen White.
3101
3102         No new tests. Existing tests apply, this is just an optimization
3103         to avoid looking up the typeface on each drawText call.
3104
3105         * platform/graphics/chromium/FontChromiumWin.cpp:
3106         (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
3107         (WebCore::Font::drawGlyphs):
3108         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
3109         (WebCore::createTypefaceFromHFont):
3110         (WebCore::FontPlatformData::FontPlatformData):
3111         (WebCore::FontPlatformData::operator=):
3112         (WebCore::FontPlatformData::~FontPlatformData):
3113         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
3114         (WebCore::FontPlatformData::typeface):
3115         (WebCore::FontPlatformData::lfQuality):
3116         (WebCore::FontPlatformData::hash):
3117         (WebCore::FontPlatformData::operator==):
3118         * platform/graphics/skia/SkiaFontWin.cpp:
3119         (WebCore::setupPaintForFont):
3120         (WebCore::paintSkiaText):
3121         * platform/graphics/skia/SkiaFontWin.h:
3122
3123 2011-12-14  Simon Fraser  <simon.fraser@apple.com>
3124
3125         Make -webkit-filter animatable
3126         https://bugs.webkit.org/show_bug.cgi?id=68476
3127
3128         Reviewed by Chris Marrin.
3129         
3130         Add -webkit-filter to the list of CSS properties that are animatable. Animate
3131         it like we do transforms, by looking for matching lists of filter functions.
3132         Each kind of filter operation has a blend() method that handles blending
3133         for that filter.
3134
3135         Test: css3/filters/filter-animation.html
3136
3137         * GNUmakefile.list.am: Add FilterOperation.cpp to the build.
3138         * Target.pri: Ditto
3139         * WebCore.gypi: Ditto
3140         * WebCore.vcproj/WebCore.vcproj: Ditto
3141         * WebCore.xcodeproj/project.pbxproj: Ditto
3142         * page/animation/AnimationBase.cpp:
3143         (WebCore::blendFunc): New blendFunc() for FilterOperations, which does per-filter blending.
3144         (WebCore::AnimationBase::ensurePropertyMap): Make PropertyWrapper for filters.
3145         (WebCore::AnimationBase::AnimationBase): Adjust initialization order.
3146         * page/animation/AnimationBase.h: Adjusted the member variable order to minimize padding.
3147         (WebCore::AnimationBase::filterFunctionListsMatch): Accessor for the flag.
3148         * page/animation/ImplicitAnimation.cpp:
3149         (WebCore::ImplicitAnimation::reset):
3150         (WebCore::ImplicitAnimation::validateTransformFunctionList): Adjust comment. The "is valid" terminology is confusing.
3151         (WebCore::ImplicitAnimation::checkForMatchingFilterFunctionLists): New method to check for matching lists
3152         of filter functions.
3153         * page/animation/ImplicitAnimation.h:
3154         * page/animation/KeyframeAnimation.cpp:
3155         (WebCore::KeyframeAnimation::KeyframeAnimation):
3156         (WebCore::KeyframeAnimation::checkForMatchingFilterFunctionLists): New method to check for matching lists
3157         of filter functions.
3158         * page/animation/KeyframeAnimation.h:
3159         * rendering/style/FilterOperation.cpp: Added.
3160         (WebCore::BasicColorMatrixFilterOperation::blend):
3161         (WebCore::BasicColorMatrixFilterOperation::passthroughAmount):
3162         (WebCore::BasicComponentTransferFilterOperation::blend):
3163         (WebCore::BasicComponentTransferFilterOperation::passthroughAmount): Different filters have
3164         different values for m_amount for the "passthrough" behavior. This method returns the appropriate value.
3165         (WebCore::GammaFilterOperation::blend):
3166         (WebCore::BlurFilterOperation::blend):
3167         (WebCore::DropShadowFilterOperation::blend):
3168         * rendering/style/FilterOperation.h:
3169         (WebCore::FilterOperation::blend):
3170         (WebCore::PassthroughFilterOperation::create): New "no-op" filter.
3171         (WebCore::PassthroughFilterOperation::operator==):
3172         (WebCore::PassthroughFilterOperation::PassthroughFilterOperation):
3173         * rendering/style/FilterOperations.cpp:
3174         (WebCore::FilterOperations::operationsMatch):
3175         * rendering/style/FilterOperations.h:
3176
3177 2011-12-14  Adam Klein  <adamk@chromium.org>
3178
3179         Broaden support for mutation observation of attributes
3180         https://bugs.webkit.org/show_bug.cgi?id=74448
3181
3182         Reviewed by Ryosuke Niwa.
3183
3184         The previously-landed MutationObserver support for attributes was incomplete:
3185         it didn't support mutations related to Attr nodes (methods on Attrs,
3186         setAttributeNode/removeAttributeNode on Element, or methods on NamedNodeMap).
3187
3188         This patch adds full support of mutation observation for all these cases,
3189         and adds test cases for all these situations.
3190
3191         * dom/Attr.cpp:
3192         (WebCore::Attr::setValue): Enqueue a mutation record when Attr.value is set from JS.
3193         (WebCore::Attr::childrenChanged): Enqueue a mutation record when an Attr's value
3194         changes to due additions/removals of Text children.
3195         * dom/Element.cpp:
3196         (WebCore::Element::enqueueAttributesMutationRecordIfRequested): Previously a static,
3197         expose as part of Element's interface to allow it to be re-used by NamedNodeMap and Attr.
3198         (WebCore::Element::removeAttribute): Remove enqueue call now handled by NamedNodeMap.
3199         (WebCore::Element::setAttributeInternal): Fixup call of enqueueAttributesMutationRecordIfRequested.
3200         * dom/Element.h:
3201         * dom/NamedNodeMap.cpp:
3202         (WebCore::NamedNodeMap::setNamedItem): Enqueue a mutation record when an attribute
3203         is changed via Element.attributes.setNamedItem from JS.
3204         (WebCore::NamedNodeMap::removeNamedItem): Enqueue a mutation record when an
3205         attribute is removed, either via Element.attributes.removeNamedItem or Element.removeAttribute.
3206
3207 2011-12-14  Raymond Toy  <rtoy@google.com>
3208
3209         * platform/audio/Distance.h (WebCore): 
3210
3211         Incorrect calculation for DistanceEffect linearGain
3212         https://bugs.webkit.org/show_bug.cgi?id=72871
3213
3214         Reviewed by Kenneth Russell.
3215
3216         Tests still need to be written for all distance models.  This
3217         does not add a new API and just corrects an implementation error. 
3218
3219         * platform/audio/Distance.cpp:
3220         (WebCore::DistanceEffect::linearGain): Implement correct
3221         linearGain function.  (Fix proposed by davidgaleano@hotmail.com.)
3222         * platform/audio/Distance.h: Add link to Open AL specification. 
3223         
3224
3225 2011-12-14  Ilya Tikhonovsky  <loislo@chromium.org>
3226
3227         Web Inspector: consider disabling network tracking while running the CPU profile.
3228         https://bugs.webkit.org/show_bug.cgi?id=74221
3229
3230         The WebCore instrumentation on the backend affects the performance of inspected page.
3231         As the result the CPU profiler's stats data are far away from the reality.
3232         Solution: the profiler code will temporary disable the resource tracking on backend.
3233         Side effect: the resource tree gets out of sinc because it uses Network Agent's notifications for updating the resource tree.
3234         Solution: NetworkManager will report about the changes of the resource tracking state and ResourcePanel will re-fetch the resources tree.
3235
3236         Reviewed by Pavel Feldman.
3237
3238         * inspector/front-end/NetworkManager.js:
3239         (WebInspector.NetworkManager.prototype.enableResourceTracking.networkAgentEnabled):
3240         (WebInspector.NetworkManager.prototype.enableResourceTracking):
3241         (WebInspector.NetworkManager.prototype.disableResourceTracking.networkAgentDisabled):
3242         (WebInspector.NetworkManager.prototype.disableResourceTracking):
3243         (WebInspector.NetworkManager.prototype.inflightResourceForURL):
3244         * inspector/front-end/ProfileView.js:
3245         (WebInspector.CPUProfileType.prototype.buttonClicked):
3246         * inspector/front-end/ResourceTreeModel.js:
3247         (WebInspector.ResourceTreeModel):
3248         (WebInspector.ResourceTreeModel.prototype._onResourceTrackingEnabled):
3249
3250 2011-12-14  Carlos Garcia Campos  <cgarcia@igalia.com>
3251
3252         [GTK] Fix PlatformScreen::screenAvailableRect when there's no view widget
3253         https://bugs.webkit.org/show_bug.cgi?id=74520
3254
3255         Reviewed by Martin Robinson.
3256
3257         Use the default screen to get the available screen area instead of
3258         just returning an empty rectangle. This is useful for WebKit2,
3259         since there's no view widget in the web process.
3260
3261         * platform/gtk/PlatformScreenGtk.cpp:
3262         (WebCore::screenAvailableRect):
3263
3264 2011-12-14  Eric Carlson  <eric.carlson@apple.com>
3265
3266         Media url with fragment may not load
3267         https://bugs.webkit.org/show_bug.cgi?id=74443
3268
3269         Reviewed by Darin Adler.
3270
3271         Test: media/media-extension-with-fragment.html
3272
3273         * html/HTMLMediaElement.cpp:
3274         (WebCore::HTMLMediaElement::loadResource): Pass the KURL to MediaPlayer, let it extract a
3275             String when it needs it.
3276
3277         * platform/graphics/MediaPlayer.cpp:
3278         (WebCore::MediaPlayer::load): Take a KURL, not a String. Look for the file extension in the 
3279             last path component so we don't examine fragments and/or queries.
3280         * platform/graphics/MediaPlayer.h:
3281
3282 2011-12-14  Jacky Jiang  <zhajiang@rim.com>
3283
3284         [BlackBerry] Remove some duplicate entries in Source/WebCore/PlatformBlackBerry.cmake
3285         https://bugs.webkit.org/show_bug.cgi?id=74484
3286
3287         Reviewed by Daniel Bates.
3288
3289         Trivial fix, so no new tests.
3290
3291         * PlatformBlackBerry.cmake:
3292
3293 2011-12-14  Anders Carlsson  <andersca@apple.com>
3294
3295         Add back the callOnMainThread overload that takes a WTF::Function
3296         https://bugs.webkit.org/show_bug.cgi?id=74512
3297
3298         Reviewed by Darin Adler.
3299
3300         Explicitly qualify the Function enum flag, since MSVC2005 is too stupid to disambiguate
3301         the Function class template and the enum flag.
3302
3303         * bindings/js/JSDOMWindowCustom.cpp:
3304         (WebCore::JSDOMWindow::getOwnPropertySlot):
3305         (WebCore::JSDOMWindow::getOwnPropertyDescriptor):
3306         * bindings/js/JSHistoryCustom.cpp:
3307         (WebCore::JSHistory::getOwnPropertySlotDelegate):
3308         (WebCore::JSHistory::getOwnPropertyDescriptorDelegate):
3309         * bindings/js/JSLocationCustom.cpp:
3310         (WebCore::JSLocation::getOwnPropertySlotDelegate):
3311         (WebCore::JSLocation::getOwnPropertyDescriptorDelegate):
3312
3313 2011-12-14  Kenneth Russell  <kbr@google.com>
3314
3315         Unreviewed, rolling out r102688.
3316         http://trac.webkit.org/changeset/102688
3317         https://bugs.webkit.org/show_bug.cgi?id=74220
3318
3319         Under the hypothesis that it might be the cause of
3320         browser_tests and ui_tests crashes on Chromium canaries --
3321         will reland if not.
3322
3323         * bindings/v8/V8Proxy.cpp:
3324         (WebCore::addMessageToConsole):
3325         (WebCore::logInfo):
3326         (WebCore::V8Proxy::reportUnsafeAccessTo):
3327         * bindings/v8/V8Proxy.h:
3328         * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
3329         (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
3330
3331 2011-12-14  Vsevolod Vlasov  <vsevik@chromium.org>
3332
3333         Web Inspector: DatabaseTableView should escape table name.
3334         https://bugs.webkit.org/show_bug.cgi?id=74503
3335
3336         Reviewed by Pavel Feldman.
3337
3338         Test: inspector/database-table-name-excaping.html
3339
3340         * inspector/front-end/DatabaseTableView.js:
3341         (WebInspector.DatabaseTableView.prototype._escapeTableName):
3342         (WebInspector.DatabaseTableView.prototype.update):
3343
3344 2011-12-14  Philippe Normand  <pnormand@igalia.com>
3345
3346         [GStreamer] padTemplate leak in webkitwebaudiosrc
3347         https://bugs.webkit.org/show_bug.cgi?id=74495
3348
3349         Reviewed by Martin Robinson.
3350
3351         Use a GstPadTemplate smart pointer in webkit_web_audio_src_init to
3352         avoid a memory leak after the ghost pad creation.
3353
3354         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
3355         (webkit_web_audio_src_init):
3356         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
3357         (WTF::adoptGRef):
3358         (WTF::GstPadTemplate):
3359         * platform/graphics/gstreamer/GRefPtrGStreamer.h:
3360
3361 2011-12-14  Julien Chaffraix  <jchaffraix@webkit.org>
3362
3363         Crash in RenderBox::paintBoxDecorations when documentElement has no renderer
3364         https://bugs.webkit.org/show_bug.cgi?id=64284
3365
3366         Reviewed by Ryosuke Niwa.
3367
3368         Test: fast/dynamic/crash-paint-no-documentElement-renderer.html
3369
3370         * rendering/RenderBox.cpp:
3371         (WebCore::RenderBox::paintBackground): Check the documentElement's
3372         renderer before using it which matches what RenderView does.
3373
3374 2011-12-14  Tom Sepez  <tsepez@chromium.org>
3375
3376         DocumentLoader should ref its mainResourceLoader.
3377         https://bugs.webkit.org/show_bug.cgi?id=74424
3378
3379         Reviewed by Adam Barth.
3380
3381         Tests: platform/chromium/http/tests/security/mixedContent/insecure-iframe-in-main-frame-allowed.html
3382                platform/chromium/http/tests/security/mixedContent/insecure-iframe-in-main-frame-blocked.html
3383
3384         * loader/DocumentLoader.cpp:
3385         (WebCore::DocumentLoader::startLoadingMainResource):
3386         * loader/MainResourceLoader.cpp:
3387         (WebCore::MainResourceLoader::loadNow):
3388
3389 2011-12-14  Stephen White  <senorblanco@chromium.org>
3390
3391         CSS Filters should support GPU acceleration
3392         https://bugs.webkit.org/show_bug.cgi?id=74441
3393
3394         Reviewed by Darin Adler.
3395
3396         Will be covered by existing CSS filters tests, when run in GPU mode.
3397
3398         * rendering/FilterEffectRenderer.cpp:
3399         (WebCore::FilterEffectRenderer::prepare):
3400         * rendering/RenderLayer.cpp:
3401         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
3402
3403 2011-12-14  Brian Salomon  <bsalomon@google.com>
3404
3405         [CHROMIUM/SKIA] Handle put[Un/Pre]multipliedImageData conversions in Skia rather than ImageBuffer
3406         https://bugs.webkit.org/show_bug.cgi?id=73953
3407
3408         Reviewed by Stephen White.
3409
3410         Tested by existing canvas2d layout tests.
3411
3412         * platform/graphics/skia/ImageBufferSkia.cpp:
3413         (WebCore::putImageData):
3414         (WebCore::ImageBuffer::putUnmultipliedImageData):
3415         (WebCore::ImageBuffer::putPremultipliedImageData):
3416
3417 2011-12-14  Mary Wu  <mary.wu@torchmobile.com.cn>
3418
3419         Remove SharedBufferBlackBerry.cpp from WebCore/platform/blackberry
3420         https://bugs.webkit.org/show_bug.cgi?id=74488
3421
3422         Reviewed by Rob Buis.
3423
3424         Remove dead code, no new tests.
3425
3426         * platform/blackberry/SharedBufferBlackBerry.cpp: Removed.
3427
3428 2011-12-14  Kentaro Hara  <haraken@chromium.org>
3429
3430         Use [Supplemental] IDL in WebSocket
3431         https://bugs.webkit.org/show_bug.cgi?id=74160
3432
3433         Reviewed by Adam Barth.
3434
3435         By using the [Supplemental] IDL, this patch moves declarations of WebSocket
3436         attributes from DOMWindow.idl to websocket/DOMWindowWebSocket.idl,
3437         which helps make WebSocket a self-contained module.
3438
3439         No new tests, no change in behavior.
3440         Confirm that http/tests/websocket/* pass.
3441
3442         * WebCore.gypi: Added DOMWindowWebSocket.idl.
3443         * page/DOMWindow.idl: Added the [Supplemented] IDL to WebSocket-related attributes. This [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL (See bug 73394 for more details).
3444         * websockets/DOMWindowWebSocket.idl: Added. Used the [Supplemental=DOMWindow] IDL. The attributes in this IDL file are treated as if they are described in DOMWindow.idl.