REGRESSION(r105396): drag state is not cleared after each drag
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-01-23  Ryosuke Niwa  <rniwa@webkit.org>
2
3         REGRESSION(r105396): drag state is not cleared after each drag
4         https://bugs.webkit.org/show_bug.cgi?id=76878
5
6         Reviewed by Alexey Proskuryakov.
7
8         Revert a part of r105396 that made performDragAndDrop not call clearDragState
9         when the default action was not prevented since it caused a regression.
10
11         I'm pretty certain always calling clearDragState in performDragAndDrop is wrong
12         but I can't think of a test case where this becomes a problem at the moment.
13         Since this area is not well tested, revert the change instead of making further
14         changes to the code base.
15
16         Tests: fast/events/clear-drag-state.html
17                fast/events/clear-edit-drag-state.html
18
19         * page/EventHandler.cpp:
20         (WebCore::EventHandler::performDragAndDrop):
21
22 2012-01-23  Thiago Marcos P. Santos  <tmpsantos@gmail.com>
23
24         Fixed typo in exception messages
25         https://bugs.webkit.org/show_bug.cgi?id=76710
26
27         Reviewed by Alexey Proskuryakov.
28
29         * dom/DOMCoreException.cpp:
30         * fileapi/FileException.cpp:
31         * storage/SQLTransaction.cpp:
32         (WebCore::SQLTransaction::openTransactionAndPreflight):
33         (WebCore::SQLTransaction::postflightAndCommit):
34         * xml/XMLHttpRequestException.cpp:
35
36 2012-01-18  David Levin  <levin@chromium.org>
37
38         Allow delayed DC allocation in HWndDC.
39         https://bugs.webkit.org/show_bug.cgi?id=76737
40
41         Reviewed by Adam Roben.
42
43         No new functionality exposed so no new tests.
44
45         * platform/win/HWndDC.h: Changed this slightly to allow
46         for allocating a window DC after the initial creation since
47         this pattern occurrs in several places so this makes it easy to
48         replace them in an upcoming change.
49         (WebCore::HWndDC::HWndDC):
50         (WebCore::HWndDC::~HWndDC):
51         (WebCore::HWndDC::setHWnd):
52         (WebCore::HWndDC::clear):
53
54 2012-01-23  Arko Saha  <nghq36@motorola.com>
55
56         MicroData: Compilation error while building Webkit with --microdata.
57         https://bugs.webkit.org/show_bug.cgi?id=76703
58
59         Reviewed by Hajime Morita.
60
61         * dom/MicroDataItemList.cpp:
62         (WebCore::MicroDataItemList::MicroDataItemList):
63         (WebCore::MicroDataItemList::~MicroDataItemList):
64         * dom/MicroDataItemList.h:
65         * dom/NodeRareData.h:
66         (WebCore::NodeRareData::properties):
67         * html/HTMLPropertiesCollection.cpp:
68         (WebCore::HTMLPropertiesCollection::create):
69         (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
70         * html/HTMLPropertiesCollection.h:
71
72 2012-01-13  David Levin  <levin@chromium.org>
73
74         [chromium] Convert uses of GetDC to HWndDC.
75         https://bugs.webkit.org/show_bug.cgi?id=76290
76
77         Reviewed by Dmitry Titov.
78
79         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
80         (WebCore::createFontIndirectAndGetWinName):
81         (WebCore::fontContainsCharacter):
82         (WebCore::FontCache::getLastResortFallbackFont):
83         (WebCore::FontCache::getTraitsInFamily):
84         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
85         (WebCore::FontPlatformData::scriptFontProperties):
86         * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
87         (WebCore::FontMap::getAscent):
88         (WebCore::FontMap::getSpaceGlyph):
89         * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
90         (WebCore::fillBMPGlyphs):
91         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
92         (WebCore::SimpleFontData::platformInit):
93         (WebCore::SimpleFontData::determinePitch):
94         (WebCore::SimpleFontData::platformWidthForGlyph):
95         * platform/graphics/chromium/UniscribeHelper.cpp:
96         (WebCore::UniscribeHelper::EnsureCachedDCCreated):
97         * rendering/RenderThemeChromiumWin.cpp:
98         (WebCore::systemFontSize):
99         (WebCore::pointsToPixels):
100
101 2012-01-23  Joe Thomas  <joethomas@motorola.com>
102
103         https://bugs.webkit.org/show_bug.cgi?id=75799
104         Calling intersectsNode on a detached range should throw.
105
106         INVALID_STATE_ERR exception should be thrown if intersectsNode is called on a detached Range.
107
108         Reviewed by Darin Adler.
109
110         Test: fast/dom/Range/range-intersectsNode-exception.html
111
112         * dom/Range.cpp:
113         (WebCore::Range::intersectsNode): Throwing INVALID_STATE_ERR exception if the range is detached.
114
115 2012-01-23  Daniel Cheng  <dcheng@chromium.org>
116
117         Convert DataTransferItem/DataTransferItemList back into an interface class
118         https://bugs.webkit.org/show_bug.cgi?id=76856
119
120         When Qt implemented the DataTransferItemList, a lot of logic was moved into the shared
121         classes since Chromium/Qt happened to implement it the same way. Now that I want to do some
122         refactoring/cleanup work to better implement DataTransferItemList in Chromium, we won't
123         share the same data anymore so it doesn't make sense to keep that code in a common location.
124
125         Reviewed by David Levin.
126
127         Covered by existing tests.
128
129         * CMakeLists.txt:
130         * GNUmakefile.list.am:
131         * Target.pri:
132         * WebCore.gypi:
133         * WebCore.vcproj/WebCore.vcproj:
134         * WebCore.xcodeproj/project.pbxproj:
135         * dom/DataTransferItem.cpp:
136         * dom/DataTransferItem.h:
137         * dom/DataTransferItemList.cpp: Removed.
138         * dom/DataTransferItemList.h:
139         * platform/chromium/ClipboardChromium.cpp:
140         (WebCore::ClipboardChromium::mayUpdateItems):
141         * platform/chromium/DataTransferItemChromium.cpp:
142         (WebCore::DataTransferItemChromium::create):
143         (WebCore::DataTransferItemChromium::DataTransferItemChromium):
144         (WebCore::DataTransferItemChromium::getAsString):
145         (WebCore::DataTransferItemChromium::getAsFile):
146         (WebCore::DataTransferItemChromium::clipboardChromium):
147         * platform/chromium/DataTransferItemChromium.h:
148         (WebCore::DataTransferItemChromium::kind):
149         (WebCore::DataTransferItemChromium::type):
150         * platform/chromium/DataTransferItemListChromium.cpp:
151         (WebCore::DataTransferItemListChromium::DataTransferItemListChromium):
152         * platform/chromium/DataTransferItemListChromium.h:
153         * platform/qt/DataTransferItemListQt.cpp:
154         (WebCore::DataTransferItemListQt::DataTransferItemListQt):
155         (WebCore::DataTransferItemListQt::length):
156         (WebCore::DataTransferItemListQt::item):
157         (WebCore::DataTransferItemListQt::deleteItem):
158         (WebCore::DataTransferItemListQt::clear):
159         (WebCore::DataTransferItemListQt::add):
160         * platform/qt/DataTransferItemListQt.h:
161         * platform/qt/DataTransferItemQt.cpp:
162         (WebCore::DataTransferItemQt::create):
163         (WebCore::DataTransferItemQt::DataTransferItemQt):
164         (WebCore::DataTransferItemQt::getAsString):
165         (WebCore::DataTransferItemQt::getAsFile):
166         * platform/qt/DataTransferItemQt.h:
167         (WebCore::DataTransferItemQt::kind):
168         (WebCore::DataTransferItemQt::type):
169
170 2012-01-23  Andreas Kling  <awesomekling@apple.com>
171
172         Unreviewed buildfix for ENABLE(MUTATION_OBSERVERS) following r105642.
173
174         * css/CSSMutableStyleDeclaration.cpp:
175
176 2012-01-23  Philip Rogers  <pdr@google.com>
177
178         Update uniteIfNonZero to use isZero.
179         https://bugs.webkit.org/show_bug.cgi?id=76637
180
181         Reviewed by Darin Adler.
182
183         No new tests. (I found no existing codepath that would be affected by
184         this change but I think this change is still valuable in preventing
185         future bugs.)
186
187         * platform/graphics/FloatRect.cpp:
188         (WebCore::FloatRect::uniteIfNonZero):
189
190         The following change is a minor followup to
191         https://bugs.webkit.org/show_bug.cgi?id=76177#c12 and is not directly
192         related to the rest of this patch.
193         * rendering/svg/SVGRenderSupport.cpp:
194         (WebCore::SVGRenderSupport::computeContainerBoundingBoxes):
195
196 2012-01-23  Antti Koivisto  <antti@apple.com>
197
198         Eliminate CSSElementStyleDeclaration
199         https://bugs.webkit.org/show_bug.cgi?id=76848
200
201         Reviewed by Andreas Kling.
202
203         CSSElementStyleDeclaration has little functionality. It can merge with CSSMutableStyleDeclaration simplifying the code.
204         
205         Having an element parent is mutually exclusive with having a css rule parent. We can keep them in a union. This also
206         shrinks all inline style declarations by one pointer.
207
208         * CMakeLists.txt:
209         * GNUmakefile.list.am:
210         * Target.pri:
211         * WebCore.gypi:
212         * WebCore.vcproj/WebCore.vcproj:
213         * WebCore.xcodeproj/project.pbxproj:
214         * bindings/js/JSDOMBinding.h:
215         (WebCore::root):
216         * css/CSSAllInOne.cpp:
217         * css/CSSElementStyleDeclaration.cpp: Removed.
218         * css/CSSElementStyleDeclaration.h: Removed.
219         * css/CSSMutableStyleDeclaration.cpp:
220         (WebCore::CSSMutableStyleDeclaration::setNeedsStyleRecalc):
221         * css/CSSMutableStyleDeclaration.h:
222         (WebCore::CSSMutableStyleDeclaration::createInline):
223         (WebCore::CSSMutableStyleDeclaration::createForSVGFontFaceElement):
224         (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
225         * css/CSSStyleDeclaration.cpp:
226         (WebCore::CSSStyleDeclaration::CSSStyleDeclaration):
227         (WebCore::CSSStyleDeclaration::parentStyleSheet):
228         
229             Merge the CSSElementStyleDeclaration::styleSheet() logic here.
230         
231         * css/CSSStyleDeclaration.h:
232         (WebCore::CSSStyleDeclaration::parentRule):
233         (WebCore::CSSStyleDeclaration::clearParentRule):
234         (WebCore::CSSStyleDeclaration::parentElement):
235         (WebCore::CSSStyleDeclaration::clearParentElement):
236         * css/CSSStyleRule.cpp:
237         (WebCore::CSSStyleRule::setSelectorText):
238         
239             CSSStyleRule's style declaration can't have isElementStyleDeclaration set, the dead code can be removed.
240             This is asserted in setDeclaration() and again implicitly in the destructor (by clearParentRule()).
241         
242         * dom/StyledElement.cpp:
243         (WebCore::StyledElement::createInlineStyleDecl):
244         (WebCore::StyledElement::destroyInlineStyleDecl):
245         (WebCore::StyledElement::ensureInlineStyleDecl):
246         (WebCore::StyledElement::copyNonAttributeProperties):
247         * dom/StyledElement.h:
248         (WebCore::StyledElement::inlineStyleDecl):
249         * editing/ApplyStyleCommand.cpp:
250         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
251         (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
252         * editing/DeleteButtonController.cpp:
253         (WebCore::DeleteButtonController::createDeletionUI):
254         * html/ValidationMessage.cpp:
255         (WebCore::adjustBubblePosition):
256         * html/shadow/MediaControlElements.cpp:
257         (WebCore::MediaControlPanelElement::setPosition):
258         (WebCore::MediaControlPanelElement::resetPosition):
259         (WebCore::MediaControlPanelElement::makeOpaque):
260         (WebCore::MediaControlPanelElement::makeTransparent):
261         * html/shadow/SliderThumbElement.cpp:
262         (WebCore::TrackLimiterElement::create):
263         * svg/SVGFontFaceElement.cpp:
264         (WebCore::SVGFontFaceElement::SVGFontFaceElement):
265
266 2012-01-23  Benjamin Poulain  <bpoulain@apple.com>
267
268         Use OVERRIDE for PopupMenuClient's implementations
269         https://bugs.webkit.org/show_bug.cgi?id=76774
270
271         Reviewed by Darin Adler.
272
273         * rendering/RenderMenuList.h: Also sort the methods to the same
274         order as PopupMenuClient.
275         * rendering/RenderTextControlSingleLine.h:
276
277 2012-01-23  Xianzhu Wang  <wangxianzhu@chromium.org>
278
279         Basic enhancements to StringBuilder
280         https://bugs.webkit.org/show_bug.cgi?id=67081
281
282         These changes are because we explicitly disallowed StringBuilder's
283         copy constructor and assignment operator, and the change of return
284         type of StringBuilder::toString().
285
286         Reviewed by Darin Adler.
287
288         No new tests. All layout tests and unit tests should run as before.
289
290         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
291         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::setUpCookiesForQuickTime):
292         * svg/SVGPathStringBuilder.h:
293         (WebCore::SVGPathStringBuilder::cleanup):
294
295 2012-01-23  W. James MacLean  <wjmaclean@chromium.org>
296
297         [chromium] Add WebSolidColorLayer interface to draw non-textured color layers from Aura.
298         https://bugs.webkit.org/show_bug.cgi?id=75732
299
300         Reviewed by James Robinson.
301
302         Add WebSolidColorLayer to paint solid-color layers without a backing texture.
303
304         Test: unit test for CCSolidColorLayerImpl.
305
306         * WebCore.gypi:
307         * platform/graphics/chromium/SolidColorLayerChromium.cpp: Added.
308         (WebCore::SolidColorLayerChromium::createCCLayerImpl):
309         (WebCore::SolidColorLayerChromium::create):
310         (WebCore::SolidColorLayerChromium::SolidColorLayerChromium):
311         (WebCore::SolidColorLayerChromium::~SolidColorLayerChromium):
312         * platform/graphics/chromium/SolidColorLayerChromium.h: Added.
313         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp: Added.
314         (WebCore::CCSolidColorLayerImpl::CCSolidColorLayerImpl):
315         (WebCore::CCSolidColorLayerImpl::~CCSolidColorLayerImpl):
316         (WebCore::CCSolidColorLayerImpl::quadTransform):
317         (WebCore::CCSolidColorLayerImpl::appendQuads):
318         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h: Added.
319         (WebCore::CCSolidColorLayerImpl::create):
320         (WebCore::CCSolidColorLayerImpl::layerTypeAsString):
321
322 2012-01-23  Antti Koivisto  <antti@apple.com>
323
324         Attempt to fix Qt build.
325     
326         Not reviewed.
327
328         * css/CSSElementStyleDeclaration.cpp:
329         * css/CSSElementStyleDeclaration.h:
330         (WebCore::CSSElementStyleDeclaration::createForSVGFontFaceElement):
331
332 2012-01-23  Andreas Kling  <awesomekling@apple.com>
333
334         Move m_rootEditableElementForSelectionOnMouseDown off of HTMLAnchorElement.
335         <http://webkit.org/b/76833>
336
337         Reviewed by Antti Koivisto.
338
339         Move HTMLAnchorElement::m_rootEditableElementForSelectionOnMouseDown to a rare
340         data-style hashmap, effectively shrinking HTMLAnchorElement by one CPU word.
341
342         The pointer is only used during interactive event handling, so it shouldn't have
343         any noticeable effects on web performance.
344
345         This reduces memory consumption by 256 kB (on 64-bit) when viewing the full
346         HTML5 spec at <http://whatwg.org/c>.
347
348         * html/HTMLAnchorElement.cpp:
349         (WebCore::HTMLAnchorElement::HTMLAnchorElement):
350         (WebCore::HTMLAnchorElement::~HTMLAnchorElement):
351         (WebCore::HTMLAnchorElement::defaultEventHandler):
352         (WebCore::HTMLAnchorElement::treatLinkAsLiveForEventType):
353         (WebCore::rootEditableElementMap):
354         (WebCore::HTMLAnchorElement::rootEditableElementForSelectionOnMouseDown):
355         (WebCore::HTMLAnchorElement::setRootEditableElementForSelectionOnMouseDown):
356         * html/HTMLAnchorElement.h:
357
358 2012-01-23  Antti Koivisto  <antti@apple.com>
359
360         Eliminate CSSElementStyleDeclaration subclasses
361         https://bugs.webkit.org/show_bug.cgi?id=76827
362
363         Reviewed by Andreas Kling.
364
365         CSSInlineStyleDeclaration and FontFaceStyleDeclaration serve no real purpose.
366
367         * GNUmakefile.list.am:
368         * Target.pri:
369         * WebCore.gypi:
370         * WebCore.vcproj/WebCore.vcproj:
371         * WebCore.xcodeproj/project.pbxproj:
372         * css/CSSElementStyleDeclaration.cpp:
373         (WebCore::CSSElementStyleDeclaration::createForSVGFontFaceElement):
374         (WebCore::CSSElementStyleDeclaration::styleSheet):
375         * css/CSSElementStyleDeclaration.h:
376         (WebCore::CSSElementStyleDeclaration::createInline):
377         (WebCore::toCSSElementStyleDeclaration):
378         * css/CSSInlineStyleDeclaration.h: Removed.
379         * css/CSSMutableStyleDeclaration.cpp:
380         * dom/StyledElement.cpp:
381         (WebCore::StyledElement::createInlineStyleDecl):
382         (WebCore::StyledElement::ensureInlineStyleDecl):
383         (WebCore::StyledElement::copyNonAttributeProperties):
384         * dom/StyledElement.h:
385         (WebCore::StyledElement::inlineStyleDecl):
386         * editing/ApplyStyleCommand.cpp:
387         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
388         (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
389         * editing/DeleteButtonController.cpp:
390         (WebCore::DeleteButtonController::createDeletionUI):
391         * html/ValidationMessage.cpp:
392         (WebCore::adjustBubblePosition):
393         * html/shadow/MediaControlElements.cpp:
394         (WebCore::MediaControlPanelElement::setPosition):
395         (WebCore::MediaControlPanelElement::resetPosition):
396         (WebCore::MediaControlPanelElement::makeOpaque):
397         (WebCore::MediaControlPanelElement::makeTransparent):
398         * html/shadow/SliderThumbElement.cpp:
399         (WebCore::TrackLimiterElement::create):
400         * svg/SVGFontFaceElement.cpp:
401         (WebCore::SVGFontFaceElement::SVGFontFaceElement):
402
403 2012-01-23  Pavel Feldman  <pfeldman@google.com>
404
405         Not reviewed: annotate inspector's js so that it compiled.
406
407         * inspector/front-end/ElementsTreeOutline.js:
408         * inspector/front-end/TextPrompt.js:
409         (WebInspector.TextPrompt.SuggestBox.prototype.upKeyPressed):
410         (WebInspector.TextPrompt.SuggestBox.prototype.downKeyPressed):
411
412 2012-01-23  Philippe Normand  <pnormand@igalia.com>
413
414         [GStreamer] fix WebAudio build after r105431
415         https://bugs.webkit.org/show_bug.cgi?id=76819
416
417         Reviewed by Martin Robinson.
418
419         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
420         (WebCore::copyGstreamerBuffersToAudioChannel): Use mutableData()
421         when copying.
422         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
423         (webKitWebAudioSrcLoop): Drop constness when setting the buffer
424         data pointer.
425
426 2012-01-23  Pavel Feldman  <pfeldman@google.com>
427
428         Web Inspector: add touch events to the event listeners list.
429         https://bugs.webkit.org/show_bug.cgi?id=76830
430
431         Reviewed by Yury Semikhatsky.
432
433         * English.lproj/localizedStrings.js:
434         * inspector/InjectedScriptSource.js:
435         (.):
436         * inspector/front-end/BreakpointsSidebarPane.js:
437         (WebInspector.EventListenerBreakpointsSidebarPane):
438
439 2012-01-23  Pavel Feldman  <pfeldman@google.com>
440
441         Web Inspector: inspector close button is missing in the dock-to-right mode.
442         https://bugs.webkit.org/show_bug.cgi?id=76829
443
444         Reviewed by Timothy Hatcher.
445
446         * inspector/front-end/inspector.js:
447         (WebInspector.set attached):
448         (WebInspector.get _setCompactMode):
449
450 2012-01-23  Vsevolod Vlasov  <vsevik@chromium.org>
451
452         Web Inspector: IndexedDBModel should keep track of requests sent to the backend.
453         https://bugs.webkit.org/show_bug.cgi?id=76705
454
455         Reviewed by Pavel Feldman.
456
457         * inspector/Inspector.json:
458         * inspector/InspectorIndexedDBAgent.cpp:
459         (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
460         * inspector/InspectorIndexedDBAgent.h:
461         * inspector/front-end/IndexedDBModel.js:
462         (WebInspector.IndexedDBModel):
463         (WebInspector.IndexedDBModel.prototype._frameDetached):
464         (WebInspector.IndexedDBModel.prototype._reset):
465         (WebInspector.IndexedDBModel.prototype._loadDatabaseNamesForFrame):
466         (WebInspector.IndexedDBRequestManager):
467         (WebInspector.IndexedDBRequestManager.prototype.requestDatabaseNamesForFrame.innerCallback):
468         (WebInspector.IndexedDBRequestManager.prototype.requestDatabaseNamesForFrame):
469         (WebInspector.IndexedDBRequestManager.prototype._databaseNamesLoaded):
470         (WebInspector.IndexedDBRequestManager.prototype._requestId):
471         (WebInspector.IndexedDBRequestManager.prototype._frameDetached):
472         (WebInspector.IndexedDBRequestManager.prototype._reset):
473         (WebInspector.IndexedDBRequestManager.DatabasesForFrameRequest):
474         (WebInspector.IndexedDBDispatcher):
475         (WebInspector.IndexedDBDispatcher.prototype.databaseNamesLoaded):
476
477 2012-01-23  Pavel Feldman  <pfeldman@google.com>
478
479         Web Inspector: Inspecting an element inside an iframe no longer works
480         https://bugs.webkit.org/show_bug.cgi?id=76808
481
482         Reviewed by Timothy Hatcher.
483
484         Test: http/tests/inspector/inspect-element.html
485
486         * inspector/InspectorDOMAgent.cpp:
487         (WebCore::InspectorDOMAgent::innerParentNode):
488         * inspector/front-end/DOMAgent.js:
489         (WebInspector.DOMNode.prototype.getChildNodes.mycallback):
490         (WebInspector.DOMNode.prototype.getChildNodes):
491         (WebInspector.DOMNode.prototype._setChildrenPayload):
492         * inspector/front-end/ElementsTreeOutline.js:
493         (WebInspector.ElementsTreeOutline.prototype._selectedNodeChanged):
494
495 2012-01-23  Andrey Kosyakov  <caseq@chromium.org>
496
497         Web Inspector: response.bodySize in HAR is invalid (negative) for cached resources
498         https://bugs.webkit.org/show_bug.cgi?id=76823
499
500         Reviewed by Yury Semikhatsky.
501
502         - fix response.bodySize for cached resources;
503         Also some drive-by fixes:
504         - pretty-print HAR when exported
505         - proper annotation for JSON.stringify()
506         - de-obfuscate a piece of code in TimelinePanel
507
508         * inspector/front-end/HAREntry.js:
509         (WebInspector.HAREntry.prototype.get responseBodySize):
510         * inspector/front-end/NetworkPanel.js:
511         (WebInspector.NetworkLogView.prototype._exportAll):
512         (WebInspector.NetworkLogView.prototype._exportResource):
513
514 2012-01-23  Mario Sanchez Prada  <msanchez@igalia.com>
515
516         [GTK] Refactor GTK's accessibilitity code to be more modular
517         https://bugs.webkit.org/show_bug.cgi?id=76783
518
519         Reviewed by Martin Robinson.
520
521         New files for the implementation of the AtkAction interface,
522         containing the related code from WebKitAccessibleWrapperAtk.cpp.
523
524         * accessibility/gtk/WebKitAccessibleInterfaceAction.cpp: Added.
525         (core):
526         (webkitAccessibleActionInterfaceInit):
527         (webkitAccessibleActionDoAction):
528         (webkitAccessibleActionGetNActions):
529         (webkitAccessibleActionGetDescription):
530         (webkitAccessibleActionGetKeybinding):
531         (webkitAccessibleActionGetName):
532         * accessibility/gtk/WebKitAccessibleInterfaceAction.h: Added.
533
534         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
535         related to the implementation of the AtkAction interface.
536
537         Add new files to build files.
538
539         * GNUmakefile.list.am: Add WebKitAccessibleInterfaceAction.[h|cpp].
540         * WebCore.gypi: Ditto.
541
542 2012-01-23  Nikolas Zimmermann  <nzimmermann@rim.com>
543
544         SVG animation repaint issue with image and dynamic clipPath
545         https://bugs.webkit.org/show_bug.cgi?id=76559
546
547         Reviewed by Zoltan Herczeg.
548
549         Based on patch by Kelly Norton <knorton@google.com>. I extended the patch
550         to correctly handle relative length resolution as well.
551
552         RenderSVGImage doesn't react on setNeedsBoundariesUpdate() calls
553         and thus fails to update its boundaries in some cases.
554
555         The logic is also inconsistent, compared to the other renderers.
556         Fix that properly, by reusing the method used in RenderSVGViewportContainer.
557         Call calculateImageViewport() immediately, after initializing the LayoutRepainter.
558         Previously we resolved the image viewport in RenderSVGImage::updateFromElement. This is
559         wrong, as it queries the frameRect() of the RenderSVGRoot in a state, where the renderer
560         still needs layout, leading to wrong results.
561
562         I turned Kellys manual testcase into a predictable test, see svg/repaint/image-with-clip-path.svg
563         Relative sized image handling is tested in svg/custom/relative-sized-image.xhtml now.
564
565         Tests: svg/custom/relative-sized-image.xhtml
566                svg/repaint/image-with-clip-path.svg
567
568         * rendering/svg/RenderSVGImage.cpp:
569         (WebCore::RenderSVGImage::RenderSVGImage):
570         (WebCore::RenderSVGImage::updateImageViewport):
571         (WebCore::RenderSVGImage::layout):
572         * rendering/svg/RenderSVGImage.h:
573         (WebCore::RenderSVGImage::setNeedsBoundariesUpdate):
574         * svg/SVGImageElement.cpp:
575         (WebCore::SVGImageElement::svgAttributeChanged):
576
577 2012-01-23  Nikolas Zimmermann  <nzimmermann@rim.com>
578
579         <feImage> has problems referencing local elements
580         https://bugs.webkit.org/show_bug.cgi?id=76800
581
582         Reviewed by Zoltan Herczeg.
583
584         <feImage> referencing local elements are currently rendered into an ImageBuffer
585         by SVGFEImageElement, using the local coordinates of the referenced renderer.
586
587         This approach is buggy and should be avoided, by moving the rendering fully
588         into SVGFEImage, which takes care of respecting the correct transformations.
589
590         This fixes <feImage> + local references, which currently breaks two tests in trunk.
591         Covered by existing tests.
592
593         * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
594         (WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion):
595         * svg/SVGFEImageElement.cpp:
596         (WebCore::SVGFEImageElement::build):
597         * svg/graphics/filters/SVGFEImage.cpp:
598         (WebCore::FEImage::FEImage):
599         (WebCore::FEImage::createWithImage):
600         (WebCore::FEImage::createWithIRIReference):
601         (WebCore::FEImage::determineAbsolutePaintRect):
602         (WebCore::FEImage::referencedRenderer):
603         (WebCore::FEImage::platformApplySoftware):
604         (WebCore::FEImage::externalRepresentation):
605         * svg/graphics/filters/SVGFEImage.h:
606         (WebCore::FEImage::~FEImage):
607         * svg/graphics/filters/SVGFilter.h:
608         (WebCore::SVGFilter::absoluteTransform):
609
610 2012-01-23  Nikolas Zimmermann  <nzimmermann@rim.com>
611
612         Not reviewed. Fix Mac build, by exporting a new symbol.
613
614         * WebCore.exp.in:
615
616 2012-01-23  Mario Sanchez Prada  <msanchez@igalia.com>
617
618         [GTK] Refactor GTK's accessibilitity code to be more modular
619         https://bugs.webkit.org/show_bug.cgi?id=76783
620
621         Reviewed by Martin Robinson.
622
623         Move common function returnString() from the wrapper and
624         hyperlink implementations to a new utility file.
625
626         * accessibility/gtk/WebKitAccessibleUtil.cpp: Added.
627         (returnString): Taken from WebKitAccessibleWrapperAtk.cpp and
628         WebKitAccessibleHyperlink.cpp
629         * accessibility/gtk/WebKitAccessibleUtil.h: Added.
630
631         * accessibility/gtk/WebKitAccessibleHyperlink.cpp: Remove local
632         implementation of returnString.
633         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Ditto.
634
635         Add new files to build files.
636
637         * GNUmakefile.list.am: Add WebKitAccessibleUtil.[h|cpp].
638         * WebCore.gypi: Ditto.
639
640 2012-01-23  Mario Sanchez Prada  <msanchez@igalia.com>
641
642         [GTK] Refactor GTK's accessibilitity code to be more modular
643         https://bugs.webkit.org/show_bug.cgi?id=76783
644
645         Reviewed by Martin Robinson.
646
647         Fix typo in class struct (parent class field had the wrong type),
648         fix coding style issues and update date in headers.
649
650         * accessibility/gtk/WebKitAccessibleHyperlink.cpp:
651         * accessibility/gtk/WebKitAccessibleHyperlink.h:
652
653 2012-01-23  Mario Sanchez Prada  <msanchez@igalia.com>
654
655         [GTK] Refactor GTK's accessibilitity code to be more modular
656         https://bugs.webkit.org/show_bug.cgi?id=76783
657
658         Reviewed by Martin Robinson.
659
660         Rename WebKitAccessible's public functions to follow WebKit's
661         coding style and update callers.
662
663         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
664         (webkitAccessibleNew): Renamed from webkit_accessible_new.
665         (webkitAccessibleGetAccessibilityObject): Likewise.
666         (webkitAccessibleDetach):Likewise.
667         (webkitAccessibleGetFocusedElement): Likewise.
668         * accessibility/gtk/WebKitAccessibleWrapperAtk.h:
669
670         Update calls to WebKitAccessible's public functions.
671
672         * accessibility/gtk/AXObjectCacheAtk.cpp:
673         (WebCore::AXObjectCache::detachWrapper): Update call.
674         (WebCore::AXObjectCache::attachWrapper): Ditto.
675         * accessibility/gtk/WebKitAccessibleHyperlink.cpp:
676         (core): Update call.
677
678 2012-01-19  Kenichi Ishibashi  <bashi@chromium.org>
679
680         WebKit fails IETC composition event types
681         https://bugs.webkit.org/show_bug.cgi?id=76690
682
683         Reviewed by Ryosuke Niwa.
684
685         Dispatches at least one compositionupdate event.
686         The spec(*) says that a composition session includes one or more
687         compositionupdate event(s).
688         Other major browsers (Firefox and IE) don't populate the data attribute
689         of the compositionstart event, but we set the given text in the data
690         attribute to minimize the effect of this change.
691
692         (*) http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-compositionevents
693
694         Updated existing test: fast/fast/events/ime-composition-events-001.html.
695
696         * editing/Editor.cpp:
697         (WebCore::Editor::setComposition):
698
699 2012-01-22  Mario Sanchez Prada  <msanchez@igalia.com>
700
701         [GTK] Refactor GTK's accessibilitity code to be more modular
702         https://bugs.webkit.org/show_bug.cgi?id=76783
703
704         Reviewed by Martin Robinson.
705
706         Rename the file for the ATK AccessibilityObject wrapper to be more
707         coherent with the rest of the files in the same directory.
708
709         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Renamed from
710         Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp.
711         (fallbackObject):
712         (returnString):
713         (core):
714         (webkit_accessible_get_name):
715         (webkit_accessible_get_description):
716         (setAtkRelationSetFromCoreObject):
717         (isRootObject):
718         (atkParentOfRootObject):
719         (webkit_accessible_get_parent):
720         (getNChildrenForTable):
721         (webkit_accessible_get_n_children):
722         (getChildForTable):
723         (webkit_accessible_ref_child):
724         (getIndexInParentForCellInRow):
725         (webkit_accessible_get_index_in_parent):
726         (addAttributeToSet):
727         (webkit_accessible_get_attributes):
728         (atkRole):
729         (webkit_accessible_get_role):
730         (selectionBelongsToObject):
731         (isTextWithCaret):
732         (setAtkStateSetFromCoreObject):
733         (webkit_accessible_ref_state_set):
734         (webkit_accessible_ref_relation_set):
735         (webkit_accessible_init):
736         (webkit_accessible_finalize):
737         (webkit_accessible_class_init):
738         (webkit_accessible_get_type):
739         (webkit_accessible_action_do_action):
740         (webkit_accessible_action_get_n_actions):
741         (webkit_accessible_action_get_description):
742         (webkit_accessible_action_get_keybinding):
743         (webkit_accessible_action_get_name):
744         (atk_action_interface_init):
745         (listObjectForSelection):
746         (optionFromList):
747         (optionFromSelection):
748         (webkit_accessible_selection_add_selection):
749         (webkit_accessible_selection_clear_selection):
750         (webkit_accessible_selection_ref_selection):
751         (webkit_accessible_selection_get_selection_count):
752         (webkit_accessible_selection_is_child_selected):
753         (webkit_accessible_selection_remove_selection):
754         (webkit_accessible_selection_select_all_selection):
755         (atk_selection_interface_init):
756         (utf8Substr):
757         (convertUniCharToUTF8):
758         (textForRenderer):
759         (textForObject):
760         (webkit_accessible_text_get_text):
761         (getGailTextUtilForAtk):
762         (getPangoLayoutForAtk):
763         (webkit_accessible_text_get_text_after_offset):
764         (webkit_accessible_text_get_text_at_offset):
765         (webkit_accessible_text_get_text_before_offset):
766         (webkit_accessible_text_get_character_at_offset):
767         (webkit_accessible_text_get_caret_offset):
768         (baselinePositionForRenderObject):
769         (getAttributeSetForAccessibilityObject):
770         (compareAttribute):
771         (attributeSetDifference):
772         (accessibilityObjectLength):
773         (getAccessibilityObjectForOffset):
774         (getRunAttributesFromAccesibilityObject):
775         (webkit_accessible_text_get_run_attributes):
776         (webkit_accessible_text_get_default_attributes):
777         (textExtents):
778         (webkit_accessible_text_get_character_extents):
779         (webkit_accessible_text_get_range_extents):
780         (webkit_accessible_text_get_character_count):
781         (webkit_accessible_text_get_offset_at_point):
782         (getSelectionOffsetsForObject):
783         (webkit_accessible_text_get_n_selections):
784         (webkit_accessible_text_get_selection):
785         (webkit_accessible_text_add_selection):
786         (webkit_accessible_text_set_selection):
787         (webkit_accessible_text_remove_selection):
788         (webkit_accessible_text_set_caret_offset):
789         (atk_text_interface_init):
790         (webkit_accessible_editable_text_set_run_attributes):
791         (webkit_accessible_editable_text_set_text_contents):
792         (webkit_accessible_editable_text_insert_text):
793         (webkit_accessible_editable_text_copy_text):
794         (webkit_accessible_editable_text_cut_text):
795         (webkit_accessible_editable_text_delete_text):
796         (webkit_accessible_editable_text_paste_text):
797         (atk_editable_text_interface_init):
798         (contentsToAtk):
799         (atkToContents):
800         (webkit_accessible_component_ref_accessible_at_point):
801         (webkit_accessible_component_get_extents):
802         (webkit_accessible_component_grab_focus):
803         (atk_component_interface_init):
804         (webkit_accessible_image_get_image_position):
805         (webkit_accessible_image_get_image_description):
806         (webkit_accessible_image_get_image_size):
807         (atk_image_interface_init):
808         (cell):
809         (cellIndex):
810         (cellAtIndex):
811         (webkit_accessible_table_ref_at):
812         (webkit_accessible_table_get_index_at):
813         (webkit_accessible_table_get_column_at_index):
814         (webkit_accessible_table_get_row_at_index):
815         (webkit_accessible_table_get_n_columns):
816         (webkit_accessible_table_get_n_rows):
817         (webkit_accessible_table_get_column_extent_at):
818         (webkit_accessible_table_get_row_extent_at):
819         (webkit_accessible_table_get_column_header):
820         (webkit_accessible_table_get_row_header):
821         (webkit_accessible_table_get_caption):
822         (webkit_accessible_table_get_column_description):
823         (webkit_accessible_table_get_row_description):
824         (atk_table_interface_init):
825         (webkitAccessibleHypertextGetLink):
826         (webkitAccessibleHypertextGetNLinks):
827         (webkitAccessibleHypertextGetLinkIndex):
828         (atkHypertextInterfaceInit):
829         (webkitAccessibleHyperlinkImplGetHyperlink):
830         (atkHyperlinkImplInterfaceInit):
831         (documentAttributeValue):
832         (webkit_accessible_document_get_attribute_value):
833         (webkit_accessible_document_get_attributes):
834         (webkit_accessible_document_get_locale):
835         (atk_document_interface_init):
836         (webkitAccessibleValueGetCurrentValue):
837         (webkitAccessibleValueGetMaximumValue):
838         (webkitAccessibleValueGetMinimumValue):
839         (webkitAccessibleValueSetCurrentValue):
840         (webkitAccessibleValueGetMinimumIncrement):
841         (atkValueInterfaceInit):
842         (GetAtkInterfaceTypeFromWAIType):
843         (getInterfaceMaskFromObject):
844         (getUniqueAccessibilityTypeName):
845         (getAccessibilityTypeFromObject):
846         (webkit_accessible_new):
847         (webkit_accessible_get_accessibility_object):
848         (webkit_accessible_detach):
849         (webkit_accessible_get_focused_element):
850         (objectFocusedAndCaretOffsetUnignored):
851         * accessibility/gtk/WebKitAccessibleWrapperAtk.h: Renamed from
852         Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.h.
853
854         Update the include for the AccessibilityObject wrapper header.
855
856         * accessibility/gtk/AXObjectCacheAtk.cpp: Update include.
857         * accessibility/gtk/WebKitAccessibleHyperlink.cpp: Ditto.
858         * accessibility/gtk/WebKitAccessibleHyperlink.h: Ditto.
859         * editing/gtk/FrameSelectionGtk.cpp:
860
861         Update filename for the ATK wrapper in build files.
862
863         * GNUmakefile.list.am: Updated.
864         * WebCore.gypi: Updated.
865
866 2012-01-20  Pavel Feldman  <pfeldman@google.com>
867
868         Web Inspector: PageAgent.open() dosen't belong to the protocol.
869         https://bugs.webkit.org/show_bug.cgi?id=74790
870
871         Reviewed by Yury Semikhatsky.
872
873         * inspector/Inspector.json:
874         * inspector/InspectorFrontendClient.h:
875         * inspector/InspectorFrontendClientLocal.cpp:
876         (WebCore::InspectorFrontendClientLocal::openInNewTab):
877         * inspector/InspectorFrontendClientLocal.h:
878         * inspector/InspectorFrontendHost.cpp:
879         (WebCore::InspectorFrontendHost::openInNewTab):
880         * inspector/InspectorFrontendHost.h:
881         * inspector/InspectorFrontendHost.idl:
882         * inspector/InspectorPageAgent.cpp:
883         (WebCore::InspectorPageAgent::navigate):
884         * inspector/InspectorPageAgent.h:
885         * inspector/front-end/ImageView.js:
886         (WebInspector.ImageView.prototype._openInNewTab):
887         * inspector/front-end/InspectorFrontendHostStub.js:
888         (.WebInspector.InspectorFrontendHostStub.prototype.openInNewTab):
889         * inspector/front-end/NetworkPanel.js:
890         (WebInspector.NetworkDataGridNode.prototype._openInNewTab):
891         * inspector/front-end/ResourcesPanel.js:
892         (WebInspector.FrameResourceTreeElement.prototype.ondblclick):
893         * inspector/front-end/inspector.js:
894         (WebInspector.openResource):
895
896 2012-01-23  Ilya Tikhonovsky  <loislo@chromium.org>
897
898         Web Inspector: DetailedHeapSnapshot: Replace the list of retainers with the expandable tree (to get rid of cycles)
899         https://bugs.webkit.org/show_bug.cgi?id=76813
900
901         Reviewed by Pavel Feldman.
902
903         * English.lproj/localizedStrings.js:
904         * inspector/front-end/DetailedHeapshotGridNodes.js:
905         (WebInspector.HeapSnapshotObjectNode):
906         * inspector/front-end/DetailedHeapshotView.js:
907         (WebInspector.HeapSnapshotContainmentDataGrid.prototype.setDataSource):
908         (WebInspector.HeapSnapshotRetainmentDataGrid):
909         (WebInspector.HeapSnapshotRetainmentDataGrid.prototype.reset):
910         (WebInspector.DetailedHeapshotView.prototype._startRetainersHeaderDragging):
911         * inspector/front-end/HeapSnapshot.js:
912         (WebInspector.HeapSnapshot.prototype.createRetainingEdgesProvider):
913         (WebInspector.HeapSnapshotEdgesProvider):
914         * inspector/front-end/HeapSnapshotProxy.js:
915         (WebInspector.HeapSnapshotProxy.prototype.createEdgesProvider):
916         (WebInspector.HeapSnapshotProxy.prototype.createRetainingEdgesProvider):
917
918 2012-01-20  Andrey Kosyakov  <caseq@chromium.org>
919
920         Web Inspector: HAR pageref attributes are wrong and inconsistent with pages array
921         https://bugs.webkit.org/show_bug.cgi?id=76398
922
923         Reviewed by Pavel Feldman.
924
925         - introduce a notion of LoadPage;
926         - move page load times to LoadPage;
927         - associate network resources with LoadPage;
928         - export pages for all available resoruces to HAR, not just the last page;
929         - use page ids, not document URLs in HAR entries to refer to pages;
930         - use page URL as a title field of a HAR page;
931
932         * inspector/front-end/AuditsPanel.js:
933         (WebInspector.AuditsPanel):
934         * inspector/front-end/HAREntry.js:
935         (WebInspector.HAREntry.prototype.build):
936         (WebInspector.HAREntry.prototype.get responseCompression):
937         (WebInspector.HARLog.prototype._buildPages):
938         (WebInspector.HARLog.prototype._convertPage):
939         (WebInspector.HARLog.prototype._pageEventTime):
940         * inspector/front-end/NetworkLog.js:
941         (WebInspector.NetworkLog):
942         (WebInspector.NetworkLog.prototype._mainFrameNavigated):
943         (WebInspector.NetworkLog.prototype._onResourceStarted):
944         (WebInspector.Page):
945         (WebInspector.Page.prototype.get id):
946         (WebInspector.Page.prototype.get url):
947         (WebInspector.Page.prototype.get contentLoadTime):
948         (WebInspector.Page.prototype.set contentLoadTime):
949         (WebInspector.Page.prototype.get loadTime):
950         (WebInspector.Page.prototype.set loadTime):
951         (WebInspector.Page.prototype.get startTime):
952         (WebInspector.Page.prototype._bindResource):
953         * inspector/front-end/NetworkManager.js:
954         (WebInspector.NetworkDispatcher.prototype.requestServedFromMemoryCache):
955         * inspector/front-end/Resource.js:
956         (WebInspector.Resource.prototype.get page):
957         (WebInspector.Resource.prototype.set page):
958         * inspector/front-end/ResourceTreeModel.js:
959         (WebInspector.ResourceTreeFrame):
960         (WebInspector.ResourceTreeFrame.prototype.get page):
961         (WebInspector.PageDispatcher.prototype.domContentEventFired):
962         (WebInspector.PageDispatcher.prototype.loadEventFired):
963
964 2012-01-22  Mario Sanchez Prada  <msanchez@igalia.com>
965
966         [GTK] ATK text-caret-moved and text-selection-changed events not being emitted
967         https://bugs.webkit.org/show_bug.cgi?id=76069
968
969         Reviewed by Martin Robinson.
970
971         Fix bug introduced with patch for Bug 72830.
972
973         * accessibility/AccessibilityObject.cpp:
974         (WebCore::AccessibilityObject::isDescendantOfObject): New function,
975         to check if an accessibility object is a descendant of other object.
976         (WebCore::AccessibilityObject::isAncestorOfObject): New function,
977         to check if an accessibility object is an ancestor of other object.
978         * accessibility/AccessibilityObject.h:
979
980         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
981         (webkit_accessible_text_get_caret_offset): Make sure to pass the
982         right reference object to objectFocusedAndCaretOffsetUnignored.
983         (objectFocusedAndCaretOffsetUnignored): Use positionBeforeNode
984         instead of firstPositionInNode for calculating the begining of the
985         range used to calculate the offsets. Ensure that the reference
986         object is never a descendant of the actual object being returned.
987
988         * editing/gtk/FrameSelectionGtk.cpp:
989         (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
990         Pass the right accessibility object associated with the current
991         selection to objectFocusedAndCaretOffsetUnignored.
992
993 2012-01-21  David Reveman  <reveman@chromium.org>
994
995         [Chromium] Incremental texture updates are not atomic.
996         https://bugs.webkit.org/show_bug.cgi?id=72672
997
998         Reviewed by Adam Barth.
999
1000         Use a new set of textures for each commit when incremental
1001         texture updates are enabled.
1002
1003         This patch is tested by the following unit test:
1004         - CCLayerTreeHostTestAtomicCommit.runMultiThread
1005
1006         * platform/graphics/chromium/ManagedTexture.cpp:
1007         (WebCore::ManagedTexture::ManagedTexture):
1008         (WebCore::ManagedTexture::steal):
1009         * platform/graphics/chromium/ManagedTexture.h:
1010         * platform/graphics/chromium/TiledLayerChromium.cpp:
1011         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
1012         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1013         (WebCore::CCLayerTreeHost::initialize):
1014         (WebCore::CCLayerTreeHost::commitComplete):
1015         (WebCore::CCLayerTreeHost::deleteTextureAfterCommit):
1016         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1017         (WebCore::CCSettings::CCSettings):
1018         * platform/graphics/chromium/cc/CCProxy.h:
1019         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
1020         (WebCore::CCSingleThreadProxy::partialTextureUpdateCapability):
1021         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1022         (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
1023         (WebCore::CCThreadProxy::partialTextureUpdateCapability):
1024         * platform/graphics/chromium/cc/CCThreadProxy.h:
1025
1026 2012-01-21  Pablo Flouret  <pablof@motorola.com>
1027
1028         Add .url attribute alongside .URL in EventSource and WebSocket to comply with the specs but not break existing usage.
1029         https://bugs.webkit.org/show_bug.cgi?id=40899
1030
1031         Reviewed by Adam Barth.
1032
1033         Tests: fast/eventsource/eventsource-url-attribute.html
1034                http/tests/websocket/tests/hixie76/url-attribute.html
1035                http/tests/websocket/tests/hybi/url-attribute.html
1036
1037         * page/EventSource.idl:
1038         * websockets/WebSocket.idl:
1039
1040 2012-01-21  Sheriff Bot  <webkit.review.bot@gmail.com>
1041
1042         Unreviewed, rolling out r105564.
1043         http://trac.webkit.org/changeset/105564
1044         https://bugs.webkit.org/show_bug.cgi?id=76792
1045
1046         Does not compile on Chromium Mac (Requested by abarth on
1047         #webkit).
1048
1049         * platform/graphics/chromium/ManagedTexture.cpp:
1050         * platform/graphics/chromium/ManagedTexture.h:
1051         * platform/graphics/chromium/TiledLayerChromium.cpp:
1052         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
1053         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1054         (WebCore::CCLayerTreeHost::initialize):
1055         (WebCore::CCLayerTreeHost::commitComplete):
1056         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1057         (WebCore::CCSettings::CCSettings):
1058         * platform/graphics/chromium/cc/CCProxy.h:
1059         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
1060         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1061         (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
1062         * platform/graphics/chromium/cc/CCThreadProxy.h:
1063
1064 2012-01-20  Chris Marrin  <cmarrin@apple.com>
1065
1066         Implement hardware accelerated Brightness and contrast filters
1067         https://bugs.webkit.org/show_bug.cgi?id=75521
1068         https://bugs.webkit.org/show_bug.cgi?id=76719
1069
1070         Reviewed by Simon Fraser.
1071
1072         Implemented hardware accelerated brightness and contrast filters. This also fixes
1073         the bug where grayscale filter was accidentally never getting hardware accelerated.
1074         It also complies with proposed spec changes for the brightness filter to be additive 
1075         rather than multiplicative, according to https://bugs.webkit.org/show_bug.cgi?id=76719. 
1076         Had to make both fixes in the same patch because I had to change the allowed brightness
1077         values for the hardware version, so I had to change the software version as well.
1078
1079         Tests: css3/filters/effect-brightness-hw.html
1080                css3/filters/effect-contrast-hw.html
1081
1082         * css/CSSParser.cpp:
1083         (WebCore::CSSParser::parseBuiltinFilterArguments):
1084         * css/CSSStyleSelector.cpp:
1085         (WebCore::CSSStyleSelector::createFilterOperations):
1086         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1087         (PlatformCALayer::setFilters):
1088         (PlatformCALayer::filtersCanBeComposited):
1089         * rendering/FilterEffectRenderer.cpp:
1090         (WebCore::FilterEffectRenderer::build):
1091
1092 2012-01-21  Nikolas Zimmermann  <nzimmermann@rim.com>
1093
1094         <feImage> ignores preserveAspectRatio="none"
1095         https://bugs.webkit.org/show_bug.cgi?id=76780
1096
1097         Reviewed by Antti Koivisto.
1098
1099         preserveAspectRatio="none" was ignored in SVGFEImage. It always called transformRect() w/o checking
1100         whether it was supposed to transform the rect or not - move code from RenderSVGImage right into
1101         transformRect(), to do nothing if preserveAspectRatio="none" was given.
1102
1103         Test: svg/filters/feImage-preserveAspectratio.svg
1104
1105         * rendering/svg/RenderSVGImage.cpp:
1106         (WebCore::RenderSVGImage::paint):
1107         * svg/SVGPreserveAspectRatio.cpp:
1108         (WebCore::SVGPreserveAspectRatio::transformRect):
1109
1110 2012-01-21  Jochen Eisinger  <jochen@chromium.org>
1111
1112         history.replaceState should update the HistoryItem to use a GET method if previously non-GET (POST)
1113         https://bugs.webkit.org/show_bug.cgi?id=76721
1114
1115         Reviewed by Mihai Parparita.
1116
1117         Tests: http/tests/history/replacestate-post-to-get-2.html
1118                http/tests/history/replacestate-post-to-get.html
1119
1120         * loader/HistoryController.cpp:
1121         (WebCore::HistoryController::replaceState):
1122
1123 2012-01-21  Florin Malita  <fmalita@google.com>
1124
1125         Null dereference in SVGDocumentExtensions::removePendingResource when updating <use>'s href
1126         https://bugs.webkit.org/show_bug.cgi?id=69284
1127
1128         Reviewed by Nikolas Zimmermann.
1129
1130         Test: svg/custom/use-crash-pending-resource.svg
1131
1132         The crash is caused by assumptions in SVGUseElement that xlink:href is the only
1133         pending resource. This patch adds support for dealing with multiple pending resources.
1134
1135         * rendering/svg/RenderSVGResourceContainer.cpp:
1136         (WebCore::RenderSVGResourceContainer::registerResource):
1137         * svg/SVGDocumentExtensions.cpp:
1138         (WebCore::SVGDocumentExtensions::hasPendingResource):
1139         (WebCore::SVGDocumentExtensions::isElementPendingResources):
1140         (WebCore::SVGDocumentExtensions::isElementPendingResource):
1141         (WebCore::SVGDocumentExtensions::removePendingResourceForElement):
1142         * svg/SVGDocumentExtensions.h:
1143         * svg/SVGStyledElement.cpp:
1144         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
1145         (WebCore::SVGStyledElement::clearHasPendingResourcesIfPossible):
1146         Renamed SVGDocumentExtensions::hasPendingResources -> Renamed SVGDocumentExtensions::hasPendingResource.
1147         Renamed SVGDocumentExtensions::isElementInPendingResources -> SVGDocumentExtensions::isElementPendingResources.
1148         Added support for querying and removing pending resources for a specific element.
1149
1150         * svg/SVGUseElement.cpp:
1151         (WebCore::SVGUseElement::svgAttributeChanged):
1152         (WebCore::SVGUseElement::buildPendingResource):
1153         Refactored to support multiple pending resources.
1154
1155 2012-01-21  Stephen Chenney  <schenney@chromium.org>
1156
1157         REGRESSION (Safari 5.0.5 - ToT): crash in SVG test http://dev.w3.org/SVG/profiles/1.1F2/test/harness/htmlObjectApproved/animate-elem-39-t.html
1158         https://bugs.webkit.org/show_bug.cgi?id=64671
1159
1160         Reviewed by Nikolas Zimmermann.
1161
1162         No new tests. This change is to fix crashes in existing tests.
1163
1164         * svg/animation/SVGSMILElement.cpp:
1165         (WebCore::SVGSMILElement::beginListChanged): If the new begin time is
1166         later than the current end time, and the event time is also after then
1167         end time (but we have not yet updated to that time) and the animation
1168         is active, we need to make the animation inactive explicitly.
1169
1170 2012-01-21  Benjamin Poulain  <bpoulain@apple.com>
1171
1172         PopupMenuClient::multiple() should be const
1173         https://bugs.webkit.org/show_bug.cgi?id=76771
1174
1175         Reviewed by Kent Tamura.
1176
1177         * platform/PopupMenuClient.h:
1178         (WebCore::PopupMenuClient::multiple):
1179         * rendering/RenderMenuList.cpp:
1180         (WebCore::RenderMenuList::multiple):
1181         * rendering/RenderMenuList.h:
1182
1183 2012-01-20  Mark Pilgrim  <pilgrim@chromium.org>
1184
1185         Switch indexeddb to use supplemental IDL for DOMWindow
1186         https://bugs.webkit.org/show_bug.cgi?id=76723
1187
1188         Reviewed by Adam Barth.
1189
1190         No new tests required, all existing tests pass.
1191
1192         * Modules/indexeddb: Added.
1193         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp: Added. webkitIndexedDB() method previously in DOMWindow.cpp
1194         (WebCore::DOMWindowIndexedDatabase::DOMWindowIndexedDatabase):
1195         (WebCore::DOMWindowIndexedDatabase::~DOMWindowIndexedDatabase):
1196         (WebCore::DOMWindowIndexedDatabase::webkitIndexedDB):
1197         * Modules/indexeddb/DOMWindowIndexedDatabase.h: Added.
1198         * Modules/indexeddb/DOMWindowIndexedDatabase.idl: Added. attributes previously in DOMWindow.idl
1199         * WebCore.gyp/WebCore.gyp: add Modules/indexeddb/ directory
1200         * WebCore.gypi: add Modules/indexeddb/*
1201         * page/DOMWindow.cpp: remove webkitIndexedDB() method, add accessor methods for m_idbFactory
1202         (WebCore::DOMWindow::getIDBFactory):
1203         (WebCore::DOMWindow::setIDBFactory):
1204         * page/DOMWindow.h:
1205         * page/DOMWindow.idl:
1206
1207 2012-01-20  David Levin  <levin@chromium.org>
1208
1209         Allow isContextThread to be called while in ~ScriptExecutionContext.
1210         https://bugs.webkit.org/show_bug.cgi?id=76756
1211
1212         Reviewed by Adam Barth.
1213
1214         It is possible for objects to get torn down or get called from ~ScriptExecutionContext
1215         and in turn call isContextThread. The resulting behavior is undefined. This change defines
1216         the behavior. I don't know of any places that do this but I have a test that is rarely
1217         failing due to isContextThread being false. This is my best guess as to why, and I
1218         don't see a reason to try to avoid calling isContextThread at this point.
1219
1220         No new functionality exposed so no new tests.
1221
1222         * dom/ScriptExecutionContext.h:
1223         (WebCore::ScriptExecutionContext::isContextThread):
1224
1225 2012-01-20  Alexandre Elias  <aelias@google.com>
1226
1227         [chromium] Write unit tests for compositor-thread zooming
1228         https://bugs.webkit.org/show_bug.cgi?id=71529
1229
1230         Reviewed by James Robinson.
1231
1232         Add unit tests for pinch zoom and page scale animation.  Includes
1233         small cleanups in CCLayerTreeHostImpl for testability.
1234
1235         * platform/graphics/chromium/cc/CCInputHandler.h:
1236         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1237         (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
1238         (WebCore::CCLayerTreeHostImpl::setViewportSize):
1239         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1240
1241 2012-01-20  David Reveman  <reveman@chromium.org>
1242
1243         [Chromium] Incremental texture updates are not atomic.
1244         https://bugs.webkit.org/show_bug.cgi?id=72672
1245
1246         Reviewed by James Robinson.
1247
1248         Use a new set of textures for each commit when incremental
1249         texture updates are enabled.
1250
1251         This patch is tested by the following unit test:
1252         - CCLayerTreeHostTestAtomicCommit.runMultiThread
1253
1254         * platform/graphics/chromium/ManagedTexture.cpp:
1255         (WebCore::ManagedTexture::ManagedTexture):
1256         (WebCore::ManagedTexture::steal):
1257         * platform/graphics/chromium/ManagedTexture.h:
1258         * platform/graphics/chromium/TiledLayerChromium.cpp:
1259         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
1260         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1261         (WebCore::CCLayerTreeHost::initialize):
1262         (WebCore::CCLayerTreeHost::commitComplete):
1263         (WebCore::CCLayerTreeHost::deleteTextureAfterCommit):
1264         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1265         (WebCore::CCSettings::CCSettings):
1266         * platform/graphics/chromium/cc/CCProxy.h:
1267         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
1268         (WebCore::CCSingleThreadProxy::partialTextureUpdateCapability):
1269         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1270         (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
1271         (WebCore::CCThreadProxy::partialTextureUpdateCapability):
1272         * platform/graphics/chromium/cc/CCThreadProxy.h:
1273
1274 2012-01-20  Chris Rogers  <crogers@google.com>
1275
1276         De-zippering incorrectly snaps to target gain
1277         https://bugs.webkit.org/show_bug.cgi?id=76741
1278
1279         Reviewed by Kenneth Russell.
1280
1281         * platform/audio/AudioBus.cpp:
1282
1283 2012-01-20  Dana Jansens  <danakj@chromium.org>
1284
1285         [chromium] Partially filled pixels do not occlude pixels below them.
1286         https://bugs.webkit.org/show_bug.cgi?id=76658
1287
1288         Reviewed by James Robinson.
1289
1290         Test: compositing/culling/tile-occlusion-boundaries.html
1291
1292         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1293         (WebCore::enclosedIntRect):
1294         (WebCore::CCQuadCuller::cullOccludedQuads):
1295
1296 2012-01-20  Ami Fischman  <fischman@chromium.org>
1297
1298         Small cleanup of {get,put}CurrentFrame for  WebMediaPlayerClientImpl/CCVideoLayerImpl.
1299         https://bugs.webkit.org/show_bug.cgi?id=76332
1300
1301         Reviewed by James Robinson.
1302
1303         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1304         (WebCore::CCVideoLayerImpl::draw):
1305
1306 2012-01-20  Brady Eidson  <beidson@apple.com>
1307
1308         <rdar://problem/9328684> and https://bugs.webkit.org/show_bug.cgi?id=62764
1309         Frequent crashes due to null frame below ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache
1310
1311         Reviewed by Sam Weinig.
1312
1313         No way to reproduce without special malloc debugging and that doesn't even reproduce on all platforms.  So still no test.
1314
1315         * loader/DocumentLoader.cpp:
1316         (WebCore::DocumentLoader::detachFromFrame): Protect m_frame for the duration of this method.
1317
1318 2012-01-20  Alexey Proskuryakov  <ap@apple.com>
1319
1320         WebCore should not send invalid URLs to client createWindow methods.
1321         https://bugs.webkit.org/show_bug.cgi?id=39017
1322
1323         Unreviewed test fix.
1324
1325         * page/DOMWindow.cpp: (WebCore::DOMWindow::createWindow): Let empty URLs through.
1326
1327 2012-01-20  Sam Weinig  <sam@webkit.org>
1328
1329         Make WebCore RunLoop work for WebKit1
1330         https://bugs.webkit.org/show_bug.cgi?id=76739
1331
1332         Reviewed by Anders Carlsson.
1333
1334         * platform/RunLoop.cpp:
1335         Specialize RunLoop initialization for Mac, where it can happen on any thread.
1336         
1337         * platform/RunLoop.h:
1338         Add RunLoop constructor that takes a CFRunLoopRef on the mac for initializing
1339         the main thread.
1340
1341         * platform/mac/RunLoopMac.mm:
1342         (WebCore::RunLoop::initializeMainRunLoop):
1343         Add new implementation that can work from any thread (and multiple threads at the
1344         same time if necessary).
1345
1346         (WebCore::RunLoop::current):
1347         Treat the main thread specially, not storing it in thread specific data.
1348
1349         (WebCore::RunLoop::main):
1350         Copy main accessor since it needs access to the file static.
1351
1352         (WebCore::RunLoop::RunLoop):
1353         Add constructor which takes a CFRunLoopRef.
1354
1355 2012-01-20  Tim Horton  <timothy_horton@apple.com>
1356
1357         Crash in RenderSVGResourceContainer::markAllClientsForInvalidation
1358         https://bugs.webkit.org/show_bug.cgi?id=76606
1359         <rdar://problem/10720970>
1360
1361         Reviewed by Dirk Schulze.
1362
1363         Notify SVGResourcesCache and superclass when RenderSVGInline is about
1364         to be destroyed, preventing a crash.
1365
1366         Test: svg/custom/crash-inline-container-client.html
1367
1368         * rendering/svg/RenderSVGInline.cpp:
1369         (WebCore::RenderSVGInline::willBeDestroyed):
1370         * rendering/svg/RenderSVGInline.h:
1371
1372 2012-01-20  Alexey Proskuryakov  <ap@apple.com>
1373
1374         WebCore should not send invalid URLs to client createWindow methods.
1375         https://bugs.webkit.org/show_bug.cgi?id=39017
1376
1377         Reviewed by Sam Weinig.
1378
1379         Test: fast/dom/window/open-invalid-url.html
1380
1381         * page/DOMWindow.cpp: (WebCore::DOMWindow::createWindow): Bail out early for invalid URLs.
1382
1383 2012-01-20  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
1384
1385         Remove unused variable in RenderReplaced after r105513
1386         https://bugs.webkit.org/show_bug.cgi?id=76742
1387
1388         Reviewed by Daniel Bates.
1389
1390         * rendering/RenderReplaced.cpp:
1391         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
1392         (WebCore::RenderReplaced::computeReplacedLogicalHeight):
1393
1394 2012-01-20  Jonathan Backer  <backer@chromium.org>
1395
1396         [chromium] Plumb damage from accelerated canvas 2D.
1397         https://bugs.webkit.org/show_bug.cgi?id=76728
1398
1399         Reviewed by Kenneth Russell.
1400
1401         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1402         (WebCore::Canvas2DLayerChromium::contentChanged):
1403
1404 2012-01-20  Julien Chaffraix  <jchaffraix@webkit.org>
1405
1406         Crash in RenderTable::borderBefore
1407         https://bugs.webkit.org/show_bug.cgi?id=75215
1408
1409         Reviewed by David Hyatt.
1410
1411         Test: fast/table/crash-beforeBorder-dirty-section.html
1412
1413         This is a regression from r97661 that added some calls to get the object's borders but tables are a
1414         special case and they may need to recompute some sections' pointers.
1415
1416         The whole sections' pointers lazy recomputation logic is unfortunately far from being bullet proof and
1417         this change is only a mitigation for the current crash.
1418
1419         * rendering/RenderTable.cpp:
1420         (WebCore::RenderTable::borderBefore):
1421         (WebCore::RenderTable::borderAfter):
1422         Make sure we recompute our sections. The change was made here to avoid hitting the
1423         path used inside the table code (ie outerBorder{Before|After}) that shouldn't be
1424         affected.
1425
1426         * rendering/RenderTable.h:
1427         (WebCore::RenderTable::topSection):
1428         Added an ASSERT to catch more bad use in the future.
1429
1430 2012-01-20  Marc-Andre Decoste  <mad@chromium.org>
1431
1432         Add proper offset to position right click to simulate a context menu invocation.
1433         https://bugs.webkit.org/show_bug.cgi?id=76421
1434
1435         Reviewed by Ojan Vafai.
1436
1437         Manual tests only because DRT doesn't support context menu key.
1438
1439         * page/EventHandler.cpp:
1440         (WebCore::EventHandler::sendContextMenuEventForKey):
1441
1442 2012-01-20  Sheriff Bot  <webkit.review.bot@gmail.com>
1443
1444         Unreviewed, rolling out r105426.
1445         http://trac.webkit.org/changeset/105426
1446         https://bugs.webkit.org/show_bug.cgi?id=76726
1447
1448         Might have caused a 20% regression in the PLT (Requested by
1449         abarth|gardener on #webkit).
1450
1451         * rendering/RenderObject.h:
1452         (WebCore::RenderObject::style):
1453
1454 2012-01-20  Sadrul Habib Chowdhury  <sadrul@chromium.org>
1455
1456         [chromium] Revert a couple of changes in fileapi/ that break tests in chromeos.
1457         https://bugs.webkit.org/show_bug.cgi?id=76718
1458
1459         Reviewed by Darin Fisher.
1460
1461         * fileapi/BlobURL.cpp:
1462         (WebCore::BlobURL::getIdentifier):
1463         (WebCore::BlobURL::createBlobURL):
1464         * fileapi/BlobURL.h:
1465         (WebCore::BlobURL::blobProtocol):
1466         * fileapi/DOMFileSystemBase.cpp:
1467         (WebCore::DOMFileSystemBase::crackFileSystemURL):
1468         * fileapi/DOMFileSystemBase.h:
1469         * fileapi/EntryBase.cpp:
1470         (WebCore::EntryBase::toURL):
1471         * fileapi/FileWriter.cpp:
1472         (WebCore::FileWriter::write):
1473         (WebCore::FileWriter::truncate):
1474         * page/DOMWindow.cpp:
1475         (WebCore::DOMWindow::webkitRequestFileSystem):
1476         * page/DOMWindow.h:
1477         * platform/AsyncFileSystem.cpp:
1478         * platform/AsyncFileSystem.h:
1479         * workers/WorkerContext.cpp:
1480         (WebCore::WorkerContext::webkitRequestFileSystem):
1481         (WebCore::WorkerContext::webkitRequestFileSystemSync):
1482
1483 2012-01-20  Tim Dresser  <tdresser@chromium.org>
1484
1485         Refactor canvas drawing to be more data driven
1486         https://bugs.webkit.org/show_bug.cgi?id=76635
1487
1488         CCCanvasLayerImpl no longer handles drawing itself, but produces a list of CCCanvasDrawQuads.
1489         These quads are then drawn by LayerRendererChromium.
1490
1491         This is a refactor, so no new tests were added.
1492
1493         Reviewed by James Robinson.
1494
1495         * platform/graphics/chromium/LayerRendererChromium.cpp:
1496         (WebCore::LayerRendererChromium::drawCanvasQuad):
1497         * platform/graphics/chromium/cc/CCCanvasDrawQuad.cpp:
1498         (WebCore::CCCanvasDrawQuad::create):
1499         (WebCore::CCCanvasDrawQuad::CCCanvasDrawQuad):
1500         * platform/graphics/chromium/cc/CCCanvasDrawQuad.h:
1501         (WebCore::CCCanvasDrawQuad::textureId):
1502         (WebCore::CCCanvasDrawQuad::hasAlpha):
1503         (WebCore::CCCanvasDrawQuad::premultipliedAlpha):
1504         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
1505         (WebCore::CCCanvasLayerImpl::appendQuads):
1506         * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
1507
1508 2012-01-19  Abhishek Arya  <inferno@chromium.org>
1509
1510         Crash in xsltParseGlobalVariable.
1511         https://bugs.webkit.org/show_bug.cgi?id=75978
1512
1513         Reviewed by Andreas Kling.
1514
1515         The code missed to reset the stylesheet pointer after we fail
1516         to compile the XSLT stylesheet. As a result, the stylesheet gets
1517         reused with a removed document in the next transformToFragment call.
1518
1519         Test: fast/xsl/xslt-transform-to-fragment-crash.html
1520
1521         * xml/XSLTProcessorLibxslt.cpp:
1522         (WebCore::XSLTProcessor::transformToString):
1523
1524 2012-01-20  Nikolas Zimmermann  <nzimmermann@rim.com>
1525
1526         REGRESSION (r98852): apple.com navigation bar is broken under full-page zoom
1527         https://bugs.webkit.org/show_bug.cgi?id=76249
1528
1529         Reviewed by Andreas Kling.
1530
1531         Fix regression with full-page zoom & border-image. paintNinePieceImage() expects local, unzoomed coordinates.
1532         Restore the behaviour as it was before r98852, fixing the regression.
1533
1534         Test: fast/borders/scaled-border-image.html
1535
1536         * rendering/RenderBoxModelObject.cpp:
1537         (WebCore::RenderBoxModelObject::paintNinePieceImage):
1538
1539 2012-01-20  Mihnea Ovidenie  <mihnea@adobe.com>
1540
1541         [CSSRegion]Expose DOM interface for WebKitCSSRegionRule
1542         https://bugs.webkit.org/show_bug.cgi?id=73985
1543
1544         Reviewed by Antti Koivisto.
1545
1546         Start by exposing the interface and the cssRules attribute of type CSSRuleList.
1547         Test: fast/regions/webkit-region-rule.html
1548
1549         * CMakeLists.txt:
1550         * DerivedSources.cpp:
1551         * DerivedSources.make:
1552         * DerivedSources.pri:
1553         * GNUmakefile.list.am:
1554         * WebCore.gypi:
1555         * WebCore.vcproj/WebCore.vcproj:
1556         * WebCore.xcodeproj/project.pbxproj:
1557         * bindings/js/JSCSSRuleCustom.cpp:
1558         (WebCore::toJS):
1559         * bindings/objc/DOMCSS.mm:
1560         (kitClass):
1561         * bindings/v8/custom/V8CSSRuleCustom.cpp:
1562         (WebCore::toV8):
1563         * css/WebKitCSSRegionRule.cpp:
1564         * css/WebKitCSSRegionRule.h:
1565         * css/WebKitCSSRegionRule.idl:
1566         * page/DOMWindow.idl:
1567
1568 2012-01-20  Nikolas Zimmermann  <nzimmermann@rim.com>
1569
1570         Differentiate between SVG/CSS width/height attributes/properties
1571         https://bugs.webkit.org/show_bug.cgi?id=76447
1572
1573         Reviewed by Antti Koivisto.
1574
1575         Remove a gazillion of hacks out of our SVG implementation, by correctly differentiating between the
1576         SVG width/height attributes and the CSS width/height properties. They need to be treated independently
1577         when handling the intrinsic size negotiation, according to both CSS 2.1 & SVG 1.1 2nd Edition specs.
1578
1579         Fixes several bugs in the LayoutTests/svg/custom/*object*sizing tests, we now match Opera perfectly. FF still has some bugs, and IE9 as well.
1580
1581         * css/svg.css: Remove hardcoded, width/height: 100% on <svg>.
1582         * rendering/RenderBox.h:
1583         (WebCore::RenderBox::computeIntrinsicRatioInformation): Make 'intrinsicRatio' a float, and add 'intrinsicSize' as seperated FloatSize, to avoid confusion.
1584         * rendering/RenderBoxModelObject.cpp:
1585         (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions): Add forgotton case for percentage intrinsic sizes, that lead to workarounds in other places, that can now be removed.
1586         * rendering/RenderImage.cpp:
1587         (WebCore::RenderImage::computeReplacedLogicalWidth): Directly use imageHasRelativeWidth/Height(), it does differentiate between SVG/CSS width/height attributes/properties now.
1588         (WebCore::RenderImage::computeIntrinsicRatioInformation): Adapt to 'intrinsicRatio' argument change.
1589         * rendering/RenderImage.h: Ditto.
1590         * rendering/RenderReplaced.cpp: Refactor existing code, break out firstContainingBlockWithLogicalWidth/hasReplacedLogicalWidth/hasReplacedLogicalHeight/hasAutoHeightOrContainingBlockWithAutoHeight.
1591         (WebCore::firstContainingBlockWithLogicalWidth): Refactored.
1592         (WebCore::RenderReplaced::hasReplacedLogicalWidth): Refactored, and exported, so SVGSVGElement::widthAttributeEstablishesViewport() can use it.
1593         (WebCore::hasAutoHeightOrContainingBlockWithAutoHeight): Refactored.
1594         (WebCore::RenderReplaced::hasReplacedLogicalHeight): Refactored, and exported, so SVGSVGElement::heightAttributeEstablishesViewport() can use it.
1595         (WebCore::RenderReplaced::computeReplacedLogicalWidth): Adapt to 'intrinsicRatio' changes ('intrinsicSize' is now decoupled from it). Refactor so that RenderSVGRoot can directly use it as well!
1596         (WebCore::RenderReplaced::computeReplacedLogicalHeight): Ditto.
1597         * rendering/RenderReplaced.h:
1598         * rendering/svg/RenderSVGRoot.cpp:
1599         (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation): Only determine the intrinsic size & ratio using the SVG width/height attributes, not the CSS width/height properties, as it's specified.
1600         (WebCore::resolveLengthAttributeForSVG): Helper function for computeReplacedLogicalWidth/Height, that scales Length values that come from SVG width/height attributes.
1601         (WebCore::RenderSVGRoot::computeReplacedLogicalWidth): Finally remove home-brewn size computation logic - it can be fully shared with RenderReplaced now that we inherit from it.
1602         (WebCore::RenderSVGRoot::computeReplacedLogicalHeight): Ditto.
1603         * rendering/svg/RenderSVGRoot.h:
1604         * rendering/svg/RenderSVGViewportContainer.h:
1605         (WebCore::RenderSVGViewportContainer::viewport): Export viewport() for easier length resolution.
1606         * svg/SVGLengthContext.cpp:
1607         (WebCore::SVGLengthContext::determineViewport): Finally clean up this hell, and make it easy to understand. Only need to resolve lengths against either RenderSVGRoot or RenderSVGViewportContainer now.
1608         * svg/SVGSVGElement.cpp: 
1609         (WebCore::SVGSVGElement::viewport): Remove wrong code and disable this. Its not used, and we have no test coverage for it. Its current implementation didn't make any sense.
1610         (WebCore::SVGSVGElement::parseMappedAttribute): Remove hacks mapping SVG width/height attributes to CSS properties.
1611         (WebCore::SVGSVGElement::svgAttributeChanged): Ditto.
1612         (WebCore::SVGSVGElement::localCoordinateSpaceTransform): Refactored.
1613         (WebCore::SVGSVGElement::currentViewBoxRect): Ditto.
1614         (WebCore::SVGSVGElement::currentViewportSize): Ditto.
1615         (WebCore::SVGSVGElement::widthAttributeEstablishesViewport): Main logic determining if the SVG or CSS properties establish the viewport -  a direct transliteration from the spec.
1616         (WebCore::SVGSVGElement::heightAttributeEstablishesViewport): Ditto.
1617         (WebCore::SVGSVGElement::intrinsicWidth): Helper.
1618         (WebCore::SVGSVGElement::intrinsicHeight): Ditto.
1619         * svg/SVGSVGElement.h:
1620         * svg/graphics/SVGImage.cpp:
1621         (WebCore::SVGImage::size): Cleanup code.
1622         (WebCore::SVGImage::hasRelativeWidth): Added, avoids hacks in RenderBoxModelObject.
1623         (WebCore::SVGImage::hasRelativeHeight): Ditto.
1624         (WebCore::SVGImage::computeIntrinsicDimensions): Make use of new SVGSVGElement::computeIntrinsicDimensions.
1625         * svg/graphics/SVGImage.h:
1626
1627 2012-01-20  Sami Kyostila  <skyostil@chromium.org>
1628
1629         window.innerWidth/Height should not include page scale
1630         https://bugs.webkit.org/show_bug.cgi?id=76555
1631
1632         The DOM attributes window.innerWidth and window.innerHeight should be in
1633         CSS pixels instead of device pixels. Currently the text zoom factor is
1634         cancelled out when calculating these values, but the same also needs to
1635         be done for the page scale.
1636
1637         There is an additional subtlety concerning frames/iframes since their
1638         visible content rectangle is already in (unscaled) CSS pixels. By using
1639         Frame::frameScaleFactor() we avoid unnecessarily cancelling out the page
1640         scale factor in this case.
1641
1642         Reviewed by Kenneth Rohde Christiansen.
1643
1644         Tests: fast/dom/iframe-inner-size-scaling.html
1645                fast/dom/window-inner-size-scaling.html
1646
1647         * page/DOMWindow.cpp:
1648         (WebCore::DOMWindow::innerHeight):
1649         (WebCore::DOMWindow::innerWidth):
1650
1651 2012-01-20  Kinuko Yasuda  <kinuko@chromium.org>
1652
1653         Add DataTransferItems support for drag-and-drop'ed files and texts
1654         https://bugs.webkit.org/show_bug.cgi?id=76367
1655
1656         Reviewed by Tony Chang.
1657
1658         Per http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#the-datatransfer-interface
1659         the new interface should also support drag-and-dropped files and texts in
1660         addition to pasted texts/images.  The user apps should also be able to add
1661         texts/files to the drag store by calling event.dataTransfer.items.add().
1662
1663         This patch adds drag-and-drop'ed items support in DataTransferItem and
1664         DataTransferItemList so that they work for dropped files and texts (as well as
1665         the copy-pasted texts/images).
1666
1667         This patch also adds customized toJS()/toV8() code to Blob/File javascript
1668         binding so that the JS code can get either Blob or File underlying object
1669         where the API returns Blob. This change is necessary since we return Blob
1670         from DataTransferItem.getAsFile() for pasted images but want to return File
1671         for dropped files.
1672
1673         Tests: editing/pasteboard/data-transfer-items-drag-drop-file.html
1674                editing/pasteboard/data-transfer-items-drag-drop-string.html
1675
1676         * GNUmakefile.list.am: Added entries for the new {JS,V8}BlobCustom.
1677         * Target.pri: Ditto.
1678         * UseJSC.cmake: Ditto.
1679         * WebCore.gypi: Ditto.
1680         * bindings/js/JSBindingsAllInOne.cpp: Ditto.
1681         * bindings/js/JSBlobCustom.cpp: Added toJS custom code that returns File or
1682         Blob depending on the return value of isFile().
1683         (WebCore::toJS):
1684         * bindings/v8/custom/V8BlobCustom.cpp: Added toV8 custom code.
1685         (WebCore::toV8):
1686         * dom/DataTransferItem.h: Added a new create() method which takes File.
1687         * dom/DataTransferItemList.cpp: Added add(File) method.
1688         (WebCore::DataTransferItemList::add):
1689         * dom/DataTransferItemList.h: Ditto.
1690         * dom/DataTransferItemList.idl: Ditto.
1691         * fileapi/Blob.idl: Added CustomToJS for toJS/toV8.
1692         * platform/chromium/ClipboardChromium.cpp: Added code for drag-and-drop'ed items.
1693         (WebCore::ClipboardChromium::items): Revised.
1694         (WebCore::ClipboardChromium::mayUpdateItems): Added.
1695         (WebCore::ClipboardChromium::isStorageUpdated): Added.
1696         * platform/chromium/ClipboardChromium.h:
1697         * platform/chromium/DataTransferItemChromium.cpp: Added a new constructor that
1698         takes File and updated getAsFile() to make it support dropped files.
1699         (WebCore::DataTransferItem::create):
1700         (WebCore::DataTransferItemChromium::DataTransferItemChromium):
1701         (WebCore::DataTransferItemChromium::getAsFile):
1702         * platform/chromium/DataTransferItemChromium.h:
1703         * platform/chromium/DataTransferItemListChromium.cpp:
1704         (WebCore::DataTransferItemListChromium::addInternalItem):
1705         * platform/chromium/DataTransferItemListChromium.cpp: Added overrides implementation for m_item accessors to make them reflect the changes in the owner clipboard.
1706         (WebCore::DataTransferItemListChromium::length):
1707         (WebCore::DataTransferItemListChromium::item):
1708         (WebCore::DataTransferItemListChromium::deleteItem):
1709         (WebCore::DataTransferItemListChromium::clear):
1710         (WebCore::DataTransferItemListChromium::add):
1711         (WebCore::DataTransferItemListChromium::mayUpdateItems): Added.
1712         * platform/qt/DataTransferItemQt.cpp: Added a new constructor that takes File and updated
1713         getAsFile() to make it support dropped files.
1714         (WebCore::DataTransferItem::create):
1715         (WebCore::DataTransferItemQt::DataTransferItemQt):
1716         (WebCore::DataTransferItemQt::getAsFile):
1717         * platform/qt/DataTransferItemQt.h:
1718
1719 2012-01-20  Alexis Menard  <alexis.menard@openbossa.org>
1720
1721         remove CSSBorderImageValue
1722         https://bugs.webkit.org/show_bug.cgi?id=75563
1723
1724         Reviewed by Tony Chang.
1725
1726         Remove CSSBorderImageValue as border-image is a shorthand therefore we don't
1727         need a dedicated CSS class type for it. CSSBorderImageValue was here for
1728         -webkit-border-image which is not a shorthand. This is the first step to move border-image
1729         close to a correct shorthand implementation while keeping -webkit-border-image being a regular
1730         CSS property.
1731
1732         No new tests : It's a refactor, existing tests should cover it.
1733
1734         * CMakeLists.txt:
1735         * GNUmakefile.list.am:
1736         * Target.pri:
1737         * WebCore.gypi:
1738         * WebCore.order:
1739         * WebCore.vcproj/WebCore.vcproj:
1740         * WebCore.xcodeproj/project.pbxproj:
1741         * css/CSSAllInOne.cpp:
1742         * css/CSSBorderImage.cpp: Added.
1743         (WebCore::createBorderImageValue):
1744         * css/CSSBorderImage.h: Added.
1745         * css/CSSBorderImageValue.cpp: Removed.
1746         * css/CSSBorderImageValue.h: Removed.
1747         * css/CSSComputedStyleDeclaration.cpp:
1748         (WebCore::valueForNinePieceImage):
1749         * css/CSSParser.cpp:
1750         (WebCore::BorderImageParseContext::commitBorderImage):
1751         * css/CSSStyleSelector.cpp:
1752         (WebCore::CSSStyleSelector::mapNinePieceImage):
1753         * css/CSSValue.cpp:
1754         (WebCore::CSSValue::addSubresourceStyleURLs):
1755         (WebCore::CSSValue::cssText):
1756         (WebCore::CSSValue::destroy):
1757         * css/CSSValue.h:
1758
1759 2012-01-20  Hayato Ito  <hayato@chromium.org>
1760
1761         Add ShadowRoot.idl which is enabled by newly introduced SHADOW_DOM flag.
1762         https://bugs.webkit.org/show_bug.cgi?id=76353
1763
1764         Reviewed by Hajime Morita.
1765
1766         Add ShadowRoot.idl, which is enabled only on chromium port since this is
1767         under development feature.
1768         ShadowRoot.idl contains minimum API so that we can test it.
1769         Other APIs should be added on other changes so that we can isolate issues.
1770
1771         Test: fast/dom/shadow/shadow-root-js-api.html
1772
1773         * WebCore.gypi:
1774         * bindings/generic/RuntimeEnabledFeatures.cpp:
1775         * bindings/generic/RuntimeEnabledFeatures.h:
1776         (WebCore::RuntimeEnabledFeatures::shadowDOMEnabled):
1777         (WebCore::RuntimeEnabledFeatures::setShadowDOMEnabled):
1778         * dom/ShadowRoot.h:
1779         (WebCore::ShadowRoot::host):
1780         * dom/ShadowRoot.idl: Added.
1781         * testing/Internals.cpp:
1782         (WebCore::Internals::ensureShadowRoot):
1783         (WebCore::Internals::shadowRoot):
1784         * testing/Internals.h:
1785         * testing/Internals.idl:
1786
1787 2012-01-19  Kent Tamura  <tkent@chromium.org>
1788
1789         Change LocalizedNumber interface
1790         https://bugs.webkit.org/show_bug.cgi?id=76613
1791
1792         Reviewed by Hajime Morita.
1793
1794         Change the functions of LocalizedNumber from:
1795           double parseLocalizedNumber(const String&);
1796           String formatLocalizedNumber(double, unsigned fractionDigits);
1797         To:
1798           String convertToLocalizedNumber(const String&, usnigned fractionDigits);
1799           String convertFromLocalizedNumber(const String&);
1800         in order that we can avoid conversion from/to a double value.
1801
1802         The fractionDigits argumetn of convertToLocalizedNumber() will be
1803         removed in the future.  We need it because we'd like to recycle the old
1804         functions to implement new functions for now and functions in
1805         LocalizedNumber can't call functions in HTMLParserIdioms.cpp.
1806
1807         No new tests because the change doesn't make any behavior change.
1808
1809         * html/NumberInputType.cpp:
1810         (WebCore::NumberInputType::visibleValue):
1811         Use convertToLocalizedNumber.
1812         (WebCore::NumberInputType::convertFromVisibleValue):
1813         Use convertFromLocalizedNumber.
1814         (WebCore::NumberInputType::isAcceptableValue): ditto.
1815         * platform/text/LocalizedNumber.h:
1816         Remove parseLocalizedNumber and formatLocalizedNumber, and
1817         introduce convertToLocalizedNumber and convertFromLocalizedNumber.
1818         * platform/text/LocalizedNumberICU.cpp:
1819         (WebCore::parseLocalizedNumber): Make this static.
1820         (WebCore::formatLocalizedNumber): Make this static.
1821         (WebCore::convertToLocalizedNumber): Implement this with formatLocalizedNumber.
1822         (WebCore::convertFromLocalizedNumber): Implement this with parseLocalizedNumber.
1823         * platform/text/LocalizedNumberNone.cpp:
1824         (WebCore::convertToLocalizedNumber):
1825         Implement this as a function returning the input string.
1826         (WebCore::convertFromLocalizedNumber): ditto.
1827         * platform/text/mac/LocalizedNumberMac.mm:
1828         (WebCore::parseLocalizedNumber): Make this static.
1829         (WebCore::formatLocalizedNumber): Make this static.
1830         (WebCore::convertToLocalizedNumber): Implement this with formatLocalizedNumber.
1831         (WebCore::convertFromLocalizedNumber): Implement this with parseLocalizedNumber.
1832
1833 2012-01-19  Pavel Feldman  <pfeldman@google.com>
1834
1835         Web Inspector: problem with Ctrl - <arrows> shortcuts in Scripts panel
1836         https://bugs.webkit.org/show_bug.cgi?id=76622
1837
1838         Reviewed by Yury Semikhatsky.
1839
1840         * inspector/front-end/InspectorView.js:
1841         (WebInspector.InspectorView.prototype._keyDown):
1842         * inspector/front-end/TextViewer.js:
1843         (WebInspector.TextViewer.prototype.set readOnly):
1844         (WebInspector.TextViewer.prototype._cancelEditing):
1845         (WebInspector.TextViewer.prototype.wasShown):
1846         (WebInspector.TextViewer.prototype.willHide):
1847         * inspector/front-end/UIUtils.js:
1848         (WebInspector.isInEditMode):
1849         * inspector/front-end/inspector.js:
1850         (WebInspector.documentKeyDown):
1851
1852 2012-01-19  Kaustubh Atrawalkar  <kaustubh@motorola.com> & Erik Arvidsson  <arv@chromium.org>
1853
1854         Migrate createObjectURL & revokeObjectURL to static (Class) methods.
1855         https://bugs.webkit.org/show_bug.cgi?id=74386
1856
1857         Reviewed by Adam Barth.
1858
1859         Test: fast/dom/DOMURL/check-instanceof-domurl-functions.html
1860         Already Existing -
1861             fast/files/revoke-blob-url.html
1862             fast/dom/window-domurl-crash.html
1863             fast/files/apply-blob-url-to-img.html
1864             fast/files/create-blob-url-crash.html
1865             fast/files/workers/inline-worker-via-blob-url.html
1866
1867         * html/DOMURL.cpp: Added HashMap for local static objects.
1868         (WebCore::PublicURLManager::PublicURLManager):
1869         (WebCore::PublicURLManager::contextDestroyed):
1870         (WebCore::PublicURLManager::blobURLs):
1871         (WebCore::PublicURLManager::streamURLs):
1872         (WebCore::publicURLManagerMap):
1873         (WebCore::publicURLManager):
1874         (WebCore::publicBlobURLs):
1875         (WebCore::publicStreamURLs):
1876         (WebCore::DOMURL::createObjectURL): Changed to static.
1877         (WebCore::DOMURL::revokeObjectURL): ditto.
1878         * html/DOMURL.h:
1879         (WebCore::DOMURL::create):
1880         (WebCore::DOMURL::~DOMURL):
1881         (WebCore::DOMURL::DOMURL):
1882         * html/DOMURL.idl:
1883         * page/DOMWindow.cpp: Removed object initialization for DOMURL.
1884         * page/DOMWindow.h: ditto.
1885         * page/DOMWindow.idl: ditto.
1886         * workers/WorkerContext.cpp: ditto.
1887         * workers/WorkerContext.h: ditto.
1888         * workers/WorkerContext.idl: ditto.
1889
1890 2012-01-20  Alexandru Chiculita  <achicu@adobe.com>
1891
1892         CSS Shaders: Add a Settings flag to enable/disable CSS Shaders at runtime
1893         https://bugs.webkit.org/show_bug.cgi?id=76444
1894         
1895         Added setCSSCustomFilterEnabled/isCSSCustomFilterEnabled that is false by default.
1896         I've enabled it by default on Apple Mac, to make sure there's no behavior change. Anyway, CSS shaders need
1897         WebGL enabled, so it ends up being disabled by default.
1898
1899         Reviewed by Nikolas Zimmermann.
1900
1901         Test: css3/filters/effect-custom-disabled.html
1902
1903         * css/CSSParser.cpp:
1904         (WebCore::CSSParser::parseFilter):
1905             Do not parse the custom() function when shaders are disabled.
1906             
1907         * css/CSSStyleSelector.cpp:
1908         (WebCore::CSSStyleSelector::applyProperty):
1909             Do not overwrite the old style->filter() if parsing fails.
1910             
1911         (WebCore::CSSStyleSelector::createFilterOperations):
1912             Do not continue if one custom() filter fails to parse.
1913             
1914         * page/Settings.cpp:
1915         (WebCore::Settings::Settings):
1916         * page/Settings.h:
1917         (WebCore::Settings::setCSSCustomFilterEnabled):
1918         (WebCore::Settings::isCSSCustomFilterEnabled):
1919         * rendering/FilterEffectRenderer.cpp:
1920         (WebCore::isCSSCustomFilterEnabled):
1921         (WebCore::FilterEffectRenderer::build):
1922             Avoid creating the filter when shaders are disabled. It may happen to get here if shaders were disabled between parsing and rendering.
1923         
1924 2012-01-19  Shinya Kawanaka  <shinyak@google.com>
1925
1926         Node::canHaveLightChildRendererWithShadow is not used anywhere.
1927         https://bugs.webkit.org/show_bug.cgi?id=76627
1928
1929         Reviewed by Darin Adler.
1930
1931         Since Node::canHaveLightChildRendererWithShadow is not overriden anywhere, and it returns always false.
1932         We can remove it.
1933
1934         No new tests, because no change in behavior.
1935
1936         * dom/Node.h:
1937         * dom/NodeRenderingContext.cpp:
1938         (WebCore::NodeRenderingContext::shouldCreateRenderer):
1939
1940 2012-01-19  Kinuko Yasuda  <kinuko@chromium.org>
1941
1942         Cleanup: make constant variable names in fileapi/ conform to WebKit's coding guideline
1943         https://bugs.webkit.org/show_bug.cgi?id=76625
1944
1945         Reviewed by David Levin.
1946
1947         No new tests as this patch has no functional changes.
1948
1949         * fileapi/BlobURL.cpp:
1950         (WebCore::BlobURL::getIdentifier):
1951         (WebCore::BlobURL::createBlobURL):
1952         * fileapi/BlobURL.h:
1953         * fileapi/FileWriter.cpp:
1954         (WebCore::FileWriter::write):
1955         (WebCore::FileWriter::truncate):
1956         * platform/AsyncFileSystem.cpp:
1957         (WebCore::AsyncFileSystem::crackFileSystemURL):
1958         (WebCore::AsyncFileSystem::toURL):
1959         (WebCore::AsyncFileSystem::isAvailable):
1960         * platform/AsyncFileSystem.h:
1961
1962 2012-01-18  Sam Weinig  <sam@webkit.org>
1963
1964         Move RunLoop to WebCore/platform
1965         https://bugs.webkit.org/show_bug.cgi?id=76471
1966
1967         Reviewed by Anders Carlsson.
1968
1969         * GNUmakefile.list.am:
1970         * Target.pri:
1971         * WebCore.exp.in:
1972         * WebCore.vcproj/WebCore.vcproj:
1973         * WebCore.xcodeproj/project.pbxproj:
1974         Add newly moved files.
1975
1976         * platform/RunLoop.cpp: Moved from Source/WebKit2/Platform/RunLoop.cpp.
1977         * platform/RunLoop.h: Moved from Source/WebKit2/Platform/RunLoop.h.
1978         * platform/gtk/RunLoopGtk.cpp: Moved from Source/WebKit2/Platform/gtk/RunLoopGtk.cpp.
1979         * platform/mac/RunLoopMac.mm: Moved from Source/WebKit2/Platform/mac/RunLoopMac.mm.
1980         * platform/qt/RunLoopQt.cpp: Moved from Source/WebKit2/Platform/qt/RunLoopQt.cpp.
1981         * platform/win/RunLoopWin.cpp: Moved from Source/WebKit2/Platform/win/RunLoopWin.cpp.
1982         Move the files.
1983
1984 2012-01-19  Pablo Flouret  <pablof@motorola.com>
1985
1986         Fix inconsistent text selection behavior with option-shift-left/right/up/down.
1987         https://bugs.webkit.org/show_bug.cgi?id=75652
1988
1989         Reviewed by Enrica Casucci.
1990
1991         On Mac, selecting backwards by word, line or paragraph from the middle
1992         of some text, and then going forward leaves the caret back in the middle
1993         with no selection, instead of directly selecting to the other end of the
1994         word/line/paragraph (Unix/Windows behavior). Fix this by adding a new
1995         editing behavior to control whether the selection should go across the
1996         initial position of the caret directly or not in situations like the one
1997         outlined above.
1998
1999         Test: editing/selection/selection-extend-should-not-move-across-caret-on-mac.html
2000
2001         * editing/EditingBehavior.h:
2002         (WebCore::EditingBehavior::shouldExtendSelectionByWordOrLineAcrossCaret):
2003         * editing/FrameSelection.cpp:
2004         (WebCore::FrameSelection::modify):
2005
2006 2012-01-19  Simon Fraser  <simon.fraser@apple.com>
2007
2008         Regression (r98735): Video chat moles in Gmail render incorrectly on Mac OS
2009         https://bugs.webkit.org/show_bug.cgi?id=75682
2010
2011         Reviewed by James Robinson.
2012         
2013         RenderLayerBacking::isSimpleContainerCompositingLayer() gave incorret
2014         results in the case where the layer itself was visibility:hidden, but
2015         where it had visible, non-composited descendant layers.
2016         
2017         Fix by breaking RenderLayerBacking::hasVisibleNonCompositingDescendants()
2018         into two methods, one that tests for renderers in this layer which
2019         render stuff (and are thus affected by visibility on this layer), and
2020         another which walks descendant, non-composited layers looking for those
2021         which are visible.
2022         
2023         Removed an early return in the "renderObject->node()->isDocumentNode()"
2024         clause, because we want to run the same code that we run for non-document
2025         nodes.
2026
2027         Test: compositing/visibility/layer-visible-content.html
2028
2029         * rendering/RenderLayerBacking.cpp:
2030         (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
2031         (WebCore::RenderLayerBacking::containsNonEmptyRenderers):
2032         (WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):
2033         * rendering/RenderLayerBacking.h:
2034
2035 2012-01-19  Alexandre Elias  <aelias@google.com>
2036
2037         [chromium] Draw gutter quads outside root content layer
2038         https://bugs.webkit.org/show_bug.cgi?id=76328
2039
2040         Reviewed by James Robinson.
2041
2042         Add new layer property "backgroundCoversViewport".  If the content
2043         layers don't fully cover the render surface, this code calculates the
2044         difference between the root clip rect and the root content layer and
2045         draws up to four background-color quads in exactly the area that would
2046         be undrawn.
2047
2048         Test: CCTiledLayerImplTest::backgroundCoversViewport
2049
2050         * platform/graphics/chromium/LayerChromium.cpp:
2051         (WebCore::LayerChromium::LayerChromium):
2052         (WebCore::LayerChromium::setBackgroundCoversViewport):
2053         (WebCore::LayerChromium::pushPropertiesTo):
2054         * platform/graphics/chromium/LayerChromium.h:
2055         (WebCore::LayerChromium::backgroundCoversViewport):
2056         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2057         (WebCore::CCLayerImpl::CCLayerImpl):
2058         (WebCore::CCLayerImpl::setBackgroundCoversViewport):
2059         * platform/graphics/chromium/cc/CCLayerImpl.h:
2060         (WebCore::CCLayerImpl::backgroundCoversViewport):
2061         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2062         (WebCore::CCTiledLayerImpl::appendQuads):
2063
2064 2012-01-19  Cary Clark  <caryclark@google.com>
2065
2066         [Skia Mac] Match style of platform error underline for misspellings
2067         https://bugs.webkit.org/show_bug.cgi?id=76556
2068
2069         Reviewed by Stephen White.
2070
2071         Add Darwin-specific code in Skia to draw the error underline so that
2072         it matches the CoreGraphics style.
2073
2074         Many existing layout tests inadvertantly trigger the misspelling
2075         underline by including the word 'foo' in an editable field. Those
2076         tests are temporarily suppressed separately in an edit to
2077         test_expectations.txt.
2078
2079         * platform/graphics/skia/GraphicsContextSkia.cpp:
2080         (WebCore::GraphicsContext::drawLineForTextChecking):
2081
2082 2012-01-19  No'am Rosenthal  <noam.rosenthal@nokia.com>
2083
2084         [Texmap] TextureMapper creates two many big intermediate surfaces
2085         https://bugs.webkit.org/show_bug.cgi?id=76336
2086
2087         Reviewed by Simon Hausmann.
2088
2089         The following has been done to optimize surface allocation:
2090         1. Instead of using a viewport-size surface, use a surface in the size of the layer's
2091            bounding rect and apply the transform after the content has been rendered into it.
2092         2. Avoid generating intermediate surface for occasions where they're not necessary,
2093            such as nested reflections without opacity.
2094         3. Releasing of textures from the pool is now implicit, based on refCount.
2095         4. Do not use intermediate surfaces for preserve-3d layers. This is in alignment with
2096            other ports.
2097
2098         Tests in LayoutTests/compositing/masks and LayoutTests/compositing/reflection cover this.
2099
2100         * platform/graphics/texmap/TextureMapper.cpp:
2101         (WebCore::TextureMapper::acquireTextureFromPool):
2102         * platform/graphics/texmap/TextureMapper.h:
2103         * platform/graphics/texmap/TextureMapperNode.cpp:
2104         (WebCore::TextureMapperNode::paintSelf):
2105         (WebCore::TextureMapperNode::paintSelfAndChildren):
2106         (WebCore::TextureMapperNode::intermediateSurfaceRect):
2107         (WebCore::TextureMapperNode::shouldPaintToIntermediateSurface):
2108         (WebCore::TextureMapperNode::isVisible):
2109         (WebCore::TextureMapperNode::paintSelfAndChildrenWithReplica):
2110         (WebCore::TextureMapperNode::paintRecursive):
2111         (WebCore::TextureMapperNode::syncCompositingStateSelf):
2112         (WebCore::TextureMapperNode::syncCompositingState):
2113         * platform/graphics/texmap/TextureMapperNode.h:
2114         (WebCore::TextureMapperPaintOptions::TextureMapperPaintOptions):
2115
2116 2012-01-19  Eric Seidel  <eric@webkit.org>
2117
2118         Assertion failure in WebCore::HTMLFrameElementBase::insertedIntoDocument()
2119         https://bugs.webkit.org/show_bug.cgi?id=50312
2120
2121         Reviewed by Alexey Proskuryakov.
2122
2123         Removed the ASSERT and updated the comment.
2124
2125         Test: fast/frames/assert-on-insertedIntoDocument.html
2126
2127         * html/HTMLFrameElementBase.cpp:
2128         (WebCore::HTMLFrameElementBase::insertedIntoDocument):
2129
2130 2012-01-19  James Robinson  <jamesr@chromium.org>
2131
2132         [chromium] Remove CCLayerDelegate, add ContentLayerDelegate for painting
2133         https://bugs.webkit.org/show_bug.cgi?id=76663
2134
2135         Reviewed by Kenneth Russell.
2136
2137         CCLayerDelegate used to be an interface with a half-dozen callbacks on it, but now it has only one call -
2138         paintContents() - and that one call is only valid for one subclass of LayerChromium, ContentLayerChromium. This
2139         removes the CCLayerDelegate pointer from LayerChromium and adds a ContentLayerDelegate for the paint call.
2140
2141         The majority of the code changes in this patch are removing the nil parameter from various places that construct
2142         LayerChromium instances. Also tightens the type of GraphicsLayerChromium::m_layer to ContentLayerChromium.
2143
2144         Refactoring/removing dead code, so no new tests.
2145
2146         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
2147         (WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
2148         * platform/graphics/chromium/CanvasLayerChromium.cpp:
2149         (WebCore::CanvasLayerChromium::CanvasLayerChromium):
2150         * platform/graphics/chromium/CanvasLayerChromium.h:
2151         * platform/graphics/chromium/ContentLayerChromium.cpp:
2152         (WebCore::ContentLayerPainter::create):
2153         (WebCore::ContentLayerPainter::ContentLayerPainter):
2154         (WebCore::ContentLayerChromium::create):
2155         (WebCore::ContentLayerChromium::ContentLayerChromium):
2156         * platform/graphics/chromium/ContentLayerChromium.h:
2157         (WebCore::ContentLayerDelegate::~ContentLayerDelegate):
2158         (WebCore::ContentLayerChromium::clearDelegate):
2159         * platform/graphics/chromium/DrawingBufferChromium.cpp:
2160         (WebCore::DrawingBuffer::platformLayer):
2161         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2162         (WebCore::GraphicsLayerChromium::~GraphicsLayerChromium):
2163         (WebCore::GraphicsLayerChromium::setContentsToImage):
2164         (WebCore::GraphicsLayerChromium::setContentsToCanvas):
2165         (WebCore::GraphicsLayerChromium::setContentsToMedia):
2166         (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
2167         * platform/graphics/chromium/GraphicsLayerChromium.h:
2168         * platform/graphics/chromium/ImageLayerChromium.cpp:
2169         (WebCore::ImageLayerChromium::create):
2170         (WebCore::ImageLayerChromium::ImageLayerChromium):
2171         * platform/graphics/chromium/ImageLayerChromium.h:
2172         * platform/graphics/chromium/LayerChromium.cpp:
2173         (WebCore::LayerChromium::create):
2174         (WebCore::LayerChromium::LayerChromium):
2175         * platform/graphics/chromium/LayerChromium.h:
2176         * platform/graphics/chromium/PluginLayerChromium.cpp:
2177         (WebCore::PluginLayerChromium::create):
2178         (WebCore::PluginLayerChromium::PluginLayerChromium):
2179         * platform/graphics/chromium/PluginLayerChromium.h:
2180         * platform/graphics/chromium/TiledLayerChromium.cpp:
2181         (WebCore::TiledLayerChromium::TiledLayerChromium):
2182         (WebCore::TiledLayerChromium::drawsContent):
2183         * platform/graphics/chromium/TiledLayerChromium.h:
2184         * platform/graphics/chromium/VideoLayerChromium.cpp:
2185         (WebCore::VideoLayerChromium::create):
2186         (WebCore::VideoLayerChromium::VideoLayerChromium):
2187         * platform/graphics/chromium/VideoLayerChromium.h:
2188         * platform/graphics/chromium/WebGLLayerChromium.cpp:
2189         (WebCore::WebGLLayerChromium::create):
2190         (WebCore::WebGLLayerChromium::WebGLLayerChromium):
2191         * platform/graphics/chromium/WebGLLayerChromium.h:
2192
2193 2012-01-19  Greg Billock  <gbillock@google.com>
2194
2195         [Coverity] Fix uninitialized constructor defects in .../html
2196         https://bugs.webkit.org/show_bug.cgi?id=74965
2197
2198         Reviewed by Simon Fraser.
2199
2200         Test: fast/canvas/script-tests/canvas-webkitLineDash.js
2201
2202         * html/HTMLFormCollection.cpp:
2203         (WebCore::HTMLFormCollection::HTMLFormCollection):
2204         * html/StepRange.cpp:
2205         (WebCore::StepRange::StepRange):
2206         * html/canvas/CanvasRenderingContext2D.cpp:
2207         (WebCore::CanvasRenderingContext2D::State::State):
2208         * html/canvas/CanvasStyle.h:
2209         (WebCore::CanvasStyle::CMYKAValues::CMYKAValues):
2210         * html/canvas/WebGLGetInfo.cpp:
2211         (WebCore::WebGLGetInfo::WebGLGetInfo):
2212         * html/parser/CSSPreloadScanner.cpp:
2213         (WebCore::CSSPreloadScanner::CSSPreloadScanner):
2214         * html/track/WebVTTParser.cpp:
2215         (WebCore::WebVTTParser::WebVTTParser):
2216
2217 2012-01-19  Alexandru Chiculita  <achicu@adobe.com>
2218
2219         CSS Shaders: Remove the setTimeout from the layout tests
2220         https://bugs.webkit.org/show_bug.cgi?id=76535
2221
2222         Reviewed by Tony Chang.
2223
2224         We had setTimeout on old tests because the snapshot picture was taken too early, before the shaders were loaded.
2225         The problem was that the RenderLayer was notified that the shader was loaded only after the onload event was triggered,
2226         so a simple setTimeout(0) would have fixed the issue, but better than that would be to to always call CachedResource::data 
2227         in CachedShader::data, which notifies the load earlier (before onload).
2228
2229         No new tests, just removed the setTimeout from old ones.
2230
2231         * loader/cache/CachedShader.cpp:
2232         (WebCore::CachedShader::data):
2233
2234 2012-01-19  Min Qin  <qinmin@google.com>
2235
2236         Improve touch handling performance by reusing the hitTest result
2237         https://bugs.webkit.org/show_bug.cgi?id=75506
2238
2239         Reviewed by Adam Barth.
2240
2241         This is a performance optimization and should not cause behavior changes. Existing tests should cover it.
2242
2243         * page/EventHandler.cpp:
2244         (WebCore::EventHandler::handleTouchEvent):
2245
2246 2012-01-19  Jon Lee  <jonlee@apple.com>
2247
2248         Add text-overflow support that allows placeholder and value text to show an ellipsis when not focused
2249         https://bugs.webkit.org/show_bug.cgi?id=76118
2250         <rdar://problem/9271742>
2251
2252         Reviewed by Dan Bernstein.
2253
2254         Tests: fast/css/text-overflow-input-focus-placeholder-expected.html
2255                fast/css/text-overflow-input-focus-placeholder.html
2256                fast/css/text-overflow-input-focus-value-expected.html
2257                fast/css/text-overflow-input-focus-value.html
2258                fast/css/text-overflow-input.html
2259
2260         * rendering/RenderTextControlSingleLine.cpp:
2261         (WebCore::RenderTextControlSingleLine::styleDidChange): When the style of the text control
2262         changes, we update the text overflow property of the placeholder.
2263         (WebCore::RenderTextControlSingleLine::createInnerTextStyle): When the style of the text control
2264         changes, we update the text overflow property of the inner text block.
2265         (WebCore::RenderTextControlSingleLine::textShouldBeTruncated): The text of the value and placeholder should
2266         only contain the ellipsis if the input's text-overflow property is set to ellipsis, and the input is not focused.
2267         * rendering/RenderTextControlSingleLine.h:
2268
2269 2012-01-19  Mark Hahnenberg  <mhahnenberg@apple.com>
2270
2271         Implement a new allocator for backing stores
2272         https://bugs.webkit.org/show_bug.cgi?id=75181
2273
2274         Reviewed by Filip Pizlo.
2275
2276         No new tests.
2277
2278         Added forwarding header for new CheckedBoolean used in the bump allocator.
2279
2280         * ForwardingHeaders/wtf/CheckedBoolean.h: Added.
2281
2282 2012-01-13  Ryosuke Niwa  <rniwa@webkit.org>
2283
2284         Crash in CompositeEditCommand::ensureComposition
2285         https://bugs.webkit.org/show_bug.cgi?id=76207
2286
2287         Reviewed by Chang Shu.
2288
2289         The crash was caused by TypingCommand not kept alive when new editing commands are executed
2290         during adding more typings to the open last typing command since m_lastEditCommand is replaced
2291         by the new command. Fixed the bug by keeping them alive a little longer with RefPtr.
2292
2293         Test: editing/execCommand/editing-command-while-executing-typing-command-crash.html
2294
2295         * editing/FrameSelection.cpp:
2296         (WebCore::shouldStopBlinkingDueToTypingCommand):
2297         (WebCore::FrameSelection::updateAppearance):
2298         * editing/TypingCommand.cpp:
2299         (WebCore::TypingCommand::deleteSelection):
2300         (WebCore::TypingCommand::deleteKeyPressed):
2301         (WebCore::TypingCommand::forwardDeleteKeyPressed):
2302         (WebCore::TypingCommand::insertText):
2303         (WebCore::TypingCommand::insertLineBreak):
2304         (WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
2305         (WebCore::TypingCommand::insertParagraphSeparator):
2306         (WebCore::TypingCommand::lastTypingCommandIfStillOpenForTyping):
2307         (WebCore::TypingCommand::closeTyping):
2308         * editing/TypingCommand.h:
2309
2310 2012-01-19  Andreas Kling  <awesomekling@apple.com>
2311
2312         Unreviewed debug build fix.
2313
2314         Remove ASSERT that the cached match is cacheable (we don't store that flag anymore.)
2315
2316         * css/CSSStyleSelector.cpp:
2317         (WebCore::CSSStyleSelector::findFromMatchedDeclarationCache):
2318
2319 2012-01-19  Robert Hogan  <robert@webkit.org>
2320
2321         Fix Debug build after r105433
2322
2323         Unreviewed, build fix.
2324
2325         * rendering/RenderTable.cpp:
2326         (WebCore::RenderTable::recalcCollapsedBorders):
2327
2328 2012-01-19  Andreas Kling  <awesomekling@apple.com>
2329
2330         CSSStyleSelector: Factor 'isCacheable' flag out of MatchedResult.
2331         <http://webkit.org/b/76376>
2332
2333         Reviewed by Antti Koivisto.
2334
2335         Break up the MatchResult struct into MatchResult and MatchRanges. The matched
2336         declaration cache only needs the ranges, so we save 4 bytes per entry.
2337
2338         * css/CSSStyleSelector.cpp:
2339         (WebCore::CSSStyleSelector::matchAllRules):
2340         (WebCore::CSSStyleSelector::matchUARules):
2341         (WebCore::CSSStyleSelector::pseudoStyleForElement):
2342         (WebCore::CSSStyleSelector::pseudoStyleRulesForElement):
2343         (WebCore::operator==):
2344         (WebCore::operator!=):
2345         (WebCore::CSSStyleSelector::findFromMatchedDeclarationCache):
2346         (WebCore::CSSStyleSelector::addToMatchedDeclarationCache):
2347         (WebCore::CSSStyleSelector::applyMatchedDeclarations):
2348         * css/CSSStyleSelector.h:
2349         (WebCore::CSSStyleSelector::MatchRanges::MatchRanges):
2350         (WebCore::CSSStyleSelector::MatchResult::MatchResult):
2351
2352 2012-01-19  Eric Carlson  <eric.carlson@apple.com>
2353
2354         https://bugs.webkit.org/show_bug.cgi?id=75192
2355
2356         Reviewed by Darin Adler.
2357
2358         Notify the media element when tracks are added to and removed from a document instead of
2359         a tree because we don't want to trigger loading unless a track element is in the document.
2360
2361         Test: media/track/track-delete-during-setup.html
2362
2363         * html/HTMLMediaElement.cpp:
2364         (WebCore::HTMLMediaElement::trackWasRemoved): Renamed from trackWillBeRemoved because it is
2365             now called after removal.
2366         * html/HTMLMediaElement.h:
2367
2368         * html/HTMLTrackElement.cpp:
2369         (WebCore::HTMLTrackElement::insertedIntoDocument): Was insertedIntoTree. Use this instead
2370             because we care about when a track is inserted and removed from a document, not a tree.
2371         (WebCore::HTMLTrackElement::removedFromDocument): Ditto.
2372         * html/HTMLTrackElement.h:
2373
2374 2012-01-18  Robert Hogan  <robert@webkit.org>
2375
2376         Hit ASSERTION FAILED: table()->collapseBorders() on techcrunch.com
2377         https://bugs.webkit.org/show_bug.cgi?id=76405
2378
2379         Reviewed by Julien Chaffraix.
2380
2381         Tests: fast/css/nested-table-with-collapsed-borders.html
2382
2383         Change recalcCollapsedBorders() so that it only collects border values for the current
2384         table. Calculating the borders for nested tables was wrong as well as wasting cycles, though it would never
2385         have impacted rendering since a cell only paints the borders that match its own.
2386
2387         * rendering/RenderTable.cpp:
2388         (WebCore::RenderTable::recalcCollapsedBorders):
2389
2390 2012-01-18  Jer Noble  <jer.noble@apple.com>
2391
2392         Make WebAudio API const-correct.
2393         https://bugs.webkit.org/show_bug.cgi?id=76573
2394
2395         Reviewed by Daniel Bates.
2396
2397         No new tests; no net change in functionality, so covered by existing tests.
2398
2399         The non-const data() accessor was renamed mutableData() to expose const-correctness
2400         bugs during compile time:
2401         * platform/audio/AudioChannel.h:
2402         (WebCore::AudioChannel::mutableData):
2403
2404         The following functions were made const correct:
2405         * platform/audio/AudioArray.h:
2406         (WebCore::AudioArray::copyToRange):
2407         * platform/audio/AudioBus.h:
2408         (WebCore::AudioBus::createBufferFromRange):
2409         (WebCore::AudioBus::createBySampleRateConverting):
2410         (WebCore::AudioBus::createByMixingToMono):
2411         * platform/audio/FFTConvolver.cpp:
2412         (WebCore::FFTConvolver::process):
2413         * platform/audio/FFTConvolver.h:
2414         * platform/audio/FFTFrame.cpp:
2415         (WebCore::FFTFrame::doPaddedFFT):
2416         (WebCore::FFTFrame::doFFT):
2417         * platform/audio/FFTFrame.h:
2418         * platform/audio/ReverbConvolverStage.cpp:
2419         (WebCore::ReverbConvolverStage::ReverbConvolverStage):
2420         (WebCore::ReverbConvolverStage::process):
2421         * platform/audio/ReverbConvolverStage.h:
2422         * platform/audio/ReverbInputBuffer.cpp:
2423         (WebCore::ReverbInputBuffer::write):
2424         * platform/audio/ReverbInputBuffer.h:
2425         * platform/audio/SincResampler.cpp:
2426         (WebCore::SincResampler::process):
2427         * platform/audio/SincResampler.h:
2428         * platform/audio/ZeroPole.cpp:
2429         (WebCore::ZeroPole::process):
2430         * platform/audio/ZeroPole.h:
2431         * platform/audio/AudioBus.cpp:
2432         (WebCore::AudioBus::channelByType):
2433         * platform/audio/AudioBus.h:
2434         (WebCore::AudioBus::gain):
2435         * platform/audio/AudioDSPKernelProcessor.cpp:
2436         (WebCore::AudioDSPKernelProcessor::process):
2437         * platform/audio/AudioDSPKernelProcessor.h:
2438         * platform/audio/AudioProcessor.h:
2439         * platform/audio/DynamicsCompressor.cpp:
2440         (WebCore::DynamicsCompressor::process):
2441         * platform/audio/DynamicsCompressor.h:
2442         * platform/audio/DynamicsCompressorKernel.cpp:
2443         (WebCore::DynamicsCompressorKernel::process):
2444         * platform/audio/DynamicsCompressorKernel.h:
2445         * platform/audio/EqualPowerPanner.cpp:
2446         (WebCore::EqualPowerPanner::pan):
2447         * platform/audio/EqualPowerPanner.h:
2448         * platform/audio/HRTFElevation.h:
2449         (WebCore::HRTFElevation::numberOfAzimuths):
2450         * platform/audio/HRTFPanner.cpp:
2451         (WebCore::HRTFPanner::pan):
2452         * platform/audio/HRTFPanner.h:
2453         * platform/audio/Panner.h:
2454         * platform/audio/Reverb.cpp:
2455         (WebCore::Reverb::process):
2456         * platform/audio/Reverb.h:
2457         * platform/audio/ReverbConvolver.cpp:
2458         (WebCore::ReverbConvolver::process):
2459         * platform/audio/ReverbConvolver.h:
2460         * platform/audio/ffmpeg/FFTFrameFFMPEG.cpp:
2461         (WebCore::FFTFrame::doFFT):
2462         * platform/audio/mkl/FFTFrameMKL.cpp:
2463         (WebCore::FFTFrame::doFFT):
2464
2465         The following functions were modified to use the renamed mutableData() accessor:
2466         * platform/audio/AudioBus.cpp:
2467         (WebCore::AudioBus::processWithGainFromMonoStereo):
2468         (WebCore::AudioBus::copyWithSampleAccurateGainValuesFrom):
2469         * platform/audio/AudioChannel.cpp:
2470         (WebCore::AudioChannel::scale):
2471         (WebCore::AudioChannel::copyFrom):
2472         (WebCore::AudioChannel::copyFromRange):
2473         (WebCore::AudioChannel::sumFrom):
2474         * platform/audio/AudioDSPKernelProcessor.cpp:
2475         (WebCore::AudioDSPKernelProcessor::process):
2476         * platform/audio/AudioResampler.cpp:
2477         (WebCore::AudioResampler::process):
2478         * platform/audio/DynamicsCompressor.cpp:
2479         (WebCore::DynamicsCompressor::process):
2480         * platform/audio/EqualPowerPanner.cpp:
2481         (WebCore::EqualPowerPanner::pan):
2482         * platform/audio/HRTFKernel.cpp:
2483         (WebCore::extractAverageGroupDelay):
2484         (WebCore::HRTFKernel::HRTFKernel):
2485         (WebCore::HRTFKernel::createImpulseResponse):
2486         * platform/audio/HRTFPanner.cpp:
2487         (WebCore::HRTFPanner::pan):
2488         * platform/audio/MultiChannelResampler.cpp:
2489         (WebCore::MultiChannelResampler::process):
2490         * platform/audio/Reverb.cpp:
2491         (WebCore::Reverb::process):
2492         * platform/audio/ReverbConvolver.cpp:
2493         (WebCore::ReverbConvolver::ReverbConvolver):
2494         (WebCore::ReverbConvolver::process):
2495         * platform/audio/mac/AudioFileReaderMac.cpp:
2496         (WebCore::AudioFileReader::createBus):
2497         * platform/audio/mac/FFTFrameMac.cpp:
2498         (WebCore::FFTFrame::doFFT):
2499         * webaudio/AudioBufferSourceNode.cpp:
2500         (WebCore::AudioBufferSourceNode::process):
2501         (WebCore::AudioBufferSourceNode::renderFromBuffer):
2502         * webaudio/BiquadProcessor.cpp:
2503         (WebCore::BiquadProcessor::process):
2504         * webaudio/JavaScriptAudioNode.cpp:
2505         (WebCore::JavaScriptAudioNode::process):
2506         * webaudio/OfflineAudioDestinationNode.cpp:
2507         (WebCore::OfflineAudioDestinationNode::render):
2508         * webaudio/RealtimeAnalyser.cpp:
2509         (WebCore::RealtimeAnalyser::writeInput):
2510         * webaudio/WaveShaperProcessor.cpp:
2511         (WebCore::WaveShaperProcessor::process):
2512
2513 2012-01-19  Vsevolod Vlasov  <vsevik@chromium.org>
2514
2515         Unreviewed, inspector closure compilation fix.
2516
2517         * inspector/front-end/ScriptsPanel.js:
2518         * inspector/front-end/TabbedEditorContainer.js:
2519
2520 2012-01-19  David Hyatt  <hyatt@apple.com>
2521
2522         https://bugs.webkit.org/show_bug.cgi?id=76644
2523
2524         Before landing support for centering, fix the keyword value to match the latest draft.
2525         The new keyword is "contain" instead of "bounds."
2526
2527         Revised the existing parsing tests to reflect the updated value.
2528
2529         Reviewed by Dan Bernstein.
2530
2531         * css/CSSParser.cpp:
2532         (WebCore::CSSParser::parseValue):
2533         * css/CSSPrimitiveValueMappings.h:
2534         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2535         (WebCore::CSSPrimitiveValue::operator LineGridSnap):
2536         * css/CSSValueKeywords.in:
2537         * rendering/style/RenderStyleConstants.h:
2538
2539 2012-01-19  Joi Sigurdsson  <joi@chromium.org>
2540
2541         Enable use of precompiled headers in Chromium port on Windows.
2542
2543         Bug 76381 - Use precompiled headers in Chromium port on Windows
2544         https://bugs.webkit.org/show_bug.cgi?id=76381
2545
2546         Reviewed by Tony Chang.
2547
2548         No new tests needed; if the change builds and existing tests pass
2549         that should provide enough coverage.
2550
2551         * WebCore.gyp/WebCore.gyp: Include WinPrecompile.gypi.
2552
2553 2012-01-19  Vsevolod Vlasov  <vsevik@chromium.org>
2554
2555         Web Inspector: Switching tabs in TabbedEditorContainer should reveal selected script in navigator.
2556         https://bugs.webkit.org/show_bug.cgi?id=76636
2557
2558         Reviewed by Pavel Feldman.
2559
2560         Renamed FileSelector's ScriptSelected event into FileSelected, added EditorSelected
2561         event to EditorContainer.
2562         Renamed _showSourceFrame into _showFile.
2563         Made _uiSourceCodeRemoved reuse _removeSourceFrame.
2564
2565         * inspector/front-end/ScriptsNavigator.js:
2566         (WebInspector.ScriptsNavigator.prototype.scriptSelected):
2567         * inspector/front-end/ScriptsPanel.js:
2568         (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
2569         (WebInspector.ScriptsPanel.prototype._showAndRevealInFileSelector):
2570         (WebInspector.ScriptsPanel.prototype._editorSelected):
2571         (WebInspector.ScriptsPanel.prototype._fileSelected):
2572         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._goBack):
2573         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._goForward):
2574         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._filesSelectChanged):
2575         * inspector/front-end/TabbedEditorContainer.js:
2576         (WebInspector.TabbedEditorContainer):
2577         (WebInspector.TabbedEditorContainer.prototype._tabSelected):
2578
2579 2012-01-19  Mihnea Ovidenie  <mihnea@adobe.com>
2580
2581         [CSSRegions]Add support for background-color in region styling
2582         https://bugs.webkit.org/show_bug.cgi?id=71488
2583
2584         Reviewed by David Hyatt.
2585
2586         This patch enables region styling again. The region styling tests were also added back. 
2587         With the improvements from https://bugs.webkit.org/show_bug.cgi?id=76265, hopefully we will not see the same 3% regressions
2588         in performance.
2589
2590         * rendering/RenderObject.h:
2591         (WebCore::RenderObject::style):
2592
2593 2012-01-16  Jer Noble  <jer.noble@apple.com>
2594
2595         Crash at WebCore::MediaControlRootElement::makeOpaque + 97
2596         https://bugs.webkit.org/show_bug.cgi?id=76391
2597
2598         Reviewed by John Sullivan.
2599
2600         No new tests; Speculative fix for crash.
2601
2602         Crash report data suggests this crash is occurring as the document is being
2603         closed.  Check the nullity of document()->page() before deref-ing.
2604
2605         * html/shadow/MediaControlElements.cpp:
2606         (WebCore::MediaControlPanelElement::makeOpaque):
2607
2608 2012-01-19  Ken Buchanan <kenrb@chromium.org>
2609
2610         Layout Test fast/text/international/spaces-combined-in-vertical-text.html is failing
2611         https://bugs.webkit.org/show_bug.cgi?id=75787
2612
2613         Reviewed by Simon Fraser.
2614
2615         This is a tweak to my patch in r104322. On some platforms
2616         RenderCombineText::combineText() can abort early during inline
2617         iteration, causing this loop in skipLeadingWhitespace to spin,
2618         hence the layout test timeouts. This patch accounts for that
2619         condition and makes the loop iteration more robust.
2620
2621         No new test because this is fixing a failure on an existing test.
2622
2623         * rendering/RenderBlockLineLayout.cpp:
2624         (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
2625
2626 2012-01-19  Jer Noble  <jer.noble@apple.com>
2627
2628         HRTFPanner not rendering correctly on mac port
2629         https://bugs.webkit.org/show_bug.cgi?id=76397
2630
2631         Reviewed by Eric Carlson.
2632
2633         No new tests; HRTF results are currently not testable.
2634
2635         Re-generate the Composite.wav file from its constituent azimuth & elevation files.
2636
2637         * platform/audio/resources/Composite.wav:
2638
2639 2012-01-19  David Hyatt  <hyatt@apple.com>
2640
2641         https://bugs.webkit.org/show_bug.cgi?id=76577
2642         
2643         Fix crash when nested line grids are used. Make sure to bail out if no line grid
2644         is found rather than crashing.
2645
2646         Reviewed by Dan Bernstein.
2647
2648         Added fast/line-grid/line-grid-nested.html.
2649
2650         * rendering/LayoutState.cpp:
2651         (WebCore::LayoutState::establishLineGrid):
2652
2653 2012-01-18  Enrica Casucci  <enrica@apple.com>
2654
2655         editingAttributedStringFromRange in WebHTMLConverter does not handle NSUnderlineStyleAttributeName.
2656         https://bugs.webkit.org/show_bug.cgi?id=76588
2657         <rdar://problem/9325183>
2658
2659         Reviewed by Dan Bernstein.
2660
2661         Added TestWebKitAPI test.
2662
2663         * platform/mac/HTMLConverter.mm:
2664         (+[WebHTMLConverter editingAttributedStringFromRange:]):
2665
2666 2012-01-18  Alexander Pavlov  <apavlov@chromium.org>
2667
2668         Web Inspector: Implement screen resolution emulation backend
2669         https://bugs.webkit.org/show_bug.cgi?id=76532
2670
2671         Reviewed by Pavel Feldman.
2672
2673         The emulation affects [min-|max-]device-(width|height) media queries, window.screen.(width|height),
2674         and window.inner(Width|Height).
2675
2676         Test: inspector/styles/override-screen-size.html
2677
2678         * css/MediaQueryEvaluator.cpp:
2679         (WebCore::device_heightMediaFeatureEval): Apply device-height override if necessary.
2680         (WebCore::device_widthMediaFeatureEval): Apply device-width override if necessary.
2681         * inspector/Inspector.json:
2682         * inspector/InspectorCSSAgent.cpp:
2683         (WebCore::InspectorCSSAgent::InspectorCSSAgent):
2684         (WebCore::InspectorCSSAgent::startSelectorProfiler):
2685         (WebCore::InspectorCSSAgent::stopSelectorProfilerImpl):
2686         (WebCore::InspectorCSSAgent::willMatchRule):
2687         (WebCore::InspectorCSSAgent::didMatchRule):
2688         (WebCore::InspectorCSSAgent::willProcessRule):
2689         (WebCore::InspectorCSSAgent::didProcessRule):
2690         * inspector/InspectorInstrumentation.cpp:
2691         (WebCore::InspectorInstrumentation::applyScreenWidthOverrideImpl):
2692         (WebCore::InspectorInstrumentation::applyScreenHeightOverrideImpl):
2693         * inspector/InspectorInstrumentation.h:
2694         (WebCore::InspectorInstrumentation::applyScreenWidthOverride):
2695         (WebCore::InspectorInstrumentation::applyScreenHeightOverride):
2696         * inspector/InspectorPageAgent.cpp:
2697         (WebCore::InspectorPageAgent::InspectorPageAgent):
2698         (WebCore::InspectorPageAgent::restore):
2699         (WebCore::InspectorPageAgent::disable):
2700         (WebCore::InspectorPageAgent::setScreenSizeOverride):
2701         (WebCore::InspectorPageAgent::applyScreenWidthOverride):
2702         (WebCore::InspectorPageAgent::applyScreenHeightOverride):
2703         (WebCore::InspectorPageAgent::updateFrameViewFixedLayout):
2704         (WebCore::InspectorPageAgent::clearFrameViewFixedLayout):
2705         (WebCore::InspectorPageAgent::setFrameViewFixedLayout):
2706         * inspector/InspectorPageAgent.h:
2707         * page/DOMWindow.cpp:
2708         (WebCore::DOMWindow::innerHeight): Apply height override if necessary.
2709         (WebCore::DOMWindow::innerWidth): Apply width override if necessary.
2710         * page/Screen.cpp:
2711         (WebCore::Screen::height): Apply height override if necessary.
2712         (WebCore::Screen::width): Apply width override if necessary.
2713
2714 2012-01-18  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2715
2716         [Qt] Handle the layers visible rect calculation on the web process.
2717         https://bugs.webkit.org/show_bug.cgi?id=74720
2718
2719         Reviewed by Noam Rosenthal.
2720
2721         Remove all visible rect calculation related code from TextureMapperNode.
2722
2723         * platform/graphics/texmap/TextureMapperNode.cpp:
2724         * platform/graphics/texmap/TextureMapperNode.h:
2725
2726 2012-01-19  Vsevolod Vlasov  <vsevik@chromium.org>
2727
2728         Web Inspector: Improve focus switching in scripts panel.
2729         https://bugs.webkit.org/show_bug.cgi?id=76628
2730
2731         Reviewed by Pavel Feldman.
2732
2733         * inspector/front-end/Dialog.js:
2734         (WebInspector.Dialog.prototype._hide):
2735         * inspector/front-end/FilteredItemSelectionDialog.js:
2736         (WebInspector.FilteredItemSelectionDialog.prototype.onEnter):
2737         (WebInspector.JavaScriptOutlineDialog.prototype.selectItem):
2738         * inspector/front-end/ScriptsNavigator.js:
2739         (WebInspector.ScriptsNavigator.prototype.get defaultFocusedElement):
2740         * inspector/front-end/ScriptsPanel.js:
2741         (WebInspector.ScriptsPanel.prototype._showSourceLine):
2742
2743 2012-01-19  Vsevolod Vlasov  <vsevik@chromium.org>
2744
2745         Web Inspector: Add isSelfOrAnsector and isSelfOrDescendant methods to utilities.
2746         https://bugs.webkit.org/show_bug.cgi?id=76618
2747
2748         Added isSelfOrAncestor, isSelfOrDescendant and WebInspector.restoreFocusFromElement methods.
2749
2750         Reviewed by Pavel Feldman.
2751
2752         * inspector/front-end/Drawer.js:
2753         * inspector/front-end/HelpScreen.js:
2754         (WebInspector.HelpScreen.prototype._onBlur):
2755         * inspector/front-end/MetricsSidebarPane.js:
2756         (WebInspector.MetricsSidebarPane.prototype._handleKeyDown):
2757         * inspector/front-end/Popover.js:
2758         * inspector/front-end/ScriptsPanel.js:
2759         (WebInspector.ScriptsPanel.prototype.showUISourceCode):
2760         * inspector/front-end/StylesSidebarPane.js:
2761         ():
2762         * inspector/front-end/TextPrompt.js:
2763         (WebInspector.TextPrompt.prototype.detach):
2764         (WebInspector.TextPrompt.prototype.isCaretAtEndOfPrompt):
2765         * inspector/front-end/TextViewer.js:
2766         (WebInspector.TextEditorMainPanel.prototype._updateSelectionOnStartEditing):
2767         (WebInspector.TextEditorMainPanel.prototype._handleDOMUpdates):
2768         * inspector/front-end/UIUtils.js:
2769         (WebInspector.startEditing.cleanUpAfterEditing):
2770         (WebInspector.restoreFocusFromElement):
2771         * inspector/front-end/utilities.js:
2772         (Element.prototype.isInsertionCaretInside):
2773         ():
2774
2775 2012-01-19  Andreas Kling  <awesomekling@apple.com>
2776
2777         DynamicNodeList: Simplify internal Caches object.
2778         <http://webkit.org/b/76600>
2779
2780         Reviewed by Ryosuke Niwa.
2781
2782         Move m_caches from DynamicSubtreeNodeList and ChildNodeList up into DynamicNodeList.
2783         Remove the inheritance from RefCounted and store it simply as "Caches m_caches"
2784         This avoids one heap allocation per DynamicNodeList. Also reordered the Caches members
2785         to pack slightly better on 64-bit.
2786
2787         * dom/ChildNodeList.cpp:
2788         (WebCore::ChildNodeList::ChildNodeList):
2789         (WebCore::ChildNodeList::length):
2790         (WebCore::ChildNodeList::item):
2791         * dom/ChildNodeList.h:
2792         * dom/DynamicNodeList.cpp:
2793         (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
2794         (WebCore::DynamicSubtreeNodeList::length):
2795         (WebCore::DynamicSubtreeNodeList::itemForwardsFromCurrent):
2796         (WebCore::DynamicSubtreeNodeList::itemBackwardsFromCurrent):
2797         (WebCore::DynamicSubtreeNodeList::item):
2798         * dom/DynamicNodeList.h:
2799         (WebCore::DynamicNodeList::invalidateCache):
2800         * dom/Node.cpp:
2801         (WebCore::NodeRareData::clearChildNodeListCache):
2802
2803 2012-01-19  Vsevolod Vlasov  <vsevik@chromium.org>
2804
2805         Web Inspector: TabbedPane closeAllTabs does not close all tabs.
2806         https://bugs.webkit.org/show_bug.cgi?id=76624
2807
2808         Reviewed by Pavel Feldman.
2809
2810         * inspector/front-end/ScriptsPanel.js:
2811         * inspector/front-end/TabbedPane.js:
2812         (WebInspector.TabbedPane.prototype.closeAllTabs):
2813
2814 2012-01-18  Rob Buis  <rbuis@rim.com>
2815
2816         image/pjpeg not supported for decoding on BlackBerry platform
2817         https://bugs.webkit.org/show_bug.cgi?id=76595
2818
2819         Reviewed by Antonio Gomes.
2820
2821         Add image/pjpeg as one of the supported types for image decoding on BlackBerry platform.
2822
2823         * platform/MIMETypeRegistry.cpp:
2824         (WebCore::initializeSupportedImageMIMETypes):
2825
2826 2012-01-19  Sheriff Bot  <webkit.review.bot@gmail.com>
2827
2828         Unreviewed, rolling out r105402.
2829         http://trac.webkit.org/changeset/105402
2830         https://bugs.webkit.org/show_bug.cgi?id=76623
2831
2832         Layout test problems (Requested by WildFox on #webkit).
2833
2834         * css/svg.css:
2835         (svg):
2836         * rendering/RenderBox.h:
2837         (WebCore::RenderBox::computeIntrinsicRatioInformation):
2838         * rendering/RenderBoxModelObject.cpp:
2839         (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
2840         * rendering/RenderImage.cpp:
2841         (WebCore::RenderImage::computeReplacedLogicalWidth):
2842         (WebCore::RenderImage::computeIntrinsicRatioInformation):
2843         * rendering/RenderImage.h:
2844         * rendering/RenderReplaced.cpp:
2845         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
2846         (WebCore::RenderReplaced::logicalHeightIsAuto):
2847         (WebCore::RenderReplaced::computeReplacedLogicalHeight):
2848         * rendering/RenderReplaced.h:
2849         * rendering/svg/RenderSVGRoot.cpp:
2850         (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation):
2851         (WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
2852         (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
2853         * rendering/svg/RenderSVGRoot.h:
2854         * rendering/svg/RenderSVGViewportContainer.h:
2855         * svg/SVGLengthContext.cpp:
2856         (WebCore::SVGLengthContext::determineViewport):
2857         * svg/SVGSVGElement.cpp:
2858         (WebCore::SVGSVGElement::viewport):
2859         (WebCore::SVGSVGElement::parseMappedAttribute):
2860         (WebCore::updateCSSForAttribute):
2861         (WebCore::SVGSVGElement::svgAttributeChanged):
2862         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
2863         (WebCore::SVGSVGElement::currentViewBoxRect):
2864         * svg/SVGSVGElement.h:
2865         * svg/graphics/SVGImage.cpp:
2866         (WebCore::SVGImage::size):
2867         (WebCore::SVGImage::computeIntrinsicDimensions):
2868         * svg/graphics/SVGImage.h:
2869
2870 2012-01-19  Alexis Menard  <alexis.menard@openbossa.org>
2871
2872         Strange Result for getComputedStyle on borderWidth set in em
2873         https://bugs.webkit.org/show_bug.cgi?id=18294
2874
2875         Reviewed by Tony Chang.
2876
2877         BorderValue stores its width on a 12 bits unsigned. This patch 
2878         increase it to 27. The patch also modify the way to set the 
2879         width or to get it, we now use a unsigned rather than a short.
2880
2881         Test: fast/css/border-width-large.html
2882
2883         * css/CSSPrimitiveValue.cpp:
2884         (WebCore::CSSPrimitiveValue::computeLength):
2885         * css/CSSStyleApplyProperty.cpp:
2886         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
2887         * page/animation/AnimationBase.cpp:
2888         (WebCore::blendFunc):
2889         (WebCore::AnimationBase::ensurePropertyMap):
2890         * platform/animation/AnimationUtilities.h:
2891         (WebCore::blend):
2892         * rendering/RenderTheme.cpp:
2893         (WebCore::RenderTheme::adjustStyle):
2894         * rendering/style/BorderData.h:
2895         (WebCore::BorderData::borderLeftWidth):
2896         (WebCore::BorderData::borderRightWidth):
2897         (WebCore::BorderData::borderTopWidth):
2898         (WebCore::BorderData::borderBottomWidth):
2899         * rendering/style/BorderValue.h:
2900         (WebCore::BorderValue::width):
2901         * rendering/style/RenderStyle.cpp:
2902         * rendering/style/RenderStyle.h:
2903         (WebCore::RenderStyleBitfields::borderLeftWidth):
2904         (WebCore::RenderStyleBitfields::borderRightWidth):
2905         (WebCore::RenderStyleBitfields::borderTopWidth):
2906         (WebCore::RenderStyleBitfields::borderBottomWidth):
2907         (WebCore::RenderStyleBitfields::setBorderLeftWidth):
2908         (WebCore::RenderStyleBitfields::setBorderRightWidth):
2909         (WebCore::RenderStyleBitfields::setBorderTopWidth):
2910         (WebCore::RenderStyleBitfields::setBorderBottomWidth):
2911         (WebCore::RenderStyleBitfields::initialBorderWidth):
2912         (WebCore::RenderStyleBitfields::initialColumnRuleWidth):
2913         (WebCore::RenderStyleBitfields::initialOutlineWidth):
2914
2915 2012-01-18  Nikolas Zimmermann  <nzimmermann@rim.com>
2916
2917         Differentiate between SVG/CSS width/height attributes/properties
2918         https://bugs.webkit.org/show_bug.cgi?id=76447
2919
2920         Reviewed by Antti Koivisto.
2921
2922         Remove a gazillion of hacks out of our SVG implementation, by correctly differentiating between the
2923         SVG width/height attributes and the CSS width/height properties. They need to be treated independently
2924         when handling the intrinsic size negotiation, according to both CSS 2.1 & SVG 1.1 2nd Edition specs.
2925
2926         Fixes several bugs in the LayoutTests/svg/custom/*object*sizing tests, we now match Opera perfectly. FF still has some bugs, and IE9 as well.
2927
2928         * css/svg.css: Remove hardcoded, width/height: 100% on <svg>.
2929         * rendering/RenderBox.h:
2930         (WebCore::RenderBox::computeIntrinsicRatioInformation): Make 'intrinsicRatio' a float, and add 'intrinsicSize' as seperated FloatSize, to avoid confusion.
2931         * rendering/RenderBoxModelObject.cpp:
2932         (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions): Add forgotton case for percentage intrinsic sizes, that lead to workarounds in other places, that can now be removed.
2933         * rendering/RenderImage.cpp:
2934         (WebCore::RenderImage::computeReplacedLogicalWidth): Directly use imageHasRelativeWidth/Height(), it does differentiate between SVG/CSS width/height attributes/properties now.
2935         (WebCore::RenderImage::computeIntrinsicRatioInformation): Adapt to 'intrinsicRatio' argument change.
2936         * rendering/RenderImage.h: Ditto.
2937         * rendering/RenderReplaced.cpp: Refactor existing code, break out firstContainingBlockWithLogicalWidth/hasReplacedLogicalWidth/hasReplacedLogicalHeight/hasAutoHeightOrContainingBlockWithAutoHeight.
2938         (WebCore::firstContainingBlockWithLogicalWidth): Refactored.
2939         (WebCore::RenderReplaced::hasReplacedLogicalWidth): Refactored, and exported, so SVGSVGElement::widthAttributeEstablishesViewport() can use it.
2940         (WebCore::hasAutoHeightOrContainingBlockWithAutoHeight): Refactored.
2941         (WebCore::RenderReplaced::hasReplacedLogicalHeight): Refactored, and exported, so SVGSVGElement::heightAttributeEstablishesViewport() can use it.
2942         (WebCore::RenderReplaced::computeReplacedLogicalWidth): Adapt to 'intrinsicRatio' changes ('intrinsicSize' is now decoupled from it). Refactor so that RenderSVGRoot can directly use it as well!
2943         (WebCore::RenderReplaced::computeReplacedLogicalHeight): Ditto.
2944         * rendering/RenderReplaced.h:
2945         * rendering/svg/RenderSVGRoot.cpp:
2946         (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation): Only determine the intrinsic size & ratio using the SVG width/height attributes, not the CSS width/height properties, as it's specified.
2947         (WebCore::resolveLengthAttributeForSVG): Helper function for computeReplacedLogicalWidth/Height, that scales Length values that come from SVG width/height attributes.
2948         (WebCore::RenderSVGRoot::computeReplacedLogicalWidth): Finally remove home-brewn size computation logic - it can be fully shared with RenderReplaced now that we inherit from it.
2949         (WebCore::RenderSVGRoot::computeReplacedLogicalHeight): Ditto.
2950         * rendering/svg/RenderSVGRoot.h:
2951         * rendering/svg/RenderSVGViewportContainer.h:
2952         (WebCore::RenderSVGViewportContainer::viewport): Export viewport() for easier length resolution.
2953         * svg/SVGLengthContext.cpp:
2954         (WebCore::SVGLengthContext::determineViewport): Finally clean up this hell, and make it easy to understand. Only need to resolve lengths against either RenderSVGRoot or RenderSVGViewportContainer now.
2955         * svg/SVGSVGElement.cpp: 
2956         (WebCore::SVGSVGElement::viewport): Remove wrong code and disable this. Its not used, and we have no test coverage for it. Its current implementation didn't make any sense.
2957         (WebCore::SVGSVGElement::parseMappedAttribute): Remove hacks mapping SVG width/height attributes to CSS properties.
2958         (WebCore::SVGSVGElement::svgAttributeChanged): Ditto.
2959         (WebCore::SVGSVGElement::localCoordinateSpaceTransform): Refactored.
2960         (WebCore::SVGSVGElement::currentViewBoxRect): Ditto.
2961         (WebCore::SVGSVGElement::currentViewportSize): Ditto.
2962         (WebCore::SVGSVGElement::widthAttributeEstablishesViewport): Main logic determining if the SVG or CSS properties establish the viewport -  a direct transliteration from the spec.
2963         (WebCore::SVGSVGElement::heightAttributeEstablishesViewport): Ditto.
2964         (WebCore::SVGSVGElement::intrinsicWidth): Helper.
2965         (WebCore::SVGSVGElement::intrinsicHeight): Ditto.
2966         * svg/SVGSVGElement.h:
2967         * svg/graphics/SVGImage.cpp:
2968         (WebCore::SVGImage::size): Cleanup code.
2969         (WebCore::SVGImage::hasRelativeWidth): Added, avoids hacks in RenderBoxModelObject.
2970         (WebCore::SVGImage::hasRelativeHeight): Ditto.
2971         (WebCore::SVGImage::computeIntrinsicDimensions): Make use of new SVGSVGElement::computeIntrinsicDimensions.
2972         * svg/graphics/SVGImage.h:
2973
2974 2012-01-19  Ryosuke Niwa  <rniwa@webkit.org>
2975
2976         drop event isn't fired for contentEditable in edit drag
2977         https://bugs.webkit.org/show_bug.cgi?id=57185
2978
2979         Reviewed by Adam Barth.
2980
2981         Dispatch drop and dragend events after edit drag per HTML5 spec:
2982         http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#drag-and-drop-processing-model
2983
2984         There are two major differences between the spec and WebKit's new behavior:
2985
2986         While the spec says we have to insert the dragged contents immediately after dispatching drop event
2987         and delete the source in the default event handler of dragend event, doing so in WebKit is extremely
2988         difficult because of the way we manage the selection. Instead, we continue to delete the source
2989         and insert the dragged contents immediately after the drop event; this behavior matches that of Firefox 9.
2990
2991         When the dragged contents and the destination of the move is in the same text node, ReplaceSelectionCommand
2992         may end up replacing it with a new text node. But this removal causes a problem when EventHandler uses
2993         the node to dispatch dragend event because the node is "orphaned" from its parent at that point. To mitigate
2994         this issue, we update the dragState's m_dragSrc when the node is orphaned by the edit drag. While this behavior
2995         may differ from the spec and other browsers, not delivering dragend to the editing host seems strictly worse than
2996         dispatching it at the slightly wrong target.
2997
2998         Tests: fast/events/moving-text-should-fire-drop-and-dragend-events-2.html
2999                fast/events/moving-text-should-fire-drop-and-dragend-events.html
3000
3001         * page/DragController.cpp:
3002         (WebCore::DragController::performDrag): Dispatch drop event even when m_isHandlingDrag is true as long
3003         as DragDestinationActionDHTML is an acceptable action.
3004         (WebCore::DragController::concludeEditDrag): Call updateDragStateAfterEditDragIfNeeded after inserting
3005         the dragged contents. This is necessary when ReplaceSelectionCommand or MoveSelectionCommand modifies
3006         the source node while inserting the dragged contents.
3007         * page/EventHandler.cpp:
3008         (WebCore::EventHandler::performDragAndDrop): Clear the drag state only if drop event's default action
3009         was prevented so that we dispatch dragevent event later.
3010         (WebCore::EventHandler::updateDragStateAfterEditDragIfNeeded): Update dragState's m_dragSrc when the node
3011         is orphaned. See above for the rationale.
3012         * page/EventHandler.h:
3013
3014 2012-01-18  Kinuko Yasuda  <kinuko@chromium.org>
3015
3016         Cleanup: Move chrome-specific filesystem type handling code (for FileSystem API) under chromium directory
3017         https://bugs.webkit.org/show_bug.cgi?id=76551
3018
3019         Reviewed by Darin Fisher.
3020
3021         Moved the implementation of crackFileSystemURL() and toURL() from
3022         WebCore/fileapi/DOMFileSystemBase into WebCore/platform/AsyncFileSystem
3023         so that each platform can extend/implement their behavior if necessary.
3024
3025         No new tests since this patch has no functionality changes. (Existing
3026         tests should pass)
3027
3028         * fileapi/DOMFileSystemBase.cpp: Moved the implementation of
3029         crackFileSystemURL() to AsyncFileSystem
3030         (WebCore::DOMFileSystemBase::crackFileSystemURL):
3031         * fileapi/DOMFileSystemBase.h:
3032         * fileapi/EntryBase.cpp: Moved the implementation of toURL() to AsyncFileSystem
3033         (WebCore::EntryBase::toURL):
3034         * page/DOMWindow.cpp: Removed chrome-specific type handling code.
3035         (WebCore::DOMWindow::webkitRequestFileSystem):
3036         * page/DOMWindow.h: Removed chrome-specific filesystem type
3037         (EXTERNAL).
3038         * platform/AsyncFileSystem.cpp: Added default implementation of toURL() and crackFileSystemURL()
3039         (WebCore::AsyncFileSystem::toURL):
3040         (WebCore::AsyncFileSystem::crackFileSystemURL):
3041         * platform/AsyncFileSystem.h:
3042         * workers/WorkerContext.cpp: Removed chrome-specific type handling code.
3043         (WebCore::WorkerContext::webkitRequestFileSystem):
3044         (WebCore::WorkerContext::webkitRequestFileSystemSync):
3045
3046 2012-01-19  Mihnea Ovidenie  <mihnea@adobe.com>
3047
3048         Cache RenderStyle pointer as a method to avoid performance regression for region styling
3049         https://bugs.webkit.org/show_bug.cgi?id=76265
3050
3051         Reviewed by David Hyatt.
3052
3053         No new tests since this is just refactoring.
3054         When region styling was enabled in https://bugs.webkit.org/show_bug.cgi?id=71488,
3055         it introduced a performance regression due to the change of RenderObject::style() method.
3056         This patch tries to avoid a new performance regression when region styling will be enabled again.
3057
3058         * rendering/RenderBlock.cpp:
3059         (WebCore::RenderBlock::MarginInfo::MarginInfo):
3060         (WebCore::RenderBlock::styleWillChange):
3061         (WebCore::RenderBlock::layoutBlock):
3062         (WebCore::RenderBlock::layoutBlockChildren):
3063         (WebCore::RenderBlock::layoutBlockChild):
3064         (WebCore::RenderBlock::computePreferredLogicalWidths):
3065         (WebCore::getBorderPaddingMargin):
3066         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
3067         (WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
3068         * rendering/RenderBlockLineLayout.cpp:
3069         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
3070         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
3071         * rendering/RenderBox.cpp:
3072         (WebCore::RenderBox::willBeDestroyed):
3073         (WebCore::RenderBox::styleWillChange):
3074         (WebCore::RenderBox::styleDidChange):
3075         (WebCore::RenderBox::updateBoxModelInfoFromStyle):
3076         (WebCore::RenderBox::computeRectForRepaint):
3077         (WebCore::RenderBox::computeLogicalWidthInRegion):
3078         (WebCore::RenderBox::computeLogicalWidthUsing):
3079         (WebCore::RenderBox::computeLogicalHeight):
3080         (WebCore::RenderBox::computePercentageLogicalHeight):
3081         (WebCore::RenderBox::computePositionedLogicalHeight):
3082         * rendering/RenderBoxModelObject.cpp:
3083         (WebCore::RenderBoxModelObject::styleWillChange):
3084         (WebCore::RenderBoxModelObject::updateBoxModelInfoFromStyle):
3085         * rendering/RenderInline.cpp:
3086         (WebCore::RenderInline::styleDidChange):
3087         * rendering/RenderText.cpp:
3088         (WebCore::RenderText::styleDidChange):
3089         (WebCore::RenderText::computePreferredLogicalWidths):
3090
3091 2012-01-19  Kazuhiro Inaba  <kinaba@chromium.org>
3092
3093         [Chromium] Random characters got rendered as empty boxes or with incorrect glyphs even when a font is present
3094         https://bugs.webkit.org/show_bug.cgi?id=76508
3095
3096         Reviewed by Kent Tamura.
3097
3098         Wrapped GetGlyphIndices() API calls so that when they failed we trigger font
3099         loading outside the sandbox and retry the call.
3100
3101         No new auto tests since the bug involves the system's occasional cache behavior
3102         and thus there's no reliable way to reproduce and test the situation.
3103
3104         * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
3105         (WebCore::getGlyphIndices):
3106         GDI call wrapper ensuring fonts to be loaded.
3107         (WebCore::initSpaceGlyph):
3108         Changed to use the wrapper function.
3109         (WebCore::fillBMPGlyphs):
3110         Changed to use the wrapper function.
3111         Introduced scoped HDC management by HWndDC.
3112         (WebCore::GlyphPage::fill):
3113
3114 2012-01-19  Adam Barth  <abarth@webkit.org>
3115
3116         createAttributeNS should understand that "xmlns" is allowed in the http://www.w3.org/2000/xmlns/
3117         https://bugs.webkit.org/show_bug.cgi?id=76579
3118
3119         Reviewed by Eric Seidel.
3120
3121         This patch cleans up a tiny corner case involving the (somewhat
3122         magical) xmlns attribute that we uncovered when working on
3123         setAttributeNS.
3124
3125         Tests: fast/dom/Document/createAttributeNS-namespace-err.html
3126
3127         * dom/Document.cpp:
3128         (WebCore::Document::importNode):
3129         (WebCore::Document::hasValidNamespaceForElements):
3130         (WebCore::Document::hasValidNamespaceForAttributes):
3131         (WebCore::Document::createElementNS):
3132         (WebCore::Document::createAttributeNS):
3133         * dom/Document.h:
3134         * dom/Element.cpp:
3135         (WebCore::Element::setAttributeNS):
3136
3137 2012-01-19  Roland Steiner  <rolandsteiner@chromium.org>
3138
3139         Unreviewed build fix for DEBUG: remove comparison of an unsigned variable with '>= 0' in ASSERT.
3140
3141         No new tests. (no functionality change)
3142
3143         * webaudio/AudioNodeOutput.cpp:
3144         (WebCore::AudioNodeOutput::AudioNodeOutput):
3145
3146 2012-01-18  Li Yin  <li.yin@intel.com>
3147
3148         [v8] Low efficiency of writing long string from web application to plugin.
3149         https://bugs.webkit.org/show_bug.cgi?id=76592
3150
3151         The efficiency will be improved by 300 times in the best case, when the
3152         size of string reaches 1MB.
3153
3154         Reviewed by Adam Barth.
3155
3156         * bindings/v8/V8NPUtils.cpp:
3157         (WebCore::convertV8ObjectToNPVariant):
3158
3159 2012-01-18  Adam Barth  <abarth@webkit.org>
3160
3161         Assigning to Element.prefix should throw exception when using illegal characters
3162         https://bugs.webkit.org/show_bug.cgi?id=76589
3163
3164         Reviewed by Eric Seidel.
3165
3166         This patch fixes a FIXME and implements the INVALID_CHARACTER_ERR
3167         exception described in
3168         http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-NodeNSPrefix
3169
3170         Tests: fast/dom/Element/prefix-setter-exception.html
3171
3172         * dom/Node.cpp:
3173         (WebCore::isValidNameStartCharacter):
3174         (WebCore::isValidNameCharacter):
3175         (WebCore::hasInvalidValidNameCharacters):
3176         (WebCore::Node::checkSetPrefix):
3177
3178 2012-01-18  Shinya Kawanaka  <shinyak@google.com>
3179
3180         ShadowContent query should be able to have fallback elements.
3181         https://bugs.webkit.org/show_bug.cgi?id=75306
3182
3183         Reviewed by Hajime Morita.
3184
3185         When no elements are selected by a shadow content element selector query,
3186         light children are selected as a fallback elements.
3187
3188         Test: fast/dom/shadow/shadow-contents-fallback.html
3189
3190         * dom/NodeRenderingContext.cpp:
3191         (WebCore::NodeRenderingContext::NodeRenderingContext):
3192           Considers fallback phase. When no elements are chosen, the phase is set to 'fallback'.
3193         (WebCore::NodeRenderingContext::nextRenderer):
3194           Takes fallback phase into account.
3195         (WebCore::NodeRenderingContext::previousRenderer): ditto.
3196         * dom/NodeRenderingContext.h:
3197         * html/shadow/HTMLContentElement.cpp:
3198         (WebCore::HTMLContentElement::attach):
3199           Calculates inclusions before attaching light children.
3200         * html/shadow/HTMLContentElement.h:
3201         (WebCore::HTMLContentElement::hasInclusion):
3202
3203 2012-01-18  Kent Tamura  <tkent@chromium.org>
3204
3205         REGRESSION(r100111): A 'change' event does not fire when a mouse drag
3206         occurs to switch elements in a listbox <select>
3207         https://bugs.webkit.org/show_bug.cgi?id=76244
3208
3209         Reviewed by Hajime Morita.
3210
3211         Test: fast/forms/select/listbox-drag-in-non-multiple.html
3212
3213         * html/HTMLSelectElement.cpp:
3214         (WebCore::HTMLSelectElement::updateSelectedState):
3215         Do not update m_activeSelectionState for non-multiple <select>.
3216         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
3217         Use setActiveSelection*Index() and updateListBoxSelection(true) instead
3218         of updateSelectedState() because updateSelectedState() updates
3219         m_lastOnChangeSelection and will prevent the mouseup handler from
3220         dispatching 'change' event.
3221         We should not call listBoxOnChange() in the mousemove handler in order
3222         to align the behavior of IE and Firefox.
3223
3224 2012-01-18  Eric Seidel  <eric@webkit.org>
3225
3226         setAttributeNS should comply with the obscure rules of DOM2, just like createAttributeNS and createElementNS do
3227         https://bugs.webkit.org/show_bug.cgi?id=76143
3228
3229         Reviewed by Adam Barth.
3230
3231         Test: fast/dom/Element/setAttributeNS-namespace-err.html
3232
3233         * dom/Element.cpp:
3234         (WebCore::Element::setAttributeNS):
3235
3236 2012-01-18  Sheriff Bot  <webkit.review.bot@gmail.com>
3237
3238         Unreviewed, rolling out r105376.
3239         http://trac.webkit.org/changeset/105376
3240         https://bugs.webkit.org/show_bug.cgi?id=76601
3241
3242         Roll 76493 back in after discussion with jsbell (Requested by
3243         rolandsteiner on #webkit).
3244
3245         * bindings/v8/IDBBindingUtilities.cpp:
3246         (WebCore::injectIDBKeyIntoSerializedValue):
3247
3248 2012-01-18  Ian Vollick  <vollick@chromium.org>
3249
3250         [chromium] Create a base-class CCAnimation to represent compositor animations
3251         https://bugs.webkit.org/show_bug.cgi?id=73233
3252
3253         Adds a kernel for running animations on the chromium compositor
3254         thread.
3255
3256         Reviewed by Kenneth Russell.
3257
3258         * WebCore.gypi:
3259         * platform/graphics/chromium/cc/CCActiveAnimation.cpp: Added.
3260         (WebCore::CCActiveAnimation::CCActiveAnimation):
3261         (WebCore::CCActiveAnimation::setRunState):
3262         (WebCore::CCActiveAnimation::isFinishedAt):
3263         (WebCore::CCActiveAnimation::trimTimeToCurrentIteration):
3264         * platform/graphics/chromium/cc/CCActiveAnimation.h: Added.
3265         (WebCore::CCActiveAnimation::create):
3266         (WebCore::CCActiveAnimation::~CCActiveAnimation):
3267         (WebCore::CCActiveAnimation::group):
3268         (WebCore::CCActiveAnimation::targetProperty):
3269         (WebCore::CCActiveAnimation::runState):
3270         (WebCore::CCActiveAnimation::iterations):
3271         (WebCore::CCActiveAnimation::setIterations):
3272         (WebCore::CCActiveAnimation::startTime):
3273         (WebCore::CCActiveAnimation::setStartTime):
3274         (WebCore::CCActiveAnimation::isFinished):
3275         (WebCore::CCActiveAnimation::animationCurve):
3276         * platform/graphics/chromium/cc/CCAnimationCurve.cpp: Added.
3277         (WebCore::CCAnimationCurve::toFloatAnimationCurve):
3278         (WebCore::CCAnimationCurve::toTransformAnimationCurve):
3279         * platform/graphics/chromium/cc/CCAnimationCurve.h: Added.
3280         (WebCore::CCAnimationCurve::~CCAnimationCurve):
3281         (WebCore::CCFloatAnimationCurve::~CCFloatAnimationCurve):
3282         (WebCore::CCFloatAnimationCurve::type):
3283         (WebCore::CCTransformAnimationCurve::~CCTransformAnimationCurve):
3284         (WebCore::CCTransformAnimationCurve::type):
3285         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.cpp: Added.
3286         (WebCore::CCLayerAnimationControllerImpl::create):
3287         (WebCore::CCLayerAnimationControllerImpl::CCLayerAnimationControllerImpl):
3288         (WebCore::CCLayerAnimationControllerImpl::animate):
3289         (WebCore::CCLayerAnimationControllerImpl::add):
3290         (WebCore::CCLayerAnimationControllerImpl::getActiveAnimation):
3291         (WebCore::CCLayerAnimationControllerImpl::hasActiveAnimation):
3292         (WebCore::CCLayerAnimationControllerImpl::startAnimationsWaitingForNextTick):
3293         (WebCore::CCLayerAnimationControllerImpl::startAnimationsWaitingForStartTime):
3294         (WebCore::CCLayerAnimationControllerImpl::startAnimationsWaitingForTargetAvailability):
3295         (WebCore::CCLayerAnimationControllerImpl::resolveConflicts):
3296         (WebCore::CCLayerAnimationControllerImpl::purgeFinishedAnimations):
3297         (WebCore::CCLayerAnimationControllerImpl::tickAnimations):
3298         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.h: Added.
3299         (WebCore::CCLayerAnimationControllerImplClient::~CCLayerAnimationControllerImplClient):
3300
3301 2012-01-18  Sheriff Bot  <webkit.review.bot@gmail.com>
3302
3303         Unreviewed, rolling out r105331.
3304         http://trac.webkit.org/changeset/105331
3305         https://bugs.webkit.org/show_bug.cgi?id=76599
3306
3307         May have broken Chromium InjectIDBKey browser_test (Requested
3308         by rolandsteiner on #webkit).
3309
3310         * bindings/v8/IDBBindingUtilities.cpp:
3311         (WebCore::injectIDBKeyIntoSerializedValue):
3312
3313 2012-01-18  Raymond Liu  <raymond.liu@intel.com>
3314
3315         Remove some unused code in AudioContext
3316         https://bugs.webkit.org/show_bug.cgi?id=76506
3317
3318         Reviewed by Kenneth Russell.
3319
3320         No new tests required.
3321
3322         * webaudio/AudioContext.cpp:
3323         (WebCore::AudioContext::constructCommon):
3324         (WebCore::AudioContext::uninitialize):
3325         * webaudio/AudioContext.h:
3326
3327 2012-01-18  Raymond Liu  <raymond.liu@intel.com>
3328
3329         Only create AudioBus with required number of channels for AudioNodeOutput
3330         https://bugs.webkit.org/show_bug.cgi?id=76417
3331
3332         Reviewed by Kenneth Russell.
3333
3334         No new tests required.
3335
3336         * webaudio/AudioNodeOutput.cpp:
3337         (WebCore::AudioNodeOutput::AudioNodeOutput):
3338         (WebCore::AudioNodeOutput::setNumberOfChannels):
3339         (WebCore::AudioNodeOutput::updateInternalBus):
3340         (WebCore::AudioNodeOutput::updateNumberOfChannels):
3341         (WebCore::AudioNodeOutput::pull):
3342         * webaudio/AudioNodeOutput.h:
3343
3344 2012-01-18  Andreas Kling  <awesomekling@apple.com>
3345
3346         Cache and reuse the NodeList returned by Node::childNodes().
3347         <http://webkit.org/b/76591>
3348
3349         Reviewed by Ryosuke Niwa.
3350
3351         Instead of only caching the DynamicNodeList::Caches for .childNodes on NodeRareData,
3352         cache the full ChildNodeList object. Lifetime management is left to wrappers who
3353         invalidate the cached (raw) pointer via Node::removeCachedChildNodeList(), called
3354         from ~ChildNodeList().
3355
3356         This is a slight behavior change, in that Node.childNodes === Node.childNodes will
3357         now be true. This matches the behavior of both Firefox and Opera.
3358
3359         This reduces memory consumption by 192 kB (on 32-bit) when viewing the full
3360         HTML5 spec at <http://whatwg.org/c>
3361
3362         Test: fast/dom/gc-9.html
3363               fast/dom/node-childNodes-idempotence.html
3364
3365         * dom/Node.cpp:
3366         (WebCore::Node::childNodes):
3367         * dom/NodeRareData.h:
3368         (WebCore::NodeRareData::NodeRareData):
3369         (WebCore::NodeRareData::childNodeList):
3370         (WebCore::NodeRareData::setChildNodeList):
3371
3372             Only construct one ChildNodeList per Node and store it on NodeRareData for
3373             retrieval across childNodes() calls.
3374
3375         * dom/ChildNodeList.h:
3376         (WebCore::ChildNodeList::create):
3377         * dom/ChildNodeList.cpp:
3378         (WebCore::ChildNodeList::ChildNodeList):
3379
3380             Construct the Caches at creation instead of passing it to the constructor.
3381
3382         (WebCore::ChildNodeList::reset):
3383
3384             Added, resets the internal cache.
3385
3386         (WebCore::ChildNodeList::~ChildNodeList):
3387
3388             Call Node::removeCachedChildNodeList().
3389
3390         * dom/DynamicNodeList.cpp:
3391         * dom/DynamicNodeList.h:
3392
3393             Have DynamicNodeList (and subclasses) respond "true" to isDynamicNodeList().
3394             Previously only DynamicSubtreeNodeList (and subclasses) were doing this.
3395             Without it, JSC may GC our ChildNodeLists prematurely (due to NodeList's
3396             isReachableFromOpaqueRoots() implementation checking isDynamicNodeList().)
3397
3398         * dom/Node.h:
3399         * dom/Node.cpp:
3400         (WebCore::Node::removeCachedChildNodeList):
3401
3402             Added for ~ChildNodeList() to remove the pointer to itself from the Node.
3403
3404         (WebCore::NodeRareData::clearChildNodeListCache):
3405
3406             Call ChildNodeList::reset().
3407
3408 2012-01-18  James Robinson  <jamesr@chromium.org>
3409
3410         Unreviewed, rolling out r105366.
3411         http://trac.webkit.org/changeset/105366
3412         https://bugs.webkit.org/show_bug.cgi?id=76015
3413
3414         Breaks CCLayerTreeHostImplTest unit test
3415
3416         * platform/graphics/chromium/TiledLayerChromium.cpp:
3417         (WebCore::TiledLayerChromium::pushPropertiesTo):
3418         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
3419         * platform/graphics/chromium/cc/CCDrawQuad.h:
3420         (WebCore::CCDrawQuad::drawsOpaque):
3421         (WebCore::CCDrawQuad::needsBlending):
3422         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
3423         (WebCore::CCQuadCuller::cullOccludedQuads):
3424         * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp:
3425         (WebCore::CCSolidColorDrawQuad::CCSolidColorDrawQuad):
3426         * platform/graphics/chromium/cc/CCTileDrawQuad.cpp:
3427         (WebCore::CCTileDrawQuad::create):
3428         (WebCore::CCTileDrawQuad::CCTileDrawQuad):
3429         * platform/graphics/chromium/cc/CCTileDrawQuad.h:
3430         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
3431         (WebCore::CCTiledLayerImpl::appendQuads):
3432         (WebCore::CCTiledLayerImpl::syncTextureId):
3433         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
3434
3435 2012-01-18  Thiago Marcos P. Santos  <tmpsantos@gmail.com>
3436
3437         Save two ID checks on CSS Min/Width property validation
3438         https://bugs.webkit.org/show_bug.cgi?id=76565
3439
3440         The same validation is done again in the next case statement. Check for
3441         CSSValueIntrinsic and CSSValueMinIntrinsic was done twice when the value
3442         is a number.
3443
3444         Reviewed by Andreas Kling.
3445
3446         * css/CSSParser.cpp:
3447         (WebCore::CSSParser::parseValue):
3448
3449 2012-01-18  Dana Jansens  <danakj@chromium.org>
3450
3451         [chromium] Use region reported painted opaque for draw culling
3452         https://bugs.webkit.org/show_bug.cgi?id=76015
3453
3454         Reviewed by James Robinson.
3455
3456         New unit tests in CCQuadCullerTest.cpp and CCTiledLayerImplTest.cpp
3457
3458         * platform/graphics/chromium/TiledLayerChromium.cpp:
3459         (WebCore::TiledLayerChromium::pushPropertiesTo):
3460         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
3461         * platform/graphics/chromium/cc/CCDrawQuad.h:
3462         (WebCore::CCDrawQuad::opaqueRect):
3463         (WebCore::CCDrawQuad::needsBlending):
3464         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
3465         (WebCore::CCQuadCuller::cullOccludedQuads):
3466         * platform/graphics/chromium/cc/CCTileDrawQuad.cpp:
3467         (WebCore::CCTileDrawQuad::create):
3468         (WebCore::CCTileDrawQuad::CCTileDrawQuad):