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