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