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