756c9a1ef92d7c49022637a1455b2f450fa9970d
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-06-14  Sami Kyostila  <skyostil@chromium.org>
2
3         Register fixed position layers with ScrollingCoordinator
4         https://bugs.webkit.org/show_bug.cgi?id=78864
5
6         Reviewed by James Robinson.
7
8         This patch makes ScrollingCoordinator aware of page elements that are
9         either fixed positioned directly or through their ancestors and that
10         also have their own composited backing layers. This allows the
11         ScrollingCoordinator implementation to potentially enable fast
12         scrolling even if there are fixed elements on the page, because the
13         compositor can automatically reposition the fixed element layers after
14         scrolling.
15
16         Since fixed position layers need to be explicitly supported by the
17         ScrollingCoordinator implementation, we add a new
18         supportsFixedPositionLayers() query for checking this.
19
20         * page/FrameView.cpp:
21         (WebCore::FrameView::FrameView):
22         (WebCore::FrameView::useSlowRepaints):
23         (WebCore::FrameView::addFixedObject):
24         (WebCore::FrameView::removeFixedObject):
25         * page/FrameView.h:
26         (FrameView):
27         (WebCore::FrameView::fixedObjects):
28         (WebCore::FrameView::hasFixedObjects):
29         * page/scrolling/ScrollingCoordinator.cpp:
30         (WebCore::ScrollingCoordinator::frameViewFixedObjectsDidChange):
31         (WebCore::ScrollingCoordinator::hasNonLayerFixedObjects):
32         (WebCore):
33         (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
34         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPosition):
35         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
36         * page/scrolling/ScrollingCoordinator.h:
37         (ScrollingCoordinator):
38         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
39         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPosition):
40         (WebCore):
41         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
42         * rendering/RenderBox.cpp:
43         (WebCore::RenderBox::willBeDestroyed):
44         (WebCore::RenderBox::styleWillChange):
45         * rendering/RenderLayerBacking.cpp:
46         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
47         * rendering/RenderLayerCompositor.cpp:
48         (WebCore::RenderLayerCompositor::updateBacking):
49         (WebCore):
50         (WebCore::RenderLayerCompositor::fixedPositionedByAncestor):
51         (WebCore::RenderLayerCompositor::ensureRootLayer):
52         * rendering/RenderLayerCompositor.h:
53
54 2012-06-14  Alexey Proskuryakov  <ap@apple.com>
55
56         [CFNetwork] XMLHttpRequest incorrectly returns cached responses even when there is a Vary header field
57         https://bugs.webkit.org/show_bug.cgi?id=88925
58
59         Reviewed by David Kilzer.
60
61         Test: http/tests/cache/xhr-vary-header.html
62
63         * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::willCacheResponse): Don't
64         cache the response at all if there is a Vary header field. CFNetwork won't look at
65         it if we allowed the response cached.
66
67         * platform/network/mac/ResourceHandleMac.mm:
68         (WebCore::ResourceHandle::createNSURLConnection): [NSURLResponse copy] is mutable
69         in practice, but we should be nice, and use -mutableCopy.
70         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Same fix as in
71         CFNet code.
72
73 2012-06-13  Andrey Kosyakov  <caseq@chromium.org>
74
75         Web Inspector: use CSS gradients instead of images for timeline bars, checkboxes & bullets
76         https://bugs.webkit.org/show_bug.cgi?id=89024
77
78         Reviewed by Pavel Feldman.
79
80         This brings a bunch of UI changes to the way Timeline bars and related controls are rendered:
81
82         - introduce new color palette for categories;
83         - replace images used to render timeline bars, list bullets and categories checkboxes with CSS gradients;
84         - "flatten" timeline bars
85         - make square list bullets, sharpen corners for lower pane bars;
86         - make links on the list sidebar grey
87         - add more space between categories checkboxes, make labels lighter.
88
89         * WebCore.gypi: Remove old images, add tickMark.png.
90         * inspector/front-end/Images/timelineBarBlue.png: Removed.
91         * inspector/front-end/Images/timelineBarDarkGreen.png: Removed.
92         * inspector/front-end/Images/timelineBarGray.png: Removed.
93         * inspector/front-end/Images/timelineBarGreen.png: Removed.
94         * inspector/front-end/Images/timelineBarLightPurple.png: Removed.
95         * inspector/front-end/Images/timelineBarOrange.png: Removed.
96         * inspector/front-end/Images/timelineBarPurple.png: Removed.
97         * inspector/front-end/Images/timelineBarRed.png: Removed.
98         * inspector/front-end/Images/timelineBarYellow.png: Removed.
99         * inspector/front-end/Images/timelineCheckmarks.png: Removed.
100         * inspector/front-end/Images/timelineDots.png: Removed.
101         * inspector/front-end/TimelinePanel.js:
102         (WebInspector.TimelinePanel.prototype.wasShown): 
103         (WebInspector.TimelinePanel.prototype._closeRecordDetails): Fixed trailing spaces;
104         (WebInspector.TimelinePanel.prototype._injectCategoryStyles): Inject generated styles for categories, if necessary.
105         * inspector/front-end/TimelinePresentationModel.js:
106         (WebInspector.TimelinePresentationModel.categories):
107         (WebInspector.TimelinePresentationModel.createFillStyle):
108         (WebInspector.TimelinePresentationModel.createStyleRuleForCategory):
109         * inspector/front-end/WebKit.qrc: Remove old images, add tickMark.png
110         * inspector/front-end/inspector.css:
111         (.sidebar-tree-section):
112         * inspector/front-end/timelinePanel.css:
113         (#timeline-container .webkit-html-resource-link):
114         (.timeline-category-statusbar-item):
115         (.timeline-category-statusbar-item .timeline-category-checkbox):
116         (.timeline-category-statusbar-item .timeline-category-checkbox:checked::before):
117         (.timeline-tree-item):
118         (.timeline-tree-item .timeline-tree-icon):
119         (.timeline-graph-bar):
120         (.timeline-graph-bar.with-children):
121         (.timeline-graph-bar.cpu):
122         (.timeline-aggregated-category):
123         * inspector/front-end/utilities.js:
124         (Object.values): Return an array of object field's values.
125
126 2012-06-14  Silvia Pfeiffer  <silviapf@chromium.org>
127
128         Change mute button and volume slider behaviour for new Chromium video controls.
129         https://bugs.webkit.org/show_bug.cgi?id=88743
130
131         Reviewed by Eric Carlson.
132
133         No new tests, final patch will contain the rebaselined tests.
134
135         The Chrome video controls are receiving a visual update. This patch makes the mute button and
136         the volume slider interact with each other. When the user mutes the video through clicking the
137         mute button, the volume slider animates to 0% volume. Upon unmute, the previous volume level
138         is restored. Further, when the user drags the volume slider thumb or clicks on the slider and
139         the video is muted, the video unmutes and sets the volume to the user's chosen level.
140
141         * html/shadow/MediaControlElements.cpp:
142         (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement):
143         Add a member field to the volume slider to allow user interaction to unmute the video.
144         (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
145         Add the logic to unmute the video if the m_clearMutedOnUserInteraction member field is true.
146         (WebCore::MediaControlVolumeSliderElement::setClearMutedOnUserInteraction):
147         Add a member function to change the value of the m_clearMutedOnUserInteraction member field.
148         * html/shadow/MediaControlElements.h:
149         (MediaControlVolumeSliderElement):
150         Add the setClearMutedOnUserInteraction member function and the m_clearMutedOnUserInteraction member field.
151         * html/shadow/MediaControlRootElementChromium.cpp:
152         (WebCore::MediaControlRootElementChromium::create):
153         Activate unmute on user interaction on the Chromium video volume slider.
154         (WebCore::MediaControlRootElementChromium::changedMute):
155         Add logic to set volume slider to 0 when muted and reset to volume when unmuted.
156         * rendering/RenderMediaControlsChromium.cpp:
157         (WebCore::paintMediaVolumeSlider):
158         Add logic to paint the volume slider active area as 0 when muted.
159
160 2012-06-14  Vsevolod Vlasov  <vsevik@chromium.org>
161
162         Web Inspector: Breakpoints should not be set when UISourceCode content is diverged from VM version of the script.
163         https://bugs.webkit.org/show_bug.cgi?id=89109
164
165         Reviewed by Pavel Feldman.
166
167         * inspector/front-end/BreakpointManager.js:
168         (WebInspector.BreakpointManager.Breakpoint.prototype._updateBreakpoint):
169         * inspector/front-end/JavaScriptSource.js:
170         (WebInspector.JavaScriptSource.prototype.isDivergedFromVM):
171         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
172
173 2012-06-14  Vsevolod Vlasov  <vsevik@chromium.org>
174
175         Web Inspector: DebuggerModel should support setting breakpoints without script by sourceURL only.
176         https://bugs.webkit.org/show_bug.cgi?id=88988
177
178         Reviewed by Pavel Feldman.
179
180         This change allows setting all saved breakpoints in debugger model by url before the site
181         with corresponding scripts was loaded (allows breaking in onload handler on first load).
182         This change also simplifies implementation of snippets debugging.
183
184         * inspector/front-end/BreakpointManager.js:
185         * inspector/front-end/DebuggerModel.js:
186         (WebInspector.DebuggerModel.prototype.setBreakpointByScriptLocation):
187
188 2012-06-14  Pavel Feldman  <pfeldman@chromium.org>
189
190         Web Inspector: refactor settings screen to move user agent and experiments out of general tab.
191         https://bugs.webkit.org/show_bug.cgi?id=89101
192
193         Reviewed by Vsevolod Vlasov.
194
195         See image attached to the bug.
196
197         * English.lproj/localizedStrings.js:
198         * inspector/front-end/SettingsScreen.js:
199         (WebInspector.SettingsScreen.prototype.selectTab):
200         (WebInspector.SettingsScreen.prototype._tabSelected):
201         (WebInspector.SettingsScreen.prototype.set wasShown):
202         (WebInspector.SettingsScreen.prototype.willHide):
203         (WebInspector.SettingsTab):
204         (WebInspector.SettingsTab.prototype._appendSection):
205         (WebInspector.SettingsTab.prototype._createCustomSetting):
206         (WebInspector.GenericSettingsTab):
207         (WebInspector.GenericSettingsTab.prototype._showPaintRectsChanged):
208         (WebInspector.GenericSettingsTab.prototype.get _updateScriptDisabledCheckbox):
209         (WebInspector.GenericSettingsTab.prototype._javaScriptDisabledChanged):
210         (WebInspector.UserAgentSettingsTab):
211         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.get const):
212         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.textDoubleClicked):
213         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.textChanged):
214         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.set checkboxClicked):
215         (WebInspector.UserAgentSettingsTab.prototype._createDeviceMetricsElement):
216         (WebInspector.ExperimentsSettingsTab):
217         (WebInspector.ExperimentsSettingsTab.prototype._createExperimentsWarningSubsection):
218         (WebInspector.ExperimentsSettingsTab.prototype._createExperimentCheckbox.listener):
219         (WebInspector.ExperimentsSettingsTab.prototype._createExperimentCheckbox):
220         * inspector/front-end/ShortcutsScreen.js:
221         * inspector/front-end/TabbedPane.js:
222         (WebInspector.TabbedPane.prototype.get headerContentsElement):
223         * inspector/front-end/helpScreen.css:
224         (.settings-tab.help-container):
225         (.settings-tab .help-block):
226         (.help-content fieldset):
227         (#settings-screen .tabbed-pane-header-tabs):
228         (#settings-screen .tabbed-pane-header-tab):
229
230 2012-06-13  Mark Hahnenberg  <mhahnenberg@apple.com>
231
232         Worker tear-down can re-enter JSC during GC finalization pt. 2
233         https://bugs.webkit.org/show_bug.cgi?id=88601
234
235         Reviewed by David Levin.
236
237         No new tests. Current regression tests are sufficient.
238
239         * workers/WorkerMessagingProxy.cpp:
240         (WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
241         (WebCore::WorkerMessagingProxy::workerObjectDestroyed): We clear the m_workerObject here because 
242         we don't want anybody else trying to send messages to the Worker now that it has been destroyed.
243         We also queue the asynchronous task for the various other cleanup that still needs to be done. 
244         This allows us to avoid the problem of re-entrant JS code execution during GC.
245         (WebCore):
246         (WebCore::WorkerMessagingProxy::workerObjectDestroyedInternal): Here we set m_mayBeDestroyed to true.
247         This is the point after which deleting the WorkerMessagingProxy in workerContextDestroyedInternal()
248         is okay. It could happen during this function call if the worker thread has been shutdown already, or 
249         it could be called later after we shut down the worker thread.
250         (WebCore::WorkerMessagingProxy::workerContextDestroyedInternal): We check m_mayBeDestroyed here 
251         instead of checking m_workerObject. This change effectively orthogonalizes the roles that m_workerObject 
252         was filling. Since we were eagerly clearing m_workerObject, but we wanted to asynchronously call 
253         workerObjectDestroyed(), we needed to make sure we didn't accidentally try to delete the WorkerMessagingProxy
254         twice (once from destroying the Worker and once from destroying the WorkerContext). This boolean field 
255         should fix that issue--we set it lazily like we wanted to do without being in danger of causing use-after-free
256         issues with m_workerObject.
257         * workers/WorkerMessagingProxy.h: Added the new field and function.
258         (WorkerMessagingProxy):
259
260 2012-06-14  Alexander Pavlov  <apavlov@chromium.org>
261
262         Web Inspector: Selector list start position is not extracted for style rules inside @media rules
263         https://bugs.webkit.org/show_bug.cgi?id=89094
264
265         Reviewed by Pavel Feldman.
266
267         Selector list start is now marked inside the "ruleset" rule rather than separately, before its invocation(s).
268
269         * css/CSSGrammar.y:
270
271 2012-06-14  Eric Penner  <epenner@google.com>
272
273         [chromium] Fix race condition where animations start, finish and are deleted on the composite thread, all before the start even arrives on the main thread.
274         https://bugs.webkit.org/show_bug.cgi?id=88439
275
276         Reviewed by James Robinson.
277
278         Scheduling behavior covered by existing tests.
279
280         * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
281         (WebCore::CCActiveAnimation::isFinishedAt):
282         * platform/graphics/chromium/cc/CCActiveAnimation.h:
283         (WebCore::CCActiveAnimation::isFinished):
284         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
285         (WebCore::CCLayerAnimationController::suspendAnimations):
286         (WebCore::CCLayerAnimationController::pushAnimationUpdatesTo):
287         (WebCore::CCLayerAnimationController::animate):
288         (WebCore::CCLayerAnimationController::hasActiveAnimation):
289         (WebCore):
290         (WebCore::CCLayerAnimationController::markAnimationsForDeletion):
291         (WebCore::CCLayerAnimationController::purgeAnimationsMarkedForDeletion):
292         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
293         (CCLayerAnimationController):
294
295 2012-06-14  Vsevolod Vlasov  <vsevik@chromium.org>
296
297         Web Inspector: ConsoleView.evaluateUsingTextPrompt should evaluate without command line API.
298         https://bugs.webkit.org/show_bug.cgi?id=89096
299
300         Reviewed by Pavel Feldman.
301
302         * inspector/front-end/ConsoleView.js:
303
304 2012-06-14  Silvia Pfeiffer  <silviapf@chromium.org>
305
306         Update the time display of the new Chromium media controls.
307         https://bugs.webkit.org/show_bug.cgi?id=88724
308
309         Reviewed by Eric Carlson.
310
311         No new tests, final patch will contain the rebaselined tests.
312
313         The Chrome video controls are receiving a visual update. This patch changes
314         the format of the time digits that are displayed. They are different for media
315         files of different duration. For non-autoplaying videos, the duration is shown
316         before playback is started.
317
318         * css/mediaControlsChromium.css:
319         (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
320         Format the new duration display the same as the current time display.
321         * html/shadow/MediaControlRootElementChromium.cpp:
322         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
323         Add a member field for the duration display.
324         (WebCore::MediaControlRootElementChromium::create):
325         Add an element for the duration display and initially hide the current time display.
326         (WebCore::MediaControlRootElementChromium::setMediaController):
327         Add the duration display to the controller.
328         (WebCore::MediaControlRootElementChromium::reset):
329         Add reset functionality for the duration display.
330         (WebCore::MediaControlRootElementChromium::playbackStarted):
331         Show the current time display and hide the duration display upon playback start.
332         (WebCore::MediaControlRootElementChromium::updateTimeDisplay):
333         Show the current time display and hide the duration display when current time is non-zero.
334         * html/shadow/MediaControlRootElementChromium.h:
335         (WebCore):
336         Add the MediaControlTimeRemainingDisplayElement which provides use with the duration display.
337         (MediaControlRootElementChromium):
338         Add a duration member field, reusing the existing MediaControlTimeRemainingDisplayElement.
339         * rendering/RenderMediaControlsChromium.cpp:
340         (WebCore::formatChromiumMediaControlsTime):
341         Formats a given time under the condition of a given duration.
342         (WebCore::RenderMediaControlsChromium::formatMediaControlsTime):
343         When formatting a single time, assume it to also provide the duration conditions.
344         (WebCore::RenderMediaControlsChromium::formatMediaControlsCurrentTime):
345         Format the current time given the duration.
346         (WebCore::RenderMediaControlsChromium::formatMediaControlsRemainingTime):
347         Format the remaining time from the current time given the duration.
348         * rendering/RenderMediaControlsChromium.h:
349         (RenderMediaControlsChromium):
350         Declare the time formatting member functions.
351         * rendering/RenderThemeChromiumMac.h:
352         (RenderThemeChromiumMac):
353         Declare the time formatting member functions for Chromium on the Mac.
354         * rendering/RenderThemeChromiumMac.mm:
355         (WebCore::RenderThemeChromiumMac::formatMediaControlsTime):
356         (WebCore::RenderThemeChromiumMac::formatMediaControlsCurrentTime):
357         (WebCore::RenderThemeChromiumMac::formatMediaControlsRemainingTime):
358         Call the time formatting member functions of RenderMediaControlsChromium on the Mac.
359         * rendering/RenderThemeChromiumSkia.cpp:
360         (WebCore::formatMediaControlsTime):
361         (WebCore::formatMediaControlsCurrentTime):
362         (WebCore::formatMediaControlsRemainingTime):
363         Call the time formatting member functions of RenderMediaControlsChromium on Skia.
364         * rendering/RenderThemeChromiumSkia.h:
365         (RenderThemeChromiumSkia):
366         Declare the time formatting member functions for Chromium Skia.
367
368 2012-06-14  Eugene Klyuchnikov  <eustas.bug@gmail.com>
369
370         Web Inspector: Refactor message loop instrumentation.
371         https://bugs.webkit.org/show_bug.cgi?id=88978
372
373         Reviewed by Pavel Feldman.
374
375         1) Remove "messageLoop" term
376         2) Reuse WebThread::TaskObserver interface
377         3) Move implementation (from embedder) to platform code.
378
379         * inspector/InspectorClient.h:
380         (WebCore::InspectorClient::startMainThreadMonitoring): Renamed method.
381         (WebCore::InspectorClient::stopMainThreadMonitoring): Ditto.
382         * inspector/InspectorTimelineAgent.cpp:
383         (WebCore::InspectorTimelineAgent::start):
384         (WebCore::InspectorTimelineAgent::stop):
385
386 2012-06-14  Dominik Röttsches  <dominik.rottsches@intel.com>
387
388         [svg] SVGResources applied to Text with Incorrect Transformations in non-CG Implementations
389         https://bugs.webkit.org/show_bug.cgi?id=64966
390
391         Reviewed by Nikolas Zimmermann.
392
393         SVGInlineTextBox::paintTextWithShadows for non-CG implementations resets the scale aspect
394         of the currently applied CTM. This leads to patterns and gradients being incorrectly downscaled.
395         This way of resetting the CTM and drawing fonts "natively" scaled was introduced
396         in r77485 to fix a number of issues with SVG font scaling.
397         Unfortunately, this breaks scaling of patterns and gradients. To fix it,
398         we need to push the transformation back into the pattern/gradient space transformation.
399
400         Tests: svg/transforms/transformed-text-fill-gradient.html
401                svg/transforms/transformed-text-fill-pattern.html
402
403         * rendering/svg/RenderSVGInlineText.cpp:
404         (WebCore::RenderSVGInlineText::computeNewScaledFontForStyle): Moving the scaling factor calculation out into SVGRenderingContext.
405         * rendering/svg/RenderSVGResourceContainer.cpp:
406         (WebCore::RenderSVGResourceContainer::shouldTransformOnTextPainting): Reusing the scaling factor calculation from SVGRenderingContext.
407         (WebCore):
408         * rendering/svg/RenderSVGResourceContainer.h:
409         (RenderSVGResourceContainer):
410         * rendering/svg/RenderSVGResourceGradient.cpp:
411         (WebCore::RenderSVGResourceGradient::applyResource): If needed, push down transformation into gradient space.
412         * rendering/svg/RenderSVGResourcePattern.cpp:
413         (WebCore::RenderSVGResourcePattern::applyResource): If needed, push transformation into pattern space.
414         * rendering/svg/SVGRenderingContext.cpp:
415         (WebCore::SVGRenderingContext::calculateScreenFontSizeScalingFactor): Common scaling factor calculation for RenderSVGInlineText and RenderSVGResourceContainer.
416         * rendering/svg/SVGRenderingContext.h:
417         (SVGRenderingContext):
418
419 2012-06-14  Yoshifumi Inoue  <yosin@chromium.org>
420
421         [Form] Replace InputNumber type to Decimal type and drop InputNumber
422         https://bugs.webkit.org/show_bug.cgi?id=88746
423
424         Reviewed by Kent Tamura.
425
426         This patch removes InputNumber introduced by r119540 by replacing
427         InputNumber type to Decimal type and changing convertDoubleToDecimal
428         and convertDecimalToDouble to Decimal::fromDouble and
429         Decimal::toDouble, respectively.
430
431         No new tests. This patch doesn't change behavior.
432
433         * html/BaseDateAndTimeInputType.cpp:
434         (WebCore::BaseDateAndTimeInputType::setValueAsDecimal):
435         (WebCore::BaseDateAndTimeInputType::defaultValueForStepUp):
436         (WebCore::BaseDateAndTimeInputType::parseToNumber):
437         (WebCore::BaseDateAndTimeInputType::serialize):
438         (WebCore::BaseDateAndTimeInputType::serializeWithComponents):
439         (WebCore::BaseDateAndTimeInputType::serializeWithMilliseconds):
440         * html/BaseDateAndTimeInputType.h:
441         (BaseDateAndTimeInputType):
442         * html/DateInputType.cpp:
443         (WebCore::DateInputType::createStepRange):
444         * html/DateTimeInputType.cpp:
445         (WebCore::DateTimeInputType::defaultValueForStepUp):
446         (WebCore::DateTimeInputType::createStepRange):
447         * html/DateTimeInputType.h:
448         (DateTimeInputType):
449         * html/DateTimeLocalInputType.cpp:
450         (WebCore::DateTimeLocalInputType::createStepRange):
451         * html/HTMLInputElement.cpp:
452         (WebCore::HTMLInputElement::getAllowedValueStep):
453         * html/HTMLInputElement.h:
454         (HTMLInputElement):
455         * html/InputType.cpp:
456         (WebCore::InputType::setValueAsDouble):
457         (WebCore::InputType::setValueAsDecimal):
458         (WebCore::InputType::rangeUnderflow):
459         (WebCore::InputType::rangeOverflow):
460         (WebCore::InputType::defaultValueForStepUp):
461         (WebCore::InputType::minimum):
462         (WebCore::InputType::maximum):
463         (WebCore::InputType::isInRange):
464         (WebCore::InputType::isOutOfRange):
465         (WebCore::InputType::stepMismatch):
466         (WebCore::InputType::validationMessage):
467         (WebCore::InputType::parseToNumber):
468         (WebCore::InputType::parseToNumberOrNaN):
469         (WebCore::InputType::serialize):
470         (WebCore::InputType::applyStep):
471         (WebCore::InputType::getAllowedValueStep):
472         (WebCore::InputType::stepUpFromRenderer):
473         * html/InputType.h:
474         (InputType):
475         * html/MonthInputType.cpp:
476         (WebCore::MonthInputType::defaultValueForStepUp):
477         (WebCore::MonthInputType::createStepRange):
478         (WebCore::MonthInputType::parseToNumber):
479         * html/MonthInputType.h:
480         (MonthInputType):
481         * html/NumberInputType.cpp:
482         (WebCore::NumberInputType::setValueAsDecimal):
483         (WebCore::NumberInputType::createStepRange):
484         (WebCore::NumberInputType::parseToNumber):
485         (WebCore::NumberInputType::serialize):
486         * html/NumberInputType.h:
487         (NumberInputType):
488         * html/RangeInputType.cpp:
489         (WebCore::ensureMaximum):
490         (WebCore::RangeInputType::setValueAsDecimal):
491         (WebCore::RangeInputType::createStepRange):
492         (WebCore::RangeInputType::handleKeydownEvent):
493         (WebCore::RangeInputType::parseToNumber):
494         (WebCore::RangeInputType::serialize):
495         (WebCore::RangeInputType::sanitizeValue):
496         * html/RangeInputType.h:
497         (RangeInputType):
498         * html/StepRange.cpp:
499         (WebCore::StepRange::StepRange):
500         (WebCore::StepRange::acceptableError):
501         (WebCore::StepRange::alignValueForStep):
502         (WebCore::StepRange::clampValue):
503         (WebCore::StepRange::parseStep):
504         (WebCore::StepRange::roundByStep):
505         (WebCore::StepRange::stepMismatch):
506         * html/StepRange.h:
507         (WebCore::StepRange::StepDescription::defaultValue):
508         (StepRange):
509         (WebCore::StepRange::maximum):
510         (WebCore::StepRange::minimum):
511         (WebCore::StepRange::step):
512         (WebCore::StepRange::stepBase):
513         (WebCore::StepRange::defaultValue):
514         (WebCore::StepRange::proportionFromValue):
515         (WebCore::StepRange::valueFromProportion):
516         * html/TimeInputType.cpp:
517         (WebCore::TimeInputType::defaultValueForStepUp):
518         (WebCore::TimeInputType::createStepRange):
519         * html/TimeInputType.h:
520         (TimeInputType):
521         * html/WeekInputType.cpp:
522         (WebCore::WeekInputType::createStepRange):
523         * html/shadow/CalendarPickerElement.cpp:
524         (WebCore::CalendarPickerElement::writeDocument):
525         * html/shadow/SliderThumbElement.cpp:
526         (WebCore::sliderPosition):
527         (WebCore::RenderSliderThumb::layout):
528         (WebCore::SliderThumbElement::setPositionFromPoint):
529
530 2012-06-14  Jan Keromnes  <janx@linux.com>
531
532         Web Inspector: Implement ExtensionPanel.show() method
533         https://bugs.webkit.org/show_bug.cgi?id=88473
534
535         Implemented ExtensionPanel.show() API method to allow extension
536         developers to show their panel when needed.
537
538         Reviewed by Pavel Feldman.
539
540         Tests for this method are in:
541         LayoutTests/inspector/extensions/extensions-panel.html
542
543         * inspector/front-end/ExtensionAPI.js:
544         (defineCommonExtensionSymbols):
545         (injectedExtensionAPI.ExtensionPanelImpl.prototype.createStatusBarButton):
546         (injectedExtensionAPI.ExtensionPanelImpl.prototype.show):
547         * inspector/front-end/ExtensionServer.js:
548         (WebInspector.ExtensionServer):
549         (WebInspector.ExtensionServer.prototype._onShowPanel):
550
551 2012-06-14  Kent Tamura  <tkent@chromium.org>
552
553         Fix a typo in r120304.
554         https://bugs.webkit.org/show_bug.cgi?id=89070
555
556         * bindings/scripts/CodeGeneratorV8.pm:
557         (NativeToJSValue):
558         * bindings/scripts/test/V8/V8TestObj.cpp:
559
560 2012-06-14  David Barr  <davidbarr@chromium.org>
561
562         Add dpcm to css3-images image-resolution
563         https://bugs.webkit.org/show_bug.cgi?id=85442
564
565         Reviewed by Tony Chang.
566
567         The css3-images module is at candidate recommendation.
568         http://www.w3.org/TR/2012/CR-css3-images-20120417/#the-image-resolution
569
570         No new tests; extended fast/css/image-resolution/image-resolution.html
571
572         * css/CSSGrammar.y: Add DPCM token and unary term.
573         * css/CSSParser.cpp: Extend range of units accepted for resolution and tokenize "dpcm".
574         (WebCore::CSSParser::validUnit): Accept CSSPrimitiveValue::CSS_DPCM.
575         (WebCore::CSSParser::createPrimitiveNumericValue): Accept CSSPrimitiveValue::CSS_DPCM.
576         (WebCore::unitFromString): Map "dpcm" to CSSPrimitiveValue::CSS_DPCM.
577         (WebCore::CSSParser::parseValidPrimitive): Accept CSSPrimitiveValue::CSS_DPCM.
578         (WebCore::CSSParser::detectNumberToken): Map "dpcm" to CSSPrimitiveValue::CSS_DPCM.
579         * css/CSSPrimitiveValue.cpp: Add CSSPrimitiveValue::CSS_DPCM as a numeric unit.
580         (WebCore::isValidCSSUnitTypeForDoubleConversion): Accept CSSPrimitiveValue::CSS_DPCM.
581         (WebCore::unitCategory): Map CSSPrimitiveValue::CSS_DPCM to CSSPrimitiveValue::UResolution.
582         (WebCore::conversionToCanonicalUnitsScaleFactor): Scale CSSPrimitiveValue::CSS_DPCM to CSSPrimitiveValue::CSS_DPPX.
583         (WebCore::CSSPrimitiveValue::customCssText): Format CSSPrimitiveValue::CSS_DPCM as "<num>dpcm".
584         (WebCore::CSSPrimitiveValue::cloneForCSSOM): Accept CSSPrimitiveValue::CSS_DPCM as numeric unit.
585         * css/CSSPrimitiveValue.h: Add CSSPrimitiveValue::CSS_DPCM.
586
587 2012-06-14  Ilya Tikhonovsky  <loislo@chromium.org>
588
589         Web Inspector: REGRESSION HeapProfiler can't remove heap snapshot from the list if Dominators view has been opened.
590         https://bugs.webkit.org/show_bug.cgi?id=89080
591
592         There was no dispose method on artificial ShowMoreDataGrid node.
593
594         Reviewed by Pavel Feldman.
595
596         * inspector/front-end/ShowMoreDataGridNode.js:
597         (WebInspector.ShowMoreDataGridNode.prototype.nodeHeight):
598         (WebInspector.ShowMoreDataGridNode.prototype.dispose):
599
600 2012-06-14  Kent Tamura  <tkent@chromium.org>
601
602         [JSC/V8] Improve DOMString[] support
603         https://bugs.webkit.org/show_bug.cgi?id=89070
604
605         Reviewed by Kentaro Hara.
606
607         Tests: new test case in TestObj.idl
608
609         * bindings/js/JSDOMBinding.cpp:
610         (WebCore::jsArray): Implement jsArray() for DOMStringList.
611         * bindings/js/JSDOMBinding.h: Declare jsArray() for DOMStringList.
612         * bindings/scripts/CodeGeneratorJS.pm:
613         (NativeToJSValue): Avoid to include JSDOMString.h and DOMString.h.
614         * bindings/scripts/CodeGeneratorV8.pm:
615         (GetNativeType): Move a check for DOMString[] because it's a RefPtr type
616         and we'd like to avoid to generate RefPtr<DOMString[]>
617         (%non_wrapper_types): DOMString[] is not a wrapper type. This is needed
618         to avoid to generate unnecessary custom function template.
619         (NativeToJSValue): Avoid to include V8DOMString.h and DOMString.h.
620
621         * bindings/scripts/test/TestObj.idl: Add non-overload function using DOMString[].
622         * bindings/scripts/test/JS/JSTestObj.cpp: Update expectation.
623         * bindings/scripts/test/JS/JSTestObj.h: ditto.
624         * bindings/scripts/test/V8/V8TestObj.cpp: ditto.
625
626 2012-06-14  Matt Falkenhagen  <falken@chromium.org>
627
628         LocaleToScriptMappingDefault.cpp should also do what scriptCodeForFontSelection does in LocaleToScriptMappingICU.cpp
629         https://bugs.webkit.org/show_bug.cgi?id=88845
630
631         Reviewed by Kent Tamura.
632
633         Test: fast/text/international/jpan-script-equivalence.html
634
635         * platform/text/LocaleToScriptMappingDefault.cpp:
636         (WebCore::scriptNameToCode):
637
638 2012-06-14  Pavel Feldman  <pfeldman@chromium.org>
639
640         Web Inspector: render dock-to-right icon in status bar.
641         https://bugs.webkit.org/show_bug.cgi?id=89040
642
643         Reviewed by Vsevolod Vlasov.
644
645         Today we render dock to bottom icon for both actions (dock to bottom and dock to right).
646
647         * inspector/front-end/Images/statusbarButtonGlyphs.png:
648         * inspector/front-end/inspector.css:
649         (button.dock-status-bar-item.status-bar-item.toggled-undock .glyph):
650         (button.dock-status-bar-item.status-bar-item.toggled-bottom .glyph):
651         (button.dock-status-bar-item.status-bar-item.toggled-right .glyph):
652         * inspector/front-end/inspector.js:
653         (WebInspector._createGlobalStatusBarItems):
654         (WebInspector._installDockToRight.listener):
655         (windowLoaded):
656         (WebInspector.setDockingUnavailable):
657
658 2012-06-14  Pavel Feldman  <pfeldman@chromium.org>
659
660         Web Inspector: clear execution live before the text edit.
661         https://bugs.webkit.org/show_bug.cgi?id=89016
662
663         Reviewed by Vsevolod Vlasov.
664
665         Otherwise we can't remove them after committing the edit.
666
667         * inspector/front-end/JavaScriptSourceFrame.js:
668         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
669         (WebInspector.JavaScriptSourceFrame.prototype.clearExecutionLine):
670
671 2012-06-14  Min Qin  <qinmin@google.com>
672
673         Remove the const keyword from MediaPlayerPrivate::enterFullscreen()
674         https://bugs.webkit.org/show_bug.cgi?id=89044
675
676         Reviewed by Adam Barth.
677
678         enterFullscreen() and exitFullscreen() could both modify the player state.
679         This change reverts the change we made in r120213.
680
681         Just function declaration change, no test needed.
682
683         * platform/graphics/MediaPlayerPrivate.h:
684         (WebCore::MediaPlayerPrivateInterface::enterFullscreen):
685
686 2012-06-14  Edaena Salinas Jasso  <edaena@apple.com>
687
688         el.getAttribute('type') returns 'null' when setting el.type to null
689         https://bugs.webkit.org/show_bug.cgi?id=89030
690
691         Reviewed by Alexey Proskuryakov.
692
693         Test: fast/dom/HTMLButtonElement/change-type.html
694
695         * html/HTMLButtonElement.cpp:
696         (WebCore::HTMLButtonElement::setType): Changed parameter to be AtomicString to 
697         address an unrelated review comment from bug 14439 for slightly better performance.
698         * html/HTMLButtonElement.h:
699         (HTMLButtonElement): Changed parameter to be AtomicString to address an unrelated 
700         review comment from bug 14439 for slightly better performance.
701         * html/HTMLButtonElement.idl: Specified TreatNullAs NullString for the type attribute.
702
703 2012-06-14  Alec Flett  <alecflett@chromium.org>
704
705         IndexedDB: Creating a transaction from within a transaction callback should fail
706         https://bugs.webkit.org/show_bug.cgi?id=80547
707
708         Reviewed by Tony Chang.
709
710         Prevent creation of a transaction, via IDBDatabase.transaction()
711         or IDBDatabase.setVersion(), from inside a setVersion()
712         transaction, as per spec. Update many tests to deal with this.
713
714         Test restructuring uncovered some inconsistencies in transaction
715         mode handling. So also do some minor cleanup in the way the
716         transaction mode is passed between the frontend and backend
717         transaction objects, and add additional asserts.
718
719         * Modules/indexeddb/IDBCursor.cpp:
720         (WebCore::IDBCursor::update):
721         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
722         (WebCore::IDBCursorBackendImpl::update):
723         * Modules/indexeddb/IDBDatabase.cpp:
724         (WebCore::IDBDatabase::setVersion):
725         (WebCore::IDBDatabase::transaction):
726         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
727         (WebCore::IDBObjectStoreBackendImpl::putInternal):
728         * Modules/indexeddb/IDBRequest.cpp:
729         (WebCore::IDBRequest::onSuccess):
730         * Modules/indexeddb/IDBTransaction.cpp:
731         (WebCore::IDBTransaction::create):
732         (WebCore::IDBTransaction::IDBTransaction):
733         (WebCore::IDBTransaction::stringToMode):
734         (WebCore::IDBTransaction::modeToString):
735         * Modules/indexeddb/IDBTransaction.h:
736         (IDBTransaction):
737
738 2012-06-14  Li Yin  <li.yin@intel.com>
739
740         [WebSocket] WebSocket object in Worker Context should fire error event when it fails connection.
741         https://bugs.webkit.org/show_bug.cgi?id=88744
742
743         Reviewed by Kent Tamura.
744
745         Spec:http://dev.w3.org/html5/websockets/#feedback-from-the-protocol
746         The behavior of firing error event in Document has been implemented in Committed r117944.
747         WebSocket in WorkerContext is also required to fire error event.
748
749         Test: http/tests/websocket/tests/hybi/workers/close.html
750
751         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
752         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
753         (WebCore):
754         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageErrorCallback):
755         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
756         (ThreadableWebSocketChannelClientWrapper):
757         * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
758         (WebCore::workerContextDidReceiveMessageError):
759         (WebCore):
760         (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
761         * Modules/websockets/WorkerThreadableWebSocketChannel.h:
762         (Peer):
763
764 2012-06-13  Kinuko Yasuda  <kinuko@chromium.org>
765
766         Unreviewed build fix attempt for r120285
767
768         * Modules/filesystem/DOMFileSystemBase.cpp:
769         (WebCore):
770
771 2012-06-13  MORITA Hajime <morrita@google.com>
772
773         Unreviewed expectation update.
774
775         * bindings/scripts/test/V8/V8Float64Array.cpp:
776         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
777         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
778         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
779         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
780         * bindings/scripts/test/V8/V8TestException.cpp:
781         * bindings/scripts/test/V8/V8TestInterface.cpp:
782         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
783         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
784         * bindings/scripts/test/V8/V8TestNode.cpp:
785         * bindings/scripts/test/V8/V8TestObj.cpp:
786         (WebCore::V8TestObj::installPerContextProperties):
787         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
788
789 2012-06-13  Kinuko Yasuda  <kinuko@chromium.org>
790
791         Move isolated file system code out of chromium-specific directory
792         https://bugs.webkit.org/show_bug.cgi?id=88997
793
794         Reviewed by Adam Barth.
795
796         The code does not need to be chromium-specific.  Any platforms that
797         have file system implementation and manage mappings from file system
798         id to a set of files should share the code.
799
800         No new tests as this has no functional/behavioral changes.
801
802         * Modules/filesystem/DOMFileSystem.cpp:
803         (WebCore::DOMFileSystem::createIsolatedFileSystem):
804         (WebCore):
805         * Modules/filesystem/DOMFileSystem.h:
806         (DOMFileSystem):
807         * Modules/filesystem/DOMFileSystemBase.h:
808         (DOMFileSystemBase):
809         * Modules/filesystem/FileSystemType.h:
810         * Modules/filesystem/chromium/DOMFileSystemChromium.cpp:
811         * Modules/filesystem/chromium/DOMFileSystemChromium.h: Removed.
812         * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
813         (WebCore::DraggedIsolatedFileSystem::getDOMFileSystem):
814         * WebCore.gypi:
815
816 2012-06-07  Kinuko Yasuda  <kinuko@chromium.org>
817
818         File::lastModifiedDate should use NaN or separate boolean flag for null Date value
819         https://bugs.webkit.org/show_bug.cgi?id=87826
820
821         Reviewed by Kent Tamura.
822
823         Test: http/tests/local/fileapi/file-last-modified-after-delete.html
824
825         * fileapi/File.cpp:
826         (WebCore::File::File):
827         (WebCore::File::captureSnapshot):
828         (WebCore::File::lastModifiedDate):
829         (WebCore::File::lastModifiedDateForBinding): Removed.
830         * fileapi/File.h:
831         (File):
832         * fileapi/File.idl:
833         * platform/FileMetadata.h:
834         (WebCore::FileMetadata::FileMetadata):
835         * platform/FileSystem.h:
836         * platform/FileStream.cpp:
837         (WebCore::FileStream::getSize):
838         * platform/chromium/support/WebHTTPBody.cpp:
839         (WebKit::WebHTTPBody::elementAt):
840         * platform/network/BlobData.h:
841         (WebCore::BlobDataItem::doNotCheckFileChange): Removed.
842         * platform/network/BlobData.cpp:
843         * platform/network/cf/FormDataStreamCFNet.cpp:
844         (WebCore::advanceCurrentStream):
845         * platform/network/soup/ResourceHandleSoup.cpp:
846         (WebCore::blobIsOutOfDate):
847
848 2012-06-13  Eli Fidler  <efidler@rim.com>
849
850         Fix CMake build with SMOOTH_SCROLLING enabled
851         https://bugs.webkit.org/show_bug.cgi?id=89032
852
853         Reviewed by Antonio Gomes.
854
855         SMOOTH_SCROLLING pulls in ScrollAnimatorNone.cpp, which has
856         dependencies on platform/ActivePlatformGestureAnimation.cpp and
857         platform/TouchpadFlingPlatformGestureCurve.cpp
858
859         * CMakeLists.txt:
860
861 2012-06-13  Mihai Balan  <mibalan@adobe.com>
862
863         Touched CSSPropertyNames.in to trigger a proper rebuild
864
865         [CSS Regions] Adding feature defines for CSS Regions & exclusions for Windows
866         https://bugs.webkit.org/show_bug.cgi?id=88645
867
868         Reviewed by Sam Weinig.
869
870         Previous work on #87442 added feature defines to allow proper disabling of CSS Regions and
871         exclusions (previously even with the feature disabled, parsing still worked). However, the
872         feature defines were enabled on Mac only - they were broken on Windows. This
873         patch adds the feature defines to (re)enable regions and exclusions on Windows.
874
875         * css/CSSPropertyNames.in: Touched to trigger a proper rebuild. Incremental builds were broken on Windows.
876
877 2012-06-13  Arnaud Renevier  <arno@renevier.net>
878
879         make sure headers are included only once per file
880         https://bugs.webkit.org/show_bug.cgi?id=88931
881
882         Reviewed by Darin Adler.
883
884         * Modules/indexeddb/IDBDatabase.cpp:
885         * WebCorePrefix.h:
886         * bindings/js/JSHTMLAllCollectionCustom.cpp:
887         * bindings/v8/V8Utilities.cpp:
888         * bindings/v8/custom/V8LocationCustom.cpp:
889         * bridge/NP_jsobject.cpp:
890         * editing/Editor.cpp:
891         * html/HTMLMediaElement.cpp:
892         * platform/graphics/cairo/PlatformContextCairo.cpp:
893         * rendering/InlineFlowBox.cpp:
894
895 2012-06-13  MORITA Hajime  <morrita@google.com>
896
897         Unreviewed typo fix.
898
899         * platform/RefCountedSupplement.h:
900
901 2012-06-13  Sheriff Bot  <webkit.review.bot@gmail.com>
902
903         Unreviewed, rolling out r120268.
904         http://trac.webkit.org/changeset/120268
905         https://bugs.webkit.org/show_bug.cgi?id=89060
906
907         WebCompositor::setPerTilePaintingEnabled hits an assertion in
908         DEBUG (Requested by dominicc|work on #webkit).
909
910         * WebCore.gypi:
911         * page/Settings.cpp:
912         (WebCore::Settings::Settings):
913         * page/Settings.h:
914         (WebCore::Settings::setPerTileDrawingEnabled):
915         (WebCore::Settings::perTileDrawingEnabled):
916         (Settings):
917         (WebCore::Settings::setPartialSwapEnabled):
918         (WebCore::Settings::partialSwapEnabled):
919         (WebCore::Settings::setThreadedAnimationEnabled):
920         (WebCore::Settings::threadedAnimationEnabled):
921         * platform/graphics/chromium/ContentLayerChromium.cpp:
922         (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded):
923         * platform/graphics/chromium/LayerChromium.cpp:
924         (WebCore::LayerChromium::addAnimation):
925         * platform/graphics/chromium/LayerRendererChromium.cpp:
926         (WebCore::LayerRendererChromium::initialize):
927         * platform/graphics/chromium/TiledLayerChromium.cpp:
928         (WebCore::TiledLayerChromium::updateTileSizeAndTilingOption):
929         * platform/graphics/chromium/cc/CCDebugRectHistory.cpp:
930         (WebCore::CCDebugRectHistory::enabled):
931         (WebCore::CCDebugRectHistory::saveDebugRectsForCurrentFrame):
932         * platform/graphics/chromium/cc/CCDebugRectHistory.h:
933         (WebCore):
934         (CCDebugRectHistory):
935         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
936         (WebCore::CCHeadsUpDisplay::enabled):
937         (WebCore::CCHeadsUpDisplay::showPlatformLayerTree):
938         (WebCore::CCHeadsUpDisplay::showDebugRects):
939         (WebCore::CCHeadsUpDisplay::draw):
940         (WebCore::CCHeadsUpDisplay::drawHudContents):
941         (WebCore::CCHeadsUpDisplay::drawDebugRects):
942         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
943         (WebCore):
944         (CCHeadsUpDisplay):
945         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
946         (WebCore::CCLayerTreeHost::create):
947         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
948         (WebCore::CCLayerTreeHost::animateLayers):
949         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
950         (WebCore::CCSettings::CCSettings):
951         (CCSettings):
952         (CCLayerTreeHost):
953         (WebCore::CCLayerTreeHost::settings):
954         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
955         (WebCore::CCLayerTreeHostImpl::create):
956         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
957         (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
958         (WebCore::CCLayerTreeHostImpl::animateLayers):
959         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
960         (CCLayerTreeHostImpl):
961         * platform/graphics/chromium/cc/CCRenderer.h:
962         (CCRendererClient):
963         (WebCore::CCRenderer::settings):
964         * platform/graphics/chromium/cc/CCSettings.cpp: Removed.
965         * platform/graphics/chromium/cc/CCSettings.h: Removed.
966         * testing/InternalSettings.cpp:
967         (WebCore::InternalSettings::setPerTileDrawingEnabled):
968         (WebCore):
969         * testing/InternalSettings.h:
970         (InternalSettings):
971
972 2012-06-13  Ian Vollick  <vollick@chromium.org>
973
974         [chromium] Certain settings in CCSettings could be global
975         https://bugs.webkit.org/show_bug.cgi?id=88384
976
977         Reviewed by James Robinson.
978
979         No new tests. No new functionality.
980
981         * WebCore.gypi:
982         * page/Settings.cpp:
983         (WebCore::Settings::Settings):
984         * page/Settings.h:
985         (Settings):
986         * platform/graphics/chromium/ContentLayerChromium.cpp:
987         (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded):
988         * platform/graphics/chromium/LayerChromium.cpp:
989         (WebCore::LayerChromium::addAnimation):
990         * platform/graphics/chromium/LayerRendererChromium.cpp:
991         (WebCore::LayerRendererChromium::initialize):
992         * platform/graphics/chromium/TiledLayerChromium.cpp:
993         (WebCore::TiledLayerChromium::updateTileSizeAndTilingOption):
994         * platform/graphics/chromium/cc/CCDebugRectHistory.cpp:
995         (WebCore::CCDebugRectHistory::enabled):
996         (WebCore::CCDebugRectHistory::saveDebugRectsForCurrentFrame):
997         * platform/graphics/chromium/cc/CCDebugRectHistory.h:
998         (WebCore):
999         (CCDebugRectHistory):
1000         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
1001         (WebCore::CCHeadsUpDisplay::enabled):
1002         (WebCore::CCHeadsUpDisplay::showPlatformLayerTree):
1003         (WebCore::CCHeadsUpDisplay::showDebugRects):
1004         (WebCore::CCHeadsUpDisplay::draw):
1005         (WebCore::CCHeadsUpDisplay::drawHudContents):
1006         (WebCore::CCHeadsUpDisplay::drawDebugRects):
1007         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
1008         (WebCore):
1009         (CCHeadsUpDisplay):
1010         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1011         (WebCore::CCLayerTreeHost::create):
1012         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
1013         (WebCore::CCLayerTreeHost::animateLayers):
1014         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1015         (WebCore::CCLayerTreeSettings::CCLayerTreeSettings):
1016         (CCLayerTreeSettings):
1017         (CCLayerTreeHost):
1018         (WebCore::CCLayerTreeHost::settings):
1019         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1020         (WebCore::CCLayerTreeHostImpl::create):
1021         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
1022         (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
1023         (WebCore::CCLayerTreeHostImpl::animateLayers):
1024         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1025         (CCLayerTreeHostImpl):
1026         * platform/graphics/chromium/cc/CCRenderer.h:
1027         (CCRendererClient):
1028         (WebCore::CCRenderer::settings):
1029         * platform/graphics/chromium/cc/CCSettings.cpp: Added.
1030         (WebCore):
1031         (WebCore::CCSettings::perTilePaintingEnabled):
1032         (WebCore::CCSettings::setPerTilePaintingEnabled):
1033         (WebCore::CCSettings::partialSwapEnabled):
1034         (WebCore::CCSettings::setPartialSwapEnabled):
1035         (WebCore::CCSettings::acceleratedAnimationEnabled):
1036         (WebCore::CCSettings::setAcceleratedAnimationEnabled):
1037         (WebCore::CCSettings::reset):
1038         * platform/graphics/chromium/cc/CCSettings.h: Added.
1039         (WebCore):
1040         (CCSettings):
1041         * testing/InternalSettings.cpp:
1042         * testing/InternalSettings.h:
1043         (InternalSettings):
1044
1045 2012-06-13  Crystal Zhang  <haizhang@rim.com>
1046
1047         [BlackBerry] Apply New Style and JS for Select Popup
1048         https://bugs.webkit.org/show_bug.cgi?id=89020
1049
1050         Reviewed by Rob Buis.
1051
1052         PR 162854
1053
1054         Use new python script for data generating, as the old one is too simple and problematic.
1055
1056         * PlatformBlackBerry.cmake:
1057
1058 2012-06-13  Dana Jansens  <danakj@chromium.org>
1059
1060         [chromium] Assert if iterating an invalid RenderSurfaceLayerList, where a layer in the list has no RenderSurface
1061         https://bugs.webkit.org/show_bug.cgi?id=89004
1062
1063         Reviewed by Adrienne Walker.
1064
1065         A RenderSurfaceLayerList expects that all layers in the list own a
1066         RenderSurface. If an invalid RSLL is iterated over, the
1067         CCLayerIterator class will now ASSERT in debug mode, as well as
1068         considering the list empty in release mode.
1069
1070         We will be adding code to CCLayerTreeHostImpl to save a RSLL across
1071         frames, so adding a clearRenderSurfaces() method with a FIXME comment
1072         to make it clear that we should clear the RSLL when we remove
1073         RenderSurfaces from the layers in the saved RSLL.
1074
1075         * platform/graphics/chromium/cc/CCLayerIterator.h:
1076         (WebCore::CCLayerIterator::CCLayerIterator):
1077         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1078         (WebCore::CCLayerTreeHostImpl::~CCLayerTreeHostImpl):
1079         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
1080         (WebCore::clearRenderSurfacesOnCCLayerImplRecursive):
1081         (WebCore::CCLayerTreeHostImpl::clearRenderSurfaces):
1082         (WebCore):
1083         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1084         (CCLayerTreeHostImpl):
1085
1086 2012-06-13  Yael Aharon  <yael.aharon@nokia.com>
1087
1088         Remove redundant code from RenderView and RenderBlock
1089         https://bugs.webkit.org/show_bug.cgi?id=89019
1090
1091         Reviewed by Abhishek Arya.
1092
1093         As pointed out in https://bugs.webkit.org/show_bug.cgi?id=83981#c7 , RenderView::insertFixedPositionedObject()
1094         is redundant and should be removed.
1095         No new tests.
1096
1097         * rendering/RenderBlock.cpp:
1098         (WebCore::RenderBlock::insertPositionedObject):
1099         (WebCore::RenderBlock::removePositionedObject):
1100         * rendering/RenderView.cpp:
1101         (WebCore):
1102         * rendering/RenderView.h:
1103         (RenderView):
1104
1105 2012-06-13  Dana Jansens  <danakj@chromium.org>
1106
1107         [chromium] Create a CCStreamVideoDrawQuad used for StreamTexture video output
1108         https://bugs.webkit.org/show_bug.cgi?id=88826
1109
1110         Reviewed by Adrienne Walker.
1111
1112         Remove the matrix from the CCVideoDrawQuad, and create a new quad
1113         specifically for StreamTexture video decoder output. This quad
1114         contains only the fields needed for display - textureId and the
1115         matrix to be applied to texture coords.
1116
1117         Removes the (0, 0, 1, 1) "transform" from the shader used for these
1118         quads, as it was a no-op.
1119
1120         No new tests, no change in behaviour.
1121
1122         * WebCore.gypi:
1123         * platform/graphics/chromium/LayerRendererChromium.cpp:
1124         (WebCore::LayerRendererChromium::drawQuad):
1125         (WebCore::LayerRendererChromium::drawStreamVideoQuad):
1126         (WebCore::LayerRendererChromium::drawVideoQuad):
1127         * platform/graphics/chromium/LayerRendererChromium.h:
1128         (WebCore):
1129         (LayerRendererChromium):
1130         * platform/graphics/chromium/ShaderChromium.cpp:
1131         (WebCore::VertexShaderVideoTransform::VertexShaderVideoTransform):
1132         (WebCore::VertexShaderVideoTransform::init):
1133         (WebCore::VertexShaderVideoTransform::getShaderString):
1134         * platform/graphics/chromium/ShaderChromium.h:
1135         (VertexShaderVideoTransform):
1136         * platform/graphics/chromium/cc/CCDrawQuad.cpp:
1137         (WebCore::CCDrawQuad::toStreamVideoDrawQuad):
1138         (WebCore):
1139         * platform/graphics/chromium/cc/CCDrawQuad.h:
1140         (WebCore):
1141         (CCDrawQuad):
1142         * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.cpp: Added.
1143         (WebCore):
1144         (WebCore::CCStreamVideoDrawQuad::create):
1145         (WebCore::CCStreamVideoDrawQuad::CCStreamVideoDrawQuad):
1146         * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.h: Added.
1147         (WebCore):
1148         (CCStreamVideoDrawQuad):
1149         (WebCore::CCStreamVideoDrawQuad::textureId):
1150         (WebCore::CCStreamVideoDrawQuad::matrix):
1151         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1152         (WebCore::CCVideoLayerImpl::appendQuads):
1153
1154 2012-06-13  Martin Robinson  <mrobinson@igalia.com>
1155
1156         [GTK] Add an accelerated compositing implementation for WebKit2
1157         https://bugs.webkit.org/show_bug.cgi?id=86037
1158
1159         Reviewed by Alejandro G. Castro.
1160
1161         No new tests. These changes are covered by the compositing tests, which
1162         we will gradually try to turn on for the bots.
1163
1164         Add a new GLContext method for getting to current default framebuffer size, which
1165         is quite useful for preventing composited content quivering while resizing.
1166
1167         * platform/graphics/cairo/GLContext.h:
1168         * platform/graphics/glx/GLContextGLX.cpp:
1169         (WebCore::GLContextGLX::defaultFrameBufferSize): Added this implementation for X11
1170         which asks the X server for the window size.
1171         * platform/graphics/glx/GLContextGLX.h:
1172
1173 2012-06-13  Shawn Singh  <shawnsingh@chromium.org>
1174
1175         [chromium] Implement hit-testing for impl-side input handling in accelerated compositor
1176         https://bugs.webkit.org/show_bug.cgi?id=88972
1177
1178         Reviewed by Adrienne Walker.
1179
1180         The original hit testing code by Sami Kyostila.
1181
1182         This patch implements a simple impl-side hit-testing helper
1183         function. At this time, the main motivation for this is so that
1184         composited scrollable layers can be scrolled by the impl thread --
1185         and a prerequisite for that is the ability to hit-test on the impl
1186         thread, to determine where the scrolling action should be applied.
1187
1188         To implement the actual hit test, it's possible to compute the hit
1189         test in two equivalent ways: (a) inverse-project the point into
1190         local space, or (b) forward-transform the rect to screen space
1191         It's not obvious which one would perform better, or which one
1192         would be more robust to w < 0 homogeneous clipping issues. For
1193         this patch, we simply opt for the inverse-projection approach.
1194
1195         10 unit tests added to CCLayerTreeHostCommonTest.cpp:
1196           CCLayerTreeHostCommonTest.verifyHitTestingForEmptyLayerList
1197           CCLayerTreeHostCommonTest.verifyHitTestingForSingleLayer
1198           CCLayerTreeHostCommonTest.verifyHitTestingForSinglePositionedLayer
1199           CCLayerTreeHostCommonTest.verifyHitTestingForSingleRotatedLayer
1200           CCLayerTreeHostCommonTest.verifyHitTestingForSinglePerspectiveLayer
1201           CCLayerTreeHostCommonTest.verifyHitTestingForSingleLayerWithScaledContents
1202           CCLayerTreeHostCommonTest.verifyHitTestingForSimpleClippedLayer
1203           CCLayerTreeHostCommonTest.verifyHitTestingForMultiClippedRotatedLayer
1204           CCLayerTreeHostCommonTest.verifyHitTestingForMultipleLayers
1205           CCLayerTreeHostCommonTest.verifyHitTestingForMultipleLayerLists
1206         
1207         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
1208         (WebCore::pointHitsRect):
1209         (WebCore):
1210         (WebCore::pointIsClippedBySurfaceOrClipRect):
1211         (WebCore::CCLayerTreeHostCommon::findLayerThatIsHitByPoint):
1212         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h:
1213         (CCLayerTreeHostCommon):
1214         * platform/graphics/chromium/cc/CCMathUtil.cpp:
1215         (WebCore::projectHomogeneousPoint):
1216         (WebCore::mapHomogeneousPoint):
1217         (WebCore::CCMathUtil::mapClippedRect):
1218         (WebCore::CCMathUtil::projectClippedRect):
1219         (WebCore::CCMathUtil::mapClippedQuad):
1220         (WebCore::CCMathUtil::mapQuad):
1221         (WebCore::CCMathUtil::projectPoint):
1222         (WebCore):
1223         * platform/graphics/chromium/cc/CCMathUtil.h:
1224         (WebCore):
1225         (CCMathUtil):
1226
1227 2012-06-13  Charles Wei  <charles.wei@torchmobile.com.cn>
1228
1229         Need customized toDOMStringList for IndexedDB JSC binding.
1230         https://bugs.webkit.org/show_bug.cgi?id=87965
1231
1232         Reviewed by Kentaro Hara.
1233
1234         IndexedDB database interface uses DOMStringList as the input parameter.
1235         The generated toDOMStringList() can't convert an JSArray of Strings to
1236         native DOMStringList. We need a custom function to do this.
1237
1238         Because this patch adds one new file (JSDOMStringList.cpp), all build systems
1239         are updated accordingly to pick up this file.
1240
1241          Tests: Corresponding bindings/scripts/test/JS files have been updated accordingly.
1242
1243         * GNUmakefile.list.am:
1244         * Target.pri:
1245         * UseJSC.cmake:
1246         * WebCore.gypi:
1247         * WebCore.vcproj/WebCore.vcproj:
1248         * WebCore.xcodeproj/project.pbxproj:
1249         * bindings/js/JSBindingsAllInOne.cpp:
1250         * bindings/js/JSDOMStringListCustom.cpp: Added.
1251         (WebCore):
1252         (WebCore::toDOMStringList):
1253         * bindings/scripts/CodeGeneratorJS.pm:
1254         (IndexGetterReturnsStrings):
1255         (GenerateHeader):
1256         (GetNativeType):
1257         (GetNativeTypeForCallbacks):
1258         (JSValueToNative):
1259         * bindings/scripts/test/JS/JSTestCallback.cpp:
1260         (WebCore::JSTestCallback::callbackWithStringList):
1261         * bindings/scripts/test/JS/JSTestCallback.h:
1262         (JSTestCallback):
1263         * bindings/scripts/test/JS/JSTestObj.cpp:
1264         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
1265         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
1266         * dom/DOMStringList.idl:
1267
1268 2012-06-13  Jeffrey Pfau  <jpfau@apple.com>
1269
1270         Padding and borders can cause integer overflow in block layouts
1271         https://bugs.webkit.org/show_bug.cgi?id=88820
1272         <rdar://problem/11328762>
1273
1274         Reviewed by Tony Chang.
1275
1276         Tests: fast/block/block-size-integer-overflow.html
1277                fast/flexbox/box-size-integer-overflow.html
1278                fast/table/table-size-integer-overflow.html
1279
1280         * rendering/AutoTableLayout.cpp: Decreased max int.
1281         (WebCore::AutoTableLayout::computePreferredLogicalWidths):
1282         * rendering/FixedTableLayout.cpp: Use shared constant.
1283         (WebCore::FixedTableLayout::computePreferredLogicalWidths):
1284         * rendering/RenderBlock.cpp: Removed unused constant.
1285         * rendering/TableLayout.h: Add shared constant.
1286         (TableLayout):
1287
1288 2012-06-13  Gregg Tavares  <gman@google.com>
1289
1290         Refactor WebGLFramebuffer to handle texture attachments
1291         https://bugs.webkit.org/show_bug.cgi?id=88697
1292
1293         Reviewed by Adrienne Walker.
1294         
1295         In order to add support for depth textures WebGLFramebuffer
1296         needed to be refactored to handle textures as attachments.
1297
1298         No new tests as no new functionality. 
1299
1300         * html/canvas/WebGLFramebuffer.cpp:
1301         (WebCore::WebGLFramebuffer::WebGLAttachment::WebGLAttachment):
1302         (WebCore):
1303         (WebCore::WebGLFramebuffer::WebGLAttachment::~WebGLAttachment):
1304         (WebCore::WebGLFramebuffer::WebGLFramebuffer):
1305         (WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
1306         (WebCore::WebGLFramebuffer::attach):
1307         (WebCore::WebGLFramebuffer::getAttachmentObject):
1308         (WebCore::WebGLFramebuffer::getAttachment):
1309         (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
1310         (WebCore::WebGLFramebuffer::getColorBufferWidth):
1311         (WebCore::WebGLFramebuffer::getColorBufferHeight):
1312         (WebCore::WebGLFramebuffer::getColorBufferFormat):
1313         (WebCore::WebGLFramebuffer::checkStatus):
1314         (WebCore::WebGLFramebuffer::onAccess):
1315         (WebCore::WebGLFramebuffer::hasStencilBuffer):
1316         (WebCore::WebGLFramebuffer::deleteObjectImpl):
1317         (WebCore::WebGLFramebuffer::initializeAttachments):
1318         * html/canvas/WebGLFramebuffer.h:
1319         (WebGLAttachment):
1320         (WebGLFramebuffer):
1321         * html/canvas/WebGLRenderingContext.cpp:
1322         (WebCore):
1323         (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
1324         (WebCore::WebGLRenderingContext::reattachDepthStencilAttachments):
1325         (WebCore::WebGLRenderingContext::framebufferTexture2D):
1326         (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
1327         * html/canvas/WebGLRenderingContext.h:
1328         (WebGLRenderingContext):
1329
1330 2012-06-13  Konrad Piascik  <kpiascik@rim.com>
1331
1332         Remove return statement in void method
1333         https://bugs.webkit.org/show_bug.cgi?id=88998
1334
1335         Reviewed by Andreas Kling
1336
1337         * html/HTMLInputElement.cpp:
1338         (WebCore::HTMLInputElement::collectStyleForAttribute):
1339
1340 2012-06-13  Benjamin Poulain  <benjamin@webkit.org>
1341
1342         Implement the simple constructors WTFURL's KURL
1343         https://bugs.webkit.org/show_bug.cgi?id=85724
1344
1345         Reviewed by Adam Barth.
1346
1347         This patch implement the correct initialization of KURL from an absolute URL.
1348         The URL correctness is also relaxed in order to have KURLWTFURL works similarily to KURL.
1349
1350         * platform/KURLWTFURL.cpp:
1351         (WebCore::KURL::KURL):
1352         (WebCore::KURL::isValid):
1353         (WebCore::KURL::string):
1354         (WebCore::KURL::protocol):
1355         (WebCore::KURL::host):
1356         (WebCore::KURL::port): Fix a bug where invalidPortNumber was returned if no port was defined.
1357         (WebCore::KURL::hasFragmentIdentifier):
1358         (WebCore::KURL::fragmentIdentifier):
1359         (WebCore::KURL::protocolIs):
1360         (WebCore::KURL::removeFragmentIdentifier):
1361         (WebCore):
1362         (WebCore::KURL::print):
1363         * platform/cf/KURLCFNet.cpp:
1364         (WebCore::KURL::KURL):
1365         (WebCore::KURL::createCFURL):
1366         (WebCore):
1367         * platform/mac/KURLMac.mm:
1368         (WebCore::KURL::KURL):
1369         (WebCore::KURL::createCFURL):
1370         (WebCore):
1371         Use the code of KURL to make the conversion from WTFURL to NSURL.
1372
1373 2012-06-12  Vincent Scheib  <scheib@chromium.org>
1374
1375         Remove duplicate webkitpointerlockchange events when unlocking.
1376         https://bugs.webkit.org/show_bug.cgi?id=88917
1377
1378         Reviewed by Dimitri Glazkov.
1379
1380         Subsequent patches adding the new API for entering and exiting
1381         pointer lock would be burdened by handling multiple change events
1382         when the lock target is changed. This change introduces
1383         temporary code to suppress duplicate change events.
1384
1385         Existing tests simplified by removing the duplicate change events.
1386
1387         * page/PointerLockController.cpp:
1388         (WebCore::PointerLockController::requestPointerLock):
1389         (WebCore::PointerLockController::didLosePointerLock):
1390         * page/PointerLockController.h:
1391         (PointerLockController):
1392
1393 2012-06-13  Silvia Pfeiffer  <silviapf@chromium.org>
1394
1395         Update range sliders rendering for volume and playback position of new Chrome video controls.
1396         https://bugs.webkit.org/show_bug.cgi?id=88623
1397
1398         Reviewed by Eric Carlson.
1399
1400         No new tests, final patch will contain the rebaselined tests.
1401
1402         The Chrome video controls are receiving a visual update. This patch contains updates to the
1403         rendering of the range sliders for the playback position and the volume. This includes the
1404         creation of a shadowPseudoId to be able to style the range sliders via CSS, the rendering
1405         of the slider background and the highlighted ranges.
1406
1407         * css/mediaControlsChromium.css:
1408         (input[type="range"]::-webkit-media-slider-container):
1409         Adjust the styling of the slider container backgrounds.
1410         (input[type="range"]::-webkit-media-slider-thumb):
1411         Adjust the styling of the slider thumbs.
1412         * html/shadow/SliderThumbElement.cpp:
1413         (WebCore::sliderThumbShadowPseudoId):
1414         Add an accessor function for the slider thumb shadowPseudoId.
1415         (WebCore::mediaSliderThumbShadowPseudoId):
1416         Add an accessor function for the media slider thumb shadowPseudoId.
1417         (WebCore::SliderThumbElement::shadowPseudoId):
1418         Add a different CSS pseudo-class name to the media slider thumbs.
1419         (WebCore::TrackLimiterElement::shadowPseudoId):
1420         Add a different CSS pseudo-class name to the media slider thumbs.
1421         (WebCore::SliderContainerElement::shadowPseudoId):
1422         Add a different CSS pseudo-class name to the media slider background container.
1423         * rendering/RenderMediaControlsChromium.cpp:
1424         (WebCore::paintRoundedSliderBackground):
1425         Add function to draw rounded background of sliders in a dark color.
1426         (WebCore::paintSliderRangeHighlight):
1427         Add function to draw a highlighted grey region on the sliders, which is rounded only at
1428         its ends.
1429         (WebCore::paintMediaSlider):
1430         Update the background and buffered range renderings on the playback position slider by making
1431         use of the new helper functions.
1432         (WebCore::paintMediaVolumeSlider):
1433         Update the background and buffered range renderings on the volume slider by making
1434         use of the new helper functions.
1435
1436 2012-06-13  Christopher Hutten-Czapski  <chutten@rim.com>
1437
1438         2012-06-13  Christopher Hutten-Czapski  <chutten@rim.com>
1439
1440         [BlackBerry] Update Select Popup's styling
1441         https://bugs.webkit.org/show_bug.cgi?id=89005
1442
1443         Reviewed by Rob Buis.
1444
1445         Add in some nicely-styled CSS and JS for the BlackBerry port's <select>
1446
1447         * Resources/blackberry/popupControlBlackBerry.css:
1448         (body):
1449         (.popup-area):
1450         (.popup-area>:first-child):
1451         (.popup-buttons):
1452         (.popup-button-divider):
1453         (.popup-button):
1454         (.popup-button:active):
1455         (.popup-button:first-child:active):
1456         (.popup-button:last-child:active):
1457         (.popup-button:only-child:active):
1458         * Resources/blackberry/selectControlBlackBerry.css: Added.
1459         (.select-area):
1460         (.select-area:last-child):
1461         (.option):
1462         (.optgroup:last-child):
1463         (.selected):
1464         (.optgroup):
1465         (.optgroup .option):
1466         * Resources/blackberry/selectControlBlackBerry.js: Added.
1467
1468 2012-06-13  Alec Flett  <alecflett@chromium.org>
1469
1470         [V8] IndexedDB: Cursor value modifications should be preserved until cursor iterates
1471         https://bugs.webkit.org/show_bug.cgi?id=83526
1472
1473         Reviewed by Kentaro Hara.
1474
1475         Cache the 'value' attribute of IDBCursorWithValue with policy
1476         determined by IDBCursor.cpp, to follow spec behavior of keeping a
1477         consistent script object until the cursor advances. See
1478         http://www.w3.org/TR/IndexedDB/#widl-IDBCursorWithValueSync-value
1479         for details.
1480
1481         Test: storage/indexeddb/cursor-value.html
1482
1483         * Modules/indexeddb/IDBCursor.cpp:
1484         (WebCore::IDBCursor::IDBCursor):
1485         (WebCore::IDBCursor::value):
1486         (WebCore::IDBCursor::setValueReady):
1487         * Modules/indexeddb/IDBCursor.h:
1488         (IDBCursor):
1489         (WebCore::IDBCursor::valueIsDirty):
1490         * Modules/indexeddb/IDBCursorWithValue.idl:
1491         * WebCore.gypi:
1492         * bindings/v8/IDBCustomBindings.cpp: Added.
1493         (WebCore):
1494         (WebCore::V8IDBCursorWithValue::valueAccessorGetter):
1495
1496 2012-06-13  Silvia Pfeiffer  <silviapf@chromium.org>
1497
1498         Code cleanup from bug 88881 to share the SliderVerticalPart code.
1499         https://bugs.webkit.org/show_bug.cgi?id=88930
1500
1501         Reviewed by Eric Carlson.
1502
1503         No new tests - this is just code cleanup.
1504
1505         * html/shadow/SliderThumbElement.cpp:
1506         (WebCore::hasVerticalAppearance):
1507         Avoid having two ifdef-ed returns in the code depending on ENABLE(VIDEO).
1508
1509 2012-06-13  Mark Mentovai  <mark@chromium.org>
1510
1511         [chromium mac] Don't include things in subframeworks of
1512         ApplicationServices.framework.
1513
1514         A CoreText #include (with quotes instead of brackets, even) sprung up
1515         in r120506, bug 69826.
1516
1517         https://bugs.webkit.org/show_bug.cgi?id=88569
1518
1519         Reviewed by Stephen White.
1520
1521         No new tests.
1522
1523         * platform/graphics/harfbuzz/ng/HarfBuzzFaceCoreText.cpp:
1524
1525 2012-06-13  Eriq Augustine  <eaugusti@chromium.org>
1526
1527         Removing an extra HandleScope in V8Proxy::evaluateInIsolatedWorld
1528         https://bugs.webkit.org/show_bug.cgi?id=88451
1529
1530         Reviewed by Adam Barth.
1531
1532         Any values retuned by the evaluation will get destroyed with the extra
1533         HandleScope.
1534
1535         I was unable to cause a test failure, however this feature is tested by:
1536         platform/chromium/http/tests/misc/execute-and-return-value.html
1537
1538         * bindings/v8/V8Proxy.cpp:
1539         (WebCore::V8Proxy::evaluateInIsolatedWorld):
1540
1541 2012-06-13  Zan Dobersek  <zandobersek@gmail.com>
1542
1543         [Gtk] Enable link prefetch support in the developer builds
1544         https://bugs.webkit.org/show_bug.cgi?id=89011
1545
1546         Reviewed by Martin Robinson.
1547
1548         Handle the ENABLE_LINK_PREFETCH conditional in standard way.
1549
1550         No new tests - covered by existing link prefetch tests.
1551
1552         * GNUmakefile.am:
1553
1554 2012-06-13  Amy Ousterhout  <aousterh@chromium.org>
1555
1556         Rename currentDeviceMotion to lastMotion in DeviceMotionClient
1557         https://bugs.webkit.org/show_bug.cgi?id=88854
1558
1559         Reviewed by Adam Barth.
1560
1561         Rename the function currentDeviceMotion to lastMotion in DeviceMotionClient.
1562         This makes it consistent with the similar function lastOrientation in DeviceOrientationClient.
1563
1564         Just a rename, so does not require any new tests.
1565
1566         * dom/DeviceMotionClient.h:
1567         (DeviceMotionClient):
1568         * dom/DeviceMotionController.cpp:
1569         (WebCore::DeviceMotionController::timerFired):
1570         (WebCore::DeviceMotionController::addListener):
1571         * loader/EmptyClients.h:
1572         (WebCore::EmptyDeviceMotionClient::lastMotion):
1573         * platform/qt/DeviceMotionClientQt.cpp:
1574         (WebCore::DeviceMotionClientQt::lastMotion):
1575         * platform/qt/DeviceMotionClientQt.h:
1576         (DeviceMotionClientQt):
1577         * platform/qt/DeviceMotionProviderQt.h:
1578         (WebCore::DeviceMotionProviderQt::lastMotion):
1579
1580 2012-06-13  Vsevolod Vlasov  <vsevik@chromium.org>
1581
1582         Web Inspector: Breakpoint's _uiLocationRemoved() method is never called.
1583         https://bugs.webkit.org/show_bug.cgi?id=89003
1584
1585         Reviewed by Pavel Feldman.
1586
1587         * inspector/front-end/BreakpointManager.js:
1588         (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
1589         (WebInspector.BreakpointManager.Breakpoint):
1590         (WebInspector.BreakpointManager.Breakpoint.prototype._locationUpdated):
1591         (WebInspector.BreakpointManager.Breakpoint.prototype._resetLocations):
1592         (WebInspector.BreakpointManager.Breakpoint.prototype._fakeBreakpointAtPrimaryLocation):
1593         * inspector/front-end/FileSystemModel.js: Drive by compilation fix.
1594         (WebInspector.FileSystemModel):
1595
1596 2012-06-13  David Grogan  <dgrogan@chromium.org>
1597
1598         IndexedDB: Add tests, an assert, and some comments around open/close/setVersion call sequencing
1599         https://bugs.webkit.org/show_bug.cgi?id=88829
1600
1601         Reviewed by Tony Chang.
1602
1603         Test: storage/indexeddb/three-setversion-calls.html
1604
1605         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1606         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
1607
1608 2012-06-09  Vsevolod Vlasov  <vsevik@chromium.org>
1609
1610         Web Inspector: Errors when pending console messages are attached to JavaScriptSourceFrame.
1611         https://bugs.webkit.org/show_bug.cgi?id=88712
1612
1613         Reviewed by Pavel Feldman.
1614
1615         * inspector/front-end/PresentationConsoleMessageHelper.js:
1616         (WebInspector.PresentationConsoleMessageHelper):
1617         (WebInspector.PresentationConsoleMessageHelper.prototype._addPendingConsoleMessage):
1618         (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
1619
1620 2012-06-13  Alexander Pavlov  <apavlov@chromium.org>
1621
1622         Web Inspector: Support user attributes in DOMNode
1623         https://bugs.webkit.org/show_bug.cgi?id=88706
1624
1625         Reviewed by Pavel Feldman.
1626
1627         This change allows clients to store arbitrary properties on DOMNodes and know if there are descendants
1628         (and how many of them) having a certain property set.
1629
1630         Test: inspector/elements/user-attributes.html
1631
1632         * inspector/front-end/DOMAgent.js:
1633         (WebInspector.DOMNode.prototype._removeChild):
1634         (WebInspector.DOMNode.prototype._updateChildUserPropertyCountsOnRemoval):
1635         (WebInspector.DOMNode.prototype._updateDescendantUserPropertyCount):
1636         (WebInspector.DOMNode.prototype.setUserProperty):
1637         (WebInspector.DOMNode.prototype.removeUserProperty):
1638         (WebInspector.DOMNode.prototype.getUserProperty):
1639         (WebInspector.DOMNode.prototype.descendantUserPropertyCount):
1640
1641 2012-06-13  Vineet Chaudhary  <vineet.chaudhary@motorola.com>
1642
1643         REGRESSION:Bindings sequence<T> in Console.idl, Internals.idl and ScriptProfileNode.idl should be T[]
1644         https://bugs.webkit.org/show_bug.cgi?id=84863
1645
1646         Reviewed by Kentaro Hara.
1647
1648         With reference to http://www.w3.org/TR/WebIDL/#idl-sequence
1649         "Sequences must not be used as the type of an attribute, constant or exception field."
1650         So we should use T[] instead of sequence<T>.
1651
1652         Tests: bindings/scripts/test/TestObj.idl
1653                fast/harness/user-preferred-language.html
1654                inspector/profiler/cpu-profiler-profiling-without-inspector.html
1655                media/track/track-language-preference.html
1656
1657         * bindings/scripts/CodeGenerator.pm:
1658         (GetSequenceType): Getter for getting sequence type.
1659         (GetArrayType): Getter for getting array type.
1660         (AssertNotSequenceType): Check sequences must not be used as the type of an attribute,
1661         constant or exception field.
1662         * bindings/scripts/CodeGeneratorCPP.pm:
1663         (SkipFunction): Exclude bindings code for type sequence.
1664         (SkipAttribute): Check for sequences must not be used as the type of an attribute,
1665         constant or exception field.
1666         (AddIncludesForType): Exclude header inclusion code for type array/sequence.
1667         * bindings/scripts/CodeGeneratorGObject.pm:
1668         (SkipAttribute): Check for sequences must not be used as the type of an attribute,
1669         constant or exception field.
1670         (SkipFunction): Exclude bindings code for type sequence.
1671         * bindings/scripts/CodeGeneratorJS.pm:
1672         (AddIncludesForType): Exclude header inclusion code for type array/sequence.
1673         (GenerateImplementation):  Check for sequences must not be used as the type of an attribute,
1674         constant or exception field.
1675         (GetNativeType):
1676         (JSValueToNative):
1677         (NativeToJSValue):
1678         * bindings/scripts/CodeGeneratorObjC.pm:
1679         (SkipFunction): Exclude bindings code for type sequence.
1680         (SkipAttribute): Exclude bindings code for type array.
1681         (AddForwardDeclarationsForType):
1682         (AddIncludesForType):
1683         * bindings/scripts/CodeGeneratorV8.pm:
1684         (GenerateNormalAttrGetter):
1685         (GetNativeType):
1686         (JSValueToNative):
1687         (CreateCustomSignature):
1688         (NativeToJSValue):
1689         * bindings/scripts/test/JS/JSTestObj.cpp: Updated code from run-bindings-tests.
1690         (WebCore):
1691         (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
1692         * bindings/scripts/test/JS/JSTestObj.h: Updated code from run-bindings-tests.
1693         (WebCore):
1694         * bindings/scripts/test/TestObj.idl: Tests.
1695         * bindings/scripts/test/V8/V8TestObj.cpp:  Updated code from run-bindings-tests.
1696         (TestObjV8Internal):
1697         (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
1698         (WebCore):
1699         * inspector/ScriptProfileNode.idl: Using sequence<T> for children().
1700         * page/Console.idl: Using Array[T] for profiles attribute.
1701         * testing/Internals.idl: Using sequence<T> for userPreferredLanguages().
1702
1703 2012-06-13  Simon Hausmann  <simon.hausmann@nokia.com>
1704
1705         [Qt] Remove dependency to QtScript for the Qt 5 build
1706         https://bugs.webkit.org/show_bug.cgi?id=88993
1707
1708         Reviewed by Kenneth Rohde Christiansen.
1709
1710         Replace the use of QScriptEngine::ValueOwnership with an enum local
1711         to the class where it is used (QtInstance).
1712
1713         * Target.pri:
1714         * bindings/js/ScriptControllerQt.cpp:
1715         (WebCore::ScriptController::createScriptInstanceForWidget):
1716         * bridge/qt/qt_instance.cpp:
1717         (JSC::Bindings::QtInstance::QtInstance):
1718         (JSC::Bindings::QtInstance::~QtInstance):
1719         (JSC::Bindings::QtInstance::getQtInstance):
1720         * bridge/qt/qt_instance.h:
1721         (QtInstance):
1722         (JSC::Bindings::QtInstance::create):
1723         * bridge/qt/qt_runtime.cpp:
1724         (JSC::Bindings::convertQVariantToValue):
1725         * bridge/qt/qt_runtime_qt4.cpp:
1726         (JSC::Bindings::convertQVariantToValue):
1727
1728 2012-06-13  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
1729
1730         [Qt] Save a JSGlobalContextRef instead of a JSContextRef in QtConnectionObject
1731         https://bugs.webkit.org/show_bug.cgi?id=88905
1732
1733         Make QtConnectionObject use JSContextGetGlobalContext and store the
1734         JSGlobalContextRef. Previous code was working but saving JSContextRef was wrong in terms of
1735         API.
1736
1737         There's an assumption that JSGlobalContextRef will outlive the connection objects, and
1738         because of it no JSGlobalContextRetain/Release calls were added.
1739
1740         Reviewed by Noam Rosenthal.
1741
1742         * bridge/qt/qt_runtime.cpp:
1743         (JSC::Bindings::QtRuntimeConnectionMethod::call):
1744         (JSC::Bindings::QtConnectionObject::QtConnectionObject):
1745         * bridge/qt/qt_runtime.h:
1746         (QtConnectionObject):
1747         * bridge/qt/qt_runtime_qt4.cpp:
1748         (JSC::Bindings::QtRuntimeConnectionMethod::call):
1749         (JSC::Bindings::QtConnectionObject::QtConnectionObject):
1750
1751 2012-06-13  David Barr  <davidbarr@chromium.org>
1752
1753         Add dpi to css3-images image-resolution
1754         https://bugs.webkit.org/show_bug.cgi?id=85439
1755
1756         Reviewed by Tony Chang.
1757
1758         No new tests; extended fast/css/image-resolution/image-resolution.html
1759
1760         * css/CSSGrammar.y:
1761         * css/CSSParser.cpp:
1762         (WebCore::CSSParser::validUnit):
1763         (WebCore::CSSParser::createPrimitiveNumericValue):
1764         (WebCore::unitFromString):
1765         (WebCore::CSSParser::parseValidPrimitive):
1766         (WebCore::CSSParser::detectNumberToken):
1767         * css/CSSPrimitiveValue.cpp:
1768         (WebCore::isValidCSSUnitTypeForDoubleConversion):
1769         (WebCore::unitCategory):
1770         (WebCore::conversionToCanonicalUnitsScaleFactor):
1771         (WebCore::CSSPrimitiveValue::customCssText):
1772         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
1773         * css/CSSPrimitiveValue.h:
1774
1775 2012-06-13  Li Yin  <li.yin@intel.com>
1776
1777         FileAPI: type should be converted to be lower case in Blob constructor.
1778         https://bugs.webkit.org/show_bug.cgi?id=88696
1779
1780         Reviewed by Kentaro Hara.
1781
1782         Spec: http://dev.w3.org/2006/webapi/FileAPI/#dfn-BlobPropertyBag
1783         Spec: http://dev.w3.org/2006/webapi/FileAPI/#attributes-blob
1784         The ASCII-encoded string in lower case representing the media type of the Blob.
1785
1786         Test: fast/files/blob-constructor.html
1787
1788         * bindings/js/JSBlobCustom.cpp:
1789         (WebCore::JSBlobConstructor::constructJSBlob):
1790         * bindings/v8/custom/V8BlobCustom.cpp:
1791         (WebCore::V8Blob::constructorCallback):
1792
1793 2012-06-13  Robin Cao  <robin.cao@torchmobile.com.cn>
1794
1795         [BlackBerry] Enable MEDIA_STREAM by default
1796         https://bugs.webkit.org/show_bug.cgi?id=88849
1797
1798         Reviewed by Antonio Gomes.
1799
1800         Covered by existing test cases.
1801
1802         * CMakeLists.txt:
1803         * PlatformBlackBerry.cmake:
1804         * platform/mediastream/blackberry/DeprecatedPeerConnectionHandler.cpp: Added.
1805         (WebCore):
1806         (WebCore::DeprecatedPeerConnectionHandler::create):
1807         (WebCore::DeprecatedPeerConnectionHandler::DeprecatedPeerConnectionHandler):
1808         (WebCore::DeprecatedPeerConnectionHandler::~DeprecatedPeerConnectionHandler):
1809         (WebCore::DeprecatedPeerConnectionHandler::produceInitialOffer):
1810         (WebCore::DeprecatedPeerConnectionHandler::handleInitialOffer):
1811         (WebCore::DeprecatedPeerConnectionHandler::processSDP):
1812         (WebCore::DeprecatedPeerConnectionHandler::processPendingStreams):
1813         (WebCore::DeprecatedPeerConnectionHandler::sendDataStreamMessage):
1814         (WebCore::DeprecatedPeerConnectionHandler::stop):
1815         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp: Added.
1816         (WebCore):
1817         (WebCore::MediaStreamCenter::instance):
1818         (WebCore::MediaStreamCenterBlackBerry::MediaStreamCenterBlackBerry):
1819         (WebCore::MediaStreamCenterBlackBerry::~MediaStreamCenterBlackBerry):
1820         (WebCore::MediaStreamCenterBlackBerry::queryMediaStreamSources):
1821         (WebCore::MediaStreamCenterBlackBerry::didSetMediaStreamTrackEnabled):
1822         (WebCore::MediaStreamCenterBlackBerry::didStopLocalMediaStream):
1823         (WebCore::MediaStreamCenterBlackBerry::didCreateMediaStream):
1824         (WebCore::MediaStreamCenterBlackBerry::constructSDP):
1825         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h: Added.
1826         (WebCore):
1827         (MediaStreamCenterBlackBerry):
1828
1829 2012-06-13  Pavel Feldman  <pfeldman@chromium.org>
1830
1831         Web Inspector: working copy should be committed even if domain binding returns error.
1832         https://bugs.webkit.org/show_bug.cgi?id=88884
1833
1834         Reviewed by Vsevolod Vlasov.
1835
1836         Committing working copy is about saving file. It should always succeed.
1837
1838         * inspector/front-end/UISourceCode.js:
1839         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
1840
1841 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
1842
1843         Web Inspector: show revisions of all modified files in local modifications view
1844         https://bugs.webkit.org/show_bug.cgi?id=88864
1845
1846         Reviewed by Vsevolod Vlasov.
1847
1848         This change allows all local modifications to be seen in a single view. View is now
1849         singleton, listening to all revisions being added. Revert captions were reworked
1850         (see the screenshot).
1851
1852         * English.lproj/localizedStrings.js:
1853         * inspector/front-end/Resource.js:
1854         * inspector/front-end/RevisionHistoryView.js:
1855         (WebInspector.RevisionHistoryView.populateRevisions):
1856         (WebInspector.RevisionHistoryView):
1857         (WebInspector.RevisionHistoryView.showHistory):
1858         (WebInspector.RevisionHistoryView.reset):
1859         (WebInspector.RevisionHistoryView.prototype._createResourceItem.clearHistory):
1860         (WebInspector.RevisionHistoryView.prototype._createResourceItem):
1861         (WebInspector.RevisionHistoryView.prototype._revisionAdded.get if):
1862         (WebInspector.RevisionHistoryView.prototype._revisionAdded):
1863         (WebInspector.RevisionHistoryView.prototype._revealResource.get if):
1864         (WebInspector.RevisionHistoryView.prototype._revealResource):
1865         (WebInspector.RevisionHistoryView.prototype._reset):
1866         (WebInspector.RevisionHistoryTreeElement):
1867         (WebInspector.RevisionHistoryTreeElement.prototype.onattach):
1868         (WebInspector.RevisionHistoryTreeElement.prototype.oncollapse):
1869         * inspector/front-end/ScriptsPanel.js:
1870         (WebInspector.ScriptsPanel.prototype._reset):
1871         (WebInspector.ScriptsPanel.prototype._editorSelected):
1872         * inspector/front-end/revisionHistory.css:
1873         (.revision-history-link-row):
1874         (.revision-history-drawer li.revision-history-revision):
1875
1876 2012-06-13  Pavel Feldman  <pfeldman@chromium.org>
1877
1878         Web Inspector: Make "Go to source and line" possible with "go to file" dialog
1879         https://bugs.webkit.org/show_bug.cgi?id=88740
1880
1881         Reviewed by Vsevolod Vlasov.
1882
1883         Selection dialog now allows search query rewrite and uses line number
1884         suffix to go to a particular line.
1885
1886         * inspector/front-end/FilteredItemSelectionDialog.js:
1887         (WebInspector.FilteredItemSelectionDialog.prototype.onEnter):
1888         (WebInspector.FilteredItemSelectionDialog.prototype._createSearchRegExp):
1889         (WebInspector.SelectionDialogContentProvider.prototype.selectItem):
1890         (WebInspector.SelectionDialogContentProvider.prototype.rewriteQuery):
1891         (WebInspector.JavaScriptOutlineDialog.prototype.selectItem):
1892         (WebInspector.JavaScriptOutlineDialog.prototype.rewriteQuery):
1893         (WebInspector.OpenResourceDialog.prototype.selectItem):
1894         (WebInspector.OpenResourceDialog.prototype.rewriteQuery):
1895         * inspector/front-end/ScriptsPanel.js:
1896         (WebInspector.ScriptsPanel.prototype.showUISourceCode):
1897         * inspector/front-end/StylesPanel.js:
1898         (WebInspector.StyleSheetOutlineDialog.prototype.selectItem):
1899         (WebInspector.StyleSheetOutlineDialog.prototype.rewriteQuery):
1900
1901 2012-06-12  Hans Wennborg  <hans@chromium.org>
1902
1903         Speech JavaScript API: Add test for constructing SpeechRecognitionError events
1904         https://bugs.webkit.org/show_bug.cgi?id=88868
1905
1906         Reviewed by Adam Barth.
1907
1908         This adds a test for constructing SpeechRecognitionError events, and
1909         code to make it work.
1910
1911         Test: fast/events/constructors/speech-recognition-error-constructor.html
1912
1913         * Modules/speech/SpeechRecognitionError.cpp:
1914         (WebCore::SpeechRecognitionError::create):
1915         (WebCore):
1916         (WebCore::SpeechRecognitionError::SpeechRecognitionError):
1917         (WebCore::SpeechRecognitionErrorInit::SpeechRecognitionErrorInit):
1918         * Modules/speech/SpeechRecognitionError.h:
1919         (SpeechRecognitionErrorInit):
1920         (WebCore):
1921         (SpeechRecognitionError):
1922         (WebCore::SpeechRecognitionError::code):
1923         * Modules/speech/SpeechRecognitionError.idl:
1924
1925 2012-06-13  Taiju Tsuiki  <tzik@chromium.org>
1926
1927         Implement InspectorFileSystemAgent::readDirectory for FileSystem support.
1928         https://bugs.webkit.org/show_bug.cgi?id=87724
1929
1930         Reviewed by Vsevolod Vlasov.
1931
1932         Test: http/tests/inspector/filesystem/read-directory.html
1933
1934         * inspector/Inspector.json:
1935         * inspector/InspectorController.cpp:
1936         (WebCore::InspectorController::InspectorController):
1937         * inspector/InspectorFileSystemAgent.cpp:
1938         (InspectorFileSystemAgent::FrontendProvider):
1939         (WebCore):
1940         (WebCore::InspectorFileSystemAgent::create):
1941         (WebCore::InspectorFileSystemAgent::readDirectory):
1942         (WebCore::InspectorFileSystemAgent::InspectorFileSystemAgent):
1943         * inspector/InspectorFileSystemAgent.h:
1944         (WebCore):
1945         (InspectorFileSystemAgent):
1946
1947 2012-06-13  Silvia Pfeiffer  <silviapf@chromium.org>
1948
1949         Change the styling of the Chromium video controls.
1950         https://bugs.webkit.org/show_bug.cgi?id=88297
1951
1952         Reviewed by Eric Carlson.
1953
1954         No new tests, final patch will contain the rebaselined tests.
1955
1956         The Chrome video controls are receiving a visual update. This patch includes CSS changes,
1957         the removal of the now no longer needed controls background div, and the introduction of
1958         new images for the buttons.
1959
1960         * css/mediaControlsChromium.css:
1961         (audio):
1962         Adjust height of audio controls.
1963         (::-webkit-media-controls):
1964         Use flexbox on media controls shadow DOM.
1965         (audio::-webkit-media-controls-enclosure, video::-webkit-media-controls-enclosure):
1966         Adjust height, max-width, text-indent and box-sizing, and reset padding to 0.
1967         (video::-webkit-media-controls-enclosure):
1968         Use 5px padding only for video controls and adjust height accordingly.
1969         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
1970         Use flexbox on panel, adjust bottom alignment, height, background color and border radius.
1971         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
1972         Display buttons inline with fixed width and height, vertically centered, no padding and
1973         6px space to next controls element (this will be 15px incl the space in the image).
1974         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
1975         Display buttons inline with fixed width and height, vertically centered, no padding and
1976         9px space to next controls element (this will be 15px incl the space in the image).
1977         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
1978         Display text as block, without broder, adjusted height, font-family, font-size and 9px space
1979         to next controls element (this will be 15px incl the space in the image).
1980         (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
1981         Adjust height, padding, background-color, min-wdith and 15px space to next controls element.
1982         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
1983         Adjust height, max- and min-width, background-color and 15px space to next controls element.
1984         * html/shadow/MediaControlRootElementChromium.cpp:
1985         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
1986         Remove timeline container, which is not necessary any longer because of the use of flexbox.
1987         (WebCore::MediaControlRootElementChromium::create):
1988         Remove timeline container, which is not necessary any longer because of the use of flexbox.
1989         (WebCore::MediaControlRootElementChromium::setMediaController):
1990         Remove timeline container, which is not necessary any longer because of the use of flexbox.
1991         (WebCore::MediaControlRootElementChromium::reset):
1992         Show the timeline instead of the timeline container when resetting.
1993         (WebCore::MediaControlRootElementChromium::reportedError):
1994         Hide the timeline instead of the timeline container when running into an error.
1995         * rendering/RenderMediaControlsChromium.cpp:
1996         (WebCore::paintMediaMuteButton):
1997         Introduce new image resources for the mute button and adjust it based on volume levels.
1998         (WebCore::paintMediaPlayButton):
1999         Introduce new image resources for the play button.
2000         (WebCore::getMediaSliderThumb):
2001         Introduce new image resources for the position slider thumb.
2002         (WebCore::paintMediaVolumeSliderThumb):
2003         Introduce new image resources for the volume slider thumb.
2004         Remove timeline container rendering.
2005         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
2006         Add timeline container painting to the "not reached" elements.
2007         (WebCore):
2008         Provide size settings for the position and volume sliders.
2009         (WebCore::RenderMediaControlsChromium::adjustMediaSliderThumbSize):
2010         Calculate correct width and height settings for the new image resources of the position and volume
2011         slider thumbs.
2012         * rendering/RenderThemeChromiumMac.h:
2013         (RenderThemeChromiumMac):
2014         Remove timeline container rendering (i.e. the media controls background).
2015         * rendering/RenderThemeChromiumMac.mm:
2016         Remove timeline container rendering (i.e. the media controls background).
2017         * rendering/RenderThemeChromiumSkia.cpp:
2018         Remove timeline container rendering (i.e. the media controls background).
2019         * rendering/RenderThemeChromiumSkia.h:
2020         (RenderThemeChromiumSkia):
2021         Remove timeline container rendering (i.e. the media controls background).
2022
2023 2012-06-13  Kinuko Yasuda  <kinuko@chromium.org>
2024
2025         Unreviewed, fixing English nits suggested by review for r120165.
2026
2027         * fileapi/Blob.cpp:
2028         (WebCore::Blob::webkitSlice):
2029         * fileapi/Blob.h:
2030         (Blob):
2031
2032 2012-06-13  MORITA Hajime  <morrita@google.com>
2033
2034         REGRESSION(r118098): <content> element does not render distributed children when cloned from another document
2035         https://bugs.webkit.org/show_bug.cgi?id=88148
2036
2037         Reviewed by Dimitri Glazkov.
2038
2039         The shadow DOM availability was decided through FrameLoaderClient.
2040         But there are documents which don't have any associated frames, in
2041         which any shadow DOM related elements cannot be constructed.  That
2042         resulsted the regression.
2043
2044         This change introduces a Page-based client called
2045         ContextFeaturesClient which takes the role from FrameLoaderClient
2046         to decide the feature availability, and ContextFeatures which is a
2047         proxy of ContextFeaturesClient.  ContextEnabledFeatures is is
2048         replaced with ContextFeatures.
2049
2050         Each ContextFeatures object is owned by a Page, and is attached to
2051         each Document in the page even if the page itself has no referenct
2052         to Frames or Pages. With ContextFeatures, each Document can decide
2053         the feature availability even if it cannot reach Page or Frame.
2054
2055         On RefCountedSupplement: Document instance can live longer than a
2056         Page where it is shwon. This means that ContextFeatures instance
2057         needs to survive after owner Page destruction because it's
2058         referenced from possibly surviving Documents. RefCountedSupplement
2059         is introduced to cover this scenario: It allows supplement classes
2060         to live after Page's destruction.
2061
2062         RefCountedSupplement::hostDestroyed() is notified when the hosting
2063         page is gone. ContextFeatures clears its reference to the client
2064         using this notification.
2065
2066         Test: fast/dom/shadow/elements-in-frameless-document.html
2067
2068         * CMakeLists.txt:
2069         * GNUmakefile.list.am:
2070         * Target.pri:
2071         * WebCore.gypi:
2072         * WebCore.vcproj/WebCore.vcproj:
2073         * WebCore.xcodeproj/project.pbxproj:
2074         * bindings/scripts/CodeGeneratorV8.pm:
2075         (GenerateImplementation):
2076         * css/StyleResolver.cpp:
2077         (WebCore::StyleResolver::determineScope):
2078         * dom/ContextFeatures.cpp: Added.
2079         (WebCore):
2080         (WebCore::ContextFeaturesClient::empty):
2081         (WebCore::ContextFeatures::supplementName):
2082         (WebCore::ContextFeatures::defaultSwitch):
2083         (WebCore::ContextFeatures::shadowDOMEnabled):
2084         (WebCore::ContextFeatures::styleScopedEnabled):
2085         (WebCore::ContextFeatures::pagePopupEnabled):
2086         (WebCore::provideContextFeaturesTo):
2087         (WebCore::provideContextFeaturesToDocumentFrom):
2088         * dom/ContextFeatures.h: Added.
2089         (WebCore):
2090         (ContextFeatures):
2091         (WebCore::ContextFeatures::ContextFeatures):
2092         (WebCore::ContextFeatures::hostDestroyed):
2093         (ContextFeaturesClient):
2094         (WebCore::ContextFeaturesClient::~ContextFeaturesClient):
2095         (WebCore::ContextFeaturesClient::isEnabled):
2096         (WebCore::ContextFeatures::create):
2097         (WebCore::ContextFeatures::isEnabled):
2098         * dom/DOMAllInOne.cpp:
2099         * dom/DOMImplementation.cpp:
2100         (WebCore::DOMImplementation::createDocument):
2101         (WebCore::DOMImplementation::createHTMLDocument):
2102         * dom/Document.h:
2103         (WebCore::Document::contextFeatures):
2104         * dom/Document.cpp:
2105         (WebCore::Document::Document):
2106         (WebCore::Document::setContextFeatures):
2107         * dom/Position.cpp:
2108         (WebCore::Position::Position):
2109         (WebCore::Position::findParent):
2110         * dom/TreeScope.cpp:
2111         (WebCore::TreeScope::getSelection):
2112         * dom/make_names.pl:
2113         (printConstructorInterior):
2114         (printFactoryCppFile):
2115         (printWrapperFunctions):
2116         (printWrapperFactoryCppFile):
2117         * editing/markup.cpp:
2118         (WebCore::createFragmentFromMarkupWithContext):
2119         * html/HTMLStyleElement.cpp:
2120         (WebCore::HTMLStyleElement::registerWithScopingNode):
2121         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
2122         * html/shadow/HTMLContentElement.cpp:
2123         (WebCore::contentTagName):
2124         * inspector/DOMPatchSupport.cpp:
2125         (WebCore::DOMPatchSupport::patchDocument):
2126         * loader/FrameLoaderClient.h:
2127         * platform/RefCountedSupplement.h: Copied from Source/WebCore/platform/Supplementable.h.
2128         (WebCore):
2129         (RefCountedSupplement):
2130         (WebCore::RefCountedSupplement::hostDestroyed):
2131         (Wrapper):
2132         (WebCore::RefCountedSupplement::Wrapper::Wrapper):
2133         (WebCore::RefCountedSupplement::Wrapper::~Wrapper):
2134         (WebCore::RefCountedSupplement::Wrapper::wrapped):
2135         (WebCore::RefCountedSupplement::provideTo):
2136         (WebCore::RefCountedSupplement::from):
2137         * platform/Supplementable.h:
2138         (WebCore::Supplement::isRefCountedWrapper):
2139         * xml/XMLHttpRequest.cpp:
2140         (WebCore::XMLHttpRequest::responseXML):
2141
2142 2012-06-11  Kinuko Yasuda  <kinuko@chromium.org>
2143
2144         Unprefix Blob.webkitSlice
2145         https://bugs.webkit.org/show_bug.cgi?id=78111
2146
2147         Reviewed by Adam Barth.
2148
2149         Add unprefixed Blob.slice and start showing a deprecation message when webkitSlice is called.
2150
2151         No new tests: existing tests that call webkitSlice() are converted to slice(). They should keep running.
2152
2153         * bindings/gobject/WebKitDOMCustom.cpp:
2154         (webkit_dom_blob_slice): Removed.
2155         (webkit_dom_blob_webkit_slice): Added.
2156         * fileapi/Blob.cpp:
2157         (WebCore::Blob::slice):
2158         (WebCore):
2159         (WebCore::Blob::webkitSlice):
2160         (WebCore::Blob::sliceInternal): Added.
2161         * fileapi/Blob.h:
2162         (WebCore):
2163         (Blob):
2164         * fileapi/Blob.idl:
2165
2166 2012-06-12  Sheriff Bot  <webkit.review.bot@gmail.com>
2167
2168         Unreviewed, rolling out r120036.
2169         http://trac.webkit.org/changeset/120036
2170         https://bugs.webkit.org/show_bug.cgi?id=88965
2171
2172         "assert failed in debug build" (Requested by maryw on
2173         #webkit).
2174
2175         * platform/network/blackberry/NetworkJob.cpp:
2176         (WebCore::NetworkJob::handleNotifyDataReceived):
2177
2178 2012-06-12  Wei James  <james.wei@intel.com>
2179
2180         webcore should depend on webcore_arm_neon for only arm target_arch
2181         https://bugs.webkit.org/show_bug.cgi?id=88839
2182
2183         Reviewed by Adam Barth.
2184
2185         * WebCore.gyp/WebCore.gyp:
2186
2187 2012-06-12  Edaena Salinas Jasso  <edaena@apple.com>
2188
2189         Can't set el.type on a <button> element
2190         https://bugs.webkit.org/show_bug.cgi?id=14439
2191
2192         Reviewed by Darin Adler.
2193
2194         Test: fast/dom/HTMLButtonElement/change-type.html
2195
2196         * bindings/objc/PublicDOMInterfaces.h:
2197         * html/HTMLButtonElement.cpp:
2198         (WebCore::HTMLButtonElement::setType): Added implementation of setType method.
2199         (WebCore):
2200         * html/HTMLButtonElement.h:
2201         (HTMLButtonElement): Added setType method.
2202         * html/HTMLButtonElement.idl: Removed readonly restriction to the type variable.
2203
2204 2012-06-12  Kenichi Ishibashi  <bashi@chromium.org>
2205
2206         [Chromium] Implement font shaping with font-feature-settings on Mac
2207         https://bugs.webkit.org/show_bug.cgi?id=69826
2208
2209         Reviewed by Tony Chang.
2210
2211         Add HarfBuzz-ng text shaper.
2212         Chromium mac port uses it as secondary text shaper to support OpenType features.
2213         HarfBuzz-ng is only used when -webkit-font-feature-settings is specified and
2214         corresponding font is not an AAT font.
2215
2216         No new tests. css3/font-feature-settings-rendering.html should pass on Chromium mac port.
2217
2218         * WebCore.gyp/WebCore.gyp: Added harfbuzz-ng dependencies.
2219         * WebCore.gypi: Added harfbuzz-ng files.
2220         * platform/graphics/FontPlatformData.h:
2221         (FontPlatformData): Added m_harfbuzzFace.
2222         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
2223         (WebCore::FontPlatformData::platformDataInit): Copy m_harfbuzzFace.
2224         (WebCore::FontPlatformData::platformDataAssign): Ditto.
2225         (WebCore):
2226         (WebCore::isAATFont):
2227         (WebCore::FontPlatformData::harfbuzzFace):
2228         * platform/graphics/harfbuzz/ng/HarfBuzzFace.cpp: Added.
2229         (WebCore):
2230         (WebCore::harfbuzzFaceCache):
2231         (WebCore::HarfBuzzFace::HarfBuzzFace):
2232         (WebCore::HarfBuzzFace::~HarfBuzzFace):
2233         * platform/graphics/harfbuzz/ng/HarfBuzzFace.h: Added.
2234         (WebCore):
2235         (HarfBuzzFace):
2236         (WebCore::HarfBuzzFace::create):
2237         * platform/graphics/harfbuzz/ng/HarfBuzzFaceCoreText.cpp: Added.
2238         (WebCore):
2239         (WebCore::floatToHarfBuzzPosition):
2240         (WebCore::getGlyph):
2241         (WebCore::getGlyphHorizontalAdvance):
2242         (WebCore::getGlyphHorizontalOrigin):
2243         (WebCore::getGlyphExtents):
2244         (WebCore::harfbuzzCoreTextGetFontFuncs):
2245         (WebCore::releaseTableData):
2246         (WebCore::harfbuzzCoreTextGetTable):
2247         (WebCore::HarfBuzzFace::createFace):
2248         (WebCore::HarfBuzzFace::createFont):
2249         (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
2250         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp: Added.
2251         (WebCore):
2252         (WebCore::harfbuzzPositionToFloat):
2253         (WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
2254         (WebCore::HarfBuzzShaper::HarfBuzzRun::setGlyphAndPositions):
2255         (WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition):
2256         (WebCore::HarfBuzzShaper::HarfBuzzRun::xPositionForOffset):
2257         (WebCore::HarfBuzzShaper::HarfBuzzShaper):
2258         (WebCore::HarfBuzzShaper::~HarfBuzzShaper):
2259         (WebCore::HarfBuzzShaper::setFontFeatures):
2260         (WebCore::HarfBuzzShaper::shape):
2261         (WebCore::HarfBuzzShaper::setupHarfBuzzRun):
2262         (WebCore::HarfBuzzShaper::shapeHarfBuzzRun):
2263         (WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun):
2264         (WebCore::HarfBuzzShaper::offsetForPosition):
2265         (WebCore::HarfBuzzShaper::selectionRect):
2266         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h: Added.
2267         (WebCore):
2268         (HarfBuzzShaper):
2269         (WebCore::HarfBuzzShaper::totalWidth):
2270         (HarfBuzzRun):
2271         (WebCore::HarfBuzzShaper::HarfBuzzRun::create):
2272         (WebCore::HarfBuzzShaper::HarfBuzzRun::setWidth):
2273         (WebCore::HarfBuzzShaper::HarfBuzzRun::numCharacters):
2274         (WebCore::HarfBuzzShaper::HarfBuzzRun::numGlyphs):
2275         (WebCore::HarfBuzzShaper::HarfBuzzRun::width):
2276         (WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
2277         * platform/graphics/mac/FontComplexTextMac.cpp:
2278         (WebCore):
2279         (WebCore::preferHarfBuzz): Added.
2280         (WebCore::Font::selectionRectForComplexText): Use HarfBuzzShaper if font-feature-settings exists.
2281         (WebCore::Font::drawComplexText): Ditto.
2282         (WebCore::Font::floatWidthForComplexText): Ditto.
2283         (WebCore::Font::offsetForPositionForComplexText): Ditto.
2284
2285 2012-06-12  Luke Macpherson  <macpherson@chromium.org>
2286
2287         WIP: Implement CSS Variables Standard.
2288         https://bugs.webkit.org/show_bug.cgi?id=85580
2289
2290         Reviewed by Ojan Vafai.
2291
2292         Implement CSS Variables Module Level 1. (See http://www.w3.org/TR/css-variables/)
2293
2294         A HashMap of properties is referenced by RenderStyle, and used to store variables as strings.
2295         That HashMap is copy-on-write, and unless new variables are defined is simply a pointer to the
2296         parent's definitions. At usage time the variable's value is parsed according to the CSS property
2297         where it is used.
2298         Variables can:
2299                Define lists of values (ie. entire shorthand values).
2300                Define individual values.
2301                Refer to other variables. (Cycle detection is implemented).
2302         Please see the supplied test cases for example usage.
2303
2304         Missing features:
2305                CSS variables cannot yet be used inside some functions such as -webkit-calc.
2306
2307         Covered by existing test suite under fast/css/variables.
2308
2309         * GNUmakefile.list.am:
2310         * Target.pri:
2311         * WebCore.gypi:
2312         * WebCore.vcproj/WebCore.vcproj:
2313         * WebCore.xcodeproj/project.pbxproj:
2314         * css/CSSComputedStyleDeclaration.cpp:
2315         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2316         * css/CSSGrammar.y:
2317         * css/CSSParser.cpp:
2318         (WebCore):
2319         (WebCore::filterProperties):
2320         (WebCore::CSSParser::createStylePropertySet):
2321         (WebCore::CSSParser::validUnit):
2322         (WebCore::CSSParser::createPrimitiveNumericValue):
2323         (WebCore::CSSParser::parseValue):
2324         (WebCore::CSSParser::storeVariableDeclaration):
2325         (WebCore::CSSParser::detectDashToken):
2326         (WebCore::CSSParser::lex):
2327         * css/CSSParser.h:
2328         (CSSParser):
2329         * css/CSSParserValues.cpp:
2330         (WebCore::CSSParserValue::createCSSValue):
2331         * css/CSSPrimitiveValue.cpp:
2332         (WebCore::isValidCSSUnitTypeForDoubleConversion):
2333         (WebCore::CSSPrimitiveValue::getStringValue):
2334         (WebCore::CSSPrimitiveValue::customSerializeResolvingVariables):
2335         (WebCore):
2336         * css/CSSPrimitiveValue.h:
2337         (CSSPrimitiveValue):
2338         (WebCore::CSSPrimitiveValue::isVariableName):
2339         * css/CSSProperty.cpp:
2340         (WebCore::CSSProperty::isInheritedProperty):
2341         * css/CSSValue.cpp:
2342         (WebCore::CSSValue::serializeResolvingVariables):
2343         (WebCore):
2344         (WebCore::CSSValue::destroy):
2345         * css/CSSValue.h:
2346         (CSSValue):
2347         (WebCore::CSSValue::isVariableValue):
2348         * css/CSSValueList.cpp:
2349         (WebCore):
2350         (WebCore::CSSValueList::customSerializeResolvingVariables):
2351         * css/CSSValueList.h:
2352         (CSSValueList):
2353         * css/CSSVariableValue.h: Added.
2354         (WebCore):
2355         (CSSVariableValue):
2356         (WebCore::CSSVariableValue::create):
2357         (WebCore::CSSVariableValue::name):
2358         (WebCore::CSSVariableValue::value):
2359         (WebCore::CSSVariableValue::CSSVariableValue):
2360         * css/StyleResolver.cpp:
2361         (WebCore::StyleResolver::collectMatchingRulesForList):
2362         * css/StyleResolver.h:
2363         * css/WebKitCSSTransformValue.cpp:
2364         (WebCore):
2365         (WebCore::WebKitCSSTransformValue::customSerializeResolvingVariables):
2366         * css/WebKitCSSTransformValue.h:
2367         (WebKitCSSTransformValue):
2368         * css/makeprop.pl:
2369         * rendering/style/RenderStyle.h:
2370         * rendering/style/StyleVariableData.h: Added.
2371         (WebCore):
2372         (StyleVariableData):
2373         (WebCore::StyleVariableData::create):
2374         (WebCore::StyleVariableData::copy):
2375         (WebCore::StyleVariableData::operator==):
2376         (WebCore::StyleVariableData::operator!=):
2377         (WebCore::StyleVariableData::setVariable):
2378         (WebCore::StyleVariableData::StyleVariableData):
2379
2380 2012-06-12  MORITA Hajime  <morrita@google.com>
2381
2382         Shadow Pseudo ID should be able to nest to point nested shadow DOM.
2383         https://bugs.webkit.org/show_bug.cgi?id=62218
2384
2385         Reviewed by Dimitri Glazkov.
2386
2387         - updateSpecifiersWithElementName() didn't take nesting into account.
2388           tag history can contain selector entries which isn't marked as ShadowDescendant yet.
2389           such entry can be found by investigating isUnknownPseudoElement().
2390         - SelectorChecker::checkSelector() was too strict. Unknown pseudo elements are essentially a kind of class or id
2391           in implementation perspective. For such, rejecting by missing elementStyle doesn't make sense:
2392           It isn't a pseudo but a real element for WebCore after all.
2393         - Added Internals::setShadowPseudoId() to create a test harness whose DOM tree contains pseudo shadow ids.
2394
2395         Before this change, following selecdtor chain is created for "p::-shadow-child::-nested-shadow-child":
2396
2397           [both tag name and -shadow-id are set] <-(ShadowDescendant)- [-nested-shadow-id]
2398
2399         What we want, which is created by this change is:
2400
2401           [tag] <-(ShadowDescendant)- [-shadow-id is set] <-(ShadowdescenDant)- [-nested-shadow-id]
2402
2403         Test: fast/dom/shadow/shadow-nested-pseudo-id.html
2404
2405         * WebCore.exp.in:
2406         * css/CSSParser.cpp:
2407         (WebCore::CSSParser::updateSpecifiersWithElementName):
2408         * css/SelectorChecker.cpp:
2409         (WebCore::SelectorChecker::checkOneSelector):
2410         * testing/Internals.cpp:
2411         (WebCore::Internals::setShadowPseudoId):
2412         (WebCore):
2413         * testing/Internals.h:
2414         (Internals):
2415         * testing/Internals.idl:
2416
2417 2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
2418
2419         [soup] Prevent setting or editing httpOnly cookies from JavaScript
2420         https://bugs.webkit.org/show_bug.cgi?id=88760
2421
2422         Reviewed by Gustavo Noronha Silva.
2423
2424         Prevent setting or overwriting httpOnly cookies from JavaScript.
2425         Fix setCookies() so that it parses all the cookies and not just
2426         the first one.
2427
2428         Test: http/tests/cookies/js-get-and-set-http-only-cookie.html
2429
2430         * platform/network/soup/CookieJarSoup.cpp:
2431         (WebCore::httpOnlyCookieExists):
2432         (WebCore):
2433         (WebCore::setCookies):
2434
2435 2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
2436
2437         [EFL] Enable SHADOW_DOM flag
2438         https://bugs.webkit.org/show_bug.cgi?id=87732
2439
2440         Reviewed by Kentaro Hara.
2441
2442         Test: fast/dom/shadow/shadow-root-innerHTML.html
2443
2444         * dom/ShadowRoot.idl: Add JSGenerateToJSObject extended attribute so
2445         that the ShadowRoot properties are accessible on JS side.
2446         * testing/Internals.idl: Fix SHADOW_DOM ifdef check.
2447
2448 2012-06-12  Leo Yang  <leo.yang@torchmobile.com.cn>
2449
2450         Dynamic hash table in DOMObjectHashTableMap is wrong in multiple threads
2451         https://bugs.webkit.org/show_bug.cgi?id=87334
2452
2453         Reviewed by Geoffrey Garen.
2454
2455         Adapt to JSC::HashTable::copy to avoid copy dynamic table member of a HashTable.
2456         The dynamic table may be allocated on other thread and contains thread specific
2457         identifiers. For example, a hash table of JSEntryArray was first initialized on a
2458         worker thread, and then the user reloaded the page, another worker thread is
2459         created due to reload, the dynamic allocated table in *staticTable* is specific
2460         to the first worker thread which has died. If the user reload the page again,
2461         the dynamic table will be freed and memory corruption will occur.
2462
2463         No functionalities changed, no new tests.
2464
2465         * bindings/js/DOMObjectHashTableMap.h:
2466         (WebCore::DOMObjectHashTableMap::get):
2467
2468 2012-06-12  James Robinson  <jamesr@chromium.org>
2469
2470         [chromium] Port Canvas2DLayerBridge over to WebExternalTextureLayer
2471         https://bugs.webkit.org/show_bug.cgi?id=88597
2472
2473         Reviewed by Adrienne Walker.
2474
2475         This converts Canvas2DLayerBridge to using public WebLayer API types instead of LayerChromium types.
2476
2477         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
2478         (WebCore::AcceleratedDeviceContext::AcceleratedDeviceContext):
2479         (WebCore::AcceleratedDeviceContext::prepareForDraw):
2480         (AcceleratedDeviceContext):
2481         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
2482         (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
2483         (WebCore::Canvas2DLayerBridge::skCanvas):
2484         (WebCore::Canvas2DLayerBridge::prepareTexture):
2485         (WebCore::Canvas2DLayerBridge::context):
2486         (WebCore::Canvas2DLayerBridge::layer):
2487         (WebCore::Canvas2DLayerBridge::contextAcquired):
2488         * platform/graphics/chromium/Canvas2DLayerBridge.h:
2489         (WebCore):
2490         (Canvas2DLayerBridge):
2491
2492 2012-06-12  Alexis Menard  <alexis.menard@openbossa.org>
2493
2494         Fix packing in StyleBoxData for Windows.
2495         https://bugs.webkit.org/show_bug.cgi?id=88858
2496
2497         Reviewed by Tony Chang.
2498
2499         MSVC doesn't pack bitfields if the types are mixed.
2500         We can safely change the bool type to an unsigned so
2501         the packing will happen. I have added a compile assert
2502         for future regressions.
2503
2504         No new tests : we should not see any regressions.
2505
2506         * rendering/style/StyleBoxData.h:
2507         * rendering/style/StyleBoxData.cpp:
2508         (StyleBoxData):
2509
2510 2012-06-12  Adrienne Walker  <enne@google.com>
2511
2512         [chromium] Paint scrollbars on WebKit thread and composite those textures
2513         https://bugs.webkit.org/show_bug.cgi?id=88145
2514
2515         Reviewed by James Robinson.
2516
2517         Scrollbars were previously painted and uploaded on the compositor
2518         thread. This isn't possible to do for many scrollbar themes. This
2519         patch changes ScrollbarLayerChromium to paint the scrollbar into two
2520         parts: the thumb, and everything else. These are uploaded into
2521         textures and synced over to the CCScrollbarImpl where they are
2522         composited and drawn.
2523
2524         Mac and overlay scrollbars are still not enabled to have compositor
2525         thread-updated scrollbars.
2526
2527         As a bonus, fix LayerRendererChromium::drawTextureQuad to draw quads
2528         that do not fill the entire layer bounds.
2529
2530         Tested by existing layout and unit tests by removing the condition
2531         that these scrollbar layers are only created when the threaded proxy
2532         exists.
2533
2534         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
2535         (WebCore::scrollbarLayerDidChange):
2536         * platform/ScrollbarThemeComposite.cpp:
2537         (WebCore::ScrollbarThemeComposite::thumbRect):
2538         (WebCore):
2539         * platform/ScrollbarThemeComposite.h:
2540         (ScrollbarThemeComposite):
2541         * platform/graphics/chromium/LayerRendererChromium.cpp:
2542         (WebCore::LayerRendererChromium::drawTextureQuad):
2543         * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
2544         (WebCore::ScrollbarLayerChromium::ScrollbarLayerChromium):
2545         (WebCore::ScrollbarLayerChromium::theme):
2546         (WebCore):
2547         (WebCore::ScrollbarLayerChromium::pushPropertiesTo):
2548         (ScrollbarBackgroundPainter):
2549         (WebCore::ScrollbarBackgroundPainter::create):
2550         (WebCore::ScrollbarBackgroundPainter::paint):
2551         (WebCore::ScrollbarBackgroundPainter::ScrollbarBackgroundPainter):
2552         (ScrollbarThumbPainter):
2553         (WebCore::ScrollbarThumbPainter::create):
2554         (WebCore::ScrollbarThumbPainter::paint):
2555         (WebCore::ScrollbarThumbPainter::ScrollbarThumbPainter):
2556         (WebCore::ScrollbarLayerChromium::setLayerTreeHost):
2557         (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
2558         (WebCore::ScrollbarLayerChromium::updatePart):
2559         (WebCore::ScrollbarLayerChromium::update):
2560         * platform/graphics/chromium/ScrollbarLayerChromium.h:
2561         (WebCore):
2562         (ScrollbarLayerChromium):
2563         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
2564         (WebCore::CCScrollbarLayerImpl::CCScrollbarLayerImpl):
2565         (WebCore::CCScrollbarLayerImpl::appendQuads):
2566         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
2567         (WebCore::CCScrollbarLayerImpl::setBackgroundTextureId):
2568         (WebCore::CCScrollbarLayerImpl::setThumbTextureId):
2569         (CCScrollbarLayerImpl):
2570
2571 2012-06-12  Tony Chang  <tony@chromium.org>
2572
2573         Replaced items in a flexbox should be coerced to display:block
2574         https://bugs.webkit.org/show_bug.cgi?id=87068
2575
2576         Reviewed by Ojan Vafai.
2577
2578         The flexbox spec lists HTML tags that should automatically be converted
2579         to display:block when a flex child. It also says that atomic inline-level
2580         children should become block (e.g., inline-table should be treated as table).
2581         http://dev.w3.org/csswg/css3-flexbox/#flex-items
2582
2583         Test: css3/flexbox/flexitem.html
2584
2585         * css/StyleResolver.cpp:
2586         (WebCore::StyleResolver::collectMatchingRulesForList):
2587
2588 2012-06-12  Joshua Bell  <jsbell@chromium.org>
2589
2590         IndexedDB: ObjectStore/Index shouldn't hold reference to backing store
2591         https://bugs.webkit.org/show_bug.cgi?id=83074
2592
2593         Reviewed by Tony Chang.
2594
2595         We should be able to collect and close the leveldb backing store as soon as the database
2596         connection is closed, but the IDBObjectStoreBackendImpl and IDBIndexBackendImpl were
2597         holding RefPtrs, and those objects are kept alive by script references.
2598
2599         Replaced RefPtrs to the IDBBackingStore with pointers to the IDBDatabase. On the back end,
2600         IDBDatabaseBackendImpl maintains a RefPtr to the IDBObjectStoreBackendImpl object, so
2601         a raw pointer back is safe. On the front end, the IDBObjectStore maintains a RefPtr to
2602         the IDBDatabase so script can navigate upwards. Ditto on both ends for the ObjectStore/Index
2603         relationship. The frontend objects maintain RefPtrs to the backend objects, so the backend
2604         objects and their owners are maintained as long as there's a script reference. To ensure
2605         that all LevelDB objects are destructed in the right order, transactions indirectly track all
2606         open cursors and ensure they are closed when the transaction finishes, and database closing
2607         is explicitly prevented from occurring until transactions are complete.
2608
2609         Also made IDBDatabaseBackendImpl handle a null IDBFactoryBackendImpl pointer, for testing.
2610
2611         Tests: storage/indexeddb/database-close.html
2612                storage/indexeddb/persistence.html
2613                [Chromium] webkit_unit_tests --gtest_filter=IDBDatabaseBackendTest.BackingStoreRetention
2614
2615         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
2616         (WebCore::IDBCursorBackendImpl::close): Release LevelDB resources when closed to allow backing store to close.
2617         * Modules/indexeddb/IDBCursorBackendImpl.h:
2618         (WebCore):
2619         * Modules/indexeddb/IDBDatabase.cpp: Ensure connection close deferred until all transactions are finished.
2620         (WebCore::IDBDatabase::transactionCreated): Accounting.
2621         (WebCore::IDBDatabase::transactionFinished): Accounting.
2622         (WebCore::IDBDatabase::close):
2623         (WebCore):
2624         (WebCore::IDBDatabase::closeConnection):
2625         * Modules/indexeddb/IDBDatabase.h:
2626         (IDBDatabase):
2627         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Track outstanding transactions for forced-close scenarios.
2628         (WebCore::IDBDatabaseBackendImpl::~IDBDatabaseBackendImpl):
2629         (WebCore::IDBDatabaseBackendImpl::createObjectStore): Don't pass in backing store reference.
2630         (WebCore::IDBDatabaseBackendImpl::setVersion): Use transaction() for consistent accounting.
2631         (WebCore::IDBDatabaseBackendImpl::transactionFinished): Accounting.
2632         (WebCore::IDBDatabaseBackendImpl::transaction): Accounting.
2633         (WebCore::IDBDatabaseBackendImpl::close): Unregister from factory when last connection is closed.
2634         (WebCore::IDBDatabaseBackendImpl::loadObjectStores): Don't pass in backing store reference.
2635         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
2636         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
2637         (WebCore):
2638         (IDBDatabaseBackendImpl):
2639         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
2640         (WebCore::IDBFactoryBackendImpl::deleteDatabase): Don't hang on to deleted databases eternally.
2641         * Modules/indexeddb/IDBFactoryBackendImpl.h: Backend map controls IDBDatabaseBackend lifetimes.
2642         (IDBFactoryBackendImpl):
2643         * Modules/indexeddb/IDBIndexBackendImpl.cpp: Don't hold backing store references.
2644         (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
2645         * Modules/indexeddb/IDBIndexBackendImpl.h:
2646         (WebCore::IDBIndexBackendImpl::create):
2647         (IDBIndexBackendImpl):
2648         (WebCore::IDBIndexBackendImpl::backingStore):
2649         (WebCore::IDBIndexBackendImpl::databaseId):
2650         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: Don't hold backing store references.
2651         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
2652         (WebCore::IDBObjectStoreBackendImpl::createIndex):
2653         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
2654         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
2655         (WebCore::IDBObjectStoreBackendImpl::create):
2656         (IDBObjectStoreBackendImpl):
2657         (WebCore::IDBObjectStoreBackendImpl::backingStore):
2658         (WebCore::IDBObjectStoreBackendImpl::databaseId):
2659         * Modules/indexeddb/IDBRequest.cpp:
2660         (WebCore::IDBRequest::onSuccess):
2661         * Modules/indexeddb/IDBTransaction.cpp:
2662         (WebCore::IDBTransaction::IDBTransaction): For IDBDatabase accounting, allow ref during ctor.
2663         (WebCore::IDBTransaction::onAbort): Accounting.
2664         (WebCore::IDBTransaction::onComplete): Accounting.
2665         * Modules/indexeddb/IDBTransaction.h:
2666         (WebCore::IDBTransaction::isVersionChange): Convenience function.
2667         (IDBTransaction):
2668         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
2669         (WebCore::IDBTransactionBackendImpl::abort): Cleanup ordering to allow backing store to close.
2670         (WebCore::IDBTransactionBackendImpl::commit): Cleanup ordering to allow backing store to close.
2671
2672 2012-06-12  Adrienne Walker  <enne@google.com>
2673
2674         [chromium] Don't set visible layer rect in CCLayerTreeHost paint iteration
2675         https://bugs.webkit.org/show_bug.cgi?id=88895
2676
2677         Reviewed by James Robinson.
2678
2679         We should only set visible layer rects during the recursion in
2680         CClayerTreeHostCommon and not while we're painting. This is one last
2681         straggling piece of code that never got moved.
2682
2683         Tested by existing mask-related layout tests.
2684
2685         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2686         (WebCore::CCLayerTreeHost::paintMasksForRenderSurface):
2687         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
2688         (WebCore::calculateVisibleAndScissorRectsInternal):
2689
2690 2012-06-12  Dana Jansens  <danakj@chromium.org>
2691
2692         [chromium] Return empty visibleLayerRect for layers with empty content bounds
2693         https://bugs.webkit.org/show_bug.cgi?id=88901
2694
2695         Reviewed by Adrienne Walker.
2696
2697         This change should only affect tests. Currently if you set up a
2698         CCLayerImpl with some bounds, but don't set the contentBounds, then
2699         they are empty by default. In this case the visibleLayerRect gets
2700         set inappropriately to the layer's target surface contentRect which
2701         in a completely different coordinate space.
2702
2703         Fixed up tests that were passing bogusly and failed after this change.
2704
2705         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
2706         (WebCore::calculateVisibleLayerRect):
2707
2708 2012-06-12  Adrienne Walker  <enne@google.com>
2709
2710         [chromium] ScrollingCoordinator::setScrollLayer should update scroll layer ids
2711         https://bugs.webkit.org/show_bug.cgi?id=88882
2712
2713         Reviewed by James Robinson.
2714
2715         Tested manually, as scrollbar layers are currently only created when
2716         threaded compositing is enabled and none of those layout tests trigger
2717         this bug.
2718
2719         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
2720         (WebCore::ScrollingCoordinatorPrivate::setScrollLayer):
2721         (ScrollingCoordinatorPrivate):
2722         (WebCore::ScrollingCoordinatorPrivate::setHorizontalScrollbarLayer):
2723         (WebCore::ScrollingCoordinatorPrivate::setVerticalScrollbarLayer):
2724         (WebCore::createScrollbarLayer):
2725         (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
2726         (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
2727         * platform/graphics/chromium/ScrollbarLayerChromium.h:
2728         (WebCore::ScrollbarLayerChromium::setScrollLayerId):
2729         (ScrollbarLayerChromium):
2730         * platform/graphics/chromium/TreeSynchronizer.cpp:
2731         (WebCore::TreeSynchronizer::updateScrollbarLayerPointersRecursive):
2732
2733 2012-06-12  Mark Mentovai  <mark@chromium.org>
2734
2735         [chromium mac] Don't include things in subframeworks of
2736         ApplicationServices.framework.
2737
2738         Subframeworks move around from SDK to SDK and OS release to OS
2739         release, but just using the top-level umbrella framework guarantees
2740         forward compatibility. When building for Chromium Mac, just #include
2741         <ApplicationServices/ApplicationServices.h> instead of reaching in to
2742         subframeworks.
2743
2744         https://bugs.webkit.org/show_bug.cgi?id=88569
2745
2746         Reviewed by Stephen White.
2747
2748         No new tests.
2749
2750         * platform/graphics/GlyphBuffer.h:
2751         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
2752         * platform/graphics/skia/GraphicsContextSkia.cpp:
2753
2754 2012-06-12  Igor Oliveira  <igor.o@sisa.samsung.com>
2755
2756         Apply animations and transitions for first-letter element
2757         https://bugs.webkit.org/show_bug.cgi?id=85253
2758
2759         Add animations and transitions support for the first-letter
2760         pseudo element.
2761         Instead of calling RenderOject::node() in the animations code,
2762         now we need to call RenderObject::styledGeneratingNode() because
2763         pseudo elements does not have a Node associated with the
2764         RenderObject.
2765
2766         Initial patch by Simon Fraser
2767
2768         Reviewed by Simon Fraser.
2769
2770         Tests: animations/first-letter-animation.html
2771                animations/first-letter-play-state.html
2772                transitions/first-letter-color-transition.html
2773                transitions/first-letter-transition.html
2774
2775         * page/animation/AnimationBase.cpp:
2776         (WebCore::AnimationBase::updateStateMachine):
2777         * page/animation/AnimationController.cpp:
2778         (WebCore::AnimationControllerPrivate::updateAnimations):
2779         (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
2780         (WebCore::AnimationControllerPrivate::pauseTransitionAtTime):
2781         (WebCore::AnimationController::cancelAnimations):
2782         (WebCore::AnimationController::updateAnimations):
2783         * page/animation/ImplicitAnimation.cpp:
2784         (WebCore::ImplicitAnimation::pauseAnimation):
2785         (WebCore::ImplicitAnimation::sendTransitionEvent):
2786         * page/animation/KeyframeAnimation.cpp:
2787         (WebCore::KeyframeAnimation::KeyframeAnimation):
2788         (WebCore::KeyframeAnimation::pauseAnimation):
2789         (WebCore::KeyframeAnimation::endAnimation):
2790         (WebCore::KeyframeAnimation::sendAnimationEvent):
2791         * rendering/RenderBlock.cpp:
2792         (WebCore::RenderBlock::updateFirstLetterStyle):
2793         (WebCore::RenderBlock::createFirstLetterRenderer):
2794         * rendering/RenderInline.cpp:
2795         (WebCore::RenderInline::clippedOverflowRectForRepaint):
2796         * rendering/RenderObject.cpp:
2797         (WebCore::RenderObject::setAnimatableStyle):
2798         (WebCore::RenderObject::styledGeneratingNode):
2799         (WebCore):
2800         * rendering/RenderObject.h:
2801         (RenderObject):
2802
2803 2012-06-12  Kent Tamura  <tkent@chromium.org>
2804
2805         Checking a radio button doesn't uncheck other buttons in the same group in some cases.
2806         https://bugs.webkit.org/show_bug.cgi?id=88835
2807
2808         Reviewed by Ryosuke Niwa.
2809
2810         This change fixes a bug that checking a radio button in a radio button
2811         group in a form detached from a document tree doesn't uncheck another
2812         checked radio button in the radio button group.
2813
2814         A radio button participates in a radio button group in the following
2815         conditions:
2816         - If it is owned by a form element regardless of the form is in a
2817         document tree or not, or
2818
2819         - If it is not owned by any form elements and it is in a document tree.
2820         A radio button group for the radio button is owned by the document.
2821
2822         For HTMLInputElement::removedFrom():
2823         The old code always unregistered the radio button if it was removed from
2824         the document tree. It was incorrect because we don't need to unregister
2825         it if it has an owner form and the owner form is not changed by
2826         removedFrom().
2827         If the owner form is cleared by removedFrom(), willChangeForm()
2828         unregisters the radio button. So what we should do in removedFrom() is
2829         to unregister the radio button only if the radio button group is owned
2830         by the document.
2831
2832         For HTMLInputElement::insertedInto():
2833         The old code always registered the radio button if it is inserted into
2834         the document tree. It was incorrect because we don't need to register it
2835         if it has an owner form and the owner form is not changed by
2836         insertedInto().
2837         If the owner form is changed by insertedInto(), didChangeForm()
2838         registers the radio button. So We should register the radio button only
2839         if its radio button group will be owned by the document.
2840
2841         Test: Add test cases to fast/forms/radio/radio-group.html
2842
2843         * html/HTMLInputElement.cpp:
2844         (WebCore::HTMLInputElement::insertedInto):
2845         Register this to CheckedRadioButtons only if new group owner is Document.
2846         (WebCore::HTMLInputElement::removedFrom):
2847         Unregister this from CheckedRadioButtons only if old group owner was Document.
2848
2849 2012-06-12  James Robinson  <jamesr@chromium.org>
2850
2851         [chromium] REGRESSION(119769): Canvas2DLayerBridge may go away before its TextureLayerChromium
2852         https://bugs.webkit.org/show_bug.cgi?id=88910
2853
2854         Reviewed by Adrienne Walker.
2855
2856         Unregister the bridge as its TextureLayerChromium client when going away.
2857
2858         Covered by new unit test in Canvas2DLayerBridgeTest.cpp.
2859
2860         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
2861         (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
2862
2863 2012-06-12  Alec Flett  <alecflett@chromium.org>
2864
2865         IndexedDB: Error codes, phase two
2866         https://bugs.webkit.org/show_bug.cgi?id=88690
2867
2868         Reviewed by Tony Chang.
2869
2870         Update the next phase of IndexedDB error codes to match the spec.
2871         This update is mostly focused on DATA_ERR vs CONSTRAINT_ERR.
2872
2873         Also moves some of the error checking for the transaction mode
2874         into the frontend and replaces the backend checks with asserts, so that
2875         we can consolidate error checking in one place.
2876
2877         This also removes a few FIXME's that are no longer true (about 
2878         I/O errors - the spec was updated and our implementation was
2879         already correct)
2880
2881         No new tests, existing tests cover changed behavior.
2882
2883         * Modules/indexeddb/IDBCursor.cpp:
2884         (WebCore::IDBCursor::deleteFunction):
2885         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
2886         (WebCore::IDBCursorBackendImpl::deleteFunction):
2887         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
2888         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
2889         * Modules/indexeddb/IDBObjectStore.cpp:
2890         (WebCore::IDBObjectStore::add):
2891         (WebCore::IDBObjectStore::put):
2892         (WebCore::IDBObjectStore::deleteFunction):
2893         (WebCore::IDBObjectStore::clear):
2894         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
2895         (WebCore::IDBObjectStoreBackendImpl::put):
2896         (WebCore::IDBObjectStoreBackendImpl::putInternal):
2897         (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
2898         (WebCore::IDBObjectStoreBackendImpl::clear):
2899         * Modules/indexeddb/IDBTransaction.h:
2900         (WebCore::IDBTransaction::enumMode):
2901         * Modules/indexeddb/IDBTransactionBackendImpl.h:
2902
2903 2012-06-12  Min Qin  <qinmin@google.com>
2904
2905         Disable autoplay when user gesture is required for media playback
2906         https://bugs.webkit.org/show_bug.cgi?id=88897
2907
2908         Reviewed by Adam Barth.
2909
2910         When user gesture is required for media playback, we should block autoplay.
2911         Otherwise, people will use autoplay instead of video.play() to bypass the gesture requirement.
2912         Test: media/no-autoplay-with-user-gesture-requirement.html
2913
2914         * html/HTMLMediaElement.cpp:
2915         (WebCore::HTMLMediaElement::setReadyState):
2916
2917 2012-06-12  Shrey Banga  <banga@chromium.org>
2918
2919         HTML parser should yield more to improve perceived page load time
2920         https://bugs.webkit.org/show_bug.cgi?id=86165
2921
2922         Reviewed by Tony Gentilcore.
2923
2924         Test: fast/events/event-yield-timing.html
2925
2926         We want the parser to yield at least every 500ms to keep the page somewhat responsive and allow painting.
2927         Since it would be too expensive to check the time after each token, the previous heuristic was to check every 4,096 tokens.
2928         That works fine for most tokens, but a script may spend an arbitrary amount of time executing.
2929
2930         This patch fixes the issue by causing the parser to check the elapsed time immediately after executing a script.
2931
2932         * html/parser/HTMLParserScheduler.cpp:
2933         (WebCore::HTMLParserScheduler::checkForYieldBeforeScript):
2934         * html/parser/HTMLParserScheduler.h:
2935         (WebCore::PumpSession::PumpSession):
2936         (PumpSession):
2937         (WebCore::HTMLParserScheduler::checkForYieldBeforeToken):
2938
2939 2012-06-12  Sami Kyostila  <skyostil@chromium.org>
2940
2941         [chromium] Don't crash in CCLayerIterator if the root layer doesn't have a render surface
2942         https://bugs.webkit.org/show_bug.cgi?id=88886
2943
2944         Reviewed by James Robinson.
2945
2946         If we are iterating over a render render surface layer list where the
2947         root layer does not have a render surface, fail gracefully instead of
2948         crashing.
2949
2950         Tests: CCLayerIteratorTest.{emptyTree,rootLayerWithoutRenderSurface}
2951
2952         * platform/graphics/chromium/cc/CCLayerIterator.h:
2953         (WebCore::CCLayerIterator::CCLayerIterator):
2954
2955 2012-06-06  Ojan Vafai  <ojan@chromium.org>
2956
2957         Change default for flex-grow back to 0
2958         https://bugs.webkit.org/show_bug.cgi?id=88443
2959
2960         Reviewed by Tony Chang.
2961
2962         * rendering/style/RenderStyle.h:
2963
2964 2012-06-12  Brady Eidson  <beidson@apple.com>
2965
2966         <rdar://problem/11593686> and https://bugs.webkit.org/show_bug.cgi?id=88683
2967         Garbage collection of an <img> element can cause reentrant event dispatch.
2968
2969         Reviewed by Darin Adler.
2970
2971         The most straightforward solution is for ImageLoader to keep its Element alive
2972         with ref/deref any time the Image is actually loading.
2973
2974         ImageLoader should always do this for all Elements, and if those Elements want/need
2975         different behavior for when they are detached then they need to manually stop their
2976         loads.
2977
2978         Tests: http/tests/loading/embed-image-load-outlives-gc-without-crashing.html
2979                http/tests/loading/image-input-type-outlives-gc-without-crashing.html
2980                http/tests/loading/image-load-outlives-gc-without-crashing.html
2981                http/tests/loading/object-image-load-outlives-gc-without-crashing.html
2982                http/tests/loading/svg-image-load-outlives-gc-without-crashing.html
2983                http/tests/loading/video-poster-image-load-outlives-gc-without-crashing.html
2984
2985         * loader/ImageLoader.cpp:
2986         (WebCore::ImageLoader::ImageLoader):
2987         (WebCore::ImageLoader::~ImageLoader):
2988         (WebCore::ImageLoader::setImage):
2989         (WebCore::ImageLoader::updateFromElement):
2990         (WebCore::ImageLoader::notifyFinished):
2991         (WebCore::ImageLoader::updatedHasPendingLoadEvent):
2992         (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
2993         (WebCore::ImageLoader::dispatchPendingLoadEvent):
2994         * loader/ImageLoader.h:
2995         (ImageLoader):
2996
2997 2012-06-12  Shawn Singh  <shawnsingh@chromium.org>
2998
2999         [chromium] Make damage tracking more robust to early exits
3000         https://bugs.webkit.org/show_bug.cgi?id=84803
3001
3002         Reviewed by James Robinson.
3003
3004         All CCDamageTrackerTest unit tests updated;
3005         One new unit test added:
3006            CCDamageTrackerTest.verifyDamageAccumulatesUntilReset
3007
3008         Damage tracking inherently needs to be aware of all changes that
3009         occur for every frame. Before this patch, anyone modifying details
3010         of CCLayerTreeHostImpl and the drawing phases of the compositor
3011         needed to be careful to avoid early exiting once draw is
3012         initiated, otherwise running the risk of damage tracking's state
3013         getting out-of-sync from actual changes. This patch makes the
3014         damage tracker API more asynchronous-like, so that damage will
3015         continue to accumulate until it is explicitly notified that
3016         damaged areas have been drawn. This will allow more freedom in
3017         designing and restructuing drawing code in the compositor, without
3018         worrying as much about damage tracking getting out-of-sync.
3019
3020         * platform/graphics/chromium/cc/CCDamageTracker.h:
3021         (WebCore::CCDamageTracker::didDrawDamagedArea):
3022         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3023         (WebCore::CCLayerTreeHostImpl::drawLayers):
3024         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3025         (CCLayerTreeHostImpl):
3026
3027 2012-06-12  Mike West  <mkwst@chromium.org>
3028
3029         Make document.documentURI readonly from JavaScript
3030         https://bugs.webkit.org/show_bug.cgi?id=65187
3031
3032         Reviewed by Alexey Proskuryakov.
3033
3034         The DOM4 working draft marks the documentURI attribute as read only
3035         (http://www.w3.org/TR/dom/#document). Firefox has shipped with this
3036         behavior since https://hg.mozilla.org/mozilla-central/rev/3bc751906409
3037         landed in October 2011, IE9 doesn't support the property, and
3038         Opera throws a NO_MODIFICATION_ALLOWED_ERR. This patch changes WebKit
3039         to silently fail (matching Firefox's behavior) by setting the property
3040         to readonly in the IDL.
3041
3042         Document::setDocumentURI and the m_documentURI property are retained
3043         for compatibility with ObjC clients, and the readonly attribute is
3044         ifdeffed out for ObjC.
3045
3046         This patch adds a single test to verify the behavior, and removes a
3047         variety of tests that depended on the writable behavior. In particular,
3048         potential security issues involving the document.baseURL property are
3049         avoided completely as long as this property can't be changed.
3050
3051         Test: fast/dom/documenturi-readonly.html
3052
3053         * dom/Document.cpp:
3054         (WebCore::Document::setDocumentURI):
3055             Adds a comment explaining that the fallback is necessary only to
3056             support ObjC, not for JS calls.
3057         * dom/Document.cpp:
3058         (WebCore::Document::updateBaseURL):
3059             Ditto.
3060         (Document):
3061         * dom/Document.idl:
3062             Add readonly to the attribute and drop null value when not in
3063             LANGUAGE_OBJECTIVE_C.
3064
3065 2012-06-12  Silvia Pfeiffer  <silviapf@chromium.org>
3066
3067         Support !ENABLE(VIDEO) builds with horizontally layed out video controls.
3068         https://bugs.webkit.org/show_bug.cgi?id=88881
3069
3070         Reviewed by Csaba Osztrogonác.
3071
3072         No new tests as this is a regression from WK87835.
3073
3074         * html/shadow/SliderThumbElement.cpp:
3075         (WebCore::hasVerticalAppearance):
3076         Ifdef out video related functionality, since usesVerticalVolumeSlider
3077         does not exist in that case.
3078
3079 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
3080
3081         Web Inspector: show revisions of all modified files in local modifications view
3082         https://bugs.webkit.org/show_bug.cgi?id=88864
3083
3084         Reviewed by Vsevolod Vlasov.
3085
3086         This change allows all local modifications to be seen in a single view. View is now
3087         singleton, listening to all revisions being added. Revert captions were reworked
3088         (see the screenshot).
3089
3090         * English.lproj/localizedStrings.js:
3091         * inspector/front-end/Resource.js:
3092         * inspector/front-end/RevisionHistoryView.js:
3093         (WebInspector.RevisionHistoryView.populateRevisions):
3094         (WebInspector.RevisionHistoryView):
3095         (WebInspector.RevisionHistoryView.showHistory):
3096         (WebInspector.RevisionHistoryView.reset):
3097         (WebInspector.RevisionHistoryView.prototype._createResourceItem.clearHistory):
3098         (WebInspector.RevisionHistoryView.prototype._createResourceItem):
3099         (WebInspector.RevisionHistoryView.prototype._revisionAdded.get if):
3100         (WebInspector.RevisionHistoryView.prototype._revisionAdded):
3101         (WebInspector.RevisionHistoryView.prototype._revealResource.get if):
3102         (WebInspector.RevisionHistoryView.prototype._revealResource):
3103         (WebInspector.RevisionHistoryView.prototype._reset):
3104         (WebInspector.RevisionHistoryTreeElement):
3105         (WebInspector.RevisionHistoryTreeElement.prototype.onattach):
3106         (WebInspector.RevisionHistoryTreeElement.prototype.oncollapse):
3107         * inspector/front-end/ScriptsPanel.js:
3108         (WebInspector.ScriptsPanel.prototype._reset):
3109         (WebInspector.ScriptsPanel.prototype._editorSelected):
3110         * inspector/front-end/revisionHistory.css:
3111         (.revision-history-link-row):
3112         (.revision-history-drawer li.revision-history-revision):
3113
3114 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
3115
3116         Web Inspector: allow clearing revision history.
3117         https://bugs.webkit.org/show_bug.cgi?id=88847
3118
3119         Reviewed by Vsevolod Vlasov.
3120
3121         This change also renames "Revision history" to "Local modifications".
3122         I intend to list modifications to all files in that view in the subsequent change.
3123
3124         * English.lproj/localizedStrings.js:
3125         * inspector/front-end/Resource.js:
3126         (WebInspector.Resource._clearResourceHistory):
3127         * inspector/front-end/RevisionHistoryView.js:
3128         (WebInspector.RevisionHistoryView.else.clearHistory):
3129         (WebInspector.RevisionHistoryView):
3130         (WebInspector.RevisionHistoryView.prototype._revisionAdded):
3131         (WebInspector.RevisionHistoryTreeElement):
3132         (WebInspector.RevisionHistoryTreeElement.prototype._createLine):
3133         (WebInspector.RevisionHistoryTreeElement.prototype.allowRevert):
3134         * inspector/front-end/ScriptsPanel.js:
3135         (WebInspector.ScriptsPanel.prototype.appendApplicableItems):
3136
3137 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
3138
3139         Web Inspector: use jsdifflib for revision diff calculation.
3140         https://bugs.webkit.org/show_bug.cgi?id=88791
3141
3142         Reviewed by Vsevolod Vlasov.
3143
3144         Present diff calculation is incomplete, it does not properly handle the following case:
3145             [a, b, c, d, e, f, g, h] => [c, d, e, f, g, h, a, b]
3146         We should not be implementing diff by ourselves. I imported jsdifflib from
3147         https://github.com/cemerick/jsdifflib. It has BSD license that is compatible with WebKit.
3148
3149         * WebCore.gypi:
3150         * WebCore.vcproj/WebCore.vcproj:
3151         * inspector/front-end/RevisionHistoryView.js:
3152         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand.step2):
3153         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand):
3154         (WebInspector.RevisionHistoryTreeElement.prototype._createLine.appendLineNumber):
3155         (WebInspector.RevisionHistoryTreeElement.prototype._createLine):
3156         * inspector/front-end/WebKit.qrc:
3157         * inspector/front-end/externs.js:
3158         (difflib.stringAsLines):
3159         (difflib.SequenceMatcher):
3160         (difflib.SequenceMatcher.prototype.get_opcodes):
3161         * inspector/front-end/inspector.html:
3162         * inspector/front-end/jsdifflib.js: Added.
3163         (difflib.defaultJunkFunction):
3164         (difflib.stripLinebreaks):
3165         (difflib.stringAsLines):
3166         (difflib.__reduce):
3167         (difflib.__ntuplecomp):
3168         (difflib.__calculate_ratio):
3169         (difflib.__dictget):
3170         (difflib.SequenceMatcher.this.set_seqs):
3171         (difflib.SequenceMatcher.this.set_seq1):
3172         (difflib.SequenceMatcher.this.set_seq2):
3173         (difflib.SequenceMatcher.this.__chain_b):
3174         (difflib.SequenceMatcher.this.find_longest_match):
3175         (difflib.SequenceMatcher.this.get_matching_blocks):
3176         (difflib.SequenceMatcher.this.get_opcodes):
3177         (difflib.SequenceMatcher.this.get_grouped_opcodes):
3178         (difflib.SequenceMatcher.this.quick_ratio):
3179         (difflib.SequenceMatcher.this.real_quick_ratio):
3180         * inspector/front-end/revisionHistory.css:
3181         (.revision-history-line-separator .webkit-line-number):
3182
3183 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
3184
3185         Web Inspector: use jsdifflib for revision diff calculation.
3186         https://bugs.webkit.org/show_bug.cgi?id=88791
3187
3188         Reviewed by Vsevolod Vlasov.
3189
3190         Present diff calculation is incomplete, it does not properly handle the following case:
3191             [a, b, c, d, e, f, g, h] => [c, d, e, f, g, h, a, b]
3192         We should not be implementing diff by ourselves. I imported jsdifflib from
3193         https://github.com/cemerick/jsdifflib. It has BSD license that is compatible with WebKit.
3194
3195         * WebCore.gypi:
3196         * WebCore.vcproj/WebCore.vcproj:
3197         * inspector/front-end/RevisionHistoryView.js:
3198         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand.step2):
3199         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand):
3200         (WebInspector.RevisionHistoryTreeElement.prototype._createLine.appendLineNumber):
3201         (WebInspector.RevisionHistoryTreeElement.prototype._createLine):
3202         * inspector/front-end/WebKit.qrc:
3203         * inspector/front-end/externs.js:
3204         (difflib.stringAsLines):
3205         (difflib.SequenceMatcher):
3206         (difflib.SequenceMatcher.prototype.get_opcodes):
3207         * inspector/front-end/inspector.html:
3208         * inspector/front-end/jsdifflib.js: Added.
3209         (difflib.defaultJunkFunction):
3210         (difflib.stripLinebreaks):
3211         (difflib.stringAsLines):
3212         (difflib.__reduce):
3213         (difflib.__ntuplecomp):
3214         (difflib.__calculate_ratio):
3215         (difflib.__dictget):
3216         (difflib.SequenceMatcher.this.set_seqs):
3217         (difflib.SequenceMatcher.this.set_seq1):
3218         (difflib.SequenceMatcher.this.set_seq2):
3219         (difflib.SequenceMatcher.this.__chain_b):
3220         (difflib.SequenceMatcher.this.find_longest_match):
3221         (difflib.SequenceMatcher.this.get_matching_blocks):
3222         (difflib.SequenceMatcher.this.get_opcodes):
3223         (difflib.SequenceMatcher.this.get_grouped_opcodes):
3224         (difflib.SequenceMatcher.this.quick_ratio):
3225         (difflib.SequenceMatcher.this.real_quick_ratio):
3226         * inspector/front-end/revisionHistory.css:
3227         (.revision-history-line-separator .webkit-line-number):
3228
3229 2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
3230
3231         [GStreamer] http/tests/media/video-buffered-range-contains-currentTime.html is failing
3232         https://bugs.webkit.org/show_bug.cgi?id=87575
3233
3234         Reviewed by Philippe Normand.
3235
3236         When EOS is reached in forward playback, the position does not necessarily
3237         match the duration. This confuses HTMLMediaElement and causes the "ended"
3238         event not to be fired. To avoid this, we synchronize position and duration
3239         values in this case.
3240
3241         Test: http/tests/media/video-buffered-range-contains-currentTime.html
3242
3243         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3244
3245 2012-06-12  Kinuko Yasuda  <kinuko@chromium.org>
3246
3247         Refactor InputType::receiveDroppedFiles to take DragData
3248         https://bugs.webkit.org/show_bug.cgi?id=88860
3249
3250         Reviewed by Kent Tamura.
3251
3252         So that we can centralize the file paths related code into FileInputType
3253         and makes it easier to extract more data from DragData for
3254         <input type=file> (like bug 88293 for directory drag-and-drop).
3255
3256         No new tests as this has no behavioral changes.
3257
3258         * html/FileInputType.cpp:
3259         (WebCore::FileInputType::receiveDroppedFiles):
3260         * html/FileInputType.h:
3261         * html/HTMLInputElement.cpp:
3262         (WebCore::HTMLInputElement::receiveDroppedFiles):
3263         * html/HTMLInputElement.h:
3264         * html/InputType.cpp:
3265         (WebCore::InputType::receiveDroppedFiles):
3266         * html/InputType.h:
3267         * page/DragController.cpp:
3268         (WebCore::DragController::concludeEditDrag):
3269
3270 2012-06-12  Thiago Marcos P. Santos  <thiago.santos@intel.com>
3271
3272         Generate -webkit-box-decoration-break property only when the feature is enabled
3273         https://bugs.webkit.org/show_bug.cgi?id=88861
3274
3275         Reviewed by Alexis Menard.
3276
3277         Otherwise it will hit an assertion if the property is present on the
3278         style but the feature disabled. Also fixes a compilation warning when
3279         the feature is disabled.
3280
3281         * css/CSSPropertyNames.in:
3282         * css/StyleResolver.cpp:
3283         (WebCore::StyleResolver::collectMatchingRulesForList):
3284
3285 2012-06-12  Darin Adler  <darin@apple.com>
3286
3287         Tweaked the Mac export file a bit more, adding more-correct iOS cases.
3288
3289         Reviewed by David Kilzer.
3290
3291         * WebCore.exp.in: Rearrangement.
3292
3293 2012-06-11  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3294
3295         Using extrernal ICU library on case unsensitive drives will not work
3296         https://bugs.webkit.org/show_bug.cgi?id=70913
3297
3298         Reviewed by Csaba Osztrogonác.
3299
3300         * platform/graphics/surfaces/GraphicsSurface.h:
3301
3302 2012-06-11  Dana Jansens  <danakj@chromium.org>
3303
3304         [chromium] Use TextureDrawQuad for video layer output when it produces a single GL texture
3305         https://bugs.webkit.org/show_bug.cgi?id=88814
3306
3307         Reviewed by Adrienne Walker.
3308
3309         When a CCVideLayerImpl produces quads for a frame that is contained
3310         in a single GL texture, then use the TextureDrawQuad instead of the
3311         VideoDrawQuad. Moves the computation for the RGBA(software) and
3312         NativeTexture (hardware) cases from LayerRendererChromium into
3313         CCVideoLayerImpl, so it can embed these values in the TextureDrawQuad.
3314
3315         No new tests, behaviour should be the same.
3316
3317         * platform/graphics/chromium/LayerRendererChromium.cpp:
3318         (WebCore::LayerRendererChromium::drawStreamTexture):
3319         (WebCore::LayerRendererChromium::drawVideoQuad):
3320         * platform/graphics/chromium/LayerRendererChromium.h:
3321         (LayerRendererChromium):
3322         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
3323         (WebCore::CCVideoLayerImpl::appendQuads):
3324
3325 2012-06-12  Silvia Pfeiffer  <silviapf@chromium.org>
3326
3327         Change the volume slider to horizontal rendering for Chrome video controls.
3328         https://bugs.webkit.org/show_bug.cgi?id=87835
3329
3330         Reviewed by Eric Carlson.
3331
3332         No new tests - final patch in the Chrome controls update series will contain rebaselined tests.
3333
3334         The Chrome video controls are receiving a visual update. The volume slider is moved into
3335         the controls with horizontal rendering, the volume slider container is removed. The visual
3336         update itself is in a separate patch.
3337
3338         * css/mediaControlsChromium.css:
3339         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
3340         Removed relative positioning to render all controls elements equally in DOM order.
3341         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
3342         Removed absolute positioning to render all controls elements equally in DOM order.
3343         (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
3344         Removed absolute positioning to render all controls elements equally in DOM order.
3345         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
3346         Removed volume slider container - it's not necessary any more.
3347         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
3348         Remove flexbox and introduce inline display to always display this field.
3349         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
3350         Removed absolute positioning to render all controls elements equally in DOM order.
3351         * html/shadow/MediaControlRootElementChromium.cpp:
3352         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
3353         Removed volume slider container - it's not necessary any more.
3354         (WebCore::MediaControlRootElementChromium::create):
3355         Appended the volume slider and the mute button directly to the panel, removed volume slider container.
3356         (WebCore::MediaControlRootElementChromium::setMediaController):
3357         Removed volume slider container.
3358         (WebCore::MediaControlRootElementChromium::reportedError):
3359         Removed volume slider container.
3360         (WebCore::MediaControlRootElementChromium::showVolumeSlider):
3361         Removed volume slider container.
3362         * html/shadow/MediaControlRootElementChromium.h:
3363         (WebCore):
3364         (MediaControlRootElementChromium):
3365         Removed volume slider container.
3366         * html/shadow/SliderThumbElement.cpp:
3367         (WebCore::hasVerticalAppearance):
3368         Allow use of horizontal media volume slider.
3369         (WebCore::RenderSliderThumb::layout):
3370         Reuse hasVerticalAppearance function.
3371         * rendering/RenderMediaControlsChromium.cpp:
3372         (WebCore::RenderMediaControlsChromium::paintMediaVolumeSlider):
3373         Change line drawing from vertical to horizontal.
3374         * rendering/RenderTheme.h:
3375         (WebCore::RenderTheme::usesVerticalVolumeSlider):
3376         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
3377         * rendering/RenderThemeChromiumMac.h:
3378         (WebCore::RenderThemeChromiumMac::usesVerticalVolumeSlider):
3379         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
3380         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
3381         * rendering/RenderThemeChromiumSkia.h:
3382         (WebCore::RenderThemeChromiumSkia::usesVerticalVolumeSlider):
3383         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
3384
3385 2012-06-12  Andrei Bucur  <abucur@adobe.com>
3386
3387         [CSSRegions]NamedFlow::overset should return true when there's no region chain attached
3388         https://bugs.webkit.org/show_bug.cgi?id=88515
3389
3390         The CSS Regions specifies that the "overset" attribute needs to return true if the content overflows, there's no region attached to the flow
3391         or if the NamedFlow is in the NULL state:
3392         http://www.w3.org/TR/css3-regions/#dom-named-flow-overset
3393
3394         This patch updates WebKit's behavior in the last two situations to match the one in the spec.
3395
3396         Reviewed by Andreas Kling.
3397
3398         Test: fast/regions/webkit-named-flow-overset.html was updated
3399
3400         * rendering/RenderFlowThread.cpp:
3401         (WebCore::RenderFlowThread::RenderFlowThread):
3402         (WebCore::RenderFlowThread::computeOverflowStateForRegions): If the last valid region is null, the flow has not region chain attached or it's in the NULL state.
3403
3404 2012-06-12  Rahul Tiwari  <rahultiwari.cse.iitr@gmail.com>
3405
3406         Web Inspector: Provide context menu for deleting recorded profile on Profiles Panel
3407         https://bugs.webkit.org/show_bug.cgi?id=88286
3408
3409         Added the context menu to delete the selected profile.
3410
3411         Reviewed by Pavel Feldman.
3412
3413         No new tests required as UI related change
3414
3415         * English.lproj/localizedStrings.js: Removed property svn:mime-type.
3416         * inspector/front-end/ProfilesPanel.js:
3417         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
3418
3419 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
3420
3421         Not reviewed: removed svn:mime-type property from English.lproj/localizedStrings.js
3422
3423         * English.lproj/localizedStrings.js
3424
3425 2012-06-12  Dan Bernstein  <mitz@apple.com>
3426
3427         Tried to fix the notification-enabled build after r120044.
3428
3429         * notifications/NotificationController.cpp:
3430         (WebCore::NotificationController::NotificationController):
3431         (WebCore::NotificationController::create):
3432         (WebCore::provideNotification):
3433         * notifications/NotificationController.h:
3434         (NotificationController):
3435
3436 2012-06-12  Huang Dongsung  <luxtella@company100.net>
3437
3438         [Qt][Texmap] Falling leaves demo missing clipping.
3439         https://bugs.webkit.org/show_bug.cgi?id=88704
3440
3441         The bug originated from begining native painting mode of QPainter after enabling
3442         scissor test, because begining native painting mode disables scissor test.
3443
3444         Covered by existing compositing tests.
3445
3446         Reviewed by Noam Rosenthal.
3447
3448         * platform/graphics/texmap/TextureMapperGL.cpp:
3449         (WebCore::TextureMapperGL::beginPainting):
3450
3451 2012-06-12  Csaba Osztrogonác  <ossy@webkit.org>
3452
3453         [Qt][Win] Buildfix related to fromWinHBITMAP
3454         https://bugs.webkit.org/show_bug.cgi?id=88863
3455
3456         Reviewed by Jocelyn Turcotte.
3457
3458         * platform/graphics/qt/GraphicsContextQt.cpp: Add qt_pixmapFromWinHBITMAP and HBitmapFormat enum.
3459         (WebCore):
3460         (WebCore::GraphicsContext::releaseWindowsContext):
3461         * platform/graphics/qt/ImageQt.cpp:
3462         (WebCore): Move qt_pixmapFromWinHBITMAP to outside of WebCore namespace. (Fix after r119924.)
3463
3464 2012-06-12  Takashi Sakamoto  <tasak@google.com>
3465
3466         [Shadow DOM] <style> inside Shadow subtree should be scoped inside the subtree.
3467         https://bugs.webkit.org/show_bug.cgi?id=87805
3468
3469         Modified HTMLStyleElement to be treated as a scoped style independent
3470         of its "scoped" attribute's value if HTMLStyleElement is in shadow
3471         subtree. HTMLStyleElement has the following four cases talking about
3472         "scoped" attribute and whether is in shadow subtree or not:
3473         1, HTMLStyleElement is "scoped" and is in document tree,
3474         2, HTMLStyleElement is "scoped" and is in shadow subtree,
3475         3, HTMLStyleElement is not "scoped" and is in document tree, and
3476         4, HTMLStyleElement is not "scoped" and is in shadow subtree.
3477         The case 1 and 2 are not changed. This patch affected the case 4.
3478         At the case 4, the HTMLStyleElement's scoping node is the shadow root.
3479         This change is the first step for fixing style scope bug,
3480         i.e. HTMLStyleElements in shadow subtree are applied to any element
3481         in document tree.
3482
3483         Reviewed by Dimitri Glazkov.
3484
3485         Test: fast/css/style-scoped/style-scoped-change-scoped-in-shadow.html
3486
3487         * css/StyleResolver.cpp:
3488         (WebCore::StyleResolver::determineScope):
3489         Modified to return a shadow root if a targeted stylesheet owner node is
3490         not scoped but in some shadow DOM subtree.
3491         * html/HTMLStyleElement.cpp:
3492         (WebCore::HTMLStyleElement::HTMLStyleElement):
3493         (WebCore::HTMLStyleElement::parseAttribute):
3494         Modified to use the below scopedAttributeChanged when a changed
3495         attribute's name is "scoped".
3496         (WebCore::HTMLStyleElement::scopedAttributeChanged):
3497         Newly added. According to new scoped value and isInShadowTree,
3498         add or remove style rules to/from scopedAuthorRules via
3499         registerWithScopingNode or unregisterWithScopingNode.
3500         (WebCore::HTMLStyleElement::registerWithScopingNode):
3501         Added one boolean argument to determine whether HTMLStyleElement is
3502         scoped or not. The reason why not using scoped() is the comment:
3503         "We cannot rely on the scoped element already being present when this
3504         method is invoked. Therefore we cannot rely on scoped()"
3505         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
3506         Changed the code for updating m_isRegisteredWithScopingNode. Now
3507         set m_scopedStyleRegistrationState to be NotRegistered.
3508         (WebCore::HTMLStyleElement::insertedInto):
3509         Modified to invoke registerWithScopingNode when an element is not
3510         scoped but in some shadow subtree.
3511         (WebCore::HTMLStyleElement::removedFrom):
3512         Modified to invoke unregisterWithScopingNode when an element is not
3513         scoped but in some shadow subtree.
3514         * html/HTMLStyleElement.h:
3515         (HTMLStyleElement):
3516         Modified the type of m_isRegisteredWithScopingNode from bool to
3517         enum and renamed to m_scopedStyleRegistrationState. Now the member
3518         variable keeps what HTMLStyleElement's scoping node is, i.e.
3519         none (this means, not in shadow subtree and not scoped), shadow root or
3520         parent node.
3521         Added one new method scopedAttributeChanged's declaration and
3522         modified the declaration of registerWithScopingNode.
3523
3524 2012-06-12  Amy Ousterhout  <aousterh@chromium.org>
3525
3526         Removing unused parameter Page
3527         https://bugs.webkit.org/show_bug.cgi?id=88848
3528
3529         Reviewed by Kentaro Hara.
3530
3531         Removed the unused parameter Page* supplied to the create function
3532         and constructor in DeviceOrientationController.
3533
3534         The parameter Page* was previously stored in an instance variable
3535         m_page, but this was removed (see https://bugs.webkit.org/show_bug.cgi?id=88812).
3536
3537         No new tests because the removed parameter was unused and untested.
3538
3539         * dom/DeviceOrientationController.cpp:
3540         (WebCore::DeviceOrientationController::DeviceOrientationController):
3541         (WebCore::DeviceOrientationController::create):
3542         (WebCore::provideDeviceOrientationTo):
3543         * dom/DeviceOrientationController.h:
3544         (DeviceOrientationController):
3545
3546 2012-06-12  Sheriff Bot  <webkit.review.bot@gmail.com>
3547
3548         Unreviewed, rolling out r120051.
3549         http://trac.webkit.org/changeset/120051
3550         https://bugs.webkit.org/show_bug.cgi?id=88852
3551
3552         some tests are crashing (Requested by morrita on #webkit).
3553
3554         * CMakeLists.txt:
3555         * GNUmakefile.list.am:
3556         * Target.pri:
3557         * WebCore.gypi:
3558         * WebCore.vcproj/WebCore.vcproj:
3559         * WebCore.xcodeproj/project.pbxproj:
3560         * bindings/generic/ContextEnabledFeatures.cpp: Renamed from Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp.
3561         (WebCore):
3562         (WebCore::ContextEnabledFeatures::shadowDOMEnabled):
3563         (WebCore::ContextEnabledFeatures::styleScopedEnabled):
3564         (WebCore::ContextEnabledFeatures::pagePopupEnabled):
3565         * bindings/generic/ContextEnabledFeatures.h: Renamed from Source/WebKit/chromium/src/ContextFeaturesClientImpl.h.
3566         (WebCore):
3567         (ContextEnabledFeatures):
3568         * bindings/scripts/CodeGeneratorV8.pm:
3569         (GenerateImplementation):
3570         * css/StyleResolver.cpp:
3571         (WebCore::StyleResolver::determineScope):
3572         * dom/ContextFeatures.cpp: Removed.
3573         * dom/ContextFeatures.h: Removed.
3574         * dom/DOMAllInOne.cpp:
3575         * dom/DOMImplementation.cpp:
3576         (WebCore::DOMImplementation::createDocument):
3577         (WebCore::DOMImplementation::createHTMLDocument):
3578         * dom/Document.cpp:
3579         (WebCore::Document::Document):
3580         * dom/Document.h:
3581         (WebCore):
3582         (Document):
3583         * dom/Position.cpp:
3584         (WebCore::Position::Position):
3585         (WebCore::Position::findParent):
3586         * dom/TreeScope.cpp:
3587         (WebCore::TreeScope::getSelection):
3588         * dom/make_names.pl:
3589         (printConstructorInterior):
3590         (printFactoryCppFile):
3591         (printWrapperFunctions):
3592         (printWrapperFactoryCppFile):
3593         * editing/markup.cpp:
3594         (WebCore::createFragmentFromMarkupWithContext):
3595         * html/HTMLStyleElement.cpp:
3596         (WebCore::HTMLStyleElement::registerWithScopingNode):
3597         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
3598         * html/shadow/HTMLContentElement.cpp:
3599         (WebCore::contentTagName):
3600         * inspector/DOMPatchSupport.cpp:
3601         (WebCore::DOMPatchSupport::patchDocument):
3602         * loader/FrameLoaderClient.h:
3603         (WebCore::FrameLoaderClient::allowShadowDOM):
3604         (WebCore::FrameLoaderClient::allowStyleScoped):
3605         (FrameLoaderClient):
3606         (WebCore::FrameLoaderClient::allowPagePopup):
3607         * platform/RefCountedSupplement.h: Removed.
3608         * platform/Supplementable.h:
3609         * xml/XMLHttpRequest.cpp:
3610         (WebCore::XMLHttpRequest::responseXML):
3611
3612 2012-06-11  Kaustubh Atrawalkar  <kaustubh@motorola.com>
3613
3614         [DRT] LTC:: counterValueForElementById() could be moved to Internals.
3615         https://bugs.webkit.org/show_bug.cgi?id=84406
3616
3617         Reviewed by Hajime Morita.
3618
3619         Move the counterValueForElementById from LayoutTestCotroller to Internals and
3620         remove the old platform specific implementations as it exclusively tests WebCore functionality.
3621
3622         Covered by existing test cases.
3623
3624         * testing/Internals.cpp:
3625         (WebCore::Internals::counterValue):
3626         (WebCore):
3627         * testing/Internals.h:
3628         (Internals):
3629         * testing/Internals.idl:
3630
3631 2012-06-11  Hans Wennborg  <hans@chromium.org>
3632
3633         Speech JavaScript API: Make SpeechRecognitionError an Event
3634         https://bugs.webkit.org/show_bug.cgi?id=88784
3635
3636         Reviewed by Adam Barth.
3637
3638         Make SpeechRecognitionError an Event. The spec was updated to make it
3639         an event in its own right, rather than an attribute of
3640         SpeechRecognitionEvent.
3641
3642         Test: fast/speech/scripted/speechrecognition-errors.html
3643
3644         * Modules/speech/SpeechRecognition.cpp:
3645         (WebCore::SpeechRecognition::didReceiveError):
3646         * Modules/speech/SpeechRecognitionError.cpp:
3647         (WebCore::SpeechRecognitionError::SpeechRecognitionError):
3648         (WebCore::SpeechRecognitionError::interfaceName):
3649         (WebCore):
3650         * Modules/speech/SpeechRecognitionError.h:
3651         (WebCore::SpeechRecognitionError::create):
3652         (SpeechRecognitionError):
3653         * Modules/speech/SpeechRecognitionError.idl:
3654         * Modules/speech/SpeechRecognitionEvent.cpp:
3655         (WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
3656         * Modules/speech/SpeechRecognitionEvent.h:
3657         (SpeechRecognitionEventInit):
3658         (SpeechRecognitionEvent):
3659         * Modules/speech/SpeechRecognitionEvent.idl:
3660         * dom/EventNames.in:
3661
3662 2012-06-12  MORITA Hajime  <morrita@google.com>
3663
3664         REGRESSION(r118098): <content> element does not render distributed children when cloned from another document
3665         https://bugs.webkit.org/show_bug.cgi?id=88148
3666
3667         Reviewed by Dimitri Glazkov.
3668
3669         The shadow DOM availability was decided through FrameLoaderClient.
3670         But there are documents which don't have any associated frames, in
3671         which any shadow DOM related elements cannot be constructed.  That
3672         resulsted the regression.
3673
3674         This change introduces a Page-based client called
3675         ContextFeaturesClient which takes the role from FrameLoaderClient
3676         to decide the feature availability, and ContextFeatures which is a
3677         proxy of ContextFeaturesClient.  ContextEnabledFeatures is is
3678         replaced with ContextFeatures.
3679
3680         Each ContextFeatures object is owned by a Page, and is attached to
3681         each Document in the page even if the page itself has no referenct
3682         to Frames or Pages. With ContextFeatures, each Document can decide
3683         the feature availability even if it cannot reach Page or Frame.
3684
3685         On RefCountedSupplement: Document instance can live longer than a
3686         Page where it is shwon. This means that ContextFeatures instance
3687         needs to survive after owner Page destruction because it's
3688         referenced from possibly surviving Documents. RefCountedSupplement
3689         is introduced to cover this scenario: It allows supplement classes
3690         to live after Page's destruction.
3691
3692         RefCountedSupplement::hostDestroyed() is notified when the hosting
3693         page is gone. ContextFeatures clears its reference to the client
3694         using this notification.
3695
3696         Test: fast/dom/shadow/elements-in-frameless-document.html
3697
3698         * CMakeLists.txt:
3699         * GNUmakefile.list.am:
3700         * Target.pri:
3701         * WebCore.gypi:
3702         * WebCore.vcproj/WebCore.vcproj:
3703         * WebCore.xcodeproj/project.pbxproj:
3704         * bindings/scripts/CodeGeneratorV8.pm:
3705         (GenerateImplementation):
3706         * css/StyleResolver.cpp:
3707         (WebCore::StyleResolver::determineScope):
3708         * dom/ContextFeatures.cpp: Added.
3709         (WebCore):
3710         (WebCore::ContextFeaturesClient::empty):
3711         (WebCore::ContextFeatures::supplementName):
3712         (WebCore::ContextFeatures::defaultSwitch):
3713         (WebCore::ContextFeatures::shadowDOMEnabled):
3714         (WebCore::ContextFeatures::styleScopedEnabled):
3715         (WebCore::ContextFeatures::pagePopupEnabled):
3716         (WebCore::provideContextFeaturesTo):
3717         (WebCore::provideContextFeaturesToDocumentFrom):
3718         * dom/ContextFeatures.h: Added.
3719         (WebCore):
3720         (ContextFeatures):
3721         (WebCore::ContextFeatures::ContextFeatures):
3722         (WebCore::ContextFeatures::hostDestroyed):
3723         (ContextFeaturesClient):
3724         (WebCore::ContextFeaturesClient::~ContextFeaturesClient):
3725         (WebCore::ContextFeaturesClient::isEnabled):
3726         (WebCore::ContextFeatures::create):
3727         (WebCore::ContextFeatures::isEnabled):
3728         * dom/DOMAllInOne.cpp:
3729         * dom/DOMImplementation.cpp:
3730         (WebCore::DOMImplementation::createDocument):
3731         (WebCore::DOMImplementation::createHTMLDocument):
3732         * dom/Document.h:
3733         (WebCore::Document::contextFeatures):
3734         * dom/Document.cpp:
3735         (WebCore::Document::Document):
3736         (WebCore::Document::setContextFeatures):
3737         * dom/Position.cpp:
3738         (WebCore::Position::Position):
3739         (WebCore::Position::findParent):
3740         * dom/TreeScope.cpp:
3741         (WebCore::TreeScope::getSelection):
3742         * dom/make_names.pl:
3743         (printConstructorInterior):
3744         (printFactoryCppFile):
3745         (printWrapperFunctions):
3746         (printWrapperFactoryCppFile):
3747         * editing/markup.cpp:
3748         (WebCore::createFragmentFromMarkupWithContext):
3749         * html/HTMLStyleElement.cpp:
3750         (WebCore::HTMLStyleElement::registerWithScopingNode):
3751         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
3752         * html/shadow/HTMLContentElement.cpp:
3753         (WebCore::contentTagName):
3754         * inspector/DOMPatchSupport.cpp:
3755         (WebCore::DOMPatchSupport::patchDocument):
3756         * loader/FrameLoaderClient.h:
3757         * platform/RefCountedSupplement.h: Copied from Source/WebCore/platform/Supplementable.h.
3758         (WebCore):
3759         (RefCountedSupplement):
3760         (WebCore::RefCountedSupplement::hostDestroyed):
3761         (Wrapper):
3762         (WebCore::RefCountedSupplement::Wrapper::Wrapper):
3763         (WebCore::RefCountedSupplement::Wrapper::~Wrapper):
3764         (WebCore::RefCountedSupplement::Wrapper::wrapped):
3765         (WebCore::RefCountedSupplement::provideTo):
3766         (WebCore::RefCountedSupplement::from):
3767         * platform/Supplementable.h:
3768         (WebCore::Supplement::isRefCountedWrapper):
3769         * xml/XMLHttpRequest.cpp:
3770         (WebCore::XMLHttpRequest::responseXML):
3771
3772 2012-06-12  Kent Tamura  <tkent@chromium.org>
3773
3774         Remove unnecessary functions: setName() and formControlName()
3775         https://bugs.webkit.org/show_bug.cgi?id=88392
3776
3777         Reviewed by Kentaro Hara.
3778
3779         'name' IDL attributes of form-related elements should be [Reflected],
3780         and we don't need to have setName(). We used formControlName() for
3781         name() implementation, and formControlName() is not needed because it
3782         just converts a null attribute to an empty string. Our binding code does it.
3783
3784         We don't remove FormAssociatedElement::name() because many C++ code use it.
3785
3786         FormAssociatedElement::name() is virtual, and HTMLInputElement overrides
3787         it so that it returns a cache of the name attribtue value because
3788         CheckedRadioButtons class needs to know an old name attribute value when
3789         the name attribtue is changed.
3790
3791         References:
3792         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#dom-object-name
3793         http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#dom-form-name
3794         http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-fe-name
3795
3796         Test: fast/forms/name-attribute.html
3797
3798         * dom/Element.h: Remove formControlName().
3799         * html/FormAssociatedElement.cpp:
3800         (WebCore::FormAssociatedElement::name):
3801         Copied from formControlName() implementation of HTMLFormControlElement.
3802         * html/FormAssociatedElement.h:
3803         (FormAssociatedElement): Make name() virtual, remove formControlName().
3804         * html/FormController.cpp:
3805         (WebCore::FormController::formElementsState):
3806         Use name() instead of formControlName().
3807         * html/HTMLFormControlElement.cpp:
3808         Remove formControlName() and setName().
3809         * html/HTMLFormControlElement.h: ditto.
3810         * html/HTMLInputElement.cpp:
3811         (WebCore::HTMLInputElement::name): Renamed from formControlName().
3812         * html/HTMLInputElement.h:
3813         (HTMLInputElement): Renamed formControlName() to name(), and make it public.
3814         * html/HTMLKeygenElement.idl: Make 'name' [Reflected].
3815         * html/HTMLObjectElement.cpp: Remove formControlName().
3816         * html/HTMLObjectElement.h: ditto.
3817         * html/HTMLSelectElement.cpp:
3818         (WebCore::HTMLSelectElement::appendFormData):
3819         Use name() instead of formControlName().
3820         * html/HTMLSelectElement.idl: Make 'name' [Reflected].
3821         * html/HTMLTextAreaElement.idl: Make 'name' [Reflected].
3822
3823 2012-06-11  Nico Weber  <thakis@chromium.org>
3824
3825         Remove unused member variables found by clang's -Wunused-private-field
3826         https://bugs.webkit.org/show_bug.cgi?id=88812
3827
3828         Reviewed by Anders Carlsson.
3829
3830         Change a few |class|s that were used only to pin down the size of
3831         existing classes to |struct|, so that clang doesn't warn about these
3832         memvars.
3833
3834         No intended behavior change.
3835
3836         * Modules/geolocation/GeolocationController.cpp:
3837         (WebCore::GeolocationController::GeolocationController):
3838         * Modules/geolocation/GeolocationController.h:
3839         (GeolocationController):
3840         * Modules/webaudio/AudioContext.h:
3841         (AudioContext):
3842         * Modules/webaudio/AudioParamTimeline.h:
3843         (AudioParamTimeline):
3844         * accessibility/AccessibilityScrollbar.h:
3845         (AccessibilityScrollbar):
3846         * bindings/v8/ScriptScope.cpp:
3847         (WebCore::ScriptScope::ScriptScope):
3848         * bindings/v8/ScriptScope.h:
3849         (ScriptScope):
3850         * css/CSSValue.cpp:
3851         * css/StylePropertySet.cpp:
3852         * dom/DeviceOrientationController.cpp:
3853         (WebCore::DeviceOrientationController::DeviceOrientationController):
3854         * dom/DeviceOrientationController.h:
3855         (DeviceOrientationController):
3856         * editing/ReplaceSelectionCommand.cpp:
3857         (ReplacementFragment):
3858         (WebCore::ReplacementFragment::ReplacementFragment):
3859         * editing/TextIterator.cpp:
3860         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
3861         * editing/TextIterator.h:
3862         (SimplifiedBackwardsTextIterator):
3863         (BackwardsCharacterIterator):
3864         * html/HTMLFormCollection.cpp:
3865         (WebCore::HTMLFormCollection::HTMLFormCollection):
3866         * html/HTMLFormCollection.h:
3867         (HTMLFormCollection):
3868         * html/shadow/MediaControlElements.cpp:
3869         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
3870         * html/shadow/MediaControlElements.h:
3871         (MediaControlFullscreenButtonElement):
3872         * html/shadow/MediaControlRootElementChromium.cpp:
3873         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
3874         * html/shadow/MediaControlRootElementChromium.h:
3875         (MediaControlRootElementChromium):
3876         * html/track/LoadableTextTrack.cpp:
3877         (WebCore::LoadableTextTrack::LoadableTextTrack):
3878         * html/track/LoadableTextTrack.h:
3879         (LoadableTextTrack):
3880         * inspector/CodeGeneratorInspector.py:
3881         (Generator.go):
3882         * inspector/InspectorCSSAgent.cpp:
3883         (WebCore::InspectorCSSAgent::InspectorCSSAgent):
3884         * inspector/InspectorCSSAgent.h:
3885         (InspectorCSSAgent):
3886         * inspector/InspectorDOMDebuggerAgent.cpp:
3887         (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
3888         * inspector/InspectorDOMDebuggerAgent.h:
3889         (InspectorDOMDebuggerAgent):
3890         * inspector/InspectorMemoryAgent.cpp:
3891         (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
3892         * inspector/InspectorMemoryAgent.h:
3893         (InspectorMemoryAgent):
3894         * notifications/NotificationController.cpp:
3895         (WebCore::NotificationController::NotificationController):
3896         * notifications/NotificationController.h:
3897         (NotificationController):
3898         * page/animation/CompositeAnimation.h:
3899         (WebCore::CompositeAnimation::CompositeAnimation):
3900         (CompositeAnimation):
3901         * platform/Length.cpp:
3902         * platform/audio/ReverbConvolver.cpp:
3903         (WebCore::ReverbConvolver::ReverbConvolver):
3904         * platform/audio/ReverbConvolver.h:
3905         (ReverbConvolver):
3906         * platform/audio/ReverbConvolverStage.cpp:
3907         (WebCore::ReverbConvolverStage::ReverbConvolverStage):
3908         * platform/audio/ReverbConvolverStage.h:
3909         (ReverbConvolverStage):
3910         * platform/graphics/TextRun.cpp:
3911         (ExpectedTextRunSize):
3912         * platform/graphics/chromium/cc/CCThreadProxy.h:
3913         (CCThreadProxy):
3914         * platform/graphics/filters/FECustomFilter.cpp:
3915         (WebCore::FECustomFilter::FECustomFilter):
3916         * platform/graphics/filters/FECustomFilter.h:
3917         (FECustomFilter):
3918         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
3919         (JPEGImageReader):
3920         * platform/leveldb/LevelDBTransaction.cpp:
3921         (WebCore::LevelDBTransaction::TreeIterator::next):
3922         * platform/text/TextCodecICU.cpp:
3923         (WebCore::TextCodecICU::TextCodecICU):
3924         * platform/text/TextCodecICU.h:
3925         (TextCodecICU):
3926         * rendering/InlineBox.cpp:
3927         * rendering/InlineFlowBox.cpp:
3928         * rendering/RenderText.cpp:
3929         * rendering/style/KeyframeList.h:
3930         (WebCore::KeyframeList::KeyframeList):
3931         (KeyframeList):
3932         * rendering/svg/RenderSVGTextPath.cpp:
3933         (WebCore::RenderSVGTextPath::RenderSVGTextPath):
3934         * rendering/svg/RenderSVGTextPath.h:
3935         * rendering/svg/SVGInlineTextBox.cpp:
3936         * svg/SVGPathByteStreamSource.cpp:
3937         * svg/SVGPathByteStreamSource.h:
3938         * svg/SVGPathTraversalStateBuilder.cpp:
3939         (WebCore::SVGPathTraversalStateBuilder::SVGPathTraversalStateBuilder):
3940         * svg/SVGPathTraversalStateBuilder.h:
3941         (SVGPathTraversalStateBuilder):
3942         * xml/XSLStyleSheet.h:
3943
3944 2012-06-11  Kinuko Yasuda  <kinuko@chromium.org>
3945
3946         XHR returns size==0 Blob
3947         https://bugs.webkit.org/show_bug.cgi?id=88750
3948
3949         Reviewed by Alexey Proskuryakov.
3950
3951         Response Blob's .size field must have the correct response size.
3952
3953         Test: http/tests/xmlhttprequest/response-blob-size.html
3954
3955         * xml/XMLHttpRequest.cpp:
3956         (WebCore::XMLHttpRequest::responseBlob):
3957
3958 2012-06-11  Silvia Pfeiffer  <silviapf@chromium.org>
3959
3960         Introduce an Enclosure Element for Chromium video controls.
3961         https://bugs.webkit.org/show_bug.cgi?id=87683
3962
3963         Reviewed by Eric Carlson.
3964
3965         Updated tests.
3966
3967         The Chrome video controls are receiving a visual update. A new enclosure div is required
3968         to provide for a offset space from the video's boundaries. The visual update itself is in
3969         a separate patch.
3970
3971         * css/mediaControlsChromium.css:
3972         (video::-webkit-media-controls-enclosure):
3973         Introduce CSS for enclosure div so it doesn't show yet.
3974         * html/shadow/MediaControlRootElementChromium.cpp:
3975         (WebCore::MediaControlChromiumEnclosureElement::MediaControlChromiumEnclosureElement):
3976         Definition of the new enclosure element.
3977         (WebCore::MediaControlChromiumEnclosureElement::create):
3978         Definition of a create operator for the new enclosure element.
3979         (WebCore::MediaControlChromiumEnclosureElement::shadowPseudoId):
3980         Definition of the shadowPseudoId of -webkit-media-controls-enclosure for the enclosure div.
3981         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
3982         Initialize member element for enclosure div.
3983         (WebCore::MediaControlRootElementChromium::create):
3984         Instantiate enclosure div and add into DOM between controls and panel elements.
3985         (WebCore::MediaControlRootElementChromium::setMediaController):
3986         Set media controller for enclosure div.
3987         (WebCore::MediaControlRootElementChromium::createTextTrackDisplay):
3988         Insert text track display container to enclosure rather than panel.
3989         * html/shadow/MediaControlRootElementChromium.h:
3990         (WebCore):
3991         (MediaControlChromiumEnclosureElement):
3992         (WebCore::MediaControlChromiumEnclosureElement::setMediaController):
3993         (WebCore::MediaControlChromiumEnclosureElement::mediaController):
3994         (WebCore::MediaControlChromiumEnclosureElement::isMediaControlElement):
3995         Add declaration of the new enclosure element and its member functions.
3996         (MediaControlRootElementChromium):
3997         Add member variable to controls root element to hold the enclosure element.
3998
3999 2012-06-11  Elliott Sprehn  <esprehn@gmail.com>
4000
4001         WebKit doesn't allow replacing the document element with a DocumentFragment containing one element
4002         https://bugs.webkit.org/show_bug.cgi?id=88681
4003
4004         Reviewed by Ojan Vafai.
4005
4006         Fix bug where replacing an immediate child of a Document with a DocumentFragment
4007         would throw a HIERARCHY_REQUEST_ERR instead of replacing the node as required by DOM4.
4008         http://www.w3.org/TR/domcore/#mutation-algorithms
4009
4010         * dom/Document.cpp:
4011         (WebCore::Document::canReplaceChild):
4012             When the newChild was a DocumentFragment we incorrectly
4013             iterated over the document's children twice instead of the
4014             fragment when counting the total number of elements and
4015             doctypes to enfoce that there's only one of each.
4016
4017 2012-06-