Canvas and DOM go out of sync
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-03-04  Alexis Hetu  <sugoi@chromium.org>
2
3         Canvas and DOM go out of sync
4         https://bugs.webkit.org/show_bug.cgi?id=107701
5
6         Reviewed by Simon Fraser.
7
8         Test: fast/canvas/canvas-overflow-hidden-animation.html
9
10         Added an update of the current compositor from the layer's stacking
11         container when the layer itself isn't a stacking container.
12
13         * rendering/RenderLayerBacking.cpp:
14         (WebCore::RenderLayerBacking::updateAfterLayout):
15         Added an update of the stacking container of the owning layer of the
16         layer backing when the owning layer isn't a stacking container itself.
17
18 2013-03-04  Alexey Proskuryakov  <ap@apple.com>
19
20         Small BlobResourceHandle cleanup
21         https://bugs.webkit.org/show_bug.cgi?id=111352
22
23         Reviewed by Sam Weinig.
24
25         1. Don't use PassRefPtr<BlobStorageData> when ownership is not being passed.
26         2. Added OVERRIDE to some functions.
27         3. Added const to ResourceHandle::firstRequest().
28
29         * platform/network/BlobRegistryImpl.cpp:
30         (WebCore::loadResourceSynchronously):
31         (WebCore::BlobRegistryImpl::createResourceHandle):
32         (WebCore::BlobRegistryImpl::getBlobDataFromURL):
33         * platform/network/BlobRegistryImpl.h:
34         (BlobRegistryImpl):
35         * platform/network/BlobResourceHandle.cpp:
36         (WebCore::BlobResourceHandle::createAsync):
37         (WebCore::BlobResourceHandle::loadResourceSynchronously):
38         * platform/network/BlobResourceHandle.h:
39         (BlobResourceHandle):
40         * platform/network/FormData.cpp:
41         (WebCore::appendBlobResolved):
42         * platform/network/ResourceHandle.cpp:
43         (WebCore::ResourceHandle::firstRequest):
44         * platform/network/ResourceHandle.h:
45         (ResourceHandle):
46
47 2013-03-04  Vsevolod Vlasov  <vsevik@chromium.org>
48
49         Web Inspector: Introduce WebInspector.EventTarget interface for interfaces that dispatch events.
50         https://bugs.webkit.org/show_bug.cgi?id=111320
51
52         Reviewed by Pavel Feldman.
53
54         * inspector/front-end/Object.js:
55         (WebInspector.EventTarget):
56         (WebInspector.EventTarget.prototype.addEventListener):
57         (WebInspector.EventTarget.prototype.removeEventListener):
58         (WebInspector.EventTarget.prototype.removeAllListeners):
59         (WebInspector.EventTarget.prototype.hasEventListeners):
60         (WebInspector.EventTarget.prototype.dispatchEventToListeners):
61         * inspector/front-end/ResourceScriptMapping.js:
62         * inspector/front-end/UISourceCode.js:
63         * inspector/front-end/Workspace.js:
64         (WebInspector.ProjectDelegate.prototype.searchInFileContent):
65
66 2013-03-04  Tom Sepez  <tsepez@chromium.org>
67
68         XSSAuditor bypass with --> comment syntax.
69         https://bugs.webkit.org/show_bug.cgi?id=111349
70
71         Reviewed by Adam Barth.
72
73         Test: http/tests/security/xssAuditor/open-iframe-src-03.html
74
75         * html/parser/XSSAuditor.cpp:
76         (WebCore::isTerminatingCharacter):
77         Adds ">" to the list of terminating characters, so that comments of
78         the form --> end the snippet we seek to match.
79
80 2013-03-04  Vsevolod Vlasov  <vsevik@chromium.org>
81
82         Web Inspector: Modal dialogs sometimes lose focus.
83         https://bugs.webkit.org/show_bug.cgi?id=111317
84
85         Reviewed by Pavel Feldman.
86
87         setCurrentFocusElement doesn't give focus to an element anymore
88         if modal glass pane is shown and element is not inside it.
89
90         * inspector/front-end/Dialog.js:
91         (WebInspector.Dialog):
92         (WebInspector.Dialog.prototype._hide):
93         * inspector/front-end/InspectorView.js:
94         (WebInspector.InspectorView.prototype.defaultFocusedElement):
95         * inspector/front-end/ScriptsPanel.js:
96         (WebInspector.ScriptsPanel.prototype.defaultFocusedElement):
97         * inspector/front-end/UIUtils.js:
98         (WebInspector.GlassPane):
99         (WebInspector.GlassPane.prototype.dispose):
100         (WebInspector.setCurrentFocusElement):
101         * inspector/front-end/dialog.css:
102
103 2013-03-04  Roger Fong  <roger_fong@apple.com>
104
105         Unreviewed. AppleWin build fix.
106
107         * WebCore.vcxproj/WebCore.vcxproj:
108
109 2013-03-04  Dan Carney  <dcarney@google.com>
110
111         [v8] add isolate parameter to heap statistics calls
112         https://bugs.webkit.org/show_bug.cgi?id=111308
113
114         Reviewed by Jochen Eisinger.
115
116         No new tests.
117
118         * bindings/v8/ScriptGCEvent.cpp:
119         (WebCore::ScriptGCEvent::getHeapSize):
120         (WebCore::ScriptGCEvent::getUsedHeapSize):
121         * bindings/v8/V8AdaptorFunction.cpp:
122         (WebCore::V8AdaptorFunction::getTemplate):
123         * bindings/v8/V8GCController.cpp:
124         (WebCore::V8GCController::checkMemoryUsage):
125
126 2013-03-04  Jochen Eisinger  <jochen@chromium.org>
127
128         [chromium] remove deprecated hyphenation methods from Platform
129         https://bugs.webkit.org/show_bug.cgi?id=111101
130
131         Reviewed by Adam Barth.
132
133         * platform/text/chromium/Hyphenation.cpp:
134         (WebCore::canHyphenate):
135         (WebCore::lastHyphenLocation):
136
137 2013-03-04  Benjamin Poulain  <benjamin@webkit.org>
138
139         Use initialization from literal for MediaFeatureNames
140         https://bugs.webkit.org/show_bug.cgi?id=111283
141
142         Reviewed by Andreas Kling.
143
144         * css/MediaFeatureNames.cpp:
145         (WebCore::MediaFeatureNames::init):
146         Initialization from literal is faster and use less memory. The names are
147         defined statically in MediaFeatureNames.h.
148
149         Also use the NotNull placement new to avoid a branch on silly allocators.
150
151 2013-03-04  Joshua Bell  <jsbell@chromium.org>
152
153         [V8] Unreviewed. Rebaselined run-bindings-tests following r144617
154
155         * bindings/scripts/test/V8/V8Float64Array.cpp:
156         (WebCore::ConfigureV8Float64ArrayTemplate):
157         (WebCore::V8Float64Array::GetTemplate):
158         * bindings/scripts/test/V8/V8Float64Array.h:
159         (V8Float64Array):
160         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
161         (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
162         (WebCore::TestActiveDOMObjectV8Internal::TestActiveDOMObjectDomainSafeFunctionSetter):
163         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
164         (WebCore::V8TestActiveDOMObject::GetTemplate):
165         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
166         (V8TestActiveDOMObject):
167         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
168         (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
169         (WebCore::V8TestCustomNamedGetter::GetTemplate):
170         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
171         (V8TestCustomNamedGetter):
172         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
173         (WebCore::ConfigureV8TestEventConstructorTemplate):
174         (WebCore::V8TestEventConstructor::GetTemplate):
175         * bindings/scripts/test/V8/V8TestEventConstructor.h:
176         (V8TestEventConstructor):
177         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
178         (WebCore::ConfigureV8TestEventTargetTemplate):
179         (WebCore::V8TestEventTarget::GetTemplate):
180         * bindings/scripts/test/V8/V8TestEventTarget.h:
181         (V8TestEventTarget):
182         * bindings/scripts/test/V8/V8TestException.cpp:
183         (WebCore::ConfigureV8TestExceptionTemplate):
184         (WebCore::V8TestException::GetTemplate):
185         * bindings/scripts/test/V8/V8TestException.h:
186         (V8TestException):
187         * bindings/scripts/test/V8/V8TestInterface.cpp:
188         (WebCore::ConfigureV8TestInterfaceTemplate):
189         (WebCore::V8TestInterface::GetTemplate):
190         * bindings/scripts/test/V8/V8TestInterface.h:
191         (V8TestInterface):
192         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
193         (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
194         (WebCore::V8TestMediaQueryListListener::GetTemplate):
195         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
196         (V8TestMediaQueryListListener):
197         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
198         (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
199         (WebCore::ConfigureV8TestNamedConstructorTemplate):
200         (WebCore::V8TestNamedConstructor::GetTemplate):
201         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
202         (V8TestNamedConstructorConstructor):
203         (V8TestNamedConstructor):
204         * bindings/scripts/test/V8/V8TestNode.cpp:
205         (WebCore::ConfigureV8TestNodeTemplate):
206         (WebCore::V8TestNode::GetTemplate):
207         * bindings/scripts/test/V8/V8TestNode.h:
208         (V8TestNode):
209         * bindings/scripts/test/V8/V8TestObj.cpp:
210         (WebCore::ConfigureV8TestObjTemplate):
211         (WebCore::V8TestObj::GetTemplate):
212         (WebCore::V8TestObj::installPerContextPrototypeProperties):
213         * bindings/scripts/test/V8/V8TestObj.h:
214         (V8TestObj):
215         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
216         (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
217         (WebCore::V8TestOverloadedConstructors::GetTemplate):
218         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
219         (V8TestOverloadedConstructors):
220         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
221         (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
222         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
223         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
224         (V8TestSerializedScriptValueInterface):
225         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
226         (WebCore::ConfigureV8TestTypedefsTemplate):
227         (WebCore::V8TestTypedefs::GetTemplate):
228         * bindings/scripts/test/V8/V8TestTypedefs.h:
229         (V8TestTypedefs):
230
231 2013-03-04  Tony Chang  <tony@chromium.org>
232
233         Unreviewed, rolling out r144562.
234         http://trac.webkit.org/changeset/144562
235         https://bugs.webkit.org/show_bug.cgi?id=85642
236
237         Caused KeyPadInsert faluires in webkit_unittests
238
239         * platform/chromium/KeyCodeConversionGtk.cpp:
240         (WebCore::windowsKeyCodeForKeyEvent):
241
242 2013-03-04  Uday Kiran  <udaykiran@motorola.com>
243
244         getComputedStyle not implemented for -webkit-columns shorthand
245         https://bugs.webkit.org/show_bug.cgi?id=111236
246
247         Reviewed by Alexis Menard.
248
249         Implement getComputedStyle for -webkit-columns shorthand.
250
251         Test: fast/css/getComputedStyle/getComputedStyle-webkit-columns-shorthand.html
252
253         * css/CSSComputedStyleDeclaration.cpp:
254         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
255
256 2013-03-04  Levi Weintraub  <leviw@chromium.org>
257
258         Add support for 8 bit TextRuns on Chromium Linux & Mac
259         https://bugs.webkit.org/show_bug.cgi?id=99393
260
261         Reviewed by Eric Seidel.
262
263         Adding support for 8 bit TextRuns for Mac and Linux Chromium. To accomplish this,
264         8 bit text runs are upconverted to 16 bit in the complex text path during string
265         normalization, as HarfBuzz operates on UChars.
266
267         Windows has platfom assumptions that TextRuns are 16 bit that need to be addressed
268         before enabling this optimization.
269
270         No new tests. No change in behavior.
271
272         (WebCore::HarfBuzzShaperBase::setNormalizedBuffer):
273         * platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
274         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
275         (WebCore::normalizeCharacters):
276         (WebCore::HarfBuzzShaper::HarfBuzzShaper):
277
278 2013-03-04  Alexis Menard  <alexis@webkit.org>
279
280         transition-property property and transition shorthand property doesn't accept "all, all".
281         https://bugs.webkit.org/show_bug.cgi?id=111201
282
283         Reviewed by Simon Fraser.
284
285         Relax the parsing of transition-property to allow all, all as a value.
286         It is not very useful per say but it is possible by the spec and we
287         align with Firefox, IE and Opera.
288
289         Test: LayoutTests/transitions/transitions-parsing.html
290
291         * css/CSSParser.cpp:
292         (WebCore::CSSParser::parseAnimationProperty):
293
294 2013-03-04  Min Qin  <qinmin@chromium.org>
295
296         Don't apply page scale to clipRect if applyPageScaleFactorInCompositor is set to true
297         https://bugs.webkit.org/show_bug.cgi?id=111229
298
299         Reviewed by Simon Fraser.
300
301         If applyPageScaleFactorInCompositor is set to true, webcore should use css coordinates.
302         As a result, we shouldn't apply page scale to clipRect in RenderLayerCompositor.
303         Layout tests set the flag to false, so we don't have anything to test against.
304
305         * rendering/RenderLayerCompositor.cpp:
306         (WebCore::RenderLayerCompositor::addToOverlapMap):
307
308 2013-03-04  Ian Vollick  <vollick@chromium.org>
309
310         ASSERTION FAILED: m_clipRectsCache->m_respectingOverflowClip[clipRectsType] == (clipRectsContext.respectOverflowClip == RespectOverflowClip) in RenderLayer.
311         https://bugs.webkit.org/show_bug.cgi?id=108257
312
313         Reviewed by David Hyatt.
314
315         With composited scrolling we paint both with and without respecting
316         overflow clip. To prevent collisions in the clip cache, and to prevent
317         throwing away cached clips unnecessarily, we keep two copies of the
318         clip cache -- one for when overflow clip is respected, and one for
319         when it isn't.
320
321         No new tests. Covered by existing tests (in debug):
322           compositing/overflow/automatically-opt-into-composited-scrolling.html
323           compositing/overflow/composited-scrolling-creates-a-stacking-container.html
324
325         * rendering/RenderLayer.cpp:
326         (WebCore::RenderLayer::updateClipRects):
327           No longer asserts that our 'respect overflow clip' status is
328           consistent. It also gets and sets the clip cache using the clip rect
329           context rather than just the clip rect type.
330         (WebCore::RenderLayer::calculateClipRects):
331         (WebCore::RenderLayer::parentClipRects):
332         (WebCore::RenderLayer::clearClipRects):
333         (WebCore::ClipRectsCache::ClipRectsCache):
334         (WebCore::ClipRectsCache::getClipRects):
335         (WebCore::ClipRectsCache::setClipRects):
336         (WebCore::ClipRectsCache::getIndex):
337           Get and set the cached clip rects using the context rather than
338           type.
339         (WebCore::RenderLayer::clipRects):
340           We now cache twice as many clip rects.
341         * rendering/RenderLayerBacking.cpp:
342         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
343           ShouldRespectOverflowClip was moved out of RenderLayer.
344
345         * rendering/RenderLayer.cpp:
346         (WebCore::RenderLayer::updateClipRects):
347         (WebCore::RenderLayer::calculateClipRects):
348         (WebCore::RenderLayer::parentClipRects):
349         (WebCore::RenderLayer::clearClipRects):
350         * rendering/RenderLayer.h:
351         (WebCore::ClipRectsCache::ClipRectsCache):
352         (WebCore::ClipRectsCache::getClipRects):
353         (WebCore::ClipRectsCache::setClipRects):
354         (ClipRectsCache):
355         (WebCore::ClipRectsCache::getIndex):
356         (WebCore::RenderLayer::clipRects):
357         * rendering/RenderLayerBacking.cpp:
358         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
359
360 2013-03-04  Aaron Colwell  <acolwell@chromium.org>
361
362         Remove unused return value from SourceBufferPrivate::abort() and WebSourceBuffer::abort().
363         https://bugs.webkit.org/show_bug.cgi?id=111195
364
365         Reviewed by Adam Barth.
366
367         No new tests. No user visible behavior changed.
368
369         * platform/graphics/SourceBufferPrivate.h:
370         (SourceBufferPrivate):
371
372 2013-03-04  David Hyatt  <hyatt@apple.com>
373
374         [New Multicolumn] Eliminate the unique multicolumn flow thread style creation function
375         https://bugs.webkit.org/show_bug.cgi?id=111338
376
377         Reviewed by Allan Jensen.
378
379         There is nothing special about a multi-column flow thread style now, so we can just
380         use the existing anonymous style creation function.
381
382         * rendering/RenderMultiColumnBlock.cpp:
383         (WebCore):
384         (WebCore::RenderMultiColumnBlock::addChild):
385
386 2013-03-04  Mario Sanchez Prada  <mario.prada@samsung.com>
387
388         [GTK] WebCore::returnString is unsafe and should be removed!
389         https://bugs.webkit.org/show_bug.cgi?id=110423
390
391         Reviewed by Martin Robinson.
392
393         Remove returnString() and replace it in callers with a new
394         function that will cache and return the values of string
395         properties for ATK interfaces in the private section of the
396         wrapper AtkObject WebKitAccessible.
397
398         * accessibility/atk/WebKitAccessibleUtil.cpp: Remove returnString().
399         * accessibility/atk/WebKitAccessibleUtil.h: Ditto.
400
401         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
402         (_WebKitAccessiblePrivate): New private structure to store cached
403         values of string property for the different ATK interfaces.
404         (cacheAndReturnAtkProperty): New helper function to make sure the
405         returned const gchar* value is previously cached in the private
406         section of the wrapper AtkObject.
407         (webkitAccessibleGetName): Use the new helper function.
408         (webkitAccessibleGetDescription): Ditto.
409         (webkitAccessibleInit): Initialize pointer to private structure.
410         (webkitAccessibleFinalize): Remove unneeded code.
411         (webkitAccessibleClassInit): Add private struct to class type/
412         * accessibility/atk/WebKitAccessibleWrapperAtk.h:
413         (_WebKitAccessible): New member pointing to the private structure,
414         made the new helper function cacheAndReturnAtkProperty() available
415         to external callers (implementation files for ATK interfaces).
416         (AtkCachedProperty): New enum to allow reusing code when calling
417         cacheAndReturnAtkProperty() to cache and return different properties.
418
419         * accessibility/atk/WebKitAccessibleInterfaceAction.cpp:
420         (webkitAccessibleActionGetKeybinding): Replace calls to returnString()
421         with calls to the new helper function cacheAndReturnAtkProperty().
422         (webkitAccessibleActionGetName): Ditto.
423         * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp:
424         (documentAttributeValue): Ditto.
425         (webkitAccessibleDocumentGetLocale): Ditto.
426         * accessibility/atk/WebKitAccessibleInterfaceImage.cpp:
427         (webkitAccessibleImageGetImageDescription): Ditto.
428
429         Remove returnString() from WebKitAccessibleHyperlink (which is not
430         an AtkObject, but a GObject) as well, replacing it in callers with
431         simple code that will cache and return the required values in the
432         private section of these kind of objects.
433
434         * accessibility/atk/WebKitAccessibleHyperlink.cpp:
435         (_WebKitAccessibleHyperlinkPrivate): Added two new fields to cache
436         string values for the key binding and name properties from the
437         AtkAction interface, which is implemented by AtkHyperlink.
438         (webkitAccessibleHyperlinkActionGetKeybinding): Cache the string
439         value for the key binding before returning a const gchar* pointer.
440         (webkitAccessibleHyperlinkActionGetName): Ditto.
441         (webkitAccessibleHyperlinkGetURI): Do not cache the URI here, as
442         this function returns a gchar* that will be owned by the caller.
443
444 2013-03-04  peavo@outlook.com  <peavo@outlook.com>
445
446         [Curl] Compile fix after r144216
447         https://bugs.webkit.org/show_bug.cgi?id=111305
448
449         Reviewed by Brent Fulgham.
450
451         * platform/network/curl/ResourceRequest.h:
452         (WebCore::ResourceRequest::cfURLRequest): Added new parameter.
453
454 2013-03-03  David Hyatt  <hyatt@apple.com>
455
456         [New Multicolumn] Make sure region styling works for columns inside regions.
457         https://bugs.webkit.org/show_bug.cgi?id=111276
458
459         Reviewed by Sam Weinig.
460
461         Test: fast/regions/region-styling-in-columns.html
462
463         * rendering/RenderFlowThread.cpp:
464         (WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
465         (WebCore::CurrentRenderFlowThreadMaintainer::~CurrentRenderFlowThreadMaintainer):
466         * rendering/RenderFlowThread.h:
467         (CurrentRenderFlowThreadMaintainer):
468         Fix the CurrentRenderFlowThreadMaintainer so that it saves off the old render flow thread
469         and restores it when done. This effectively makes flow thread layout a push/pop stack,
470         since with in-flow threads, this is allowed. We assert that a nested flow thread is
471         in-flow to preserve the invariant that you can't nest CSS Regions flow thread.
472
473         * rendering/RenderRegion.cpp:
474         (WebCore::RenderRegion::computeChildrenStyleInRegion):
475         Add isInFlowRenderFlowThread() to the anonymous check to make sure a style gets made
476         for the nested flow thread.
477
478 2013-03-04  Andrey Lushnikov  <lushnikov@chromium.org>
479
480         Web Inspector: WebInspector.AceTextEditor throws a warning
481         https://bugs.webkit.org/show_bug.cgi?id=111315
482
483         Reviewed by Pavel Feldman.
484
485         Add WebInspector.AceTextEditor to externs.js to suppress closure
486         compilation warning.
487
488         No new tests: no change in behaviour.
489
490         * inspector/front-end/externs.js:
491         (WebInspector.AceTextEditor):
492
493 2013-03-04  Antoine Quint  <graouts@apple.com>
494
495         Fix debug build under certain configurations, cause was
496         http://trac.webkit.org/changeset/144624.
497
498         * inspector/InspectorController.cpp:
499         (WebCore::InspectorController::InspectorController):
500         * inspector/InspectorLayerTreeAgent.cpp:
501         (WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):
502         * inspector/InspectorLayerTreeAgent.h:
503         (WebCore):
504         (WebCore::InspectorLayerTreeAgent::create):
505         (InspectorLayerTreeAgent):
506
507 2013-03-04  Allan Sandfeld Jensen  <allan.jensen@digia.com>
508
509         [Qt] REGRESSION(r141240) Crash in PluginPackage::fetchInfo
510         https://bugs.webkit.org/show_bug.cgi?id=111322
511
512         Reviewed by Simon Hausmann.
513
514         Do not try to load blacklisted plugins.
515
516         * plugins/qt/PluginPackageQt.cpp:
517         (WebCore::PluginPackage::fetchInfo):
518
519 2013-03-04  Alexis Menard  <alexis@webkit.org>
520
521         transition properties can't be found in CSSStyleDeclaration
522         https://bugs.webkit.org/show_bug.cgi?id=110011
523
524         Reviewed by Antti Koivisto.
525
526         The previous approach for handling the unprefixing was to alias the
527         unprefixed properties with the prefixed ones in CSSPropertyNames.in.
528         Unfortunately it will alias the properties in the parsing code which will just
529         identically parse the two versions. This means that when we populate StylePropertySet
530         we do not have information whether we just parsed the prefixed, the
531         unprefixed properties or we parsed both. The patch takes another
532         approach by creating two distinct sets of properties (unprefixed and
533         prefixed). Each properties have their own id and we now handle them in
534         the parsing code as disctints properties and add both versions to the
535         declared style. In order to avoid properties getting out of sync, 
536         this patch adds few facilities to StylePropertySet to update the
537         prefixed and the unprefixed entries. Finally the style resolution
538         happens only for the prefixed version (to limit the size of this patch)
539         and the unprefixed versions are not resolved. This is to avoid creating
540         the animation objects twice for the resolved style.
541
542         Test : transitions/transitions-parsing.html
543
544         * css/CSSComputedStyleDeclaration.cpp:
545         (WebCore):
546         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
547         * css/CSSParser.cpp:
548         (WebCore::CSSParser::addPropertyWithPrefixingVariant): Always add the
549         prefixed and the unprefixed property even if only one is specified.
550         (WebCore):
551         (WebCore::CSSParser::parseValue):
552         (WebCore::CSSParser::parseTransitionShorthand): Add both prefixed and
553         unprefixed longhands to the declarated style.
554         (WebCore::CSSParser::parseAnimationProperty):
555         * css/CSSParser.h:
556         (CSSParser):
557         * css/CSSProperty.cpp:
558         (WebCore::CSSProperty::isInheritedProperty):
559         * css/CSSProperty.h:
560         (WebCore:: prefixingVariantForPropertyId): This function takes a given
561         property id and returns its prefixed or unprefixed id if it exists. If
562         not it returns the same id.
563         (WebCore):
564         * css/CSSPropertyNames.in:
565         * css/StylePropertySet.cpp:
566         (WebCore::StylePropertySet::getPropertyValue):
567         (WebCore::StylePropertySet::removeShorthandProperty):
568         (WebCore::StylePropertySet::removeProperty):
569         (WebCore::StylePropertySet::removeProperty): Remove
570         also the prefixed or unprefixed shorthand if it exists.
571         (WebCore):
572         (WebCore::StylePropertySet::setProperty):
573         (WebCore::StylePropertySet:: appendPrefixingVariantProperty):
574         (WebCore::StylePropertySet::setPrefixingVariantProperty): If it
575         exists a unprefixed or prefixed counterpart of the property we're
576         trying to set, then we update the other one.
577         (WebCore::StylePropertySet::asText):
578         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
579         * css/StylePropertySet.h:
580         (StylePropertySet):
581         * css/StylePropertyShorthand.cpp:
582         (WebCore::transitionShorthand):
583         (WebCore):
584         (WebCore::shorthandForProperty): Define the transitions unprefixed
585         longhands.
586         * css/StylePropertyShorthand.h:
587         (WebCore):
588         * css/StyleResolver.cpp:
589         (WebCore::StyleResolver::applyProperty): StyleBuilder will handle the
590         resolution and the creation of the animations for the style. As the
591         declarated style now contains declarations for the prefixed and
592         unprefixed property we do not want to resolve two times and create duplicate animations.
593         Therefore when we try to resolve the unprefixed version we just bail out.
594
595 2013-03-04  Ilya Tikhonovsky  <loislo@chromium.org>
596
597         Web Inspector: CPU Flame Chart: reveal profiler DataGrid node when user clicks on a FlameChart item.
598         https://bugs.webkit.org/show_bug.cgi?id=111309
599
600         Reviewed by Yury Semikhatsky.
601
602         * inspector/front-end/CPUProfileView.js:
603         (WebInspector.CPUProfileView.prototype._revealProfilerNode):
604         * inspector/front-end/FlameChart.js:
605         (WebInspector.FlameChart):
606         (WebInspector.FlameChart.prototype._onClick):
607
608 2013-03-04  Antoine Quint  <graouts@apple.com>
609
610         Web Inspector: remove existing LayerTreeAgent protocol APIs
611         https://bugs.webkit.org/show_bug.cgi?id=111251
612
613         In order to eventually provide a more useful API for the LayerTreeAgent
614         that will be done in followup bugs, we remove the current API exposed by
615         the agent providing a clean slate that will make future patches easier
616         to read. Additionally, we remove the "childLayers" property on the Layer
617         object since we will no longer be providing a hierarchy of layers, but
618         rather a flat list of layers attached to a node and its descendants.
619
620         No new tests since we're removing the APIs exposed by the LayerTreeAgent.
621         Subsequent patches will add tests as new APIs are added.
622
623         Reviewed by Timothy Hatcher.
624
625         * inspector/Inspector.json:
626         * inspector/InspectorDOMAgent.cpp:
627         * inspector/InspectorDOMAgent.h:
628         * inspector/InspectorLayerTreeAgent.cpp:
629         (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
630         * inspector/InspectorLayerTreeAgent.h:
631         (InspectorLayerTreeAgent):
632
633 2013-03-04  Li Yin  <li.yin@intel.com>
634
635         MediaStream.ended must return true when it is created with ended tracks.
636         https://bugs.webkit.org/show_bug.cgi?id=111293
637
638         Reviewed by Kentaro Hara.
639
640         Spec: http://dev.w3.org/2011/webrtc/editor/getusermedia.html#MediaStream-ended
641         When a MediaStream object is created, its ended attribute must be set to false,
642         unless it is being created using the MediaStream() constructor whose arguments
643         are lists of MediaStreamTrack objects that are all ended, in which case the
644         MediaStream object must be created with its ended attribute set to true.
645
646         Test: fast/mediastream/MediaStreamConstructor.html
647
648         * platform/mediastream/MediaStreamDescriptor.h:
649         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
650
651 2013-03-04  Alexander Pavlov  <apavlov@chromium.org>
652
653         Web Inspector: Adding new rules broken if a <style> tag is added to document dynamically
654         https://bugs.webkit.org/show_bug.cgi?id=111299
655
656         Reviewed by Pavel Feldman.
657
658         The CSSStyleSheet instance should be retrieved directly from the HTMLStyleElement just created,
659         not from the document.styleSheets list.
660
661         Test: inspector/styles/add-new-rule-with-style-after-body.html
662
663         * inspector/InspectorCSSAgent.cpp:
664         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
665
666 2013-03-04  Ilya Tikhonovsky  <loislo@chromium.org>
667
668         Web Inspector: Unreviewed. Fix for closure type annotations.
669
670         * inspector/front-end/FlameChart.js:
671
672 2013-03-04  Kondapally Kalyan  <kalyan.kondapally@intel.com>
673
674         [EFL] Build fix when compiling with GLES2 support enabled.
675         https://bugs.webkit.org/show_bug.cgi?id=111291
676
677         Reviewed by Kenneth Rohde Christiansen.
678
679         This patch fixes build issues when compiling with GLES2
680         support. As part of the fix the patch removes Evas specific
681         workaround of using GLX with EGL in PlatformContext as GLES2 
682         is the main target with EGL.
683
684         * platform/graphics/OpenGLESShims.h:
685         * platform/graphics/opengl/GLPlatformContext.cpp:
686         (WebCore::GLCurrentContextWrapper::GLCurrentContextWrapper):
687         * platform/graphics/texmap/TextureMapper.h:
688
689 2013-03-04  Ilya Tikhonovsky  <loislo@chromium.org>
690
691         Web Inspector: implement Flame Chart for CPU profiler.
692         https://bugs.webkit.org/show_bug.cgi?id=111162
693
694         Reviewed by Yury Semikhatsky.
695
696         It is an initial implementation. The next step is to provide
697         function names and other stats about the hovered item.
698
699         * WebCore.gypi:
700         * WebCore.vcproj/WebCore.vcproj:
701         * WebCore.vcxproj/WebCore.vcxproj:
702         * WebCore.vcxproj/WebCore.vcxproj.filters:
703         * inspector/compile-front-end.py:
704         * inspector/front-end/CPUProfileView.js:
705         (WebInspector.CPUProfileView.prototype._getCPUProfileCallback):
706         * inspector/front-end/FlameChart.js: Added.
707         (WebInspector.FlameChart):
708         (WebInspector.FlameChart.prototype._onMouseMove):
709         (WebInspector.FlameChart.prototype.findNodeCallback):
710         (WebInspector.FlameChart.prototype._coordinatesToNode):
711         (WebInspector.FlameChart.prototype.onResize):
712         (WebInspector.FlameChart.prototype._rootNodes):
713         (WebInspector.FlameChart.prototype.draw):
714         (WebInspector.FlameChart.prototype._drawNode):
715         (WebInspector.FlameChart.prototype._forEachNode):
716         (WebInspector.FlameChart.prototype._drawBar):
717         (WebInspector.FlameChart.prototype.update):
718         * inspector/front-end/Settings.js:
719         (WebInspector.ExperimentsSettings):
720         * inspector/front-end/WebKit.qrc:
721         * inspector/front-end/flameChart.css: Added.
722         (.flame-chart):
723
724 2013-03-04  Marja Hölttä  <marja@chromium.org>
725
726         [V8] Add a "context type" parameter to GetTemplate and ConfigureV8SomethingTemplate functions
727         https://bugs.webkit.org/show_bug.cgi?id=110875
728
729         The parameter will later be used for generating specialized V8
730         bindings for the 3 different world types (main world, isolated
731         work, worker).
732
733         Reviewed by Kentaro Hara.
734
735         No new tests (no changes in behavior yet).
736
737         * bindings/scripts/CodeGeneratorV8.pm:
738         (GenerateHeader):
739         (GenerateDomainSafeFunctionGetter):
740         (GenerateDomainSafeFunctionSetter):
741         (GenerateNormalAttrGetter):
742         (GenerateNamedConstructor):
743         (GenerateImplementation):
744         * bindings/v8/DOMDataStore.cpp:
745         (WebCore::DOMDataStore::DOMDataStore):
746         * bindings/v8/DOMDataStore.h:
747         (DOMDataStore):
748         * bindings/v8/DOMWrapperWorld.cpp:
749         (WebCore):
750         (WebCore::DOMWrapperWorld::setInitializingWindow):
751         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
752         (WebCore::DOMWrapperWorld::contextHasCorrectPrototype):
753         * bindings/v8/DOMWrapperWorld.h:
754         (DOMWrapperWorld):
755         (WebCore::DOMWrapperWorld::getWorld):
756         * bindings/v8/Dictionary.cpp:
757         (WebCore::Dictionary::get):
758         * bindings/v8/PageScriptDebugServer.cpp:
759         (WebCore::retrieveFrameWithGlobalObjectCheck):
760         * bindings/v8/V8AdaptorFunction.cpp:
761         (WebCore::V8AdaptorFunction::getTemplate):
762         (WebCore::V8AdaptorFunction::wrap):
763         * bindings/v8/V8AdaptorFunction.h:
764         (V8AdaptorFunction):
765         * bindings/v8/V8Binding.cpp:
766         (WebCore::toDOMWindow):
767         (WebCore::toScriptExecutionContext):
768         (WebCore::worldType):
769         (WebCore):
770         (WebCore::worldTypeInMainThread):
771         * bindings/v8/V8Binding.h:
772         (WebCore):
773         * bindings/v8/V8DOMWindowShell.cpp:
774         (WebCore::V8DOMWindowShell::clearForNavigation):
775         (WebCore::V8DOMWindowShell::installDOMWindow):
776         * bindings/v8/V8DOMWrapper.cpp:
777         (WebCore::V8DOMWrapper::createWrapper):
778         * bindings/v8/V8Initializer.cpp:
779         (WebCore::findFrame):
780         * bindings/v8/V8PerContextData.cpp:
781         (WebCore::V8PerContextData::constructorForTypeSlowCase):
782         * bindings/v8/WorkerScriptController.cpp:
783         (WebCore::WorkerScriptController::WorkerScriptController):
784         (WebCore::WorkerScriptController::controllerForContext):
785         * bindings/v8/WrapperTypeInfo.h:
786         (WebCore::WrapperTypeInfo::getTemplate):
787         * bindings/v8/custom/V8DOMWindowCustom.cpp:
788         (WebCore::V8DOMWindow::eventAttrGetterCustom):
789         (WebCore::V8DOMWindow::eventAttrSetterCustom):
790         (WebCore::V8DOMWindow::toStringMethodCustom):
791         (WebCore::V8DOMWindow::namedSecurityCheck):
792         (WebCore::V8DOMWindow::indexedSecurityCheck):
793         (WebCore::toV8):
794         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
795         (WebCore::V8HTMLDocument::wrapInShadowObject):
796         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
797         (WebCore::V8HTMLImageElementConstructor::GetTemplate):
798         * bindings/v8/custom/V8HTMLImageElementConstructor.h:
799         (V8HTMLImageElementConstructor):
800         * bindings/v8/custom/V8InjectedScriptManager.cpp:
801         (WebCore::createInjectedScriptHostV8Wrapper):
802         (WebCore::InjectedScriptManager::canAccessInspectedWindow):
803         * bindings/v8/custom/V8LocationCustom.cpp:
804         (WebCore::V8Location::reloadAttrGetterCustom):
805         (WebCore::V8Location::replaceAttrGetterCustom):
806         (WebCore::V8Location::assignAttrGetterCustom):
807         * bindings/v8/custom/V8MessageEventCustom.cpp:
808         (WebCore::V8MessageEvent::initMessageEventMethodCustom):
809
810 2013-03-04  Andrey Lushnikov  <lushnikov@chromium.org>
811
812         Web Inspector: add Ace editor experiment
813         https://bugs.webkit.org/show_bug.cgi?id=111191
814
815         Reviewed by Pavel Feldman.
816
817         No new tests.
818
819         Add Ace text editor experiment.
820
821         * WebCore.gypi:
822         * inspector/front-end/AceTextEditor.js: Added.
823         * inspector/front-end/Settings.js:
824         (WebInspector.ExperimentsSettings):
825         * inspector/front-end/SourceFrame.js:
826         (WebInspector.SourceFrame):
827         * inspector/front-end/ace/ace.js: Added.
828         * inspector/front-end/ace/acedevtools.css: Added.
829         * inspector/front-end/ace/mode_css.js: Added.
830         * inspector/front-end/ace/mode_html.js: Added.
831         * inspector/front-end/ace/mode_javascript.js: Added.
832         * inspector/front-end/ace/theme_textmate.js: Added.
833         * inspector/front-end/ace/LICENSE.txt: Added.
834
835 2013-03-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
836
837         Add build flag for FontLoader
838         https://bugs.webkit.org/show_bug.cgi?id=111289
839
840         Reviewed by Benjamin Poulain.
841
842         Add ENABLE_FONT_LOAD_EVENTS build flag (disabled by default).
843
844         * Configurations/FeatureDefines.xcconfig:
845
846 2013-03-04  Mike West  <mkwst@chromium.org>
847
848         XSSAuditor should strip dangerous attributes from SMIL animation elements.
849         https://bugs.webkit.org/show_bug.cgi?id=111071
850
851         Reviewed by Adam Barth.
852
853         SMIL animation elements can, amusingly enough, animate the 'href' of a
854         link. This patch teaches XSSAuditor how to deal with the
855         semicolon-separated 'animation[values]' attribute in order to ensure
856         that it doesn't contain JavaScript URLs that could be animated into
857         place for an unsuspecting user to click on.
858
859         Test: http/tests/security/xssAuditor/svg-animate.html
860
861         * html/parser/XSSAuditor.cpp:
862         (WebCore::isSemicolonSeparatedAttribute): Added.
863             This returns true if the given attribute is SVGNames::valuesAttr,
864             but makes it possible to easily extend the list with additional
865             attributes with this strange property.
866         (WebCore::semicolonSeparatedValueContainsJavaScriptURL): Added.
867             Given a semicolon-separated string, determine if it contains any
868             JavaScript URLs.
869         (WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
870             When looking for dangerousness, determine whether or not we should
871             be comparing against each member of a semicolon-separated list.
872
873 2013-03-04  Arvid Nilsson  <anilsson@rim.com>
874
875         [BlackBerry] New files for BlackBerry::Platform::Graphics::GraphicsContext integration
876         https://bugs.webkit.org/show_bug.cgi?id=111153
877
878         Reviewed by Rob Buis.
879
880         BlackBerry PR 293208
881
882         This patch contains contributions from many members of the BlackBerry
883         WebKit team:
884
885         Rob Buis
886         Robin Cao
887         Eli Fidler
888         Mike Lattanzio
889         Yong Li
890         Maxim Mogilnitsky
891         Joshua Netterfield
892         Arvid Nilsson
893         Jakob Petsovits
894         Konrad Piascik
895         Jeff Rogers
896         Artem Simonov
897         Filip Spacek
898         George Staikos
899
900         Covered by existing tests.
901
902         * platform/graphics/blackberry/FontBlackBerry.cpp: Added.
903         (FSFixedToFloat):
904         (FloatToFSFixed):
905         (WebCore):
906         (WebCore::Font::drawComplexText):
907         (WebCore::Font::floatWidthForComplexText):
908         (WebCore::Font::offsetForPositionForComplexText):
909         (WebCore::Font::selectionRectForComplexText):
910         (WebCore::Font::drawGlyphs):
911         (WebCore::Font::canReturnFallbackFontsForComplexText):
912         (WebCore::Font::drawEmphasisMarksForComplexText):
913         (WebCore::Font::canExpandAroundIdeographsInComplexText):
914         * platform/graphics/blackberry/FontCacheBlackBerry.cpp: Added.
915         (WebCore):
916         (WebCore::FontCache::platformInit):
917         (WebCore::FontCache::getFontDataForCharacters):
918         (WebCore::FontCache::getSimilarFontPlatformData):
919         (WebCore::FontCache::getLastResortFallbackFont):
920         (WebCore::FontCache::getTraitsInFamily):
921         (WebCore::getFamilyNameStringFromFontDescriptionAndFamily):
922         (WebCore::fontWeightToFontconfigWeight):
923         (WebCore::FontCache::createFontPlatformData):
924         * platform/graphics/blackberry/FontCustomPlatformData.h: Added.
925         (WebCore):
926         (FontCustomPlatformData):
927         * platform/graphics/blackberry/FontCustomPlatformDataBlackBerry.cpp: Added.
928         (WebCore):
929         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
930         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
931         (WebCore::FontCustomPlatformData::fontPlatformData):
932         (WebCore::FontCustomPlatformData::supportsFormat):
933         (WebCore::createFontCustomPlatformData):
934         * platform/graphics/blackberry/FontPlatformDataBlackBerry.cpp: Added.
935         (WebCore):
936         (WebCore::FontPlatformData::FontPlatformData):
937         (WebCore::FontPlatformData::~FontPlatformData):
938         (WebCore::FontPlatformData::name):
939         (WebCore::FontPlatformData::applyState):
940         (WebCore::FontPlatformData::platformDataInit):
941         (WebCore::FontPlatformData::platformDataAssign):
942         (WebCore::FontPlatformData::platformIsEqual):
943         (WebCore::FontPlatformData::description):
944         (WebCore::FontPlatformData::harfbuzzFace):
945         (WebCore::FontPlatformData::scaledFont):
946         (WebCore::FontPlatformData::setFakeBold):
947         (WebCore::FontPlatformData::setFakeItalic):
948         (WebCore::FontPlatformData::platformFontHandle):
949         (WebCore::FontPlatformData::isFixedPitch):
950         * platform/graphics/blackberry/GlyphPageTreeNodeBlackBerry.cpp: Added.
951         (WebCore):
952         (WorldTypeScopedPtr):
953         (WebCore::WorldTypeScopedPtr::WorldTypeScopedPtr):
954         (WebCore::WorldTypeScopedPtr::~WorldTypeScopedPtr):
955         (WebCore::WorldTypeScopedPtr::get):
956         (WebCore::GlyphPage::fill):
957         * platform/graphics/blackberry/GradientBlackBerry.cpp: Added.
958         (WebCore):
959         (WebCore::totalStopsNeeded):
960         (WebCore::fillStops):
961         (WebCore::Gradient::platformGradient):
962         (WebCore::Gradient::platformDestroy):
963         (WebCore::Gradient::fill):
964         (WebCore::Gradient::setPlatformGradientSpaceTransform):
965         * platform/graphics/blackberry/GraphicsContextBlackBerry.cpp: Added.
966         (WebCore):
967         (GraphicsContextPlatformPrivate):
968         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
969         (WebCore::GraphicsContext::platformInit):
970         (WebCore::GraphicsContext::platformDestroy):
971         (WebCore::GraphicsContext::platformContext):
972         (WebCore::GraphicsContext::savePlatformState):
973         (WebCore::GraphicsContext::restorePlatformState):
974         (WebCore::GraphicsContext::setIsAcceleratedContext):
975         (WebCore::GraphicsContext::isAcceleratedContext):
976         (WebCore::GraphicsContext::getCTM):
977         (WebCore::GraphicsContext::concatCTM):
978         (WebCore::GraphicsContext::setCTM):
979         (WebCore::GraphicsContext::scale):
980         (WebCore::GraphicsContext::rotate):
981         (WebCore::GraphicsContext::translate):
982         (WebCore::GraphicsContext::drawEllipse):
983         (WebCore::GraphicsContext::strokeArc):
984         (WebCore::GraphicsContext::drawConvexPolygon):
985         (WebCore::GraphicsContext::drawRect):
986         (WebCore::GraphicsContext::fillRect):
987         (WebCore::GraphicsContext::clearRect):
988         (WebCore::GraphicsContext::strokeRect):
989         (WebCore::GraphicsContext::fillRoundedRect):
990         (WebCore::GraphicsContext::roundToDevicePixels):
991         (WebCore::GraphicsContext::setPlatformShadow):
992         (WebCore::GraphicsContext::clearPlatformShadow):
993         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
994         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
995         (WebCore::GraphicsContext::supportsTransparencyLayers):
996         (WebCore::GraphicsContext::setLineCap):
997         (WebCore::GraphicsContext::setLineDash):
998         (WebCore::GraphicsContext::setLineJoin):
999         (WebCore::GraphicsContext::setMiterLimit):
1000         (WebCore::GraphicsContext::setAlpha):
1001         (WebCore::GraphicsContext::clip):
1002         (WebCore::GraphicsContext::clipOut):
1003         (WebCore::GraphicsContext::clipConvexPolygon):
1004         (WebCore::GraphicsContext::addRoundedRectClip):
1005         (WebCore::GraphicsContext::clipOutRoundedRect):
1006         (WebCore::GraphicsContext::clipBounds):
1007         (WebCore::GraphicsContext::addInnerRoundedRectClip):
1008         (WebCore::GraphicsContext::setURLForRect):
1009         (WebCore::GraphicsContext::setPlatformTextDrawingMode):
1010         (WebCore::GraphicsContext::setPlatformStrokeColor):
1011         (WebCore::GraphicsContext::setPlatformStrokeStyle):
1012         (WebCore::GraphicsContext::setPlatformStrokeThickness):
1013         (WebCore::GraphicsContext::setPlatformFillColor):
1014         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1015         (WebCore::GraphicsContext::setPlatformShouldAntialias):
1016         (WebCore::GraphicsContext::setImageInterpolationQuality):
1017         (WebCore::GraphicsContext::imageInterpolationQuality):
1018         * platform/graphics/blackberry/ITypeUtils.h: Added.
1019         (floatToITypeFixed):
1020         (intToITypeFixed):
1021         (iTypeFixedToFloat):
1022         * platform/graphics/blackberry/ImageBufferBlackBerry.cpp: Added.
1023         (WebCore):
1024         (WebCore::makeBufferCurrent):
1025         (WebCore::getImageDataInternal):
1026         (WebCore::ImageBufferData::getImageData):
1027         (WebCore::flushAndDraw):
1028         (WebCore::ImageBufferData::draw):
1029         (WebCore::ImageBuffer::ImageBuffer):
1030         (WebCore::ImageBuffer::~ImageBuffer):
1031         (WebCore::ImageBuffer::context):
1032         (WebCore::ImageBuffer::platformLayer):
1033         (WebCore::ImageBuffer::copyImage):
1034         (WebCore::ImageBuffer::clip):
1035         (WebCore::ImageBuffer::draw):
1036         (WebCore::ImageBuffer::drawPattern):
1037         (WebCore::ImageBuffer::platformTransformColorSpace):
1038         (WebCore::ImageBuffer::getUnmultipliedImageData):
1039         (WebCore::ImageBuffer::getPremultipliedImageData):
1040         (WebCore::ImageBuffer::putByteArray):
1041         (WebCore::ImageBuffer::toDataURL):
1042         * platform/graphics/blackberry/ImageBufferDataBlackBerry.h: Added.
1043         (WebCore):
1044         (ImageBufferData):
1045         * platform/graphics/blackberry/PathBlackBerry.cpp: Added.
1046         (WebCore):
1047         (WebCore::scratchContext):
1048         (WebCore::Path::Path):
1049         (WebCore::Path::~Path):
1050         (WebCore::Path::operator=):
1051         (WebCore::Path::currentPoint):
1052         (WebCore::Path::contains):
1053         (WebCore::Path::strokeContains):
1054         (WebCore::Path::translate):
1055         (WebCore::Path::boundingRect):
1056         (WebCore::Path::strokeBoundingRect):
1057         (WebCore::Path::moveTo):
1058         (WebCore::Path::addLineTo):
1059         (WebCore::Path::addQuadCurveTo):
1060         (WebCore::Path::addBezierCurveTo):
1061         (WebCore::Path::addArcTo):
1062         (WebCore::Path::closeSubpath):
1063         (WebCore::Path::addArc):
1064         (WebCore::Path::addRect):
1065         (WebCore::Path::addEllipse):
1066         (WebCore::Path::platformAddPathForRoundedRect):
1067         (WebCore::Path::clear):
1068         (WebCore::Path::isEmpty):
1069         (WebCore::Path::hasCurrentPoint):
1070         (WebCore::Path::apply):
1071         (WebCore::Path::transform):
1072         (WebCore::GraphicsContext::fillPath):
1073         (WebCore::GraphicsContext::strokePath):
1074         (WebCore::GraphicsContext::drawFocusRing):
1075         (WebCore::GraphicsContext::drawLine):
1076         (WebCore::GraphicsContext::drawLineForDocumentMarker):
1077         (WebCore::GraphicsContext::drawLineForText):
1078         (WebCore::GraphicsContext::clip):
1079         (WebCore::GraphicsContext::clipPath):
1080         (WebCore::GraphicsContext::canvasClip):
1081         (WebCore::GraphicsContext::clipOut):
1082         * platform/graphics/blackberry/PatternBlackBerry.cpp: Added.
1083         (WebCore):
1084         (WebCore::Pattern::platformDestroy):
1085         (WebCore::Pattern::platformPattern):
1086         (WebCore::Pattern::setPlatformPatternSpaceTransform):
1087         * platform/graphics/blackberry/PlatformSupport.cpp: Added.
1088         (WebCore):
1089         (WebCore::PlatformSupport::getFontFamilyForCharacters):
1090         * platform/graphics/blackberry/PlatformSupport.h: Added.
1091         (WebCore):
1092         (PlatformSupport):
1093         (FontFamily):
1094         * platform/graphics/blackberry/SimpleFontDataBlackBerry.cpp: Added.
1095         (WebCore):
1096         (WebCore::FSFixedToFloat):
1097         (WebCore::SimpleFontData::platformInit):
1098         (WebCore::SimpleFontData::platformCharWidthInit):
1099         (WebCore::SimpleFontData::platformDestroy):
1100         (WebCore::SimpleFontData::createScaledFontData):
1101         (WebCore::SimpleFontData::smallCapsFontData):
1102         (WebCore::SimpleFontData::emphasisMarkFontData):
1103         (WebCore::SimpleFontData::containsCharacters):
1104         (WebCore::SimpleFontData::determinePitch):
1105         (WebCore::SimpleFontData::platformBoundsForGlyph):
1106         (WebCore::SimpleFontData::platformWidthForGlyph):
1107         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
1108
1109 2013-03-04  Adam Bergkvist  <adam.bergkvist@ericsson.com>
1110
1111         MediaStream API: local addTrack() and removeTrack() operations should not fire events.
1112         https://bugs.webkit.org/show_bug.cgi?id=111079
1113
1114         Reviewed by Adam Barth.
1115
1116         Removed the scheduling of "addtrack" and "removetrack" events by
1117         addTrack and removeTrack(). Replaced the test since the old test was
1118         driven by the event firing removed by this patch.
1119
1120         Test: fast/mediastream/MediaStream-add-remove-tracks.html
1121
1122         * Modules/mediastream/MediaStream.cpp:
1123         (WebCore::MediaStream::addTrack):
1124         (WebCore::MediaStream::removeTrack):
1125
1126 2013-03-04  Alexander Pavlov  <apavlov@chromium.org>
1127
1128         Web Inspector: touchmove not emulated inside iframe
1129         https://bugs.webkit.org/show_bug.cgi?id=111292
1130
1131         Reviewed by Vsevolod Vlasov.
1132
1133         Move fake touch event dispatching from mouseMoved() into handleMouseMoveEvent()
1134         and bail out earlier from dispatchSyntheticTouchEventIfEnabled() when the event
1135         should be dispatched on a subframe.
1136
1137         * page/EventHandler.cpp:
1138         (WebCore::EventHandler::mouseMoved):
1139         (WebCore::EventHandler::handleMouseMoveEvent):
1140         (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
1141
1142 2013-03-04  Mike West  <mkwst@chromium.org>
1143
1144         Long URLs in error messages should be shortened
1145         https://bugs.webkit.org/show_bug.cgi?id=111133
1146
1147         Reviewed by Jochen Eisinger.
1148
1149         When generating console messages, we're often copying the page's URL
1150         in order to add detail about where the error occurred. Generally, this
1151         is fine, but in edge cases (multi-meg 'data:' URLs), we're using far
1152         more memory than we should, and impacting performance.
1153
1154         This patch adds an 'elidedString()' method to KURL for use in this
1155         sort of case; when generating console messages, we should insert the
1156         elided URL rather than the full URL.
1157
1158         This shouldn't change any visible behavior; we're already visually
1159         eliding URLs in console messages for URLs above 150 characters. This
1160         patch simply changes the underlying string to ensure that no URL is
1161         over 1k in length to begin with.
1162
1163         * platform/KURL.cpp:
1164         (WebCore::KURL::elidedString): Added.
1165         * platform/KURL.h:
1166             An exciting new method that gives you the same result as string()
1167             for URLs less than 1k long, and elides the middle of URLs longer
1168             than 1k by replacing everything but the first and last 0.5k with
1169             "...".
1170         * bindings/ScriptControllerBase.cpp:
1171         (WebCore::ScriptController::canExecuteScripts):
1172         * Modules/websockets/WebSocket.cpp:
1173         (WebCore::WebSocket::connect):
1174         (WebCore::WebSocket::send):
1175         * Modules/websockets/WebSocketChannel.cpp:
1176         (WebCore::WebSocketChannel::send):
1177         (WebCore::WebSocketChannel::fail):
1178         * bindings/ScriptControllerBase.cpp:
1179         (WebCore::ScriptController::canExecuteScripts):
1180         * dom/Document.cpp:
1181         (WebCore::Document::processHttpEquiv):
1182         * dom/ScriptElement.cpp:
1183         (WebCore::ScriptElement::executeScript):
1184         * html/HTMLMediaElement.cpp:
1185         (WebCore::HTMLMediaElement::canPlayType):
1186         (WebCore::HTMLMediaElement::isSafeToLoadURL):
1187         * loader/FrameLoader.cpp:
1188         (WebCore::FrameLoader::submitForm):
1189         (WebCore::FrameLoader::loadFrameRequest):
1190         (WebCore::FrameLoader::commitProvisionalLoad):
1191         (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
1192         (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
1193         (WebCore::createWindow):
1194         * loader/MainResourceLoader.cpp:
1195         (WebCore::MainResourceLoader::willSendRequest):
1196         (WebCore::MainResourceLoader::responseReceived):
1197         * loader/appcache/ApplicationCacheGroup.cpp:
1198         (WebCore::ApplicationCacheGroup::didReceiveResponse):
1199         (WebCore::ApplicationCacheGroup::didFail):
1200         * loader/cache/CachedResourceLoader.cpp:
1201         (WebCore::CachedResourceLoader::canRequest):
1202         (WebCore::CachedResourceLoader::requestResource):
1203         (WebCore::CachedResourceLoader::loadResource):
1204         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
1205         * page/ContentSecurityPolicy.cpp:
1206         (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
1207         (WebCore::CSPDirectiveList::allowScriptNonce):
1208         (WebCore::CSPDirectiveList::allowPluginType):
1209             Use 'KURL::elidedString()' rather than 'KURL::string()'
1210         * loader/MixedContentChecker.cpp:
1211         (WebCore::MixedContentChecker::logWarning):
1212             Here, we're doing the same as above, but it enables us to throw
1213             away the asUTF8() function entirely by switching to makeString
1214             rather than String::format.
1215
1216 2013-03-04  Andrey Lushnikov  <lushnikov@chromium.org>
1217
1218         Web Inspector: add runtime flag to determine if inspector's source files were flattened.
1219         https://bugs.webkit.org/show_bug.cgi?id=111184
1220
1221         Reviewed by Pavel Feldman.
1222
1223         - Add a file "buildSystemOnly.js" which will be included into
1224         devtools.html only by GYP build system. This script sets a single flag
1225         which essentially means that inspector source files were run
1226         through a build system and flattened.
1227         - Update "importScript" and "registerRequiredCSS" functions to correct
1228         paths according to the "flattenImports" flag.
1229
1230         No new tests: no change in behaviour.
1231
1232         * WebCore.gypi:
1233         * inspector/front-end/CodeMirrorTextEditor.js:
1234         (WebInspector.CodeMirrorTextEditor):
1235         * inspector/front-end/View.js:
1236         (WebInspector.View.prototype.registerRequiredCSS):
1237         * inspector/front-end/buildSystemOnly.js: Added.
1238         * inspector/front-end/utilities.js:
1239
1240 2013-03-04  Vsevolod Vlasov  <vsevik@chromium.org>
1241
1242         Web Inspector: Fix front-end compilation
1243         https://bugs.webkit.org/show_bug.cgi?id=111286
1244
1245         Reviewed by Alexander Pavlov.
1246
1247         * inspector/InjectedScriptSource.js:
1248         * inspector/front-end/FileSystemProjectDelegate.js:
1249         * inspector/front-end/NavigatorView.js:
1250         (WebInspector.NavigatorView.prototype.removeUISourceCode):
1251         (WebInspector.NavigatorTreeNode.prototype.reset):
1252         (WebInspector.NavigatorFolderTreeNode.prototype.didAddChild):
1253
1254 2013-03-03  Kondapally Kalyan  <kalyan.kondapally@intel.com>
1255
1256         [EFL][WebGL] Add proper checks to enable GraphicsSurface usage on EGL without XCompositeWindow.
1257         https://bugs.webkit.org/show_bug.cgi?id=108034
1258
1259         Reviewed by Laszlo Gombos.
1260
1261         Covered by existing WebGL tests.
1262
1263         Currently, we set GRAPHICS_SURFACE to true if support for XCompositeWindow
1264         is identified during compile time. This is ok, when using GLX. We might not
1265         have support for XCompositeWindow when using EGL and GLES2.0. This patch
1266         makes changes so that GRAPHICS_SURFACE is always enabled with EGL and adds
1267         GLX guard to the parts of code dependent on XCompositeWindow support.
1268
1269         * platform/graphics/opengl/GLPlatformSurface.cpp:
1270         * platform/graphics/surfaces/glx/GLXConfigSelector.h:
1271         (WebCore::GLXConfigSelector::findMatchingConfig):
1272         * platform/graphics/surfaces/glx/X11Helper.cpp:
1273         (WebCore::X11Helper::createOffScreenWindow):
1274         (WebCore::X11Helper::isXRenderExtensionSupported):
1275         * platform/graphics/surfaces/glx/X11Helper.h:
1276
1277 2013-03-03  Alexander Pavlov  <apavlov@chromium.org>
1278
1279         Web Inspector: [PageAgent] can't find frame by security origin.
1280         https://bugs.webkit.org/show_bug.cgi?id=110849
1281
1282         Use toRawString() in order to compare Frames' SecurityOrigins for storage-related goals.
1283
1284         Reviewed by Vsevolod Vlasov.
1285
1286         * inspector/InspectorPageAgent.cpp:
1287         (WebCore::InspectorPageAgent::findFrameWithSecurityOrigin):
1288
1289 2013-03-03  Alexander Pavlov  <apavlov@chromium.org>
1290
1291         Unreviewed, rolling out r144455.
1292         http://trac.webkit.org/changeset/144455
1293         https://bugs.webkit.org/show_bug.cgi?id=111165
1294
1295         A simpler solution to the SecurityOrigin -> localStorage
1296         lookup exists
1297
1298         * inspector/front-end/DOMStorage.js:
1299         (WebInspector.DOMStorage.storageId):
1300         (WebInspector.DOMStorage.prototype.get id):
1301         (WebInspector.DOMStorage.prototype.getItems):
1302         (WebInspector.DOMStorage.prototype.setItem):
1303         (WebInspector.DOMStorage.prototype.removeItem):
1304         (WebInspector.DOMStorageModel.prototype._securityOriginAdded):
1305         (WebInspector.DOMStorageModel.prototype._securityOriginRemoved):
1306         (WebInspector.DOMStorageModel.prototype._storageKey):
1307         * inspector/front-end/ExtensionAuditCategory.js:
1308         * inspector/front-end/FileSystemModel.js:
1309         (WebInspector.FileSystemModel.prototype._reset):
1310         (WebInspector.FileSystemModel.prototype._securityOriginAdded):
1311         (WebInspector.FileSystemModel.prototype._securityOriginRemoved):
1312         (WebInspector.FileSystemModel.prototype._addOrigin):
1313         (WebInspector.FileSystemModel.prototype._removeOrigin):
1314         (WebInspector.FileSystemModel.prototype._requestFileSystemRoot):
1315         (WebInspector.FileSystemModel.prototype._fileSystemRootReceived):
1316         (WebInspector.FileSystemModel.prototype._removeFileSystem):
1317         (WebInspector.FileSystemModel.FileSystem.prototype.get name):
1318         * inspector/front-end/IndexedDBModel.js:
1319         (WebInspector.IndexedDBModel.prototype._reset):
1320         (WebInspector.IndexedDBModel.prototype.refreshDatabaseNames):
1321         (WebInspector.IndexedDBModel.prototype._securityOriginAdded):
1322         (WebInspector.IndexedDBModel.prototype._securityOriginRemoved):
1323         (WebInspector.IndexedDBModel.prototype._addOrigin):
1324         (WebInspector.IndexedDBModel.prototype._removeOrigin):
1325         (WebInspector.IndexedDBModel.prototype._updateOriginDatabaseNames):
1326         (WebInspector.IndexedDBModel.prototype._loadDatabaseNames):
1327         (WebInspector.IndexedDBModel.prototype._loadDatabase):
1328         (WebInspector.IndexedDBModel.prototype.):
1329         (WebInspector.IndexedDBModel.prototype._requestData):
1330         (WebInspector.IndexedDBModel.DatabaseId.prototype.equals):
1331         * inspector/front-end/IndexedDBViews.js:
1332         (WebInspector.IDBDatabaseView.prototype._refreshDatabase):
1333         * inspector/front-end/ResourceTreeModel.js:
1334         (WebInspector.ResourceTreeModel):
1335         (WebInspector.ResourceTreeModel.prototype._addFrame):
1336         (WebInspector.ResourceTreeModel.prototype._addSecurityOrigin):
1337         (WebInspector.ResourceTreeModel.prototype._removeSecurityOrigin):
1338         (WebInspector.ResourceTreeModel.prototype.securityOrigins):
1339         (WebInspector.ResourceTreeModel.prototype._handleMainFrameDetached):
1340         (WebInspector.ResourceTreeModel.prototype._frameNavigated):
1341         (WebInspector.ResourceTreeModel.prototype._frameDetached):
1342         (WebInspector.ResourceTreeFrame):
1343         (WebInspector.ResourceTreeFrame.prototype._navigate):
1344         * inspector/front-end/ResourcesPanel.js:
1345         (WebInspector.IDBDatabaseTreeElement):
1346         (WebInspector.IDBDatabaseTreeElement.prototype.get itemURL):
1347         (WebInspector.IDBObjectStoreTreeElement.prototype.get itemURL):
1348         (WebInspector.IDBIndexTreeElement.prototype.get itemURL):
1349         (WebInspector.DOMStorageTreeElement):
1350         (WebInspector.DOMStorageTreeElement.prototype.get itemURL):
1351         (WebInspector.FileSystemTreeElement):
1352
1353 2013-03-01  Vsevolod Vlasov  <vsevik@chromium.org>
1354
1355         Web Inspector: Let user know when file system based uiSourceCode was changed on disk.
1356         https://bugs.webkit.org/show_bug.cgi?id=110133
1357
1358         Reviewed by Pavel Feldman.
1359
1360         We now check if file system based uiSourceCode content was updated externally when 
1361         UISourceCodeFrame is shown or inspector window is focused.
1362         If there is no working copy being edited right now we replace old content with the new one silently.
1363         Otherwise ask user if he wants to replace his working copy with the new content.
1364
1365         * English.lproj/localizedStrings.js:
1366         * WebCore.vcproj/WebCore.vcproj:
1367         * inspector/front-end/DefaultTextEditor.js:
1368         (WebInspector.DefaultTextEditor.prototype.editRange):
1369         * inspector/front-end/FileSystemProjectDelegate.js:
1370         (WebInspector.FileSystemProjectDelegate.prototype.innerCallback):
1371         (WebInspector.FileSystemProjectDelegate.prototype.requestFileContent):
1372         (WebInspector.FileSystemProjectDelegate.prototype._contentRequestFinished):
1373         (WebInspector.FileSystemProjectDelegate.prototype.requestUpdatedFileContent):
1374         (WebInspector.FileSystemProjectDelegate.prototype.contentCallback):
1375         (WebInspector.FileSystemProjectDelegate.prototype.searchInFileContent):
1376         * inspector/front-end/JavaScriptSourceFrame.js:
1377         (WebInspector.JavaScriptSourceFrame.prototype.wasShown):
1378         (WebInspector.JavaScriptSourceFrame.prototype.willHide):
1379         * inspector/front-end/SimpleWorkspaceProvider.js:
1380         (WebInspector.SimpleProjectDelegate.prototype.requestUpdatedFileContent):
1381         * inspector/front-end/SourceFrame.js:
1382         (WebInspector.SourceFrame.prototype.setContent):
1383         * inspector/front-end/UISourceCode.js:
1384         (WebInspector.UISourceCode.prototype.checkContentUpdated.updatedContentLoaded):
1385         (WebInspector.UISourceCode.prototype.checkContentUpdated):
1386         * inspector/front-end/UISourceCodeFrame.js:
1387         (WebInspector.UISourceCodeFrame.prototype.wasShown):
1388         (WebInspector.UISourceCodeFrame.prototype.willHide):
1389         (WebInspector.UISourceCodeFrame.prototype._windowFocused):
1390         (WebInspector.UISourceCodeFrame.prototype._checkContentUpdated):
1391         * inspector/front-end/Workspace.js:
1392         (WebInspector.ProjectDelegate.prototype.requestUpdatedFileContent):
1393         (WebInspector.Project.prototype.requestUpdatedFileContent):
1394
1395 2013-03-03  Arpita Bahuguna  <a.bah@samsung.com>
1396
1397         createAttribute/setAttributeNode does not properly normalize case
1398         https://bugs.webkit.org/show_bug.cgi?id=90341
1399
1400         Reviewed by Darin Adler.
1401
1402         setAttributeNode() verifies for existing attributes in a case sensitive
1403         manner. Thus, it would add another attribute if specified in a case
1404         different from the existing one. Instead, like setAttribute(), it too
1405         should modify the existing attribute's value.
1406
1407         Test: fast/dom/Element/setAttributeNode-case-insensitivity.html
1408
1409         * dom/Element.cpp:
1410         (WebCore::Element::setAttributeNode):
1411         Made changes to check for an existing attribute by converting the
1412         specified attribute's localName to lowercase.
1413
1414 2013-03-03  Kentaro Hara  <haraken@chromium.org>
1415
1416         Unreviewed. Rebaselined run-bindings-tests.
1417
1418         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1419         (WebCore::TestActiveDOMObjectV8Internal::indexedSecurityCheck):
1420         (TestActiveDOMObjectV8Internal):
1421         (WebCore::TestActiveDOMObjectV8Internal::namedSecurityCheck):
1422         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
1423         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1424         (V8TestActiveDOMObject):
1425
1426 2013-03-03  Kentaro Hara  <haraken@chromium.org>
1427
1428         Unreviewed build fix after r144590.
1429
1430         * bindings/scripts/CodeGeneratorV8.pm:
1431         (GenerateSecurityCheckFunctions):
1432
1433 2013-03-03  Kentaro Hara  <haraken@chromium.org>
1434
1435         Unreviewed build fix after r144587.
1436
1437         * bindings/v8/V8Binding.cpp:
1438         (WebCore::toV8Context):
1439         * bindings/v8/V8MutationCallback.cpp:
1440         (WebCore::V8MutationCallback::V8MutationCallback):
1441
1442 2013-03-01  Kentaro Hara  <haraken@chromium.org>
1443
1444         [V8] HTMLDocument.all should have [Replaceable]
1445         https://bugs.webkit.org/show_bug.cgi?id=111230
1446
1447         Reviewed by Adam Barth.
1448
1449         (Although HTMLDocument.all is already removed from the spec,)
1450         it is expected to behave as a [Replaceable] attribute. By adding
1451         a [Replaceable] IDL attribute, we can remove custom implementation
1452         of HTMLDocument.all.
1453
1454         I confimed that exactly the same code is generated for .all getter
1455         and setter.
1456
1457         No tests. No change in behavior.
1458
1459         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1460         * html/HTMLDocument.idl:
1461
1462 2013-03-01  Kentaro Hara  <haraken@chromium.org>
1463
1464         [V8] indexedSecurityCheck() and namedSecurityCheck() should be auto-generated
1465         https://bugs.webkit.org/show_bug.cgi?id=111225
1466
1467         Reviewed by Adam Barth.
1468
1469         indexedSecurityCheck() and namedSecurityCheck() should be auto-generated,
1470         except for DOMWindow's ones.
1471
1472         No tests. No change in behavior.
1473
1474         * bindings/scripts/CodeGeneratorV8.pm:
1475         (GenerateHeader):
1476         (GenerateImplementation):
1477         (GenerateSecurityCheckFunctions):
1478         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1479         (WebCore::V8DOMWindow::namedSecurityCheckCustom):
1480         (WebCore::V8DOMWindow::indexedSecurityCheckCustom):
1481         * bindings/v8/custom/V8HistoryCustom.cpp:
1482         * bindings/v8/custom/V8LocationCustom.cpp:
1483
1484 2013-03-01  Kentaro Hara  <haraken@chromium.org>
1485
1486         [V8] Rename $implContentDecls to $implContentInternals in CodeGeneratorV8.pm
1487         https://bugs.webkit.org/show_bug.cgi?id=111214
1488
1489         Reviewed by Adam Barth.
1490
1491         $implContentDecls stores generated code that is put in a namespace 'XXXV8Internal'.
1492         For clarification, it should be renamed to $implContentInternals.
1493
1494         No tests. No change in behavior.
1495
1496         * bindings/scripts/CodeGeneratorV8.pm:
1497         (GenerateDomainSafeFunctionGetter):
1498         (GenerateDomainSafeFunctionSetter):
1499         (GenerateConstructorGetter):
1500         (GenerateNormalAttrGetterCallback):
1501         (GenerateNormalAttrGetter):
1502         (GenerateReplaceableAttrSetterCallback):
1503         (GenerateReplaceableAttrSetter):
1504         (GenerateNormalAttrSetterCallback):
1505         (GenerateNormalAttrSetter):
1506         (GenerateOverloadedFunction):
1507         (GenerateFunctionCallback):
1508         (GenerateFunction):
1509         (GenerateOverloadedConstructorCallback):
1510         (GenerateSingleConstructorCallback):
1511         (GenerateEventConstructor):
1512         (GenerateTypedArrayConstructor):
1513         (GenerateImplementation):
1514         (WriteData):
1515
1516 2013-03-01  Kentaro Hara  <haraken@chromium.org>
1517
1518         [V8] Rename getWorld() to isolatedWorld(), and getWorldForEnteredContext() to isolatedWorldForEnteredContext()
1519         https://bugs.webkit.org/show_bug.cgi?id=111212
1520
1521         Reviewed by Adam Barth.
1522
1523         The rename I did in r142424 was wrong. Given that getWorld() returns 0
1524         for the main world, it should be named isolatedWorld(). Similarly,
1525         given that getWorldForEnteredContext() returns 0 for the main world,
1526         it should be named isolatedWorldForEnteredContext().
1527
1528         No tests. No change in behavior.
1529
1530         * bindings/v8/CustomElementHelpers.cpp:
1531         (WebCore::CustomElementHelpers::isFeatureAllowed):
1532         * bindings/v8/DOMDataStore.cpp:
1533         (WebCore::DOMDataStore::current):
1534         * bindings/v8/DOMWrapperWorld.cpp:
1535         (WebCore::DOMWrapperWorld::makeContextWeak):
1536         * bindings/v8/DOMWrapperWorld.h:
1537         (WebCore::DOMWrapperWorld::isolatedWorld):
1538         * bindings/v8/ScriptController.cpp:
1539         (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
1540         (WebCore::ScriptController::currentWorldContext):
1541         * bindings/v8/V8Binding.h:
1542         (WebCore::isolatedWorldForEnteredContext):
1543         * bindings/v8/WorldContextHandle.cpp:
1544         (WebCore::WorldContextHandle::WorldContextHandle):
1545         * bindings/v8/custom/V8DocumentCustom.cpp:
1546         (WebCore::wrap):
1547         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1548         (WebCore::wrap):
1549         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
1550         (WebCore::wrap):
1551         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
1552         (WebCore::V8XMLHttpRequest::constructorCustom):
1553
1554 2013-03-01  Kentaro Hara  <haraken@chromium.org>
1555
1556         [V8] Move HTMLDocument::getNamedProperty() to DOMWindowShell
1557         https://bugs.webkit.org/show_bug.cgi?id=111223
1558
1559         Reviewed by Adam Barth.
1560
1561         HTMLDocument::getNamedProperty() is used by DOMWindowShell.
1562         It can be a static method in DOMWindowShell.
1563
1564         No tests. No change in behavior.
1565
1566         * bindings/scripts/CodeGeneratorV8.pm:
1567         (GenerateHeader):
1568         * bindings/v8/V8DOMWindowShell.cpp:
1569         (WebCore::getNamedProperty):
1570         (WebCore):
1571         (WebCore::getter):
1572         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1573
1574 2013-03-03  Dan Bernstein  <mitz@apple.com>
1575
1576         Build fix after r144565. Reverted r144533.
1577
1578         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
1579
1580 2013-03-03  Adam Barth  <abarth@webkit.org>
1581
1582         Attempt to fix the Qt build after r144498
1583         https://bugs.webkit.org/show_bug.cgi?id=111272
1584
1585         Reviewed by Eric Seidel.
1586
1587         Update the Qt version of the XML parser to call the new API.
1588
1589         * xml/parser/XMLDocumentParserQt.cpp:
1590         (WebCore::XMLDocumentParser::resumeParsing):
1591         (WebCore::XMLDocumentParser::appendFragmentSource):
1592
1593 2013-03-03  Dean Jackson  <dino@apple.com>
1594
1595         Plug-ins that are appropriately large w.r.t page size should autostart
1596         https://bugs.webkit.org/show_bug.cgi?id=111242
1597
1598         Reviewed by Brady Eidson.
1599
1600         A "full-page" plug-in site should never snapshot. The trick is
1601         how to determine what is full-page. This change implements the
1602         following algorithm.
1603
1604         - The plug-in is in the main frame (not an iframe).
1605         - The plug-in is sized with width and height 100%.
1606         - The displayed area of the plug-in is more than 96% of the viewport area.
1607
1608         This is definitely not foolproof. For example, zombo.com has a slight
1609         border around its plug-in. As the window size gets smaller, the body margin
1610         takes up more than 5% of the width or height, and the plug-in doesn't pass
1611         the tests above.
1612
1613         * html/HTMLPlugInImageElement.cpp:
1614         (WebCore): New static constant: sizingFullPageThresholdPercentage
1615         (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Implements
1616             the rules described above.
1617
1618 2013-03-03  Ryosuke Niwa  <rniwa@webkit.org>
1619
1620         [Win] IDLParser.pm fails to parse OESTextureHalfFloat and causes a build failure
1621         https://bugs.webkit.org/show_bug.cgi?id=111267
1622
1623         Reviewed by Kentaro Hara.
1624
1625         Allow empty definitions.
1626
1627         * bindings/scripts/IDLParser.pm:
1628         (Parse):
1629
1630 2013-03-03  David Kilzer  <ddkilzer@apple.com>
1631
1632         BUILD FIX: RenderLayerFilterInfo.h needs to include Element.h with ENABLE(SVG)
1633
1634         Fixes the following build failures:
1635
1636             In file included from Source/WebCore/rendering/RenderLayerFilterInfo.cpp:33:
1637             Source/WebCore/rendering/RenderLayerFilterInfo.h:118:19: error: use of undeclared identifier 'Element'
1638                 Vector<RefPtr<Element> > m_internalSVGReferences;
1639                               ^
1640             Source/WebCore/rendering/RenderLayerFilterInfo.h:118:28: error: expected a type
1641                 Vector<RefPtr<Element> > m_internalSVGReferences;
1642                                        ^
1643             Source/WebCore/rendering/RenderLayerFilterInfo.h:118:30: error: private field 'm_internalSVGReferences' is not used [-Werror,-Wunused-private-field]
1644                 Vector<RefPtr<Element> > m_internalSVGReferences;
1645                                          ^
1646             3 errors generated.
1647
1648         * rendering/RenderLayerFilterInfo.h: Include Element.h within
1649         ENABLE(SVG).  Move ENABLE(SVG) block below unconditional
1650         headers.
1651
1652 2013-03-03  Sheriff Bot  <webkit.review.bot@gmail.com>
1653
1654         Unreviewed, rolling out r144567.
1655         http://trac.webkit.org/changeset/144567
1656         https://bugs.webkit.org/show_bug.cgi?id=111266
1657
1658         Does not compile on apple-win (Requested by abarth on
1659         #webkit).
1660
1661         * WebCore.exp.in:
1662         * dom/Document.cpp:
1663         (WebCore::Document::iconURLs):
1664         * dom/Document.h:
1665         (Document):
1666         * loader/icon/IconController.cpp:
1667         (WebCore::IconController::iconURL):
1668         (WebCore::IconController::urlsForTypes):
1669         * loader/icon/IconController.h:
1670         (IconController):
1671         * testing/Internals.cpp:
1672         (WebCore::Internals::iconURLs):
1673         * testing/Internals.h:
1674         * testing/Internals.idl:
1675
1676 2013-03-03  Mike West  <mkwst@chromium.org>
1677
1678         CSP 1.1: Support CSP 1.1 directives on the unprefixed header.
1679         https://bugs.webkit.org/show_bug.cgi?id=111254
1680
1681         Reviewed by Adam Barth.
1682
1683         We'd like to ensure that early adopters don't get stuck on a prefixed
1684         header; when CSP 1.1 is baked enough to be supported in multiple
1685         browsers, everything should Just Work™.
1686
1687         This patch changes WebKit's behavior regarding CSP_NEXT features.
1688         Currently, they're only exposed on the prefixed header ('X-WebKit-CSP').
1689         This patch exposes those features on the canonical header, assuming
1690         that the runtime flag is set. This shouldn't have any effect at all on
1691         ports that haven't yet enabled CSP_NEXT, and will simply clear the way
1692         for a clean deployment to a wider audience once the specification
1693         process is further along.
1694
1695         This change shouldn't have any effect on the existing tests: they
1696         should run just as they did before. The next step will be to adjust
1697         the LayoutTests for 1.1 to prefer the canonical header, but I'll do
1698         that in another patch to reduce churn.
1699
1700         Related, the enum names no longer made sense: the difference between the
1701         canonical 'Content-Security-Policy' header and 'X-WebKit-CSP' is the
1702         prefix, not the functionality. This patch renames them for clarity.
1703
1704         * dom/Document.cpp:
1705         (WebCore::Document::processHttpEquiv):
1706         * loader/FrameLoader.cpp:
1707         (WebCore::FrameLoader::didBeginDocument):
1708             Use the new enum names.
1709         * page/ContentSecurityPolicy.cpp:
1710         (CSPDirectiveList):
1711         (WebCore::CSPDirectiveList::CSPDirectiveList):
1712         (WebCore::CSPDirectiveList::addDirective):
1713             Drop the 'm_experimental' property from CSPDirectiveList; we'll
1714             control the behavior via the runtime flag from now on.
1715
1716             Also, this fixes a small bug in 'addDirective()': we never threw
1717             unrecognized directive errors for users who were sending the
1718             prefixed header. Oops!
1719         (WebCore::ContentSecurityPolicy::deprecatedHeaderType):
1720             Use the new enum names.
1721         * page/ContentSecurityPolicy.h:
1722             Redefine the enum for clarity: 'PrefixedReport' and 'Report'
1723             rather than 'ReportAllDirectives' and 'ReportStableDirectives'.
1724
1725 2013-03-03  Ryosuke Niwa  <rniwa@webkit.org>
1726
1727         Another Windows build fix attempt after r144567.
1728         Try touching the IDL file in a hope it'll regenerate JSInternals.cpp.
1729
1730         * testing/Internals.idl:
1731
1732 2013-03-03  Adam Barth  <abarth@webkit.org>
1733
1734         Unreviewed attempted build fix. Adds back some includes removed in
1735         http://trac.webkit.org/changeset/144565.
1736
1737         * Modules/mediastream/RTCPeerConnection.cpp:
1738         * bindings/ScriptControllerBase.cpp:
1739         * bindings/objc/DOM.mm:
1740         * bindings/v8/ScriptController.cpp:
1741         * bindings/v8/V8DOMWindowShell.cpp:
1742         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1743         * css/CSSFontSelector.cpp:
1744         * css/WebKitCSSSVGDocumentValue.cpp:
1745         * dom/DOMImplementation.cpp:
1746         * dom/PendingScript.h:
1747         * dom/ScriptElement.cpp:
1748         * dom/ScriptElement.h:
1749         * history/CachedFrame.cpp:
1750         * html/DOMURL.cpp:
1751         * html/HTMLAnchorElement.cpp:
1752         * html/HTMLAppletElement.cpp:
1753         * html/HTMLElement.cpp:
1754         * html/HTMLEmbedElement.cpp:
1755         * html/HTMLFrameSetElement.cpp:
1756         * html/HTMLHtmlElement.cpp:
1757         * html/HTMLImageElement.cpp:
1758         * html/HTMLObjectElement.cpp:
1759         * html/HTMLPlugInElement.cpp:
1760         * html/ImageDocument.cpp:
1761         * html/ImageInputType.cpp:
1762         * html/MediaDocument.cpp:
1763         * html/PluginDocument.cpp:
1764         * html/canvas/WebGLRenderingContext.cpp:
1765         (WebCore):
1766         * html/parser/HTMLConstructionSite.cpp:
1767         * html/parser/HTMLParserOptions.cpp:
1768         * html/parser/XSSAuditorDelegate.cpp:
1769         * inspector/InspectorDebuggerAgent.cpp:
1770         * inspector/InspectorFileSystemAgent.cpp:
1771         * inspector/InspectorFrontendHost.cpp:
1772         * inspector/InspectorInstrumentation.h:
1773         * inspector/InspectorPageAgent.cpp:
1774         * inspector/NetworkResourcesData.cpp:
1775         * inspector/NetworkResourcesData.h:
1776         (WebCore):
1777         * loader/CookieJar.cpp:
1778         * loader/CrossOriginAccessControl.cpp:
1779         * loader/FrameLoader.cpp:
1780         * loader/MainResourceLoader.cpp:
1781         * loader/MixedContentChecker.cpp:
1782         * loader/PingLoader.cpp:
1783         * loader/SubframeLoader.cpp:
1784         * loader/SubresourceLoader.cpp:
1785         * loader/appcache/ApplicationCacheGroup.cpp:
1786         * loader/appcache/ApplicationCacheHost.cpp:
1787         * loader/cache/CachedResource.cpp:
1788         * loader/icon/IconController.cpp:
1789         * page/DOMWindowExtension.cpp:
1790         * page/Frame.cpp:
1791         * page/PerformanceTiming.cpp:
1792         * page/PointerLockController.cpp:
1793         * page/animation/CSSPropertyAnimation.cpp:
1794         * platform/chromium/PasteboardChromium.cpp:
1795         * platform/efl/ErrorsEfl.cpp:
1796         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
1797         * platform/gtk/ErrorsGtk.cpp:
1798         * platform/gtk/PasteboardGtk.cpp:
1799         * platform/gtk/PasteboardHelper.h:
1800         * platform/mac/ClipboardMac.mm:
1801         * platform/mac/HTMLConverter.mm:
1802         * platform/qt/PasteboardQt.cpp:
1803         * plugins/DOMMimeType.cpp:
1804         * plugins/PluginView.cpp:
1805         * rendering/HitTestResult.cpp:
1806         * rendering/RenderImage.cpp:
1807         * rendering/RenderImageResource.cpp:
1808         * rendering/RenderImageResourceStyleImage.cpp:
1809         * rendering/RenderLayer.cpp:
1810         * rendering/RenderLayerBacking.cpp:
1811         * svg/SVGImageLoader.cpp:
1812         * svg/SVGUseElement.cpp:
1813         * testing/MockPagePopupDriver.cpp:
1814         * xml/XSLStyleSheet.h:
1815         (WebCore):
1816
1817 2013-03-03  Ruslan Abdikeev  <aruslan@chromium.org>
1818
1819         <link rel="apple-touch-icon"> tag is not honored on CNN.com, workflowy.com etc
1820         https://bugs.webkit.org/show_bug.cgi?id=109061
1821
1822         Reviewed by Adam Barth.
1823
1824         Test: fast/dom/icon-url-list-apple-touch.html
1825
1826         Added iconTypes parameter to Document::iconURLs().
1827         Added Document::shortcutIconURLs() with original semantics of iconURLs().
1828         Fixed IconController.cpp to provide iconTypesMask to iconURLs().
1829         Renamed iconTypes to iconTypesMask to make the meaning clearer.
1830
1831         * WebCore.exp.in:
1832         * dom/Document.cpp:
1833         (WebCore::Document::shortcutIconURLs):
1834         (WebCore):
1835         (WebCore::Document::iconURLs):
1836         * dom/Document.h:
1837         (Document):
1838         * loader/icon/IconController.cpp:
1839         (WebCore::IconController::iconURL):
1840         (WebCore::IconController::urlsForTypes):
1841         * testing/Internals.cpp:
1842         (WebCore::Internals::iconURLs):
1843         (WebCore::Internals::shortcutIconURLs):
1844         (WebCore):
1845         (WebCore::Internals::allIconURLs):
1846         * testing/Internals.h:
1847         * testing/Internals.idl:
1848
1849 2013-03-03  Mike West  <mkwst@chromium.org>
1850
1851         CSP: Throw a warning when a '*-report-only' header doesn't contain a 'report-uri' directive.
1852         https://bugs.webkit.org/show_bug.cgi?id=111208
1853
1854         Reviewed by Adam Barth.
1855
1856         Developers in the wild have been observed to serve a report-only CSP
1857         header with a policy that doesn't contain a 'report-uri' directive.
1858         This has zero effect, of course, and we should help them understand
1859         that by throwing a warning up on the console.
1860
1861         Test: http/tests/security/contentSecurityPolicy/report-only-report-uri-missing.html
1862
1863         * page/ContentSecurityPolicy.cpp:
1864         (WebCore::CSPDirectiveList::isReportOnly): Added.
1865         (WebCore::CSPDirectiveList::reportURIs): Added.
1866         (WebCore::CSPDirectiveList::create):
1867             After creating a CSPDirectiveList, check whether it's in
1868             report-only mode without a report-uri. If so, warn the developer.
1869         (WebCore::ContentSecurityPolicy::reportMissingReportURI): Added.
1870             Write an exciting message to the console, warning the developer
1871             about her expensive no-op machine.
1872
1873 2013-03-03  Adam Barth  <abarth@webkit.org>
1874
1875         Unreviewed rollout of http://trac.webkit.org/r144530
1876         As described in https://bugs.webkit.org/show_bug.cgi?id=111167 and
1877         https://bugs.webkit.org/show_bug.cgi?id=111035, this patch caused a
1878         large number of ASSERTs in chromium-win.
1879
1880         * CMakeLists.txt:
1881         * GNUmakefile.list.am:
1882         * Modules/mediastream/RTCPeerConnection.cpp:
1883         * Modules/notifications/Notification.cpp:
1884         * Target.pri:
1885         * WebCore.exp.in:
1886         * WebCore.gypi:
1887         * WebCore.vcproj/WebCore.vcproj:
1888         * WebCore.vcxproj/WebCore.vcxproj:
1889         * WebCore.vcxproj/WebCore.vcxproj.filters:
1890         * WebCore.xcodeproj/project.pbxproj:
1891         * bindings/ScriptControllerBase.cpp:
1892         * bindings/js/JSNodeCustom.cpp:
1893         * bindings/js/ScriptController.cpp:
1894         * bindings/js/ScriptSourceCode.h:
1895         (WebCore):
1896         * bindings/objc/DOM.mm:
1897         * bindings/v8/ScriptController.cpp:
1898         * bindings/v8/V8DOMWindowShell.cpp:
1899         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1900         * css/CSSCrossfadeValue.h:
1901         (WebCore::CSSCrossfadeValue::CSSCrossfadeValue):
1902         (WebCore::CSSCrossfadeValue::CrossfadeSubimageObserverProxy::CrossfadeSubimageObserverProxy):
1903         * css/CSSFontFaceSource.h:
1904         * css/CSSFontSelector.cpp:
1905         * css/WebKitCSSSVGDocumentValue.cpp:
1906         * css/WebKitCSSSVGDocumentValue.h:
1907         (WebCore):
1908         * dom/Clipboard.cpp:
1909         (WebCore::Clipboard::Clipboard):
1910         * dom/ContainerNode.cpp:
1911         * dom/DOMImplementation.cpp:
1912         * dom/PendingScript.h:
1913         * dom/ScriptElement.cpp:
1914         * dom/ScriptElement.h:
1915         * history/CachedFrame.cpp:
1916         * html/DOMURL.cpp:
1917         * html/HTMLAnchorElement.cpp:
1918         * html/HTMLAppletElement.cpp:
1919         * html/HTMLElement.cpp:
1920         * html/HTMLEmbedElement.cpp:
1921         * html/HTMLFrameSetElement.cpp:
1922         * html/HTMLHtmlElement.cpp:
1923         * html/HTMLImageElement.cpp:
1924         * html/HTMLObjectElement.cpp:
1925         * html/HTMLPlugInElement.cpp:
1926         * html/ImageDocument.cpp:
1927         * html/ImageInputType.cpp:
1928         * html/MediaDocument.cpp:
1929         * html/PluginDocument.cpp:
1930         * html/canvas/WebGLRenderingContext.cpp:
1931         (WebCore):
1932         * html/parser/HTMLConstructionSite.cpp:
1933         * html/parser/HTMLParserOptions.cpp:
1934         * html/parser/HTMLScriptRunner.h:
1935         * html/parser/XSSAuditor.cpp:
1936         * html/parser/XSSAuditorDelegate.cpp:
1937         * inspector/InspectorDebuggerAgent.cpp:
1938         * inspector/InspectorFileSystemAgent.cpp:
1939         * inspector/InspectorFrontendHost.cpp:
1940         * inspector/InspectorInstrumentation.h:
1941         (WebCore):
1942         * inspector/InspectorPageAgent.cpp:
1943         * inspector/NetworkResourcesData.cpp:
1944         * inspector/NetworkResourcesData.h:
1945         (WebCore):
1946         * loader/CookieJar.cpp:
1947         * loader/CrossOriginAccessControl.cpp:
1948         * loader/CrossOriginAccessControl.h:
1949         (WebCore):
1950         * loader/CrossOriginPreflightResultCache.h:
1951         * loader/DocumentThreadableLoader.h:
1952         * loader/FrameLoader.cpp:
1953         (WebCore::FrameLoader::FrameLoader):
1954         * loader/FrameLoader.h:
1955         (WebCore):
1956         (WebCore::FrameLoader::policyChecker):
1957         * loader/ImageLoader.cpp:
1958         * loader/ImageLoader.h:
1959         * loader/LinkLoader.h:
1960         (WebCore):
1961         * loader/MainResourceLoader.cpp:
1962         * loader/MainResourceLoader.h:
1963         (WebCore):
1964         * loader/MixedContentChecker.cpp:
1965         * loader/PingLoader.cpp:
1966         * loader/PolicyChecker.h:
1967         (WebCore):
1968         * loader/ProgressTracker.cpp:
1969         * loader/SubframeLoader.cpp:
1970         * loader/SubresourceLoader.cpp:
1971         * loader/TextTrackLoader.cpp:
1972         * loader/TextTrackLoader.h:
1973         (WebCore):
1974         * loader/ThreadableLoader.h:
1975         * loader/appcache/ApplicationCacheGroup.cpp:
1976         * loader/appcache/ApplicationCacheGroup.h:
1977         (WebCore):
1978         * loader/appcache/ApplicationCacheHost.cpp:
1979         * loader/archive/cf/LegacyWebArchive.cpp:
1980         * loader/cache/CachedFont.cpp:
1981         * loader/cache/CachedFont.h:
1982         (CachedFontClient):
1983         (WebCore::CachedFontClient::~CachedFontClient):
1984         (WebCore::CachedFontClient::expectedType):
1985         (WebCore::CachedFontClient::resourceClientType):
1986         (WebCore::CachedFontClient::fontLoaded):
1987         (WebCore):
1988         * loader/cache/CachedFontClient.h: Removed.
1989         * loader/cache/CachedImage.cpp:
1990         * loader/cache/CachedRawResource.cpp:
1991         * loader/cache/CachedRawResource.h:
1992         (WebCore):
1993         (CachedRawResourceClient):
1994         (WebCore::CachedRawResourceClient::~CachedRawResourceClient):
1995         (WebCore::CachedRawResourceClient::expectedType):
1996         (WebCore::CachedRawResourceClient::resourceClientType):
1997         (WebCore::CachedRawResourceClient::dataSent):
1998         (WebCore::CachedRawResourceClient::responseReceived):
1999         (WebCore::CachedRawResourceClient::dataReceived):
2000         (WebCore::CachedRawResourceClient::redirectReceived):
2001         (WebCore::CachedRawResourceClient::dataDownloaded):
2002         * loader/cache/CachedRawResourceClient.h: Removed.
2003         * loader/cache/CachedResource.cpp:
2004         * loader/cache/CachedResourceHandle.cpp:
2005         (WebCore):
2006         * loader/cache/CachedResourceHandle.h:
2007         (WebCore):
2008         (WebCore::CachedResourceHandleBase::~CachedResourceHandleBase):
2009         (WebCore::CachedResourceHandleBase::CachedResourceHandleBase):
2010         * loader/cache/CachedSVGDocument.h:
2011         (CachedSVGDocumentClient):
2012         (WebCore::CachedSVGDocumentClient::~CachedSVGDocumentClient):
2013         (WebCore::CachedSVGDocumentClient::expectedType):
2014         (WebCore::CachedSVGDocumentClient::resourceClientType):
2015         (WebCore):
2016         * loader/cache/CachedSVGDocumentClient.h: Removed.
2017         * loader/cache/CachedSVGDocumentReference.cpp: Removed.
2018         * loader/cache/CachedSVGDocumentReference.h:
2019         (WebCore):
2020         (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
2021         (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
2022         * loader/cache/CachedStyleSheetClient.h:
2023         (WebCore):
2024         * loader/cache/MemoryCache.h:
2025         (WebCore):
2026         (MemoryCache):
2027         * loader/chromium/CachedRawResourceChromium.cpp:
2028         * loader/icon/IconController.cpp:
2029         * loader/icon/IconLoader.h:
2030         * loader/mac/ResourceLoaderMac.mm:
2031         * page/DOMWindowExtension.cpp:
2032         * page/Frame.cpp:
2033         (WebCore::Frame::Frame):
2034         (WebCore):
2035         (WebCore::Frame::reportMemoryUsage):
2036         * page/Frame.h:
2037         (WebCore):
2038         (Frame):
2039         (WebCore::Frame::init):
2040         (WebCore::Frame::loader):
2041         * page/PerformanceNavigation.cpp:
2042         * page/PerformanceTiming.cpp:
2043         * page/PointerLockController.cpp:
2044         * page/Settings.cpp:
2045         * page/animation/CSSPropertyAnimation.cpp:
2046         * platform/chromium/PasteboardChromium.cpp:
2047         * platform/efl/ErrorsEfl.cpp:
2048         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2049         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2050         * platform/graphics/filters/FilterOperation.cpp:
2051         (WebCore):
2052         * platform/graphics/filters/FilterOperation.h:
2053         (WebCore):
2054         (WebCore::FilterOperation::ReferenceFilterOperation::setCachedSVGDocumentReference):
2055         (WebCore::FilterOperation::ReferenceFilterOperation::ReferenceFilterOperation):
2056         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2057         * platform/gtk/ErrorsGtk.cpp:
2058         * platform/gtk/PasteboardGtk.cpp:
2059         * platform/gtk/PasteboardHelper.h:
2060         * platform/mac/ClipboardMac.h:
2061         * platform/mac/ClipboardMac.mm:
2062         * platform/mac/HTMLConverter.mm:
2063         * platform/mac/PasteboardMac.mm:
2064         * platform/network/AuthenticationChallengeBase.cpp:
2065         * platform/network/cf/CookieJarCFNet.cpp:
2066         * platform/network/cf/ResourceRequestCFNet.cpp:
2067         * platform/network/mac/CookieStorageMac.mm:
2068         * platform/qt/PasteboardQt.cpp:
2069         * plugins/DOMMimeType.cpp:
2070         * plugins/PluginRequest.h: Removed.
2071         * plugins/PluginStream.h:
2072         (PluginStreamClient):
2073         (WebCore::PluginStreamClient::~PluginStreamClient):
2074         (WebCore::PluginStreamClient::streamDidFinishLoading):
2075         (WebCore):
2076         * plugins/PluginStreamClient.h: Removed.
2077         * plugins/PluginView.cpp:
2078         * plugins/PluginView.h:
2079         (WebCore):
2080         (PluginRequest):
2081         (WebCore::PluginRequest::PluginRequest):
2082         (WebCore::PluginRequest::frameLoadRequest):
2083         (WebCore::PluginRequest::notifyData):
2084         (WebCore::PluginRequest::sendNotification):
2085         (WebCore::PluginRequest::shouldAllowPopups):
2086         * rendering/HitTestResult.cpp:
2087         * rendering/InlineFlowBox.cpp:
2088         * rendering/RenderBox.cpp:
2089         * rendering/RenderEmbeddedObject.cpp:
2090         * rendering/RenderImage.cpp:
2091         * rendering/RenderImageResource.cpp:
2092         (WebCore::RenderImageResource::RenderImageResource):
2093         (WebCore):
2094         * rendering/RenderImageResource.h:
2095         (WebCore::RenderImageResource::image):
2096         (WebCore::RenderImageResource::errorOccurred):
2097         (WebCore::RenderImageResource::usesImageContainerSize):
2098         (WebCore::RenderImageResource::imageHasRelativeWidth):
2099         (WebCore::RenderImageResource::imageHasRelativeHeight):
2100         (WebCore::RenderImageResource::imageSize):
2101         * rendering/RenderImageResourceStyleImage.cpp:
2102         * rendering/RenderLayer.cpp:
2103         * rendering/RenderLayerBacking.cpp:
2104         * rendering/RenderLayerFilterInfo.h:
2105         (WebCore):
2106         * rendering/RenderListItem.cpp:
2107         * rendering/RenderListMarker.cpp:
2108         * rendering/RenderSnapshottedPlugIn.cpp:
2109         * rendering/RenderTableCol.cpp:
2110         * rendering/RenderTableRow.cpp:
2111         * rendering/RenderTableSection.cpp:
2112         * rendering/style/StyleCachedShader.h:
2113         * rendering/style/StyleCustomFilterProgram.cpp: Removed.
2114         * rendering/style/StyleCustomFilterProgram.h:
2115         (WebCore):
2116         (WebCore::StyleCustomFilterProgram::vertexShaderString):
2117         (StyleCustomFilterProgram):
2118         (WebCore::StyleCustomFilterProgram::fragmentShaderString):
2119         (WebCore::StyleCustomFilterProgram::isLoaded):
2120         (WebCore::StyleCustomFilterProgram::willHaveClients):
2121         (WebCore::StyleCustomFilterProgram::didRemoveLastClient):
2122         (WebCore::StyleCustomFilterProgram::notifyFinished):
2123         * svg/SVGFEImageElement.h:
2124         * svg/SVGFontFaceUriElement.h:
2125         (SVGFontFaceUriElement):
2126         * svg/SVGImageLoader.cpp:
2127         * svg/SVGUseElement.cpp:
2128         * svg/SVGUseElement.h:
2129         * svg/graphics/SVGImageCache.cpp:
2130         * testing/MockPagePopupDriver.cpp:
2131         * xml/XSLStyleSheet.h:
2132         (WebCore):
2133         * xml/XSLTProcessorLibxslt.cpp:
2134         * xml/parser/XMLDocumentParser.cpp:
2135         * xml/parser/XMLDocumentParser.h:
2136         * xml/parser/XMLDocumentParserLibxml2.cpp:
2137
2138 2013-03-03  Kentaro Hara  <haraken@chromium.org>
2139
2140         [V8] Remove TranslateParameter() from CodeGeneratorV8.pm
2141         https://bugs.webkit.org/show_bug.cgi?id=111218
2142
2143         Reviewed by Adam Barth.
2144
2145         TranslateParameter() does nothing. It tries to convert TimeoutHandler to DOMString,
2146         but there is no non-custom method that uses TimeoutHandler.
2147
2148         The only place where TimeoutHandler is used in the WebKit IDL is setTimeout() and setInterval().
2149         However, the latest spec uses 'any' instead of TimeoutHandler.
2150         http://dev.w3.org/html5/spec-LC/timers.html
2151         Thus, this patch updates the IDL declarations of setTimeout() and setInterval()
2152         according to the spec. By this change, TimeoutHandler is gone away from the WebKit IDL.
2153         (Anyway this IDL change has no effect, because setTimeout() and setInterval() are written
2154         in custom bindings.)
2155
2156         No tests. No change in behavior.
2157
2158         * bindings/scripts/CodeGeneratorV8.pm:
2159         (GenerateParametersCheck):
2160         * page/DOMWindow.idl:
2161         * workers/WorkerContext.idl:
2162
2163 2013-03-03  James Weatherall  <wez@chromium.org>
2164
2165         keydown and keyup events have zero keycode for some numeric pad keys under Chromium on Linux
2166         https://bugs.webkit.org/show_bug.cgi?id=85642
2167
2168         Add missing key mappings for GDK_KP_Begin, GDK_KP_Insert, GDK_KP_Delete and GDK_ISO_Level3_Shift.
2169
2170         Reviewed by Adam Barth.
2171
2172         * platform/chromium/KeyCodeConversionGtk.cpp:
2173         (WebCore::windowsKeyCodeForKeyEvent):
2174
2175 2013-03-03  Adam Barth  <abarth@webkit.org>
2176
2177         REGRESSION(144520): Does not compile on chromium-win
2178         https://bugs.webkit.org/show_bug.cgi?id=111261
2179
2180         Unreviewed rollout of http://trac.webkit.org/changeset/144520. This
2181         patch does not compile for chromium-win. See the bug for the compile
2182         error.
2183
2184         * rendering/ExclusionShapeInsideInfo.cpp:
2185         * rendering/ExclusionShapeInsideInfo.h:
2186         (WebCore):
2187         (LineSegmentRange):
2188         (WebCore::LineSegmentRange::LineSegmentRange):
2189         (WebCore::ExclusionShapeInsideInfo::isEnabledFor):
2190         * rendering/RenderBlock.cpp:
2191         (WebCore::RenderBlock::willBeDestroyed):
2192         (WebCore::RenderBlock::exclusionShapeInsideInfo):
2193         (WebCore):
2194         (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange):
2195         * rendering/RenderBlock.h:
2196         (WebCore):
2197         (RenderBlock):
2198         (RenderBlockRareData):
2199         * rendering/RenderBlockLineLayout.cpp:
2200         (WebCore::constructBidiRunsForLine):
2201
2202 2013-03-02  Zan Dobersek  <zdobersek@igalia.com>
2203
2204         REGRESSION (r144517): IndexedDB layout test failures on GTK
2205         https://bugs.webkit.org/show_bug.cgi?id=111243
2206
2207         Reviewed by Martin Robinson.
2208
2209         Changes to the custom JSC bindings for IDBAny are required after r144517,
2210         specifically the case of IDBAny object having the KeyPathType type has to be covered.
2211         These changes are analogous to those made to the V8 bindings in the mentioned commit.
2212
2213         No new tests - already covered by existing tests.
2214
2215         * bindings/js/JSIDBAnyCustom.cpp:
2216         (WebCore::toJS): A helper function that wraps an IDBKeyPath into a JSValue.
2217         (WebCore): Shuffle the order inside the switch statement a bit to match the V8 custom bindings.
2218         Cover the case where the IDBAny object has the KeyPathType, calling the new helper method.
2219
2220 2013-03-02  Darin Adler  <darin@apple.com>
2221
2222         Another try at fixing the build.
2223
2224         * loader/cache/MemoryCache.cpp: Added an include of CachedResourceHandle.h.
2225
2226 2013-03-02  Darin Adler  <darin@apple.com>
2227
2228         Try to fix build.
2229
2230         * inspector/InspectorInstrumentation.h: Add missing forward declaration
2231         of CachedResource.
2232
2233 2013-02-18  Darin Adler  <darin@apple.com>
2234
2235         Cut down the number of source files that depend on Clipboard.h
2236         https://bugs.webkit.org/show_bug.cgi?id=110030
2237
2238         Reviewed by Ryosuke Niwa.
2239
2240         I am doing some work on Clipboard and it's better to recompile 50 files
2241         each time we touch the header instead of 700. Also cut down on includes
2242         of DragState.h.
2243
2244         * WebCore.exp.in: Updated for new MouseEvent::create function.
2245
2246         * dom/ClipboardEvent.cpp: Added include of Clipboard.h since we use it
2247         here and the world no longer includes it everywhere.
2248
2249         * dom/ClipboardEvent.h: Forward declared Clipboard instead of including
2250         Clipboard.h. Also made some overrides private because they can be.
2251
2252         * dom/DataTransferItem.h: Removed unneeded include of Clipboard.h.
2253
2254         * dom/MouseEvent.cpp: Added include of Clipboard.h since we use it
2255         here and the world no longer includes it everywhere.
2256         (WebCore::MouseEvent::create): Made the create function non-inline
2257         since we can't compile it without including Clipboard.h and we don't
2258         want to include Clipboard.h in the header. This is not so commonly
2259         used or so hot that this needs to be inlined.
2260
2261         * dom/MouseEvent.h: Forward declared Clipboard instead of including
2262         Clipboard.h. Made MouseEvent::create a non-inline function and also
2263         used overloading instead of default arguments, since we can't compile
2264         a default argument of type PassRefPtr<Clipboard> without including
2265         Clipboard.h.
2266
2267         * dom/WheelEvent.cpp: Added include of Clipboard.h since we use it
2268         here and the world no longer includes it everywhere.
2269
2270         * dom/WheelEvent.h: Forward declare PlatformWheelEvent since it is used
2271         in this header. Previously we'd get it indirectly from including a header
2272         that included Clipboard.h.
2273
2274         * editing/Editor.cpp: Added include of Clipboard.h since we use it here
2275         and the world no longer includes it everywhere.
2276
2277         * inspector/InspectorDebuggerAgent.cpp: Added include of CachedResource.h.
2278         We used to get this indirectly through Clipboard.h.
2279
2280         * inspector/InspectorFrontendHost.cpp: Added includes of ResourceError.h
2281         and ResourceResponse.h. We used to get these indirectly through Clipboard.h.
2282         Also removed unneeded include of <wtf/RefPtr.h>.
2283
2284         * inspector/NetworkResourcesData.cpp: Added include of CachedResource.h.
2285         We used to get this indirectly through Clipboard.h.
2286
2287         * loader/PingLoader.cpp: Added include of ResourceResponse.h.
2288         We used to get this indirectly through Clipboard.h.
2289
2290         * page/DragController.cpp: Added include of DragState.h.
2291         We used to get this indirectly through EventHandler.h
2292
2293         * page/EventHandler.h: Forward declared DragState and Element instead of
2294         including DragState.h. Also added an include of LayoutPoint.h, which we
2295         used to get indirectly through DragState.h.
2296
2297 2013-02-27  Darin Adler  <darin@apple.com>
2298
2299         StringHasher functions require alignment that call sites do not all guarantee
2300         https://bugs.webkit.org/show_bug.cgi?id=110171
2301
2302         Reviewed by Benjamin Poulain.
2303
2304         * platform/graphics/WidthCache.h:
2305         (WebCore::WidthCache::SmallStringKey::SmallStringKey): Use the newly added
2306         addCharactersAssumingAligned to make sure we don't slow this call site down.
2307         It's safe since this code always adds characters two at a time.
2308
2309 2013-03-02  Adam Barth  <abarth@webkit.org>
2310
2311         XSSAuditor has a subtle race condition when used with the threaded HTML parser
2312         https://bugs.webkit.org/show_bug.cgi?id=111253
2313
2314         Reviewed by Eric Seidel.
2315
2316         We were refing and derefing a StringImpl for a main-thread
2317         AtomicString. Using QualifiedNames on the background thread is very
2318         fragile and we should figure out a more robust solution.
2319
2320         * html/parser/XSSAuditor.cpp:
2321         (WebCore::findAttributeWithName):
2322
2323 2013-03-02  Benjamin Poulain  <bpoulain@apple.com>
2324
2325         Move computedStyleIncludingVisitedInfo from TestRunner to Internals
2326         https://bugs.webkit.org/show_bug.cgi?id=109772
2327
2328         Reviewed by Andreas Kling.
2329
2330         The function computedStyleIncludingVisitedInfo() is purely internal to WebCore,
2331         it is better defined on Internals than on TestRunner.
2332
2333         * testing/Internals.cpp:
2334         (WebCore::Internals::computedStyleIncludingVisitedInfo):
2335         * testing/Internals.h:
2336         * testing/Internals.idl:
2337
2338 2013-03-02  David Kilzer  <ddkilzer@apple.com>
2339
2340         BUILD FIX (r143637): Export ScriptController::javaScriptContext() on iOS
2341         <http://webkit.org/b/106059>
2342
2343         Fixes the following build failure:
2344
2345             Undefined symbols for architecture armv7:
2346               "__ZN7WebCore16ScriptController17javaScriptContextEv", referenced from:
2347                   -[WebFrame javaScriptContext] in WebFrame.o
2348                   __ZN20WebFrameLoaderClient35dispatchDidClearWindowObjectInWorldEPN7WebCore15DOMWrapperWorldE in WebFrameLoaderClient.o
2349             ld: symbol(s) not found for architecture armv7
2350
2351         * WebCore.exp.in: Export ScriptController::javaScriptContext()
2352         even more unconditionally.
2353
2354 2013-03-02  Eric Seidel  <eric@webkit.org>
2355
2356         Remove two unnecessary mallocs from the main-thread-parser code path
2357         https://bugs.webkit.org/show_bug.cgi?id=111249
2358
2359         Reviewed by Adam Barth.
2360
2361         I noticed these while fixing up our Vector -> String conversions
2362         but never went back to fix the FIXME.
2363
2364         AtomicString(Vector<UChar, capacity>) is smart enough to avoid mallocing
2365         if the represented string is already in the AtomicString table.  It
2366         also handles 8bit vs. 16bit and empty() just like nameString() does.
2367
2368         I also removed a 3rd caller to nameString() in the XSSAuditor which
2369         was causing an unnecessary malloc in both the main and background
2370         thread parser paths.
2371
2372         * html/parser/AtomicHTMLToken.h:
2373         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
2374         * html/parser/HTMLToken.h:
2375         * html/parser/XSSAuditor.cpp:
2376         (WebCore):
2377         (WebCore::threadSafeMatch):
2378         (WebCore::hasName):
2379
2380 2013-03-02  Eric Seidel  <eric@webkit.org>
2381
2382         constructTreeFromCompactHTMLToken should call clearExternalCharacters
2383         https://bugs.webkit.org/show_bug.cgi?id=111248
2384
2385         Reviewed by Adam Barth.
2386
2387         I don't know how to write a test for this.  It's possible characters()
2388         is never accessed from HTMLStackItem::token(), but it's better to be
2389         safe than sorry here.
2390
2391         * html/parser/HTMLDocumentParser.cpp:
2392         (WebCore::HTMLDocumentParser::constructTreeFromCompactHTMLToken):
2393
2394 2013-03-02  Rob Buis  <rbuis@rim.com>
2395
2396         Text overflow ellipsis wrong color when using webkit-text-fill-color
2397         https://bugs.webkit.org/show_bug.cgi?id=54841
2398
2399         Reviewed by David Hyatt.
2400
2401         Take -webkit-text-fill-color into account for ellipsis painting.
2402
2403         Test: fast/css/text-overflow-ellipsis-color.html
2404
2405         * rendering/EllipsisBox.cpp:
2406         (WebCore::EllipsisBox::paint):
2407
2408 2013-03-02  Ryosuke Niwa  <rniwa@webkit.org>
2409
2410         Fix a typo in my previous commit (r144534).
2411
2412         * platform/win/PasteboardWin.cpp:
2413
2414 2013-03-02  Nayan Kumar K  <nayankk@motorola.com>
2415
2416         [WebGL] Support for texImage2D of type HALF_FLOAT_OES with ArrayBufferView.
2417         https://bugs.webkit.org/show_bug.cgi?id=110818
2418
2419         Reviewed by Kenneth Russell.
2420
2421         As per OES_texture_half_float specification texImage2D and texSubImage2D entry
2422         points taking ArrayBufferView should extended to accept null with the pixel type
2423         HALF_FLOAT_OES.
2424
2425         Tests: fast/canvas/webgl/oes-texture-half-float-not-supported.html
2426                fast/canvas/webgl/oes-texture-half-float.html
2427
2428         * CMakeLists.txt:
2429         * DerivedSources.make:
2430         * DerivedSources.pri:
2431         * GNUmakefile.list.am:
2432         * Target.pri:
2433         * WebCore.gypi:
2434         * WebCore.xcodeproj/project.pbxproj:
2435         * bindings/js/JSWebGLRenderingContextCustom.cpp:
2436         (WebCore::toJS):
2437         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
2438         (WebCore::toV8Object):
2439         * html/canvas/OESTextureHalfFloat.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
2440         (WebCore):
2441         (WebCore::OESTextureHalfFloat::OESTextureHalfFloat):
2442         (WebCore::OESTextureHalfFloat::~OESTextureHalfFloat):
2443         (WebCore::OESTextureHalfFloat::getName):
2444         (WebCore::OESTextureHalfFloat::create):
2445         * html/canvas/OESTextureHalfFloat.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
2446         (WebCore):
2447         (OESTextureHalfFloat):
2448         * html/canvas/OESTextureHalfFloat.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
2449         * html/canvas/WebGLExtension.h:
2450         * html/canvas/WebGLRenderingContext.cpp:
2451         (WebCore):
2452         (WebCore::WebGLRenderingContext::getExtension):
2453         (WebCore::WebGLRenderingContext::texImage2D):
2454         (WebCore::WebGLRenderingContext::texSubImage2D):
2455         (WebCore::WebGLRenderingContext::validateTexFuncFormatAndType):
2456         (WebCore::WebGLRenderingContext::validateTexFuncData):
2457         * html/canvas/WebGLRenderingContext.h:
2458         (WebCore):
2459         (WebGLRenderingContext):
2460         * html/canvas/WebGLRenderingContext.idl:
2461         * platform/graphics/Extensions3D.h:
2462         (Extensions3D):
2463         * platform/graphics/GraphicsContext3D.cpp:
2464         (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
2465         * platform/graphics/GraphicsContext3D.h:
2466         * platform/graphics/GraphicsTypes3D.h:
2467         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
2468         (WebCore::GraphicsContext3D::texImage2D):
2469
2470 2013-03-02  Ryosuke Niwa  <rniwa@webkit.org>
2471
2472         Windows build fix attempt after r144530.
2473
2474         * platform/win/PasteboardWin.cpp:
2475
2476 2013-03-01  Dan Bernstein  <mitz@apple.com>
2477
2478         Tried to fix the build after r144530.
2479
2480         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Include the header for the
2481         base class.
2482
2483 2013-03-01  Terry Anderson  <tdanderson@chromium.org>
2484
2485         Remove unused member variable m_useLatchedEventNode from PlatformWheelEvent.h
2486         https://bugs.webkit.org/show_bug.cgi?id=107314
2487
2488         Reviewed by Darin Adler.
2489
2490         EventHandler::handleGestureScrollCore() was removed in http://trac.webkit.org/changeset/140177,
2491         and this was the only place where the member variable |m_useLatchedEventNode| in
2492         PlatformWheelEvent was mutated. This variable is no longer needed and so it should be removed.
2493
2494         No change in behavior, so no new tests needed.
2495
2496         * platform/PlatformWheelEvent.h:
2497         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
2498         (WebCore::PlatformWheelEvent::useLatchedEventNode):
2499         (PlatformWheelEvent):
2500
2501 2013-02-28  Alexey Proskuryakov  <ap@apple.com>
2502
2503         Reduce amount of rebuilding when touching networking headers
2504         https://bugs.webkit.org/show_bug.cgi?id=111035
2505
2506         Reviewed by Eric Seidel.
2507
2508         This uses a number of common unsurprising techniques. One interesting observation
2509         is that including CachedResource related headers is very expensive. We can usually
2510         get away with their Client counterparts, and with CachedResourceHandle.
2511
2512         * page/Frame.cpp:
2513         * page/Frame.h:
2514         Don't include FrameLoader, greatly reducing include graph for most non-loader files.
2515         This required making Frame::init() non-inline - I'm not sure why it ever was.
2516
2517         * loader/FrameLoader.cpp:
2518         * loader/FrameLoader.h:
2519         Even though FrameLoader is logically on loading side of WebCore, it's included in
2520         too many places. Not including PolicyChecker.h and ResourceHandle.h was among the
2521         largest wins. As a future improvement, we should probably convert other members
2522         to OwnPtrs.
2523
2524         * css/CSSCrossfadeValue.h: Initializing CachedResourceHandle with 0 requires a
2525         definition of a class it holds, but default construction does not.
2526
2527         * loader/CrossOriginAccessControl.h: This file among others only needs ResourceHandleTypes.h,
2528         not ResourceHandle.h. This header is semi-recent, so not all include sites were updated.
2529
2530         * loader/cache/CachedFont.h:
2531         * loader/cache/CachedFontClient.h: Added.
2532         * loader/cache/CachedRawResource.h:
2533         * loader/cache/CachedRawResourceClient.h: Added.
2534         * loader/cache/CachedSVGDocument.h:
2535         * loader/cache/CachedSVGDocumentClient.h: Added.
2536         These types were defining client types in the same headers, making it impossible
2537         to avoid including networking headers through CachedResource. Moved clients into
2538         separate files.
2539
2540         * plugins/PluginStream.h:
2541         * plugins/PluginStreamClient.h: Added.
2542         Similar situation here.
2543
2544         * loader/cache/CachedResourceHandle.cpp:
2545         * loader/cache/CachedResourceHandle.h:
2546         Moved functions that need to know about CachedResource to .cpp file. This is another
2547         huge win. Added a destructor, so that CachedResource woudn't be needed in all files
2548         that include CachedResourceHandle.
2549
2550         * loader/cache/CachedSVGDocumentReference.cpp: Added.
2551         * loader/cache/CachedSVGDocumentReference.h:
2552         Moved constructor and virtual function implementations to a .cpp file - they need
2553         not inlining, and this lets us avoid including CachedSVGDocument.h in the header.
2554
2555         * platform/graphics/filters/FilterOperation.cpp:
2556         * platform/graphics/filters/FilterOperation.h:
2557         Avoid including CachedSVGDocumentReference.h. This is not such a big win now that
2558         CachedSVGDocumentReference.h itself is smaller, but FilterOperation is so clearly
2559         rendering code that it seems best to cut any ties with resources and loading.
2560         Added a virtual destrutor in .cpp file, because inline destructors in polymorphic
2561         classes are generally harmful (due to code bloat).
2562
2563         * plugins/PluginRequest.h: Added.
2564         * plugins/PluginView.h:
2565         Moved PluginRequest into a separate file, it was out of place in a view hierarchy
2566         class file.
2567
2568         * rendering/RenderImageResource.cpp:
2569         * rendering/RenderImageResource.h:
2570         Moved definitions of virtual functions to a .cpp file. Thre is no win from having
2571         them inline, and now we don't need CachedImage.h in the header.
2572
2573         * rendering/style/StyleCustomFilterProgram.cpp: Added.
2574         * rendering/style/StyleCustomFilterProgram.h:
2575         Ditto.
2576
2577         * CMakeLists.txt:
2578         * GNUmakefile.list.am:
2579         * Modules/mediastream/RTCPeerConnection.cpp:
2580         * Modules/notifications/Notification.cpp:
2581         * Target.pri:
2582         * WebCore.exp.in:
2583         * WebCore.gypi:
2584         * WebCore.vcproj/WebCore.vcproj:
2585         * WebCore.vcxproj/WebCore.vcxproj:
2586         * WebCore.vcxproj/WebCore.vcxproj.filters:
2587         * WebCore.xcodeproj/project.pbxproj:
2588         * bindings/ScriptControllerBase.cpp:
2589         * bindings/js/JSNodeCustom.cpp:
2590         * bindings/js/ScriptController.cpp:
2591         * bindings/js/ScriptSourceCode.h:
2592         * bindings/objc/DOM.mm:
2593         * bindings/v8/ScriptController.cpp:
2594         * bindings/v8/V8DOMWindowShell.cpp:
2595         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2596         * css/CSSFontFaceSource.h:
2597         * css/CSSFontSelector.cpp:
2598         * css/WebKitCSSSVGDocumentValue.cpp:
2599         * css/WebKitCSSSVGDocumentValue.h:
2600         * dom/Clipboard.cpp:
2601         * dom/ContainerNode.cpp:
2602         * dom/DOMImplementation.cpp:
2603         * dom/PendingScript.h:
2604         * dom/ScriptElement.cpp:
2605         * dom/ScriptElement.h:
2606         * history/CachedFrame.cpp:
2607         * html/DOMURL.cpp:
2608         * html/HTMLAnchorElement.cpp:
2609         * html/HTMLAppletElement.cpp:
2610         * html/HTMLElement.cpp:
2611         * html/HTMLEmbedElement.cpp:
2612         * html/HTMLFrameSetElement.cpp:
2613         * html/HTMLHtmlElement.cpp:
2614         * html/HTMLImageElement.cpp:
2615         * html/HTMLObjectElement.cpp:
2616         * html/HTMLPlugInElement.cpp:
2617         * html/ImageDocument.cpp:
2618         * html/ImageInputType.cpp:
2619         * html/MediaDocument.cpp:
2620         * html/PluginDocument.cpp:
2621         * html/canvas/WebGLRenderingContext.cpp:
2622         * html/parser/HTMLConstructionSite.cpp:
2623         * html/parser/HTMLParserOptions.cpp:
2624         * html/parser/HTMLScriptRunner.h:
2625         * html/parser/XSSAuditor.cpp:
2626         * html/parser/XSSAuditorDelegate.cpp:
2627         * inspector/InspectorDebuggerAgent.cpp:
2628         * inspector/InspectorFileSystemAgent.cpp:
2629         * inspector/InspectorFrontendHost.cpp:
2630         * inspector/InspectorInstrumentation.h:
2631         * inspector/InspectorPageAgent.cpp:
2632         * inspector/NetworkResourcesData.cpp:
2633         * inspector/NetworkResourcesData.h:
2634         * loader/CookieJar.cpp:
2635         * loader/CrossOriginAccessControl.cpp:
2636         * loader/CrossOriginPreflightResultCache.h:
2637         * loader/DocumentThreadableLoader.h:
2638         * loader/ImageLoader.cpp:
2639         * loader/ImageLoader.h:
2640         * loader/LinkLoader.h:
2641         * loader/MainResourceLoader.cpp:
2642         * loader/MainResourceLoader.h:
2643         * loader/MixedContentChecker.cpp:
2644         * loader/PingLoader.cpp:
2645         * loader/PolicyChecker.h:
2646         * loader/ProgressTracker.cpp:
2647         * loader/SubframeLoader.cpp:
2648         * loader/SubresourceLoader.cpp:
2649         * loader/TextTrackLoader.cpp:
2650         * loader/TextTrackLoader.h:
2651         * loader/ThreadableLoader.h:
2652         * loader/appcache/ApplicationCacheGroup.cpp:
2653         * loader/appcache/ApplicationCacheGroup.h:
2654         * loader/appcache/ApplicationCacheHost.cpp:
2655         * loader/archive/cf/LegacyWebArchive.cpp:
2656         * loader/cache/CachedFont.cpp:
2657         * loader/cache/CachedImage.cpp:
2658         * loader/cache/CachedRawResource.cpp:
2659         * loader/cache/CachedResource.cpp:
2660         * loader/cache/CachedStyleSheetClient.h:
2661         * loader/cache/MemoryCache.cpp:
2662         * loader/cache/MemoryCache.h:
2663         * loader/chromium/CachedRawResourceChromium.cpp:
2664         * loader/icon/IconController.cpp:
2665         * loader/icon/IconLoader.h:
2666         * loader/mac/ResourceLoaderMac.mm:
2667         * page/DOMWindowExtension.cpp:
2668         * page/DragController.cpp:
2669         * page/PerformanceNavigation.cpp:
2670         * page/PerformanceTiming.cpp:
2671         * page/PointerLockController.cpp:
2672         * page/Settings.cpp:
2673         * page/animation/CSSPropertyAnimation.cpp:
2674         * platform/chromium/PasteboardChromium.cpp:
2675         * platform/efl/ErrorsEfl.cpp:
2676         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2677         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2678         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2679         * platform/gtk/ErrorsGtk.cpp:
2680         * platform/gtk/PasteboardGtk.cpp:
2681         * platform/gtk/PasteboardHelper.h:
2682         * platform/mac/ClipboardMac.h:
2683         * platform/mac/ClipboardMac.mm:
2684         * platform/mac/HTMLConverter.mm:
2685         * platform/mac/PasteboardMac.mm:
2686         * platform/network/AuthenticationChallengeBase.cpp:
2687         * platform/network/cf/CookieJarCFNet.cpp:
2688         * platform/network/cf/ResourceRequestCFNet.cpp:
2689         * platform/network/mac/CookieStorageMac.mm:
2690         * platform/qt/PasteboardQt.cpp:
2691         * plugins/DOMMimeType.cpp:
2692         * plugins/PluginView.cpp:
2693         * rendering/HitTestResult.cpp:
2694         * rendering/InlineFlowBox.cpp:
2695         * rendering/RenderBox.cpp:
2696         * rendering/RenderEmbeddedObject.cpp:
2697         * rendering/RenderImage.cpp:
2698         * rendering/RenderImageResourceStyleImage.cpp:
2699         * rendering/RenderLayer.cpp:
2700         * rendering/RenderLayerBacking.cpp:
2701         * rendering/RenderLayerFilterInfo.h:
2702         * rendering/RenderListItem.cpp:
2703         * rendering/RenderListMarker.cpp:
2704         * rendering/RenderSnapshottedPlugIn.cpp:
2705         * rendering/RenderTableCol.cpp:
2706         * rendering/RenderTableRow.cpp:
2707         * rendering/RenderTableSection.cpp:
2708         * rendering/style/StyleCachedShader.h:
2709         * svg/SVGFEImageElement.h:
2710         * svg/SVGFontFaceUriElement.h:
2711         * svg/SVGImageLoader.cpp:
2712         * svg/SVGUseElement.cpp:
2713         * svg/SVGUseElement.h:
2714         * svg/graphics/SVGImageCache.cpp:
2715         * testing/MockPagePopupDriver.cpp:
2716         * xml/XSLStyleSheet.h:
2717         * xml/XSLTProcessorLibxslt.cpp:
2718         * xml/parser/XMLDocumentParser.cpp:
2719         * xml/parser/XMLDocumentParser.h:
2720         * xml/parser/XMLDocumentParserLibxml2.cpp:
2721         Many self-evident changes - removing unnecessary header includes, adding smaller
2722         more local ones that are now necessary.
2723
2724 2013-03-01  David Hyatt  <hyatt@apple.com>
2725
2726         [New Multicolumn] Transformed objects inside fragmented transparent objects don't render
2727         https://bugs.webkit.org/show_bug.cgi?id=111221.
2728
2729         Reviewed by Simon Fraser.
2730
2731         Improve transparencyClipBox so that it understands when moving into descendants
2732         that it does in fact have to break up the transformed clip rect across the
2733         fragments.
2734         
2735         Make sure when handling fragmented transforms using multiple paints that
2736         the test that determines the extent of the transform within the fragments
2737         uses transparencyClipBox. This gives us an accurate set of columns that the
2738         final transformed result will paint across.
2739
2740         Tests: fast/multicol/mixed-opacity-fixed-test.html
2741                fast/multicol/mixed-opacity-test.html
2742                fast/multicol/transform-inside-opacity.html
2743
2744         * rendering/RenderLayer.cpp:
2745         (WebCore::transparencyClipBox):
2746         (WebCore::expandClipRectForDescendantsAndReflection):
2747         Break transformed boxes up into fragments when they are
2748         being requested by an ancestor.
2749
2750         (WebCore::RenderLayer::collectFragments):
2751         (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
2752         (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
2753         * rendering/RenderLayer.h:
2754         (RenderLayer):
2755         Modify collectFragments so that we pass in the correct range
2756         within the columns that can possibly cover the fragmented
2757         transformed box.
2758
2759 2013-03-01  Ilya Tikhonovsky  <loislo@chromium.org>
2760
2761         Web Inspector: Native Memory Instrumentation: do not visit raw pointers by default.
2762         https://bugs.webkit.org/show_bug.cgi?id=110943
2763
2764         Reviewed by Yury Semikhatsky.
2765
2766         Unfortunately in many cases raw pointer may point to an object that has been deleted.
2767         There is no working solution to solve this problem in general.
2768         It could be solved only on case by case basis.
2769
2770         * inspector/HeapGraphSerializer.cpp:
2771         (WebCore::HeapGraphSerializer::HeapGraphSerializer):
2772         (WebCore::HeapGraphSerializer::reportLeaf):
2773         * loader/cache/MemoryCache.cpp:
2774         (WebCore::MemoryCache::reportMemoryUsage):
2775         * platform/graphics/BitmapImage.cpp:
2776         (WebCore::FrameData::reportMemoryUsage):
2777         * platform/graphics/skia/MemoryInstrumentationSkia.cpp:
2778         (reportMemoryUsage):
2779
2780 2013-03-01  Kentaro Hara  <haraken@chromium.org>
2781
2782         Style recalculation takes too long when adding whitespace text nodes
2783         https://bugs.webkit.org/show_bug.cgi?id=110786
2784
2785         Reviewed by Darin Adler.
2786
2787         // This takes 216 msec.
2788         for (var i = 0; i < 1500; ++i) {
2789           document.body.appendChild(document.createTextNode('x'));
2790           document.body.appendChild(document.createElement('div'));
2791           document.body.appendChild(document.createTextNode('x'));
2792         }
2793
2794         // But this takes 25.3 seconds.
2795         for (var i = 0; i < 1500; ++i) {
2796           document.body.appendChild(document.createTextNode(' '));
2797           document.body.appendChild(document.createElement('div'));
2798           document.body.appendChild(document.createTextNode(' '));
2799         }
2800
2801         The reason is that we do not create renderers for empty text
2802         nodes and thus we are hitting the worst O(N^2) case in Node::attach().
2803         (See FIXME in Node::attach().)
2804
2805         This patch adds a logic to bail out the loop to avoid the O(N^2) case.
2806         Specifically, the patch bails out the loop if we encounter a text node
2807         for which we again decided not to create a renderer. This bail out is
2808         reasonable because the fact that we again decided not to create a renderer
2809         for the text node indicates that there will be no affect of the result
2810         of Text::textRendererIsNeeded() of the rest of the sibling nodes.
2811
2812         Performance test: https://bugs.webkit.org/attachment.cgi?id=190545
2813         Performance result in Chromium/Linux: 25.3 sec => 48 msec !
2814
2815         Test: perf/append-text-nodes-without-renderers.html (for performance)
2816               fast/dynamic/create-renderer-for-whitespace-only-text.html (for correctness)
2817
2818         The loop was introduced in r29054. We have to make sure that
2819         all layout tests that were updated in r29054 pass with this patch.
2820         See http://trac.webkit.org/changeset/29054.
2821
2822         * dom/Node.cpp:
2823         (WebCore::Node::attach):
2824
2825 2013-03-01  Jason Anderssen  <janderssen@gmail.com>
2826
2827         Moved markerTextForListItem from TestRunner to Internals
2828         https://bugs.webkit.org/show_bug.cgi?id=110939
2829
2830         Reviewed by Benjamin Poulain.
2831
2832         TestRunner framework is an old way of testing webkit, it would be
2833         better to incorporate the testing frame directly into the WebCore itself
2834         as to make it more compatible with WK2.
2835
2836         * testing/Internals.cpp:
2837         (WebCore::Internals::markerTextForListItem):
2838         (WebCore):
2839         * testing/Internals.h:
2840         * testing/Internals.idl:
2841
2842 2013-03-01  Elliott Sprehn  <esprehn@gmail.com>
2843
2844         Don't leak Documents when using MutationObserver from extensions
2845         https://bugs.webkit.org/show_bug.cgi?id=111234
2846
2847         Reviewed by Adam Barth.
2848
2849         MutationObserverCallback holds a WorldContextHandle which secretly isn't
2850         a handle to anything when it's for the main world. When it's for a non-main
2851         world though, like those used in extensions, it becomes a strong reference
2852         to the v8::Context which results in leaks by creating cycles:
2853
2854         MutationObserver -> Callback -> World -> Document -> Node -> MutationObserver.
2855
2856         Instead we should keep a RefPtr to a DOMWrapperWorld in the callback and then
2857         get the v8::Context from that inside handleEvent.
2858
2859         Tests: ManualTests/leak-observer-nonmain-world.html
2860
2861         * bindings/v8/V8Binding.cpp:
2862         (WebCore::toV8Context): Added overload that takes a DOMWrapperWorld.
2863         * bindings/v8/V8Binding.h:
2864         * bindings/v8/V8MutationCallback.cpp:
2865         (WebCore::V8MutationCallback::V8MutationCallback):
2866         (WebCore::V8MutationCallback::handleEvent):
2867         * bindings/v8/V8MutationCallback.h:
2868         (V8MutationCallback):
2869
2870 2013-03-01  Bear Travis  <betravis@adobe.com>
2871
2872         [css exclusions] Move ExclusionShapeInsideInfo into RenderBlockRareData
2873         https://bugs.webkit.org/show_bug.cgi?id=110995
2874
2875         Reviewed by Julien Chaffraix.
2876
2877         This patch moves ExclusionShapeInsideInfo into the RenderBlockRareData struct,
2878         which enables us to move away from the global ExclusionShapeInsideInfo map.
2879         Some additional refactoring was done to remove ExclusionShapeInsideInfo's
2880         dependency on InlineIterator, which depended on RenderBlock. This work required
2881         adding a new LineSegmentIterator struct.
2882
2883         Refactoring, no new tests.
2884
2885         * rendering/ExclusionShapeInsideInfo.cpp:
2886         (WebCore):
2887         (WebCore::LineSegmentRange::LineSegmentRange): Moving the InlineIterator
2888         constructor to the .cpp file, as InlineIterator is now forward declared in
2889         the .h file.
2890         (WebCore::ExclusionShapeInsideInfo::isEnabledFor): Moving isEnabledFor to
2891         the .cpp file, as RenderBlock is now forward declared in the .h file.
2892         * rendering/ExclusionShapeInsideInfo.h:
2893         (WebCore):
2894         (LineSegmentIterator): A simple struct for containing segment positions for
2895         layout.
2896         (WebCore::LineSegmentIterator::LineSegmentIterator): Constructor.
2897         (LineSegmentRange): Transitioning to store LineSegmentIterator.
2898         (WebCore::LineSegmentRange::LineSegmentRange): Ditto.
2899         (ExclusionShapeInsideInfo):
2900         * rendering/RenderBlock.cpp:
2901         (WebCore::RenderBlock::willBeDestroyed): Destroying a block will now destroy
2902         its ExclusionShapeInsideInfo, so there is no need to remove it from the map.
2903         (WebCore):
2904         (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange): Use
2905         the RenderBlockRareData struct rather than the global map.
2906         * rendering/RenderBlock.h:
2907         (WebCore):
2908         (WebCore::RenderBlock::ensureExclusionShapeInsideInfo): Ensure an info struct
2909         is present if the shape-inside style is set.
2910         (WebCore::RenderBlock::exclusionShapeInsideInfo): Look up the info struct for
2911         the current block.
2912         (WebCore::RenderBlock::setExclusionShapeInsideInfo): Update the info struct
2913         for the current block.
2914         (RenderBlockRareData): Add the ExclusionShapeInsideInfo member.
2915         * rendering/RenderBlockLineLayout.cpp:
2916         (WebCore::constructBidiRunsForLine): Construct the appropriate offsets during
2917         layout based on the stored LineSegmentIterators.
2918
2919 2013-03-01  Terry Anderson  <tdanderson@chromium.org>
2920
2921         EventHandler::handleGestureScrollUpdate() should invoke the user-generated scroll routines 
2922         so its behavior matches other user-initiated scrolls
2923         https://bugs.webkit.org/show_bug.cgi?id=109769
2924
2925         Reviewed by James Robinson.
2926
2927         To ensure that the scrolling behavior of GestureScrollUpdate events are consistent with
2928         the scrolling behavior of mousewheel events, use the existing user-generated scroll logic
2929         instead of calling into RenderLayer::scrollByRecursively(). This patch fixes the bug
2930         reported in https://bugs.webkit.org/show_bug.cgi?id=109316, where the example page can
2931         be scrolled using touch but cannot be scrolled using mousewheels.
2932
2933         Note that this patch does not use any of the mousewheel event-handling code.
2934
2935         Tests: fast/events/touch/gesture/touch-gesture-noscroll-body-propagated.html
2936                fast/events/touch/gesture/touch-gesture-noscroll-body-xhidden.html
2937                fast/events/touch/gesture/touch-gesture-noscroll-body-yhidden.html
2938                fast/events/touch/gesture/touch-gesture-noscroll-body.html
2939
2940         * page/EventHandler.cpp:
2941         (WebCore::EventHandler::clear):
2942         (WebCore::EventHandler::handleGestureEvent):
2943         (WebCore::EventHandler::handleGestureScrollBegin):
2944         (WebCore::EventHandler::handleGestureScrollUpdate):
2945         (WebCore::EventHandler::sendScrollEventToView):
2946             By calling this function at the start of handleGestureScrollUpdate() in the case
2947             where |m_scrollGestureHandlingNode| is null, we ensure that the scroll updates
2948             can still scroll the page itself, if possible.
2949         (WebCore):
2950         (WebCore::EventHandler::clearGestureScrollNodes):
2951         * page/EventHandler.h:
2952         (EventHandler):
2953         * platform/PlatformWheelEvent.h:
2954         (WebCore::PlatformWheelEvent::setHasPreciseScrollingDeltas):
2955
2956 2013-03-01  Alec Flett  <alecflett@chromium.org>
2957
2958         IndexedDB: Avoid ScriptValue copies in IDBAny
2959         https://bugs.webkit.org/show_bug.cgi?id=111002
2960
2961         Reviewed by Adam Barth.
2962
2963         This avoids some v8 handle thrashing in the long term,
2964         and protects us against some crashes in the short term.
2965
2966         The crashes will be fixed in 
2967         https://bugs.webkit.org/show_bug.cgi?id=110206.
2968
2969         * Modules/indexeddb/IDBAny.cpp:
2970         (WebCore::IDBAny::createNull):
2971         (WebCore::IDBAny::createString):
2972         (WebCore::IDBAny::IDBAny):
2973         (WebCore::IDBAny::scriptValue):
2974         * Modules/indexeddb/IDBAny.h:
2975         (WebCore::IDBAny::create):
2976         (IDBAny):
2977         (WebCore::IDBAny::keyPath):
2978         * bindings/v8/custom/V8IDBAnyCustom.cpp:
2979         (WebCore::toV8):
2980         (WebCore):
2981
2982 2013-03-01  Victor Carbune  <vcarbune@chromium.org>
2983
2984         Support padding, margin and border for internal UA cue styling
2985         https://bugs.webkit.org/show_bug.cgi?id=110703
2986
2987         Reviewed by Eric Carlson.
2988
2989         For some particular user agent styling this allows the possibility
2990         of making the window around the cue text bigger to match some user
2991         styles (see CaptionUserPreferencesMac::captionsStyleSheetOverride).
2992
2993         These properties *cannot* be set through by using the ::cue
2994         pseudo-element and, as specified, are used only internally.
2995
2996         Note: This patch is identical to the previously commited one,
2997         as it was rolled back without related tests failing.
2998
2999         Test: media/track/track-cue-rendering-with-padding.html
3000
3001         * css/mediaControls.css:
3002         (video::-webkit-media-text-track-display): Set the CSS box model
3003         to include in the specified width or height the values of
3004         padding / margin / border by using -webkit-box-sizing and avoid
3005         overflow over 100% width because of having these properties set.
3006         * rendering/RenderTextTrackCue.cpp:
3007         (WebCore::RenderTextTrackCue::isOutside): To not interfere with
3008         the regular WebVTT positioning algorithm, the check is done for
3009         the absolute content box.
3010         (WebCore::RenderTextTrackCue::repositionCueSnapToLinesSet): Added
3011         an extra adjustment step to accomodate vertical padding (and not
3012         overflow the cue container)
3013
3014 2013-03-01  Andy Estes  <aestes@apple.com>
3015
3016         REGRESSION (r125809): CFStrings created via StringImpl::createCFString()  might reference freed memory when Objective-C garbage collection is enabled
3017         https://bugs.webkit.org/show_bug.cgi?id=111219
3018
3019         Reviewed by Benjamin Poulain.
3020
3021         StringImpl::createCFString() uses CFStringCreateWithBytesNoCopy() in
3022         order to create CFString without making an unnecessary copy. In order
3023         to ensure that the the StringImpl's backing buffer isn't deallocated
3024         while the CFString is still alive, we use a custom CFAllocator to
3025         ref/deref the StringImpl at the appropriate times.
3026
3027         However, custom allocators aren't supported when Objective-C garbage
3028         collection is enabled, so in this case we use the default CF allocator.
3029         Since we can't guarantee the lifetime of the StringImpl in this case,
3030         we should just fall back to copying the string, as we did prior to r125809.
3031
3032         * platform/text/cf/StringImplCF.cpp:
3033         (garbageCollectionEnabled): Moved the check for whether garbage
3034         collection is enabled from StringWrapperCFAllocator::create() to here.
3035         (WTF::StringWrapperCFAllocator::create): Call garbageCollectionEnabled().
3036         (WTF::StringImpl::createCFString): If garbage collection is enabled,
3037         call the variants of CFStringCreate that copy the string.
3038
3039 2013-03-01  Roger Fong  <roger_fong@apple.com>
3040
3041         Unreviewed AppleWin build fix.
3042
3043         * platform/network/cf/ResourceHandleCFNet.cpp:
3044         (WebCore::ResourceHandle::createCFURLConnection):
3045
3046 2013-03-01  Martin Robinson  <mrobinson@igalia.com>
3047
3048         [GTK] Allow sharing the WebCore include list with the Chromium build
3049         https://bugs.webkit.org/show_bug.cgi?id=110241
3050
3051         Reviewed by Dirk Pranke.
3052
3053         * WebCore.gyp/WebCoreGTK.gyp: Added. A skeleton gyp file for WebCoreGTK+.
3054         * WebCore.gypi: Added shared include directories.
3055
3056 2013-03-01  Alexey Proskuryakov  <ap@apple.com>
3057
3058         Make in-memory blobs work in NetworkProcess
3059         https://bugs.webkit.org/show_bug.cgi?id=111132
3060
3061         Reviewed by Sam Weinig.
3062
3063         * WebCore.exp.in:
3064         * WebCore.xcodeproj/project.pbxproj:
3065         Exported functions now needed by WebKit2, and made some headers Private instead
3066         of Project.
3067
3068 2013-03-01  Eric Seidel  <eric@webkit.org>
3069
3070         Threaded HTML Parser has an extra copy of every byte from the network
3071         https://bugs.webkit.org/show_bug.cgi?id=111135
3072
3073         Reviewed by Adam Barth.
3074
3075         Every LayoutTest executes this code in threaded parsing mode.
3076
3077         * dom/DecodedDataDocumentParser.cpp:
3078         (WebCore::DecodedDataDocumentParser::appendBytes):
3079          - Pass ownership of the decoded string to the parser.
3080         (WebCore::DecodedDataDocumentParser::flush):
3081          - Same.
3082         * dom/DecodedDataDocumentParser.h:
3083         (DecodedDataDocumentParser):
3084         * dom/Document.cpp:
3085         (WebCore::Document::setContent):
3086         * dom/DocumentParser.h:
3087         (DocumentParser):
3088         * dom/RawDataDocumentParser.h:
3089         (WebCore::RawDataDocumentParser::append):
3090         * html/FTPDirectoryDocument.cpp:
3091         (FTPDirectoryDocumentParser):
3092         (WebCore::FTPDirectoryDocumentParser::append):
3093         * html/parser/HTMLDocumentParser.cpp:
3094         (WebCore::HTMLDocumentParser::append):
3095         * html/parser/HTMLDocumentParser.h:
3096         (HTMLDocumentParser):
3097         * html/parser/HTMLViewSourceParser.cpp:
3098         (WebCore::HTMLViewSourceParser::append):
3099         * html/parser/HTMLViewSourceParser.h:
3100         (HTMLViewSourceParser):
3101         * html/parser/TextDocumentParser.cpp:
3102         (WebCore::TextDocumentParser::append):
3103         * html/parser/TextDocumentParser.h:
3104         (TextDocumentParser):
3105         * loader/DocumentWriter.cpp:
3106         (WebCore::DocumentWriter::replaceDocument):
3107         * xml/parser/XMLDocumentParser.cpp:
3108         (WebCore::XMLDocumentParser::append):
3109         * xml/parser/XMLDocumentParser.h:
3110         (XMLDocumentParser):
3111         * xml/parser/XMLDocumentParserLibxml2.cpp:
3112         (WebCore::XMLDocumentParser::resumeParsing):
3113
3114 2013-03-01  David Hyatt  <hyatt@apple.com>
3115
3116         [New Multicolumn] Change inRenderFlowThread to follow containing block chain
3117         https://bugs.webkit.org/show_bug.cgi?id=111206
3118
3119         Reviewed by Simon Fraser.
3120
3121         This patch removes inRenderFlowThread and changes enclosingRenderFlowThread()
3122         to flowThreadContainingBlock(). flowThreadContainingBlock() now follows
3123         the containing block chain instead of the parent chain when outside of layout.
3124         (It already did the right thing when called during layout.)
3125         
3126         By removing inRenderFlowThread (which was following the parent chain), all
3127         code that is checking for flow thread containment now correctly uses the
3128         containing block chain. This allows for content to escape in-flow flow threads
3129         and do the right thing without asserting.
3130         
3131         Test: fast/multicol/positioned-outside-of-columns.html
3132
3133         * dom/WebKitNamedFlow.cpp:
3134         (WebCore::inFlowThread):
3135         (WebCore::WebKitNamedFlow::getRegionsByContent):
3136         * rendering/RenderBlock.cpp:
3137         (WebCore::RenderBlock::removeLeftoverAnonymousBlock):
3138         (WebCore::RenderBlock::collapseAnonymousBoxChild):
3139         (WebCore::RenderBlock::updateRegionsAndExclusionsLogicalSize):
3140         (WebCore::RenderBlock::computeRegionRangeForBlock):
3141         (WebCore::RenderBlock::layoutBlock):
3142         (WebCore::RenderBlock::computeOverflow):
3143         (WebCore::RenderBlock::determineLogicalLeftPositionForChild):
3144         (WebCore::RenderBlock::computeLogicalLocationForFloat):
3145         (WebCore::RenderBlock::logicalLeftOffsetForContent):
3146         (WebCore::RenderBlock::logicalRightOffsetForContent):
3147         (WebCore::RenderBlock::hasNextPage):
3148         (WebCore::RenderBlock::applyBeforeBreak):
3149         (WebCore::RenderBlock::applyAfterBreak):
3150         (WebCore::RenderBlock::pageLogicalTopForOffset):
3151         (WebCore::RenderBlock::pageLogicalHeightForOffset):
3152         (WebCore::RenderBlock::pageRemainingLogicalHeightForOffset):
3153         (WebCore::RenderBlock::adjustForUnsplittableChild):
3154         (WebCore::RenderBlock::adjustLinePositionForPagination):
3155         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
3156         (WebCore::RenderBlock::offsetFromLogicalTopOfFirstPage):
3157         (WebCore::RenderBlock::regionAtBlockOffset):
3158         (WebCore::RenderBlock::setStaticInlinePositionForChild):
3159         (WebCore::RenderBlock::logicalWidthChangedInRegions):
3160         (WebCore::RenderBlock::clampToStartAndEndRegions):
3161         * rendering/RenderBlock.h:
3162         (RenderBlock):
3163         * rendering/RenderBlockLineLayout.cpp:
3164         (WebCore::layoutExclusionShapeInsideInfo):
3165         (WebCore::LineLayoutState::LineLayoutState):
3166         (WebCore::LineLayoutState::flowThread):
3167         (WebCore::LineLayoutState::setFlowThread):
3168         (LineLayoutState):
3169         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
3170         (WebCore::RenderBlock::linkToEndLineIfNeeded):
3171         (WebCore::RenderBlock::layoutInlineChildren):
3172         (WebCore::RenderBlock::determineStartPosition):
3173         (WebCore::RenderBlock::checkPaginationAndFloatsAtEndLine):
3174         * rendering/RenderBox.cpp:
3175         (WebCore::RenderBox::clearRenderBoxRegionInfo):
3176         (WebCore::RenderBox::renderBoxRegionInfo):
3177         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
3178         (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
3179         (WebCore::RenderBox::computePositionedLogicalWidth):
3180         (WebCore::RenderBox::computePositionedLogicalHeight):
3181         * rendering/RenderDeprecatedFlexibleBox.cpp:
3182         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
3183         * rendering/RenderFlexibleBox.cpp:
3184         (WebCore::RenderFlexibleBox::layoutBlock):
3185         * rendering/RenderFlowThread.cpp:
3186         (WebCore::RenderFlowThread::objectInFlowRegion):
3187         * rendering/RenderGrid.cpp:
3188         (WebCore::RenderGrid::layoutBlock):
3189         * rendering/RenderInline.cpp:
3190         (WebCore::RenderInline::updateAlwaysCreateLineBoxes):
3191         * rendering/RenderLayer.cpp:
3192         (WebCore::accumulateOffsetTowardsAncestor):
3193         * rendering/RenderLayerCompositor.cpp:
3194         (WebCore::RenderLayerCompositor::canBeComposited):
3195         * rendering/RenderMedia.cpp:
3196         (WebCore::RenderMedia::layout):
3197         * rendering/RenderObject.cpp:
3198         (WebCore::RenderObject::locateFlowThreadContainingBlock):
3199         (WebCore::RenderObject::containerForRepaint):
3200         (WebCore::RenderObject::willBeRemovedFromTree):
3201         (WebCore::RenderObject::removeFromRenderFlowThread):
3202         (WebCore::RenderObject::removeFromRenderFlowThreadRecursive):
3203         * rendering/RenderObject.h:
3204         (RenderObject):
3205         (WebCore::RenderObject::flowThreadContainingBlock):
3206         * rendering/RenderRegion.cpp:
3207         (WebCore::RenderRegion::setObjectStyleInRegion):
3208         * rendering/RenderView.cpp:
3209         (WebCore::RenderView::addChild):
3210         (WebCore::RenderView::initializeLayoutState):
3211         (WebCore::RenderView::setSelection):
3212         * rendering/RenderView.h:
3213         (WebCore::RenderView::pushLayoutState):
3214         * rendering/RootInlineBox.cpp:
3215         (WebCore::RootInlineBox::containingRegion):
3216         (WebCore::RootInlineBox::setContainingRegion):
3217
3218 2013-02-28  Sam Weinig  <sam@webkit.org>
3219
3220         Add SPI for marking a WebView as doing things on behalf of another process
3221         https://bugs.webkit.org/show_bug.cgi?id=111125
3222
3223         Reviewed by Alexey Proskuryakov.
3224
3225         * platform/network/NetworkingContext.h:
3226         (NetworkingContext):
3227         * platform/network/cf/ResourceHandleCFNet.cpp:
3228         (WebCore::ResourceHandle::createCFURLConnection):
3229         * platform/network/mac/ResourceHandleMac.mm:
3230         (WebCore::ResourceHandle::createNSURLConnection):
3231         Set the sourceApplicationAuditData on the URL connection if available.
3232
3233 2013-03-01  Brent Fulgham  <bfulgham@webkit.org>
3234
3235         [Windows] Unreviewed VS2010 build fix.
3236
3237         * WebCore.vcxproj/WebCore.vcxproj: Add missing TimelineTraceEventProcessor
3238           files to the project.
3239         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
3240
3241 2013-03-01  Bear Travis  <betravis@adobe.com>
3242
3243         [css exclusions] setting shape-inside on a parent does not relayout child blocks' inline content
3244         https://bugs.webkit.org/show_bug.cgi?id=108128
3245
3246         Reviewed by David Hyatt.
3247
3248         Ensure that blocks lay out when their parent's shape-inside changes.
3249         ExclusionShapeInsideInfo now stores an additional flag indicating whether
3250         the shape has changed and its block's children require layout. Each block
3251         can look up the flag via LayoutState to determine whether it needs to lay
3252         out its children.
3253
3254         Test: fast/exclusions/shape-inside/shape-inside-dynamic-nested.html
3255
3256         * rendering/ExclusionShapeInfo.h:
3257         (WebCore::ExclusionShapeInfo::shapeSizeDirty): Add a method to determine
3258         if the shape has changed.
3259         (ExclusionShapeInfo):
3260         * rendering/ExclusionShapeInsideInfo.h:
3261         (WebCore::ExclusionShapeInsideInfo::setNeedsLayout): Set the flag indicating
3262         layout is necessary.
3263         (WebCore::ExclusionShapeInsideInfo::needsLayout): Retrieve the layout flag.
3264         (ExclusionShapeInsideInfo):
3265         (WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo): Initialize
3266         the layout flag.
3267         * rendering/RenderBlock.cpp:
3268         (WebCore::exclusionInfoRequiresRelayout): Return true if the shape info should
3269         cause a relayout. Also update the needsLayout flag on the ExclusionShapeInsideInfo.
3270         (WebCore):
3271         (WebCore::RenderBlock::updateRegionsAndExclusionsLogicalSize): Return a boolean
3272         indicating whether regions or exclusions updates should cause a relayout.
3273         (WebCore::RenderBlock::layoutBlock): Relayout children if the shape inside has
3274         changed.
3275         * rendering/RenderBlock.h:
3276         (RenderBlock):
3277         * rendering/RenderBlockLineLayout.cpp:
3278         (WebCore::RenderBlock::layoutExclusionShapeInsideInfo): Changing to be a
3279         class method.
3280         (WebCore::LineWidth::LineWidth): Changing to use class method.
3281         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Ditto.
3282         (WebCore::constructBidiRunsForLine): Ditto.
3283         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Ditto.
3284         (WebCore::RenderBlock::LineBreaker::nextLineBreak): Ditto.
3285
3286 2013-03-01  Uday Kiran  <udaykiran@motorola.com>
3287
3288         getComputedStyle not implemented for -webkit-column-rule shorthand
3289         https://bugs.webkit.org/show_bug.cgi?id=111203
3290
3291         Reviewed by Alexis Menard.
3292
3293         Implement getComputedStyle for -webkit-column-rule property.
3294
3295         Test: fast/css/getComputedStyle/getComputedStyle-column-rule.html
3296
3297         * css/CSSComputedStyleDeclaration.cpp:
3298         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3299
3300 2013-02-28  David Hyatt  <hyatt@apple.com>
3301
3302         REGRESSION(r144318) 1-7% perf. regression on SVG/SvgHitTesting
3303         https://bugs.webkit.org/show_bug.cgi?id=111117
3304
3305         Make sure the allocated vector has a capacity of 1, since that is
3306         far and away the most common case.
3307
3308         Reviewed by Andreas Kling.
3309
3310         * rendering/RenderFlowThread.h:
3311         (WebCore):
3312         * rendering/RenderLayer.h:
3313         (WebCore):
3314         * rendering/RenderMultiColumnSet.cpp:
3315         (WebCore::RenderMultiColumnSet::collectLayerFragments):
3316         * rendering/RenderMultiColumnSet.h:
3317         * rendering/RenderRegion.h:
3318         (WebCore):
3319         (WebCore::RenderRegion::collectLayerFragments):
3320
3321 2013-03-01  Enrica Casucci  <enrica@apple.com>
3322
3323         Crash at WebCore::SharedBuffer::hasPlatformData writing an image to the pasteboard.
3324         https://bugs.webkit.org/show_bug.cgi?id=111211.
3325         <rdar://problem/8772758>
3326
3327         Reviewed by Ryosuke Niwa.
3328
3329         This is a speculative fix since we don't have a solid repro case.
3330         Adding null check every time we build a SharedBuffer from an NSData
3331         we have obtained manipulating data from the pasteboard.
3332
3333         * platform/mac/PasteboardMac.mm:
3334         (WebCore::writeFileWrapperAsRTFDAttachment):
3335         (WebCore::Pasteboard::writeImage):
3336
3337 2013-03-01  Enrica Casucci  <enrica@apple.com>
3338
3339         Crash at WebCore::SharedBuffer::hasPlatformData during paste.
3340         https://bugs.webkit.org/show_bug.cgi?id=111207.
3341         <rdar://problem/13024528>
3342
3343         Reviewed by Ryosuke Niwa.
3344
3345         This is a speculative fix since we don't have a solid repro case.
3346         Adding null check every time we get a SharedBuffer from the pasteboard.
3347
3348         * platform/mac/PasteboardMac.mm:
3349         (WebCore::Pasteboard::plainText):
3350         (WebCore::documentFragmentWithRTF):
3351
3352 2013-03-01  Alexey Proskuryakov  <ap@apple.com>
3353
3354         Build fix for builds with BLOB disabled. This fixes it for me on Mac at least.
3355
3356         * platform/network/BlobRegistryImpl.cpp:
3357
3358 2013-03-01  peavo@outlook.com  <peavo@outlook.com>
3359
3360         [Curl] Session cookies should not be persistent.
3361         https://bugs.webkit.org/show_bug.cgi?id=111060
3362
3363         Reviewed by Brent Fulgham.
3364
3365         Curl saves both persistent cookies, and session cookies to the cookie file.
3366         The session cookies should be deleted before starting a new session.
3367
3368         * platform/network/curl/ResourceHandleManager.cpp:
3369         (WebCore::ResourceHandleManager::ResourceHandleManager): Call method to initialize cookie session.
3370         (WebCore::ResourceHandleManager::initCookieSession): Added method to initialize cookie session.
3371         * platform/network/curl/ResourceHandleManager.h: Added method to initialize cookie session.
3372
3373 2013-03-01  Vsevolod Vlasov  <vsevik@chromium.org>
3374
3375         Web Inspector: Navigator should show tree element for each folder in the source path.
3376         https://bugs.webkit.org/show_bug.cgi?id=108943
3377
3378         Reviewed by Pavel Feldman.
3379
3380         NavigatorView now renders tree element for each folder in uiSourceCode uri.
3381         Merging several folders into one tree elememnt when folder has only one folder as a child is supported.
3382         ScriptsNavigator has horizontal scroll now.
3383         Projects are shown in ScriptsNavigator by their displayName. This allows us to show several root file system folders
3384         with the same name in the navigator (e.g. 'Source/WebCore/inspector' and 'LayoutTests/inspector').
3385
3386         Test: inspector/debugger/navigator-view.html: Renamed from scripts-file-selector.html
3387
3388         * English.lproj/localizedStrings.js:
3389         * inspector/front-end/NavigatorView.js:
3390         (WebInspector.NavigatorView):
3391         (WebInspector.NavigatorView.iconClassForType):
3392         (WebInspector.NavigatorView.prototype.addUISourceCode):
3393         (WebInspector.NavigatorView.prototype._getProjectNode):
3394         (WebInspector.NavigatorView.prototype._createProjectNode):
3395         (WebInspector.NavigatorView.prototype._getOrCreateProjectNode):
3396         (WebInspector.NavigatorView.prototype._getFolderNode):
3397         (WebInspector.NavigatorView.prototype._createFolderNode):
3398         (WebInspector.NavigatorView.prototype._getOrCreateFolderNode):
3399         (WebInspector.NavigatorView.prototype._getUISourceCodeParentNode):
3400         (WebInspector.NavigatorView.prototype._getOrCreateUISourceCodeParentNode):
3401         (WebInspector.NavigatorView.prototype.revealUISourceCode):
3402         (WebInspector.NavigatorView.prototype.removeUISourceCode):
3403         (WebInspector.NavigatorView.prototype.rename):
3404         (WebInspector.NavigatorView.prototype.reset):
3405         (.typeWeight):
3406         (WebInspector.NavigatorTreeOutline._treeElementsCompare):
3407         (WebInspector.BaseNavigatorTreeElement):
3408         (WebInspector.BaseNavigatorTreeElement.prototype.type):
3409         (WebInspector.NavigatorFolderTreeElement):
3410         (WebInspector.NavigatorFolderTreeElement.prototype.onpopulate):
3411         (WebInspector.NavigatorFolderTreeElement.prototype.onattach):
3412         (WebInspector.NavigatorSourceTreeElement):
3413         (WebInspector.NavigatorTreeNode):
3414         (WebInspector.NavigatorTreeNode.prototype.treeElement):
3415         (WebInspector.NavigatorTreeNode.prototype.dispose):
3416         (WebInspector.NavigatorTreeNode.prototype.isRoot):
3417         (WebInspector.NavigatorTreeNode.prototype.hasChildren):
3418         (WebInspector.NavigatorTreeNode.prototype.populate):
3419         (WebInspector.NavigatorTreeNode.prototype.wasPopulated):
3420         (WebInspector.NavigatorTreeNode.prototype.didAddChild):
3421         (WebInspector.NavigatorTreeNode.prototype.willRemoveChild):
3422         (WebInspector.NavigatorTreeNode.prototype.isPopulated):
3423         (WebInspector.NavigatorTreeNode.prototype.isEmpty):
3424         (WebInspector.NavigatorTreeNode.prototype.child):
3425         (WebInspector.NavigatorTreeNode.prototype.children):
3426         (WebInspector.NavigatorTreeNode.prototype.appendChild):
3427         (WebInspector.NavigatorTreeNode.prototype.removeChild):
3428         (WebInspector.NavigatorTreeNode.prototype.reset):
3429         (WebInspector.NavigatorRootTreeNode):
3430         (WebInspector.NavigatorRootTreeNode.prototype.isRoot):
3431         (WebInspector.NavigatorRootTreeNode.prototype.treeElement):
3432         (WebInspector.NavigatorRootTreeNode.prototype.wasPopulated):
3433         (WebInspector.NavigatorRootTreeNode.prototype.didAddChild):
3434         (WebInspector.NavigatorRootTreeNode.prototype.willRemoveChild):
3435         (WebInspector.NavigatorUISourceCodeTreeNode):
3436         (WebInspector.NavigatorUISourceCodeTreeNode.prototype.treeElement):
3437         (WebInspector.NavigatorUISourceCodeTreeNode.prototype.updateTitle):
3438         (WebInspector.NavigatorUISourceCodeTreeNode.prototype.hasChildren):
3439         (WebInspector.NavigatorUISourceCodeTreeNode.prototype.dispose):
3440         (WebInspector.NavigatorUISourceCodeTreeNode.prototype._titleChanged):
3441         (WebInspector.NavigatorUISourceCodeTreeNode.prototype._workingCopyChanged):
3442         (WebInspector.NavigatorUISourceCodeTreeNode.prototype._workingCopyCommitted):
3443         (WebInspector.NavigatorUISourceCodeTreeNode.prototype._formattedChanged):
3444         (WebInspector.NavigatorUISourceCodeTreeNode.prototype.reveal):
3445         (WebInspector.NavigatorUISourceCodeTreeNode.prototype.rename.commitHandler):
3446         (WebInspector.NavigatorUISourceCodeTreeNode.prototype.rename.cancelHandler):
3447         (WebInspector.NavigatorUISourceCodeTreeNode.prototype.rename.afterEditing):
3448         (WebInspector.NavigatorUISourceCodeTreeNode.prototype.rename):
3449         (WebInspector.NavigatorFolderTreeNode):
3450         (WebInspector.NavigatorFolderTreeNode.prototype.treeElement):
3451         (WebInspector.NavigatorFolderTreeNode.prototype._createTreeElement):
3452         (WebInspector.NavigatorFolderTreeNode.prototype.wasPopulated):
3453         (WebInspector.NavigatorFolderTreeNode.prototype._addChildrenRecursive):
3454         (WebInspector.NavigatorFolderTreeNode.prototype._shouldMerge):
3455         (WebInspector.NavigatorFolderTreeNode.prototype.didAddChild):
3456 &n