1 2013-03-25 Martin Robinson <mrobinson@igalia.com>
3 [GTK] [gyp] Add support for building the platform directory
4 https://bugs.webkit.org/show_bug.cgi?id=113212
6 Reviewed by Nico Weber.
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
12 2013-03-25 Jochen Eisinger <jochen@chromium.org>
14 Swap both the error and change event queue before processing fullscreen events
15 https://bugs.webkit.org/show_bug.cgi?id=113194
17 Reviewed by Jer Noble.
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.
23 This is covered by fullscreen/full-screen-restrictions.html which times
24 out depending on the delay between requesting fullscreen and granting
28 (WebCore::Document::fullScreenChangeDelayTimerFired):
30 2013-03-25 Marja Hölttä <marja@chromium.org>
32 [V8] Generate specialized callbacks for the main world
33 https://bugs.webkit.org/show_bug.cgi?id=112430
35 Reviewed by Kentaro Hara.
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.
41 This patch generates main world bindings for getters and setters for a
42 small amount of frequently used functions / functions used by Dromaeo.
44 Added tests to TestObj.idl and updated bindings tests.
46 * bindings/scripts/CodeGeneratorV8.pm:
47 (GenerateOverloadedFunction):
48 (GenerateFunctionCallback):
50 (GenerateParametersCheck):
51 (GenerateSingleConstructorCallback):
52 (GenerateNonStandardFunction):
53 (GenerateImplementation):
54 (GenerateFunctionCallString):
55 * bindings/scripts/test/TestObj.idl:
56 * bindings/scripts/test/V8/V8Float64Array.cpp:
58 * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
60 * bindings/scripts/test/V8/V8TestEventTarget.cpp:
62 * bindings/scripts/test/V8/V8TestInterface.cpp:
64 * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
66 * bindings/scripts/test/V8/V8TestObj.cpp:
67 (WebCore::TestObjV8Internal::perWorldReadOnlyAttributeAttrGetter):
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):
93 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
95 * bindings/scripts/test/V8/V8TestTypedefs.cpp:
97 * bindings/v8/V8DOMConfiguration.cpp:
98 (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
99 (WebCore::V8DOMConfiguration::configureTemplate):
100 * bindings/v8/V8DOMConfiguration.h:
102 (V8DOMConfiguration):
106 * page/DOMWindow.idl:
108 2013-03-25 Daniel Cheng <dcheng@chromium.org>
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
113 Reviewed by Tony Chang.
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.
120 Manually testable using context-menu-during-drag-selection.html.
122 * page/EventHandler.cpp:
123 (WebCore::EventHandler::handleMouseDraggedEvent):
125 2013-03-25 Vsevolod Vlasov <vsevik@chromium.org>
127 Web Inspector: [Regression] Provisional breakpoints are not shown on reload.
128 https://bugs.webkit.org/show_bug.cgi?id=113210
130 Reviewed by Pavel Feldman.
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:
139 2013-03-25 Sergey Ryazanov <serya@chromium.org>
141 Web Inspector: Remove console warnings for *_ prefixed CSS styles
142 https://bugs.webkit.org/show_bug.cgi?id=113175
144 Reviewed by Pavel Feldman.
146 Added separate error message for syntax CSS error in declaration list when no property detected.
147 Added filter for messages starting with '*'.
149 * css/CSSGrammar.y.in:
151 2013-03-25 Alexis Hetu <sugoi@chromium.org>
153 Integration of the Skia displacement mapping into WebKit
154 https://bugs.webkit.org/show_bug.cgi?id=112927
156 Reviewed by Stephen White.
158 Added displacement mapping to effect-reference.html and
159 effect-reference-hw.html
162 * platform/graphics/filters/FEDisplacementMap.h:
164 Adding Skia specific declarations
165 * platform/graphics/filters/skia/FEDisplacementMapSkia.cpp: Added.
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.
175 2013-03-25 Vladislav Kaznacheev <kaznacheev@chromium.org>
177 Web Inspector: Graduate some new Inspector APIs to public
178 https://bugs.webkit.org/show_bug.cgi?id=113176
180 Reviewed by Pavel Feldman.
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
193 * inspector/Inspector.json:
195 2013-03-25 Andrey Kosyakov <caseq@chromium.org>
197 Web Inspector: [Timeline] set glue records mode off by default
198 https://bugs.webkit.org/show_bug.cgi?id=113189
200 Reviewed by Pavel Feldman.
202 * inspector/front-end/TimelinePanel.js: /glueRecordsSetting/s/true/false/
204 2013-03-25 Gyuyoung Kim <gyuyoung.kim@samsung.com>
206 [EFL] Fix build break when media source is enabled
207 https://bugs.webkit.org/show_bug.cgi?id=113143
209 Unreviewed. Build error needs to be fixed in order to start to implement
210 media source functionality.
213 * platform/efl/MIMETypeRegistryEfl.cpp:
215 (WebCore::MIMETypeRegistry::isSupportedMediaSourceMIMEType):
216 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
218 (WebCore::MediaPlayerPrivateGStreamer::load):
219 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
220 (MediaPlayerPrivateGStreamer):
222 2013-03-25 Vsevolod Vlasov <vsevik@chromium.org>
224 Web Inspector: Toggling breakpoint with shortcut should be freezed as well while editing.
225 https://bugs.webkit.org/show_bug.cgi?id=113188
227 Reviewed by Pavel Feldman.
229 * inspector/front-end/JavaScriptSourceFrame.js:
230 (WebInspector.JavaScriptSourceFrame.prototype.toggleBreakpointOnCurrentLine):
232 2013-03-25 Vsevolod Vlasov <vsevik@chromium.org>
234 Web Inspector: Remove unneeded code from JavaScriptSourceFrame.
235 https://bugs.webkit.org/show_bug.cgi?id=113182
237 Reviewed by Pavel Feldman.
239 * inspector/front-end/JavaScriptSourceFrame.js:
240 (WebInspector.JavaScriptSourceFrame):
242 2013-03-25 Alexei Filippov <alph@chromium.org>
244 Web Inspector: Fonts refactoring
245 https://bugs.webkit.org/show_bug.cgi?id=113047
247 Reviewed by Pavel Feldman.
249 Unify fonts usage across inspector.
250 Make inspector default font depend on platform.
252 * inspector/front-end/dataGrid.css:
255 * inspector/front-end/inspector.css:
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:
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):
273 2013-03-25 Vladislav Kaznacheev <kaznacheev@chromium.org>
275 Web Inspector: Use generate-inspector-protocol-version to list valid public API changes
276 https://bugs.webkit.org/show_bug.cgi?id=113148
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).
283 Reviewed by Pavel Feldman.
285 * inspector/generate-inspector-protocol-version:
293 (compare_params_list):
296 (self_test.create_test_schema_1):
297 (self_test.create_test_schema_2):
298 (self_test.is_subset):
299 (self_test.errors_match):
302 2013-03-25 Alec Flett <alecflett@chromium.org>
304 Support Quota API in Workers
305 https://bugs.webkit.org/show_bug.cgi?id=112972
307 Reviewed by Adam Barth.
309 Tests: fast/workers/shared-worker-storagequota-query-usage.html
310 fast/workers/worker-storagequota-query-usage.html
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.
318 2013-03-25 Mike West <mkwst@chromium.org>
320 CSP 1.1: Rename SecurityPolicyViolationEvent::sourceURL to ::sourceFile.
321 https://bugs.webkit.org/show_bug.cgi?id=113033
323 Reviewed by Jochen Eisinger.
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
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
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/
342 2013-03-25 Michelangelo De Simone <michelangelo@webkit.org>
344 [CSS Filters] Using negative drop-shadow radius values has slow performance
345 https://bugs.webkit.org/show_bug.cgi?id=107848
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).
352 Reviewed by Dirk Schulze.
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
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
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.
376 2013-03-25 Allan Sandfeld Jensen <allan.jensen@digia.com>
378 [Qt] REGRESSION(r146630): 8 text related test asserts on debug builds
379 https://bugs.webkit.org/show_bug.cgi?id=113179
381 Reviewed by Jocelyn Turcotte.
383 Test if range.start is within the valid range before testing the value at that point.
385 * platform/graphics/qt/FontQt.cpp:
386 (WebCore::Font::initFormatForTextLayout):
388 2013-03-25 Alexander Pavlov <apavlov@chromium.org>
390 Web Inspector: Properly handle the rule addition to an XML or SVG document.
391 https://bugs.webkit.org/show_bug.cgi?id=113185
393 Reviewed by Pavel Feldman.
395 * inspector/InspectorCSSAgent.cpp:
396 (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
398 2013-03-25 Peter Rybin <prybin@chromium.org>
400 Web Inspector: support changing local variables in frontend
401 https://bugs.webkit.org/show_bug.cgi?id=112470
403 Reviewed by Yury Semikhatsky.
405 ScopeRef type is added to RemoteObject and setPropertyValue is patched accordingly.
407 Test: inspector/debugger/debugger-change-variable.html
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):
425 2013-03-25 Mike West <mkwst@chromium.org>
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
430 Reviewed by Jochen Eisinger.
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.
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.
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.
444 Spec: https://dvcs.w3.org/hg/content-security-policy/rev/45f6ccaba0ef
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
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.
462 2013-03-25 Eugene Klyuchnikov <eustas@chromium.org>
464 Web Inspector: Fix JSDocs.
465 https://bugs.webkit.org/show_bug.cgi?id=113025
467 Reviewed by Pavel Feldman.
469 Next version of JS compiler finds more inconsistencies
470 and ambiguous declarations.
471 Some of them are resolved in this patch.
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.
482 2013-03-25 Mike West <mkwst@chromium.org>
484 Cleanup: Tiny nits in ContentSecurityPolicy::reportViolation.
485 https://bugs.webkit.org/show_bug.cgi?id=112784
487 Reviewed by Jochen Eisinger.
489 Just cleanup of three tiny nits I ran across in
490 ContentSecurityPolicy::reportViolation while doing other work.
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.
498 - We don't need to hold 'document->referrer()' in a temp variable.
500 * page/ContentSecurityPolicy.cpp:
501 (WebCore::ContentSecurityPolicy::reportViolation):
503 2013-03-25 Eugene Klyuchnikov <eustas@chromium.org>
505 Web Inspector: [Overview] Make "drag-to-move" feature more discoverable.
506 https://bugs.webkit.org/show_bug.cgi?id=113032
508 Reviewed by Pavel Feldman.
510 To move overview window user could drag-n-drop over
511 time "ribbon" on OverviewGrid.
513 This feature is hard to discover.
515 Setting "move" cursor will make this feature more discoverable.
517 * inspector/front-end/inspectorCommon.css:
518 Set "move" cursor to draggable area.
519 * inspector/front-end/OverviewGrid.js: Ditto.
521 2013-03-25 Eugene Klyuchnikov <eustas@chromium.org>
523 Web Inspector: [Profiles] Remove unused private member.
524 https://bugs.webkit.org/show_bug.cgi?id=113015
526 Reviewed by Pavel Feldman.
528 _profileGroupsForLinks is not used anymore.
530 * inspector/front-end/ProfilesPanel.js:
531 (WebInspector.ProfilesPanel.prototype._reset): Removed unused member.
533 2013-03-25 PhistucK <phistuck@chromium.org>
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
538 Reviewed by Vsevolod Vlasov.
541 Added a check for the existence of currently edited document.
543 * inspector/ScriptsPanel.js:
544 (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
546 2013-03-25 Mihnea Ovidenie <mihnea@adobe.com>
548 [CSSRegions] Remove RenderRegion::printRegionObjectsStyles
549 https://bugs.webkit.org/show_bug.cgi?id=113081
551 Reviewed by Tony Chang.
553 No change in functionality, remove unused function..
555 * rendering/RenderRegion.h:
557 2013-03-25 Hurnjoo Lee <hurnjoo.lee@samsung.com>
559 [Texmap] Memory leak when closing a tab
560 https://bugs.webkit.org/show_bug.cgi?id=112127
562 Reviewed by Noam Rosenthal.
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.
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
576 2013-03-25 Keishi Hattori <keishi@webkit.org>
578 Clear button visibility is not updated when restoring form state
579 https://bugs.webkit.org/show_bug.cgi?id=113172
581 Clear button wasn't showing up when restoring form state.
583 Reviewed by Kent Tamura.
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
591 * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
592 (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
594 2013-03-25 Eugene Klyuchnikov <eustas@chromium.org>
596 Web Inspector: [Settings] Use registry to track settings objects.
597 https://bugs.webkit.org/show_bug.cgi?id=113008
599 Reviewed by Pavel Feldman.
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.
604 To resolve this issue we can use registry to make .createSetting return
605 same object for specific key.
607 * inspector/front-end/Settings.js:
608 (WebInspector.Settings.prototype.createSetting): Use registry.
610 2013-03-24 Matt Falkenhagen <falken@chromium.org>
612 Refactoring: Pull Node::disabled() and Node::isInert() down to Element.
613 https://bugs.webkit.org/show_bug.cgi?id=112085
615 Reviewed by Hajime Morrita.
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.
621 No new tests, just refactoring.
624 (WebCore::Element::disabled):
626 (WebCore::Element::isInert):
629 * dom/EventDispatcher.cpp:
630 (WebCore::EventDispatcher::dispatchSimulatedClick):
631 * dom/GestureEvent.cpp:
632 (WebCore::GestureEventDispatchMediator::dispatchEvent):
633 * dom/MouseEvent.cpp:
634 (WebCore::MouseEventDispatchMediator::dispatchEvent):
636 (WebCore::Node::handleLocalEvents):
637 (WebCore::Node::willRespondToMouseMoveEvents):
638 (WebCore::Node::willRespondToMouseClickEvents):
639 (WebCore::Node::willRespondToTouchEvents):
643 2013-03-24 Alpha Lam <hclam@chromium.org>
645 GIFImageReader should reports parsing error to client
646 https://bugs.webkit.org/show_bug.cgi?id=113141
648 Reviewed by Stephen White.
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.
653 Unit test is updated to reflect change in behavior.
654 Tested with a local corpus which showed better handling of corrupted GIF images.
656 * platform/image-decoders/gif/GIFImageReader.cpp:
657 (GIFImageReader::decode):
659 2013-03-24 KondapallyKalyan <kalyan.kondapally@intel.com>
661 [EFL] Add support to check for current Drawable.
662 https://bugs.webkit.org/show_bug.cgi?id=113103
664 Reviewed by Kenneth Rohde Christiansen.
666 Covered by existing WebGL tests.
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
674 * platform/graphics/opengl/GLPlatformContext.cpp:
675 (WebCore::GLPlatformContext::makeCurrent):
676 (WebCore::GLPlatformContext::releaseCurrent):
677 (WebCore::GLPlatformContext::destroy):
678 * platform/graphics/opengl/GLPlatformSurface.cpp:
680 (WebCore::GLPlatformSurface::isCurrentDrawable):
681 (WebCore::GLPlatformSurface::onMakeCurrent):
682 * platform/graphics/opengl/GLPlatformSurface.h:
684 2013-03-24 David Kilzer <ddkilzer@apple.com>
686 BUILD FIX (r146704): Settings::setHiddenPageDOMTimerThrottlingEnabled() isn't always built
687 <http://webkit.org/b/112308>
689 * WebCore.exp.in: Export
690 Settings::setHiddenPageDOMTimerThrottlingEnabled()
691 conditionally based on ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING).
693 2013-03-24 Christophe Dumez <ch.dumez@sisa.samsung.com>
695 [EFL] NetworkStateNotifier::updateState() is called too often
696 https://bugs.webkit.org/show_bug.cgi?id=113152
698 Reviewed by Kenneth Rohde Christiansen.
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.
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.
711 No new tests, no behavior change for layout tests.
713 * platform/network/efl/NetworkStateNotifierEfl.cpp:
714 (WebCore::NetworkStateNotifier::readSocketCallback):
716 2013-03-24 Chris Fleizach <cfleizach@apple.com>
718 AX: Crash in WebCore::AccessibilitySpinButton::incrementButton()
719 https://bugs.webkit.org/show_bug.cgi?id=111582
721 Reviewed by Tim Horton.
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.
727 We need to be more specific about our class types.
729 Test: platform/mac/accessibility/aria-spinbutton-crash.html
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:]):
739 2013-03-24 Chris Fleizach <cfleizach@apple.com>
741 AXObjectCache gets recreated during document tear-down.
742 https://bugs.webkit.org/show_bug.cgi?id=112525
744 Reviewed by Simon Fraser.
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
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.
758 * accessibility/AXObjectCache.cpp:
759 (WebCore::AXObjectCache::stopCachingComputedObjectAttributes):
760 * dom/ContainerNode.cpp:
761 (WebCore::ContainerNode::~ContainerNode):
763 (WebCore::Document::~Document):
764 (WebCore::Document::clearAXObjectCache):
765 (WebCore::Document::existingAXObjectCache):
766 (WebCore::Document::axObjectCache):
767 (WebCore::Document::setFocusedNode):
771 (WebCore::Element::attributeChanged):
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):
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):
827 (WebCore::Scrollbar::existingAXObjectCache):
828 * platform/Scrollbar.h:
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):
850 2013-03-23 Mike West <mkwst@chromium.org>
852 Drop full URLs from cross-origin access errors caused by sandboxing.
853 https://bugs.webkit.org/show_bug.cgi?id=113029
855 Reviewed by Timothy Hatcher.
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
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.
870 2013-03-23 Dominic Mazzoni <dmazzoni@google.com>
872 Implement Web Speech Synthesis for Chromium
873 https://bugs.webkit.org/show_bug.cgi?id=111695
875 Reviewed by Adam Barth.
877 Straightforward implementation of speech synthesis
878 for Chromium by exposing interfaces for the platform
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):
889 * Modules/speech/SpeechSynthesis.h:
891 * Modules/speech/SpeechSynthesisUtterance.cpp:
892 (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
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):
915 * platform/PlatformSpeechSynthesis.h:
916 (PlatformSpeechSynthesis):
917 * platform/PlatformSpeechSynthesisUtterance.cpp:
919 (WebCore::PlatformSpeechSynthesisUtterance::create):
920 * platform/PlatformSpeechSynthesisUtterance.h:
921 (PlatformSpeechSynthesisUtterance):
922 (WebCore::PlatformSpeechSynthesisUtterance::setClient):
923 * platform/PlatformSpeechSynthesisVoice.cpp:
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):
938 * platform/PlatformSpeechSynthesizer.h:
940 (PlatformSpeechSynthesizerClient):
941 (PlatformSpeechSynthesizer):
942 * platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Added.
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.
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.
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.
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.
990 (WebSpeechSynthesizerClientImpl):
991 * platform/mac/PlatformSpeechSynthesizerMac.mm:
992 (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
993 (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
994 (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
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):
1005 2013-03-23 Daniel Cheng <dcheng@chromium.org>
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
1010 Reviewed by Ryosuke Niwa.
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.
1017 No new tests since no functionality in Qt port should change.
1019 * platform/qt/ClipboardQt.cpp:
1020 (WebCore::ClipboardQt::getData):
1021 (WebCore::ClipboardQt::types):
1022 (WebCore::ClipboardQt::files):
1024 2013-03-23 Carlos Garcia Campos <cgarcia@igalia.com>
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
1029 Reviewed by Martin Robinson.
1031 Add custom kit implementation for HTMLElements so that the HTML
1032 wrappers are used in that case instead of wrapHTMLElement.
1034 * bindings/gobject/WebKitDOMBinding.cpp:
1037 * bindings/gobject/WebKitDOMBinding.h:
1040 * bindings/scripts/CodeGeneratorGObject.pm:
1041 (UsesManualKitImplementation):
1043 2013-03-23 David Kilzer <ddkilzer@apple.com>
1045 Revert "BUILD FIX (r146667): ResourceRequest constructor in SynchronousLoaderClient.cpp is ambiguous on iOS"
1047 This is platform-agnositic code, so the previous solution won't work.
1049 * platform/network/SynchronousLoaderClient.cpp:
1050 (WebCore::SynchronousLoaderClient::willSendRequest):
1052 2013-03-23 David Kilzer <ddkilzer@apple.com>
1054 BUILD FIX (r146667): ResourceRequest constructor in SynchronousLoaderClient.cpp is ambiguous on iOS
1056 Fixes the following build failure:
1058 Source/WebCore/platform/network/SynchronousLoaderClient.cpp:52:15: error: conversion from 'int' to 'const WebCore::ResourceRequest' is ambiguous
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 *);
1067 Source/WebCore/platform/network/cf/ResourceRequest.h:83:9: note: candidate constructor
1068 ResourceRequest(CFURLRequestRef cfRequest)
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).
1077 2013-03-23 David Kilzer <ddkilzer@apple.com>
1079 BUILD FIX (r146687): setDefaultMIMEType() is unused in ResourceHandleCFNet.cpp on iOS
1081 Fixes the following build failure:
1083 Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp:98:13: error: unused function 'setDefaultMIMEType' [-Werror,-Wunused-function]
1084 static void setDefaultMIMEType(CFURLResponseRef response)
1088 * platform/network/cf/ResourceHandleCFNet.cpp:
1089 (WebCore::setDefaultMIMEType): Add #if !PLATFORM(MAC)/#endif
1092 2013-03-21 Kiran Muppala <cmuppala@apple.com>
1094 Add runtime setting for hidden page DOM timer throttling and CSS animation suspension
1095 https://bugs.webkit.org/show_bug.cgi?id=112308
1097 Reviewed by Gavin Barraclough.
1099 No new tests. Only adding settings to enable/disable existing features
1100 and hence existing tests suffice.
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.
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.
1118 (WebCore::Settings::hiddenPageDOMTimerThrottlingEnabled):
1119 (WebCore::Settings::hiddenPageCSSAnimationSuspensionEnabled):
1121 2013-03-22 Benjamin Poulain <bpoulain@apple.com>
1123 Remove 2 bad branches from StringHash::equal() and CaseFoldingHash::equal()
1124 https://bugs.webkit.org/show_bug.cgi?id=113003
1126 Reviewed by Eric Seidel.
1128 Fix two unfortunate use of StringHash and use the correct StringImpl function.
1130 * html/parser/HTMLParserIdioms.cpp:
1131 (WebCore::threadSafeEqual):
1132 * html/parser/HTMLTreeBuilderSimulator.cpp:
1133 (WebCore::tokenExitsSVG):
1135 2013-03-22 Andy Estes <aestes@apple.com>
1137 Set the cache partition property on CFURLRequests
1138 https://bugs.webkit.org/show_bug.cgi?id=113116
1140 Patch by Jeffrey Pfau
1141 Reviewed by David Kilzer.
1143 * platform/network/cf/ResourceRequestCFNet.cpp:
1144 (WebCore::ResourceRequest::doUpdatePlatformRequest):
1145 (WebCore::ResourceRequest::doUpdateResourceRequest):
1147 2013-03-22 Julien Chaffraix <jchaffraix@webkit.org>
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
1152 Reviewed by Tony Chang.
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).
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
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.
1167 2013-03-19 Zhenyao Mo <zmo@google.com>
1169 Check WEBGL_draw_buffers requirements before exposing the extension
1170 https://bugs.webkit.org/show_bug.cgi?id=112359
1172 Reviewed by Kenneth Russell.
1174 * html/canvas/EXTDrawBuffers.cpp:
1175 (WebCore::EXTDrawBuffers::supported): call satisfies*().
1176 (WebCore::EXTDrawBuffers::drawBuffersEXT):
1178 (WebCore::EXTDrawBuffers::satisfiesWebGLRequirements): check WebGL requirements.
1179 * html/canvas/EXTDrawBuffers.h:
1181 * html/canvas/WebGLFramebuffer.cpp:
1182 (WebCore::WebGLFramebuffer::getDrawBuffer):
1184 * html/canvas/WebGLFramebuffer.h:
1186 * html/canvas/WebGLRenderingContext.cpp:
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):
1202 2013-03-22 Roger Fong <roger_fong@apple.com>
1204 Unreviewed. Fix AppleWin port following https://bugs.webkit.org/show_bug.cgi?id=113100.
1205 Patch by Alexey Proskuryakov.
1207 * platform/network/cf/ResourceHandleCFNet.cpp:
1208 (WebCore::ResourceHandle::platformLoadResourceSynchronously):
1210 2013-03-22 Tony Chang <tony@chromium.org>
1212 REGRESSION (r146272): layout issues for flex boxes that have -webkit-flex-wrap: wrap
1213 https://bugs.webkit.org/show_bug.cgi?id=113071
1215 Reviewed by Ojan Vafai.
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.
1220 Test: css3/flexbox/multiline-min-preferred-width.html
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
1227 2013-03-22 Max Vujovic <mvujovic@adobe.com>
1229 [CSS Shaders] Clamp css_MixColor before the blending and compositing steps
1230 https://bugs.webkit.org/show_bug.cgi?id=113088
1232 Reviewed by Dean Jackson.
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.
1238 [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blending
1240 Tests: css3/filters/custom/custom-filter-clamp-css-mix-color-negative.html
1241 css3/filters/custom/custom-filter-clamp-css-mix-color.html
1243 * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
1244 (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
1245 Clamp css_MixColor as clampedMixColor before using it in the blending and compositing
1248 2013-03-19 Martin Robinson <mrobinson@igalia.com>
1250 [GTK] Add WebCoreDOM to the gyp build
1251 https://bugs.webkit.org/show_bug.cgi?id=112737
1253 Reviewed by Nico Weber.
1255 * WebCore.gyp/WebCoreGTK.gyp: Add WebCoreDOM to the gyp build.
1257 2013-03-19 Martin Robinson <mrobinson@igalia.com>
1259 [GTK] Add WebCoreHTML to the gyp build
1260 https://bugs.webkit.org/show_bug.cgi?id=112727
1262 Reviewed by Nico Weber.
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.
1268 2013-03-22 Tim Horton <timothy_horton@apple.com>
1270 Plugin Snapshotting: Auto-start dominant plugins
1271 https://bugs.webkit.org/show_bug.cgi?id=113111
1272 <rdar://problem/13475726>
1274 Reviewed by Dean Jackson.
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.
1297 2013-03-19 Martin Robinson <mrobinson@igalia.com>
1299 [GTK] Add support for building the WebCore bindings to the gyp build
1300 https://bugs.webkit.org/show_bug.cgi?id=112638
1302 Reviewed by Nico Weber.
1304 Add targets, actions, and rules for building the WebCore bindings. This is
1305 the first part of the WebCoreGTK build.
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.
1316 2013-03-22 Dane Wallinga <dgwallinga@chromium.org>
1318 Add client callbacks to notify of changes of associated from controls
1319 https://bugs.webkit.org/show_bug.cgi?id=110375
1321 Reviewed by Ryosuke Niwa.
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
1329 (WebCore::Document::Document):
1330 (WebCore::Document::didAssociateFormControl):
1332 (WebCore::Document::didAssociateFormControlsTimerFired):
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):
1341 * html/FormAssociatedElement.h:
1342 (FormAssociatedElement):
1343 add calls to Document::didAssociateFormControl when form changes
1344 * html/HTMLFormElement.cpp:
1345 (WebCore::HTMLFormElement::insertedInto):
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:
1355 add new method didAssociateFormControls
1357 2013-03-22 Alexey Proskuryakov <ap@apple.com>
1359 Split ResourceHandleMac into multiple files
1360 https://bugs.webkit.org/show_bug.cgi?id=113100
1362 Reviewed by Geoff Garen.
1364 It's grown too big to navigate, and I'm going to make WebCoreResourceHandleAsDelegate
1365 substantially more complicated yet.
1367 1. Mechanically moved WebCoreResourceHandleAsDelegate into separate files.
1368 2. Refactored WebCoreSynchronousLoaderClient to be cross-platform, and moved it into
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.
1382 2013-03-21 Geoffrey Garen <ggaren@apple.com>
1384 Added a setting for whether JavaScript markup is enabled
1385 https://bugs.webkit.org/show_bug.cgi?id=112999
1387 Reviewed by Maciej Stachowiak.
1389 This setting is useful for clients that want protection from script
1393 (Settings): Clarified which clients should call canExecuteScripts().
1395 * page/Settings.in: Added the new setting.
1397 2013-03-22 Roger Fong <roger_fong@apple.com>
1399 Unreviewed build fix.
1401 * bindings/scripts/preprocessor.pm:
1402 (applyPreprocessor):
1404 2013-03-22 Roger Fong <roger_fong@apple.com>
1406 Unreviewed. Force kill gcc-3.exe during bindings generation tests to avoid process hangs.
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.
1411 * bindings/scripts/preprocessor.pm:
1412 (applyPreprocessor):
1414 2013-03-22 Eric Carlson <eric.carlson@apple.com>
1416 Cleanup text track selection logic
1417 https://bugs.webkit.org/show_bug.cgi?id=113062
1419 Reviewed by Jer Noble.
1421 No new tests, covered by existing tests.
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:
1433 * html/shadow/MediaControlElements.cpp:
1434 (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Drive by cleanup, don't
1435 process inactive cues.
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
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:
1453 * page/CaptionUserPreferencesMac.h:
1454 * page/CaptionUserPreferencesMac.mm:
1455 (WebCore::CaptionUserPreferencesMac::textTrackSelectionScore): Calculate track language score
1456 according to user preferences.
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:
1464 2013-03-22 ChangSeok Oh <changseok.oh@collabora.com>
1466 Build fix for TransformationMatrix
1467 https://bugs.webkit.org/show_bug.cgi?id=113087
1469 Reviewed by Martin Robinson.
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.
1475 No new tests because of no functionality change.
1477 * platform/graphics/clutter/GraphicsContext3DPrivate.cpp:
1478 * platform/graphics/clutter/GraphicsContext3DPrivate.h:
1481 2013-03-22 Steve Block <steveblock@chromium.org>
1483 Coordinates.idl lacks Conditional=GEOLOCATION
1484 https://bugs.webkit.org/show_bug.cgi?id=112949
1486 Reviewed by Steve Block.
1488 No new tests, build optimization only.
1490 * page/Coordinates.idl: Added GEOLOCATION conditional guard.
1492 2013-03-22 Daniel Cheng <dcheng@chromium.org>
1494 Data store should be readable in dragstart/copy/cut events
1495 https://bugs.webkit.org/show_bug.cgi?id=23695
1497 Reviewed by Tony Chang.
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.
1506 Tests: editing/pasteboard/can-read-in-copy-and-cut-events.html
1507 editing/pasteboard/can-read-in-dragstart-event.html
1509 * dom/Clipboard.cpp:
1510 (WebCore::Clipboard::canReadTypes): Formerly restricted to ClipboardReadable and
1511 ClipboardTypesReadable; now allows ClipboardWritable as
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):
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):
1583 2013-03-22 Andrei Bucur <abucur@adobe.com>
1585 [CSS Regions] Remove pushLayoutState(RenderFlowThread*) from RenderView
1586 https://bugs.webkit.org/show_bug.cgi?id=113084
1588 Reviewed by Dirk Schulze.
1590 Remove void pushLayoutState(RenderFlowThread*, bool regionsChanged) from RenderView.h because it's not used.
1592 Tests: Code cleanup. No tests needed.
1594 * rendering/RenderView.h:
1597 2013-03-22 Kondapally Kalyan <kalyan.kondapally@intel.com>
1599 [EFL] Fix build issues to enable CSS Filter and Shaders support.
1600 https://bugs.webkit.org/show_bug.cgi?id=111274
1602 Reviewed by Noam Rosenthal.
1604 This is in preperation to enable CSS Filter and Shaders support.
1605 This patch fixes related build issues to enable the support.
1607 * platform/graphics/surfaces/efl/GLTransportSurface.cpp:
1608 * platform/graphics/texmap/TextureMapper.cpp:
1609 * platform/graphics/texmap/TextureMapper.h:
1611 * platform/graphics/texmap/TextureMapperGL.cpp:
1612 * platform/graphics/texmap/TextureMapperGL.h:
1614 * platform/graphics/texmap/TextureMapperShaderProgram.h:
1616 2013-03-22 Matt Falkenhagen <falken@chromium.org>
1618 Implement isEnabledFormControl() for SliderThumbElement and SpinButtonElement in terms of disabled()
1619 https://bugs.webkit.org/show_bug.cgi?id=112993
1621 Reviewed by Kent Tamura.
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.
1630 No new tests, there should be no behavior change.
1632 * html/shadow/SliderThumbElement.cpp:
1633 (WebCore::SliderThumbElement::disabled):
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)
1642 2013-03-22 Allan Sandfeld Jensen <allan.jensen@digia.com>
1644 [Qt] New fast/text/word-space-with-kerning-3.html fails on Qt.
1645 https://bugs.webkit.org/show_bug.cgi?id=112668
1647 Reviewed by Jocelyn Turcotte.
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.
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.
1657 * platform/graphics/Font.h:
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):
1666 2013-03-22 Joshua Bell <jsbell@chromium.org>
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
1671 Reviewed by Tony Chang.
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
1679 No new tests; failures already manifest as flaky crashes in some ports.
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.
1685 2013-03-22 David Grogan <dgrogan@chromium.org>
1687 IndexedDB: Histogram available disk space on attempt to open database
1688 https://bugs.webkit.org/show_bug.cgi?id=112862
1690 Reviewed by Tony Chang.
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.
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.
1700 * platform/leveldb/LevelDBDatabase.cpp:
1701 (WebCore::HistogramFreeSpace):
1703 (WebCore::LevelDBDatabase::open):
1705 2013-03-22 Nate Chapin <japhet@chromium.org>
1707 REGRESSION (r146239): Reproducible crash in WebCore::DocumentLoader::responseReceived.
1708 https://bugs.webkit.org/show_bug.cgi?id=112811
1710 Reviewed by Brady Eidson.
1712 Test: http/tests/cache/x-frame-options-304.html
1714 * loader/DocumentLoader.cpp:
1715 (WebCore::DocumentLoader::responseReceived):
1716 * loader/cache/CachedRawResource.cpp:
1717 (WebCore::CachedRawResource::switchClientsToRevalidatedResource):
1718 * loader/cache/CachedRawResource.h:
1720 2013-03-22 Jer Noble <jer.noble@apple.com>
1722 REGRESSION: -webkit-box-reflect does not show on video elements
1723 https://bugs.webkit.org/show_bug.cgi?id=112397
1725 Reviewed by Eric Carlson.
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
1731 * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1732 (PlatformCALayer::clone):
1734 2013-03-22 peavo@outlook.com <peavo@outlook.com>
1736 [Curl] Performance fix, avoid loading cookie file on every request.
1737 https://bugs.webkit.org/show_bug.cgi?id=113023
1739 Reviewed by Brent Fulgham.
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.
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.
1751 2013-03-22 Tiancheng Jiang <tijiang@rim.com>
1753 [BlackBerry] Update Input field Background Color
1754 https://bugs.webkit.org/show_bug.cgi?id=113063
1756 Reviewed by George Staikos.
1759 Internally reviewed by Ed Baker.
1761 * platform/blackberry/RenderThemeBlackBerry.cpp:
1762 (WebCore::RenderThemeBlackBerry::paintTextFieldOrTextAreaOrSearchField):
1764 2013-03-22 Ilya Tikhonovsky <loislo@chromium.org>
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
1769 Reviewed by Vsevolod Vlasov.
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.
1777 * inspector/front-end/FlameChart.js:
1778 (WebInspector.FlameChart):
1779 (WebInspector.FlameChart.prototype.draw):
1780 (WebInspector.FlameChart.prototype._prepareTitle):
1782 2013-03-22 Vladislav Kaznacheev <kaznacheev@chromium.org>
1784 Web Inspector: Add "hidden" attribute to the recently added APIs in Inspector.json
1785 https://bugs.webkit.org/show_bug.cgi?id=113061
1787 Added "hidden": true to the APIs introduced since version 1.0.
1789 Reviewed by Pavel Feldman.
1791 * inspector/Inspector.json:
1793 2013-03-22 Vsevolod Vlasov <vsevik@chromium.org>
1795 Web Inspector: Correctly implement scrollToLine, revealLine and setSelection on CodeMirror editor.
1796 https://bugs.webkit.org/show_bug.cgi?id=113028
1798 Reviewed by Pavel Feldman.
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.
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):
1822 2013-03-22 Vsevolod Vlasov <vsevik@chromium.org>
1824 Web Inspector: [Regression] Editor scroll is not restored after inspector reload.
1825 https://bugs.webkit.org/show_bug.cgi?id=113027
1827 Reviewed by Pavel Feldman.
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):
1837 2013-03-22 Allan Sandfeld Jensen <allan.jensen@digia.com>
1839 [Qt] Fix build with OPENCL 1.2
1840 https://bugs.webkit.org/show_bug.cgi?id=113056
1842 Reviewed by Kenneth Rohde Christiansen.
1844 Switch qmake checks to the modern style which means we can enable OpenCL with
1845 WEBKIT_CONFIG+=opencl.
1847 Upgrade OpenCL 1.1 clCreateImage2D to OpenCL 1.2 clCreateImage calls.
1851 * platform/graphics/filters/FilterEffect.cpp:
1852 (WebCore::FilterEffect::createOpenCLImageResult):
1853 * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
1854 (WebCore::FilterContextOpenCL::createOpenCLImage):
1856 2013-03-22 ChangSeok Oh <changseok.oh@collabora.com>
1858 [GTK][AC] Opacity animation doesn't work with clutter backend
1859 https://bugs.webkit.org/show_bug.cgi?id=110347
1861 Reviewed by Gustavo Noronha Silva.
1863 The static casting in ternary operator doesn't change actual inputted argument type.
1864 So I replaced it with if-else statement.
1866 Covered by existing animation tests.
1868 * platform/graphics/clutter/PlatformClutterAnimation.cpp:
1869 (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
1870 (WebCore::PlatformClutterAnimation::addClutterKeyframeTransitionForProperty):
1872 2013-03-22 ChangSeok Oh <changseok.oh@collabora.com>
1874 [GTK][AC] Add removing animations procedure with clutter ac backend
1875 https://bugs.webkit.org/show_bug.cgi?id=110607
1877 Reviewed by Gustavo Noronha Silva.
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.
1886 Covered by existing animation tests.
1888 * platform/graphics/clutter/GraphicsLayerClutter.cpp:
1889 (WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
1890 (WebCore::GraphicsLayerClutter::removeAnimation):
1892 (WebCore::GraphicsLayerClutter::removeClutterAnimationFromLayer):
1893 * platform/graphics/clutter/GraphicsLayerClutter.h:
1894 (WebCore::GraphicsLayerClutter::animationIsRunning):
1895 (GraphicsLayerClutter):
1897 2013-03-22 Kondapally Kalyan <kalyan.kondapally@intel.com>
1899 [EFL][WebGL] Optimize AlphaOp for HTMLVideoElement input.
1900 https://bugs.webkit.org/show_bug.cgi?id=113049
1902 Reviewed by Kenneth Rohde Christiansen.
1904 Covered by existing tests.
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.
1911 * platform/graphics/efl/GraphicsContext3DEfl.cpp:
1912 (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
1914 2013-03-22 Tommy Widenflycht <tommyw@google.com>
1916 Clean up the speech recognintion API
1917 https://bugs.webkit.org/show_bug.cgi?id=112916
1919 Reviewed by Adam Barth.
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).
1924 Patch covered by existing tests.
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:
1939 (SpeechRecognitionEventInit):
1940 (SpeechRecognitionEvent):
1941 (WebCore::SpeechRecognitionEvent::emma):
1942 * Modules/speech/SpeechRecognitionEvent.idl:
1944 2013-03-22 Emil A Eklund <eae@chromium.org>
1946 Floor cell widths in AutoTableLayout::recalcColumn
1947 https://bugs.webkit.org/show_bug.cgi?id=112922
1949 Reviewed by Levi Weintraub.
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.
1956 Test: fast/sub-pixel/table-with-subpixel-cell-size.html
1958 * rendering/AutoTableLayout.cpp:
1959 (WebCore::AutoTableLayout::recalcColumn): Floor width to match column sizing logic.
1961 2013-03-22 David Kilzer <ddkilzer@apple.com>
1963 BUILD FIX (r146208): Export shouldPrintExceptions methods for iOS
1965 Fixes the following build failure:
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)
1975 * WebCore.exp.in: Move symbols so they're exported for iOS as
1978 2013-03-22 Yury Semikhatsky <yurys@chromium.org>
1980 Unreviewed. Fix Chromium Win compilation after r146583.
1982 * bindings/v8/CustomElementHelpers.cpp:
1983 (WebCore::CustomElementHelpers::invokeReadyCallbackIfNeeded):
1985 2013-03-22 Ilya Tikhonovsky <loislo@chromium.org>
1987 Web Inspector: Flame Chart. Chart has to be zoomed around the mouse pointer.
1988 https://bugs.webkit.org/show_bug.cgi?id=113031
1990 Reviewed by Yury Semikhatsky.
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.
1996 Minor unrelated fix: draw small border at bottom of the overview grid.
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):
2005 2013-03-22 No'am Rosenthal <noam@webkit.org>
2007 [Texmap] TextureMapperImageBuffer should not use rendering code for filters.
2008 https://bugs.webkit.org/show_bug.cgi?id=113040
2010 Reviewed by Kenneth Rohde Christiansen.
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
2016 No new testable functionality.
2018 * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
2019 (WebCore::BitmapTextureImageBuffer::applyFilters):
2021 2013-03-22 Sergey Ryazanov <serya@chromium.org>
2023 Web Inspector: Report more CSS errors
2024 https://bugs.webkit.org/show_bug.cgi?id=113022
2026 Reviewed by Pavel Feldman.
2028 Reporting next few CSS syntax errors in declaration_list.
2030 * css/CSSGrammar.y.in:
2032 2013-03-18 Yury Semikhatsky <yurys@chromium.org>
2034 Web Inspector: use individual samples to construct CPU profile flame chart
2035 https://bugs.webkit.org/show_bug.cgi?id=112569
2037 Reviewed by Pavel Feldman.
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.
2045 * bindings/js/ScriptProfile.cpp:
2046 (WebCore::ScriptProfile::buildInspectorObjectForSamples):
2047 * bindings/js/ScriptProfile.h:
2049 * bindings/v8/ScriptProfile.cpp:
2050 (WebCore::buildInspectorObjectFor):
2052 (WebCore::ScriptProfile::buildInspectorObjectForSamples):
2053 * bindings/v8/ScriptProfile.h:
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):
2066 2013-03-22 Steve Block <steveblock@chromium.org>
2068 Use generated bindings for the Coordinates type used by Geolocation
2069 https://bugs.webkit.org/show_bug.cgi?id=112975
2071 Reviewed by Kentaro Hara.
2073 No new tests, refactoring only.
2076 * GNUmakefile.list.am:
2077 * Modules/geolocation/Coordinates.cpp: Renamed from Source/WebCore/bindings/js/JSCoordinatesCustom.cpp.
2079 (WebCore::Coordinates::altitude):
2080 (WebCore::Coordinates::altitudeAccuracy):
2081 (WebCore::Coordinates::heading):
2082 (WebCore::Coordinates::speed):
2083 * Modules/geolocation/Coordinates.h:
2085 * Modules/geolocation/Coordinates.idl:
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.
2097 2013-03-22 Kunihiko Sakamoto <ksakamoto@chromium.org>
2099 INPUT_MULTIPLE_FIELDS_UI: Incomplete datetime format should fallback to default
2100 https://bugs.webkit.org/show_bug.cgi?id=113005
2102 Reviewed by Kent Tamura.
2104 Use fallback format when datetime format from locale is not complete.
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
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:
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:
2137 * html/TimeInputType.cpp:
2138 (WebCore::TimeInputType::isValidFormat): Added.
2139 * html/TimeInputType.h:
2141 * html/WeekInputType.cpp:
2142 (WebCore::WeekInputType::isValidFormat): Added.
2143 * html/WeekInputType.h:
2146 2013-03-22 Hajime Morrita <morrita@google.com>
2148 Custom Elements: "readyCallback" lifecycle callback should be called.
2149 https://bugs.webkit.org/show_bug.cgi?id=112538
2151 Reviewed by Elliott Sprehn.
2153 This change allows each custom element definition to hook up its instantiation,
2154 namely "readyCallback" lifecycle callback.
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.
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.
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.
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().
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.
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
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
2201 * bindings/scripts/CodeGeneratorV8.pm:
2202 - Hooked up CallbackDeliveryScope through V8DeliverCustomElementCallbacks attriute.
2203 (GenerateCustomElementInvocationScopeIfNeeded):
2204 (GenerateNormalAttrSetter):
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):
2240 (WebCore::Document::createElement):
2241 (WebCore::Document::didCreateCustomElement):
2246 (WebCore::Element::attributeChangedFromParserOrByCloning): Added to catch @is attribute
2247 (WebCore::Element::parserSetAttributes):
2248 (WebCore::Element::cloneAttributesFromElement):
2251 * dom/ShadowRoot.idl:
2252 * html/HTMLElement.idl:
2253 * html/parser/HTMLScriptRunner.cpp: Added deliverAllLifecycleCallbacks()
2254 (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
2255 (WebCore::HTMLScriptRunner::runScript):
2257 2013-03-22 Tommy Widenflycht <tommyw@google.com>
2259 MediaStream API: Finalize the RTCPeerConnection states
2260 https://bugs.webkit.org/show_bug.cgi?id=112792
2262 Reviewed by Adam Barth.
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
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"
2274 Patch covered by modified tests.
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:
2287 * platform/mediastream/RTCPeerConnectionHandlerClient.h:
2289 2013-03-22 Mike West <mkwst@chromium.org>
2291 Prefer 'KURL(ParsedURLString, String)' when dealing with known-good data.
2292 https://bugs.webkit.org/show_bug.cgi?id=112965
2294 Reviewed by Alexey Proskuryakov.
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.
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.
2316 2013-03-22 Ilya Tikhonovsky <loislo@chromium.org>
2318 Web Inspector: Flame Chart. move overview window when user scrolls the chart.
2319 https://bugs.webkit.org/show_bug.cgi?id=113014
2321 Reviewed by Yury Semikhatsky.
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.
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):
2353 2013-03-22 Steve Block <steveblock@chromium.org>
2355 Move GeolocationClient.h to Modules/geolocation/
2356 https://bugs.webkit.org/show_bug.cgi?id=112997
2358 Reviewed by Kentaro Hara.
2360 No new tests, no functional change.
2362 * GNUmakefile.list.am:
2363 * Modules/geolocation/GeolocationClient.h: Renamed from Source/WebCore/page/GeolocationClient.h.
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:
2372 2013-03-22 Sheriff Bot <webkit.review.bot@gmail.com>
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
2379 "r146534 caused perf regression on Chromium Linux x64"
2380 (Requested by yurys on #webkit).
2382 * bindings/scripts/CodeGeneratorV8.pm:
2383 (GenerateNormalAttrSetter):
2384 (GenerateOverloadedFunction):
2385 (GenerateFunctionCallback):
2387 (GenerateParametersCheck):
2388 (GenerateSingleConstructorCallback):
2389 (GenerateNonStandardFunction):
2390 (GenerateImplementation):
2391 (GenerateFunctionCallString):
2392 * bindings/scripts/IDLAttributes.txt:
2393 * bindings/scripts/test/V8/V8Float64Array.cpp:
2395 * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2397 * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2399 * bindings/scripts/test/V8/V8TestInterface.cpp:
2401 * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2403 * bindings/scripts/test/V8/V8TestObj.cpp:
2405 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2407 * bindings/scripts/test/V8/V8TestTypedefs.cpp:
2409 * bindings/v8/CustomElementHelpers.cpp:
2410 * bindings/v8/CustomElementHelpers.h:
2412 (CustomElementHelpers):
2413 * bindings/v8/V8DOMConfiguration.cpp:
2414 (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
2415 (WebCore::V8DOMConfiguration::configureTemplate):
2416 * bindings/v8/V8DOMConfiguration.h:
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:
2429 (CustomElementRegistry):
2431 (WebCore::Document::createElement):
2432 (WebCore::Document::registerElement):
2436 (WebCore::Element::parserSetAttributes):
2437 (WebCore::Element::cloneAttributesFromElement):
2441 * dom/ShadowRoot.idl:
2442 * html/HTMLElement.idl:
2443 * html/parser/HTMLScriptRunner.cpp:
2444 (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
2445 (WebCore::HTMLScriptRunner::runScript):
2447 2013-03-22 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
2449 [GStreamer] Memory leak in AudioFileReader::createBus()
2450 https://bugs.webkit.org/show_bug.cgi?id=112925
2452 Reviewed by Martin Robinson.
2454 Adopt the reference returned by g_timeout_source_new()
2455 to fix a memory leak.
2457 No new tests. No change in behavior.
2459 * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
2460 (WebCore::AudioFileReader::createBus):
2462 2013-03-22 Steve Block <steveblock@chromium.org>
2464 Move page/Coordinates.[h|idl] to Modules/geolocation/
2465 https://bugs.webkit.org/show_bug.cgi?id=112945
2467 Reviewed by Kentaro Hara.
2469 No new tests, no functional change.
2472 * DerivedSources.make:
2473 * DerivedSources.pri:
2474 * GNUmakefile.list.am:
2475 * Modules/geolocation/Coordinates.h: Renamed from Source/WebCore/page/Coordinates.h.
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.
2495 * WebCore.vcproj/WebCore.vcproj:
2496 * WebCore.vcxproj/WebCore.vcxproj:
2497 * WebCore.vcxproj/WebCore.vcxproj.filters:
2498 * WebCore.xcodeproj/project.pbxproj:
2500 2013-03-21 Hajime Morrita <morrita@google.com>
2502 Custom Elements: "readyCallback" lifecycle callback should be called.
2503 https://bugs.webkit.org/show_bug.cgi?id=112538
2505 Reviewed by Elliott Sprehn.
2507 This change allows each custom element definition to hook up its instantiation,
2508 namely "readyCallback" lifecycle callback.
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.
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.
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.
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().
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.
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
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
2555 * bindings/scripts/CodeGeneratorV8.pm:
2556 - Hooked up CallbackDeliveryScope through V8DeliverCustomElementCallbacks attriute.
2557 (GenerateCustomElementInvocationScopeIfNeeded):
2558 (GenerateNormalAttrSetter):
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):
2594 (WebCore::Document::createElement):
2595 (WebCore::Document::didCreateCustomElement):
2600 (WebCore::Element::attributeChangedFromParserOrByCloning): Added to catch @is attribute
2601 (WebCore::Element::parserSetAttributes):
2602 (WebCore::Element::cloneAttributesFromElement):
2605 * dom/ShadowRoot.idl:
2606 * html/HTMLElement.idl:
2607 * html/parser/HTMLScriptRunner.cpp: Added deliverAllLifecycleCallbacks()
2608 (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
2609 (WebCore::HTMLScriptRunner::runScript):
2611 2013-03-21 Jer Noble <jer.noble@apple.com>
2613 Crash in WebCore::MediaPlayer::cachedResourceLoader + 4
2614 https://bugs.webkit.org/show_bug.cgi?id=112977
2616 Reviewed by Geoffrey Garen.
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.
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.
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.
2635 2013-03-21 Takashi Sakamoto <tasak@google.com>
2637 XMLDocumentParser doesn't parse <template> correctly.
2638 https://bugs.webkit.org/show_bug.cgi?id=112328
2640 Reviewed by Hajime Morrita.
2642 XMLDocumentParser should check whether a parent node is attached or not
2643 when a new element is appended.
2645 Test: fast/dom/HTMLTemplateElement/xhtml-with-titleElement-parsing-crash.xhtml
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.
2654 2013-03-21 David Grogan <dgrogan@chromium.org>
2656 Unreviewed, rolling out r146560.
2657 http://trac.webkit.org/changeset/146560
2658 https://bugs.webkit.org/show_bug.cgi?id=112862
2660 invalid parameter to histogram
2662 * platform/leveldb/LevelDBDatabase.cpp:
2663 (WebCore::LevelDBDatabase::open):
2665 2013-03-21 David Grogan <dgrogan@chromium.org>
2667 IndexedDB: Histogram available disk space on attempt to open database
2668 https://bugs.webkit.org/show_bug.cgi?id=112862
2670 Reviewed by Adam Barth.
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.
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.
2680 * platform/leveldb/LevelDBDatabase.cpp:
2681 (WebCore::HistogramFreeSpace):
2683 (WebCore::LevelDBDatabase::open):
2685 2013-03-21 Li Yin <li.yin@intel.com>
2687 FileAPI: Remove deprecation warning when ArrayBuffer is in Blob constructor.
2688 https://bugs.webkit.org/show_bug.cgi?id=88389
2690 Reviewed by Kenneth Russell.
2692 Spec: http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob
2693 Both ArrayBuffer and ArrayBufferView should be supported for Blob constructor.
2695 Test: fast/files/blob-constructor.html.
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:
2707 2013-03-21 Takashi Sakamoto <tasak@google.com>
2709 [Shadow]: @host styles are not applied dynamically
2710 https://bugs.webkit.org/show_bug.cgi?id=112869
2712 Reviewed by Elliott Sprehn.
2714 Need to add features of @host @-rules to rule feature set.
2716 Test: fast/dom/shadow/athost-apply-dynamically.html
2718 * css/StyleScopeResolver.cpp:
2719 (WebCore::StyleScopeResolver::collectFeaturesTo):
2721 2013-03-21 Hayato Ito <hayato@chromium.org>
2723 [Shadow] Provide an api of insertionParent().
2724 https://bugs.webkit.org/show_bug.cgi?id=112866
2726 Add insertinParent binding to Element and Text.
2727 It's prefixed (webkitInsertionParent) and guarded by SHADOW_DOM flag.
2729 The bug in the Shadow DOM spec is here:
2730 https://www.w3.org/Bugs/Public/show_bug.cgi?id=21067
2732 Reviewed by Dimitri Glazkov.
2734 Test: fast/dom/shadow/insertion-parent.html
2738 (WebCore::Node::insertionParentForBinding):
2744 2013-03-21 Tom Sepez <tsepez@chromium.org>
2746 Bypass XSSAuditor for asp.net servers.
2747 https://bugs.webkit.org/show_bug.cgi?id=112235
2749 Reviewed by Adam Barth.
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.
2754 Test: http/tests/security/xssAuditor/img-tag-with-comma.html
2756 * html/parser/XSSAuditor.cpp:
2757 (WebCore::isTerminatingCharacter):
2758 Beware of comma-splicing tricks by stopping at commas.
2760 2013-03-21 Brady Eidson <beidson@apple.com>
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
2765 Reviewed by Geoff Garen.
2767 No new tests (No change in behavior.)
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):
2774 Forward along SharedBuffer's new ability to ResourceBuffer:
2775 * loader/mac/ResourceBuffer.mm:
2776 (WebCore::ResourceBuffer:: tryReplaceSharedBufferContents):
2777 * loader/ResourceBuffer.h:
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:
2786 2013-03-21 Joshua Bell <jsbell@chromium.org>
2788 IndexedDB: Ensure script wrappers can be collected after context is stopped
2789 https://bugs.webkit.org/show_bug.cgi?id=112976
2791 Reviewed by Adam Barth.
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.
2797 No new tests - suggestions welcome.
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.
2809 2013-03-21 Russell McClellan <russell.mcclellan@gmail.com>
2811 Remove upcastPointer from ActiveDOMObject constructor
2812 https://bugs.webkit.org/show_bug.cgi?id=112858
2814 Reviewed by Alexey Proskuryakov.
2816 Removed pesky argument to ActiveDOMObject constructor that is no longer
2819 No new tests (no change in behavior).
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:
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:
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):
2900 2013-03-21 Alexey Proskuryakov <ap@apple.com>
2902 [Mac] Move NSOperationQueue out of NetworkingContext
2903 https://bugs.webkit.org/show_bug.cgi?id=112970
2905 Reviewed by Brady Eidson.
2907 WebCore clients do not need explicit control over what queue ResourceHandle works on,
2908 they just want to avoid blocking main thread.
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.
2914 * platform/network/NetworkingContext.h:
2915 (WebCore::NetworkingContext::scheduledRunLoopPairs):
2916 * platform/network/mac/ResourceHandleMac.mm:
2917 (WebCore::operationQueueForAsyncClients):
2918 (WebCore::ResourceHandle::start):
2920 2013-03-21 Marja Hölttä <marja@chromium.org>
2922 [V8] Generate specialized callbacks for the main world
2923 https://bugs.webkit.org/show_bug.cgi?id=112430
2925 Reviewed by Jochen Eisinger.
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.
2931 This patch generates main world bindings for getters and setters of Node,
2932 Element and Document.
2934 No new tests (updated existing binding tests).
2936 * bindings/scripts/CodeGeneratorV8.pm:
2937 (GenerateOverloadedFunction):
2938 (GenerateFunctionCallback):
2940 (GenerateParametersCheck):
2941 (GenerateSingleConstructorCallback):
2942 (GenerateNonStandardFunction):
2943 (GenerateImplementation):
2944 (GenerateFunctionCallString):
2945 * bindings/scripts/test/V8/V8Float64Array.cpp:
2947 * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2949 * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2951 * bindings/scripts/test/V8/V8TestInterface.cpp:
2953 * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2955 * bindings/scripts/test/V8/V8TestObj.cpp:
2957 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2959 * bindings/scripts/test/V8/V8TestTypedefs.cpp:
2961 * bindings/v8/V8DOMConfiguration.cpp:
2962 (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
2963 (WebCore::V8DOMConfiguration::configureTemplate):
2964 * bindings/v8/V8DOMConfiguration.h:
2966 (V8DOMConfiguration):
2971 2013-03-21 Elliott Sprehn <esprehn@chromium.org>
2973 Remove RenderObject::canHaveRegionStyle since nothing uses it
2974 https://bugs.webkit.org/show_bug.cgi?id=112973
2976 Reviewed by Eric Seidel.
2978 Nothing uses canHaveRegionStyle so we can remove it.
2980 * rendering/RenderObject.h:
2982 2013-03-21 Alok Priyadarshi <alokp@chromium.org>
2984 Mark GraphicsLayers as opaque when possible
2985 https://bugs.webkit.org/show_bug.cgi?id=70634
2987 Reviewed by Simon Fraser.
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.
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
2998 * rendering/RenderBox.cpp:
2999 (WebCore::skipBodyBackground):
3001 (WebCore::RenderBox::paintBackground):
3002 (WebCore::RenderBox::backgroundIsKnownToBeOpaqueInRect):
3003 * rendering/RenderBox.h:
3005 * rendering/RenderLayer.cpp:
3006 (WebCore::RenderLayer::backgroundIsKnownToBeOpaqueInRect):
3008 (WebCore::RenderLayer::listBackgroundIsKnownToBeOpaqueInRect):
3009 * rendering/RenderLayer.h:
3011 * rendering/RenderLayerBacking.cpp:
3012 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
3013 * rendering/RenderLayerModelObject.h:
3014 (RenderLayerModelObject):
3015 (WebCore::RenderLayerModelObject::backgroundIsKnownToBeOpaqueInRect):
3017 2013-03-21 Alexandru Chiculita <achicu@adobe.com>
3019 [CSS Shaders] Implement a StyleCustomFilterProgram cache
3020 https://bugs.webkit.org/show_bug.cgi?id=112602
3022 Reviewed by Dean Jackson.
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.
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.
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.
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.
3037 StyleCustomFilterProgram waits until the first client to load the programs, so in this case it will just remain unloaded.
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.
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.
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.
3050 StyleCustomFilterProgramCache is owned by the StyleResovler and StyleCustomFilterPrograms are responsible with
3051 removing themselves from the cache when the last reference goes away.
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
3056 Test: css3/filters/custom/custom-filter-reload.html
3058 * GNUmakefile.list.am:
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:
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.
3112 2013-03-21 Joshua Bell <jsbell@chromium.org>
3114 IndexedDB: Ensure all API methods have IDB_TRACE macros
3115 https://bugs.webkit.org/show_bug.cgi?id=112963
3117 Reviewed by Tony Chang.
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.
3123 No new tests - just harmless diagnostic sprinkles.
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):
3142 2013-03-21 Christian Biesinger <cbiesinger@chromium.org>
3144 http://trac.webkit.org/changeset/146375 causing CrOS crashes
3145 https://bugs.webkit.org/show_bug.cgi?id=112958
3147 Reviewed by Adam Barth.
3149 Test: fast/flexbox/crash-anonymous-box.html
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.
3156 2013-03-21 Mike West <mkwst@chromium.org>
3158 CSP 1.1: Fire a SecurityPolicyViolationEvent when violations occur.
3159 https://bugs.webkit.org/show_bug.cgi?id=112783
3161 Reviewed by Adam Barth.
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.
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
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
3175 Test: http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image.html
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.
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.
3189 2013-03-21 Terry Anderson <tdanderson@chromium.org>
3191 [chromium] Remove SK_SUPPORT_HINTING_SCALE_FACTOR flag and code
3192 https://bugs.webkit.org/show_bug.cgi?id=112928
3194 Reviewed by Stephen White.
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
3199 No new tests needed since this is just removing unused code.
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:
3208 2013-03-21 Mike West <mkwst@chromium.org>
3210 Drop full URLs from cross-origin access errors caused by protocol mismatches.
3211 https://bugs.webkit.org/show_bug.cgi?id=112894
3213 Reviewed by Timothy Hatcher.
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.
3220 * page/DOMWindow.cpp:
3221 (WebCore::DOMWindow::crossDomainAccessErrorMessage):
3223 2013-03-21 Stephen Chenney <schenney@chromium.org>
3225 SVG text path referencing parent text infinite loops
3226 https://bugs.webkit.org/show_bug.cgi?id=112078
3228 Reviewed by Philip Rogers.
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.
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
3242 Test: svg/text/textpath-referencing-text-crash.svg
3244 * svg/SVGTextPathElement.cpp:
3245 (WebCore::SVGTextPathElement::buildPendingResource):
3247 2013-03-21 Joshua Bell <jsbell@chromium.org>
3249 IndexedDB: Remove onVersionChange(string) plumbing
3250 https://bugs.webkit.org/show_bug.cgi?id=112712
3252 Reviewed by Adam Barth.
3254 Delete unused onVersionChange(string) overload.
3256 No new tests - just deleting dead code.
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.
3265 2013-03-21 Philip Rogers <pdr@google.com>
3267 Correct bisector angle calculation for markers
3268 https://bugs.webkit.org/show_bug.cgi?id=112054
3270 Reviewed by Stephen Chenney.
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
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.
3283 Test: svg/custom/marker-orient-auto.html
3285 * rendering/svg/SVGMarkerData.h:
3286 (WebCore::SVGMarkerData::currentAngle):
3288 2013-03-21 Harald Alvestrand <hta@google.com>
3290 Expose the Type field of an RTCStatsReport
3291 https://bugs.webkit.org/show_bug.cgi?id=112951
3293 Reviewed by Adam Barth.
3295 Covered by an extension of an existing test.
3297 * Modules/mediastream/RTCStatsReport.h:
3298 (WebCore::RTCStatsReport::type):
3299 * Modules/mediastream/RTCStatsReport.idl:
3301 2013-03-21 Alexey Proskuryakov <ap@apple.com>
3303 Move non-trivial virtual functions out of ResourceHandleClient.h
3304 https://bugs.webkit.org/show_bug.cgi?id=112950
3306 Reviewed by Brady Eidson.
3309 * GNUmakefile.list.am:
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:
3324 2013-03-21 Florin Malita <fmalita@chromium.org>
3326 [SVG] Remove explicit LightSource dispatchers
3327 https://bugs.webkit.org/show_bug.cgi?id=112827
3329 Reviewed by Stephen Chenney.
3331 Convert LightSource setters to dynamic dispatch. This allows us to remove LightSource.cpp
3334 No new tests: refactoring only.
3337 * GNUmakefile.list.am:
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:
3360 * platform/graphics/filters/SpotLightSource.h:
3363 2013-03-21 Igor Oliveira <igor.o@sisa.samsung.com>
3365 [Texmap] Implement support for OpenGLES EXT_unpack_subimage extension
3366 https://bugs.webkit.org/show_bug.cgi?id=108716
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.
3371 Reviewed by Noam Rosenthal.
3373 * platform/graphics/texmap/TextureMapperGL.cpp:
3374 (WebCore::driverSupportsSubImage):
3375 (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
3376 (WebCore::BitmapTextureGL::updateContents):
3378 2013-03-21 Dmitry Zvorygin <zvorygin@chromium.org>
3380 Web Inspector: Regression: drawer resizes slowly with animation.
3381 https://bugs.webkit.org/show_bug.cgi?id=112920
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.
3386 Reviewed by Vsevolod Vlasov.
3388 * inspector/front-end/Drawer.js:
3389 (WebInspector.Drawer):
3391 2013-03-21 Alberto Garcia <agarcia@igalia.com>
3393 [BlackBerry] GraphicsLayer: fix code that was accidentally reverted
3394 https://bugs.webkit.org/show_bug.cgi?id=112143
3396 Reviewed by Rob Buis.
3398 Several changes were accidentally reverted in r144465 due to the
3399 upstreaming of some new code:
3401 - clearBackgroundColor() and m_contentsLayerHasBackgroundColor had
3402 been removed in r137798.
3404 - showDebugBorders() had been renamed to isShowingDebugBorder() in
3407 - A new GraphicsLayer::create() overload had been introduced in
3410 This patch fixes them all.
3412 * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
3413 (WebCore::GraphicsLayer::create):
3415 (WebCore::GraphicsLayerBlackBerry::GraphicsLayerBlackBerry):
3416 (WebCore::GraphicsLayerBlackBerry::setBackgroundColor):
3417 (WebCore::GraphicsLayerBlackBerry::updateLayerBackgroundColor):
3418 (WebCore::GraphicsLayerBlackBerry::setupContentsLayer):
3419 * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
3420 (GraphicsLayerBlackBerry):
3422 2013-03-21 Zan Dobersek <zdobersek@igalia.com>
3424 [GTK] Move libLevelDB.la setup into a separate GNUmakefile.am
3425 https://bugs.webkit.org/show_bug.cgi?id=112947
3427 Reviewed by Martin Robinson.
3429 No new tests - no new functionality.
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.
3435 2013-03-21 Alberto Garcia <agarcia@igalia.com>
3437 [BlackBerry] DrawingBuffer: add clearPlatformLayer() implementation
3438 https://bugs.webkit.org/show_bug.cgi?id=112696
3440 Reviewed by Rob Buis.
3442 DrawingBuffer::clearPlatformLayer() was added in r139142.
3444 This is not needed in the BlackBerry port, so this patch only
3445 contains a dummy implementation.
3447 * platform/graphics/blackberry/DrawingBufferBlackBerry.cpp: