[Qt] Make ImageBufferQt use premultiplied converting functions in Color.h instead...
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-10-08  Huang Dongsung  <luxtella@company100.net>
2
3         [Qt] Make ImageBufferQt use premultiplied converting functions in Color.h instead of its own mechanism.
4         https://bugs.webkit.org/show_bug.cgi?id=98582
5
6         Reviewed by Eric Seidel.
7
8         Only Qt port failed canvas/philip/tests/2d.imageData.put.unchanged.html because
9         ImageBufferQt converts from or to a premultiplied color using its own code. When
10         we convert twice from an unmultiplied color to a premultiplied color and then to
11         an unmultiplied color using this code, the calculated result are pretty
12         different against the input color. It is why Gtk passes this test although Qt
13         fails. Gtk port uses them in Color.h.
14
15         In addition, Qt should use the functions in Color.h to reduce duplicated codes.
16
17         Tests: canvas/philip/tests/2d.imageData.put.unchanged.html: Fixed a test case
18
19         * platform/graphics/qt/ImageBufferQt.cpp:
20         (WebCore::getImageData):
21         (WebCore::convertBGRAToRGBA):
22         (WebCore::ImageBuffer::putByteArray):
23
24 2012-10-08  Tab Atkins  <jackalmage@gmail.com>
25
26         Remove "orphaned units" quirk
27         https://bugs.webkit.org/show_bug.cgi?id=98553
28
29         Reviewed by Eric Seidel.
30
31         This patch removes our "orphaned units" quirk.
32         We have an "orphaned units" quirk to match IE, which allows things like "width: 20 px;".
33         But FF and Opera don't have it and aren't aware of bugs for it,
34         and it's not in Simon Pieters' Quirks Mode spec <http://dvcs.w3.org/hg/quirks-mode/raw-file/tip/Overview.html>
35
36         No new tests, because I'm killing a quirk.
37
38         * css/CSSParser.cpp:
39         (WebCore::CSSParser::parseValue):
40         * css/CSSParser.h:
41         (CSSParser):
42
43 2012-10-08  Robert Hogan  <robert@webkit.org>
44
45         Border, margin and padding of an inline's inline ancestors counted twice
46         https://bugs.webkit.org/show_bug.cgi?id=63074
47
48         Reviewed by David Hyatt.
49
50         In a line such as '<span><span><img>Text' the border, padding and margin belonging
51         to the two spans was counted twice by RenderBlockLineLayout::nextLineBreak(): once
52         when adding the width of the <img> object to the line, and a second time when adding
53         the 'Text'. The result was that nextLineBreak() now had a length for the line that 
54         exceeded the line's maximum length and inserted a bogus line break.
55
56         This all happened because the helper function that is used to add in the border etc.
57         from inline ancestors was crawling up the tree each time. It doesn't need to do that, it
58         should stop crawling up the tree when the current object is not the first or last sibling below a parent.
59
60         Test: fast/inline/bpm-inline-ancestors.html
61
62         * rendering/RenderBlockLineLayout.cpp:
63         (WebCore::shouldAddBorderPaddingMargin): Broke this check out into a helper function so that it 
64         can help inlineLogicalWidth() return early and also treat empty RenderTexts the same as no previous/next
65         sibling on the line. This ensures that collapsed leading space does not interfere with the decision to
66         crawl up the ancestors accumulating border, padding, and margin.
67         (WebCore):
68         (WebCore::inlineLogicalWidth): Return early once the current child is no longer on the edge of its line - 
69         this ensures the border, padding and margin of ancestors is not counted twice. 
70
71 2012-10-08  Mike West  <mkwst@chromium.org>
72
73         Null-check for DOMWindow before feeding it to FeatureObserver.
74         https://bugs.webkit.org/show_bug.cgi?id=98624
75
76         Reviewed by Adam Barth.
77
78         We shouldn't call out to FeatureObserver in
79         ContentSecurityPolicy::didReceiveHeader if the policy's document doesn't
80         have a DOMWindow.
81
82         Test: http/tests/security/contentSecurityPolicy/xmlhttprequest-protected-resource-does-not-crash.html
83
84         * page/ContentSecurityPolicy.cpp:
85         (WebCore::ContentSecurityPolicy::didReceiveHeader):
86             Null check 'document->domWindow' before passing it on.
87         * page/FeatureObserver.cpp:
88         (WebCore::FeatureObserver::observe):
89             ASSERT 'domWindow'.
90
91 2012-10-08  Nate Chapin  <japhet@chromium.org>
92
93         Loader cleanup : Simplify FrameLoader/DocumentLoader setupForReplace()
94         https://bugs.webkit.org/show_bug.cgi?id=49072
95
96         Reviewed by Eric Seidel.
97
98         This patch contains one small known behavior change: multipart/x-mixed-replace main resources with text/html parts
99         will no longer load the text/html progressively. In practice, loading the html progressively causes the document
100         to get cleared as soon as the next part's data starts arriving, which leads to a blank page most of the time. This case
101         seems to be pathological, as IE, FF, Opera and WebKit all do something different currently. This patch will cause
102         us to behave like Firefox, which is the most sane of the current behaviors.
103
104         Test: http/tests/multipart/multipart-html.php
105
106         * loader/DocumentLoader.cpp:
107         (WebCore::DocumentLoader::commitData): Use isMultipartReplacingLoad() helper.
108         (WebCore::DocumentLoader::receivedData):
109         (WebCore::DocumentLoader::setupForReplace): Renamed from setupForReplaceByMIMEType(). Call maybeFinishLoadingMultipartContent()
110             instead of doing identical work inline. After we call frameLoader()->setReplacing(), we will never load progressively, so remove
111             the if (doesProgressiveLoad(newMIMEType)) {} block.
112         (WebCore::DocumentLoader::isMultipartReplacingLoad):
113         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent): Inline the old DocumentLoader::setupForeReplace(), check
114             frameLoader()->isReplacing() instead of the delete doesProgressiveLoad().
115         * loader/DocumentLoader.h:
116         * loader/FrameLoader.cpp:
117         (WebCore::FrameLoader::setupForReplace): Move all calls to revertToProvisionalState here.
118         * loader/MainResourceLoader.cpp:
119         (WebCore::MainResourceLoader::didReceiveResponse): Call setupForReplace(), renamed from setupForReplaceByMIMEType().
120
121 2012-10-08  Zoltan Horvath  <zoltan@webkit.org>
122
123         [Qt] r122720 causes performance regression with DirectFB on ARMv7
124         https://bugs.webkit.org/show_bug.cgi?id=97548
125
126         Reviewed by Jocelyn Turcotte.
127
128         Revert the rest of r122720. This change modifies the NativeImagePtr from QImage* to QPixmap*.
129
130         Covered by existing tests.
131
132         * bridge/qt/qt_pixmapruntime.cpp:
133         (JSC::Bindings::assignToHTMLImageElement):
134         (JSC::Bindings::QtPixmapRuntime::toQt):
135         * platform/DragImage.h:
136         (WebCore):
137         * platform/graphics/GraphicsContext.h:
138         (GraphicsContext):
139         * platform/graphics/Image.h:
140         (Image):
141         * platform/graphics/NativeImagePtr.h:
142         (WebCore):
143         * platform/graphics/gstreamer/ImageGStreamer.h:
144         * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
145         (ImageGStreamer::ImageGStreamer):
146         * platform/graphics/qt/GraphicsContext3DQt.cpp:
147         (WebCore::GraphicsContext3D::getImageData):
148         * platform/graphics/qt/GraphicsContextQt.cpp:
149         (WebCore::GraphicsContext::pushTransparencyLayerInternal):
150         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
151         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
152         * platform/graphics/qt/ImageBufferDataQt.h:
153         (ImageBufferData):
154         * platform/graphics/qt/ImageBufferQt.cpp:
155         (WebCore::ImageBufferData::ImageBufferData):
156         (WebCore):
157         (WebCore::ImageBufferData::toQImage):
158         (WebCore::ImageBuffer::copyImage):
159         (WebCore::ImageBuffer::clip):
160         (WebCore::ImageBuffer::platformTransformColorSpace):
161         (WebCore::getImageData):
162         (WebCore::ImageBuffer::putByteArray):
163         (WebCore::encodeImage):
164         (WebCore::ImageBuffer::toDataURL):
165         * platform/graphics/qt/ImageDecoderQt.cpp:
166         (WebCore::ImageFrame::asNewNativeImage):
167         * platform/graphics/qt/ImageQt.cpp:
168         (graphics):
169         (loadResourcePixmap):
170         (WebCore::Image::loadPlatformResource):
171         (WebCore::Image::setPlatformResource):
172         (WebCore::Image::drawPattern):
173         (WebCore::BitmapImage::BitmapImage):
174         (WebCore::BitmapImage::draw):
175         (WebCore::BitmapImage::checkForSolidColor):
176         (WebCore::BitmapImage::create):
177         * platform/graphics/qt/PatternQt.cpp:
178         (WebCore::Pattern::createPlatformPattern):
179         * platform/graphics/qt/StillImageQt.cpp:
180         (WebCore::StillImage::StillImage):
181         (WebCore::StillImage::~StillImage):
182         (WebCore::StillImage::currentFrameHasAlpha):
183         (WebCore::StillImage::size):
184         (WebCore::StillImage::nativeImageForCurrentFrame):
185         (WebCore::StillImage::draw):
186         * platform/graphics/qt/StillImageQt.h:
187         (WebCore::StillImage::create):
188         (WebCore::StillImage::createForRendering):
189         (StillImage):
190         * platform/graphics/qt/TransparencyLayer.h:
191         (WebCore::TransparencyLayer::TransparencyLayer):
192         (TransparencyLayer):
193         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
194         (WebCore::GraphicsSurface::createReadOnlyImage):
195         * platform/graphics/texmap/TextureMapperGL.cpp:
196         (WebCore::BitmapTextureGL::updateContents):
197         * platform/qt/ClipboardQt.cpp:
198         (WebCore::ClipboardQt::createDragImage):
199         (WebCore::ClipboardQt::declareAndWriteDragImage):
200         * platform/qt/CursorQt.cpp:
201         (WebCore::createCustomCursor):
202         * platform/qt/DragImageQt.cpp:
203         (WebCore::createDragImageFromImage):
204         * platform/qt/PasteboardQt.cpp:
205         (WebCore::Pasteboard::writeImage):
206
207 2012-10-08  Carlos Garcia Campos  <cgarcia@igalia.com>
208
209         Unreviewed. Fix make distcheck.
210
211         * GNUmakefile.list.am: Add missing header file to compilation.
212
213 2012-10-08  Sheriff Bot  <webkit.review.bot@gmail.com>
214
215         Unreviewed, rolling out r130619.
216         http://trac.webkit.org/changeset/130619
217         https://bugs.webkit.org/show_bug.cgi?id=98634
218
219         Causes many crashes on the EFL bots. (Requested by rakuco on
220         #webkit).
221
222         * platform/RunLoop.h:
223         (RunLoop):
224         * platform/efl/RunLoopEfl.cpp:
225         (WebCore::RunLoop::RunLoop):
226         (WebCore::RunLoop::wakeUpEvent):
227         (WebCore::RunLoop::wakeUp):
228
229 2012-10-08  Byungwoo Lee  <bw80.lee@samsung.com>
230
231         [EFL] Use ecore_main_loop_thread_safe_call_async() to wakeup main loop.
232         https://bugs.webkit.org/show_bug.cgi?id=98505
233
234         Reviewed by Kenneth Rohde Christiansen.
235
236         Instead of ecore_pipe_write(),
237         use ecore_main_loop_thread_safe_call_async() to wakeup ecore main loop.
238
239         According to the EFL API document, this function is designed to dispatch
240         a function on ecore main loop by avoiding dead lock or race condition. 
241         With this function, webkit doesn't need to maintain ecore pipe also.
242
243         No new tests. The function to wakeup main loop is changed.
244
245         * platform/RunLoop.h:
246         (RunLoop):
247         * platform/efl/RunLoopEfl.cpp:
248         (WebCore::RunLoop::RunLoop):
249         (WebCore::RunLoop::wakeUpEvent):
250         (WebCore::RunLoop::wakeUp):
251
252 2012-10-07  Arpita Bahuguna  <arpitabahuguna@gmail.com>
253
254         :first-line pseudo selector ignoring words created from :before
255         https://bugs.webkit.org/show_bug.cgi?id=80794
256
257         Reviewed by Daniel Bates.
258
259         The :first-line pseudo-element style is not applied for content
260         which is generated from the :before/:after pseudo-elements.
261
262         Test: fast/css/first-line-style-for-before-after-content.html
263
264         * rendering/RenderObject.cpp:
265         (WebCore::firstLineStyleForCachedUncachedType):
266         Added a new static helper function incorporating the common
267         functionality of both uncachedFirstLineStyle() and firstLineStyleSlowCase()
268         functions. It also modifies the functionality to handle the
269         scenario when :first-line style needs to be applied on content
270         generated from :before/:after.
271
272         While getting the :first-line style we should also consider the case
273         when the content is generated from a :before/:after pseudo-element in
274         which case the RenderInline's parent should be considered for
275         obtaining the first-line style.
276
277         (WebCore):
278         (WebCore::RenderObject::uncachedFirstLineStyle):
279         (WebCore::RenderObject::firstLineStyleSlowCase):
280         Moved the duplicate code between the two functions to the common
281         helper function firstLineStyleForCachedUncachedType().
282
283 2012-10-07  Peter Wang  <peter.wang@torchmobile.com.cn>
284
285         Web Inspector: The front-end should provide the position in original source file when set a breakpoint
286         https://bugs.webkit.org/show_bug.cgi?id=93473
287
288         Reviewed by Yury Semikhatsky.
289
290         Since frontend truncates the indent, the first statement in a line must match the breakpoint (line, 0).
291         With this patch JSC debugger can support both normal and "Pretty Print" mode.
292
293         No new test case. This patch can be verified with cases in "LayoutTests/inspector/debugger/".
294
295         * bindings/js/ScriptDebugServer.cpp:
296         (WebCore::ScriptDebugServer::ScriptDebugServer):
297         (WebCore::ScriptDebugServer::hasBreakpoint):
298         (WebCore::ScriptDebugServer::createCallFrameAndPauseIfNeeded):
299         (WebCore::ScriptDebugServer::pauseIfNeeded):
300         * bindings/js/ScriptDebugServer.h:
301         (ScriptDebugServer):
302
303 2012-10-07  Martin Robinson  <mrobinson@igalia.com>
304
305         [Soup] Clean up ResourceError creation
306         https://bugs.webkit.org/show_bug.cgi?id=98521
307
308         Reviewed by Carlos Garcia Campos.
309
310         Simplify the creation of ResourcErrors in ResourceHandleSoup. This is
311         part of a process to make the libsoup networking backend more hackable.
312
313         No new tests. This shouldn't change functionality.
314
315         * GNUmakefile.list.am: Added new file.
316         * PlatformEfl.cmake: Added new file.
317         * platform/network/soup/ResourceError.h:
318         (ResourceError): Added new factories.
319         * platform/network/soup/ResourceErrorSoup.cpp: Added.
320         (WebCore::failingURI): Added this helper.
321         (WebCore::ResourceError::httpError): New factory.
322         (WebCore::ResourceError::genericIOError): Ditto.
323         (WebCore::ResourceError::tlsError): Ditto.
324         (WebCore::ResourceError::timeoutError): Ditto.
325         * platform/network/soup/ResourceHandleSoup.cpp:
326         (WebCore::handleUnignoredTLSErrors): Created this helper which merges
327         some of the logic from sendRequestCallback.
328         (WebCore::sendRequestCallback): Use the new helper.
329         (WebCore::requestTimeoutCallback): Use the new factory.
330
331 2012-10-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
332
333         Rename first/second to key/value in HashMap iterators
334         https://bugs.webkit.org/show_bug.cgi?id=82784
335
336         Reviewed by Eric Seidel.
337
338         * Modules/geolocation/Geolocation.cpp:
339         (WebCore::Geolocation::Watchers::find):
340         (WebCore::Geolocation::Watchers::remove):
341         * Modules/indexeddb/IDBDatabase.cpp:
342         (WebCore::IDBDatabase::objectStoreNames):
343         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
344         (WebCore::IDBDatabaseBackendImpl::metadata):
345         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
346         (WebCore::IDBFactoryBackendImpl::deleteDatabase):
347         (WebCore::IDBFactoryBackendImpl::openBackingStore):
348         (WebCore::IDBFactoryBackendImpl::open):
349         * Modules/indexeddb/IDBObjectStore.cpp:
350         (WebCore::IDBObjectStore::indexNames):
351         (WebCore::IDBObjectStore::put):
352         (WebCore::IDBObjectStore::index):
353         (WebCore::IDBObjectStore::deleteIndex):
354         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
355         (WebCore::IDBObjectStoreBackendImpl::metadata):
356         (WebCore::makeIndexWriters):
357         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
358         * Modules/indexeddb/IDBTransaction.cpp:
359         (WebCore::IDBTransaction::objectStore):
360         (WebCore::IDBTransaction::objectStoreDeleted):
361         (WebCore::IDBTransaction::onAbort):
362         (WebCore::IDBTransaction::dispatchEvent):
363         * Modules/mediastream/MediaConstraintsImpl.cpp:
364         (WebCore::MediaConstraintsImpl::getMandatoryConstraints):
365         (WebCore::MediaConstraintsImpl::getMandatoryConstraintValue):
366         * Modules/webdatabase/AbstractDatabase.cpp:
367         (WebCore::AbstractDatabase::performOpenAndVerify):
368         * Modules/webdatabase/DatabaseTracker.cpp:
369         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
370         * Modules/webdatabase/OriginUsageRecord.cpp:
371         (WebCore::OriginUsageRecord::diskUsage):
372         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
373         (WebCore::SQLTransactionCoordinator::acquireLock):
374         (WebCore::SQLTransactionCoordinator::releaseLock):
375         (WebCore::SQLTransactionCoordinator::shutdown):
376         * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
377         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
378         * Modules/webdatabase/chromium/QuotaTracker.cpp:
379         (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
380         (WebCore::QuotaTracker::updateDatabaseSize):
381         * Modules/websockets/WebSocketDeflateFramer.cpp:
382         (WebCore::WebSocketExtensionDeflateFrame::processResponse):
383         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
384         (WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
385         * accessibility/AXObjectCache.cpp:
386         (WebCore::AXObjectCache::~AXObjectCache):
387         * bindings/gobject/DOMObjectCache.cpp:
388         (WebKit::DOMObjectCache::clearByFrame):
389         * bindings/js/DOMObjectHashTableMap.h:
390         (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
391         (WebCore::DOMObjectHashTableMap::get):
392         * bindings/js/JSDOMBinding.cpp:
393         (WebCore::cacheDOMStructure):
394         * bindings/js/JSDOMGlobalObject.cpp:
395         (WebCore::JSDOMGlobalObject::visitChildren):
396         * bindings/js/JSDOMGlobalObject.h:
397         (WebCore::getDOMConstructor):
398         * bindings/js/PageScriptDebugServer.cpp:
399         (WebCore::PageScriptDebugServer::addListener):
400         (WebCore::PageScriptDebugServer::removeListener):
401         * bindings/js/ScriptCachedFrameData.cpp:
402         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
403         (WebCore::ScriptCachedFrameData::restore):
404         * bindings/js/ScriptController.cpp:
405         (WebCore::ScriptController::~ScriptController):
406         (WebCore::ScriptController::clearWindowShell):
407         (WebCore::ScriptController::attachDebugger):
408         (WebCore::ScriptController::updateDocument):
409         (WebCore::ScriptController::createRootObject):
410         (WebCore::ScriptController::collectIsolatedContexts):
411         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
412         (WebCore::ScriptController::clearScriptObjects):
413         * bindings/js/ScriptController.h:
414         (WebCore::ScriptController::windowShell):
415         (WebCore::ScriptController::existingWindowShell):
416         * bindings/js/ScriptDebugServer.cpp:
417         (WebCore::ScriptDebugServer::setBreakpoint):
418         (WebCore::ScriptDebugServer::removeBreakpoint):
419         (WebCore::ScriptDebugServer::hasBreakpoint):
420         * bindings/js/SerializedScriptValue.cpp:
421         (WebCore::CloneSerializer::checkForDuplicate):
422         (WebCore::CloneSerializer::dumpIfTerminal):
423         (WebCore::CloneSerializer::write):
424         * bindings/scripts/CodeGeneratorV8.pm:
425         (GenerateImplementation):
426         * bindings/scripts/test/V8/V8Float64Array.cpp:
427         (WebCore::V8Float64Array::GetRawTemplate):
428         (WebCore::V8Float64Array::GetTemplate):
429         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
430         (WebCore::V8TestActiveDOMObject::GetRawTemplate):
431         (WebCore::V8TestActiveDOMObject::GetTemplate):
432         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
433         (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
434         (WebCore::V8TestCustomNamedGetter::GetTemplate):
435         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
436         (WebCore::V8TestEventConstructor::GetRawTemplate):
437         (WebCore::V8TestEventConstructor::GetTemplate):
438         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
439         (WebCore::V8TestEventTarget::GetRawTemplate):
440         (WebCore::V8TestEventTarget::GetTemplate):
441         * bindings/scripts/test/V8/V8TestException.cpp:
442         (WebCore::V8TestException::GetRawTemplate):
443         (WebCore::V8TestException::GetTemplate):
444         * bindings/scripts/test/V8/V8TestInterface.cpp:
445         (WebCore::V8TestInterface::GetRawTemplate):
446         (WebCore::V8TestInterface::GetTemplate):
447         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
448         (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
449         (WebCore::V8TestMediaQueryListListener::GetTemplate):
450         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
451         (WebCore::V8TestNamedConstructor::GetRawTemplate):
452         (WebCore::V8TestNamedConstructor::GetTemplate):
453         * bindings/scripts/test/V8/V8TestNode.cpp:
454         (WebCore::V8TestNode::GetRawTemplate):
455         (WebCore::V8TestNode::GetTemplate):
456         * bindings/scripts/test/V8/V8TestObj.cpp:
457         (WebCore::V8TestObj::GetRawTemplate):
458         (WebCore::V8TestObj::GetTemplate):
459         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
460         (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
461         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
462         * bindings/v8/DOMWrapperWorld.cpp:
463         (WebCore::DOMWrapperWorld::deallocate):
464         (WebCore::DOMWrapperWorld::ensureIsolatedWorld):
465         * bindings/v8/NPV8Object.cpp:
466         (WebCore::freeV8NPObject):
467         (WebCore::npCreateV8ScriptObject):
468         * bindings/v8/ScriptController.cpp:
469         (WebCore::ScriptController::clearScriptObjects):
470         (WebCore::ScriptController::resetIsolatedWorlds):
471         (WebCore::ScriptController::ensureIsolatedWorldContext):
472         (WebCore::ScriptController::existingWindowShellInternal):
473         (WebCore::ScriptController::evaluateInIsolatedWorld):
474         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
475         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
476         (WebCore::ScriptController::collectIsolatedContexts):
477         * bindings/v8/SerializedScriptValue.cpp:
478         * bindings/v8/V8DOMMap.h:
479         (WebCore::WeakReferenceMap::removeIfPresent):
480         (WebCore::WeakReferenceMap::visit):
481         * bindings/v8/V8PerContextData.cpp:
482         (WebCore::V8PerContextData::dispose):
483         * bindings/v8/npruntime.cpp:
484         * bridge/IdentifierRep.cpp:
485         (WebCore::IdentifierRep::get):
486         * bridge/NP_jsobject.cpp:
487         (ObjectMap::add):
488         (ObjectMap::remove):
489         * bridge/runtime_root.cpp:
490         (JSC::Bindings::RootObject::invalidate):
491         * css/CSSCanvasValue.cpp:
492         (WebCore::CSSCanvasValue::canvasChanged):
493         (WebCore::CSSCanvasValue::canvasResized):
494         * css/CSSComputedStyleDeclaration.cpp:
495         (WebCore::counterToCSSValue):
496         * css/CSSCrossfadeValue.cpp:
497         (WebCore::CSSCrossfadeValue::crossfadeChanged):
498         * css/CSSFontFaceSource.cpp:
499         (WebCore::CSSFontFaceSource::getFontData):
500         * css/CSSFontSelector.cpp:
501         (WebCore::CSSFontSelector::addFontFaceRule):
502         (WebCore::CSSFontSelector::getFontData):
503         * css/CSSImageGeneratorValue.cpp:
504         (WebCore::CSSImageGeneratorValue::addClient):
505         (WebCore::CSSImageGeneratorValue::removeClient):
506         (WebCore::CSSImageGeneratorValue::getImage):
507         * css/CSSSegmentedFontFace.cpp:
508         (WebCore::CSSSegmentedFontFace::getFontData):
509         * css/CSSSelector.cpp:
510         (WebCore::CSSSelector::parsePseudoType):
511         * css/CSSValuePool.cpp:
512         (WebCore::CSSValuePool::createColorValue):
513         (WebCore::CSSValuePool::createFontFamilyValue):
514         (WebCore::CSSValuePool::createFontFaceValue):
515         * css/PropertySetCSSStyleDeclaration.cpp:
516         (WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
517         * css/RuleSet.cpp:
518         (WebCore::reportAtomRuleMap):
519         (WebCore::RuleSet::addToRuleSet):
520         (WebCore::shrinkMapVectorsToFit):
521         * css/StyleBuilder.cpp:
522         (WebCore::ApplyPropertyCounter::applyInheritValue):
523         (WebCore::ApplyPropertyCounter::applyValue):
524         * css/StyleResolver.cpp:
525         (WebCore::StyleResolver::collectFeatures):
526         (WebCore::StyleResolver::ruleSetForScope):
527         (WebCore::StyleResolver::appendAuthorStylesheets):
528         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
529         (WebCore::StyleResolver::collectMatchingRulesForList):
530         * css/StyleSheetContents.cpp:
531         (WebCore::StyleSheetContents::parserAddNamespace):
532         (WebCore::StyleSheetContents::determineNamespace):
533         * dom/CheckedRadioButtons.cpp:
534         (WebCore::CheckedRadioButtons::addButton):
535         (WebCore::CheckedRadioButtons::removeButton):
536         * dom/ChildListMutationScope.cpp:
537         (WebCore::ChildListMutationAccumulator::getOrCreate):
538         * dom/Document.cpp:
539         (WebCore::Document::windowNamedItems):
540         (WebCore::Document::documentNamedItems):
541         (WebCore::Document::getCSSCanvasElement):
542         (WebCore::Document::cachedImmutableAttributeData):
543         (WebCore::Document::getCachedLocalizer):
544         * dom/DocumentMarkerController.cpp:
545         (WebCore::DocumentMarkerController::markerContainingPoint):
546         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
547         (WebCore::DocumentMarkerController::removeMarkers):
548         (WebCore::DocumentMarkerController::repaintMarkers):
549         (WebCore::DocumentMarkerController::invalidateRenderedRectsForMarkersInRect):
550         (WebCore::DocumentMarkerController::showMarkers):
551         * dom/DocumentOrderedMap.cpp:
552         (WebCore::DocumentOrderedMap::remove):
553         * dom/DocumentStyleSheetCollection.cpp:
554         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
555         * dom/ElementAttributeData.cpp:
556         (WebCore::ensureAttrListForElement):
557         * dom/EventDispatcher.cpp:
558         (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
559         * dom/IdTargetObserverRegistry.cpp:
560         (WebCore::IdTargetObserverRegistry::addObserver):
561         (WebCore::IdTargetObserverRegistry::removeObserver):
562         * dom/MutationObserverInterestGroup.cpp:
563         (WebCore::MutationObserverInterestGroup::isOldValueRequested):
564         (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
565         * dom/Node.cpp:
566         (WebCore::Node::dumpStatistics):
567         (WebCore::Node::clearRareData):
568         (WebCore::NodeListsNodeData::invalidateCaches):
569         (WebCore::collectMatchingObserversForMutation):
570         * dom/NodeRareData.h:
571         (WebCore::NodeListsNodeData::addCacheWithAtomicName):
572         (WebCore::NodeListsNodeData::addCacheWithName):
573         (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
574         (WebCore::NodeListsNodeData::adoptTreeScope):
575         * dom/ProcessingInstruction.cpp:
576         (WebCore::ProcessingInstruction::checkStyleSheet):
577         * dom/ScriptExecutionContext.cpp:
578         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
579         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
580         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
581         (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
582         (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
583         * dom/SelectorQuery.cpp:
584         (WebCore::SelectorQueryCache::add):
585         * dom/SpaceSplitString.cpp:
586         (WebCore::SpaceSplitStringData::create):
587         * dom/StyledElement.cpp:
588         (WebCore::StyledElement::updateAttributeStyle):
589         * editing/mac/AlternativeTextUIController.mm:
590         (WebCore::AlternativeTextUIController::AlernativeTextContextController::alternativesForContext):
591         * html/FormController.cpp:
592         (WebCore::SavedFormState::serializeTo):
593         (WebCore::SavedFormState::appendControlState):
594         (WebCore::SavedFormState::takeControlState):
595         (WebCore::SavedFormState::getReferencedFilePaths):
596         (WebCore::FormKeyGenerator::formKey):
597         (WebCore::FormController::createSavedFormStateMap):
598         (WebCore::FormController::formElementsState):
599         (WebCore::FormController::takeStateForFormElement):
600         (WebCore::FormController::getReferencedFilePaths):
601         * html/HTMLCollection.cpp:
602         (WebCore::HTMLCollectionCacheBase::append):
603         * html/canvas/WebGLFramebuffer.cpp:
604         (WebCore::WebGLFramebuffer::getAttachment):
605         (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
606         (WebCore::WebGLFramebuffer::checkStatus):
607         (WebCore::WebGLFramebuffer::deleteObjectImpl):
608         (WebCore::WebGLFramebuffer::initializeAttachments):
609         * inspector/CodeGeneratorInspector.py:
610         * inspector/DOMPatchSupport.cpp:
611         (WebCore::DOMPatchSupport::diff):
612         (WebCore::DOMPatchSupport::innerPatchChildren):
613         (WebCore::DOMPatchSupport::removeChildAndMoveToNew):
614         * inspector/InjectedScriptManager.cpp:
615         (WebCore::InjectedScriptManager::injectedScriptForId):
616         (WebCore::InjectedScriptManager::injectedScriptIdFor):
617         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
618         (WebCore::InjectedScriptManager::releaseObjectGroup):
619         (WebCore::InjectedScriptManager::injectedScriptFor):
620         * inspector/InspectorCSSAgent.cpp:
621         (WebCore::SelectorProfile::commitSelector):
622         (WebCore::SelectorProfile::commitSelectorTime):
623         (WebCore::SelectorProfile::toInspectorObject):
624         (WebCore::UpdateRegionLayoutTask::onTimer):
625         (WebCore::InspectorCSSAgent::forcePseudoState):
626         (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
627         (WebCore::InspectorCSSAgent::assertStyleSheetForId):
628         (WebCore::InspectorCSSAgent::didRemoveDOMNode):
629         (WebCore::InspectorCSSAgent::didModifyDOMAttr):
630         (WebCore::InspectorCSSAgent::resetPseudoStates):
631         * inspector/InspectorConsoleAgent.cpp:
632         (WebCore::InspectorConsoleAgent::stopTiming):
633         (WebCore::InspectorConsoleAgent::count):
634         * inspector/InspectorDOMAgent.cpp:
635         (WebCore::InspectorDOMAgent::nodeForId):
636         (WebCore::InspectorDOMAgent::performSearch):
637         (WebCore::InspectorDOMAgent::getSearchResults):
638         * inspector/InspectorDOMDebuggerAgent.cpp:
639         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
640         * inspector/InspectorDOMStorageAgent.cpp:
641         (WebCore::InspectorDOMStorageAgent::clearFrontend):
642         (WebCore::InspectorDOMStorageAgent::enable):
643         (WebCore::InspectorDOMStorageAgent::storageId):
644         (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
645         (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
646         (WebCore::InspectorDOMStorageAgent::memoryBytesUsedByStorageCache):
647         * inspector/InspectorDatabaseAgent.cpp:
648         (WebCore::InspectorDatabaseAgent::enable):
649         (WebCore::InspectorDatabaseAgent::databaseId):
650         (WebCore::InspectorDatabaseAgent::findByFileName):
651         (WebCore::InspectorDatabaseAgent::databaseForId):
652         * inspector/InspectorDebuggerAgent.cpp:
653         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
654         (WebCore::InspectorDebuggerAgent::removeBreakpoint):
655         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
656         (WebCore::InspectorDebuggerAgent::searchInContent):
657         (WebCore::InspectorDebuggerAgent::getScriptSource):
658         (WebCore::InspectorDebuggerAgent::didParseSource):
659         * inspector/InspectorIndexedDBAgent.cpp:
660         (WebCore):
661         * inspector/InspectorMemoryAgent.cpp:
662         (WebCore):
663         * inspector/InspectorPageAgent.cpp:
664         (WebCore::cachedResourcesForFrame):
665         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
666         (WebCore::InspectorPageAgent::frameDetached):
667         * inspector/InspectorProfilerAgent.cpp:
668         (WebCore::InspectorProfilerAgent::getProfileHeaders):
669         (WebCore):
670         (WebCore::InspectorProfilerAgent::getProfile):
671         * inspector/InspectorResourceAgent.cpp:
672         (WebCore::buildObjectForHeaders):
673         (WebCore::InspectorResourceAgent::willSendRequest):
674         (WebCore::InspectorResourceAgent::documentThreadableLoaderStartedLoadingForClient):
675         (WebCore::InspectorResourceAgent::willLoadXHR):
676         (WebCore::InspectorResourceAgent::replayXHR):
677         * inspector/InspectorState.cpp:
678         (WebCore::InspectorState::getBoolean):
679         (WebCore::InspectorState::getString):
680         (WebCore::InspectorState::getLong):
681         (WebCore::InspectorState::getDouble):
682         (WebCore::InspectorState::getObject):
683         * inspector/InspectorStyleSheet.cpp:
684         (WebCore::InspectorStyle::styleWithProperties):
685         (WebCore::InspectorStyleSheet::inspectorStyleForId):
686         * inspector/InspectorValues.cpp:
687         (WebCore::InspectorObjectBase::get):
688         (WebCore::InspectorObjectBase::writeJSON):
689         * inspector/InspectorWorkerAgent.cpp:
690         (WebCore::InspectorWorkerAgent::workerContextTerminated):
691         (WebCore::InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers):
692         (WebCore::InspectorWorkerAgent::destroyWorkerFrontendChannels):
693         * inspector/MemoryInstrumentationImpl.cpp:
694         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
695         * inspector/MemoryInstrumentationImpl.h:
696         (WebCore::MemoryInstrumentationClientImpl::totalSize):
697         (WebCore::MemoryInstrumentationClientImpl::reportedSizeForAllTypes):
698         * inspector/NetworkResourcesData.cpp:
699         (WebCore::NetworkResourcesData::setXHRReplayData):
700         (WebCore::NetworkResourcesData::removeCachedResource):
701         (WebCore::NetworkResourcesData::clear):
702         * loader/CrossOriginAccessControl.cpp:
703         (WebCore::isSimpleCrossOriginAccessRequest):
704         (WebCore::createAccessControlPreflightRequest):
705         * loader/CrossOriginPreflightResultCache.cpp:
706         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
707         (WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
708         * loader/DocumentLoader.cpp:
709         (WebCore::DocumentLoader::getSubresources):
710         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
711         * loader/MainResourceLoader.cpp:
712         (WebCore::MainResourceLoader::didReceiveResponse):
713         * loader/ResourceLoadScheduler.cpp:
714         (WebCore::ResourceLoadScheduler::servePendingRequests):
715         * loader/appcache/ApplicationCache.cpp:
716         (WebCore::ApplicationCache::removeResource):
717         (WebCore::ApplicationCache::clearStorageID):
718         (WebCore::ApplicationCache::dump):
719         * loader/appcache/ApplicationCacheGroup.cpp:
720         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
721         (WebCore::ApplicationCacheGroup::startLoadingEntry):
722         (WebCore::ApplicationCacheGroup::addEntry):
723         * loader/appcache/ApplicationCacheHost.cpp:
724         (WebCore::ApplicationCacheHost::fillResourceList):
725         * loader/appcache/ApplicationCacheResource.cpp:
726         (WebCore::ApplicationCacheResource::estimatedSizeInStorage):
727         * loader/appcache/ApplicationCacheStorage.cpp:
728         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
729         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
730         (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
731         (WebCore::ApplicationCacheStorage::store):
732         (WebCore::ApplicationCacheStorage::empty):
733         (WebCore::ApplicationCacheStorage::storeCopyOfCache):
734         * loader/archive/ArchiveFactory.cpp:
735         (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
736         * loader/cache/CachedRawResource.cpp:
737         (WebCore::CachedRawResource::canReuse):
738         * loader/cache/CachedResource.cpp:
739         (WebCore::CachedResource::switchClientsToRevalidatedResource):
740         (WebCore::CachedResource::updateResponseAfterRevalidation):
741         * loader/cache/CachedResourceClientWalker.h:
742         (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
743         * loader/cache/CachedResourceLoader.cpp:
744         (WebCore::CachedResourceLoader::~CachedResourceLoader):
745         (WebCore::CachedResourceLoader::requestResource):
746         (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
747         (WebCore::CachedResourceLoader::removeCachedResource):
748         (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
749         * loader/cache/MemoryCache.cpp:
750         (WebCore::MemoryCache::removeResourcesWithOrigin):
751         (WebCore::MemoryCache::getOriginsWithCache):
752         (WebCore::MemoryCache::getStatistics):
753         (WebCore::MemoryCache::setDisabled):
754         * loader/icon/IconDatabase.cpp:
755         (WebCore::IconDatabase::removeAllIcons):
756         (WebCore::IconDatabase::iconRecordCountWithData):
757         (WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
758         * page/DOMWindow.cpp:
759         (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
760         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
761         * page/EventHandler.cpp:
762         (WebCore::EventHandler::handleTouchEvent):
763         * page/Frame.cpp:
764         (WebCore::Frame::injectUserScripts):
765         * page/PageGroup.cpp:
766         (WebCore::PageGroup::pageGroup):
767         (WebCore::PageGroup::closeLocalStorage):
768         (WebCore::PageGroup::clearLocalStorageForAllOrigins):
769         (WebCore::PageGroup::clearLocalStorageForOrigin):
770         (WebCore::PageGroup::syncLocalStorage):
771         (WebCore::PageGroup::addUserScriptToWorld):
772         (WebCore::PageGroup::addUserStyleSheetToWorld):
773         (WebCore::PageGroup::removeUserScriptFromWorld):
774         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
775         * page/PageSerializer.cpp:
776         (WebCore::PageSerializer::urlForBlankFrame):
777         * page/SecurityPolicy.cpp:
778         (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
779         (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
780         * page/Settings.cpp:
781         (WebCore::setGenericFontFamilyMap):
782         (WebCore::getGenericFontFamilyForScript):
783         * page/SpeechInput.cpp:
784         (WebCore::SpeechInput::registerListener):
785         * page/TouchDisambiguation.cpp:
786         (WebCore::findGoodTouchTargets):
787         * page/WindowFeatures.cpp:
788         (WebCore::WindowFeatures::boolFeature):
789         (WebCore::WindowFeatures::floatFeature):
790         * page/animation/AnimationController.cpp:
791         (WebCore::AnimationControllerPrivate::updateAnimations):
792         (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
793         (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
794         (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
795         * page/animation/CompositeAnimation.cpp:
796         (WebCore::CompositeAnimation::clearRenderer):
797         (WebCore::CompositeAnimation::updateTransitions):
798         (WebCore::CompositeAnimation::updateKeyframeAnimations):
799         (WebCore::CompositeAnimation::animate):
800         (WebCore::CompositeAnimation::getAnimatedStyle):
801         (WebCore::CompositeAnimation::setAnimating):
802         (WebCore::CompositeAnimation::timeToNextService):
803         (WebCore::CompositeAnimation::getAnimationForProperty):
804         (WebCore::CompositeAnimation::suspendAnimations):
805         (WebCore::CompositeAnimation::resumeAnimations):
806         (WebCore::CompositeAnimation::overrideImplicitAnimations):
807         (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
808         (WebCore::CompositeAnimation::isAnimatingProperty):
809         (WebCore::CompositeAnimation::numberOfActiveAnimations):
810         * platform/Language.cpp:
811         (WebCore::languageDidChange):
812         * platform/MIMETypeRegistry.cpp:
813         (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
814         * platform/audio/HRTFElevation.cpp:
815         (WebCore::getConcatenatedImpulseResponsesForSubject):
816         * platform/blackberry/CookieManager.cpp:
817         (WebCore::CookieManager::generateHtmlFragmentForCookies):
818         (WebCore::CookieManager::removeAllCookies):
819         * platform/blackberry/CookieMap.cpp:
820         (WebCore::CookieMap::removeOldestCookie):
821         (WebCore::CookieMap::getAllChildCookies):
822         * platform/cf/BinaryPropertyList.cpp:
823         (WebCore::BinaryPropertyListPlan::writeIntegerArray):
824         * platform/chromium/support/WebHTTPLoadInfo.cpp:
825         (WebKit::addHeader):
826         * platform/chromium/support/WebURLRequest.cpp:
827         (WebKit::WebURLRequest::visitHTTPHeaderFields):
828         * platform/chromium/support/WebURLResponse.cpp:
829         (WebKit::WebURLResponse::addHTTPHeaderField):
830         (WebKit::WebURLResponse::visitHTTPHeaderFields):
831         * platform/graphics/DisplayRefreshMonitor.cpp:
832         (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
833         (WebCore::DisplayRefreshMonitorManager::unregisterClient):
834         * platform/graphics/FontCache.cpp:
835         (WebCore::FontCache::getCachedFontPlatformData):
836         (WebCore::FontCache::getVerticalData):
837         (WebCore::FontCache::getCachedFontData):
838         (WebCore::FontCache::releaseFontData):
839         (WebCore::FontCache::purgeInactiveFontData):
840         * platform/graphics/GlyphPageTreeNode.cpp:
841         (WebCore::GlyphPageTreeNode::treeGlyphPageCount):
842         (WebCore::GlyphPageTreeNode::pageCount):
843         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
844         (WebCore::GlyphPageTreeNode::pruneTreeFontData):
845         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
846         (WebCore::GlyphPageTreeNode::pruneFontData):
847         (WebCore::GlyphPageTreeNode::showSubtree):
848         (showGlyphPageTrees):
849         * platform/graphics/TiledBackingStore.cpp:
850         (WebCore::TiledBackingStore::updateTileBuffers):
851         (WebCore::TiledBackingStore::resizeEdgeTiles):
852         (WebCore::TiledBackingStore::setKeepRect):
853         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
854         (WebCore::AVFWrapper::avfWrapperForCallbackContext):
855         * platform/graphics/blackberry/LayerTiler.cpp:
856         (WebCore::LayerTiler::layerVisibilityChanged):
857         (WebCore::LayerTiler::uploadTexturesIfNeeded):
858         (WebCore::LayerTiler::addTileJob):
859         (WebCore::LayerTiler::deleteTextures):
860         (WebCore::LayerTiler::pruneTextures):
861         (WebCore::LayerTiler::bindContentsTexture):
862         * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
863         (WebCore::TextureCacheCompositingThread::textureForTiledContents):
864         (WebCore::TextureCacheCompositingThread::textureForColor):
865         * platform/graphics/ca/GraphicsLayerCA.cpp:
866         (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
867         (WebCore::GraphicsLayerCA::pauseAnimation):
868         (WebCore::GraphicsLayerCA::layerDidDisplay):
869         (WebCore::GraphicsLayerCA::updateGeometry):
870         (WebCore::GraphicsLayerCA::updateTransform):
871         (WebCore::GraphicsLayerCA::updateChildrenTransform):
872         (WebCore::GraphicsLayerCA::updateMasksToBounds):
873         (WebCore::GraphicsLayerCA::updateContentsVisibility):
874         (WebCore::GraphicsLayerCA::updateContentsOpaque):
875         (WebCore::GraphicsLayerCA::updateBackfaceVisibility):
876         (WebCore::GraphicsLayerCA::updateFilters):
877         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
878         (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
879         (WebCore::GraphicsLayerCA::updateContentsImage):
880         (WebCore::GraphicsLayerCA::updateContentsRect):
881         (WebCore::GraphicsLayerCA::updateMaskLayer):
882         (WebCore::GraphicsLayerCA::updateLayerAnimations):
883         (WebCore::GraphicsLayerCA::setAnimationOnLayer):
884         (WebCore::GraphicsLayerCA::removeCAAnimationFromLayer):
885         (WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
886         (WebCore::GraphicsLayerCA::suspendAnimations):
887         (WebCore::GraphicsLayerCA::resumeAnimations):
888         (WebCore::GraphicsLayerCA::findOrMakeClone):
889         (WebCore::GraphicsLayerCA::setOpacityInternal):
890         (WebCore::GraphicsLayerCA::updateOpacityOnLayer):
891         * platform/graphics/ca/mac/TileCache.mm:
892         (WebCore::TileCache::~TileCache):
893         (WebCore::TileCache::setNeedsDisplay):
894         (WebCore::TileCache::setScale):
895         (WebCore::TileCache::setAcceleratesDrawing):
896         (WebCore::TileCache::setTileDebugBorderWidth):
897         (WebCore::TileCache::setTileDebugBorderColor):
898         (WebCore::TileCache::revalidateTiles):
899         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
900         (PlatformCALayer::animationStarted):
901         (resubmitAllAnimations):
902         (PlatformCALayer::animationForKey):
903         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
904         (WebCore::LookupAltName):
905         (WebCore::fontContainsCharacter):
906         * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
907         (WebCore::getDerivedFontData):
908         * platform/graphics/filters/CustomFilterGlobalContext.cpp:
909         (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
910         (WebCore::CustomFilterGlobalContext::getValidatedProgram):
911         (WebCore::CustomFilterGlobalContext::removeValidatedProgram):
912         * platform/graphics/filters/CustomFilterProgram.cpp:
913         (WebCore::CustomFilterProgram::notifyClients):
914         * platform/graphics/harfbuzz/HarfBuzzSkia.cpp:
915         (WebCore::getCachedHarfbuzzFace):
916         (WebCore::releaseCachedHarfbuzzFace):
917         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
918         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
919         (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
920         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
921         (WebCore::SimpleFontData::getCFStringAttributes):
922         * platform/graphics/mac/SimpleFontDataMac.mm:
923         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
924         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
925         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
926         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
927         (WebCore::GraphicsContext3D::compileShader):
928         (WebCore::GraphicsContext3D::mappedSymbolName):
929         (WebCore::GraphicsContext3D::getShaderiv):
930         (WebCore::GraphicsContext3D::getShaderInfoLog):
931         (WebCore::GraphicsContext3D::getShaderSource):
932         * platform/graphics/openvg/EGLDisplayOpenVG.cpp:
933         (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
934         (WebCore::EGLDisplayOpenVG::destroySurface):
935         (WebCore::EGLDisplayOpenVG::contextForSurface):
936         * platform/graphics/texmap/TextureMapperGL.cpp:
937         (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
938         (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
939         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
940         (WebCore::TextureMapperShaderManager::getShaderProgram):
941         (WebCore::TextureMapperShaderManager::getShaderForFilter):
942         * platform/graphics/wince/FontPlatformData.cpp:
943         (WebCore::FixedSizeFontData::create):
944         * platform/gtk/DataObjectGtk.cpp:
945         (WebCore::DataObjectGtk::forClipboard):
946         * platform/gtk/GtkDragAndDropHelper.cpp:
947         (WebCore::GtkDragAndDropHelper::handleGetDragData):
948         (WebCore::GtkDragAndDropHelper::handleDragLeave):
949         (WebCore::GtkDragAndDropHelper::handleDragMotion):
950         (WebCore::GtkDragAndDropHelper::handleDragDataReceived):
951         (WebCore::GtkDragAndDropHelper::handleDragDrop):
952         * platform/gtk/RedirectedXCompositeWindow.cpp:
953         (WebCore::filterXDamageEvent):
954         * platform/gtk/RenderThemeGtk3.cpp:
955         (WebCore::gtkStyleChangedCallback):
956         (WebCore::getStyleContext):
957         * platform/mac/ScrollbarThemeMac.mm:
958         (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
959         * platform/network/CredentialStorage.cpp:
960         (WebCore::CredentialStorage::set):
961         (WebCore::CredentialStorage::get):
962         * platform/network/HTTPHeaderMap.cpp:
963         (WebCore::HTTPHeaderMap::copyData):
964         (WebCore::HTTPHeaderMap::get):
965         * platform/network/MIMEHeader.cpp:
966         (WebCore::MIMEHeader::parseHeader):
967         * platform/network/ResourceHandle.cpp:
968         (WebCore::ResourceHandle::create):
969         * platform/network/ResourceRequestBase.cpp:
970         (WebCore::ResourceRequestBase::addHTTPHeaderField):
971         (WebCore::ResourceRequestBase::addHTTPHeaderFields):
972         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
973         (WebCore::ResourceRequest::targetTypeFromMimeType):
974         (WebCore::ResourceRequest::initializePlatformRequest):
975         * platform/network/cf/ResourceHandleCFNet.cpp:
976         (WebCore::makeFinalRequest):
977         * platform/network/cf/ResourceRequestCFNet.cpp:
978         (WebCore::setHeaderFields):
979         * platform/network/curl/ResourceHandleManager.cpp:
980         (WebCore::ResourceHandleManager::initializeHandle):
981         * platform/network/mac/ResourceRequestMac.mm:
982         (WebCore::ResourceRequest::doUpdatePlatformRequest):
983         * platform/network/qt/ResourceRequestQt.cpp:
984         (WebCore::ResourceRequest::toNetworkRequest):
985         * platform/network/soup/ResourceHandleSoup.cpp:
986         (WebCore::sendRequestCallback):
987         (WebCore::ResourceHandle::setClientCertificate):
988         * platform/network/soup/ResourceRequestSoup.cpp:
989         (WebCore::ResourceRequest::updateSoupMessage):
990         (WebCore::ResourceRequest::toSoupMessage):
991         * platform/network/soup/ResourceResponseSoup.cpp:
992         (WebCore::ResourceResponse::toSoupMessage):
993         * platform/network/win/ResourceHandleWin.cpp:
994         (WebCore::ResourceHandle::start):
995         * platform/qt/RunLoopQt.cpp:
996         (WebCore::RunLoop::TimerBase::timerFired):
997         * platform/text/LocaleToScriptMappingDefault.cpp:
998         (WebCore::scriptNameToCode):
999         (WebCore::localeToScriptCodeForFontSelection):
1000         * platform/text/TextEncodingRegistry.cpp:
1001         (WebCore::pruneBlacklistedCodecs):
1002         (WebCore::dumpTextEncodingNameMap):
1003         * platform/text/transcoder/FontTranscoder.cpp:
1004         (WebCore::FontTranscoder::converterType):
1005         * platform/text/win/TextCodecWin.cpp:
1006         (WebCore::LanguageManager::LanguageManager):
1007         (WebCore::getCodePage):
1008         (WebCore::TextCodecWin::registerExtendedEncodingNames):
1009         (WebCore::TextCodecWin::registerExtendedCodecs):
1010         (WebCore::TextCodecWin::enumerateSupportedEncodings):
1011         * platform/win/ClipboardUtilitiesWin.cpp:
1012         (WebCore::getDataMapItem):
1013         (WebCore::getClipboardData):
1014         (WebCore::setClipboardData):
1015         * platform/win/ClipboardWin.cpp:
1016         (WebCore::ClipboardWin::types):
1017         * platform/win/FileSystemWin.cpp:
1018         (WebCore::cachedStorageDirectory):
1019         * platform/win/RunLoopWin.cpp:
1020         (WebCore::RunLoop::TimerBase::timerFired):
1021         * platform/win/WCDataObject.cpp:
1022         (WebCore::WCDataObject::createInstance):
1023         * platform/wince/MIMETypeRegistryWinCE.cpp:
1024         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
1025         * platform/wx/ContextMenuWx.cpp:
1026         (WebCore::ContextMenu::appendItem):
1027         * plugins/PluginDatabase.cpp:
1028         (WebCore::PluginDatabase::refresh):
1029         (WebCore::PluginDatabase::MIMETypeForExtension):
1030         (WebCore::PluginDatabase::remove):
1031         * plugins/PluginMainThreadScheduler.cpp:
1032         (WebCore::PluginMainThreadScheduler::scheduleCall):
1033         (WebCore::PluginMainThreadScheduler::dispatchCalls):
1034         * plugins/PluginStream.cpp:
1035         (WebCore::PluginStream::startStream):
1036         * plugins/blackberry/PluginDataBlackBerry.cpp:
1037         (WebCore::PluginData::initPlugins):
1038         * plugins/wx/PluginDataWx.cpp:
1039         (WebCore::PluginData::initPlugins):
1040         * rendering/ExclusionShapeInsideInfo.cpp:
1041         (WebCore::ExclusionShapeInsideInfo::ensureExclusionShapeInsideInfoForRenderBlock):
1042         * rendering/FlowThreadController.cpp:
1043         (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
1044         * rendering/InlineFlowBox.cpp:
1045         (WebCore::InlineFlowBox::requiresIdeographicBaseline):
1046         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
1047         * rendering/RenderBlock.cpp:
1048         (WebCore::RenderBlock::clearFloats):
1049         * rendering/RenderBlockLineLayout.cpp:
1050         (WebCore::setLogicalWidthForTextRun):
1051         * rendering/RenderBoxModelObject.cpp:
1052         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
1053         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
1054         * rendering/RenderCounter.cpp:
1055         (WebCore::RenderCounter::destroyCounterNodes):
1056         (WebCore::RenderCounter::destroyCounterNode):
1057         (WebCore::updateCounters):
1058         (WebCore::RenderCounter::rendererStyleChanged):
1059         * rendering/RenderFlowThread.cpp:
1060         (WebCore::RenderFlowThread::setRegionRangeForBox):
1061         (WebCore::RenderFlowThread::getRegionRangeForBox):
1062         * rendering/RenderLayer.cpp:
1063         (WebCore::RenderLayer::paint):
1064         (WebCore::performOverlapTests):
1065         * rendering/RenderLayerFilterInfo.cpp:
1066         (WebCore::RenderLayerFilterInfo::filterInfoForRenderLayer):
1067         (WebCore::RenderLayerFilterInfo::createFilterInfoForRenderLayerIfNeeded):
1068         * rendering/RenderNamedFlowThread.cpp:
1069         (WebCore::RenderNamedFlowThread::dependsOn):
1070         (WebCore::RenderNamedFlowThread::pushDependencies):
1071         * rendering/RenderRegion.cpp:
1072         (WebCore::RenderRegion::setRenderBoxRegionInfo):
1073         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
1074         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
1075         (WebCore::RenderRegion::computeChildrenStyleInRegion):
1076         * rendering/RenderTableSection.cpp:
1077         (WebCore::RenderTableSection::cachedCollapsedBorder):
1078         * rendering/RenderThemeMac.mm:
1079         (WebCore::RenderThemeMac::systemColor):
1080         * rendering/RenderView.cpp:
1081         (WebCore::RenderView::selectionBounds):
1082         (WebCore::RenderView::setSelection):
1083         * rendering/RenderWidget.cpp:
1084         (WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):
1085         * rendering/RootInlineBox.cpp:
1086         (WebCore::RootInlineBox::ascentAndDescentForBox):
1087         * rendering/VerticalPositionCache.h:
1088         (WebCore::VerticalPositionCache::get):
1089         * rendering/svg/RenderSVGInlineText.cpp:
1090         (WebCore::RenderSVGInlineText::characterStartsNewTextChunk):
1091         * rendering/svg/RenderSVGResourceFilter.cpp:
1092         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
1093         * rendering/svg/RenderSVGResourceGradient.cpp:
1094         (WebCore::RenderSVGResourceGradient::applyResource):
1095         * rendering/svg/RenderSVGResourcePattern.cpp:
1096         (WebCore::RenderSVGResourcePattern::applyResource):
1097         * rendering/svg/SVGResourcesCache.cpp:
1098         (WebCore::SVGResourcesCache::resourceDestroyed):
1099         * rendering/svg/SVGRootInlineBox.cpp:
1100         (WebCore::swapItemsInLayoutAttributes):
1101         * rendering/svg/SVGTextLayoutAttributes.cpp:
1102         (WebCore::SVGTextLayoutAttributes::dump):
1103         * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
1104         (WebCore::SVGTextLayoutAttributesBuilder::buildCharacterDataMap):
1105         (WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):
1106         * rendering/svg/SVGTextLayoutEngine.cpp:
1107         (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
1108         * rendering/svg/SVGTextMetricsBuilder.cpp:
1109         (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
1110         * storage/StorageAreaSync.cpp:
1111         (WebCore::StorageAreaSync::syncTimerFired):
1112         (WebCore::StorageAreaSync::performImport):
1113         (WebCore::StorageAreaSync::sync):
1114         * storage/StorageMap.cpp:
1115         (WebCore::StorageMap::key):
1116         (WebCore::StorageMap::setItem):
1117         * storage/StorageNamespaceImpl.cpp:
1118         (WebCore::StorageNamespaceImpl::localStorageNamespace):
1119         (WebCore::StorageNamespaceImpl::copy):
1120         (WebCore::StorageNamespaceImpl::close):
1121         (WebCore::StorageNamespaceImpl::clearAllOriginsForDeletion):
1122         (WebCore::StorageNamespaceImpl::sync):
1123         * svg/SVGDocumentExtensions.cpp:
1124         (WebCore::SVGDocumentExtensions::removeAnimationElementFromTarget):
1125         (WebCore::SVGDocumentExtensions::removeAllAnimationElementsFromTarget):
1126         (WebCore::SVGDocumentExtensions::addPendingResource):
1127         (WebCore::SVGDocumentExtensions::isElementPendingResources):
1128         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
1129         (WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget):
1130         (WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):
1131         (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
1132         * svg/SVGElement.cpp:
1133         (WebCore::SVGElement::~SVGElement):
1134         * svg/animation/SMILTimeContainer.cpp:
1135         (WebCore::SMILTimeContainer::setElapsed):
1136         (WebCore::SMILTimeContainer::updateAnimations):
1137         * svg/graphics/SVGImageCache.cpp:
1138         (WebCore::SVGImageCache::~SVGImageCache):
1139         (WebCore::SVGImageCache::removeClientFromCache):
1140         (WebCore::SVGImageCache::requestedSizeAndScales):
1141         (WebCore::SVGImageCache::imageContentChanged):
1142         (WebCore::SVGImageCache::redraw):
1143         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
1144         * svg/graphics/filters/SVGFilterBuilder.h:
1145         (WebCore::SVGFilterBuilder::effectReferences):
1146         (WebCore::SVGFilterBuilder::addBuiltinEffects):
1147         * svg/properties/SVGAnimatedProperty.h:
1148         (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
1149         * svg/properties/SVGAttributeToPropertyMap.cpp:
1150         (WebCore::SVGAttributeToPropertyMap::addProperties):
1151         (WebCore::SVGAttributeToPropertyMap::synchronizeProperties):
1152         * workers/WorkerContext.cpp:
1153         (WebCore::WorkerContext::hasPendingActivity):
1154         * workers/WorkerEventQueue.cpp:
1155         (WebCore::WorkerEventQueue::close):
1156         * xml/XMLHttpRequest.cpp:
1157         (WebCore::XMLHttpRequest::setRequestHeaderInternal):
1158         (WebCore::XMLHttpRequest::getAllResponseHeaders):
1159         * xml/XPathFunctions.cpp:
1160         (WebCore::XPath::createFunction):
1161         * xml/XPathParser.cpp:
1162         (isAxisName):
1163         * xml/XSLTProcessorLibxslt.cpp:
1164         (WebCore::xsltParamArrayFromParameterMap):
1165         * xml/XSLTProcessorQt.cpp:
1166         (WebCore::XSLTProcessor::transformToString):
1167
1168 2012-10-07  Geoffrey Garen  <ggaren@apple.com>
1169
1170         REGRESSION (r130584): Crashes in JSC::MarkedAllocator::allocateSlowCase, failing fast/dom/gc-dom-tree-lifetime.html
1171         https://bugs.webkit.org/show_bug.cgi?id=98612
1172
1173         Reviewed by Darin Adler.
1174
1175         Since DOM modification can happen outside of JS, calls into JS due to
1176         DOM modification need to take the JS lock.
1177
1178         * bindings/js/JSNodeCustom.cpp:
1179         (WebCore::willCreatePossiblyOrphanedTreeByRemovalSlowCase): Take the JS
1180         lock before doing a JS allocation, since this may be a JS entrypoint.
1181
1182         * bindings/js/JSNodeCustom.h:
1183         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Split out a slow case
1184         to help the inliner.
1185
1186 2012-10-07  Nick Carter  <nick@chromium.org>
1187
1188         [chromium] Crash in WebCore::GraphicsLayerChromium::setContentsToImage
1189         https://bugs.webkit.org/show_bug.cgi?id=98456
1190
1191         Reviewed by James Robinson.
1192
1193         Handle null return of nativeImageForCurrentFrame.
1194
1195         Test: compositing/images/truncated-direct-png-image.html
1196
1197         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1198         (WebCore::GraphicsLayerChromium::setContentsToImage):
1199
1200 2012-10-07  Benjamin Poulain  <benjamin@webkit.org>
1201
1202         WTFURL: implement URL port removal for HTMLAnchorElement
1203         https://bugs.webkit.org/show_bug.cgi?id=98604
1204
1205         Reviewed by Adam Barth.
1206
1207         * platform/KURLWTFURL.cpp:
1208         (WebCore::KURL::hasPort):
1209         (WebCore::KURL::removePort):
1210         (WebCore::KURL::isHierarchical):
1211         Implement those methods to pass the port removal test of HTMLAnchorElement.
1212
1213 2012-10-05  Dirk Schulze  <krit@webkit.org>
1214
1215         SVG radialGradient should support 'fr' for focal radius (just like Canvas)
1216         https://bugs.webkit.org/show_bug.cgi?id=97986
1217
1218         Reviewed by Daniel Bates.
1219
1220         Update SVGRadialGradient to the changed behavior in SVG2: http://www.w3.org/TR/SVG2/pservers.html#RadialGradients
1221         SVG2 adds the focal radius for radial gradients. Color stops will start from the edge of
1222         the focal radius.
1223         The new specification does not limit the focal point to be inside the radial gradients radius.
1224         This makes SVGRadialGradient consistent with the radial gradient on Canvas.
1225
1226         Test: svg/custom/radialGradient-focal-radius.svg
1227
1228         * rendering/svg/RenderSVGResourceRadialGradient.cpp:
1229             Remove checks for position of focal point. The focal point
1230             can be placed every where outside the radius of the gradient now.
1231         (WebCore::RenderSVGResourceRadialGradient::focalRadius):
1232             Add new method to get the focal radius from SVGRadialGradientElement.
1233         (WebCore::RenderSVGResourceRadialGradient::buildGradient):
1234         * rendering/svg/RenderSVGResourceRadialGradient.h:
1235         (RenderSVGResourceRadialGradient):
1236         * rendering/svg/SVGRenderTreeAsText.cpp:
1237         (WebCore::writeSVGResourceContainer):
1238             Modify DRT output to include the focal radius.
1239         * svg/RadialGradientAttributes.h:
1240         (WebCore::RadialGradientAttributes::RadialGradientAttributes):
1241         (WebCore::RadialGradientAttributes::fr):
1242         (WebCore::RadialGradientAttributes::setFr):
1243         (WebCore::RadialGradientAttributes::hasFr):
1244         (RadialGradientAttributes):
1245             New setters and getters for focal radius.
1246         * svg/SVGRadialGradientElement.cpp:
1247         (WebCore):
1248         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
1249         (WebCore::SVGRadialGradientElement::isSupportedAttribute):
1250         (WebCore::SVGRadialGradientElement::parseAttribute):
1251         (WebCore::SVGRadialGradientElement::collectGradientAttributes):
1252         (WebCore::SVGRadialGradientElement::selfHasRelativeLengths):
1253             Ditto.
1254         * svg/SVGRadialGradientElement.h:
1255         (SVGRadialGradientElement):
1256         * svg/SVGRadialGradientElement.idl:
1257         * svg/svgattrs.in:
1258             Add 'fr' as new attribute to the SVG attribute list.
1259
1260 2012-10-07  Glenn Adams  <glenn@skynav.com>
1261
1262         Use start instead of -webkit-auto in default and quirks mode stylesheets.
1263         https://bugs.webkit.org/show_bug.cgi?id=98609
1264
1265         Reviewed by Antti Koivisto.
1266
1267         Change text-align use of legacy '-webkit-auto' to 'start' in the few places where it is used
1268         in default/quirks stylesheets.
1269         
1270         No new tests. No change of rendering/styling behavior. No performance impact.
1271
1272         * css/html.css:
1273         (input, textarea, keygen, select, button, isindex):
1274         (ruby > rt):
1275         * css/quirks.css:
1276         (table):
1277
1278 2012-10-06  Raul Hudea  <rhudea@adobe.com>
1279
1280         -webkit-clip-path should parse IRIs
1281         https://bugs.webkit.org/show_bug.cgi?id=96381
1282
1283         Reviewed by Andreas Kling.
1284
1285         Implemented the clipping via referencing a SVG clipPath. Currently it works only if the clipPath is defined
1286         before using it on an HTML element. The forward reference issue is tracked via https://bugs.webkit.org/show_bug.cgi?id=90405.
1287
1288         Tests: css3/masking/clip-path-reference-userSpaceOnUse.html
1289                css3/masking/clip-path-reference.html
1290                fast/masking/parsing-clip-path-iri.html
1291
1292         * css/CSSComputedStyleDeclaration.cpp:
1293         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Add handling for SVG clipPath references.
1294         * css/CSSParser.cpp:
1295         (WebCore::CSSParser::parseValue): Add handling for SVG clipPath references.
1296         * css/StyleBuilder.cpp:
1297         (WebCore::ApplyPropertyClipPath::applyValue): Add handling for SVG references.
1298         * rendering/ClipPathOperation.h:
1299         (ReferenceClipPathOperation): Added a new class corresponding to SVG referenced clipPath.
1300         (WebCore::ReferenceClipPathOperation::create):
1301         (WebCore::ReferenceClipPathOperation::url):
1302         (WebCore::ReferenceClipPathOperation::fragment):
1303         (WebCore::ReferenceClipPathOperation::operator==):
1304         (WebCore::ReferenceClipPathOperation::ReferenceClipPathOperation):
1305         (WebCore):
1306         * rendering/RenderLayer.cpp:
1307         (WebCore::RenderLayer::paintLayerContents): Add handling for ReferenceClipPathOperation.
1308         * rendering/svg/RenderSVGResourceClipper.h:
1309         (RenderSVGResourceClipper): Made applyClippingToContext public as it needs to be called directly for HTML elements.
1310
1311 2012-10-06  Pratik Solanki  <psolanki@apple.com>
1312
1313         Reduce calls to CGImageSourceCopyPropertiesAtIndex from frameSizeAtIndex
1314         https://bugs.webkit.org/show_bug.cgi?id=98607
1315
1316         Reviewed by Dan Bernstein.
1317
1318         Refactor code so that we avoid a second call to CGImageSourceCopyPropertiesAtIndex under
1319         ImageSource::frameSizeAtIndex().
1320
1321         No new tests because no functional change.
1322
1323         * platform/graphics/cg/ImageSourceCG.cpp:
1324         (WebCore::orientationFromProperties):
1325         (WebCore):
1326         (WebCore::ImageSource::frameSizeAtIndex):
1327         (WebCore::ImageSource::orientationAtIndex):
1328
1329 2012-10-06  Mark Rowe  <mrowe@apple.com>
1330
1331         Build fix.
1332
1333         Stop calling -[NSSliderCell setTitle:]. It's never done anything on OS X.
1334
1335         * rendering/RenderThemeMac.mm:
1336         (WebCore::RenderThemeMac::sliderThumbHorizontal):
1337         (WebCore::RenderThemeMac::sliderThumbVertical):
1338
1339 2012-10-06  Andreas Kling  <kling@webkit.org>
1340
1341         Clipboard::types() should return an ordered collection.
1342         <http://webkit.org/b/98547>
1343
1344         Reviewed by Darin Adler.
1345
1346         Let Clipboard::types() return a ListHashSet<String> instead of a HashSet<String> to make sure
1347         it retains the order in which type strings are added.
1348
1349         No test, this fixes an issue that was uncovered when lowering the default table size of WTF
1350         hash tables, causing the HashSet<String> to rehash and reorder itself.
1351
1352         * bindings/js/JSClipboardCustom.cpp:
1353         (WebCore::JSClipboard::types):
1354         * bindings/v8/custom/V8ClipboardCustom.cpp:
1355         (WebCore::V8Clipboard::typesAccessorGetter):
1356         * dom/Clipboard.h:
1357         (Clipboard):
1358         * platform/blackberry/ClipboardBlackBerry.cpp:
1359         (WebCore::ClipboardBlackBerry::types):
1360         * platform/blackberry/ClipboardBlackBerry.h:
1361         (ClipboardBlackBerry):
1362         * platform/chromium/ChromiumDataObject.cpp:
1363         (WebCore::ChromiumDataObject::types):
1364         * platform/chromium/ChromiumDataObject.h:
1365         (ChromiumDataObject):
1366         * platform/chromium/ClipboardChromium.cpp:
1367         (WebCore::ClipboardChromium::types):
1368         * platform/chromium/ClipboardChromium.h:
1369         (ClipboardChromium):
1370         * platform/efl/ClipboardEfl.cpp:
1371         (WebCore::ClipboardEfl::types):
1372         * platform/efl/ClipboardEfl.h:
1373         (ClipboardEfl):
1374         * platform/gtk/ClipboardGtk.cpp:
1375         (WebCore::ClipboardGtk::types):
1376         * platform/gtk/ClipboardGtk.h:
1377         (ClipboardGtk):
1378         * platform/mac/ClipboardMac.h:
1379         (ClipboardMac):
1380         * platform/mac/ClipboardMac.mm:
1381         (WebCore::addHTMLClipboardTypesForCocoaType):
1382         (WebCore::ClipboardMac::types):
1383         * platform/qt/ClipboardQt.cpp:
1384         (WebCore::ClipboardQt::types):
1385         * platform/qt/ClipboardQt.h:
1386         (ClipboardQt):
1387         * platform/win/ClipboardWin.cpp:
1388         (WebCore::addMimeTypesForFormat):
1389         (WebCore::ClipboardWin::types):
1390         * platform/win/ClipboardWin.h:
1391         (ClipboardWin):
1392         * platform/wx/ClipboardWx.cpp:
1393         (WebCore::ClipboardWx::types):
1394         * platform/wx/ClipboardWx.h:
1395         (ClipboardWx):
1396
1397 2012-10-06  Geoffrey Garen  <ggaren@apple.com>
1398
1399         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
1400         https://bugs.webkit.org/show_bug.cgi?id=88834
1401
1402         Reviewed by Gavin Barraclough.
1403
1404         Follow-up patch to address some comments by Darin Adler.
1405
1406         * bindings/js/JSNodeCustom.h:
1407         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Save some space by
1408         collapsing comment lines. Use Node::hasChildNodes() for brevity.
1409
1410 2012-10-06  Benjamin Poulain  <benjamin@webkit.org>
1411
1412         Fix weird use of KURL's protocolIs
1413         https://bugs.webkit.org/show_bug.cgi?id=98584
1414
1415         Reviewed by Adam Barth.
1416
1417         Converting a KURL to string is a bad idea.
1418
1419         Invalid URLs can return a string that pass the tests, while an
1420         invalid URL will fail protocolIs().
1421
1422         * loader/cache/CachedResource.cpp:
1423         (WebCore::CachedResource::removeClient):
1424         * platform/graphics/MediaPlayer.cpp:
1425         (WebCore::MediaPlayer::load):
1426         * platform/network/DataURL.cpp:
1427         (WebCore::handleDataURL):
1428
1429 2012-10-06  Dan Bernstein  <mitz@apple.com>
1430
1431         WebCore part of <rdar://problem/12446507> [mac] WebKit clients cannot change the behavior of text-rendering: auto
1432         https://bugs.webkit.org/show_bug.cgi?id=98601
1433
1434         Reviewed by Darin Adler.
1435
1436         * WebCore.exp.in: Exported Font::setDefaultTypesettingFeatures().
1437         * platform/graphics/Font.cpp:
1438         (WebCore::Font::s_defaultTypesettingFeatures): Defined this static.
1439         (WebCore::Font::setDefaultTypesettingFeatures): Added this setter.
1440         (WebCore::Font::defaultTypesettingFeatures): Added this getter.
1441         * platform/graphics/Font.h:
1442         (WebCore::Font::typesettingFeatures): Changed to use the value of the new static member
1443         s_defaultTypesettingFeatures, rather than 0, if text-redering is set to auto.
1444
1445 2012-10-04  Geoffrey Garen  <ggaren@apple.com>
1446
1447         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
1448         https://bugs.webkit.org/show_bug.cgi?id=88834
1449
1450         Reviewed by Gavin Barraclough.
1451
1452         * bindings/js/JSNodeCustom.cpp:
1453         (WebCore::isObservable): Clarified this comment, since it seems to have
1454         misled some folks. 
1455
1456         * bindings/js/JSNodeCustom.h:
1457         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): New helper function
1458         to ensure that a disconnected tree is visible to JavaScript.
1459
1460         * bindings/js/ScriptState.cpp:
1461         (WebCore::mainWorldScriptState): Need to check for null because a document's
1462         frame can be null.
1463
1464         * dom/ContainerNode.cpp:
1465         (WebCore::dispatchChildRemovalEvents): When we remove a subtree from the
1466         document, we sever the reference that JavaScript previously held by
1467         referencing its root. So, we give JavaScript an opportunity to establish
1468         a reference to the new root.
1469
1470 2012-10-06  Byungwoo Lee  <bw80.lee@samsung.com>
1471
1472         Fix build warning : -Wunused-parameter.
1473         https://bugs.webkit.org/show_bug.cgi?id=98583
1474
1475         Reviewed by Kentaro Hara.
1476
1477         Use ASSERT_UNUSED() macro to remove build warning.
1478
1479         * plugins/PluginStream.cpp:
1480         (WebCore::PluginStream::delayDeliveryTimerFired):
1481         (WebCore::PluginStream::didReceiveResponse):
1482         (WebCore::PluginStream::didReceiveData):
1483         (WebCore::PluginStream::didFail):
1484         (WebCore::PluginStream::didFinishLoading):
1485         * plugins/PluginView.cpp:
1486         (WebCore::PluginView::requestTimerFired):
1487         (WebCore::PluginView::invalidateTimerFired):
1488
1489 2012-10-05  Adam Barth  <abarth@webkit.org>
1490
1491         [V8] toV8(Node*, ...) does more work than needed (6% faster on dom-traverse)
1492         https://bugs.webkit.org/show_bug.cgi?id=98567
1493
1494         Reviewed by Kentaro Hara.
1495
1496         This patch introduces toV8Fast for Node*. This function works a
1497         differently from the existing toV8 function in two ways:
1498
1499         1) It uses the inline wrapper cache in Node to determine if we're
1500            executing in the main world. This is faster both in the case when
1501            isolated worlds exist because we don't need to retrieve any state
1502            for the current context.
1503
1504         2) It doesn't attempt to inline the hash table lookup used to find the
1505            wrapper in the isolated world. There isn't a big need to inline this
1506            code since performance in the isolated world case is dominated by
1507            the hash table lookup.
1508
1509         Because of these two changes, toV8Fast is small enough to inline into
1510         each attribute getter profitably. Over time, I would like to convert
1511         all the performance critical uses of toV8(Node*) to toV8Fast. At that
1512         point, we can delete toV8 and rename toV8Slow to toV8.
1513
1514         * bindings/scripts/CodeGeneratorV8.pm:
1515         (GenerateHeader):
1516         (GenerateNormalAttrGetter):
1517
1518 2012-10-05  Huang Dongsung  <luxtella@company100.net>
1519
1520         [mac] REGRESSION (r122215): Animated GIF outside the viewport doesn't play when scrolled into view.
1521         https://bugs.webkit.org/show_bug.cgi?id=94874
1522
1523         Reviewed by Simon Fraser.
1524
1525         Rollback previous patch because this patch caused two problems.
1526         1. GIF animation is occasionally paused when tiled scrolling is enabled.
1527         2. This change regressed Apple's Membuster benchmark by ~20% (80MB.)
1528
1529         * loader/cache/CachedImage.cpp:
1530         (WebCore::CachedImage::shouldPauseAnimation):
1531         * loader/cache/CachedImage.h:
1532         (CachedImage):
1533         * loader/cache/CachedResource.h:
1534         * loader/cache/MemoryCache.cpp:
1535         (WebCore::MemoryCache::pruneLiveResourcesToSize):
1536         * rendering/RenderObject.cpp:
1537         (WebCore::RenderObject::willRenderImage):
1538
1539 2012-10-05  Xianzhu Wang  <wangxianzhu@chromium.org>
1540
1541         OpenTypeVerticalData issue with DroidSansFallback.ttf on chromium-android and chromium-linux
1542         https://bugs.webkit.org/show_bug.cgi?id=97824
1543
1544         Reviewed by Tony Chang.
1545
1546         The issue occurred when a font that contains vert GSUB table but doesn't have
1547         a DFLT script and the first script doesn't have vert feature. Added logic to
1548         handle the case.
1549
1550         Test: fast/writing-mode/vertical-subst-font-vert-no-dflt.html
1551
1552         * platform/graphics/opentype/OpenTypeVerticalData.cpp:
1553         (FeatureList):
1554         (WebCore::OpenType::FeatureList::findFeature): Added to find the matching feature in FeatureList.
1555         (WebCore::OpenType::GSUBTable::feature): Added logic to handle the case of no DFLT script and no vert feature under the first script.
1556
1557 2012-10-05  Tony Chang  <tony@chromium.org>
1558
1559         Form controls should always be horizontal
1560         https://bugs.webkit.org/show_bug.cgi?id=98563
1561
1562         Reviewed by Ojan Vafai.
1563
1564         Fix a regression where we didn't force form controls to be horizontal.
1565
1566         Tests: fast/dom/HTMLMeterElement/meter-writing-mode.html
1567                fast/dom/HTMLProgressElement/progress-writing-mode.html
1568                fast/table/colspanMinWidth-vertical.html
1569
1570         * css/html.css:
1571         (input, textarea, keygen, select, button, isindex, meter, progress):
1572
1573 2012-10-05  Sheriff Bot  <webkit.review.bot@gmail.com>
1574
1575         Unreviewed, rolling out r130556 and r130564.
1576         http://trac.webkit.org/changeset/130556
1577         http://trac.webkit.org/changeset/130564
1578         https://bugs.webkit.org/show_bug.cgi?id=98572
1579
1580         The patch wasn't reviewed by a reviewer and it is breaking
1581         Chromium Windows (Requested by jchaffraix on #webkit).
1582
1583         * WebCore.exp.in:
1584         * WebCore.xcodeproj/project.pbxproj:
1585         * css/mediaControls.css:
1586         (video::-webkit-media-text-track-container):
1587         (video::-webkit-media-text-track-past-nodes):
1588         (video::-webkit-media-text-track-future-nodes):
1589         (video::-webkit-media-text-track-display):
1590         * html/HTMLMediaElement.cpp:
1591         (WebCore::HTMLMediaElement::HTMLMediaElement):
1592         (WebCore::HTMLMediaElement::attach):
1593         (WebCore::HTMLMediaElement::userIsInterestedInThisLanguage):
1594         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind):
1595         (WebCore::HTMLMediaElement::setClosedCaptionsVisible):
1596         (WebCore::HTMLMediaElement::updateClosedCaptionsControls):
1597         * html/HTMLMediaElement.h:
1598         (HTMLMediaElement):
1599         * html/shadow/MediaControlElements.cpp:
1600         (WebCore):
1601         (WebCore::MediaControlTextTrackContainerElement::updateSizes):
1602         * html/shadow/MediaControlElements.h:
1603         (MediaControlTextTrackContainerElement):
1604         * html/shadow/MediaControlRootElement.cpp:
1605         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
1606         * html/shadow/MediaControlRootElement.h:
1607         (MediaControlRootElement):
1608         * html/shadow/MediaControls.h:
1609         (MediaControls):
1610         * html/track/TextTrack.cpp:
1611         (WebCore::TextTrack::TextTrack):
1612         (WebCore::TextTrack::isValidKindKeyword):
1613         (WebCore::TextTrack::setKind):
1614         (WebCore::TextTrack::setMode):
1615         (WebCore::TextTrack::mode):
1616         * html/track/TextTrack.h:
1617         (WebCore::TextTrack::create):
1618         (WebCore::TextTrack::kind):
1619         (TextTrack):
1620         (WebCore::TextTrack::label):
1621         (WebCore::TextTrack::setLabel):
1622         (WebCore::TextTrack::language):
1623         (WebCore::TextTrack::setLanguage):
1624         * html/track/TextTrackCue.cpp:
1625         (WebCore::TextTrackCueBox::TextTrackCueBox):
1626         (WebCore::TextTrackCueBox::shadowPseudoId):
1627         (WebCore):
1628         (WebCore::TextTrackCue::updateDisplayTree):
1629         * html/track/TextTrackCue.h:
1630         (TextTrackCueBox):
1631         (TextTrackCue):
1632         * platform/mac/WebCoreSystemInterface.h:
1633         * platform/mac/WebCoreSystemInterface.mm:
1634         * rendering/CaptionPreferencesChangedListener.h: Removed.
1635         * rendering/RenderTheme.h:
1636         (WebCore):
1637         (RenderTheme):
1638         * rendering/RenderThemeMac.h:
1639         (RenderThemeMac):
1640         * rendering/RenderThemeMac.mm:
1641         (WebCore):
1642         (WebCore::RenderThemeMac::RenderThemeMac):
1643         (WebCore::RenderThemeMac::~RenderThemeMac):
1644
1645 2012-10-05  Tim Horton  <timothy_horton@apple.com>
1646
1647         [cg] GraphicsContextCG should ask CG whether the shadow offset workaround is required
1648         https://bugs.webkit.org/show_bug.cgi?id=98565
1649         <rdar://problem/12436468>
1650
1651         Reviewed by Simon Fraser.
1652
1653         On Mountain Lion and above, CG can tell us whether we need to work around incorrect
1654         shadow offsets. Prior to Mountain Lion, we should assume we need to apply the workaround.
1655
1656         No new tests, as this requires an obscure configuration to test.
1657
1658         * WebCore.exp.in:
1659         * platform/graphics/cg/GraphicsContextCG.cpp:
1660         (WebCore::applyShadowOffsetWorkaroundIfNeeded):
1661         (WebCore::GraphicsContext::setPlatformShadow):
1662         * platform/mac/WebCoreSystemInterface.h: Add wkCGContextDrawsWithCorrectShadowOffsets.
1663         * platform/mac/WebCoreSystemInterface.mm: Add wkCGContextDrawsWithCorrectShadowOffsets.
1664
1665 2012-10-05  Anders Carlsson  <andersca@apple.com>
1666
1667         Try to fix the build.
1668
1669         * rendering/RenderThemeMac.mm:
1670         (WebCore::RenderThemeMac::captionsWindowColor):
1671
1672 2012-10-05  Eric Seidel  <eric@webkit.org>
1673
1674         Remove needless virtual calls and inline RenderStyle::logical* to make table layout faster
1675         https://bugs.webkit.org/show_bug.cgi?id=98550
1676
1677         Reviewed by Andreas Kling.
1678
1679         This shaved another 5% (100ms) off of the runtime of resizecol.html microbenchmark:
1680         http://www.robohornet.org/tests/resizecol.html
1681
1682         * rendering/AutoTableLayout.cpp:
1683         (WebCore::AutoTableLayout::recalcColumn):
1684         * rendering/style/RenderStyle.cpp:
1685         * rendering/style/RenderStyle.h:
1686
1687 2012-10-04  Eric Carlson  <eric.carlson@apple.com>
1688
1689         Allow ports to override text track rendering style
1690         https://bugs.webkit.org/show_bug.cgi?id=97800
1691         <rdar://problem/12044964>
1692
1693         Reviewed by Silvia Pfeiffer.
1694
1695         * WebCore.exp.in: Export new WebkitSystemInterface functions.
1696         * WebCore.xcodeproj/project.pbxproj: Add CaptionPreferencesChangedListener.h.
1697
1698         * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
1699             background, and text independently.
1700
1701         * html/HTMLMediaElement.cpp:
1702         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
1703         (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
1704         (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
1705         (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
1706         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
1707         (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
1708             un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
1709         (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
1710         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
1711             setClosedCaptionsVisible
1712         * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
1713
1714         * html/shadow/MediaControlElements.cpp:
1715         (WebCore::MediaControlTextTrackContainerElement::userCaptionPreferencesChanged): New, if theme
1716             has a captions style sheet override, inject it into the current page group, otherwise
1717             remove injected sheet.
1718         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
1719             variable. Get caption font scale from theme instead of hard coding.
1720         * html/shadow/MediaControlElements.h:
1721
1722         * html/shadow/MediaControlRootElement.cpp:
1723         (WebCore::MediaControlRootElement::userCaptionPreferencesChanged): New.
1724         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
1725         * html/shadow/MediaControlRootElement.h: Add userCaptionPreferencesChanged, minor cleanup.
1726
1727         * html/shadow/MediaControls.h:
1728         (WebCore::MediaControls::userCaptionPreferencesChanged): New.
1729
1730         * html/track/TextTrackCue.cpp:
1731         (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
1732         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
1733             shadow pseudo id so it can be used elsewhere.
1734         (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
1735         (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
1736             shadow pseudo id so it can be used elsewhere.
1737         (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
1738         (WebCore::TextTrackCue::updateDisplayTree):
1739         * html/track/TextTrackCue.h:
1740
1741         * platform/mac/WebCoreSystemInterface.h: Updated.
1742         * platform/mac/WebCoreSystemInterface.mm: Ditto.
1743
1744         * rendering/CaptionPreferencesChangedListener.h: Added.
1745
1746         * rendering/RenderTheme.h:
1747         (WebCore::RenderTheme::userPrefersCaptions): New, default do-nothing implementation.
1748         (WebCore::RenderTheme::userHasCaptionPreferences): Ditto.
1749         (WebCore::RenderTheme::captionFontSizeScale): Ditto.
1750         (WebCore::RenderTheme::captionsStyleSheetOverride): Ditto.
1751         (WebCore::RenderTheme::registerForCaptionPreferencesChangedCallbacks): Ditto.
1752         (WebCore::RenderTheme::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
1753
1754         * rendering/RenderThemeMac.h:
1755         * rendering/RenderThemeMac.mm:
1756         (WebCore::userCaptionPreferencesChangedNotificationCallback): New, receives preference changed notifications.
1757         (WebCore::RenderThemeMac::RenderThemeMac): Initialize m_listeningForCaptionPreferenceNotifications.
1758         (WebCore::RenderThemeMac::~RenderThemeMac): Unregister for notifications if necessary.
1759         (WebCore::RenderThemeMac::userHasCaptionPreferences): New, passthrough to WKSI function.
1760         (WebCore::RenderThemeMac::userPrefersCaptions): Ditto.
1761         (WebCore::RenderThemeMac::captionsWindowColor): Return Color with user's caption window color preference.
1762         (WebCore::RenderThemeMac::captionsBackgroundColor): Return Color with user's caption 
1763             background color preference.
1764         (WebCore::RenderThemeMac::captionsTextColor): Return Color with user's caption text color preference.
1765         (WebCore::RenderThemeMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
1766         (WebCore::RenderThemeMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
1767             or webkit-text-stroke property.
1768         (WebCore::RenderThemeMac::cssColorProperty): Return a String with css to set a property 
1769             with a color value.
1770         (WebCore::RenderThemeMac::captionsTextEdgeStyle): Return a String with css to style caption 
1771             text with the user's preferred text edge stye.
1772         (WebCore::RenderThemeMac::captionsDefaultFont): Return a String with css to style caption
1773             text with the user's preferred font.
1774         (WebCore::RenderThemeMac::captionsStyleSheetOverride): Return a String with css to style captions
1775             with the user's preferred style.
1776         (WebCore::RenderThemeMac::captionFontSizeScale): Return the user's preferred caption font scale.
1777         (WebCore::RenderThemeMac::captionPreferencesChanged): Notify listeners of caption preference change.
1778         (WebCore::RenderThemeMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
1779             changes listener.
1780         (WebCore::RenderThemeMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
1781             changes listener.
1782
1783 2012-10-05  Takashi Sakamoto  <tasak@google.com>
1784
1785         Inline continuations create :after generated content on style recalcs
1786         https://bugs.webkit.org/show_bug.cgi?id=93170
1787
1788         Reviewed by Abhishek Arya.
1789
1790         The bug is caused by RenderInline::styleDidChange's setContinuation(0).
1791         RenderObjectChildList uses continuation to know whether the given
1792         renderer should have AFTER render object or not.
1793         However, setContinuation(0) makes RenderObjectChildList to
1794         misunderstand that all continuations are last continuation.
1795         To avoid the misunderstanding, added a new flag to class
1796         RenderObejctChildList to enable/disable updating :after content (and
1797         also :before content).
1798
1799         Tests: fast/css-generated-content/after-with-inline-continuation.html
1800                fast/css-generated-content/dynamic-apply-after-for-inline.html
1801
1802         * rendering/RenderInline.cpp:
1803         (WebCore::RenderInline::styleDidChange):
1804         Disable upating :after content for continuations which are not
1805         the last one during setStyle just after setContinuation(0).
1806         The setStyle invokes RenderInline::styleDidChange and also invokes
1807         updateBeforeAfterContent via the styleDidChange. This means,
1808         the last continuation's updateBeforeAfterContent is also invoked
1809         after setContinuation(0). We have to update :after for the last
1810         continuation.
1811         * rendering/RenderObjectChildList.cpp:
1812         (WebCore):
1813         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
1814         If s_updateBeforeAfterContent is false, quickly exit
1815         updateBeforeAfterContent.
1816         * rendering/RenderObjectChildList.h:
1817         (RenderObjectChildList):
1818         Added a new flag s_enableUpdateBeforeAfterContent to enable/disable
1819         updating :before or :after content.
1820
1821 2012-10-05  Simon Fraser  <simon.fraser@apple.com>
1822
1823         Don't assume that TileCache layers are opaque
1824         https://bugs.webkit.org/show_bug.cgi?id=98555
1825
1826         Reviewed by Dean Jackson.
1827
1828         TileCache previously set all its tile CALayers as opaque.
1829         However, we will need non-opaque tile caches when we use this
1830         tile cache for tiled layers, so add a member function to
1831         control tile opacity.
1832         
1833         RenderLayerBacking already calls m_graphicsLayer->setContentsOpaque()
1834         using the FrameView's notion of opaqueness, so this change will
1835         cause the main tile cache to be non-opaque if external forces have
1836         set the FrameView to be non-opaque.
1837         
1838         Also tweak the layer border widths on tiled layers.
1839
1840         * platform/graphics/ca/mac/TileCache.h:
1841         (TileCache):
1842         (WebCore::TileCache::tilesAreOpaque):
1843         * platform/graphics/ca/mac/TileCache.mm:
1844         (WebCore::TileCache::TileCache):
1845         (WebCore::TileCache::setTilesOpaque):
1846         (WebCore::TileCache::createTileLayer):
1847         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
1848         (-[WebTileCacheLayer setOpaque:]):
1849         (-[WebTileCacheLayer isOpaque]):
1850         (-[WebTileCacheLayer setBorderWidth:]):
1851
1852 2012-10-05  Tony Chang  <tony@chromium.org>
1853
1854         Fix margin box ascent computation in flexbox
1855         https://bugs.webkit.org/show_bug.cgi?id=98540
1856
1857         Reviewed by Ojan Vafai.
1858
1859         The margin box ascent doesn't depend on the margin below the box.
1860
1861         Tests: css3/flexbox/flex-align.html: Fixed a test case and removed a FIXME.
1862                css3/flexbox/flex-align-vertical-writing-mode.html: Similar test case.
1863
1864         * rendering/RenderFlexibleBox.cpp:
1865         (WebCore::RenderFlexibleBox::marginBoxAscentForChild):
1866
1867 2012-10-05  Ojan Vafai  <ojan@chromium.org>
1868
1869         Deprecated flexboxes subtract scrollbar width/height twice
1870         https://bugs.webkit.org/show_bug.cgi?id=98552
1871
1872         Reviewed by Tony Chang.
1873
1874         This is a regression from http://trac.webkit.org/changeset/119507.
1875         The problem is that contentHeight subtracts the scrollbar and
1876         RenderDeprecatedFlexbox subtracts the scrollbar.
1877
1878         -Make it so that we only access override sizes if one has been set.
1879         I think this makes the calling code more clear.
1880         -If we don't have one set, grab the height/width - borderAndPadding.
1881         -Add a FIXME to change this all back to being borderbox sizes.
1882         There's something trick with making table padding/border work right for that
1883         though (noted in the original patch).
1884
1885         Test: fast/flexbox/flexing-overflow-scroll-item.html
1886
1887         * rendering/RenderBox.cpp:
1888         (WebCore::RenderBox::overrideLogicalContentWidth):
1889         (WebCore::RenderBox::overrideLogicalContentHeight):
1890         (WebCore::RenderBox::availableLogicalHeightUsing):
1891         * rendering/RenderBox.h:
1892         (RenderBox):
1893         * rendering/RenderDeprecatedFlexibleBox.cpp:
1894         (WebCore::contentWidthForChild):
1895         (WebCore):
1896         (WebCore::contentHeightForChild):
1897         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
1898         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
1899         (WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):
1900
1901 2012-10-05  Eric Seidel  <eric@webkit.org>
1902
1903         Make tables which don't use col/row span much faster to layout
1904         https://bugs.webkit.org/show_bug.cgi?id=98221
1905
1906         Reviewed by Julien Chaffraix.
1907
1908         My sense is that most tables on webpages do not use colspan/rowspan
1909         so I stole another bit from RenderTableCell::m_column to avoid
1910         having to re-parse the colSpan/rowSpan attributes for every cell
1911         when doing table layout.
1912         This made these symbols disappear from biggrid.html/redraw.html (dglazkov's spreadsheets benchmarks)
1913         as well as moved our robohornet/resizecol.html number from an average of 3221ms to 2608ms (~20%!).
1914
1915         I removed m_hasHTMLTableCellElement (from http://trac.webkit.org/changeset/97691)
1916         since it was attempting to do the same sort of optimization.
1917
1918         * rendering/RenderTableCell.cpp:
1919         (WebCore::RenderTableCell::RenderTableCell):
1920         (WebCore::RenderTableCell::parseColSpanFromDOM):
1921         (WebCore::RenderTableCell::parseRowSpanFromDOM):
1922         (WebCore::RenderTableCell::layout):
1923         * rendering/RenderTableCell.h:
1924         (WebCore::RenderTableCell::colSpan):
1925         (WebCore::RenderTableCell::rowSpan):
1926         (RenderTableCell):
1927
1928 2012-10-05  Oli Lan  <olilan@chromium.org>
1929
1930         Allow EventHandler to handle longpress gestures, including longpress selection on Android.
1931         https://bugs.webkit.org/show_bug.cgi?id=98173
1932         
1933         Reviewed by Ryosuke Niwa.
1934
1935         Adds handling for GestureLongPress to EventHandler::handleGestureEvent, with a new
1936         handleGestureLongPress method. On Android, this method selects the closest word
1937         if the gesture event was over non-link text.
1938
1939         This is tested via a new chromium test WebViewTest.LongPressSelection.  
1940
1941         * page/EventHandler.cpp:
1942         (WebCore::EventHandler::selectClosestWordFromHitTestResult):
1943         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
1944         (WebCore):
1945         (WebCore::EventHandler::handleGestureEvent):
1946         (WebCore::EventHandler::handleGestureLongPress):
1947         * page/EventHandler.h:
1948         (EventHandler):
1949
1950 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
1951
1952         <marquee> element forces itself to be at least 1em high, regardless of 'height' declaration
1953         https://bugs.webkit.org/show_bug.cgi?id=18098
1954
1955         Reviewed by Eric Seidel.
1956
1957         This restriction originally existed to match IE, but IE changed some time ago to be normal instead.
1958         We're the last browser, afaict, to still enforce this de-facto restriction.
1959         This patch makes <marquee> instead act like a normal element.
1960
1961         Tests: fast/css/MarqueeLayoutTest.html (rewritten from the older, bad version)
1962
1963         * rendering/RenderMarquee.cpp:
1964         (WebCore::RenderMarquee::updateMarqueeStyle):
1965
1966 2012-10-05  Joe Mason  <jmason@rim.com>
1967
1968         [BlackBerry] Fix regression in proxy auth
1969         https://bugs.webkit.org/show_bug.cgi?id=98533
1970
1971         Reviewed by Yong Li.
1972
1973         The proxy auth dialog gets the proxy address from
1974         BlackBerry::Platform::Settings::proxyAddress, which returns
1975         "host:port", but we try to parse it with a KURL, which expects
1976         "scheme://host:port".  Since this is an http proxy, add http:// to the
1977         url to get it to parse.
1978
1979         PR 220567.
1980
1981         * platform/network/blackberry/NetworkJob.cpp:
1982         (WebCore::NetworkJob::sendRequestWithCredentials):
1983
1984 2012-10-05  Jer Noble  <jer.noble@apple.com>
1985
1986         No autorelease pool in place, causing buildup of autoreleased objects.
1987         https://bugs.webkit.org/show_bug.cgi?id=98522
1988         <rdar://problem/11647950>
1989
1990         Reviewed by Alexey Proskuryakov.
1991
1992         Wrap each timer callback in an AutodrainPool, ensuring an autorelease
1993         pool is present during calls from C/C++ into ObjC.
1994
1995         * platform/cf/RunLoopTimerCF.cpp:
1996         (WebCore::timerFired):
1997
1998 2012-10-05  Ryosuke Niwa  <rniwa@webkit.org>
1999
2000         Deleting across multiple paragraphs can change the style of surrounding text
2001         https://bugs.webkit.org/show_bug.cgi?id=97266
2002
2003         Reviewed by Levi Weintraub.
2004
2005         Preserve editing styles from CSS rules in wrappingStyleForSerialization as well as inline styles
2006         even when we're not annotating. We don't want to preserve all styles because it's against
2007         the user expectation to keep borders, etc... when merging paragraphs. We also don't want to copy
2008         styles from a mail blockquote because that's not a style the user has applied. See the comment
2009         in EditingStyle::wrappingStyleForSerialization.
2010
2011         Test: editing/deleting/merge-paragraph-with-style-from-rule.html
2012
2013         * editing/EditingStyle.cpp:
2014         (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
2015         (WebCore::EditingStyle::wrappingStyleForSerialization):
2016
2017 2012-10-05  Dan Bernstein  <mitz@apple.com>
2018
2019         Reversing a GlyphBuffer needlessly queries its size multiple times
2020         https://bugs.webkit.org/show_bug.cgi?id=98530
2021
2022         Reviewed by Simon Fraser.
2023
2024         No new tests because there is no change in behavior.
2025
2026         * WebCore.xcodeproj/project.pbxproj:
2027         * platform/graphics/FontFastPath.cpp:
2028         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced the condition
2029         (i < glyphBuffer.size() / 2) with the equivalent test (i < end).
2030         * platform/graphics/mac/FontComplexTextMac.cpp:
2031         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Ditto.
2032
2033 2012-10-05  JosĂ© Dapena Paz  <jdapena@igalia.com>
2034
2035         [GTK] Add support for creating EGL contexts
2036         https://bugs.webkit.org/show_bug.cgi?id=77921
2037
2038         Reviewed by Martin Robinson.
2039
2040         This patch adds support for EGL, using OpenGL and OpenGL ES 2. Both
2041         options are set up on compile time, with the configure options
2042         --enable-egl and --enable-gles2.
2043
2044         The implementation only adds support for EGL on top of X11, to
2045         isolate the changes to the minimum. More changes should come
2046         later to enable EGL for other targets (as Wayland).
2047
2048         No new tests required, as existing WebGL and AC tests should cover
2049         the cases.
2050
2051         * GNUmakefile.am:
2052         * GNUmakefile.list.am:
2053         * platform/graphics/GraphicsContext3D.h:
2054         (GraphicsContext3D):
2055         * platform/graphics/OpenGLESShims.h:
2056         * platform/graphics/cairo/GLContext.cpp:
2057         (WebCore):
2058         (WebCore::GLContext::sharedX11Display):
2059         (WebCore::GLContext::cleanupSharedX11Display):
2060         (WebCore::activeContextList):
2061         (WebCore::GLContext::addActiveContext):
2062         (WebCore::GLContext::removeActiveContext):
2063         (WebCore::GLContext::cleanupActiveContextsAtExit):
2064         (WebCore::GLContext::createContextForWindow):
2065         (WebCore::GLContext::createOffscreenContext):
2066         * platform/graphics/cairo/GLContext.h:
2067         (GLContext):
2068         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
2069         (WebCore::GraphicsContext3D::create):
2070         (WebCore::GraphicsContext3D::GraphicsContext3D):
2071         (WebCore::GraphicsContext3D::~GraphicsContext3D):
2072         (WebCore::GraphicsContext3D::isGLES2Compliant):
2073         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
2074         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
2075         * platform/graphics/clutter/GraphicsContext3DClutter.cpp:
2076         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
2077         * platform/graphics/egl/GLContextEGL.cpp: Added.
2078         (WebCore):
2079         (WebCore::sharedEGLDisplay):
2080         (WebCore::getEGLConfig):
2081         (WebCore::GLContextEGL::createWindowContext):
2082         (WebCore::GLContextEGL::createPbufferContext):
2083         (WebCore::GLContextEGL::createPixmapContext):
2084         (WebCore::GLContextEGL::createContext):
2085         (WebCore::GLContextEGL::GLContextEGL):
2086         (WebCore::GLContextEGL::~GLContextEGL):
2087         (WebCore::GLContextEGL::canRenderToDefaultFramebuffer):
2088         (WebCore::GLContextEGL::defaultFrameBufferSize):
2089         (WebCore::GLContextEGL::makeContextCurrent):
2090         (WebCore::GLContextEGL::swapBuffers):
2091         (WebCore::GLContextEGL::waitNative):
2092         (WebCore::GLContextEGL::platformContext):
2093         * platform/graphics/egl/GLContextEGL.h: Added.
2094         (WebCore):
2095         (GLContextEGL):
2096         * platform/graphics/glx/GLContextGLX.cpp:
2097         (WebCore::GLContextGLX::createWindowContext):
2098         (WebCore::GLContextGLX::createPbufferContext):
2099         (WebCore::GLContextGLX::createPixmapContext):
2100         (WebCore::GLContextGLX::createContext):
2101         (WebCore::GLContextGLX::~GLContextGLX):
2102         (WebCore::GLContextGLX::defaultFrameBufferSize):
2103         (WebCore::GLContextGLX::makeContextCurrent):
2104         (WebCore::GLContextGLX::swapBuffers):
2105         (WebCore):
2106         (WebCore::GLContextGLX::waitNative):
2107         * platform/graphics/glx/GLContextGLX.h:
2108         (GLContextGLX):
2109         * platform/graphics/mac/GraphicsContext3DMac.mm:
2110         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
2111         (WebCore::GraphicsContext3D::releaseShaderCompiler):
2112         (WebCore):
2113         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
2114         (WebCore::GraphicsContext3D::readPixels):
2115         (WebCore::GraphicsContext3D::reshapeFBOs):
2116         (WebCore::GraphicsContext3D::renderbufferStorage):
2117         * platform/graphics/qt/GraphicsContext3DQt.cpp:
2118         * platform/graphics/texmap/TextureMapper.h:
2119         * platform/gtk/RedirectedXCompositeWindow.cpp:
2120         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
2121         (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
2122         (WebCore::RedirectedXCompositeWindow::resize):
2123         * platform/gtk/RedirectedXCompositeWindow.h:
2124
2125 2012-10-04  Jon Lee  <jonlee@apple.com>
2126
2127         Add a setting to enable plugin snapshotting
2128         https://bugs.webkit.org/show_bug.cgi?id=98319
2129         <rdar://problem/12426480>
2130
2131         Reviewed by Brady Eidson.
2132
2133         Add a new bit for this preference.
2134
2135         * page/Settings.cpp:
2136         (WebCore::Settings::Settings): Preference is false by default.
2137         * page/Settings.h: Added m_plugInSnapshottingEnabled bit.
2138         (WebCore::Settings::setPlugInSnapshottingEnabled): Set the bit.
2139         (WebCore::Settings::plugInSnapshottingEnabled): Return the bit.
2140
2141 2012-10-05  Vsevolod Vlasov  <vsevik@chromium.org>
2142
2143         Unreviewed inspector front-end closure compilaiton fixes.
2144
2145         * inspector/InjectedScriptCanvasModuleSource.js:
2146         * inspector/InjectedScriptExterns.js:
2147         (InjectedScriptHost.prototype.getInternalProperties):
2148         * inspector/front-end/DockController.js:
2149         * inspector/front-end/externs.js:
2150         (InspectorFrontendHostAPI.prototype.requestSetDockSide):
2151
2152 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
2153
2154         Replace uses of prefixed properties with unprefixed versions in the UA stylesheets
2155         https://bugs.webkit.org/show_bug.cgi?id=98453
2156
2157         Reviewed by Ojan Vafai.
2158
2159         Switched 'border-radius' and 'box-shadow' to their unprefixed version in the UA stylesheets.
2160
2161         No new tests, because the unprefixed properties have the same behavior as the prefixed.
2162
2163         * css/fullscreenQuickTime.css:
2164         (video:-webkit-full-screen::-webkit-media-controls-panel):
2165         * css/html.css:
2166         (keygen, select):
2167         (select[size][multiple]):
2168         (select[size="1"]):
2169         (::-webkit-validation-bubble-message):
2170         * css/themeBlackBerry.css:
2171         (input, textarea):
2172         * css/themeChromiumAndroid.css:
2173         (select[size][multiple]):
2174         * css/themeQtNoListboxes.css:
2175         (select[size][multiple]):
2176         * css/themeWin.css:
2177         (select[size="1"]):
2178         * css/view-source.css:
2179         (.webkit-html-message-bubble):
2180
2181 2012-10-05  Kevin Ellis  <kevers@chromium.org>
2182
2183         [chromium] Only inflate the height of rows in a popup menu when a touch device is detected.
2184         https://bugs.webkit.org/show_bug.cgi?id=98515
2185
2186         Reviewed by Adam Barth.
2187
2188         Enforces a minimum row height for popup menus when a touch device is
2189         detected.  In a previous patch (r127597), the sizing of popup was 
2190         consolidated for touch and non-touch.  Based on user feedback, reverting
2191         to the old behavior for non-touch and only adding padding for touch
2192         devices seems like a much safer strategy.  This patch is not a direct
2193         revert of r127567 since the padding previously used for touch is a bit
2194         excessive.
2195
2196         Covered by existing tests.
2197
2198         * platform/chromium/PopupListBox.cpp:
2199         (WebCore::PopupListBox::getRowHeight):
2200         * platform/chromium/PopupMenuChromium.cpp:
2201         (WebCore):
2202         * platform/chromium/PopupMenuChromium.h:
2203         (WebCore::PopupMenuChromium::optionRowHeightForTouch):
2204         (WebCore::PopupMenuChromium::setOptionRowHeightForTouch):
2205         (PopupMenuChromium):
2206
2207 2012-10-05  Alexander Pavlov  <apavlov@chromium.org>
2208
2209         Web Inspector: [Styles] Unable to edit properties in broken stylesheets
2210         https://bugs.webkit.org/show_bug.cgi?id=98246
2211
2212         Reviewed by Vsevolod Vlasov.
2213
2214         Pop source data for invalid rules off the stack whenever we have consecutive CSSParser::markRuleHeaderStart() invocations.
2215
2216         Test: inspector/styles/parse-stylesheet-errors.html
2217
2218         * css/CSSParser.cpp:
2219         (WebCore::CSSParser::popRuleData):
2220         (WebCore::CSSParser::markRuleHeaderStart):
2221         (WebCore::CSSParser::markRuleBodyStart):
2222         * css/CSSParser.h:
2223         (CSSParser):
2224
2225 2012-10-05  Gabor Rapcsanyi  <rgabor@webkit.org>
2226
2227         Add ARM-NEON support to VectorMath in WebAudio
2228         https://bugs.webkit.org/show_bug.cgi?id=98131
2229
2230         Reviewed by Zoltan Herczeg.
2231
2232         Speed up vector operations in WebAudio with NEON intrinsics.
2233
2234         * platform/audio/VectorMath.cpp:
2235         (WebCore::VectorMath::vsma):
2236         (WebCore::VectorMath::vsmul):
2237         (WebCore::VectorMath::vadd):
2238         (WebCore::VectorMath::vmul):
2239         (WebCore::VectorMath::zvmul):
2240         (WebCore::VectorMath::vsvesq):
2241         (WebCore::VectorMath::vmaxmgv):
2242
2243 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
2244
2245         Unreviewed, rolling out r130495.
2246         http://trac.webkit.org/changeset/130495
2247         https://bugs.webkit.org/show_bug.cgi?id=98268
2248
2249         Made WK2 tests crash.
2250
2251         * Target.pri:
2252         * platform/qt/QStyleFacade.cpp: Removed.
2253         * platform/qt/QStyleFacade.h: Removed.
2254
2255 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
2256
2257         [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
2258         https://bugs.webkit.org/show_bug.cgi?id=98268
2259
2260         Reviewed by Tor Arne Vestbø.
2261
2262         Extracted QStyle/QWidget related code into a QWebStyle class that implements the QStyleFacade interface.
2263
2264         QStyleFacade is a pure interface that lives in WebCore/platform/qt
2265         (next to RenderThemeQStyle and ScrollbarThemeQStyle) and provides a
2266         minimal interface of what we need to draw with QStyle as well as basic
2267         hit testing and metric retrieval. It also provides a
2268         QStyleFacadeOption class that aggregates common meta-data for
2269         rendering primitives, such as direction, rectangle, state (sunken,
2270         enabled, etc.) or palette. It also provides some more slider/scrollbar
2271         specific fields in a slider sub-structure.
2272
2273         RenderThemeQStyle/ScrollbarThemeQStyle used to instantiate specific QStyleOption sub-classes and populate
2274         them with state information from render objects, before calling straight to QStyle. Most of the common code
2275         was encapsulated in StylePainterQStyle.
2276
2277         The new RenderThemeQStyle/ScrolllbarThemeQStyle uses common code in
2278         StylePainterQStyle to populate state into QStyleFacadeOption before
2279         calling into QStyleFacade.
2280
2281         The style facade is then implemented by QStyleFacadeImp, which extracts
2282         meta-data from QStyleFacadeOption arguments, populates style
2283         primitive specific QStyleOption objects and then calls on QStyle.
2284
2285         RenderThemeQStyle/ScrollbarThemeQStyle can only use interface methods
2286         from QStyleFacade. QStyleFacadeImp on the other hand will live in the
2287         separate QtWebKitWidgets library in the future and therefore cannot use
2288         any WebCore types.
2289
2290         * Target.pri:
2291         * platform/qt/QStyleFacade.cpp: Added.
2292         (WebCore):
2293         (WebCore::QStyleFacade::styleForPage):
2294         * platform/qt/QStyleFacade.h: Added.
2295         (WebCore):
2296         (QStyleFacade):
2297         (WebCore::QStyleFacade::~QStyleFacade):
2298         (WebCore::QStyleFacadeOption::QStyleFacadeOption):
2299         (QStyleFacadeOption):
2300         * platform/qt/RenderThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.cpp.
2301         (WebCore):
2302         (WebCore::RenderThemeQStyle::getStylePainter):
2303         (WebCore::StylePainterQStyle::StylePainterQStyle):
2304         (WebCore::StylePainterQStyle::init):
2305         (WebCore::RenderThemeQStyle::create):
2306         (WebCore::RenderThemeQStyle::setStyleFactoryFunction):
2307         (WebCore::RenderThemeQStyle::styleFactory):
2308         (WebCore::RenderThemeQStyle::RenderThemeQStyle):
2309         (WebCore::RenderThemeQStyle::~RenderThemeQStyle):
2310         (WebCore::RenderThemeQStyle::setPaletteFromPageClientIfExists):
2311         (WebCore::RenderThemeQStyle::inflateButtonRect):
2312         (WebCore::RenderThemeQStyle::computeSizeBasedOnStyle):
2313         (WebCore::RenderThemeQStyle::adjustButtonStyle):
2314         (WebCore::RenderThemeQStyle::setButtonPadding):
2315         (WebCore::RenderThemeQStyle::paintButton):
2316         (WebCore::RenderThemeQStyle::paintTextField):
2317         (WebCore::RenderThemeQStyle::adjustTextAreaStyle):
2318         (WebCore::RenderThemeQStyle::paintTextArea):
2319         (WebCore::RenderThemeQStyle::setPopupPadding):
2320         (WebCore::RenderThemeQStyle::colorPalette):
2321         (WebCore::RenderThemeQStyle::paintMenuList):
2322         (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
2323         (WebCore::RenderThemeQStyle::paintMenuListButton):
2324         (WebCore::RenderThemeQStyle::animationDurationForProgressBar):
2325         (WebCore::RenderThemeQStyle::paintProgressBar):
2326         (WebCore::RenderThemeQStyle::paintSliderTrack):
2327         (WebCore::RenderThemeQStyle::adjustSliderTrackStyle):
2328         (WebCore::RenderThemeQStyle::paintSliderThumb):
2329         (WebCore::RenderThemeQStyle::adjustSliderThumbStyle):
2330         (WebCore::RenderThemeQStyle::paintSearchField):
2331         (WebCore::RenderThemeQStyle::adjustSearchFieldDecorationStyle):
2332         (WebCore::RenderThemeQStyle::paintSearchFieldDecoration):
2333         (WebCore::RenderThemeQStyle::adjustSearchFieldResultsDecorationStyle):
2334         (WebCore::RenderThemeQStyle::paintSearchFieldResultsDecoration):
2335         (WebCore::RenderThemeQStyle::paintInnerSpinButton):
2336         (WebCore::RenderThemeQStyle::initializeCommonQStyleOptions):
2337         (WebCore::RenderThemeQStyle::adjustSliderThumbSize):
2338         * platform/qt/RenderThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.h.
2339         (WebCore):
2340         (RenderThemeQStyle):
2341         (WebCore::RenderThemeQStyle::qStyle):
2342         (StylePainterQStyle):
2343         (WebCore::StylePainterQStyle::isValid):
2344         (WebCore::StylePainterQStyle::paintButton):
2345         (WebCore::StylePainterQStyle::paintTextField):
2346         (WebCore::StylePainterQStyle::paintComboBox):
2347         (WebCore::StylePainterQStyle::paintComboBoxArrow):
2348         (WebCore::StylePainterQStyle::paintSliderTrack):
2349         (WebCore::StylePainterQStyle::paintSliderThumb):
2350         (WebCore::StylePainterQStyle::paintInnerSpinButton):
2351         (WebCore::StylePainterQStyle::paintProgressBar):
2352         (WebCore::StylePainterQStyle::paintScrollCorner):
2353         (WebCore::StylePainterQStyle::paintScrollBar):
2354         * platform/qt/ScrollbarThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.cpp.
2355         (WebCore):
2356         (WebCore::ScrollbarThemeQStyle::ScrollbarThemeQStyle):
2357         (WebCore::ScrollbarThemeQStyle::~ScrollbarThemeQStyle):
2358         (WebCore::scPart):
2359         (WebCore::scrollbarPart):
2360         (WebCore::initSliderStyleOption):
2361         (WebCore::ScrollbarThemeQStyle::paint):
2362         (WebCore::ScrollbarThemeQStyle::hitTest):
2363         (WebCore::ScrollbarThemeQStyle::shouldCenterOnThumb):
2364         (WebCore::ScrollbarThemeQStyle::invalidatePart):
2365         (WebCore::ScrollbarThemeQStyle::scrollbarThickness):
2366         (WebCore::ScrollbarThemeQStyle::thumbPosition):
2367         (WebCore::ScrollbarThemeQStyle::thumbLength):
2368         (WebCore::ScrollbarThemeQStyle::trackPosition):
2369         (WebCore::ScrollbarThemeQStyle::trackLength):
2370         (WebCore::ScrollbarThemeQStyle::paintScrollCorner):
2371         * platform/qt/ScrollbarThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.h.
2372         (WebCore):
2373         (ScrollbarThemeQStyle):
2374         (WebCore::ScrollbarThemeQStyle::qStyle):
2375
2376 2012-10-05  Andrei Bucur  <abucur@adobe.com>
2377
2378         Incomplete repaint of boxes with inset box-shadow and padding when resized
2379         https://bugs.webkit.org/show_bug.cgi?id=59863
2380
2381         Reviewed by Simon Fraser.
2382
2383         The patch extends the repaint rectangle to include the inset shadow extent for renderers that resize and need to be repainted. The rectangle computations are also better fragmented and easier to read.
2384
2385         New Test: fast/repaint/box-shadow-inset-repaint.html
2386
2387         * rendering/RenderObject.cpp:
2388         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
2389         * rendering/style/RenderStyle.cpp:
2390         (WebCore::RenderStyle::getShadowInsetExtent):
2391         (WebCore):
2392         * rendering/style/RenderStyle.h:
2393
2394 2012-10-04  Kent Tamura  <tkent@chromium.org>
2395
2396         Fix sub-field width to the maximum width of a placeholder and the maximum value
2397         https://bugs.webkit.org/show_bug.cgi?id=98481
2398
2399         Reviewed by Hajime Morita.
2400
2401         We can't assume a placeholder text is shorter than the width of
2402         digits. The placeholder string for the year field of
2403         input[type=week] is "----", but input[type=date] will have a
2404         localized string for it.
2405
2406         We should set the 'width' CSS property to the maximum of the
2407         placeholder width and the maximum value width in order to prevent
2408         the field width from growing/narrowing.
2409
2410         Before this patch, we secured four digits space for a year field,
2411         and allowed the field to grow its width when a larger year is
2412         set. After this patch, we don't allow it to grow because the
2413         'width' property is set to the maximum width.
2414
2415         Update week-multiple-fields-appearance-basic.html, and the
2416         following tests are affected.
2417         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes.html
2418         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements.html
2419         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-style.html
2420
2421         * html/shadow/DateTimeNumericFieldElement.cpp:
2422         (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
2423         Enable customStyleForRenderer.
2424         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
2425         Added. The code is similar to DateTimeSymbolicFieldElement::customStyleForRenderer().
2426         (WebCore::DateTimeNumericFieldElement::formatValue):
2427         Made a function with the code in value(). This is used in
2428         customStyleForRenderer() and value().
2429         (WebCore::DateTimeNumericFieldElement::value): Use formatValue().
2430         * html/shadow/DateTimeNumericFieldElement.h:
2431         (DateTimeNumericFieldElement): Declare new functions.
2432
2433 2012-10-05  Kent Tamura  <tkent@chromium.org>
2434
2435         Improve spelling and performance of Localizer.cpp
2436         https://bugs.webkit.org/show_bug.cgi?id=98485
2437
2438         Reviewed by Kentaro Hara.
2439
2440         Some improvements pointed in webkit.org/b/98229#c5.
2441
2442         No new tests because of no behavior change.
2443
2444         * platform/text/Localizer.h:
2445         (Localizer):
2446          - Rename dateTimeFormatWithSecond to dateTimeFormatWithSeconds
2447          - Rename dateTimeFormatWithoutSecond to dateTimeFormatWithoutSeconds
2448          - Add data members: m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
2449         * platform/text/Localizer.cpp:
2450         (WebCore::Localizer::timeFormat): Check isNull instead of isEmpty
2451         (WebCore::Localizer::shortTimeFormat): Ditto.
2452         (WebCore::Localizer::dateTimeFormatWithSeconds):
2453         - Renamed.
2454         - Cache the concatenation result to a data member.
2455         (WebCore::Localizer::dateTimeFormatWithoutSeconds): Ditto.
2456
2457         * html/DateTimeInputType.cpp:
2458         (WebCore::DateTimeInputType::setupLayoutParameters): Follow the renaming.
2459         * html/DateTimeLocalInputType.cpp:
2460         (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
2461
2462 2012-10-04  Kenichi Ishibashi  <bashi@chromium.org>
2463
2464         [WebSocket] ExtensionParser should have its own file
2465         https://bugs.webkit.org/show_bug.cgi?id=98475
2466
2467         Reviewed by Yuta Kitamura.
2468
2469         Factor out ExtensionParser from WebSocketExtensionDispatcher and rename it as WebSocketExtensionParser.
2470         WebSocketExtensionParser has its own file.
2471
2472         No changes in behavior. Added a test case for parsing Sec-WebSocket-Extensions field as a chromium unit test.
2473
2474         * CMakeLists.txt: Added WebSocketExtensionParser.
2475         * GNUmakefile.list.am: Ditto.
2476         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
2477         (WebCore::WebSocketExtensionDispatcher::processHeaderValue):
2478         Use WebSocketExtensionParser::parseExtension() to parser extension header value.
2479         * Modules/websockets/WebSocketExtensionParser.cpp: Added.
2480         (WebCore):
2481         (WebCore::WebSocketExtensionParser::finished): Moved from ExtensionParser.
2482         (WebCore::WebSocketExtensionParser::parsedSuccessfully): Ditto.
2483         (WebCore::isSeparator): Ditto.
2484         (WebCore::WebSocketExtensionParser::skipSpaces): Ditto.
2485         (WebCore::WebSocketExtensionParser::consumeToken): Ditto.
2486         (WebCore::WebSocketExtensionParser::consumeQuotedString): Ditto.
2487         (WebCore::WebSocketExtensionParser::consumeQuotedStringOrToken): Ditto.
2488         (WebCore::WebSocketExtensionParser::consumeCharacter): Ditto.
2489         (WebCore::WebSocketExtensionParser::parseExtension): Moved from WebSocketExtensionDispatcher.
2490         * Modules/websockets/WebSocketExtensionParser.h: Added.
2491         (WebCore):
2492         (WebSocketExtensionParser):
2493         (WebCore::WebSocketExtensionParser::WebSocketExtensionParser):
2494         (WebCore::WebSocketExtensionParser::currentToken):
2495         * Target.pri: Added WebSocketExtensionParser.
2496         * WebCore.gypi: Ditto.
2497         * WebCore.vcproj/WebCore.vcproj: Ditto.
2498         * WebCore.xcodeproj/project.pbxproj: Ditto.
2499
2500 2012-10-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
2501
2502         <input> size attribute should throw INDEX_SIZE_ERR when set to 0
2503         https://bugs.webkit.org/show_bug.cgi?id=61675
2504
2505         Reviewed by Kent Tamura.
2506
2507         According to the spec, the size IDL attribute of input elements is limited
2508         to only non-negative numbers greater than zero. It should throw INDEX_SIZE_ERR
2509         exception when set to 0. New behavior matches both Firefox and IE.
2510         Spec: http://www.w3.org/TR/html5/common-input-element-attributes.html#the-size-attribute
2511
2512         Test: fast/dom/HTMLInputElement/input-size-attribute.html
2513
2514         * html/HTMLInputElement.cpp:
2515         (WebCore::HTMLInputElement::setSize):
2516         * html/HTMLInputElement.h:
2517         (HTMLInputElement):
2518         * html/HTMLInputElement.idl:
2519
2520 2012-10-04  Kent Tamura  <tkent@chromium.org>
2521
2522         Fix font for date/time input types.
2523         https://bugs.webkit.org/show_bug.cgi?id=98478
2524
2525         Reviewed by Kentaro Hara.
2526
2527         input[type=date] should use monospace font if
2528         ENABLE_INPUT_MULTIPLE_FIELDS_UI && ENABLE_INPUT_TYPE_DATE.
2529
2530         For other date/time types, they should use monospace font only
2531         if their types are enabled. input[type="foo"] matches input
2532         element with type="foo" even if the foo type is not supported.
2533
2534         The input[type=date] change is covered by
2535         fast/forms/date/calendar-picker-appearance.html,
2536         platform/chromium/fast/forms/date/date-suggestion-picker-appearance*.html
2537
2538         * css/html.css:
2539         (input[type="date"]):
2540         (input[type="datetime"]):
2541         (input[type="datetime-local"]):
2542         (input[type="month"]):
2543         (input[type="time"]):
2544
2545 2012-10-04  Hajime Morrita  <morrita@google.com>
2546
2547         [Refactoring] Some classes in StyleResolver.cpp/h could have its own file.
2548         https://bugs.webkit.org/show_bug.cgi?id=98469
2549
2550         Reviewed by Dimitri Glazkov.
2551
2552         This change extracts RuleData, RuleSet, RuleFeature and Featurs class
2553         to its own file: RuleSet.h/cpp and RuleFeature.h/cpp
2554
2555         RuleFeature class is moved fro StyleResolver inner class to plain WebCore class.
2556         Feaures class is renamed to RuleFeatureSet to avoid possible name conflict.
2557
2558         No new tests. Just splitting file and doing simple rename.
2559
2560         * CMakeLists.txt:
2561         * GNUmakefile.list.am:
2562         * Target.pri:
2563         * WebCore.gypi:
2564         * WebCore.xcodeproj/project.pbxproj:
2565         * css/CSSAllInOne.cpp:
2566         * css/RuleFeature.cpp: Added.
2567         (WebCore):
2568         (WebCore::RuleFeatureSet::add):
2569         (WebCore::RuleFeatureSet::clear):
2570         (WebCore::RuleFeatureSet::reportMemoryUsage):
2571         * css/RuleFeature.h: Added.
2572         (WebCore):
2573         (RuleFeature):
2574         (WebCore::RuleFeature::RuleFeature):
2575         (RuleFeatureSet):
2576         (WebCore::RuleFeatureSet::RuleFeatureSet):
2577         * css/RuleSet.cpp: Added.
2578         (WebCore):
2579         (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
2580         (WebCore::selectorListContainsUncommonAttributeSelector):
2581         (WebCore::isCommonAttributeSelectorAttribute):
2582         (WebCore::containsUncommonAttributeSelector):
2583         (WebCore::RuleData::RuleData):
2584         (WebCore::RuleData::reportMemoryUsage):
2585         (WebCore::reportAtomRuleMap):
2586         (WebCore::RuleSet::reportMemoryUsage):
2587         (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
2588         (WebCore::collectFeaturesFromSelector):
2589         (WebCore::collectFeaturesFromRuleData):
2590         (WebCore::RuleSet::addToRuleSet):
2591         (WebCore::RuleSet::addRule):
2592         (WebCore::RuleSet::addPageRule):
2593         (WebCore::RuleSet::addRegionRule):
2594         (WebCore::RuleSet::addRulesFromSheet):
2595         (WebCore::RuleSet::addStyleRule):
2596         (WebCore::shrinkMapVectorsToFit):
2597         (WebCore::RuleSet::shrinkToFit):
2598         * css/RuleSet.h: Added.
2599         (WebCore):
2600         (RuleData):
2601         (WebCore::RuleData::position):
2602         (WebCore::RuleData::rule):
2603         (WebCore::RuleData::selector):
2604         (WebCore::RuleData::selectorIndex):
2605         (WebCore::RuleData::hasFastCheckableSelector):
2606         (WebCore::RuleData::hasMultipartSelector):
2607         (WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
2608         (WebCore::RuleData::containsUncommonAttributeSelector):
2609         (WebCore::RuleData::specificity):
2610         (WebCore::RuleData::linkMatchType):
2611         (WebCore::RuleData::hasDocumentSecurityOrigin):
2612         (WebCore::RuleData::isInRegionRule):
2613         (WebCore::RuleData::descendantSelectorIdentifierHashes):
2614         (SameSizeAsRuleData):
2615         (RuleSet):
2616         (WebCore::RuleSet::create):
2617         (WebCore::RuleSet::disableAutoShrinkToFit):
2618         (WebCore::RuleSet::features):
2619         (WebCore::RuleSet::idRules):
2620         (WebCore::RuleSet::classRules):
2621         (WebCore::RuleSet::tagRules):
2622         (WebCore::RuleSet::shadowPseudoElementRules):
2623         (WebCore::RuleSet::linkPseudoClassRules):
2624         (WebCore::RuleSet::focusPseudoClassRules):
2625         (WebCore::RuleSet::universalRules):
2626         (WebCore::RuleSet::pageRules):
2627         (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
2628         (RuleSetSelectorPair):
2629         (WebCore::RuleSet::RuleSet):
2630         * css/StyleResolver.cpp:
2631         (WebCore):
2632         (WebCore::makeRuleSet):
2633         (WebCore::StyleResolver::collectMatchingRulesForList):
2634         * css/StyleResolver.h:
2635         (StyleResolver):
2636
2637 2012-10-04  Adam Barth  <abarth@webkit.org>
2638
2639         FeatureObserver should distinguish between legacy HTML and text notifications
2640         https://bugs.webkit.org/show_bug.cgi?id=98441
2641
2642         Reviewed by Tony Chang.
2643
2644         We might be able to drop support for legacy HTML notifications before
2645         we can drop support for legacy text notifications. We should measure
2646         and find out.
2647
2648         * Modules/notifications/NotificationCenter.idl:
2649         * page/FeatureObserver.h:
2650
2651 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
2652
2653         Removing the unused member variable m_wasMalformed from HTMLFormElement class and its related code frgment.
2654         https://bugs.webkit.org/show_bug.cgi?id=98444
2655
2656         Reviewed by Eric Seidel.
2657
2658         The member variable m_wasMalformed of HTMLFormElement class was used to determine if the <form> tag was malformed or not.
2659         This information was used elsewhere to decide if bottom margins have to be included for such a <form>.
2660         However currently this member variable is not being set by any code following code refactoring in HTML parser class.
2661
2662         Code cleanup patch. No new tests required.
2663
2664         * html/HTMLFormElement.cpp:
2665         (WebCore::HTMLFormElement::HTMLFormElement):
2666           Removed m_wasMalformed initialization.
2667
2668         * html/HTMLFormElement.h:
2669         (HTMLFormElement):
2670          Removed m_wasMalformed variable.
2671          Removed m_wasMalformed variable's setter and getter functions.
2672
2673         * rendering/RenderBlock.cpp:
2674         (WebCore::RenderBlock::layoutBlock):
2675          Removed code fragment using/dependent on m_wasMalformed.
2676
2677 2012-10-04  Rik Cabanier  <cabanier@adobe.com>
2678
2679         Turn Compositing on by default in WebKit build
2680         https://bugs.webkit.org/show_bug.cgi?id=98315
2681
2682         Reviewed by Simon Fraser.
2683
2684         enable -webkit-blend-mode on trunk.
2685
2686         No new tests. Existing blending test were updated.
2687
2688         * Configurations/FeatureDefines.xcconfig:
2689         * css/CSSPropertyNames.in:
2690         * css/CSSValueKeywords.in:
2691
2692 2012-10-04  Hayato Ito  <hayato@chromium.org>
2693
2694         [Refactoring] Introduce a traversal strategy in SelectorChecker
2695         https://bugs.webkit.org/show_bug.cgi?id=97298
2696
2697         Reviewed by Antti Koivisto.
2698
2699         We extract DOM traversal code from SelectorChecker so that we can use another traversal strategy.
2700         Another traversal strategy will be introduced in Bug 96990.
2701
2702         Since this code path is very hot, we were very careful not to regress performance.
2703         We will use template specialization to change the traversal implementation.
2704
2705         We confirmed that this patch does not regress SelectorCheckerPerformance. I have checked the performance of
2706         the added test in my Linux Box using run-perf-tests.
2707
2708         The performance of the added test before using this patch was:
2709
2710           RESULT CSS: PseudoClassSelectors= 3399.68308031 runs/s
2711           median= 3404.48685564 runs/s, stdev= 37.3480114449 runs/s, min= 3272.64871114 runs/s, max= 3438.72385184 runs/s
2712
2713         When we used this patch, the performance was:
2714
2715           RESULT CSS: PseudoClassSelectors= 3367.74473886 runs/s
2716           median= 3367.12072755 runs/s, stdev= 14.1464547639 runs/s, min= 3348.55881171 runs/s, max= 3395.98212857 runs/s
2717
2718         Test: PerformanceTests/CSS/PseudoClass-Selectors.html
2719
2720         * css/SelectorChecker.cpp:
2721         (WebCore):
2722         (WebCore::SelectorChecker::checkSelector): Make this a template method to accept another Context type.
2723         Another Context type will be introduced in coming patch.
2724         (WebCore::SelectorChecker::checkOneSelector):
2725         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstChild):
2726         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastChild):
2727         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstOfType):
2728         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastOfType):
2729         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsBefore):
2730         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeBefore):
2731         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsAfter):
2732         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeAfter):
2733         * css/SelectorChecker.h:
2734         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
2735         (SelectorCheckingContext):
2736         (SelectorChecker):
2737         (DOMTraversalStrategy): Extracted the DOM traversal code from SelectorChecker. Another traversal code
2738         will be introduced the coming patch.
2739
2740 2012-10-04  Eric Seidel  <eric@webkit.org>
2741
2742         SVGAttributeHashTranslator does not need to copy QualifiedName in the common case
2743         https://bugs.webkit.org/show_bug.cgi?id=98473
2744
2745         Reviewed by Adam Barth.
2746
2747         I tested this using instruments on a test case which modified SVG attributes in a loop.
2748         I believe pdr has some perf-tests in this area, but they weren't needed here.  A simple sample showed this as a huge win,
2749         since we're no longer creating a QualifiedName (and thus adding it to the hash) on each QualifiedName-based lookup in SVG.
2750
2751         * svg/SVGElement.h:
2752         (WebCore::SVGAttributeHashTranslator::hash):
2753         (WebCore::SVGAttributeHashTranslator::equal):
2754
2755 2012-10-04  Julien Chaffraix  <jchaffraix@webkit.org>
2756
2757         Split the intrinsic padding update code out of RenderTableSection::layoutRows
2758         https://bugs.webkit.org/show_bug.cgi?id=98454
2759
2760         Reviewed by Eric Seidel.
2761
2762         RenderTableSection::layoutRows is very long and it's difficult to see what's
2763         going on. This change moves the intrinsic padding update code into RenderTableCell
2764         for clarity. While at it, cleaned up a bit the code (renaming variables, functions).
2765
2766         Change covered by existing table tests.
2767
2768         * rendering/RenderTableCell.cpp:
2769         (WebCore::RenderTableCell::computeIntrinsicPadding):
2770         Added this new function that does the update. Removed the 'default' case, replaced by
2771         the explicit label BASELINE_MIDDLE.
2772
2773         * rendering/RenderTableCell.h:
2774         (WebCore::RenderTableCell::setIntrinsicPaddingBefore):
2775         (WebCore::RenderTableCell::setIntrinsicPaddingAfter):
2776         (WebCore::RenderTableCell::setIntrinsicPadding):
2777         Moved those setters to the private section as we want other classes
2778         to use computeIntrinsicPadding.
2779
2780         * rendering/RenderTableSection.cpp:
2781         (WebCore::RenderTableSection::layoutRows):
2782         Replaced the code with a call to RenderTableCell::computeIntrinsicPadding.
2783         Also moved 2 variables in the loop per our coding style.
2784
2785         * rendering/RenderTableSection.h:
2786         (WebCore::RenderTableSection::rowBaseline):
2787         Renamed to match our coding style.
2788
2789 2012-10-04  Nate Chapin  <japhet@chromium.org>
2790
2791         Crash in EventHandler::mouseMoved().
2792         https://bugs.webkit.org/show_bug.cgi?id=98460
2793
2794         Reviewed by Abhishek Arya.
2795
2796         No new tests, this fixes fast/events/mouse-moved-remove-frame-crash.html.
2797
2798         * page/EventHandler.cpp:
2799         (WebCore::EventHandler::mouseMoved):
2800
2801 2012-10-04  Adam Barth  <abarth@webkit.org>
2802
2803         [V8] NotificationCenter leaks because it uses buggy custom bindings
2804         https://bugs.webkit.org/show_bug.cgi?id=98445
2805
2806         Reviewed by Tony Chang.
2807
2808         There's no reason to use custom bindings here. All they do is cause leaks..
2809
2810         * Modules/notifications/NotificationCenter.idl:
2811         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
2812
2813 2012-10-04  Tab Atkins  <jackalmage@gmail.com>
2814
2815         Selector specificity categories "overflow" into higher categories
2816         https://bugs.webkit.org/show_bug.cgi?id=98295
2817
2818         Reviewed by Eric Seidel.
2819
2820         This patch adds per-component overflow guards for CSS selector specificity.
2821         Previously, we didn't guard against overflow. 
2822         Since we stored each component as a byte mapped into a single unsigned int for the whole specificity,
2823         256 of a particular simple selector was equivalent to 1 of the next-higher-group selector.
2824         This violated the Selectors specification,
2825         which requires the components to be compared lexicographically.
2826
2827         Tests: /fast/selectors/specificity-overflow.html
2828
2829         * css/CSSSelector.cpp:
2830         (WebCore::CSSSelector::specificity):
2831
2832 2012-10-04  Enrica Casucci  <enrica@apple.com>
2833
2834         Font::glyphDataAndPageForCharacter doesn't account for text orientation when using systemFallback on a cold cache.
2835         https://bugs.webkit.org/show_bug.cgi?id=98452.
2836
2837         Reviewed by Dan Bernstein.
2838
2839         The text orientation was considered only when there is a cache hit.
2840         This change moves the logic to handle text orientation to a separate
2841         inline function that is called also when the glyph is added to the cache.
2842
2843         Test: fast/text/vertical-rl-rtl-linebreak.html
2844
2845         * platform/graphics/FontFastPath.cpp:
2846         (WebCore::applyTextOrientationForCharacter): Added.
2847         (WebCore::Font::glyphDataAndPageForCharacter): Modified to use the new function in
2848         both cases of cold and warm cache.
2849
2850 2012-10-04  Adam Klein  <adamk@chromium.org>
2851
2852         MutationRecord attributeName should be null for non attribute changes
2853         https://bugs.webkit.org/show_bug.cgi?id=98438
2854
2855         Reviewed by Ojan Vafai.
2856
2857         Test: fast/mutation/mutation-record-nullity.html
2858
2859         * dom/MutationRecord.idl:
2860
2861 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
2862
2863         Final part of "sync" to "flush" renaming
2864         https://bugs.webkit.org/show_bug.cgi?id=98430
2865
2866         Reviewed by Tim Horton.
2867
2868         Change method names on GraphicsLayer and GraphicsLayerClient that
2869         refer to "sync" to use the term "flush" instead, to be consistent
2870         with the rest of the code.
2871
2872         * platform/graphics/GraphicsLayer.h:
2873         (WebCore::GraphicsLayer::flushCompositingState):
2874         (WebCore::GraphicsLayer::flushCompositingStateForThisLayerOnly):
2875         * platform/graphics/GraphicsLayerClient.h:
2876         (GraphicsLayerClient):
2877         * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
2878         (WebCore::GraphicsLayerBlackBerry::notifyFlushRequired):
2879         * platform/graphics/blackberry/LayerWebKitThread.cpp:
2880         (WebCore::LayerWebKitThread::setNeedsCommit):
2881         * platform/graphics/ca/GraphicsLayerCA.cpp:
2882         (WebCore::GraphicsLayerCA::flushCompositingState):
2883         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly):
2884         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
2885         (WebCore::GraphicsLayerCA::positionForCloneRootLayer):
2886         (WebCore::GraphicsLayerCA::noteLayerPropertyChanged):
2887         * platform/graphics/ca/GraphicsLayerCA.h:
2888         (GraphicsLayerCA):
2889         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
2890         (WebCore::GraphicsLayerTextureMapper::notifyChange):
2891         (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
2892         (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
2893         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
2894         (GraphicsLayerTextureMapper):
2895         * platform/graphics/texmap/TextureMapperLayer.cpp:
2896         (WebCore::TextureMapperLayer::flushCompositingState):
2897         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
2898         * platform/graphics/texmap/TextureMapperLayer.h:
2899         (TextureMapperLayer):
2900         * rendering/RenderLayerBacking.cpp:
2901         (WebCore::RenderLayerBacking::notifyFlushRequired):
2902         * rendering/RenderLayerBacking.h:
2903         (RenderLayerBacking):
2904         * rendering/RenderLayerCompositor.cpp:
2905         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
2906         * rendering/RenderLayerCompositor.h:
2907         (WebCore::RenderLayerCompositor::notifyFlushRequired):
2908
2909 2012-10-04  Tab Atkins  <tabatkins@google.com>
2910
2911         1ex should equal .5em when the font has no x-height metric
2912         https://bugs.webkit.org/show_bug.cgi?id=80360
2913
2914         Reviewed by Eric Seidel.
2915
2916         Updated FontMetrics and CSSPrimitiveValue to have/use an explicit "hasXHeight" flag to determine how to size an 'ex' unit.
2917
2918         Updated a few of the platform font files to set the flag properly.
2919
2920         Patch cleanup by David Barr <davidbarr@chromium.org>.
2921
2922         Test: fast/css/ex-unit-with-no-x-height.html
2923
2924         * css/CSSPrimitiveValue.cpp:
2925         (WebCore::CSSPrimitiveValue::computeLengthDouble):
2926         * platform/graphics/FontMetrics.h:
2927         (WebCore::FontMetrics::FontMetrics):
2928         (WebCore::FontMetrics::setXHeight):
2929         (FontMetrics):
2930         (WebCore::FontMetrics::hasXHeight):
2931         (WebCore::FontMetrics::setHasXHeight):
2932         (WebCore::FontMetrics::reset):
2933         * platform/graphics/skia/SimpleFontDataSkia.cpp:
2934         (WebCore::SimpleFontData::platformInit):
2935
2936 2012-10-04  Ryosuke Niwa  <rniwa@webkit.org>
2937
2938         Build fix after r130411. Add the right offset.
2939         Also use RefPtr instead of a raw pointer for next and previous pointers.
2940
2941         * editing/ReplaceSelectionCommand.cpp:
2942         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
2943
2944 2012-10-04  Alec Flett  <alecflett@chromium.org>
2945
2946         IndexedDB: promote objectstore/index backend ids to the frontend
2947         https://bugs.webkit.org/show_bug.cgi?id=97834
2948
2949         Reviewed by Tony Chang.
2950
2951         Expose int64-based database/objectStore/index ids to the renderer,
2952         step 1 of 2. Support both styles of createObjectStore and
2953         createIndex: those that take an explicit id, and those that take
2954         -1, meaning to autogenerate an id on the backend. In part 2, after
2955         the chromium side lands, support for the autogenerated ids will be
2956         removed. (See https://bugs.webkit.org/show_bug.cgi?id=98085)
2957
2958         This is a part of larger refactoring work to ultimately make the interface
2959         between the frontend and the backend simpler.
2960
2961         No new tests, extensive ASSERTs and existing tests cover correctness.
2962
2963         * Modules/indexeddb/IDBBackingStore.h:
2964         (IDBBackingStore):
2965         * Modules/indexeddb/IDBDatabase.cpp:
2966         (WebCore::IDBDatabase::createObjectStore):
2967         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
2968         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
2969         (WebCore::IDBDatabaseBackendImpl::openInternal):
2970         (WebCore::IDBDatabaseBackendImpl::metadata):
2971         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
2972         (WebCore):
2973         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
2974         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
2975         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
2976         (IDBDatabaseBackendImpl):
2977         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
2978         (IDBDatabaseBackendInterface):
2979         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
2980         (WebCore::IDBIndexBackendImpl::metadata):
2981         * Modules/indexeddb/IDBIndexBackendImpl.h:
2982         (WebCore::IDBIndexBackendImpl::create):
2983         (IDBIndexBackendImpl):
2984         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
2985         (WebCore):
2986         (WebCore::getMaxObjectStoreId):
2987         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
2988         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
2989         (WebCore::IDBLevelDBBackingStore::getObjectStores):
2990         (WebCore::setMaxObjectStoreId):
2991         (WebCore::IDBLevelDBBackingStore::createObjectStore):
2992         (WebCore::getMaxIndexId):
2993         (WebCore::setMaxIndexId):
2994         (WebCore::IDBLevelDBBackingStore::createIndex):
2995         * Modules/indexeddb/IDBLevelDBBackingStore.h:
2996         (IDBLevelDBBackingStore):
2997         * Modules/indexeddb/IDBMetadata.h:
2998         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
2999         (IDBDatabaseMetadata):
3000         (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
3001         (IDBObjectStoreMetadata):
3002         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
3003         (IDBIndexMetadata):
3004         * Modules/indexeddb/IDBObjectStore.cpp:
3005         (WebCore::IDBObjectStore::createIndex):
3006         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
3007         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
3008         (WebCore::IDBObjectStoreBackendImpl::metadata):
3009         (WebCore::IDBObjectStoreBackendImpl::createIndex):
3010         (WebCore):
3011         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
3012         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
3013         (WebCore::IDBObjectStoreBackendImpl::create):
3014         (IDBObjectStoreBackendImpl):
3015         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
3016 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
3017
3018         Layout broken after cloning and re-inserting a table with a misplaced <form>
3019         https://bugs.webkit.org/show_bug.cgi?id=86746
3020
3021         Reviewed by Julien Chaffraix.
3022
3023         There is a concept of demotion for a <form> contained in a table. A <form> is demoted if its immediate parent
3024         is either a <table>, table sections (tbody, etc) or a table row (tr). A renderer for such a <form> is created only
3025         if its display is one of the table display types (TABLE, INLINE_TABLE, TABLE_FOOTER_GROUP, etc).
3026         However when a <table> containing a demoted <form> is cloned, the <form> does not retain its demotion state and 
3027         results in the table getting improperly rendered.
3028
3029         Test: fast/table/form-with-non-table-display-inside-table-elements.html
3030
3031         * html/HTMLFormElement.cpp:
3032         (WebCore::HTMLFormElement::copyNonAttributePropertiesFromElement):
3033           Extended the virtual function for HTMLFormElement class specific implementation.
3034           The function is used to copy any necessary state information(member variables) associated with
3035           the <form> element being cloned to the current node.
3036           For HTMLFormElement node the member variable can be classified into five groups based on the 
3037           information they hold:
3038             1) Variables containing information regarding <form> subtree and elements associated with it.
3039                These get updated as and when an element is added to the <form> subtree.
3040             2) Variables containing <form> submit state information.
3041             3) Flag to hold information if reset() has been called.
3042             4) Flag(m_wasDemoted) that indicates whether the form is demoted or not, based on which it needs to
3043                be handled differently during creation of its renderer.
3044                This information is currently being updated only during the HTML tree construction phase.
3045             5) Flag(m_wasMalformed) to hold information if the <form> is malformed or not.
3046
3047           Variables of group (1) will be updated as and when elements are added to the <form> subtree. Whereas,
3048           (2) and (3) hold instance specific information, thus copying them is not required. Also (5) is currently not
3049           being used(not set by any code).
3050
3051           On the other hand, (4) is required to be copied during cloning as this information cannot be accessed
3052           during the cloning process.
3053
3054         (WebCore):
3055         * html/HTMLFormElement.h:
3056           Added copyNonAttributePropertiesFromElement() declaration.
3057
3058 2012-10-04  Dean Jackson  <dino@apple.com>
3059
3060         Attribute and Uniform variable names need translation in shader
3061         https://bugs.webkit.org/show_bug.cgi?id=70989
3062
3063         Reviewed by Tim Horton (and Darin Adler).
3064
3065         WebGL specifies some maximum lengths for variable names (attributes
3066         and uniforms). Also, some GL drivers have issues with long names. For
3067         that reason, ANGLE has an option to rewrite the shader, translating
3068         long names into short names. Turning this on helps shaders compile,
3069         but we need to keep a mapping between the original names and the
3070         translated names, so that we bind to the right location from user code
3071         (which won't ever see the translated source).
3072
3073         This provided an opportunity to clean up some other bits of code:
3074         CSS Filters examined the uniform names after a compilation; It can
3075         now use the variable name map. I also added a typedef for the
3076         HashMaps that keep the shader, the source code and the variable name
3077         mappings.
3078
3079         I also opened a followup bug to make sure these tables are deleted
3080         when the associated shaders (or linked programs) go away:
3081         https://bugs.webkit.org/show_bug.cgi?id=98204
3082
3083         Covered by existing tests (with some enhancements):
3084         - fast/canvas/webgl/attrib-location-length-limits.html:
3085         - fast/canvas/webgl/uniform-location-length-limits.html:
3086
3087         * platform/graphics/ANGLEWebKitBridge.cpp:
3088         (WebCore::getSymbolInfo): Extracts all the information on symbols (either attributes
3089         or uniforms) from the newly compiled shader.
3090         (WebCore):
3091         (WebCore::ANGLEWebKitBridge::compileShaderSource): New method name.
3092         * platform/graphics/ANGLEWebKitBridge.h:
3093         (WebCore::getUniforms): Deleted this method.
3094         (WebCore::ANGLEShaderSymbol::isSampler): Make sure the symbol is a uniform.
3095         (ANGLEWebKitBridge):
3096         * platform/graphics/GraphicsContext3D.h:
3097         (WebCore::GraphicsContext3D::SymbolInfo::SymbolInfo): A new object that
3098         holds the size, type and translated name of a symbol from a WebGL shader.
3099         (ShaderSourceEntry):
3100         (WebCore::GraphicsContext3D::ShaderSourceEntry::ShaderSourceEntry): Now keeps track
3101         of the translated source code and symbol mappings.
3102         (WebCore::GraphicsContext3D::ShaderSourceEntry::symbolMap): Helper function to
3103         get the member variable corresponding to the type of symbol you're asking fo.
3104         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
3105         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram): Calls new method
3106         name which also produces a set of symbols to examine.
3107         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
3108         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): We now can pass
3109         in some extra compile options to do translation of long symbol names. Also fill the
3110         map of translated symbol names.
3111         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
3112         (WebCore::GraphicsContext3D::compileShader):
3113         (WebCore::GraphicsContext3D::mappedSymbolName): Returns the mapped name for
3114         a shader symbol if it was translated during compilation.
3115         (WebCore):
3116         (WebCore::GraphicsContext3D::getAttribLocation):
3117         (WebCore::GraphicsContext3D::getShaderiv):
3118         (WebCore::GraphicsContext3D::getShaderInfoLog):
3119         (WebCore::GraphicsContext3D::getShaderSource):
3120         (WebCore::GraphicsContext3D::getUniformLocation):
3121
3122 2012-10-04  Alpha Lam  <hclam@chromium.org>
3123
3124         [skia] Drawing a subrect of bitmap image is misaligned
3125         https://bugs.webkit.org/show_bug.cgi?id=95121
3126
3127         Reviewed by Stephen White.
3128
3129         When drawing a subrect of BitmapImage and the subrect is not aligned
3130         to integer boundaries, skia expands it to the closest enclosing integer
3131         rectangle. This creates prominent rendering artifacts when an image
3132         is used as background and its sub-regions are invalidated frequently.
3133
3134         This patch fixes the problem by doing alignment to integer boundaries
3135         and clipping for both cases of RESAMPLE_AWESOME and RESAMPLE_LINEAR.
3136
3137         A clip rect is applied to the canvas using original destination
3138         rectangle, while source and destination rectangles are enlarged
3139         appropriately to ensure source rectangle is aligned.
3140
3141         This patch also fixes a closely related problem. In RESAMPLE_AWESOME
3142         resampling mode the previous algorithm applies different approximated
3143         scale factor for each scaled image fragment. This caused the stitched
3144         image to look ugly.
3145
3146         Scale factor is approximated using entire image size, this gives a
3147         more accurate approximation because of greater denominator and a
3148         consistent scale factor across all fragments.
3149
3150         Changes in Skia enable caching of the scaled image and return the
3151         scaled fragment because scale factor is now consistent for all
3152         fragments.
3153
3154         Tests: fast/images/paint-subrect-grid.html
3155                fast/images/paint-subrect.html
3156                fast/images/repaint-subrect-grid.html
3157
3158         * platform/graphics/skia/ImageSkia.cpp:
3159         (WebCore::computeResamplingMode): Use float for width and height.
3160         (WebCore):
3161         (WebCore::areBoundariesIntegerAligned):
3162         (WebCore::computeBitmapDrawRects):
3163         (WebCore::extractScaledImageFragment):
3164         (WebCore::drawResampledBitmap): New algorithm for drawing scaled image fragment.
3165         (WebCore::paintSkBitmap):
3166         (WebCore::Image::drawPattern):
3167         (WebCore::BitmapImage::draw): Use SkRect instead of SkIRect.
3168         (WebCore::BitmapImageSingleFrameSkia::draw):
3169         * platform/graphics/skia/NativeImageSkia.cpp:
3170         Changing the algorithm for extracting a scaled image fragment.
3171         A fragment is now identified by (scaledImageSize, scaledImageSubset).
3172         (WebCore::NativeImageSkia::hasResizedBitmap):
3173         (WebCore::NativeImageSkia::resizedBitmap):
3174         (WebCore::NativeImageSkia::shouldCacheResampling):
3175         (WebCore::NativeImageSkia::CachedImageInfo::CachedImageInfo):
3176         (WebCore):
3177         (WebCore::NativeImageSkia::CachedImageInfo::isEqual):
3178         (WebCore::NativeImageSkia::CachedImageInfo::set):
3179         (WebCore::NativeImageSkia::CachedImageInfo::rectInSubset):
3180         * platform/graphics/skia/NativeImageSkia.h:
3181         (NativeImageSkia):
3182         (CachedImageInfo):
3183
3184 2012-10-03  Ryosuke Niwa  <rniwa@webkit.org>
3185
3186         ReplaceSelectionCommand should merge text nodes
3187         https://bugs.webkit.org/show_bug.cgi?id=98188
3188
3189         Reviewed by Levi Weintraub.
3190
3191         Added mergeTextNodesAroundPosition to ReplaceSelectionCommand to merge text nodes after the replace in
3192         completeHTMLReplacement. Also fixed a bunch of bugs in other classes and functions to make this work.
3193
3194         This behavior change is tested by existing tests.
3195
3196         * editing/InsertParagraphSeparatorCommand.cpp:
3197         (WebCore::InsertParagraphSeparatorCommand::doApply): When splitting a text node, place the insertionPosition
3198         at the end of the first half. Leaving it at the beginning of the second half confuses the rest of the code in
3199         the function. However, the logic to handle the "insignificant" white spaces needs the position at the start of
3200         the second half. So keep this position.
3201         * editing/ReplaceSelectionCommand.cpp:
3202         (WebCore::ReplaceSelectionCommand::doApply): Update visibleStart after inserting a paragraph separator so that
3203         the logic to cleanup the nested div checks the right condition (right beneath it starting with a long comment).
3204         (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace): Insert a space for smart paste at the appropriate
3205         offset instead of at the end of endNode. Also update the layout before obtaining startDownstream as we may have 
3206         modified the DOM by inserting a space for endNode. Finally, a non-breaking space should be treated like a space
3207         isCharacterSmartReplaceExempt for the purpose of smart replace. e.g. if we're inserting "world" after
3208         "hello&nbsp;", we shouldn't be inserting another space between "hello" and "world".
3209         (WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
3210         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition): Added. Merge text nodes around position, and
3211         adjust position and positionOnlyToBeUpdated accordingly. We need to call updatePositionForNodeRemoval when
3212         positions were before or after the text node.
3213         * editing/ReplaceSelectionCommand.h:
3214         (ReplaceSelectionCommand):
3215
3216 2012-10-04  Tony Chang  <tony@chromium.org>
3217
3218         Fix <input type="month"> tests
3219         https://bugs.webkit.org/show_bug.cgi?id=98426
3220
3221         Reviewed by Ojan Vafai.
3222
3223         The month picker uses flexbox and assumes that it will be aligned with
3224         the last line box. This looks visually correct. I will follow up on
3225         www-style to see what the expected behavior is.
3226
3227         Tests: fast/forms/month-multiple-fields tests cover this.
3228
3229         * rendering/RenderFlexibleBox.cpp:
3230         * rendering/RenderFlexibleBox.h:
3231
3232 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
3233
3234         Unreviewed, rolling out r130396.
3235         http://trac.webkit.org/changeset/130396
3236         https://bugs.webkit.org/show_bug.cgi?id=98421
3237
3238         This patch is causing crashes on 4 tests on Lion Debug and
3239         Mountain Lion Debug (Requested by jernoble on #webkit).
3240
3241         * rendering/RenderLayerCompositor.cpp:
3242         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
3243         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
3244         * rendering/RenderLayerCompositor.h:
3245         * testing/InternalSettings.cpp:
3246         (WebCore::InternalSettings::Backup::Backup):
3247         (WebCore::InternalSettings::Backup::restoreTo):
3248         * testing/InternalSettings.h:
3249         (Backup):
3250
3251 2012-10-04  Tony Chang  <tony@chromium.org>
3252
3253         inline-flex baseline is sometimes wrong
3254         https://bugs.webkit.org/show_bug.cgi?id=96188
3255
3256         Reviewed by Ojan Vafai.
3257
3258         Implement the necessary methods to get the proper baseline alignment of flexbox.
3259         We were falling back to the inline-block behavior.
3260
3261         Test: css3/flexbox/flexbox-baseline.html
3262
3263         * rendering/RenderFlexibleBox.cpp:
3264         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
3265         (WebCore::RenderFlexibleBox::baselinePosition): Used to get the baseline of the box.
3266         Mostly just the first line box baseline.
3267         (WebCore):
3268         (WebCore::RenderFlexibleBox::lastLineBoxBaseline): This is used for getting the baseline when in an inline-block.
3269         We actually don't want the last line, but the flexbox's baseline.
3270         (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Compute the baseline according to the rules in the spec.
3271         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems): Keep track of the number of children on the
3272         first line so we don't have to re-compute this when getting the baseline.
3273         (WebCore::RenderFlexibleBox::crossAxisExtentForChild): Make const.
3274         (WebCore::RenderFlexibleBox::mainAxisExtentForChild): Make const.
3275         (WebCore::RenderFlexibleBox::hasAutoMarginsInCrossAxis): Make const.
3276         * rendering/RenderFlexibleBox.h: Add a size_t to keep track of how many children are in the first line.
3277
3278 2012-10-04  Xianzhu Wang  <wangxianzhu@chromium.org>
3279
3280         [Chromium] Should set unitsPerEm in SimpleFontDataSkia.cpp
3281         https://bugs.webkit.org/show_bug.cgi?id=98100
3282
3283         Reviewed by Stephen White.
3284
3285         At least on chromium-linux and chromium-android, unitsPerEm was not set
3286         according to the information in the font, causing at least problems in
3287         OpenTypeVerticalData when calculating vertical advance.
3288
3289         Test: fast/writing-mode/vertical-font-vmtx-units-per-em.html
3290
3291         * platform/graphics/skia/SimpleFontDataSkia.cpp:
3292         (WebCore::SimpleFontData::platformInit):
3293
3294 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
3295
3296         Standardize on "flush" terminology for compositing layer flushing/syncing
3297         https://bugs.webkit.org/show_bug.cgi?id=98321
3298
3299         Reviewed by Simon Fraser.
3300
3301         Rename compositing-related methods that refer to "syncing" to instead
3302         refer to "flushing".
3303
3304         * WebCore.exp.in:
3305         * loader/EmptyClients.h:
3306         (WebCore::EmptyChromeClient::scheduleCompositingLayerFlush):
3307         * page/ChromeClient.h:
3308         (ChromeClient):
3309         * page/FrameView.cpp:
3310         (WebCore::FrameView::flushCompositingStateForThisFrame):
3311         (WebCore::FrameView::flushCompositingStateIncludingSubframes):
3312         (WebCore::FrameView::paintContents):
3313         * page/FrameView.h:
3314         (FrameView):
3315         * rendering/RenderLayerCompositor.cpp:
3316         (WebCore::RenderLayerCompositor::scheduleLayerFlush):
3317         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
3318
3319 2012-10-04  Peter Rybin  <peter.rybin@gmail.com>
3320
3321         Web Inspector: expose object internal properties such as PrimitiveValue or BoundThis
3322         https://bugs.webkit.org/show_bug.cgi?id=94397
3323
3324         Reviewed by Yury Semikhatsky.
3325
3326         Internal property access is built from Injected Script to V8 debug API. JSC binding
3327         has a stub imlpementation. Protocol is updated to explicitly reflect internal properties.
3328
3329         Test: inspector-protocol/runtime-getProperties.html
3330
3331         * bindings/js/JSInjectedScriptHostCustom.cpp:
3332         (WebCore::JSInjectedScriptHost::getInternalProperties):
3333         (WebCore):
3334         * bindings/v8/DebuggerScript.js:
3335         * bindings/v8/ScriptDebugServer.cpp:
3336         (WebCore::ScriptDebugServer::getInternalProperties):
3337         (WebCore):
3338         * bindings/v8/ScriptDebugServer.h:
3339         (ScriptDebugServer):
3340         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3341         (WebCore::V8InjectedScriptHost::getInternalPropertiesCallback):
3342         (WebCore):
3343         * inspector/InjectedScript.cpp:
3344         (WebCore::InjectedScript::getInternalProperties):
3345         (WebCore):
3346         * inspector/InjectedScript.h:
3347         (InjectedScript):
3348         * inspector/InjectedScriptHost.idl:
3349         * inspector/InjectedScriptSource.js:
3350         (.):
3351         * inspector/Inspector.json:
3352         * inspector/InspectorRuntimeAgent.cpp:
3353         (WebCore::InspectorRuntimeAgent::getProperties):
3354         * inspector/InspectorRuntimeAgent.h:
3355         (InspectorRuntimeAgent):
3356
3357 2012-10-04  Sami Kyostila  <skyostil@chromium.org>
3358
3359         Fixed position visibility check does not consider descendants
3360         https://bugs.webkit.org/show_bug.cgi?id=98144
3361
3362         Reviewed by Simon Fraser.
3363
3364         The check against creating composition layers for invisible fixed positioned
3365         elements is too aggressive in that it does not consider descendants of the
3366         fixed positioned element that may be visible even though the element itself is
3367         out of view.
3368
3369         Fix the problem by calculating the true composited bounds of the fixed
3370         element instead of just using the size of the fixed layer. Because calculating
3371         the true bounds may be expensive, it is only done if the fixed layer itself is
3372         invisible.
3373
3374         Test: compositing/layer-creation/fixed-position-absolute-descendant.html
3375
3376         * rendering/RenderLayerCompositor.cpp:
3377         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
3378         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
3379         * rendering/RenderLayerCompositor.h:
3380
3381 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
3382
3383         Web Inspector: When uiSourceCode content has diverged from VM script, call frames should be shown in temporary script based uiSourceCodes.
3384         https://bugs.webkit.org/show_bug.cgi?id=98385
3385
3386         Reviewed by Pavel Feldman.
3387
3388         When javaScriptSource diverges from VM, ResourceScriptMapping now switches debugging
3389         to temporary VM scripts based uiSourceCode with isDivergedReplacement property set.
3390         Added hasDivergedFromVM and isDivergingFromVM properties to JavaScriptSource.
3391         JavaScriptSourceFrame and ScriptSnippetsModel are updated to process breakpoint changes correctly.
3392
3393         * inspector/front-end/BreakpointManager.js:
3394         (WebInspector.BreakpointManager.prototype.restoreBreakpoints):
3395         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
3396         * inspector/front-end/JavaScriptSource.js:
3397         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
3398         (WebInspector.JavaScriptSource.prototype.workingCopyChanged):
3399         (WebInspector.JavaScriptSource.prototype.fireHasDivergedFromVMChanged):
3400         * inspector/front-end/JavaScriptSourceFrame.js:
3401         (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
3402         (WebInspector.JavaScriptSourceFrame.prototype._hasDivergedFromVM):
3403         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
3404         (WebInspector.JavaScriptSourceFrame.prototype._getBreakpointDecorations):
3405         (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
3406         (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
3407         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
3408         (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
3409         * inspector/front-end/ResourceScriptMapping.js: