b241f5652353fb92b89243d394b49a415eb0d1a0
[WebKit-https.git] / WebCore / ChangeLog
1 2010-07-30  Adam Roben  <aroben@apple.com>
2
3         Remove knowledge of WKCACFContextFlusher from WKCACFLayer
4
5         Fixes <http://webkit.org/b/43248> WKCACFLayer shouldn't know about
6         WKCACFContextFlusher
7
8         Reviewed by Sam Weinig.
9
10         * platform/graphics/win/WKCACFLayer.cpp:
11         (WebCore::WKCACFLayer::setNeedsCommit): Don't bother calling to
12         WKCACFContextFlusher. Our root layer will do this for us.
13
14         * platform/graphics/win/WKCACFLayerRenderer.cpp:
15         (WebCore::WKCACFRootLayer::setNeedsRender): Changed to call the new
16         layerTreeDidChange function.
17         (WebCore::WKCACFLayerRenderer::layerTreeDidChange): Added. Tells
18         WKCACFContextFlusher that the context has changed, and schedules a
19         render.
20
21         * platform/graphics/win/WKCACFLayerRenderer.h: Added
22         layerTreeDidChange.
23
24 2010-07-29  Jeremy Orlow  <jorlow@chromium.org>
25
26         Reviewed by Steve Block.
27
28         Rename all the IDBIndex classses to match the latest conventions
29         https://bugs.webkit.org/show_bug.cgi?id=43190
30
31         No functionality has changed.
32
33         IDBIndexRequest -> IDBIndex in the spec.  So that's the first change.
34         IDBIndex was the name of our interface class though, so we need to rename
35         it to get it out of the way.  While we're at it, we might as well clean
36         up the naming in general to make things more clear.  In the future, we're
37         going to need another layer (yes, yuck) which will be shared by the async
38         and sync classes which will do caching and other optimizations.  That will
39         then connect to the backend.  We also added "Interface" to make it more
40         clear that's what the file/class is.
41
42         Existing layout tests are enough since nothing should change as far as JavaScript can see.
43
44         * Android.derived.jscbindings.mk:
45         * Android.derived.v8bindings.mk:
46         * Android.mk:
47         * CMakeLists.txt:
48         * DerivedSources.cpp:
49         * DerivedSources.make:
50         * GNUmakefile.am:
51         * WebCore.gypi:
52         * WebCore.pri:
53         * WebCore.pro:
54         * WebCore.xcodeproj/project.pbxproj:
55         * bindings/js/JSIDBAnyCustom.cpp:
56         (WebCore::toJS):
57         * bindings/v8/custom/V8IDBAnyCustom.cpp:
58         (WebCore::toV8):
59         * storage/IDBAny.cpp:
60         (WebCore::IDBAny::idbIndex):
61         (WebCore::IDBAny::set):
62         * storage/IDBAny.h:
63         (WebCore::IDBAny::):
64         * storage/IDBCallbacks.h:
65         * storage/IDBIndex.cpp: Added.
66         (WebCore::IDBIndex::IDBIndex):
67         (WebCore::IDBIndex::~IDBIndex):
68         * storage/IDBIndex.h:
69         (WebCore::IDBIndex::create):
70         (WebCore::IDBIndex::name):
71         (WebCore::IDBIndex::keyPath):
72         (WebCore::IDBIndex::unique):
73         * storage/IDBIndex.idl: Added.
74         * storage/IDBIndexBackendImpl.cpp: Added.
75         (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
76         (WebCore::IDBIndexBackendImpl::~IDBIndexBackendImpl):
77         * storage/IDBIndexBackendImpl.h: Added.
78         (WebCore::IDBIndexBackendImpl::create):
79         (WebCore::IDBIndexBackendImpl::name):
80         (WebCore::IDBIndexBackendImpl::keyPath):
81         (WebCore::IDBIndexBackendImpl::unique):
82         * storage/IDBIndexBackendInterface.h: Added.
83         (WebCore::IDBIndexBackendInterface::~IDBIndexBackendInterface):
84         * storage/IDBIndexImpl.cpp: Removed.
85         * storage/IDBIndexImpl.h: Removed.
86         * storage/IDBIndexRequest.cpp: Removed.
87         * storage/IDBIndexRequest.h: Removed.
88         * storage/IDBIndexRequest.idl: Removed.
89         * storage/IDBObjectStore.h:
90         * storage/IDBObjectStoreImpl.cpp:
91         (WebCore::IDBObjectStoreImpl::createIndex):
92         (WebCore::IDBObjectStoreImpl::index):
93         * storage/IDBObjectStoreImpl.h:
94         * storage/IDBObjectStoreRequest.cpp:
95         (WebCore::IDBObjectStoreRequest::index):
96         * storage/IDBObjectStoreRequest.h:
97         * storage/IDBObjectStoreRequest.idl:
98         * storage/IDBRequest.cpp:
99         (WebCore::IDBRequest::onSuccess):
100         * storage/IDBRequest.h:
101
102 2010-07-30  Rafael Antognolli  <antognolli@profusion.mobi>
103
104         Reviewed by Antonio Gomes.
105
106         [EFL] Add library version and soname to EFL generated libraries and binary.
107         https://bugs.webkit.org/show_bug.cgi?id=43212
108
109         Add version and soname to libwebcore.so in case of linking as shared
110         library.
111
112         No new feature, so no new tests.
113
114         * CMakeLists.txt:
115
116 2010-07-30  Steve Block  <steveblock@google.com>
117
118         Reviewed by Steve Block.
119
120         Add LayoutTestController methods to test DeviceOrientation
121         https://bugs.webkit.org/show_bug.cgi?id=39589
122
123         This patch does not hook up the new LayoutTestController method to WebKit
124         for any platform. This will be done in later patches.
125         https://bugs.webkit.org/show_bug.cgi?id=43181 tracks this for Mac.
126
127         Test: fast/dom/DeviceOrientation/basic-operation.html
128
129         * Android.mk:
130         * CMakeLists.txt:
131         * GNUmakefile.am:
132         * WebCore.exp.in:
133         * WebCore.gypi:
134         * WebCore.pro:
135         * WebCore.vcproj/WebCore.vcproj:
136         * WebCore.xcodeproj/project.pbxproj:
137         * dom/DeviceOrientationClient.h:
138         (WebCore::DeviceOrientationClient::~DeviceOrientationClient):
139         * dom/DeviceOrientationController.cpp:
140         (WebCore::DeviceOrientationController::DeviceOrientationController):
141         * dom/DeviceOrientationEvent.cpp:
142         * platform/mock/DeviceOrientationClientMock.cpp: Added.
143         (WebCore::DeviceOrientationClientMock::DeviceOrientationClientMock):
144         (WebCore::DeviceOrientationClientMock::setController):
145         (WebCore::DeviceOrientationClientMock::startUpdating):
146         (WebCore::DeviceOrientationClientMock::stopUpdating):
147         (WebCore::DeviceOrientationClientMock::setOrientation):
148         (WebCore::DeviceOrientationClientMock::timerFired):
149         * platform/mock/DeviceOrientationClientMock.h: Added.
150         (WebCore::DeviceOrientationClientMock::lastOrientation):
151
152 2010-07-30  Satish Sampath  <satish@chromium.org>
153
154         Reviewed by Jeremy Orlow.
155
156         Add a mock in WebCore for testing speech input
157         https://bugs.webkit.org/show_bug.cgi?id=42603
158
159         Layout tests will be added in a subsequent patch using this mock.
160
161         * Android.mk:
162         * GNUmakefile.am:
163         * WebCore.gypi:
164         * WebCore.pro:
165         * WebCore.vcproj/WebCore.vcproj:
166         * WebCore.xcodeproj/project.pbxproj:
167         * platform/mock/SpeechInputClientMock.cpp: Added.
168         (WebCore::SpeechInputClientMock::SpeechInputClientMock):
169         (WebCore::SpeechInputClientMock::startRecognition):
170         (WebCore::SpeechInputClientMock::stopRecording):
171         (WebCore::SpeechInputClientMock::cancelRecognition):
172         (WebCore::SpeechInputClientMock::setRecognitionResult):
173         (WebCore::SpeechInputClientMock::timerFired):
174         * platform/mock/SpeechInputClientMock.h: Added.
175
176 2010-07-30  Nikolas Zimmermann  <nzimmermann@rim.com>
177
178         Reviewed by Dirk Schulze.
179
180         Optimize SVGResources memory usage
181         https://bugs.webkit.org/show_bug.cgi?id=43236
182
183         Instead of storing pointers to all possible resources that could be applied to an element, group them in three categories:
184         clipper/filter/masker, marker-start/marker-mid/marker-end, and fill/stroke.
185
186         Only build the cached resources data for elements where the properties can be applied to. Maintain a static list of tagnames
187         for each of the three categories, to avoid doing unncessary work.
188
189         Doesn't affect any tests.
190
191         * rendering/SVGResources.cpp:
192         (WebCore::SVGResources::SVGResources):
193         (WebCore::clipperFilterMaskerTags):
194         (WebCore::markerTags):
195         (WebCore::fillAndStrokeTags):
196         (WebCore::SVGResources::buildCachedResources):
197         (WebCore::SVGResources::invalidateClient):
198         (WebCore::SVGResources::resourceDestroyed):
199         (WebCore::SVGResources::buildSetOfResources):
200         (WebCore::SVGResources::setClipper):
201         (WebCore::SVGResources::resetClipper):
202         (WebCore::SVGResources::setFilter):
203         (WebCore::SVGResources::resetFilter):
204         (WebCore::SVGResources::setMarkerStart):
205         (WebCore::SVGResources::resetMarkerStart):
206         (WebCore::SVGResources::setMarkerMid):
207         (WebCore::SVGResources::resetMarkerMid):
208         (WebCore::SVGResources::setMarkerEnd):
209         (WebCore::SVGResources::resetMarkerEnd):
210         (WebCore::SVGResources::setMasker):
211         (WebCore::SVGResources::resetMasker):
212         (WebCore::SVGResources::setFill):
213         (WebCore::SVGResources::resetFill):
214         (WebCore::SVGResources::setStroke):
215         (WebCore::SVGResources::resetStroke):
216         (WebCore::SVGResources::dump):
217         * rendering/SVGResources.h:
218         (WebCore::SVGResources::clipper):
219         (WebCore::SVGResources::filter):
220         (WebCore::SVGResources::markerStart):
221         (WebCore::SVGResources::markerMid):
222         (WebCore::SVGResources::markerEnd):
223         (WebCore::SVGResources::masker):
224         (WebCore::SVGResources::fill):
225         (WebCore::SVGResources::stroke):
226         (WebCore::SVGResources::ClipperFilterMaskerData::ClipperFilterMaskerData):
227         (WebCore::SVGResources::ClipperFilterMaskerData::create):
228         (WebCore::SVGResources::MarkerData::MarkerData):
229         (WebCore::SVGResources::MarkerData::create):
230         (WebCore::SVGResources::FillStrokeData::FillStrokeData):
231         (WebCore::SVGResources::FillStrokeData::create):
232
233 2010-07-26  Andrei Popescu  <andreip@google.com>
234
235         Reviewed by Jeremy Orlow.
236
237         [IndexedDB] IndexedDatabase should be called IDBFactory.
238         https://bugs.webkit.org/show_bug.cgi?id=42967
239
240         Rename IndexedDatabase to IDBFactory to match the specification.
241
242         Also implement the following new naming convention:
243         IDBFoo IDL interfaces are implemented using IDBFoo C++ classes.
244         IDBFoo objects have pointers to IDBFooBackendInterface objects.
245         IDBFooBackendInterface is implemented by IDBFooBackendImpl and
246         IDBFooBackendProxy (for Chromium).
247
248         No new tests needed, just renaming.
249
250         * Android.derived.jscbindings.mk:
251         * Android.derived.v8bindings.mk:
252         * Android.mk:
253         * CMakeLists.txt:
254         * DerivedSources.cpp:
255         * DerivedSources.make:
256         * GNUmakefile.am:
257         * WebCore.gyp/WebCore.gyp:
258         * WebCore.gypi:
259         * WebCore.pri:
260         * WebCore.pro:
261         * WebCore.xcodeproj/project.pbxproj:
262         * bindings/js/JSIDBAnyCustom.cpp:
263         (WebCore::toJS):
264         * bindings/v8/custom/V8IDBAnyCustom.cpp:
265         (WebCore::toV8):
266         * page/DOMWindow.cpp:
267         (WebCore::DOMWindow::clear):
268         (WebCore::DOMWindow::indexedDB):
269         * page/DOMWindow.h:
270         * page/DOMWindow.idl:
271         * page/PageGroup.cpp:
272         (WebCore::PageGroup::idbFactory):
273         * page/PageGroup.h:
274         * platform/chromium/ChromiumBridge.h:
275         * storage/IDBAny.cpp:
276         (WebCore::IDBAny::idbFactory):
277         (WebCore::IDBAny::set):
278         * storage/IDBAny.h:
279         (WebCore::IDBAny::):
280         * storage/IDBDatabaseRequest.cpp:
281         * storage/IDBFactory.cpp: Added.
282         (WebCore::IDBFactory::IDBFactory):
283         (WebCore::IDBFactory::~IDBFactory):
284         (WebCore::IDBFactory::open):
285         * storage/IDBFactory.h: Added.
286         (WebCore::IDBFactory::create):
287         * storage/IDBFactory.idl: Added.
288         * storage/IDBFactoryBackendInterface.cpp: Added.
289         (WebCore::IDBFactoryBackendInterface::create):
290         * storage/IDBFactoryBackendInterface.h: Added.
291         (WebCore::IDBFactoryBackendInterface::~IDBFactoryBackendInterface):
292         * storage/IDBFactoryBackendImpl.cpp: Added.
293         (WebCore::IDBFactoryBackendImpl::create):
294         (WebCore::IDBFactoryBackendImpl::IDBFactoryBackendImpl):
295         (WebCore::IDBFactoryBackendImpl::~IDBFactoryBackendImpl):
296         (WebCore::IDBFactoryBackendImpl::open):
297         * storage/IDBFactoryBackendImpl.h: Added.
298         * storage/IDBKeyRange.cpp:
299         (WebCore::IDBKeyRange::only):
300         (WebCore::IDBKeyRange::leftBound):
301         (WebCore::IDBKeyRange::rightBound):
302         (WebCore::IDBKeyRange::bound):
303         * storage/IDBKeyRange.h:
304         * storage/IDBKeyRange.idl:
305         * storage/IndexedDatabase.cpp: Removed.
306         * storage/IndexedDatabase.h: Removed.
307         * storage/IndexedDatabaseImpl.cpp: Removed.
308         * storage/IndexedDatabaseImpl.h: Removed.
309         * storage/IndexedDatabaseRequest.cpp: Removed.
310         * storage/IndexedDatabaseRequest.h: Removed.
311         * storage/IndexedDatabaseRequest.idl: Removed.
312         * storage/chromium/IDBFactoryBackendInterface.cpp: Added.
313         (WebCore::IDBFactoryBackendInterface::create):
314         * storage/chromium/IndexedDatabase.cpp: Removed.
315
316 2010-07-29  Alexander Pavlov  <apavlov@chromium.org>
317
318         Reviewed by Pavel Feldman.
319
320         Web Inspector: Crash on refresh with a comment selected in the Elements panel
321         https://bugs.webkit.org/show_bug.cgi?id=43183
322
323         * inspector/InspectorDOMAgent.cpp:
324         (WebCore::InspectorDOMAgent::nodeForPath):
325         * inspector/front-end/ElementsPanel.js:
326         (WebInspector.ElementsPanel.prototype.reset):
327
328 2010-07-30  Renata Hodovan  <reni@inf.u-szeged.hu>
329
330         Reviewed by Nikolas Zimmermann.
331
332         feTurbulence is not implemented.
333         https://bugs.webkit.org/show_bug.cgi?id=5864
334
335         This code is based on the previous implementation of
336         Dirk Schulze, extended with some modification and optimization.
337
338         LayoutTests: Updating expected values for turbulence filter.
339         svg/W3C-SVG-1.1/filters-turb-01-f.svg
340
341         * svg/SVGFETurbulenceElement.cpp:
342         (WebCore::SVGFETurbulenceElement::build):
343         * svg/graphics/filters/SVGFETurbulence.cpp:
344         (WebCore::FETurbulence::FETurbulence):
345         (WebCore::FETurbulence::create):
346         (WebCore::FETurbulence::PaintingData::PaintingData):
347         (WebCore::FETurbulence::PaintingData::random):
348         (WebCore::smoothCurve):
349         (WebCore::linearInterpolation):
350         (WebCore::FETurbulence::initPaint):
351         (WebCore::checkNoise):
352         (WebCore::FETurbulence::noise2D):
353         (WebCore::Noise::if):
354         (WebCore::FETurbulence::calculateTurbulenceValueForPoint):
355         (WebCore::FETurbulence::apply):
356         * svg/graphics/filters/SVGFETurbulence.h:
357         (WebCore::):
358
359 2010-07-29  Martin Robinson  <mrobinson@igalia.com>
360
361         Reviewed by Dirk Schulze.
362
363         Cairo: Need to implement GraphicsContext::clipConvexPolygon()
364         https://bugs.webkit.org/show_bug.cgi?id=41308
365
366         Implement clipConvexPolygon for Cairo ports and enable new path based
367         borders for that port as well.
368
369         * platform/graphics/cairo/GraphicsContextCairo.cpp:
370         (WebCore::addConvexPolygonToContext): Add this helper method.
371         (WebCore::GraphicsContext::drawConvexPolygon): Use the new addConvexPolygonToContext helper.
372         (WebCore::GraphicsContext::clipConvexPolygon): Implement this method.
373         * rendering/RenderObject.h: Enable path based borders for Cairo.
374
375 2010-07-29  Ryosuke Niwa  <rniwa@webkit.org>
376
377         Reviewed by Darin Adler.
378
379         InsertOrderedList does not switch the list type properly when it has an inner list.
380         https://bugs.webkit.org/show_bug.cgi?id=43166
381
382         The bug was caused by forcedCreateList was not set to true when the start and the end
383         of the selection lies in the same list. Added selectionHasListOfType to fix this problem.
384
385         WebKit used not to convert the outer lists even when the list is fully selected.
386         Corrected this behavior by converting the entire list at once when the list is fully selected.
387         To decide whether or not a list is fully selected, added currentSelection argument to doApplyForSingleParagraph.
388
389         Tests: editing/execCommand/switch-list-type-with-inner-list.html
390                editing/execCommand/switch-list-type-with-orphaned-li.html
391
392         * editing/InsertListCommand.cpp:
393         (WebCore::InsertListCommand::mergeWithNeighboringLists): Extracted the code to merge lists.
394         (WebCore::InsertListCommand::selectionHasListOfType): attachment.cgi
395         (WebCore::InsertListCommand::doApply): Calls selectionHasListOfType.
396         (WebCore::InsertListCommand::doApplyForSingleParagraph): See above.
397         (WebCore::InsertListCommand::listifyParagraph): Calls mergeWithNeighboringLists.
398         * editing/InsertListCommand.h:
399         * editing/htmlediting.cpp:
400         (WebCore::canMergeLists): Ensures lists being merged are instances of HTMLElement.
401         (WebCore::isNodeVisiblyContainedWithin): Works properly when one end is inside the range.
402
403 2010-07-29  Martin Robinson  <mrobinson@igalia.com>
404
405         Reviewed by Dirk Schulze.
406
407         [Cairo] Bring behavior of paths on the Cairo GraphicsContext into line with the CoreGraphics port
408         https://bugs.webkit.org/show_bug.cgi?id=41732
409
410         Do not apply paths added to the Cairo GraphicsContext, until they are used.
411         This prevents drawing routines such as fillRect from interacting with any
412         path which callers are constructing on the GraphicsContext.
413
414          This behavior is necessary to close bug https://bugs.webkit.org/show_bug.cgi?id=41308
415          so tests for that issue will test this fix.
416
417         * platform/graphics/cairo/GraphicsContextCairo.cpp:
418         (WebCore::appendPathToCairoContext): Added. A helper method which adds a path
419         to a native Cairo context.
420         (WebCore::setPathOnCairoContext): Added. Like appendPathToCairoContext, but clears the
421         existing path first.
422         (WebCore::appendWebCorePathToCairoContext): Added. Like appendPathToCairoContext, but
423         operates on a WebCore path.
424         (WebCore::fillCurrentCairoPath): Added. Helper which fills the current cairo context path.
425         (WebCore::strokeCurrentCairoPath): Added. Helper which strokes the current cairo context path.
426         (WebCore::GraphicsContext::drawEllipse): Only clear the Cairo path if cairo_stroke
427         was not called, because cairo_stroke implicitly clears the path.
428         (WebCore::GraphicsContext::drawConvexPolygon): Ditto.
429         (WebCore::GraphicsContext::fillPath): Copy the path from m_pendingPath to the context
430         and clear m_pendingPath, instead of relying on the pre-existing context path. Do the
431         actual fill via the new helper.
432         (WebCore::GraphicsContext::strokePath): Ditto.
433         (WebCore::GraphicsContext::drawPath): Ditto.
434         (WebCore::GraphicsContext::fillRect): Use the new fillCurrentCairoPath helper.
435         (WebCore::GraphicsContext::drawFocusRing): Use the new appendWebCorePathToCairoContext helper instead
436         of addPath (which will blow away any path callers are building).
437         (WebCore::GraphicsContext::addInnerRoundedRectClip): Use the new appendWebCorePathToCairoContext helper instead
438         of addPath (which will blow away any path callers are building).
439         (WebCore::GraphicsContext::strokeRect): Use the new strokeCurrentCairoPath helper.
440         (WebCore::GraphicsContext::beginPath): Clear out m_pendingPath here instead of the main native context.
441         (WebCore::GraphicsContext::addPath): Add the path to m_pendingPath instead of the main native context.
442         Also ensure that the transformation matrix of the m_pendingPath is equal to that of the main
443         cairo context.
444         (WebCore::GraphicsContext::clipOut): Use the appendWebCorePathToCairoContext helper here.
445         (WebCore::GraphicsContext::fillRoundedRect): Ditto and remove an unnecessary beginPath call.
446         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: Add a new m_pendingPath member.
447
448 2010-07-29  Sheriff Bot  <webkit.review.bot@gmail.com>
449
450         Unreviewed, rolling out r64313.
451         http://trac.webkit.org/changeset/64313
452         https://bugs.webkit.org/show_bug.cgi?id=43233
453
454         Some Chromium bots are not happy with it for some unknown
455         reason. (Requested by dumi on #webkit).
456
457         * bindings/js/JSCustomVoidCallback.cpp:
458         (WebCore::JSCustomVoidCallback::~JSCustomVoidCallback):
459         * bindings/scripts/CodeGeneratorJS.pm:
460         * bindings/scripts/test/JS/JSTestCallback.cpp:
461         (WebCore::JSTestCallback::~JSTestCallback):
462         * platform/sql/SQLiteDatabase.cpp:
463         (WebCore::SQLiteDatabase::SQLiteDatabase):
464         (WebCore::SQLiteDatabase::close):
465         (WebCore::SQLiteDatabase::lock):
466         (WebCore::SQLiteDatabase::unlock):
467         * platform/sql/SQLiteDatabase.h:
468         * platform/sql/SQLiteStatement.cpp:
469         (WebCore::SQLiteStatement::prepare):
470         (WebCore::SQLiteStatement::step):
471         * storage/AbstractDatabase.cpp:
472         * storage/AbstractDatabase.h:
473         * storage/DatabaseTracker.cpp:
474         * storage/DatabaseTracker.h:
475         * storage/SQLStatement.cpp:
476         (WebCore::SQLStatement::execute):
477         * storage/SQLStatementSync.cpp:
478         (WebCore::SQLStatementSync::execute):
479         * storage/SQLTransaction.cpp:
480         (WebCore::SQLTransaction::checkAndHandleClosedDatabase):
481         (WebCore::SQLTransaction::performNextStep):
482         (WebCore::SQLTransaction::performPendingCallback):
483         (WebCore::SQLTransaction::deliverTransactionCallback):
484         (WebCore::SQLTransaction::postflightAndCommit):
485         (WebCore::SQLTransaction::deliverTransactionErrorCallback):
486         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
487         * storage/SQLTransaction.h:
488         * storage/chromium/DatabaseTrackerChromium.cpp:
489         * workers/WorkerThread.cpp:
490         (WebCore::WorkerThread::stop):
491
492 2010-07-29  Martin Robinson  <mrobinson@igalia.com>
493
494         Unreviewed, rolling out r64318.
495         http://trac.webkit.org/changeset/64318
496         https://bugs.webkit.org/show_bug.cgi?id=41732
497
498         This change broke many tests.
499
500         * platform/graphics/cairo/GraphicsContextCairo.cpp:
501         (WebCore::GraphicsContext::drawEllipse):
502         (WebCore::GraphicsContext::drawConvexPolygon):
503         (WebCore::GraphicsContext::fillPath):
504         (WebCore::GraphicsContext::strokePath):
505         (WebCore::GraphicsContext::drawPath):
506         (WebCore::GraphicsContext::drawFocusRing):
507         (WebCore::GraphicsContext::addInnerRoundedRectClip):
508         (WebCore::GraphicsContext::beginPath):
509         (WebCore::GraphicsContext::addPath):
510         (WebCore::GraphicsContext::clipOut):
511         (WebCore::GraphicsContext::fillRoundedRect):
512         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
513
514 2010-07-29  Martin Robinson  <mrobinson@igalia.com>
515
516         Reviewed by Dirk Schulze.
517
518         [Cairo] Bring behavior of paths on the Cairo GraphicsContext into line with the CoreGraphics port
519         https://bugs.webkit.org/show_bug.cgi?id=41732
520
521         Do not apply paths added to the Cairo GraphicsContext, until they are used.
522         This prevents drawing routines such as fillRect from interacting with any
523         path which callers are constructing on the GraphicsContext.
524
525          This behavior is necessary to close bug https://bugs.webkit.org/show_bug.cgi?id=41308
526          so tests for that issue will test this fix.
527
528         * platform/graphics/cairo/GraphicsContextCairo.cpp:
529         (WebCore::appendPathToCairoContext): Added. A helper method which adds a path
530         to a native Cairo context.
531         (WebCore::setPathOnCairoContext): Added. Like appendPathToCairoContext, but clears the
532         existing path first.
533         (WebCore::appendWebCorePathToCairoContext): Added. Like appendPathToCairoContext, but
534         operates on a WebCore path.
535         (WebCore::GraphicsContext::drawEllipse): Only clear the Cairo path if cairo_stroke
536         was not called, because cairo_stroke implicitly clears the path.
537         (WebCore::GraphicsContext::drawConvexPolygon): Ditto.
538         (WebCore::GraphicsContext::fillPath): Copy the path from m_pendingPath to the context
539         and clear m_pendingPath, instead of relying on the pre-existing context path.
540         (WebCore::GraphicsContext::strokePath): Ditto.
541         (WebCore::GraphicsContext::drawPath): Ditto.
542         (WebCore::GraphicsContext::drawFocusRing): Use the new appendWebCorePathToCairoContext helper instead
543         of addPath (which will blow away any path callers are building).
544         (WebCore::GraphicsContext::addInnerRoundedRectClip): Use the new appendWebCorePathToCairoContext helper instead
545         of addPath (which will blow away any path callers are building).
546         (WebCore::GraphicsContext::beginPath): Clear out m_pendingPath here instead of the main native context.
547         (WebCore::GraphicsContext::addPath): Add the path to m_pendingPath instead of the main native context.
548         Also ensure that the transformation matrix of the m_pendingPath is equal to that of the main
549         cairo context.
550         (WebCore::GraphicsContext::clipOut): Use the appendWebCorePathToCairoContext helper here.
551         (WebCore::GraphicsContext::fillRoundedRect): Ditto and remove an unnecessary beginPath call.
552         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: Add a new m_pendingPath member.
553
554 2010-07-29  Martin Robinson  <mrobinson@igalia.com>
555
556         Reviewed by Dirk Schulze.
557
558         [Cairo] Remove setStrokeStyle workaround for InlineTextBoxes
559         https://bugs.webkit.org/show_bug.cgi?id=43136
560
561         Remove workaround added in https://bugs.webkit.org/show_bug.cgi?id=15659
562         to fix stroke style for InlineTextBox underlines.
563
564         No new tests as this should not change functionality.
565
566         * platform/graphics/cairo/GraphicsContextCairo.cpp:
567         (WebCore::GraphicsContext::drawLineForText): Remove old workaround.
568
569 2010-07-28  Dumitru Daniliuc  <dumi@chromium.org>
570
571         Reviewed by David Levin.
572
573         Interrupt all DB operations when the worker is terminating.
574         https://bugs.webkit.org/show_bug.cgi?id=42843
575
576         Tests: fast/workers/storage/interrupt-database-sync.html
577                fast/workers/storage/interrupt-database.html
578
579         * bindings/js/JSCustomVoidCallback.cpp:
580         (WebCore::JSCustomVoidCallback::~JSCustomVoidCallback): If the
581         destructor is called on the context thread, delete m_data directly
582         instead of posting a task to do that. We need to do that to make
583         sure that all JS objects are destroyed before
584         WorkerThreadShutdownFinishTask (in WorkerThread.cpp) calls
585         WorkerContext::clearScript().
586
587         * bindings/scripts/CodeGeneratorJS.pm: Same change as above, for
588         all auto-generated callbacks.
589
590         * bindings/scripts/test/JS/JSTestCallback.cpp:
591         (WebCore::JSTestCallback::~JSTestCallback): Updated the
592         expectations for run-bindings-tests.
593
594         * platform/sql/SQLiteDatabase.cpp: Added the ability to interrupt
595         all DB operations in progress, unless the database was closed or
596         is being closed. Unlike sqlite3_interrupt(),
597         SQLiteDatabase::interrupt() is sticky: once it's called, trying to
598         run any statement on that database will fail with a
599         SQLITE_INTERRUPT error code.
600         (WebCore::SQLiteDatabase::SQLiteDatabase):
601         (WebCore::SQLiteDatabase::close):
602         (WebCore::SQLiteDatabase::interrupt):
603         (WebCore::SQLiteDatabase::isInterrupted):
604
605         * platform/sql/SQLiteDatabase.h: Added a mutex that can used by
606         SQLiteStatement to check if the database was interrupted.
607         (WebCore::SQLiteDatabase::databaseMutex):
608
609         * platform/sql/SQLiteStatement.cpp: Changed prepare() and step()
610         to check if the database was interrupted, before trying to prepare
611         or run the statement. The other methods don't need to hold on to
612         the DB lock while running, because they're fast, so we don't need
613         to interrupt them.
614         (WebCore::SQLiteStatement::prepare):
615         (WebCore::SQLiteStatement::step):
616
617         * storage/AbstractDatabase.cpp: Made SQLiteDatabase::interrupt()
618         and isInterrupted() visible to WebSQLDatabases classes.
619         (WebCore::AbstractDatabase::interrupt):
620         (WebCore::AbstractDatabase::isInterrupted):
621         * storage/AbstractDatabase.h:
622
623         * storage/DatabaseTracker.cpp: Added a method to interrupt all
624         databases in a given context.
625         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
626         * storage/DatabaseTracker.h:
627
628         * storage/SQLStatement.cpp: Changed the exception/error reported
629         when a statement is interrupted.
630         (WebCore::SQLStatement::execute):
631         * storage/SQLStatementSync.cpp:
632         (WebCore::SQLStatementSync::execute):
633
634         * storage/SQLTransaction.cpp: Changed the code to release the
635         callback objects as soon as they're not needed.
636         (WebCore::SQLTransaction::checkAndHandleClosedOrInterruptedDatabase):
637         Changed this method to not schedule the next transaction step when
638         the database is interrupted.
639         (WebCore::SQLTransaction::performNextStep):
640         (WebCore::SQLTransaction::performPendingCallback):
641         (WebCore::SQLTransaction::deliverTransactionCallback):
642         (WebCore::SQLTransaction::postflightAndCommit):
643         (WebCore::SQLTransaction::deliverTransactionErrorCallback):
644         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
645         * storage/SQLTransaction.h:
646
647         * storage/chromium/DatabaseTrackerChromium.cpp: Added a method to
648         interrupt all databases in a given context.
649         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
650
651         * workers/WorkerThread.cpp:
652         (WebCore::WorkerThread::stop): Added a call to
653         DatabaseTracker::interruptAllDatabasesForContext().
654
655 2010-07-29  Bernhard Bauer  <bauerb@chromium.org>
656
657         Reviewed by Darin Fisher.
658
659         Check if plugins are allowed before creating a Java applet.
660         https://bugs.webkit.org/show_bug.cgi?id=43196
661
662         * loader/SubframeLoader.cpp:
663         (WebCore::SubframeLoader::createJavaAppletWidget):
664
665 2010-07-29  James Robinson  <jamesr@chromium.org>
666
667         Reviewed by Simon Fraser.
668
669         Ask a canvas' rendering context if it is accelerated instead tying it directly to webgl
670         https://bugs.webkit.org/show_bug.cgi?id=43206
671
672         This unifies the logic for whether a canvas is accelerated or not into one place
673         and makes it easier to expand the logic in the future to, for example, cover some
674         2d canvases.
675
676         Just a refactoring, no change in behavior so no new tests.
677
678         * html/canvas/CanvasRenderingContext.h:
679         (WebCore::CanvasRenderingContext::isAccelerated):
680         * html/canvas/WebGLRenderingContext.h:
681         (WebCore::WebGLRenderingContext::isAccelerated):
682         * rendering/RenderHTMLCanvas.cpp:
683         (WebCore::RenderHTMLCanvas::requiresLayer):
684         * rendering/RenderLayerCompositor.cpp:
685         (WebCore::RenderLayerCompositor::requiresCompositingForCanvas):
686
687 2010-07-29  Anders Carlsson  <andersca@apple.com>
688
689         Reviewed by Sam Weinig.
690
691         Implement NPN_Status
692         https://bugs.webkit.org/show_bug.cgi?id=43205
693
694         * WebCore.exp.in:
695         Export Chrome::setStatusText.
696
697 2010-07-29  Victor Wang  <victorw@chromium.org>
698
699         Unreviewed, rolling out r64270.
700         http://trac.webkit.org/changeset/64270
701         https://bugs.webkit.org/show_bug.cgi?id=39589
702
703         The patch breaks chromium webkit unittest
704
705         * WebCore.exp.in:
706         * WebCore.xcodeproj/project.pbxproj:
707         * dom/DeviceOrientationClient.h:
708         (WebCore::DeviceOrientationClient::~DeviceOrientationClient):
709         * dom/DeviceOrientationController.cpp:
710         (WebCore::DeviceOrientationController::DeviceOrientationController):
711         * dom/DeviceOrientationEvent.cpp:
712         * platform/mock/DeviceOrientationClientMock.cpp: Removed.
713         * platform/mock/DeviceOrientationClientMock.h: Removed.
714
715 2010-07-29  Simon Fraser  <simon.fraser@apple.com>
716
717         Reviewed by Darin Adler.
718
719         Resizer control does not paint in otherwise empty compositing layer
720         https://bugs.webkit.org/show_bug.cgi?id=42306
721         
722         Ensure that we create backing store for an empty element with resize: both,
723         in order to render the resizer control.
724
725         Test: compositing/overflow/resize-painting.html
726
727         * rendering/RenderLayerBacking.h:
728         * rendering/RenderLayerBacking.cpp:
729         (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Check for hasOverflowControls()
730         earlier, before any child checks.
731         (WebCore::RenderLayerBacking::hasNonCompositingDescendants): Renamed from hasNonCompositingContent()
732         to clarify its purpose.
733
734 2010-07-29  Adam Roben  <aroben@apple.com>
735
736         Remove WKCACFLayer::Lanczos
737
738         This member is also unused.
739
740         Rubber-stamped in advance by John Sullivan.
741
742         * platform/graphics/win/WKCACFLayer.cpp:
743         (WebCore::toCACFFilterType):
744         (WebCore::fromCACFFilterType):
745         * platform/graphics/win/WKCACFLayer.h:
746         (WebCore::WKCACFLayer::):
747
748 2010-07-29  Adam Roben  <aroben@apple.com>
749
750         Remove some unused WKCACFLayer members
751
752         Fixes <http://webkit.org/b/43200> WKCACFLayer has some unused members
753
754         Reviewed by John Sullivan.
755
756         * platform/graphics/win/WKCACFLayer.h: Removed [set]ClearsContext,
757         [set]Filters, and [set]SortsSublayers.
758
759 2010-07-28  Justin Schuh  <jschuh@chromium.org>
760
761         Reviewed by Nate Chapin.
762
763         Clear PluginData's page pointer on Page destruction
764         https://bugs.webkit.org/show_bug.cgi?id=43147
765
766         Test: plugins/access-after-page-destroyed.html
767
768         * page/Page.cpp:
769         (WebCore::Page::~Page):
770
771 2010-07-29  Simon Fraser  <simon.fraser@apple.com>
772
773         Reviewed by Darin Adler.
774
775         SHOULD NEVER BE REACHED assertion when switching tabs with composited content
776         https://bugs.webkit.org/show_bug.cgi?id=43167
777
778         When the root layer becomes unattached (e.g. when switching tabs), don't return
779         'false' from paintingGoesToWindow() because that will cause a -setNeedsDispay, which
780         both allocates wasteful backing store, and causes an assertion when we try to
781         paint the layer.
782         
783         Test: manual-tests/compositing/assert-on-tab-switch.html: Added.
784         
785         * rendering/RenderLayerBacking.cpp:
786         (WebCore::RenderLayerBacking::paintingGoesToWindow):
787
788 2010-07-29  Simon Fraser  <simon.fraser@apple.com>
789
790         Reviewed by Pavel Feldman.
791
792         Crash when computing pseudo-style of a vanished scrollbar in inspector
793         https://bugs.webkit.org/show_bug.cgi?id=42561
794         
795         When a styled overflow:scroll scrollbar gets destroyed, we need to clear out the m_owner pointer,
796         otherwise the event handling code (which keeps the Scrollbar alive) later causes the scrollbar
797         to try to use m_owner to get pseudo style.
798
799         Test: scrollbars/overflow-custom-scrollbar-crash.html
800
801         * rendering/RenderLayer.cpp:
802         (WebCore::RenderLayer::destroyScrollbar): If this is a custom scrollbar, clear the owning renderer.
803         * rendering/RenderScrollbar.cpp:
804         (WebCore::RenderScrollbar::getScrollbarPseudoStyle): Bail if m_owner is 0.
805         * rendering/RenderScrollbar.h:
806         (WebCore::RenderScrollbar::clearOwningRenderer): New method.
807
808 2010-07-29  Nikolas Zimmermann  <nzimmermann@rim.com>
809
810         Not reviewed. Fix release builds, by removing unused variables, that only served for ASSERTs that are no longer needed.
811
812         * rendering/SVGRenderSupport.cpp:
813         (WebCore::SVGRenderSupport::prepareToRenderSVGContent):
814         (WebCore::SVGRenderSupport::pointInClippingArea):
815
816 2010-07-29  Nikolas Zimmermann  <nzimmermann@rim.com>
817
818         Not reviewed. Fix build warning about unreachable code, seen on the windows slave.
819
820         * rendering/RenderSVGContainer.cpp:
821         (WebCore::RenderSVGContainer::selfWillPaint):
822         * rendering/RenderSVGRoot.cpp:
823         (WebCore::RenderSVGRoot::selfWillPaint):
824
825 2010-07-29  Nikolas Zimmermann  <nzimmermann@rim.com>
826
827         Reviewed by Dirk Schulze.
828
829         WebKit shouldn't ignore resource cycles, but break them as Opera does
830         https://bugs.webkit.org/show_bug.cgi?id=43031
831
832         mask images are not updated when render objects' bounds change
833         https://bugs.webkit.org/show_bug.cgi?id=15124
834
835         SVG Gradients do not resize correctly
836         https://bugs.webkit.org/show_bug.cgi?id=41902
837
838         svg/dynamic-updates: SVGMarkerElement markerHeight/Width tests are broken
839         https://bugs.webkit.org/show_bug.cgi?id=42616
840
841         svg/dynamic-updates: SVGMaskElement tests are all broken
842         https://bugs.webkit.org/show_bug.cgi?id=42617
843
844         Don't ignore resources containing cyclic references, but break them, as discussed on SVG WG mailing lists - to be compatible with Opera which already does that.
845
846         We used to lookup RenderSVGResourceContainers objects, by extracting the URI reference from the SVGRenderStyle, then utilizing getElementById() to lookup the
847         node, and access its renderer. Opera ignores such references, if they point to resources that contain cyclic references. Ignoring them would mean we have
848         to mutate the render style to empty the resource strings. That obviously doesn't work, as it would break expectations (getComputedStyle, etc.).
849
850         Introduce a SVGResources class that stores pointers to all resources, that can be applied to a RenderObject (clipper/filter/markers/masker).
851         Add a SVGResourcesCache class, which is basically a HashMap<RenderObject*, SVGResources*>. Whenever a RenderObject receives style, we extract the URI references
852         from the SVGRenderStyle, look up the RenderSVGResourceContainer* objects, and store them in a SVGResources* class. Then we execute a cycle detection logic,
853         which detects cyclic references and breaks them. Breaking them means just nulling the pointer to the resource in the SVGResources object. Those SVGResources
854         objects are cached, and used throughout the render tree to access resources. This way it's guaranteed that all cyclic references are resolved until layout/paint
855         phase begins.
856
857         Add destroy/styleDidChange/updateFromElement methods to all SVG renderers, in order to keep track of resource/client changes in the SVGResourcesCache.
858         As side-effect the SVGResourcesCache now knows which RenderObject references which resource, and thus can handle client registration for a RenderSVGResourceContainer.
859         The RenderSVGResourceContainer now holds a HashSet of RenderObjects, that's always up2date, and not related to the fact wheter a resources has already been used
860         for painting. The old logic missed to register clients for a resource, when the resource was in an invalid state. Fixing that fixes the svg/dynamic-updates/SVGMaskElement* tests.
861
862         Rewrite all svg/custom/recursive-(filter|gradient|mask|pattern).svg tests to contain a reference image how it should be renderered. All 1:1 compatible with Opera now.
863
864         * rendering/RenderForeignObject.cpp:
865         (WebCore::RenderForeignObject::layout): Grab selfNeedsLayout() before calling RenderBlock::layout(), otherwhise it's always false.
866         * rendering/RenderPath.cpp: Don't look up resources manually, use SVGResourcesCache.
867         (WebCore::RenderPath::fillContains): Remove constness, to avoid the need to pass around const RenderObjects* to the SVGResourcesCache.
868         (WebCore::RenderPath::strokeContains): Ditto.
869         (WebCore::RenderPath::layout): s/RenderSVGResource::invalidateAllResourcesOfRenderer/SVGResourcesCache::clientLayoutChanged/.
870         (WebCore::RenderPath::calculateMarkerBoundsIfNeeded): Remove special client handling for markers, it's all unified now.
871         (WebCore::RenderPath::styleWillChange): Only call setNeedsBoundariesUpdate when handling StyleDifferenceRepaint/Layout.
872         * rendering/RenderPath.h:
873         * rendering/RenderSVGBlock.cpp:
874         (WebCore::RenderSVGBlock::destroy): Forward to SVGResourcesCache::clientDestroyed.
875         (WebCore::RenderSVGBlock::styleDidChange): Forward to SVGResourcesCache::clientStyleChanged.
876         (WebCore::RenderSVGBlock::updateFromElement): Forward to SVGResourcesCache::clientUpdatedFromElement.
877         * rendering/RenderSVGBlock.h:
878         * rendering/RenderSVGContainer.cpp:
879         (WebCore::RenderSVGContainer::layout): s/RenderSVGResource::invalidateAllResourcesOfRenderer/SVGResourcesCache::clientLayoutChanged/.
880         (WebCore::RenderSVGContainer::selfWillPaint): Don't look up resources manually, use SVGResourcesCache.
881         * rendering/RenderSVGContainer.h:
882         * rendering/RenderSVGGradientStop.cpp:
883         (WebCore::RenderSVGGradientStop::styleDidChange): Rewrite, as invalidateResourceClients() is gone.
884         * rendering/RenderSVGHiddenContainer.h: Make layout() protected, as RenderSVGResourceContainer overrides it.
885         * rendering/RenderSVGImage.cpp:
886         (WebCore::RenderSVGImage::layout): s/RenderSVGResource::invalidateAllResourcesOfRenderer/SVGResourcesCache::clientLayoutChanged/.
887         (WebCore::RenderSVGImage::destroy): Forward to SVGResourcesCache::clientDestroyed.
888         (WebCore::RenderSVGImage::styleDidChange): Forward to SVGResourcesCache::clientStyleChanged.
889         (WebCore::RenderSVGImage::updateFromElement): Forward to SVGResourcesCache::clientUpdatedFromElement.
890         (WebCore::RenderSVGImage::imageChanged): Don't look up resources manually, use SVGResourcesCache.
891         * rendering/RenderSVGImage.h:
892         * rendering/RenderSVGInline.cpp:
893         (WebCore::RenderSVGInline::destroy): Forward to SVGResourcesCache::clientDestroyed.
894         (WebCore::RenderSVGInline::styleDidChange): Forward to SVGResourcesCache::clientStyleChanged.
895         (WebCore::RenderSVGInline::updateFromElement): Forward to SVGResourcesCache::clientUpdatedFromElement.
896         * rendering/RenderSVGInline.h:
897         * rendering/RenderSVGModelObject.cpp:
898         (WebCore::RenderSVGModelObject::destroy): Forward to SVGResourcesCache::clientDestroyed.
899         (WebCore::RenderSVGModelObject::styleDidChange): Forward to SVGResourcesCache::clientStyleChanged.
900         (WebCore::RenderSVGModelObject::updateFromElement): Forward to SVGResourcesCache::clientUpdatedFromElement.
901         * rendering/RenderSVGModelObject.h:
902         * rendering/RenderSVGResource.cpp:
903         (WebCore::RenderSVGResource::fillPaintingResource): Remove const from RenderObject parameter.
904         (WebCore::RenderSVGResource::strokePaintingResource): Ditto.
905         (WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation): Early exit if we found the first parent resource.
906         * rendering/RenderSVGResource.h:
907         * rendering/RenderSVGResourceClipper.cpp:
908         (WebCore::RenderSVGResourceClipper::~RenderSVGResourceClipper): Early exit if m_clipper is empty.
909         (WebCore::RenderSVGResourceClipper::invalidateClients): Use new helper functions to invalidate clients, shared between all resources in RenderSVGResourceContainer.
910         (WebCore::RenderSVGResourceClipper::invalidateClient): Ditto.
911         (WebCore::RenderSVGResourceClipper::applyResource): Remove containsCyclicReference() check, SVGResourcesCycleSolver breaks cyclic references, resources do not need to take care anymore.
912         (WebCore::RenderSVGResourceClipper::createClipData): Don't look up resources manually, use SVGResourcesCache.
913         (WebCore::RenderSVGResourceClipper::hitTestClipContent): Remove containsCyclicReference() check, SVGResourcesCycleSolver breaks cyclic references, resources do not need to take care anymore.
914         * rendering/RenderSVGResourceClipper.h:
915         * rendering/RenderSVGResourceContainer.cpp:
916         (WebCore::svgExtensionsFromNode):
917         (WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer): Stop registering resource from the constructor, delegate to styleDidChange.
918         (WebCore::RenderSVGResourceContainer::~RenderSVGResourceContainer): Only deregister resource if it was ever registered.
919         (WebCore::RenderSVGResourceContainer::layout): invalidateClients() here, to avoid the need for invalidateResourceClients() in the SVG DOM. Just call setNeedsLayout() from the SVG DOM.
920         (WebCore::RenderSVGResourceContainer::destroy): Forward to SVGResourcesCache::resourceDestroyed.
921         (WebCore::RenderSVGResourceContainer::styleDidChange): Register resource not in the constructor but when it first receives style.
922         (WebCore::RenderSVGResourceContainer::idChanged): Don't duplicate code, use existing methods from SVGResourcesCache.
923         (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation): Add new helper function, to share code between all resources.
924         (WebCore::RenderSVGResourceContainer::markClientForInvalidation): Ditto.
925         (WebCore::RenderSVGResourceContainer::addClient): SVGResourcesCache now manages the list of clients. It calls addClient() for each RenderObject that uses this resource.
926         (WebCore::RenderSVGResourceContainer::removeClient): SVGResourcesCache now manages the list of clients.
927         (WebCore::RenderSVGResourceContainer::registerResource): New helper function sharing code between idChanged / styleDidChange.
928         (WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke): Add FIXME that the function is misplaced.
929         * rendering/RenderSVGResourceContainer.h: Move most functions to the new RenderSVGResourceContainer.cpp file.
930         * rendering/RenderSVGResourceFilter.cpp:
931         (WebCore::RenderSVGResourceFilter::~RenderSVGResourceFilter): Early exit if m_filter is empty.
932         (WebCore::RenderSVGResourceFilter::invalidateClients): Use new helper functions to invalidate clients, shared between all resources in RenderSVGResourceContainer.
933         (WebCore::RenderSVGResourceFilter::invalidateClient): Ditto.
934         * rendering/RenderSVGResourceGradient.cpp:
935         (WebCore::RenderSVGResourceGradient::~RenderSVGResourceGradient): Early exit if m_gradient is empty.
936         (WebCore::RenderSVGResourceGradient::invalidateClients): Use new helper functions to invalidate clients, shared between all resources in RenderSVGResourceContainer.
937         (WebCore::RenderSVGResourceGradient::invalidateClient): Ditto.
938         * rendering/RenderSVGResourceMarker.cpp:
939         (WebCore::RenderSVGResourceMarker::~RenderSVGResourceMarker): Now a no-op, markers are unified within the new client handling concept, no more special code needed.
940         (WebCore::RenderSVGResourceMarker::layout): As RenderSVGResourceMarker skips the RenderSVGResourceContainer::layout() method, we also need to call invalidateClients() here.
941         (WebCore::RenderSVGResourceMarker::invalidateClients): Use new helper functions to invalidate clients, shared between all resources in RenderSVGResourceContainer.
942         (WebCore::RenderSVGResourceMarker::invalidateClient): Ditto.
943         (WebCore::RenderSVGResourceMarker::draw): Remove marker specific logic to catch circular references.
944         * rendering/RenderSVGResourceMarker.h:
945         * rendering/RenderSVGResourceMasker.cpp:
946         (WebCore::RenderSVGResourceMasker::~RenderSVGResourceMasker): Early exit if m_masker is empty.
947         (WebCore::RenderSVGResourceMasker::invalidateClients): Use new helper functions to invalidate clients, shared between all resources in RenderSVGResourceContainer.
948         (WebCore::RenderSVGResourceMasker::invalidateClient): Ditto.
949         (WebCore::RenderSVGResourceMasker::applyResource): Remove containsCyclicReference() check, SVGResourcesCycleSolver breaks cyclic references, resources do not need to take care anymore.
950         * rendering/RenderSVGResourceMasker.h:
951         * rendering/RenderSVGResourcePattern.cpp:
952         (WebCore::RenderSVGResourcePattern::~RenderSVGResourcePattern): Early exit if m_pattern is empty.
953         (WebCore::RenderSVGResourcePattern::invalidateClients): Use new helper functions to invalidate clients, shared between all resources in RenderSVGResourceContainer.
954         (WebCore::RenderSVGResourcePattern::invalidateClient): Ditto.
955         (WebCore::RenderSVGResourcePattern::createTileImage): Remove containsCyclicReference() check, SVGResourcesCycleSolver breaks cyclic references, resources do not need to take care anymore.
956         * rendering/RenderSVGResourcePattern.h:
957         * rendering/RenderSVGRoot.cpp:
958         (WebCore::RenderSVGRoot::selfWillPaint): Don't look up resources manually, use SVGResourcesCache.
959         (WebCore::RenderSVGRoot::destroy): Forward to SVGResourcesCache::clientDestroyed.
960         (WebCore::RenderSVGRoot::styleDidChange): Forward to SVGResourcesCache::clientStyleChanged.
961         (WebCore::RenderSVGRoot::updateFromElement): Forward to SVGResourcesCache::clientUpdatedFromElement.
962         * rendering/RenderSVGRoot.h:
963         * rendering/RenderSVGText.cpp:
964         (WebCore::RenderSVGText::layout): s/RenderSVGResource::invalidateAllResourcesOfRenderer/SVGResourcesCache::clientLayoutChanged/.
965         * rendering/RenderSVGText.h:
966         * rendering/SVGInlineTextBox.cpp:
967         (WebCore::SVGInlineTextBox::acquirePaintingResource): Add RenderObject* parameter, don't assume the style comes from the InlineTextBox parent renderer.
968         (WebCore::SVGInlineTextBox::prepareGraphicsContextForTextPainting): Pass the parent()->renderer() to acquirePaintingResource.
969         (WebCore::SVGInlineTextBox::paintDecoration): Pass the decoration renderer to acquirePaintingResource.
970         (WebCore::SVGInlineTextBox::paintDecorationWithStyle): Ditto.
971         (WebCore::SVGInlineTextBox::paintText): When a selection pseudo style is used to paint the selection, swap styles in the SVGResourcesCache, to take the right resources when painting.
972         * rendering/SVGInlineTextBox.h:
973         * rendering/SVGRenderSupport.cpp:
974         (WebCore::SVGRenderSupport::prepareToRenderSVGContent): Don't look up resources manually, use SVGResourcesCache.
975         (WebCore::SVGRenderSupport::finishRenderSVGContent): Ditto.
976         (WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Ditto.
977         (WebCore::SVGRenderSupport::pointInClippingArea): Remove const from RenderObject parameter. 
978         * rendering/SVGRenderSupport.h:
979         * rendering/SVGRenderTreeAsText.cpp:
980         (WebCore::writeStyle): Add two const_cast now that fill/strokePaintingResource take RenderObject* parameters. This was the less intrusive approach, otherwhise more const_casts would be needed.
981         (WebCore::writeResources): Add FIXME that we should dump the resources present in the SVGResourcesCache instead of manually looking them up from the SVGRenderStyle, to avoid dumping cycles.
982         * rendering/SVGResourcesCache.cpp:
983         (WebCore::SVGResourcesCache::clientStyleChanged): Use markForLayoutAndParentResourceInvalidation() instead of duplicating code.
984         * rendering/SVGResourcesCycleSolver.cpp:
985         (WebCore::setFollowLinkForChainableResource): Implemented stub method.
986         * rendering/style/SVGRenderStyle.cpp:
987         (WebCore::SVGRenderStyle::diff): Return StyleDifferenceLayout, not Repaint for stroke paint changes, otherwhise the cached boundaries are not correctly updated.
988         * svg/SVGClipPathElement.cpp:
989         (WebCore::SVGClipPathElement::svgAttributeChanged): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
990         (WebCore::SVGClipPathElement::childrenChanged): Ditto.
991         * svg/SVGClipPathElement.h:
992         (WebCore::SVGClipPathElement::needsPendingResourceHandling): Return false, buildPendingResource() logic not needed anymore for resources, handled by RenderSVGResourceContainer.
993         * svg/SVGElement.cpp:
994         (WebCore::SVGElement::insertedIntoDocument): Only execute buildPendingResource() logic, if needsPendingResourceHandling() returns true. Cleaned up code a bit, to deploy early returns.
995         * svg/SVGElement.h:
996         (WebCore::SVGElement::needsPendingResourceHandling): Return true (default). Only needed by SVGTextPathElement/SVGUseElement, and should be removed in future.
997         * svg/SVGFilterElement.cpp:
998         (WebCore::SVGFilterElement::SVGFilterElement): Initialize m_followLink=true.
999         (WebCore::SVGFilterElement::setFilterRes): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
1000         (WebCore::SVGFilterElement::svgAttributeChanged): Ditto.
1001         (WebCore::SVGFilterElement::childrenChanged): Ditto.
1002         * svg/SVGFilterElement.h:
1003         (WebCore::SVGFilterElement::needsPendingResourceHandling): Return false, buildPendingResource() logic not needed anymore for resources, handled by RenderSVGResourceContainer.
1004         (WebCore::SVGFilterElement::setFollowLink): Used by SVGResourcesCycleSolver, to stop following xlink:href links, if that leads to cyclic references.
1005         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
1006         (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged): Don't use invalidateResourceClients(), it's a no-op as effects don't have a renderer -> use invalidateFilter().
1007         * svg/SVGFilterPrimitiveStandardAttributes.h:
1008         (WebCore::SVGFilterPrimitiveStandardAttributes::invalidateFilter): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
1009         * svg/SVGGradientElement.cpp:
1010         (WebCore::SVGGradientElement::SVGGradientElement): Initialize m_followLink=true.
1011         (WebCore::SVGGradientElement::svgAttributeChanged): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
1012         (WebCore::SVGGradientElement::childrenChanged): Ditto.
1013         * svg/SVGGradientElement.h:
1014         (WebCore::SVGGradientElement::needsPendingResourceHandling): Return false, buildPendingResource() logic not needed anymore for resources, handled by RenderSVGResourceContainer.
1015         (WebCore::SVGGradientElement::setFollowLink): Used by SVGResourcesCycleSolver, to stop following xlink:href links, if that leads to cyclic references.
1016         * svg/SVGLinearGradientElement.cpp:
1017         (WebCore::SVGLinearGradientElement::svgAttributeChanged): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
1018         (WebCore::SVGLinearGradientElement::collectGradientProperties): Only follow xlink:href links if m_followLinks == true.
1019         * svg/SVGMarkerElement.cpp:
1020         (WebCore::SVGMarkerElement::svgAttributeChanged): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
1021         (WebCore::SVGMarkerElement::childrenChanged): Ditto.
1022         (WebCore::SVGMarkerElement::setOrientToAuto): Ditto.
1023         (WebCore::SVGMarkerElement::setOrientToAngle): Ditto.
1024         * svg/SVGMarkerElement.h:
1025         (WebCore::SVGMarkerElement::needsPendingResourceHandling): Return false, buildPendingResource() logic not needed anymore for resources, handled by RenderSVGResourceContainer.
1026         * svg/SVGMaskElement.cpp:
1027         (WebCore::SVGMaskElement::svgAttributeChanged): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
1028         (WebCore::SVGMaskElement::childrenChanged): Ditto.
1029         * svg/SVGMaskElement.h:
1030         (WebCore::SVGMaskElement::needsPendingResourceHandling): Return false, buildPendingResource() logic not needed anymore for resources, handled by RenderSVGResourceContainer.
1031         * svg/SVGPatternElement.cpp:
1032         (WebCore::SVGPatternElement::SVGPatternElement): Initialize m_followLink=true.
1033         (WebCore::SVGPatternElement::svgAttributeChanged): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
1034         (WebCore::SVGPatternElement::childrenChanged): Ditto.
1035         (WebCore::SVGPatternElement::collectPatternProperties): Only follow xlink:href links if m_followLinks == true.
1036         * svg/SVGPatternElement.h:
1037         (WebCore::SVGPatternElement::needsPendingResourceHandling): Return false, buildPendingResource() logic not needed anymore for resources, handled by RenderSVGResourceContainer.
1038         (WebCore::SVGPatternElement::setFollowLink): Used by SVGResourcesCycleSolver, to stop following xlink:href links, if that leads to cyclic references.
1039         * svg/SVGRadialGradientElement.cpp:
1040         (WebCore::SVGRadialGradientElement::svgAttributeChanged): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
1041         (WebCore::SVGRadialGradientElement::collectGradientProperties): Only follow xlink:href links if m_followLinks == true.
1042         * svg/SVGStyledElement.cpp:
1043         (WebCore::SVGStyledElement::attach): Call updateFromElement upon attach(), needed by all resource renderers. Defaults to a no-op in RenderObject.h
1044         * svg/SVGStyledElement.h: Remove invalidateResourceClients(), it's not needed anymore.
1045
1046 2010-07-29  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1047
1048         Reviewed by Kenneth Rohde Christiansen.
1049
1050         [EFL] Support to enable WML in WebKit EFL
1051         https://bugs.webkit.org/show_bug.cgi?id=43178
1052
1053         WebKit EFL cannot enable WML. WML files are added to CMakeLists.txt
1054         to enable WML in WebKit EFL.
1055
1056         * CMakeLists.txt: Support to enable WML.
1057
1058 2010-07-21 Grace Kloba  <klobag@gmail.com> , Antonio Gomes  <tonikitoo@webkit.org>
1059
1060         Reviewed by David Hyatt.
1061
1062         Enhance the hit testing to take a rectangle instead of a point
1063         https://bugs.webkit.org/show_bug.cgi?id=40197
1064
1065         The primary goal of this change is to provide mechanisms for more precise tap
1066         actions by the users on mobile devices.
1067
1068         Patch extends the hit testing system to work considering a rectangular area
1069         as input instead of a point, when applicable. For that, the HitTestResult class
1070         was modified to take a padding (IntSize). The padding specifies a fuzzy range for
1071         accepting input events in pixels coordinates for both vertical and horizontal
1072         orientations. In other words, it tells how much to expand the search rect
1073         around a supposed touch point.
1074
1075         If it is non-positive padding (e.g. (-1, -1), (5, -1), (0, 0)), hit testing will behavior
1076         as the current point based hit testing: methods are no-op'ed to not regress it performance-wise
1077         since it is the common behavior. When positive padding is provided, the HitTestResult class will
1078         keep record of all nodes that intersect the built up test area. The logic will continue searching
1079         when it finds a candidate until the hit test area is fully enclosed by the boundaries of a candidate.
1080         The result will be a list of nodes in the z-order they are hit-tested. Caller will decide how
1081         to process them.
1082
1083         In order to expose the functionality, the patch:
1084
1085         - Adds a nodesFromRect method to the Document class, exposing the funcionality
1086         to the DOM. Method returns a NodeList with all nodes that intersect the given
1087         hit-tested area.
1088         - Extends hitTestResultAtPoint method of the EventHandler with an extra 'padding'
1089         parameter, defaulting to IntSize(-1, -1). The rect-based hit test is performed when a
1090         non-negative padding is passed in.
1091
1092         Test: fast/dom/nodesFromRect-basic.html
1093
1094         * WebCore.base.exp:
1095         * dom/Document.cpp:
1096         (WebCore::Document::nodesFromRect): This method exposes the rect based funcionality to
1097         the DOM. It works similarly to elementFromPoint, however receiving a rectangular area
1098         as input instead of a point, and returning a z-index ordered list of nodes (not elements)
1099         whose area intersect the hit test rect.
1100         * dom/Document.h: Ditto.
1101         * dom/Document.idl: Ditto.
1102         * page/EventHandler.cpp:
1103         (WebCore::EventHandler::hitTestResultAtPoint): The funcionality is also exposed through this
1104         method. Patch adds a additional IntSize parameter to work as the padding area, building up
1105         the hit test rect.
1106         * page/EventHandler.h: Ditto.
1107         * rendering/HitTestResult.cpp:
1108         (WebCore::HitTestResult::HitTestResult): Rect based hit test constructor. Receives a
1109         padding IntSize as parameter. It can be (0,0).
1110         (WebCore::HitTestResult::operator=): Modified to assign the m_rectBasedTestResult as well.
1111         (WebCore::HitTestResult::append): Merge to HitTestResult objects in a way that the
1112         list node's of both objects get amended.
1113         (WebCore::HitTestResult::addNodeToRectBasedTestResult): Adds a given Node to the list of
1114         hit nodes.
1115         * rendering/HitTestResult.h:
1116         (WebCore::HitTestResult::padding): Returns the padding as an IntSize.
1117         (WebCore::HitTestResult::isRectBasedTest): Returns if the HitTestResult is rect based or not.
1118         (WebCore::HitTestResult::.rectBasedTestResult): Returns the list nodes hit.
1119         (WebCore::HitTestResult::rectFromPoint): Returns the hit test rect given the hit test point
1120         and padding.
1121         * rendering/RenderLayer.cpp:
1122         (WebCore::RenderLayer::hitTestLayer):
1123         (WebCore::RenderLayer::hitTestList):
1124         (WebCore::RenderLayer::hitTestChildLayerColumns):
1125         * rendering/EllipsisBox.cpp:
1126         (WebCore::EllipsisBox::nodeAtPoint): Method is modified to support rect based hit test extension.
1127         Now it not just checks if the boundary of the node being hit-tested contains a hit test point, but
1128         instead it checks if the boundary of the node intersects a hit test rect. It is implemented so
1129         that the common case (point based hit test) works as previously.
1130         * rendering/InlineFlowBox.cpp:
1131         (WebCore::InlineFlowBox::nodeAtPoint): Ditto.
1132         * rendering/InlineTextBox.cpp:
1133         (WebCore::InlineTextBox::nodeAtPoint): Ditto.
1134         * rendering/RenderBlock.cpp:
1135         (WebCore::RenderBlock::nodeAtPoint): Ditto.
1136         (WebCore::RenderBlock::hitTestColumns): Ditto.
1137         * rendering/RenderBox.cpp:
1138         (WebCore::RenderBox::nodeAtPoint): Ditto.
1139         * rendering/RenderImage.cpp:
1140         (WebCore::RenderImage::nodeAtPoint): Ditto.
1141         * rendering/RenderLineBoxList.cpp:
1142         (WebCore::RenderLineBoxList::hitTest):
1143         * rendering/RenderSVGRoot.cpp:
1144         (WebCore::RenderSVGRoot::nodeAtPoint): Ditto.
1145         * rendering/RenderTable.cpp:
1146         (WebCore::RenderTable::nodeAtPoint): Ditto.
1147         * rendering/RenderTableSection.cpp:
1148         (WebCore::RenderTableSection::nodeAtPoint): Ditto.
1149         * rendering/RenderWidget.cpp:
1150         (WebCore::RenderWidget::nodeAtPoint): Ditto.
1151
1152 2010-07-29  Steve Block  <steveblock@google.com>
1153
1154         Reviewed by Jeremy Orlow.
1155
1156         Add LayoutTestController methods to test DeviceOrientation
1157         https://bugs.webkit.org/show_bug.cgi?id=39589
1158
1159         This patch does not hook up the new LayoutTestController method to WebKit
1160         for any platform. This will be done in later patches.
1161         https://bugs.webkit.org/show_bug.cgi?id=43181 tracks this for Mac.
1162
1163         Test: fast/dom/DeviceOrientation/basic-operation.html
1164
1165         * WebCore/WebCore.exp.in:
1166         * WebCore.xcodeproj/project.pbxproj:
1167         * dom/DeviceOrientationClient.h:
1168         (WebCore::DeviceOrientationClient::~DeviceOrientationClient):
1169         * dom/DeviceOrientationController.cpp:
1170         (WebCore::DeviceOrientationController::DeviceOrientationController):
1171         * dom/DeviceOrientationEvent.cpp:
1172         * platform/mock/DeviceOrientationClientMock.cpp: Added.
1173         (WebCore::DeviceOrientationClientMock::DeviceOrientationClientMock):
1174         (WebCore::DeviceOrientationClientMock::setController):
1175         (WebCore::DeviceOrientationClientMock::startUpdating):
1176         (WebCore::DeviceOrientationClientMock::stopUpdating):
1177         (WebCore::DeviceOrientationClientMock::setOrientation):
1178         (WebCore::DeviceOrientationClientMock::timerFired):
1179         * platform/mock/DeviceOrientationClientMock.h: Added.
1180         (WebCore::DeviceOrientationClientMock::lastOrientation):
1181
1182 2010-07-29  Satish Sampath  <satish@chromium.org>
1183
1184         Reviewed by Steve Block.
1185
1186         Runtime feature switch for speech input.
1187         https://bugs.webkit.org/show_bug.cgi?id=43146
1188
1189         Add a runtime feature switch that decides whether speech input attributes are available or not.
1190         Defaults to true.
1191
1192         * bindings/generic/RuntimeEnabledFeatures.cpp:
1193         * bindings/generic/RuntimeEnabledFeatures.h:
1194         (WebCore::RuntimeEnabledFeatures::setSpeechInputEnabled):
1195         (WebCore::RuntimeEnabledFeatures::speechInputEnabled):
1196         (WebCore::RuntimeEnabledFeatures::speechEnabled):
1197         * html/HTMLInputElement.idl:
1198
1199 2010-07-27  Alexander Pavlov  <apavlov@chromium.org>
1200
1201         Reviewed by Pavel Feldman.
1202
1203         Inspector should display CDATA section data
1204         https://bugs.webkit.org/show_bug.cgi?id=16259
1205
1206         * inspector/InspectorDOMAgent.cpp:
1207         (WebCore::InspectorDOMAgent::buildObjectForNode):
1208         * inspector/front-end/ElementsTreeOutline.js:
1209         ():
1210
1211 2010-07-28  Kavita Kanetkar  <kkanetkar@chromium.org>
1212
1213         Reviewed by Pavel Feldman.
1214
1215         Web Inspector: Enable UI for chromium's appcache inspection.
1216         https://bugs.webkit.org/show_bug.cgi?id=43098
1217
1218         * inspector/front-end/Settings.js: Removed appCacheEnabled.
1219         * inspector/front-end/StoragePanel.js: Removed appCacheEnabled condition.
1220         (WebInspector.StoragePanel):
1221         (WebInspector.StoragePanel.prototype.reset):
1222         (WebInspector.StoragePanel.prototype.addApplicationCache):
1223
1224 2010-07-28  Bryan Gislason  <bgislason@rim.com>
1225
1226         Reviewed by Nate Chapin.
1227
1228         Minor compile errors in loadMediaPlayerProxyPlugin
1229         https://bugs.webkit.org/show_bug.cgi?id=43141
1230
1231         * WebCore/loader/SubframeLoader.cpp:
1232
1233 2010-07-28  Dominic Mazzoni  <dmazzoni@google.com>
1234
1235         Reviewed by Dimitri Glazkov.
1236
1237         Add a missing dependency.
1238         https://bugs.webkit.org/show_bug.cgi?id=43044
1239
1240         * css/CSSPrimitiveValueMappings.h:
1241
1242 2010-07-28  Alex Nicolaou  <anicolao@chromium.org>
1243
1244         Reviewed by Ojan Vafai.
1245
1246         Set incorrect but close expectations for mask-colorspace.svg on mac
1247         https://bugs.webkit.org/show_bug.cgi?id=43102
1248
1249         Blocks:
1250           [chromium] r63450 caused some svg mask tests to fail pixel tests
1251           https://bugs.webkit.org/show_bug.cgi?id=42403
1252
1253         ImageBufferCG.cpp uses CoreGraphics to do the transform of SVG masks
1254         into LinearRGB, but only for MAC which means not for CHROMIUM, so I
1255         have changed the #if to account for both platforms. I am assuming this
1256         isn't in for windows because it's missing in CG itself, but I didn't
1257         verify that.
1258
1259         * platform/graphics/cg/ImageBufferCG.cpp:
1260         (WebCore::ImageBuffer::ImageBuffer):
1261
1262 2010-07-28  Kent Tamura  <tkent@chromium.org>
1263
1264         Reviewed by Darin Fisher.
1265
1266         [Chromium] Improve read-only arrow button appearance
1267         https://bugs.webkit.org/show_bug.cgi?id=43108
1268
1269         No new tests. This is a fix for fast/forms/
1270         input-appearance-spinbutton-disabled-readonly.html
1271
1272         * platform/chromium/PlatformThemeChromiumGtk.cpp:
1273         (WebCore::PlatformThemeChromiumGtk::paintArrowButton):
1274         If the button has ReadOnlyState, paint the button as same as it is disabled.
1275
1276 2010-07-28  Tony Chang  <tony@chromium.org>
1277
1278         Reviewed by Ojan Vafai.
1279
1280         implement getData('text/html') for webkit win
1281         https://bugs.webkit.org/show_bug.cgi?id=37981
1282
1283         * platform/win/ClipboardUtilitiesWin.cpp:
1284         (WebCore::extractMarkupFromCFHTML):
1285         (WebCore::getCFHTML):
1286         (WebCore::fragmentFromCFHTML):
1287         (WebCore::fragmentFromHTML):
1288         * platform/win/ClipboardUtilitiesWin.h:
1289         * platform/win/ClipboardWin.cpp:
1290         (WebCore::):
1291         (WebCore::clipboardTypeFromMIMEType):
1292         (WebCore::ClipboardWin::getData):
1293
1294 2010-07-28  Adam Barth  <abarth@webkit.org>
1295
1296         Reviewed by Eric Seidel.
1297
1298         Update numbered header element closing to match recent spec change
1299         https://bugs.webkit.org/show_bug.cgi?id=43072
1300
1301         Pretty straightforward transcription of the spec change.
1302
1303         * html/HTMLElementStack.cpp:
1304         (WebCore::HTMLNames::isNumberedHeaderElement):
1305         (WebCore::HTMLElementStack::popUntilNumberedHeaderElementPopped):
1306         (WebCore::HTMLElementStack::hasOnlyHTMLElementsInScope):
1307         (WebCore::HTMLElementStack::hasNumberedHeaderElementInScope):
1308         * html/HTMLElementStack.h:
1309         * html/HTMLTreeBuilder.cpp:
1310         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
1311         (WebCore::HTMLTreeBuilder::processEndTagForInBody):
1312
1313 2010-07-28  Anders Carlsson  <andersca@apple.com>
1314
1315         Reviewed by Sam Weinig.
1316
1317         Add support for calling NPObject methods
1318         https://bugs.webkit.org/show_bug.cgi?id=43145
1319
1320         * WebCore.exp.in:
1321         Export JSHTMLElement::s_info and pluginScriptObject.
1322
1323         * WebCore.xcodeproj/project.pbxproj:
1324         Make JSHTMLElement.h and JSPluginElementFunctions.h private headers.
1325
1326         * bindings/js/JSPluginElementFunctions.cpp:
1327         (WebCore::pluginScriptObject):
1328         * bindings/js/JSPluginElementFunctions.h:
1329         Make pluginScriptObject a public function.
1330
1331 2010-07-28  James Robinson  <jamesr@chromium.org>
1332
1333         Reviewed by Darin Fisher.
1334
1335         [chromium] Add a bool to Settings to control accelerated 2d canvas
1336         https://bugs.webkit.org/show_bug.cgi?id=43094
1337
1338         Currently this doesn't control anything, but it will soon.
1339
1340         * page/Settings.cpp:
1341         (WebCore::Settings::Settings):
1342         (WebCore::Settings::setAccelerated2dCanvasEnabled):
1343         * page/Settings.h:
1344         (WebCore::Settings::accelerated2dCanvasEnabled):
1345
1346 2010-07-28  Robin Dunn  <robin@alldunn.com>
1347
1348         Reviewed by Kevin Ollivier.
1349
1350         Add DOM bindings support for wx port.
1351
1352         * DerivedSources.make:
1353         * bindings/scripts/CodeGeneratorCPP.pm:
1354         * platform/graphics/wx/FontPlatformDataWx.cpp:
1355         (WebCore::FontPlatformData::FontPlatformData):
1356         * platform/wx/MouseEventWx.cpp:
1357         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
1358         * wscript:
1359
1360 2010-07-28  Stephen White  <senorblanco@chromium.org>
1361
1362         Reviewed by Darin Fisher.
1363
1364         Hook the GLES2 rendering path up to GraphicsContextSkia.
1365         https://bugs.webkit.org/show_bug.cgi?id=43119
1366         
1367         This connects the state-setting and drawing calls implemented in
1368         so far in GLES2Canvas, and calls PlatformContextSkia's
1369         prepareForSoftwareDraw() for all the non-accelerated paths.
1370
1371         * platform/graphics/skia/GraphicsContextSkia.cpp:
1372         (WebCore::GraphicsContext::addInnerRoundedRectClip):
1373         (WebCore::GraphicsContext::addPath):
1374         (WebCore::GraphicsContext::beginPath):
1375         (WebCore::GraphicsContext::clip):
1376         (WebCore::GraphicsContext::drawConvexPolygon):
1377         (WebCore::GraphicsContext::drawEllipse):
1378         (WebCore::GraphicsContext::drawFocusRing):
1379         (WebCore::GraphicsContext::drawLine):
1380         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
1381         (WebCore::GraphicsContext::drawLineForText):
1382         (WebCore::GraphicsContext::drawRect):
1383         (WebCore::GraphicsContext::fillPath):
1384         (WebCore::GraphicsContext::fillRoundedRect):
1385         (WebCore::GraphicsContext::strokeArc):
1386         (WebCore::GraphicsContext::strokePath):
1387         (WebCore::GraphicsContext::strokeRect):
1388         These calls are software-only; call preSoftwareDraw() for these.
1389         (WebCore::GraphicsContext::savePlatformState):
1390         (WebCore::GraphicsContext::restorePlatformState):
1391         (WebCore::GraphicsContext::setAlpha):
1392         (WebCore::GraphicsContext::setCompositeOperation):
1393         (WebCore::GraphicsContext::setPlatformFillColor):
1394         (WebCore::GraphicsContext::scale):
1395         (WebCore::GraphicsContext::rotate):
1396         (WebCore::GraphicsContext::translate):
1397         (WebCore::GraphicsContext::concatCTM):
1398         These ones set state on both Skia and GLES2Canvas.
1399         (WebCore::GraphicsContext::clearRect):
1400         (WebCore::GraphicsContext::fillRect):
1401         These ones have a GLES2 implementation; call through to it if PlatformContextSkia's useGPU() flag is set and the state permits.
1402         * platform/graphics/skia/PlatformContextSkia.cpp:
1403         (PlatformContextSkia::prepareForSoftwareDraw):
1404         (PlatformContextSkia::prepareForHardwareDraw):
1405         Rename preXXXDraw() -> prepareForXXXDraw().
1406         * platform/graphics/skia/PlatformContextSkia.h:
1407         (PlatformContextSkia::prepareForSoftwareDraw):
1408         (PlatformContextSkia::prepareForHardwareDraw):
1409         Rename preXXXDraw() -> prepareForXXXDraw().
1410
1411 2010-07-28  fsamuel@chromium.org  <fsamuel@chromium.org>
1412
1413         Reviewed by David Hyatt.
1414
1415         REGRESSION (r63994): Bank of America's home page is horribly mis-rendered
1416         https://bugs.webkit.org/show_bug.cgi?id=42993
1417
1418         Fixed bug introduced by patch for bug 40775.
1419
1420         The new table rendering code did not take into account table layouts starting
1421         during a partial construction of the table render tree. As such,
1422         multiple layouts on the same table resulted in more columns being generated.
1423         This patch solves this issue.
1424
1425         * rendering/AutoTableLayout.cpp:
1426         (WebCore::AutoTableLayout::recalcColumn):
1427         * rendering/RenderTable.cpp:
1428         (WebCore::RenderTable::cellAbove):
1429         (WebCore::RenderTable::cellBelow):
1430         (WebCore::RenderTable::cellBefore):
1431         * rendering/RenderTableSection.cpp:
1432         (WebCore::RenderTableSection::ensureRows):
1433         (WebCore::RenderTableSection::addCell):
1434         (WebCore::RenderTableSection::setCellWidths):
1435         (WebCore::RenderTableSection::calcRowHeight):
1436         (WebCore::RenderTableSection::layoutRows):
1437         (WebCore::RenderTableSection::paintObject):
1438         (WebCore::RenderTableSection::appendColumn):
1439         (WebCore::RenderTableSection::splitColumn):
1440         * rendering/RenderTableSection.h:
1441         (WebCore::RenderTableSection::CellStruct::CellStruct):
1442
1443 2010-07-28  Tony Gentilcore  <tonyg@chromium.org>
1444
1445         Reviewed by Pavel Feldman.
1446
1447         Exclude DNS and SSL time from connect time
1448         https://bugs.webkit.org/show_bug.cgi?id=43083
1449
1450         The ResourceLoadTiming API's definition of the connect phase includes
1451         DNS and SSL time. However, the Web Timing spec wants just the TCP time.
1452         So this patch subtracts those phases out.
1453
1454         No new tests because ResourceLoadTiming fields are not populated by
1455         TestShell yet.
1456
1457         * page/Timing.cpp:
1458         (WebCore::Timing::connectStart):
1459         (WebCore::Timing::connectEnd):
1460
1461 2010-07-26  Steve Block  <steveblock@google.com>
1462
1463         Reviewed by Jeremy Orlow.
1464
1465         Page clients should be passed to Page constructor via structure of pointers
1466         https://bugs.webkit.org/show_bug.cgi?id=42834
1467
1468         No new tests, refactoring only.
1469
1470         * WebCore.exp.in:
1471         * page/Page.cpp:
1472         (WebCore::Page::Page):
1473         * page/Page.h:
1474         (WebCore::Page::PageClients::PageClients):
1475         * svg/graphics/SVGImage.cpp:
1476         (WebCore::SVGImage::dataChanged):
1477
1478 2010-07-28  Xianzhu Wang  <phnixwxz@gmail.com>
1479
1480         Reviewed by Dan Bernstein.
1481
1482         Line not wrapped at certain punctuations
1483         https://bugs.webkit.org/show_bug.cgi?id=37698
1484         Added a line breaking table for all printable ASCII chars to replace
1485         the original line breaking table for only '?'.
1486
1487         Test: fast/text/line-breaks-after-closing-punctuations.html
1488
1489         * rendering/break_lines.cpp:
1490         (WebCore::isBreakableSpace):
1491         (WebCore::):
1492         (WebCore::shouldBreakAfter):
1493         (WebCore::needsLineBreakIterator):
1494
1495 2010-07-28  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
1496
1497         Unreviewed build fix.
1498
1499         Fix EFL build with SHARED_CORE=ON after r64124.
1500
1501         * CMakeLists.txt:
1502
1503 2010-07-28  Jay Civelli  <jcivelli@chromium.org>
1504
1505         Reviewed by Kent Tamura.
1506
1507         [Chromium] The popup now layouts properly its rows by
1508         taking into account the label width.
1509         https://bugs.webkit.org/show_bug.cgi?id=42910
1510
1511         * platform/chromium/PopupMenuChromium.cpp:
1512         (WebCore::PopupListBox::layout):
1513
1514 2010-07-28  Pavel Feldman  <pfeldman@chromium.org>
1515
1516         Not reviewed: chromium tests fix.
1517         Chromium Dev Tools: [REGRESSION] Pause is not working.
1518
1519         https://bugs.webkit.org/show_bug.cgi?id=43118
1520
1521         * inspector/front-end/InspectorBackendStub.js:
1522
1523 2010-07-28  Ilya Tikhonovsky  <loislo@chromium.org>
1524
1525         Reviewed by Pavel Feldman.
1526
1527         WebInspector: Navigating to anchor prior to opening WebInspector
1528         makes resource have 'other' type.
1529         https://bugs.webkit.org/show_bug.cgi?id=43110
1530
1531         * inspector/InspectorResource.cpp:
1532         (WebCore::InspectorResource::type):
1533         (WebCore::InspectorResource::resourceData):
1534         * inspector/front-end/ResourceView.js:
1535         (WebInspector.ResourceView.prototype._innerSelectContentTab):
1536
1537 2010-07-28  Andreas Kling  <andreas.kling@nokia.com>
1538
1539         Reviewed by Kenneth Rohde Christiansen.
1540
1541         [Qt] putImageData(): Combine premultiplication and BGR->RGB
1542         https://bugs.webkit.org/show_bug.cgi?id=43114
1543
1544         Further optimized putImageData() by doing BGR->RGB inside the
1545         premultiplication routine.
1546
1547         * platform/graphics/qt/ImageBufferQt.cpp:
1548         (WebCore::premultiplyABGRtoARGB): Renamed from premultiply.
1549         (WebCore::putImageData):
1550
1551 2010-07-28  Andrei Popescu  <andreip@google.com>
1552
1553         Reviewed by Jeremy Orlow.
1554
1555         [IndexedDB] IDBKeyRange should be a runtime-enabled feature.
1556         https://bugs.webkit.org/show_bug.cgi?id=43116
1557
1558         IDBKeyRange should be enabled at runtime only when IndexedDB is also
1559         enabled.
1560
1561         No new tests needed, functionality not changed.
1562
1563         * bindings/generic/RuntimeEnabledFeatures.h:
1564         (WebCore::RuntimeEnabledFeatures::iDBKeyRangeEnabled):
1565         * page/DOMWindow.idl:
1566
1567 2010-07-28  Nikolas Zimmermann  <nzimmermann@rim.com>
1568
1569         Not reviewed. Forgot to land GNUmakefile.am changes, broke build in r64196.
1570
1571         * GNUmakefile.am: Add SVGResources.* / SVGResourcesCache.* / SVGResourcesCycleSolver.* to build.
1572
1573 2010-07-28  Nikolas Zimmermann  <nzimmermann@rim.com>
1574
1575         Reviewed by Dirk Schulze.
1576
1577         SVGMaskElement/SVGForeignObjectElement should not inherit from SVGURIReference
1578         https://bugs.webkit.org/show_bug.cgi?id=43113
1579
1580         Remove wrong SVGURIReference inheritance for SVGMaskElement/SVGForeignObjectElement. Old copy/paste bug.
1581
1582         * svg/SVGForeignObjectElement.cpp:
1583         (WebCore::SVGForeignObjectElement::synchronizeProperty):
1584         * svg/SVGForeignObjectElement.h:
1585         * svg/SVGMaskElement.cpp:
1586         (WebCore::SVGMaskElement::SVGMaskElement):
1587         (WebCore::SVGMaskElement::parseMappedAttribute):
1588         (WebCore::SVGMaskElement::svgAttributeChanged):
1589         (WebCore::SVGMaskElement::synchronizeProperty):
1590         * svg/SVGMaskElement.h:
1591
1592 2010-07-28  Nikolas Zimmermann  <nzimmermann@rim.com>
1593
1594         Reviewed by Dirk Schulze.
1595
1596         WebKit shouldn't ignore resource cycles, but break them as Opera does
1597         https://bugs.webkit.org/show_bug.cgi?id=43031
1598
1599         Don't ignore resources containing cyclic references, but break them, as discussed on SVG WG mailing lists - to be compatible with Opera which already does that.
1600
1601         We used to lookup RenderSVGResourceContainers objects, by extracting the URI reference from the SVGRenderStyle, then utilizing getElementById() to lookup the
1602         node, and access its renderer. Opera ignores such references, if they point to resources that contain cyclic references. Ignoring them would mean we have
1603         to mutate the render style to empty the resource strings. That obviously doesn't work, as it would break expectations (getComputedStyle, etc.).
1604
1605         Introduce a SVGResources class that stores pointers to all resources, that can be applied to a RenderObject (clipper/filter/markers/masker).
1606         Add a SVGResourcesCache class, which is basically a HashMap<RenderObject*, SVGResources*>. Whenever a RenderObject receives style, we extract the URI references
1607         from the SVGRenderStyle, look up the RenderSVGResourceContainer* objects, and store them in a SVGResources* class. Then we execute a cycle detection logic,
1608         which detects cyclic references and breaks them. Breaking them means just nulling the pointer to the resource in the SVGResources object. Those SVGResources
1609         objects are cached, and used throughout the render tree to access resources. This way it's guaranteed that all cyclic references are resolved until layout/paint
1610         phase begins.
1611
1612         This is the first chunk, which just adds the new SVGResources/SVGResourcesCache/SVGResourcesCycleSolver files, and does minor cleanups.
1613         It's not yet glued in and doesn't affect any tests.
1614
1615         * Android.mk: Add SVGResources.* / SVGResourcesCache.* / SVGResourcesCycleSolver.* to build.
1616         * CMakeLists.txt: Ditto.
1617         * WebCore.gypi: Ditto.
1618         * WebCore.pro: Ditto.
1619         * WebCore.vcproj/WebCore.vcproj: Ditto. 
1620         * WebCore.xcodeproj/project.pbxproj: Ditto.
1621         * rendering/RenderInline.h: Make styleDidChange protected, RenderSVGInline wants to override it.
1622         * rendering/RenderSVGAllInOne.cpp: Add SVGResources.* / SVGResourcesCache.* / SVGResourcesCycleSolver.* to build.
1623         * rendering/RenderSVGHiddenContainer.h:
1624         (WebCore::RenderSVGHiddenContainer::isSVGHiddenContainer): Make isSVGHiddenContainer() private and renderName() public.
1625         * rendering/RenderSVGResourceContainer.cpp: Added. Moved most methods from the header in the implementation file.
1626         (WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer):
1627         (WebCore::RenderSVGResourceContainer::~RenderSVGResourceContainer):
1628         (WebCore::RenderSVGResourceContainer::idChanged):
1629         (WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke):
1630         (WebCore::RenderSVGResourceContainer::containsCyclicReference):
1631         * rendering/RenderSVGResourceContainer.h: Add stubs, that SVGResourcesCache uses - a follow-up patch will add the logic.
1632         (WebCore::RenderSVGResourceContainer::addClient):
1633         (WebCore::RenderSVGResourceContainer::removeClient):
1634         * rendering/SVGResources.cpp: Added. Holds a list of resources applyable to a RenderObject (fill/stroke, mask/markers/clipper/filter)
1635         (WebCore::paintingResourceFromSVGPaint): Helper function looking up a RenderSVGResource for a SVGPaint object.
1636         (WebCore::registerPendingResource): Helper function that register a RenderSVGResource as pending in the SVGDocumentExtensions. 
1637         (WebCore::SVGResources::buildCachedResources): Build a list of resources for a RenderObject/RenderStyle pair, handles pending resources, if needed.
1638         (WebCore::SVGResources::invalidateClient): Helper function that calls invalidateClient() on all resources.
1639         (WebCore::SVGResources::resourceDestroyed): Helper function that calls invalidateClients() on a certain resource, and nulls it.
1640         (WebCore::SVGResources::buildSetOfResources): Helper function that stashes all resources present in the SVGResources members in a HashSet, used in SVGResourcesCycleSolver.
1641         (WebCore::SVGResources::resetClipper): Helper methods nulling a resource.
1642         (WebCore::SVGResources::resetFilter): Ditto.
1643         (WebCore::SVGResources::resetMarkerStart): Ditto.
1644         (WebCore::SVGResources::resetMarkerMid): Ditto.
1645         (WebCore::SVGResources::resetMarkerEnd): Ditto.
1646         (WebCore::SVGResources::resetMasker): Ditto.
1647         (WebCore::SVGResources::resetFill): Ditto.
1648         (WebCore::SVGResources::resetStroke): Ditto.
1649         (WebCore::SVGResources::dump):
1650         * rendering/SVGResources.h: Added.
1651         (WebCore::SVGResources::clipper): Accesor of the cached m_foo variable.
1652         (WebCore::SVGResources::filter): Ditto.
1653         (WebCore::SVGResources::markerStart): Ditto.
1654         (WebCore::SVGResources::markerMid): Ditto.
1655         (WebCore::SVGResources::markerEnd): Ditto.
1656         (WebCore::SVGResources::masker): Ditto.
1657         (WebCore::SVGResources::fill): Ditto.
1658         (WebCore::SVGResources::stroke): Ditto.
1659         * rendering/SVGResourcesCache.cpp: Added. Holds a HashMap<RenderObject*, SVGResources*> and utility functions that update/invalidate the cache.
1660         (WebCore::SVGResourcesCache::SVGResourcesCache):
1661         (WebCore::SVGResourcesCache::~SVGResourcesCache):
1662         (WebCore::SVGResourcesCache::addResourcesFromRenderObject): Build a SVGResources object for a RenderObject and adds it to the cache, then detects & breaks cycles using SVGResourcesCycleSolver.
1663         (WebCore::SVGResourcesCache::removeResourcesFromRenderObject): Remove a SVGResources object from the cache.
1664         (WebCore::resourcesCacheFromRenderObject): Helper function, retrieving a SVGResourcesCache method from a RenderObject.
1665         (WebCore::SVGResourcesCache::cachedResourcesForRenderObject): Returns a SVGResources object from the cache.
1666         (WebCore::SVGResourcesCache::clientLayoutChanged): (static) Calls invalidateClient() on all resources that are used by the passed RenderObject.
1667         (WebCore::SVGResourcesCache::clientStyleChanged): (static) Updates the cache (calling removeResourceFromRenderObject/addResourcesFrom...) and invalidates resources in the ancestor chain.
1668         (WebCore::SVGResourcesCache::clientUpdatedFromElement): (static) Does the same, without invalidating the ancestor chain.
1669         (WebCore::SVGResourcesCache::clientDestroyed): (static) Calls removeResourcesFromRenderObject() on the SVGResourcesCache, for the given renderer.
1670         (WebCore::SVGResourcesCache::resourceDestroyed): (static) Updates all SVGResources objects in the cache, that refer to the given resource.
1671         * rendering/SVGResourcesCache.h: Added.
1672         * rendering/SVGResourcesCycleSolver.cpp: Added. Detects and breaks cyclic references, just the way Opera handles it. Break cycles as they are detected.
1673         (WebCore::SVGResourcesCycleSolver::SVGResourcesCycleSolver):
1674         (WebCore::SVGResourcesCycleSolver::~SVGResourcesCycleSolver):
1675         (WebCore::SVGResourcesCycleSolver::resourceContainsCycles): Operates only on the render tree
1676         (WebCore::targetReferenceFromResource): Helper method for chainableResourceContainsCycles().
1677         (WebCore::setFollowLinkForChainableResource): Ditto.
1678         (WebCore::SVGResourcesCycleSolver::chainableResourceContainsCycles): Handles cycles for resources that are chainable through xlink:href (filter/gradient/pattern).
1679         (WebCore::SVGResourcesCycleSolver::resolveCycles): Main method executing the cycle breaking logic, utilizing (chainableResource)resourceContainsCycles.
1680         (WebCore::SVGResourcesCycleSolver::breakCycle): Nulls a resource in the given SVGResources* object, to avoid using an invalid resource while rendering/layouting.
1681         * rendering/SVGResourcesCycleSolver.h: Added.
1682         * svg/SVGDocumentExtensions.cpp:
1683         (WebCore::SVGDocumentExtensions::SVGDocumentExtensions): Create SVGResourcesCache object once per SVGDocumentExtensions.
1684         * svg/SVGDocumentExtensions.h:
1685         (WebCore::SVGDocumentExtensions::resourcesCache): Expose accesor method for the SVGResourcesCache.
1686
1687 2010-07-28  Zoltan Herczeg  <zherczeg@webkit.org>
1688
1689         Reviewed by Nikolas Zimmermann.
1690
1691         SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes change
1692         https://bugs.webkit.org/show_bug.cgi?id=42244
1693
1694         Implementing svgAttributeChanged for SVGFEOffsetElement object.
1695
1696         Tests: svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr.html
1697                svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr.html
1698                svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr.html
1699                svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop.html
1700                svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop.html
1701                svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop.html
1702
1703         * svg/SVGFEOffsetElement.cpp:
1704         (WebCore::SVGFEOffsetElement::svgAttributeChanged):
1705         * svg/SVGFEOffsetElement.h:
1706
1707 2010-07-28  Zoltan Herczeg  <zherczeg@webkit.org>
1708
1709         Reviewed by Nikolas Zimmermann.
1710
1711         SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes change
1712         https://bugs.webkit.org/show_bug.cgi?id=42244
1713
1714         Implementing svgAttributeChanged for SVGFEDiffuseLightingElement object.
1715
1716         Tests: svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr.html
1717                svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-in-attr.html
1718                svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-lighting-color-attr.html
1719                svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-surfaceScale-attr.html
1720                svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop.html
1721                svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-diffuseConstant-prop.html
1722                svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-in-prop.html
1723                svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-surfaceScale-prop.html
1724
1725         * svg/SVGFEDiffuseLightingElement.cpp:
1726         (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
1727         * svg/SVGFEDiffuseLightingElement.h:
1728
1729 2010-07-27  Kinuko Yasuda  <kinuko@chromium.org>
1730
1731         Reviewed by Ojan Vafai.
1732
1733         Add FILE_SYSTEM build flag for FileSystem API
1734         https://bugs.webkit.org/show_bug.cgi?id=42915
1735
1736         * Configurations/FeatureDefines.xcconfig:
1737         * GNUmakefile.am:
1738         * WebCore.pri:
1739
1740 2010-07-26  Yuzo Fujishima  <yuzo@google.com>
1741
1742         Reviewed by Shinichiro Hamaji.
1743
1744         @page rules in media queries should be tested.
1745         https://bugs.webkit.org/show_bug.cgi?id=42971
1746
1747         * page/PrintContext.cpp:
1748         (WebCore::PrintContext::pageProperty): Fixed to properly begin
1749         printing. Added support for size property.
1750
1751 2010-07-27  James Hawkins  <jhawkins@chromium.org>
1752
1753         Reviewed by Darin Fisher.
1754
1755         Add itemIcon() method to the PopupMenuClient, used by Chrome AutoFill
1756         to display right-aligned credit card icons in the suggestions popup.
1757         https://bugs.webkit.org/show_bug.cgi?id=43076
1758
1759         No new tests as this is only used by the Chromium WebKit API.
1760
1761         * platform/PopupMenuClient.h:
1762         * platform/chromium/PopupMenuChromium.cpp:
1763         (WebCore::PopupListBox::paintRow):
1764         * rendering/RenderMenuList.cpp:
1765         (WebCore::RenderMenuList::itemIcon):
1766         * rendering/RenderMenuList.h:
1767         * rendering/RenderTextControlSingleLine.cpp:
1768         (WebCore::RenderTextControlSingleLine::itemIcon):
1769         * rendering/RenderTextControlSingleLine.h:
1770
1771 2010-07-27  Andreas Kling  <andreas.kling@nokia.com>
1772
1773         Reviewed by Kenneth Rohde Christiansen.
1774
1775         [Qt] putImageData(): Fast premultiply() if alpha == 255
1776
1777         * platform/graphics/qt/ImageBufferQt.cpp:
1778         (WebCore::premultiply): Do nothing for opaque pixels.
1779
1780 2010-07-27  Jian Li  <jianli@chromium.org>
1781
1782         Reviewed by David Levin.
1783
1784         Enhance FileThreadTask to support return type.
1785         https://bugs.webkit.org/show_bug.cgi?id=43078
1786
1787         This is needed to support synchronous calls of FileStream methods in
1788         addition to asynchronous calls via FileThreadTask.
1789
1790         * html/FileThreadTask.h:
1791         (WebCore::createFileThreadTask):
1792
1793 2010-07-27  James Robinson  <jamesr@chromium.org>
1794
1795         Reviewed by Darin Fisher.
1796
1797         [chromium] Let PlatformContextSkia draw to a GLES2Canvas in addition to an SkCanvas
1798         https://bugs.webkit.org/show_bug.cgi?id=43070
1799
1800         This adds a GLES2Canvas as drawing surface to PlatformContextSkia and lets callers
1801         issue draw commands to either.  The PlatformContextSkia keeps track of where
1802         rendering results are being accumulated and can blend the hardware and software
1803         backing stores into each other when necessary.
1804
1805         Still just plumbing, no functionality change.
1806
1807         * platform/graphics/chromium/GLES2Canvas.cpp:
1808         (WebCore::GLES2Canvas::GLES2Canvas):
1809         * platform/graphics/chromium/GLES2Canvas.h:
1810         * platform/graphics/skia/PlatformContextSkia.cpp:
1811         (PlatformContextSkia::PlatformContextSkia):
1812         (PlatformContextSkia::setGLES2Context):
1813         (PlatformContextSkia::preSoftwareDraw):
1814         (PlatformContextSkia::preHardwareDraw):
1815         (PlatformContextSkia::forceToSoftware):
1816         (PlatformContextSkia::uploadSoftwareToHardware):
1817         (PlatformContextSkia::readbackHardwareToSoftware):
1818         * platform/graphics/skia/PlatformContextSkia.h:
1819         (PlatformContextSkia::useGPU):
1820         (PlatformContextSkia::gpuCanvas):
1821         (PlatformContextSkia::preSoftwareDraw):
1822         (PlatformContextSkia::preHardwareDraw):
1823         (PlatformContextSkia::forceToSoftware):
1824         (PlatformContextSkia::):
1825
1826 2010-07-27  Simon Fraser  <simon.fraser@apple.com>
1827
1828         Reviewed by Darin Adler.
1829
1830         Incomplete repaint of some Safari extension content which falls into a composited iframe
1831         <rdar://problem/8235044>
1832         
1833         syncCompositingStateRecursive() bails if it thinks that a layout is pending, because
1834         the layout may update layers and make this sync obsolete. However, it only checked for an
1835         active layout timer. This ignores other sources of pending style changes and layouts, like
1836         the document's style recalc timer. So use needsLayout(), which does check this.
1837
1838         Unable to create a test because it depends on Safari extension behavior.
1839
1840         * page/FrameView.cpp:
1841         (WebCore::FrameView::syncCompositingStateRecursive):
1842
1843 2010-07-27  Andreas Kling  <andreas.kling@nokia.com>
1844
1845         Reviewed by Kenneth Rohde Christiansen.
1846
1847         [Qt] putImageData() optimizations
1848         https://bugs.webkit.org/show_bug.cgi?id=43059
1849
1850         - Single-pass premultiplication and BGR->RGB conversion
1851         - Use ARGB32PM for the temporary image so Qt calls the
1852           fast Source composition function
1853
1854         * platform/graphics/qt/ImageBufferQt.cpp:
1855         (WebCore::premultiply): Added (static inline)
1856         (WebCore::putImageData):
1857
1858 2010-07-27  Anders Carlsson  <andersca@apple.com>
1859
1860         Reviewed by Sam Weinig.
1861
1862         Expose interface for returning the plug-in script JSObject
1863         https://bugs.webkit.org/show_bug.cgi?id=43074
1864
1865         PluginViewBase::scriptObject should be a virtual function.
1866
1867         * plugins/PluginViewBase.h:
1868         (WebCore::PluginViewBase::scriptObject):
1869
1870 2010-07-27  Jian Li  <jianli@chromium.org>
1871
1872         Reviewed by David Levin.
1873
1874         Add ScriptExecutionContext argument to File/Blob constructors.
1875         https://bugs.webkit.org/show_bug.cgi?id=40587
1876
1877         Remove DragData::createClipboard and add Clipboard::create for it to be
1878         called directly in DragController. This is because we need to pass
1879         Frame pointer to Clipboard class and use it to get ScriptExecutionContext
1880         in order to construct File objects in Clipboard::files().
1881
1882         * bindings/js/SerializedScriptValue.cpp:
1883         (WebCore::DeserializingTreeWalker::convertIfTerminal):
1884         * bindings/v8/SerializedScriptValue.cpp:
1885         (WebCore::ZigZag::Reader::readBlob):
1886         (WebCore::ZigZag::Reader::readFile):
1887         (WebCore::ZigZag::Reader::readFileList):
1888         * dom/Clipboard.h:
1889         * editing/Editor.cpp:
1890         (WebCore::Editor::dispatchCPPEvent):
1891         * editing/Editor.h:
1892         * editing/android/EditorAndroid.cpp:
1893         (WebCore::Editor::newGeneralClipboard):
1894         * editing/brew/EditorBrew.cpp:
1895         (WebCore::Editor::newGeneralClipboard):
1896         * editing/chromium/EditorChromium.cpp:
1897         (WebCore::Editor::newGeneralClipboard):
1898         * editing/haiku/EditorHaiku.cpp:
1899         (WebCore::Editor::newGeneralClipboard):
1900         * editing/mac/EditorMac.mm:
1901         (WebCore::Editor::newGeneralClipboard):
1902         * editing/qt/EditorQt.cpp:
1903         (WebCore::Editor::newGeneralClipboard):
1904         * editing/wx/EditorWx.cpp:
1905         (WebCore::Editor::newGeneralClipboard):
1906         * html/Blob.cpp:
1907         (WebCore::Blob::Blob):
1908         (WebCore::Blob::slice):
1909         * html/Blob.h:
1910         (WebCore::Blob::create):
1911         * html/Blob.idl:
1912         * html/BlobBuilder.cpp:
1913         (WebCore::BlobBuilder::getBlob):
1914         * html/BlobBuilder.h:
1915         * html/BlobBuilder.idl:
1916         * html/File.cpp:
1917         (WebCore::File::File):
1918         * html/File.h:
1919         (WebCore::File::create):
1920         * html/HTMLInputElement.cpp:
1921         (WebCore::HTMLInputElement::appendFormData):
1922         (WebCore::HTMLInputElement::setFileListFromRenderer):
1923         * page/DragController.cpp:
1924         (WebCore::DragController::dragExited):
1925         (WebCore::DragController::performDrag):
1926         (WebCore::DragController::tryDHTMLDrag):
1927         * page/chromium/EventHandlerChromium.cpp:
1928         (WebCore::EventHandler::createDraggingClipboard):
1929         * page/gtk/EventHandlerGtk.cpp:
1930         (WebCore::EventHandler::createDraggingClipboard):
1931         * page/win/EventHandlerWin.cpp:
1932         (WebCore::EventHandler::createDraggingClipboard):
1933         * platform/DragData.h:
1934         * platform/android/ClipboardAndroid.cpp:
1935         (WebCore::Clipboard::create):
1936         * platform/android/DragDataAndroid.cpp:
1937         * platform/brew/ClipboardBrew.cpp:
1938         (WebCore::Clipboard::create):
1939         * platform/brew/DragDataBrew.cpp:
1940         * platform/chromium/ClipboardChromium.cpp:
1941         (WebCore::Clipboard::create):
1942         (WebCore::ClipboardChromium::ClipboardChromium):
1943         (WebCore::ClipboardChromium::create):
1944         (WebCore::ClipboardChromium::files):
1945         * platform/chromium/ClipboardChromium.h:
1946         * platform/chromium/DragDataChromium.cpp:
1947         * platform/efl/ClipboardEfl.cpp:
1948         (WebCore::Editor::newGeneralClipboard):
1949         (WebCore::Clipboard::create):
1950         * platform/efl/DragDataEfl.cpp:
1951         * platform/gtk/ClipboardGtk.cpp:
1952         (WebCore::Editor::newGeneralClipboard):
1953         (WebCore::Clipboard::create):
1954         (WebCore::ClipboardGtk::ClipboardGtk):
1955         (WebCore::ClipboardGtk::files):
1956         * platform/gtk/ClipboardGtk.h:
1957         (WebCore::ClipboardGtk::create):
1958         * platform/gtk/DragDataGtk.cpp:
1959         * platform/haiku/ClipboardHaiku.cpp:
1960         (WebCore::Clipboard::create):
1961         * platform/haiku/DragDataHaiku.cpp:
1962         * platform/mac/ClipboardMac.mm:
1963         (WebCore::Clipboard::create):
1964         (WebCore::ClipboardMac::files):
1965         * platform/mac/DragDataMac.mm:
1966         * platform/qt/ClipboardQt.cpp:
1967         (WebCore::Clipboard::create):
1968         * platform/qt/DragDataQt.cpp:
1969         * platform/win/ClipboardWin.cpp:
1970         (WebCore::Clipboard::create):
1971         (WebCore::ClipboardWin::ClipboardWin):
1972         (WebCore::ClipboardWin::files):
1973         * platform/win/ClipboardWin.h:
1974         (WebCore::ClipboardWin::create):
1975         * platform/win/DragDataWin.cpp:
1976         * platform/win/EditorWin.cpp:
1977         (WebCore::Editor::newGeneralClipboard):
1978         * platform/wince/DragDataWince.cpp:
1979         * platform/wince/EditorWince.cpp:
1980         (WebCore::Editor::newGeneralClipboard):
1981         * platform/wx/ClipboardWx.cpp:
1982         (WebCore::Clipboard::create):
1983         * platform/wx/DragDataWx.cpp:
1984
1985 2010-07-27  Dumitru Daniliuc  <dumi@chromium.org>
1986
1987         Reviewed by David Levin.
1988
1989         Move all WebSQLDatabases-specific code behind #if ENABLE(DATABASE).
1990         https://bugs.webkit.org/show_bug.cgi?id=43035
1991
1992         Make Chromium compile with ENABLE_DATABASE=0. The #ifdefs in
1993         DatabaseAuthorizer and ChromiumBridge are removed, because they're
1994         used by non-HTML5 DBs too (the classes in WebCore/platform/sql/),
1995         which are used by other features too. So they need to be compiled
1996         in even if HTML5 DBs are disabled.
1997
1998         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1999         * page/DOMWindow.idl:
2000         * platform/chromium/ChromiumBridge.h:
2001         * storage/DatabaseAuthorizer.cpp:
2002         * storage/chromium/DatabaseObserver.h:
2003         * storage/chromium/DatabaseTrackerChromium.cpp:
2004         * storage/chromium/QuotaTracker.cpp:
2005         * storage/chromium/QuotaTracker.h:
2006         * storage/chromium/SQLTransactionClientChromium.cpp:
2007
2008 2010-07-27  Chris Fleizach  <cfleizach@apple.com>
2009
2010         Reviewed by David Kilzer.
2011
2012         AX: Misspellings not shown in AXAttributedStringForTextMarkerRange when selection is on word
2013         https://bugs.webkit.org/show_bug.cgi?id=41817
2014
2015         Change how misspelled words are identified for accessibility. No longer rely on the 
2016         cached markers in Document. Calculate on the fly, which is more accurate in a variety of 
2017         circumstances (like when selection has not moved across words, of if the cursor is in the middle
2018         of a misspelled word). 
2019
2020         Test: platform/mac/accessibility/attributed-string-includes-misspelled-with-selection.html
2021
2022         * accessibility/mac/AccessibilityObjectWrapper.mm:
2023         (AXAttributeStringSetSpelling):
2024         (AXAttributedStringAppendText):
2025         (-[AccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]):
2026
2027 2010-07-27  Gavin Barraclough  <barraclough@apple.com>
2028
2029         Reviewed by Oliver Hunt.
2030
2031         Bug 42621 - Add a bump allocator for the YARR interpreter
2032
2033         The regex engine requires lifo allocation, however currently uses the general purpose
2034         malloc/free memory allocation.  A simple bump pointer allocator should provide a lower
2035         overhead allocation solution.
2036
2037         * ForwardingHeaders/wtf/BumpPointerAllocator.h: Added.
2038
2039 2010-07-27  Pavel Feldman  <pfeldman@chromium.org>
2040
2041         Reviewed by Joseph Pecoraro.
2042
2043         Web Inspector: render network timing as gant chart in popover.
2044
2045         https://bugs.webkit.org/show_bug.cgi?id=43051
2046
2047         * inspector/InspectorResource.cpp:
2048         (WebCore::InspectorResource::buildObjectForTiming):
2049         * inspector/front-end/ResourcesPanel.js:
2050         (WebInspector.ResourcesPanel.prototype._showPopover):
2051         * inspector/front-end/inspector.css:
2052         (.resource-timing-row):
2053         (.resource-timing-bar):
2054         (.resource-timing-bar-title):
2055         * inspector/front-end/utilities.js:
2056
2057 2010-07-27  Victor Wang  <victorw@chromium.org>
2058
2059         Unreviewed, rolling out r64104.
2060         http://trac.webkit.org/changeset/64104
2061         https://bugs.webkit.org/show_bug.cgi?id=40768
2062
2063         The patch causes chromium webkit socket laytest crashes on
2064         windows randomly
2065
2066         * inspector/InspectorController.cpp:
2067         (WebCore::InspectorController::addResource):
2068         (WebCore::InspectorController::removeResource):
2069         * inspector/InspectorController.h:
2070         * inspector/InspectorResource.cpp:
2071         (WebCore::InspectorResource::InspectorResource):
2072         (WebCore::InspectorResource::updateScriptObject):
2073         (WebCore::InspectorResource::cachedResource):
2074         (WebCore::InspectorResource::type):
2075         (WebCore::InspectorResource::resourceData):
2076         * inspector/InspectorResource.h:
2077         (WebCore::InspectorResource::):
2078         (WebCore::InspectorResource::create):
2079         * inspector/front-end/Resource.js:
2080         (WebInspector.Resource.Type.toString):
2081         (WebInspector.Resource.prototype.set type):
2082         (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
2083         * inspector/front-end/ResourceView.js:
2084         (WebInspector.ResourceView.prototype._refreshRequestHeaders):
2085         (WebInspector.ResourceView.prototype._refreshResponseHeaders):
2086         (WebInspector.ResourceView.prototype._refreshHeaders):
2087         * inspector/front-end/inspector.css:
2088         (.resources-category-scripts, .resources-category-xhr, .resources-category-fonts, .resources-category-other):
2089         * inspector/front-end/inspector.js:
2090         (WebInspector.loaded):
2091         (WebInspector.updateResource):
2092         * websockets/WebSocketChannel.cpp:
2093         (WebCore::WebSocketChannel::WebSocketChannel):
2094         (WebCore::WebSocketChannel::disconnect):
2095         (WebCore::WebSocketChannel::didOpen):
2096         (WebCore::WebSocketChannel::didClose):
2097         (WebCore::WebSocketChannel::processBuffer):
2098         * websockets/WebSocketChannel.h:
2099
2100 2010-07-27  Andrei Popescu  <andreip@google.com>
2101
2102         Reviewed by Jeremy Orlow.
2103
2104         [IndexedDB] Key range methods belong to the IDBKeyRange interface
2105         https://bugs.webkit.org/show_bug.cgi?id=43052
2106
2107         Move the key range methods from the IndexedDatabaseRequest interface
2108         to the IDBKeyRange interface. Also add a global IDBKeyRange object
2109         that can be used to access the IDBKeyRange constants and factory methods. 
2110
2111         * page/DOMWindow.cpp:
2112         (WebCore::DOMWindow::clear):
2113         (WebCore::DOMWindow::iDBKeyRange):
2114         * page/DOMWindow.h:
2115         * page/DOMWindow.idl:
2116         * storage/IDBKeyRange.cpp:
2117         (WebCore::IDBKeyRange::only):
2118         (WebCore::IDBKeyRange::leftBound):
2119         (WebCore::IDBKeyRange::rightBound):
2120         (WebCore::IDBKeyRange::bound):
2121         * storage/IDBKeyRange.h:
2122         * storage/IDBKeyRange.idl:
2123         * storage/IndexedDatabaseRequest.cpp:
2124         * storage/IndexedDatabaseRequest.h:
2125         * storage/IndexedDatabaseRequest.idl:
2126
2127 2010-07-27  Chris Fleizach  <cfleizach@apple.com>
2128
2129         Reviewed by Darin Adler.
2130
2131         AX: consolidate parentObjectIfExists() and parentObject() code
2132         https://bugs.webkit.org/show_bug.cgi?id=42981
2133
2134         Consolidate duplicate code in parentObject and parentObjectIfExists
2135
2136         No tests. No functionality changed.
2137
2138         * accessibility/AccessibilityRenderObject.cpp:
2139         (WebCore::AccessibilityRenderObject::renderParentObject):
2140         (WebCore::AccessibilityRenderObject::parentObjectIfExists):
2141         (WebCore::AccessibilityRenderObject::parentObject):
2142         * accessibility/AccessibilityRenderObject.h:
2143
2144 2010-07-27  Chris Fleizach  <cfleizach@apple.com>
2145
2146         Reviewed by Adam Barth.
2147
2148         AX: replace m_renderer->document->axObjectCache() with just axObjectCache()
2149         https://bugs.webkit.org/show_bug.cgi?id=42979
2150
2151         No new tests. Code cleanup only.
2152
2153         * accessibility/AccessibilityRenderObject.cpp:
2154         (WebCore::AccessibilityRenderObject::firstChild):
2155         (WebCore::AccessibilityRenderObject::lastChild):
2156         (WebCore::AccessibilityRenderObject::previousSibling):
2157         (WebCore::AccessibilityRenderObject::nextSibling):
2158         (WebCore::AccessibilityRenderObject::parentObjectIfExists):
2159         (WebCore::AccessibilityRenderObject::parentObject):
2160         (WebCore::AccessibilityRenderObject::menuForMenuButton):
2161         (WebCore::AccessibilityRenderObject::menuButtonForMenu):
2162         (WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
2163         (WebCore::AccessibilityRenderObject::axObjectCache):
2164         (WebCore::AccessibilityRenderObject::contentChanged):
2165         (WebCore::AccessibilityRenderObject::addChildren):
2166
2167 2010-07-27  Pavel Podivilov  <podivilov@chromium.org>
2168
2169         Reviewed by Pavel Feldman.
2170
2171         Web Inspector: do not activate all breakpoints on page reload
2172         https://bugs.webkit.org/show_bug.cgi?id=41461
2173
2174         Test: inspector/debugger-breakpoints-not-activated-on-reload.html
2175
2176         * inspector/front-end/ScriptView.js:
2177         (WebInspector.ScriptView.prototype._addBreakpoint):
2178         * inspector/front-end/ScriptsPanel.js:
2179         (WebInspector.ScriptsPanel):
2180         (WebInspector.ScriptsPanel.prototype._breakpointAdded):
2181         (WebInspector.ScriptsPanel.prototype.toggleBreakpointsClicked):
2182         * inspector/front-end/SourceView.js:
2183         (WebInspector.SourceView.prototype._addBreakpoint):
2184
2185 2010-07-27  Pranav Kedia  <pranavk@chromium.org>
2186
2187         Reviewed by Adam Barth.
2188
2189         Chrome browser Bug: Pause button stays when <audio> hits end
2190         https://bugs.webkit.org/show_bug.cgi?id=42677
2191
2192         The change is just in chromium media. Tested using media part of
2193         WebKit layout tests. The following test that was failing is passing.
2194         media/video-duration-known-after-eos.html -> unexpected pass
2195
2196         * rendering/RenderMediaControlsChromium.cpp:
2197         (WebCore::paintMediaPlayButton):
2198         Using mediaElement->canPlay() instead of mediaElement->paused() to
2199         paint the play/pause button.
2200
2201 2010-07-27  Steve Block  <steveblock@google.com>
2202
2203         Reviewed by Jeremy Orlow.
2204
2205         Client-based Geolocation does not pass enableHighAccuracy option to controller and client
2206         https://bugs.webkit.org/show_bug.cgi?id=40374
2207
2208         This change passes the enableHighAccuracy request option to the GeolocationController.
2209         The GeolocationController tracks whether this should be used by the client.
2210
2211         No new tests possible as the mock provider doesn't support this feature.
2212
2213         * page/Geolocation.cpp:
2214         (WebCore::Geolocation::setIsAllowed):
2215         (WebCore::Geolocation::startUpdating):
2216         * page/GeolocationController.cpp:
2217         (WebCore::GeolocationController::addObserver):
2218         (WebCore::GeolocationController::removeObserver):
2219         * page/GeolocationController.h:
2220         * page/GeolocationControllerClient.h:
2221
2222 2010-07-27  Ilya Tikhonovsky  <loislo@chromium.org>
2223
2224         Reviewed by Pavel Feldman.
2225
2226         WebInspector: Current implementation of message based inspector
2227         transport generated by CodeGeneratorInspector should be upstreamed
2228         from WebKit/chromium to WebCore.
2229         https://bugs.webkit.org/show_bug.cgi?id=42983
2230
2231         * Android.derived.v8bindings.mk:
2232         * CMakeLists.txt:
2233         * DerivedSources.cpp:
2234         * DerivedSources.make:
2235         * GNUmakefile.am:
2236         * WebCore.exp.in:
2237         * WebCore.gypi:
2238         * WebCore.pri:
2239         * WebCore.vcproj/WebCore.vcproj:
2240         * WebCore.xcodeproj/project.pbxproj:
2241         * bindings/js/ScriptObject.cpp:
2242         * bindings/js/ScriptObject.h:
2243         * bindings/v8/ScriptObject.cpp:
2244         * bindings/v8/ScriptObject.h:
2245         * inspector/CodeGeneratorInspector.pm:
2246         * inspector/InspectorBackend.idl: Removed.
2247         * inspector/InspectorFrontendClient.h:
2248         * inspector/InspectorFrontendClientLocal.cpp:
2249         (WebCore::InspectorFrontendClientLocal::windowObjectCleared):
2250         (WebCore::InspectorFrontendClientLocal::sendMessageToBackend):
2251         * inspector/InspectorFrontendClientLocal.h:
2252         * inspector/InspectorFrontendHost.cpp:
2253         (WebCore::InspectorFrontendHost::sendMessageToBackend):
2254         * inspector/InspectorFrontendHost.h:
2255         * inspector/InspectorFrontendHost.idl:
2256         * inspector/front-end/InspectorBackendStub.js:
2257         (.WebInspector.InspectorBackendStub):
2258         (.WebInspector.InspectorBackendStub.prototype._registerDelegate):
2259         (.WebInspector.InspectorBackendStub.prototype.sendMessageToBackend):
2260
2261 2010-07-27  Satish Sampath  <satish@chromium.org>
2262
2263         Reviewed by Kent Tamura.
2264
2265         Simplify speech input plumbing in webcore and webkit
2266         https://bugs.webkit.org/show_bug.cgi?id=43008
2267
2268         No new tests as functionality is not changed.
2269
2270         * GNUmakefile.am: Removed a header file.
2271         * WebCore.gypi:
2272         * WebCore.pro:
2273         * WebCore.vcproj/WebCore.vcproj:
2274         * WebCore.xcodeproj/project.pbxproj:
2275         * page/Page.cpp:
2276         (WebCore::Page::speechInput): Creates and returns SpeechInput when needed.
2277         * page/Page.h:
2278         * page/SpeechInput.cpp: Added methods to proxy and callbacks between input elements and WebKit
2279         (WebCore::SpeechInput::SpeechInput):
2280         (WebCore::SpeechInput::didCompleteRecording):
2281         (WebCore::SpeechInput::didCompleteRecognition):
2282         (WebCore::SpeechInput::setRecognitionResult):
2283         (WebCore::SpeechInput::startRecognition):
2284         (WebCore::SpeechInput::stopRecording):
2285         * page/SpeechInput.h:
2286         * page/SpeechInputClient.h:
2287         * page/SpeechInputClientListener.h: Removed.
2288         * page/SpeechInputListener.h:
2289         * rendering/TextControlInnerElements.cpp: Added one more callback.
2290         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
2291         (WebCore::InputFieldSpeechButtonElement::speechInput):
2292         (WebCore::InputFieldSpeechButtonElement::didCompleteRecognition):
2293         * rendering/TextControlInnerElements.h:
2294
2295 2010-07-27  Kent Tamura  <tkent@chromium.org>
2296
2297         Reviewed by Ojan Vafai.
2298
2299         Add a runtime setting for interactive form validation.
2300         https://bugs.webkit.org/show_bug.cgi?id=40520
2301
2302         The interactive validation feature was disabled for non-strict
2303         modes by r61059 to avoid a compatibility issue. This removes the
2304         mode checking and introduce a runtime setting to enable/disable
2305         the feature instead.
2306         The default value is 'disable' and we'll remove the setting when
2307         the compatibility issue is resolved and interactive validation
2308         implementation is completed.
2309
2310         * html/HTMLFormElement.cpp:
2311         (WebCore::HTMLFormElement::validateInteractively):
2312         * page/Settings.cpp:
2313         (WebCore::Settings::Settings):
2314         * page/Settings.h:
2315         (WebCore::Settings::setInteractiveFormValidationEnabled):
2316         (WebCore::Settings::interactiveFormValidationEnabled):
2317
2318 2010-07-26  Gavin Barraclough  <barraclough@apple.com>
2319
2320         Reviewed by Oliver Hunt.
2321
2322         Bug 43009 - Abstract out page allocation from executable allocators
2323
2324         * ForwardingHeaders/wtf/PageAllocation.h: Added.
2325
2326 2010-07-26  Yuta Kitamura  <yutak@chromium.org>
2327
2328         Reviewed by Pavel Feldman.
2329
2330         Add WebSocket resource type to Web Inspector.
2331
2332         When a new WebSocket connection is established, a line for that connection
2333         will appear in Web Inspector's Resources tab. If the resource name is
2334         clicked, the details of handshake request and response will be shown.
2335
2336         Web Inspector: WebSocket in Resources tab
2337         https://bugs.webkit.org/show_bug.cgi?id=40768
2338
2339         * inspector/InspectorController.cpp:
2340         (WebCore::InspectorController::addResource): WebSocket resource does not
2341         have an associated loader, thus frame might be null. Need to check it.
2342         (WebCore::InspectorController::removeResource): Ditto.
2343         (WebCore::InspectorController::didCreateWebSocket):
2344         (WebCore::InspectorController::willSendWebSocketHandshakeRequest):
2345         (WebCore::InspectorController::didReceiveWebSocketHandshakeResponse):
2346         (WebCore::InspectorController::didCloseWebSocket):
2347         * inspector/InspectorController.h:
2348         * inspector/InspectorResource.cpp: Add null checks of m_loader and m_frame,
2349         because WebSocket does not have a loader and we need to allow null for
2350         these variables.
2351         (WebCore::createReadableStringFromBinary):
2352         (WebCore::InspectorResource::InspectorResource):
2353         (WebCore::InspectorResource::create): Factory function of
2354         regular (non-WebSocket) resources.
2355         (WebCore::InspectorResource::createWebSocket): Factory function of
2356         WebSocket resources.
2357         (WebCore::InspectorResource::updateWebSocketRequest):
2358         (WebCore::InspectorResource::updateWebSocketResponse):
2359         (WebCore::InspectorResource::updateScriptObject): m_frame->document() becomes
2360         available when Frame::setDocument() is called. We cannot obtain documentURL
2361         during the constructor or updateRequest() function, because m_frame->document()
2362         is not available yet at that point and documentURL will contain a wrong URL.
2363         As far as I know, updateScriptObject() is the only place where we can safely
2364         obtain documentURL.
2365         (WebCore::InspectorResource::cachedResource):
2366         (WebCore::InspectorResource::type):
2367         (WebCore::InspectorResource::resourceData):
2368         * inspector/InspectorResource.h:
2369         (WebCore::InspectorResource::):
2370         (WebCore::InspectorResource::markWebSocket):
2371         * inspector/front-end/Resource.js:
2372         (WebInspector.Resource.Type.toString):
2373         (WebInspector.Resource.prototype.set type):
2374         (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
2375         * inspector/front-end/ResourceView.js:
2376         (WebInspector.ResourceView.prototype._refreshRequestHeaders):
2377         (WebInspector.ResourceView.prototype._refreshResponseHeaders):
2378         (WebInspector.ResourceView.prototype._refreshHeaders):
2379         * inspector/front-end/inspector.css:
2380         (.resources-category-websockets, .resources-category-other):
2381         (.resources-category-websockets .resources-graph-bar):
2382         (.resources-category-websockets.resource-cached .resources-graph-bar):
2383         * inspector/front-end/inspector.js:
2384         (WebInspector.loaded):
2385         (WebInspector.updateResource):
2386         * websockets/WebSocketChannel.cpp:
2387         (WebCore::WebSocketChannel::WebSocketChannel):
2388         (WebCore::WebSocketChannel::disconnect):
2389         (WebCore::WebSocketChannel::didOpen):
2390         (WebCore::WebSocketChannel::didClose):
2391         (WebCore::WebSocketChannel::processBuffer):
2392         (WebCore::WebSocketChannel::identifier):
2393         * websockets/WebSocketChannel.h:
2394
2395 2010-07-26  Cosmin Truta  <ctruta@chromium.org>
2396
2397         Reviewed by Eric Seidel.
2398
2399         Some SVGs with empty <g> elements crash Chromium on Linux
2400         https://bugs.webkit.org/show_bug.cgi?id=41175
2401
2402         Redo the old fix using a different approach, to avoid regressing
2403         svg/batik/filters/filterRegions.svg with Chromium on Linux.
2404         Specifically, handle empty SkBitmap objects by exiting early upon
2405         encountering unconfigured (i.e. empty) bitmaps.
2406
2407         No new tests. This bug's old test (svg/filters/filter-empty-g.svg)
2408         and the above-mentioned regressed test are expected to pass.
2409
2410         * WebCore/platform/graphics/skia/ImageBufferSkia.cpp:
2411         (ImageBuffer::ImageBuffer): Undo the old fix.
2412         (getImageData): The new fix.
2413
2414 2010-07-26  Simon Fraser  <simon.fraser@apple.com>
2415
2416         Reviewed by Dan Bernstein.
2417
2418         Google image search results broken on pages with Flash
2419         https://bugs.webkit.org/show_bug.cgi?id=43014
2420
2421         The test for overflow added in r63452 is wrong in that it ignores the effects
2422         of positioning on overflow.
2423         
2424         The correct approach is to start by using RenderView's layoutOverflowRect as the largest bounds,
2425         then getting the oveflow rect via backgroundClipRect() relative to the root layer.
2426         
2427         Test: compositing/geometry/limit-layer-bounds-overflow-root.html
2428
2429         * rendering/RenderLayerBacking.cpp:
2430         (WebCore::layerOrAncestorIsTransformed):
2431         (WebCore::RenderLayerBacking::updateCompositedBounds):
2432
2433 2010-07-26  Anders Carlsson  <andersca@apple.com>
2434
2435         Reviewed by Sam Weinig.
2436
2437         Plug-in views should be able to return JSObjects directly
2438         https://bugs.webkit.org/show_bug.cgi?id=43019
2439
2440         * bindings/js/JSHTMLAppletElementCustom.cpp:
2441         (WebCore::JSHTMLAppletElement::putDelegate):
2442         (WebCore::JSHTMLAppletElement::getCallData):
2443         * bindings/js/JSHTMLEmbedElementCustom.cpp:
2444         (WebCore::JSHTMLEmbedElement::putDelegate):
2445         (WebCore::JSHTMLEmbedElement::getCallData):
2446         * bindings/js/JSHTMLObjectElementCustom.cpp:
2447         (WebCore::JSHTMLObjectElement::putDelegate):
2448         (WebCore::JSHTMLObjectElement::getCallData):
2449         runtimeObjectCustomPut and runtimeObjectGetCallData now take a JSHTMLElement instead of a HTMLElement.
2450
2451         * bindings/js/JSPluginElementFunctions.cpp:
2452         (WebCore::pluginScriptObject):
2453         First, ask the PluginViewBase for a JSObject and fall back to getting the JSObject from the instance.
2454
2455         (WebCore::runtimeObjectPropertyGetter):
2456         (WebCore::runtimeObjectCustomGetOwnPropertySlot):
2457         (WebCore::runtimeObjectCustomGetOwnPropertyDescriptor):
2458         Call pluginScriptObject.
2459         
2460         (WebCore::runtimeObjectCustomPut):
2461         Change to take a JSHTMLElement. Call pluginScriptObject.
2462         
2463         (WebCore::runtimeObjectGetCallData):
2464         Change to take a JSHTMLElement.
2465
2466         * bridge/jsc/BridgeJSC.cpp:
2467         * bridge/jsc/BridgeJSC.h:
2468         (JSC::Bindings::Instance::createRuntimeObject):
2469         Change this to return a JSObject.
2470         
2471         * html/HTMLPlugInElement.cpp:
2472         (WebCore::HTMLPlugInElement::getInstance):
2473         Call pluginWidget.
2474
2475         (WebCore::HTMLPlugInElement::pluginWidget):
2476         Return the plug-in widget for this element.
2477
2478         * html/HTMLPlugInElement.h:
2479         * plugins/PluginViewBase.h:
2480         (WebCore::PluginViewBase::scriptObject):
2481         Add default implementation of scriptObject.
2482
2483 2010-07-26  Chris Fleizach  <cfleizach@apple.com>
2484
2485         Reviewed by Darin Adler.
2486
2487         AX: Safari does not support ARIA mixed checkboxes
2488         https://bugs.webkit.org/show_bug.cgi?id=43016
2489
2490         Test: platform/mac/accessibility/mixed-checkbox.html
2491
2492         * accessibility/AccessibilityObject.cpp:
2493         (WebCore::AccessibilityObject::checkboxOrRadioValue):
2494         * accessibility/AccessibilityObject.h:
2495         * accessibility/AccessibilityRenderObject.cpp:
2496         (WebCore::AccessibilityRenderObject::isNativeCheckboxOrRadio):
2497         (WebCore::AccessibilityRenderObject::checkboxOrRadioValue):
2498         * accessibility/AccessibilityRenderObject.h:
2499         * accessibility/mac/AccessibilityObjectWrapper.mm:
2500         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
2501
2502 2010-07-26  Shimeng (Simon) Wang  <swang@google.com>
2503
2504         Reviewed by Darin Adler.
2505
2506         Add auto hyphenation support for Android.
2507         https://bugs.webkit.org/show_bug.cgi?id=42800
2508
2509         * platform/text/android/HyphenationAndroid.cpp: Added.
2510         (WebCore::loadHyphenationDictionary):
2511         (WebCore::lastHyphenLocation):
2512
2513 2010-07-26  Sam Weinig  <sam@webkit.org>
2514
2515         Reviewed by Anders Carlsson.
2516
2517         Patch for https://bugs.webkit.org/show_bug.cgi?id=43013
2518         Part of <rdar://problem/8152434>
2519         Add support for scrolling using the keyboard in WebKit2
2520
2521         Add a new export and make WindowsKeyboardCodes private.
2522
2523         * WebCore.exp.in:
2524         * WebCore.xcodeproj/project.pbxproj:
2525
2526 2010-07-26  Darin Adler  <darin@apple.com>
2527
2528         Reviewed by Eric Carlson.
2529
2530         Don't handle empty URL attributes specially in reflection, even in cases such as <img src="">
2531         https://bugs.webkit.org/show_bug.cgi?id=42087
2532
2533         * html/HTMLMediaElement.cpp:
2534         (WebCore::HTMLMediaElement::insertedIntoDocument): Check if the src attribute is empty
2535         by calling getAttribute instead of calling the src function. This keeps the behavior
2536         correct with the reflection change, and has a side benefit of being more efficient as
2537         well since there is no reason to resolve the URL.
2538         (WebCore::HTMLMediaElement::loadResource): Call getNonEmptyURLAttribute directly here
2539         instead of using the poster function.
2540         (WebCore::HTMLMediaElement::getPluginProxyParams): Ditto.
2541
2542         * html/HTMLMediaElement.h: Removed the poster virtual function. The code that gets the
2543         poster attribute is already video-specific and uses generic attribute fetching code, so
2544         we no longer need a virtual function. Removed the src function. Since this would give
2545         a different result from the JavaScript reflected src attribute, it's safer not to have
2546         it, and it was easy to convert all the callers.
2547
2548         * html/HTMLMediaElement.idl: Removed the NonEmpty extended attribute from the src
2549         attribute.
2550
2551         * html/HTMLSourceElement.cpp: Removed the src function for the same reason as above.
2552         * html/HTMLSourceElement.h: Ditto.
2553
2554         * html/HTMLSourceElement.idl: Removed the NonEmpty extended attribute from the src
2555         attribute.
2556
2557         * html/HTMLVideoElement.cpp:
2558         (WebCore::HTMLVideoElement::parseMappedAttribute): Removed code to update m_posterURL,
2559         which is no longer needed. Changed call site that used the poster() function to instead
2560         use getNonEmptyURLAttribute.
2561         (WebCore::HTMLVideoElement::updatePosterImage): Check if the poster attribute is empty
2562         by calling getAttribute instead of calling the poster function. This keeps the behavior
2563         correct with the reflection change, and has a side benefit of being more efficient as
2564         well since there is no reason to resolve the URL.
2565
2566         * html/HTMLVideoElement.h: Removed the poster function for the same reason we removed
2567         the src function above. Also removed now-unneeded m_posterURL data member.
2568
2569         * html/HTMLVideoElement.idl: Removed the NonEmpty extended attribute from the poster
2570         attribute.
2571
2572 2010-07-26  Chris Fleizach  <cfleizach@apple.com>
2573
2574         Reviewed by Darin Adler.
2575
2576         AX: remove intValue() hasIntValue() from AccessibilityObject
2577         https://bugs.webkit.org/show_bug.cgi?id=43006
2578
2579         These methods are very Mac centric. The mac centric code should be moved into the Mac wrapper.
2580
2581         No new tests, existing tests cover changes to logic.
2582
2583         * accessibility/AccessibilityObject.cpp:
2584         (WebCore::AccessibilityObject::checkboxOrRadioValue):
2585         * accessibility/AccessibilityObject.h:
2586         (WebCore::):
2587         * accessibility/AccessibilityRenderObject.cpp:
2588         (WebCore::AccessibilityRenderObject::selectedRadioButton):
2589         (WebCore::AccessibilityRenderObject::selectedTabItem):
2590         (WebCore::AccessibilityRenderObject::checkboxOrRadioValue):
2591         * accessibility/AccessibilityRenderObject.h:
2592         * accessibility/mac/AccessibilityObjectWrapper.mm:
2593         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
2594
2595 2010-07-26  Ryosuke Niwa  <rniwa@webkit.org>
2596
2597         Reviewed by Darin Adler.
2598
2599         Applying inline style to a text node whose parent is an inline editable root causes crash
2600         https://bugs.webkit.org/show_bug.cgi?id=39989
2601
2602         The crash was caused by splitTextElementAtStart and splitTextElementAtEnd assuming that the parent
2603         and the grandparent of the specified text node is editable.
2604
2605         Modified splitTextElementAtStart and splitTextElementAtEnd so that they call splitTextAtStart
2606         and splitTextAtEnd respectively when the grandparent is not editable.
2607
2608         Also modified SplitTextNodeContainingElement to exit early if the grandparent of m_text is not editable.
2609
2610         Test: editing/style/style-text-node-without-editable-parent.html
2611
2612         * editing/ApplyStyleCommand.cpp:
2613         (WebCore::ApplyStyleCommand::splitTextElementAtStart):
2614         (WebCore::ApplyStyleCommand::splitTextElementAtEnd):
2615         * editing/SplitTextNodeContainingElementCommand.cpp:
2616         (WebCore::SplitTextNodeContainingElementCommand::doApply):
2617
2618 2010-07-26  Simon Fraser  <simon.fraser@apple.com>
2619
2620         Reviewed by Anders Carlsson.
2621
2622         Gmail compose is upside-down after r64054
2623         https://bugs.webkit.org/show_bug.cgi?id=43000
2624         
2625         We need to call setGeometryOrientation() whenever the iframe compositing layer attachment changes,
2626         not just when requiresScrollLayer() returns false. This ensures that the orientation is updated
2627         correctly.
2628
2629         Test: compositing/iframes/iframe-content-flipping.html
2630
2631         * rendering/RenderLayerCompositor.cpp:
2632         (WebCore::RenderLayerCompositor::ensureRootPlatformLayer):
2633
2634 2010-07-26  Justin Schuh  <jschuh@chromium.org>
2635
2636         Reviewed by Darin Fisher.
2637
2638         Check history state against origin before setting
2639         https://bugs.webkit.org/show_bug.cgi?id=42858
2640
2641         Tests: fast/loader/stateobjects/replacestate-base-illegal.html
2642                fast/loader/stateobjects/replacestate-base-legal.html
2643
2644         * page/History.cpp:
2645         (WebCore::History::urlForState):
2646         (WebCore::History::stateObjectAdded):
2647
2648 2010-07-26  Martin Robinson  <mrobinson@igalia.com>
2649
2650         Reviewed by Xan Lopez.
2651
2652         [GTK] Get rid of libgdom
2653         https://bugs.webkit.org/show_bug.cgi?id=42378
2654
2655         Remove all build steps for building GObject DOM bindings.
2656
2657         * GNUmakefile.am: Remove GObject DOM bindings build.
2658
2659 2010-07-26  Mark Rowe  <mrowe@apple.com>
2660
2661         Reviewed by Dan Bernstein.
2662
2663         <http://webkit.org/b/42990> REGRESSION (r63854): Safari RSS layout is broken due to changes in vendor prefix handling
2664
2665         In r63854 support for properties with the -khtml vendor prefix was removed. This breaks the layout of
2666         Safari's RSS interface, several Dashboard widgets that are included with Mac OS X, and at least one
2667         popular third-party Mac OS X application. This change will need to be revisited in a manner that has
2668         a clearer backwards-compatibility strategy. <http://webkit.org/b/42093> will be reopened to track that.
2669
2670         * css/CSSParser.cpp:
2671         (WebCore::cssPropertyID): Revert the WebCore change from r63854.
2672
2673 2010-07-26  Brady Eidson  <beidson@apple.com>
2674
2675         Reviewed by Sam Weinig.
2676
2677         Add ability for WK2 to register a scheme to always be displayed as an empty document
2678         https://bugs.webkit.org/show_bug.cgi?id=42995
2679
2680         No new tests. (Currently not possible to test in WebKit1 DRT, can be testing in future WK2 tester)
2681
2682         * WebCore.exp.in:
2683         
2684         * loader/MainResourceLoader.cpp:
2685         (WebCore::shouldLoadAsEmptyDocument):
2686         
2687         * platform/SchemeRegistry.cpp:
2688         (WebCore::emptyDocumentSchemes):
2689         (WebCore::SchemeRegistry::registerURLSchemeAsEmptyDocument):
2690         (WebCore::SchemeRegistry::shouldLoadURLSchemeAsEmptyDocument):
2691         * platform/SchemeRegistry.h:
2692
2693 2010-07-26  Patrick Gansterer  <paroga@paroga.com>
2694
2695         Reviewed by Kent Tamura.
2696
2697         [WINCE] Port ClipboardUtilities to WinCE
2698         https://bugs.webkit.org/show_bug.cgi?id=42929
2699
2700         Make ClipboardUtilitiesWin more portable and remove the global namespace prefix
2701         from GlobalLock/GlobalUnlock, since they are only macros on WinCE.
2702
2703         * platform/win/ClipboardUtilitiesWin.cpp:
2704         (WebCore::urlFromPath):
2705         (WebCore::getWebLocData):
2706         (WebCore::createGlobalData):
2707         (WebCore::getURL):
2708         (WebCore::getPlainText):
2709         (WebCore::fragmentFromHTML):
2710
2711 2010-07-26  Patrick Gansterer  <paroga@paroga.com>
2712
2713         Reviewed by Adam Roben.
2714
2715         [WINCE] Buildfix for BitmapImage.h
2716         https://bugs.webkit.org/show_bug.cgi?id=42931
2717
2718         Use AffineTransform insted of TransformationMatrix.
2719
2720         * platform/graphics/BitmapImage.h:
2721
2722 2010-07-26  Dirk Schulze  <krit@webkit.org>
2723
2724         Unreviewed sort of XCode project file.
2725
2726         * WebCore.xcodeproj/project.pbxproj:
2727
2728 2010-07-26  David Kilzer  <ddkilzer@apple.com>
2729
2730         <http://webkit.org/b/42982> Streamline Inspector Source build phase script should use CONFIGURATION not BUILD_STYLE
2731         <rdar://problem/6341764>
2732
2733         Reviewed by Mark Rowe.
2734
2735         * WebCore.xcodeproj/project.pbxproj: Switched Streamline
2736         Inspector Source build phase script to use CONFIGURATION instead
2737         of BUILD_STYLE.
2738
2739 2010-07-23  Ojan Vafai  <ojan@chromium.org>
2740
2741         Reviewed by Darin Adler.
2742
2743         crash in insertParagraph in a contentEditable list
2744         https://bugs.webkit.org/show_bug.cgi?id=42919
2745
2746         Don't try to break out of a list item if the list it's in
2747         is the rootEditableElement.
2748
2749         * editing/CompositeEditCommand.cpp:
2750         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem):
2751
2752 2010-07-26  Marcus Bulach  <bulach@chromium.org>
2753
2754         Reviewed by Jeremy Orlow.
2755
2756         Moves IDBKeyRange to use IDBKey rather than SerializedScriptValue / IDBAny.
2757         https://bugs.webkit.org/show_bug.cgi?id=42583
2758
2759         Tests: existing storage/indexeddb/idb-keyrange.html must pass.
2760
2761         * storage/IDBKeyRange.cpp:
2762         (WebCore::IDBKeyRange::IDBKeyRange):
2763         * storage/IDBKeyRange.h:
2764         (WebCore::IDBKeyRange::create):
2765         (WebCore::IDBKeyRange::left):
2766         (WebCore::IDBKeyRange::right):
2767         * storage/IDBKeyRange.idl:
2768         * storage/IndexedDatabaseRequest.cpp:
2769         (WebCore::IndexedDatabaseRequest::makeSingleKeyRange):
2770         (WebCore::IndexedDatabaseRequest::makeLeftBoundKeyRange):
2771         (WebCore::IndexedDatabaseRequest::makeRightBoundKeyRange):
2772         (WebCore::IndexedDatabaseRequest::makeBoundKeyRange):
2773         * storage/IndexedDatabaseRequest.h:
2774         * storage/IndexedDatabaseRequest.idl:
2775
2776 2010-07-26  Simon Fraser  <simon.fraser@apple.com>
2777
2778         Reviewed by Anders Carlsson.
2779
2780         Composited layers don't scroll in WebKit2
2781         https://bugs.webkit.org/show_bug.cgi?id=42771
2782
2783         Rename two methods on RenderLayerCompositor to make their use more clear, and call them
2784         when the FrameView gets resized and scrolled.
2785
2786         * page/FrameView.h:
2787         * page/FrameView.cpp:
2788         (WebCore::FrameView::setFrameRect): override so we know when the size of the FrameView changes, so that the
2789         RenderLayerCompositor can update its clipping layer.
2790         (WebCore::FrameView::scrollPositionChanged): Call compositor()->frameViewDidScroll().
2791
2792         * rendering/RenderLayerBacking.cpp:
2793         (WebCore::RenderLayerBacking::updateAfterWidgetResize): updateContentLayerOffset() was renamed.
2794
2795         * rendering/RenderLayerCompositor.h:
2796         * rendering/RenderLayerCompositor.cpp:
2797         (WebCore::RenderLayerCompositor::frameViewDidChangeSize): Renamed from updateContentLayerOffset().
2798         (WebCore::RenderLayerCompositor::frameViewDidScroll): Renamed from updateContentLayerScrollPosition().
2799         (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingIFrame): Propagate compositing on Mac
2800         for any FrameView that doesn't have a native widget, which is the case with WebKit2.
2801         (WebCore::RenderLayerCompositor::requiresScrollLayer): New method to tell us whether we need to handle
2802         scrolling (and clipping) ourselves.
2803         (WebCore::RenderLayerCompositor::ensureRootPlatformLayer): Do geometry flipping on the root platform
2804         layer only if we're not doing our own scrolling, and use the new requiresScrollLayer() method.
2805         (WebCore::RenderLayerCompositor::attachRootPlatformLayer): Send out the rootPlatformLayer(),
2806         so that it returns the clipping layer if we have one.
2807
2808 2010-07-26  Tony Gentilcore  <tonyg@chromium.org>
2809
2810         Reviewed by Darin Fisher.
2811
2812         Move DocumentLoadTiming struct to a new file
2813         https://bugs.webkit.org/show_bug.cgi?id=42917
2814
2815         Also makes DocumentLoadTiming Noncopyable.
2816
2817         No new tests because no new functionality.
2818
2819         * GNUmakefile.am:
2820         * WebCore.gypi:
2821         * WebCore.vcproj/WebCore.vcproj:
2822         * WebCore.xcodeproj/project.pbxproj:
2823         * loader/DocumentLoadTiming.h: Added.
2824         (WebCore::DocumentLoadTiming::DocumentLoadTiming):
2825         * loader/DocumentLoader.h:
2826         * loader/FrameLoader.cpp:
2827         * loader/FrameLoaderTypes.h:
2828         * loader/MainResourceLoader.cpp:
2829         * page/Timing.cpp:
2830
2831 2010-07-26  Mark Rowe  <mrowe@apple.com>
2832
2833         Fix an #if in WebCore.exp.in to correctly detect whether SVG filters are enabled.
2834
2835         * WebCore.exp.in:
2836
2837 2010-07-26  Steve Block  <steveblock@google.com>
2838
2839         Reviewed by Jeremy Orlow.
2840
2841         DeviceOrientation event listeners should never be called synchronously from addEventListener()
2842         https://bugs.webkit.org/show_bug.cgi?id=42304
2843
2844         No new tests as there are currently no implementations to test. Tests will be
2845         added once LayoutTestController methods for providing a mock implementation are
2846         in place, see Bug 39589.
2847
2848         * dom/DeviceOrientationController.cpp:
2849         (WebCore::DeviceOrientationController::DeviceOrientationController):
2850         (WebCore::DeviceOrientationController::timerFired):
2851         (WebCore::DeviceOrientationController::addListener):
2852         (WebCore::DeviceOrientationController::removeListener):
2853         (WebCore::DeviceOrientationController::removeAllListeners):
2854         * dom/DeviceOrientationController.h:
2855
2856 2010-07-26  Andreas Kling  <andreas.kling@nokia.com>
2857
2858         Reviewed by Tor Arne Vestbø.
2859
2860         [Qt] Canvas: Optimize GraphicsContext::addPath()
2861
2862         Avoid "deep concatenating" the canvas path onto the GC path
2863         if the GC path has no elements.
2864
2865         * platform/graphics/qt/GraphicsContextQt.cpp:
2866         (WebCore::GraphicsContext::addPath):
2867
2868 2010-07-23  Stephen White  <senorblanco@chromium.org>
2869
2870         Reviewed by Darin Fisher.
2871
2872         Implement OpenGLES2 helper classes.
2873         https://bugs.webkit.org/show_bug.cgi?id=42905
2874
2875         GLES2Canvas and GLES2Texture are some simple OpenGLES2 helper classes
2876         for managing state, samplers and textures.
2877
2878         When this is hooked up, it will be covered by many layout tests.
2879
2880         * WebCore.gypi:
2881         Add new files to chromium build (contents are protected by #if's for now).
2882         * platform/graphics/chromium/GLES2Canvas.cpp: Added.
2883         (WebCore::affineTo3x3):
2884         (WebCore::GLES2Canvas::State::State):
2885         (WebCore::GLES2Canvas::GLES2Canvas):
2886         (WebCore::GLES2Canvas::~GLES2Canvas):
2887         (WebCore::GLES2Canvas::clearRect):
2888         (WebCore::GLES2Canvas::fillRect):
2889         (WebCore::GLES2Canvas::setFillColor):
2890         (WebCore::GLES2Canvas::setAlpha):
2891         (WebCore::GLES2Canvas::translate):
2892         (WebCore::GLES2Canvas::rotate):
2893         (WebCore::GLES2Canvas::scale):
2894         (WebCore::GLES2Canvas::concatCTM):
2895         (WebCore::GLES2Canvas::save):
2896         (WebCore::GLES2Canvas::restore):
2897         (WebCore::GLES2Canvas::drawTexturedRect):
2898         (WebCore::GLES2Canvas::setCompositeOperation):
2899         (WebCore::GLES2Canvas::applyCompositeOperator):
2900         (WebCore::GLES2Canvas::getQuadVertices):
2901         (WebCore::GLES2Canvas::getQuadIndices):
2902         (WebCore::loadShader):
2903         (WebCore::GLES2Canvas::getSimpleProgram):
2904         (WebCore::GLES2Canvas::getTexProgram):
2905         (WebCore::GLES2Canvas::createTexture):
2906         (WebCore::GLES2Canvas::getTexture):
2907         (WebCore::GLES2Canvas::checkGLError):
2908         * platform/graphics/chromium/GLES2Canvas.h: Added.
2909         (WebCore::GLES2Canvas::gles2Context):
2910         * platform/graphics/chromium/GLES2Texture.cpp: Added.
2911         (WebCore::GLES2Texture::GLES2Texture):
2912         (WebCore::GLES2Texture::~GLES2Texture):
2913         (WebCore::GLES2Texture::create):
2914         (WebCore::convertFormat):
2915         (WebCore::GLES2Texture::load):
2916         (WebCore::GLES2Texture::bind):
2917         * platform/graphics/chromium/GLES2Texture.h: Added.
2918         (WebCore::GLES2Texture::):
2919         (WebCore::GLES2Texture::format):
2920         (WebCore::GLES2Texture::width):
2921         (WebCore::GLES2Texture::height):
2922
2923
2924 2010-07-26  Jeremy Orlow  <jorlow@chromium.org>
2925
2926         Reviewed by Steve Block.
2927
2928         Fix IndexedDB release build on mac
2929         https://bugs.webkit.org/show_bug.cgi?id=42377
2930
2931         * storage/IDBDatabaseImpl.cpp:
2932         (WebCore::IDBDatabaseImpl::objectStore):
2933
2934 2010-07-26  Satish Sampath  <satish@chromium.org>
2935
2936         Reviewed by Steve Block.
2937
2938         Add WebKit plumbing to connect speech requests and callbacks between WebCore and the embedder.
2939         https://bugs.webkit.org/show_bug.cgi?id=42367
2940
2941         No new tests, the relevant LayoutTestController bindings will be added in the next patch.
2942
2943         * page/SpeechInput.cpp: renamed a method.
2944         * page/SpeechInput.h: renamed a method.
2945         * page/SpeechInputClient.h: added an extra method to optionally let users stop recording once they have spoken.
2946         * page/SpeechInputClientListener.h: renamed a method.
2947         * page/SpeechInputListener.h: renamed a method.
2948
2949 2010-07-26  Andreas Kling  <andreas.kling@nokia.com>
2950
2951         Reviewed by Kenneth Rohde Christiansen.
2952
2953         [Qt] getImageData(): Single-pass RGB->BGR and un-premultiplication
2954         https://bugs.webkit.org/show_bug.cgi?id=42945
2955
2956         Combine the two operations into a single loop over the pixel data.
2957         Yields a considerable FPS gain on http://www.semantix.gr/statue.html
2958
2959         * platform/graphics/qt/ImageBufferQt.cpp:
2960         (WebCore::getImageData):
2961
2962 2010-07-26  Pavel Feldman  <pfeldman@chromium.org>
2963
2964         Reviewed by Shinichiro Hamaji.
2965
2966         Web Inspector: make sure proxy objects are JSON-stringifiable.
2967
2968         https://bugs.webkit.org/show_bug.cgi?id=42961
2969
2970         * inspector/front-end/InjectedScript.js:
2971         (injectedScriptConstructor):
2972
2973 2010-07-26  Alexander Pavlov  <apavlov@chromium.org>
2974
2975         Reviewed by Joseph Pecoraro.
2976
2977         Inspector should remember resources sorting set by the user
2978         https://bugs.webkit.org/show_bug.cgi?id=19208
2979
2980         Sorting options both for time and size graphs are memorized in a single property,
2981         which makes them possible to retrieve in a single message (e.g. useful for remote debugging).
2982
2983         * inspector/front-end/ResourcesPanel.js:
2984         (WebInspector.ResourcesPanel.prototype.populateSidebar):
2985         (WebInspector.ResourcesPanel.prototype._settingsLoaded):
2986         (WebInspector.ResourcesPanel.prototype._loadSortOptions):
2987         (WebInspector.ResourcesPanel.prototype._loadSortOptionForGraph):
2988         (WebInspector.ResourcesPanel.prototype._graphSelected):
2989         (WebInspector.ResourcesPanel.prototype._changeSortingFunction):
2990         (WebInspector.ResourcesPanel.prototype._selectedOptionNameForGraph):
2991         (WebInspector.ResourcesPanel.prototype._doChangeSortingFunction):
2992         * inspector/front-end/Settings.js:
2993         (WebInspector.populateApplicationSettings):
2994
2995 2010-07-25  Ryosuke Niwa  <rniwa@webkit.org>
2996
2997         Reviewed by Darin Adler.
2998
2999         Redo fails after text node is split by SplitTextNodeCommand
3000         https://bugs.webkit.org/show_bug.cgi?id=42941
3001
3002         The bug was caused by SplitTextNodeCommand not implementing doReapply.
3003         Implemented doReapply and added insertText1AndTrimText2 to share the code between doApply and doReapply.
3004
3005         Test: editing/undo/redo-split-text-node.html
3006               editing/undo/redo-split-text-node-with-removal.html
3007
3008         * editing/SplitTextNodeCommand.cpp:
3009         (WebCore::SplitTextNodeCommand::doApply): Calls executeApply.
3010         (WebCore::SplitTextNodeCommand::doUnapply): Don't delete m_text1, which is later used in doReapply.
3011         (WebCore::SplitTextNodeCommand::doReapply): Added.
3012         (WebCore::SplitTextNodeCommand::insertText1AndTrimText2): Added.
3013         * editing/SplitTextNodeCommand.h:
3014
3015 2010-07-23  Philippe Normand  <pnormand@igalia.com>
3016
3017         Reviewed by Eric Carlson.
3018
3019         [GTK] media/media-can-play-mpeg-audio.html fails
3020         https://bugs.webkit.org/show_bug.cgi?id=42895
3021
3022         Fixed advertizing of mp3, mpeg and mp4 mime-types in the player.
3023
3024         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3025         (WebCore::mimeTypeCache):
3026
3027 2010-07-23  Philippe Normand  <pnormand@igalia.com>
3028
3029         Reviewed by Eric Carlson.
3030
3031         LayoutTests/media/media-document-audio-size.html failure
3032         https://bugs.webkit.org/show_bug.cgi?id=38376
3033
3034         Advertize audio/x-wav along with audio/wav when appropriate,
3035         otherwise WebKit attempts to use a plugin to play the media.
3036
3037         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3038         (WebCore::mimeTypeCache):
3039
3040 2010-07-25  Ryosuke Niwa  <rniwa@webkit.org>
3041
3042         Reviewed by Kent Tamura.
3043
3044         splitTextAt*IfNeed and splitTextElementAt*IfNeed need to be cleaned up
3045         https://bugs.webkit.org/show_bug.cgi?id=42937
3046
3047         Isolated the code to decide whether or not text node should be split into isValidCaretPositionInTextNode.
3048         Moved the condition check out of *IfNeeded methods to applyRelativeFontStyleChange and applyInlineStyle.
3049
3050         No new tests added since this is a clean up.
3051
3052         * editing/ApplyStyleCommand.cpp:
3053         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): Uses isValidCaretPositionInTextNode.
3054         (WebCore::ApplyStyleCommand::applyInlineStyle): Uses isValidCaretPositionInTextNode.
3055         (WebCore::ApplyStyleCommand::splitTextAtStart): Renamed from splitTextAtStartIfNeeded.
3056         (WebCore::ApplyStyleCommand::splitTextAtEnd): Renamed from splitTextAtEndIfNeeded.
3057         (WebCore::ApplyStyleCommand::splitTextElementAtStart): Renamed from splitTextElementAtStartIfNeeded.
3058         (WebCore::ApplyStyleCommand::splitTextElementAtEnd): Renamed from splitTextElementAtEndIfNeeded.
3059         (WebCore::ApplyStyleCommand::isValidCaretPositionInTextNode): Returns true if the position lies within a text node.
3060         * editing/ApplyStyleCommand.h:
3061
3062 2010-07-25  Patrick Gansterer  <paroga@paroga.com>
3063
3064         Reviewed by Kent Tamura.
3065
3066         [WINCE] Buildfix for ImageBufferWince
3067         https://bugs.webkit.org/show_bug.cgi?id=42928
3068
3069         * platform/graphics/wince/ImageBufferWince.cpp:
3070         (WebCore::):
3071         (WebCore::BufferedImage::draw): Pass through ColorSpace parameter.
3072         (WebCore::BufferedImage::drawPattern): Ditto.
3073         (WebCore::ImageBuffer::platformTransformColorSpace): Added.
3074
3075 2010-07-25  Patrick Gansterer  <paroga@paroga.com>
3076
3077         Reviewed by Kent Tamura.
3078
3079         [WINCE] Buildfix for PopupMenuWin.cpp
3080         https://bugs.webkit.org/show_bug.cgi?id=42932
3081
3082         Add #if !OS(WINCE) around unsupported window messages.
3083
3084         * platform/win/PopupMenuWin.cpp:
3085         (WebCore::PopupMenu::show):
3086         (WebCore::PopupMenu::wndProc):
3087
3088 2010-07-25  Adam Barth  <abarth@webkit.org>
3089
3090         Reviewed by Eric Seidel.
3091
3092         Implement adjustMathMLAttributes
3093         https://bugs.webkit.org/show_bug.cgi?id=42952
3094
3095         This is kind of mechanical overkill for adjusting one attribute name,
3096         but it's nice to use the same machinery as SVG.
3097
3098         * html/HTMLTreeBuilder.cpp:
3099         * mathml/mathattrs.in:
3100
3101 2010-07-25  Adam Barth  <abarth@webkit.org>
3102
3103         Reviewed by Eric Seidel.
3104
3105         Functions supporting the legacy tree builder are confusing
3106         https://bugs.webkit.org/show_bug.cgi?id=42951
3107
3108         This patch just inlines these functions into their one call site and
3109         removes the notImplemented() calls.  We thought we were going to grow
3110         these to support the new tree builder, but we took a different path.
3111         Previous to this patch, these functions were confusing because they
3112         looked like part of the new tree builder.
3113
3114         * html/HTMLTreeBuilder.cpp:
3115         (WebCore::HTMLTreeBuilder::passTokenToLegacyParser):
3116         * html/HTMLTreeBuilder.h:
3117
3118 2010-07-25  Adam Barth  <abarth@webkit.org>
3119
3120         Reviewed by Eric Seidel.
3121
3122         Recent HTML5 TreeBuilder Regression?  All canvas tests ASSERT
3123         https://bugs.webkit.org/show_bug.cgi?id=42948
3124
3125         Remove ASSERT and replace with correct branch.  I put this ASSERT in
3126         to make sure we had test coverage for this branch.  I guess we do.  :)
3127
3128         * html/HTMLConstructionSite.cpp:
3129         (WebCore::HTMLConstructionSite::attach):
3130
3131 2010-07-25  Pavel Feldman  <pfeldman@chromium.org>
3132
3133         Reviewed by Timothy Hatcher.
3134
3135         Web Inspector: check of jQuery object type prior to treating it as an array.
3136
3137         https://bugs.webkit.org/show_bug.cgi?id=42946
3138
3139         * inspector/front-end/InjectedScript.js:
3140         (injectedScriptConstructor):
3141
3142 2010-07-24  Daniel Bates  <dbates@rim.com>
3143
3144         Unreviewed, build fix when building with WML support.
3145
3146         PageCache.cpp compile error when WML is enabled
3147         https://bugs.webkit.org/show_bug.cgi?id=40765
3148
3149         Remove extraneous semicolon.
3150
3151         Note, building with WML support enabled is broken
3152         even with this fix. See Bug #42943 for more details.
3153
3154         * history/PageCache.cpp:
3155         (WebCore::PageCache::canCachePageContainingThisFrame):
3156
3157 2010-07-24  Adam Barth  <abarth@webkit.org>
3158
3159         Reviewed by Eric Seidel.
3160
3161         Atomize strings used by the HTML5 tree builder
3162         https://bugs.webkit.org/show_bug.cgi?id=42875
3163
3164         This is about a 1% improvement to the parsing benchmark.
3165
3166         * html/HTMLTagNames.in:
3167         * html/HTMLTreeBuilder.cpp:
3168         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
3169         (WebCore::HTMLTreeBuilder::processStartTag):
3170         (WebCore::HTMLTreeBuilder::processEndTagForInBody):
3171         (WebCore::HTMLTreeBuilder::processStartTagForInHead):
3172
3173 2010-07-24  Patrick Gansterer  <paroga@paroga.com>
3174
3175         Reviewed by Darin Adler.
3176
3177         Buildfix for !ENABLE(INSPECTOR) after r63891.
3178         https://bugs.webkit.org/show_bug.cgi?id=42925
3179
3180         * bindings/js/ScriptValue.cpp: Added property svn:eol-style.
3181         * bindings/js/ScriptValue.h: Added property svn:eol-style.
3182         * inspector/ConsoleMessage.cpp: Added property svn:eol-style.
3183         * inspector/ConsoleMessage.h: Added property svn:eol-style.
3184
3185 2010-07-24  Adam Barth  <abarth@webkit.org>
3186
3187         Reviewed by Eric Seidel.
3188
3189         Re-order whitespace checks in the tokenizer
3190         https://bugs.webkit.org/show_bug.cgi?id=42923
3191
3192         This saves about 0.5% on the parsing benchmark.
3193
3194         * html/HTMLTokenizer.cpp:
3195
3196 2010-07-24  Andreas Kling  <andreas.kling@nokia.com>
3197
3198         Reviewed by Simon Hausmann.
3199
3200         [Qt] tst_QWebFrame::callQtInvokable() fails
3201         https://bugs.webkit.org/show_bug.cgi?id=41065
3202
3203         Converting JS objects to QVariantMaps was broken.
3204         This is a partial revert of <http://trac.webkit.org/changeset/61478>
3205
3206         * bridge/qt/qt_runtime.cpp:
3207         (JSC::Bindings::convertValueToQVariant): Remove erroneous crash guard
3208         around JSObject::getPropertyNames()
3209
3210 2010-07-24  Adam Barth  <abarth@webkit.org>
3211
3212         Reviewed by Eric Seidel.
3213
3214         Save a per-character branch in the HTML parser
3215         https://bugs.webkit.org/show_bug.cgi?id=42921
3216
3217         The parsing benchmark claims this is a wash, but it makes me feel
3218         better.
3219
3220         * html/HTMLToken.h:
3221         (WebCore::HTMLToken::clear):
3222         (WebCore::HTMLToken::beginStartTag):
3223         (WebCore::HTMLToken::beginEndTag):
3224         (WebCore::HTMLToken::ensureIsCharacterToken):
3225         (WebCore::HTMLToken::beginComment):
3226         (WebCore::HTMLToken::beginDOCTYPE):
3227         * html/HTMLTokenizer.cpp:
3228         (WebCore::HTMLTokenizer::bufferCharacter):
3229
3230 2010-07-23  Patrick Gansterer  <paroga@paroga.com>
3231
3232         Reviewed by Darin Adler.
3233
3234         Buildfix for !ENABLE(FILTERS) after r63531.
3235         https://bugs.webkit.org/show_bug.cgi?id=42914
3236
3237         * rendering/RenderSVGContainer.cpp: Add missing header.
3238
3239 2010-07-23  Kavita Kanetkar  <kkanetkar@chromium.org>
3240
3241         Reviewed by Joseph Pecoraro.
3242
3243         Implement remaining Inspector support for chrome's appcache
3244         https://bugs.webkit.org/show_bug.cgi?id=42426
3245
3246         * inspector/InspectorApplicationCacheAgent.cpp:
3247         (WebCore::InspectorApplicationCacheAgent::getApplicationCaches):
3248         (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCache):
3249         (WebCore::InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources):
3250         (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource):
3251         * inspector/InspectorApplicationCacheAgent.h:
3252         (WebCore::InspectorController::connectFrontend):
3253         * loader/appcache/ApplicationCacheHost.cpp:
3254         (WebCore::ApplicationCacheHost::fillResourceList):
3255         (WebCore::ApplicationCacheHost::applicationCacheInfo):
3256         * loader/appcache/ApplicationCacheHost.h: Changed creation + update times to double and moved appcache info here from InspectorApplicationCacheAgent.h
3257         (WebCore::ApplicationCacheHost::CacheInfo::CacheInfo):
3258         (WebCore::ApplicationCacheHost::ResourceInfo::ResourceInfo):
3259
3260 2010-07-23  Rafael Antognolli  <antognolli@profusion.mobi>
3261
3262         Reviewed by Antonio Gomes.
3263
3264         [EFL] Cleanup glib support (make it optional)
3265         https://bugs.webkit.org/show_bug.cgi?id=42480
3266
3267         No new tests, no new features added.
3268         Just add flags and directories for glib if necessary.
3269         Put some ifdefs on glib calls.
3270
3271         * CMakeListsEfl.txt:
3272         * platform/graphics/cairo/FontPlatformDataCairo.cpp:
3273         (WebCore::FontPlatformData::FontPlatformData):
3274
3275 2010-07-23  James Robinson  <jamesr@chromium.org>
3276
3277         Reviewed by Dimitri Glazkov.
3278
3279         CanvasRenderingContext2D has lots of style errors
3280         https://bugs.webkit.org/show_bug.cgi?id=42918
3281
3282         CanvasRenderingContext2D.h and .cpp have lots of style errors.  I'm planning to post patches
3283         to both of these files soon, so to minimize merge conflicts and additional style violations
3284         it seems best to fix all of these errors in bulk before posting any functional changes.  In
3285         particular the header file is incorrectly indented so any correctly formatted addition will
3286         be out of place.
3287
3288         * html/canvas/CanvasRenderingContext2D.cpp:
3289         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
3290         (WebCore::CanvasRenderingContext2D::setFillStyle):
3291         (WebCore::CanvasRenderingContext2D::transform):
3292         (WebCore::CanvasRenderingContext2D::setTransform):
3293         (WebCore::CanvasRenderingContext2D::arcTo):
3294         (WebCore::CanvasRenderingContext2D::arc):
3295         (WebCore::validateRectForCanvas):
3296         (WebCore::CanvasRenderingContext2D::strokeRect):
3297         (WebCore::CanvasRenderingContext2D::drawImage):
3298         (WebCore::CanvasRenderingContext2D::createRadialGradient):
3299         (WebCore::CanvasRenderingContext2D::createPattern):
3300         (WebCore::CanvasRenderingContext2D::willDraw):
3301         (WebCore::CanvasRenderingContext2D::createImageData):
3302         (WebCore::CanvasRenderingContext2D::putImageData):
3303         (WebCore::CanvasRenderingContext2D::setFont):
3304         (WebCore::CanvasRenderingContext2D::drawTextInternal):
3305         * html/canvas/CanvasRenderingContext2D.h:
3306         (WebCore::CanvasRenderingContext2D::is2d):
3307         (WebCore::CanvasRenderingContext2D::getLineCap):
3308         (WebCore::CanvasRenderingContext2D::getLineJoin):
3309         (WebCore::CanvasRenderingContext2D::state):
3310         (WebCore::CanvasRenderingContext2D::):
3311
3312 2010-07-23  Adam Barth  <abarth@webkit.org>
3313
3314         Remove FIXME that we already fixed.
3315
3316         * html/HTMLTreeBuilder.cpp:
3317         (WebCore::HTMLTreeBuilder::processCharacter):
3318
3319 2010-06-24  Dimitri Glazkov  <dglazkov@chromium.org>
3320
3321         Reviewed by Kent Tamura.
3322
3323         Move more form submission logic into FormSubmission.
3324         https://bugs.webkit.org/show_bug.cgi?id=41110
3325
3326         Two major moves:
3327         * Fold HTMLFormElement::prepareFormSubmission into FormSubmission::create
3328         * Move non-static (non-FormData-building) methods of FormDataBuilder
3329             to FormSubmission::Attributes.
3330
3331         Mechanical moving, no change in behavior, so no new tests.
3332
3333         * WebCore.xcodeproj/project.pbxproj: Gave FormDataBuilder.h "project" and
3334             FormSubmission.h "private" visibility.
3335         * html/HTMLFormElement.cpp:
3336         (WebCore::HTMLFormElement::submit): Changed to use FormSubmission::create.
3337         (WebCore::HTMLFormElement::parseMappedAttribute): Changed to use m_attributes.
3338         * html/HTMLFormElement.h:
3339         (WebCore::HTMLFormElement::enctype): Ditto.
3340         (WebCore::HTMLFormElement::encoding): Ditto.
3341         (WebCore::HTMLFormElement::acceptCharset): Ditto.
3342         * loader/FormSubmission.cpp:
3343         (WebCore::generateFormDataIdentifier): Moved from HTMLFormElement.
3344         (WebCore::appendMailtoPostFormDataToURL): Ditto.
3345         (WebCore::FormSubmission::Attributes::parseAction): Moved from FormDataBuilder.
3346         (WebCore::FormSubmission::Attributes::parseEncodingType): Ditto.
3347         (WebCore::FormSubmission::Attributes::parseMethodType): Ditto.
3348         (WebCore::FormSubmission::FormSubmission): Made inline.
3349         (WebCore::FormSubmission::create): Added logic that used to be in
3350             HTMLFormElement::prepareFormSubmission.
3351         * loader/FormSubmission.h:
3352         (WebCore::FormSubmission::):
3353         (WebCore::FormSubmission::Attributes::Attributes): Added new class.
3354         (WebCore::FormSubmission::Attributes::method): Moved from FormDataBuilder.
3355         (WebCore::FormSubmission::Attributes::isMultiPartForm): Ditto.
3356         (WebCore::FormSubmission::Attributes::action): Ditto.
3357         (WebCore::FormSubmission::Attributes::target): Ditto.
3358         (WebCore::FormSubmission::Attributes::setTarget): Ditto.
3359         (WebCore::FormSubmission::Attributes::encodingType): Ditto.
3360         (WebCore::FormSubmission::Attributes::acceptCharset): Ditto.
3361         (WebCore::FormSubmission::Attributes::setAcceptCharset): Ditto.
3362         (WebCore::FormSubmission::target): Ditto.
3363         (WebCore::FormSubmission::contentType): Const-ified return type.
3364         (WebCore::FormSubmission::boundary): Ditto.
3365         * platform/network/FormDataBuilder.cpp:
3366         (WebCore::FormDataBuilder::encodingFromAcceptCharset): Renamed method for clarity,
3367             made it use param instead of a class member.
3368         * platform/network/FormDataBuilder.h:
3369         (WebCore::FormDataBuilder::FormDataBuilder): Made constructor private.
3370         * wml/WMLGoElement.cpp: Changed to use FormSubmision::Attributes.
3371         * wml/WMLGoElement.h: Ditto.
3372
3373 2010-07-23  Adam Barth  <abarth@webkit.org>
3374
3375         Reviewed by Eric Seidel.
3376
3377         HTML5 Parser: document.write in a asynchronous script which is specified to load before page finish blows away document
3378         https://bugs.webkit.org/show_bug.cgi?id=42365
3379
3380         This patch implements the changes Ian made to HTML5 to address these
3381         issues.  Let's try it and see how well it works.
3382
3383         Test: http/tests/misc/write-from-dom-script.html
3384
3385         * dom/Document.cpp:
3386         (WebCore::Document::Document):
3387         (WebCore::Document::write):
3388         * dom/Document.h:
3389         (WebCore::Document::writeDisabled):
3390         (WebCore::Document::setWriteDisabled):
3391         * dom/DocumentParser.h:
3392         (WebCore::DocumentParser::hasInsertionPoint):
3393         * dom/ScriptElement.cpp:
3394         (WebCore::ScriptElement::insertedIntoDocument):
3395         (WebCore::ScriptElementData::ScriptElementData):
3396         (WebCore::ScriptElementData::evaluateScript):
3397         * dom/ScriptElement.h:
3398         (WebCore::ScriptElementData::writeDisabled):
3399         (WebCore::ScriptElementData::setWriteDisabled):
3400         * html/HTMLDocumentParser.cpp:
3401         (WebCore::HTMLDocumentParser::hasInsertionPoint):
3402         (WebCore::HTMLDocumentParser::insert):
3403         * html/HTMLDocumentParser.h:
3404
3405 2010-07-23  Patrick Gansterer  <paroga@paroga.com>
3406
3407         Reviewed by Adam Roben.
3408
3409         [WINCE] Buildfix for PopupMenuWin.cpp
3410         https://bugs.webkit.org/show_bug.cgi?id=42906
3411
3412         Use correct API for BitmapInfo landed in r63944.
3413
3414         * platform/win/PopupMenuWin.cpp:
3415         (WebCore::PopupMenu::paint):
3416
3417 2010-07-23  fsamuel@chromium.org  <fsamuel@chromium.org>
3418
3419         Reviewed by David Hyatt.
3420
3421         Updated table painting to draw cell layers in the correct order.
3422
3423         Table Cell Layering
3424         https://bugs.webkit.org/show_bug.cgi?id=40775
3425
3426         Tests: tables/layering/paint-test-layering-1.html
3427                tables/layering/paint-test-layering-2.html
3428
3429         * accessibility/AccessibilityTable.cpp:
3430         (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
3431         (WebCore::AccessibilityTable::addChildren):
3432         (WebCore::AccessibilityTable::cellForColumnAndRow):
3433         * accessibility/AccessibilityTableCell.cpp:
3434         (WebCore::AccessibilityTableCell::titleUIElement):
3435         * accessibility/AccessibilityTableColumn.cpp:
3436         (WebCore::AccessibilityTableColumn::headerObjectForSection):
3437         * rendering/AutoTableLayout.cpp:
3438         (WebCore::AutoTableLayout::recalcColumn):
3439         * rendering/RenderTable.cpp:
3440         (WebCore::RenderTable::splitColumn):
3441         (WebCore::RenderTable::calcBorderLeft):
3442         (WebCore::RenderTable::calcBorderRight):
3443         (WebCore::RenderTable::cellAbove):
3444         (WebCore::RenderTable::cellBelow):
3445         (WebCore::RenderTable::cellBefore):
3446         (WebCore::RenderTable::cellAfter):
3447         * rendering/RenderTableSection.cpp:
3448         (WebCore::RenderTableSection::RenderTableSection):
3449         (WebCore::RenderTableSection::ensureRows):
3450         (WebCore::RenderTableSection::addCell):
3451         (WebCore::RenderTableSection::setCellWidths):
3452         (WebCore::RenderTableSection::calcRowHeight):
3453         (WebCore::RenderTableSection::layoutRows):
3454         (WebCore::RenderTableSection::calcOuterBorderTop):
3455         (WebCore::RenderTableSection::calcOuterBorderBottom):
3456         (WebCore::RenderTableSection::calcOuterBorderLeft):
3457         (WebCore::RenderTableSection::calcOuterBorderRight):
3458         (WebCore::RenderTableSection::firstLineBoxBaseline):
3459         (WebCore::compareCellPositions):
3460         (WebCore::RenderTableSection::paintCell):
3461         (WebCore::RenderTableSection::paintObject):
3462         (WebCore::RenderTableSection::numColumns):
3463         (WebCore::RenderTableSection::appendColumn):
3464         (WebCore::RenderTableSection::splitColumn):
3465         (WebCore::RenderTableSection::nodeAtPoint):
3466         * rendering/RenderTableSection.h:
3467         (WebCore::RenderTableSection::CellStruct::CellStruct):
3468         (WebCore::RenderTableSection::CellStruct::primaryCell):
3469         (WebCore::RenderTableSection::CellStruct::hasCells):
3470         (WebCore::RenderTableSection::primaryCellAt):
3471
3472 2010-07-23  Patrick Gansterer  <paroga@paroga.com>
3473
3474         Reviewed by Adam Roben.
3475
3476         [WINCE] Buildfix for Path.h
3477         https://bugs.webkit.org/show_bug.cgi?id=42904
3478
3479         * platform/graphics/Path.h: Add missing typedef PlatformPath.
3480
3481 2010-07-23  Adam Barth  <abarth@webkit.org>
3482
3483         Reviewed by Eric Seidel.
3484
3485         Reserve capacity for attributes
3486         https://bugs.webkit.org/show_bug.cgi?id=42877
3487
3488         This is about a 1.7% improvement to the parsing benchmark.
3489
3490         * html/HTMLToken.h:
3491         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
3492
3493 2010-07-23  Adam Barth  <abarth@webkit.org>
3494
3495         Reviewed by Eric Seidel.
3496
3497         Inline HTMLElementStack::top
3498         https://bugs.webkit.org/show_bug.cgi?id=42879
3499
3500         According to sampling, HTMLElementStack::top is the hotest function in
3501         the treebuilder.  Inlining it is about a 0.3% improvement to the
3502         parsing benchmark.  This squares with how often it occurs in samples.
3503
3504         * html/HTMLElementStack.cpp:
3505         * html/HTMLElementStack.h:
3506         (WebCore::HTMLElementStack::top):
3507
3508 2010-07-23  Patrick Gansterer  <paroga@paroga.com>
3509
3510         Reviewed by Adam Roben.