9a19b733789b6804596e0f81a3a9b652af74193c
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-26  Charles Wei  <charles.wei@torchmobile.com.cn>
2
3         [BlackBerry] Clean up networking code and remove WML support.
4         https://bugs.webkit.org/show_bug.cgi?id=82170
5
6         Reviewed by Rob Buis.
7
8         This just removes the WML support of BlackBerry porting, which is already 
9         removed from WebCore. No new tests needed.
10
11         * platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
12         (WebCore):
13         * platform/network/blackberry/DeferredData.cpp:
14         (WebCore::DeferredData::DeferredData):
15         (WebCore::DeferredData::processDeferredData):
16         * platform/network/blackberry/DeferredData.h:
17         (DeferredData):
18         (WebCore::DeferredData::hasDeferredData):
19         * platform/network/blackberry/NetworkJob.cpp:
20         * platform/network/blackberry/NetworkJob.h:
21         (NetworkJob):
22         * platform/network/blackberry/ResourceResponse.h:
23         (WebCore::ResourceResponse::ResourceResponse):
24         (ResourceResponse):
25         * platform/network/blackberry/ResourceResponseBlackBerry.cpp:
26         (WebCore::ResourceResponse::doPlatformCopyData):
27         (WebCore::ResourceResponse::doPlatformAdopt):
28
29 2012-03-26  Philip Rogers  <pdr@google.com>
30
31         Add invalid bounding box concept to SVG containers
32         https://bugs.webkit.org/show_bug.cgi?id=81104
33
34         Reviewed by Nikolas Zimmermann.
35
36         An empty <g> element needs to use an invalid bounding box because
37         an empty bounding box isn't the default state. This change
38         introduces the concept of an invalid object bounding box for
39         both RenderSVGContainer and RenderSVGRoot. Code that
40         does not explicitly check that the bounding box is valid
41         should be unaffected by this change. We use this new invalid
42         flag in computeContainerBoundingBoxes so that we do not
43         include invalid bounding boxes.
44
45         This change also contains a small fix in
46         RenderSVGContainer::toRenderSVGContainer which depended on
47         RenderSVGViewportContainer not inheriting from RenderSVGContainer,
48         which it now does.
49
50         Test: svg/custom/getBBox-empty-container.html
51
52         * rendering/svg/RenderSVGContainer.cpp:
53         (WebCore::RenderSVGContainer::RenderSVGContainer):
54         (WebCore::RenderSVGContainer::updateCachedBoundaries):
55         * rendering/svg/RenderSVGContainer.h:
56         (WebCore::RenderSVGContainer::isObjectBoundingBoxValid):
57         (RenderSVGContainer):
58         (WebCore::toRenderSVGContainer):
59         * rendering/svg/RenderSVGRoot.cpp:
60         (WebCore::RenderSVGRoot::RenderSVGRoot):
61         (WebCore::RenderSVGRoot::updateCachedBoundaries):
62         * rendering/svg/RenderSVGRoot.h:
63         (RenderSVGRoot):
64         * rendering/svg/SVGRenderSupport.cpp:
65         (WebCore):
66         (WebCore::updateObjectBoundingBox):
67         (WebCore::SVGRenderSupport::computeContainerBoundingBoxes):
68         * rendering/svg/SVGRenderSupport.h:
69         (SVGRenderSupport):
70
71 2012-03-26  Alexei Filippov  <alexeif@chromium.org>
72
73         Web Inspector: Speed up the retainers build phase.
74         https://bugs.webkit.org/show_bug.cgi?id=81763
75
76         Replacing the edge iterator in retainers building phase
77         makes it run 10 times faster (400 ms vs. 4 sec).
78
79         Reviewed by Yury Semikhatsky.
80
81         * inspector/front-end/HeapSnapshot.js:
82         (WebInspector.HeapSnapshot.prototype._buildRetainers):
83
84 2012-03-22  Alexander Pavlov  <apavlov@chromium.org>
85
86         Web Inspector: Migrate InspectorCSSAgent to strict protocol types
87         https://bugs.webkit.org/show_bug.cgi?id=81923
88
89         Reviewed by Pavel Feldman.
90
91         No new tests, as this is a refactoring.
92
93         * inspector/CodeGeneratorInspector.py:
94         * inspector/InspectorCSSAgent.cpp:
95         (SelectorProfile):
96         (WebCore::SelectorProfile::toInspectorObject):
97         (WebCore::InspectorCSSAgent::clearFrontend):
98         (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
99         (WebCore::InspectorCSSAgent::getInlineStylesForNode):
100         (WebCore::InspectorCSSAgent::getComputedStyleForNode):
101         (WebCore::InspectorCSSAgent::getAllStyleSheets):
102         (WebCore::InspectorCSSAgent::getStyleSheet):
103         (WebCore::InspectorCSSAgent::setPropertyText):
104         (WebCore::InspectorCSSAgent::toggleProperty):
105         (WebCore::InspectorCSSAgent::setRuleSelector):
106         (WebCore::InspectorCSSAgent::addRule):
107         (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
108         (WebCore::InspectorCSSAgent::stopSelectorProfiler):
109         (WebCore::InspectorCSSAgent::stopSelectorProfilerImpl):
110         (WebCore::InspectorCSSAgent::collectStyleSheets):
111         (WebCore::InspectorCSSAgent::buildArrayForRuleList):
112         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
113         * inspector/InspectorCSSAgent.h:
114         (InspectorCSSAgent):
115         * inspector/InspectorStyleSheet.cpp:
116         (WebCore::buildSourceRangeObject):
117         (WebCore::buildMediaObject):
118         (WebCore::fillMediaListChain):
119         (WebCore::InspectorStyle::buildObjectForStyle):
120         (WebCore::InspectorStyle::buildArrayForComputedStyle):
121         (WebCore::InspectorStyle::styleWithProperties):
122         (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
123         (WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
124         (WebCore::InspectorStyleSheet::buildObjectForRule):
125         (WebCore::InspectorStyleSheet::buildObjectForStyle):
126         * inspector/InspectorStyleSheet.h:
127         (WebCore::InspectorCSSId::asProtocolValue):
128         (InspectorStyle):
129         (InspectorStyleSheet):
130
131 2012-03-26  Alexander Pavlov  <apavlov@chromium.org>
132
133         Web Inspector: [REGRESSION] Workarounds for security checks when retrieving stylesheet rule lists are broken
134         https://bugs.webkit.org/show_bug.cgi?id=82191
135
136         Reviewed by Vsevolod Vlasov.
137
138         Test: http/tests/inspector/modify-cross-domain-rule.html
139
140         * inspector/InspectorStyleSheet.cpp:
141         (WebCore::asCSSRuleList):
142         (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
143
144 2012-03-26  Carlos Garcia Campos  <cgarcia@igalia.com>
145
146         Unreviewed. Fix make distcheck.
147
148         * GNUmakefile.list.am: Add missing files.
149
150 2012-03-26  Jason Liu  <jason.liu@torchmobile.com.cn>
151
152         [BlackBerry] Cookies mismatch when login to gmail.
153         https://bugs.webkit.org/show_bug.cgi?id=82165
154
155         Redirection's response can add or update cookies. The cookies of ResourceRequest is dirty
156         in this case. We shouldn't copy the dirty cookie header from ResourceRequest to PlatformRequest
157         for redirection loading.
158
159         This issue didn't happen before because we used m_cookieData not the cookie header.
160         Now we use the cookie header to avoid storing double cookie's data, and m_cookieData is removed.
161
162         Reviewed by George Staikos.
163
164         No new tests. It is a refactoring issue.
165
166         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
167         (WebCore::ResourceRequest::initializePlatformRequest):
168
169 2012-03-26  Alexis Menard  <alexis.menard@openbossa.org>
170
171         Increase code sharing between StylePropertySet and CSSPropertyLonghand.
172         https://bugs.webkit.org/show_bug.cgi?id=81960
173
174         Reviewed by Antti Koivisto.
175
176         Use longhands declaration from CSSPropertyLonghand in StylePropertySet in order
177         to avoid code duplication.
178
179         No new tests : refactoring only, we shouldn't have any behavior difference.
180
181         * css/CSSPropertyLonghand.cpp:
182         (WebCore::backgroundLonghand):
183         Re-order the array to match the spec default order.
184         (WebCore::webkitMaskLonghand):
185         Re-order to match the original order.
186         (WebCore::webkitTransformOriginLonghand):
187         A LayoutTest shows that a property was missing.
188         * css/StylePropertySet.cpp:
189         (WebCore::StylePropertySet::getPropertyValue):
190         (WebCore::StylePropertySet::borderSpacingValue):
191         (WebCore::StylePropertySet::get4Values):
192         (WebCore::StylePropertySet::getLayeredShorthandValue):
193         (WebCore::StylePropertySet::getShorthandValue):
194         (WebCore::StylePropertySet::getCommonValue):
195         (WebCore::StylePropertySet::asText):
196         * css/StylePropertySet.h:
197         (WebCore):
198         (StylePropertySet):
199
200 2012-03-26  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
201
202         [Qt] Assert in GestureTapHighlighter.
203         https://bugs.webkit.org/show_bug.cgi?id=82187
204
205         Reviewed by Kenneth Rohde Christiansen.
206
207         Adjust the boundaries of the center-rect before performing the intersection test,
208         since adjusting the boundary may cause a new intersection.
209
210         * page/GestureTapHighlighter.cpp:
211
212 2012-03-26  Antti Koivisto  <antti@apple.com>
213
214         Split MediaList into internal and CSSOM types
215         https://bugs.webkit.org/show_bug.cgi?id=82149
216
217         Reviewed by Andread Kling.
218
219         MediaList is a CSSOM type and should not be used internally.
220         
221         - Use new type MediaQuerySet internally to represent a collection of media queries.
222         - Create MediaList wrapper on-demand for CSSOM purposes only.
223         
224         This moves us forward in separating CSSOM from the internal stylesheet implementation.
225         
226         MediaQuerySet really belongs to a file of its own but that is not part of this patch.
227         
228         * css/CSSGrammar.y:
229         * css/CSSImportRule.cpp:
230         (WebCore::CSSImportRule::create):
231         (WebCore):
232         (WebCore::CSSImportRule::CSSImportRule):
233         (WebCore::CSSImportRule::~CSSImportRule):
234         (WebCore::CSSImportRule::media):
235         (WebCore::CSSImportRule::cssText):
236         * css/CSSImportRule.h:
237         (WebCore):
238         (CSSImportRule):
239         (WebCore::CSSImportRule::mediaQueries):
240         * css/CSSMediaRule.cpp:
241         (WebCore::CSSMediaRule::CSSMediaRule):
242         (WebCore::CSSMediaRule::~CSSMediaRule):
243         (WebCore::CSSMediaRule::cssText):
244         * css/CSSMediaRule.h:
245         (WebCore::CSSMediaRule::create):
246         (WebCore::CSSMediaRule::media):
247         (WebCore::CSSMediaRule::mediaQueries):
248         (CSSMediaRule):
249         * css/CSSParser.cpp:
250         (WebCore::CSSParser::parseMediaQuery):
251         (WebCore::CSSParser::createMediaQuerySet):
252         (WebCore::CSSParser::createImportRule):
253         (WebCore::CSSParser::createMediaRule):
254         (WebCore::CSSParser::updateLastMediaLine):
255         * css/CSSParser.h:
256         (WebCore):
257         (CSSParser):
258         * css/CSSStyleSelector.cpp:
259         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
260         * css/CSSStyleSheet.cpp:
261         (WebCore):
262         (WebCore::CSSStyleSheet::media):
263         (WebCore::CSSStyleSheet::setMediaQueries):
264         * css/CSSStyleSheet.h:
265         (WebCore):
266         (CSSStyleSheet):
267         (WebCore::CSSStyleSheet::mediaQueries):
268         * css/MediaList.cpp:
269         (WebCore):
270         (WebCore::MediaQuerySet::MediaQuerySet):
271         (WebCore::MediaQuerySet::~MediaQuerySet):
272         (WebCore::parseMediaDescriptor):
273         (WebCore::MediaQuerySet::parse):
274         (WebCore::MediaQuerySet::add):
275         (WebCore::MediaQuerySet::remove):
276         (WebCore::MediaQuerySet::addMediaQuery):
277         (WebCore::MediaQuerySet::mediaText):
278         (WebCore::MediaQuerySet::ensureMediaList):
279         
280             - Use OwnPtr<> for MediaQuery ownership.
281             - Move the appropriate functions to MediaQuerySet.
282             - Clean up a bit to make this more readable and better aligned to WebKit style.
283         
284         (WebCore::MediaList::MediaList):
285         (WebCore::MediaList::~MediaList):
286         (WebCore::MediaList::setMediaText):
287         (WebCore::MediaList::item):
288         (WebCore::MediaList::deleteMedium):
289         (WebCore::MediaList::appendMedium):
290         * css/MediaList.h:
291         (WebCore):
292         (WebCore::MediaQuerySet::create):
293         (WebCore::MediaQuerySet::createAllowingDescriptionSyntax):
294         (MediaQuerySet):
295         (WebCore::MediaQuerySet::queryVector):
296         (WebCore::MediaQuerySet::lastLine):
297         (WebCore::MediaQuerySet::setLastLine):
298         (MediaList):
299         (WebCore::MediaList::ref):
300         (WebCore::MediaList::deref):
301         (WebCore::MediaList::length):
302         (WebCore::MediaList::mediaText):
303         (WebCore::MediaList::queries):
304         * css/MediaQueryEvaluator.cpp:
305         (WebCore::MediaQueryEvaluator::eval):
306         * css/MediaQueryEvaluator.h:
307         (WebCore):
308         (MediaQueryEvaluator):
309         * css/MediaQueryList.cpp:
310         (WebCore::MediaQueryList::create):
311         (WebCore::MediaQueryList::MediaQueryList):
312         * css/MediaQueryList.h:
313         (WebCore):
314         (MediaQueryList):
315         * css/MediaQueryMatcher.cpp:
316         (WebCore::MediaQueryMatcher::evaluate):
317         (WebCore::MediaQueryMatcher::matchMedia):
318         * css/MediaQueryMatcher.h:
319         (WebCore):
320         (MediaQueryMatcher):
321         * css/StyleMedia.cpp:
322         (WebCore::StyleMedia::matchMedium):
323         * css/StyleSheet.cpp:
324         (WebCore::StyleSheet::~StyleSheet):
325         
326             Move the media query ownership to CSSStyleSheet where it belongs.
327         
328         (WebCore):
329         * css/StyleSheet.h:
330         (WebCore::StyleSheet::media):
331         (StyleSheet):
332         * dom/DOMImplementation.cpp:
333         (WebCore::DOMImplementation::createCSSStyleSheet):
334         * dom/ProcessingInstruction.cpp:
335         (WebCore::ProcessingInstruction::setCSSStyleSheet):
336         * dom/StyleElement.cpp:
337         (WebCore::StyleElement::createSheet):
338         * html/HTMLLinkElement.cpp:
339         (WebCore::HTMLLinkElement::process):
340         (WebCore::HTMLLinkElement::setCSSStyleSheet):
341         * html/HTMLMediaElement.cpp:
342         (WebCore::HTMLMediaElement::selectNextSourceChild):
343         * html/parser/HTMLPreloadScanner.cpp:
344         (WebCore::HTMLNames::PreloadTask::linkMediaAttributeIsScreen):
345         * inspector/InspectorStyleSheet.cpp:
346         (WebCore::buildMediaObject):
347
348 2012-03-26  Zeno Albisser  <zeno@webkit.org>
349
350         [Qt]WK2] TextureMapperShaderManager should query the program map before creating new shader program instances.
351         https://bugs.webkit.org/show_bug.cgi?id=82178
352
353         If TextureMapperShaderManager already has a reference to an instance of the
354         requested shader program type, this instance should be reused instead of
355         creating a new one.
356
357         Reviewed by Noam Rosenthal.
358
359         * platform/graphics/texmap/TextureMapperShaderManager.h:
360         (WebCore::TextureMapperShaderManager::getShaderProgram):
361
362 2012-03-26  Yury Semikhatsky  <yurys@chromium.org>
363
364         [Chromium] Web Inspector: dedicated worker inspector is empty
365         https://bugs.webkit.org/show_bug.cgi?id=82181
366
367         "beforeunload" event for worker inspector front-end is ingnored if the
368         window url is "about:blank" as it is just unload of the default content
369         before the front-end page load.
370
371         Reviewed by Pavel Feldman.
372
373         * inspector/front-end/WorkerManager.js:
374         (WebInspector.WorkerManager.prototype._workerInspectorClosing):
375
376 2012-03-22  Yury Semikhatsky  <yurys@chromium.org>
377
378         Web Inspector: split nodes and containment edges into two different arrays
379         https://bugs.webkit.org/show_bug.cgi?id=81930
380
381         Extract heap profile nodes and edges into two separate arrays. This
382         way we will have a continuous array of the heap graph nodes and can
383         aviod additional mapping between node index and its position in the
384         heap snapshot.
385
386         Reviewed by Pavel Feldman.
387
388         * inspector/front-end/HeapSnapshot.js:
389         (WebInspector.HeapSnapshot.prototype._init):
390         (WebInspector.HeapSnapshot.prototype._buildContinuousNodeArray):
391         (WebInspector.HeapSnapshot.prototype._createOnlyNodesArray):
392         (WebInspector.HeapSnapshot.prototype._restoreNodeTypes):
393         (WebInspector.HeapSnapshot.prototype._createRetainmentEdgesArray):
394         (WebInspector.HeapSnapshot.prototype._createContainmentEdgesArray):
395         * inspector/front-end/HeapSnapshotProxy.js:
396         (WebInspector.HeapSnapshotWorker):
397
398 2012-03-22  Pavel Podivilov  <podivilov@chromium.org>
399
400         Web Inspector: move resource loading logic from SourceMapParser to CompilerScriptMapping.
401         https://bugs.webkit.org/show_bug.cgi?id=81897
402
403         Reviewed by Vsevolod Vlasov.
404
405         SourceMapParser should only deal with payload parsing.
406
407         * inspector/front-end/CompilerScriptMapping.js:
408         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
409         (WebInspector.CompilerScriptMapping.prototype.addScript):
410         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
411         (WebInspector.SourceMapPayload):
412         (WebInspector.SourceMapParser):
413         (WebInspector.SourceMapParser.prototype.sourceContent):
414         (WebInspector.SourceMapParser.prototype.findEntry):
415         (WebInspector.SourceMapParser.prototype.findEntryReversed):
416         * inspector/front-end/ContentProviders.js:
417         (WebInspector.CompilerSourceMappingContentProvider):
418         (WebInspector.CompilerSourceMappingContentProvider.prototype.requestContent):
419
420 2012-03-26  Ilya Tikhonovsky  <loislo@chromium.org>
421
422         Web Inspector: replace indexOf('a text') === 0 with RegExp because it is much faster.
423         https://bugs.webkit.org/show_bug.cgi?id=82175
424
425         We were using aString.indexOf("Window") but it is not effective from performance point of view.
426         I'm replaced it with RegExp.
427
428         Reviewed by Yury Semikhatsky.
429
430         * inspector/front-end/HeapSnapshot.js:
431         (WebInspector.HeapSnapshotNode.prototype.get isWindow):
432         (WebInspector.HeapSnapshotNode.prototype.get isDetachedDOMTree):
433
434 2012-03-26  Pavel Feldman  <pfeldman@chromium.org>
435
436         Web Inspector: breakpoints should be disabled while live editing JavaScript.
437         https://bugs.webkit.org/show_bug.cgi?id=81947
438
439         Reviewed by Yury Semikhatsky.
440
441         This change disables (removes from the backend) the breakpoints while editing script.
442         Undoing or committing the change restores the breakpoints. Main logic is implemented within
443         JavaScriptSourceFrame, but it required minor tweaking of the text editor: more correct
444         undo/redo wrapper and better detection of the noop opterations.
445
446         * inspector/front-end/JavaScriptSourceFrame.js:
447         (WebInspector.JavaScriptSourceFrame):
448         (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
449         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
450         (WebInspector.JavaScriptSourceFrame.prototype.didEditContent):
451         (WebInspector.JavaScriptSourceFrame.prototype.addBreakpoint):
452         (WebInspector.JavaScriptSourceFrame.prototype.removeBreakpoint):
453         (WebInspector.JavaScriptSourceFrame.prototype._onMouseDown):
454         * inspector/front-end/TextEditorModel.js:
455         (WebInspector.TextEditorModel.endsWithBracketRegex.):
456         * inspector/front-end/TextViewer.js:
457         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo.before):
458         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo.after):
459         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
460         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
461
462 2012-03-25  Nat Duca  <nduca@chromium.org>
463
464         [chromium] Route willBeginFrame from compositor to WebWidget
465         https://bugs.webkit.org/show_bug.cgi?id=82171
466
467         Reviewed by Darin Fisher.
468
469         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
470         (CCLayerTreeHostClient):
471         (WebCore::CCLayerTreeHost::willBeginFrame):
472         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
473         (WebCore::CCThreadProxy::beginFrame):
474
475 2012-03-25  Hayato Ito  <hayato@chromium.org>
476
477         [Shadow DOM] Add Reified DOM Tree traversal internal APIs.
478         https://bugs.webkit.org/show_bug.cgi?id=79197
479
480         Reviewed by Dimitri Glazkov.
481
482         Add internal APIs which can be used to traverse Reified DOM tree, which is
483         a result of node distribution algorithm explained in Shadow DOM spec.
484         https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html
485
486         Every public functions defined in ReifiedTreeTraversal are static
487         functions and are named in a similar way to ones defined in WebCore::Node class.
488         The only difference is that ReifiedTreeTraversal APIs consider shadow
489         hosts and also traverse nodes is Shadow DOM subtrees, crossing shadow's upper and lower boundary
490         transparently.
491
492         There is no actual client which uses these APIs. Follow-up patches for FocusNavigation
493         and EventDispatcher will use the APIs so that they can traverse node in reified tree order.
494
495         Test: fast/dom/shadow/reified-tree-traversal.html
496
497         * CMakeLists.txt:
498         * GNUmakefile.list.am:
499         * Target.pri:
500         * WebCore.exp.in:
501         * WebCore.gypi:
502         * WebCore.vcproj/WebCore.vcproj:
503         * WebCore.xcodeproj/project.pbxproj:
504         * dom/ReifiedTreeTraversal.cpp: Added.
505         (WebCore):
506         (WebCore::isShadowHost):
507         (WebCore::shadowTreeFor):
508         (WebCore::shadowTreeOfParent):
509         (WebCore::ReifiedTreeTraversal::firstChild):
510         (WebCore::ReifiedTreeTraversal::lastChild):
511         (WebCore::ReifiedTreeTraversal::lastChildWithoutCrossingUpperBoundary):
512         (WebCore::ReifiedTreeTraversal::traverseChild):
513         (WebCore::ReifiedTreeTraversal::traverseLightChildren):
514         (WebCore::ReifiedTreeTraversal::traverseNode):
515         (WebCore::ReifiedTreeTraversal::nextSibling):
516         (WebCore::ReifiedTreeTraversal::previousSibling):
517         (WebCore::ReifiedTreeTraversal::traverseSiblingOrBackToInsertionPoint):
518         (WebCore::ReifiedTreeTraversal::traverseSiblingInCurrentTree):
519         (WebCore::ReifiedTreeTraversal::traverseSiblingOrBackToYoungerShadowRoot):
520         (WebCore::ReifiedTreeTraversal::escapeFallbackContentElement):
521         (WebCore::ReifiedTreeTraversal::traverseNodeEscapingFallbackContents):
522         (WebCore::ReifiedTreeTraversal::parentNode):
523         (WebCore::ReifiedTreeTraversal::parentNodeWithoutCrossingUpperBoundary):
524         (WebCore::ReifiedTreeTraversal::parentNodeOrBackToInsertionPoint):
525         (WebCore::ReifiedTreeTraversal::parentNodeInCurrentTree):
526         (WebCore::ReifiedTreeTraversal::parentNodeBackToYoungerShadowRootOrHost):
527         (WebCore::ReifiedTreeTraversal::adjustedParentNode):
528         (WebCore::ReifiedTreeTraversal::traverseNextNode):
529         (WebCore::ReifiedTreeTraversal::traverseNextNodeWithoutCrossingUpperBoundary):
530         (WebCore::ReifiedTreeTraversal::traversePreviousNode):
531         (WebCore::ReifiedTreeTraversal::traversePreviousNodeWithoutCrossingUpperBoundary):
532         * dom/ReifiedTreeTraversal.h: Added.
533         (WebCore):
534         (ReifiedTreeTraversal):
535         * dom/ShadowTree.cpp:
536         (WebCore::ShadowTree::insertionPointFor):
537         (WebCore::ShadowTree::selectionFor):
538         (WebCore):
539         * dom/ShadowTree.h:
540         (WebCore):
541         (ShadowTree):
542         * html/shadow/HTMLContentSelector.cpp:
543         (WebCore::HTMLContentSelector::findFor):
544         * html/shadow/HTMLContentSelector.h:
545         (HTMLContentSelectionSet):
546         (WebCore::HTMLContentSelectionSet::find):
547         (HTMLContentSelector):
548         * html/shadow/InsertionPoint.h:
549         (WebCore::isInsertionPoint):
550         (WebCore::toInsertionPoint):
551         (WebCore):
552         * testing/Internals.cpp:
553         (WebCore::Internals::nextSiblingInReifiedTree):
554         (WebCore):
555         (WebCore::Internals::firstChildInReifiedTree):
556         (WebCore::Internals::lastChildInReifiedTree):
557         (WebCore::Internals::traverseNextNodeInReifiedTree):
558         (WebCore::Internals::traversePreviousNodeInReifiedTree):
559         * testing/Internals.h:
560         (Internals):
561         * testing/Internals.idl:
562
563 2012-03-25  Nikita Vasilyev  <me@elv1s.ru>
564
565         Web Inspector: Indenting fully selected line should not indent the line next to it
566         https://bugs.webkit.org/show_bug.cgi?id=81758
567
568         In the editor, you can select a whole line by moving caret at 0 column
569         position and pressing Shift + Arrow Down/Up. After that, pressing Tab
570         indents 2 lines: fully selected one and the line next to it. The patch
571         changes this behaviour to indent only fully selected line since that is
572         what pretty-match all the other code editors do.
573
574         Reviewed by Pavel Feldman.
575
576         Test: inspector/editor/indentation.html
577
578         * inspector/front-end/TextViewer.js:
579         (WebInspector.TextEditorMainPanel.prototype._indentLines):
580             Do not insert indent at the begging of the last line if a selection
581             ends on its 0 column.
582         (WebInspector.TextEditorMainPanel.prototype._unindentLines):
583             Do not remove indent at the begging of the last line if a selection
584             ends on its 0 column.
585
586 2012-03-25  Abhishek Arya  <inferno@chromium.org>
587
588         Crash in ContainerNode::resumePostAttachCallbacks.
589         https://bugs.webkit.org/show_bug.cgi?id=82159
590
591         Reviewed by Hajime Morita.
592
593         Test: plugins/object-onfocus-mutation-crash.html
594
595         * dom/ContainerNode.cpp:
596         (WebCore::ContainerNode::resumePostAttachCallbacks): dispatching post attach
597         callbacks when our attach depth is 1 can fire mutation events such as onfocus
598         which can blow away |this|. Need to protect it with a RefPtr.
599         * html/HTMLPlugInImageElement.cpp:
600         (WebCore::HTMLPlugInImageElement::attach): add calls to suspend attach callbacks
601         until the function completes.
602
603 2012-03-25  Dana Jansens  <danakj@chromium.org>
604
605         [chromium] Layers with animating transforms should prepaint even if they are not visible yet
606         https://bugs.webkit.org/show_bug.cgi?id=82117
607
608         Reviewed by Adrienne Walker.
609
610         For animating transforms, instead of early-outing when the layer's
611         visible rect is empty, let it prepaint regardless.
612
613         For now, we just only paint the outermost tiles, and only for small
614         layers, with at most 9 tiles.
615
616         This changes the behaviour of ContentLayerChromium's
617         idlePaintContentsIfDirty() so I've guarded the behaviour of the two
618         prepainting functions that it calls to ensure the old behaviour holds
619         without animations, and the new behaviour works with them.
620
621         Unit test: TiledLayerChromiumTest.idlePaintZeroSizedLayer
622                    TiledLayerChromiumTest.idlePaintZeroSizedAnimatingLayer
623                    TiledLayerChromiumTest.idlePaintNonVisibleLayers
624                    TiledLayerChromiumTest.idlePaintNonVisibleAnimatingLayers
625
626         * platform/graphics/chromium/ContentLayerChromium.cpp:
627         (WebCore::ContentLayerChromium::idlePaintContentsIfDirty):
628         * platform/graphics/chromium/TiledLayerChromium.cpp:
629         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
630         (WebCore::TiledLayerChromium::needsIdlePaint):
631         (WebCore::TiledLayerChromium::idlePaintRect):
632         * platform/graphics/chromium/TiledLayerChromium.h:
633         (WebCore::TiledLayerChromium::numPaintedTiles):
634         (TiledLayerChromium):
635
636 2012-03-25  Antti Koivisto  <antti@apple.com>
637
638         Don't use CSSRuleList for child rule ownership
639         https://bugs.webkit.org/show_bug.cgi?id=82127
640
641         Reviewed by Andreas Kling.
642
643         CSSMediaRule, WebKitCSSKeyframesRule and WebKitRegionRule use CSSRuleList for storing children. 
644         They should use a simple rule vector instead. CSSRuleList is a CSSOM type that should be 
645         instantiated on-demand for API purposes only.
646         
647         - Use Vector<RefPtr<CSSRule>> for storing the rule children of CSSMediaRule, WebKitCSSKeyframesRule 
648           and WebKitRegionRule.
649         - Add direct accessors, use internally instead of CSSRuleList.
650         - Make CSSRuleList an abstract base. Add concrete subclasses for dealing with the underlying storage.
651         - Instantiate CSSRuleLists on-demand.
652         - Make CSSStyleSheet.cssRules always return the same object instance. This matches Firefox and the rest
653           of our CSSOM implementation. Tested by fast/dom/gc-9.html.
654           
655         The patch decouples internals from the external API. It simplifies the child rule ownership and reduces 
656         indirection. Memory use of css rules with children is reduced (by a ptr, refcount and heap allocation overhead).
657
658         * css/CSSGrammar.y:
659         * css/CSSMediaRule.cpp:
660         (WebCore::CSSMediaRule::CSSMediaRule):
661         (WebCore::CSSMediaRule::~CSSMediaRule):
662         (WebCore::CSSMediaRule::append):
663         (WebCore::CSSMediaRule::insertRule):
664         (WebCore::CSSMediaRule::deleteRule):
665         (WebCore::CSSMediaRule::cssText):
666         (WebCore::CSSMediaRule::cssRules):
667         * css/CSSMediaRule.h:
668         (WebCore::CSSMediaRule::create):
669         (CSSMediaRule):
670         (WebCore::CSSMediaRule::ruleCount):
671         (WebCore::CSSMediaRule::ruleAt):
672         * css/CSSParser.cpp:
673         (WebCore::CSSParser::createMediaRule):
674         (WebCore::CSSParser::createRuleList):
675         (WebCore::CSSParser::createRegionRule):
676         * css/CSSParser.h:
677         (WebCore):
678         * css/CSSRuleList.cpp:
679         (WebCore):
680         (WebCore::StaticCSSRuleList::StaticCSSRuleList):
681         (WebCore::StaticCSSRuleList::~StaticCSSRuleList):
682         (WebCore::StaticCSSRuleList::deref):
683         (WebCore::StaticCSSRuleList::item):        
684         * css/CSSRuleList.h:
685         (CSSRuleList):
686
687             Turn CSSRuleList into abstract interface.
688                     
689         (StaticCSSRuleList):
690         (WebCore::StaticCSSRuleList::create):
691         (WebCore::StaticCSSRuleList::ref):
692         (WebCore::StaticCSSRuleList::rules):
693         (WebCore::StaticCSSRuleList::styleSheet):
694         (WebCore::StaticCSSRuleList::length):
695         
696             Concrete implementation for fixed list of rules.
697     
698         (WebCore):
699         (LiveCSSRuleList):
700         (WebCore::LiveCSSRuleList::LiveCSSRuleList):
701         (WebCore::LiveCSSRuleList::ref):
702         (WebCore::LiveCSSRuleList::deref):
703         (WebCore::LiveCSSRuleList::length):
704         (WebCore::LiveCSSRuleList::item):
705         (WebCore::LiveCSSRuleList::styleSheet):
706         
707             Concrete implemenation for live list backed by the underlying container rule.
708             LiveCSSRuleList is owned by the underlying rule. Refcount is forwarded. 
709         
710         * css/CSSStyleSelector.cpp:
711         (WebCore::CSSStyleSelector::sortAndTransferMatchedRules):
712         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
713         * css/CSSStyleSelector.h:
714         (CSSStyleSelector):
715         * css/CSSStyleSheet.cpp:
716         
717             The same scheme for CSSStyleSheet.cssRule as with container rules.
718         
719         (StyleSheetCSSRuleList):
720         (WebCore::StyleSheetCSSRuleList::StyleSheetCSSRuleList):
721         (WebCore::StyleSheetCSSRuleList::ref):
722         (WebCore::StyleSheetCSSRuleList::deref):
723         (WebCore::StyleSheetCSSRuleList::length):
724         (WebCore::StyleSheetCSSRuleList::item):
725         (WebCore::StyleSheetCSSRuleList::styleSheet):
726         (WebCore):
727         (WebCore::CSSStyleSheet::rules):
728         (WebCore::CSSStyleSheet::cssRules):
729         * css/CSSStyleSheet.h:
730         (CSSStyleSheet):
731         * css/WebKitCSSKeyframesRule.cpp:
732         (WebCore::WebKitCSSKeyframesRule::WebKitCSSKeyframesRule):
733         (WebCore::WebKitCSSKeyframesRule::~WebKitCSSKeyframesRule):
734         (WebCore):
735         (WebCore::WebKitCSSKeyframesRule::append):
736         (WebCore::WebKitCSSKeyframesRule::deleteRule):
737         (WebCore::WebKitCSSKeyframesRule::findRule):
738         (WebCore::WebKitCSSKeyframesRule::findRuleIndex):
739         (WebCore::WebKitCSSKeyframesRule::cssText):
740         (WebCore::WebKitCSSKeyframesRule::cssRules):
741         * css/WebKitCSSKeyframesRule.h:
742         (WebKitCSSKeyframesRule):
743         (WebCore::WebKitCSSKeyframesRule::ruleCount):
744         (WebCore::WebKitCSSKeyframesRule::ruleAt):
745         (WebCore::WebKitCSSKeyframesRule::length):
746         (WebCore::WebKitCSSKeyframesRule::item):
747         * css/WebKitCSSRegionRule.cpp:
748         (WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
749         (WebCore::WebKitCSSRegionRule::~WebKitCSSRegionRule):
750         (WebCore::WebKitCSSRegionRule::cssText):
751         (WebCore::WebKitCSSRegionRule::cssRules):
752         * css/WebKitCSSRegionRule.h:
753         * inspector/InspectorStyleSheet.cpp:
754         (WebCore::asCSSRuleList):
755         (WebCore::InspectorStyleSheet::addRule):
756         (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
757
758 2012-03-25  Kentaro Hara  <haraken@chromium.org>
759
760         Remove duplicated GenerateConditionalString() from code generators
761         https://bugs.webkit.org/show_bug.cgi?id=82148
762
763         Reviewed by Adam Barth.
764
765         Previously GenerateConditionalString()s were defined in each code generator,
766         and they were doing the same thing. This patch puts GenerateConditionalString()
767         in CodeGenerator.pm and removes duplicated GenerateConditionalString()s.
768
769         No tests. No change in the generated code.
770
771         * bindings/scripts/CodeGenerator.pm:
772         (GenerateConditionalString):
773         * bindings/scripts/CodeGeneratorCPP.pm:
774         (GenerateHeader):
775         (GenerateImplementation):
776         * bindings/scripts/CodeGeneratorGObject.pm:
777         (GenerateProperty):
778         (GenerateProperties):
779         (GenerateFunction):
780         (WriteData):
781         * bindings/scripts/CodeGeneratorJS.pm:
782         (GenerateHeaderContentHeader):
783         (GenerateImplementationContentHeader):
784         (GenerateHeader):
785         (GenerateImplementation):
786         (GenerateCallbackHeader):
787         (GenerateCallbackImplementation):
788         * bindings/scripts/CodeGeneratorObjC.pm:
789         (GenerateHeader):
790         (GenerateImplementation):
791         * bindings/scripts/CodeGeneratorV8.pm:
792         (GenerateHeader):
793         (GenerateNormalAttrGetter):
794         (GenerateNormalAttrSetter):
795         (GenerateOverloadedFunctionCallback):
796         (GenerateFunctionCallback):
797         (GenerateBatchedAttributeData):
798         (GenerateImplementation):
799         (GenerateHeaderContentHeader):
800         (GenerateImplementationContentHeader):
801         (GenerateCallbackHeader):
802         (GenerateCallbackImplementation):
803
804 2012-03-25  Kentaro Hara  <haraken@chromium.org>
805
806         Move DOMWindowSQLDatabase.* to DOMWindowWebDatabase.*, and move WorkerContextSQLDatabase.* to WorkerContextWebDatabase.*
807         https://bugs.webkit.org/show_bug.cgi?id=82146
808
809         Reviewed by Adam Barth.
810
811         Now SQLDatabase is renamed to WebDatabase (See Modules/webdatabase/).
812         We should move DOMWindowSQLDatabase.* to DOMWindowWebDatabase.*,
813         and move WorkerContextSQLDatabase.* to WorkerContextWebDatabase.*.
814         We'll rename the SQL_DATABASE flag to the WEB_DATABASE flag in a follow-up patch.
815
816         No tests. No change in behavior.
817
818         * Modules/webdatabase/DOMWindowWebDatabase.cpp: Renamed from Source/WebCore/Modules/webdatabase/DOMWindowSQLDatabase.cpp.
819         (WebCore):
820         (WebCore::DOMWindowWebDatabase::openDatabase):
821         * Modules/webdatabase/DOMWindowWebDatabase.h: Renamed from Source/WebCore/Modules/webdatabase/DOMWindowSQLDatabase.h.
822         (WebCore):
823         (DOMWindowWebDatabase):
824         (WebCore::DOMWindowWebDatabase::DOMWindowWebDatabase):
825         (WebCore::DOMWindowWebDatabase::~DOMWindowWebDatabase):
826         * Modules/webdatabase/DOMWindowWebDatabase.idl: Renamed from Source/WebCore/Modules/webdatabase/DOMWindowSQLDatabase.idl.
827         * Modules/webdatabase/WorkerContextWebDatabase.cpp: Renamed from Source/WebCore/Modules/webdatabase/WorkerContextSQLDatabase.cpp.
828         (WebCore):
829         (WebCore::WorkerContextWebDatabase::openDatabase):
830         (WebCore::WorkerContextWebDatabase::openDatabaseSync):
831         * Modules/webdatabase/WorkerContextWebDatabase.h: Renamed from Source/WebCore/Modules/webdatabase/WorkerContextSQLDatabase.h.
832         (WebCore):
833         (WorkerContextWebDatabase):
834         (WebCore::WorkerContextWebDatabase::WorkerContextWebDatabase):
835         (WebCore::WorkerContextWebDatabase::~WorkerContextWebDatabase):
836         * Modules/webdatabase/WorkerContextWebDatabase.idl: Renamed from Source/WebCore/Modules/webdatabase/WorkerContextSQLDatabase.idl.
837
838         * DerivedSources.make:
839         * DerivedSources.pri:
840         * GNUmakefile.list.am:
841         * Target.pri:
842         * WebCore.gypi:
843         * WebCore.vcproj/WebCore.vcproj:
844         * WebCore.xcodeproj/project.pbxproj:
845
846 2012-03-25  Philip Rogers  <pdr@google.com>
847
848         Avoid race condition when iterating over pending resources
849         https://bugs.webkit.org/show_bug.cgi?id=82115
850
851         Reviewed by Nikolas Zimmermann.
852
853         We can hit a race condition in SVGStyledElement::buildPendingResourcesIfNeeded
854         where pending elements can become non-pending while we iterate over them.
855
856         This patch cleans up buildPendingResourcesIfNeeded and re-works how pending
857         resources are removed. Because pending resources can be modified while
858         iterating over them, we introduce m_pendingResourcesForRemoval that
859         holds pending resources that are marked for removal. Instead of iterating
860         over this list we simply remove each pending resource from
861         m_pendingResourcesForRemoval; if a pending resource is modified or removed
862         during the processing of another pending resource this list is updated before
863         the next element can be accessed.
864
865         This change also removes removePendingResourceForElement which is no longer
866         referenced.
867
868         Test: http/tests/svg/change-id-with-pending-resources.html
869
870         * svg/SVGDocumentExtensions.cpp:
871         (WebCore::SVGDocumentExtensions::~SVGDocumentExtensions):
872         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
873         (WebCore::SVGDocumentExtensions::removePendingResourceForRemoval):
874         (WebCore):
875         (WebCore::SVGDocumentExtensions::markPendingResourcesForRemoval):
876         (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
877         * svg/SVGDocumentExtensions.h:
878         (SVGDocumentExtensions):
879         * svg/SVGStyledElement.cpp:
880         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
881
882 2012-03-25  Arvid Nilsson  <anilsson@rim.com>
883
884         [BlackBerry] Accelerated compositing layers fail to render when using WebPageCompositor
885         https://bugs.webkit.org/show_bug.cgi?id=82104
886         RIM PR: 145963
887
888         Reviewed by Rob Buis.
889
890         The embedder may use vertex buffers, which affected the interpretation
891         our vertex array pointers from memory pointers to offsets into a vertex
892         buffer. The resulting geometry often resulted in no visible layers on
893         screen.
894
895         Fixed by getting rid of any bound buffer when we enter
896         LayerRenderer::drawLayers().
897
898         * platform/graphics/blackberry/LayerRenderer.cpp:
899         (WebCore::LayerRenderer::drawLayers):
900
901 2012-03-24  Nat Duca  <nduca@chromium.org>
902
903         [chromium] Instrument gesture animations with async traces
904         https://bugs.webkit.org/show_bug.cgi?id=82076
905
906         Reviewed by Adrienne Walker.
907
908         * platform/ActivePlatformGestureAnimation.cpp:
909         (WebCore::ActivePlatformGestureAnimation::~ActivePlatformGestureAnimation):
910         (WebCore::ActivePlatformGestureAnimation::ActivePlatformGestureAnimation):
911         * platform/PlatformGestureCurve.h:
912         (PlatformGestureCurve):
913         * platform/TouchpadFlingPlatformGestureCurve.h:
914         (WebCore::TouchpadFlingPlatformGestureCurve::debugName):
915         * platform/WheelFlingPlatformGestureCurve.h:
916         (WebCore::WheelFlingPlatformGestureCurve::debugName):
917         * platform/graphics/chromium/cc/CCActiveGestureAnimation.cpp:
918         (WebCore::CCActiveGestureAnimation::CCActiveGestureAnimation):
919         (WebCore::CCActiveGestureAnimation::~CCActiveGestureAnimation):
920         * platform/graphics/chromium/cc/CCGestureCurve.h:
921         (CCGestureCurve):
922
923 2012-03-24  Jeffrey Pfau  <jpfau@apple.com>
924
925         XML error document creation should not fire mutation events
926         https://bugs.webkit.org/show_bug.cgi?id=80765
927
928         Reviewed by Adam Barth.
929
930         Broke two tests that expected the old behavior, which have now been updated.
931
932         * xml/XMLErrors.cpp:
933         (WebCore::createXHTMLParserErrorHeader):
934         (WebCore::XMLErrors::insertErrorMessageBlock):
935
936 2012-03-24  Florin Malita  <fmalita@google.com>
937
938         ForeignObject content is zoomed two times
939         https://bugs.webkit.org/show_bug.cgi?id=76282
940
941         Reviewed by Nikolas Zimmermann.
942
943         Test: svg/zoom/page/zoom-foreign-content.svg
944
945         Reset the effective zoom property for FO-nested content to avoid
946         having the zoom factor applied multiple times (zooming is handled by
947         the top level SVG root element).
948
949         * css/CSSStyleSelector.cpp:
950         (WebCore::CSSStyleSelector::adjustRenderStyle):
951
952 2012-03-24  Chris Fleizach  <cfleizach@apple.com>
953
954         AX: Support solution to handle invalid ax text marker
955         https://bugs.webkit.org/show_bug.cgi?id=82023
956
957         Reviewed by Oliver Hunt.
958
959         This provides methods to better use text markers so that assistive technologies
960         can know when they are valid, and can convert them to and from absolute positions.
961
962         Test: platform/mac/accessibility/textmarker-routines.html
963
964         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
965         (-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
966         (-[WebAccessibilityObjectWrapper _convertToNSRange:]):
967         (-[WebAccessibilityObjectWrapper _indexForTextMarker:]):
968         (-[WebAccessibilityObjectWrapper _textMarkerForIndex:]):
969         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
970
971 2012-03-24  Victor Carbune  <vcarbune@adobe.com>
972
973         Quick fix for rendering controls regression.
974         https://bugs.webkit.org/show_bug.cgi?id=82125
975
976         Reviewed by Eric Carlson.
977
978         Only temporary fix. Tests to cover the problem should be added
979
980         * html/shadow/MediaControlElements.cpp:
981         (WebCore::MediaControlPanelElement::makeOpaque): The display:none
982         property should be toggled only by the media element now.
983         (WebCore::MediaControlPanelElement::makeTransparent): The timer
984         that toggles the dispalay:none shouldn't be used now.
985
986 2012-03-24  Kevin Ollivier  <kevino@theolliviers.com>
987
988         [wx] Unreviewed. Add header needed for compilation.
989
990         * html/shadow/TextFieldDecorationElement.cpp:
991
992 2012-03-24  Abhishek Arya  <inferno@chromium.org>
993
994         Crash in ApplyStyleCommand::applyInlineStyleToNodeRange.
995         https://bugs.webkit.org/show_bug.cgi?id=81959
996
997         Reviewed by Ryosuke Niwa.
998
999         Test: editing/execCommand/apply-style-command-crash.html
1000
1001         * editing/ApplyStyleCommand.cpp:
1002         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange): RefPtr the weak
1003         node iterator |node|.
1004         * editing/ApplyStyleCommand.h:
1005         (ApplyStyleCommand): convert |startNode| and |pastEndNode| into PassRefPtr.
1006
1007 2012-03-24  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
1008
1009         Unreviewed, build fix since we use "-Werror=unused-but-set-variable".
1010
1011         The variable 'it' was set at TextureMapperShaderManager.h:110 but never used.
1012
1013         * platform/graphics/texmap/TextureMapperShaderManager.h:
1014         (WebCore::TextureMapperShaderManager::getShaderProgram):
1015
1016 2012-03-24  Zeno Albisser  <zeno@webkit.org>
1017
1018         [Qt][WK2] Make TextureMapperShaderManager::getShaderProgram() not be a template.
1019         https://bugs.webkit.org/show_bug.cgi?id=82049
1020
1021         Change the getShaderProgram() function to not be a template.
1022         This is a workaround for a compiler bug that leads to an assert
1023         when compiling in debug mode on mac.
1024
1025         Reviewed by Noam Rosenthal.
1026
1027         * platform/graphics/texmap/TextureMapperGL.cpp:
1028         (WebCore::TextureMapperGL::drawTexture):
1029         (WebCore::TextureMapperGL::beginClip):
1030         * platform/graphics/texmap/TextureMapperShaderManager.h:
1031         (TextureMapperShaderProgram):
1032         (WebCore::TextureMapperShaderManager::getShaderProgram):
1033         (TextureMapperShaderManager):
1034
1035 2012-03-23  Shawn Singh  <shawnsingh@chromium.org>
1036
1037         [chromium] Incorrect replica originTransform used in CCDamageTracker
1038         https://bugs.webkit.org/show_bug.cgi?id=82118
1039
1040         Reviewed by Adrienne Walker.
1041
1042         Unit test added to CCDamageTrackerTest.cpp
1043
1044         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
1045         (WebCore::CCDamageTracker::extendDamageForRenderSurface):
1046
1047 2012-03-23  Dana Jansens  <danakj@chromium.org>
1048
1049         [chromium] When prepainting fails, tiles dirty rects may be cleared
1050         https://bugs.webkit.org/show_bug.cgi?id=82107
1051
1052         Reviewed by Adrienne Walker.
1053
1054         When prepainting, if a tile is unable to be reserved due to memory
1055         limits, we bail out of prepareToUpdateTiles. But we would have
1056         cleared the dirty rect of any previous tiles. This leaves them
1057         in a bad state where their textures are reserved, but their textureIds
1058         are set to 0, and they are not marked dirty. This means that they will
1059         not be updated and displayed if they become visible, since it is
1060         assumed that valid textures with zero textureId must have a dirty
1061         region.
1062
1063         We fix this by not clearing the dirty rects until we know we are
1064         going to update the layer.
1065
1066         Unit test: TiledLayerChromiumTest.pushTilesAfterIdlePaintFailed
1067
1068         * platform/graphics/chromium/TiledLayerChromium.cpp:
1069         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
1070         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
1071         (WebCore::CCTiledLayerImpl::hasTextureIdForTileAt):
1072         (WebCore):
1073         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
1074         (CCTiledLayerImpl):
1075
1076 2012-03-23  Stephanie Lewis  <slewis@apple.com>
1077
1078         https://bugs.webkit.org/show_bug.cgi?id=81963 WebProcess can get stuck in GC during many low memory signals.
1079         <rdar://problem/11094830> WebProcess appears to get stuck in its GC handler (81963).
1080         Remove the call to garbage collect  in low memory signal handler.  Did some testing with hitting the low memory handler
1081         during Membuster and we would get back at most 100k - 200k.  That isn't enough to help the system, and in 
1082         that state the GC collection can take a substantial amount of time.
1083
1084         Reviewed by Geoff Garen.
1085
1086         Performance Change, no change in behavior.
1087
1088         * platform/mac/MemoryPressureHandlerMac.mm:
1089         (WebCore::MemoryPressureHandler::releaseMemory):
1090
1091 2012-03-23  W. James MacLean  <wjmaclean@chromium.org>
1092
1093         [chromium] CCLayerTreeHostImpl::scrollBegin() should return ScrollFailed for CCInputHandlerClient::Gesture type when wheel handlers found.
1094         https://bugs.webkit.org/show_bug.cgi?id=82106
1095
1096         Reviewed by Adrienne Walker.
1097
1098         Existing unit tests updated.
1099
1100         With gesture scroll events now being handled as mouse wheel events, we should not start a gesture scroll when
1101         wheel handlers are present.
1102
1103         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1104         (WebCore::CCLayerTreeHostImpl::scrollBegin):
1105
1106 2012-03-23  Adam Barth  <abarth@webkit.org>
1107
1108         Move Notifications APIs from WorkerContext.idl to WorkerContextNotifications.idl
1109         https://bugs.webkit.org/show_bug.cgi?id=79635
1110
1111         Reviewed by Kentaro Hara.
1112
1113         This patch moves the NotificationCenter from WorkerContext to
1114         WorkerContextNotificiations, reducing clutter in WorkerContext.  After
1115         this patch, Notifications are almost entirely contained in the
1116         notifications directory.
1117
1118         * CMakeLists.txt:
1119         * DerivedSources.make:
1120         * DerivedSources.pri:
1121         * GNUmakefile.list.am:
1122         * Target.pri:
1123         * WebCore.gypi:
1124         * WebCore.vcproj/WebCore.vcproj:
1125         * WebCore.xcodeproj/project.pbxproj:
1126         * workers/WorkerContext.cpp:
1127         (WebCore::WorkerContext::~WorkerContext):
1128         * workers/WorkerContext.h:
1129         (WebCore):
1130         (WorkerContext):
1131         * workers/WorkerContext.idl:
1132
1133 2012-03-23  Michal Mocny  <mmocny@google.com>
1134
1135         [chromium] RootLayer was not being checked for null causing segfaults very rarely.
1136         https://bugs.webkit.org/show_bug.cgi?id=82111
1137
1138         Reviewed by Adrienne Walker.
1139
1140         * platform/graphics/chromium/LayerRendererChromium.cpp:
1141         (WebCore::LayerRendererChromium::beginDrawingFrame):
1142         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1143         (WebCore::CCLayerTreeHostImpl::drawLayers):
1144
1145 2012-03-23  Shawn Singh  <shawnsingh@chromium.org>
1146
1147         [chromium] Fix race bug that clobbers CCLayerImpl updateRect
1148         https://bugs.webkit.org/show_bug.cgi?id=82109
1149
1150         Reviewed by Dirk Pranke.
1151
1152         If the main thread commits twice before the impl thread actually
1153         draws, then the updateRect of the first frame gets lost forever,
1154         and not propagated to the damage tracker.
1155
1156         The solution is to accumulate the updateRect. The CCLayerImpl
1157         updateRect is already being correctly cleared at the appropriate
1158         time after drawing.
1159
1160         Unit test added to LayerChromiumTest.cpp.
1161
1162         * platform/graphics/chromium/LayerChromium.cpp:
1163         (WebCore::LayerChromium::pushPropertiesTo):
1164
1165 2012-03-23  Rafael Weinstein  <rafaelw@chromium.org>
1166
1167         [MutationObservers] attributeFilter should be case sensitive at all times
1168         https://bugs.webkit.org/show_bug.cgi?id=81822
1169
1170         Reviewed by Ryosuke Niwa.
1171
1172         This removes the behavior in MutationObserverRegistration which treats
1173         attributeFilter as case insensitive for HTML elements in HTML documents.
1174
1175         Relevant tests have been updated.
1176
1177         * dom/MutationObserverRegistration.cpp:
1178         (WebCore::MutationObserverRegistration::resetObservation):
1179         (WebCore::MutationObserverRegistration::shouldReceiveMutationFrom):
1180         * dom/MutationObserverRegistration.h:
1181         (MutationObserverRegistration):
1182
1183 2012-03-23  Kentaro Hara  <haraken@chromium.org>
1184
1185         Move WebSocket APIs from WorkerContext.idl to WorkerContextWebSocket.idl
1186         https://bugs.webkit.org/show_bug.cgi?id=79663
1187
1188         Reviewed by Adam Barth.
1189
1190         For WebKit modularization, this patch moves WebSocket APIs from WorkerContext.idl
1191         to WorkerContextWebSocket.idl.
1192
1193         Tests: http/tests/websocket/tests/hybi/workers/* (No change in test results)
1194
1195         * CMakeLists.txt:
1196         * DerivedSources.make:
1197         * DerivedSources.pri:
1198         * GNUmakefile.list.am:
1199         * Modules/websockets/WorkerContextWebSocket.idl: Added.
1200         * WebCore.gypi:
1201         * WebCore.xcodeproj/project.xcodeproj:
1202         * workers/WorkerContext.idl:
1203
1204 2012-03-23  Parag Radke  <parag@motorola.com>
1205
1206         REGRESSION: can select text of an input button
1207         https://bugs.webkit.org/show_bug.cgi?id=13624
1208
1209         Reviewed by Ryosuke Niwa.
1210
1211         Text in a button should never have a selection background of its own painted
1212         but if the button is inside an editable area, then the whole button should
1213         have it's selection background painted.
1214
1215         Test: editing/selection/selection-button-text.html
1216
1217         * rendering/RenderButton.h:
1218         Added implementation for the virtual function canBeSelectionLeaf()
1219         which returns true if the button renderer is editable, false other wise.
1220         * rendering/RenderTextFragment.h:
1221         Added implementation for the virtual function canBeSelectionLeaf()
1222         which returns true if the text fragment renderer is editable, false other wise.
1223
1224 2012-03-23  Eric Carlson  <eric.carlson@apple.com>
1225
1226         Remove unnecessary ASSERT from LoadableTextTrack::trackElementIndex
1227         https://bugs.webkit.org/show_bug.cgi?id=82095
1228
1229         Reviewed by Dan Bernstein.
1230
1231         No new tests, removed a bogus ASSERT that was sometimes triggered by tests.
1232
1233         * html/track/LoadableTextTrack.cpp:
1234         (WebCore::LoadableTextTrack::trackElementIndex): Remove ASSERT.
1235
1236 2012-03-23  Eric Carlson  <eric.carlson@apple.com>
1237
1238         Layout Test media/video-source-load.html is failing
1239         https://bugs.webkit.org/show_bug.cgi?id=82094
1240
1241         Reviewed by Alexey Proskuryakov.
1242
1243         No new tests, tested by media/video-source-load.html.
1244
1245         * html/HTMLMediaElement.cpp:
1246         (WebCore::HTMLMediaElement::sourceWasAdded): Set m_nextChildNodeToConsider when called 
1247             with networkState == NETWORK_EMPTY because the resource selection algorithm has
1248             not started yet.
1249
1250 2012-03-23  Alexey Proskuryakov  <ap@apple.com>
1251
1252         [Mac] No need for platform-specific ENABLE_BLOB values
1253         https://bugs.webkit.org/show_bug.cgi?id=82102
1254
1255         Reviewed by David Kilzer.
1256
1257         * Configurations/FeatureDefines.xcconfig:
1258
1259 2012-03-23  Kent Tamura  <tkent@chromium.org>
1260
1261         Add TextFieldDecorator and TextFieldDecorationElement
1262         https://bugs.webkit.org/show_bug.cgi?id=80580
1263
1264         Reviewed by Dimitri Glazkov.
1265
1266         These classes will be used to add a decoration icon to a text field
1267         <input> from outside of WebCore. We have a plan to use them in Chromium
1268         port. So this patch doesn't add TextFieldDecorationElement.{cpp,h} to
1269         non-Chromium build files.
1270
1271         How it works:
1272         When a shadow subtree for a text field is created, we ask ChromeClient
1273         to decorate it. ChromeClient appends a TextFieldDecorationElement to the
1274         existing shadow subtree or another shadow tree. A TextFieldDecorator is
1275         associated to a TextFieldDecorationElement, and it provides decoration
1276         icon images and a click handler.
1277
1278         No new tests. This patch won't make any behavior change for now.
1279
1280         * WebCore.gypi: Add TextFieldDecorationElement.cpp and TextFieldDecorationElement.h
1281         * dom/Element.h:
1282         (WebCore::Element::isTextFieldDecoration):
1283         * html/TextFieldInputType.cpp:
1284         (WebCore::TextFieldInputType::createShadowSubtree):
1285         Calls ChromeClient::willAddTextFieldDecorationsTo() and addTextFieldDecorationsTo().
1286         * html/shadow/TextFieldDecorationElement.cpp: Added.
1287         (WebCore::TextFieldDecorator::~TextFieldDecorator):
1288         (WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
1289         (WebCore::TextFieldDecorationElement::create):
1290         (WebCore::TextFieldDecorationElement::isTextFieldDecoration):
1291         (WebCore::TextFieldDecorationElement::updateImage):
1292         (WebCore::TextFieldDecorationElement::customStyleForRenderer):
1293         Sets the size to a square of the font-size.
1294         (WebCore::TextFieldDecorationElement::createRenderer):
1295         Always creates a RenderImage.
1296         (WebCore::TextFieldDecorationElement::attach):
1297         Sets an image for appropriate state.
1298         (WebCore::TextFieldDecorationElement::isMouseFocusable):
1299         (WebCore::TextFieldDecorationElement::defaultEventHandler):
1300         Delegate a click event to the corresponding function of TextFieldDecorator.
1301         * html/shadow/TextFieldDecorationElement.h: Added.
1302         (TextFieldDecorator): Added.
1303         (TextFieldDecorationElement): Added.
1304         (WebCore::toTextFieldDecorationElement): Added.
1305         * page/ChromeClient.h:
1306         (WebCore::ChromeClient::willAddTextFieldDecorationsTo): Add an empty implementation.
1307         (WebCore::ChromeClient::addTextFieldDecorationsTo): ditto.
1308
1309 2012-03-23  Adam Klein  <adamk@chromium.org>
1310
1311         Match DOM4 spec with respect to DocumentFragment insertion
1312         https://bugs.webkit.org/show_bug.cgi?id=82089
1313
1314         Reviewed by Ryosuke Niwa.
1315
1316         DOM4 specifies the behavior of appendChild, insertBefore, and replaceChild
1317         in terms of "mutation algorithms":
1318
1319         http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#mutation-algorithms
1320
1321         This change updates WebKit to match, in particular with regard to DocumentFragments.
1322         Previously, ContainerNode would remove nodes one at a time, then add them to the new parent.
1323         When combined with MutationObservers, this results in overly-verbose mutation records.
1324         Now we create as few records as possible, matching the spec as well as Gecko's implementation
1325         of MutationObservers.
1326
1327         Note that we still need to check validity each time through the loop,
1328         since inserting a node may dispatch events. In a future change, I hope
1329         to move these events so that they fire only after all nodes are inserted,
1330         but that's too much to tackle all in one.
1331
1332         Tests: fast/mutation/document-fragment-insertion.html
1333
1334         * dom/ContainerNode.cpp:
1335         (WebCore::collectChildrenAndRemoveFromOldParent): New helper method
1336         combining collectTargetNodes() with the removal of the collected nodes from
1337         their old parent, if any.
1338         (WebCore::ContainerNode::insertBefore): Use new helper method instead
1339         of removing nodes one at a time from the fragment.
1340         (WebCore::ContainerNode::replaceChild): ditto. Also removed some redundant asserts
1341         and moved the "do nothing" check out of the loop.
1342         (WebCore::ContainerNode::appendChild): Use new helper method.
1343
1344 2012-03-23  Stephen White  <senorblanco@chromium.org>
1345
1346         [skia] Switch to Skia's implementation of the feMorphology filter.
1347         https://bugs.webkit.org/show_bug.cgi?id=82085
1348
1349         Reviewed by Dirk Schulze.
1350
1351         Covered by existing tests in svg/filters/.
1352
1353         * WebCore.gypi:
1354         * platform/graphics/filters/FEMorphology.h:
1355         (FEMorphology):
1356         * platform/graphics/filters/skia/FEMorphologySkia.cpp: Added.
1357         (WebCore):
1358         (WebCore::FEMorphology::platformApplySkia):
1359
1360 2012-03-23  Adam Barth  <abarth@webkit.org>
1361
1362         Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl (Part 3)
1363         https://bugs.webkit.org/show_bug.cgi?id=82027
1364
1365         Reviewed by Kentaro Hara.
1366
1367         Rather than watching for willDetachPage, NotificationCenter can just
1368         override ActiveDOMObject::stop directly to be notified when it needs to
1369         stop.
1370
1371         Switching NotificationCenter over to using ActiveDOMObject callbacks
1372         frees DOMWindowNotification to implement reconnectFrame.  However, this
1373         is only really a victory in princple because NotificationCenter always
1374         returns false for canSuspend(), which means we'll never actually use
1375         the reconnectFrame functionality.  However, this patch does move us
1376         closer to the time when NotificationCenter can implement
1377         ActiveDOMObject::suspend/resume to play nice with the PageCache.
1378
1379         * notifications/DOMWindowNotifications.cpp:
1380         (WebCore::DOMWindowNotifications::disconnectFrame):
1381         (WebCore::DOMWindowNotifications::reconnectFrame):
1382         * notifications/DOMWindowNotifications.h:
1383         (DOMWindowNotifications):
1384         * notifications/NotificationCenter.cpp:
1385         (WebCore::NotificationCenter::NotificationCenter):
1386         (WebCore::NotificationCenter::stop):
1387         * notifications/NotificationCenter.h:
1388         (NotificationCenter):
1389
1390 2012-03-23  Daniel Cheng  <dcheng@chromium.org>
1391
1392         [chromium] Support file drag out using DataTransferItemList::add(File)
1393         https://bugs.webkit.org/show_bug.cgi?id=81261
1394
1395         Reviewed by Tony Chang.
1396
1397         Original patch by Varun Jain <varunjain@chromium.org>.
1398         I've updated the original patch to remove 'downloadurl' handling since it's not tested, nor
1399         is it necessary for File objects, since File objects correspond to a native filesystem path.
1400
1401         Test: fast/events/drag-dataTransferItemList-file-handling.html
1402
1403         * platform/chromium/DataTransferItemListChromium.cpp:
1404         (WebCore::DataTransferItemListChromium::add):
1405
1406 2012-03-23  Zan Dobersek  <zandobersek@gmail.com>
1407
1408         [GObject bindings] Supplemental interfaces are not disabled with the "Conditional" attribute
1409         https://bugs.webkit.org/show_bug.cgi?id=80030
1410
1411         Reviewed by Martin Robinson.
1412
1413         Changes in CodeGeneratorGObject.pm:
1414         - group implementation of private helpers and guard them inside
1415         an ifdef if a root conditional attribute is present.
1416         - always define the type of a GObject binding, even if the root
1417         conditional feature is not enabled
1418         - the methods are generated as well, but are simply stubs if the
1419         feature is not enabled, throwing a warning upon interaction.
1420         - if the method itself is guarded by a conditional attribute,
1421         the stub implementation gains one more level of depth, throwing
1422         a warning if the method's conditional feature is not enabled
1423         but the root conditional feature is.
1424         - small style fixes in random places.
1425
1426         Also changed are GObject baselines for binding tests.
1427
1428         No new tests - no new testable functionality.
1429
1430         * bindings/gobject/GNUmakefile.am:
1431         * bindings/scripts/CodeGeneratorGObject.pm:
1432         (HumanReadableConditional):
1433         (GenerateConditionalWarn):
1434         (GenerateProperty):
1435         (GenerateProperties):
1436         (GenerateFunction):
1437         (GenerateFunctions):
1438         (GenerateCFile):
1439         (GenerateEventTargetIface):
1440         (Generate):
1441         (WriteData):
1442         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
1443         (WebKit):
1444         (WebKit::kit):
1445         (WebKit::wrapFloat64Array):
1446         (webkit_dom_float64array_finalize):
1447         (webkit_dom_float64array_foo):
1448         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
1449         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
1450         (WebKit):
1451         (WebKit::kit):
1452         (WebKit::wrapTestActiveDOMObject):
1453         (webkit_dom_test_active_dom_object_finalize):
1454         (webkit_dom_test_active_dom_object_exciting_function):
1455         (webkit_dom_test_active_dom_object_post_message):
1456         (webkit_dom_test_active_dom_object_get_exciting_attr):
1457         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
1458         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
1459         (WebKit):
1460         (WebKit::kit):
1461         (WebKit::core):
1462         (WebKit::wrapTestCallback):
1463         (webkit_dom_test_callback_finalize):
1464         (webkit_dom_test_callback_callback_with_no_param):
1465         (webkit_dom_test_callback_callback_with_class1param):
1466         (webkit_dom_test_callback_callback_with_class2param):
1467         (webkit_dom_test_callback_callback_with_non_bool_return_type):
1468         (webkit_dom_test_callback_callback_with_string_list):
1469         * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
1470         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
1471         (WebKit):
1472         (WebKit::kit):
1473         (WebKit::wrapTestCustomNamedGetter):
1474         (webkit_dom_test_custom_named_getter_finalize):
1475         (webkit_dom_test_custom_named_getter_another_function):
1476         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
1477         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
1478         (WebKit):
1479         (WebKit::kit):
1480         (WebKit::wrapTestEventConstructor):
1481         (webkit_dom_test_event_constructor_finalize):
1482         (webkit_dom_test_event_constructor_get_attr1):
1483         (webkit_dom_test_event_constructor_get_attr2):
1484         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
1485         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
1486         (WebKit):
1487         (WebKit::core):
1488         (WebKit::wrapTestEventTarget):
1489         (webkit_dom_test_event_target_finalize):
1490         (webkit_dom_test_event_target_item):
1491         (webkit_dom_test_event_target_dispatch_event):
1492         * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
1493         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
1494         (WebKit):
1495         (WebKit::kit):
1496         (WebKit::core):
1497         (WebKit::wrapTestInterface):
1498         (webkit_dom_test_interface_finalize):
1499         (webkit_dom_test_interface_supplemental_method1):
1500         (webkit_dom_test_interface_supplemental_method2):
1501         (webkit_dom_test_interface_supplemental_method4):
1502         (webkit_dom_test_interface_get_supplemental_str1):
1503         (webkit_dom_test_interface_get_supplemental_str2):
1504         (webkit_dom_test_interface_set_supplemental_str2):
1505         (webkit_dom_test_interface_get_supplemental_node):
1506         (webkit_dom_test_interface_set_supplemental_node):
1507         * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
1508         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
1509         (WebKit):
1510         (WebKit::kit):
1511         (WebKit::wrapTestMediaQueryListListener):
1512         (webkit_dom_test_media_query_list_listener_finalize):
1513         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
1514         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
1515         (WebKit):
1516         (WebKit::kit):
1517         (WebKit::wrapTestNamedConstructor):
1518         (webkit_dom_test_named_constructor_finalize):
1519         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
1520         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
1521         (WebKit):
1522         (WebKit::kit):
1523         (WebKit::core):
1524         (WebKit::wrapTestObj):
1525         (webkit_dom_test_obj_finalize):
1526         (webkit_dom_test_obj_set_property):
1527         (webkit_dom_test_obj_get_property):
1528         (webkit_dom_test_obj_constructed):
1529         (webkit_dom_test_obj_class_init):
1530         (webkit_dom_test_obj_init):
1531         (webkit_dom_test_obj_void_method):
1532         (webkit_dom_test_obj_void_method_with_args):
1533         (webkit_dom_test_obj_int_method):
1534         (webkit_dom_test_obj_int_method_with_args):
1535         (webkit_dom_test_obj_obj_method):
1536         (webkit_dom_test_obj_obj_method_with_args):
1537         (webkit_dom_test_obj_method_with_sequence_arg):
1538         (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
1539         (webkit_dom_test_obj_serialized_value):
1540         (webkit_dom_test_obj_idb_key):
1541         (webkit_dom_test_obj_options_object):
1542         (webkit_dom_test_obj_method_with_exception):
1543         (webkit_dom_test_obj_with_script_state_void):
1544         (webkit_dom_test_obj_with_script_state_obj):
1545         (webkit_dom_test_obj_with_script_state_void_exception):
1546         (webkit_dom_test_obj_with_script_state_obj_exception):
1547         (webkit_dom_test_obj_with_script_execution_context):
1548         (webkit_dom_test_obj_with_script_execution_context_and_script_state):
1549         (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
1550         (webkit_dom_test_obj_with_script_execution_context_and_script_state_with_spaces):
1551         (webkit_dom_test_obj_method_with_optional_arg):
1552         (webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
1553         (webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
1554         (webkit_dom_test_obj_method_with_optional_string):
1555         (webkit_dom_test_obj_method_with_optional_string_is_undefined):
1556         (webkit_dom_test_obj_method_with_optional_string_is_null_string):
1557         (webkit_dom_test_obj_conditional_method1):
1558         (webkit_dom_test_obj_conditional_method2):
1559         (webkit_dom_test_obj_conditional_method3):
1560         (webkit_dom_test_obj_class_method):
1561         (webkit_dom_test_obj_class_method_with_optional):
1562         (webkit_dom_test_obj_overloaded_method1):
1563         (webkit_dom_test_obj_convert1):
1564         (webkit_dom_test_obj_convert2):
1565         (webkit_dom_test_obj_convert3):
1566         (webkit_dom_test_obj_convert4):
1567         (webkit_dom_test_obj_convert5):
1568         (webkit_dom_test_obj_mutable_point_function):
1569         (webkit_dom_test_obj_immutable_point_function):
1570         (webkit_dom_test_obj_orange):
1571         (webkit_dom_test_obj_strict_function):
1572         (webkit_dom_test_obj_get_read_only_int_attr):
1573         (webkit_dom_test_obj_get_read_only_string_attr):
1574         (webkit_dom_test_obj_get_read_only_test_obj_attr):
1575         (webkit_dom_test_obj_get_short_attr):
1576         (webkit_dom_test_obj_set_short_attr):
1577         (webkit_dom_test_obj_get_unsigned_short_attr):
1578         (webkit_dom_test_obj_set_unsigned_short_attr):
1579         (webkit_dom_test_obj_get_int_attr):
1580         (webkit_dom_test_obj_set_int_attr):
1581         (webkit_dom_test_obj_get_long_long_attr):
1582         (webkit_dom_test_obj_set_long_long_attr):
1583         (webkit_dom_test_obj_get_unsigned_long_long_attr):
1584         (webkit_dom_test_obj_set_unsigned_long_long_attr):
1585         (webkit_dom_test_obj_get_string_attr):
1586         (webkit_dom_test_obj_set_string_attr):
1587         (webkit_dom_test_obj_get_test_obj_attr):
1588         (webkit_dom_test_obj_set_test_obj_attr):
1589         (webkit_dom_test_obj_get_xml_obj_attr):
1590         (webkit_dom_test_obj_set_xml_obj_attr):
1591         (webkit_dom_test_obj_get_create):
1592         (webkit_dom_test_obj_set_create):
1593         (webkit_dom_test_obj_get_reflected_string_attr):
1594         (webkit_dom_test_obj_set_reflected_string_attr):
1595         (webkit_dom_test_obj_get_reflected_integral_attr):
1596         (webkit_dom_test_obj_set_reflected_integral_attr):
1597         (webkit_dom_test_obj_get_reflected_unsigned_integral_attr):
1598         (webkit_dom_test_obj_set_reflected_unsigned_integral_attr):
1599         (webkit_dom_test_obj_get_reflected_boolean_attr):
1600         (webkit_dom_test_obj_set_reflected_boolean_attr):
1601         (webkit_dom_test_obj_get_reflected_url_attr):
1602         (webkit_dom_test_obj_set_reflected_url_attr):
1603         (webkit_dom_test_obj_get_reflected_custom_integral_attr):
1604         (webkit_dom_test_obj_set_reflected_custom_integral_attr):
1605         (webkit_dom_test_obj_get_reflected_custom_boolean_attr):
1606         (webkit_dom_test_obj_set_reflected_custom_boolean_attr):
1607         (webkit_dom_test_obj_get_reflected_custom_url_attr):
1608         (webkit_dom_test_obj_set_reflected_custom_url_attr):
1609         (webkit_dom_test_obj_get_attr_with_getter_exception):
1610         (webkit_dom_test_obj_set_attr_with_getter_exception):
1611         (webkit_dom_test_obj_get_attr_with_setter_exception):
1612         (webkit_dom_test_obj_set_attr_with_setter_exception):
1613         (webkit_dom_test_obj_get_string_attr_with_getter_exception):
1614         (webkit_dom_test_obj_set_string_attr_with_getter_exception):
1615         (webkit_dom_test_obj_get_string_attr_with_setter_exception):
1616         (webkit_dom_test_obj_set_string_attr_with_setter_exception):
1617         (webkit_dom_test_obj_get_with_script_state_attribute):
1618         (webkit_dom_test_obj_set_with_script_state_attribute):
1619         (webkit_dom_test_obj_get_with_script_execution_context_attribute):
1620         (webkit_dom_test_obj_set_with_script_execution_context_attribute):
1621         (webkit_dom_test_obj_get_with_script_state_attribute_raises):
1622         (webkit_dom_test_obj_set_with_script_state_attribute_raises):
1623         (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
1624         (webkit_dom_test_obj_set_with_script_execution_context_attribute_raises):
1625         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute):
1626         (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute):
1627         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
1628         (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises):
1629         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_with_spaces_attribute):
1630         (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_with_spaces_attribute):
1631         (webkit_dom_test_obj_get_conditional_attr1):
1632         (webkit_dom_test_obj_set_conditional_attr1):
1633         (webkit_dom_test_obj_get_conditional_attr2):
1634         (webkit_dom_test_obj_set_conditional_attr2):
1635         (webkit_dom_test_obj_get_conditional_attr3):
1636         (webkit_dom_test_obj_set_conditional_attr3):
1637         (webkit_dom_test_obj_get_content_document):
1638         (webkit_dom_test_obj_get_mutable_point):
1639         (webkit_dom_test_obj_set_mutable_point):
1640         (webkit_dom_test_obj_get_immutable_point):
1641         (webkit_dom_test_obj_set_immutable_point):
1642         (webkit_dom_test_obj_get_strict_float):
1643         (webkit_dom_test_obj_set_strict_float):
1644         (webkit_dom_test_obj_get_description):
1645         (webkit_dom_test_obj_get_id):
1646         (webkit_dom_test_obj_set_id):
1647         (webkit_dom_test_obj_get_hash):
1648         * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
1649         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
1650         (WebKit):
1651         (WebKit::kit):
1652         (WebKit::core):
1653         (WebKit::wrapTestSerializedScriptValueInterface):
1654         (webkit_dom_test_serialized_script_value_interface_finalize):
1655         (webkit_dom_test_serialized_script_value_interface_accept_transfer_list):
1656         (webkit_dom_test_serialized_script_value_interface_multi_transfer_list):
1657         (webkit_dom_test_serialized_script_value_interface_get_value):
1658         (webkit_dom_test_serialized_script_value_interface_set_value):
1659         (webkit_dom_test_serialized_script_value_interface_get_readonly_value):
1660         (webkit_dom_test_serialized_script_value_interface_get_cached_value):
1661         (webkit_dom_test_serialized_script_value_interface_set_cached_value):
1662         (webkit_dom_test_serialized_script_value_interface_get_cached_readonly_value):
1663         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
1664
1665 2012-03-23  Dana Jansens  <danakj@chromium.org>
1666
1667         [chromium] Record painted pixel counts for measuring effectiveness of per-tile painting
1668         https://bugs.webkit.org/show_bug.cgi?id=82057
1669
1670         Reviewed by Adrienne Walker.
1671
1672         Adds painted pixel metrics to CCOverdrawMetrics class, and calls in
1673         to report painted areas when updating tiles in the TiledLayerChromium
1674         class.
1675
1676         Unit test: TiledLayerChromiumTest.opaqueContentsRegion
1677                    TiledLayerChromiumTest.pixelsPaintedMetrics
1678
1679         * platform/graphics/chromium/TiledLayerChromium.cpp:
1680         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
1681         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
1682         (WebCore::CCOverdrawMetrics::CCOverdrawMetrics):
1683         (WebCore::CCOverdrawMetrics::didPaint):
1684         (WebCore):
1685         (WebCore::CCOverdrawMetrics::recordMetricsInternal):
1686         * platform/graphics/chromium/cc/CCOverdrawMetrics.h:
1687         (CCOverdrawMetrics):
1688         (WebCore::CCOverdrawMetrics::pixelsPainted):
1689
1690 2012-03-23  Abhishek Arya  <inferno@chromium.org>
1691
1692         Crash in RenderBlock::splitBlocks.
1693         https://bugs.webkit.org/show_bug.cgi?id=81926
1694
1695         Reviewed by Julien Chaffraix.
1696
1697         We are updating the :after content before calling splitFlow. The :after content
1698         gets blown away since it will go to the continuation. beforeChild was earlier
1699         set to the first child. Being the last anonymous block, its children gets pulled
1700         up in collapseAnonymousBoxChild and it gets destroyed. So, we need to update
1701         beforeChild value. 
1702
1703         Test: fast/multicol/span/update-after-content-before-child-crash.html
1704
1705         * rendering/RenderBlock.cpp:
1706         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
1707
1708 2012-03-23  Dana Jansens  <danakj@chromium.org>
1709
1710         [chromium] Improved composited debug borders
1711         https://bugs.webkit.org/show_bug.cgi?id=82071
1712
1713         Reviewed by Adrienne Walker.
1714
1715         Fix the problem with missing debug borders. Since we append quads
1716         to the list front to back now, we draw the quads in the list from
1717         back to front of the list. Which means if the debug quad is added
1718         after the layer it is drawing around, the layer can draw over top
1719         of its debug quad. Reverse the ordering when appending to fix it.
1720
1721         Make the border red around tiles that are checkerboarded. Missing
1722         tiles in non-root layers are drawn clear, so this makes them more
1723         visible.
1724
1725         Put a blue border around each render surface, and a purple border
1726         on their replicas.
1727
1728         No new tests.
1729
1730         * platform/graphics/chromium/cc/CCRenderPass.cpp:
1731         (WebCore):
1732         (WebCore::CCRenderPass::appendQuadsForLayer):
1733         (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
1734         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
1735         (WebCore::CCRenderSurface::hasReplica):
1736         (WebCore):
1737         (WebCore::CCRenderSurface::createReplicaSharedQuadState):
1738         * platform/graphics/chromium/cc/CCRenderSurface.h:
1739         (CCRenderSurface):
1740         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
1741         (WebCore):
1742         (WebCore::CCTiledLayerImpl::appendQuads):
1743
1744 2012-03-23  Simon Fraser  <simon.fraser@apple.com>
1745
1746         Move code that calls setAcceleratesDrawing() on GraphicsLayers into RenderLayerBacking
1747         https://bugs.webkit.org/show_bug.cgi?id=82092
1748
1749         Reviewed by Dean Jackson.
1750
1751         A RenderLayerBacking manages several GraphicsLayers, but RenderLayerCompositor
1752         was only calling setAcceleratesDrawing() on the one it knows about. Fix by moving
1753         this setting code down into RenderLayerBacking.
1754         
1755         RenderLayerCompositor now caches the setAcceleratesDrawing setting, as it does
1756         for other compositing-related settings, so that RenderLayerBacking doesn't have
1757         to grovel for Settings every time.
1758
1759         * rendering/RenderLayerBacking.cpp:
1760         (WebCore::RenderLayerBacking::createGraphicsLayer):
1761         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
1762         * rendering/RenderLayerCompositor.cpp:
1763         (WebCore::RenderLayerCompositor::RenderLayerCompositor):
1764         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
1765         (WebCore::RenderLayerCompositor::updateBacking):
1766         * rendering/RenderLayerCompositor.h:
1767         (WebCore::RenderLayerCompositor::acceleratedDrawingEnabled):
1768         (RenderLayerCompositor):
1769
1770 2012-03-23  Beth Dakin  <bdakin@apple.com>
1771
1772         https://bugs.webkit.org/show_bug.cgi?id=82083
1773
1774         Rubber-stamped by Simon Fraser.
1775
1776         This patch is just a name change. getExistingScrollAnimator() (which was 
1777         added earlier today) is now existingScrollAnimator().
1778         * loader/FrameLoader.cpp:
1779         (WebCore::FrameLoader::transitionToCommitted):
1780         * page/EventHandler.cpp:
1781         (WebCore::EventHandler::handleGestureTapDown):
1782         * page/FrameView.cpp:
1783         (WebCore::FrameView::setAnimatorsAreActive):
1784         * platform/ScrollView.cpp:
1785         (WebCore::ScrollView::updateScrollbars):
1786         * platform/ScrollableArea.cpp:
1787         (WebCore::ScrollableArea::willStartLiveResize):
1788         (WebCore::ScrollableArea::willEndLiveResize):
1789         (WebCore::ScrollableArea::contentAreaWillPaint):
1790         (WebCore::ScrollableArea::mouseEnteredContentArea):
1791         (WebCore::ScrollableArea::mouseExitedContentArea):
1792         (WebCore::ScrollableArea::mouseMovedInContentArea):
1793         (WebCore::ScrollableArea::contentAreaDidShow):
1794         (WebCore::ScrollableArea::contentAreaDidHide):
1795         (WebCore::ScrollableArea::contentsResized):
1796         (WebCore::ScrollableArea::serviceScrollAnimations):
1797         * platform/ScrollableArea.h:
1798         (WebCore::ScrollableArea::existingScrollAnimator):
1799
1800 2012-03-23  Abhishek Arya  <inferno@chromium.org>
1801
1802         Crash due to accessing removed parent lineboxes when clearing selection.
1803         https://bugs.webkit.org/show_bug.cgi?id=81359
1804
1805         Reviewed by Eric Seidel.
1806
1807         Similar to r110323, adds the canUpdateSelectionOnRootLineBoxes
1808         check to more places.
1809
1810         Test: editing/selection/clear-selection-crash.html
1811
1812         * rendering/RenderObject.cpp:
1813         (WebCore::RenderObject::canUpdateSelectionOnRootLineBoxes):
1814         * rendering/RenderSelectionInfo.h:
1815         (WebCore::RenderSelectionInfo::RenderSelectionInfo):
1816         (WebCore::RenderBlockSelectionInfo::RenderBlockSelectionInfo):
1817
1818 2012-03-23  Beth Dakin  <bdakin@apple.com>
1819
1820         https://bugs.webkit.org/show_bug.cgi?id=82083
1821         Too many ScrollAnimators are allocated on pages with frames
1822
1823         Reviewed by Geoffrey Garen.
1824
1825         This patch adds a new getter to ScrollableArea called 
1826         getExistingScrollAnimator() unlike scrollAnimator() this new function will 
1827         just return null if there is not already a ScrollAnimator. Callers should use 
1828         this new function when they have business with ScrollAnimator that does not 
1829         need to do anything when there are no scrollbars.
1830         * loader/FrameLoader.cpp:
1831         (WebCore::FrameLoader::transitionToCommitted):
1832         * page/EventHandler.cpp:
1833         (WebCore::EventHandler::handleGestureTapDown):
1834         * page/FrameView.cpp:
1835         (WebCore::FrameView::setAnimatorsAreActive):
1836         * platform/ScrollView.cpp:
1837         (WebCore::ScrollView::updateScrollbars):
1838         * platform/ScrollableArea.cpp:
1839         (WebCore::ScrollableArea::willStartLiveResize):
1840         (WebCore::ScrollableArea::willEndLiveResize):
1841         (WebCore::ScrollableArea::contentAreaWillPaint):
1842         (WebCore::ScrollableArea::mouseEnteredContentArea):
1843         (WebCore::ScrollableArea::mouseExitedContentArea):
1844         (WebCore::ScrollableArea::mouseMovedInContentArea):
1845         (WebCore::ScrollableArea::contentAreaDidShow):
1846         (WebCore::ScrollableArea::contentAreaDidHide):
1847         (WebCore::ScrollableArea::willRemoveHorizontalScrollbar):
1848         (WebCore::ScrollableArea::contentsResized):
1849         (WebCore::ScrollableArea::serviceScrollAnimations):
1850         * platform/ScrollableArea.h:
1851         (ScrollableArea):
1852         (WebCore::ScrollableArea::getExistingScrollAnimator):
1853
1854 2012-03-23  Eric Carlson  <eric.carlson@apple.com>
1855
1856         Deal with DOM modifications when evaluating source elements.
1857         https://bugs.webkit.org/show_bug.cgi?id=81163
1858
1859         Reviewed by Alexey Proskuryakov.
1860
1861         Test: media/video-beforeload-remove-source.html
1862
1863         * dom/ContainerNode.cpp: Make NodeVector and collectNodes public, renamed as getChildNodes.
1864         (WebCore::ContainerNode::takeAllChildrenFrom): collectNodes -> getChildNodes.
1865         (WebCore::ContainerNode::willRemove): collectNodes -> getChildNodes.
1866         (WebCore::ContainerNode::willRemoveChildren): collectNodes -> getChildNodes.
1867         (WebCore::ContainerNode::insertedIntoDocument): collectNodes -> getChildNodes.
1868         (WebCore::ContainerNode::removedFromDocument): collectNodes -> getChildNodes.
1869         * dom/ContainerNode.h:
1870         (WebCore::getChildNodes):
1871
1872         * editing/ReplaceSelectionCommand.cpp: Remove unused NodeVector declaration.
1873
1874         * html/HTMLMediaElement.cpp:
1875         (WebCore::HTMLMediaElement::HTMLMediaElement): m_nextChildNodeToConsider and m_currentSourceNode
1876             are now RefPtrs.
1877         (WebCore::HTMLMediaElement::loadTimerFired): Protect HTMLMediaElement from being deleted during
1878             a DOM modification during an event callback.
1879         (WebCore::HTMLMediaElement::load): Ditto.
1880         (WebCore::HTMLMediaElement::selectMediaResource): Set m_nextChildNodeToConsider to the first
1881             child node, it will be the first node considered.
1882         (WebCore::HTMLMediaElement::havePotentialSourceChild): m_nextChildNodeToConsider and m_currentSourceNode
1883             are now RefPtrs.
1884         (WebCore::HTMLMediaElement::selectNextSourceChild): Collect all child nodes in a vector before
1885             looking for <source> nodes because 'beforeload' event handlers can mutate the DOM. Don't
1886             use a <source> that is no longer a child node after 'beforeload'. Use 0 to represent the end
1887             of the child node list because m_nextChildNodeToConsider is now a RefPtr so using the previous 
1888             sentinel, "this", would cause a retain cycle.
1889         (WebCore::HTMLMediaElement::sourceWasAdded):  m_nextChildNodeToConsider and m_currentSourceNode
1890             are now RefPtrs.
1891         (WebCore::HTMLMediaElement::sourceWillBeRemoved): Ditto.
1892         (WebCore::HTMLMediaElement::getPluginProxyParams): Protect HTMLMediaElement from being deleted during
1893             a DOM modification during an event callback.
1894         * html/HTMLMediaElement.h:
1895
1896 2012-03-23  Dean Jackson  <dino@apple.com>
1897
1898         Disable CSS_SHADERS in Apple builds
1899         https://bugs.webkit.org/show_bug.cgi?id=81996
1900
1901         Reviewed by Simon Fraser.
1902
1903         Remove ENABLE_CSS_SHADERS from FeatureDefines. It's now in Platform.h.
1904
1905         * Configurations/FeatureDefines.xcconfig:
1906
1907 2012-03-23  Dave Michael  <dmichael@chromium.org>
1908
1909         Relanding(r111754): HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called
1910         https://bugs.webkit.org/show_bug.cgi?id=80428
1911
1912         Reviewed by Eric Seidel and Ryosuke Niwa.
1913
1914         Make HTMLPluginElement release its m_NPObject in detach() to break a
1915         reference-counting cycle that happens on reload or navigation. With this
1916         change, HTMLPlugInElement::removedFromDocument is unnecessary, so it
1917         was removed. Note that Releasing m_NPObject does not result in a call to
1918         the plugin; it simply releases a reference count on the wrapper object
1919         for this HTMLPlugInElement. (The plugin's NPP_Deallocate is invoked
1920         when the render tree is destroyed, when PluginView calls
1921         PluginPackage::unload.) Thus, it is safe to release m_NPObject in
1922         detach, because it can not result in layout or style changes.
1923
1924         Also added numberOfLiveNodes() and numberOfLiveDocuments() to
1925         window.internals to enable testing.
1926
1927         Test: plugins/netscape-dom-access-and-reload.html
1928
1929         * WebCore.exp.in:
1930         * html/HTMLPlugInElement.cpp:
1931         (WebCore::HTMLPlugInElement::detach):
1932         * html/HTMLPlugInElement.h:
1933         (HTMLPlugInElement):
1934         * testing/Internals.cpp:
1935         (WebCore):
1936         (WebCore::Internals::numberOfLiveNodes):
1937         (WebCore::Internals::numberOfLiveDocuments):
1938         * testing/Internals.h:
1939         (Internals):
1940         * testing/Internals.idl:
1941
1942 2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>
1943
1944         CSSParser doesn't set border-*-width/style/color to initial by border shorthand property
1945         https://bugs.webkit.org/show_bug.cgi?id=82040
1946
1947         Reviewed by Antti Koivisto.
1948
1949         The border shorthand property sets values for border-width, border-style, and border-color shorthand properties.
1950         While CSSParser::parseValue can process these shorthand properties properly and set the longhand properties
1951         such as border-top-width, border-right-width, ... border-left-color, CSSParser::addProperty can't and the
1952         initialization in parseShorthand fails for the border property.
1953
1954         Fixed the bug by explicitly initializing longhand properties.
1955
1956         Changing the behavior here is unlikely to break the Web since our behavior already differs from that of Firefox
1957         and Internet Explorer. Both of those browsers return the actual initial values such as "medium" and "currentColor".
1958         This discrepancy is tracked by https://bugs.webkit.org/show_bug.cgi?id=82078.
1959
1960         Test: fast/css/border-shorthand-initialize-longhands.html
1961
1962         * css/CSSParser.cpp:
1963         (WebCore::CSSParser::parseValue): Uses borderAbridgedLonghand.
1964         (WebCore::CSSParser::parseShorthand): Uses longhand properties for initialization if one is available.
1965         This allows us to initialize multiple properties (e.g. border-*-color) for a single property missing in the set.
1966         * css/CSSPropertyLonghand.cpp:
1967         (WebCore::borderAbridgedLonghand): Added. The longhand here (border-width, border-style, border-color) is
1968         "abridged" in the sense that they're still shorthands.
1969         * css/CSSPropertyLonghand.h:
1970         (WebCore::CSSPropertyLonghand::CSSPropertyLonghand):
1971         (CSSPropertyLonghand): Added the version that takes longhand instances for initialization purposes.
1972         (WebCore::CSSPropertyLonghand::longhandsForInitialization):
1973
1974 2012-03-23  Tony Chang  <tony@chromium.org>
1975
1976         [chromium] rename newwtf target back to wtf
1977         https://bugs.webkit.org/show_bug.cgi?id=82064
1978
1979         Reviewed by Adam Barth.
1980
1981         No new tests, only renaming a build target.
1982
1983         * WebCore.gyp/WebCore.gyp:
1984
1985 2012-03-23  Adrienne Walker  <enne@google.com>
1986
1987         [chromium] Turn off painting of scrollbars on compositor thread for unsupported platforms
1988         https://bugs.webkit.org/show_bug.cgi?id=82066
1989
1990         Reviewed by James Robinson.
1991
1992         With threaded compositing, OSX will crash and Windows will have black
1993         scrollbars. Fix that by reverting to the previosu behavior of updating
1994         scrollbars on the main thread instead.
1995
1996         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
1997         (WebCore::scrollbarLayerDidChange):
1998
1999 2012-03-23  Dan Bernstein  <mitz@apple.com>
2000
2001         <rdar://problem/7883987> ASSERTION FAILED: ASSERT(input == AnimationStateInputEndTimerFired || input == AnimationStateInputPlayStatePaused) in AnimationBase::updateStateMachine causing multiple "crashes" on Lion Intel Debug WebKit testers
2002         https://bugs.webkit.org/show_bug.cgi?id=81351
2003
2004         Rubber-stamped by Jessie Berlin.
2005
2006         * page/animation/AnimationBase.cpp:
2007         (WebCore::AnimationBase::updateStateMachine): Replaced the assertion with a LOG_ERROR so that
2008         the issue is still noticeable, but it does not automatically make the debug bots red.
2009
2010 2012-03-23  Mike Lawther  <mikelawther@chromium.org>
2011
2012         CSS3 calc: image sizing works with mixed percentage/absolute
2013         https://bugs.webkit.org/show_bug.cgi?id=82017
2014
2015         Reviewed by Ojan Vafai.
2016
2017         Test: css3/calc/img-size-expected.html
2018
2019         * rendering/RenderBox.cpp:
2020         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
2021         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
2022
2023 2012-03-23  Julien Chaffraix  <jchaffraix@webkit.org>
2024
2025         REGRESSION(107971): Google Voice contact list is broken in WebKit due to badly allocating the extra height
2026         https://bugs.webkit.org/show_bug.cgi?id=81826
2027
2028         Reviewed by Tony Chang.
2029
2030         Covered by tables/mozilla/bugs/bug27038-{1|2}.html.
2031
2032         This partly reverts r107971: the extra logical height distribution change was not needed
2033         to fix the bug (it is needed by the test though). We revert to giving all the extra height
2034         to the first tbody and not the first section.
2035
2036         This is broken but unfortunately some websites are relying on that. Getting a real
2037         distribution algorithm is covered by bug 81824. However this is super tricky to get
2038         right and I did not want to add more compatibility risks until I have something solid.
2039
2040         * rendering/RenderTable.cpp:
2041         (WebCore::RenderTable::distributeExtraLogicalHeight):
2042
2043 2012-03-23  Xingnan Wang  <xingnan.wang@intel.com>
2044
2045         Optimize for IPP in DirectConvolver::process()
2046         https://bugs.webkit.org/show_bug.cgi?id=80255
2047
2048         Reviewed by Chris Rogers.
2049
2050         Increase ~2X performance by conv() in IPP.
2051
2052         * platform/audio/DirectConvolver.cpp:
2053         (WebCore::DirectConvolver::DirectConvolver):
2054         (WebCore::DirectConvolver::process):
2055         * platform/audio/DirectConvolver.h:
2056         (DirectConvolver):
2057
2058 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
2059
2060         MediaStream API (JSEP): Introducing PeerConnection00 and IceCallback
2061         https://bugs.webkit.org/show_bug.cgi?id=81657
2062
2063         Reviewed by Adam Barth.
2064
2065         Last major WebCore patch for the JSEP PeerConnection, together with the associated
2066         IceCallback (they both depend on each other and IceCallback has very few lines of real code).
2067
2068         My next patch after this one will do a major overhaul of the existing layout tests
2069         and add a few new ones.
2070
2071         * GNUmakefile.list.am:
2072         * Modules/mediastream/DOMWindowMediaStream.idl:
2073         * Modules/mediastream/IceCallback.h: Added.
2074         (WebCore):
2075         (IceCallback):
2076         (WebCore::IceCallback::~IceCallback):
2077         * Modules/mediastream/IceCallback.idl: Added.
2078         * Modules/mediastream/PeerConnection00.cpp: Added.
2079         (WebCore):
2080         (WebCore::PeerConnection00::create):
2081         (WebCore::PeerConnection00::PeerConnection00):
2082         (WebCore::PeerConnection00::~PeerConnection00):
2083         (WebCore::PeerConnection00::hasLocalAudioTrack):
2084         (WebCore::PeerConnection00::hasLocalVideoTrack):
2085         (WebCore::PeerConnection00::parseMediaHints):
2086         (WebCore::PeerConnection00::createOffer):
2087         (WebCore::PeerConnection00::createAnswer):
2088         (WebCore::PeerConnection00::setLocalDescription):
2089         (WebCore::PeerConnection00::setRemoteDescription):
2090         (WebCore::PeerConnection00::localDescription):
2091         (WebCore::PeerConnection00::remoteDescription):
2092         (WebCore::PeerConnection00::startIce):
2093         (WebCore::PeerConnection00::processIceMessage):
2094         (WebCore::PeerConnection00::readyState):
2095         (WebCore::PeerConnection00::iceState):
2096         (WebCore::PeerConnection00::addStream):
2097         (WebCore::PeerConnection00::removeStream):
2098         (WebCore::PeerConnection00::localStreams):
2099         (WebCore::PeerConnection00::remoteStreams):
2100         (WebCore::PeerConnection00::close):
2101         (WebCore::PeerConnection00::didGenerateIceCandidate):
2102         (WebCore::PeerConnection00::didChangeReadyState):
2103         (WebCore::PeerConnection00::didChangeIceState):
2104         (WebCore::PeerConnection00::didAddRemoteStream):
2105         (WebCore::PeerConnection00::didRemoveRemoteStream):
2106         (WebCore::PeerConnection00::interfaceName):
2107         (WebCore::PeerConnection00::scriptExecutionContext):
2108         (WebCore::PeerConnection00::stop):
2109         (WebCore::PeerConnection00::eventTargetData):
2110         (WebCore::PeerConnection00::ensureEventTargetData):
2111         (WebCore::PeerConnection00::changeReadyState):
2112         (WebCore::PeerConnection00::changeIceState):
2113         * Modules/mediastream/PeerConnection00.h: Added.
2114         (WebCore):
2115         (PeerConnection00):
2116         (WebCore::PeerConnection00::refEventTarget):
2117         (WebCore::PeerConnection00::derefEventTarget):
2118         * Modules/mediastream/PeerConnection00.idl: Added.
2119         * WebCore.gypi:
2120         * bindings/generic/RuntimeEnabledFeatures.h:
2121         (WebCore::RuntimeEnabledFeatures::webkitPeerConnection00Enabled):
2122         * bindings/js/JSPeerConnection00Custom.cpp: Added.
2123         (WebCore):
2124         (WebCore::JSPeerConnection00Constructor::constructJSPeerConnection00):
2125         * dom/EventTargetFactory.in:
2126
2127 2012-03-23  Adrienne Walker  <enne@google.com>
2128
2129         [chromium] Fix scrollbarLayerLostContext flaky test crash on 10.6
2130         https://bugs.webkit.org/show_bug.cgi?id=82062
2131
2132         Reviewed by James Robinson.
2133
2134         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
2135         (CCScrollbarLayerImpl):
2136
2137 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
2138
2139         [chromium] MediaStream API (JSEP): Extending WebMediaStreamCenter
2140         https://bugs.webkit.org/show_bug.cgi?id=81924
2141
2142         Reviewed by Adam Barth.
2143
2144         Nothing to test, just moving methods.
2145
2146         * platform/mediastream/MediaStreamCenter.cpp:
2147         (WebCore::MediaStreamCenter::constructSDP):
2148         (WebCore):
2149
2150 2012-03-23  Sami Kyostila  <skyostil@chromium.org>
2151
2152         Reuse buffer allocation if canvas size does not change
2153         https://bugs.webkit.org/show_bug.cgi?id=80871
2154
2155         Reviewed by Stephen White.
2156
2157         If the user changes the width or height attributes of a canvas element,
2158         the contents of the canvas should be cleared and the context state
2159         should be reset. This has become a common idiom to clear the canvas
2160         "efficiently" at the start of a frame.
2161
2162         Previously, this code path triggered a full reallocation of the image
2163         buffer backing the canvas, leading to reduced performance. This patch
2164         implements an optimization where we reuse the previous image buffer
2165         allocation if the size of the canvas did not change. Also, instead of
2166         clearing the canvas every time its dimensions are touched, we only clear
2167         if anything has been drawn into the canvas since it was previously
2168         cleared.
2169
2170         Note that for now this optimization only applies for 2D canvases,
2171         since it is not entirely clear how touching the dimensions of a WebGL
2172         canvas should work.
2173
2174         Test: fast/canvas/canvas-resize-after-paint-without-layout.html +
2175               existing layout tests for canvas resetting.
2176
2177         * html/HTMLCanvasElement.cpp:
2178         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
2179         (WebCore::HTMLCanvasElement::reset):
2180         (WebCore::HTMLCanvasElement::createImageBuffer): Save the initial
2181         graphics context state so we can restore it without creating a new
2182         context.
2183         (WebCore::HTMLCanvasElement::clearImageBuffer):
2184         (WebCore):
2185         (WebCore::HTMLCanvasElement::clearCopiedImage):
2186         * html/HTMLCanvasElement.h:
2187         (HTMLCanvasElement):
2188         * html/canvas/CanvasRenderingContext2D.cpp:
2189         (WebCore::CanvasRenderingContext2D::reset): No need to notify the
2190         compositor when the context is reset, because clearing the image buffer
2191         does the same thing. We can also skip the notification if we did not
2192         have an image buffer at the time of the reset, because the reset will
2193         not have any visual impact in this case. Finally, if the canvas size
2194         did change, the notification is also unnecessary because of the call
2195         to RenderObject::repaint() from HTMLCanvasElement::reset().
2196
2197 2012-03-22  Martin Robinson  <mrobinson@igalia.com>
2198
2199         Fix some code generation warnings on GTK+.
2200
2201         Reviewed by Gustavo Noronha Silva.
2202
2203         No new tests. This just fixes warnings.
2204
2205         * GNUmakefile.am: Remove nonexistent directories from the list IDL directories.
2206
2207 2012-03-23  Sheriff Bot  <webkit.review.bot@gmail.com>
2208
2209         Unreviewed, rolling out r111751.
2210         http://trac.webkit.org/changeset/111751
2211         https://bugs.webkit.org/show_bug.cgi?id=82060
2212
2213         caused 15% page cycler regression for chromium-linux
2214         (Requested by eae on #webkit).
2215
2216         * css/CSSStyleSelector.cpp:
2217         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2218
2219 2012-03-23  Kentaro Hara  <haraken@chromium.org>
2220
2221         Support [ImplementedAs] for attributes
2222         https://bugs.webkit.org/show_bug.cgi?id=81605
2223
2224         Reviewed by Adam Barth.
2225
2226         [ImplementedAs] just supports methods. [ImplementedAs] should support
2227         attributes too.
2228
2229         Explained here: https://trac.webkit.org/wiki/WebKitIDL#ImplementedAs
2230
2231         Test: bindings/scripts/test/TestObj.idl
2232
2233         * bindings/scripts/CodeGenerator.pm: Modified to support [ImplementedAs] for attributes.
2234         (AttributeNameForGetterAndSetter):
2235
2236         * bindings/scripts/test/TestObj.idl: Added a test case.
2237
2238         * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
2239         (WebDOMTestObj::strawberry):
2240         (WebDOMTestObj::setStrawberry):
2241         * bindings/scripts/test/CPP/WebDOMTestObj.h:
2242         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2243         (webkit_dom_test_obj_get_strawberry):
2244         (webkit_dom_test_obj_set_strawberry):
2245         (webkit_dom_test_obj_get_property):
2246         (webkit_dom_test_obj_class_init):
2247         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2248         * bindings/scripts/test/JS/JSTestObj.cpp:
2249         (WebCore):
2250         (WebCore::jsTestObjStrawberry):
2251         (WebCore::setJSTestObjStrawberry):
2252         * bindings/scripts/test/JS/JSTestObj.h:
2253         (WebCore):
2254         * bindings/scripts/test/ObjC/DOMTestObj.h:
2255         * bindings/scripts/test/ObjC/DOMTestObj.mm:
2256         (-[DOMTestObj strawberry]):
2257         (-[DOMTestObj setStrawberry:]):
2258         * bindings/scripts/test/V8/V8TestObj.cpp:
2259         (WebCore::TestObjInternal::strawberryAttrGetter):
2260         (TestObjInternal):
2261         (WebCore::TestObjInternal::strawberryAttrSetter):
2262         (WebCore):
2263
2264 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
2265
2266         The JSC code generator doesn't generate correct code for Constructors
2267         https://bugs.webkit.org/show_bug.cgi?id=82046
2268
2269         Reviewed by Kentaro Hara.
2270
2271         The main bulk of generated code for constructors uses the name jsConstructor
2272         for the created object, and then calls GenerateParametersCheck which generates
2273         code that uses the name castedThis.
2274
2275         * bindings/scripts/CodeGeneratorJS.pm:
2276         (GenerateConstructorDefinition):
2277         * bindings/scripts/test/JS/JSTestInterface.cpp:
2278         (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
2279         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2280         (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
2281         * bindings/scripts/test/JS/JSTestObj.cpp:
2282         (WebCore::JSTestObjConstructor::finishCreation):
2283         (WebCore::JSTestObjConstructor::constructJSTestObj):
2284         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2285         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
2286         * bindings/scripts/test/TestObj.idl:
2287         * bindings/scripts/test/V8/V8TestObj.cpp:
2288         (WebCore::V8TestObj::constructorCallback):
2289
2290 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
2291
2292         The JSC code generator can't handle boolean arguments for Callbacks
2293         https://bugs.webkit.org/show_bug.cgi?id=82045
2294
2295         Reviewed by Kentaro Hara.
2296
2297         CodeGeneratorJS.pm only handles DOMStrings and objects as arguments
2298         for a Callback, so I added support for boolean values as well.
2299
2300         * bindings/scripts/CodeGeneratorJS.pm:
2301         (GenerateCallbackImplementation):
2302         * bindings/scripts/test/CPP/WebDOMTestCallback.cpp:
2303         (WebDOMTestCallback::callbackWithBoolean):
2304         * bindings/scripts/test/CPP/WebDOMTestCallback.h:
2305         (WebDOMTestCallback):
2306         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
2307         (webkit_dom_test_callback_callback_with_boolean):
2308         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
2309         * bindings/scripts/test/JS/JSTestCallback.cpp:
2310         (WebCore::JSTestCallback::callbackWithBoolean):
2311         (WebCore):
2312         * bindings/scripts/test/JS/JSTestCallback.h:
2313         (JSTestCallback):
2314         * bindings/scripts/test/ObjC/DOMTestCallback.h:
2315         * bindings/scripts/test/ObjC/DOMTestCallback.mm:
2316         (-[DOMTestCallback callbackWithBoolean:]):
2317         * bindings/scripts/test/TestCallback.idl:
2318         * bindings/scripts/test/V8/V8TestCallback.cpp:
2319         (WebCore::V8TestCallback::callbackWithBoolean):
2320         (WebCore):
2321         * bindings/scripts/test/V8/V8TestCallback.h:
2322         (V8TestCallback):
2323
2324 2012-03-23  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2325
2326         Touch adjustment forgets some subtarget quads.
2327         https://bugs.webkit.org/show_bug.cgi?id=82044
2328
2329         Reviewed by Kenneth Rohde Christiansen.
2330
2331         Do not uncritically skip all nodes that are ancestors to other test results.
2332         Instead return the inner-most element if multiple nodes have the same distance.
2333
2334         Test: touchadjustment/block-testing.html
2335
2336         * page/TouchAdjustment.cpp:
2337         (WebCore::TouchAdjustment::compileSubtargetList):
2338         (WebCore::TouchAdjustment::findNodeWithLowestDistanceMetric):
2339
2340 2012-03-23  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2341
2342         TouchAdjustment does not correct for frame position
2343         https://bugs.webkit.org/show_bug.cgi?id=82043
2344
2345         Reviewed by Kenneth Rohde Christiansen.
2346
2347         Convert geometry to window coordinates before calculating distance.
2348
2349         Test: touchadjustment/iframe.html
2350
2351         * page/TouchAdjustment.cpp:
2352         (WebCore::TouchAdjustment::distanceSquaredToTargetCenterLine):
2353
2354 2012-03-23  Vlad Voicu  <vladv@rosedu.org>
2355
2356         Fixed minor WebInspector display issue
2357         Clicking on disabled sections in Styles Sidebar Pane creates new elements.
2358         https://bugs.webkit.org/show_bug.cgi?id=81925
2359
2360         Reviewed by Timothy Hatcher
2361
2362         No new tests should be required.
2363
2364         * inspector/front-end/StylesSidebarPane.js:
2365         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
2366         (WebInspector.StylePropertyTreeElement.prototype):
2367
2368 2012-03-23  Kentaro Hara  <haraken@chromium.org>
2369
2370         Unreviewed, rebaselined run-bindings-tests results.
2371
2372         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
2373         * bindings/scripts/test/CPP/WebDOMTestObj.h:
2374         * bindings/scripts/test/JS/JSTestObj.cpp:
2375         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
2376         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
2377         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
2378         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
2379         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
2380         * bindings/scripts/test/V8/V8TestObj.cpp:
2381         (WebCore::TestObjInternal::methodWithCallbackArgCallback):
2382         (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
2383         (WebCore::TestObjInternal::methodWithCallbackAndOptionalArgCallback):
2384         (WebCore::TestObjInternal::overloadedMethod5Callback):
2385         (WebCore::TestObjInternal::overloadedMethodCallback):
2386
2387 2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>
2388
2389         cssText should use StringBuilder
2390         https://bugs.webkit.org/show_bug.cgi?id=82028
2391
2392         Reviewed by Hajime Morita.
2393
2394         Make StylePropertySet::asText more efficient by deploying StringBuilder;
2395         avoids heap churn by String::operator+ and String::operator+=.
2396
2397         * css/StylePropertySet.cpp:
2398         (WebCore::StylePropertySet::asText):
2399
2400 2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>
2401
2402         REGRESSION(r111754): plugins/reloadplugins-and-pages.html fails on all platforms
2403         https://bugs.webkit.org/show_bug.cgi?id=82035
2404
2405         Rollout r111754 since it caused a test to fail and the test added by the patch
2406         is failing on Mac WebKit 2.
2407
2408         * WebCore.exp.in:
2409         * html/HTMLPlugInElement.cpp:
2410         (WebCore::HTMLPlugInElement::detach):
2411         (WebCore):
2412         (WebCore::HTMLPlugInElement::removedFromDocument):
2413         * html/HTMLPlugInElement.h:
2414         (HTMLPlugInElement):
2415         * testing/Internals.cpp:
2416         * testing/Internals.h:
2417         (Internals):
2418         * testing/Internals.idl:
2419
2420 2012-03-23  Adam Barth  <abarth@webkit.org>
2421
2422         Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl (Part 2)
2423         https://bugs.webkit.org/show_bug.cgi?id=82026
2424
2425         Reviewed by Kentaro Hara.
2426
2427         This patch removes DOMWindow::resetNotifications, which was unneeded
2428         special-case logic for clearing the notifications center.  The previous
2429         patch that tried to accomplish the same thing did not override
2430         willDetachPage, which is why it caused crashes.
2431
2432         There's actually a cleaner way to handle these cases, which will let us
2433         implement reconnectFrame, but that will need to wait for the next
2434         patch.
2435
2436         * notifications/DOMWindowNotifications.cpp:
2437         (WebCore::DOMWindowNotifications::DOMWindowNotifications):
2438         (WebCore::DOMWindowNotifications::from):
2439         (WebCore::DOMWindowNotifications::webkitNotifications):
2440         (WebCore):
2441         (WebCore::DOMWindowNotifications::disconnectFrame):
2442         (WebCore::DOMWindowNotifications::willDetachPage):
2443         (WebCore::DOMWindowNotifications::reset):
2444         * notifications/DOMWindowNotifications.h:
2445         (DOMWindowNotifications):
2446         * page/DOMWindow.cpp:
2447         (WebCore::DOMWindow::willDetachPage):
2448         (WebCore::DOMWindow::disconnectDOMWindowProperties):
2449         (WebCore::DOMWindow::clearDOMWindowProperties):
2450         * page/DOMWindow.h:
2451         (DOMWindow):
2452         * page/Frame.cpp:
2453         (WebCore::Frame::willDetachPage):
2454
2455 2012-03-22  Adam Barth  <abarth@webkit.org>
2456
2457         Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl (Part 1)
2458         https://bugs.webkit.org/show_bug.cgi?id=82015
2459
2460         Reviewed by Kentaro Hara.
2461
2462         This patch moves DOMWindow.webkitNotifications from DOMWindow.idl to
2463         DOMWindowNotificiations.idl in preparation for moving notificiations
2464         into Modules.
2465
2466         A future patch will remove DOMWindow::resetNotificaitions in favor of
2467         more general mechanisms.
2468
2469         * CMakeLists.txt:
2470         * DerivedSources.make:
2471         * DerivedSources.pri:
2472         * GNUmakefile.list.am:
2473         * Target.pri:
2474         * WebCore.gypi:
2475         * WebCore.vcproj/WebCore.vcproj:
2476         * WebCore.xcodeproj/project.pbxproj:
2477         * notifications/DOMWindowNotifications.cpp: Added.
2478         (WebCore):
2479         (WebCore::DOMWindowNotifications::DOMWindowNotifications):
2480         (WebCore::DOMWindowNotifications::~DOMWindowNotifications):
2481         (WebCore::DOMWindowNotifications::from):
2482         (WebCore::DOMWindowNotifications::webkitNotifications):
2483         (WebCore::DOMWindowNotifications::reset):
2484         (WebCore::DOMWindowNotifications::supplementName):
2485         * notifications/DOMWindowNotifications.h: Added.
2486         (WebCore):
2487         (DOMWindowNotifications):
2488         * notifications/DOMWindowNotifications.idl: Added.
2489         * page/DOMWindow.cpp:
2490         (WebCore::DOMWindow::~DOMWindow):
2491         (WebCore):
2492         (WebCore::DOMWindow::resetNotifications):
2493         * page/DOMWindow.h:
2494         (WebCore):
2495         (DOMWindow):
2496         * page/DOMWindow.idl:
2497
2498 2012-03-22  Li Yin  <li.yin@intel.com>
2499
2500         A client MUST close a connection if it detects a masked frame
2501         https://bugs.webkit.org/show_bug.cgi?id=81361
2502
2503         Reviewed by Kent Tamura.
2504
2505         A server must not mask any frames that it sends to the client.
2506         Change the test case, not mask the frames from server to client.
2507         
2508         Test: http/tests/websocket/tests/hybi/invalid-masked-frames-from-server.html
2509
2510         * Modules/websockets/WebSocketChannel.cpp:
2511         (WebCore::WebSocketChannel::processFrame):
2512
2513 2012-03-22  Li Yin  <li.yin@intel.com>
2514
2515         [WebSocket]The minimal number of bytes MUST be used to encode the length
2516         https://bugs.webkit.org/show_bug.cgi?id=81443
2517
2518         Reviewed by Kent Tamura.
2519
2520         From RFC 6455 http://tools.ietf.org/html/rfc6455#section-5.2
2521         the minimal number of bytes MUST be used to encode the length
2522         
2523         New test case : http/tests/websocket/tests/hybi/invalid-encode-length.html
2524
2525         * Modules/websockets/WebSocketChannel.cpp:
2526         (WebCore::WebSocketChannel::parseFrame):
2527
2528 2012-03-22  Adam Barth  <abarth@webkit.org>
2529
2530         Unreviewed.  Sort xcodeproj file.
2531
2532         * WebCore.xcodeproj/project.pbxproj:
2533
2534 2012-03-22  Mao Yujie  <yujie.mao@intel.com>
2535
2536         Implement strict testing criterion for callback function definition
2537         https://bugs.webkit.org/show_bug.cgi?id=80005
2538
2539         Reviewed by Adam Barth.
2540
2541         Callback function should be defined as the function type instead of
2542         the object type.
2543
2544         LayoutTest: fast/dom/MediaStream/argument-types.html
2545
2546         * bindings/scripts/CodeGeneratorJS.pm:
2547         (GenerateParametersCheckExpression):
2548         (GenerateParametersCheck):
2549         * bindings/scripts/CodeGeneratorV8.pm:
2550         (GenerateParametersCheckExpression):
2551         (GenerateParametersCheck):
2552
2553 2012-03-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2554
2555         Convert hasGrammarMarker to use Internals interface
2556         https://bugs.webkit.org/show_bug.cgi?id=82004
2557
2558         Reviewed by Ryosuke Niwa.
2559
2560         Remove hasGrammarMarker functions, because it is able to work in the
2561         cross-port way through the Internals interface.
2562
2563         No new tests, since we are improving here the infra-structure
2564         for testing a specific method.
2565
2566         * testing/Internals.cpp:
2567         (WebCore::Internals::hasGrammarMarker):
2568         (WebCore):
2569         * testing/Internals.h:
2570         (Internals):
2571         * testing/Internals.idl:
2572
2573 2012-03-22  Xingnan Wang  <xingnan.wang@intel.com>
2574
2575         Add exception for the setter of "fftSize" in RealtimeAnalyserNode
2576         https://bugs.webkit.org/show_bug.cgi?id=81748
2577
2578         Reviewed by Chris Rogers.
2579
2580         * Modules/webaudio/RealtimeAnalyser.cpp:
2581         (WebCore::RealtimeAnalyser::setFftSize):
2582         * Modules/webaudio/RealtimeAnalyser.h:
2583         (RealtimeAnalyser):
2584         * Modules/webaudio/RealtimeAnalyserNode.cpp:
2585         (WebCore::RealtimeAnalyserNode::setFftSize):
2586         (WebCore):
2587         * Modules/webaudio/RealtimeAnalyserNode.h:
2588         (RealtimeAnalyserNode):
2589         * Modules/webaudio/RealtimeAnalyserNode.idl:
2590
2591 2012-03-22  Leo Yang  <leo.yang@torchmobile.com.cn>
2592
2593         [BlackBerry] Add HistoryItemViewState for BlackBerry port
2594         https://bugs.webkit.org/show_bug.cgi?id=81867
2595
2596         Reviewed by Rob Buis.
2597
2598         HistoryItemViewState is the blackberry specific field of HistoryItem.
2599         It's used to maintain the porting specific view state.
2600
2601         No new test because the port can't be built yet.
2602
2603         * history/HistoryItem.h:
2604         (HistoryItem):
2605         (WebCore::HistoryItem::viewState):
2606
2607 2012-03-22  SravanKumar Sandela  <ssandela@innominds.com>
2608
2609         Fieldset unexpectedly stretches to minimum intrinsic width
2610         https://bugs.webkit.org/show_bug.cgi?id=79128
2611
2612         Reviewed by Julien Chaffraix.
2613
2614         Fieldset element width will now check if css width is specified explicitly
2615         before stretching to minimum intrinsic width. The reference
2616         can be taken from IE9, instead of FF(FF acknowledged the broken behavior). 
2617
2618         Tests: fast/forms/fieldset-width-nostretch-ifspecified-expected.html
2619                fast/forms/fieldset-width-nostretch-ifspecified.html
2620
2621         * rendering/RenderFieldset.cpp:
2622         (WebCore::RenderFieldset::stretchesToMinIntrinsicLogicalWidth):
2623         (WebCore):
2624         * rendering/RenderFieldset.h:
2625         (RenderFieldset):
2626
2627 2012-03-22  Shawn Singh  <shawnsingh@chromium.org>
2628
2629         [chromium] Target surface should be damaged for a new layers even when layer had no changes
2630         https://bugs.webkit.org/show_bug.cgi?id=81879
2631
2632         Reviewed by Adrienne Walker.
2633
2634         Unit test added to CCDamageTrackerTest.
2635
2636         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
2637         (WebCore::CCDamageTracker::removeRectFromCurrentFrame): added a
2638         boolean arg to detect if the layer is new on this update.
2639
2640         (WebCore::CCDamageTracker::extendDamageForLayer): added logic that
2641         damages the target surface if the layer is new.
2642
2643         (WebCore::CCDamageTracker::extendDamageForRenderSurface): added
2644         logic that damages the target surface if the descendant surface is
2645         new; similar logic for the surface's replica if the replica is new.
2646
2647         * platform/graphics/chromium/cc/CCDamageTracker.h:
2648         (CCDamageTracker):
2649
2650 2012-03-22  Charles Wei  <charles.wei@torchmobile.com.cn>
2651
2652         [BlackBerry] Need to store the meta info of a page in the ViewState of the history
2653         https://bugs.webkit.org/show_bug.cgi?id=82000
2654
2655         Reviewed by Rob Buis.
2656
2657         Internally reviewed by George Staikos.
2658
2659         No new tests, BlackBerry porting doesn't build yet upstreaming.
2660
2661         * history/blackberry/HistoryItemViewState.h:
2662         (WebCore::HistoryItemViewState::HistoryItemViewState):
2663         (HistoryItemViewState):
2664
2665 2012-03-22  Adam Klein  <adamk@chromium.org>
2666
2667         [v8] wrapSlow methods should ref underlying object before creating wrapper
2668         https://bugs.webkit.org/show_bug.cgi?id=81919
2669
2670         Reviewed by Adam Barth.
2671
2672         Because instatiating the wrapper can trigger GC, it's important that
2673         wrapSlow() hold a reference to an object when creating a wrapper for
2674         that object. Once the V8 wrapper exists and is associated with the object,
2675         the reference can be handed off (via leakRef) to be handled by the normal
2676         binding code logic (where derefObject is called if the handle is GCed).
2677
2678         Binding tests have been updated to reflect this change.
2679
2680         Testing the change directly is hard. Any test landed today would only
2681         be a valid test until V8's logic about when to GC changes, at which point
2682         it would become dead weight. So I don't think it's worth landing a
2683         layout test along with this.
2684
2685         * bindings/scripts/CodeGeneratorV8.pm:
2686         (GenerateHeader): Make wrapSlow take a PassRefPtr for RefCounted objects.
2687         (GenerateToV8Converters): Get rid of the explicit call to ref() and
2688         instead call leakRef() when adding a RefCounted object to the DOM map.
2689         (GetPassRefPtrType): Helper to generate "PassRefPtr<T>", or "PassRefPtr<T<U> >" as appropriate.
2690         * bindings/scripts/test/V8/V8Float64Array.cpp:
2691         (WebCore::V8Float64Array::wrapSlow):
2692         * bindings/scripts/test/V8/V8Float64Array.h:
2693         (V8Float64Array):
2694         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2695         (WebCore::V8TestActiveDOMObject::wrapSlow):
2696         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
2697         (V8TestActiveDOMObject):
2698         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2699         (WebCore::V8TestCustomNamedGetter::wrapSlow):
2700         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
2701         (V8TestCustomNamedGetter):
2702         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2703         (WebCore::V8TestEventConstructor::wrapSlow):
2704         * bindings/scripts/test/V8/V8TestEventConstructor.h:
2705         (V8TestEventConstructor):
2706         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2707         (WebCore::V8TestEventTarget::wrapSlow):
2708         * bindings/scripts/test/V8/V8TestEventTarget.h:
2709         (V8TestEventTarget):
2710         * bindings/scripts/test/V8/V8TestInterface.cpp:
2711         (WebCore::V8TestInterface::wrapSlow):
2712         * bindings/scripts/test/V8/V8TestInterface.h:
2713         (V8TestInterface):
2714         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2715         (WebCore::V8TestMediaQueryListListener::wrapSlow):
2716         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
2717         (V8TestMediaQueryListListener):
2718         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2719         (WebCore::V8TestNamedConstructor::wrapSlow):
2720         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
2721         (V8TestNamedConstructor):
2722         * bindings/scripts/test/V8/V8TestObj.cpp:
2723         (WebCore::V8TestObj::wrapSlow):
2724         * bindings/scripts/test/V8/V8TestObj.h:
2725         (V8TestObj):
2726         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2727         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
2728         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
2729         (V8TestSerializedScriptValueInterface):
2730
2731 2012-03-22  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
2732
2733         [BlackBerry] add interface clearCredentials() and clearNeverRememberSites()
2734         https://bugs.webkit.org/show_bug.cgi?id=81887
2735
2736         Reviewed by Rob Buis.
2737
2738         Fixed SQL issue when clearing table logins and table never_remember.
2739
2740         No new tests.
2741
2742         * platform/network/blackberry/CredentialBackingStore.cpp:
2743         (WebCore::CredentialBackingStore::clearLogins):
2744         (WebCore::CredentialBackingStore::clearNeverRemember):
2745
2746 2012-03-22  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
2747
2748         [BlackBerry] http authenticate dialog popup only once no matter authentication pass or fail
2749         https://bugs.webkit.org/show_bug.cgi?id=80135
2750
2751         Reviewed by Rob Buis.
2752
2753         Modified the interface function authenticationChallenge() in class
2754         PageClientBlackBerry, moved Credential from return value to the
2755         function's reference parameter, and returned a bool to indicate if
2756         user pressed Ok button or not.
2757         Removed the logic which checks m_currentWebChallenge not null,
2758         because we should challenge user again if the last provided credential
2759         is not valid; also added the logic that will popup challenge
2760         dialog again immediately if user press Ok buttton directly without
2761         inputting anything.
2762
2763         No new tests.
2764
2765         * platform/blackberry/PageClientBlackBerry.h:
2766         * platform/network/blackberry/NetworkJob.cpp:
2767         (WebCore::NetworkJob::handleAuthHeader):
2768         (WebCore::NetworkJob::sendRequestWithCredentials):
2769
2770 2012-03-22  Jason Liu  <jason.liu@torchmobile.com.cn>
2771
2772         [BlackBerry] Synchronize platform/network/blackberry
2773         https://bugs.webkit.org/show_bug.cgi?id=81874
2774
2775         We changed a lot in these files locally. But the changes are not upstreamed.
2776         It is not convenient to do the other upstreaming work based on these differences.
2777         So upstream these changes.
2778
2779         Reviewed by Rob Buis.
2780
2781         No new tests. Just synchronize codes.
2782
2783         * platform/network/blackberry/NetworkJob.cpp:
2784         (WebCore::NetworkJob::NetworkJob):
2785         (WebCore::NetworkJob::initialize):
2786         (WebCore::NetworkJob::handleNotifyHeaderReceived):
2787         (WebCore::NetworkJob::handleNotifyDataReceived):
2788         (WebCore::NetworkJob::sendResponseIfNeeded):
2789         (WebCore::NetworkJob::sendRequestWithCredentials):
2790         (WebCore::NetworkJob::handleAbout):
2791         * platform/network/blackberry/NetworkJob.h:
2792         (WebCore::NetworkJob::isError):
2793         (NetworkJob):
2794         * platform/network/blackberry/NetworkManager.cpp:
2795         (WebCore::NetworkManager::startJob):
2796         * platform/network/blackberry/ResourceRequest.h:
2797         (WebCore::ResourceRequest::ResourceRequest):
2798         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
2799         (WebCore::platformTargetTypeForRequest):
2800
2801 2012-03-22  Tom Sepez  <tsepez@chromium.org>
2802
2803         XSS Auditor bypass via script tag src=data:, URLS.
2804         https://bugs.webkit.org/show_bug.cgi?id=81948
2805
2806         Reviewed by Adam Barth.
2807
2808         This change fixes an XSSAuditor bypass wherby a script with a data: URL src
2809         attribute could evade detection by using characters from the page to create
2810         a snippet for matching not found in the URL's reflected vector.  This change 
2811         terminates the snippet for matching earlier in these cases.
2812         
2813         Test: http/tests/security/xssAuditor/script-tag-with-source-data-url2.html
2814
2815         * html/parser/XSSAuditor.cpp:
2816         (WebCore::XSSAuditor::decodedSnippetForAttribute):
2817
2818 2012-03-22  Dana Jansens  <danakj@chromium.org>
2819
2820         [chromium] Incorrect assert on animating opacity for a surface
2821         https://bugs.webkit.org/show_bug.cgi?id=81994
2822
2823         Reviewed by Adrienne Walker.
2824
2825         Draw opacity and animation state match on the surface itself. A
2826         surface with animating opacity always has an owning layer without
2827         animation, as the surface does the animation for it.
2828
2829         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2830         (WebCore::CCLayerTreeHost::paintLayerContents):
2831
2832 2012-03-22  Dana Jansens  <danakj@chromium.org>
2833
2834         [chromium] Skip frames when checkerboarding an animation
2835         https://bugs.webkit.org/show_bug.cgi?id=81716
2836
2837         Reviewed by Adrienne Walker.
2838
2839         This will stop drawing frames when prepareToDraw fails, if the draw is
2840         not forced. The expected behaviour is outlined below by the unit tests.
2841
2842         When a draw fails, we:
2843         1. Set m_needsRedraw to try again next vsync
2844         2. Set m_needsCommit because we need more data from webkit to succeed
2845         3. Set m_drawIfPossibleFailed. This allows us to try draw again within
2846         the same vsync *if* a commit finishes during this time.
2847
2848         Unit test: CCSchedulerTest.RequestRedrawInsideFailedDraw
2849                    CCSchedulerTest.RequestCommitInsideFailedDraw
2850                    CCSchedulerTest.NoBeginFrameWhenDrawFails
2851                    CCSchedulerStateMachineTest.TestFailedDrawSetsNeedsCommitAndDoesNotDrawAgain
2852                    CCSchedulerStateMachineTest.TestSetNeedsRedrawDuringFailedDrawDoesNotRemoveNeedsRedraw
2853                    CCSchedulerStateMachineTest.TestCommitAfterFailedDrawAllowsDrawInSameFrame
2854                    CCSchedulerStateMachineTest.TestCommitAfterFailedAndSuccessfulDrawDoesNotAllowDrawInSameFrame
2855                    CCSchedulerStateMachineTest.TestFailedDrawIsRetriedNextVSync
2856
2857         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2858         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2859         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
2860         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2861         (CCLayerTreeHostImpl):
2862         * platform/graphics/chromium/cc/CCScheduler.cpp:
2863         (WebCore::CCScheduler::processScheduledActions):
2864         * platform/graphics/chromium/cc/CCScheduler.h:
2865         (CCSchedulerClient):
2866         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
2867         (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
2868         (WebCore::CCSchedulerStateMachine::nextAction):
2869         (WebCore::CCSchedulerStateMachine::updateState):
2870         (WebCore::CCSchedulerStateMachine::didDrawIfPossibleCompleted):
2871         (WebCore):
2872         * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
2873         (CCSchedulerStateMachine):
2874         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2875         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
2876         (WebCore):
2877         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapIfPossible):
2878         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapForced):
2879         * platform/graphics/chromium/cc/CCThreadProxy.h:
2880         (CCThreadProxy):
2881
2882 2012-03-22  W. James MacLean  <wjmaclean@chromium.org>
2883
2884         [chromium] Force update of nonFastScrollableRegion if target CCLayerImpl has been freshly created.
2885         https://bugs.webkit.org/show_bug.cgi?id=81968
2886
2887         Reviewed by Adrienne Walker.
2888
2889         Added unit test to existing tests for TreeSynchronizer.
2890
2891         When creating a new CCLayerImpl during tree synchronization, make sure we transfer the nonFastScrollableRegion as
2892         the new CCLayerImpl will default to an empty region.
2893
2894         * platform/graphics/chromium/LayerChromium.h:
2895         (WebCore::LayerChromium::nonFastScrollableRegion):
2896         (WebCore::LayerChromium::setNonFastScrollableRegionChanged):
2897         * platform/graphics/chromium/TreeSynchronizer.cpp:
2898         (WebCore::TreeSynchronizer::reuseOrCreateCCLayerImpl):
2899
2900 2012-03-22  Raphael Kubo da Costa  <rakuco@FreeBSD.org>
2901
2902         [CMake] Unreviewed build fix after r111778.
2903
2904         * CMakeLists.txt: Replace ${JAVASCRIPTCORE_DIR}/wtf includes with
2905         ${WTF_DIR}/wtf ones.
2906
2907 2012-03-22  Tony Chang  <tony@chromium.org>
2908
2909         Unreviewed, fix chromium build after wtf move.
2910
2911         Only use newwtf, remove references to wtf.
2912
2913         * WebCore.gyp/WebCore.gyp:
2914
2915 2012-03-22  Benjamin Poulain  <bpoulain@apple.com>
2916
2917         Remove an obsolete comment regarding magic frames from Geolocation
2918         https://bugs.webkit.org/show_bug.cgi?id=81871
2919
2920         Reviewed by Alexey Proskuryakov.
2921
2922         Moving a frame into another document is no longer possible after r111361. The comment
2923         is now irrelevant.
2924
2925         * Modules/geolocation/Geolocation.cpp:
2926         (WebCore::Geolocation::stop):
2927
2928 2012-03-22  Csaba Osztrogonác  <ossy@webkit.org>
2929
2930         Actually move WTF files to their new home
2931         https://bugs.webkit.org/show_bug.cgi?id=81844
2932
2933         [Qt] Unreviewed buildfix after r111778.
2934
2935         * Target.pri:
2936
2937 2012-03-22  Kentaro Hara  <haraken@chromium.org>
2938
2939         run-bindings-tests output a lot of errors in TestSerializedScriptValueInterface.idl
2940         https://bugs.webkit.org/show_bug.cgi?id=81852
2941
2942         Reviewed by Adam Barth.
2943
2944         run-bindings-tests output a lot of errors in TestSerializedScriptValueInterface.idl:
2945
2946         Use of uninitialized value in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2743.
2947         Use of uninitialized value $name in substitution (s///) at WebCore/bindings/scripts/CodeGenerator.pm line 119.
2948         Use of uninitialized value $type in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2969.
2949         Use of uninitialized value $type in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2972.
2950         Use of uninitialized value $type in hash element at WebCore/bindings/scripts/CodeGenerator.pm line 367.
2951         Use of uninitialized value $type in hash element at WebCore/bindings/scripts/CodeGenerator.pm line 368.
2952         ...
2953
2954         This is because [Constructor(...)] does not yet support [Optional] arguments.
2955         It just supports [Optional=DefaultIsUndefined] and [Optional=DefaultIsNullString] arguments:
2956         https://trac.webkit.org/wiki/WebKitIDL#Constructor
2957
2958         This patch replaces [Optional] with [Optional=DefaultIsUndefined]
2959         in TestSerializedScriptValueInterface.idl.
2960
2961         Test: bindings/scripts/test/TestSerializedScriptValueInterface.idl
2962
2963         * bindings/scripts/CodeGeneratorJS.pm:
2964         (GenerateConstructorDefinition):
2965         * bindings/scripts/CodeGeneratorV8.pm:
2966         (GenerateConstructorCallback):
2967         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2968         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
2969         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
2970         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2971         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
2972
2973 2012-03-22  Michal Mocny  <mmocny@google.com>
2974
2975         [chromium] LayerRendererChromium should use GpuMemoryAllocationChanged callback to explicitly manage framebuffer.
2976         https://bugs.webkit.org/show_bug.cgi?id=81823
2977
2978         Reviewed by Adrienne Walker.
2979
2980         New UnitTests: LayerRendererChromiumTest
2981
2982         * platform/graphics/chromium/LayerRendererChromium.cpp:
2983         (LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
2984         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::create):
2985         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::~LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
2986         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChanged):
2987         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
2988         (WebCore):
2989         (WebCore::LayerRendererChromium::LayerRendererChromium):
2990         (WebCore::LayerRendererChromium::initialize):
2991         (WebCore::LayerRendererChromium::~LayerRendererChromium):
2992         (WebCore::LayerRendererChromium::setVisible):
2993         (WebCore::LayerRendererChromium::swapBuffers):
2994         (WebCore::LayerRendererChromium::discardFramebuffer):
2995         (WebCore::LayerRendererChromium::ensureFramebuffer):
2996         * platform/graphics/chromium/LayerRendererChromium.h:
2997         (WebCore):
2998         (LayerRendererChromiumClient):
2999         (LayerRendererChromium):
3000         (WebCore::LayerRendererChromium::isFramebufferDiscarded):
3001         (ScopedEnsureFramebufferAllocation):
3002         (WebCore::ScopedEnsureFramebufferAllocation::ScopedEnsureFramebufferAllocation):
3003         (WebCore::ScopedEnsureFramebufferAllocation::~ScopedEnsureFramebufferAllocation):
3004         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3005         (WebCore::LayerRendererCapabilities::LayerRendererCapabilities):
3006         (LayerRendererCapabilities):
3007         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3008         (WebCore::CCLayerTreeHostImpl::setVisible):
3009         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3010         (CCLayerTreeHostImpl):
3011         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
3012         (WebCore::CCSingleThreadProxy::compositeAndReadback):
3013         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3014         (WebCore::CCThreadProxy::compositeAndReadback):
3015
3016 2012-03-22  Adam Barth  <abarth@webkit.org>
3017
3018         ContainerNode::insertedIntoTree and removedFromTree use weak iteration patterns
3019         https://bugs.webkit.org/show_bug.cgi?id=80570
3020
3021         Reviewed by Ryosuke Niwa.
3022
3023         These functions use weak iteration patterns, but as far as I can tell,
3024         we never execute script below these functions.  This patch adds ASSERTs
3025         to help us avoid adding events in the future.
3026
3027         * dom/ContainerNode.cpp:
3028         (WebCore::ContainerNode::insertedIntoTree):
3029         (WebCore::ContainerNode::removedFromTree):
3030         * html/HTMLMediaElement.cpp:
3031         (WebCore::HTMLMediaElement::loadInternal):
3032             - There's a somewhat complex call chain from insertedIntoTree into
3033               HTMLMediaElement, and somewhat complex control flow below
3034               loadInternal that eventually leads to the BeforeLoad event being
3035               fired.  In studying this code, I don't see a way for the
3036               BeforeLoad event to be fired during insertedIntoTree, but I've
3037               added this assert here to make sure we don't call loadInternal
3038               when we're not supposed to dispatch events.  This ASSERT should
3039               help us catch these BeforeLoad errors more quickly.
3040
3041 2012-03-22  Raphael Kubo da Costa  <rakuco@FreeBSD.org>
3042
3043         Crash in fast/dom/navigator-detached-nocrash.html
3044         https://bugs.webkit.org/show_bug.cgi?id=81773
3045
3046         Reviewed by Adam Barth.
3047
3048         BatteryManager::create() blindly assumes the Navigator* it
3049         receives has a valid Frame, which is not always the case, as made
3050         evident by the crashing test.
3051
3052         Follow abarth's suggestion and just stop
3053         NavigatorBattery::webkitBattery() before it reaches the call to
3054         BatteryManager::create() if that's the case.
3055
3056         No new tests, covered by fast/dom/navigator-detached-nocrash.html.
3057
3058         * Modules/battery/NavigatorBattery.cpp:
3059         (WebCore::NavigatorBattery::webkitBattery):
3060
3061 2012-03-22  Emil A Eklund  <eae@chromium.org>
3062
3063         Unreviewed, add missing include statement for CSSValueList.h.
3064
3065         * css/CSSStyleSelector.h:
3066
3067 2012-03-22  Tony Chang  <tony@chromium.org>
3068
3069         flexbox flexing implementation should match the spec
3070         https://bugs.webkit.org/show_bug.cgi?id=70796
3071
3072         Reviewed by Ojan Vafai.
3073
3074         Match the algorithm in the spec. Handling min/max constraints are slightly improved.
3075         http://dev.w3.org/csswg/css3-flexbox/#resolve-the-flexible-lengths
3076
3077         New test cases in css3/flexbox/flex-algorithm-min-max.html.
3078
3079         * rendering/RenderFlexibleBox.cpp:
3080         (WebCore::adjustFlexSizeForMinAndMax): Step 5 of resolving flexible lengths.
3081         (WebCore):
3082         (WebCore::RenderFlexibleBox::Violation::Violation):
3083         (RenderFlexibleBox::Violation):
3084         (WebCore::RenderFlexibleBox::freezeViolations): Used by step 6.
3085         (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
3086         * rendering/RenderFlexibleBox.h:
3087
3088 2012-03-22  Emil A Eklund  <eae@chromium.org>
3089
3090         Unreviewed, add missing import.
3091
3092         * rendering/RenderThemeMac.mm:
3093
3094 2012-03-22  Anders Carlsson  <andersca@apple.com>
3095
3096         ASSERT(!needsLayout) in RenderView.cpp when visiting http://www.panic.com/blog/
3097         https://bugs.webkit.org/show_bug.cgi?id=81953
3098         <rdar://problem/11086998>
3099
3100         Reviewed by Sam Weinig.
3101
3102         If a page ends up creating CATiledLayers, CA transactions can be committed outside of the normal
3103         CA run loop observer, so we can't call setNeedsDisplay on tile cache layers directly because then
3104         we'll end up calling into painting code before all the layers have been flushed.
3105
3106         Fix this by adding a list of dirty rects to platformCALayerDidCreateTiles and change GraphicsLayerCA to
3107         mark them as dirty. This ensures that any CA transaction commits won't cause newly added layers to be painted.
3108
3109         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
3110         (WebCore::LayerClient::platformCALayerDidCreateTiles):
3111         * platform/graphics/ca/GraphicsLayerCA.cpp:
3112         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
3113         * platform/graphics/ca/GraphicsLayerCA.h:
3114         (GraphicsLayerCA):
3115         * platform/graphics/ca/PlatformCALayerClient.h:
3116         (PlatformCALayerClient):
3117         * platform/graphics/ca/mac/TileCache.mm:
3118         (WebCore::TileCache::setScale):
3119         (WebCore::TileCache::revalidateTiles):
3120         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
3121         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerDidCreateTiles):
3122
3123 2012-03-19  Robert Hogan  <robert@webkit.org>
3124
3125         Text should overflow when list item height set to 0
3126         https://bugs.webkit.org/show_bug.cgi?id=78726
3127
3128         Reviewed by Julien Chaffraix.
3129
3130         Tests: css2.1/20110323/height-applies-to-010a-expected.html
3131                fast/css/heightless-list-item-expected.html
3132                fast/css/heightless-list-item.html
3133
3134         * rendering/RenderListItem.cpp:
3135         (WebCore::RenderListItem::paint):
3136            If the list item has height:0, only paint it if the list item allows any block or inline content 
3137            to overflow unclipped. The zero-height check is a shortcut to avoid unnecessary painting and 
3138            this seems to be the only case where there's something to do.
3139
3140 2012-03-22  Dave Michael  <dmichael@chromium.org>
3141
3142         HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called
3143         https://bugs.webkit.org/show_bug.cgi?id=80428
3144
3145         Reviewed by Eric Seidel.
3146
3147         Make HTMLPluginElement release its m_NPObject in detach() to break a
3148         reference-counting cycle that happens on reload or navigation. With this
3149         change, HTMLPlugInElement::removedFromDocument is unnecessary, so it
3150         was removed. Note that Releasing m_NPObject does not result in a call to
3151         the plugin; it simply releases a reference count on the wrapper object
3152         for this HTMLPlugInElement. (The plugin's NPP_Deallocate is invoked
3153         when the render tree is destroyed, when PluginView calls
3154         PluginPackage::unload.) Thus, it is safe to release m_NPObject in
3155         detach, because it can not result in layout or style changes.
3156
3157         Also added numberOfLiveNodes() and numberOfLiveDocuments() to
3158         window.internals to enable testing.
3159
3160         Test: plugins/netscape-dom-access-and-reload.html
3161
3162         * WebCore.exp.in:
3163         * html/HTMLPlugInElement.cpp:
3164         (WebCore::HTMLPlugInElement::detach):
3165         * html/HTMLPlugInElement.h:
3166         (HTMLPlugInElement):
3167         * testing/Internals.cpp:
3168         (WebCore::Internals::numberOfLiveDocuments):
3169         (WebCore::Internals::numberOfLiveNodes):
3170         (WebCore):
3171         * testing/Internals.h:
3172         (Internals):
3173         * testing/Internals.idl:
3174
3175 2012-03-22  Shawn Singh  <shawnsingh@chromium.org>
3176
3177         [chromium] Make CCDamageTracker robust to empty layer lists
3178         https://bugs.webkit.org/show_bug.cgi?id=81831
3179
3180         Reviewed by Adrienne Walker.
3181
3182         Added a unit test in CCDamageTrackerTest that causes a crash in
3183         the old code. With this patch applied, the crash will not occur.
3184         In theory, that crash should never occur anyway, unless there is a
3185         bug outside the damage tracker, but for robustness it's
3186         appropriate to handle it properly.
3187
3188         In addition to this fix, performed some trivial maintenance on the
3189         damage tracker code.
3190
3191         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
3192         (WebCore::CCDamageTracker::updateDamageTrackingState): removed
3193         unclean code that accessed the targetSurface to get necessary
3194         information. Instead, we now pass those args through the damage
3195         tracker's API.
3196
3197         * platform/graphics/chromium/cc/CCDamageTracker.h:
3198         (CCDamageTracker): modified args passed to damage tracker on update.
3199
3200         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3201         (WebCore::CCLayerTreeHostImpl::trackDamageForAllSurfaces):
3202         modified args passed to damage tracker on update.
3203
3204 2012-03-22  Julien Chaffraix  <jchaffraix@webkit.org>
3205
3206         Enable style sharing for elements with a style attribute
3207         https://bugs.webkit.org/show_bug.cgi?id=81523
3208
3209         Reviewed by Antti Koivisto.
3210
3211         Memory improvement change only.
3212
3213         Overall, this is a performance wash (some benchmarks may regress a bit due to the increase in time taken
3214         by CSSStyleSelector::locateSharedStyle as we try more nodes, others increase their performance due to style sharing).
3215
3216         Instrumenting our style sharing, this should give us some nice memory shavings on some benchmarks:
3217         - HTML5 isn't impacted as it doesn't use much inline style
3218         - page cyclers' intl1 showed a 6% increase in style sharing.
3219
3220         * css/CSSStyleSelector.cpp:
3221         (WebCore::CSSStyleSelector::canShareStyleWithElement):
3222         This method now handles inline style like presentation attributes on the element.
3223
3224         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3225         (WebCore::CSSStyleSelector::locateSharedStyle):
3226         Don't bail out for an element with an inline style declaration.
3227
3228         (WebCore::CSSStyleSelector::stylesEqual):
3229         Generalized attributeStylesEqual to share the logic between attribute and
3230         inline style property set. This means that attribute checks are actually
3231         doing a little extra more work but that didn't impact our benchmarks.
3232
3233 2012-03-22  Kevin Ollivier  <kevino@theolliviers.com>
3234
3235         [wx] Unreviewed. WebDOM build fix after array type changes.
3236
3237         * bindings/scripts/CodeGeneratorCPP.pm:
3238         (ShouldSkipType):
3239
3240 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
3241
3242         Web Inspector: text gutter decorations should move upon edits.
3243         https://bugs.webkit.org/show_bug.cgi?id=81932
3244
3245         Reviewed by Vsevolod Vlasov.
3246
3247         Decorations set by the line number now shift as editing inserts / removes lines.
3248
3249         * inspector/front-end/TextViewer.js:
3250         (WebInspector.TextViewer.prototype._syncLineHeight):
3251         (WebInspector.TextEditorGutterPanel):
3252         (WebInspector.TextEditorGutterPanel.prototype.textChanged):
3253         (WebInspector.TextEditorGutterPanel.prototype.syncClientHeight):
3254         (WebInspector.TextEditorGutterPanel.prototype.addDecoration):
3255         (WebInspector.TextEditorGutterPanel.prototype.removeDecoration):
3256
3257 2012-03-21  Robert Hogan  <robert@webkit.org>
3258
3259         CSS 2.1 failure: fixed-table-layout-006 fails
3260         https://bugs.webkit.org/show_bug.cgi?id=78412
3261
3262         Reviewed by Julien Chaffraix.
3263
3264         Tests: css2.1/20110323/fixed-table-layout-006.htm
3265                fast/css/fixed-table-layout-cell-padding.htm
3266
3267         In fixed tables, positive width specified on a column should include borders and padding.
3268         See the thread at http://lists.w3.org/Archives/Public/www-style/2011Oct/0502.html. The discussion
3269         there resulted in a whole new set of tests for section 17.5.2.1 in the CSS 2.1 spec. See 
3270         http://test.csswg.org/harness/test/CSS21_DEV/section/17.5.2.1/. This patch allows WebKit
3271         to pass all of them, and all tests for the 17.5.2.1 section as a whole. I'll land them all separately.
3272     
3273         * rendering/FixedTableLayout.cpp:
3274         (WebCore::FixedTableLayout::calcWidthArray): Include border width and cell padding in the width of the column.
3275          Note that borderAndPaddingLogicalWidth() returns the border width for separate and collapsed borders as appropriate.
3276
3277 2012-03-22  Simon Fraser  <simon.fraser@apple.com>
3278
3279         Factor compositing layer updates after scroll into a new method
3280         https://bugs.webkit.org/show_bug.cgi?id=81943
3281
3282         Reviewed by Dean Jackson.
3283
3284         Move some code that updates compositing layers after scrolling
3285         into its own method, for cleanliness.
3286
3287         * rendering/RenderLayer.cpp:
3288         (WebCore::RenderLayer::scrollTo):
3289         (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
3290         (WebCore):
3291         * rendering/RenderLayer.h:
3292         (RenderLayer):
3293
3294 2012-03-22  Gavin Barraclough  <barraclough@apple.com>
3295
3296         Add JSValue::isFunction
3297         https://bugs.webkit.org/show_bug.cgi?id=81935
3298
3299         Reviewed by Geoff Garen.
3300
3301         This would be useful in the WebCore bindings code.
3302         Also, remove asFunction, replace with jsCast<JSFunction*>.
3303
3304         * bindings/js/JSInjectedScriptHostCustom.cpp:
3305         (WebCore::JSInjectedScriptHost::functionDetails):
3306         * bindings/js/ScriptCallStackFactory.cpp:
3307         (WebCore::createScriptCallStack):
3308
3309 2012-03-22  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3310
3311         TiledBackingStore: Fix test regressions that appeared with r111560.
3312         https://bugs.webkit.org/show_bug.cgi?id=81519
3313
3314         Reviewed by Kenneth Rohde Christiansen.
3315
3316         The visible rect wasn't intersected with the contents rect anymore which
3317         could lead to an astronomical layer size to check for intersecting tiles.
3318
3319         Add a visibleContentsRect that doesn't do the conversion and use it
3320         in visibleAreaIsCovered.
3321
3322         * platform/graphics/TiledBackingStore.cpp:
3323         (WebCore::TiledBackingStore::visibleContentsRect):
3324         (WebCore):
3325         (WebCore::TiledBackingStore::visibleRect):
3326         (WebCore::TiledBackingStore::visibleAreaIsCovered):
3327         * platform/graphics/TiledBackingStore.h:
3328         (TiledBackingStore):
3329
3330 2012-03-22  Joe Thomas  <joethomas@motorola.com>
3331
3332         Make Length Calculation functions non-inline
3333         https://bugs.webkit.org/show_bug.cgi?id=81733
3334
3335         Currently length calculation functions in LengthFunctions.h are inline. These functions are pretty big to be inline.
3336         And these functions are expected to grow again when new length units will be introduced in bug 27160.
3337
3338         A decent rule of thumb is to not inline a function if it is more than 10 lines long. Also it's typically not cost effective to inline
3339         functions with loops or switch statements. (Reference: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Inline_Functions).
3340
3341         Ran PerformanceTests/Parser/html5-full-render.html on Mac Snow-Leopard with and without the patch and did not see much performance difference.
3342
3343         Reviewed by Antti Koivisto.
3344
3345         * CMakeLists.txt:
3346         * GNUmakefile.list.am:
3347         * Target.pri:
3348         * WebCore.gypi:
3349         * WebCore.vcproj/WebCore.vcproj:
3350         * WebCore.xcodeproj/project.pbxproj:
3351         * css/LengthFunctions.cpp: Added.
3352         (WebCore):
3353         (WebCore::miminumValueForLength):
3354         (WebCore::valueForLength):
3355         (WebCore::floatValueForLength):
3356         * css/LengthFunctions.h:
3357         (WebCore):
3358
3359 2012-03-22  Alexis Menard  <alexis.menard@openbossa.org>
3360
3361         Increase code sharing between CSSParser and CSSPropertyLonghand.
3362         https://bugs.webkit.org/show_bug.cgi?id=81587
3363
3364         Reviewed by Antti Koivisto.
3365
3366         Expose the longhands declaration for a given shorthand in CSSPropertyLonghand and
3367         make CSSParser use them. It will make the declaration of longhands in one place only.
3368         Remove the map of CSSPropertyLonghand and replace it by a regular switch/case.
3369         The map doesn't bring much here and it's cleaner and faster to use the switch.
3370         It also shows a little performance improvement in CSS/CSSPropertySetterGetter.html.
3371
3372         No new tests : no behavior change.
3373
3374         * css/CSSParser.cpp:
3375         (WebCore::CSSParser::parseValue):
3376         (WebCore::CSSParser::parseAnimationShorthand):
3377         (WebCore::CSSParser::parseTransitionShorthand):
3378         (WebCore::CSSParser::parseShorthand):
3379         Modify the prototype of this function to directly use the CSSPropertyLonghand.
3380         * css/CSSParser.h:
3381         (WebCore):
3382         (CSSParser):
3383         * css/CSSPropertyLonghand.cpp:
3384         (WebCore):
3385         (WebCore::backgroundLonghand):
3386         (WebCore::backgroundPositionLonghand):
3387         (WebCore::backgroundRepeatLonghand):
3388         (WebCore::borderLonghand):
3389         (WebCore::borderBottomLonghand):
3390         (WebCore::borderColorLonghand):
3391         (WebCore::borderImageLonghand):
3392         (WebCore::borderLeftLonghand):
3393         (WebCore::borderRadiusLonghand):
3394         (WebCore::borderRightLonghand):
3395         (WebCore::borderSpacingLonghand):
3396         (WebCore::borderStyleLonghand):
3397         (WebCore::borderTopLonghand):
3398         (WebCore::borderWidthLonghand):
3399         (WebCore::listStyleLonghand):
3400         (WebCore::fontLonghand):
3401         (WebCore::marginLonghand):
3402         (WebCore::outlineLonghand):
3403         (WebCore::overflowLonghand):
3404         (WebCore::paddingLonghand):
3405         (WebCore::webkitAnimationLonghand):
3406         (WebCore::webkitBorderAfterLonghand):
3407         (WebCore::webkitBorderBeforeLonghand):
3408         (WebCore::webkitBorderEndLonghand):
3409         (WebCore::webkitBorderStartLonghand):
3410         (WebCore::webkitColumnsLonghand):
3411         (WebCore::webkitColumnRuleLonghand):
3412         (WebCore::webkitFlexFlowLonghand):
3413         (WebCore::webkitMarginCollapseLonghand):
3414         (WebCore::webkitMarqueeLonghand):
3415         (WebCore::webkitMaskLonghand):
3416         (WebCore::webkitMaskPositionLonghand):
3417         (WebCore::webkitMaskRepeatLonghand):
3418         (WebCore::webkitTextEmphasisLonghand):
3419         (WebCore::webkitTextStrokeLonghand):
3420         (WebCore::webkitTransitionLonghand):
3421         (WebCore::webkitTransformOriginLonghand):
3422         (WebCore::webkitWrapLonghand):
3423         (WebCore::longhandForProperty):
3424         * css/CSSPropertyLonghand.h:
3425         (WebCore):
3426
3427 2012-03-22  Emil A Eklund  <eae@chromium.org>
3428
3429         Unreviewed, touching file to force bots to pick up CSS_SHADERS flag change. 
3430
3431         * css/CSSStyleSelector.h:
3432         (CSSStyleSelector):
3433
3434 2012-03-22  Xingnan Wang  <xingnan.wang@intel.com>
3435
3436         ReverbConvolver::latencyFrames() should return 0.
3437         https://bugs.webkit.org/show_bug.cgi?id=81806
3438
3439         Reviewed by Chris Rogers.
3440
3441         * platform/audio/ReverbConvolver.cpp:
3442         (WebCore::ReverbConvolver::latencyFrames):
3443
3444 2012-03-22  Tony Chang  <tony@chromium.org>
3445
3446         refactor flexbox in preparation for flex-line-pack
3447         https://bugs.webkit.org/show_bug.cgi?id=81843
3448
3449         Reviewed by Ojan Vafai.
3450
3451         Replace WrapReverseContext with a vector of LineContexts that contain
3452         the same information, plus values needed for flex-align.
3453
3454         alignChildren has been moved to after all the lines have been
3455         positioned. We want to align children after flex-line-pack has changed
3456         the size of each line to avoid unnecessary layouts.
3457
3458         Take 2: Remove the assert. If there are no children, then there are no
3459         flex lines. Instead, assert that child is not null.
3460
3461         No new tests, just refactoring.
3462
3463         * rendering/RenderFlexibleBox.cpp:
3464         (WebCore::RenderFlexibleBox::LineContext::LineContext): New struct,
3465         holds information needed for wrap-reverse and aligning children.
3466         (RenderFlexibleBox::LineContext):
3467         (WebCore::RenderFlexibleBox::layoutFlexItems): alignChildren after layout out all the lines rather than after each line.
3468         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): don't alignChildren
3469         (WebCore::RenderFlexibleBox::alignChildren): align all flex items, not just a line at a time.
3470         (WebCore::RenderFlexibleBox::flipForWrapReverse): Update to use LineContext
3471         * rendering/RenderFlexibleBox.h:
3472
3473 2012-03-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3474
3475         Event dispatching in XMLHttpRequestProgressEventThrottle should go through XMLHttpRequestProgressEventThrottle::dispatchEvent
3476         https://bugs.webkit.org/show_bug.cgi?id=46743
3477
3478         Reviewed by Julien Chaffraix
3479         Based on original patch by Anton D'Auria
3480
3481         In preparation for platform-specific queuing of XMLHttpRequest events,
3482         this patch changes all calls to m_target->dispatchEvent to
3483         XMLHttpRequestProgressEventThrottle::dispatchEvent.
3484         Currently, we queue only one progress event on suspend() if we have
3485         throttled progress events. We should be able to queue all XHR events
3486         that can be generated after suspend(), if the platform network layer
3487         continues to receive data.
3488         XMLHttpRequest uses XMLHttpRequestProgressEventThrottle to dispatch only
3489         download events, so this doesn't change behavior of upload events, which
3490         aren't throttled or queued.
3491
3492         * xml/XMLHttpRequest.cpp:
3493         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
3494         * xml/XMLHttpRequestProgressEventThrottle.cpp:
3495         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchReadyStateChangeEvent):
3496         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchEvent):
3497         (WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent):
3498         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchPausedEvent):
3499         (WebCore::XMLHttpRequestProgressEventThrottle::fired):
3500         * xml/XMLHttpRequestProgressEventThrottle.h:
3501         (XMLHttpRequestProgressEventThrottle):
3502
3503 2012-03-22  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
3504
3505         [EFL] Map BackSpace key code to Unicode value
3506         https://bugs.webkit.org/show_bug.cgi?id=81130
3507
3508         Reviewed by Gustavo Noronha Silva.
3509
3510         Test: fast/events/backspace-navigates-back.html
3511
3512         * platform/efl/EflKeyboardUtilities.cpp:
3513         (WebCore::createKeyMap): Map BackSpace to Unicode value
3514
3515 2012-03-22  Abhishek Arya  <inferno@chromium.org>
3516
3517         Incorrect beforeChild parent calculation in RenderRubyBase::moveChildren.
3518         https://bugs.webkit.org/show_bug.cgi?id=80297
3519
3520         Reviewed by Julien Chaffraix.
3521
3522         beforeChild might share the same anonymous block parent with other previous
3523         siblings. Before moving the children across ruby bases, we need to make sure
3524         to split the tree across the beforeChild correctly.
3525
3526         Test: fast/ruby/ruby-text-before-child-split.html
3527
3528         * rendering/RenderRubyBase.cpp:
3529         (WebCore::RenderRubyBase::moveChildren):
3530
3531 2012-03-22  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>
3532
3533         [Qt] Fix Qt minimal build after r111692
3534
3535         Reviewed by Csaba Osztrogonác.
3536
3537         * bindings/js/JSScriptProfileNodeCustom.cpp:
3538
3539 2012-03-22  Adrienne Walker  <enne@google.com>
3540
3541         [chromium] Fix scrollbar layers holding onto invalid textures after lost context
3542         https://bugs.webkit.org/show_bug.cgi?id=81841
3543
3544         Reviewed by James Robinson.
3545
3546         Unit test: CCLayerTreeHostImplTest.scrollbarLayerLostContext
3547
3548         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
3549         (WebCore::CCScrollbarLayerImpl::willDraw):
3550
3551 2012-03-22  Philippe Normand  <pnormand@igalia.com>
3552
3553         [GTK] ASSERT bug in WebAudio (AudioFileReader)
3554         https://bugs.webkit.org/show_bug.cgi?id=81777
3555
3556         Reviewed by Martin Robinson.
3557
3558         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
3559         (WebCore::AudioFileReader::decodeAudioForBusCreation): Don't steal
3560         the GstBus floating reference.
3561         (WebCore::AudioFileReader::createBus): Ditto.
3562
3563 2012-03-22  Ilya Tikhonovsky  <loislo@chromium.org>
3564
3565         Unreviewed: Web Inspector: fix syntax error in text.
3566
3567         * English.lproj/localizedStrings.js:
3568         * inspector/front-end/HeapSnapshotProxy.js:
3569         (WebInspector.HeapSnapshotWorker.prototype._messageReceived):
3570
3571 2012-03-22  Sheriff Bot  <webkit.review.bot@gmail.com>
3572
3573         Unreviewed, rolling out r111688.
3574         http://trac.webkit.org/changeset/111688
3575         https://bugs.webkit.org/show_bug.cgi?id=81912
3576
3577         "Heap profiler test fails" (Requested by yurys on #webkit).
3578
3579         * inspector/front-end/HeapSnapshot.js:
3580         (WebInspector.HeapSnapshot.prototype._buildRetainers):
3581
3582 2012-03-22  Dana Jansens  <danakj@chromium.org>
3583
3584         [chromium] Early out in a new prepareToDraw() step if checkerboarding an accelerated animation in order to skip the frame
3585         https://bugs.webkit.org/show_bug.cgi?id=81437
3586
3587         Reviewed by Adrienne Walker.
3588
3589         Split CCLayerTreeHostImpl::drawLayers() into two phases:
3590         prepareToDraw() and drawLayers().
3591
3592         When calculating a RenderPass, and we checkerboard a quad on a
3593         layer, bubble this info back up to CCLayerTreeHostImpl. If the
3594         layer is transforming in an animation, then abort the prepareToDraw()
3595         phase and cause it to return false back to the thread proxy.
3596
3597         Unit test: CCLayerTreeHostImplTest.prepareToDrawFailsWhenAnimationUsesCheckerboard
3598
3599         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
3600         (WebCore::CCLayerImpl::appendQuads):
3601         * platform/graphics/chromium/cc/CCLayerImpl.h:
3602         (CCLayerImpl):
3603         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3604         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
3605         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
3606         (WebCore):
3607         (WebCore::CCLayerTreeHostImpl::drawLayers):
3608         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3609         (CCLayerTreeHostImpl):
3610         (FrameData):
3611         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
3612         (WebCore::CCQuadCuller::append):
3613         * platform/graphics/chromium/cc/CCQuadCuller.h:
3614         (CCQuadCuller):
3615         * platform/graphics/chromium/cc/CCRenderPass.cpp:
3616         (WebCore::CCRenderPass::appendQuadsForLayer):
3617         * platform/graphics/chromium/cc/CCRenderPass.h:
3618         (CCRenderPass):
3619         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
3620         (WebCore::CCScrollbarLayerImpl::appendQuads):
3621         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
3622         (CCScrollbarLayerImpl):
3623         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
3624         (WebCore::CCSingleThreadProxy::doComposite):
3625         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
3626         (WebCore::CCSolidColorLayerImpl::appendQuads):
3627         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
3628         (CCSolidColorLayerImpl):
3629         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
3630         (WebCore::CCTextureLayerImpl::appendQuads):
3631         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
3632         (CCTextureLayerImpl):
3633         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3634         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
3635         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
3636         (WebCore::CCTiledLayerImpl::appendQuads):
3637         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
3638         (CCTiledLayerImpl):
3639         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
3640         (WebCore::CCVideoLayerImpl::appendQuads):
3641         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
3642         (CCVideoLayerImpl):
3643
3644 2012-03-22  Levi Weintraub  <leviw@chromium.org>
3645
3646         Correct LayoutUnit usage in Accessibility code
3647         https://bugs.webkit.org/show_bug.cgi?id=81789
3648
3649         Reviewed by Eric Seidel.
3650
3651         Reverting Accessibility hit testing code back to integers. Accessibility hit tests originate from
3652         the embedder and don't accumulate offsets, so we get nothing from using LayoutUnits, and needlessly
3653         expose them to the embedder.
3654
3655         No new tests. No change in behavior.
3656
3657         * accessibility/AccessibilityListBox.cpp:
3658         (WebCore::AccessibilityListBox::elementAccessibilityHitTest): See above.
3659         * accessibility/AccessibilityListBox.h:
3660         (AccessibilityListBox):
3661         * accessibility/AccessibilityObject.cpp:
3662         (WebCore::AccessibilityObject::clickPoint): This value is only ever used to display a context menu,
3663         which is always done with integer coordinates.
3664         (WebCore::AccessibilityObject::boundingBoxForQuads): This is a bounding box built from floats. We
3665         don't pixel snap floats, so we return an integer bounding box.
3666         (WebCore::AccessibilityObject::elementAccessibilityHitTest): See above.
3667         (WebCore::AccessibilityObject::scrollToMakeVisible): Pixel snapping the bounding box and simplifying
3668         up the code to position it at (0,0).
3669         * accessibility/AccessibilityObject.h:
3670         (WebCore::AccessibilityObject::accessibilityHitTest): See above.
3671         (AccessibilityObject):
3672         (WebCore::AccessibilityObject::pixelSnappedBoundingBoxRect): Convenience method for embedder callers.
3673         * accessibility/AccessibilityRenderObject.cpp:
3674         (WebCore::AccessibilityRenderObject::visiblePositionForPoint): The point passed in here is comes from
3675         screen coordinates and originates in embedder code. Reverting it to take an integer.
3676         (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest): See above.
3677         (WebCore::AccessibilityRenderObject::accessibilityHitTest): See above.
3678         * accessibility/AccessibilityRenderObject.h:
3679         (AccessibilityRenderObject):
3680         * accessibility/AccessibilityScrollView.cpp:
3681         (WebCore::AccessibilityScrollView::accessibilityHitTest): See above.
3682         * accessibility/AccessibilityScrollView.h:
3683         (AccessibilityScrollView):
3684         * accessibility/AccessibilitySlider.cpp:
3685         (WebCore::AccessibilitySlider::elementAccessibilityHitTest): See above.
3686         * accessibility/AccessibilitySlider.h:
3687         (AccessibilitySlider):
3688
3689 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
3690
3691         Web Inspector: HeapProfiler: Heap snapshot worker has to report the errors to the front-end
3692         https://bugs.webkit.org/show_bug.cgi?id=81804
3693
3694         Sometimes the worker process of HeapSnapshot does some wrong thing and throw an Exception.
3695         At this momemnt we have no way to see the error in the front-end.
3696
3697         Reviewed by Yury Semikhatsky.
3698
3699         * English.lproj/localizedStrings.js:
3700         * inspector/front-end/HeapSnapshotProxy.js: check the exception field and dump it into front-end's console.
3701         (WebInspector.HeapSnapshotWorker.prototype._messageReceived):
3702         * inspector/front-end/HeapSnapshotWorkerDispatcher.js: catch the exception and transfer it's text to requester's side.
3703         (WebInspector.HeapSnapshotWorkerDispatcher.prototype.dispatchMessage):
3704
3705 2012-03-22  Carlos Garcia Campos  <cgarcia@bb-webkit-rel-64.local.igalia.com>
3706
3707         [GTK] Use the angle-bracket form to include wtf headers
3708         https://bugs.webkit.org/show_bug.cgi?id=81884
3709
3710         Reviewed by Eric Seidel.
3711
3712         Use #include <wtf/foo> instead of #include "foo".
3713
3714         * platform/graphics/freetype/FontPlatformData.h:
3715         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3716         * platform/gtk/DataObjectGtk.h:
3717         * platform/network/ResourceHandleInternal.h:
3718         * platform/network/soup/SocketStreamHandleSoup.cpp:
3719
3720 2012-03-22  Alexander Pavlov  <apavlov@chromium.org>
3721
3722         Web Inspector: Case of the elements of the xml document should be shown as it is in the console
3723         https://bugs.webkit.org/show_bug.cgi?id=81902
3724
3725         When registering a detached root, DOMAgent always presumes it is a node,
3726         while it can also be a document.
3727
3728         Reviewed by Vsevolod Vlasov.
3729
3730         Test: inspector/console/console-xml-document.html
3731
3732         * inspector/front-end/ConsoleMessage.js:
3733         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
3734         * inspector/front-end/DOMAgent.js:
3735         (WebInspector.DOMAgent.prototype._setDetachedRoot):
3736
3737 2012-03-22  Vsevolod Vlasov  <vsevik@chromium.org>
3738
3739         Web Inspector: Introduce ScriptBound/ScriptUnbound events in ScriptMapping.
3740         https://bugs.webkit.org/show_bug.cgi?id=81904
3741
3742         Reviewed by Pavel Feldman.
3743
3744         This is another step on the way to cleaner BreakpointManager logic.
3745         Here we extract ScriptBound/ScriptUnbound events from UISourceCodeListChanged event.
3746         This allows us to handle script-uiSourceCode binding separately from
3747         uiSourceCode creation/deletion and to handle unbinding that was not
3748         possible at all before.
3749
3750         * inspector/front-end/CompilerScriptMapping.js:
3751         (WebInspector.CompilerScriptMapping.prototype._uiSourceCodesForSourceMap):
3752         (WebInspector.CompilerScriptMapping.prototype.addScript.get this):
3753         (WebInspector.CompilerScriptMapping.prototype.addScript):
3754         (WebInspector.CompilerScriptMapping.prototype.reset):
3755         * inspector/front-end/ResourceScriptMapping.js:
3756         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeChanged):
3757         * inspector/front-end/ScriptMapping.js:
3758         (WebInspector.MainScriptMapping):
3759         (WebInspector.MainScriptMapping.prototype._updateLiveLocation):
3760         (WebInspector.MainScriptMapping.prototype._handleUISourceCodeListChanged):
3761         (WebInspector.MainScriptMapping.prototype._handleScriptBound):
3762         (WebInspector.MainScriptMapping.prototype._handleScriptUnbound):
3763         * inspector/front-end/SnippetsModel.js:
3764         (WebInspector.SnippetsScriptMapping.prototype.addScript.get this):
3765         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
3766         (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript):
3767         (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved.get this):
3768         (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved):
3769         (WebInspector.SnippetsScriptMapping.prototype.reset):
3770
3771 2012-03-22  Vineet Chaudhary  <rgf748@motorola.com>
3772
3773         https://bugs.webkit.org/show_bug.cgi?id=81893
3774         Remove custom bindings form ScriptProfileNode.idl of attribute type Array.
3775
3776         Reviewed by Kentaro Hara.
3777
3778         Replace [CustomGetter] Array with sequence<ScriptProfileNode>.
3779         To remove the custom bindings code.
3780
3781         Test: No new tests. LayoutTests/fast/profiler/* test are enough for this.
3782
3783         * bindings/js/JSScriptProfileNodeCustom.cpp: Removed custom function.
3784         (WebCore::JSScriptProfileNode::callUID):
3785         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp: Removed custom function.
3786         (WebCore):
3787         * inspector/ScriptProfileNode.idl: Replaced Array with sequence<ScriptProfileNode>.
3788
3789 2012-03-22  Andrey Kosyakov  <caseq@chromium.org>
3790
3791         Web Inspector: only update timeline overview categories strips when these are visible
3792         https://bugs.webkit.org/show_bug.cgi?id=81903
3793
3794         Reviewed by Pavel Feldman.
3795
3796         - factor out category strips update into a separate method;
3797         - only invoke it when "Timeline" overview mode is selected.
3798
3799         * inspector/front-end/TimelineOverviewPane.js:
3800         (WebInspector.TimelineOverviewPane.prototype._showTimelines):
3801         (WebInspector.TimelineOverviewPane.prototype.update):
3802         (WebInspector.TimelineOverviewPane.prototype._updateCategoryStrips):
3803
3804 2012-03-22  Levi Weintraub  <leviw@chromium.org>
3805
3806         Update LayoutUnit usage in FrameSelection
3807         https://bugs.webkit.org/show_bug.cgi?id=81754
3808
3809         Reviewed by Eric Seidel.
3810
3811         FrameSelection stores its caret and repaint bounds in absolute coordinates. Absolute coordinates
3812         we treat as pixel values, so this patch changes these values to integers. Sub-pixel precision
3813         will still be used when these coordinates are passed down and used locally.
3814
3815         No new tests. No change in behavior.
3816
3817         * editing/FrameSelection.cpp:
3818         (WebCore::absoluteCaretY): Uses absolute coordinates, which are ints.
3819         (WebCore::FrameSelection::modify): Uses absolute coordinates to handle vertical selection
3820         modification. Sub-pixel precision will be used when these values are converted to local ones.
3821         (WebCore::CaretBase::absoluteBoundsForLocalRect): Absolute coordinates -> ints.
3822         (WebCore::FrameSelection::absoluteCaretBounds): Ditto.
3823         (WebCore::CaretBase::caretRepaintRect): The caret repaint rect is stored in absolute coordinates.
3824         Reverting the values to ints.
3825         (WebCore::FrameSelection::recomputeCaretRect): Ditto.
3826         * editing/FrameSelection.h:
3827         (FrameSelection):
3828         * editing/mac/FrameSelectionMac.mm:
3829         (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): Switching to store absolute
3830         coordinates as integers.
3831
3832 2012-03-22  Alexei Filippov  <alexeif@chromium.org>
3833
3834         Web Inspector: Speed up the build retainers phase.
3835         https://bugs.webkit.org/show_bug.cgi?id=81763
3836
3837         Replacing the edge iterator with a raw loop makes it
3838         faster by more than 10 times.
3839
3840         Reviewed by Yury Semikhatsky.
3841
3842         * inspector/front-end/HeapSnapshot.js:
3843         (WebInspector.HeapSnapshot.prototype._buildRetainers):
3844
3845 2012-03-22  No'am Rosenthal  <noam.rosenthal@nokia.com>
3846
3847         [Qt][WK2] The background appears to have one extra pixel from the contents
3848         https://bugs.webkit.org/show_bug.cgi?id=81830
3849
3850         Reviewed by Kenneth Rohde Christiansen.
3851
3852         TextureMapperGL applied a 1-offset that was covering for another bug,
3853         which was already fixed.
3854
3855         No new tests, this would be tested once we test GL rendering results.
3856
3857         * platform/graphics/texmap/TextureMapperGL.cpp:
3858         (WebCore::TextureMapperGLData::SharedGLData::scissorClip):
3859
3860 2012-03-22  W. James MacLean  <wjmaclean@chromium.org>
3861
3862         Rename touchpad fling curve, add curve parameters to constructor.
3863         https://bugs.webkit.org/show_bug.cgi?id=81820
3864
3865         Reviewed by Adrienne Walker.
3866
3867         Covered by existing unit tests.
3868
3869         * GNUmakefile.list.am:
3870         * WebCore.gypi:
3871         * platform/ScrollAnimatorNone.cpp:
3872         (WebCore::ScrollAnimatorNone::fireUpAnAnimation):
3873         * platform/TouchpadFlingPlatformGestureCurve.cpp: Renamed from Source/WebCore/platform/TouchFlingPlatformGestureCurve.cpp.
3874         (WebCore):
3875         (WebCore::TouchpadFlingPlatformGestureCurve::create):
3876         (WebCore::TouchpadFlingPlatformGestureCurve::TouchpadFlingPlatformGestureCurve):
3877         (WebCore::TouchpadFlingPlatformGestureCurve::~TouchpadFlingPlatformGestureCurve):
3878         (WebCore::TouchpadFlingPlatformGestureCurve::apply):
3879         * platform/TouchpadFlingPlatformGestureCurve.h: Renamed from Source/WebCore/platform/TouchFlingPlatformGestureCurve.h.
3880         (WebCore):
3881         (TouchpadFlingPlatformGestureCurve):
3882
3883 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
3884
3885         Web Inspector: make CSS and JavaScript files editable by default.
3886         https://bugs.webkit.org/show_bug.cgi?id=81787
3887
3888         Reviewed by Vsevolod Vlasov.
3889
3890         This change removes cancelEditing and setReadOnly capabilities from source frame.
3891         It removes dblclick handler as well since one does not need to enter editing mode.
3892         It also establishes proper content dispatching so that views are updated with the
3893         resource content. All these are inter-dependent, need to be landed simultaneously.
3894         Drive-by follow up to the r111675 where range is modified prior to the exiting
3895         edit mode.
3896
3897         * inspector/front-end/JavaScriptSourceFrame.js:
3898         (WebInspector.JavaScriptSourceFrame):
3899         (WebInspector.JavaScriptSourceFrame.prototype.requestContent):
3900         (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
3901         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
3902         (WebInspector.JavaScriptSourceFrame.prototype.didEditContent):
3903         (WebInspector.JavaScriptSourceFrame.prototype._lineNumberAfterEditing):
3904         * inspector/front-end/ResourceView.js:
3905         (WebInspector.ResourceSourceFrame):
3906         (WebInspector.ResourceSourceFrame.prototype.suggestedFileName):
3907         (WebInspector.ResourceSourceFrame.prototype._contentChanged):
3908         (WebInspector.EditableResourceSourceFrame.prototype.canEditSource):
3909         (WebInspector.EditableResourceSourceFrame.prototype.editContent.callbackWrapper):
3910         (WebInspector.EditableResourceSourceFrame.prototype.editContent):
3911         (WebInspector.EditableResourceSourceFrame.prototype._contentChanged):
3912         * inspector/front-end/ResourcesPanel.js:
3913         (WebInspector.ResourcesPanel.prototype._innerShowView):
3914         (WebInspector.FrameResourceTreeElement.prototype._appendRevision):
3915         * inspector/front-end/ScriptsPanel.js:
3916         (WebInspector.ScriptsPanel.prototype.setScriptSourceIsDirty):
3917         * inspector/front-end/Settings.js:
3918         (WebInspector.ExperimentsSettings):
3919         * inspector/front-end/SourceFrame.js:
3920         (WebInspector.SourceFrame):
3921         (WebInspector.SourceFrame.prototype.wasShown):
3922         (WebInspector.SourceFrame.prototype.willHide):
3923         (WebInspector.SourceFrame.prototype.beforeTextChanged):
3924         (WebInspector.SourceFrame.prototype.setContent):
3925         (WebInspector.SourceFrame.prototype.commitEditing):
3926         (WebInspector.SourceFrame.prototype.didEditContent):
3927         (WebInspector.SourceFrame.prototype.editContent):
3928         * inspector/front-end/TextPrompt.js:
3929         (WebInspector.TextPrompt.prototype._startEditing):
3930         (WebInspector.TextPrompt.prototype._stopEditing):
3931         * inspector/front-end/TextViewer.js:
3932         (WebInspector.TextViewer):
3933         (WebInspector.TextViewer.prototype._registerShortcuts):
3934         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
3935
3936 2012-03-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3937
3938         [Qt] Enable FAST_MOBILE_SCROLLING when scrolling is delegated.
3939         https://bugs.webkit.org/show_bug.cgi?id=81889
3940
3941         Reviewed by Kenneth Rohde Christiansen.
3942
3943         On the Qt platform only enable the fast mobile scroll feature when scrolling is delegated.
3944
3945         * rendering/RenderObject.cpp:
3946         (WebCore::RenderObject::styleWillChange):
3947
3948 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
3949
3950         Web Inspector: dispatch styleSheetChanged event synchronously.
3951         https://bugs.webkit.org/show_bug.cgi?id=81892
3952
3953         Reviewed by Vsevolod Vlasov.
3954
3955         Today, backend generates stylesheet change event synchronously from within set* command.
3956         But CSSStyleModel defers its dispatching until the stylesheet content is available. This
3957         prevents us from ignoring update events from within commands that initiated those updates.
3958
3959         This change makes stylesheet change event dispatch synchronously and delegates stylesheet
3960         content fetching to the event client.
3961
3962         * inspector/front-end/CSSStyleModel.js:
3963         (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged):
3964         (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
3965         (WebInspector.CSSStyleModelResourceBinding.prototype.setContent):
3966         (WebInspector.CSSStyleModelResourceBinding.prototype._innerSetContent.callbackWrapper):
3967         (WebInspector.CSSStyleModelResourceBinding.prototype._innerSetContent):
3968         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged.callback):
3969         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged):
3970         (WebInspector.CSSStyleModelResourceBinding.prototype._innerStyleSheetChanged):
3971
3972 2012-03-21  Ian Vollick  <vollick@chromium.org>
3973
3974         [chromium] timing functions are getting incorrectly applied for accelerated css transitions
3975         https://bugs.webkit.org/show_bug.cgi?id=81692
3976
3977         Reviewed by Adrienne Walker.
3978
3979         Tested in CCLayerTreeHostTestAddAnimationWithTimingFunction
3980
3981         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
3982
3983 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
3984
3985         Web Inspector: allow on-hover popover while in edit mode.
3986         https://bugs.webkit.org/show_bug.cgi?id=81898
3987
3988         Reviewed by Vsevolod Vlasov.
3989
3990         This change allows popover while in-edit mode, hides it upon Esc. It also introduces anchorOverride
3991         concept in ObjectPopoverHelper that allows dynamically switching the anchor (say if we want to highlight anchor itself).
3992
3993         * inspector/front-end/DetailedHeapshotView.js:
3994         * inspector/front-end/ElementsPanel.js:
3995         * inspector/front-end/JavaScriptSourceFrame.js:
3996         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover.showObjectPopover):
3997         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
3998         (WebInspector.JavaScriptSourceFrame.prototype._onKeyDown):
3999         * inspector/front-end/NetworkPanel.js:
4000         * inspector/front-end/ObjectPopoverHelper.js:
4001         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
4002         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
4003         * inspector/front-end/Popover.js:
4004         (WebInspector.PopoverHelper.prototype.isPopoverVisible):
4005         * inspector/front-end/TimelinePanel.js:
4006
4007 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
4008
4009         Web Inspector: breakpoints should shift when line break is inserted in the middle of the line.
4010         https://bugs.webkit.org/show_bug.cgi?id=81896
4011
4012         Reviewed by Vsevolod Vlasov.
4013
4014         There is a bug that collapses selection prior to exiting change mode, we should never
4015         collapse edit area prior committing.
4016
4017         * inspector/front-end/TextEditorModel.js:
4018         (WebInspector.TextEditorModel.endsWithBracketRegex.):
4019         * inspector/front-end/TextViewer.js:
4020         (WebInspector.TextViewer):
4021         (WebInspector.TextEditorMainPanel.prototype.highlightLine):
4022         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo.callback):
4023         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
4024
4025 2012-03-22  Zoltan Herczeg  <zherczeg@webkit.org>
4026
4027         Merge SVGImageBufferTools to SVGRenderingContext
4028         https://bugs.webkit.org/show_bug.cgi?id=81890
4029
4030         Reviewed by Nikolas Zimmermann.
4031
4032         Copy the code to SVGRenderingContext and delete
4033         SVGImageBufferTools[.cpp.h]. Update build systems,
4034         no functionality change. This is the first step
4035         towards making SVGImageBufferTools stageful.
4036
4037         Existing tests cover this issue.
4038
4039         * CMakeLists.txt:
4040         * GNUmakefile.list.am:
4041         * Target.pri:
4042         * WebCore.gypi:
4043         * WebCore.xcodeproj/project.pbxproj:
4044         * platform/graphics/filters/FETile.cpp:
4045         (WebCore::FETile::platformApplySoftware):
4046         * rendering/svg/RenderSVGAllInOne.cpp:
4047         * rendering/svg/RenderSVGInlineText.cpp:
4048         (WebCore::RenderSVGInlineText::computeNewScaledFontForStyle):
4049         * rendering/svg/RenderSVGResourceClipper.cpp:
4050         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
4051         (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
4052         * rendering/svg/RenderSVGResourceFilter.cpp:
4053         (WebCore::RenderSVGResourceFilter::applyResource):
4054         * rendering/svg/RenderSVGResourceGradient.cpp:
4055         (WebCore::createMaskAndSwapContextForTextGradient):
4056         (WebCore::clipToTextMask):
4057         * rendering/svg/RenderSVGResourceMasker.cpp:
4058         (WebCore::RenderSVGResourceMasker::applyResource):
4059         (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
4060         * rendering/svg/RenderSVGResourcePattern.cpp:
4061         (WebCore::RenderSVGResourcePattern::applyResource):
4062         (WebCore::RenderSVGResourcePattern::createTileImage):