[GTK] [gyp] Add support for building the platform directory
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-03-25  Martin Robinson  <mrobinson@igalia.com>
2
3         [GTK] [gyp] Add support for building the platform directory
4         https://bugs.webkit.org/show_bug.cgi?id=113212
5
6         Reviewed by Nico Weber.
7
8         * WebCore.gyp/WebCoreGTK.gyp: Add support for building the platform directory including
9         two libraries, one for platform and one for geometry files. This follows the approach
10         of Chromium.
11
12 2013-03-25  Jochen Eisinger  <jochen@chromium.org>
13
14         Swap both the error and change event queue before processing fullscreen events
15         https://bugs.webkit.org/show_bug.cgi?id=113194
16
17         Reviewed by Jer Noble.
18
19         While processing the change events, not only new change events but
20         also new error events might get generated. However, for the timer, we
21         should only process preexisting events.
22
23         This is covered by fullscreen/full-screen-restrictions.html which times
24         out depending on the delay between requesting fullscreen and granting
25         fullscreen.
26
27         * dom/Document.cpp:
28         (WebCore::Document::fullScreenChangeDelayTimerFired):
29
30 2013-03-25  Marja Hölttä  <marja@chromium.org>
31
32         [V8] Generate specialized callbacks for the main world
33         https://bugs.webkit.org/show_bug.cgi?id=112430
34
35         Reviewed by Kentaro Hara.
36
37         The new specialized bindings will be faster, because they don't need to
38         do the "main world, isolated world or a worker" check, but can right
39         away assume that we're in the main world.
40
41         This patch generates main world bindings for getters and setters for a
42         small amount of frequently used functions / functions used by Dromaeo.
43
44         Added tests to TestObj.idl and updated bindings tests.
45
46         * bindings/scripts/CodeGeneratorV8.pm:
47         (GenerateOverloadedFunction):
48         (GenerateFunctionCallback):
49         (GenerateFunction):
50         (GenerateParametersCheck):
51         (GenerateSingleConstructorCallback):
52         (GenerateNonStandardFunction):
53         (GenerateImplementation):
54         (GenerateFunctionCallString):
55         * bindings/scripts/test/TestObj.idl:
56         * bindings/scripts/test/V8/V8Float64Array.cpp:
57         (WebCore):
58         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
59         (WebCore):
60         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
61         (WebCore):
62         * bindings/scripts/test/V8/V8TestInterface.cpp:
63         (WebCore):
64         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
65         (WebCore):
66         * bindings/scripts/test/V8/V8TestObj.cpp:
67         (WebCore::TestObjV8Internal::perWorldReadOnlyAttributeAttrGetter):
68         (TestObjV8Internal):
69         (WebCore::TestObjV8Internal::perWorldReadOnlyAttributeAttrGetterCallback):
70         (WebCore::TestObjV8Internal::perWorldReadOnlyAttributeAttrGetterForMainWorld):
71         (WebCore::TestObjV8Internal::perWorldReadOnlyAttributeAttrGetterCallbackForMainWorld):
72         (WebCore::TestObjV8Internal::perWorldAttributeAttrGetter):
73         (WebCore::TestObjV8Internal::perWorldAttributeAttrGetterCallback):
74         (WebCore::TestObjV8Internal::perWorldAttributeAttrGetterForMainWorld):
75         (WebCore::TestObjV8Internal::perWorldAttributeAttrGetterCallbackForMainWorld):
76         (WebCore::TestObjV8Internal::perWorldAttributeAttrSetter):
77         (WebCore::TestObjV8Internal::perWorldAttributeAttrSetterCallback):
78         (WebCore::TestObjV8Internal::perWorldAttributeAttrSetterForMainWorld):
79         (WebCore::TestObjV8Internal::perWorldAttributeAttrSetterCallbackForMainWorld):
80         (WebCore::TestObjV8Internal::perWorldMethodMethod):
81         (WebCore::TestObjV8Internal::perWorldMethodMethodForMainWorld):
82         (WebCore::TestObjV8Internal::perWorldMethodMethodCallback):
83         (WebCore::TestObjV8Internal::perWorldMethodMethodCallbackForMainWorld):
84         (WebCore::TestObjV8Internal::overloadedPerWorldMethod1Method):
85         (WebCore::TestObjV8Internal::overloadedPerWorldMethod1MethodForMainWorld):
86         (WebCore::TestObjV8Internal::overloadedPerWorldMethod2Method):
87         (WebCore::TestObjV8Internal::overloadedPerWorldMethod2MethodForMainWorld):
88         (WebCore::TestObjV8Internal::overloadedPerWorldMethodMethod):
89         (WebCore::TestObjV8Internal::overloadedPerWorldMethodMethodForMainWorld):
90         (WebCore::TestObjV8Internal::overloadedPerWorldMethodMethodCallback):
91         (WebCore::TestObjV8Internal::overloadedPerWorldMethodMethodCallbackForMainWorld):
92         (WebCore):
93         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
94         (WebCore):
95         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
96         (WebCore):
97         * bindings/v8/V8DOMConfiguration.cpp:
98         (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
99         (WebCore::V8DOMConfiguration::configureTemplate):
100         * bindings/v8/V8DOMConfiguration.h:
101         (BatchedMethod):
102         (V8DOMConfiguration):
103         * dom/Document.idl:
104         * dom/Element.idl:
105         * dom/Node.idl:
106         * page/DOMWindow.idl:
107
108 2013-03-25  Daniel Cheng  <dcheng@chromium.org>
109
110         Don't allow drags to start after a mouse press that creates a context menu
111         https://bugs.webkit.org/show_bug.cgi?id=112079
112
113         Reviewed by Tony Chang.
114
115         This appears to be the intent of the original code anyway (the comments in the corresponding
116         context menu handlers indicate that they set m_mousePressed to false in order to suppress
117         drags from starting). Since exact platform behavior differs quite a bit in this area, this
118         will also make the behavior more consistent across different WebKit implementations.
119
120         Manually testable using context-menu-during-drag-selection.html.
121
122         * page/EventHandler.cpp:
123         (WebCore::EventHandler::handleMouseDraggedEvent):
124
125 2013-03-25  Vsevolod Vlasov  <vsevik@chromium.org>
126
127         Web Inspector: [Regression] Provisional breakpoints are not shown on reload.
128         https://bugs.webkit.org/show_bug.cgi?id=113210
129
130         Reviewed by Pavel Feldman.
131
132         * inspector/front-end/BreakpointManager.js:
133         (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
134         (WebInspector.BreakpointManager.prototype._projectWillReset.get for):
135         (WebInspector.BreakpointManager.prototype._projectWillReset):
136         (WebInspector.BreakpointManager.prototype._breakpointResolved):
137         * inspector/front-end/utilities.js:
138
139 2013-03-25  Sergey Ryazanov  <serya@chromium.org>
140
141         Web Inspector: Remove console warnings for *_ prefixed CSS styles
142         https://bugs.webkit.org/show_bug.cgi?id=113175
143
144         Reviewed by Pavel Feldman.
145
146         Added separate error message for syntax CSS error in declaration list when no property detected.
147         Added filter for messages starting with '*'.
148
149         * css/CSSGrammar.y.in:
150
151 2013-03-25  Alexis Hetu  <sugoi@chromium.org>
152
153         Integration of the Skia displacement mapping into WebKit
154         https://bugs.webkit.org/show_bug.cgi?id=112927
155
156         Reviewed by Stephen White.
157
158         Added displacement mapping to effect-reference.html and
159         effect-reference-hw.html
160
161         * WebCore.gypi:
162         * platform/graphics/filters/FEDisplacementMap.h:
163         (FEDisplacementMap):
164         Adding Skia specific declarations
165         * platform/graphics/filters/skia/FEDisplacementMapSkia.cpp: Added.
166         (WebCore):
167         (WebCore::toSkiaMode):
168         Provides conversion between the WebKit displacement mapping mode and
169         the Skia displacement mapping mode
170         (WebCore::FEDisplacementMap::platformApplySkia):
171         Displacement through the Skia API. (Accelerated only for now)
172         (WebCore::FEDisplacementMap::createImageFilter):
173         Displacement image filter creation through the Skia API.
174
175 2013-03-25  Vladislav Kaznacheev  <kaznacheev@chromium.org>
176
177         Web Inspector: Graduate some new Inspector APIs to public
178         https://bugs.webkit.org/show_bug.cgi?id=113176
179
180         Reviewed by Pavel Feldman.
181
182         Summary of changes:
183             DOM.highlightNode.nodeId: required parameter is now optional
184             Input: domain has been added
185             Runtime.enable: command has been added
186             Runtime.executionContextCreated: event has been added
187             Page.clearGeolocationOverride: command has been added
188             Page.setGeolocationOverride: command has been added
189             Page.captureScreenshot: command has been added
190             Debugger.setBreakpointByUrl.locations: optional response parameter is now required
191
192
193         * inspector/Inspector.json:
194
195 2013-03-25  Andrey Kosyakov  <caseq@chromium.org>
196
197         Web Inspector: [Timeline] set glue records mode off by default
198         https://bugs.webkit.org/show_bug.cgi?id=113189
199
200         Reviewed by Pavel Feldman.
201
202         * inspector/front-end/TimelinePanel.js: /glueRecordsSetting/s/true/false/
203
204 2013-03-25  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
205
206         [EFL] Fix build break when media source is enabled
207         https://bugs.webkit.org/show_bug.cgi?id=113143
208
209         Unreviewed. Build error needs to be fixed in order to start to implement
210         media source functionality.
211
212         * CMakeLists.txt:
213         * platform/efl/MIMETypeRegistryEfl.cpp:
214         (WebCore):
215         (WebCore::MIMETypeRegistry::isSupportedMediaSourceMIMEType):
216         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
217         (WebCore):
218         (WebCore::MediaPlayerPrivateGStreamer::load):
219         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
220         (MediaPlayerPrivateGStreamer):
221
222 2013-03-25  Vsevolod Vlasov  <vsevik@chromium.org>
223
224         Web Inspector: Toggling breakpoint with shortcut should be freezed as well while editing.
225         https://bugs.webkit.org/show_bug.cgi?id=113188
226
227         Reviewed by Pavel Feldman.
228
229         * inspector/front-end/JavaScriptSourceFrame.js:
230         (WebInspector.JavaScriptSourceFrame.prototype.toggleBreakpointOnCurrentLine):
231
232 2013-03-25  Vsevolod Vlasov  <vsevik@chromium.org>
233
234         Web Inspector: Remove unneeded code from JavaScriptSourceFrame.
235         https://bugs.webkit.org/show_bug.cgi?id=113182
236
237         Reviewed by Pavel Feldman.
238
239         * inspector/front-end/JavaScriptSourceFrame.js:
240         (WebInspector.JavaScriptSourceFrame):
241
242 2013-03-25  Alexei Filippov  <alph@chromium.org>
243
244         Web Inspector: Fonts refactoring
245         https://bugs.webkit.org/show_bug.cgi?id=113047
246
247         Reviewed by Pavel Feldman.
248
249         Unify fonts usage across inspector.
250         Make inspector default font depend on platform.
251
252         * inspector/front-end/dataGrid.css:
253         (.data-grid table):
254         (.data-grid td):
255         * inspector/front-end/inspector.css:
256         (.toolbar-label):
257         (body.show-toolbar-icons .toolbar-label):
258         (.console-message .bubble):
259         (li .status .bubble):
260         (.source-frame-breakpoint-message):
261         (.soft-context-menu):
262         * inspector/front-end/inspectorCommon.css:
263         (body):
264         * inspector/front-end/networkLogView.css:
265         (.network-log-grid.data-grid td):
266         (.network-log-grid.data-grid.small td):
267         * inspector/front-end/tabbedPane.css:
268         (.tabbed-pane-header-tab):
269         (select.tabbed-pane-header-tabs-drop-down-select):
270         * inspector/front-end/timelinePanel.css:
271         (.memory-counter-value):
272
273 2013-03-25  Vladislav Kaznacheev  <kaznacheev@chromium.org>
274
275         Web Inspector: Use generate-inspector-protocol-version to list valid public API changes
276         https://bugs.webkit.org/show_bug.cgi?id=113148
277
278         Added --show-changes command line option.
279         Used existing compare_schemas method to do a reverse compare.
280         Fixed a number of small problems (missing domain name in the message,
281         incorrect error messages for command parameters).
282
283         Reviewed by Pavel Feldman.
284
285         * inspector/generate-inspector-protocol-version:
286         (named_list_to_map):
287         (removed):
288         (required):
289         (compare_schemas):
290         (compare_domains):
291         (compare_commands):
292         (compare_events):
293         (compare_params_list):
294         (compare_types):
295         (self_test):
296         (self_test.create_test_schema_1):
297         (self_test.create_test_schema_2):
298         (self_test.is_subset):
299         (self_test.errors_match):
300         (main):
301
302 2013-03-25  Alec Flett  <alecflett@chromium.org>
303
304         Support Quota API in Workers
305         https://bugs.webkit.org/show_bug.cgi?id=112972
306
307         Reviewed by Adam Barth.
308
309         Tests: fast/workers/shared-worker-storagequota-query-usage.html
310                fast/workers/worker-storagequota-query-usage.html
311
312         * Modules/quota/WorkerNavigatorStorageQuota.cpp: Added.
313         * Modules/quota/WorkerNavigatorStorageQuota.h: Added.
314         * Modules/quota/WorkerNavigatorStorageQuota.idl: Added.
315         * WebCore.gypi: Add entries for WorkerNavigatorStorageQuota.
316         * page/WorkerNavigator.h: Add a Navigator supplement that extends the worker navigator.
317
318 2013-03-25  Mike West  <mkwst@chromium.org>
319
320         CSP 1.1: Rename SecurityPolicyViolationEvent::sourceURL to ::sourceFile.
321         https://bugs.webkit.org/show_bug.cgi?id=113033
322
323         Reviewed by Jochen Eisinger.
324
325         Bringing our experimental implementation into line with the spec, which
326         has landed on the de facto standard name Gecko has been sending out for
327         years and years.
328
329         Spec: https://dvcs.w3.org/hg/content-security-policy/rev/e44f4003e158
330         Thread: http://lists.w3.org/Archives/Public/public-webappsec/2013Mar/0087.html
331
332         * dom/SecurityPolicyViolationEvent.h:
333         (SecurityPolicyViolationEventInit):
334         (WebCore::SecurityPolicyViolationEvent::sourceFile):
335         (WebCore::SecurityPolicyViolationEvent::SecurityPolicyViolationEvent):
336         (SecurityPolicyViolationEvent):
337         * dom/SecurityPolicyViolationEvent.idl:
338         * page/ContentSecurityPolicy.cpp:
339         (WebCore::gatherSecurityPolicyViolationEventData):
340             s/sourceURL/sourceFile/
341
342 2013-03-25  Michelangelo De Simone  <michelangelo@webkit.org>
343
344         [CSS Filters] Using negative drop-shadow radius values has slow performance
345         https://bugs.webkit.org/show_bug.cgi?id=107848
346
347         Setting negative blur radius values in drop-shadow() and box-shadow() led to
348         significant rendering performance loss. The invalid value overflowed and the
349         embedder became unresponsive for few seconds.
350         This impacted SVG too (SVGFEDropShadow and SVGFEGaussianBlur).
351
352         Reviewed by Dirk Schulze.
353
354         Tests: css3/filters/effect-drop-shadow-negative-radius.html
355                fast/box-shadow/box-shadow-parsing-invalid.html
356                svg/filters/feDropShadow-negative-deviation-expected.svg
357                svg/filters/feDropShadow-negative-deviation.svg
358                svg/filters/feDropShadow-zero-deviation.svg
359                svg/filters/feGaussianBlur-negative-deviation-expected.svg
360                svg/filters/feGaussianBlur-negative-deviation.svg
361                svg/filters/feGaussianBlur-zero-deviation.svg
362
363         * css/CSSParser.cpp:
364         (WebCore::CSSParser::parseShadow): Negative values are skipped during parsing: as per
365         CSS Background and Borders specs, negative values shall not be allowed.
366         * platform/graphics/filters/FEGaussianBlur.cpp:
367         (WebCore::FEGaussianBlur::calculateUnscaledKernelSize): Added "non-negative" assertion for
368         negative deviations.
369         * svg/SVGFEDropShadowElement.cpp:
370         (WebCore::SVGFEDropShadowElement::build): If a negative standard deviation is encountered, don't
371         build the filter and returns earlier, this avoids unnecessary calls: FEGaussianBlur is not being
372         created with wrong and potentially overflowing values.
373         * svg/SVGFEGaussianBlurElement.cpp:
374         (WebCore::SVGFEGaussianBlurElement::build): Ditto.
375
376 2013-03-25  Allan Sandfeld Jensen  <allan.jensen@digia.com>
377
378         [Qt] REGRESSION(r146630): 8 text related test asserts on debug builds
379         https://bugs.webkit.org/show_bug.cgi?id=113179
380
381         Reviewed by Jocelyn Turcotte.
382
383         Test if range.start is within the valid range before testing the value at that point.
384
385         * platform/graphics/qt/FontQt.cpp:
386         (WebCore::Font::initFormatForTextLayout):
387
388 2013-03-25  Alexander Pavlov  <apavlov@chromium.org>
389
390         Web Inspector: Properly handle the rule addition to an XML or SVG document.
391         https://bugs.webkit.org/show_bug.cgi?id=113185
392
393         Reviewed by Pavel Feldman.
394
395         * inspector/InspectorCSSAgent.cpp:
396         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
397
398 2013-03-25  Peter Rybin  <prybin@chromium.org>
399
400         Web Inspector: support changing local variables in frontend
401         https://bugs.webkit.org/show_bug.cgi?id=112470
402
403         Reviewed by Yury Semikhatsky.
404
405         ScopeRef type is added to RemoteObject and setPropertyValue is patched accordingly.
406
407         Test: inspector/debugger/debugger-change-variable.html
408
409         * inspector/front-end/DebuggerModel.js:
410         (WebInspector.DebuggerModel.CallFrame.prototype.get id):
411         * inspector/front-end/ObjectPropertiesSection.js:
412         (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate.didGetDetails):
413         (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate):
414         * inspector/front-end/RemoteObject.js:
415         (WebInspector.RemoteObject):
416         (WebInspector.RemoteObject.fromScopePayload):
417         (WebInspector.RemoteObject.prototype.):
418         (WebInspector.RemoteObject.prototype.setPropertyValue):
419         (WebInspector.RemoteObject.prototype.setVariableValueCallback):
420         (WebInspector.RemoteObject.prototype._setDeclarativeVariableValue):
421         (WebInspector.ScopeRef):
422         * inspector/front-end/ScopeChainSidebarPane.js:
423         (WebInspector.ScopeChainSidebarPane.prototype.update):
424
425 2013-03-25  Mike West  <mkwst@chromium.org>
426
427         CSP 1.1: Strip URLs in SecurityPolicyViolationEvents, just as we do for POSTed violation reports.
428         https://bugs.webkit.org/show_bug.cgi?id=113039
429
430         Reviewed by Jochen Eisinger.
431
432         I'd originally assumed that we didn't need to be quite so careful when
433         handing URLs to JavaScript via SecurityPolicyViolationEvents. This was
434         a mistake. Cross-origin URLs aren't accessible to JavaScript currently
435         and there's no reason that we should begin exposing them via an event.
436
437         This patch extracts the stripping logic from the existing reports into
438         stripURLForUseInReport(), and uses that new method when populating the
439         event and report objects.
440
441         Relatedly, we were doing the wrong thing with 'file:' URLs, which this
442         patch made clear. Now they're treated the same as 'data:' et al.
443
444         Spec: https://dvcs.w3.org/hg/content-security-policy/rev/45f6ccaba0ef
445
446         Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-cross-origin-image-from-script.html
447                http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-cross-origin-image.html
448                http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image-from-script.html
449                http/tests/security/contentSecurityPolicy/report-blocked-file-uri.html
450
451         * page/ContentSecurityPolicy.cpp:
452         (WebCore::stripURLForUseInReport):
453             Extract the logic from blockedURI out into a reusable method:
454             cross-origin URLs are stripped down to the ASCII serialization of
455             their origin, and non-heirarchical (and 'file:') URLs are stripped
456             down to the ASCII serialization of their protocol.
457         (WebCore::gatherSecurityPolicyViolationEventData):
458         (WebCore::ContentSecurityPolicy::reportViolation):
459             Use ::stripURLForUseInReport for blockedURL and sourceFile
460             attributes in these two methods.
461
462 2013-03-25  Eugene Klyuchnikov  <eustas@chromium.org>
463
464         Web Inspector: Fix JSDocs.
465         https://bugs.webkit.org/show_bug.cgi?id=113025
466
467         Reviewed by Pavel Feldman.
468
469         Next version of JS compiler finds more inconsistencies
470         and ambiguous declarations.
471         Some of them are resolved in this patch.
472
473         * inspector/InjectedScriptSource.js: Fix JSDocs.
474         * inspector/front-end/ConsoleModel.js: Ditto.
475         * inspector/front-end/CookieParser.js: Ditto.
476         * inspector/front-end/FileContentView.js: Ditto.
477         * inspector/front-end/HeapSnapshotView.js: Ditto.
478         * inspector/front-end/IndexedDBModel.js: Ditto.
479         * inspector/front-end/ProfilesPanelDescriptor.js: Ditto.
480         * inspector/front-end/utilities.js: Ditto.
481
482 2013-03-25  Mike West  <mkwst@chromium.org>
483
484         Cleanup: Tiny nits in ContentSecurityPolicy::reportViolation.
485         https://bugs.webkit.org/show_bug.cgi?id=112784
486
487         Reviewed by Jochen Eisinger.
488
489         Just cleanup of three tiny nits I ran across in
490         ContentSecurityPolicy::reportViolation while doing other work.
491
492         - 'directiveText' and 'effectiveDirective' can't be empty; we pass in
493           values at every callsite. We can safely remove the 'isEmpty()' checks.
494           Moreover, even if they could possibly somehow be empty, we should
495           still include those empty strings in the report, rather than
496           dropping the values entirely.
497
498         - We don't need to hold 'document->referrer()' in a temp variable.
499
500         * page/ContentSecurityPolicy.cpp:
501         (WebCore::ContentSecurityPolicy::reportViolation):
502
503 2013-03-25  Eugene Klyuchnikov  <eustas@chromium.org>
504
505         Web Inspector: [Overview] Make "drag-to-move" feature more discoverable.
506         https://bugs.webkit.org/show_bug.cgi?id=113032
507
508         Reviewed by Pavel Feldman.
509
510         To move overview window user could drag-n-drop over
511         time "ribbon" on OverviewGrid.
512
513         This feature is hard to discover.
514
515         Setting "move" cursor will make this feature more discoverable.
516
517         * inspector/front-end/inspectorCommon.css:
518         Set "move" cursor to draggable area.
519         * inspector/front-end/OverviewGrid.js: Ditto.
520
521 2013-03-25  Eugene Klyuchnikov  <eustas@chromium.org>
522
523         Web Inspector: [Profiles] Remove unused private member.
524         https://bugs.webkit.org/show_bug.cgi?id=113015
525
526         Reviewed by Pavel Feldman.
527
528         _profileGroupsForLinks is not used anymore.
529
530         * inspector/front-end/ProfilesPanel.js:
531         (WebInspector.ProfilesPanel.prototype._reset): Removed unused member.
532
533 2013-03-25  PhistucK  <phistuck@chromium.org>
534
535         Web Inspector: Exception when turning on pretty print without any displayed source in the editor
536         https://bugs.webkit.org/show_bug.cgi?id=113136
537
538         Reviewed by Vsevolod Vlasov.
539
540         No new tests.
541         Added a check for the existence of currently edited document.
542
543         * inspector/ScriptsPanel.js:
544         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
545
546 2013-03-25  Mihnea Ovidenie  <mihnea@adobe.com>
547
548         [CSSRegions] Remove RenderRegion::printRegionObjectsStyles
549         https://bugs.webkit.org/show_bug.cgi?id=113081
550
551         Reviewed by Tony Chang.
552
553         No change in functionality, remove unused function..
554
555         * rendering/RenderRegion.h:
556
557 2013-03-25  Hurnjoo Lee  <hurnjoo.lee@samsung.com>
558
559         [Texmap] Memory leak when closing a tab
560         https://bugs.webkit.org/show_bug.cgi?id=112127
561
562         Reviewed by Noam Rosenthal.
563
564         When closing a tab, if there are any updates pending in CoordinatedGraphicsScene's
565         render queue, the scene is not freed because reference count of m_scene is not zero.
566
567         No new tests.
568
569         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
570         (WebCore::CoordinatedGraphicsScene::detach): When bind updates in CoordinatedGraphicsScene,
571         the reference count of m_scene is increasing, if m_renderQueue is not empty
572         before closing tab, then m_scene is never freed.
573         Hence, when closing tab, need to clear m_renderQueue explicitly in order to
574         destroy m_scene.
575
576 2013-03-25  Keishi Hattori  <keishi@webkit.org>
577
578         Clear button visibility is not updated when restoring form state
579         https://bugs.webkit.org/show_bug.cgi?id=113172
580
581         Clear button wasn't showing up when restoring form state.
582
583         Reviewed by Kent Tamura.
584
585         Tests: fast/forms/date-multiple-fields/date-multiple-fields-clearbutton-visibility-after-restore.html
586                fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-clearbutton-visibility-after-restore.html
587                fast/forms/month-multiple-fields/month-multiple-fields-clearbutton-visibility-after-restore.html
588                fast/forms/time-multiple-fields/time-multiple-fields-clearbutton-visibility-after-restore.html
589                fast/forms/week-multiple-fields/week-multiple-fields-clearbutton-visibility-after-restore.html
590
591         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
592         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
593
594 2013-03-25  Eugene Klyuchnikov  <eustas@chromium.org>
595
596         Web Inspector: [Settings] Use registry to track settings objects.
597         https://bugs.webkit.org/show_bug.cgi?id=113008
598
599         Reviewed by Pavel Feldman.
600
601         Currently .createSetting creates new instance any time it is invoked.
602         When one instance saves value, the other instance do not know about it.
603
604         To resolve this issue we can use registry to make .createSetting return
605         same object for specific key.
606
607         * inspector/front-end/Settings.js:
608         (WebInspector.Settings.prototype.createSetting): Use registry.
609
610 2013-03-24  Matt Falkenhagen  <falken@chromium.org>
611
612         Refactoring: Pull Node::disabled() and Node::isInert() down to Element.
613         https://bugs.webkit.org/show_bug.cgi?id=112085
614
615         Reviewed by Hajime Morrita.
616
617         Node is too low a level for these methods. The plan is to rename
618         Element::disabled to isDisabledFormControl and to remove
619         Element::isEnabledFormControl.
620
621         No new tests, just refactoring.
622
623         * dom/Element.cpp:
624         (WebCore::Element::disabled):
625         (WebCore):
626         (WebCore::Element::isInert):
627         * dom/Element.h:
628         (Element):
629         * dom/EventDispatcher.cpp:
630         (WebCore::EventDispatcher::dispatchSimulatedClick):
631         * dom/GestureEvent.cpp:
632         (WebCore::GestureEventDispatchMediator::dispatchEvent):
633         * dom/MouseEvent.cpp:
634         (WebCore::MouseEventDispatchMediator::dispatchEvent):
635         * dom/Node.cpp:
636         (WebCore::Node::handleLocalEvents):
637         (WebCore::Node::willRespondToMouseMoveEvents):
638         (WebCore::Node::willRespondToMouseClickEvents):
639         (WebCore::Node::willRespondToTouchEvents):
640         * dom/Node.h:
641         (Node):
642
643 2013-03-24  Alpha Lam  <hclam@chromium.org>
644
645         GIFImageReader should reports parsing error to client
646         https://bugs.webkit.org/show_bug.cgi?id=113141
647
648         Reviewed by Stephen White.
649
650         GIFImageReader nows reports parsing error to client (GIFImageDecoder) such that errors can be handled.
651         In the case of corrupted GIF images GIFImageReader will be deleted and decoding will fail.
652
653         Unit test is updated to reflect change in behavior.
654         Tested with a local corpus which showed better handling of corrupted GIF images.
655
656         * platform/image-decoders/gif/GIFImageReader.cpp:
657         (GIFImageReader::decode):
658
659 2013-03-24  KondapallyKalyan  <kalyan.kondapally@intel.com>
660
661         [EFL] Add support to check for current Drawable.
662         https://bugs.webkit.org/show_bug.cgi?id=113103
663
664         Reviewed by Kenneth Rohde Christiansen.
665
666         Covered by existing WebGL tests.
667
668         In MakeCurrent we do an early return if it is
669         the current GL context but ignore Surface. This
670         patch fixes the issue, we now check for both
671         context and surface before doing an early return
672         in MakeCurrent.
673
674         * platform/graphics/opengl/GLPlatformContext.cpp:
675         (WebCore::GLPlatformContext::makeCurrent):
676         (WebCore::GLPlatformContext::releaseCurrent):
677         (WebCore::GLPlatformContext::destroy):
678         * platform/graphics/opengl/GLPlatformSurface.cpp:
679         (WebCore):
680         (WebCore::GLPlatformSurface::isCurrentDrawable):
681         (WebCore::GLPlatformSurface::onMakeCurrent):
682         * platform/graphics/opengl/GLPlatformSurface.h:
683
684 2013-03-24  David Kilzer  <ddkilzer@apple.com>
685
686         BUILD FIX (r146704): Settings::setHiddenPageDOMTimerThrottlingEnabled() isn't always built
687         <http://webkit.org/b/112308>
688
689         * WebCore.exp.in: Export
690         Settings::setHiddenPageDOMTimerThrottlingEnabled()
691         conditionally based on ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING).
692
693 2013-03-24  Christophe Dumez  <ch.dumez@sisa.samsung.com>
694
695         [EFL] NetworkStateNotifier::updateState() is called too often
696         https://bugs.webkit.org/show_bug.cgi?id=113152
697
698         Reviewed by Kenneth Rohde Christiansen.
699
700         Wait until we have read all the data on the Netlink socket before
701         reporting a possible network interface change. This way, we make
702         sure we don't call NetworkStateNotifier::updateState() several
703         times in a row for no reason.
704
705         We also call NetworkStateNotifier::updateState() only if we get a
706         RTM_NEWADDR event and we are currently offline, or if we get a
707         RTM_DELADDR and we are currently online. This avoids calling
708         NetworkStateNotifier::updateState() uselessly as there is no way
709         the online state can change otherwise.
710
711         No new tests, no behavior change for layout tests.
712
713         * platform/network/efl/NetworkStateNotifierEfl.cpp:
714         (WebCore::NetworkStateNotifier::readSocketCallback):
715
716 2013-03-24  Chris Fleizach  <cfleizach@apple.com>
717
718         AX: Crash in WebCore::AccessibilitySpinButton::incrementButton()
719         https://bugs.webkit.org/show_bug.cgi?id=111582
720
721         Reviewed by Tim Horton.
722
723         There are two ways to create a spin button: from a textfield counter or from ARIA.
724         If an ARIA spin button is created, it was returning true for isSpinButton, so we were 
725         casting to the other kind of spin button, leading to a crash.
726
727         We need to be more specific about our class types.
728
729         Test: platform/mac/accessibility/aria-spinbutton-crash.html
730
731         * accessibility/AccessibilityObject.h:
732         (WebCore::AccessibilityObject::isNativeSpinButton):
733         * accessibility/AccessibilitySpinButton.h:
734         (WebCore::AccessibilitySpinButton::isNativeSpinButton):
735         (WebCore::toAccessibilitySpinButton):
736         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
737         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
738
739 2013-03-24  Chris Fleizach  <cfleizach@apple.com>
740
741         AXObjectCache gets recreated during document tear-down.
742         https://bugs.webkit.org/show_bug.cgi?id=112525
743
744         Reviewed by Simon Fraser.
745
746         In many cases, a document's AXObjectCache was being created after the
747         document had detached, which is wasteful and could potentially lead to
748         crashes because the AXObjectCache has a timer and relies on its document
749         to exist.
750
751         This patch provides a way to get the existing AX object cache, instead of
752         always creating a new one.
753         It moves the accessibilityEnabled() checks into the axObjectCache retrieval
754         for easier readability.
755         It adds a number of ASSERTs to vieryf that only the correct (top) document is used
756         for cache manipulation.
757
758         * accessibility/AXObjectCache.cpp:
759         (WebCore::AXObjectCache::stopCachingComputedObjectAttributes):
760         * dom/ContainerNode.cpp:
761         (WebCore::ContainerNode::~ContainerNode):
762         * dom/Document.cpp:
763         (WebCore::Document::~Document):
764         (WebCore::Document::clearAXObjectCache):
765         (WebCore::Document::existingAXObjectCache):
766         (WebCore::Document::axObjectCache):
767         (WebCore::Document::setFocusedNode):
768         * dom/Document.h:
769         (Document):
770         * dom/Element.cpp:
771         (WebCore::Element::attributeChanged):
772         * dom/Node.cpp:
773         (WebCore::Node::~Node):
774         (WebCore::Node::isEditableToAccessibility):
775         (WebCore::Node::attach):
776         (WebCore::Node::rootEditableElement):
777         (WebCore::Node::didMoveToNewDocument):
778         * editing/AppendNodeCommand.cpp:
779         (WebCore::sendAXTextChangedIgnoringLineBreaks):
780         * editing/DeleteFromTextNodeCommand.cpp:
781         (WebCore::DeleteFromTextNodeCommand::doApply):
782         (WebCore::DeleteFromTextNodeCommand::doUnapply):
783         * editing/Editor.cpp:
784         (WebCore::Editor::respondToChangedContents):
785         (WebCore::Editor::markAndReplaceFor):
786         * editing/InsertIntoTextNodeCommand.cpp:
787         (WebCore::InsertIntoTextNodeCommand::doApply):
788         (WebCore::InsertIntoTextNodeCommand::doUnapply):
789         * editing/InsertNodeBeforeCommand.cpp:
790         (WebCore::InsertNodeBeforeCommand::doApply):
791         (WebCore::InsertNodeBeforeCommand::doUnapply):
792         * editing/atk/FrameSelectionAtk.cpp:
793         (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
794         * editing/chromium/FrameSelectionChromium.cpp:
795         (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
796         * editing/mac/FrameSelectionMac.mm:
797         (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
798         * html/HTMLInputElement.cpp:
799         (WebCore::HTMLInputElement::setChecked):
800         * html/HTMLSelectElement.cpp:
801         (WebCore::HTMLSelectElement::optionElementChildrenChanged):
802         (WebCore::HTMLSelectElement::setRecalcListItems):
803         * html/HTMLTextFormControlElement.cpp:
804         (WebCore::HTMLTextFormControlElement::setInnerTextValue):
805         * html/InputType.cpp:
806         (WebCore::InputType::applyStep):
807         * html/RangeInputType.cpp:
808         (WebCore::RangeInputType::handleKeydownEvent):
809         * loader/FrameLoader.cpp:
810         (WebCore::FrameLoader::prepareForLoadStart):
811         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
812         * page/FocusController.cpp:
813         (WebCore::FocusController::setInitialFocus):
814         * page/Frame.cpp:
815         (WebCore::Frame::disconnectOwnerElement):
816         * page/FrameView.cpp:
817         (WebCore::FrameView::removeFromAXObjectCache):
818         (WebCore::FrameView::layout):
819         (WebCore::FrameView::scrollToAnchor):
820         (WebCore::FrameView::axObjectCache):
821         * platform/ScrollView.cpp:
822         (WebCore::ScrollView::setHasHorizontalScrollbar):
823         (WebCore::ScrollView::setHasVerticalScrollbar):
824         * platform/Scrollbar.cpp:
825         (WebCore::Scrollbar::~Scrollbar):
826         (WebCore):
827         (WebCore::Scrollbar::existingAXObjectCache):
828         * platform/Scrollbar.h:
829         (Scrollbar):
830         * rendering/RenderBlock.cpp:
831         (WebCore::RenderBlock::deleteLineBoxTree):
832         (WebCore::RenderBlock::createRootInlineBox):
833         (WebCore::RenderBlock::createAndAppendRootInlineBox):
834         * rendering/RenderListBox.cpp:
835         (WebCore::RenderListBox::selectionChanged):
836         * rendering/RenderMenuList.cpp:
837         (WebCore::RenderMenuList::addChild):
838         (WebCore::RenderMenuList::didUpdateActiveOption):
839         * rendering/RenderObject.cpp:
840         (WebCore::RenderObject::styleWillChange):
841         (WebCore::RenderObject::willBeDestroyed):
842         * rendering/RenderObjectChildList.cpp:
843         (WebCore::RenderObjectChildList::removeChildNode):
844         (WebCore::RenderObjectChildList::insertChildNode):
845         * rendering/RenderText.cpp:
846         (WebCore::RenderText::setText):
847         * rendering/RenderWidget.cpp:
848         (WebCore::RenderWidget::willBeDestroyed):
849
850 2013-03-23  Mike West  <mkwst@chromium.org>
851
852         Drop full URLs from cross-origin access errors caused by sandboxing.
853         https://bugs.webkit.org/show_bug.cgi?id=113029
854
855         Reviewed by Timothy Hatcher.
856
857         Following up on http://wkbug.com/112042, this patch brings cross-origin
858         access error messages into line with the newly origin-only default
859         message, and changes the error message text to explicitly refer to the
860         missing 'allow-same-origin' sandbox flag that's the root cause of the
861         error.
862
863         * page/DOMWindow.cpp:
864         (WebCore::DOMWindow::crossDomainAccessErrorMessage):
865             Note that we're using the origin of the frames' URLs rather than
866             their actual origin in these messages. This seems like a reasonable
867             thing to do, since we know that at least one of the two origins will
868             be "null" in this scenario.
869
870 2013-03-23  Dominic Mazzoni  <dmazzoni@google.com>
871
872         Implement Web Speech Synthesis for Chromium
873         https://bugs.webkit.org/show_bug.cgi?id=111695
874
875         Reviewed by Adam Barth.
876
877         Straightforward implementation of speech synthesis
878         for Chromium by exposing interfaces for the platform
879         to implement.
880
881         * Modules/speech/SpeechSynthesis.cpp:
882         (WebCore::SpeechSynthesis::boundaryEventOccurred):
883         (WebCore::SpeechSynthesis::didStartSpeaking):
884         (WebCore::SpeechSynthesis::didPauseSpeaking):
885         (WebCore::SpeechSynthesis::didResumeSpeaking):
886         (WebCore::SpeechSynthesis::didFinishSpeaking):
887         (WebCore::SpeechSynthesis::speakingErrorOccurred):
888         (WebCore):
889         * Modules/speech/SpeechSynthesis.h:
890         (SpeechSynthesis):
891         * Modules/speech/SpeechSynthesisUtterance.cpp:
892         (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
893         (WebCore):
894         (WebCore::SpeechSynthesisUtterance::~SpeechSynthesisUtterance):
895         (WebCore::SpeechSynthesisUtterance::setVoice):
896         * Modules/speech/SpeechSynthesisUtterance.h:
897         (SpeechSynthesisUtterance):
898         (WebCore::SpeechSynthesisUtterance::text):
899         (WebCore::SpeechSynthesisUtterance::setText):
900         (WebCore::SpeechSynthesisUtterance::lang):
901         (WebCore::SpeechSynthesisUtterance::setLang):
902         (WebCore::SpeechSynthesisUtterance::volume):
903         (WebCore::SpeechSynthesisUtterance::setVolume):
904         (WebCore::SpeechSynthesisUtterance::rate):
905         (WebCore::SpeechSynthesisUtterance::setRate):
906         (WebCore::SpeechSynthesisUtterance::pitch):
907         (WebCore::SpeechSynthesisUtterance::setPitch):
908         (WebCore::SpeechSynthesisUtterance::startTime):
909         (WebCore::SpeechSynthesisUtterance::setStartTime):
910         (WebCore::SpeechSynthesisUtterance::platformUtterance):
911         * Modules/speech/SpeechSynthesisVoice.h:
912         (WebCore::SpeechSynthesisVoice::~SpeechSynthesisVoice):
913         * WebCore.exp.in:
914         * WebCore.gypi:
915         * platform/PlatformSpeechSynthesis.h:
916         (PlatformSpeechSynthesis):
917         * platform/PlatformSpeechSynthesisUtterance.cpp:
918         (WebCore):
919         (WebCore::PlatformSpeechSynthesisUtterance::create):
920         * platform/PlatformSpeechSynthesisUtterance.h:
921         (PlatformSpeechSynthesisUtterance):
922         (WebCore::PlatformSpeechSynthesisUtterance::setClient):
923         * platform/PlatformSpeechSynthesisVoice.cpp:
924         (WebCore):
925         (WebCore::PlatformSpeechSynthesisVoice::create):
926         (WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
927         * platform/PlatformSpeechSynthesisVoice.h:
928         (PlatformSpeechSynthesisVoice):
929         (WebCore::PlatformSpeechSynthesisVoice::setVoiceURI):
930         (WebCore::PlatformSpeechSynthesisVoice::setName):
931         (WebCore::PlatformSpeechSynthesisVoice::setLang):
932         (WebCore::PlatformSpeechSynthesisVoice::setLocalService):
933         (WebCore::PlatformSpeechSynthesisVoice::setIsDefault):
934         * platform/PlatformSpeechSynthesizer.cpp:
935         (WebCore::PlatformSpeechSynthesizer::create):
936         (WebCore::PlatformSpeechSynthesizer::setVoiceList):
937         (WebCore):
938         * platform/PlatformSpeechSynthesizer.h:
939         (WebKit):
940         (PlatformSpeechSynthesizerClient):
941         (PlatformSpeechSynthesizer):
942         * platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Added.
943         (WebCore):
944         (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
945         (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
946         (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
947         (WebCore::PlatformSpeechSynthesizer::speak):
948         (WebCore::PlatformSpeechSynthesizer::pause):
949         (WebCore::PlatformSpeechSynthesizer::resume):
950         (WebCore::PlatformSpeechSynthesizer::cancel):
951         * platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Added.
952         (WebKit):
953         (WebKit::WebSpeechSynthesisUtterance::WebSpeechSynthesisUtterance):
954         (WebKit::WebSpeechSynthesisUtterance::operator=):
955         (WebKit::WebSpeechSynthesisUtterance::assign):
956         (WebKit::WebSpeechSynthesisUtterance::reset):
957         (WebKit::WebSpeechSynthesisUtterance::operator PassRefPtr<PlatformSpeechSynthesisUtterance>):
958         (WebKit::WebSpeechSynthesisUtterance::operator PlatformSpeechSynthesisUtterance*):
959         (WebKit::WebSpeechSynthesisUtterance::text):
960         (WebKit::WebSpeechSynthesisUtterance::lang):
961         (WebKit::WebSpeechSynthesisUtterance::voice):
962         (WebKit::WebSpeechSynthesisUtterance::volume):
963         (WebKit::WebSpeechSynthesisUtterance::rate):
964         (WebKit::WebSpeechSynthesisUtterance::pitch):
965         (WebKit::WebSpeechSynthesisUtterance::startTime):
966         * platform/chromium/support/WebSpeechSynthesisVoice.cpp: Added.
967         (WebKit):
968         (WebKit::WebSpeechSynthesisVoice::assign):
969         (WebKit::WebSpeechSynthesisVoice::reset):
970         (WebKit::WebSpeechSynthesisVoice::setVoiceURI):
971         (WebKit::WebSpeechSynthesisVoice::setName):
972         (WebKit::WebSpeechSynthesisVoice::setLanguage):
973         (WebKit::WebSpeechSynthesisVoice::setIsLocalService):
974         (WebKit::WebSpeechSynthesisVoice::setIsDefault):
975         (WebKit::WebSpeechSynthesisVoice::operator PassRefPtr<WebCore::PlatformSpeechSynthesisVoice>):
976         * platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Added.
977         (WebCore):
978         (WebCore::WebSpeechSynthesizerClientImpl::WebSpeechSynthesizerClientImpl):
979         (WebCore::WebSpeechSynthesizerClientImpl::~WebSpeechSynthesizerClientImpl):
980         (WebCore::WebSpeechSynthesizerClientImpl::setVoiceList):
981         (WebCore::WebSpeechSynthesizerClientImpl::didStartSpeaking):
982         (WebCore::WebSpeechSynthesizerClientImpl::didFinishSpeaking):
983         (WebCore::WebSpeechSynthesizerClientImpl::didPauseSpeaking):
984         (WebCore::WebSpeechSynthesizerClientImpl::didResumeSpeaking):
985         (WebCore::WebSpeechSynthesizerClientImpl::speakingErrorOccurred):
986         (WebCore::WebSpeechSynthesizerClientImpl::wordBoundaryEventOccurred):
987         (WebCore::WebSpeechSynthesizerClientImpl::sentenceBoundaryEventOccurred):
988         * platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Added.
989         (WebCore):
990         (WebSpeechSynthesizerClientImpl):
991         * platform/mac/PlatformSpeechSynthesizerMac.mm:
992         (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
993         (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
994         (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
995         (WebCore):
996         (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
997         (WebCore::PlatformSpeechSynthesizer::speak):
998         * platform/mock/PlatformSpeechSynthesizerMock.cpp:
999         (WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
1000         (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
1001         (WebCore::PlatformSpeechSynthesizerMock::speak):
1002         * platform/mock/PlatformSpeechSynthesizerMock.h:
1003         (PlatformSpeechSynthesizerMock):
1004
1005 2013-03-23  Daniel Cheng  <dcheng@chromium.org>
1006
1007         [Qt] editing/pasteboard/can-read-in-dragstart-event.html and /can-read-in-copy-and-cut-events.html are crashing
1008         https://bugs.webkit.org/show_bug.cgi?id=113126
1009
1010         Reviewed by Ryosuke Niwa.
1011
1012         The ClipboardQt implementation only allows reading or writing, not both. Attempting to read
1013         when the clipboard is only writable will lead to a crash since the corresponding member will
1014         be null. To prevent crashes, change the asserts to early returns. In the long term, the
1015         correct fix is to unify the m_readableData and m_writableData members.
1016
1017         No new tests since no functionality in Qt port should change.
1018
1019         * platform/qt/ClipboardQt.cpp:
1020         (WebCore::ClipboardQt::getData):
1021         (WebCore::ClipboardQt::types):
1022         (WebCore::ClipboardQt::files):
1023
1024 2013-03-23  Carlos Garcia Campos  <cgarcia@igalia.com>
1025
1026         [GTK][Regression] webkit_dom_html_table_element_insert_row returns value that doesn't pass WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT macro
1027         https://bugs.webkit.org/show_bug.cgi?id=111714
1028
1029         Reviewed by Martin Robinson.
1030
1031         Add custom kit implementation for HTMLElements so that the HTML
1032         wrappers are used in that case instead of wrapHTMLElement.
1033
1034         * bindings/gobject/WebKitDOMBinding.cpp:
1035         (WebKit::kit):
1036         (WebKit):
1037         * bindings/gobject/WebKitDOMBinding.h:
1038         (WebCore):
1039         (WebKit):
1040         * bindings/scripts/CodeGeneratorGObject.pm:
1041         (UsesManualKitImplementation):
1042
1043 2013-03-23  David Kilzer  <ddkilzer@apple.com>
1044
1045         Revert "BUILD FIX (r146667): ResourceRequest constructor in SynchronousLoaderClient.cpp is ambiguous on iOS"
1046
1047         This is platform-agnositic code, so the previous solution won't work.
1048
1049         * platform/network/SynchronousLoaderClient.cpp:
1050         (WebCore::SynchronousLoaderClient::willSendRequest):
1051
1052 2013-03-23  David Kilzer  <ddkilzer@apple.com>
1053
1054         BUILD FIX (r146667): ResourceRequest constructor in SynchronousLoaderClient.cpp is ambiguous on iOS
1055
1056         Fixes the following build failure:
1057
1058             Source/WebCore/platform/network/SynchronousLoaderClient.cpp:52:15: error: conversion from 'int' to 'const WebCore::ResourceRequest' is ambiguous
1059                 request = 0;
1060                           ^
1061             In file included from Source/WebCore/platform/network/SynchronousLoaderClient.cpp:30:
1062             In file included from Source/WebCore/platform/network/ResourceHandle.h:37:
1063             In file included from Source/WebCore/platform/network/ios/QuickLook.h:13:
1064             Source/WebCore/platform/network/cf/ResourceRequest.h:79:9: note: candidate constructor
1065                     ResourceRequest(NSURLRequest *);
1066                     ^
1067             Source/WebCore/platform/network/cf/ResourceRequest.h:83:9: note: candidate constructor
1068                     ResourceRequest(CFURLRequestRef cfRequest)
1069                     ^
1070             1 error generated.
1071
1072         * platform/network/SynchronousLoaderClient.cpp:
1073         (WebCore::SynchronousLoaderClient::willSendRequest): If
1074         USE(CFNETWORK) is defined, use static_cast<CFURLRequestRef>(0),
1075         otherwise use static_cast<NSURLRequest *>(0).
1076
1077 2013-03-23  David Kilzer  <ddkilzer@apple.com>
1078
1079         BUILD FIX (r146687): setDefaultMIMEType() is unused in ResourceHandleCFNet.cpp on iOS
1080
1081         Fixes the following build failure:
1082
1083             Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp:98:13: error: unused function 'setDefaultMIMEType' [-Werror,-Wunused-function]
1084             static void setDefaultMIMEType(CFURLResponseRef response)
1085                         ^
1086             1 error generated.
1087
1088         * platform/network/cf/ResourceHandleCFNet.cpp:
1089         (WebCore::setDefaultMIMEType): Add #if !PLATFORM(MAC)/#endif
1090         guard.
1091
1092 2013-03-21  Kiran Muppala  <cmuppala@apple.com>
1093
1094         Add runtime setting for hidden page DOM timer throttling and CSS animation suspension
1095         https://bugs.webkit.org/show_bug.cgi?id=112308
1096
1097         Reviewed by Gavin Barraclough.
1098
1099         No new tests.  Only adding settings to enable/disable existing features
1100         and hence existing tests suffice.
1101
1102         * WebCore.exp.in:
1103         * page/Page.cpp:
1104         (WebCore::Page::setVisibilityState): Check if DOM timer throttling
1105         and CSS animation suspension are enabled before turning them on.
1106         (WebCore::Page::hiddenPageDOMTimerThrottlingStateChanged): Start or stop
1107         DOM timer throttling based on page visibility and the new setting state.
1108         (WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged): Ditto
1109         for CSS animation suspension.
1110         * page/Page.h:
1111         * page/Settings.cpp:
1112         (WebCore::Settings::Settings): Initialize the flags for enabling hidden
1113         page DOM timer throttling and CSS animation suspension to false.
1114         (WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled): Update flag
1115         and notify page that the state of the setting has changed.
1116         (WebCore::Settings::setHiddenPageCSSAnimationSuspensionEnabled): Ditto.
1117         * page/Settings.h:
1118         (WebCore::Settings::hiddenPageDOMTimerThrottlingEnabled):
1119         (WebCore::Settings::hiddenPageCSSAnimationSuspensionEnabled):
1120
1121 2013-03-22  Benjamin Poulain  <bpoulain@apple.com>
1122
1123         Remove 2 bad branches from StringHash::equal() and CaseFoldingHash::equal()
1124         https://bugs.webkit.org/show_bug.cgi?id=113003
1125
1126         Reviewed by Eric Seidel.
1127
1128         Fix two unfortunate use of StringHash and use the correct StringImpl function.
1129
1130         * html/parser/HTMLParserIdioms.cpp:
1131         (WebCore::threadSafeEqual):
1132         * html/parser/HTMLTreeBuilderSimulator.cpp:
1133         (WebCore::tokenExitsSVG):
1134
1135 2013-03-22  Andy Estes  <aestes@apple.com>
1136
1137         Set the cache partition property on CFURLRequests
1138         https://bugs.webkit.org/show_bug.cgi?id=113116
1139
1140         Patch by Jeffrey Pfau
1141         Reviewed by David Kilzer.
1142
1143         * platform/network/cf/ResourceRequestCFNet.cpp:
1144         (WebCore::ResourceRequest::doUpdatePlatformRequest):
1145         (WebCore::ResourceRequest::doUpdateResourceRequest):
1146
1147 2013-03-22  Julien Chaffraix  <jchaffraix@webkit.org>
1148
1149         [CSS Grid Layout] content-sized row tracks with percentage logical height grid items don't resolve properly
1150         https://bugs.webkit.org/show_bug.cgi?id=113085
1151
1152         Reviewed by Tony Chang.
1153
1154         The core issue is that because overrideContainingBlockLogicalHeight() is unset in
1155         logicalContentHeightForChild, RenderBox::computePercentageLogicalHeight would try to
1156         resolve percentage logical height against the grid element (wrong containing block
1157         as a grid item's containing block is the grid area).
1158
1159         Tests: fast/css-grid-layout/grid-item-multiple-minmax-content-resolution.html
1160                fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution.html
1161
1162         * rendering/RenderGrid.cpp:
1163         (WebCore::RenderGrid::logicalContentHeightForChild):
1164         Set our override logical height to -1, so that we don't try to constrain a grid item's logical height
1165         based on resolving (badly) its percentage.
1166
1167 2013-03-19  Zhenyao Mo  <zmo@google.com>
1168
1169         Check WEBGL_draw_buffers requirements before exposing the extension
1170         https://bugs.webkit.org/show_bug.cgi?id=112359
1171
1172         Reviewed by Kenneth Russell.
1173
1174         * html/canvas/EXTDrawBuffers.cpp:
1175         (WebCore::EXTDrawBuffers::supported): call satisfies*().
1176         (WebCore::EXTDrawBuffers::drawBuffersEXT):
1177         (WebCore):
1178         (WebCore::EXTDrawBuffers::satisfiesWebGLRequirements): check WebGL requirements.
1179         * html/canvas/EXTDrawBuffers.h:
1180         (EXTDrawBuffers):
1181         * html/canvas/WebGLFramebuffer.cpp:
1182         (WebCore::WebGLFramebuffer::getDrawBuffer):
1183         (WebCore):
1184         * html/canvas/WebGLFramebuffer.h:
1185         (WebGLFramebuffer):
1186         * html/canvas/WebGLRenderingContext.cpp:
1187         (WebCore):
1188         (WebCore::WebGLRenderingContext::initializeNewContext):
1189         (WebCore::WebGLRenderingContext::getExtension):
1190         (WebCore::WebGLRenderingContext::getParameter):
1191         (WebCore::WebGLRenderingContext::getSupportedExtensions):
1192         (WebCore::WebGLRenderingContext::validateFramebufferFuncParameters):
1193         (WebCore::WebGLRenderingContext::getMaxDrawBuffers):
1194         (WebCore::WebGLRenderingContext::getMaxColorAttachments):
1195         (WebCore::WebGLRenderingContext::setBackDrawBuffer):
1196         (WebCore::WebGLRenderingContext::restoreCurrentFramebuffer):
1197         (WebCore::WebGLRenderingContext::restoreCurrentTexture2D):
1198         (WebCore::WebGLRenderingContext::supportsDrawBuffers): a cached version of EXTDrawBuffers::supports()
1199         * html/canvas/WebGLRenderingContext.h:
1200         (WebGLRenderingContext):
1201
1202 2013-03-22  Roger Fong  <roger_fong@apple.com>
1203
1204         Unreviewed. Fix AppleWin port following https://bugs.webkit.org/show_bug.cgi?id=113100.
1205         Patch by Alexey Proskuryakov.
1206
1207         * platform/network/cf/ResourceHandleCFNet.cpp:
1208         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
1209
1210 2013-03-22  Tony Chang  <tony@chromium.org>
1211
1212         REGRESSION (r146272): layout issues for flex boxes that have -webkit-flex-wrap: wrap
1213         https://bugs.webkit.org/show_bug.cgi?id=113071
1214
1215         Reviewed by Ojan Vafai.
1216
1217         The refactor in r139535 introduced this bug, where a variable name wasn't updated properly.
1218         In combination with r146272, this bug became more visible when nesting multiline flexboxen.
1219
1220         Test: css3/flexbox/multiline-min-preferred-width.html
1221
1222         * rendering/RenderFlexibleBox.cpp:
1223         (WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths): We want the width of the widest
1224         flexitem, the value in m_minPreferredWidth isn't relevant. Also update the comment for max
1225         preferred width.
1226
1227 2013-03-22  Max Vujovic  <mvujovic@adobe.com>
1228
1229         [CSS Shaders] Clamp css_MixColor before the blending and compositing steps
1230         https://bugs.webkit.org/show_bug.cgi?id=113088
1231
1232         Reviewed by Dean Jackson.
1233
1234         The blending and compositing operations from the spec [1] expect that they are operating on
1235         valid color inputs, in the range [0.0, 1.0]. Thus, we should clamp the css_MixColor input to
1236         this range to avoid implementation-dependent behavior for invalid color inputs.
1237
1238         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blending
1239
1240         Tests: css3/filters/custom/custom-filter-clamp-css-mix-color-negative.html
1241                css3/filters/custom/custom-filter-clamp-css-mix-color.html
1242
1243         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
1244         (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
1245             Clamp css_MixColor as clampedMixColor before using it in the blending and compositing
1246             steps.
1247
1248 2013-03-19  Martin Robinson  <mrobinson@igalia.com>
1249
1250         [GTK] Add WebCoreDOM to the gyp build
1251         https://bugs.webkit.org/show_bug.cgi?id=112737
1252
1253         Reviewed by Nico Weber.
1254
1255         * WebCore.gyp/WebCoreGTK.gyp: Add WebCoreDOM to the gyp build.
1256
1257 2013-03-19  Martin Robinson  <mrobinson@igalia.com>
1258
1259         [GTK] Add WebCoreHTML to the gyp build
1260         https://bugs.webkit.org/show_bug.cgi?id=112727
1261
1262         Reviewed by Nico Weber.
1263
1264         * WebCore.gyp/WebCoreGTK.gyp: Add support for building all files under
1265         the HTML directory. This includes splitting off common WebCore dependencies
1266         into an aggregate target and adding a top-level WebCore target.
1267
1268 2013-03-22  Tim Horton  <timothy_horton@apple.com>
1269
1270         Plugin Snapshotting: Auto-start dominant plugins
1271         https://bugs.webkit.org/show_bug.cgi?id=113111
1272         <rdar://problem/13475726>
1273
1274         Reviewed by Dean Jackson.
1275
1276         * html/HTMLPlugInElement.cpp:
1277         (WebCore::HTMLPlugInElement::defaultEventHandler):
1278         Acknowledge the new "Restarting" DisplayState.
1279         * html/HTMLPlugInElement.h:
1280         Rename PlayingWithPendingMouseClick to RestartingWithPendingMouseClick for accuracy.
1281         Add "Restarting" DisplayState, so we can be aware that the plugin is intentionally restarting and not re-snapshot it.
1282         * html/HTMLPlugInImageElement.cpp:
1283         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Remove m_isPrimarySnapshottedPlugIn.
1284         (WebCore::classNameForShadowRoot): Remove m_isPrimarySnapshottedPlugIn.
1285         (WebCore::HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn): Restart the plugin when it becomes primary.
1286         (WebCore::HTMLPlugInImageElement::updateSnapshotInfo): Remove m_isPrimarySnapshottedPlugIn.
1287         (WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn):
1288         Move the plugin to Restarting unless it's already marked as PendingMouseClick.
1289         (WebCore::HTMLPlugInImageElement::simulatedMouseClickTimerFired): Match the PlayingWithPendingMouseClick rename.
1290         (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Don't snapshot if we're restarting.
1291         * html/HTMLPlugInImageElement.h: Remove m_isPrimarySnapshottedPlugIn.
1292         * rendering/RenderSnapshottedPlugIn.cpp:
1293         (WebCore::RenderSnapshottedPlugIn::paint): Acknowledge the new "Restarting" DisplayState.
1294         (WebCore::RenderSnapshottedPlugIn::getCursor): Acknowledge the new "Restarting" DisplayState.
1295         (WebCore::RenderSnapshottedPlugIn::handleEvent): Match the PlayingWithPendingMouseClick rename.
1296
1297 2013-03-19  Martin Robinson  <mrobinson@igalia.com>
1298
1299         [GTK] Add support for building the WebCore bindings to the gyp build
1300         https://bugs.webkit.org/show_bug.cgi?id=112638
1301
1302         Reviewed by Nico Weber.
1303
1304         Add targets, actions, and rules for building the WebCore bindings. This is
1305         the first part of the WebCoreGTK build.
1306
1307         * WebCore.gyp/ConvertFileToHeaderWithCharacterArray.gypi: Added.
1308         * WebCore.gyp/MakeNames.gypi: Added.
1309         * WebCore.gyp/WebCoreGTK.gyp: Added WebCore bindings build. This has been adapted
1310         from the Chromium build.
1311         * WebCore.gypi: Updated list of derived sources files and added a parameter
1312         for adjusting the location of the built files. We don't want to force the
1313         Mac build to change, but we'd still like to reuse the scripts that the
1314         Chromium build uses.
1315
1316 2013-03-22  Dane Wallinga  <dgwallinga@chromium.org>
1317
1318         Add client callbacks to notify of changes of associated from controls
1319         https://bugs.webkit.org/show_bug.cgi?id=110375
1320
1321         Reviewed by Ryosuke Niwa.
1322
1323         Hook FormAssociatedElement, HTMLFormElement to notify EditorClient of form changes after a page has loaded.
1324         Will be used to add autofill support for ajax-y webpages. e.g if while filling out a form, new fields
1325         are dynamically created, autofill can know to re-query the autofill server and keep going.
1326         https://bugs.webkit.org/show_bug.cgi?id=110375
1327
1328         * dom/Document.cpp:
1329         (WebCore::Document::Document):
1330         (WebCore::Document::didAssociateFormControl):
1331         (WebCore):
1332         (WebCore::Document::didAssociateFormControlsTimerFired):
1333         * dom/Document.h:
1334         (Document):
1335         added method didAssociateFormControl, which batches form changes
1336         and calls out to ChromeClient on a timer.
1337         * html/FormAssociatedElement.cpp:
1338         (WebCore::FormAssociatedElement::resetFormOwner):
1339         (WebCore::FormAssociatedElement::formAttributeChanged):
1340         (WebCore):
1341         * html/FormAssociatedElement.h:
1342         (FormAssociatedElement):
1343         add calls to Document::didAssociateFormControl when form changes
1344         * html/HTMLFormElement.cpp:
1345         (WebCore::HTMLFormElement::insertedInto):
1346         (WebCore):
1347         * html/HTMLFormElement.h:
1348         add call to Document::didAssociateFormControl
1349         * loader/EmptyClients.h:
1350         (EmptyChromeClient):
1351         (WebCore::EmptyChromeClient::didAssociateFormControls):
1352         (WebCore::EmptyChromeClient::shouldNotifyOnFormChanges):
1353         * page/ChromeClient.h:
1354         (ChromeClient):
1355         add new method didAssociateFormControls
1356
1357 2013-03-22  Alexey Proskuryakov  <ap@apple.com>
1358
1359         Split ResourceHandleMac into multiple files
1360         https://bugs.webkit.org/show_bug.cgi?id=113100
1361
1362         Reviewed by Geoff Garen.
1363
1364         It's grown too big to navigate, and I'm going to make WebCoreResourceHandleAsDelegate
1365         substantially more complicated yet.
1366
1367         1. Mechanically moved WebCoreResourceHandleAsDelegate into separate files.
1368         2. Refactored WebCoreSynchronousLoaderClient to be cross-platform, and moved it into
1369         separate files.
1370
1371         * WebCore.vcproj/WebCore.vcproj:
1372         * WebCore.vcxproj/WebCore.vcxproj:
1373         * WebCore.vcxproj/WebCore.vcxproj.filters:
1374         * WebCore.xcodeproj/project.pbxproj:
1375         * platform/network/SynchronousLoaderClient.cpp: Added.
1376         * platform/network/SynchronousLoaderClient.h: Added.
1377         * platform/network/cf/ResourceHandleCFNet.cpp:
1378         * platform/network/mac/SynchronousLoaderClient.mm: Added.
1379         * platform/network/mac/WebCoreResourceHandleAsDelegate.h: Added.
1380         * platform/network/mac/WebCoreResourceHandleAsDelegate.mm: Added.
1381
1382 2013-03-21  Geoffrey Garen  <ggaren@apple.com>
1383
1384         Added a setting for whether JavaScript markup is enabled
1385         https://bugs.webkit.org/show_bug.cgi?id=112999
1386
1387         Reviewed by Maciej Stachowiak.
1388
1389         This setting is useful for clients that want protection from script
1390         injection attacks.
1391
1392         * page/Settings.h:
1393         (Settings): Clarified which clients should call canExecuteScripts().
1394
1395         * page/Settings.in: Added the new setting.
1396
1397 2013-03-22  Roger Fong  <roger_fong@apple.com>
1398
1399         Unreviewed build fix.
1400
1401         * bindings/scripts/preprocessor.pm:
1402         (applyPreprocessor):
1403
1404 2013-03-22  Roger Fong  <roger_fong@apple.com>
1405
1406         Unreviewed. Force kill gcc-3.exe during bindings generation tests to avoid process hangs.
1407
1408         This problem is occuring on the WinEWS bots where there are somehow multiple gcc-3 processes existing at the same time.
1409         This is a speculative fix. There should only be 1 gcc-3.exe process running at a time ever.
1410
1411         * bindings/scripts/preprocessor.pm:
1412         (applyPreprocessor):
1413
1414 2013-03-22  Eric Carlson  <eric.carlson@apple.com>
1415
1416         Cleanup text track selection logic
1417         https://bugs.webkit.org/show_bug.cgi?id=113062
1418
1419         Reviewed by Jer Noble.
1420
1421         No new tests, covered by existing tests.
1422
1423         * html/HTMLMediaElement.cpp:
1424         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Remove.
1425         (WebCore::HTMLMediaElement::configureTextTrackGroup): Don't look at track attributes directly,
1426             use captionPreferences->textTrackSelectionScore to calculate track rank.
1427         (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Set m_processingPreferenceChange here
1428             instead of in captionPreferencesChanged.
1429         (WebCore::HTMLMediaElement::captionPreferencesChanged): Don't suppress calls to setClosedCaptionsVisible,
1430             existing code already makes sure we don't do unnecessary work.
1431         * html/HTMLMediaElement.h:
1432
1433         * html/shadow/MediaControlElements.cpp:
1434         (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Drive by cleanup, don't
1435             process inactive cues.
1436
1437         * html/shadow/MediaControlsApple.cpp:
1438         (WebCore::MediaControlsApple::changedClosedCaptionsVisibility): Call resetTrackListMenu instead
1439             of updateDisplay so we only mark the menu as needing a recalculation and do the work when
1440             it is displayed.
1441
1442         * page/CaptionUserPreferences.cpp:
1443         (WebCore::CaptionUserPreferences::shouldShowCaptions): When in testing mode, return true if
1444             the caption or subtitle preference has been set.
1445         (WebCore::CaptionUserPreferences::setShouldShowCaptions): In testing mode, clear the caption
1446             and subtitle preference when passed false.
1447         (WebCore::CaptionUserPreferences::textTrackSelectionScore): Calculate the track score based on
1448             track type preference and preferred language.
1449         (WebCore::CaptionUserPreferences::textTrackLanguageSelectionScore): Score a track according to
1450             the language presence and position in the preferred languages list.
1451         * page/CaptionUserPreferences.h:
1452
1453         * page/CaptionUserPreferencesMac.h:
1454         * page/CaptionUserPreferencesMac.mm:
1455         (WebCore::CaptionUserPreferencesMac::textTrackSelectionScore): Calculate track language score 
1456             according to user preferences.
1457
1458         * platform/Language.cpp:
1459         (WebCore::indexOfBestMatchingLanguageInList): Repurposed the static bestMatchingLanguage
1460             function to return the location of a language in a Vector.
1461         (WebCore::preferredLanguageFromList): Removed.
1462         * platform/Language.h:
1463
1464 2013-03-22  ChangSeok Oh  <changseok.oh@collabora.com>
1465
1466         Build fix for TransformationMatrix
1467         https://bugs.webkit.org/show_bug.cgi?id=113087
1468
1469         Reviewed by Martin Robinson.
1470
1471         This is a trivial build fix for clutter ac backend. Clutter AC backend doesn't use
1472         TextureMapper so there is nowhere including TransformationMatrix.h.
1473         For the reason, we include it explicitly.
1474
1475         No new tests because of no functionality change.
1476
1477         * platform/graphics/clutter/GraphicsContext3DPrivate.cpp:
1478         * platform/graphics/clutter/GraphicsContext3DPrivate.h:
1479         (WebCore):
1480
1481 2013-03-22  Steve Block  <steveblock@chromium.org>
1482
1483         Coordinates.idl lacks Conditional=GEOLOCATION
1484         https://bugs.webkit.org/show_bug.cgi?id=112949
1485
1486         Reviewed by Steve Block.
1487
1488         No new tests, build optimization only.
1489
1490         * page/Coordinates.idl: Added GEOLOCATION conditional guard.
1491
1492 2013-03-22  Daniel Cheng  <dcheng@chromium.org>
1493
1494         Data store should be readable in dragstart/copy/cut events
1495         https://bugs.webkit.org/show_bug.cgi?id=23695
1496
1497         Reviewed by Tony Chang.
1498
1499         There were several events where data could be written but not read back due to the fact that
1500         different Clipboard method implementations checked permissions inconsistently. This patch
1501         adds helper methods to check if an operation is permitted on a Clipboard and refactors all
1502         direct comparisons against Clipboard::m_policy to use the new helpers instead. This fixes
1503         several bugs where Clipboard::types and Clipboard::getData are not usable inside the
1504         aforementioned events.
1505
1506         Tests: editing/pasteboard/can-read-in-copy-and-cut-events.html
1507                editing/pasteboard/can-read-in-dragstart-event.html
1508
1509         * dom/Clipboard.cpp:
1510         (WebCore::Clipboard::canReadTypes): Formerly restricted to ClipboardReadable and
1511                                             ClipboardTypesReadable; now allows ClipboardWritable as
1512                                             well.
1513         (WebCore::Clipboard::canReadData): Formerly restricted to ClipboardReadable; now allows
1514                                            ClipboardWritable as well.
1515         (WebCore::Clipboard::canWriteData):
1516         (WebCore::Clipboard::canSetDragImage):
1517         (WebCore::Clipboard::hasFileOfType):
1518         (WebCore::Clipboard::hasStringOfType):
1519         (WebCore::Clipboard::setDropEffect):
1520         (WebCore::Clipboard::setEffectAllowed):
1521         * dom/Clipboard.h:
1522         (Clipboard):
1523         * platform/blackberry/ClipboardBlackBerry.cpp:
1524         (WebCore::ClipboardBlackBerry::clearData):
1525         (WebCore::ClipboardBlackBerry::clearAllData):
1526         (WebCore::ClipboardBlackBerry::getData):
1527         (WebCore::ClipboardBlackBerry::setData):
1528         (WebCore::ClipboardBlackBerry::types):
1529         * platform/chromium/ClipboardChromium.cpp:
1530         (WebCore::DataTransferItemPolicyWrapper::kind):
1531         (WebCore::DataTransferItemPolicyWrapper::type):
1532         (WebCore::DataTransferItemPolicyWrapper::getAsString):
1533         (WebCore::DataTransferItemPolicyWrapper::getAsFile):
1534         (WebCore::ClipboardChromium::clearData):
1535         (WebCore::ClipboardChromium::clearAllData):
1536         (WebCore::ClipboardChromium::getData):
1537         (WebCore::ClipboardChromium::setData):
1538         (WebCore::ClipboardChromium::types):
1539         (WebCore::ClipboardChromium::files):
1540         (WebCore::ClipboardChromium::setDragImage):
1541         * platform/gtk/ClipboardGtk.cpp:
1542         (WebCore::ClipboardGtk::clearData):
1543         (WebCore::ClipboardGtk::clearAllData):
1544         (WebCore::ClipboardGtk::getData):
1545         (WebCore::ClipboardGtk::setData):
1546         (WebCore::ClipboardGtk::types):
1547         (WebCore::ClipboardGtk::files):
1548         (WebCore::ClipboardGtk::setDragImage):
1549         * platform/mac/ClipboardMac.mm:
1550         (WebCore::ClipboardMac::clearData):
1551         (WebCore::ClipboardMac::clearAllData):
1552         (WebCore::ClipboardMac::getData):
1553         (WebCore::ClipboardMac::setData):
1554         (WebCore::ClipboardMac::types):
1555         (WebCore::ClipboardMac::files):
1556         (WebCore::ClipboardMac::setDragImage):
1557         * platform/qt/ClipboardQt.cpp:
1558         (WebCore::ClipboardQt::clearData):
1559         (WebCore::ClipboardQt::clearAllData):
1560         (WebCore::ClipboardQt::getData):
1561         (WebCore::ClipboardQt::setData):
1562         (WebCore::ClipboardQt::types):
1563         (WebCore::ClipboardQt::files):
1564         (WebCore::ClipboardQt::setDragImage):
1565         (WebCore::ClipboardQt::items):
1566         * platform/qt/DataTransferItemListQt.cpp:
1567         (WebCore::DataTransferItemListQt::length):
1568         (WebCore::DataTransferItemListQt::item):
1569         (WebCore::DataTransferItemListQt::deleteItem):
1570         (WebCore::DataTransferItemListQt::clear):
1571         (WebCore::DataTransferItemListQt::add):
1572         * platform/qt/DataTransferItemQt.cpp:
1573         (WebCore::DataTransferItemQt::getAsString):
1574         * platform/win/ClipboardWin.cpp:
1575         (WebCore::ClipboardWin::clearData):
1576         (WebCore::ClipboardWin::clearAllData):
1577         (WebCore::ClipboardWin::getData):
1578         (WebCore::ClipboardWin::setData):
1579         (WebCore::ClipboardWin::types):
1580         (WebCore::ClipboardWin::files):
1581         (WebCore::ClipboardWin::setDragImage):
1582
1583 2013-03-22  Andrei Bucur  <abucur@adobe.com>
1584
1585         [CSS Regions] Remove pushLayoutState(RenderFlowThread*) from RenderView
1586         https://bugs.webkit.org/show_bug.cgi?id=113084
1587
1588         Reviewed by Dirk Schulze.
1589
1590         Remove void pushLayoutState(RenderFlowThread*, bool regionsChanged) from RenderView.h because it's not used.
1591
1592         Tests: Code cleanup. No tests needed.
1593
1594         * rendering/RenderView.h:
1595         (RenderView):
1596
1597 2013-03-22  Kondapally Kalyan  <kalyan.kondapally@intel.com>
1598
1599         [EFL] Fix build issues to enable CSS Filter and Shaders support.
1600         https://bugs.webkit.org/show_bug.cgi?id=111274
1601
1602         Reviewed by Noam Rosenthal.
1603
1604         This is in preperation to enable CSS Filter and Shaders support.
1605         This patch fixes related build issues to enable the support.
1606
1607         * platform/graphics/surfaces/efl/GLTransportSurface.cpp:
1608         * platform/graphics/texmap/TextureMapper.cpp:
1609         * platform/graphics/texmap/TextureMapper.h:
1610         (WebCore):
1611         * platform/graphics/texmap/TextureMapperGL.cpp:
1612         * platform/graphics/texmap/TextureMapperGL.h:
1613         (WebCore):
1614         * platform/graphics/texmap/TextureMapperShaderProgram.h:
1615
1616 2013-03-22  Matt Falkenhagen  <falken@chromium.org>
1617
1618         Implement isEnabledFormControl() for SliderThumbElement and SpinButtonElement in terms of disabled()
1619         https://bugs.webkit.org/show_bug.cgi?id=112993
1620
1621         Reviewed by Kent Tamura.
1622
1623         This is an intermediate step for refactoring Node::disabled and
1624         Element::isEnabledFormControl. All classes that override
1625         isEnabledFormControl just return !disabled(), except for
1626         SliderThumbElement and SpinButtonElement. This patch changes those two
1627         classes to do so, which shows that the two functions are redundant and
1628         easy to refactor into a single function in a subsequent patch.
1629
1630         No new tests, there should be no behavior change.
1631
1632         * html/shadow/SliderThumbElement.cpp:
1633         (WebCore::SliderThumbElement::disabled):
1634         (WebCore):
1635         (WebCore::SliderThumbElement::isEnabledFormControl):
1636         * html/shadow/SliderThumbElement.h:
1637         (SliderThumbElement):
1638         * html/shadow/SpinButtonElement.h: The check of shadowHost() is
1639         necessary because it can be detached by JavaScript that runs during
1640         event handling (see r76566)
1641
1642 2013-03-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1643
1644         [Qt] New fast/text/word-space-with-kerning-3.html fails on Qt.
1645         https://bugs.webkit.org/show_bug.cgi?id=112668
1646
1647         Reviewed by Jocelyn Turcotte.
1648
1649         Qt adds word-spacing to leading spaces, but WebCore only expects
1650         us to add for trailing spaces. We only corrected for this in width
1651         calculation but do need to also do it for drawing.
1652
1653         Instead of subtracting the extra word-spacing we now configure the
1654         FormatRange not to apply to leading spaces. This means this behavior
1655         will be applied everywhere reliably.
1656
1657         * platform/graphics/Font.h:
1658         (Font):
1659         * platform/graphics/qt/FontQt.cpp:
1660         (WebCore::Font::drawComplexText):
1661         (WebCore::Font::floatWidthForComplexText):
1662         (WebCore::Font::offsetForPositionForComplexText):
1663         (WebCore::Font::selectionRectForComplexText):
1664         (WebCore::Font::initFormatForTextLayout):
1665
1666 2013-03-22  Joshua Bell  <jsbell@chromium.org>
1667
1668         REGRESSION (r146540?): Crashes in storage/indexeddb/factory-basics-workers.html, storage/indexeddb/transaction-error.html
1669         https://bugs.webkit.org/show_bug.cgi?id=113019
1670
1671         Reviewed by Tony Chang.
1672
1673         Also manifesting flakily under Chromium's content_shell. It's an ASSERT being hit in
1674         the IDBTransaction destructor. The cause was r146540 which allows a stopped context
1675         to reclaim script wrappers. This allows the IDBTransaction to be deref'd at times where
1676         it previously would have just leaked. Modulate the destructor assertions to account
1677         for this case.
1678
1679         No new tests; failures already manifest as flaky crashes in some ports.
1680
1681         * Modules/indexeddb/IDBTransaction.cpp:
1682         (WebCore::IDBTransaction::~IDBTransaction): If context is stopped, expected state
1683         transitions/cleanup may not have occurred before destructor runs.
1684
1685 2013-03-22  David Grogan  <dgrogan@chromium.org>
1686
1687         IndexedDB: Histogram available disk space on attempt to open database
1688         https://bugs.webkit.org/show_bug.cgi?id=112862
1689
1690         Reviewed by Tony Chang.
1691
1692         ChromeOS suspects they might be hitting disk corruption when the disks
1693         are nearly full. This patch logs the available space to either the
1694         "success" or the "fail" histogram as appropriate so that the
1695         distributions can be compared.
1696
1697         No new tests - I don't know of a good way to test histograms. Local
1698         printf testing didn't turn up any bugs.
1699
1700         * platform/leveldb/LevelDBDatabase.cpp:
1701         (WebCore::HistogramFreeSpace):
1702         (WebCore):
1703         (WebCore::LevelDBDatabase::open):
1704
1705 2013-03-22  Nate Chapin  <japhet@chromium.org>
1706
1707         REGRESSION (r146239): Reproducible crash in WebCore::DocumentLoader::responseReceived.
1708         https://bugs.webkit.org/show_bug.cgi?id=112811
1709
1710         Reviewed by Brady Eidson.
1711
1712         Test: http/tests/cache/x-frame-options-304.html
1713
1714         * loader/DocumentLoader.cpp:
1715         (WebCore::DocumentLoader::responseReceived):
1716         * loader/cache/CachedRawResource.cpp:
1717         (WebCore::CachedRawResource::switchClientsToRevalidatedResource):
1718         * loader/cache/CachedRawResource.h:
1719
1720 2013-03-22  Jer Noble  <jer.noble@apple.com>
1721
1722         REGRESSION: -webkit-box-reflect does not show on video elements
1723         https://bugs.webkit.org/show_bug.cgi?id=112397
1724
1725         Reviewed by Eric Carlson.
1726
1727         Work around the ASSERTs generated when setting an AVPlayerLayer's player property
1728         during a CA flush by setting the player property during the next runloop, outside
1729         of a CA flush.
1730
1731         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1732         (PlatformCALayer::clone):
1733
1734 2013-03-22  peavo@outlook.com  <peavo@outlook.com>
1735
1736         [Curl] Performance fix, avoid loading cookie file on every request.
1737         https://bugs.webkit.org/show_bug.cgi?id=113023
1738
1739         Reviewed by Brent Fulgham.
1740
1741         We currently load the cookie file on every request, and when setting cookies from JavaScript, by using the option CURLOPT_COOKIEFILE.
1742         This is very inefficient as the cookie file can get quite large, and file I/O is slow.
1743         It is sufficient to load the cookie file on startup, as we use a shared cookie database between the requests.
1744
1745         * platform/network/curl/CookieJarCurl.cpp:
1746         (WebCore::setCookiesFromDOM): Avoid loading cookie file when setting cookies from JavaScript.
1747         * platform/network/curl/ResourceHandleManager.cpp:
1748         (WebCore::ResourceHandleManager::initializeHandle): Avoid loading cookie file on every request.
1749         (WebCore::ResourceHandleManager::initCookieSession): Load the cookie file to shared database on startup.
1750
1751 2013-03-22  Tiancheng Jiang  <tijiang@rim.com>
1752
1753         [BlackBerry] Update Input field Background Color
1754         https://bugs.webkit.org/show_bug.cgi?id=113063
1755
1756         Reviewed by George Staikos.
1757
1758         RIM PR 307463.
1759         Internally reviewed by Ed Baker.
1760
1761         * platform/blackberry/RenderThemeBlackBerry.cpp:
1762         (WebCore::RenderThemeBlackBerry::paintTextFieldOrTextAreaOrSearchField):
1763
1764 2013-03-22  Ilya Tikhonovsky  <loislo@chromium.org>
1765
1766         Web Inspector: FlameChart. Draw function names over flame chart bar if they fit into the bar.
1767         https://bugs.webkit.org/show_bug.cgi?id=113052
1768
1769         Reviewed by Vsevolod Vlasov.
1770
1771         The draw function will draw the bar title if the text is less than bar width.
1772         Unfortunately almost all the projects which need to be profiled
1773         use long function names with dots. So if the function name has dots and
1774         doesn't fit into the space then prepareTitle will try to drop the prefix before dot.
1775         If the title has no dots then the function will strip the tail of the title.
1776
1777         * inspector/front-end/FlameChart.js:
1778         (WebInspector.FlameChart):
1779         (WebInspector.FlameChart.prototype.draw):
1780         (WebInspector.FlameChart.prototype._prepareTitle):
1781
1782 2013-03-22  Vladislav Kaznacheev  <kaznacheev@chromium.org>
1783
1784         Web Inspector: Add "hidden" attribute to the recently added APIs in Inspector.json
1785         https://bugs.webkit.org/show_bug.cgi?id=113061
1786
1787         Added "hidden": true to the APIs introduced since version 1.0.
1788
1789         Reviewed by Pavel Feldman.
1790
1791         * inspector/Inspector.json:
1792
1793 2013-03-22  Vsevolod Vlasov  <vsevik@chromium.org>
1794
1795         Web Inspector: Correctly implement scrollToLine, revealLine and setSelection on CodeMirror  editor.
1796         https://bugs.webkit.org/show_bug.cgi?id=113028
1797
1798         Reviewed by Pavel Feldman.
1799
1800         Added focus event handler to CodeMirror editor view elememnt to support inspector's focus model.
1801         Added selection and scroll listeners to correctly save editor scroll and selection in history.
1802         Implemented revealLine, scrollToLine and setSelection.
1803         Note: CodeMirror's coordsChar method does not work correctly in "local" mode, implemented as binary search
1804         as a temporary workaround.
1805
1806         * inspector/front-end/CodeMirrorTextEditor.js:
1807         (WebInspector.CodeMirrorTextEditor):
1808         (WebInspector.CodeMirrorTextEditor.prototype.defaultFocusedElement):
1809         (WebInspector.CodeMirrorTextEditor.prototype._handleElementFocus):
1810         (WebInspector.CodeMirrorTextEditor.prototype.revealLine):
1811         (WebInspector.CodeMirrorTextEditor.prototype._coordsChar):
1812         (WebInspector.CodeMirrorTextEditor.prototype._topScrolledLine):
1813         (WebInspector.CodeMirrorTextEditor.prototype._bottomScrolledLine):
1814         (WebInspector.CodeMirrorTextEditor.prototype._scroll):
1815         (WebInspector.CodeMirrorTextEditor.prototype._selectionChange):
1816         (WebInspector.CodeMirrorTextEditor.prototype.scrollToLine):
1817         (WebInspector.CodeMirrorTextEditor.prototype.setSelection):
1818         (WebInspector.CodeMirrorTextEditor.prototype.copyRange):
1819         * inspector/front-end/TextEditor.js:
1820         (WebInspector.TextEditor.prototype.copyRange):
1821
1822 2013-03-22  Vsevolod Vlasov  <vsevik@chromium.org>
1823
1824         Web Inspector: [Regression] Editor scroll is not restored after inspector reload.
1825         https://bugs.webkit.org/show_bug.cgi?id=113027
1826
1827         Reviewed by Pavel Feldman.
1828
1829         * inspector/front-end/SourceFrame.js:
1830         (WebInspector.SourceFrame.prototype.wasShown):
1831         (WebInspector.SourceFrame.prototype._isEditorShowing):
1832         (WebInspector.SourceFrame.prototype._innerHighlightLineIfNeeded):
1833         (WebInspector.SourceFrame.prototype._innerRevealLineIfNeeded):
1834         (WebInspector.SourceFrame.prototype._innerScrollToLineIfNeeded):
1835         (WebInspector.SourceFrame.prototype._innerSetSelectionIfNeeded):
1836
1837 2013-03-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1838
1839         [Qt] Fix build with OPENCL 1.2
1840         https://bugs.webkit.org/show_bug.cgi?id=113056
1841
1842         Reviewed by Kenneth Rohde Christiansen.
1843
1844         Switch qmake checks to the modern style which means we can enable OpenCL with
1845         WEBKIT_CONFIG+=opencl. 
1846
1847         Upgrade OpenCL 1.1 clCreateImage2D to OpenCL 1.2 clCreateImage calls.
1848
1849         * Target.pri:
1850         * WebCore.pri:
1851         * platform/graphics/filters/FilterEffect.cpp:
1852         (WebCore::FilterEffect::createOpenCLImageResult):
1853         * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
1854         (WebCore::FilterContextOpenCL::createOpenCLImage):
1855
1856 2013-03-22  ChangSeok Oh  <changseok.oh@collabora.com>
1857
1858         [GTK][AC] Opacity animation doesn't work with clutter backend
1859         https://bugs.webkit.org/show_bug.cgi?id=110347
1860
1861         Reviewed by Gustavo Noronha Silva.
1862
1863         The static casting in ternary operator doesn't change actual inputted argument type.
1864         So I replaced it with if-else statement.
1865
1866         Covered by existing animation tests.
1867
1868         * platform/graphics/clutter/PlatformClutterAnimation.cpp:
1869         (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
1870         (WebCore::PlatformClutterAnimation::addClutterKeyframeTransitionForProperty):
1871
1872 2013-03-22  ChangSeok Oh  <changseok.oh@collabora.com>
1873
1874         [GTK][AC] Add removing animations procedure with clutter ac backend
1875         https://bugs.webkit.org/show_bug.cgi?id=110607
1876
1877         Reviewed by Gustavo Noronha Silva.
1878
1879         This changes is based on mac port implementation. The only different thing is
1880         that updateAnimations is called explicitly in destructor of GraphicsLayerClutter
1881         to remove uncommitted animations. Because even though we call notifyFlushRequired
1882         to remove existing animations in removeAnimation(), removeClutterAnimationFromLayer
1883         has been never reached since the root layer is destroyed before. It means
1884         that we haven't lost a change to remove actual animations from clutterActor.
1885
1886         Covered by existing animation tests.
1887
1888         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
1889         (WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
1890         (WebCore::GraphicsLayerClutter::removeAnimation):
1891         (WebCore):
1892         (WebCore::GraphicsLayerClutter::removeClutterAnimationFromLayer):
1893         * platform/graphics/clutter/GraphicsLayerClutter.h:
1894         (WebCore::GraphicsLayerClutter::animationIsRunning):
1895         (GraphicsLayerClutter):
1896
1897 2013-03-22  Kondapally Kalyan  <kalyan.kondapally@intel.com>
1898
1899         [EFL][WebGL] Optimize AlphaOp for HTMLVideoElement input.
1900         https://bugs.webkit.org/show_bug.cgi?id=113049
1901
1902         Reviewed by Kenneth Rohde Christiansen.
1903
1904         Covered by existing tests.
1905
1906         Changeset 137397 implemented optimisation to avoid any
1907         unnecessary Unmultiply or Premultiply operation in unpack/pack
1908         provided the Image source is from HTMLVideoElement. This patch
1909         enables the same for EFL port.
1910
1911         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
1912         (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
1913
1914 2013-03-22  Tommy Widenflycht  <tommyw@google.com>
1915
1916         Clean up the speech recognintion API
1917         https://bugs.webkit.org/show_bug.cgi?id=112916
1918
1919         Reviewed by Adam Barth.
1920
1921         This patch cleans away deprecated parts, fixes so that stop() can be called more than once and adds
1922         the missing emma attribute on SpeechRecognitionEvent (which is always null).
1923
1924         Patch covered by existing tests.
1925
1926         * Modules/speech/SpeechRecognition.cpp:
1927         (WebCore::SpeechRecognition::stopFunction):
1928         (WebCore::SpeechRecognition::abort):
1929         (WebCore::SpeechRecognition::didEnd):
1930         (WebCore::SpeechRecognition::SpeechRecognition):
1931         * Modules/speech/SpeechRecognition.h:
1932         (SpeechRecognition):
1933         * Modules/speech/SpeechRecognitionEvent.cpp:
1934         (WebCore::SpeechRecognitionEvent::createResult):
1935         (WebCore::SpeechRecognitionEvent::createNoMatch):
1936         (WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
1937         * Modules/speech/SpeechRecognitionEvent.h:
1938         (WebCore):
1939         (SpeechRecognitionEventInit):
1940         (SpeechRecognitionEvent):
1941         (WebCore::SpeechRecognitionEvent::emma):
1942         * Modules/speech/SpeechRecognitionEvent.idl:
1943
1944 2013-03-22  Emil A Eklund  <eae@chromium.org>
1945
1946         Floor cell widths in AutoTableLayout::recalcColumn
1947         https://bugs.webkit.org/show_bug.cgi?id=112922
1948
1949         Reviewed by Levi Weintraub.
1950
1951         Table cells widths are floored to ensure even distribution of available
1952         space across columns. The code path that computes the width of the
1953         _table_ failed to take this into account and thus can over report the
1954         total width of the table.
1955
1956         Test: fast/sub-pixel/table-with-subpixel-cell-size.html
1957
1958         * rendering/AutoTableLayout.cpp:
1959         (WebCore::AutoTableLayout::recalcColumn): Floor width to match column sizing logic.
1960
1961 2013-03-22  David Kilzer  <ddkilzer@apple.com>
1962
1963         BUILD FIX (r146208): Export shouldPrintExceptions methods for iOS
1964
1965         Fixes the following build failure:
1966
1967             Undefined symbols for architecture i386:
1968               "__ZN7WebCore11PageConsole24setShouldPrintExceptionsEb", referenced from:
1969                     +[WebCoreStatistics setShouldPrintExceptions:] in WebCoreStatistics.o
1970               "__ZN7WebCore11PageConsole21shouldPrintExceptionsEv", referenced from:
1971                     +[WebCoreStatistics shouldPrintExceptions] in WebCoreStatistics.o
1972             ld: symbol(s) not found for architecture i386
1973             clang: error: linker command failed with exit code 1 (use -v to see invocation)
1974
1975         * WebCore.exp.in: Move symbols so they're exported for iOS as
1976         well.
1977
1978 2013-03-22  Yury Semikhatsky  <yurys@chromium.org>
1979
1980         Unreviewed. Fix Chromium Win compilation after r146583.
1981
1982         * bindings/v8/CustomElementHelpers.cpp:
1983         (WebCore::CustomElementHelpers::invokeReadyCallbackIfNeeded):
1984
1985 2013-03-22  Ilya Tikhonovsky  <loislo@chromium.org>
1986
1987         Web Inspector: Flame Chart. Chart has to be zoomed around the mouse pointer.
1988         https://bugs.webkit.org/show_bug.cgi?id=113031
1989
1990         Reviewed by Yury Semikhatsky.
1991
1992         Overview grid is able to zoom around the mouse pointer.
1993         So the simplest way is to translate x coordinate of the mouse pointer hovered over the chart
1994         to x coordinate in term of overview window and pass it to the zoom function.
1995
1996         Minor unrelated fix: draw small border at bottom of the overview grid.
1997
1998         * inspector/front-end/FlameChart.js:
1999         (WebInspector.FlameChart.prototype._onMouseWheel):
2000         * inspector/front-end/OverviewGrid.js:
2001         (WebInspector.OverviewGrid.prototype.zoom):
2002         * inspector/front-end/flameChart.css:
2003         (#flame-chart-overview-container):
2004
2005 2013-03-22  No'am Rosenthal  <noam@webkit.org>
2006
2007         [Texmap] TextureMapperImageBuffer should not use rendering code for filters.
2008         https://bugs.webkit.org/show_bug.cgi?id=113040
2009
2010         Reviewed by Kenneth Rohde Christiansen.
2011
2012         Disable TextureMapperImageBuffer filters, until they can be done the right way.
2013         This should only disrupt accelerated filters in fallback mode, which is a very rare
2014         use case.
2015
2016         No new testable functionality.
2017
2018         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
2019         (WebCore::BitmapTextureImageBuffer::applyFilters):
2020
2021 2013-03-22  Sergey Ryazanov  <serya@chromium.org>
2022
2023         Web Inspector: Report more CSS errors
2024         https://bugs.webkit.org/show_bug.cgi?id=113022
2025
2026         Reviewed by Pavel Feldman.
2027
2028         Reporting next few CSS syntax errors in declaration_list.
2029
2030         * css/CSSGrammar.y.in:
2031
2032 2013-03-18  Yury Semikhatsky  <yurys@chromium.org>
2033
2034         Web Inspector: use individual samples to construct CPU profile flame chart
2035         https://bugs.webkit.org/show_bug.cgi?id=112569
2036
2037         Reviewed by Pavel Feldman.
2038
2039         Added an optional array of samples to the CPU profile returned over the
2040         protocol. Each sample is id of the profile node corresponding to the top frame
2041         of the sample's stack trace. The array of samples if present is used to draw
2042         the flame chart on the CPU profile panel, otherwise flame chart is drawn based
2043         on the aggregated profile data.
2044
2045         * bindings/js/ScriptProfile.cpp:
2046         (WebCore::ScriptProfile::buildInspectorObjectForSamples):
2047         * bindings/js/ScriptProfile.h:
2048         (ScriptProfile):
2049         * bindings/v8/ScriptProfile.cpp:
2050         (WebCore::buildInspectorObjectFor):
2051         (WebCore):
2052         (WebCore::ScriptProfile::buildInspectorObjectForSamples):
2053         * bindings/v8/ScriptProfile.h:
2054         (ScriptProfile):
2055         * bindings/v8/ScriptProfiler.cpp:
2056         (WebCore::ScriptProfiler::start):
2057         * inspector/Inspector.json:
2058         * inspector/InspectorProfilerAgent.cpp:
2059         (WebCore::InspectorProfilerAgent::getCPUProfile):
2060         * inspector/front-end/CPUProfileView.js:
2061         (WebInspector.CPUProfileView.prototype._getCPUProfileCallback):
2062         (WebInspector.CPUProfileView.prototype._buildIdToNodeMap):
2063         * inspector/front-end/FlameChart.js:
2064         (WebInspector.FlameChart.prototype._calculateTimelineData):
2065
2066 2013-03-22  Steve Block  <steveblock@chromium.org>
2067
2068         Use generated bindings for the Coordinates type used by Geolocation
2069         https://bugs.webkit.org/show_bug.cgi?id=112975
2070
2071         Reviewed by Kentaro Hara.
2072
2073         No new tests, refactoring only.
2074
2075         * CMakeLists.txt:
2076         * GNUmakefile.list.am:
2077         * Modules/geolocation/Coordinates.cpp: Renamed from Source/WebCore/bindings/js/JSCoordinatesCustom.cpp.
2078         (WebCore):
2079         (WebCore::Coordinates::altitude):
2080         (WebCore::Coordinates::altitudeAccuracy):
2081         (WebCore::Coordinates::heading):
2082         (WebCore::Coordinates::speed):
2083         * Modules/geolocation/Coordinates.h:
2084         (Coordinates):
2085         * Modules/geolocation/Coordinates.idl:
2086         * Target.pri:
2087         * UseJSC.cmake:
2088         * UseV8.cmake:
2089         * WebCore.gypi:
2090         * WebCore.vcproj/WebCore.vcproj:
2091         * WebCore.vcxproj/WebCore.vcxproj:
2092         * WebCore.vcxproj/WebCore.vcxproj.filters:
2093         * WebCore.xcodeproj/project.pbxproj:
2094         * bindings/js/JSBindingsAllInOne.cpp:
2095         * bindings/v8/custom/V8CoordinatesCustom.cpp: Removed.
2096
2097 2013-03-22  Kunihiko Sakamoto  <ksakamoto@chromium.org>
2098
2099         INPUT_MULTIPLE_FIELDS_UI: Incomplete datetime format should fallback to default
2100         https://bugs.webkit.org/show_bug.cgi?id=113005
2101
2102         Reviewed by Kent Tamura.
2103
2104         Use fallback format when datetime format from locale is not complete.
2105
2106         Tests: fast/forms/date-multiple-fields/date-multiple-fields-fallback-format.html
2107                fast/forms/datetime-multiple-fields/datetime-multiple-fields-fallback-format.html
2108                fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-fallback-format.html
2109                fast/forms/month-multiple-fields/month-multiple-fields-fallback-format.html
2110                fast/forms/time-multiple-fields/time-multiple-fields-fallback-format.html
2111                fast/forms/week-multiple-fields/week-multiple-fields-fallback-format.html
2112
2113         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2114         (DateTimeFormatValidator): A helper class that parses datetime format and tests existence of fields.
2115         (WebCore::DateTimeFormatValidator::DateTimeFormatValidator):
2116         (WebCore::DateTimeFormatValidator::visitField):
2117         (WebCore::DateTimeFormatValidator::validateFormat): Parses datetime format and validates by calling BaseMultipleFieldsDateAndTimeInputType::isValidFormat.
2118         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Checks if dateTimeFormat is valid, and uses fallback format if not.
2119         * html/BaseMultipleFieldsDateAndTimeInputType.h:
2120         (BaseMultipleFieldsDateAndTimeInputType): Declare isValidFormat.
2121         * html/DateInputType.cpp:
2122         (WebCore::DateInputType::isValidFormat): Added.
2123         * html/DateInputType.h:
2124         (DateInputType):
2125         * html/DateTimeInputType.cpp:
2126         (WebCore::DateTimeInputType::isValidFormat): Added.
2127         * html/DateTimeInputType.h:
2128         (DateTimeInputType):
2129         * html/DateTimeLocalInputType.cpp:
2130         (WebCore::DateTimeLocalInputType::isValidFormat): Added.
2131         * html/DateTimeLocalInputType.h:
2132         (DateTimeLocalInputType):
2133         * html/MonthInputType.cpp:
2134         (WebCore::MonthInputType::isValidFormat): Added.
2135         * html/MonthInputType.h:
2136         (MonthInputType):
2137         * html/TimeInputType.cpp:
2138         (WebCore::TimeInputType::isValidFormat): Added.
2139         * html/TimeInputType.h:
2140         (TimeInputType):
2141         * html/WeekInputType.cpp:
2142         (WebCore::WeekInputType::isValidFormat): Added.
2143         * html/WeekInputType.h:
2144         (WeekInputType):
2145
2146 2013-03-22  Hajime Morrita  <morrita@google.com>
2147
2148         Custom Elements: "readyCallback" lifecycle callback should be called.
2149         https://bugs.webkit.org/show_bug.cgi?id=112538
2150
2151         Reviewed by Elliott Sprehn.
2152
2153         This change allows each custom element definition to hook up its instantiation,
2154         namely "readyCallback" lifecycle callback.
2155
2156         The change has two parts:
2157         - 1. Tracking which Element objects to be created.
2158         - 2. Invoking appropriate JavaScript functions, which are readyCallback(),
2159           before the Element object is visible from page script.
2160
2161         For 1, CustomElementRegistry maintains list of "callback
2162         invocaions".  Each list item ("invocation") tracks the element
2163         which has a lifecycle callback to be invoked. Each invocation is
2164         registered when - Any custom element C++ object is instantiated.
2165         See changes on CustomElementConstructor.cpp.
2166
2167         This also happens when @is attribute is set by the parser or node
2168         cloning routine, which can turn a non-custom element into a
2169         type-extended custom element. See changes on Element.cpp.
2170
2171         For 2, CustomElementRegistry basically follows what
2172         MutationObserver is doing, and introduces a method called
2173         deliverLifecycleCallbacks(). This function flushes all pending
2174         callback invocations. You can think it as a dual of
2175         MutationObserver::deliverAllMutations().
2176
2177         The delivery function is called places where MutationObserver's
2178         deliverAllMutations() is called. In addition, it is also called
2179         just before returning from a set of DOM APIs. For example, it is
2180         called just before createElement() returns, so that possibly
2181         created custom element becomes ready through its readyCallback().
2182         Such APIs get "V8DeliverCustomElementCallbacks" IDL attribute. In
2183         principle, APIs which can create new custom element instnaces are
2184         marked. See CustomElementRegistry::CallbackDeliveryScope and
2185         changes on CodeGeneratorV8.pm.
2186
2187         We need this extra work because the readyCallback() needs to give
2188         an illusion so that JavaScript programmers feel like the
2189         readyCallback() callback being called just after it is created,
2190         instead of called on arbitrary late timing like MutationObserver
2191         notifications.
2192
2193         Tests: fast/dom/custom/lifecycle-ready-createElement-recursion.html
2194                fast/dom/custom/lifecycle-ready-createElement-reentrancy.html
2195                fast/dom/custom/lifecycle-ready-creation-api.html
2196                fast/dom/custom/lifecycle-ready-innerHTML.html
2197                fast/dom/custom/lifecycle-ready-parser-only.html
2198                fast/dom/custom/lifecycle-ready-parser-script.html
2199                fast/dom/custom/lifecycle-ready-paste.html
2200
2201         * bindings/scripts/CodeGeneratorV8.pm:
2202         - Hooked up CallbackDeliveryScope through V8DeliverCustomElementCallbacks attriute.
2203         (GenerateCustomElementInvocationScopeIfNeeded):
2204         (GenerateNormalAttrSetter):
2205         (GenerateFunction):
2206         * bindings/scripts/IDLAttributes.txt:
2207         * bindings/v8/CustomElementHelpers.cpp:
2208         (WebCore::CustomElementHelpers::invokeReadyCallbackIfNeeded):
2209         (WebCore::CustomElementHelpers::invokeReadyCallbacksIfNeeded):
2210         * bindings/v8/CustomElementHelpers.h:
2211         (CustomElementHelpers):
2212         * bindings/v8/V8RecursionScope.cpp: Added deliverAllLifecycleCallbacks()
2213         (WebCore::V8RecursionScope::didLeaveScriptContext):
2214         * dom/CustomElementConstructor.cpp:
2215         (WebCore::CustomElementConstructor::createElement):
2216         (WebCore::CustomElementConstructor::createElementInternal):
2217         * dom/CustomElementConstructor.h:
2218         (WebCore::CustomElementConstructor::isExtended):
2219         (CustomElementConstructor):
2220         * dom/CustomElementRegistry.cpp: Adding element tracking and invocation execution.
2221         (WebCore::CustomElementInvocation::CustomElementInvocation):
2222         (WebCore::CustomElementInvocation::~CustomElementInvocation):
2223         (WebCore::activeCustomElementRegistries):
2224         (WebCore::CustomElementRegistry::~CustomElementRegistry):
2225         (WebCore::CustomElementRegistry::didGiveTypeExtension):
2226         (WebCore::CustomElementRegistry::didCreateElement):
2227         (WebCore::CustomElementRegistry::activate):
2228         (WebCore::CustomElementRegistry::deactivate):
2229         (WebCore::CustomElementRegistry::deliverLifecycleCallbacks):
2230         (WebCore::CustomElementRegistry::deliverAllLifecycleCallbacks):
2231         * dom/CustomElementRegistry.h:
2232         (CustomElementInvocation):
2233         (WebCore::CustomElementInvocation::element):
2234         (CallbackDeliveryScope):
2235         (WebCore::CustomElementRegistry::CallbackDeliveryScope::CallbackDeliveryScope):
2236         (WebCore::CustomElementRegistry::CallbackDeliveryScope::~CallbackDeliveryScope):
2237         (CustomElementRegistry):
2238         (WebCore::CustomElementRegistry::deliverAllLifecycleCallbacksIfNeeded):
2239         * dom/Document.cpp:
2240         (WebCore::Document::createElement):
2241         (WebCore::Document::didCreateCustomElement):
2242         * dom/Document.h:
2243         (Document):
2244         * dom/Document.idl:
2245         * dom/Element.cpp:
2246         (WebCore::Element::attributeChangedFromParserOrByCloning): Added to catch @is attribute
2247         (WebCore::Element::parserSetAttributes):
2248         (WebCore::Element::cloneAttributesFromElement):
2249         * dom/Element.h:
2250         * dom/Node.idl:
2251         * dom/ShadowRoot.idl:
2252         * html/HTMLElement.idl:
2253         * html/parser/HTMLScriptRunner.cpp: Added deliverAllLifecycleCallbacks()
2254         (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
2255         (WebCore::HTMLScriptRunner::runScript):
2256
2257 2013-03-22  Tommy Widenflycht  <tommyw@google.com>
2258
2259         MediaStream API: Finalize the RTCPeerConnection states
2260         https://bugs.webkit.org/show_bug.cgi?id=112792
2261
2262         Reviewed by Adam Barth.
2263
2264         This patch finalized the RTCPeerConnection state and events. These changes
2265         have not yet pushed out to the editors draft; but they are uncontroversial
2266         and agreed upon.
2267
2268         readyState will be deleted; please use the replacement signalingState which is already available.
2269         onstatechange -> onsignalingstatechange
2270         onicechange -> oniceconnectionstatechange
2271         ongatheringchange will be deleted since oniceconnectionstatechange can be used for the same purpose.
2272         RTCIceConnectionState::"starting" -> RTCIceConnectionState::"new"
2273
2274         Patch covered by modified tests.
2275
2276         * Modules/mediastream/RTCPeerConnection.cpp:
2277         (WebCore::RTCPeerConnection::RTCPeerConnection):
2278         (WebCore::RTCPeerConnection::iceConnectionState):
2279         (WebCore::RTCPeerConnection::changeSignalingState):
2280         (WebCore::RTCPeerConnection::changeIceGatheringState):
2281         (WebCore::RTCPeerConnection::changeIceConnectionState):
2282         * Modules/mediastream/RTCPeerConnection.h:
2283         (RTCPeerConnection):
2284         * Modules/mediastream/RTCPeerConnection.idl:
2285         * dom/EventNames.h:
2286         (WebCore):
2287         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
2288
2289 2013-03-22  Mike West  <mkwst@chromium.org>
2290
2291         Prefer 'KURL(ParsedURLString, String)' when dealing with known-good data.
2292         https://bugs.webkit.org/show_bug.cgi?id=112965
2293
2294         Reviewed by Alexey Proskuryakov.
2295
2296         In https://bugs.webkit.org/show_bug.cgi?id=112783#c6, Adam noted that
2297         it would be possible to use 'KURL(ParsedURLString, [url])' rather than
2298         'KURL(KURL(), [url])', since we knew that the URL in question is a
2299         value and absolute URL. This patch fixes the obvious instances of this
2300         pattern; there are several more 'KURL(KURL(), String)' calls in
2301         WebCore but these were the only places I was reasonably sure that bad
2302         data couldn't creep in.
2303
2304         * dom/Document.cpp:
2305         (WebCore::Document::updateBaseURL):
2306             'documentURI' is pulled from 'url()->string()'. It's safe.
2307         * page/ContentSecurityPolicy.cpp:
2308         (WebCore::gatherSecurityPolicyViolationEventData):
2309         (WebCore::ContentSecurityPolicy::reportViolation):
2310             'CallFrame::sourceURL()' is a known valid/absolute URL.
2311         * page/SecurityOrigin.cpp:
2312         (WebCore::SecurityOrigin::createFromDatabaseIdentifier):
2313         (WebCore::SecurityOrigin::create):
2314             The strings constructed here are certainly valid.
2315
2316 2013-03-22  Ilya Tikhonovsky  <loislo@chromium.org>
2317
2318         Web Inspector: Flame Chart. move overview window when user scrolls the chart.
2319         https://bugs.webkit.org/show_bug.cgi?id=113014
2320
2321         Reviewed by Yury Semikhatsky.
2322
2323         I found that I could use scaling mechanics in OverviewGrid for scaling the chart.
2324         But the dragging part was not so simple due to the different approaches in
2325         OverviewGrid and FlameChart. OverviewGrid used _windowLeft and _windowRight
2326         when FlameChart used _xOffset and _xScaleFactor and width.
2327         It was not practical and I rewrote the FlameChart mechanics
2328         and now it also uses _windowLeft _windowRight.
2329
2330         * inspector/front-end/FlameChart.js:
2331         (WebInspector.FlameChart):
2332         (WebInspector.FlameChart.Calculator.prototype._updateBoundaries):
2333         (WebInspector.FlameChart.Calculator.prototype.computePosition):
2334         (WebInspector.FlameChart.prototype._onWindowChanged):
2335         (WebInspector.FlameChart.prototype._startCanvasDragging):
2336         (WebInspector.FlameChart.prototype._canvasDragging):
2337         (WebInspector.FlameChart.prototype._onMouseMove):
2338         (WebInspector.FlameChart.prototype._onMouseWheel):
2339         (WebInspector.FlameChart.prototype._coordinatesToNodeIndex):
2340         (WebInspector.FlameChart.prototype._drawOverviewCanvas):
2341         (WebInspector.FlameChart.prototype.draw):
2342         (WebInspector.FlameChart.prototype._updateBoundaries):
2343         (WebInspector.FlameChart.prototype.update):
2344         * inspector/front-end/OverviewGrid.js:
2345         (WebInspector.OverviewGrid.prototype.setWindowPosition):
2346         (WebInspector.OverviewGrid.prototype.setWindow):
2347         (WebInspector.OverviewGrid.prototype.addEventListener):
2348         (WebInspector.OverviewGrid.prototype.zoom):
2349         (WebInspector.OverviewGrid.Window.prototype._zoom):
2350         * inspector/front-end/inspectorCommon.css:
2351         (.overview-grid-window-rulers):
2352
2353 2013-03-22  Steve Block  <steveblock@chromium.org>
2354
2355         Move GeolocationClient.h to Modules/geolocation/
2356         https://bugs.webkit.org/show_bug.cgi?id=112997
2357
2358         Reviewed by Kentaro Hara.
2359
2360         No new tests, no functional change.
2361
2362         * GNUmakefile.list.am:
2363         * Modules/geolocation/GeolocationClient.h: Renamed from Source/WebCore/page/GeolocationClient.h.
2364         (WebCore):
2365         (GeolocationClient):
2366         (WebCore::GeolocationClient::~GeolocationClient):
2367         * WebCore.vcproj/WebCore.vcproj:
2368         * WebCore.vcxproj/WebCore.vcxproj:
2369         * WebCore.vcxproj/WebCore.vcxproj.filters:
2370         * WebCore.xcodeproj/project.pbxproj:
2371
2372 2013-03-22  Sheriff Bot  <webkit.review.bot@gmail.com>
2373
2374         Unreviewed, rolling out r146534 and r146565.
2375         http://trac.webkit.org/changeset/146534
2376         http://trac.webkit.org/changeset/146565
2377         https://bugs.webkit.org/show_bug.cgi?id=113017
2378
2379         "r146534 caused perf regression on Chromium Linux x64"
2380         (Requested by yurys on #webkit).
2381
2382         * bindings/scripts/CodeGeneratorV8.pm:
2383         (GenerateNormalAttrSetter):
2384         (GenerateOverloadedFunction):
2385         (GenerateFunctionCallback):
2386         (GenerateFunction):
2387         (GenerateParametersCheck):
2388         (GenerateSingleConstructorCallback):
2389         (GenerateNonStandardFunction):
2390         (GenerateImplementation):
2391         (GenerateFunctionCallString):
2392         * bindings/scripts/IDLAttributes.txt:
2393         * bindings/scripts/test/V8/V8Float64Array.cpp:
2394         (WebCore):
2395         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2396         (WebCore):
2397         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2398         (WebCore):
2399         * bindings/scripts/test/V8/V8TestInterface.cpp:
2400         (WebCore):
2401         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2402         (WebCore):
2403         * bindings/scripts/test/V8/V8TestObj.cpp:
2404         (WebCore):
2405         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2406         (WebCore):
2407         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
2408         (WebCore):
2409         * bindings/v8/CustomElementHelpers.cpp:
2410         * bindings/v8/CustomElementHelpers.h:
2411         (WebCore):
2412         (CustomElementHelpers):
2413         * bindings/v8/V8DOMConfiguration.cpp:
2414         (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
2415         (WebCore::V8DOMConfiguration::configureTemplate):
2416         * bindings/v8/V8DOMConfiguration.h:
2417         (BatchedMethod):
2418         (V8DOMConfiguration):
2419         * bindings/v8/V8RecursionScope.cpp:
2420         (WebCore::V8RecursionScope::didLeaveScriptContext):
2421         * dom/CustomElementConstructor.cpp:
2422         (WebCore::CustomElementConstructor::createElement):
2423         * dom/CustomElementConstructor.h:
2424         (CustomElementConstructor):
2425         * dom/CustomElementRegistry.cpp:
2426         (WebCore::CustomElementRegistry::~CustomElementRegistry):
2427         * dom/CustomElementRegistry.h:
2428         (WebCore):
2429         (CustomElementRegistry):
2430         * dom/Document.cpp:
2431         (WebCore::Document::createElement):
2432         (WebCore::Document::registerElement):
2433         * dom/Document.h:
2434         * dom/Document.idl:
2435         * dom/Element.cpp:
2436         (WebCore::Element::parserSetAttributes):
2437         (WebCore::Element::cloneAttributesFromElement):
2438         * dom/Element.h:
2439         * dom/Element.idl:
2440         * dom/Node.idl:
2441         * dom/ShadowRoot.idl:
2442         * html/HTMLElement.idl:
2443         * html/parser/HTMLScriptRunner.cpp:
2444         (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
2445         (WebCore::HTMLScriptRunner::runScript):
2446
2447 2013-03-22  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
2448
2449         [GStreamer] Memory leak in AudioFileReader::createBus()
2450         https://bugs.webkit.org/show_bug.cgi?id=112925
2451
2452         Reviewed by Martin Robinson.
2453
2454         Adopt the reference returned by g_timeout_source_new()
2455         to fix a memory leak.
2456
2457         No new tests. No change in behavior.
2458
2459         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
2460         (WebCore::AudioFileReader::createBus):
2461
2462 2013-03-22  Steve Block  <steveblock@chromium.org>
2463
2464         Move page/Coordinates.[h|idl] to Modules/geolocation/
2465         https://bugs.webkit.org/show_bug.cgi?id=112945
2466
2467         Reviewed by Kentaro Hara.
2468
2469         No new tests, no functional change.
2470
2471         * CMakeLists.txt:
2472         * DerivedSources.make:
2473         * DerivedSources.pri:
2474         * GNUmakefile.list.am:
2475         * Modules/geolocation/Coordinates.h: Renamed from Source/WebCore/page/Coordinates.h.
2476         (WebCore):
2477         (Coordinates):
2478         (WebCore::Coordinates::create):
2479         (WebCore::Coordinates::isolatedCopy):
2480         (WebCore::Coordinates::latitude):
2481         (WebCore::Coordinates::longitude):
2482         (WebCore::Coordinates::altitude):
2483         (WebCore::Coordinates::accuracy):
2484         (WebCore::Coordinates::altitudeAccuracy):
2485         (WebCore::Coordinates::heading):
2486         (WebCore::Coordinates::speed):
2487         (WebCore::Coordinates::canProvideAltitude):
2488         (WebCore::Coordinates::canProvideAltitudeAccuracy):
2489         (WebCore::Coordinates::canProvideHeading):
2490         (WebCore::Coordinates::canProvideSpeed):
2491         (WebCore::Coordinates::Coordinates):
2492         * Modules/geolocation/Coordinates.idl: Renamed from Source/WebCore/page/Coordinates.idl.
2493         * Target.pri:
2494         * WebCore.gypi:
2495         * WebCore.vcproj/WebCore.vcproj:
2496         * WebCore.vcxproj/WebCore.vcxproj:
2497         * WebCore.vcxproj/WebCore.vcxproj.filters:
2498         * WebCore.xcodeproj/project.pbxproj:
2499
2500 2013-03-21  Hajime Morrita  <morrita@google.com>
2501
2502         Custom Elements: "readyCallback" lifecycle callback should be called.
2503         https://bugs.webkit.org/show_bug.cgi?id=112538
2504
2505         Reviewed by Elliott Sprehn.
2506
2507         This change allows each custom element definition to hook up its instantiation,
2508         namely "readyCallback" lifecycle callback.
2509
2510         The change has two parts:
2511         - 1. Tracking which Element objects to be created.
2512         - 2. Invoking appropriate JavaScript functions, which are readyCallback(),
2513           before the Element object is visible from page script.
2514
2515         For 1, CustomElementRegistry maintains list of "callback
2516         invocaions".  Each list item ("invocation") tracks the element
2517         which has a lifecycle callback to be invoked. Each invocation is
2518         registered when - Any custom element C++ object is instantiated.
2519         See changes on CustomElementConstructor.cpp.
2520
2521         This also happens when @is attribute is set by the parser or node
2522         cloning routine, which can turn a non-custom element into a
2523         type-extended custom element. See changes on Element.cpp.
2524
2525         For 2, CustomElementRegistry basically follows what
2526         MutationObserver is doing, and introduces a method called
2527         deliverLifecycleCallbacks(). This function flushes all pending
2528         callback invocations. You can think it as a dual of
2529         MutationObserver::deliverAllMutations().
2530
2531         The delivery function is called places where MutationObserver's
2532         deliverAllMutations() is called. In addition, it is also called
2533         just before returning from a set of DOM APIs. For example, it is
2534         called just before createElement() returns, so that possibly
2535         created custom element becomes ready through its readyCallback().
2536         Such APIs get "V8DeliverCustomElementCallbacks" IDL attribute. In
2537         principle, APIs which can create new custom element instnaces are
2538         marked. See CustomElementRegistry::CallbackDeliveryScope and
2539         changes on CodeGeneratorV8.pm.
2540
2541         We need this extra work because the readyCallback() needs to give
2542         an illusion so that JavaScript programmers feel like the
2543         readyCallback() callback being called just after it is created,
2544         instead of called on arbitrary late timing like MutationObserver
2545         notifications.
2546
2547         Tests: fast/dom/custom/lifecycle-ready-createElement-recursion.html
2548                fast/dom/custom/lifecycle-ready-createElement-reentrancy.html
2549                fast/dom/custom/lifecycle-ready-creation-api.html
2550                fast/dom/custom/lifecycle-ready-innerHTML.html
2551                fast/dom/custom/lifecycle-ready-parser-only.html
2552                fast/dom/custom/lifecycle-ready-parser-script.html
2553                fast/dom/custom/lifecycle-ready-paste.html
2554
2555         * bindings/scripts/CodeGeneratorV8.pm:
2556         - Hooked up CallbackDeliveryScope through V8DeliverCustomElementCallbacks attriute.
2557         (GenerateCustomElementInvocationScopeIfNeeded):
2558         (GenerateNormalAttrSetter):
2559         (GenerateFunction):
2560         * bindings/scripts/IDLAttributes.txt:
2561         * bindings/v8/CustomElementHelpers.cpp:
2562         (WebCore::CustomElementHelpers::invokeReadyCallbackIfNeeded):
2563         (WebCore::CustomElementHelpers::invokeReadyCallbacksIfNeeded):
2564         * bindings/v8/CustomElementHelpers.h:
2565         (CustomElementHelpers):
2566         * bindings/v8/V8RecursionScope.cpp: Added deliverAllLifecycleCallbacks()
2567         (WebCore::V8RecursionScope::didLeaveScriptContext):
2568         * dom/CustomElementConstructor.cpp:
2569         (WebCore::CustomElementConstructor::createElement):
2570         (WebCore::CustomElementConstructor::createElementInternal):
2571         * dom/CustomElementConstructor.h:
2572         (WebCore::CustomElementConstructor::isExtended):
2573         (CustomElementConstructor):
2574         * dom/CustomElementRegistry.cpp: Adding element tracking and invocation execution.
2575         (WebCore::CustomElementInvocation::CustomElementInvocation):
2576         (WebCore::CustomElementInvocation::~CustomElementInvocation):
2577         (WebCore::activeCustomElementRegistries):
2578         (WebCore::CustomElementRegistry::~CustomElementRegistry):
2579         (WebCore::CustomElementRegistry::didGiveTypeExtension):
2580         (WebCore::CustomElementRegistry::didCreateElement):
2581         (WebCore::CustomElementRegistry::activate):
2582         (WebCore::CustomElementRegistry::deactivate):
2583         (WebCore::CustomElementRegistry::deliverLifecycleCallbacks):
2584         (WebCore::CustomElementRegistry::deliverAllLifecycleCallbacks):
2585         * dom/CustomElementRegistry.h:
2586         (CustomElementInvocation):
2587         (WebCore::CustomElementInvocation::element):
2588         (CallbackDeliveryScope):
2589         (WebCore::CustomElementRegistry::CallbackDeliveryScope::CallbackDeliveryScope):
2590         (WebCore::CustomElementRegistry::CallbackDeliveryScope::~CallbackDeliveryScope):
2591         (CustomElementRegistry):
2592         (WebCore::CustomElementRegistry::deliverAllLifecycleCallbacksIfNeeded):
2593         * dom/Document.cpp:
2594         (WebCore::Document::createElement):
2595         (WebCore::Document::didCreateCustomElement):
2596         * dom/Document.h:
2597         (Document):
2598         * dom/Document.idl:
2599         * dom/Element.cpp:
2600         (WebCore::Element::attributeChangedFromParserOrByCloning): Added to catch @is attribute
2601         (WebCore::Element::parserSetAttributes):
2602         (WebCore::Element::cloneAttributesFromElement):
2603         * dom/Element.h:
2604         * dom/Node.idl:
2605         * dom/ShadowRoot.idl:
2606         * html/HTMLElement.idl:
2607         * html/parser/HTMLScriptRunner.cpp: Added deliverAllLifecycleCallbacks()
2608         (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
2609         (WebCore::HTMLScriptRunner::runScript):
2610
2611 2013-03-21  Jer Noble  <jer.noble@apple.com>
2612
2613         Crash in WebCore::MediaPlayer::cachedResourceLoader + 4
2614         https://bugs.webkit.org/show_bug.cgi?id=112977
2615
2616         Reviewed by Geoffrey Garen.
2617
2618         Speculative fix for a NULL-dereference crash. MediaPlayerPrivateAVFoundationObjC is the
2619         sole owner of a WebCoreAVFLoaderDelegate instance. It releases this instance in its destructor,
2620         but it is possible that, on another thread, the AVAssetResourceLoader has already begun
2621         using the delegate and in so doing has retained it. By the time the delegate method is fired
2622         on the main thread, the MediaPlayerPrivateAVFoundationObjC owner of the delegate has already
2623         been deleted, and the delegate's m_callback pointer is now pointing at freed memory.
2624
2625         In addition to calling -[AVAssetResourceLoader setDelegate:queue:] to avoid any not-yet-started
2626         delegate callbacks, MediaPlayerPrivateAVFoundationObjC should clear the WebCoreAVFLoaderDelegate
2627         m_callback ivar, to avoid calling into freed memory for already queued delegate callbacks.
2628
2629         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2630         (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): Clear the m_loaderDelegate's callback pointer.
2631         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]): Check the value of m_callback before continuing.
2632         (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]): Ditto.
2633         (-[WebCoreAVFLoaderDelegate setCallback:]): Added simple setter.
2634
2635 2013-03-21  Takashi Sakamoto  <tasak@google.com>
2636
2637         XMLDocumentParser doesn't parse <template> correctly.
2638         https://bugs.webkit.org/show_bug.cgi?id=112328
2639
2640         Reviewed by Hajime Morrita.
2641
2642         XMLDocumentParser should check whether a parent node is attached or not
2643         when a new element is appended.
2644
2645         Test: fast/dom/HTMLTemplateElement/xhtml-with-titleElement-parsing-crash.xhtml
2646
2647         * xml/parser/XMLDocumentParserLibxml2.cpp:
2648         (WebCore::XMLDocumentParser::startElementNs):
2649         m_currentNode is a parent node of newElement, but it is updated by
2650         pushCurrentNode. So firstly stored copied m_curretNode's value into
2651         local currentNode and used the currentNode to check whether
2652         newElement's parent is attached or not.
2653
2654 2013-03-21  David Grogan  <dgrogan@chromium.org>
2655
2656         Unreviewed, rolling out r146560.
2657         http://trac.webkit.org/changeset/146560
2658         https://bugs.webkit.org/show_bug.cgi?id=112862
2659
2660         invalid parameter to histogram
2661
2662         * platform/leveldb/LevelDBDatabase.cpp:
2663         (WebCore::LevelDBDatabase::open):
2664
2665 2013-03-21  David Grogan  <dgrogan@chromium.org>
2666
2667         IndexedDB: Histogram available disk space on attempt to open database
2668         https://bugs.webkit.org/show_bug.cgi?id=112862
2669
2670         Reviewed by Adam Barth.
2671
2672         ChromeOS suspects they might be hitting disk corruption when the disks
2673         are nearly full. This patch logs the available space to either the
2674         "success" or the "fail" histogram as appropriate so that the
2675         distributions can be compared.
2676
2677         No new tests - I don't know of a good way to test histograms. Local
2678         printf testing didn't turn up any bugs.
2679
2680         * platform/leveldb/LevelDBDatabase.cpp:
2681         (WebCore::HistogramFreeSpace):
2682         (WebCore):
2683         (WebCore::LevelDBDatabase::open):
2684
2685 2013-03-21  Li Yin  <li.yin@intel.com>
2686
2687         FileAPI: Remove deprecation warning when ArrayBuffer is in Blob constructor.
2688         https://bugs.webkit.org/show_bug.cgi?id=88389
2689
2690         Reviewed by Kenneth Russell.
2691
2692         Spec: http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob
2693         Both ArrayBuffer and ArrayBufferView should be supported for Blob constructor.
2694
2695         Test: fast/files/blob-constructor.html.
2696
2697         * bindings/js/JSBlobCustom.cpp:
2698         (WebCore::JSBlobConstructor::constructJSBlob):
2699         * bindings/v8/custom/V8BlobCustom.cpp:
2700         (WebCore::V8Blob::constructorCustom):
2701         * fileapi/WebKitBlobBuilder.cpp:
2702         (WebCore::BlobBuilder::append): Remove the deprecated warning.
2703         * fileapi/WebKitBlobBuilder.h:
2704         (WebCore):
2705         (BlobBuilder):
2706
2707 2013-03-21  Takashi Sakamoto  <tasak@google.com>
2708
2709         [Shadow]: @host styles are not applied dynamically
2710         https://bugs.webkit.org/show_bug.cgi?id=112869
2711
2712         Reviewed by Elliott Sprehn.
2713
2714         Need to add features of @host @-rules to rule feature set.
2715
2716         Test: fast/dom/shadow/athost-apply-dynamically.html
2717
2718         * css/StyleScopeResolver.cpp:
2719         (WebCore::StyleScopeResolver::collectFeaturesTo):
2720
2721 2013-03-21  Hayato Ito  <hayato@chromium.org>
2722
2723         [Shadow] Provide an api of insertionParent().
2724         https://bugs.webkit.org/show_bug.cgi?id=112866
2725
2726         Add insertinParent binding to Element and Text.
2727         It's prefixed (webkitInsertionParent) and guarded by SHADOW_DOM flag.
2728
2729         The bug in the Shadow DOM spec is here:
2730         https://www.w3.org/Bugs/Public/show_bug.cgi?id=21067
2731
2732         Reviewed by Dimitri Glazkov.
2733
2734         Test: fast/dom/shadow/insertion-parent.html
2735
2736         * dom/Element.idl:
2737         * dom/Node.cpp:
2738         (WebCore::Node::insertionParentForBinding):
2739         (WebCore):
2740         * dom/Node.h:
2741         (Node):
2742         * dom/Text.idl:
2743
2744 2013-03-21  Tom Sepez  <tsepez@chromium.org>
2745
2746         Bypass XSSAuditor for asp.net servers.
2747         https://bugs.webkit.org/show_bug.cgi?id=112235
2748
2749         Reviewed by Adam Barth.
2750
2751         Similar to https://bugs.webkit.org/show_bug.cgi?id=81283, but the 
2752         fix to that bug failed to cover this particular comma-splicing case.
2753         
2754         Test: http/tests/security/xssAuditor/img-tag-with-comma.html
2755
2756         * html/parser/XSSAuditor.cpp:
2757         (WebCore::isTerminatingCharacter):
2758         Beware of comma-splicing tricks by stopping at commas.
2759
2760 2013-03-21  Brady Eidson  <beidson@apple.com>
2761
2762         If a previously loaded resource is later stored to the disk cache, replace the buffer with MMAP'ed memory.
2763         <rdar://problem/13414154> and https://bugs.webkit.org/show_bug.cgi?id=112943
2764
2765         Reviewed by Geoff Garen.
2766
2767         No new tests (No change in behavior.)
2768
2769         Give SharedBuffer the ability to replace its contents from another SharedBuffer:
2770         * platform/SharedBuffer.h:
2771         * platform/cf/SharedBufferCF.cpp:
2772         (WebCore::SharedBuffer:: tryReplaceContentsWithPlatformBuffer):
2773
2774         Forward along SharedBuffer's new ability to ResourceBuffer:
2775         * loader/mac/ResourceBuffer.mm:
2776         (WebCore::ResourceBuffer:: tryReplaceSharedBufferContents):
2777         * loader/ResourceBuffer.h:
2778
2779         Give CachedResource the ability to replace its encoded data buffer if appropriate:
2780         * loader/cache/CachedResource.cpp:
2781         (WebCore::CachedResource:: tryReplaceEncodedData):
2782         * loader/cache/CachedResource.h:
2783
2784         * WebCore.exp.in:
2785
2786 2013-03-21  Joshua Bell  <jsbell@chromium.org>
2787
2788         IndexedDB: Ensure script wrappers can be collected after context is stopped
2789         https://bugs.webkit.org/show_bug.cgi?id=112976
2790
2791         Reviewed by Adam Barth.
2792
2793         ActiveDOMObject::hasPendingActivity is called to see if script wrappers
2794         can be disposed of. Once the script execution context has stopped they
2795         should be free to go - include this in the checks.
2796
2797         No new tests - suggestions welcome.
2798
2799         * Modules/indexeddb/IDBDatabase.cpp:
2800         (WebCore::IDBDatabase::hasPendingActivity): Return false if stopped.
2801         (WebCore::IDBDatabase::stop): Don't bother calling empty super impl.
2802         * Modules/indexeddb/IDBRequest.cpp:
2803         (WebCore::IDBRequest::hasPendingActivity): Return false if stopped.
2804         (WebCore::IDBRequest::stop): Don't bother calling empty super impl.
2805         * Modules/indexeddb/IDBTransaction.cpp:
2806         (WebCore::IDBTransaction::hasPendingActivity): Return false if stopped.
2807         (WebCore::IDBTransaction::stop): Don't bother calling empty super impl.
2808
2809 2013-03-21  Russell McClellan  <russell.mcclellan@gmail.com>
2810
2811         Remove upcastPointer from ActiveDOMObject constructor
2812         https://bugs.webkit.org/show_bug.cgi?id=112858
2813
2814         Reviewed by Alexey Proskuryakov.
2815
2816         Removed pesky argument to ActiveDOMObject constructor that is no longer
2817         used.
2818
2819         No new tests (no change in behavior).
2820
2821         * Modules/battery/BatteryManager.cpp:
2822         (WebCore::BatteryManager::BatteryManager):
2823         * Modules/filesystem/DOMFileSystem.cpp:
2824         (WebCore::DOMFileSystem::DOMFileSystem):
2825         * Modules/filesystem/FileWriter.cpp:
2826         (WebCore::FileWriter::FileWriter):
2827         * Modules/geolocation/Geolocation.cpp:
2828         (WebCore::Geolocation::Geolocation):
2829         * Modules/indexeddb/IDBDatabase.cpp:
2830         (WebCore::IDBDatabase::IDBDatabase):
2831         * Modules/indexeddb/IDBRequest.cpp:
2832         (WebCore::IDBRequest::IDBRequest):
2833         * Modules/indexeddb/IDBTransaction.cpp:
2834         (WebCore::IDBTransaction::IDBTransaction):
2835         * Modules/mediasource/MediaSource.cpp:
2836         (WebCore::MediaSource::MediaSource):
2837         * Modules/mediastream/MediaStreamTrack.cpp:
2838         (WebCore::MediaStreamTrack::MediaStreamTrack):
2839         * Modules/mediastream/RTCDTMFSender.cpp:
2840         (WebCore::RTCDTMFSender::RTCDTMFSender):
2841         * Modules/mediastream/RTCPeerConnection.cpp:
2842         (WebCore::RTCPeerConnection::RTCPeerConnection):
2843         * Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:
2844         (WebCore::RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl):
2845         * Modules/mediastream/RTCStatsRequestImpl.cpp:
2846         (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
2847         * Modules/mediastream/RTCVoidRequestImpl.cpp:
2848         (WebCore::RTCVoidRequestImpl::RTCVoidRequestImpl):
2849         * Modules/networkinfo/NetworkInfoConnection.cpp:
2850         (WebCore::NetworkInfoConnection::NetworkInfoConnection):
2851         * Modules/notifications/Notification.cpp:
2852         (WebCore::Notification::Notification):
2853         * Modules/notifications/NotificationCenter.cpp:
2854         (WebCore::NotificationCenter::NotificationCenter):
2855         * Modules/speech/SpeechRecognition.cpp:
2856         (WebCore::SpeechRecognition::SpeechRecognition):
2857         * Modules/webaudio/AudioContext.cpp:
2858         (WebCore::AudioContext::AudioContext):
2859         * Modules/webdatabase/DatabaseContext.cpp:
2860         (WebCore::DatabaseContext::DatabaseContext):
2861         * Modules/websockets/WebSocket.cpp:
2862         (WebCore::WebSocket::WebSocket):
2863         * css/FontLoader.cpp:
2864         (WebCore::FontLoader::FontLoader):
2865         * dom/ActiveDOMObject.cpp:
2866         (WebCore::ActiveDOMObject::ActiveDOMObject):
2867         * dom/ActiveDOMObject.h:
2868         (ActiveDOMObject):
2869         * dom/ScriptExecutionContext.cpp:
2870         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
2871         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
2872         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
2873         (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
2874         (WebCore::ScriptExecutionContext::didCreateActiveDOMObject):
2875         * dom/ScriptExecutionContext.h:
2876         (ScriptExecutionContext):
2877         (WebCore::ScriptExecutionContext::activeDOMObjects):
2878         * fileapi/FileReader.cpp:
2879         (WebCore::FileReader::FileReader):
2880         * html/HTMLMarqueeElement.cpp:
2881         (WebCore::HTMLMarqueeElement::HTMLMarqueeElement):
2882         * html/HTMLMediaElement.cpp:
2883         (WebCore::HTMLMediaElement::HTMLMediaElement):
2884         * html/canvas/WebGLRenderingContext.cpp:
2885         (WebCore):
2886         (WebCore::WebGLRenderingContext::WebGLRenderingContext):
2887         * loader/Prerenderer.cpp:
2888         (WebCore::Prerenderer::Prerenderer):
2889         * page/EventSource.cpp:
2890         (WebCore::EventSource::EventSource):
2891         * page/SuspendableTimer.cpp:
2892         (WebCore::SuspendableTimer::SuspendableTimer):
2893         * workers/AbstractWorker.cpp:
2894         (WebCore::AbstractWorker::AbstractWorker):
2895         * workers/WorkerContext.cpp:
2896         (WebCore::WorkerContext::hasPendingActivity):
2897         * xml/XMLHttpRequest.cpp:
2898         (WebCore::XMLHttpRequest::XMLHttpRequest):
2899
2900 2013-03-21  Alexey Proskuryakov  <ap@apple.com>
2901
2902         [Mac] Move NSOperationQueue out of NetworkingContext
2903         https://bugs.webkit.org/show_bug.cgi?id=112970
2904
2905         Reviewed by Brady Eidson.
2906
2907         WebCore clients do not need explicit control over what queue ResourceHandle works on,
2908         they just want to avoid blocking main thread.
2909
2910         * platform/network/ResourceHandleClient.h:
2911         (WebCore::ResourceHandleClient::usesAsyncCallbacks): Added. The name doesn't quite
2912         match what ResourceHandleMac currently does, but it will very soon.
2913
2914         * platform/network/NetworkingContext.h:
2915         (WebCore::NetworkingContext::scheduledRunLoopPairs):
2916         * platform/network/mac/ResourceHandleMac.mm:
2917         (WebCore::operationQueueForAsyncClients):
2918         (WebCore::ResourceHandle::start):
2919
2920 2013-03-21  Marja Hölttä  <marja@chromium.org>
2921
2922         [V8] Generate specialized callbacks for the main world
2923         https://bugs.webkit.org/show_bug.cgi?id=112430
2924
2925         Reviewed by Jochen Eisinger.
2926
2927         The new specialized bindings will be faster, because they don't need to
2928         do the "main world, isolated world or a worker" check, but can right
2929         away assume that we're in the main world.
2930
2931         This patch generates main world bindings for getters and setters of Node,
2932         Element and Document.
2933
2934         No new tests (updated existing binding tests).
2935
2936         * bindings/scripts/CodeGeneratorV8.pm:
2937         (GenerateOverloadedFunction):
2938         (GenerateFunctionCallback):
2939         (GenerateFunction):
2940         (GenerateParametersCheck):
2941         (GenerateSingleConstructorCallback):
2942         (GenerateNonStandardFunction):
2943         (GenerateImplementation):
2944         (GenerateFunctionCallString):
2945         * bindings/scripts/test/V8/V8Float64Array.cpp:
2946         (WebCore):
2947         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2948         (WebCore):
2949         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2950         (WebCore):
2951         * bindings/scripts/test/V8/V8TestInterface.cpp:
2952         (WebCore):
2953         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2954         (WebCore):
2955         * bindings/scripts/test/V8/V8TestObj.cpp:
2956         (WebCore):
2957         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2958         (WebCore):
2959         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
2960         (WebCore):
2961         * bindings/v8/V8DOMConfiguration.cpp:
2962         (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
2963         (WebCore::V8DOMConfiguration::configureTemplate):
2964         * bindings/v8/V8DOMConfiguration.h:
2965         (BatchedMethod):
2966         (V8DOMConfiguration):
2967         * dom/Document.idl:
2968         * dom/Element.idl:
2969         * dom/Node.idl:
2970
2971 2013-03-21  Elliott Sprehn  <esprehn@chromium.org>
2972
2973         Remove RenderObject::canHaveRegionStyle since nothing uses it
2974         https://bugs.webkit.org/show_bug.cgi?id=112973
2975
2976         Reviewed by Eric Seidel.
2977
2978         Nothing uses canHaveRegionStyle so we can remove it.
2979
2980         * rendering/RenderObject.h:
2981
2982 2013-03-21  Alok Priyadarshi  <alokp@chromium.org>
2983
2984         Mark GraphicsLayers as opaque when possible
2985         https://bugs.webkit.org/show_bug.cgi?id=70634
2986
2987         Reviewed by Simon Fraser.
2988
2989         Mark layers as opaque in a very simple case - any child renderer has an opaque background and covers the entire composited bounds. It is important to note that since we only consider the background, the only layer that can be marked opaque is the primary GraphicsLayer of a RenderLayer.
2990
2991         Tests: compositing/contents-opaque/background-clip.html
2992                compositing/contents-opaque/background-color.html
2993                compositing/contents-opaque/body-background-painted.html
2994                compositing/contents-opaque/body-background-skipped.html
2995                compositing/contents-opaque/layer-opacity.html
2996                compositing/contents-opaque/layer-transform.html
2997
2998         * rendering/RenderBox.cpp:
2999         (WebCore::skipBodyBackground):
3000         (WebCore):
3001         (WebCore::RenderBox::paintBackground):
3002         (WebCore::RenderBox::backgroundIsKnownToBeOpaqueInRect):
3003         * rendering/RenderBox.h:
3004         (RenderBox):
3005         * rendering/RenderLayer.cpp:
3006         (WebCore::RenderLayer::backgroundIsKnownToBeOpaqueInRect):
3007         (WebCore):
3008         (WebCore::RenderLayer::listBackgroundIsKnownToBeOpaqueInRect):
3009         * rendering/RenderLayer.h:
3010         (RenderLayer):
3011         * rendering/RenderLayerBacking.cpp:
3012         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
3013         * rendering/RenderLayerModelObject.h:
3014         (RenderLayerModelObject):
3015         (WebCore::RenderLayerModelObject::backgroundIsKnownToBeOpaqueInRect):
3016
3017 2013-03-21  Alexandru Chiculita  <achicu@adobe.com>
3018
3019         [CSS Shaders] Implement a StyleCustomFilterProgram cache
3020         https://bugs.webkit.org/show_bug.cgi?id=112602
3021
3022         Reviewed by Dean Jackson.
3023
3024         When the style is recalculated, the new computed RenderStyle is saved as the m_style of the
3025         RenderObject, even if the style was not different.
3026
3027         In the case of Custom Filters, a new StyleCustomFilterProgram was created at all times, but the
3028         actual equality check was done by comparing the pair of cached shaders from inside the StyleCustomFilterProgram.
3029
3030         Because of that the RenderLayer::styleChanged was not called when the new StyleCustomFilterProgram was created, so it
3031         will end up still knowing only about the previous StyleCustomFilterProgram.
3032
3033         The RenderLayer sets itself as a client of the StyleCustomFilterProgram, so that it can repaint itself
3034         when the program is loaded, but because RenderLayer::styleChanged is not called, it will not add itself as a client of the new
3035         StyleCustomFilterProgram.
3036
3037         StyleCustomFilterProgram waits until the first client to load the programs, so in this case it will just remain unloaded.
3038
3039         There was no crash, but just an assert in debug mode. Also, as a visible side-effect some frames were rendered using blank shaders, 
3040         resulting in a pass-through filter.
3041
3042         The fix would be to actually make the RenderStyle::diff detect the change of the StyleCustomFilterProgram
3043         using the pointer value and not the values. However, that will always invalidate the "filter" property because
3044         of the StyleCustomFilterProgram that always gets created during the recalculation time.
3045
3046         I've added StyleCustomFilterProgramCache to cache all the instances of the StyleCustomFilterPrograms that a
3047         StyleResolver allocates. This way, next time it will try to reuse previously allocated StyleCustomFilterPrograms. 
3048         The key of the cache is the CustomFilterProgramInfo, that combines the URLs to the shaders and a couple of other program settings.
3049
3050         StyleCustomFilterProgramCache is owned by the StyleResovler and StyleCustomFilterPrograms are responsible with
3051         removing themselves from the cache when the last reference goes away.
3052
3053         This change makes the previous "platform level" program cache obsolete and I will remove that in a future patch.
3054         https://bugs.webkit.org/show_bug.cgi?id=112844
3055
3056         Test: css3/filters/custom/custom-filter-reload.html
3057
3058         * GNUmakefile.list.am:
3059         * Target.pri:
3060         * WebCore.gypi:
3061         * WebCore.vcproj/WebCore.vcproj:
3062         * WebCore.xcodeproj/project.pbxproj:
3063         * css/StyleResolver.cpp:
3064         (WebCore::StyleResolver::lookupCustomFilterProgram): Lookup any similar programs in the cache. It will create a new pending 
3065         StyleCustomFilterProgram if there is no pre-cached version of the program.
3066         if no program is found. loadPendingShaders is responsible for adding the program in the cache if it is actually going to be used.
3067         (WebCore::StyleResolver::loadPendingShaders): At this point the program is final, so it's safe to add it to the cache.
3068         (WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
3069         * css/StyleResolver.h:
3070         (StyleResolver):
3071         * css/WebKitCSSShaderValue.cpp:
3072         (WebCore::WebKitCSSShaderValue::completeURL): Factored out the function to compute the complete URL of the resource.
3073         (WebCore::WebKitCSSShaderValue::cachedShader):
3074         * css/WebKitCSSShaderValue.h:
3075         (WebCore::toWebKitCSSShaderValue):
3076         (WebKitCSSShaderValue):
3077         * platform/graphics/filters/CustomFilterOperation.cpp:
3078         (WebCore::CustomFilterOperation::blend):
3079         * platform/graphics/filters/CustomFilterOperation.h:
3080         (WebCore::CustomFilterOperation::operator==): Removed. Programs should now compare by pointer. Kept it as
3081         private to catch any potential use of it.
3082         * rendering/style/StyleCustomFilterProgram.cpp: Copied from Source/WebCore/css/WebKitCSSShaderValue.h.
3083         (WebCore::StyleCustomFilterProgram::~StyleCustomFilterProgram): Destructor removes the program from the cache.
3084         * rendering/style/StyleCustomFilterProgram.h:
3085         (WebCore::StyleCustomFilterProgram::setVertexShader): Added an assert to check that the shader is not in the
3086         cache while the mutation happens. Otherwise the cache might have the wrong key.
3087         (WebCore::StyleCustomFilterProgram::setFragmentShader): Ditto.
3088         (WebCore::StyleCustomFilterProgram::isLoaded): Added more asserts to catch cases when the program is used with no clients.
3089         (StyleCustomFilterProgram):
3090         (WebCore::StyleCustomFilterProgram::hasPendingShaders):
3091         (WebCore::StyleCustomFilterProgram::inCache):
3092         (WebCore::StyleCustomFilterProgram::setCache): Function called when a program is added to / removed from the cache.
3093         (WebCore::StyleCustomFilterProgram::vertexShaderURL): Added methods to store the KURL that we used as keys in the cache.
3094         The same KURLs will be used to lookup and remove the filter at the end.
3095         (WebCore::StyleCustomFilterProgram::setVertexShaderURL):
3096         (WebCore::StyleCustomFilterProgram::fragmentShaderURL):
3097         (WebCore::StyleCustomFilterProgram::setFragmentShaderURL):
3098         (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram):
3099         * rendering/style/StyleCustomFilterProgramCache.cpp: Added.
3100         (WebCore::StyleCustomFilterProgramCache::programCacheKey):
3101         (WebCore::StyleCustomFilterProgramCache::StyleCustomFilterProgramCache):
3102         (WebCore::StyleCustomFilterProgramCache::~StyleCustomFilterProgramCache): Destructor removes itself from all the
3103         referenced StyleCustomFilterPrograms. This is to avoid issues with different destruction orders.
3104         (WebCore::StyleCustomFilterProgramCache::lookup):
3105         (WebCore::StyleCustomFilterProgramCache::add):
3106         (WebCore::StyleCustomFilterProgramCache::remove):
3107         * rendering/style/StyleCustomFilterProgramCache.h:
3108         (StyleCustomFilterProgramCache):
3109         * platform/graphics/texmap/coordinated/CoordinatedCustomFilterProgram.h:
3110         (WebCore::CoordinatedCustomFilterProgram::operator==: Removed. Programs should now compare by pointer.
3111
3112 2013-03-21  Joshua Bell  <jsbell@chromium.org>
3113
3114         IndexedDB: Ensure all API methods have IDB_TRACE macros
3115         https://bugs.webkit.org/show_bug.cgi?id=112963
3116
3117         Reviewed by Tony Chang.
3118
3119         Anntotate methods and callbacks that weren't already annotated
3120         with IDB_TRACE macros to assist in debugging, e.g. when using
3121         the chromium port's chrome://tracing visualization.
3122
3123         No new tests - just harmless diagnostic sprinkles.
3124
3125         * Modules/indexeddb/IDBDatabase.cpp:
3126         (WebCore::IDBDatabase::createObjectStore): Added IDB_TRACE macro call here.
3127         (WebCore::IDBDatabase::deleteObjectStore): ...and here.
3128         (WebCore::IDBDatabase::transaction): ...etc.
3129         (WebCore::IDBDatabase::close):
3130         (WebCore::IDBDatabase::onVersionChange):
3131         * Modules/indexeddb/IDBFactory.cpp:
3132         (WebCore::IDBFactory::getDatabaseNames):
3133         (WebCore::IDBFactory::open):
3134         (WebCore::IDBFactory::deleteDatabase):
3135         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
3136         (WebCore::IDBFactoryBackendImpl::getDatabaseNames):
3137         (WebCore::IDBFactoryBackendImpl::deleteDatabase):
3138         (WebCore::IDBFactoryBackendImpl::open):
3139         * Modules/indexeddb/IDBOpenDBRequest.cpp:
3140         (WebCore::IDBOpenDBRequest::onBlocked):
3141
3142 2013-03-21  Christian Biesinger  <cbiesinger@chromium.org>
3143
3144         http://trac.webkit.org/changeset/146375 causing CrOS crashes
3145         https://bugs.webkit.org/show_bug.cgi?id=112958
3146
3147         Reviewed by Adam Barth.
3148
3149         Test: fast/flexbox/crash-anonymous-box.html
3150
3151         * rendering/RenderDeprecatedFlexibleBox.cpp:
3152         (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
3153         Anonymous renderers don't have a node in their constructor, so
3154         don't get document() in there.
3155
3156 2013-03-21  Mike West  <mkwst@chromium.org>
3157
3158         CSP 1.1: Fire a SecurityPolicyViolationEvent when violations occur.
3159         https://bugs.webkit.org/show_bug.cgi?id=112783
3160
3161         Reviewed by Adam Barth.
3162
3163         A new event type for Content Security Policy violations landed in
3164         http://wkrev.com/146305; this patch takes that stub, and wires it up to
3165         ContentSecurityPolicy::reportViolation such that violation events fire
3166         when resources are blocked.
3167
3168         This should bring WebKit up to date with the current description of
3169         CSP's event model in sections 3.3[1] and 3.4.1.3[2] of the editor's
3170         draft.
3171
3172         [1]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#processing-model
3173         [2]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#firing-events-using-the-securitypolicyviolationevent-interface
3174
3175         Test: http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image.html
3176
3177         * page/ContentSecurityPolicy.cpp:
3178         (WebCore::gatherSecurityPolicyViolationEventData):
3179             Populate a SecurityPolicyViolationEventInit object with the various
3180             bits of data that should be passed into the event constructor.
3181
3182             This static method is strictly an implementation detail; it's not
3183             part of ContentSecurityPolicy's public API.
3184         (WebCore::ContentSecurityPolicy::reportViolation):
3185             Regardless of whether the policy has set a 'report-uri' directive
3186             or not, gather together all the data we'll need to fire an event,
3187             create the event, and queue it up for dispatching on the Document.
3188
3189 2013-03-21  Terry Anderson  <tdanderson@chromium.org>
3190
3191         [chromium] Remove SK_SUPPORT_HINTING_SCALE_FACTOR flag and code
3192         https://bugs.webkit.org/show_bug.cgi?id=112928
3193
3194         Reviewed by Stephen White.
3195
3196         This flag was only for ChromeOS builds with HighDPI. It is no longer needed and can be removed. 
3197         See http://crbug.com/17550
3198
3199         No new tests needed since this is just removing unused code.
3200
3201         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
3202         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
3203         * platform/graphics/skia/PlatformContextSkia.cpp:
3204         (WebCore::PlatformContextSkia::PlatformContextSkia):
3205         (WebCore::PlatformContextSkia::setupPaintCommon):
3206         * platform/graphics/skia/PlatformContextSkia.h:
3207
3208 2013-03-21  Mike West  <mkwst@chromium.org>
3209
3210         Drop full URLs from cross-origin access errors caused by protocol mismatches.
3211         https://bugs.webkit.org/show_bug.cgi?id=112894
3212
3213         Reviewed by Timothy Hatcher.
3214
3215         Following up on http://wkbug.com/112813, this patch brings protocol
3216         mismatch errors into line with the new origin-only hotness. The message
3217         is also changed to display the URL's protocol rather than the origin's
3218         protocol: it makes a big difference for 'data:' URLs, for instance.
3219
3220         * page/DOMWindow.cpp:
3221         (WebCore::DOMWindow::crossDomainAccessErrorMessage):
3222
3223 2013-03-21  Stephen Chenney  <schenney@chromium.org>
3224
3225         SVG text path referencing parent text infinite loops
3226         https://bugs.webkit.org/show_bug.cgi?id=112078
3227
3228         Reviewed by Philip Rogers.
3229
3230         We do not check the target type when adding a resource reference for
3231         SVG Text Path's URI. This goes horribly wrong when the target is the
3232         text path's parent text element. In this patch we check that the target
3233         element of the text path is indeed a path element, as the spec
3234         requires. No other element type is allowed.
3235
3236         Note that RenderSVGTextPath enforces this check in the renderer code
3237         also, so if we get past this check via pending resources, it doesn't
3238         matter. You can't get into this situation with a pending reference
3239         because, by definition, the parent must be defined before the text
3240         path child.
3241
3242         Test: svg/text/textpath-referencing-text-crash.svg
3243
3244         * svg/SVGTextPathElement.cpp:
3245         (WebCore::SVGTextPathElement::buildPendingResource):
3246
3247 2013-03-21  Joshua Bell  <jsbell@chromium.org>
3248
3249         IndexedDB: Remove onVersionChange(string) plumbing
3250         https://bugs.webkit.org/show_bug.cgi?id=112712
3251
3252         Reviewed by Adam Barth.
3253
3254         Delete unused onVersionChange(string) overload.
3255
3256         No new tests - just deleting dead code.
3257
3258         * Modules/indexeddb/IDBDatabase.cpp: Delete onVersionChange(string) overload.
3259         * Modules/indexeddb/IDBDatabase.h: Ditto.
3260         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Ditto.
3261         * Modules/indexeddb/IDBDatabaseCallbacks.h: Ditto.
3262         * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp: Ditto.
3263         * Modules/indexeddb/IDBDatabaseCallbacksImpl.h: Ditto.
3264
3265 2013-03-21  Philip Rogers  <pdr@google.com>
3266
3267         Correct bisector angle calculation for markers
3268         https://bugs.webkit.org/show_bug.cgi?id=112054
3269
3270         Reviewed by Stephen Chenney.
3271
3272         The SVG marker spec states that mid markers with orient=auto should be aligned with their
3273         x-axis along the bisector of the incoming (in) and outgoing (out) angles. Previously we
3274         calculated this bisector angle as:
3275             bisector = (in + out) / 2;
3276         Angles cannot be averaged this way! Consider in=90deg and out=-180deg: the bisector should
3277         be 135deg but a naive average gives -45deg. This patch corrects for the discontinuity in
3278         angle values with:
3279             bisector = (in + out + 360) / 2   // if |in - out| > 180
3280             bisector = (in + out) / 2         // otherwise
3281         This patch includes an exhaustive test of angle values.
3282
3283         Test: svg/custom/marker-orient-auto.html
3284
3285         * rendering/svg/SVGMarkerData.h:
3286         (WebCore::SVGMarkerData::currentAngle):
3287
3288 2013-03-21  Harald Alvestrand  <hta@google.com>
3289
3290         Expose the Type field of an RTCStatsReport
3291         https://bugs.webkit.org/show_bug.cgi?id=112951
3292
3293         Reviewed by Adam Barth.
3294
3295         Covered by an extension of an existing test.
3296
3297         * Modules/mediastream/RTCStatsReport.h:
3298         (WebCore::RTCStatsReport::type):
3299         * Modules/mediastream/RTCStatsReport.idl:
3300
3301 2013-03-21  Alexey Proskuryakov  <ap@apple.com>
3302
3303         Move non-trivial virtual functions out of ResourceHandleClient.h
3304         https://bugs.webkit.org/show_bug.cgi?id=112950
3305
3306         Reviewed by Brady Eidson.
3307
3308         * CMakeLists.txt:
3309         * GNUmakefile.list.am:
3310         * Target.pri:
3311         * WebCore.exp.in:
3312         * WebCore.gypi:
3313         * WebCore.vcproj/WebCore.vcproj:
3314         * WebCore.vcxproj/WebCore.vcxproj:
3315         * WebCore.vcxproj/WebCore.vcxproj.filters:
3316         * WebCore.xcodeproj/project.pbxproj:
3317         * platform/network/ResourceHandleClient.cpp: Added.
3318         (WebCore::ResourceHandleClient::ResourceHandleClient):
3319         (WebCore::ResourceHandleClient::~ResourceHandleClient):
3320         (WebCore::ResourceHandleClient::didReceiveBuffer):
3321         (WebCore::ResourceHandleClient::getBuffer):
3322         * platform/network/ResourceHandleClient.h:
3323
3324 2013-03-21  Florin Malita  <fmalita@chromium.org>
3325
3326         [SVG] Remove explicit LightSource dispatchers
3327         https://bugs.webkit.org/show_bug.cgi?id=112827
3328
3329         Reviewed by Stephen Chenney.
3330
3331         Convert LightSource setters to dynamic dispatch. This allows us to remove LightSource.cpp
3332         altogether.
3333
3334         No new tests: refactoring only.
3335
3336         * CMakeLists.txt:
3337         * GNUmakefile.list.am:
3338         * Target.pri:
3339         * WebCore.gypi:
3340         * WebCore.vcproj/WebCore.vcproj:
3341         * WebCore.vcxproj/WebCore.vcxproj:
3342         * WebCore.vcxproj/WebCore.vcxproj.filters:
3343         * WebCore.xcodeproj/project.pbxproj:
3344         * platform/graphics/filters/DistantLightSource.h:
3345         (DistantLightSource):
3346         * platform/graphics/filters/LightSource.cpp: Removed.
3347         * platform/graphics/filters/LightSource.h:
3348         (WebCore::LightSource::setAzimuth):
3349         (WebCore::LightSource::setElevation):
3350         (WebCore::LightSource::setX):
3351         (WebCore::LightSource::setY):
3352         (WebCore::LightSource::setZ):
3353         (WebCore::LightSource::setPointsAtX):
3354         (WebCore::LightSource::setPointsAtY):
3355         (WebCore::LightSource::setPointsAtZ):
3356         (WebCore::LightSource::setSpecularExponent):
3357         (WebCore::LightSource::setLimitingConeAngle):
3358         * platform/graphics/filters/PointLightSource.h:
3359         (PointLightSource):
3360         * platform/graphics/filters/SpotLightSource.h:
3361         (SpotLightSource):
3362
3363 2013-03-21  Igor Oliveira  <igor.o@sisa.samsung.com>
3364
3365         [Texmap] Implement support for OpenGLES EXT_unpack_subimage extension
3366         https://bugs.webkit.org/show_bug.cgi?id=108716
3367
3368         If the extension GL_EXT_unpack_subimage is supported, it adds GL_UNPACK_ROW_LENGTH,
3369         GL_UNPACK_SKIP_ROWS and GL_UNPACK_SKIP_PIXELS as valid enums to PixelStore.
3370
3371         Reviewed by Noam Rosenthal.
3372
3373         * platform/graphics/texmap/TextureMapperGL.cpp:
3374         (WebCore::driverSupportsSubImage):
3375         (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
3376         (WebCore::BitmapTextureGL::updateContents):
3377
3378 2013-03-21  Dmitry Zvorygin  <zvorygin@chromium.org>
3379
3380         Web Inspector: Regression: drawer resizes slowly with animation.
3381         https://bugs.webkit.org/show_bug.cgi?id=112920
3382
3383         Drawer status bar opacity wasn't set to zero on inialization, so no transition event 
3384         was fired on first time drawer appeared,thus animation styles wasn't removed properly.
3385
3386         Reviewed by Vsevolod Vlasov.
3387
3388         * inspector/front-end/Drawer.js:
3389         (WebInspector.Drawer):
3390
3391 2013-03-21  Alberto Garcia  <agarcia@igalia.com>
3392
3393         [BlackBerry] GraphicsLayer: fix code that was accidentally reverted
3394         https://bugs.webkit.org/show_bug.cgi?id=112143
3395
3396         Reviewed by Rob Buis.
3397
3398         Several changes were accidentally reverted in r144465 due to the
3399         upstreaming of some new code:
3400
3401         - clearBackgroundColor() and m_contentsLayerHasBackgroundColor had
3402           been removed in r137798.
3403
3404         - showDebugBorders() had been renamed to isShowingDebugBorder() in
3405           r133517.
3406
3407         - A new GraphicsLayer::create() overload had been introduced in
3408           r130185.
3409
3410         This patch fixes them all.
3411
3412         * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
3413         (WebCore::GraphicsLayer::create):
3414         (WebCore):
3415         (WebCore::GraphicsLayerBlackBerry::GraphicsLayerBlackBerry):
3416         (WebCore::GraphicsLayerBlackBerry::setBackgroundColor):
3417         (WebCore::GraphicsLayerBlackBerry::updateLayerBackgroundColor):
3418         (WebCore::GraphicsLayerBlackBerry::setupContentsLayer):
3419         * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
3420         (GraphicsLayerBlackBerry):
3421
3422 2013-03-21  Zan Dobersek  <zdobersek@igalia.com>
3423
3424         [GTK] Move libLevelDB.la setup into a separate GNUmakefile.am
3425         https://bugs.webkit.org/show_bug.cgi?id=112947
3426
3427         Reviewed by Martin Robinson.
3428
3429         No new tests - no new functionality.
3430
3431         * GNUmakefile.am: Move the libLevelDD.la setup into the new GNUmakefile.am that's placed in
3432         the third-party leveldb source directory.
3433         * GNUmakefile.list.am: Move the LevelDB sources listing there as well.
3434
3435 2013-03-21  Alberto Garcia  <agarcia@igalia.com>
3436
3437         [BlackBerry] DrawingBuffer: add clearPlatformLayer() implementation
3438         https://bugs.webkit.org/show_bug.cgi?id=112696
3439
3440         Reviewed by Rob Buis.
3441
3442         DrawingBuffer::clearPlatformLayer() was added in r139142.
3443
3444         This is not needed in the BlackBerry port, so this patch only
3445         contains a dummy implementation.
3446
3447         * platform/graphics/blackberry/DrawingBufferBlackBerry.cpp:
3448         (WebCore):
3449         (W