b767fdcc4221a6db3425ef6c2e4b59f0a3254058
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-09-29  Vsevolod Vlasov  <vsevik@chromium.org>
2
3         Web Inspector: Make search-in-resource test simpler.
4         https://bugs.webkit.org/show_bug.cgi?id=69025
5
6         Changed search-in-resource test.
7         Removed error parameter from content provider's searchInContent callback.
8
9         Reviewed by Pavel Feldman.
10
11         * inspector/InspectorPageAgent.cpp:
12         (WebCore::InspectorPageAgent::searchInResource):
13         (WebCore::InspectorPageAgent::searchInResources):
14         * inspector/front-end/Resource.js:
15         (WebInspector.Resource.prototype.searchInContent):
16
17 2011-09-29  Hans Wennborg  <hans@chromium.org>
18
19         IndexedDB: Use LevelDB also for in-memory databases
20         https://bugs.webkit.org/show_bug.cgi?id=68903
21
22         Reviewed by Steve Block.
23
24         Add LevelDBDatabase::openInMemory() which uses leveldb::NewMemEnv()
25         to create in-memory LevelDB databases.
26
27         Use this in IDBLeveLDBBackingStore::open() when the caller passes in
28         an empty file path.
29         This happens in Chromium's incognito mode, and when running layout
30         tests.
31
32         Fix IDBSQLiteBackingStore::backingStoreExists() so it doesn't create
33         files when passed in an empty file path, but uses the in-memory mode
34         instead.
35
36         Existing layout tests will all be run in-memory.
37
38         * platform/leveldb/LevelDBDatabase.cpp:
39         (WebCore::LevelDBDatabase::~LevelDBDatabase):
40         (WebCore::openDB):
41         (WebCore::LevelDBDatabase::open):
42         (WebCore::LevelDBDatabase::openInMemory):
43         * platform/leveldb/LevelDBDatabase.h:
44         * storage/IDBLevelDBBackingStore.cpp:
45         (WebCore::IDBLevelDBBackingStore::open):
46         * storage/IDBSQLiteBackingStore.cpp:
47         (WebCore::IDBSQLiteBackingStore::backingStoreExists):
48
49 2011-09-29  Ilya Tikhonovsky  <loislo@chromium.org>
50
51         Web Inspector: speed-up Network panel. Change _staleResources type from array to object.
52         https://bugs.webkit.org/show_bug.cgi?id=69081
53
54         There is a test with 30 requests.
55         For the each stage of loading a resource we have an entry in _staleResources array. There are at least 4 stages per request.
56         NetworkLogView._refresh function is creating/updating the resource row for the each such entry.
57         This array can be replaced with a hash map just because the resource associated with the entry is the same for all the entries with the same request id.
58
59         Reviewed by Pavel Feldman.
60
61         Test: inspector/performance/resources/network-append-30-requests.html
62
63         * inspector/front-end/NetworkPanel.js:
64         (WebInspector.NetworkLogView):
65         (WebInspector.NetworkLogView.prototype._invalidateAllItems):
66         (WebInspector.NetworkLogView.prototype.refresh):
67         (WebInspector.NetworkLogView.prototype._reset):
68         (WebInspector.NetworkLogView.prototype._refreshResource):
69
70 2011-09-28  Pavel Feldman  <pfeldman@google.com>
71
72         Web Inspector: make inspector protocol validation a part of the build process.
73         https://bugs.webkit.org/show_bug.cgi?id=68999
74
75         Since we'd like to commit to inspector protocol backwards compatibility, violating it
76         should be a build failure.
77
78         Reviewed by Yury Semikhatsky.
79
80         * CMakeLists.txt:
81         * CodeGenerators.pri:
82         * DerivedSources.make:
83         * GNUmakefile.am:
84         * WebCore.gyp/WebCore.gyp:
85         * inspector/Inspector.draft-01.json:
86         * inspector/Inspector.json:
87         * inspector/generate-inspector-idl:
88         * inspector/generate-protocol-externs:
89         * inspector/validate-protocol-compatibility:
90
91 2011-09-27  Pavel Feldman  <pfeldman@google.com>
92
93         Web Inspector: Scripts panel without folders causes errors when creating content scripts section.
94         https://bugs.webkit.org/show_bug.cgi?id=68827
95
96         Reviewed by Yury Semikhatsky.
97
98         * inspector/front-end/ScriptsPanel.js:
99         (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered.optionCompare):
100         (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered):
101         (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect):
102
103 2011-09-28  Andrey Kosyakov  <caseq@chromium.org>
104
105         Web Inspector: network log view refresh optimizations
106         https://bugs.webkit.org/show_bug.cgi?id=69010
107
108         Reviewed by Pavel Feldman.
109
110         * inspector/front-end/NetworkPanel.js:
111         (WebInspector.NetworkLogView.prototype.refresh):
112
113 2011-09-29  Pavel Podivilov  <podivilov@chromium.org>
114
115         Web Inspector: split SourceFile.js into RawSourceCode.js and UISourceCodeContentProviders.js.
116         https://bugs.webkit.org/show_bug.cgi?id=69068
117
118         Reviewed by Yury Semikhatsky.
119
120         * WebCore.gypi:
121         * WebCore.vcproj/WebCore.vcproj:
122         * inspector/front-end/RawSourceCode.js: Renamed from Source/WebCore/inspector/front-end/SourceFile.js.
123         (WebInspector.RawSourceCode): Moved from SourceFile.js.
124         (WebInspector.UILocation): Moved from SourceFile.js.
125         * inspector/front-end/UISourceCodeContentProviders.js: Added. Moved ContentProvider implementations from SourceFile.js
126         (WebInspector.ScriptContentProvider):
127         (WebInspector.ScriptContentProvider.prototype.requestContent):
128         (WebInspector.ConcatenatedScriptsContentProvider):
129         (WebInspector.ConcatenatedScriptsContentProvider.prototype.requestContent):
130         (WebInspector.ConcatenatedScriptsContentProvider.prototype._concatenateScriptsContent.appendChunk):
131         (WebInspector.ConcatenatedScriptsContentProvider.prototype._concatenateScriptsContent):
132         (WebInspector.ResourceContentProvider):
133         (WebInspector.ResourceContentProvider.prototype.requestContent):
134         (WebInspector.StaticContentProvider):
135         (WebInspector.StaticContentProvider.prototype.requestContent):
136         * inspector/front-end/WebKit.qrc:
137         * inspector/front-end/inspector.html:
138
139 2011-09-29  Philippe Normand  <pnormand@igalia.com>
140
141         [GStreamer] 2 flaky media tests
142         https://bugs.webkit.org/show_bug.cgi?id=67407
143
144         Reviewed by Martin Robinson.
145
146         Workaround for GStreamer bug#639941. In GStreamer
147         0.10.35 basesink reports wrong duration in case of EOS and
148         negative playback rate. This workaround fixes two media tests,
149         media/video-timeupdate-reverse-play.html and
150         media/video-reverse-play-duration.html.
151
152         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
153         (WebCore::MediaPlayerPrivateGStreamer::prepareToPlay):
154         (WebCore::MediaPlayerPrivateGStreamer::currentTime):
155         (WebCore::MediaPlayerPrivateGStreamer::didEnd):
156
157 2011-09-29  Philippe Normand  <pnormand@igalia.com>
158
159         [GStreamer] fullscreen video pause/play fails
160         https://bugs.webkit.org/show_bug.cgi?id=66936
161
162         Reviewed by Martin Robinson.
163
164         Don't use the identity element to avoid painting of the in-window
165         video. Instead simply make the sink aware of the fullscreen state
166         and ignore buffers if fullscreen and autovideosink are
167         active. Also fixed two deadlocks happening when a paused pipeline
168         is switched to fullscreen and when fullscreen is disabled for a
169         paused pipeline.
170
171         * platform/graphics/gstreamer/GStreamerGWorld.cpp:
172         (WebCore::GStreamerGWorld::enterFullscreen):
173         (WebCore::GStreamerGWorld::exitFullscreen):
174         * platform/graphics/gstreamer/GStreamerGWorld.h:
175         (WebCore::GStreamerGWorld::isFullscreen):
176         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
177         (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
178         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
179         (webkit_video_sink_render):
180         (webkit_video_sink_new):
181         * platform/graphics/gstreamer/VideoSinkGStreamer.h:
182
183 2011-09-29  Tim Horton  <timothy_horton@apple.com>
184
185         REGRESSION(87010): elements in ECMA-cloud neither filled nor blurred
186         https://bugs.webkit.org/show_bug.cgi?id=68679
187         <rdar://problem/10204649>
188
189         Reviewed by Nikolas Zimmermann.
190
191         Strip prefixes from SVG attributes before testing if they're supported.
192         Namespaced attributes will be matched using their namespace instead of
193         the (user-choosable) prefix.
194
195         Test: svg/custom/xlink-custom-namespace.svg
196
197         * svg/SVGAElement.cpp:
198         (WebCore::SVGAElement::isSupportedAttribute):
199         * svg/SVGAnimateMotionElement.cpp:
200         (WebCore::SVGAnimateMotionElement::isSupportedAttribute):
201         * svg/SVGAnimateTransformElement.cpp:
202         (WebCore::SVGAnimateTransformElement::isSupportedAttribute):
203         * svg/SVGAnimationElement.cpp:
204         (WebCore::SVGAnimationElement::isSupportedAttribute):
205         * svg/SVGCircleElement.cpp:
206         (WebCore::SVGCircleElement::isSupportedAttribute):
207         * svg/SVGClipPathElement.cpp:
208         (WebCore::SVGClipPathElement::isSupportedAttribute):
209         * svg/SVGComponentTransferFunctionElement.cpp:
210         (WebCore::SVGComponentTransferFunctionElement::isSupportedAttribute):
211         * svg/SVGCursorElement.cpp:
212         (WebCore::SVGCursorElement::isSupportedAttribute):
213         * svg/SVGElement.h:
214         (WebCore::SVGAttributeHashTranslator::hash):
215         (WebCore::SVGAttributeHashTranslator::equal):
216         * svg/SVGEllipseElement.cpp:
217         (WebCore::SVGEllipseElement::isSupportedAttribute):
218         * svg/SVGExternalResourcesRequired.h:
219         * svg/SVGFEBlendElement.cpp:
220         (WebCore::SVGFEBlendElement::isSupportedAttribute):
221         * svg/SVGFEColorMatrixElement.cpp:
222         (WebCore::SVGFEColorMatrixElement::isSupportedAttribute):
223         * svg/SVGFEComponentTransferElement.cpp:
224         (WebCore::SVGFEComponentTransferElement::isSupportedAttribute):
225         * svg/SVGFECompositeElement.cpp:
226         (WebCore::SVGFECompositeElement::isSupportedAttribute):
227         * svg/SVGFEConvolveMatrixElement.cpp:
228         (WebCore::SVGFEConvolveMatrixElement::isSupportedAttribute):
229         * svg/SVGFEDiffuseLightingElement.cpp:
230         (WebCore::SVGFEDiffuseLightingElement::isSupportedAttribute):
231         * svg/SVGFEDisplacementMapElement.cpp:
232         (WebCore::SVGFEDisplacementMapElement::isSupportedAttribute):
233         * svg/SVGFEDropShadowElement.cpp:
234         (WebCore::SVGFEDropShadowElement::isSupportedAttribute):
235         * svg/SVGFEGaussianBlurElement.cpp:
236         (WebCore::SVGFEGaussianBlurElement::isSupportedAttribute):
237         * svg/SVGFEImageElement.cpp:
238         (WebCore::SVGFEImageElement::isSupportedAttribute):
239         * svg/SVGFELightElement.cpp:
240         (WebCore::SVGFELightElement::isSupportedAttribute):
241         * svg/SVGFEMergeNodeElement.cpp:
242         (WebCore::SVGFEMergeNodeElement::isSupportedAttribute):
243         * svg/SVGFEMorphologyElement.cpp:
244         (WebCore::SVGFEMorphologyElement::isSupportedAttribute):
245         * svg/SVGFEOffsetElement.cpp:
246         (WebCore::SVGFEOffsetElement::isSupportedAttribute):
247         * svg/SVGFESpecularLightingElement.cpp:
248         (WebCore::SVGFESpecularLightingElement::isSupportedAttribute):
249         * svg/SVGFETileElement.cpp:
250         (WebCore::SVGFETileElement::isSupportedAttribute):
251         * svg/SVGFETurbulenceElement.cpp:
252         (WebCore::SVGFETurbulenceElement::isSupportedAttribute):
253         * svg/SVGFilterElement.cpp:
254         (WebCore::SVGFilterElement::isSupportedAttribute):
255         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
256         (WebCore::SVGFilterPrimitiveStandardAttributes::isSupportedAttribute):
257         * svg/SVGForeignObjectElement.cpp:
258         (WebCore::SVGForeignObjectElement::isSupportedAttribute):
259         * svg/SVGGElement.cpp:
260         (WebCore::SVGGElement::isSupportedAttribute):
261         * svg/SVGGradientElement.cpp:
262         (WebCore::SVGGradientElement::isSupportedAttribute):
263         * svg/SVGImageElement.cpp:
264         (WebCore::SVGImageElement::isSupportedAttribute):
265         * svg/SVGLineElement.cpp:
266         (WebCore::SVGLineElement::isSupportedAttribute):
267         * svg/SVGLinearGradientElement.cpp:
268         (WebCore::SVGLinearGradientElement::isSupportedAttribute):
269         * svg/SVGMPathElement.cpp:
270         (WebCore::SVGMPathElement::isSupportedAttribute):
271         * svg/SVGMarkerElement.cpp:
272         (WebCore::SVGMarkerElement::isSupportedAttribute):
273         * svg/SVGMaskElement.cpp:
274         (WebCore::SVGMaskElement::isSupportedAttribute):
275         * svg/SVGPathElement.cpp:
276         (WebCore::SVGPathElement::isSupportedAttribute):
277         * svg/SVGPatternElement.cpp:
278         (WebCore::SVGPatternElement::isSupportedAttribute):
279         * svg/SVGPolyElement.cpp:
280         (WebCore::SVGPolyElement::isSupportedAttribute):
281         * svg/SVGRadialGradientElement.cpp:
282         (WebCore::SVGRadialGradientElement::isSupportedAttribute):
283         * svg/SVGRectElement.cpp:
284         (WebCore::SVGRectElement::isSupportedAttribute):
285         * svg/SVGScriptElement.cpp:
286         (WebCore::SVGScriptElement::isSupportedAttribute):
287         * svg/SVGStopElement.cpp:
288         (WebCore::SVGStopElement::isSupportedAttribute):
289         * svg/SVGStyleElement.cpp:
290         (WebCore::SVGStyleElement::isSupportedAttribute):
291         * svg/SVGStyledTransformableElement.cpp:
292         (WebCore::SVGStyledTransformableElement::isSupportedAttribute):
293         * svg/SVGSymbolElement.cpp:
294         (WebCore::SVGSymbolElement::isSupportedAttribute):
295         * svg/SVGTRefElement.cpp:
296         (WebCore::SVGTRefElement::isSupportedAttribute):
297         * svg/SVGTextContentElement.cpp:
298         (WebCore::SVGTextContentElement::isSupportedAttribute):
299         * svg/SVGTextElement.cpp:
300         (WebCore::SVGTextElement::isSupportedAttribute):
301         * svg/SVGTextPathElement.cpp:
302         (WebCore::SVGTextPathElement::isSupportedAttribute):
303         * svg/SVGTextPositioningElement.cpp:
304         (WebCore::SVGTextPositioningElement::isSupportedAttribute):
305         * svg/SVGURIReference.cpp:
306         (WebCore::SVGURIReference::addSupportedAttributes):
307         * svg/SVGUseElement.cpp:
308         (WebCore::SVGUseElement::isSupportedAttribute):
309         * svg/SVGViewElement.cpp:
310         (WebCore::SVGViewElement::isSupportedAttribute):
311
312 2011-09-28  Kentaro Hara  <haraken@chromium.org>
313
314         "ScriptValue" arguments of PopStateEvent methods should be "const ScriptValue&"
315         https://bugs.webkit.org/show_bug.cgi?id=68984
316
317         Reviewed by Darin Adler.
318
319         Just a follow-up fix for the bug 68345. For performance,
320         "ScriptValue" arguments of PopStateEvent methods should be "const ScriptValue&".
321
322         Tests: fast/events/constructors/pop-state-event-constructor.html
323                fast/events/fire-popstate-event.html
324
325         * dom/PopStateEvent.cpp:
326         (WebCore::PopStateEvent::PopStateEvent):
327         (WebCore::PopStateEvent::create):
328         (WebCore::PopStateEvent::initPopStateEvent):
329         * dom/PopStateEvent.h:
330
331 2011-09-28  Martin Robinson  <mrobinson@igalia.com>
332
333         [GTK] Move drag-and-drop code which can be shared with WebKit2 to WebCore
334         https://bugs.webkit.org/show_bug.cgi?id=66890
335
336         Added a GtkDragAndDropHelper class to hold all the logic that is common
337         between WebKit1 and WebKit2. This will allow greater code sharing between
338         the two ports.
339
340         Reviewed by Philippe Normand.
341
342         No new tests. This patch should not change behavior.
343
344         * GNUmakefile.list.am: Added the GtkDragAndDropHelper to the sources list.
345         * platform/gtk/GtkDragAndDropHelper.cpp: Added.
346         * platform/gtk/GtkDragAndDropHelper.h: Added.
347
348 2011-09-28  Dan Bernstein  <mitz@apple.com>
349
350         <rdar://problem/10196497> first-letter after list marker not updated correctly
351
352         Reviewed by Simon Fraser.
353
354         Test: fast/dynamic/first-letter-after-list-marker.html
355
356         * rendering/RenderBlock.cpp:
357         (WebCore::RenderBlock::updateFirstLetter): Improved the logic for continuing past list markers
358         when trying to locate a first letter to update.
359
360 2011-09-28  Kent Tamura  <tkent@chromium.org>
361
362         REGRESSION(r93858): Can't type anything into input elements when maxlength is greater than 2^31
363         https://bugs.webkit.org/show_bug.cgi?id=68981
364
365         Reviewed by Darin Adler.
366
367         * html/parser/HTMLParserIdioms.cpp:
368         (WebCore::parseHTMLInteger):
369         Check the failure of charactersToIntStrict().
370         (WebCore::parseHTMLNonNegativeInteger):
371         Check the failure of charactersToUIntStrict().
372
373 2011-09-28  Antoine Labour  <piman@chromium.org>
374
375         Remove unused createRootLayerPainter from CCLayerTreeHostClient
376         https://bugs.webkit.org/show_bug.cgi?id=69042
377
378         Reviewed by James Robinson.
379
380         No new test needed: no semantic change.
381
382         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
383
384 2011-09-28  Luke Macpherson   <macpherson@chromium.org>
385
386         Only resolve direction aware properties when properties are direction aware.
387         https://bugs.webkit.org/show_bug.cgi?id=68968
388
389         Reviewed by Eric Seidel.
390
391         No new tests / no functionality changed.
392
393         Profiling showed a ~8% improvement in applyProperty by not calling resolveDirectionAwareProperty for every property.
394
395         * css/CSSStyleSelector.cpp:
396         (WebCore::CSSStyleSelector::applyProperty):
397
398 2011-09-28  Simon Fraser  <simon.fraser@apple.com>
399
400         fast/dom/scroll-element-to-rect.html fails on WK1 Mac port
401         https://bugs.webkit.org/show_bug.cgi?id=68815
402
403         Reviewed by Dan Bernstein.
404         
405         FrameView::scrollElementToRect() was incorrectly using Element::boundsInWindowSpace(),
406         which is window-relative (not web view-relative), and has flipped coordinates
407         in WebKit1.
408         
409         Change to use Node::getRect() which is what the author intended.
410
411         * dom/Element.h:
412         * page/FrameView.cpp:
413         (WebCore::FrameView::scrollElementToRect):
414
415 2011-09-28  Peter Beverloo  <peter@chromium.org>
416
417         Don't clamp cubic-bezier timing functions between 0 and 1
418         https://bugs.webkit.org/show_bug.cgi?id=45761
419
420         Remove the limitation of clamping the cubic-bezier timing function
421         values between 0 and 1, following the specification change made on
422         April 5 of this year.
423
424         Reviewed by Dean Jackson.
425
426         Tests: transitions/cubic-bezier-overflow-color.html
427                transitions/cubic-bezier-overflow-length.html
428                transitions/cubic-bezier-overflow-shadow.html
429                transitions/cubic-bezier-overflow-svg-length.html
430                transitions/cubic-bezier-overflow-transform.html
431
432         * css/CSSParser.cpp:
433         (WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
434
435 2011-09-28  Chris Rogers  <crogers@google.com>
436
437         DelayNode must set the context on delayTime AudioParam to support automation
438         https://bugs.webkit.org/show_bug.cgi?id=68828
439
440         Reviewed by Kenneth Russell.
441
442         Test: webaudio/delaynode-scheduling.html
443
444         * webaudio/DelayNode.cpp:
445         (WebCore::DelayNode::DelayNode):
446
447 2011-09-28  Sergey Glazunov  <serg.glazunov@gmail.com>
448
449         JavaScript generated documents don't inherit the cookie URL
450         https://bugs.webkit.org/show_bug.cgi?id=69003
451
452         Reviewed by Adam Barth.
453
454         Test: http/tests/security/cookies/cookie-theft-with-javascript-doc.html
455
456         * dom/Document.h:
457         (WebCore::Document::setCookieURL):
458         * loader/DocumentWriter.cpp:
459         (WebCore::DocumentWriter::replaceDocument):
460         (WebCore::DocumentWriter::begin):
461         * loader/DocumentWriter.h:
462
463 2011-09-27  Dimitri Glazkov  <dglazkov@chromium.org>
464
465         REGRESSION(r95573): Crash when loading SVG documents in a flattened frame or any SVG document in Chromium/Mac.
466         https://bugs.webkit.org/show_bug.cgi?id=68938
467
468         Reviewed by David Hyatt.
469
470         Test: all svg tests in LayoutTests.
471
472         * rendering/RenderBlock.cpp:
473         (WebCore::RenderBlock::computeBlockPreferredLogicalWidths): Added a null-check for containingBlock.
474
475 2011-09-28  Una Sabovic  <una.sabovic@palm.com>
476
477         Setting innerText to an empty string on editable div loses focus
478         https://bugs.webkit.org/show_bug.cgi?id=62092
479
480         Reviewed by Ryosuke Niwa.
481
482         When selection start or end node is being deleted do not clear the selection.
483         Instead update the start/end position to an equivalent parent-anchored positions.
484         When text is inserted/deleted update selection per range modification spec:
485         http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Mutation
486
487         Tests: editing/selection/document-mutation.html
488                editing/selection/editable-div-clear-on-keydown.html
489
490         * editing/FrameSelection.cpp:
491         (WebCore::FrameSelection::respondToNodeModification):
492         (WebCore::updatePositionAfterAdoptingTextReplacement):
493         (WebCore::FrameSelection::textWillBeReplaced):
494         * editing/htmlediting.cpp:
495         (WebCore::updatePositionForNodeRemoval):
496
497 2011-09-28  Joseph Pecoraro  <joepeck@webkit.org>
498
499         FTPDirectoryDocument Shows Garbled String for Last Modified Date
500         https://bugs.webkit.org/show_bug.cgi?id=69011
501
502         Reviewed by Dan Bernstein.
503
504         Force WTF::String concatenation instead of an accidental char* pointer addition.
505
506         * html/FTPDirectoryDocument.cpp:
507         (WebCore::processFileDateString):
508
509 2011-09-28  Nate Chapin  <japhet@chromium.org>
510
511         Fix a regression in r96060. ResourceLoader shouldn't get
512         initialized with a null DocumentLoader.
513         https://bugs.webkit.org/show_bug.cgi?id=69004
514
515         Reviewed by Csaba Osztrogonác.
516
517         This should fix a debug crash in some platforms in
518         plugins/js-from-destroy.html
519
520         * loader/ResourceLoader.cpp:
521         (WebCore::ResourceLoader::init): Move the activeDocumentLoader() null checks back
522             to SubresouceLoader::create().
523         * loader/SubresourceLoader.cpp:
524         (WebCore::SubresourceLoader::create):
525
526 2011-09-28  Adam Barth  <abarth@webkit.org>
527
528         CSP doesn't work for a wide variety of cases
529         https://bugs.webkit.org/show_bug.cgi?id=68921
530
531         Reviewed by Darin Adler.
532
533         Patch suggested by Sam Weinig.  It's unclear to me how to test this
534         change because all our tests run on non-default ports, which is why we
535         have this bug in the first place.  Mozilla uses a proxy while testing
536         so they can test with URLs like http://example.com, but we don't have
537         such a facility.
538
539         * page/ContentSecurityPolicy.cpp:
540         (WebCore::CSPSource::portMatches):
541
542 2011-09-28  Fady Samuel  <fsamuel@chromium.org>
543
544         [Chromium] Seperate GTK specific Gyp rules from X11 Gyp rules
545         https://bugs.webkit.org/show_bug.cgi?id=68936
546
547         Reviewed by Tony Chang.
548
549         Chromium need to be built without Gtk for future version of ChromiumOS.
550
551         * WebCore.gyp/WebCore.gyp:
552
553 2011-09-28  Tom Sepez  <tsepez@chromium.org>
554
555         Revert change which broke displaying end script tags in view-source, instead
556         deal with any trailing </script> tag included by mistake in the XSSAuditor
557         itself.  Correct tests to detect the missing close tags.
558         https://bugs.webkit.org/show_bug.cgi?id=68898
559
560         Reviewed by Adam Barth.
561
562         * html/parser/HTMLSourceTracker.cpp:
563         (WebCore::HTMLSourceTracker::end):
564         * html/parser/HTMLTokenizer.cpp:
565         (WebCore::HTMLTokenizer::nextToken):
566         * html/parser/XSSAuditor.cpp:
567         (WebCore::startsHTMLEndTagAt):
568         (WebCore::XSSAuditor::snippetForJavaScript):
569
570 2011-09-28  Adam Barth  <abarth@webkit.org>
571
572         Remove empty directories.
573
574         * editing/brew: Removed.
575         * page/brew: Removed.
576         * platform/brew: Removed.
577         * platform/graphics/brew: Removed.
578         * platform/network/brew: Removed.
579         * platform/text/brew: Removed.
580
581 2011-09-28  Ilya Tikhonovsky  <loislo@chromium.org>
582
583         Web Inspector: optional arguments support for the frontend needs to be extended.
584         https://bugs.webkit.org/show_bug.cgi?id=69005
585
586         Generator supports optional arguments but they are transferred by value.
587         It is not suitable if the used type doesn't have operator bool.
588         I'll transfer such arguments by pointer.
589
590         Reviewed by Pavel Feldman.
591
592         Build is the test.
593
594         * inspector/CodeGeneratorInspector.pm:
595         (generateFrontendFunction):
596         (paramTypeTraits):
597         * inspector/InspectorDebuggerAgent.cpp:
598         (WebCore::InspectorDebuggerAgent::didParseSource):
599         * inspector/InspectorResourceAgent.cpp:
600         (WebCore::InspectorResourceAgent::didFailLoading):
601
602 2011-09-28  Antaryami Pandia  <antaryami.pandia@motorola.com>
603
604         Reflected attribute input.size wraps on negative values (Chrome), or
605         returns them (Safari).
606         https://bugs.webkit.org/show_bug.cgi?id=44886
607
608         Reviewed by Darin Adler.
609
610         Test: fast/dom/HTMLInputElement/input-size-attribute.html
611
612         * html/HTMLInputElement.cpp:
613         (WebCore::HTMLInputElement::parseMappedAttribute):
614
615 2011-09-28  Vsevolod Vlasov  <vsevik@chromium.org>
616
617         Web Inspector: Add support for search in single resource to page agent.
618         https://bugs.webkit.org/show_bug.cgi?id=68998
619
620         Reviewed by Pavel Feldman.
621
622         Test: http/tests/inspector/search/search-in-resource.html
623
624         * inspector/ContentSearchUtils.cpp:
625         (WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):
626         * inspector/ContentSearchUtils.h:
627         * inspector/Inspector.json:
628         * inspector/InspectorPageAgent.cpp:
629         (WebCore::buildObjectForSearchMatch):
630         (WebCore::InspectorPageAgent::searchInResource):
631         * inspector/InspectorPageAgent.h:
632         * inspector/front-end/Resource.js:
633         (WebInspector.Resource.prototype.searchInContent):
634         * inspector/front-end/SourceFile.js:
635         (WebInspector.ResourceContentProvider.prototype.requestContent):
636         (WebInspector.ResourceContentProvider.prototype.searchInContent):
637         * inspector/front-end/UISourceCode.js:
638         (WebInspector.ContentProvider.prototype.requestContent):
639         (WebInspector.ContentProvider.prototype.searchInContent):
640
641 2011-09-28  Ilya Tikhonovsky  <loislo@chromium.org>
642
643         Web Inspector: It'd be useful to have performance stats for the back-end to front-end communication channel.
644         https://bugs.webkit.org/show_bug.cgi?id=69002
645
646         Reviewed by Yury Semikhatsky.
647
648         * inspector/CodeGeneratorInspector.pm:
649
650 2011-09-27  Pavel Podivilov  <podivilov@chromium.org>
651
652         Web Inspector: live edit cursor always appears at the beginning of the file.
653         https://bugs.webkit.org/show_bug.cgi?id=68900
654
655         Reviewed by Pavel Feldman.
656
657         * inspector/front-end/TextViewer.js:
658         (WebInspector.TextEditorMainPanel.prototype._updateSelectionOnStartEditing):
659
660 2011-09-28  Vsevolod Vlasov  <vsevik@chromium.org>
661
662         Web Inspector: Refactor searching in inspector, add test (fixed non regex search).
663         https://bugs.webkit.org/show_bug.cgi?id=68930
664
665         Reviewed by Yury Semikhatsky.
666
667         Search moved out from page agent.
668         Fixed search for non regex case which is not yet used.
669
670         Test: http/tests/inspector/search/search-in-resources.html
671
672         * CMakeLists.txt:
673         * GNUmakefile.list.am:
674         * WebCore.gypi:
675         * WebCore.pro:
676         * WebCore.vcproj/WebCore.vcproj:
677         * WebCore.xcodeproj/project.pbxproj:
678         * inspector/ContentSearchUtils.cpp: Added.
679         (WebCore::ContentSearchUtils::createSearchRegexSource):
680         (WebCore::ContentSearchUtils::createSearchRegex):
681         (WebCore::ContentSearchUtils::countRegularExpressionMatches):
682         * inspector/ContentSearchUtils.h: Added.
683         * inspector/InspectorPageAgent.cpp:
684         (WebCore::hasTextContent):
685         (WebCore::InspectorPageAgent::cachedResourceContent):
686         (WebCore::textContentForCachedResource):
687         (WebCore::buildObjectForSearchResult):
688         (WebCore::InspectorPageAgent::searchInResources):
689         * inspector/front-end/utilities.js:
690         ():
691
692 2011-09-28  Kentaro Hara  <haraken@chromium.org>
693
694         Implement a PopStateEvent constructor for V8
695         https://bugs.webkit.org/show_bug.cgi?id=68896
696
697         Reviewed by Adam Barth.
698
699         Test: fast/events/constructors/pop-state-event-constructor.html
700
701         * bindings/v8/custom/V8EventConstructors.cpp: Added a PopStateEvent constructor.
702         * dom/PopStateEvent.idl: Added a 'V8CustomConstructor' attribute.
703
704 2011-09-28  No'am Rosenthal  <noam.rosenthal@nokia.com>
705
706         [Texmap] Allow TextureMapperGL to work without a GraphicsContext
707         https://bugs.webkit.org/show_bug.cgi?id=68980
708
709         Reviewed by Andreas Kling.
710
711         Perform a null-check for m_context and initialize that variable.
712         If a graphics-context doesn't exist, we don't need to reset it.
713
714         No new functionality so no new tests.
715
716         * platform/graphics/opengl/TextureMapperGL.cpp:
717         (WebCore::TextureMapperGL::TextureMapperGL):
718         (WebCore::TextureMapperGL::beginPainting):
719         (WebCore::TextureMapperGL::endPainting):
720
721 2011-09-28  Kentaro Hara  <haraken@chromium.org>
722
723         Implement an ErrorEvent constructor for V8
724         https://bugs.webkit.org/show_bug.cgi?id=68336
725
726         Reviewed by Adam Barth.
727
728         Test: fast/events/constructors/error-event-constructor.html
729
730         * bindings/v8/OptionsObject.cpp:
731         (WebCore::OptionsObject::getKeyValue): Returns an unsigned value corresponding to a given key.
732         * bindings/v8/OptionsObject.h:
733         * bindings/v8/custom/V8EventConstructors.cpp: Added the ErrorEvent constructor.
734         * dom/ErrorEvent.idl: Added a 'V8CustomConstructor' attribute.
735
736 2011-09-27  Andy Estes  <aestes@apple.com>
737
738         WebKitLinkedOnOrAfter() check is ineffective for Solar Walk app-specific hack.
739         https://bugs.webkit.org/show_bug.cgi?id=68863
740
741         Reviewed by Darin Adler.
742
743         The SolarWalk binary does not link against WebKit.framework directly,
744         so calling NSVersionOfLinkTimeLibrary() will not return the version of
745         WebKit against which SolarWalk was linked. Since Solar Walk has
746         released an update that addresses the issue for which this app-specific
747         hack was originally added, we should just remove the hack.
748
749         * WebCore.exp.in: Remove applicationIsSolarWalkMac().
750         * platform/RuntimeApplicationChecks.cpp: Ditto.
751         * platform/RuntimeApplicationChecks.h: Ditto.
752
753 2011-09-28  Tim Horton  <timothy_horton@apple.com>
754
755         Fix potential SVG performance regression (over-invalidation of caches) from 96052
756         https://bugs.webkit.org/show_bug.cgi?id=68941
757         <rdar://problem/10196224>
758
759         Reviewed by Zoltan Herczeg.
760
761         Only invalidate the cache of a filter when target style changes, as of the different types of cached
762         resources, only filters make use of the style of the target element and thus need to be invalidated
763         when the target style changes.
764
765         No new tests, performance improvement.
766
767         * rendering/svg/SVGResourcesCache.cpp:
768         (WebCore::SVGResourcesCache::clientUpdatedFromElement):
769
770 2011-09-28  Adenilson Cavalcanti  <adenilson.silva@openbossa.org>
771
772         Missing initialization of member in ImageFrameQt class
773         https://bugs.webkit.org/show_bug.cgi?id=68943
774
775         Reviewed by Kenneth Rohde Christiansen.
776
777         No new tests, this fixes internal implementation detail.
778
779         * platform/image-decoders/qt/ImageFrameQt.cpp:
780         (WebCore::ImageFrame::ImageFrame):
781         (WebCore::ImageFrame::operator=):
782
783 2011-09-27  Luke Macpherson   <macpherson@chromium.org>
784
785         Defer call to CSSValue::isPrimitiveValue(), saves ~4% in CSSStyleSelector::applyProperty().
786         https://bugs.webkit.org/show_bug.cgi?id=68964
787
788         Reviewed by Eric Seidel.
789
790         No new tests / no functionality changed.
791
792         Doing value->isPrimitiveValue() is relatviely expensive, so moving it after the early returns but
793         before the result is used saves a significant number of cycles. (Tested with Shark profiler in Safari).
794
795         * css/CSSStyleSelector.cpp:
796         (WebCore::CSSStyleSelector::applyProperty):
797
798 2011-09-27  Ryosuke Niwa  <rniwa@webkit.org>
799
800         Simplify ReplaceSelectionCommand::positionAtStartOfInsertedContent
801         https://bugs.webkit.org/show_bug.cgi?id=68939
802
803         Reviewed by Darin Adler.
804
805         Simplified ReplaceSelectionCommand::positionAtStartOfInsertedContent.
806
807         This change revealed a bug in removeUnrenderedTextNodesAtEnds that text nodes without any visible
808         text at ends are not removed when it has a render object. Fixed the bug by checking the length of
809         the rendered text. (Tested by editing/pasteboard/pasting-word-in-div-extra-line.html)
810
811         This further revealed that caretMaxRenderedOffset doesn't return an offset and caretMaxRenderedOffset
812         on InlineBox, InlineTextBox, RenderObject, RenderBR, RenderPlaced are never called. To address this
813         issue, renamed caretMaxRenderedOffset to renderedTextLength for RenderText and removed the rest.
814
815         * dom/Position.cpp:
816         (WebCore::Position::rendersInDifferentPosition):
817         * editing/ReplaceSelectionCommand.cpp:
818         (WebCore::nodeHasVisibleRenderText): Added.
819         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Calls nodeHasVisibleRenderText.
820         (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent): Simplified.
821         * editing/visible_units.cpp:
822         (WebCore::startOfParagraph): Calls renderedTextLength.
823         (WebCore::endOfParagraph): Ditto.
824         * rendering/InlineBox.cpp: Removed caretMaxRenderedOffset.
825         * rendering/InlineBox.h: Ditto.
826         * rendering/InlineTextBox.cpp: Ditto.
827         * rendering/InlineTextBox.h: Ditto.
828         * rendering/RenderBR.cpp: Ditto.
829         * rendering/RenderBR.h: Ditto.
830         * rendering/RenderObject.cpp: Ditto.
831         * rendering/RenderObject.h: Ditto.
832         * rendering/RenderReplaced.cpp: Ditto.
833         * rendering/RenderReplaced.h: Ditto.
834         * rendering/RenderText.cpp:
835         (WebCore::RenderText::renderedTextLength): Renamed from caretMaxRenderedOffset.
836         * rendering/RenderText.h:
837
838 2011-09-27  James Robinson  <jamesr@chromium.org>
839
840         [chromium] LayerRenderChromium asserts about leaking textures.
841         https://bugs.webkit.org/show_bug.cgi?id=68190
842
843         Reviewed by Kenneth Russell.
844
845         This introduces an interface TextureAllocator that the TextureManager uses to allocate/deallocate textures.
846         This means that TextureManager does not need to depend directly on GraphicsContext3D, other than for the format
847         enum type, making it more testable.  It also allows us to track the allocations by subclassing TextureAllocator
848         to make sure we aren't leaking any textures.
849
850         * WebCore.gypi:
851         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
852         (WebCore::Canvas2DLayerChromium::updateCompositorResources):
853         * platform/graphics/chromium/Canvas2DLayerChromium.h:
854         * platform/graphics/chromium/ImageLayerChromium.cpp:
855         (WebCore::ImageLayerTextureUpdater::updateTextureRect):
856         * platform/graphics/chromium/LayerChromium.h:
857         (WebCore::LayerChromium::updateCompositorResources):
858         * platform/graphics/chromium/LayerRendererChromium.cpp:
859         (WebCore::LayerRendererChromium::LayerRendererChromium):
860         (WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
861         (WebCore::LayerRendererChromium::drawLayers):
862         (WebCore::LayerRendererChromium::useRenderSurface):
863         (WebCore::LayerRendererChromium::initializeSharedObjects):
864         (WebCore::LayerRendererChromium::cleanupSharedObjects):
865         * platform/graphics/chromium/LayerRendererChromium.h:
866         (WebCore::LayerRendererChromium::renderSurfaceTextureAllocator):
867         (WebCore::LayerRendererChromium::contentsTextureAllocator):
868         * platform/graphics/chromium/LayerTextureUpdater.h:
869         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
870         (WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
871         (WebCore::LayerTextureUpdaterSkPicture::updateTextureRect):
872         * platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
873         * platform/graphics/chromium/ManagedTexture.cpp:
874         (WebCore::ManagedTexture::bindTexture):
875         (WebCore::ManagedTexture::framebufferTexture2D):
876         * platform/graphics/chromium/ManagedTexture.h:
877         * platform/graphics/chromium/TextureManager.cpp:
878         (WebCore::TextureManager::memoryUseBytes):
879         (WebCore::TextureManager::deleteEvictedTextures):
880         (WebCore::TextureManager::evictAndDeleteAllTextures):
881         (WebCore::TextureManager::removeTexture):
882         (WebCore::TextureManager::allocateTexture):
883         (WebCore::TextureManager::requestTexture):
884         * platform/graphics/chromium/TextureManager.h:
885         (WebCore::TextureAllocator::~TextureAllocator):
886         * platform/graphics/chromium/TiledLayerChromium.cpp:
887         (WebCore::TiledLayerChromium::updateCompositorResources):
888         * platform/graphics/chromium/TiledLayerChromium.h:
889         * platform/graphics/chromium/TrackingTextureAllocator.cpp: Added.
890         (WebCore::TrackingTextureAllocator::TrackingTextureAllocator):
891         (WebCore::TrackingTextureAllocator::~TrackingTextureAllocator):
892         (WebCore::TrackingTextureAllocator::createTexture):
893         (WebCore::TrackingTextureAllocator::deleteTexture):
894         * platform/graphics/chromium/TrackingTextureAllocator.h: Copied from Source/WebCore/platform/graphics/chromium/ManagedTexture.h.
895         (WebCore::TrackingTextureAllocator::create):
896         (WebCore::TrackingTextureAllocator::currentMemoryUseBytes):
897         * platform/graphics/chromium/VideoLayerChromium.cpp:
898         (WebCore::VideoLayerChromium::updateCompositorResources):
899         (WebCore::VideoLayerChromium::updateTexture):
900         * platform/graphics/chromium/VideoLayerChromium.h:
901         * platform/graphics/chromium/WebGLLayerChromium.cpp:
902         (WebCore::WebGLLayerChromium::updateCompositorResources):
903         * platform/graphics/chromium/WebGLLayerChromium.h:
904         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
905         (WebCore::CCHeadsUpDisplay::draw):
906         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
907         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
908         (WebCore::CCLayerTreeHost::deleteContentsTexturesOnCCThread):
909         (WebCore::CCLayerTreeHost::commitToOnCCThread):
910         (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
911         (WebCore::CCLayerTreeHost::updateCompositorResources):
912         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
913         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
914         (WebCore::CCLayerTreeHostImpl::contentsTextureAllocator):
915         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
916         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
917         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
918         (WebCore::CCRenderSurface::drawSurface):
919         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
920         (WebCore::CCSingleThreadProxy::setNeedsCommit):
921         (WebCore::CCSingleThreadProxy::stop):
922         (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
923         (WebCore::CCSingleThreadProxy::commitIfNeeded):
924         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
925         (WebCore::CCThreadProxy::commitOnCCThread):
926         (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
927 2011-09-27  James Robinson  <jamesr@chromium.org>
928
929         [chromium] Only initiate the beginFrameAndCommit sequence if a commit has been requested
930         https://bugs.webkit.org/show_bug.cgi?id=68967
931
932         Reviewed by Kenneth Russell.
933
934         When updating the scheduler state, we should only initiate a new commit flow if a commit has been requested (as
935         opposed to only a redraw).
936
937         Covered by the unit test CCLayerTreeHostTestSetNeedsRedraw with USE(THREADED_COMPOSITING) set to true.
938
939         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
940         (WebCore::CCThreadProxy::updateSchedulerStateOnCCThread):
941
942 2011-09-27  Kentaro Hara  <haraken@chromium.com>
943
944         Implement a PageTransitionEvent constructor for V8
945         https://bugs.webkit.org/show_bug.cgi?id=68067
946
947         Reviewed by Adam Barth.
948
949         Test: fast/events/constructors/page-transition-event-constructor.html
950
951         * bindings/v8/custom/V8EventConstructors.cpp: Added the PageTransitionEvent constructor.
952         * dom/PageTransitionEvent.idl: Added a 'V8CustomConstructor' attribute.
953
954 2011-09-27  Kentaro Hara  <haraken@chromium.org>
955
956         Implement a MessageEvent constructor for JSC
957         https://bugs.webkit.org/show_bug.cgi?id=68883
958
959         Reviewed by Adam Barth.
960
961         The spec for MessageEvent is here:
962         http://www.whatwg.org/specs/web-apps/current-work/#messageevent
963
964         Currently, some tests in fast/events/constructors/message-event-constructor.html
965         are failing or crashing in DRT, as we commented in the test file.
966         This is because MessageEvent.data is implemented as SerializedScriptValue,
967         and thus it cannot keep ScriptValue passed by JavaScript.
968         This is the same issue as the bug (https://bugs.webkit.org/show_bug.cgi?id=68345).
969         We will soon make a follow-up patch to fix these failures, after this
970         patch is landed.
971
972         Test: fast/events/constructors/message-event-constructor.html
973
974         * bindings/generic/EventConstructors.h: Added a definition for the MessageEvent constructor.
975         * bindings/js/JSDictionary.cpp:
976         (WebCore::JSDictionary::convertValue): Generates MessagePortArray from the list of message ports in the format of JSValues.
977         * bindings/js/JSDictionary.h:
978         * bindings/js/JSEventConstructors.cpp: Added #includes for MessageEvent.
979         * dom/MessageEvent.cpp:
980         (WebCore::MessageEventInit::MessageEventInit):
981         (WebCore::MessageEvent::MessageEvent):
982         (WebCore::MessageEvent::initMessageEvent):
983         * dom/MessageEvent.h: Added a definition for MessageEvent. Removed an extra leading spaces.
984         (WebCore::MessageEvent::create):
985         (WebCore::MessageEvent::origin):
986         (WebCore::MessageEvent::lastEventId):
987         (WebCore::MessageEvent::source):
988         (WebCore::MessageEvent::ports):
989         (WebCore::MessageEvent::dataType):
990         (WebCore::MessageEvent::dataAsSerializedScriptValue):
991         (WebCore::MessageEvent::dataAsString):
992         (WebCore::MessageEvent::dataAsBlob):
993         (WebCore::MessageEvent::dataAsArrayBuffer):
994         * dom/MessageEvent.idl: Makes MessageEvent constructible.
995
996 2011-09-27  Eric Uhrhane  <ericu@chromium.org>
997
998         [Chromium/FileWriter] race condition in FileWriter completion can lead to assert
999         https://bugs.webkit.org/show_bug.cgi?id=67684
1000
1001         Reviewed by David Levin.
1002
1003         Tests: fast/filesystem/file-writer-abort-continue.html
1004                fast/filesystem/file-writer-abort.html
1005
1006         Track the state of the backend and be prepared for reentrant user
1007         requests.  Limit recursion depth to an arbitrary small constant.
1008         * fileapi/FileWriter.cpp: Lots of event-handling changes.
1009         * fileapi/FileWriter.h:
1010
1011 2011-09-27  Mihai Parparita  <mihaip@chromium.org>
1012
1013         Unreviewed, rolling out r96141.
1014         http://trac.webkit.org/changeset/96141
1015         https://bugs.webkit.org/show_bug.cgi?id=68190
1016
1017         Breaks PrerenderBrowserTest.PrerenderHTML5Video in
1018         browser_tests
1019
1020         * WebCore.gypi:
1021         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1022         (WebCore::Canvas2DLayerChromium::updateCompositorResources):
1023         * platform/graphics/chromium/Canvas2DLayerChromium.h:
1024         * platform/graphics/chromium/ImageLayerChromium.cpp:
1025         (WebCore::ImageLayerTextureUpdater::updateTextureRect):
1026         * platform/graphics/chromium/LayerChromium.h:
1027         (WebCore::LayerChromium::updateCompositorResources):
1028         * platform/graphics/chromium/LayerRendererChromium.cpp:
1029         (WebCore::LayerRendererChromium::LayerRendererChromium):
1030         (WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
1031         (WebCore::LayerRendererChromium::drawLayers):
1032         (WebCore::LayerRendererChromium::createLayerTexture):
1033         (WebCore::LayerRendererChromium::deleteLayerTexture):
1034         (WebCore::LayerRendererChromium::useRenderSurface):
1035         (WebCore::LayerRendererChromium::initializeSharedObjects):
1036         (WebCore::LayerRendererChromium::cleanupSharedObjects):
1037         * platform/graphics/chromium/LayerRendererChromium.h:
1038         (WebCore::LayerRendererChromium::setContentsTextureMemoryUseBytes):
1039         * platform/graphics/chromium/LayerTextureUpdater.h:
1040         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
1041         (WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
1042         (WebCore::LayerTextureUpdaterSkPicture::updateTextureRect):
1043         * platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
1044         * platform/graphics/chromium/ManagedTexture.cpp:
1045         (WebCore::ManagedTexture::bindTexture):
1046         (WebCore::ManagedTexture::framebufferTexture2D):
1047         * platform/graphics/chromium/ManagedTexture.h:
1048         * platform/graphics/chromium/TextureManager.cpp:
1049         (WebCore::memoryUseBytes):
1050         (WebCore::TextureManager::deleteEvictedTextures):
1051         (WebCore::TextureManager::evictAndDeleteAllTextures):
1052         (WebCore::TextureManager::removeTexture):
1053         (WebCore::TextureManager::allocateTexture):
1054         (WebCore::TextureManager::requestTexture):
1055         * platform/graphics/chromium/TextureManager.h:
1056         * platform/graphics/chromium/TiledLayerChromium.cpp:
1057         (WebCore::TiledLayerChromium::updateCompositorResources):
1058         * platform/graphics/chromium/TiledLayerChromium.h:
1059         * platform/graphics/chromium/TrackingTextureAllocator.cpp: Removed.
1060         * platform/graphics/chromium/TrackingTextureAllocator.h: Removed.
1061         * platform/graphics/chromium/VideoLayerChromium.cpp:
1062         (WebCore::VideoLayerChromium::updateCompositorResources):
1063         (WebCore::VideoLayerChromium::updateTexture):
1064         * platform/graphics/chromium/VideoLayerChromium.h:
1065         * platform/graphics/chromium/WebGLLayerChromium.cpp:
1066         (WebCore::WebGLLayerChromium::updateCompositorResources):
1067         * platform/graphics/chromium/WebGLLayerChromium.h:
1068         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
1069         (WebCore::CCHeadsUpDisplay::draw):
1070         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1071         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
1072         (WebCore::CCLayerTreeHost::deleteContentsTextures):
1073         (WebCore::CCLayerTreeHost::commitTo):
1074         (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
1075         (WebCore::CCLayerTreeHost::updateCompositorResources):
1076         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp.rej: Removed.
1077         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1078         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1079         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
1080         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1081         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
1082         (WebCore::CCRenderSurface::drawSurface):
1083         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1084         (WebCore::CCSingleThreadProxy::setNeedsCommit):
1085         (WebCore::CCSingleThreadProxy::stop):
1086         (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
1087         (WebCore::CCSingleThreadProxy::commitIfNeeded):
1088         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1089         (WebCore::CCThreadProxy::commitOnCCThread):
1090         (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
1091
1092 2011-09-27  James Robinson  <jamesr@chromium.org>
1093
1094         [chromium] Guard accelerated skia drawing logic with its own define to remove dependency on USE(THREADED_COMPOSITING)
1095         https://bugs.webkit.org/show_bug.cgi?id=68953
1096
1097         Reviewed by Kenneth Russell.
1098
1099         The accelerated drawing code is incompatible with threaded compositing. Rather than tying the two behaviors
1100         together via USE(THREADED_COMPOSITING), this patch guards the accelerated drawing code with its own USE() guard
1101         so the features can advance independently. Today, it's not safe to set both of these flags.
1102
1103         * platform/graphics/chromium/ContentLayerChromium.cpp:
1104         (WebCore::ContentLayerChromium::createTextureUpdater):
1105         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
1106         * platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
1107
1108 2011-09-27  Luke Macpherson   <macpherson@chromium.org>
1109
1110         Slightly improve performance of CSSStyleApplyProperty handler lookup.
1111         https://bugs.webkit.org/show_bug.cgi?id=68868
1112
1113         Reviewed by Eric Seidel.
1114
1115         No new tests as no functionality changed.
1116
1117         * css/CSSStyleApplyProperty.h:
1118         (WebCore::CSSStyleApplyProperty::propertyHandler):
1119         Make propertyHandler() public and remove redirecting functions.
1120         * css/CSSStyleSelector.cpp:
1121         (WebCore::CSSStyleSelector::applyProperty):
1122         Perform property handler lookup once and reuse the result.
1123
1124 2011-09-27  Kent Tamura  <tkent@chromium.org>
1125
1126         [V8] element.dataset.nonExistingKey should return undefined.
1127         https://bugs.webkit.org/show_bug.cgi?id=68877
1128
1129         Reviewed by Nate Chapin.
1130
1131         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
1132         (WebCore::V8DOMStringMap::namedPropertyGetter): Uses v8StringOrUndefined() instead of v8String().
1133
1134 2011-09-23  Mark Hahnenberg  <mhahnenberg@apple.com>
1135
1136         Add static version of JSCell::visitChildren
1137         https://bugs.webkit.org/show_bug.cgi?id=68404
1138
1139         Reviewed by Darin Adler.
1140
1141         No new tests.
1142
1143         In this patch we just extract the bodies of the virtual visitChildren methods
1144         throughout the JSCell inheritance hierarchy out into static methods, which are 
1145         now called from the virtual methods.  This is an intermediate step in trying to 
1146         move the virtual-ness of visitChildren into our own custom vtable stored in 
1147         ClassInfo.  We need to convert the methods to static methods in order to be 
1148         able to more easily store and refer to them in our custom vtable since normal 
1149         member methods store some implicit information in their types, making it 
1150         impossible to store them generically in ClassInfo.
1151
1152         * WebCore.exp.in:
1153         * bindings/js/JSAttrCustom.cpp:
1154         (WebCore::JSAttr::visitChildrenVirtual):
1155         (WebCore::JSAttr::visitChildren):
1156         * bindings/js/JSAudioContextCustom.cpp:
1157         (WebCore::JSAudioContext::visitChildrenVirtual):
1158         (WebCore::JSAudioContext::visitChildren):
1159         * bindings/js/JSCSSRuleCustom.cpp:
1160         (WebCore::JSCSSRule::visitChildrenVirtual):
1161         (WebCore::JSCSSRule::visitChildren):
1162         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
1163         (WebCore::JSCSSStyleDeclaration::visitChildrenVirtual):
1164         (WebCore::JSCSSStyleDeclaration::visitChildren):
1165         * bindings/js/JSCanvasRenderingContextCustom.cpp:
1166         (WebCore::JSCanvasRenderingContext::visitChildrenVirtual):
1167         (WebCore::JSCanvasRenderingContext::visitChildren):
1168         * bindings/js/JSDOMGlobalObject.cpp:
1169         (WebCore::JSDOMGlobalObject::visitChildrenVirtual):
1170         (WebCore::JSDOMGlobalObject::visitChildren):
1171         * bindings/js/JSDOMGlobalObject.h:
1172         * bindings/js/JSDOMWindowCustom.cpp:
1173         (WebCore::JSDOMWindow::visitChildrenVirtual):
1174         (WebCore::JSDOMWindow::visitChildren):
1175         * bindings/js/JSDOMWindowShell.cpp:
1176         (WebCore::JSDOMWindowShell::visitChildrenVirtual):
1177         (WebCore::JSDOMWindowShell::visitChildren):
1178         * bindings/js/JSDOMWindowShell.h:
1179         * bindings/js/JSJavaScriptAudioNodeCustom.cpp:
1180         (WebCore::JSJavaScriptAudioNode::visitChildrenVirtual):
1181         (WebCore::JSJavaScriptAudioNode::visitChildren):
1182         * bindings/js/JSMessageChannelCustom.cpp:
1183         (WebCore::JSMessageChannel::visitChildrenVirtual):
1184         (WebCore::JSMessageChannel::visitChildren):
1185         * bindings/js/JSMessagePortCustom.cpp:
1186         (WebCore::JSMessagePort::visitChildrenVirtual):
1187         (WebCore::JSMessagePort::visitChildren):
1188         * bindings/js/JSNamedNodeMapCustom.cpp:
1189         (WebCore::JSNamedNodeMap::visitChildrenVirtual):
1190         (WebCore::JSNamedNodeMap::visitChildren):
1191         * bindings/js/JSNodeCustom.cpp:
1192         (WebCore::JSNode::visitChildrenVirtual):
1193         (WebCore::JSNode::visitChildren):
1194         * bindings/js/JSNodeFilterCustom.cpp:
1195         (WebCore::JSNodeFilter::visitChildrenVirtual):
1196         (WebCore::JSNodeFilter::visitChildren):
1197         * bindings/js/JSNodeIteratorCustom.cpp:
1198         (WebCore::JSNodeIterator::visitChildrenVirtual):
1199         (WebCore::JSNodeIterator::visitChildren):
1200         * bindings/js/JSSVGElementInstanceCustom.cpp:
1201         (WebCore::JSSVGElementInstance::visitChildrenVirtual):
1202         (WebCore::JSSVGElementInstance::visitChildren):
1203         * bindings/js/JSSharedWorkerCustom.cpp:
1204         (WebCore::JSSharedWorker::visitChildrenVirtual):
1205         (WebCore::JSSharedWorker::visitChildren):
1206         * bindings/js/JSStyleSheetCustom.cpp:
1207         (WebCore::JSStyleSheet::visitChildrenVirtual):
1208         (WebCore::JSStyleSheet::visitChildren):
1209         * bindings/js/JSTreeWalkerCustom.cpp:
1210         (WebCore::JSTreeWalker::visitChildrenVirtual):
1211         (WebCore::JSTreeWalker::visitChildren):
1212         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1213         (WebCore::JSWebGLRenderingContext::visitChildrenVirtual):
1214         (WebCore::JSWebGLRenderingContext::visitChildren):
1215         * bindings/js/JSWorkerContextCustom.cpp:
1216         (WebCore::JSWorkerContext::visitChildrenVirtual):
1217         (WebCore::JSWorkerContext::visitChildren):
1218         * bindings/js/JSXMLHttpRequestCustom.cpp:
1219         (WebCore::JSXMLHttpRequest::visitChildrenVirtual):
1220         (WebCore::JSXMLHttpRequest::visitChildren):
1221         * bindings/js/JSXPathResultCustom.cpp:
1222         (WebCore::JSXPathResult::visitChildrenVirtual):
1223         (WebCore::JSXPathResult::visitChildren):
1224         * bindings/scripts/CodeGeneratorJS.pm:
1225         (GenerateHeader):
1226         (GenerateImplementation):
1227         * bindings/scripts/test/JS/JSTestObj.cpp:
1228         (WebCore::JSTestObj::visitChildrenVirtual):
1229         (WebCore::JSTestObj::visitChildren):
1230         * bindings/scripts/test/JS/JSTestObj.h:
1231         * bridge/qt/qt_instance.cpp:
1232         (JSC::Bindings::QtRuntimeObject::visitChildrenVirtual):
1233         (JSC::Bindings::QtRuntimeObject::visitChildren):
1234         * bridge/qt/qt_runtime.cpp:
1235         (JSC::Bindings::QtRuntimeMetaMethod::visitChildrenVirtual):
1236         (JSC::Bindings::QtRuntimeMetaMethod::visitChildren):
1237         * bridge/qt/qt_runtime.h:
1238         * workers/WorkerContext.h:
1239
1240 <<<<<<< .mine
1241 2011-09-27  Mark Hahnenberg  <mhahnenberg@apple.com>
1242
1243         Add static version of JSCell::getCallData
1244         https://bugs.webkit.org/show_bug.cgi?id=68741
1245
1246         Reviewed by Darin Adler.
1247
1248         No new tests.
1249
1250         In this patch we just extract the bodies of the virtual getCallData methods
1251         throughout the JSCell inheritance hierarchy out into static methods, which are 
1252         now called from the virtual methods.  This is an intermediate step in trying to 
1253         move the virtual-ness of getCallData into our own method table stored in 
1254         ClassInfo.  We need to convert the methods to static methods because static methods 
1255         can be represented as function pointers rather than pointers to member functions, and
1256         function pointers are smaller and faster to call than pointers to member functions.
1257
1258         * WebCore.exp.in:
1259         * bindings/js/JSCallbackData.cpp:
1260         (WebCore::JSCallbackData::invokeCallback):
1261         * bindings/js/JSCustomXPathNSResolver.cpp:
1262         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
1263         * bindings/js/JSErrorHandler.cpp:
1264         (WebCore::JSErrorHandler::handleEvent):
1265         * bindings/js/JSEventListener.cpp:
1266         (WebCore::JSEventListener::handleEvent):
1267         * bindings/js/JSHTMLAllCollectionCustom.cpp:
1268         (WebCore::JSHTMLAllCollection::getCallDataVirtual):
1269         (WebCore::JSHTMLAllCollection::getCallData):
1270         * bindings/js/JSHTMLAppletElementCustom.cpp:
1271         (WebCore::JSHTMLAppletElement::getCallDataVirtual):
1272         (WebCore::JSHTMLAppletElement::getCallData):
1273         * bindings/js/JSHTMLEmbedElementCustom.cpp:
1274         (WebCore::JSHTMLEmbedElement::getCallDataVirtual):
1275         (WebCore::JSHTMLEmbedElement::getCallData):
1276         * bindings/js/JSHTMLObjectElementCustom.cpp:
1277         (WebCore::JSHTMLObjectElement::getCallDataVirtual):
1278         (WebCore::JSHTMLObjectElement::getCallData):
1279         * bindings/js/JSInjectedScriptHostCustom.cpp:
1280         (WebCore::JSInjectedScriptHost::evaluate):
1281         * bindings/js/JSPluginElementFunctions.cpp:
1282         (WebCore::runtimeObjectGetCallData):
1283         * bindings/scripts/CodeGeneratorJS.pm:
1284         (GenerateHeader):
1285         * bridge/objc/objc_runtime.h:
1286         * bridge/objc/objc_runtime.mm:
1287         (JSC::Bindings::ObjcFallbackObjectImp::getCallDataVirtual):
1288         (JSC::Bindings::ObjcFallbackObjectImp::getCallData):
1289         * bridge/qt/qt_runtime.cpp:
1290         (JSC::Bindings::QtRuntimeMetaMethod::getCallDataVirtual):
1291         (JSC::Bindings::QtRuntimeMetaMethod::getCallData):
1292         (JSC::Bindings::QtRuntimeConnectionMethod::call):
1293         (JSC::Bindings::QtRuntimeConnectionMethod::getCallDataVirtual):
1294         (JSC::Bindings::QtRuntimeConnectionMethod::getCallData):
1295         (JSC::Bindings::isJavaScriptFunction):
1296         * bridge/qt/qt_runtime.h:
1297         * bridge/runtime_method.cpp:
1298         (JSC::RuntimeMethod::getCallDataVirtual):
1299         (JSC::RuntimeMethod::getCallData):
1300         * bridge/runtime_method.h:
1301         * bridge/runtime_object.cpp:
1302         (JSC::Bindings::RuntimeObject::getCallDataVirtual):
1303         (JSC::Bindings::RuntimeObject::getCallData):
1304         * bridge/runtime_object.h:
1305
1306 =======
1307 2011-09-27  Dean Jackson  <dino@apple.com>
1308
1309         Unreviewed. Remove duplicate FilterOperation{s}.h that were
1310         accidentally added to the top level of the Xcode project.
1311
1312         * WebCore.xcodeproj/project.pbxproj:
1313
1314 >>>>>>> .r96163
1315 2011-09-27  David Hyatt  <hyatt@apple.com>
1316
1317         https://bugs.webkit.org/show_bug.cgi?id=68940
1318
1319         Narrow the float/lines pagination heuristic to only kick in if
1320         the previous line broke cleanly and if the floats are occurring
1321         at the start of the line.
1322
1323         Reviewed by Dan Bernstein.
1324
1325         * rendering/RenderBlockLineLayout.cpp:
1326         (WebCore::RenderBlock::positionNewFloatOnLine):
1327
1328 2011-09-27  James Robinson  <jamesr@chromium.org>
1329
1330         Add a mechanism to test for the compositing tree mutated during painting
1331         https://bugs.webkit.org/show_bug.cgi?id=68738
1332
1333         Reviewed by Adam Barth.
1334
1335         Sets a static bool during GraphicsLayer::paintGraphicsLayerContents and ASSERT()s that we never create or
1336         destroy a GraphicsLayer inside this function. Painting should never mutate the GraphicsLayer tree.
1337
1338         Test: compositing/video/video-with-invalid-source.html
1339
1340         * platform/graphics/GraphicsLayer.cpp:
1341         (WebCore::GraphicsLayer::GraphicsLayer):
1342         (WebCore::GraphicsLayer::~GraphicsLayer):
1343         (WebCore::GraphicsLayer::paintGraphicsLayerContents):
1344
1345 2011-09-27  Ojan Vafai  <ojan@chromium.org>
1346
1347         take padding/border on flexbox into account with direction:rtl
1348         https://bugs.webkit.org/show_bug.cgi?id=68846
1349
1350         Reviewed by David Hyatt.
1351
1352         Use the logicalWidth of the flexbox instead of it's availableLogicalWidth
1353         so that we include the flexbox's border and padding.
1354         
1355         Also, change all uses of availableLogicalWidth to contentLogicalWidth.
1356         The former takes multi-column into account. Multi-column flexboxes don't
1357         make any sense, so there's no point in calling availableLogicalWidth.
1358
1359         * rendering/RenderFlexibleBox.cpp:
1360         (WebCore::RenderFlexibleBox::flowAwareLogicalWidth):
1361         (WebCore::RenderFlexibleBox::flowAwareContentLogicalWidth):
1362         (WebCore::RenderFlexibleBox::computePreferredLogicalWidth):
1363         (WebCore::RenderFlexibleBox::runFreeSpaceAllocationAlgorithmInlineDirection):
1364         (WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):
1365         * rendering/RenderFlexibleBox.h:
1366
1367 2011-09-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1368
1369         Unreviewed, rolling out r96139.
1370         http://trac.webkit.org/changeset/96139
1371         https://bugs.webkit.org/show_bug.cgi?id=68933
1372
1373         Broke table-percent-height.html on Mac bots (Requested by
1374         mwenge2 on #webkit).
1375
1376         * rendering/RenderBox.cpp:
1377         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
1378         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
1379         * rendering/RenderBox.h:
1380
1381 2011-09-27  Tim Horton  <timothy_horton@apple.com>
1382
1383         REGRESSION(65665): Pattern size being clamped to SVG size can prevent transformed elements from being fully covered by userSpaceOnUse patterns
1384         https://bugs.webkit.org/show_bug.cgi?id=67700
1385         <rdar://problem/10125102>
1386
1387         Reviewed by Darin Adler.
1388
1389         Clamp all resources to the same size, 4096x4096 (arbitrarily chosen), instead of to the size
1390         of the <svg> element. This fixes the case where a transformed element displays part of a resource
1391         outside of the size of the <svg> element.
1392
1393         When drawing an oversized pattern into its tile image, scale the content down to fit. When drawing
1394         the tile image to the screen, scale it back up to fit the expected area. This will cause pixelation
1395         when patterns are over the 4k limit.
1396
1397         Tests: svg/custom/transformed-pattern-clamp-svg-root.svg, svg/custom/oversized-pattern-scale.svg
1398
1399         * rendering/svg/RenderSVGResourceClipper.cpp:
1400         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
1401         * rendering/svg/RenderSVGResourceGradient.cpp:
1402         (WebCore::createMaskAndSwapContextForTextGradient):
1403         (WebCore::clipToTextMask):
1404         * rendering/svg/RenderSVGResourceMasker.cpp:
1405         (WebCore::RenderSVGResourceMasker::applyResource):
1406         * rendering/svg/RenderSVGResourcePattern.cpp:
1407         (WebCore::RenderSVGResourcePattern::applyResource):
1408         (WebCore::RenderSVGResourcePattern::createTileImage):
1409         * rendering/svg/RenderSVGResourcePattern.h:
1410         * rendering/svg/SVGImageBufferTools.cpp:
1411         (WebCore::SVGImageBufferTools::clampedAbsoluteTargetRect):
1412         * rendering/svg/SVGImageBufferTools.h:
1413
1414 2011-09-27  Dan Bernstein  <mitz@apple.com>
1415
1416         <rdar://problem/10098679> Assertion failure in RenderLayer::paintPaginatedChildLayer()
1417
1418         Reviewed by Simon Fraser.
1419
1420         Test: fast/dynamic/layer-no-longer-paginated.html
1421
1422         FrameView::layout() calls adjustViewSize() before calling RenderLayer::updateLayerPositions().
1423         The former may trigger painting with a layer tree that is not entirely up-to-date. Specifically,
1424         the isPaginated() state of a layer may be incorrect, leading to the assertion in this bug. Instead
1425         of asserting, return early and count on the upcoming updateLayerPositions() to repaint as needed.
1426
1427         * rendering/RenderLayer.cpp:
1428         (WebCore::RenderLayer::paintPaginatedChildLayer): Replaced the assertion with an early return.
1429
1430 2011-09-27  Ojan Vafai  <ojan@chromium.org>
1431
1432         offsetTop/offsetLeft return the wrong values for horizontal-bt/vertical-rl writing modes
1433         https://bugs.webkit.org/show_bug.cgi?id=68304
1434
1435         Reviewed by David Hyatt.
1436
1437         When grabbing the x/y values of the RenderBox, we need to take writing mode
1438         flipping into account.
1439
1440         Test: fast/dom/offset-position-writing-modes.html
1441
1442         * rendering/RenderBox.cpp:
1443         (WebCore::RenderBox::locationIncludingFlipping):
1444         * rendering/RenderBox.h:
1445         (WebCore::RenderBox::yFlippedForWritingMode):
1446         (WebCore::RenderBox::xFlippedForWritingMode):
1447         * rendering/RenderBoxModelObject.cpp:
1448         (WebCore::RenderBoxModelObject::offsetLeft):
1449         (WebCore::RenderBoxModelObject::offsetTop):
1450
1451 2011-09-27  Tim Horton  <timothy_horton@apple.com>
1452
1453         Rapidly refreshing a feMorphology[erode] with r=0 can sometimes cause display corruption
1454         https://bugs.webkit.org/show_bug.cgi?id=68816
1455         <rdar://problem/10186468>
1456
1457         Reviewed by Simon Fraser.
1458
1459         If a filter returns without writing into its result buffer, make sure to return an cleared buffer.
1460
1461         Test: svg/filters/feMorphology-zero-radius.svg
1462
1463         * platform/graphics/filters/FEMorphology.cpp:
1464         (WebCore::FEMorphology::apply):
1465         * platform/graphics/filters/FETurbulence.cpp:
1466         (WebCore::FETurbulence::apply):
1467
1468 2011-09-27  Ryosuke Niwa  <rniwa@webkit.org>
1469
1470         CompositeEditCommand::prune should remove subtree at once
1471         https://bugs.webkit.org/show_bug.cgi?id=68866
1472
1473         Reviewed by Darin Adler.
1474
1475         Extracted the logic to find the highest ancestor to remove as highestNodeToRemoveInPruning from prune.
1476         This reduces the number of node removals from O(n) to O(1) where n is the depth of the tree.
1477
1478         * editing/CompositeEditCommand.cpp:
1479         (WebCore::hasARenderedDescendant): Takes excludedNode in addition to node. excludedNode is used to ignore
1480         the child node from which we climbed up the tree in highestNodeToRemoveInPruning.
1481         (WebCore::highestNodeToRemoveInPruning): Extracted from prune.
1482         (WebCore::CompositeEditCommand::prune):
1483         (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
1484
1485 2011-09-27  David Hyatt  <hyatt@apple.com>
1486
1487         https://bugs.webkit.org/show_bug.cgi?id=68922
1488
1489         Paginated floats should not grow the height of a block when they don't end
1490         up being tied to a line. Floats encountered in skipLeadingWhitespace that
1491         paginate can't immediately grow the height of the block, since there may not
1492         end up being any actual line content. We only want to push the height of the
1493         block down if we have actual line content that we want to keep with the
1494         float.
1495         
1496         Make positionNewFloatOnLine check if the line is empty or not, and if it is,
1497         it just puts the desired pagination strut into LineInfo. If and when actual
1498         line content is encountered and setEmpty becomes false, we'll grow the block
1499         height then.
1500         
1501         Reviewed by Dan Bernstein.
1502
1503         Added fast/multicol/float-paginate-empty-lines.html and
1504         fast/regions/webkit-flow-double-pagination-float-push.html.
1505
1506         * rendering/RenderBlock.h:
1507         * rendering/RenderBlockLineLayout.cpp:
1508         (WebCore::LineWidth::LineWidth):
1509         (WebCore::LineWidth::fitsOnLine):
1510         (WebCore::LineWidth::currentWidth):
1511         (WebCore::LineWidth::uncommittedWidth):
1512         (WebCore::LineWidth::committedWidth):
1513         (WebCore::LineWidth::availableWidth):
1514         (WebCore::LineWidth::addUncommittedWidth):
1515         (WebCore::LineWidth::commit):
1516         (WebCore::LineWidth::computeAvailableWidthFromLeftAndRight):
1517         (WebCore::LineWidth::updateAvailableWidth):
1518         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
1519         (WebCore::LineWidth::applyOverhang):
1520         (WebCore::LineWidth::fitBelowFloats):
1521         (WebCore::LineInfo::LineInfo):
1522         (WebCore::LineInfo::floatPaginationStrut):
1523         (WebCore::LineInfo::setEmpty):
1524         (WebCore::LineInfo::setFloatPaginationStrut):
1525         (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
1526         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
1527         (WebCore::RenderBlock::positionNewFloatOnLine):
1528
1529 2011-09-27  Dean Jackson  <dino@apple.com>
1530
1531         Add 'filter' value to RenderStyle
1532         https://bugs.webkit.org/show_bug.cgi?id=68471
1533
1534         Reviewed by Simon Fraser.
1535
1536         Add a filter property to RenderStyle when ENABLE(CSS_FILTERS)
1537         is turned on. Similar to -webkit-transform, -webkit-filter is a
1538         list of FilterOperations, each identifying what type of operation
1539         it is. This change simply adds the basic objects, it does not
1540         parse the property to generate the list.
1541
1542         * CMakeLists.txt:
1543         * GNUmakefile.list.am:
1544         * WebCore.gypi:
1545         * WebCore.pro:
1546         * WebCore.vcproj/WebCore.vcproj:
1547         * WebCore.xcodeproj/project.pbxproj:
1548         * platform/graphics/filters/FilterOperation.h: Added.
1549         (WebCore::FilterOperation::~FilterOperation):
1550         (WebCore::FilterOperation::operator!=):
1551         (WebCore::FilterOperation::getOperationType):
1552         (WebCore::FilterOperation::isSameType):
1553         (WebCore::FilterOperation::FilterOperation):
1554         (WebCore::ReferenceFilterOperation::create):
1555         (WebCore::ReferenceFilterOperation::reference):
1556         (WebCore::ReferenceFilterOperation::operator==):
1557         (WebCore::ReferenceFilterOperation::ReferenceFilterOperation):
1558         (WebCore::BasicColorMatrixFilterOperation::create):
1559         (WebCore::BasicColorMatrixFilterOperation::amount):
1560         (WebCore::BasicColorMatrixFilterOperation::operator==):
1561         (WebCore::BasicColorMatrixFilterOperation::BasicColorMatrixFilterOperation):
1562         (WebCore::BasicComponentTransferFilterOperation::create):
1563         (WebCore::BasicComponentTransferFilterOperation::amount):
1564         (WebCore::BasicComponentTransferFilterOperation::operator==):
1565         (WebCore::BasicComponentTransferFilterOperation::BasicComponentTransferFilterOperation):
1566         (WebCore::GammaFilterOperation::create):
1567         (WebCore::GammaFilterOperation::amplitude):
1568         (WebCore::GammaFilterOperation::exponent):
1569         (WebCore::GammaFilterOperation::offset):
1570         (WebCore::GammaFilterOperation::operator==):
1571         (WebCore::GammaFilterOperation::GammaFilterOperation):
1572         (WebCore::BlurFilterOperation::create):
1573         (WebCore::BlurFilterOperation::stdDeviationX):
1574         (WebCore::BlurFilterOperation::stdDeviationY):
1575         (WebCore::BlurFilterOperation::operator==):
1576         (WebCore::BlurFilterOperation::BlurFilterOperation):
1577         (WebCore::SharpenFilterOperation::create):
1578         (WebCore::SharpenFilterOperation::radius):
1579         (WebCore::SharpenFilterOperation::threshold):
1580         (WebCore::SharpenFilterOperation::amount):
1581         (WebCore::SharpenFilterOperation::operator==):
1582         (WebCore::SharpenFilterOperation::SharpenFilterOperation):
1583         (WebCore::DropShadowFilterOperation::create):
1584         (WebCore::DropShadowFilterOperation::shadow):
1585         (WebCore::DropShadowFilterOperation::operator==):
1586         (WebCore::DropShadowFilterOperation::DropShadowFilterOperation):
1587         * platform/graphics/filters/FilterOperations.cpp: Added.
1588         (WebCore::FilterOperations::FilterOperations):
1589         (WebCore::FilterOperations::operator==):
1590         * platform/graphics/filters/FilterOperations.h: Added.
1591         (WebCore::FilterOperations::operator!=):
1592         (WebCore::FilterOperations::clear):
1593         (WebCore::FilterOperations::operations):
1594         (WebCore::FilterOperations::size):
1595         (WebCore::FilterOperations::at):
1596         * rendering/style/RenderStyle.cpp:
1597         (WebCore::RenderStyle::RenderStyle):
1598         * rendering/style/RenderStyle.h:
1599         (WebCore::InheritedFlags::filter):
1600         (WebCore::InheritedFlags::hasFilter):
1601         (WebCore::InheritedFlags::setFilter):
1602         (WebCore::InheritedFlags::initialFilter):
1603         * rendering/style/StyleAllInOne.cpp: Added include of new StyleFilterData.
1604         * rendering/style/StyleFilterData.cpp: Added.
1605         (WebCore::StyleFilterData::StyleFilterData):
1606         (WebCore::StyleFilterData::operator==):
1607         * rendering/style/StyleFilterData.h: Added.
1608         (WebCore::StyleFilterData::create):
1609         (WebCore::StyleFilterData::copy):
1610         (WebCore::StyleFilterData::operator!=):
1611         * rendering/style/StyleRareNonInheritedData.cpp:
1612         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
1613         (WebCore::StyleRareNonInheritedData::operator==):
1614         * rendering/style/StyleRareNonInheritedData.h: New filter DataRef.
1615
1616 2011-09-27  James Robinson  <jamesr@chromium.org>
1617
1618         [chromium] LayerRenderChromium asserts about leaking textures.
1619         https://bugs.webkit.org/show_bug.cgi?id=68190
1620
1621         Reviewed by Kenneth Russell.
1622
1623         This introduces an interface TextureAllocator that the TextureManager uses to allocate/deallocate textures.
1624         This means that TextureManager does not need to depend directly on GraphicsContext3D, other than for the format
1625         enum type, making it more testable.  It also allows us to track the allocations by subclassing TextureAllocator
1626         to make sure we aren't leaking any textures.
1627
1628         * WebCore.gypi:
1629         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1630         (WebCore::Canvas2DLayerChromium::updateCompositorResources):
1631         * platform/graphics/chromium/Canvas2DLayerChromium.h:
1632         * platform/graphics/chromium/ImageLayerChromium.cpp:
1633         (WebCore::ImageLayerTextureUpdater::updateTextureRect):
1634         * platform/graphics/chromium/LayerChromium.h:
1635         (WebCore::LayerChromium::updateCompositorResources):
1636         * platform/graphics/chromium/LayerRendererChromium.cpp:
1637         (WebCore::LayerRendererChromium::LayerRendererChromium):
1638         (WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
1639         (WebCore::LayerRendererChromium::drawLayers):
1640         (WebCore::LayerRendererChromium::useRenderSurface):
1641         (WebCore::LayerRendererChromium::initializeSharedObjects):
1642         (WebCore::LayerRendererChromium::cleanupSharedObjects):
1643         * platform/graphics/chromium/LayerRendererChromium.h:
1644         (WebCore::LayerRendererChromium::renderSurfaceTextureAllocator):
1645         (WebCore::LayerRendererChromium::contentsTextureAllocator):
1646         * platform/graphics/chromium/LayerTextureUpdater.h:
1647         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
1648         (WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
1649         (WebCore::LayerTextureUpdaterSkPicture::updateTextureRect):
1650         * platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
1651         * platform/graphics/chromium/ManagedTexture.cpp:
1652         (WebCore::ManagedTexture::bindTexture):
1653         (WebCore::ManagedTexture::framebufferTexture2D):
1654         * platform/graphics/chromium/ManagedTexture.h:
1655         * platform/graphics/chromium/TextureManager.cpp:
1656         (WebCore::TextureManager::memoryUseBytes):
1657         (WebCore::TextureManager::deleteEvictedTextures):
1658         (WebCore::TextureManager::evictAndDeleteAllTextures):
1659         (WebCore::TextureManager::removeTexture):
1660         (WebCore::TextureManager::allocateTexture):
1661         (WebCore::TextureManager::requestTexture):
1662         * platform/graphics/chromium/TextureManager.h:
1663         (WebCore::TextureAllocator::~TextureAllocator):
1664         * platform/graphics/chromium/TiledLayerChromium.cpp:
1665         (WebCore::TiledLayerChromium::updateCompositorResources):
1666         * platform/graphics/chromium/TiledLayerChromium.h:
1667         * platform/graphics/chromium/TrackingTextureAllocator.cpp: Added.
1668         (WebCore::TrackingTextureAllocator::TrackingTextureAllocator):
1669         (WebCore::TrackingTextureAllocator::~TrackingTextureAllocator):
1670         (WebCore::TrackingTextureAllocator::createTexture):
1671         (WebCore::TrackingTextureAllocator::deleteTexture):
1672         * platform/graphics/chromium/TrackingTextureAllocator.h: Copied from Source/WebCore/platform/graphics/chromium/ManagedTexture.h.
1673         (WebCore::TrackingTextureAllocator::create):
1674         (WebCore::TrackingTextureAllocator::currentMemoryUseBytes):
1675         * platform/graphics/chromium/VideoLayerChromium.cpp:
1676         (WebCore::VideoLayerChromium::updateCompositorResources):
1677         (WebCore::VideoLayerChromium::updateTexture):
1678         * platform/graphics/chromium/VideoLayerChromium.h:
1679         * platform/graphics/chromium/WebGLLayerChromium.cpp:
1680         (WebCore::WebGLLayerChromium::updateCompositorResources):
1681         * platform/graphics/chromium/WebGLLayerChromium.h:
1682         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
1683         (WebCore::CCHeadsUpDisplay::draw):
1684         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1685         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
1686         (WebCore::CCLayerTreeHost::deleteContentsTexturesOnCCThread):
1687         (WebCore::CCLayerTreeHost::commitToOnCCThread):
1688         (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
1689         (WebCore::CCLayerTreeHost::updateCompositorResources):
1690         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1691         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1692         (WebCore::CCLayerTreeHostImpl::contentsTextureAllocator):
1693         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
1694         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1695         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
1696         (WebCore::CCRenderSurface::drawSurface):
1697         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1698         (WebCore::CCSingleThreadProxy::setNeedsCommit):
1699         (WebCore::CCSingleThreadProxy::stop):
1700         (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
1701         (WebCore::CCSingleThreadProxy::commitIfNeeded):
1702         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1703         (WebCore::CCThreadProxy::commitOnCCThread):
1704         (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
1705
1706 2011-06-28  Robert Hogan  <robert@webkit.org>
1707
1708         Reviewed by David Hyatt.
1709
1710         Replaced elements squeezed when width is specified as percentage inside a table with Auto layout
1711         https://bugs.webkit.org/show_bug.cgi?id=29447
1712
1713         If inserting a 'replaced' element (e.g. image, plugin) in a table cell that is not descendant from
1714         a block with fixed layout then do not squeeze the element, let it use its intrinsic width and height.
1715
1716         Test: fast/replaced/table-percent-width.html
1717
1718         * rendering/RenderBox.cpp:
1719         (WebCore::avoidSqueezingWidth):
1720         (WebCore::avoidSqueezingHeight):
1721         (WebCore::RenderBox::containingBlockReplacedLogicalWidthForContent):
1722         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
1723         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
1724         * rendering/RenderBox.h:
1725
1726 2011-09-27  Simon Fraser  <simon.fraser@apple.com>
1727
1728         https://bugs.webkit.org/show_bug.cgi?id=67858
1729
1730         Roll r96070 back in now that the crash has been fixed in r96130.
1731
1732         Reviewed by Darin Adler.
1733         
1734         When non-overlay scrollbars are hidden on a composited iframe, nothing invalidated
1735         the scrollbar areas or the scroll corner, so the scrollbars appear to remain.
1736         
1737         Fix by invalidating the scrollbars and scroll corner when they are removed. Invalidation
1738         on scrollbar creation appears to happen via updating the scrollbar style.
1739
1740         Tested by compositing/iframes/repaint-after-losing-scrollbars.html which no longer shows
1741         stale scrollbars when run manually, even though the green squares are missing from the
1742         pixel result (bug 67878).
1743
1744         * page/FrameView.cpp:
1745         (WebCore::FrameView::updateScrollCorner): Pass the corner rect into invalidateScrollCorner().
1746         * platform/ScrollView.cpp:
1747         (WebCore::ScrollView::setHasHorizontalScrollbar): Invalidate the scrollbar area if hiding it.
1748         (WebCore::ScrollView::setHasVerticalScrollbar): Ditto.
1749         (WebCore::ScrollView::updateScrollbars): In the case where both scrollbars are going away,
1750         compute the scroll corner rect while we still have scrollbars, and then invalidate it
1751         explicitly. (updateScrollCorner() doesn't, because it doesn't have access to the old corner
1752         rect.)
1753         * platform/ScrollableArea.cpp:
1754         (WebCore::ScrollableArea::invalidateScrollCorner): Pass the rect in, because we can't
1755         compute it in the case where the scrollbars are going away.
1756         * platform/ScrollableArea.h: Pass in a rect to invalidateScrollCorner(), which matches
1757         invalidateScrollbar().
1758         * rendering/RenderLayerCompositor.cpp:
1759         (WebCore::RenderLayerCompositor::destroyRootLayer): Pass the corner rect into invalidateScrollCorner().
1760         * rendering/RenderScrollbarPart.cpp: Ditto.
1761         (WebCore::RenderScrollbarPart::imageChanged): Ditto.
1762
1763 2011-09-27  Mihai Parparita  <mihaip@chromium.org>
1764
1765         Fix Chromium Mac build after r96130.
1766
1767         * page/FrameView.cpp:
1768         (WebCore::FrameView::layerForOverhangAreas):
1769
1770 2011-09-27  Kaustubh Atrawalkar  <kaustubh@motorola.com>
1771
1772         Autofocus on readonly inputs does not focus the element.
1773         https://bugs.webkit.org/show_bug.cgi?id=24092
1774
1775         Reviewed by Ryosuke Niwa.
1776
1777         Readonly input elements should be autofocusable. Removed the check.
1778
1779         Tests: fast/forms/autofocus-readonly-attribute.html
1780
1781         * html/HTMLFormControlElement.cpp:
1782         (WebCore::shouldAutofocus):
1783
1784 2011-09-27  Simon Fraser  <simon.fraser@apple.com>
1785
1786         Clean up how FrameView accesses the RenderView
1787         https://bugs.webkit.org/show_bug.cgi?id=68914
1788
1789         Reviewed by Sam Weinig.
1790
1791         Clean up how FrameView accesses the content renderer of its
1792         frame. Previously, this was done in several different ways,
1793         only some of which did null-checking.
1794         
1795         Use an inline method to avoid having to expose Frame
1796         in the header.
1797         
1798         Standardize the terminology to use 'root' for this RenderView.
1799
1800         * page/FrameView.cpp:
1801         (WebCore::rootRenderer):
1802         (WebCore::FrameView::setFrameRect):
1803         (WebCore::FrameView::adjustViewSize):
1804         (WebCore::FrameView::updateCompositingLayers):
1805         (WebCore::FrameView::clearBackingStores):
1806         (WebCore::FrameView::restoreBackingStores):
1807         (WebCore::FrameView::layerForHorizontalScrollbar):
1808         (WebCore::FrameView::layerForVerticalScrollbar):
1809         (WebCore::FrameView::layerForScrollCorner):
1810         (WebCore::FrameView::layerForOverhangAreas):
1811         (WebCore::FrameView::syncCompositingStateForThisFrame):
1812         (WebCore::FrameView::hasCompositedContent):
1813         (WebCore::FrameView::enterCompositingMode):
1814         (WebCore::FrameView::isSoftwareRenderable):
1815         (WebCore::FrameView::didMoveOnscreen):
1816         (WebCore::FrameView::willMoveOffscreen):
1817         (WebCore::FrameView::layout):
1818         (WebCore::FrameView::embeddedContentBox):
1819         (WebCore::FrameView::contentsInCompositedLayer):
1820         (WebCore::FrameView::scrollContentsFastPath):
1821         (WebCore::FrameView::scrollContentsSlowPath):
1822         (WebCore::FrameView::maintainScrollPositionAtAnchor):
1823         (WebCore::FrameView::scrollPositionChanged):
1824         (WebCore::FrameView::repaintFixedElementsAfterScrolling):
1825         (WebCore::FrameView::visibleContentsResized):
1826         (WebCore::FrameView::scheduleRelayoutOfSubtree):
1827         (WebCore::FrameView::needsLayout):
1828         (WebCore::FrameView::setNeedsLayout):
1829         (WebCore::FrameView::performPostLayoutTasks):
1830         (WebCore::FrameView::updateControlTints):
1831         (WebCore::FrameView::paintContents):
1832         (WebCore::FrameView::forceLayoutForPagination):
1833         (WebCore::FrameView::adjustPageHeightDeprecated):
1834         (WebCore::FrameView::isVerticalDocument):
1835         (WebCore::FrameView::isFlippedDocument):
1836
1837 2011-09-27  Dominic Mazzoni  <dmazzoni@google.com>
1838
1839         AXObjectCache cleared unnecessarily when non-top Document is detached.
1840         https://bugs.webkit.org/show_bug.cgi?id=68636
1841
1842         Reviewed by Chris Fleizach.
1843
1844         Test: accessibility/deleting-iframe-destroys-axcache.html
1845
1846         * dom/Document.cpp:
1847         (WebCore::Document::attach):
1848         (WebCore::Document::detach):
1849
1850 2011-09-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1851
1852         Unreviewed, rolling out r96108, r96111, r96113, and r96116.
1853         http://trac.webkit.org/changeset/96108
1854         http://trac.webkit.org/changeset/96111
1855         http://trac.webkit.org/changeset/96113
1856         http://trac.webkit.org/changeset/96116
1857         https://bugs.webkit.org/show_bug.cgi?id=68913
1858
1859         Wait for working Qt5 (Requested by ossy on #webkit).
1860
1861         * WebCore.pri:
1862         * platform/graphics/qt/GraphicsLayerQt.cpp:
1863
1864 2011-09-27  Csaba Osztrogonác  <ossy@webkit.org>
1865
1866         Fix ENABLE(SQL_DATABASE)=0 build after r95919
1867         https://bugs.webkit.org/show_bug.cgi?id=68902
1868
1869         r95919 enabled OFFLINE_WEB_APPLICATIONS by default and
1870         it needs SQLite stuff even if ENABLE_SQL_DATABASE=0.
1871
1872         Reviewed by Adam Barth.
1873
1874         * platform/sql/SQLiteAuthorizer.cpp:
1875         * platform/sql/SQLiteDatabase.cpp:
1876         * platform/sql/SQLiteFileSystem.cpp:
1877         * platform/sql/SQLiteStatement.cpp:
1878         * platform/sql/SQLiteTransaction.cpp:
1879         * storage/DatabaseAuthorizer.cpp:
1880
1881 2011-09-27  Julien Chaffraix  <jchaffraix@webkit.org>
1882
1883         Crash because CSSPrimitiveValue::computeLengthDouble assumes fontMetrics are available
1884         https://bugs.webkit.org/show_bug.cgi?id=66291
1885
1886         Reviewed by Darin Adler.
1887
1888         Test: fast/canvas/crash-set-font.html
1889
1890         This is Yet Another Missing updateFont (similar to bug 57756 and likely others). Here the issue is that
1891         applying one of the font properties could mutate the parent style's font if m_parentStyle == m_style.
1892         We would then query the newly created font when applying CSSPropertyFontSize, which has no font fallback
1893         list as Font::update was never called.
1894
1895         The right fix would be to refactor of how we handle fonts to avoid such manual updates (see bug 62390).
1896         Until this happens, it is better not to crash.
1897
1898         * css/CSSStyleSelector.cpp:
1899         (WebCore::CSSStyleSelector::applyProperty): Added updateFont() here as the fonts could have been
1900         mutated by the previous property change. Also added a comment explaining why it is safe to do it
1901         this way.
1902
1903 2011-09-27  No'am Rosenthal  <noam.rosenthal@nokia.com>
1904
1905         [Texmap] Code cleanup: remove unused boundingRect/visibleRect calculations
1906         https://bugs.webkit.org/show_bug.cgi?id=68897
1907
1908         Reviewed by Andreas Kling.
1909
1910         No new functionality so no new tests.
1911
1912         * platform/graphics/texmap/TextureMapperNode.cpp:
1913         (WebCore::TextureMapperNode::computeAllTransforms):
1914         (WebCore::TextureMapperNode::computeTiles):
1915         (WebCore::TextureMapperNode::syncCompositingState):
1916         * platform/graphics/texmap/TextureMapperNode.h:
1917
1918 2011-09-27  No'am Rosenthal  <noam.rosenthal@nokia.com>
1919
1920         [Texmap][Qt] Refactor texture-upload to allow direct chunk update
1921         https://bugs.webkit.org/show_bug.cgi?id=68808
1922
1923         Add a function to BitmapTexture for direct pixel updates.
1924         Modify BitmapTextureGL::endPaint to use that function. Since the BGRA
1925         to RGBA swizzling is done inside that function, there's no need for the 
1926         RGBA32PremultipliedBuffer class to contain such function. Also,
1927         RGBA32PremultipliedBuffer was renamed to BGRA32PremultipliedBuffer, correcting
1928         an old mistake.
1929
1930         Reviewed by Andreas Kling.
1931
1932         No new tests. Existing tests in LayoutTests/compositing test this.
1933
1934         * platform/graphics/opengl/TextureMapperGL.cpp:
1935         (WebCore::BitmapTextureGL::beginPaint):
1936         (WebCore::BitmapTextureGL::endPaint):
1937         (WebCore::swizzleBGRAToRGBA):
1938         (WebCore::BitmapTextureGL::updateContents):
1939         * platform/graphics/opengl/TextureMapperGL.h:
1940         (WebCore::BGRA32PremultimpliedBuffer::~BGRA32PremultimpliedBuffer):
1941         * platform/graphics/qt/TextureMapperQt.cpp:
1942         (WebCore::BitmapTextureQt::updateContents):
1943         (WebCore::BGRA32PremultimpliedBufferQt::data):
1944         (WebCore::BGRA32PremultimpliedBuffer::create):
1945         * platform/graphics/qt/TextureMapperQt.h:
1946         * platform/graphics/texmap/TextureMapper.h:
1947
1948 2011-09-23  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1949
1950         [Qt] Fix build against Qt5 after refactor of widgets out of QtGUi
1951
1952         QWidget and friends now live in the QtWidgets library. We update
1953         includes in implementation files and private headers to us the
1954         non-module-prefixed path, and leave the lookup for the include
1955         path. For public headers we have to ifdef the includes as the
1956         user might now have the modules we need in his QT config.
1957
1958         Finally, QSGCanvas is no longer a QWidget but a QWindow, so we
1959         have to update our code and use windowHandle() for setting the
1960         parent relationships.
1961
1962         https://bugs.webkit.org/show_bug.cgi?id=68687
1963
1964         Reviewed by Andreas Kling.
1965
1966         * WebCore.pri:
1967         * platform/graphics/qt/GraphicsLayerQt.cpp:
1968
1969 2011-09-27  Pavel Feldman  <pfeldman@google.com>
1970
1971         Web Inspector: split DOM.attributesUpdated into attributeModified and attributeRemoved.
1972         Send attribute name and value within the event.
1973         https://bugs.webkit.org/show_bug.cgi?id=68613
1974
1975         Reviewed by Yury Semikhatsky.
1976
1977         * dom/Element.cpp:
1978         (WebCore::Element::setAttribute):
1979         (WebCore::Element::removeAttribute):
1980         * inspector/Inspector.draft-01.json:
1981         * inspector/Inspector.json:
1982         * inspector/InspectorDOMAgent.cpp:
1983         (WebCore::InspectorDOMAgent::didModifyDOMAttr):
1984         (WebCore::InspectorDOMAgent::didRemoveDOMAttr):
1985         * inspector/InspectorDOMAgent.h:
1986         * inspector/InspectorInstrumentation.cpp:
1987         (WebCore::InspectorInstrumentation::didModifyDOMAttrImpl):
1988         (WebCore::InspectorInstrumentation::didRemoveDOMAttrImpl):
1989         * inspector/InspectorInstrumentation.h:
1990         (WebCore::InspectorInstrumentation::didModifyDOMAttr):
1991         (WebCore::InspectorInstrumentation::didRemoveDOMAttr):
1992         * inspector/front-end/DOMAgent.js:
1993         (WebInspector.DOMNode.prototype._addAttribute):
1994         (WebInspector.DOMNode.prototype._setAttribute):
1995         (WebInspector.DOMNode.prototype._removeAttribute):
1996         (WebInspector.DOMAgent.prototype._attributeModified):
1997         (WebInspector.DOMAgent.prototype._attributeRemoved):
1998         (WebInspector.DOMAgent.prototype._inlineStyleInvalidated):
1999         (WebInspector.DOMAgent.prototype._loadNodeAttributes):
2000         (WebInspector.DOMDispatcher.prototype.attributeModified):
2001         (WebInspector.DOMDispatcher.prototype.attributeRemoved):
2002         * inspector/front-end/ElementsPanel.js:
2003         (WebInspector.ElementsPanel):
2004         (WebInspector.ElementsPanel.prototype._attributesUpdated):
2005         * inspector/front-end/MetricsSidebarPane.js:
2006         (WebInspector.MetricsSidebarPane):
2007         (WebInspector.MetricsSidebarPane.prototype._attributesUpdated):
2008         * inspector/front-end/StylesSidebarPane.js:
2009         (WebInspector.StylesSidebarPane):
2010         (WebInspector.StylesSidebarPane.prototype._attributesModified):
2011         (WebInspector.StylesSidebarPane.prototype._attributesRemoved):
2012         (WebInspector.StylesSidebarPane.prototype._styleInvalidated):
2013         (WebInspector.StylePropertyTreeElement.prototype.event):
2014         (WebInspector.StylePropertyTreeElement.prototype):
2015         * inspector/validate-protocol-compatibility:
2016
2017 2011-09-27  Sheriff Bot  <webkit.review.bot@gmail.com>
2018
2019         Unreviewed, rolling out r96070 and r96075.
2020         http://trac.webkit.org/changeset/96070
2021         http://trac.webkit.org/changeset/96075
2022         https://bugs.webkit.org/show_bug.cgi?id=68893
2023
2024         WK2 tests started crashing after r96070 for SL and Qt
2025         (Requested by torarne on #webkit).
2026
2027         * page/FrameView.cpp:
2028         (WebCore::FrameView::updateScrollCorner):
2029         * platform/ScrollView.cpp:
2030         (WebCore::ScrollView::setHasHorizontalScrollbar):
2031         (WebCore::ScrollView::setHasVerticalScrollbar):
2032         (WebCore::ScrollView::updateScrollbars):
2033         * platform/ScrollableArea.cpp:
2034         (WebCore::ScrollableArea::invalidateScrollCorner):
2035         * platform/ScrollableArea.h:
2036         * rendering/RenderLayerCompositor.cpp:
2037         (WebCore::RenderLayerCompositor::destroyRootLayer):
2038         * rendering/RenderScrollbarPart.cpp:
2039         (WebCore::RenderScrollbarPart::imageChanged):
2040
2041 2011-09-27  Andrey Kosyakov  <caseq@chromium.org>
2042
2043         Web Inspector: JS exception upon clicking on "Word Wrap" checkbox in Settings screen
2044         https://bugs.webkit.org/show_bug.cgi?id=68888
2045
2046         Reviewed by Pavel Feldman.
2047
2048         * inspector/front-end/ElementsPanel.js:
2049         (WebInspector.ElementsPanel.prototype._domWordWrapSettingChanged):
2050
2051 2011-09-21  Pavel Podivilov  <podivilov@chromium.org>
2052
2053         Web Inspector: migrate RawSourceCode clients to SourceMapping class.
2054         https://bugs.webkit.org/show_bug.cgi?id=68524
2055
2056         Clients should use uiSourceCode(), rawLocationToUILocation(), uiLocationToRawLocation() methods of SourceMapping class.
2057         Initially, RawSourceCode may not have associated SourceMapping, so it is natural to extract this methods and associated state to a separate class.
2058
2059         Reviewed by Yury Semikhatsky.
2060
2061         * inspector/front-end/BreakpointManager.js:
2062         (WebInspector.BreakpointManager.prototype._materializeBreakpoint):
2063         (WebInspector.BreakpointManager.prototype._breakpointDebuggerLocationChanged):
2064         * inspector/front-end/DebuggerPresentationModel.js:
2065         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation.updateAnchor):
2066         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
2067         (WebInspector.DebuggerPresentationModel.prototype._addScript):
2068         (WebInspector.DebuggerPresentationModel.prototype._updateSourceMapping):
2069         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
2070         (WebInspector.DebuggerPresentationModel.prototype._restoreConsoleMessages):
2071         (WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded):
2072         (WebInspector.DebuggerPresentationModel.prototype._createPresentationMessage):
2073         (WebInspector.DebuggerPresentationModel.prototype.continueToLine):
2074         (WebInspector.PresentationCallFrame.prototype.get url):
2075         (WebInspector.PresentationCallFrame.prototype.sourceLine.sourceMappingUpdated):
2076         (WebInspector.PresentationCallFrame.prototype.sourceLine):
2077         (WebInspector.DebuggerPresentationModelResourceBinding.prototype.canSetContent):
2078         (WebInspector.DebuggerPresentationModelResourceBinding.prototype.setContent):
2079         * inspector/front-end/SourceFile.js:
2080         (WebInspector.RawSourceCode.prototype.get sourceMapping):
2081
2082 2011-09-27  Vineet Chaudhary  <vineet.chaudhary@motorola.com>
2083
2084         wrap attribute of textarea element cannot be accessed by JavaScript.
2085         https://bugs.webkit.org/show_bug.cgi?id=68592
2086
2087         Reviewed by Kent Tamura.
2088
2089         Added JS interface for wrap attribute to HTMLTextAreaElement.idl.
2090
2091         Test: fast/forms/textarea-wrap-attribute.html
2092
2093         * html/HTMLTextAreaElement.idl:
2094
2095 2011-09-27  Xan Lopez  <xlopez@igalia.com>
2096
2097         [GTK] Add compatibility methods for DOM bindings
2098         https://bugs.webkit.org/show_bug.cgi?id=68884
2099
2100         Reviewed by Philippe Normand.
2101
2102         Add compatibility methods for our DOM bindings.
2103
2104         * bindings/gobject/WebKitDOMCustom.cpp:
2105         (webkit_dom_blob_slice): alias to the new method name.
2106         (webkit_dom_html_form_element_dispatch_form_change): this was
2107         removed from WebCore, so just print a warning about it.
2108         (webkit_dom_html_form_element_dispatch_form_input): ditto.
2109         * bindings/gobject/WebKitDOMCustom.h:
2110
2111 2011-09-27  Ryosuke Niwa  <rniwa@webkit.org>
2112
2113         Encapsulate m_firstNodeInserted and m_lastLeafInserted in node insertion logic
2114         https://bugs.webkit.org/show_bug.cgi?id=68875
2115
2116         Reviewed by Kent Tamura.
2117
2118         Added InsertedNode class inside ReplaceSelection to encapsulate m_firstNodeInserted and m_lastLeafInserted.
2119         Deployed it in removeRedundantStylesAndKeepStyleSpanInline, doApply, and insertAsListItems of ReplaceSelectionCommand.
2120
2121         * editing/DeleteSelectionCommand.cpp:
2122         (WebCore::DeleteSelectionCommand::removeNode):
2123         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
2124         * editing/ReplaceSelectionCommand.cpp:
2125         (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
2126         (WebCore::ReplaceSelectionCommand::doApply):
2127         (WebCore::ReplaceSelectionCommand::insertAsListItems):
2128         * editing/ReplaceSelectionCommand.h:
2129         (WebCore::ReplaceSelectionCommand::InsertedNodes::respondToNodeInsertion):
2130         (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode):
2131         (WebCore::ReplaceSelectionCommand::InsertedNodes::firstNodeInserted):
2132         (WebCore::ReplaceSelectionCommand::InsertedNodes::lastLeafInserted):
2133         (WebCore::ReplaceSelectionCommand::InsertedNodes::pastLastLeaf):
2134         * editing/htmlediting.cpp:
2135         (WebCore::updatePositionForNodeRemoval): Moved from DeleteSelectionCommand.cpp.
2136         * editing/htmlediting.h:
2137
2138 2011-09-27  Arun Patole  <bmf834@motorola.com>
2139
2140         Audio element doesn't emit the 'playing' event every time it starts playing, after it has finished playing.
2141         https://bugs.webkit.org/show_bug.cgi?id=60972
2142
2143         Reviewed by Philippe Normand.
2144
2145         The paused attribute should be set to true and the media element should emit a 'paused' at the end of playback.
2146         WHATWG revision r6562: http://html5.org/tools/web-apps-tracker?from=6561&to=6562
2147
2148         Test: media/media-element-play-after-eos.html
2149
2150         * html/HTMLMediaElement.cpp:
2151         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): set m_paused to true and schedule 'pause' event when playback ended.
2152
2153 2011-09-27  Rakesh KN  <rakesh.kn@motorola.com>
2154
2155         <input> with autofocus doesn't lose focus when it has a certain onblur listener
2156         https://bugs.webkit.org/show_bug.cgi?id=68513
2157
2158         Reviewed by Kent Tamura.
2159
2160         Test: fast/forms/autofocus-focus-only-once.html
2161
2162         These changes make sure that an element is focused only once when autofocus attribute is used.
2163
2164         * html/HTMLFormControlElement.cpp:
2165         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
2166         (WebCore::shouldAutofocus):
2167         (WebCore::HTMLFormControlElement::attach):
2168         * html/HTMLFormControlElement.h:
2169         (WebCore::HTMLFormControlElement::hasAutofocused):
2170         (WebCore::HTMLFormControlElement::setAutofocused):
2171
2172 2011-09-26  Kentaro Hara  <haraken@chromium.org>
2173
2174         Implement PopStateEvent.state with SerializedScriptValue and ScriptValue
2175         https://bugs.webkit.org/show_bug.cgi?id=68345
2176
2177         Reviewed by Adam Barth.
2178
2179         Previously, the following test cases fail or crash:
2180
2181         - shouldBe("new PopStateEvent('eventType', { state: object1 }).state", "object1") -> FAIL
2182         - new PopStateEvent('eventType', { state: document }).state -> CRASH in DRT
2183
2184         This is because PopStateEvent.state is implemented not as ScriptValue but as SerializedScriptValue.
2185         However, we cannot simply change the type of PopStateEvent.state to ScriptValue,
2186         since PopStateEvent can be constructed in the context that does not know ScriptValue.
2187         For example, Document.cpp calls PopStateEvent::create() with SerializedScriptValue
2188         popped from HistoryItem, but we cannot deserialize the SerializedScriptValue into
2189         the corresponding ScriptValue here because the deserialization requires ExecState.
2190         In other words, although we want to store PopStateEvent.state by ScriptValue internally,
2191         PopStateEvent still needs to provide an API to construct it with SerializedScriptValue.
2192         With these observations, this patch makes the following changes:
2193
2194         - If PopStateEvent is constructed with ScriptValue, it is stored as ScriptValue internally.
2195         When PopStateEvent.state is called, the ScriptValue is returned.
2196         - If PopStateEvent is constructed with SerializedScriptValue, it is stored as
2197         SerializedScriptValue internally (since we cannot deserialize it into ScriptValue
2198         at this point). When PopStateEvent.state is called, the SerializedScriptValue is
2199         deserialized into the corresponding ScriptValue, and the ScriptValue is returned.
2200
2201         Tests: fast/events/constructors/pop-state-event-constructor.html
2202                fast/events/fire-popstate-event.html
2203
2204         * GNUmakefile.list.am: Added JSPopStateEventCustom.cpp.
2205         * UseJSC.cmake: Ditto.
2206         * WebCore.gypi: Ditto.
2207         * WebCore.pro: Ditto.
2208         * WebCore.xcodeproj/project.pbxproj: Ditto.
2209         * bindings/js/JSBindingsAllInOne.cpp: Ditto.
2210         * bindings/js/JSPopStateEventCustom.cpp:
2211         (WebCore::JSPopStateEvent::state): Custom getter for PopStateEvent.state.
2212         * bindings/v8/custom/V8PopStateEventCustom.cpp:
2213         (WebCore::V8PopStateEvent::stateAccessorGetter): Custom getter for PopStateEvent.state.
2214         * dom/PopStateEvent.cpp:
2215         (WebCore::PopStateEventInit::PopStateEventInit): Added initialization code for PopStateEvent.m_state.
2216         (WebCore::PopStateEvent::PopStateEvent): Ditto.
2217         (WebCore::PopStateEvent::create): Ditto.
2218         (WebCore::PopStateEvent::initPopStateEvent): Ditto.
2219         * dom/PopStateEvent.h:
2220         (WebCore::PopStateEvent::serializedState): Getter.
2221         (WebCore::PopStateEvent::state): Getter.
2222         * dom/PopStateEvent.idl: Change the type of 'stateArg' and 'state' to DOMObject. Added [CustomGetter] to 'state'.
2223
2224 2011-09-09  Simon Fraser  <simon.fraser@apple.com>
2225
2226         Pixel result shows that compositing/iframes/repaint-after-losing-scrollbars.html is failing
2227         https://bugs.webkit.org/show_bug.cgi?id=67858
2228
2229         Reviewed by Darin Adler.
2230         
2231         When non-overlay scrollbars are hidden on a composited iframe, nothing invalidated
2232         the scrollbar areas or the scroll corner, so the scrollbars appear to remain.
2233         
2234         Fix by invalidating the scrollbars and scroll corner when they are removed. Invalidation
2235         on scrollbar creation appears to happen via updating the scrollbar style.
2236
2237         Tested by compositing/iframes/repaint-after-losing-scrollbars.html which no longer shows
2238         stale scrollbars when run manually, even though the green squares are missing from the
2239         pixel result (bug 67878).
2240
2241         * page/FrameView.cpp:
2242         (WebCore::FrameView::updateScrollCorner): Pass the corner rect into invalidateScrollCorner().
2243         * platform/ScrollView.cpp:
2244         (WebCore::ScrollView::setHasHorizontalScrollbar): Invalidate the scrollbar area if hiding it.
2245         (WebCore::ScrollView::setHasVerticalScrollbar): Ditto.
2246         (WebCore::ScrollView::updateScrollbars): In the case where both scrollbars are going away,
2247         compute the scroll corner rect while we still have scrollbars, and then invalidate it
2248         explicitly. (updateScrollCorner() doesn't, because it doesn't have access to the old corner
2249         rect.)
2250         * platform/ScrollableArea.cpp:
2251         (WebCore::ScrollableArea::invalidateScrollCorner): Pass the rect in, because we can't
2252         compute it in the case where the scrollbars are going away.
2253         * platform/ScrollableArea.h: Pass in a rect to invalidateScrollCorner(), which matches
2254         invalidateScrollbar().
2255         * rendering/RenderLayerCompositor.cpp:
2256         (WebCore::RenderLayerCompositor::destroyRootLayer): Pass the corner rect into invalidateScrollCorner().
2257         * rendering/RenderScrollbarPart.cpp: Ditto.
2258         (WebCore::RenderScrollbarPart::imageChanged): Ditto.
2259
2260 2011-09-09  Simon Fraser  <simon.fraser@apple.com>
2261
2262         Translucent scrollbars on composited layers render incorrectly
2263         https://bugs.webkit.org/show_bug.cgi?id=58515
2264
2265         Reviewed by Sam Weinig.
2266         
2267         Scrollbars in composited elements were getting drawn twice,
2268         because r41203 moved the call to paintOverflowControls() out of
2269         RenderLayer::paintLayer(), but forgot to change RenderLayerBacking::paintIntoLayer().
2270
2271         Test: compositing/scrollbar-painting.html
2272
2273         * rendering/RenderLayerBacking.cpp:
2274         (WebCore::RenderLayerBacking::paintIntoLayer):
2275
2276 2011-09-26  Nat Duca  <nduca@chromium.org>
2277
2278         [chromium] Make CCThreadProxy draw
2279         https://bugs.webkit.org/show_bug.cgi?id=67417
2280
2281         Update the CCThreadProxy to correctly implement the CCProxy
2282         interface, do all the right committing and updating steps, and
2283         draw a picture on the screen.
2284
2285         Reviewed by James Robinson.
2286
2287         * platform/graphics/IntRect.h:
2288         * platform/graphics/chromium/LayerRendererChromium.cpp:
2289         (WebCore::LayerRendererChromium::~LayerRendererChromium):
2290         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2291         (WebCore::CCHeadsUpDisplay::enabled):
2292         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2293         (WebCore::CCLayerImpl::CCLayerImpl):
2294         (WebCore::CCLayerImpl::~CCLayerImpl):
2295         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2296         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
2297         (WebCore::CCLayerTreeHost::commitTo):
2298         (WebCore::CCLayerTreeHost::commitComplete):
2299         (WebCore::CCLayerTreeHost::setNeedsRedraw):
2300         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2301         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2302         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
2303         (WebCore::CCLayerTreeHostImpl::~CCLayerTreeHostImpl):
2304         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2305         (WebCore::CCSingleThreadProxy::finishAllRendering):
2306         (WebCore::CCSingleThreadProxy::setNeedsCommit):
2307         (WebCore::CCSingleThreadProxy::commitIfNeeded):
2308         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2309         (WebCore::CCThreadProxy::CCThreadProxy):
2310         (WebCore::CCThreadProxy::~CCThreadProxy):
2311         (WebCore::CCThreadProxy::compositeAndReadback):
2312         (WebCore::CCThreadProxy::drawLayersAndReadbackOnCCThread):
2313         (WebCore::CCThreadProxy::finishAllRendering):
2314         (WebCore::CCThreadProxy::isStarted):
2315         (WebCore::CCThreadProxy::setNeedsCommit):
2316         (WebCore::CCThreadProxy::setNeedsCommitAndRedraw):
2317         (WebCore::CCThreadProxy::setNeedsRedraw):
2318         (WebCore::CCThreadProxy::start):
2319         (WebCore::CCThreadProxy::stop):
2320         (WebCore::CCThreadProxy::finishAllRenderingOnCCThread):
2321         (WebCore::CCThreadProxy::createBeginFrameAndCommitTaskOnCCThread):
2322         (WebCore::CCThreadProxy::beginFrameAndCommit):
2323         (WebCore::CCThreadProxy::commitOnCCThread):
2324         (WebCore::CCThreadProxy::scheduleDrawTaskOnCCThread):
2325         (WebCore::CCThreadProxy::drawLayersAndPresentOnCCThread):
2326         (WebCore::CCThreadProxy::drawLayersOnCCThread):
2327         (WebCore::CCThreadProxy::updateSchedulerStateOnCCThread):
2328         * platform/graphics/chromium/cc/CCThreadProxy.h:
2329
2330 2011-09-26  Adam Klein  <adamk@chromium.org>
2331
2332         [MutationObservers] implement MutationRecord
2333         https://bugs.webkit.org/show_bug.cgi?id=68824
2334
2335         Reviewed by Darin Adler.
2336
2337         Implements MutationRecord as specified in the thread at
2338         http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html,
2339         including some minor naming changes from the original proposal.
2340
2341         This is a small part of the MutationObserver API, see
2342         https://bugs.webkit.org/show_bug.cgi?id=68729 for the metabug covering
2343         this feature.
2344
2345         No new tests as this isn't yet exposed to the platform.
2346
2347         * CMakeLists.txt:
2348         * DerivedSources.cpp:
2349         * DerivedSources.make:
2350         * GNUmakefile.list.am:
2351         * WebCore.gypi:
2352         * WebCore.pro:
2353         * WebCore.vcproj/WebCore.vcproj:
2354         * WebCore.xcodeproj/project.pbxproj:
2355         * dom/MutationRecord.cpp: Added.
2356         (WebCore::MutationRecord::createChildList):
2357         (WebCore::MutationRecord::createAttributes):
2358         (WebCore::MutationRecord::createCharacterData):
2359         (WebCore::MutationRecord::MutationRecord):
2360         (WebCore::MutationRecord::~MutationRecord):
2361         * dom/MutationRecord.h: Added.
2362         (WebCore::MutationRecord::target):
2363         (WebCore::MutationRecord::addedNodes):
2364         (WebCore::MutationRecord::removedNodes):
2365         (WebCore::MutationRecord::previousSibling):
2366         (WebCore::MutationRecord::nextSibling):
2367         (WebCore::MutationRecord::attributeName):
2368         (WebCore::MutationRecord::attributeNamespace):
2369         (WebCore::MutationRecord::oldValue):
2370         (WebCore::MutationRecord::setOldValue):
2371         * dom/MutationRecord.idl: Added.
2372
2373 2011-09-26  Kentaro Hara  <haraken@chromium.org>
2374
2375         Implement a CloseEvent constructor for V8
2376         https://bugs.webkit.org/show_bug.cgi?id=68793
2377
2378         Reviewed by Adam Barth.
2379
2380         Test: fast/events/constructors/close-event-constructor.html
2381
2382         * bindings/v8/OptionsObject.cpp:
2383         (WebCore::OptionsObject::getKey): Just removed an extra space.
2384         (WebCore::OptionsObject::getKeyValue): Returns an unsigned short value corresponding to the given key.
2385         * bindings/v8/OptionsObject.h:
2386         * bindings/v8/custom/V8EventConstructors.cpp: Added the CloseEvent constructor.
2387         * websockets/CloseEvent.idl: Added a 'V8CustomConstructor' attribute.
2388
2389 2011-09-26  Nate Chapin  <japhet@chromium.org>
2390
2391         Clean up CachedResource::load(). Collapse its
2392         logic into a single callsite, taking just a
2393         CachedResourceLoader and a ResourceLoaderOptions.
2394
2395         1. Its 'incremental' parameter is redundant.
2396         2. With 'incremental' removed, the SecurityCheckPolicy is the only
2397            parameter difference between the CachedResource::load() variants.
2398            Making it a part of ResourceLoaderOptions removes yet another random
2399            enum that is passed around individually.
2400         3. We currently have to call setResourceLoaderOptions() before load() on a
2401            new CachedResource, so we should just take the ResourceLoaderOptions in load().
2402
2403         https://bugs.webkit.org/show_bug.cgi?id=67443
2404
2405         Reviewed by Antti Koivisto.
2406
2407         No new tests, refactor only.
2408
2409         * loader/DocumentThreadableLoader.cpp:
2410         * loader/FrameLoaderTypes.h: Move SecurityCheckPolicy to ResourceLoaderOptions.h.
2411         * loader/MainResourceLoader.cpp:
2412         * loader/NetscapePlugInStreamLoader.cpp:
2413         * loader/ResourceLoadScheduler.cpp:
2414         * loader/ResourceLoadScheduler.h:
2415         * loader/ResourceLoader.cpp: Enforce SecurityCheckPolicy here instead of SubresourceLoader.
2416         * loader/ResourceLoaderOptions.h: Store SecurityCheckPolicy on ResourceLoaderOptions.
2417         * loader/SubresourceLoader.cpp:
2418         * loader/SubresourceLoader.h:
2419         * loader/cache/CachedFont.cpp:
2420         * loader/cache/CachedFont.h:
2421         * loader/cache/CachedImage.cpp:
2422         * loader/cache/CachedImage.h:
2423         * loader/cache/CachedResource.cpp:
2424         * loader/cache/CachedResource.h:
2425         * loader/cache/CachedResourceLoader.cpp:
2426         (WebCore::defaultCachedResourceOptions): Define the default ResourceLoaderOptions for
2427             CachedResource loads here instead of as a default parameter on requestResource().
2428         * loader/cache/CachedResourceLoader.h:
2429         * loader/cache/CachedResourceRequest.cpp:
2430         (WebCore::CachedResourceRequest::didReceiveData): Remove m_incremental, since its purpose
2431             is already enforced in the data() implementation of every CachedResource that doesn't want
2432             incremental loads.
2433         * loader/cache/CachedResourceRequest.h:
2434
2435 2011-09-26  Joshua Bell  <jsbell@chromium.org>
2436
2437         IndexedDB: Second half of IDBFactory.getDatabaseNames implementation
2438         https://bugs.webkit.org/show_bug.cgi?id=68818
2439
2440         Reviewed by Tony Chang.
2441
2442         Test: storage/indexeddb/factory-basics.html
2443
2444         Adds ability to enumerate IndexedDB databases within an origin.
2445
2446         * bindings/v8/custom/V8IDBAnyCustom.cpp:
2447         (WebCore::toV8):
2448         * storage/IDBAny.cpp:
2449         (WebCore::IDBAny::domStringList):
2450         (WebCore::IDBAny::set):
2451         * storage/IDBAny.h:
2452         * storage/IDBBackingStore.h:
2453         * storage/IDBCallbacks.h:
2454         * storage/IDBFactory.cpp:
2455         (WebCore::IDBFactory::getDatabaseNames):
2456         * storage/IDBFactory.h:
2457         * storage/IDBFactory.idl:
2458         * storage/IDBFactoryBackendImpl.cpp:
2459         (WebCore::IDBFactoryBackendImpl::getDatabaseNames):
2460         (WebCore::IDBFactoryBackendImpl::open):
2461         (WebCore::IDBFactoryBackendImpl::openBackingStore):
2462         * storage/IDBFactoryBackendImpl.h:
2463         * storage/IDBFactoryBackendInterface.h:
2464         * storage/IDBLevelDBBackingStore.cpp:
2465         (WebCore::IDBLevelDBBackingStore::getDatabaseNames):
2466         (WebCore::IDBLevelDBBackingStore::getObjectStores):
2467         (WebCore::IDBLevelDBBackingStore::getIndexes):
2468         * storage/IDBLevelDBBackingStore.h:
2469         * storage/IDBLevelDBCoding.cpp:
2470         (WebCore::IDBLevelDBCoding::DatabaseNameKey::encodeMinKeyForOrigin):
2471         (WebCore::IDBLevelDBCoding::DatabaseNameKey::encodeStopKeyForOrigin):
2472         * storage/IDBLevelDBCoding.h:
2473         * storage/IDBRequest.cpp:
2474         (WebCore::IDBRequest::onSuccess):
2475         * storage/IDBRequest.h:
2476         * storage/IDBSQLiteBackingStore.cpp:
2477         (WebCore::IDBSQLiteBackingStore::getDatabaseNames):
2478         * storage/IDBSQLiteBackingStore.h:
2479
2480 2011-09-26  Tim Horton  <timothy_horton@apple.com>
2481
2482         <animateColor> applied to filtered ellipse does not update
2483         https://bugs.webkit.org/show_bug.cgi?id=68457
2484         <rdar://problem/10154777>
2485
2486         Reviewed by Darin Adler.
2487
2488         Invalidate the filter's cache when style changes take place so that style changes are respected.
2489
2490         Test: svg/filters/animate-fill.svg
2491
2492         * rendering/svg/SVGResourcesCache.cpp:
2493         (WebCore::SVGResourcesCache::clientStyleChanged):
2494         (WebCore::SVGResourcesCache::clientUpdatedFromElement):
2495
2496 2011-09-26  Max Perepelitsyn  <pph34r@gmail.com>
2497
2498         Set but unused variables cleanup in v8 bindings (gcc 4.6)
2499         https://bugs.webkit.org/show_bug.cgi?id=68079
2500
2501         Reviewed by Adam Barth.
2502
2503         Test: http/tests/websocket/tests/hybi/send-object-tostring-check.html
2504
2505         * bindings/scripts/CodeGeneratorV8.pm:
2506         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2507         (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
2508         * bindings/scripts/test/V8/V8TestObj.cpp:
2509         (WebCore::ConfigureV8TestObjTemplate):
2510         * bindings/v8/WorkerScriptDebugServer.cpp:
2511         (WebCore::WorkerScriptDebugServer::addListener):
2512         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
2513         (WebCore::V8HTMLOptionsCollection::lengthAccessorSetter):
2514         * bindings/v8/custom/V8WebSocketCustom.cpp:
2515         (WebCore::V8WebSocket::sendCallback):
2516
2517 2011-09-26  Tony Chang  <tony@chromium.org>
2518
2519         switch the initial value of flex-order to 0
2520         https://bugs.webkit.org/show_bug.cgi?id=68820
2521
2522         The spec changed from having an initial value of 1 to 0.
2523
2524         Reviewed by Ojan Vafai.
2525
2526         * rendering/style/RenderStyle.h:
2527         (WebCore::InheritedFlags::initialFlexOrder):
2528
2529 2011-09-26  Chris Rogers  <crogers@google.com>
2530
2531         OfflineAudioDestinationNode must wait for thread completion in uninitialize()
2532         https://bugs.webkit.org/show_bug.cgi?id=68725
2533
2534         Reviewed by Kenneth Russell.
2535
2536         No new tests.  This fixes internal implementation details.
2537
2538         * webaudio/OfflineAudioDestinationNode.cpp:
2539         (WebCore::OfflineAudioDestinationNode::uninitialize):
2540
2541 2011-09-26  Xan Lopez  <xlopez@igalia.com>
2542
2543         [GTK] Do not ignore 'Replaceable' attributes in the DOM bindings
2544         https://bugs.webkit.org/show_bug.cgi?id=68837
2545
2546         Reviewed by Martin Robinson.
2547
2548         * bindings/scripts/CodeGeneratorGObject.pm: add getters (but not
2549         setters) for 'Replaceable' attributes. Punt for the future
2550         actually making them settable, since it seems non trivial.
2551
2552 2011-09-26  Ryosuke Niwa  <rniwa@webkit.org>
2553
2554         Leopard build fix.
2555
2556         * testing/Internals.cpp:
2557         (WebCore::Internals::setZoomAnimatorTransform):
2558
2559 2011-09-26  Joshua Bell  <jsbell@chromium.org>
2560
2561         IndexedDB: Null key path gets stored as empty string key path
2562         https://bugs.webkit.org/show_bug.cgi?id=68726
2563
2564         Reviewed by Tony Chang.
2565
2566         Store additional flag to indicate if object store key path
2567         is null vs. empty. Added additional runtime tests for integrity
2568         of object store metadata.
2569
2570         * storage/IDBLevelDBBackingStore.cpp:
2571         (WebCore::checkObjectStoreAndMetaDataType):
2572         (WebCore::IDBLevelDBBackingStore::getObjectStores):
2573         (WebCore::IDBLevelDBBackingStore::createObjectStore):
2574         * storage/IDBLevelDBCoding.cpp:
2575
2576 2011-09-26  John Bauman  <jbauman@chromium.org>
2577
2578         Fix nonpremultiplied webgl toDataURL to jpeg
2579         https://bugs.webkit.org/show_bug.cgi?id=68366
2580
2581         The canvas spec says that toDataURL to formats without an alpha must
2582         be "composited onto a solid black background using the source-over
2583         operator." Do that.
2584
2585         Reviewed by Kenneth Russell.
2586
2587         * platform/graphics/cg/ImageBufferCG.cpp:
2588         (WebCore::CGImageToDataURL):
2589         (WebCore::ImageBuffer::toDataURL):
2590         (WebCore::ImageDataToDataURL):
2591         * platform/image-encoders/skia/JPEGImageEncoder.cpp:
2592         (WebCore::RGBAtoRGB):
2593
2594 2011-09-26  Raphael Kubo da Costa  <kubo@profusion.mobi>
2595
2596         [CMake] Remove FindFreetype.cmake
2597         https://bugs.webkit.org/show_bug.cgi?id=68778
2598
2599         Reviewed by Adam Barth.
2600
2601         CMake has provided its own FindFreetype.cmake forever, so there is no
2602         need to have another implementation in WebKit.
2603
2604         No new tests, just a buildsystem change.
2605
2606         * CMakeListsEfl.txt: Use FREETYPE_{LIBRARIES,INCLUDE_DIRS} instead of
2607         Freetype_{LIBRARIES,INCLUDE_DIRS}.
2608
2609 2011-09-26  Alexei Svitkine  <asvitkine@chromium.org>
2610
2611         Fix full-page rubber band overhang appearing when gesturing during a slow page load.
2612         https://bugs.webkit.org/show_bug.cgi?id=68568
2613
2614         Chromium bug: http://code.google.com/p/chromium/issues/detail?id=97243
2615
2616         (This also happens on Safari.)
2617
2618         The problem was that ScrollView::overhangAmount() was returning a full-page overhang due to contentsSize() being 0 briefly during a page load, which was then getting used by ScrollAnimatorChromiumMac.mm to update the overhang on a gesture event. This change makes the relevant logic not return an overhang if the contentsSize() is empty.
2619
2620         Reviewed by Adam Barth.
2621
2622         No new tests, since this is highly timing-related.
2623
2624         * platform/ScrollView.cpp:
2625         (WebCore::ScrollView::overhangAmount):
2626         (WebCore::ScrollView::wheelEvent):
2627
2628 2011-09-26  W. James MacLean  <wjmaclean@chromium.org>
2629
2630         [chromium] Revise zoom animator backend to use full transform instead of just scale.
2631         https://bugs.webkit.org/show_bug.cgi?id=68535
2632
2633         Reviewed by Kenneth Russell.
2634
2635         * page/Settings.cpp:
2636         (WebCore::Settings::Settings):
2637         * page/Settings.h:
2638         (WebCore::Settings::setZoomAnimatorScale):
2639         (WebCore::Settings::zoomAnimatorScale):
2640         (WebCore::Settings::setZoomAnimatorPosition):
2641         (WebCore::Settings::zoomAnimatorPosX):
2642         (WebCore::Settings::zoomAnimatorPosY):
2643         * platform/graphics/chromium/LayerRendererChromium.cpp:
2644         (WebCore::LayerRendererChromium::LayerRendererChromium):
2645         (WebCore::LayerRendererChromium::drawLayersInternal):
2646         * platform/graphics/chromium/LayerRendererChromium.h:
2647         (WebCore::LayerRendererChromium::setZoomAnimatorTransform):
2648         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2649         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
2650         (WebCore::CCLayerTreeHost::commitTo):
2651         (WebCore::CCLayerTreeHost::setZoomAnimatorTransform):
2652         (WebCore::CCLayerTreeHost::updateLayers):
2653         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2654         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2655         (WebCore::CCLayerTreeHostImpl::setZoomAnimatorTransform):
2656         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2657         * testing/Internals.cpp:
2658         (WebCore::Internals::setZoomAnimatorTransform):
2659         * testing/Internals.h:
2660         * testing/Internals.idl:
2661
2662 2011-09-26  Dan Bernstein  <mitz@apple.com>
2663
2664         REGRESSION (r95926) Assert firing in svg/clip-path/clip-path-on-svg.svg
2665         https://bugs.webkit.org/show_bug.cgi?id=68819
2666
2667         Reviewed by Dave Hyatt.
2668
2669         * rendering/RenderObject.cpp:
2670         (WebCore::RenderObject::scheduleRelayout): Revert to using view() instead of the RenderView**
2671         parameter of isRooted, since only the former returns 0 when the document is detached.
2672
2673 2011-09-26  Vsevolod Vlasov  <vsevik@chromium.org>
2674
2675         Web Inspector: XMLHttpRequest console logging messages should link to network panel when possible.
2676         https://bugs.webkit.org/show_bug.cgi?id=67399
2677
2678         Reviewed by Pavel Feldman.
2679
2680         * inspector/ConsoleMessage.cpp:
2681         (WebCore::ConsoleMessage::ConsoleMessage):
2682         * inspector/ConsoleMessage.h:
2683         * inspector/InspectorConsoleAgent.cpp:
2684         (WebCore::InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest):
2685         * inspector/InspectorConsoleAgent.h:
2686         * inspector/InspectorInstrumentation.cpp:
2687         (WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl):
2688         * inspector/front-end/ConsoleMessage.js:
2689         (WebInspector.ConsoleMessage.prototype._formatMessage.else.else.linkifier):
2690         (WebInspector.ConsoleMessage.prototype._formatMessage):
2691         * inspector/front-end/ResourcesPanel.js:
2692         (WebInspector.ResourcesPanel.prototype.showAnchorLocation):
2693         * inspector/front-end/inspector.js:
2694         (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
2695         (WebInspector.linkifyStringAsFragment):
2696
2697 2011-09-26  Jer Noble  <jer.noble@apple.com>
2698
2699         White flash when entering full-screen using element.webkitRequestFullScreen()
2700         https://bugs.webkit.org/show_bug.cgi?id=68481
2701
2702         Reviewed by Simon Fraser.
2703
2704         No new tests; covered by existing full screen tests.
2705
2706         During an animation, renderers may try to paint into the FullScreenRenderer's 
2707         GraphicsLayer, and an optimization we previously added for the FullScreenRenderer's 
2708         background will cause these paints to fail. Remove this optimization in 
2709         containsPaintedContent, and taking non-composited elements into full screen will
2710         animate correctly.
2711
2712         * rendering/RenderLayerBacking.cpp:
2713         (WebCore::RenderLayerBacking::containsPaintedContent):
2714
2715 2011-09-26  Mihai Parparita  <mihaip@chromium.org>
2716
2717         Unreviewed, rolling out r95960.
2718         http://trac.webkit.org/changeset/95960
2719         https://bugs.webkit.org/show_bug.cgi?id=58608
2720
2721         Significantly changes table border rendering
2722
2723         * rendering/RenderObject.cpp:
2724         (WebCore::RenderObject::drawLineForBoxSide):
2725
2726 2011-09-23  Simon Fraser  <simon.fraser@apple.com>
2727
2728         Repaint tests don't work in WebKit2
2729         https://bugs.webkit.org/show_bug.cgi?id=68453
2730
2731         Reviewed by Sam Weinig.
2732
2733         Have FrameView keep track of repaint rects when asked to, and
2734         expose this set of repaint rects via private WebKit API for later
2735         use by DumpRenderTree.
2736         
2737         The repaint rects are in WebView coordinates, so we have to
2738         unapply the scroll offset.
2739
2740         * WebCore.exp.in:
2741         * page/FrameView.cpp:
2742         (WebCore::FrameView::FrameView):
2743         (WebCore::FrameView::reset):
2744         (WebCore::FrameView::repaintContentRectangle):
2745         (WebCore::FrameView::setTracksRepaints):
2746         * page/FrameView.h:
2747         (WebCore::FrameView::isTrackingRepaints):
2748         (WebCore::FrameView::resetTrackedRepaints):
2749         (WebCore::FrameView::trackedRepaintRects):
2750
2751 2011-09-26  Antti Koivisto  <antti@apple.com>
2752
2753         Optimize matching of common pseudo classes
2754         https://bugs.webkit.org/show_bug.cgi?id=68633
2755
2756         Reviewed by Dave Hyatt, Darin Adler, Dimitri Glazkov.
2757         
2758         :link, :visited and :focus are quite common. They often used as univeral selectors (including in our
2759         default stylesheet) so we try to match them for all elements in the document. They take always the 
2760         slow matching path. In addition we match link styles twice due to visited link pseudo style generation
2761         so the overhead is doubled. As a result substantial portion of our style matching time is spent 
2762         dealing with these pseudo classes. 
2763         
2764         This patch adds new lists to RuleSet for common pseudo class rules. The rules on the lists are only checked
2765         if the element has approprate type and stat. ases where the rightmost pseudo class can then be rejected immediately.
2766         We can also enable the fast path checking for the rest of the selector in many cases.
2767     
2768         This seems to be >30% progression in selector matching performance with typical style sheets. It saves ~0.9s
2769         when loading the full HTML5 spec.
2770
2771         * css/CSSStyleSelector.cpp:
2772         (WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
2773         (WebCore::RuleSet::idRules):
2774         (WebCore::RuleSet::classRules):
2775         (WebCore::RuleSet::tagRules):
2776         (WebCore::RuleSet::shadowPseudoElementRules):
2777         (WebCore::RuleSet::linkPseudoClassRules):
2778         (WebCore::RuleSet::visitedPseudoClassRules):
2779         (WebCore::RuleSet::focusPseudoClassRules):
2780         (WebCore::RuleSet::universalRules):
2781         (WebCore::RuleSet::pageRules):
2782         
2783             Add a new lists, some stylistic renamings.
2784     
2785         (WebCore::CSSStyleSelector::matchRules):
2786         
2787             New link and focus checks.
2788
2789         (WebCore::CSSStyleSelector::matchRulesForList):
2790         (WebCore::CSSStyleSelector::checkSelector):
2791         
2792             Inline the rightmost selector tag checking, skip if unnecessary.
2793         
2794         (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
2795         
2796             Common pseudo classes now match based on early filtering (though it is not a hash in this case).
2797
2798         (WebCore::RuleData::RuleData):
2799         (WebCore::RuleSet::~RuleSet):
2800         (WebCore::RuleSet::addRule):
2801         
2802             Sort pseudo classes to new lists.
2803         
2804         (WebCore::RuleSet::collectFeatures):
2805         (WebCore::RuleSet::shrinkToFit):
2806         (WebCore::CSSStyleSelector::matchPageRules):
2807         * css/SelectorChecker.cpp:
2808         (WebCore::SelectorChecker::checkSelector):
2809         
2810             Adopt to expanded fast path (this is used by querySelectorAll).
2811
2812         (WebCore::SelectorChecker::fastCheckRightmostSelector):
2813         (WebCore::SelectorChecker::fastCheckSelector):
2814         
2815             Rightmost selector is now checked differently than the rest. RuleSet based selection in CSSStyleSelector
2816             is equivalent to fastCheckRightmostSelector().
2817         
2818         (WebCore::isFastCheckableRelation):
2819         (WebCore::isFastCheckableMatch):
2820         (WebCore::isFastCheckableRightmostSelector):
2821         (WebCore::SelectorChecker::isFastCheckableSelector):
2822         (WebCore::SelectorChecker::checkOneSelector):
2823         (WebCore::SelectorChecker::commonPseudoClassSelectorMatches):
2824         (WebCore::SelectorChecker::isFrameFocused):
2825         * css/SelectorChecker.h:
2826         (WebCore::SelectorChecker::isCommonPseudoClassSelector):
2827         (WebCore::SelectorChecker::linkMatchesVisitedPseudoClass):
2828         (WebCore::SelectorChecker::matchesFocusPseudoClass):
2829         (WebCore::SelectorChecker::tagMatches):
2830         
2831             Refactor a bunch of shared checks into functions.
2832
2833 2011-09-12  Ryosuke Niwa  <rniwa@webkit.org>
2834
2835         REGRESSION(r74971): Selection doesn't work correctly in BiDi Text
2836         https://bugs.webkit.org/show_bug.cgi?id=57340
2837
2838         Reviewed by Eric Seidel.
2839
2840         This patch adds the end point adjustment mechanism at bidi boundaries similar to the one NSTextView implements.
2841
2842         To understand the problem, suppose we have strong RTL letters "ABC" in a LTR block (visually laid out as CBA).
2843
2844         Per NSTextView convention, logical offsets between each letter is placed as (0)C(2)B(1)A(3). In other words,
2845         placing the caret visually on the left of CBA yields the position inside the text node of "ABC" at offset 0.
2846         Likewise, placing it between C and B yields ("ABC", 2), and placing it on the right of CBA yields ("ABC", 3).
2847
2848         Now suppose a user attempts to select the letter A by a mouse drag from the right of CBA to a point between
2849         B and A. First, the initial mouse down places the selection's base at ("ABC", 3). Then as the mouse pointer
2850         moves to a point on the left of A, the selection's extent is set at ("ABC", 1), selecting "BC".
2851
2852         To mitigate this issue, NSTextView adjusts selection base and extent under certain conditions. In the above
2853         example, NSTextView detects user's intent and changes the selection's base to ("ABC", 0) temporarily.
2854
2855         This patch implements a similar trick on WebKit. We adjust the base or the extent when they're at the left
2856         end or at the right end of a bidi run and the other end is inside of the run. In the above example, the
2857         base position on the right of A is the right end of a bidi run and the extent position between B and A is
2858         inside the same run (CBA), so we would adjust the base to be ("ABC", 0) as NSTextView does.
2859
2860         Take another example abcABC. Note offsets are assigned as (0)a(1)b(2)c(3)C(5)B(4)A(6) When the user starts
2861         a mouse drag from the right of A to a point between B and A, we adjust the selection base to be ("abcABC", 3)
2862         because the base is at the right end of a bidi run and the extent is in the same run. We keep the adjustment
2863         when the mouse pointer moves to a point between C and B. However, when the mouser pointer reaches a point
2864         between letters b and c, the selection extent is placed at ("abcABC", 2). Because the extent is outside of
2865         the bidi run started from the selection base, we restore the original base at this point. Had we not done this,
2866         we'll end up selecting just "c".
2867
2868         While this algorithm is implemented in FrameSelection::setNonDirectionalSelectionIfNeeded, this patch adds
2869         various member functions to RenderedPosition to facilitate abstraction around inline boxes and bidi runs.
2870
2871         Test: editing/selection/select-bidi-run.html
2872
2873         * editing/FrameSelection.cpp:
2874         (WebCore::adjustEndpointsAtBidiBoundary): Added. Implements the endpoints adjustment algorithm.
2875         (WebCore::FrameSelection::setNonDirectionalSelectionIfNeeded): Calls adjustEndpointsAtBidiBoundary, and
2876         restores the original base as needed.
2877         * editing/FrameSelection.h:
2878         * editing/RenderedPosition.cpp:
2879         (WebCore::RenderedPosition::RenderedPosition):
2880         (WebCore::RenderedPosition::prevLeafChild): Added to cache prevLeafChild of the current inline box.
2881         (WebCore::RenderedPosition::nextLeafChild): Ditto for nextLeafChild.
2882         (WebCore::RenderedPosition::isEquivalent): Compares two RenderedPositions considering neighboring inline boxes
2883         so that the rightmost position in a box and the leftmost position in the following box is considered equal.
2884         (WebCore::RenderedPosition::bidiLevelOnLeft): Added. Returns the bidi level of the run on the left. We can't
2885         add a generic bidiLevel to this class because it'll be ambiguous at bidi boundaries.
2886         (WebCore::RenderedPosition::bidiLevelOnRight): Ditto for the run on the right.
2887         (WebCore::RenderedPosition::leftBoundaryOfBidiRun): Added.
2888         (WebCore::RenderedPosition::rightBoundaryOfBidiRun): Added.
2889         (WebCore::RenderedPosition::atLeftBoundaryOfBidiRun): Added.
2890         (WebCore::RenderedPosition::atRightBoundaryOfBidiRun): Added.
2891         (WebCore::RenderedPosition::positionAtLeftBoundaryOfBiDiRun): Returns Position at the left edge of a bidi run
2892         if RenderedPosition is at such a position. Asserts atLeftBoundaryOfBidiRun.
2893         (WebCore::RenderedPosition::positionAtRightBoundaryOfBiDiRun): Ditto for the right edge.
2894         * editing/RenderedPosition.h:
2895         (WebCore::RenderedPosition::atLeftBoundaryOfBidiRun): Added.
2896         (WebCore::RenderedPosition::atRightBoundaryOfBidiRun): Added.
2897         (WebCore::RenderedPosition::atLeftmostOffsetInBox): Added.
2898         (WebCore::RenderedPosition::atRightmostOffsetInBox): Added.
2899         (WebCore::RenderedPosition::uncachedInlineBox): Added. We can't use a static const variable because gcc thinks
2900         reinterpret_cast<InlineBox*>(1) is not an integral value.
2901         (WebCore::RenderedPosition::RenderedPosition):
2902         * editing/VisibleSelection.h:
2903         (WebCore::VisibleSelection::visibleBase): Added.
2904         (WebCore::VisibleSelection::visibleExtent): Added.
2905         * page/EventHandler.cpp:
2906         (WebCore::EventHandler::updateSelectionForMouseDrag):
2907
2908 2011-09-26  Sheriff Bot  <webkit.review.bot@gmail.com>
2909
2910         Unreviewed, rolling out r95256.
2911         http://trac.webkit.org/changeset/95256
2912         https://bugs.webkit.org/show_bug.cgi?id=68814
2913
2914         Temporary CRASH calls no longer needed (Requested by enne on
2915         #webkit).
2916
2917         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2918         (WebCore::CCLayerTreeHost::commitTo):
2919
2920 2011-09-26  Mark Rowe  <mrowe@apple.com>
2921
2922         <http://webkit.org/b/68809> IconDatabase::syncThreadMainLoop can assert if wakeSyncThread is called before thread starts executing
2923
2924         If wakeSyncThread is called before syncThreadMainLoop starts executing then m_syncThreadHasWorkToDo would be set
2925         while executing the body of the sync thread loop, causing us to skip blocking on the condition variable. This would
2926         lead to us hitting the assertion failure due to m_disabledSuddenTerminationForSyncThread being false, unless the main
2927         thread happened to call wakeSyncThread a second time while the first loop iteration was executing.
2928
2929         Reviewed by Anders Carlsson.
2930
2931         * loader/icon/IconDatabase.cpp:
2932         (WebCore::IconDatabase::syncThreadMainLoop): Clear m_syncThreadHasWorkToDo to indicate that we're about to perform
2933         all pending work.
2934
2935 2011-09-26  Antaryami Pandia  <antaryami.pandia@motorola.com>
2936
2937         Groove/inset/outset borders show solid if the color is black.
2938         https://bugs.webkit.org/show_bug.cgi?id=58608
2939
2940         Reviewed by Simon Fraser.
2941
2942         Lightened the border side colors when drawing borders with styles as
2943         Outset/Inset/Groove/Ridge.
2944
2945         Tests: fast/borders/border-groove.html
2946                fast/borders/border-inset.html
2947                fast/borders/border-outset.html
2948                fast/borders/border-ridge.html
2949
2950         * rendering/RenderObject.cpp:
2951         (WebCore::RenderObject::drawLineForBoxSide):
2952
2953 2011-09-26  Abhishek Arya  <inferno@chromium.org>
2954
2955         Delete retired custom font data only on document
2956         destruction, and not on recalc style.
2957         https://bugs.webkit.org/show_bug.cgi?id=68805
2958
2959         Reviewed by Dave Hyatt.
2960
2961         Test: fast/text/custom-font-data-crash.html
2962
2963         * dom/Document.cpp:
2964         (WebCore::Document::recalcStyle):
2965
2966 2011-09-23  Adrienne Walker  <enne@google.com>
2967
2968         [chromium] Update VideoLayerChromium textures after texture resources are reclaimed
2969         https://bugs.webkit.org/show_bug.cgi?id=68742
2970
2971         Reviewed by James Robinson.
2972
2973         If video textures are reclaimed (such as during a visibility change on
2974         a tab), the dirty rect for the layer is empty and it skips out of
2975         updating compositor resources, leaving the video textures invalid.
2976         Instead, check the textures here to make sure they're still valid
2977         first before early out so that they can get reupdated if necessary.
2978
2979         Additionally, fix a small bug in pushPropertiesTo where 1 plane RGB
2980         videos would not get drawn because all 3 planes didn't have valid
2981         textures.
2982
2983         Test: compositing/video-page-visibility.html
2984
2985         * platform/graphics/chromium/VideoLayerChromium.cpp:
2986         (WebCore::VideoLayerChromium::VideoLayerChromium):
2987         (WebCore::VideoLayerChromium::cleanupResources):
2988         (WebCore::VideoLayerChromium::updateCompositorResources):
2989         (WebCore::VideoLayerChromium::pushPropertiesTo):
2990         (WebCore::VideoLayerChromium::setLayerTreeHost):
2991         (WebCore::VideoLayerChromium::texturesValid):
2992         * platform/graphics/chromium/VideoLayerChromium.h:
2993
2994 2011-09-26  Pavel Feldman  <pfeldman@google.com>
2995
2996         Web Inspector: introduce protocol backwards compatibility validator.
2997         https://bugs.webkit.org/show_bug.cgi?id=68800
2998
2999         Reviewed by Yury Semikhatsky.
3000
3001         * inspector/Inspector.json:
3002         * inspector/Inspector.draft-01.json: Copied from Source/WebCore/inspector/Inspector.json.
3003         * inspector/validate-protocol-compatibility: Added.
3004
3005 2011-09-26  Andreas Kling  <kling@webkit.org>
3006
3007         [Qt] Unused variable in QNetworkReplyHandler::sendNetworkRequest.
3008         https://bugs.webkit.org/show_bug.cgi?id=68798
3009
3010         Reviewed by Noam Rosenthal.
3011
3012         * platform/network/qt/QNetworkReplyHandler.cpp:
3013         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
3014
3015 2011-09-26  Ilya Tikhonovsky  <loislo@chromium.org>
3016
3017         Second unreviewed build fix for r95941
3018
3019         * inspector/InspectorInstrumentation.cpp:
3020         (WebCore::InspectorInstrumentation::willCallFunctionImpl):
3021
3022 2011-09-26  Ilya Tikhonovsky  <loislo@chromium.org>
3023
3024         Unreviewed build fix for webkit builds after r95941.
3025
3026         * inspector/InspectorInstrumentation.cpp:
3027         (WebCore::InspectorInstrumentation::willCallFunctionImpl):
3028
3029 2011-09-26  Andrey Kosyakov  <caseq@chromium.org>
3030
3031         Web Inspector: [Extensions API] allow resources to hook on click on resource links
3032         https://bugs.webkit.org/show_bug.cgi?id=68528
3033
3034         Reviewed by Yury Semikhatsky.
3035
3036         * WebCore.gypi:
3037         * WebCore.vcproj/WebCore.vcproj:
3038         * inspector/front-end/ExtensionAPI.js:
3039         (injectedExtensionAPI.Console.prototype.get Severity):
3040         (injectedExtensionAPI.Panels.prototype.create):
3041         (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler.else.callbackWrapper):
3042         (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler):
3043         (injectedExtensionAPI.ExtensionServerClient.prototype.hasHandler):
3044         (injectedExtensionAPI.ExtensionServerClient.prototype.deregisterHandler):
3045         * inspector/front-end/ExtensionServer.js:
3046         (WebInspector.ExtensionServer):
3047         (WebInspector.ExtensionServer.prototype._onSetOpenResourceHandler):
3048         (WebInspector.ExtensionServer.prototype._handleAnchorClicked):
3049         (WebInspector.ExtensionServer.prototype._addExtensions):
3050         (WebInspector.ExtensionServer.prototype._addExtension):
3051         (WebInspector.ExtensionServer.prototype._registerExtension):
3052         * inspector/front-end/SettingsScreen.js:
3053         (WebInspector.SettingsScreen):
3054         (WebInspector.SettingsScreen.prototype._createCustomSetting):
3055         * inspector/front-end/WebKit.qrc:
3056         * inspector/front-end/helpScreen.css:
3057         (.help-content select):
3058         (.help-content select:disabled):
3059         (.help-content option):
3060         * inspector/front-end/inspector.html:
3061         * inspector/front-end/inspector.js:
3062         (WebInspector.set attached):
3063         (WebInspector._showAnchorLocation):
3064
3065 2011-09-23  Ilya Tikhonovsky  <loislo@chromium.org>
3066
3067         Web Inspector: Timeline: record root event for the function calls enforced by console eval.
3068         https://bugs.webkit.org/show_bug.cgi?id=68695
3069
3070         In a complex web application developer might want to timeline a specific piece of code.
3071
3072         In this case he can do the next steps:
3073         1) start timeline;
3074         2) eval a command in console;
3075         3) stop timeline.
3076
3077         I think it'd be nice to have a root event for the all the events that happened as the result of such eval.
3078
3079         Reviewed by Yury Semikhatsky.
3080
3081         Test: inspector/timeline/timeline-injected-script-eval.html
3082
3083         * bindings/v8/ScriptFunctionCall.cpp:
3084         * inspector/InjectedScript.cpp:
3085         (WebCore::InjectedScript::makeCall):
3086         * inspector/InspectorInstrumentation.cpp:
3087         (WebCore::InspectorInstrumentation::willCallFunctionImpl):
3088
3089 2011-09-26  No'am Rosenthal  <noam.rosenthal@nokia.com>
3090
3091         [Texmap][Qt] Enable TextureMapperGL in platforms where BGRA is not present
3092         https://bugs.webkit.org/show_bug.cgi?id=65473
3093
3094         Reviewed by Andreas Kling.
3095
3096         For now, swap RGBA->BGRA in software if we're in OpenGL ES 2.
3097         We do that by iterating on the pixels and manually swapping each pixel's red and blue
3098         values. This can be done faster with shaders, but for now this is a working solution
3099         for platforms without BGRA support.
3100
3101         No new tests. Existing layout tests cover this.
3102
3103         * platform/graphics/opengl/TextureMapperGL.cpp:
3104         (WebCore::BitmapTextureGL::endPaint):
3105         * platform/graphics/opengl/TextureMapperGL.h:
3106         * platform/graphics/qt/TextureMapperQt.cpp:
3107         (WebCore::RGBA32PremultimpliedBufferQt::swapRGB):
3108
3109 2011-09-26  Sergio Villar Senin  <svillar@igalia.com>
3110
3111         [GTK] Fix coding style bits in ResourceHandleSoup.cpp
3112         https://bugs.webkit.org/show_bug.cgi?id=68634
3113
3114         Reviewed by Martin Robinson.
3115
3116         No new tests needed.
3117
3118         * platform/network/soup/ResourceHandleSoup.cpp:
3119         (WebCore::ResourceHandle::defaultSession):
3120
3121 2011-09-26  James Robinson  <jamesr@chromium.org>
3122
3123         [mac] Timestamp parameter to requestAnimationFrame is busted in USE(REQUEST_ANIMATION_FRAME_TIMER) path
3124         https://bugs.webkit.org/show_bug.cgi?id=68769
3125
3126         Reviewed by Simon Fraser.
3127
3128         Convert the time parameter from double to DOMTimeStamp using convertSecondsToDOMTimeStamp rather than relying on
3129         implicit double->long conversion, which ignores the units of the value.
3130
3131         Test: fast/animation/request-animation-frame-timestamps-advance.html
3132
3133         * dom/ScriptedAnimationController.cpp:
3134         (WebCore::ScriptedAnimationController::animationTimerFired):
3135
3136 2011-09-25  Mark Hahnenberg  <mhahnenberg@apple.com>
3137
3138         Add custom vtable struct to ClassInfo struct
3139         https://bugs.webkit.org/show_bug.cgi?id=68567
3140
3141         Reviewed by Oliver Hunt.
3142
3143         No new tests.
3144
3145         Added CREATE_METHOD_TABLE macro to generate the custom vtable for the 
3146         specified class in its ClassInfo.  Also added to it the first function to use 
3147         this macro, visitChildren.  This is part of the process of getting rid of all 
3148         C++ virtual methods in JSCell.  Eventually all virtual functions in JSCell 
3149         that can't easily be converted to non-virtual functions will be put into 
3150         this custom vtable structure.
3151
3152         * bindings/js/JSAudioConstructor.cpp:
3153         * bindings/js/JSDOMGlobalObject.cpp:
3154         * bindings/js/JSDOMWindowBase.cpp:
3155         * bindings/js/JSDOMWindowShell.cpp:
3156         * bindings/js/JSImageConstructor.cpp:
3157         * bindings/js/JSImageDataCustom.cpp:
3158         (WebCore::toJS):
3159         * bindings/js/JSOptionConstructor.cpp:
3160         * bindings/js/JSWorkerContextBase.cpp:
3161
3162         Changed the bindings generator to add the call to the CREATE_METHOD_TABLE macro where
3163         necessary.
3164         * bindings/scripts/CodeGeneratorJS.pm:
3165         (GenerateImplementation):
3166         (GenerateConstructorDefinition):
3167         * bindings/scripts/test/JS/JSTestInterface.cpp:
3168         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
3169         * bindings/scripts/test/JS/JSTestObj.cpp:
3170         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3171         * bridge/c/CRuntimeObject.cpp:
3172         * bridge/c/c_instance.cpp:
3173         * bridge/jni/jsc/JavaInstanceJSC.cpp:
3174         * bridge/jni/jsc/JavaRuntimeObject.cpp:
3175         * bridge/objc/ObjCRuntimeObject.mm:
3176         * bridge/objc/objc_instance.mm:
3177         * bridge/objc/objc_runtime.mm:
3178         * bridge/qt/qt_instance.cpp:
3179         * bridge/qt/qt_pixmapruntime.cpp:
3180         * bridge/qt/qt_runtime.cpp:
3181         * bridge/runtime_array.cpp:
3182         * bridge/runtime_method.cpp:
3183         * bridge/runtime_object.cpp:
3184
3185 2011-09-25  Eunmi Lee  <eunmi15.lee@samsung.com>
3186
3187         [EFL] Move GtkWidgetBackingStoreCairo to the cairo directory and modify to use in the EFL.
3188         https://bugs.webkit.org/show_bug.cgi?id=63502
3189
3190         Reviewed by Martin Robinson.
3191
3192         The gtk/GtkWidgetBackingStoreCairo.cpp is moved to the cairo/WidgetBackingStoreCairo.cpp and
3193         some codes for EFL are added.
3194         WidgetBackingStoreCairo creates cairo_image_surface and has a role to copy reusable area
3195         when scrolling. So, it will be used in the WebKit2 EFL port's BackingStore.
3196
3197         * CMakeListsEfl.txt:
3198         * GNUmakefile.list.am:
3199         * platform/cairo/WidgetBackingStore.h:
3200         * platform/cairo/WidgetBackingStoreCairo.cpp: Renamed from Source/WebCore/platform/gtk/GtkWidgetBackingStoreCairo.cpp.
3201         (WebCore::createSurfaceForBackingStore):
3202         (WebCore::WidgetBackingStorePrivate::create):
3203         (WebCore::WidgetBackingStorePrivate::WidgetBackingStorePrivate):
3204         (WebCore::WidgetBackingStore::create):
3205         (WebCore::WidgetBackingStore::WidgetBackingStore):
3206         (WebCore::WidgetBackingStore::~WidgetBackingStore):
3207         (WebCore::WidgetBackingStore::cairoSurface):
3208         (WebCore::WidgetBackingStore::scroll):
3209         * platform/gtk/GtkWidgetBackingStoreX11.cpp:
3210
3211 2011-09-25  Adam Barth  <abarth@webkit.org>
3212
3213         Finish removing PLATFORM(BREWMP) by removing associated code
3214         https://bugs.webkit.org/show_bug.cgi?id=68779
3215
3216         Reviewed by Sam Weinig.
3217
3218         When Geoffrey Garen removed PLATFORM(BREWMP) in
3219         http://trac.webkit.org/changeset/95555, he did not remove all the
3220         associated code.  This completes the work started in r95555 by removing
3221         all the code assoicated with PLATFORM(BREWMP).
3222
3223         * WebCore.gyp/WebCore.gyp:
3224         * WebCore.gypi:
3225         * bindings/js/ScriptControllerBrew.cpp: Removed.
3226         * editing/brew: Removed.
3227         * editing/brew/EditorBrew.cpp: Removed.
3228         * gyp/WebCore.gyp:
3229         * page/brew: Removed.
3230         * page/brew/ChromeClientBrew.h: Removed.
3231         * page/brew/DragControllerBrew.cpp: Removed.
3232         * page/brew/EventHandlerBrew.cpp: Removed.
3233         * page/brew/FrameBrew.cpp: Removed.
3234         * platform/brew: Removed.
3235         * platform/brew/ClipboardBrew.cpp: Removed.
3236         * platform/brew/ClipboardBrew.h: Removed.
3237         * platform/brew/ContextMenuBrew.cpp: Removed.
3238         * platform/brew/ContextMenuItemBrew.cpp: Removed.
3239         * platform/brew/CursorBrew.cpp: Removed.
3240         * platform/brew/DragDataBrew.cpp: Removed.
3241         * platform/brew/EventLoopBrew.cpp: Removed.
3242         * platform/brew/FileSystemBrew.cpp: Removed.
3243         * platform/brew/KURLBrew.cpp: Removed.
3244         * platform/brew/LanguageBrew.cpp: Removed.
3245         * platform/brew/LocalizedStringsBrew.cpp: Removed.
3246         * platform/brew/LoggingBrew.cpp: Removed.
3247         * platform/brew/MIMETypeRegistryBrew.cpp: Removed.
3248         * platform/brew/PasteboardBrew.cpp: Removed.
3249         * platform/brew/PlatformKeyboardEventBrew.cpp: Removed.
3250         * platform/brew/PlatformMouseEventBrew.cpp: Removed.
3251         * platform/brew/PlatformTouchEventBrew.cpp: Removed.
3252         * platform/brew/PlatformTouchPointBrew.cpp: Removed.
3253         * platform/brew/PopupMenuBrew.cpp: Removed.
3254         * platform/brew/PopupMenuBrew.h: Removed.
3255         * platform/brew/SSLKeyGeneratorBrew.cpp: Removed.
3256         * platform/brew/ScreenBrew.cpp: Removed.
3257         * platform/brew/ScrollbarThemeBrew.cpp: Removed.
3258         * platform/brew/ScrollbarThemeBrew.h: Removed.
3259         * platform/brew/SearchPopupMenuBrew.cpp: Removed.
3260         * platform/brew/SearchPopupMenuBrew.h: Removed.
3261         * platform/brew/SharedBufferBrew.cpp: Removed.
3262         * platform/brew/SharedTimerBrew.cpp: Removed.
3263         * platform/brew/SoundBrew.cpp: Removed.
3264         * platform/brew/SystemTimeBrew.cpp: Removed.
3265         * platform/brew/TemporaryLinkStubs.cpp: Removed.
3266         * platform/brew/WidgetBrew.cpp: Removed.
3267         * platform/graphics/brew: Removed.
3268         * platform/graphics/brew/IconBrew.cpp: Removed.
3269         * platform/graphics/brew/ImageBrew.cpp: Removed.
3270         * platform/graphics/brew/IntPointBrew.cpp: Removed.
3271         * platform/graphics/brew/IntSizeBrew.cpp: Removed.
3272         * platform/network/brew: Removed.
3273         * platform/network/brew/DNSBrew.cpp: Removed.
3274         * platform/network/brew/SocketStreamError.h: Removed.
3275         * platform/network/brew/SocketStreamHandle.h: Removed.
3276         * platform/network/brew/SocketStreamHandleBrew.cpp: Removed.
3277         * platform/network/brew/SocketStreamHandlePrivate.h: Removed.
3278         * platform/text/brew: Removed.
3279         * platform/text/brew/TextBoundariesBrew.cpp: Removed.
3280         * platform/text/brew/TextBreakIteratorBrew.cpp: Removed.
3281         * platform/text/brew/TextCodecBrew.cpp: Removed.
3282         * platform/text/brew/TextCodecBrew.h: Removed.
3283
3284 2011-09-25  Kentaro Hara  <haraken@chromium.org>
3285
3286         Implement a CloseEvent constructor for JSC
3287         https://bugs.webkit.org/show_bug.cgi?id=68340
3288
3289         Reviewed by Oliver Hunt.
3290
3291         The spec of the CloseEvent constructor is here:
3292         http://dev.w3.org/html5/websockets/#closeevent
3293
3294         Test: fast/events/constructors/close-event-constructor.html
3295
3296         * bindings/generic/EventConstructors.h: Added a definition for the CloseEvent constructor.
3297         * bindings/js/JSEventConstructors.cpp: Added #includes for CloseEvent.
3298         * websockets/CloseEvent.h: Added a definition for CloseEventInit.
3299         (WebCore::CloseEventInit::CloseEventInit):
3300         (WebCore::CloseEvent::create):
3301         (WebCore::CloseEvent::CloseEvent):
3302         * websockets/CloseEvent.idl: Makes CloseEvent constructible.
3303
3304 2011-09-25  Mark Rowe  <mrowe@apple.com>
3305
3306         <rdar://problem/10177824> IconDatabase’s use of ThreadCondition leads to assertion failures in the face of spurious wakeups
3307
3308         It's possible for ThreadCondition::wait to return spuriously without the condition having been signaled.
3309         When that happens we should immediately return to waiting rather than doing our normal work, as some of that
3310         work relies on wakeSyncThread having been called to signal the condition.
3311
3312         Reviewed by Sam Weinig.
3313
3314         * loader/icon/IconDatabase.cpp:
3315         (WebCore::IconDatabase::IconDatabase):
3316         (WebCore::IconDatabase::wakeSyncThread): Note that we have work for the sync thread to do.
3317         (WebCore::IconDatabase::syncThreadMainLoop): If we were woken with no work to do, immediately
3318         go back to waiting on the condition variable. Otherwise, reset m_syncThreadHasWorkToDo and then
3319         do that work. We also switch to moving m_disabledSuddenTerminationForSyncThread immediately in to
3320         our local shouldReenableSuddenTermination variable since it can be updated by other threads while
3321         we don't hold the lock. This makes it inappropriate to make assumptions about its value after dropping
3322         and reacquiring the lock.
3323         * loader/icon/IconDatabase.h:
3324
3325 2011-09-25  Dan Bernstein  <mitz@apple.com>
3326
3327         <rdar://problem/10156263> ASSERT in WebCore::FrameView::scheduleRelayoutOfSubtree
3328
3329         Reviewed by Sam Weinig.
3330
3331         Test: fast/dynamic/subtree-unrooted.html
3332
3333         * rendering/RenderObject.cpp:
3334         (WebCore::RenderObject::scheduleRelayout): Replaced the check that the renderer is parented,
3335         which was added in r21162, with a check that it is “rooted”.
3336
3337 2011-09-24  Abhishek Arya  <inferno@chromium.org>
3338
3339         Issues with merging block children of a ruby
3340         base with another ruby base having inline children. 
3341         https://bugs.webkit.org/show_bug.cgi?id=66124
3342
3343         Reviewed by Dan Bernstein.
3344
3345         Test: fast/ruby/ruby-base-merge-block-children-crash.html
3346
3347         * rendering/RenderRubyBase.cpp:
3348         (WebCore::RenderRubyBase::moveInlineChildren): add a firstChild()
3349         check to prevent empty anonymous block addition, just like
3350         moveBlockChildren method.
3351         * rendering/RenderRubyBase.cpp:
3352         (WebCore::RenderRubyBase::moveBlockChildren): This was incorrectly
3353         doing optimizations to see if current ruby base has only inline
3354         children before beforeChild and then trying to take out them from 
3355         their parent anonymous blocks. The problem is those inlines could
3356         be split and have continuations because of encountering a block
3357         inside inline flow. In those cases, we cannot take the inline out.
3358         So, we should just make children non-inline in the destination
3359         block and transfer the children as it-is.
3360         * rendering/RenderRubyBase.h: remove unncessary functions.
3361
3362 2011-09-25  Adam Barth  <abarth@webkit.org>
3363
3364         Remove PLATFORM(HAIKU) and associated code
3365         https://bugs.webkit.org/show_bug.cgi?id=68774
3366
3367         Reviewed by Sam Weinig.
3368
3369         As discussed on webkit-dev, the Haiku port has been inactive for over a
3370         year.  A year and a half ago, we discussed removing the port, but folks
3371         said they planned to work on it more.  That work does not appear to
3372         have happened in the intervening time.
3373
3374         * WebCore.gyp/WebCore.gyp:
3375         * WebCore.gypi:
3376         * bindings/js/ScriptControllerHaiku.cpp: Removed.
3377         * editing/haiku: Removed.
3378         * editing/haiku/EditorHaiku.cpp: Removed.
3379         * gyp/WebCore.gyp:
3380         * loader/cache/CachedFont.cpp:
3381         * page/EventHandler.cpp:
3382         (WebCore::EventHandler::eventInvertsTabsToLinksClientCallResult):
3383         * page/haiku: Removed.
3384         * page/haiku/DragControllerHaiku.cpp: Removed.
3385         * page/haiku/EventHandlerHaiku.cpp: Removed.
3386         * page/haiku/FrameHaiku.cpp: Removed.
3387         * platform/ContextMenuItem.h:
3388         * platform/Cursor.h:
3389         * platform/DragData.h:
3390         * platform/DragImage.h:
3391         * platform/PlatformKeyboardEvent.h:
3392         * platform/PlatformMenuDescription.h:
3393         * platform/PlatformMouseEvent.h:
3394         * platform/Widget.h:
3395         * platform/graphics/BitmapImage.h:
3396         * platform/graphics/Color.h:
3397         * platform/graphics/FloatPoint.h:
3398         * platform/graphics/FloatRect.h:
3399         * platform/graphics/Gradient.h:
3400         * platform/graphics/GraphicsContext.cpp:
3401         * platform/graphics/GraphicsContext.h:
3402         * platform/graphics/ImageBufferData.h:
3403         * platform/graphics/ImageSource.h:
3404         * platform/graphics/IntPoint.h:
3405         * platform/graphics/IntRect.h:
3406         * platform/graphics/IntSize.h:
3407         * platform/graphics/Path.h:
3408         * platform/graphics/Pattern.h:
3409         * platform/graphics/SimpleFontData.h:
3410         * platform/graphics/haiku: Removed.
3411         * platform/graphics/haiku/ColorHaiku.cpp: Removed.
3412         * platform/graphics/haiku/FloatPointHaiku.cpp: Removed.
3413         * platform/graphics/haiku/FloatRectHaiku.cpp: Removed.
3414         * platform/graphics/haiku/FontCacheHaiku.cpp: Removed.
3415         * platform/graphics/haiku/FontCustomPlatformData.cpp: Removed.
3416         * platform/graphics/haiku/FontCustomPlatformData.h: Removed.
3417         * platform/graphics/haiku/FontHaiku.cpp: Removed.
3418         * platform/graphics/haiku/FontPlatformData.h: Removed.
3419         * platform/graphics/haiku/GlyphPageTreeNodeHaiku.cpp: Removed.
3420         * platform/graphics/haiku/GradientHaiku.cpp: Removed.
3421         * platform/graphics/haiku/GraphicsContextHaiku.cpp: Removed.
3422         * platform/graphics/haiku/IconHaiku.cpp: Removed.
3423         * platform/graphics/haiku/ImageBufferDataHaiku.h: Removed.
3424         * platform/graphics/haiku/ImageBufferHaiku.cpp: Removed.
3425         * platform/graphics/haiku/ImageHaiku.cpp: Removed.
3426         * platform/graphics/haiku/IntPointHaiku.cpp: Removed.
3427         * platform/graphics/haiku/IntRectHaiku.cpp: Removed.
3428         * platform/graphics/haiku/IntSizeHaiku.cpp: Removed.
3429         * platform/graphics/haiku/PathHaiku.cpp: Removed.
3430         * platform/graphics/haiku/SimpleFontDataHaiku.cpp: Removed.
3431         * platform/graphics/haiku/StillImageHaiku.cpp: Removed.
3432         * platform/graphics/haiku/StillImageHaiku.h: Removed.
3433         * platform/haiku: Removed.
3434         * platform/haiku/ClipboardHaiku.cpp: Removed.
3435         * platform/haiku/ClipboardHaiku.h: Removed.
3436         * platform/haiku/ContextMenuHaiku.cpp: Removed.
3437         * platform/haiku/ContextMenuItemHaiku.cpp: Removed.
3438         * platform/haiku/CookieJarHaiku.cpp: Removed.
3439         * platform/haiku/CursorHaiku.cpp: Removed.
3440         * platform/haiku/DragDataHaiku.cpp: Removed.
3441         * platform/haiku/DragImageHaiku.cpp: Removed.
3442         * platform/haiku/EventLoopHaiku.cpp: Removed.
3443         * platform/haiku/FileSystemHaiku.cpp: Removed.
3444         * platform/haiku/LocalizedStringsHaiku.cpp: Removed.
3445         * platform/haiku/LoggingHaiku.cpp: Removed.
3446         * platform/haiku/MIMETypeRegistryHaiku.cpp: Removed.
3447         * platform/haiku/PasteboardHaiku.cpp: Removed.
3448         * platform/haiku/PlatformKeyboardEventHaiku.cpp: Removed.
3449         * platform/haiku/PlatformMouseEventHaiku.cpp: Removed.
3450         * platform/haiku/PlatformWheelEventHaiku.cpp: Removed.
3451         * platform/haiku/PopupMenuHaiku.cpp: Removed.
3452         * platform/haiku/PopupMenuHaiku.h: Removed.
3453         * platform/haiku/RenderThemeHaiku.cpp: Removed.
3454         * platform/haiku/RenderThemeHaiku.h: Removed.
3455         * platform/haiku/ScreenHaiku.cpp: Removed.
3456         * platform/haiku/ScrollbarThemeHaiku.cpp: Removed.
3457         * platform/haiku/ScrollbarThemeHaiku.h: Removed.
3458         * platform/haiku/SearchPopupMenuHaiku.cpp: Removed.
3459         * platform/haiku/SearchPopupMenuHaiku.h: Removed.
3460         * platform/haiku/SharedBufferHaiku.cpp: Removed.
3461         * platform/haiku/SharedTimerHaiku.cpp: Removed.
3462         * platform/haiku/SoundHaiku.cpp: Removed.
3463         * platform/haiku/TemporaryLinkStubs.cpp: Removed.
3464         * platform/haiku/WidgetHaiku.cpp: Removed.
3465         * platform/image-decoders/haiku: Removed.
3466         * platform/image-decoders/haiku/ImageDecoderHaiku.cpp: Removed.
3467         * platform/text/UnicodeRange.h:
3468         * platform/text/haiku: Removed.
3469         * platform/text/haiku/TextBreakIteratorInternalICUHaiku.cpp: Removed.
3470
3471 2011-09-25  Adam Barth  <abarth@webkit.org>
3472
3473         Attempted build fixes for GTK and Qt.
3474
3475         * GNUmakefile.list.am:
3476         * WebCore.pro:
3477
3478 2011-09-24  Adam Barth  <abarth@webkit.org>
3479
3480         Always enable ENABLE(OFFLINE_WEB_APPLICATIONS)
3481         https://bugs.webkit.org/show_bug.cgi?id=68767
3482
3483         Reviewed by Eric Seidel.
3484
3485         As discussed on webkit-dev, almost everyone has this enable turned on
3486         and this feature is unlikely to be removed from the web platform given
3487         its popularity.
3488
3489         * CMakeLists.txt:
3490         * Configurations/FeatureDefines.xcconfig:
3491         * GNUmakefile.am:
3492         * GNUmakefile.list.am:
3493         * WebCore.exp.in:
3494         * WebCore.pro:
3495         * bindings/cpp/WebDOMEventTarget.cpp:
3496         (toWebKit):
3497         * bindings/js/JSEventTarget.cpp:
3498         (WebCore::toJS):
3499         (WebCore::toEventTarget):
3500         * bindings/v8/V8DOMWrapper.cpp:
3501         (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
3502         * dom/EventTarget.cpp:
3503         (WebCore::EventTarget::toDOMApplicationCache):
3504         * dom/EventTarget.h:
3505         * features.pri:
3506         * history/PageCache.cpp:
3507         (WebCore::logCanCacheFrameDecision):
3508         (WebCore::PageCache::canCachePageContainingThisFrame):
3509         * html/HTMLHtmlElement.cpp:
3510         (WebCore::HTMLHtmlElement::insertedByParser):
3511         * html/HTMLHtmlElement.h:
3512         * html/HTMLMediaElement.cpp:
3513         (WebCore::createFileURLForApplicationCacheResource):
3514         (WebCore::HTMLMediaElement::loadResource):
3515         * html/ImageDocument.cpp:
3516         (WebCore::ImageDocument::createDocumentStructure):
3517         * html/MediaDocument.cpp:
3518         (WebCore::MediaDocumentParser::createDocumentStructure):
3519         * html/PluginDocument.cpp:
3520         (WebCore::PluginDocumentParser::createDocumentStructure):
3521         * html/parser/HTMLConstructionSite.cpp:
3522         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
3523         * inspector/InspectorApplicationCacheAgent.cpp:
3524         * inspector/InspectorApplicationCacheAgent.h:
3525         * inspector/InspectorController.cpp:
3526         (WebCore::InspectorController::InspectorController):
3527         (WebCore::InspectorController::connectFrontend):
3528         (WebCore::InspectorController::disconnectFrontend):
3529         * inspector/InspectorController.h:
3530         * inspector/InspectorInstrumentation.cpp:
3531         (WebCore::InspectorInstrumentation::updateApplicationCacheStatusImpl):
3532         * inspector/InspectorInstrumentation.h:
3533         (WebCore::InspectorInstrumentation::networkStateChanged):
3534         (WebCore::InspectorInstrumentation::updateApplicationCacheStatus):
3535         * inspector/InstrumentingAgents.h:
3536         (WebCore::InstrumentingAgents::InstrumentingAgents):
3537         (WebCore::InstrumentingAgents::setInspectorApplicationCacheAgent):
3538         * inspector/WorkerInspectorController.cpp:
3539         (WebCore::WorkerInspectorController::connectFrontend):
3540         * inspector/generate-inspector-idl:
3541         * loader/DocumentLoader.cpp:
3542         (WebCore::DocumentLoader::DocumentLoader):
3543         (WebCore::DocumentLoader::mainReceivedError):
3544         (WebCore::DocumentLoader::stopLoading):
3545         (WebCore::DocumentLoader::detachFromFrame):
3546         (WebCore::DocumentLoader::handledOnloadEvents):
3547         * loader/DocumentLoader.h:
3548         (WebCore::DocumentLoader::applicationCacheHost):
3549         * loader/EmptyClients.h:
3550         (WebCore::EmptyChromeClient::reachedApplicationCacheOriginQuota):
3551         * loader/FrameLoader.cpp:
3552         (WebCore::FrameLoader::loadResourceSynchronously):
3553         * loader/MainResourceLoader.cpp:
3554         (WebCore::MainResourceLoader::willSendRequest):
3555         (WebCore::MainResourceLoader::didReceiveResponse):
3556         (WebCore::MainResourceLoader::didReceiveData):
3557         (WebCore::MainResourceLoader::didFinishLoading):
3558         (WebCore::MainResourceLoader::didFail):
3559         (WebCore::MainResourceLoader::load):
3560         * loader/ResourceLoader.cpp:
3561         (WebCore::ResourceLoader::start):
3562         (WebCore::ResourceLoader::willSendRequest):
3563         (WebCore::ResourceLoader::didSendData):
3564         (WebCore::ResourceLoader::didReceiveResponse):
3565         (WebCore::ResourceLoader::didReceiveData):
3566         (WebCore::ResourceLoader::didFinishLoading):
3567         (WebCore::ResourceLoader::didFail):
3568         (WebCore::ResourceLoader::wasBlocked):
3569         (WebCore::ResourceLoader::cannotShowURL):
3570         (WebCore::ResourceLoader::shouldUseCredentialStorage):
3571         (WebCore::ResourceLoader::willCacheResponse):
3572         * loader/ResourceLoader.h:
3573         * loader/appcache/ApplicationCache.cpp:
3574         * loader/appcache/ApplicationCache.h:
3575         * loader/appcache/ApplicationCacheGroup.cpp:
3576         * loader/appcache/ApplicationCacheGroup.h:
3577         * loader/appcache/ApplicationCacheHost.cpp:
3578         * loader/appcache/ApplicationCacheHost.h:
3579         * loader/appcache/ApplicationCacheResource.cpp:
3580         * loader/appcache/ApplicationCacheResource.h:
3581         * loader/appcache/ApplicationCacheStorage.cpp:
3582         * loader/appcache/ApplicationCacheStorage.h:
3583         * loader/appcache/DOMApplicationCache.cpp:
3584         * loader/appcache/DOMApplicationCache.h:
3585         * loader/appcache/DOMApplicationCache.idl:
3586         * loader/appcache/ManifestParser.cpp:
3587         (WebCore::parseManifest):
3588         * loader/appcache/ManifestParser.h:
3589         * loader/chromium/ResourceLoaderChromium.cpp:
3590         (WebCore::ResourceLoader::didDownloadData):
3591         * page/ChromeClient.h:
3592         * page/DOMWindow.cpp:
3593         (WebCore::DOMWindow::clear):
3594         (WebCore::DOMWindow::applicationCache):
3595         * page/DOMWindow.h:
3596         (WebCore::DOMWindow::optionalApplicationCache):
3597         * page/DOMWindow.idl:
3598         * xml/parser/XMLDocumentParserLibxml2.cpp:
3599         (WebCore::XMLDocumentParser::startElementNs):
3600         * xml/parser/XMLDocumentParserQt.cpp:
3601         (WebCore::XMLDocumentParser::parseStartElement):
3602
3603 2011-09-24  Adam Barth  <abarth@webkit.org>
3604
3605         Remove ENABLE(WCSS) and associated code
3606         https://bugs.webkit.org/show_bug.cgi?id=68759
3607
3608         Reviewed by Darin Adler.
3609
3610         As discussed on webkit-dev, we are removing this feature from trunk to
3611         reduce the number of different configurations.
3612
3613         * CodeGenerators.pri:
3614         * GNUmakefile.am:
3615         * WebCore.pro:
3616         * css/CSSParser.cpp:
3617         (WebCore::CSSParser::parseValue):
3618         * css/CSSParser.h:
3619         * css/CSSPrimitiveValueMappings.h:
3620         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
3621         * css/CSSStyleSelector.cpp:
3622         (WebCore::CSSStyleSelector::applyProperty):
3623         * css/WCSSPropertyNames.in: Removed.
3624         * css/WCSSValueKeywords.in: Removed.
3625         * features.pri:
3626         * html/HTMLInputElement.cpp:
3627         (WebCore::HTMLInputElement::HTMLInputElement):
3628         * html/HTMLInputElement.h:
3629         * html/TextFieldInputType.cpp:
3630         (WebCore::TextFieldInputType::sanitizeValue):
3631         (WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
3632         * rendering/RenderMarquee.cpp:
3633         (WebCore::RenderMarquee::start):
3634         * rendering/RenderObject.cpp:
3635         (WebCore::RenderObject::createObject):
3636         * rendering/style/RenderStyleConstants.h:
3637
3638 2011-09-24  Young Han Lee  <joybro@company100.net>
3639
3640         SVGAnimation does not support 'values' for from-to animations
3641         https://bugs.webkit.org/show_bug.cgi?id=64859
3642
3643         Reviewed by Dirk Schulze.
3644
3645         If from-to animation have discrete calc-mode and have a 'keyTimes' list, values of
3646         the keyTimes indicate the begin and the end of the animation respectively.[1][2]
3647
3648         When keyTimes is given, calculate the progress percentage of the animation with it
3649         even for from-to animation.
3650
3651         [1] http://www.w3.org/TR/SVG/animate.html#ValueAttributes
3652         [2] http://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncValues
3653
3654         Test: svg/animations/animate-from-to-keyTimes.html
3655
3656         * svg/SVGAnimationElement.cpp:
3657         (WebCore::SVGAnimationElement::calculatePercentForFromTo):
3658         (WebCore::SVGAnimationElement::updateAnimation):
3659         * svg/SVGAnimationElement.h:
3660
3661 2011-09-23  Chris Fleizach  <cfleizach@apple.com>
3662
3663         WebKit does not expose AXPlaceholder value on password fields
3664         https://bugs.webkit.org/show_bug.cgi?id=68745
3665
3666         Reviewed by Oliver Hunt.
3667
3668         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
3669         (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
3670
3671 2011-09-23  Mark Rowe  <mrowe@apple.com>
3672
3673         Fix the build.
3674
3675         * loader/CrossOriginAccessControl.cpp:
3676         (WebCore::passesAccessControlCheck): Get rid of the exit-time destructor.
3677
3678 2011-09-23  Adam Barth  <abarth@webkit.org>
3679
3680         Canvas security checks show up on HTML5GamingTest benchmark
3681         https://bugs.webkit.org/show_bug.cgi?id=68743
3682
3683         Reviewed by Oliver Hunt.
3684
3685         Prior to this patch, the canvas security checks took as much as 4% of
3686         the time on the HTML5GamingTest benchmark:
3687
3688         http://craftymind.com/factory/guimark2/HTML5GamingTest.html
3689
3690         This patch uses a couple of AtomicStrings and shuffles around the order
3691         of the security check to take this down to around 0.1% (which is near
3692         the noise floor of what I can measure with my profiler).
3693
3694         * html/canvas/CanvasRenderingContext.cpp:
3695         (WebCore::CanvasRenderingContext::wouldTaintOrigin):
3696         * loader/CrossOriginAccessControl.cpp:
3697         (WebCore::passesAccessControlCheck):
3698
3699 2011-09-23  Justin Novosad  <junov@chromium.org>
3700
3701         Unwarranted DOM Exception when canvas2D drawImage is called with src
3702         rect out of bounds
3703         https://bugs.webkit.org/show_bug.cgi?id=65709
3704
3705         Reviewed by Oliver Hunt.
3706
3707         * html/canvas/CanvasRenderingContext2D.cpp:
3708         (WebCore::CanvasRenderingContext2D::drawImage):
3709         Return early without throwing an exception if source rectangle is out of 
3710         bounds to match the spec.
3711
3712 2011-09-23  Lukasz Slachciak  <l.slachciak@samsung.com>
3713
3714         Printing of notImplemented() when logging enabled.
3715         https://bugs.webkit.org/show_bug.cgi?id=64590
3716
3717         Printing of notImplemented() method was enabled on Debug builds only.
3718         Now it is enabled when logging is enabled.
3719
3720         Reviewed by Oliver Hunt.
3721
3722         No new tests because there is no new functionality.
3723
3724         * platform/NotImplemented.h: Non-debug mode replaced with non-logging mode.
3725
3726 2011-09-23  Mihai Parparita  <mihaip@chromium.org>
3727
3728         [Chromium] REGRESSION (r95725): Resizing a window doesn't resize the contents
3729         https://bugs.webkit.org/show_bug.cgi?id=68730
3730
3731         Reviewed by James Robinson.
3732
3733         Adds a missing contentsResized() call in ScrollView::setFrameRect.
3734
3735         Test: fast/dom/Window/window-resize-contents.html
3736
3737         * platform/ScrollView.cpp:
3738         (WebCore::ScrollView::setFrameRect):
3739
3740 2011-09-23  Adam Klein  <adamk@chromium.org>
3741
3742         Add ENABLE_MUTATION_OBSERVERS feature flag
3743         https://bugs.webkit.org/show_bug.cgi?id=68732
3744
3745         Reviewed by Ojan Vafai.
3746
3747         This flag will guard an implementation of the "Mutation Observers" proposed in
3748         http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html
3749
3750         * Configurations/FeatureDefines.xcconfig:
3751         * GNUmakefile.am:
3752
3753 2011-09-23  Varun Jain  <varunjain@google.com>
3754
3755         Refactor WebViewImpl::scrollFocusedNodeIntoRect to a better place and add tests 
3756         https://bugs.webkit.org/show_bug.cgi?id=68198
3757
3758         Reviewed by Dimitri Glazkov.
3759
3760         Tests: fast/dom/scroll-element-to-rect-centered.html
3761                fast/dom/scroll-element-to-rect.html
3762
3763         * WebCore.exp.in:
3764         * page/FrameView.cpp:
3765         (WebCore::FrameView::scrollElementToRect):
3766         * page/FrameView.h:
3767         * testing/Internals.cpp:
3768         (WebCore::Internals::scrollElementToRect):
3769         * testing/Internals.h:
3770         * testing/Internals.idl:
3771
3772 2011-09-23  Mihai Parparita  <mihaip@chromium.org>
3773
3774         Unreviewed, rolling out r95860.
3775         http://trac.webkit.org/changeset/95860
3776         https://bugs.webkit.org/show_bug.cgi?id=68648
3777
3778         Breaks overhang rendering on Chromium Mac
3779
3780         * platform/chromium/ScrollbarThemeChromium.cpp:
3781         * platform/chromium/ScrollbarThemeChromium.h:
3782         * platform/chromium/ScrollbarThemeChromiumMac.h:
3783         * platform/chromium/ScrollbarThemeChromiumMac.mm:
3784         (WebCore::ScrollbarThemeChromiumMac::ScrollbarThemeChromiumMac):
3785         (WebCore::ScrollbarThemeChromiumMac::paintOverhangAreas):
3786
3787 2011-09-23  Dean Jackson  <dino@apple.com>
3788
3789         Add -webkit-filter to CSSPropertyNames
3790         https://bugs.webkit.org/show_bug.cgi?id=68675
3791
3792         Reviewed by Simon Fraser.
3793
3794         Add property and rudimentary parsing for -webkit-filter. The
3795         property value isn't preserved anywhere yet. Add
3796         stub definition for computed style.
3797
3798         Test: css3/filters/filter-property.html
3799
3800         * css/CSSComputedStyleDeclaration.cpp:
3801         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3802         * css/CSSParser.cpp:
3803         (WebCore::CSSParser::parseValue):
3804         (WebCore::CSSParser::parseFilter):
3805         * css/CSSParser.h:
3806         * css/CSSPropertyNames.in:
3807         * css/CSSStyleSelector.cpp:
3808         (WebCore::CSSStyleSelector::applyProperty):
3809
3810 2011-09-23  Antoine Labour  <piman@chromium.org>
3811
3812         Remove preserves3D() from CCLayerDelegate, replacing it by setting the
3813         value explicitly after creating a layer, or setting its delegate.
3814         https://bugs.webkit.org/show_bug.cgi?id=68295
3815
3816         Reviewed by James Robinson.
3817
3818         Covered by compositing/ layeout tests.
3819
3820         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
3821         (WebCore::GraphicsLayerChromium::setContentsToCanvas):
3822         (WebCore::GraphicsLayerChromium::setContentsToMedia):
3823         (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
3824         (WebCore::GraphicsLayerChromium::setupContentsLayer):
3825         * platform/graphics/chromium/GraphicsLayerChromium.h:
3826         * platform/graphics/chromium/LayerChromium.cpp:
3827         (WebCore::LayerChromium::LayerChromium):
3828         * platform/graphics/chromium/LayerChromium.h:
3829         (WebCore::LayerChromium::setPreserves3D):
3830         (WebCore::LayerChromium::preserves3D):
3831
3832 2011-09-23  Julien Chaffraix  <jchaffraix@webkit.org>
3833
3834         Implicit conversion double to float in ShadowBlur::adjustBlurRadius
3835         https://bugs.webkit.org/show_bug.cgi?id=68722
3836
3837         Reviewed by Simon Fraser.
3838
3839         * platform/graphics/ShadowBlur.cpp:
3840         (WebCore::ShadowBlur::adjustBlurRadius): Added 2 explicit
3841         conversions.
3842
3843 2011-09-23  Dan Bernstein  <mitz@apple.com>
3844
3845         <rdar://problem/10178576> REGRESSION (r95391): Crash in -[WebCascadeList objectAtIndex:] when a font-family list contains missing fonts
3846         https://bugs.webkit.org/show_bug.cgi?id=68737
3847
3848         Reviewed by Darin Adler.
3849
3850         Test: fast/text/combining-character-sequence-fallback-crash.html
3851
3852         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
3853         (-[WebCascadeList initWithFont:WebCore::character:]): Changed to intialize _count to the exact
3854         number of FontData instances in the fallback list rather than the number of font families in the
3855         font description.
3856
3857 2011-09-23  David Reveman  <reveman@chromium.org>
3858
3859         [Chromium] Fix CSS 3D corner anti-aliasing.
3860         https://bugs.webkit.org/show_bug.cgi?id=68087
3861
3862         Reviewed by James Robinson.
3863
3864         Render sharp corners more correctly by adding bounding box
3865         edges to anti-aliasing shaders.
3866
3867         Test: platform/chromium/compositing/3d-corners.html
3868
3869         * platform/graphics/chromium/ShaderChromium.cpp:
3870         (WebCore::FragmentShaderRGBATexAlphaAA::getShaderString):
3871         (WebCore::FragmentShaderRGBATexClampAlphaAA::getShaderString):
3872         (WebCore::FragmentShaderRGBATexClampSwizzleAlphaAA::getShaderString):
3873         (WebCore::FragmentShaderRGBATexAlphaMaskAA::getShaderString):
3874         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
3875         (WebCore::CCRenderSurface::drawLayer):
3876         (WebCore::CCRenderSurface::drawSurface):
3877         * platform/graphics/chromium/cc/CCRenderSurface.h:
3878         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
3879         (WebCore::CCTiledLayerImpl::draw):
3880         (WebCore::CCTiledLayerImpl::drawTiles):
3881         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
3882
3883 2011-09-23  Oliver Hunt  <oliver@apple.com>
3884
3885         Make write barriers actually do something when enabled
3886         https://bugs.webkit.org/show_bug.cgi?id=68717
3887
3888         Reviewed by Geoffrey Garen.
3889
3890         Add a forwarding header, and fix an evaluation ordering
3891         issue that shows up if you try to use write barriers.
3892
3893         * ForwardingHeaders/heap/CardSet.h: Added.
3894         * bindings/js/JSEventListener.h:
3895         (WebCore::JSEventListener::jsFunction):
3896
3897 2011-09-23  James Robinson  <jamesr@chromium.org>
3898
3899         Avoid updating compositing state during paint
3900         https://bugs.webkit.org/show_bug.cgi?id=68727
3901
3902         Reviewed by Simon Fraser.
3903
3904         We shouldn't update our compositing state in the middle of a paint. The call to
3905         updateCompositingAndLayerListsIfNeeded() was added to RenderLayer::paintLayer in r45715, which was intended to
3906         fix this exact issue. Based off the ChangeLog entries, I think that this was just a typo.
3907
3908         * rendering/RenderLayer.cpp:
3909         (WebCore::RenderLayer::paintLayer):
3910         (WebCore::RenderLayer::updateCompositingAndLayerListsIfNeeded):
3911         * rendering/RenderLayerCompositor.cpp:
3912         (WebCore::RenderLayerCompositor::updateCompositingLayers):
3913         * rendering/RenderLayerCompositor.h:
3914
3915 2011-09-23  Fady Samuel  <fsamuel@chromium.org>
3916
3917         Refactor paintOverhangAreas to allow non-Mac Chromium platforms to reuse code
3918         https://bugs.webkit.org/show_bug.cgi?id=68648
3919
3920         Reviewed by Dimitri Glazkov.
3921
3922         No new tests because there's no change in functionality (yet).
3923
3924         * platform/chromium/ScrollbarThemeChromium.cpp:
3925         (WebCore::ScrollbarThemeChromium::ScrollbarThemeChromium):
3926         (WebCore::ScrollbarThemeChromium::~ScrollbarThemeChromium):
3927         (WebCore::ScrollbarThemeChromium::paintOverhangAreas):
3928         * platform/chromium/ScrollbarThemeChromium.h:
3929         * platform/chromium/ScrollbarThemeChromiumMac.h:
3930         * platform/chromium/ScrollbarThemeChromiumMac.mm:
3931         (WebCore::ScrollbarThemeChromiumMac::ScrollbarThemeChromiumMac):
3932
3933 2011-09-23  Ojan Vafai  <ojan@chromium.org>
3934
3935         remove physical flex-flow values to match the updated spec
3936         https://bugs.webkit.org/show_bug.cgi?id=68728
3937
3938         Reviewed by Tony Chang.
3939
3940         * css/CSSParser.cpp:
3941         (WebCore::CSSParser::parseValue):
3942         * css/CSSPrimitiveValueMappings.h:
3943         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
3944         (WebCore::CSSPrimitiveValue::operator EFlexFlow):
3945         * css/CSSValueKeywords.in:
3946         * rendering/style/RenderStyleConstants.h:
3947
3948 2011-09-23  Abhishek Arya  <inferno@chromium.org>
3949
3950         Style not updated for :before, :after content
3951         in ruby text.
3952         https://bugs.webkit.org/show_bug.cgi?id=68625
3953
3954         Reviewed by Dave Hyatt.
3955
3956         Test: fast/ruby/ruby-text-before-after-content.html
3957
3958         * rendering/RenderRubyText.cpp:
3959         (WebCore::RenderRubyText::updateBeforeAfterContent):
3960         * rendering/RenderRubyText.h:
3961
3962 2011-09-22  Ojan Vafai  <ojan@chromium.org>
3963
3964         refactor RenderFlexibleBox to use flex-flow aware methods
3965         https://bugs.webkit.org/show_bug.cgi?id=68665
3966
3967         Reviewed by Tony Chang.
3968
3969         This is just a refactor. Just move the all the code that needs to
3970         be flow aware into helper functions. Actually making them flow-aware
3971         can be done in a followup patch.
3972
3973         * rendering/RenderBlock.cpp:
3974         * rendering/RenderBlock.h:
3975         Moved setLogicalLocationForChild into RenderFlexibleBox since that was the only caller.
3976         * rendering/RenderFlexibleBox.cpp:
3977         (WebCore::RenderFlexibleBox::hasOrthogonalFlow):
3978         (WebCore::RenderFlexibleBox::isHorizontalFlow):
3979         (WebCore::RenderFlexibleBox::isLeftToRightFlow):
3980         (WebCore::RenderFlexibleBox::setFlowAwareLogicalHeight):
3981         (WebCore::RenderFlexibleBox::flowAwareLogicalHeightForChild):
3982         (WebCore::RenderFlexibleBox::flowAwareLogicalWidthForChild):
3983         (WebCore::RenderFlexibleBox::flowAwareLogicalHeight):
3984         (WebCore::RenderFlexibleBox::flowAwareContentLogicalWidth):
3985         (WebCore::RenderFlexibleBox::flowAwareAvailableLogicalWidth):
3986         (WebCore::RenderFlexibleBox::flowAwareBorderStart):
3987         (WebCore::RenderFlexibleBox::flowAwareBorderBefore):
3988         (WebCore::RenderFlexibleBox::flowAwareBorderAfter):
3989         (WebCore::RenderFlexibleBox::flowAwarePaddingStart):
3990         (WebCore::RenderFlexibleBox::flowAwarePaddingBefore):
3991         (WebCore::RenderFlexibleBox::flowAwarePaddingAfter):
3992         (WebCore::RenderFlexibleBox::flowAwareMarginStartForChild):
3993         (WebCore::RenderFlexibleBox::flowAwareMarginBeforeForChild):
3994         (WebCore::RenderFlexibleBox::flowAwareMarginAfterForChild):
3995         (WebCore::RenderFlexibleBox::setFlowAwareMarginStartForChild):
3996         (WebCore::RenderFlexibleBox::setFlowAwareMarginEndForChild):
3997         (WebCore::RenderFlexibleBox::setFlowAwareLogicalLocationForChild):
3998         (WebCore::RenderFlexibleBox::logicalBorderAndPaddingWidthForChild):
3999         (WebCore::RenderFlexibleBox::logicalScrollbarHeightForChild):
4000         (WebCore::RenderFlexibleBox::marginStartStyleForChild):
4001         (WebCore::RenderFlexibleBox::marginEndStyleForChild):
4002         (WebCore::RenderFlexibleBox::preferredLogicalContentWidthForFlexItem):
4003         (WebCore::RenderFlexibleBox::layoutInlineDirection):
4004         (WebCore::RenderFlexibleBox::logicalPositiveFlexForChild):
4005         (WebCore::RenderFlexibleBox::logicalNegativeFlexForChild):
4006         (WebCore::RenderFlexibleBox::computePreferredLogicalWidth):
4007         (WebCore::RenderFlexibleBox::runFreeSpaceAllocationAlgorithmInlineDirection):
4008         (WebCore::RenderFlexibleBox::setLogicalOverrideSize):
4009         (WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):
4010         * rendering/RenderFlexibleBox.h:
4011
4012 2011-09-23  David Hyatt  <hyatt@apple.com>
4013
4014         https://bugs.webkit.org/show_bug.cgi?id=68719
4015         
4016         Push through multiple regions when an object doesn't fit in any of them. Unlike with pages and
4017         columns, when regions have a non-uniform height, we may need to push through multiple regions
4018         in order to find one that fits.
4019         
4020         Added an optimization for quickly noticing if regions do have a uniform height so that we can
4021         treat them like columns and pages if so.
4022
4023         Also fixed the end line matchup to properly null out endLine when no next line box exists. The new
4024         layout tests I wrote to cover this feature exposed this crasher, so fixing it in order to land
4025         the new tests.
4026
4027         Reviewed by Anders Carlsson.
4028
4029         Added new tests in fast/regions.
4030
4031         * rendering/RenderBlock.cpp:
4032         (WebCore::RenderBlock::adjustForUnsplittableChild):
4033         (WebCore::RenderBlock::pushToNextPageWithMinimumLogicalHeight):
4034         (WebCore::RenderBlock::adjustLinePositionForPagination):
4035         * rendering/RenderBlock.h:
4036         * rendering/RenderBlockLineLayout.cpp:
4037         (WebCore::RenderBlock::matchedEndLine):
4038         * rendering/RenderFlowThread.cpp:
4039         (WebCore::RenderFlowThread::RenderFlowThread):
4040         (WebCore::RenderFlowThread::layout):
4041         * rendering/RenderFlowThread.h:
4042
4043 2011-09-23  Konstantin Scheglov  <scheglov@google.com>
4044
4045         Redrawing dirty parts of a large table is very slow
4046         https://bugs.webkit.org/show_bug.cgi?id=64546
4047
4048         Reviewed by&n