20e044aa01e3f01b4ad2c12a01f77c94010096d1
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
2
3         Web Inspector: allow clearing revision history.
4         https://bugs.webkit.org/show_bug.cgi?id=88847
5
6         Reviewed by Vsevolod Vlasov.
7
8         This change also renames "Revision history" to "Local modifications".
9         I intend to list modifications to all files in that view in the subsequent change.
10
11         * English.lproj/localizedStrings.js:
12         * inspector/front-end/Resource.js:
13         (WebInspector.Resource._clearResourceHistory):
14         * inspector/front-end/RevisionHistoryView.js:
15         (WebInspector.RevisionHistoryView.else.clearHistory):
16         (WebInspector.RevisionHistoryView):
17         (WebInspector.RevisionHistoryView.prototype._revisionAdded):
18         (WebInspector.RevisionHistoryTreeElement):
19         (WebInspector.RevisionHistoryTreeElement.prototype._createLine):
20         (WebInspector.RevisionHistoryTreeElement.prototype.allowRevert):
21         * inspector/front-end/ScriptsPanel.js:
22         (WebInspector.ScriptsPanel.prototype.appendApplicableItems):
23
24 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
25
26         Web Inspector: use jsdifflib for revision diff calculation.
27         https://bugs.webkit.org/show_bug.cgi?id=88791
28
29         Reviewed by Vsevolod Vlasov.
30
31         Present diff calculation is incomplete, it does not properly handle the following case:
32             [a, b, c, d, e, f, g, h] => [c, d, e, f, g, h, a, b]
33         We should not be implementing diff by ourselves. I imported jsdifflib from
34         https://github.com/cemerick/jsdifflib. It has BSD license that is compatible with WebKit.
35
36         * WebCore.gypi:
37         * WebCore.vcproj/WebCore.vcproj:
38         * inspector/front-end/RevisionHistoryView.js:
39         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand.step2):
40         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand):
41         (WebInspector.RevisionHistoryTreeElement.prototype._createLine.appendLineNumber):
42         (WebInspector.RevisionHistoryTreeElement.prototype._createLine):
43         * inspector/front-end/WebKit.qrc:
44         * inspector/front-end/externs.js:
45         (difflib.stringAsLines):
46         (difflib.SequenceMatcher):
47         (difflib.SequenceMatcher.prototype.get_opcodes):
48         * inspector/front-end/inspector.html:
49         * inspector/front-end/jsdifflib.js: Added.
50         (difflib.defaultJunkFunction):
51         (difflib.stripLinebreaks):
52         (difflib.stringAsLines):
53         (difflib.__reduce):
54         (difflib.__ntuplecomp):
55         (difflib.__calculate_ratio):
56         (difflib.__dictget):
57         (difflib.SequenceMatcher.this.set_seqs):
58         (difflib.SequenceMatcher.this.set_seq1):
59         (difflib.SequenceMatcher.this.set_seq2):
60         (difflib.SequenceMatcher.this.__chain_b):
61         (difflib.SequenceMatcher.this.find_longest_match):
62         (difflib.SequenceMatcher.this.get_matching_blocks):
63         (difflib.SequenceMatcher.this.get_opcodes):
64         (difflib.SequenceMatcher.this.get_grouped_opcodes):
65         (difflib.SequenceMatcher.this.quick_ratio):
66         (difflib.SequenceMatcher.this.real_quick_ratio):
67         * inspector/front-end/revisionHistory.css:
68         (.revision-history-line-separator .webkit-line-number):
69
70 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
71
72         Web Inspector: use jsdifflib for revision diff calculation.
73         https://bugs.webkit.org/show_bug.cgi?id=88791
74
75         Reviewed by Vsevolod Vlasov.
76
77         Present diff calculation is incomplete, it does not properly handle the following case:
78             [a, b, c, d, e, f, g, h] => [c, d, e, f, g, h, a, b]
79         We should not be implementing diff by ourselves. I imported jsdifflib from
80         https://github.com/cemerick/jsdifflib. It has BSD license that is compatible with WebKit.
81
82         * WebCore.gypi:
83         * WebCore.vcproj/WebCore.vcproj:
84         * inspector/front-end/RevisionHistoryView.js:
85         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand.step2):
86         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand):
87         (WebInspector.RevisionHistoryTreeElement.prototype._createLine.appendLineNumber):
88         (WebInspector.RevisionHistoryTreeElement.prototype._createLine):
89         * inspector/front-end/WebKit.qrc:
90         * inspector/front-end/externs.js:
91         (difflib.stringAsLines):
92         (difflib.SequenceMatcher):
93         (difflib.SequenceMatcher.prototype.get_opcodes):
94         * inspector/front-end/inspector.html:
95         * inspector/front-end/jsdifflib.js: Added.
96         (difflib.defaultJunkFunction):
97         (difflib.stripLinebreaks):
98         (difflib.stringAsLines):
99         (difflib.__reduce):
100         (difflib.__ntuplecomp):
101         (difflib.__calculate_ratio):
102         (difflib.__dictget):
103         (difflib.SequenceMatcher.this.set_seqs):
104         (difflib.SequenceMatcher.this.set_seq1):
105         (difflib.SequenceMatcher.this.set_seq2):
106         (difflib.SequenceMatcher.this.__chain_b):
107         (difflib.SequenceMatcher.this.find_longest_match):
108         (difflib.SequenceMatcher.this.get_matching_blocks):
109         (difflib.SequenceMatcher.this.get_opcodes):
110         (difflib.SequenceMatcher.this.get_grouped_opcodes):
111         (difflib.SequenceMatcher.this.quick_ratio):
112         (difflib.SequenceMatcher.this.real_quick_ratio):
113         * inspector/front-end/revisionHistory.css:
114         (.revision-history-line-separator .webkit-line-number):
115
116 2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
117
118         [GStreamer] http/tests/media/video-buffered-range-contains-currentTime.html is failing
119         https://bugs.webkit.org/show_bug.cgi?id=87575
120
121         Reviewed by Philippe Normand.
122
123         When EOS is reached in forward playback, the position does not necessarily
124         match the duration. This confuses HTMLMediaElement and causes the "ended"
125         event not to be fired. To avoid this, we synchronize position and duration
126         values in this case.
127
128         Test: http/tests/media/video-buffered-range-contains-currentTime.html
129
130         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
131
132 2012-06-12  Kinuko Yasuda  <kinuko@chromium.org>
133
134         Refactor InputType::receiveDroppedFiles to take DragData
135         https://bugs.webkit.org/show_bug.cgi?id=88860
136
137         Reviewed by Kent Tamura.
138
139         So that we can centralize the file paths related code into FileInputType
140         and makes it easier to extract more data from DragData for
141         <input type=file> (like bug 88293 for directory drag-and-drop).
142
143         No new tests as this has no behavioral changes.
144
145         * html/FileInputType.cpp:
146         (WebCore::FileInputType::receiveDroppedFiles):
147         * html/FileInputType.h:
148         * html/HTMLInputElement.cpp:
149         (WebCore::HTMLInputElement::receiveDroppedFiles):
150         * html/HTMLInputElement.h:
151         * html/InputType.cpp:
152         (WebCore::InputType::receiveDroppedFiles):
153         * html/InputType.h:
154         * page/DragController.cpp:
155         (WebCore::DragController::concludeEditDrag):
156
157 2012-06-12  Thiago Marcos P. Santos  <thiago.santos@intel.com>
158
159         Generate -webkit-box-decoration-break property only when the feature is enabled
160         https://bugs.webkit.org/show_bug.cgi?id=88861
161
162         Reviewed by Alexis Menard.
163
164         Otherwise it will hit an assertion if the property is present on the
165         style but the feature disabled. Also fixes a compilation warning when
166         the feature is disabled.
167
168         * css/CSSPropertyNames.in:
169         * css/StyleResolver.cpp:
170         (WebCore::StyleResolver::collectMatchingRulesForList):
171
172 2012-06-12  Darin Adler  <darin@apple.com>
173
174         Tweaked the Mac export file a bit more, adding more-correct iOS cases.
175
176         Reviewed by David Kilzer.
177
178         * WebCore.exp.in: Rearrangement.
179
180 2012-06-11  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
181
182         Using extrernal ICU library on case unsensitive drives will not work
183         https://bugs.webkit.org/show_bug.cgi?id=70913
184
185         Reviewed by Csaba Osztrogonác.
186
187         * platform/graphics/surfaces/GraphicsSurface.h:
188
189 2012-06-11  Dana Jansens  <danakj@chromium.org>
190
191         [chromium] Use TextureDrawQuad for video layer output when it produces a single GL texture
192         https://bugs.webkit.org/show_bug.cgi?id=88814
193
194         Reviewed by Adrienne Walker.
195
196         When a CCVideLayerImpl produces quads for a frame that is contained
197         in a single GL texture, then use the TextureDrawQuad instead of the
198         VideoDrawQuad. Moves the computation for the RGBA(software) and
199         NativeTexture (hardware) cases from LayerRendererChromium into
200         CCVideoLayerImpl, so it can embed these values in the TextureDrawQuad.
201
202         No new tests, behaviour should be the same.
203
204         * platform/graphics/chromium/LayerRendererChromium.cpp:
205         (WebCore::LayerRendererChromium::drawStreamTexture):
206         (WebCore::LayerRendererChromium::drawVideoQuad):
207         * platform/graphics/chromium/LayerRendererChromium.h:
208         (LayerRendererChromium):
209         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
210         (WebCore::CCVideoLayerImpl::appendQuads):
211
212 2012-06-12  Silvia Pfeiffer  <silviapf@chromium.org>
213
214         Change the volume slider to horizontal rendering for Chrome video controls.
215         https://bugs.webkit.org/show_bug.cgi?id=87835
216
217         Reviewed by Eric Carlson.
218
219         No new tests - final patch in the Chrome controls update series will contain rebaselined tests.
220
221         The Chrome video controls are receiving a visual update. The volume slider is moved into
222         the controls with horizontal rendering, the volume slider container is removed. The visual
223         update itself is in a separate patch.
224
225         * css/mediaControlsChromium.css:
226         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
227         Removed relative positioning to render all controls elements equally in DOM order.
228         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
229         Removed absolute positioning to render all controls elements equally in DOM order.
230         (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
231         Removed absolute positioning to render all controls elements equally in DOM order.
232         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
233         Removed volume slider container - it's not necessary any more.
234         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
235         Remove flexbox and introduce inline display to always display this field.
236         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
237         Removed absolute positioning to render all controls elements equally in DOM order.
238         * html/shadow/MediaControlRootElementChromium.cpp:
239         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
240         Removed volume slider container - it's not necessary any more.
241         (WebCore::MediaControlRootElementChromium::create):
242         Appended the volume slider and the mute button directly to the panel, removed volume slider container.
243         (WebCore::MediaControlRootElementChromium::setMediaController):
244         Removed volume slider container.
245         (WebCore::MediaControlRootElementChromium::reportedError):
246         Removed volume slider container.
247         (WebCore::MediaControlRootElementChromium::showVolumeSlider):
248         Removed volume slider container.
249         * html/shadow/MediaControlRootElementChromium.h:
250         (WebCore):
251         (MediaControlRootElementChromium):
252         Removed volume slider container.
253         * html/shadow/SliderThumbElement.cpp:
254         (WebCore::hasVerticalAppearance):
255         Allow use of horizontal media volume slider.
256         (WebCore::RenderSliderThumb::layout):
257         Reuse hasVerticalAppearance function.
258         * rendering/RenderMediaControlsChromium.cpp:
259         (WebCore::RenderMediaControlsChromium::paintMediaVolumeSlider):
260         Change line drawing from vertical to horizontal.
261         * rendering/RenderTheme.h:
262         (WebCore::RenderTheme::usesVerticalVolumeSlider):
263         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
264         * rendering/RenderThemeChromiumMac.h:
265         (WebCore::RenderThemeChromiumMac::usesVerticalVolumeSlider):
266         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
267         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
268         * rendering/RenderThemeChromiumSkia.h:
269         (WebCore::RenderThemeChromiumSkia::usesVerticalVolumeSlider):
270         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
271
272 2012-06-12  Andrei Bucur  <abucur@adobe.com>
273
274         [CSSRegions]NamedFlow::overset should return true when there's no region chain attached
275         https://bugs.webkit.org/show_bug.cgi?id=88515
276
277         The CSS Regions specifies that the "overset" attribute needs to return true if the content overflows, there's no region attached to the flow
278         or if the NamedFlow is in the NULL state:
279         http://www.w3.org/TR/css3-regions/#dom-named-flow-overset
280
281         This patch updates WebKit's behavior in the last two situations to match the one in the spec.
282
283         Reviewed by Andreas Kling.
284
285         Test: fast/regions/webkit-named-flow-overset.html was updated
286
287         * rendering/RenderFlowThread.cpp:
288         (WebCore::RenderFlowThread::RenderFlowThread):
289         (WebCore::RenderFlowThread::computeOverflowStateForRegions): If the last valid region is null, the flow has not region chain attached or it's in the NULL state.
290
291 2012-06-12  Rahul Tiwari  <rahultiwari.cse.iitr@gmail.com>
292
293         Web Inspector: Provide context menu for deleting recorded profile on Profiles Panel
294         https://bugs.webkit.org/show_bug.cgi?id=88286
295
296         Added the context menu to delete the selected profile.
297
298         Reviewed by Pavel Feldman.
299
300         No new tests required as UI related change
301
302         * English.lproj/localizedStrings.js: Removed property svn:mime-type.
303         * inspector/front-end/ProfilesPanel.js:
304         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
305
306 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
307
308         Not reviewed: removed svn:mime-type property from English.lproj/localizedStrings.js
309
310         * English.lproj/localizedStrings.js
311
312 2012-06-12  Dan Bernstein  <mitz@apple.com>
313
314         Tried to fix the notification-enabled build after r120044.
315
316         * notifications/NotificationController.cpp:
317         (WebCore::NotificationController::NotificationController):
318         (WebCore::NotificationController::create):
319         (WebCore::provideNotification):
320         * notifications/NotificationController.h:
321         (NotificationController):
322
323 2012-06-12  Huang Dongsung  <luxtella@company100.net>
324
325         [Qt][Texmap] Falling leaves demo missing clipping.
326         https://bugs.webkit.org/show_bug.cgi?id=88704
327
328         The bug originated from begining native painting mode of QPainter after enabling
329         scissor test, because begining native painting mode disables scissor test.
330
331         Covered by existing compositing tests.
332
333         Reviewed by Noam Rosenthal.
334
335         * platform/graphics/texmap/TextureMapperGL.cpp:
336         (WebCore::TextureMapperGL::beginPainting):
337
338 2012-06-12  Csaba Osztrogonác  <ossy@webkit.org>
339
340         [Qt][Win] Buildfix related to fromWinHBITMAP
341         https://bugs.webkit.org/show_bug.cgi?id=88863
342
343         Reviewed by Jocelyn Turcotte.
344
345         * platform/graphics/qt/GraphicsContextQt.cpp: Add qt_pixmapFromWinHBITMAP and HBitmapFormat enum.
346         (WebCore):
347         (WebCore::GraphicsContext::releaseWindowsContext):
348         * platform/graphics/qt/ImageQt.cpp:
349         (WebCore): Move qt_pixmapFromWinHBITMAP to outside of WebCore namespace. (Fix after r119924.)
350
351 2012-06-12  Takashi Sakamoto  <tasak@google.com>
352
353         [Shadow DOM] <style> inside Shadow subtree should be scoped inside the subtree.
354         https://bugs.webkit.org/show_bug.cgi?id=87805
355
356         Modified HTMLStyleElement to be treated as a scoped style independent
357         of its "scoped" attribute's value if HTMLStyleElement is in shadow
358         subtree. HTMLStyleElement has the following four cases talking about
359         "scoped" attribute and whether is in shadow subtree or not:
360         1, HTMLStyleElement is "scoped" and is in document tree,
361         2, HTMLStyleElement is "scoped" and is in shadow subtree,
362         3, HTMLStyleElement is not "scoped" and is in document tree, and
363         4, HTMLStyleElement is not "scoped" and is in shadow subtree.
364         The case 1 and 2 are not changed. This patch affected the case 4.
365         At the case 4, the HTMLStyleElement's scoping node is the shadow root.
366         This change is the first step for fixing style scope bug,
367         i.e. HTMLStyleElements in shadow subtree are applied to any element
368         in document tree.
369
370         Reviewed by Dimitri Glazkov.
371
372         Test: fast/css/style-scoped/style-scoped-change-scoped-in-shadow.html
373
374         * css/StyleResolver.cpp:
375         (WebCore::StyleResolver::determineScope):
376         Modified to return a shadow root if a targeted stylesheet owner node is
377         not scoped but in some shadow DOM subtree.
378         * html/HTMLStyleElement.cpp:
379         (WebCore::HTMLStyleElement::HTMLStyleElement):
380         (WebCore::HTMLStyleElement::parseAttribute):
381         Modified to use the below scopedAttributeChanged when a changed
382         attribute's name is "scoped".
383         (WebCore::HTMLStyleElement::scopedAttributeChanged):
384         Newly added. According to new scoped value and isInShadowTree,
385         add or remove style rules to/from scopedAuthorRules via
386         registerWithScopingNode or unregisterWithScopingNode.
387         (WebCore::HTMLStyleElement::registerWithScopingNode):
388         Added one boolean argument to determine whether HTMLStyleElement is
389         scoped or not. The reason why not using scoped() is the comment:
390         "We cannot rely on the scoped element already being present when this
391         method is invoked. Therefore we cannot rely on scoped()"
392         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
393         Changed the code for updating m_isRegisteredWithScopingNode. Now
394         set m_scopedStyleRegistrationState to be NotRegistered.
395         (WebCore::HTMLStyleElement::insertedInto):
396         Modified to invoke registerWithScopingNode when an element is not
397         scoped but in some shadow subtree.
398         (WebCore::HTMLStyleElement::removedFrom):
399         Modified to invoke unregisterWithScopingNode when an element is not
400         scoped but in some shadow subtree.
401         * html/HTMLStyleElement.h:
402         (HTMLStyleElement):
403         Modified the type of m_isRegisteredWithScopingNode from bool to
404         enum and renamed to m_scopedStyleRegistrationState. Now the member
405         variable keeps what HTMLStyleElement's scoping node is, i.e.
406         none (this means, not in shadow subtree and not scoped), shadow root or
407         parent node.
408         Added one new method scopedAttributeChanged's declaration and
409         modified the declaration of registerWithScopingNode.
410
411 2012-06-12  Amy Ousterhout  <aousterh@chromium.org>
412
413         Removing unused parameter Page
414         https://bugs.webkit.org/show_bug.cgi?id=88848
415
416         Reviewed by Kentaro Hara.
417
418         Removed the unused parameter Page* supplied to the create function
419         and constructor in DeviceOrientationController.
420
421         The parameter Page* was previously stored in an instance variable
422         m_page, but this was removed (see https://bugs.webkit.org/show_bug.cgi?id=88812).
423
424         No new tests because the removed parameter was unused and untested.
425
426         * dom/DeviceOrientationController.cpp:
427         (WebCore::DeviceOrientationController::DeviceOrientationController):
428         (WebCore::DeviceOrientationController::create):
429         (WebCore::provideDeviceOrientationTo):
430         * dom/DeviceOrientationController.h:
431         (DeviceOrientationController):
432
433 2012-06-12  Sheriff Bot  <webkit.review.bot@gmail.com>
434
435         Unreviewed, rolling out r120051.
436         http://trac.webkit.org/changeset/120051
437         https://bugs.webkit.org/show_bug.cgi?id=88852
438
439         some tests are crashing (Requested by morrita on #webkit).
440
441         * CMakeLists.txt:
442         * GNUmakefile.list.am:
443         * Target.pri:
444         * WebCore.gypi:
445         * WebCore.vcproj/WebCore.vcproj:
446         * WebCore.xcodeproj/project.pbxproj:
447         * bindings/generic/ContextEnabledFeatures.cpp: Renamed from Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp.
448         (WebCore):
449         (WebCore::ContextEnabledFeatures::shadowDOMEnabled):
450         (WebCore::ContextEnabledFeatures::styleScopedEnabled):
451         (WebCore::ContextEnabledFeatures::pagePopupEnabled):
452         * bindings/generic/ContextEnabledFeatures.h: Renamed from Source/WebKit/chromium/src/ContextFeaturesClientImpl.h.
453         (WebCore):
454         (ContextEnabledFeatures):
455         * bindings/scripts/CodeGeneratorV8.pm:
456         (GenerateImplementation):
457         * css/StyleResolver.cpp:
458         (WebCore::StyleResolver::determineScope):
459         * dom/ContextFeatures.cpp: Removed.
460         * dom/ContextFeatures.h: Removed.
461         * dom/DOMAllInOne.cpp:
462         * dom/DOMImplementation.cpp:
463         (WebCore::DOMImplementation::createDocument):
464         (WebCore::DOMImplementation::createHTMLDocument):
465         * dom/Document.cpp:
466         (WebCore::Document::Document):
467         * dom/Document.h:
468         (WebCore):
469         (Document):
470         * dom/Position.cpp:
471         (WebCore::Position::Position):
472         (WebCore::Position::findParent):
473         * dom/TreeScope.cpp:
474         (WebCore::TreeScope::getSelection):
475         * dom/make_names.pl:
476         (printConstructorInterior):
477         (printFactoryCppFile):
478         (printWrapperFunctions):
479         (printWrapperFactoryCppFile):
480         * editing/markup.cpp:
481         (WebCore::createFragmentFromMarkupWithContext):
482         * html/HTMLStyleElement.cpp:
483         (WebCore::HTMLStyleElement::registerWithScopingNode):
484         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
485         * html/shadow/HTMLContentElement.cpp:
486         (WebCore::contentTagName):
487         * inspector/DOMPatchSupport.cpp:
488         (WebCore::DOMPatchSupport::patchDocument):
489         * loader/FrameLoaderClient.h:
490         (WebCore::FrameLoaderClient::allowShadowDOM):
491         (WebCore::FrameLoaderClient::allowStyleScoped):
492         (FrameLoaderClient):
493         (WebCore::FrameLoaderClient::allowPagePopup):
494         * platform/RefCountedSupplement.h: Removed.
495         * platform/Supplementable.h:
496         * xml/XMLHttpRequest.cpp:
497         (WebCore::XMLHttpRequest::responseXML):
498
499 2012-06-11  Kaustubh Atrawalkar  <kaustubh@motorola.com>
500
501         [DRT] LTC:: counterValueForElementById() could be moved to Internals.
502         https://bugs.webkit.org/show_bug.cgi?id=84406
503
504         Reviewed by Hajime Morita.
505
506         Move the counterValueForElementById from LayoutTestCotroller to Internals and
507         remove the old platform specific implementations as it exclusively tests WebCore functionality.
508
509         Covered by existing test cases.
510
511         * testing/Internals.cpp:
512         (WebCore::Internals::counterValue):
513         (WebCore):
514         * testing/Internals.h:
515         (Internals):
516         * testing/Internals.idl:
517
518 2012-06-11  Hans Wennborg  <hans@chromium.org>
519
520         Speech JavaScript API: Make SpeechRecognitionError an Event
521         https://bugs.webkit.org/show_bug.cgi?id=88784
522
523         Reviewed by Adam Barth.
524
525         Make SpeechRecognitionError an Event. The spec was updated to make it
526         an event in its own right, rather than an attribute of
527         SpeechRecognitionEvent.
528
529         Test: fast/speech/scripted/speechrecognition-errors.html
530
531         * Modules/speech/SpeechRecognition.cpp:
532         (WebCore::SpeechRecognition::didReceiveError):
533         * Modules/speech/SpeechRecognitionError.cpp:
534         (WebCore::SpeechRecognitionError::SpeechRecognitionError):
535         (WebCore::SpeechRecognitionError::interfaceName):
536         (WebCore):
537         * Modules/speech/SpeechRecognitionError.h:
538         (WebCore::SpeechRecognitionError::create):
539         (SpeechRecognitionError):
540         * Modules/speech/SpeechRecognitionError.idl:
541         * Modules/speech/SpeechRecognitionEvent.cpp:
542         (WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
543         * Modules/speech/SpeechRecognitionEvent.h:
544         (SpeechRecognitionEventInit):
545         (SpeechRecognitionEvent):
546         * Modules/speech/SpeechRecognitionEvent.idl:
547         * dom/EventNames.in:
548
549 2012-06-12  MORITA Hajime  <morrita@google.com>
550
551         REGRESSION(r118098): <content> element does not render distributed children when cloned from another document
552         https://bugs.webkit.org/show_bug.cgi?id=88148
553
554         Reviewed by Dimitri Glazkov.
555
556         The shadow DOM availability was decided through FrameLoaderClient.
557         But there are documents which don't have any associated frames, in
558         which any shadow DOM related elements cannot be constructed.  That
559         resulsted the regression.
560
561         This change introduces a Page-based client called
562         ContextFeaturesClient which takes the role from FrameLoaderClient
563         to decide the feature availability, and ContextFeatures which is a
564         proxy of ContextFeaturesClient.  ContextEnabledFeatures is is
565         replaced with ContextFeatures.
566
567         Each ContextFeatures object is owned by a Page, and is attached to
568         each Document in the page even if the page itself has no referenct
569         to Frames or Pages. With ContextFeatures, each Document can decide
570         the feature availability even if it cannot reach Page or Frame.
571
572         On RefCountedSupplement: Document instance can live longer than a
573         Page where it is shwon. This means that ContextFeatures instance
574         needs to survive after owner Page destruction because it's
575         referenced from possibly surviving Documents. RefCountedSupplement
576         is introduced to cover this scenario: It allows supplement classes
577         to live after Page's destruction.
578
579         RefCountedSupplement::hostDestroyed() is notified when the hosting
580         page is gone. ContextFeatures clears its reference to the client
581         using this notification.
582
583         Test: fast/dom/shadow/elements-in-frameless-document.html
584
585         * CMakeLists.txt:
586         * GNUmakefile.list.am:
587         * Target.pri:
588         * WebCore.gypi:
589         * WebCore.vcproj/WebCore.vcproj:
590         * WebCore.xcodeproj/project.pbxproj:
591         * bindings/scripts/CodeGeneratorV8.pm:
592         (GenerateImplementation):
593         * css/StyleResolver.cpp:
594         (WebCore::StyleResolver::determineScope):
595         * dom/ContextFeatures.cpp: Added.
596         (WebCore):
597         (WebCore::ContextFeaturesClient::empty):
598         (WebCore::ContextFeatures::supplementName):
599         (WebCore::ContextFeatures::defaultSwitch):
600         (WebCore::ContextFeatures::shadowDOMEnabled):
601         (WebCore::ContextFeatures::styleScopedEnabled):
602         (WebCore::ContextFeatures::pagePopupEnabled):
603         (WebCore::provideContextFeaturesTo):
604         (WebCore::provideContextFeaturesToDocumentFrom):
605         * dom/ContextFeatures.h: Added.
606         (WebCore):
607         (ContextFeatures):
608         (WebCore::ContextFeatures::ContextFeatures):
609         (WebCore::ContextFeatures::hostDestroyed):
610         (ContextFeaturesClient):
611         (WebCore::ContextFeaturesClient::~ContextFeaturesClient):
612         (WebCore::ContextFeaturesClient::isEnabled):
613         (WebCore::ContextFeatures::create):
614         (WebCore::ContextFeatures::isEnabled):
615         * dom/DOMAllInOne.cpp:
616         * dom/DOMImplementation.cpp:
617         (WebCore::DOMImplementation::createDocument):
618         (WebCore::DOMImplementation::createHTMLDocument):
619         * dom/Document.h:
620         (WebCore::Document::contextFeatures):
621         * dom/Document.cpp:
622         (WebCore::Document::Document):
623         (WebCore::Document::setContextFeatures):
624         * dom/Position.cpp:
625         (WebCore::Position::Position):
626         (WebCore::Position::findParent):
627         * dom/TreeScope.cpp:
628         (WebCore::TreeScope::getSelection):
629         * dom/make_names.pl:
630         (printConstructorInterior):
631         (printFactoryCppFile):
632         (printWrapperFunctions):
633         (printWrapperFactoryCppFile):
634         * editing/markup.cpp:
635         (WebCore::createFragmentFromMarkupWithContext):
636         * html/HTMLStyleElement.cpp:
637         (WebCore::HTMLStyleElement::registerWithScopingNode):
638         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
639         * html/shadow/HTMLContentElement.cpp:
640         (WebCore::contentTagName):
641         * inspector/DOMPatchSupport.cpp:
642         (WebCore::DOMPatchSupport::patchDocument):
643         * loader/FrameLoaderClient.h:
644         * platform/RefCountedSupplement.h: Copied from Source/WebCore/platform/Supplementable.h.
645         (WebCore):
646         (RefCountedSupplement):
647         (WebCore::RefCountedSupplement::hostDestroyed):
648         (Wrapper):
649         (WebCore::RefCountedSupplement::Wrapper::Wrapper):
650         (WebCore::RefCountedSupplement::Wrapper::~Wrapper):
651         (WebCore::RefCountedSupplement::Wrapper::wrapped):
652         (WebCore::RefCountedSupplement::provideTo):
653         (WebCore::RefCountedSupplement::from):
654         * platform/Supplementable.h:
655         (WebCore::Supplement::isRefCountedWrapper):
656         * xml/XMLHttpRequest.cpp:
657         (WebCore::XMLHttpRequest::responseXML):
658
659 2012-06-12  Kent Tamura  <tkent@chromium.org>
660
661         Remove unnecessary functions: setName() and formControlName()
662         https://bugs.webkit.org/show_bug.cgi?id=88392
663
664         Reviewed by Kentaro Hara.
665
666         'name' IDL attributes of form-related elements should be [Reflected],
667         and we don't need to have setName(). We used formControlName() for
668         name() implementation, and formControlName() is not needed because it
669         just converts a null attribute to an empty string. Our binding code does it.
670
671         We don't remove FormAssociatedElement::name() because many C++ code use it.
672
673         FormAssociatedElement::name() is virtual, and HTMLInputElement overrides
674         it so that it returns a cache of the name attribtue value because
675         CheckedRadioButtons class needs to know an old name attribute value when
676         the name attribtue is changed.
677
678         References:
679         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#dom-object-name
680         http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#dom-form-name
681         http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-fe-name
682
683         Test: fast/forms/name-attribute.html
684
685         * dom/Element.h: Remove formControlName().
686         * html/FormAssociatedElement.cpp:
687         (WebCore::FormAssociatedElement::name):
688         Copied from formControlName() implementation of HTMLFormControlElement.
689         * html/FormAssociatedElement.h:
690         (FormAssociatedElement): Make name() virtual, remove formControlName().
691         * html/FormController.cpp:
692         (WebCore::FormController::formElementsState):
693         Use name() instead of formControlName().
694         * html/HTMLFormControlElement.cpp:
695         Remove formControlName() and setName().
696         * html/HTMLFormControlElement.h: ditto.
697         * html/HTMLInputElement.cpp:
698         (WebCore::HTMLInputElement::name): Renamed from formControlName().
699         * html/HTMLInputElement.h:
700         (HTMLInputElement): Renamed formControlName() to name(), and make it public.
701         * html/HTMLKeygenElement.idl: Make 'name' [Reflected].
702         * html/HTMLObjectElement.cpp: Remove formControlName().
703         * html/HTMLObjectElement.h: ditto.
704         * html/HTMLSelectElement.cpp:
705         (WebCore::HTMLSelectElement::appendFormData):
706         Use name() instead of formControlName().
707         * html/HTMLSelectElement.idl: Make 'name' [Reflected].
708         * html/HTMLTextAreaElement.idl: Make 'name' [Reflected].
709
710 2012-06-11  Nico Weber  <thakis@chromium.org>
711
712         Remove unused member variables found by clang's -Wunused-private-field
713         https://bugs.webkit.org/show_bug.cgi?id=88812
714
715         Reviewed by Anders Carlsson.
716
717         Change a few |class|s that were used only to pin down the size of
718         existing classes to |struct|, so that clang doesn't warn about these
719         memvars.
720
721         No intended behavior change.
722
723         * Modules/geolocation/GeolocationController.cpp:
724         (WebCore::GeolocationController::GeolocationController):
725         * Modules/geolocation/GeolocationController.h:
726         (GeolocationController):
727         * Modules/webaudio/AudioContext.h:
728         (AudioContext):
729         * Modules/webaudio/AudioParamTimeline.h:
730         (AudioParamTimeline):
731         * accessibility/AccessibilityScrollbar.h:
732         (AccessibilityScrollbar):
733         * bindings/v8/ScriptScope.cpp:
734         (WebCore::ScriptScope::ScriptScope):
735         * bindings/v8/ScriptScope.h:
736         (ScriptScope):
737         * css/CSSValue.cpp:
738         * css/StylePropertySet.cpp:
739         * dom/DeviceOrientationController.cpp:
740         (WebCore::DeviceOrientationController::DeviceOrientationController):
741         * dom/DeviceOrientationController.h:
742         (DeviceOrientationController):
743         * editing/ReplaceSelectionCommand.cpp:
744         (ReplacementFragment):
745         (WebCore::ReplacementFragment::ReplacementFragment):
746         * editing/TextIterator.cpp:
747         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
748         * editing/TextIterator.h:
749         (SimplifiedBackwardsTextIterator):
750         (BackwardsCharacterIterator):
751         * html/HTMLFormCollection.cpp:
752         (WebCore::HTMLFormCollection::HTMLFormCollection):
753         * html/HTMLFormCollection.h:
754         (HTMLFormCollection):
755         * html/shadow/MediaControlElements.cpp:
756         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
757         * html/shadow/MediaControlElements.h:
758         (MediaControlFullscreenButtonElement):
759         * html/shadow/MediaControlRootElementChromium.cpp:
760         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
761         * html/shadow/MediaControlRootElementChromium.h:
762         (MediaControlRootElementChromium):
763         * html/track/LoadableTextTrack.cpp:
764         (WebCore::LoadableTextTrack::LoadableTextTrack):
765         * html/track/LoadableTextTrack.h:
766         (LoadableTextTrack):
767         * inspector/CodeGeneratorInspector.py:
768         (Generator.go):
769         * inspector/InspectorCSSAgent.cpp:
770         (WebCore::InspectorCSSAgent::InspectorCSSAgent):
771         * inspector/InspectorCSSAgent.h:
772         (InspectorCSSAgent):
773         * inspector/InspectorDOMDebuggerAgent.cpp:
774         (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
775         * inspector/InspectorDOMDebuggerAgent.h:
776         (InspectorDOMDebuggerAgent):
777         * inspector/InspectorMemoryAgent.cpp:
778         (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
779         * inspector/InspectorMemoryAgent.h:
780         (InspectorMemoryAgent):
781         * notifications/NotificationController.cpp:
782         (WebCore::NotificationController::NotificationController):
783         * notifications/NotificationController.h:
784         (NotificationController):
785         * page/animation/CompositeAnimation.h:
786         (WebCore::CompositeAnimation::CompositeAnimation):
787         (CompositeAnimation):
788         * platform/Length.cpp:
789         * platform/audio/ReverbConvolver.cpp:
790         (WebCore::ReverbConvolver::ReverbConvolver):
791         * platform/audio/ReverbConvolver.h:
792         (ReverbConvolver):
793         * platform/audio/ReverbConvolverStage.cpp:
794         (WebCore::ReverbConvolverStage::ReverbConvolverStage):
795         * platform/audio/ReverbConvolverStage.h:
796         (ReverbConvolverStage):
797         * platform/graphics/TextRun.cpp:
798         (ExpectedTextRunSize):
799         * platform/graphics/chromium/cc/CCThreadProxy.h:
800         (CCThreadProxy):
801         * platform/graphics/filters/FECustomFilter.cpp:
802         (WebCore::FECustomFilter::FECustomFilter):
803         * platform/graphics/filters/FECustomFilter.h:
804         (FECustomFilter):
805         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
806         (JPEGImageReader):
807         * platform/leveldb/LevelDBTransaction.cpp:
808         (WebCore::LevelDBTransaction::TreeIterator::next):
809         * platform/text/TextCodecICU.cpp:
810         (WebCore::TextCodecICU::TextCodecICU):
811         * platform/text/TextCodecICU.h:
812         (TextCodecICU):
813         * rendering/InlineBox.cpp:
814         * rendering/InlineFlowBox.cpp:
815         * rendering/RenderText.cpp:
816         * rendering/style/KeyframeList.h:
817         (WebCore::KeyframeList::KeyframeList):
818         (KeyframeList):
819         * rendering/svg/RenderSVGTextPath.cpp:
820         (WebCore::RenderSVGTextPath::RenderSVGTextPath):
821         * rendering/svg/RenderSVGTextPath.h:
822         * rendering/svg/SVGInlineTextBox.cpp:
823         * svg/SVGPathByteStreamSource.cpp:
824         * svg/SVGPathByteStreamSource.h:
825         * svg/SVGPathTraversalStateBuilder.cpp:
826         (WebCore::SVGPathTraversalStateBuilder::SVGPathTraversalStateBuilder):
827         * svg/SVGPathTraversalStateBuilder.h:
828         (SVGPathTraversalStateBuilder):
829         * xml/XSLStyleSheet.h:
830
831 2012-06-11  Kinuko Yasuda  <kinuko@chromium.org>
832
833         XHR returns size==0 Blob
834         https://bugs.webkit.org/show_bug.cgi?id=88750
835
836         Reviewed by Alexey Proskuryakov.
837
838         Response Blob's .size field must have the correct response size.
839
840         Test: http/tests/xmlhttprequest/response-blob-size.html
841
842         * xml/XMLHttpRequest.cpp:
843         (WebCore::XMLHttpRequest::responseBlob):
844
845 2012-06-11  Silvia Pfeiffer  <silviapf@chromium.org>
846
847         Introduce an Enclosure Element for Chromium video controls.
848         https://bugs.webkit.org/show_bug.cgi?id=87683
849
850         Reviewed by Eric Carlson.
851
852         Updated tests.
853
854         The Chrome video controls are receiving a visual update. A new enclosure div is required
855         to provide for a offset space from the video's boundaries. The visual update itself is in
856         a separate patch.
857
858         * css/mediaControlsChromium.css:
859         (video::-webkit-media-controls-enclosure):
860         Introduce CSS for enclosure div so it doesn't show yet.
861         * html/shadow/MediaControlRootElementChromium.cpp:
862         (WebCore::MediaControlChromiumEnclosureElement::MediaControlChromiumEnclosureElement):
863         Definition of the new enclosure element.
864         (WebCore::MediaControlChromiumEnclosureElement::create):
865         Definition of a create operator for the new enclosure element.
866         (WebCore::MediaControlChromiumEnclosureElement::shadowPseudoId):
867         Definition of the shadowPseudoId of -webkit-media-controls-enclosure for the enclosure div.
868         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
869         Initialize member element for enclosure div.
870         (WebCore::MediaControlRootElementChromium::create):
871         Instantiate enclosure div and add into DOM between controls and panel elements.
872         (WebCore::MediaControlRootElementChromium::setMediaController):
873         Set media controller for enclosure div.
874         (WebCore::MediaControlRootElementChromium::createTextTrackDisplay):
875         Insert text track display container to enclosure rather than panel.
876         * html/shadow/MediaControlRootElementChromium.h:
877         (WebCore):
878         (MediaControlChromiumEnclosureElement):
879         (WebCore::MediaControlChromiumEnclosureElement::setMediaController):
880         (WebCore::MediaControlChromiumEnclosureElement::mediaController):
881         (WebCore::MediaControlChromiumEnclosureElement::isMediaControlElement):
882         Add declaration of the new enclosure element and its member functions.
883         (MediaControlRootElementChromium):
884         Add member variable to controls root element to hold the enclosure element.
885
886 2012-06-11  Elliott Sprehn  <esprehn@gmail.com>
887
888         WebKit doesn't allow replacing the document element with a DocumentFragment containing one element
889         https://bugs.webkit.org/show_bug.cgi?id=88681
890
891         Reviewed by Ojan Vafai.
892
893         Fix bug where replacing an immediate child of a Document with a DocumentFragment
894         would throw a HIERARCHY_REQUEST_ERR instead of replacing the node as required by DOM4.
895         http://www.w3.org/TR/domcore/#mutation-algorithms
896
897         * dom/Document.cpp:
898         (WebCore::Document::canReplaceChild):
899             When the newChild was a DocumentFragment we incorrectly
900             iterated over the document's children twice instead of the
901             fragment when counting the total number of elements and
902             doctypes to enfoce that there's only one of each.
903
904 2012-06-11  Mary Wu  <mary.wu@torchmobile.com.cn>
905
906         [BlackBerry] Add handling of notifyDataReceived in NetworkJob even there's no data inside
907         https://bugs.webkit.org/show_bug.cgi?id=88773
908
909         Reviewed by Rob Buis.
910
911         Handling notifyDataReceived event even if there is no data inside.
912         This event was critical because it gives downloadFilterStream a chance
913         to follow up NetworkStream close event, and it also make pluginView in
914         FrameLoaderBlackBerry return normal logic.
915
916         RIM PR# 164563
917
918         Reviewed internally by Leo Yang.
919
920         * platform/network/blackberry/NetworkJob.cpp:
921         (WebCore::NetworkJob::handleNotifyDataReceived):
922
923 2012-06-11  Mary Wu  <mary.wu@torchmobile.com.cn>
924
925         [BlackBerry] Wrong mimetype for empty file link
926         https://bugs.webkit.org/show_bug.cgi?id=88642
927
928         Reviewed by Rob Buis.
929
930         RIM PR# 164164
931
932         For empty file link, we shouldn't give "application/octet-stream"
933         which will lead to download.
934
935         Reviewed internally by Charles Wei.
936
937         * platform/network/blackberry/NetworkJob.cpp:
938         (WebCore::NetworkJob::sendResponseIfNeeded):
939
940 2012-06-11  Jin Yang  <jin.a.yang@intel.com>
941
942         GeneratorGeneratedImage should cache images for the non-tiled case
943         https://bugs.webkit.org/show_bug.cgi?id=87094
944
945         Reviewed by Simon Fraser.
946
947         We cache the generated image if generator is not changed. By compared
948         with generating image on the fly, it will lose a little pixel precision
949         and several layout tests should be rebaselined. With this patch, the IE test
950         drive benchmark "Bayou" can gain about 50%.
951
952         No new tests. Performance optimization.
953
954         * platform/graphics/GeneratorGeneratedImage.cpp:
955         (WebCore::GeneratorGeneratedImage::draw):
956
957 2012-06-11  Vincent Scheib  <scheib@chromium.org>
958
959         Add new Pointer Lock spec attribute webkitPointerLockElement.
960         https://bugs.webkit.org/show_bug.cgi?id=88799
961
962         Reviewed by Dimitri Glazkov.
963
964         Part of a series of refactoring changes to update pointer lock API to
965         the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402
966
967         New attribute webkitPointerLockElement added. Follow up patches
968         will remove the previous isLocked attribute. Tests updated to use
969         the new attribute.
970
971         * bindings/generic/RuntimeEnabledFeatures.h:
972         (WebCore::RuntimeEnabledFeatures::webkitPointerLockElementEnabled):
973         * dom/Document.cpp:
974         (WebCore):
975         (WebCore::Document::webkitPointerLockElement):
976         * dom/Document.h:
977         (Document):
978         * dom/Document.idl:
979         * page/PointerLockController.h:
980         (WebCore::PointerLockController::element):
981
982 2012-06-11  Vincent Scheib  <scheib@chromium.org>
983
984         Consolidate Pointer Lock runtime enabled flags to just one.
985         https://bugs.webkit.org/show_bug.cgi?id=88810
986
987         Reviewed by Dimitri Glazkov.
988
989         No new tests.
990
991         * bindings/generic/RuntimeEnabledFeatures.h:
992         (WebCore::RuntimeEnabledFeatures::pointerLockEnabled):
993         (WebCore::RuntimeEnabledFeatures::setPointerLockEnabled):
994         * dom/MouseEvent.idl:
995         * page/Navigator.idl:
996
997 2012-06-11  Alexis Menard  <alexis.menard@openbossa.org>
998
999         [CSS3 Backgrounds and Borders] Protect box-decoration-break behind a feature flag.
1000         https://bugs.webkit.org/show_bug.cgi?id=88804
1001
1002         Reviewed by Tony Chang.
1003
1004         Protect box-decoration-break behind a feature flag enabled by default.
1005
1006         No new tests : no behavior change here.
1007
1008         * Configurations/FeatureDefines.xcconfig:
1009         * GNUmakefile.am:
1010         * css/CSSComputedStyleDeclaration.cpp:
1011         (WebCore):
1012         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1013         * css/CSSParser.cpp:
1014         (WebCore::isValidKeywordPropertyAndValue):
1015         (WebCore::isKeywordPropertyID):
1016         (WebCore::CSSParser::parseValue):
1017         * css/CSSPrimitiveValueMappings.h:
1018         (WebCore):
1019         * css/CSSProperty.cpp:
1020         (WebCore::CSSProperty::isInheritedProperty):
1021         * css/CSSValueKeywords.in:
1022         * css/StyleBuilder.cpp:
1023         (WebCore::StyleBuilder::StyleBuilder):
1024         * rendering/style/RenderStyle.h:
1025         * rendering/style/StyleBoxData.cpp:
1026         (WebCore::StyleBoxData::StyleBoxData):
1027         (WebCore::StyleBoxData::operator==):
1028         * rendering/style/StyleBoxData.h:
1029         (StyleBoxData):
1030
1031 2012-06-11  James Robinson  <jamesr@chromium.org>
1032
1033         [chromium] Port DrawingBufferChromium from TextureLayerChromium over to WebExternalTextureLayer
1034         https://bugs.webkit.org/show_bug.cgi?id=86273
1035
1036         Reviewed by Adrienne Walker.
1037
1038         This converts more WebCore code over to using public APIs instead of internal compositor layer types.
1039
1040         Refactor only, no change in behavior thus no new tests.
1041
1042         * platform/graphics/chromium/DrawingBufferChromium.cpp:
1043         (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
1044         (WebCore::DrawingBufferPrivate::~DrawingBufferPrivate):
1045         (WebCore::DrawingBufferPrivate::layer):
1046         (DrawingBufferPrivate):
1047         * platform/graphics/chromium/TextureLayerChromium.cpp:
1048         (WebCore::TextureLayerChromium::~TextureLayerChromium):
1049         (WebCore::TextureLayerChromium::setRateLimitContext):
1050         (WebCore::TextureLayerChromium::setNeedsDisplayRect):
1051         (WebCore::TextureLayerChromium::update):
1052         * platform/graphics/chromium/TextureLayerChromium.h:
1053         (WebKit):
1054         (TextureLayerChromiumClient):
1055
1056 2012-06-11  Max Feil  <mfeil@rim.com>
1057
1058         [BlackBerry] Seek calls are being unnecessarily delayed
1059         https://bugs.webkit.org/show_bug.cgi?id=88732
1060
1061         Reviewed by Antonio Gomes.
1062
1063         There is a problem with the way the m_userDrivenSeekTimer is
1064         implemented. When MediaPlayerPrivate::seek() is called, there
1065         is always a 100ms delay even if the timer is not running. The
1066         timer is supposed to space out (i.e. throttle) repeated seeks
1067         that come in too soon after a previous seek, but currently it
1068         is slowing down even single seeks and seeks that come in with
1069         adequate delay after a previous seek. I fixed this in my patch
1070         by improving the way the timer fired function is called.
1071         
1072         A note on the new m_lastSeekTimePending flag: This flag is
1073         needed so that userDrivenSeekTimerFired() knows whether or not
1074         to perform the seek. The only case where this flag will not be
1075         set is if no MediaPlayerPrivate::seek() call came in while the
1076         timer was active, in which case it's important to do nothing.
1077         I could encode this flag's information into the m_lastSeekTime
1078         float, for example by initializing it and resetting it to NAN
1079         and using isnan(). But I feel that using a separate bool is a
1080         more portable approach.
1081
1082         No new tests. I would like to propose not including a layout test
1083         with this fix. Doing timing tests for 100ms delays is tricky
1084         from Javascript, and I don't think the benefit of such a test
1085         outweighs the extra time it would take to develop one. The test
1086         would also be a problem to maintain as it may give different
1087         results over different runs and across different target hardware.
1088
1089         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
1090         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
1091         (WebCore::MediaPlayerPrivate::seek):
1092         (WebCore::MediaPlayerPrivate::userDrivenSeekTimerFired):
1093         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
1094         (MediaPlayerPrivate):
1095
1096 2012-06-11  Max Feil  <mfeil@rim.com>
1097
1098         [BlackBerry] Unexpected repeats of short media
1099         https://bugs.webkit.org/show_bug.cgi?id=88733
1100
1101         Reviewed by Antonio Gomes.
1102
1103         The m_userDrivenSeekTimer is causing unwanted repeats of short
1104         media such as sound effects because it is causing the current
1105         time to not reflect that the media has finished playing.
1106         This problem only affects media whose duration is close to
1107         or less than the SeekSubmissionDelay, which is currently
1108         set to 100ms. My fix is to ignore the userDrivenSeekTimer in
1109         MediaPlayerPrivate::currentTime() if the duration of the media
1110         is within twice the SeekSubmissionDelay. Seek drag smoothness
1111         is a non-issue for such short media.
1112
1113         Test: platform/blackberry/media/short-media-repeats-correctly.html
1114
1115         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
1116         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
1117         (WebCore):
1118         (WebCore::MediaPlayerPrivate::currentTime):
1119         (WebCore::MediaPlayerPrivate::seek):
1120         (WebCore::MediaPlayerPrivate::userDrivenSeekTimerFired):
1121         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
1122         (MediaPlayerPrivate):
1123
1124 2012-06-11  Julien Chaffraix  <jchaffraix@webkit.org>
1125
1126         Account for margin after when laying out <legend> element
1127         https://bugs.webkit.org/show_bug.cgi?id=35981
1128
1129         Reviewed by Abhishek Arya.
1130
1131         Tests: fast/forms/legend-after-margin-horizontal-writing-mode.html
1132                fast/forms/legend-after-margin-vertical-writing-mode.html
1133                fast/forms/legend-after-margin-with-before-border-horizontal-mode.html
1134                fast/forms/legend-small-after-margin-before-border-horizontal-mode.html
1135
1136         The existing code would ignore margin after when layouting out the <legend>. This
1137         change only adds the code to handle the margin after, the margin before is still
1138         ignored as it's not obvious how it should be working.
1139
1140         * rendering/RenderFieldset.cpp:
1141         (WebCore::RenderFieldset::layoutSpecialExcludedChild):
1142         Split the code in 2 code paths to reflect how we position and size. Those are covered by the
1143         tests above.
1144
1145 2012-06-11  James Robinson  <jamesr@chromium.org>
1146
1147         [chromium] Use WebGraphicsContext3D in rate limiting logic inside compositor
1148         https://bugs.webkit.org/show_bug.cgi?id=86259
1149
1150         Reviewed by Adrienne Walker.
1151
1152         This refactors the compositor's rate limiting implementation to use the Platform API's WebGraphicsContext3D
1153         directly instead of WebCore::GraphicsContext3D to cut down on the number of spurious WebCore dependencies in the
1154         compositor.  The one change in contract is that the caller to CCLayerTreeHost::startRateLimit() now has to call
1155         CCLayerTreeHost::stopRateLimit() before allowing the referenced context to go away since CCLayerTreeHost no
1156         longer retains a reference, but this was always happening already.
1157
1158         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1159         (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
1160         (WebCore::Canvas2DLayerChromium::setNeedsDisplayRect):
1161         * platform/graphics/chromium/RateLimiter.cpp:
1162         (WebCore::RateLimiter::create):
1163         (WebCore::RateLimiter::RateLimiter):
1164         (WebCore::RateLimiter::start):
1165         (WebCore::RateLimiter::rateLimitContext):
1166         * platform/graphics/chromium/RateLimiter.h:
1167         (WebKit):
1168         (RateLimiter):
1169         * platform/graphics/chromium/TextureLayerChromium.cpp:
1170         (WebCore::TextureLayerChromium::~TextureLayerChromium):
1171         (WebCore::TextureLayerChromium::setRateLimitContext):
1172         (WebCore::TextureLayerChromium::setNeedsDisplayRect):
1173         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1174         (WebCore::CCLayerTreeHost::startRateLimiter):
1175         (WebCore::CCLayerTreeHost::stopRateLimiter):
1176         (WebCore::CCLayerTreeHost::rateLimit):
1177         (WebCore):
1178         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1179         (CCLayerTreeHost):
1180
1181 2012-06-11  Dana Jansens  <danakj@chromium.org>
1182
1183         [chromium] Separate CCVideoDrawQuad and from the layer tree and video provider by removing ManagedTexture and WebVideoFrame pointers from the quad
1184         https://bugs.webkit.org/show_bug.cgi?id=88363
1185
1186         Reviewed by Adrienne Walker.
1187
1188         CCVideoDrawQuad should not contain any pointers to data in the layer
1189         tree so we are able to serialize it across process boundaries. This
1190         patch removes the ManagedTexture pointers from the quad class,
1191         replacing them with texture ids. It removes the WebVideoFrame* from
1192         the quad, replacing it with the frame provider's texture id included
1193         in the WebVideoFrame structure. And it uses a WebTransformationMatrix
1194         instead of a pointer to an array of floats.
1195
1196         Texture allocation is done in CCVideoLayerImpl via the
1197         contentsTextureAllocator, so that the memory usage can be tracked.
1198
1199         We move the copyPlaneToTextures() method back from LayerRendererChromium
1200         to CCVideoLayerImpl, as this method uses the texture data pointer in the
1201         WebVideoFrame, and we do not want to give this pointer to the quad
1202         class. Instead, this method makes use of the LayerTextureSubImage class
1203         to copy the pixel data into the texture.
1204
1205         LayerTextureSubImage is updated to allow non-4byte texture formats.
1206
1207         * platform/graphics/chromium/LayerRendererChromium.cpp:
1208         (WebCore::LayerRendererChromium::drawYUV):
1209         (WebCore::LayerRendererChromium::drawRGBA):
1210         (WebCore::LayerRendererChromium::drawNativeTexture2D):
1211         (WebCore::LayerRendererChromium::drawStreamTexture):
1212         (WebCore::LayerRendererChromium::drawVideoQuad):
1213         * platform/graphics/chromium/LayerTextureSubImage.cpp:
1214         (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
1215         (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
1216         * platform/graphics/chromium/TextureCopier.cpp:
1217         * platform/graphics/chromium/cc/CCVideoDrawQuad.cpp:
1218         (WebCore::CCVideoDrawQuad::create):
1219         (WebCore::CCVideoDrawQuad::CCVideoDrawQuad):
1220         * platform/graphics/chromium/cc/CCVideoDrawQuad.h:
1221         (CCVideoDrawQuad):
1222         (WebCore::CCVideoDrawQuad::planes):
1223         (WebCore::CCVideoDrawQuad::frameProviderTextureId):
1224         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1225         (WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
1226         (WebCore::CCVideoLayerImpl::willDraw):
1227         (WebCore::CCVideoLayerImpl::willDrawInternal):
1228         (WebCore::CCVideoLayerImpl::appendQuads):
1229         (WebCore::CCVideoLayerImpl::didDraw):
1230         (WebCore::CCVideoLayerImpl::FramePlane::allocateData):
1231         (WebCore):
1232         (WebCore::CCVideoLayerImpl::FramePlane::freeData):
1233         (WebCore::CCVideoLayerImpl::allocatePlaneData):
1234         (WebCore::CCVideoLayerImpl::copyPlaneData):
1235         (WebCore::CCVideoLayerImpl::freePlaneData):
1236         (WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
1237         (WebCore::CCVideoLayerImpl::didLoseContext):
1238         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
1239         (FramePlane):
1240         (WebCore::CCVideoLayerImpl::FramePlane::FramePlane):
1241
1242 2012-06-11  Joshua Bell  <jsbell@chromium.org>
1243
1244         IndexedDB: Object stores are not successfully deleted
1245         https://bugs.webkit.org/show_bug.cgi?id=88788
1246
1247         Reviewed by Tony Chang.
1248
1249         Discovered while working on http://webkit.org/b/83074 - object stores are not
1250         being deleted from the backing store. Deletion would succeed in the in-memory
1251         data structures, but after closing/re-opening the backing store the object store
1252         (but not its indexes/data) would reappear. Due to 83074, this isn't detectable
1253         by DRT without a full restart.
1254
1255         Test: [chromium] webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
1256
1257         * Modules/indexeddb/IDBLevelDBCoding.cpp:
1258         (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::compare):
1259
1260 2012-06-05  Eric Uhrhane <ericu@chromium.org>
1261
1262         Crash in fast/files/read tests during Garbage Collection
1263         https://bugs.webkit.org/show_bug.cgi?id=87165
1264
1265         Reviewed by Michael Saboff
1266
1267         Fix previous fix for hasPendingActivity, and fix a bug in a complex
1268         abort case as well--abort during the final progress event of a write
1269         would hang the writer.
1270
1271         * Modules/filesystem/FileWriter.cpp:
1272         (WebCore::FileWriter::stop):
1273         (WebCore::FileWriter::write):
1274         (WebCore::FileWriter::truncate):
1275         (WebCore::FileWriter::didWrite):
1276         (WebCore::FileWriter::didTruncate):
1277         (WebCore::FileWriter::didFail):
1278         (WebCore::FileWriter::completeAbort):
1279         (WebCore::FileWriter::doOperation):
1280         (WebCore::FileWriter::signalCompletion):
1281
1282 2012-06-11  Shawn Singh  <shawnsingh@chromium.org>
1283
1284         [chromium] Implement position:fixed in compositor thread
1285         https://bugs.webkit.org/show_bug.cgi?id=70103
1286
1287         Reviewed by Adrienne Walker.
1288
1289         Significant contributions to this patch by Alpha Lam and Sami Kyostila.
1290
1291         This patch is the compositor-side change that adds support for
1292         fixed-position layers to be composited layers. Before this patch,
1293         fixed-position elements were positioned only by WebCore (i.e. main
1294         thread when painting), and the compositor did not have enough
1295         knowledge on its own to position it properly. This patch adds the
1296         necessary math and plumbs the necessary layer information so that
1297         the impl thread can properly position fixed-position elements on
1298         its own. This support is necessary for correctness of composited
1299         fixed-position elements, which can greatly help to avoid
1300         repainting container layers when scrolling with a fixed-position
1301         layer.
1302
1303         There also needs to be WebCore-side support for this, which is
1304         addressed in https://bugs.webkit.org/show_bug.cgi?id=78864
1305
1306         Unit tests added to CCLayerTreeHostCommonTest:
1307           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithDirectContainer
1308           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithTransformedDirectContainer
1309           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithDistantContainer
1310           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithDistantContainerAndTransforms
1311           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithMultipleScrollDeltas
1312           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithIntermediateSurfaceAndTransforms
1313           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithMultipleIntermediateSurfaces
1314           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithContainerLayerThatHasSurface
1315           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerThatIsAlsoFixedPositionContainer
1316           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerThatHasNoContainer
1317
1318         * platform/graphics/chromium/LayerChromium.cpp:
1319         (WebCore::LayerChromium::LayerChromium):
1320         (WebCore::LayerChromium::pushPropertiesTo):
1321         * platform/graphics/chromium/LayerChromium.h:
1322         (WebCore::LayerChromium::setIsContainerForFixedPositionLayers):
1323         (WebCore::LayerChromium::isContainerForFixedPositionLayers):
1324         (LayerChromium):
1325         (WebCore::LayerChromium::setFixedToContainerLayerVisibleRect):
1326         (WebCore::LayerChromium::fixedToContainerLayerVisibleRect):
1327         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1328         (WebCore::CCLayerImpl::CCLayerImpl):
1329         * platform/graphics/chromium/cc/CCLayerImpl.h:
1330         (WebCore::CCLayerImpl::setIsContainerForFixedPositionLayers):
1331         (WebCore::CCLayerImpl::isContainerForFixedPositionLayers):
1332         (CCLayerImpl):
1333         (WebCore::CCLayerImpl::setFixedToContainerLayerVisibleRect):
1334         (WebCore::CCLayerImpl::fixedToContainerLayerVisibleRect):
1335         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
1336         (WebCore::computeScrollCompensationForThisLayer):
1337         (WebCore):
1338         (WebCore::computeScrollCompensationMatrixForChildren):
1339         (WebCore::calculateDrawTransformsInternal):
1340         (WebCore::CCLayerTreeHostCommon::calculateDrawTransforms):
1341
1342 2012-06-11  Sam Weinig  <sam@webkit.org>
1343
1344         Remove support for disconnected/excluded from search frames, they are not used by Safari anymore
1345         https://bugs.webkit.org/show_bug.cgi?id=88723
1346
1347         Reviewed by Dan Bernstein.
1348
1349         * WebCore.exp.in:
1350         Update export.
1351         * editing/Editor.cpp:
1352         (WebCore::Editor::rangeOfString):
1353         (WebCore::Editor::countMatchesForText):
1354         * editing/Editor.h:
1355         (Editor):
1356         * loader/FrameLoader.cpp:
1357         (WebCore::FrameLoader::findFrameForNavigation):
1358         * page/DOMWindow.cpp:
1359         (WebCore::DOMWindow::parent):
1360         (WebCore::DOMWindow::top):
1361         * page/EventHandler.cpp:
1362         (WebCore::EventHandler::hitTestResultAtPoint):
1363         * page/Frame.cpp:
1364         (WebCore::Frame::Frame):
1365         * page/Frame.h:
1366         (Frame):
1367         * page/FrameTree.cpp:
1368         (WebCore::FrameTree::parent):
1369         (WebCore::FrameTree::top):
1370         * page/FrameTree.h:
1371         (FrameTree):
1372         * page/Location.cpp:
1373         (WebCore::Location::ancestorOrigins):
1374         * xml/XMLTreeViewer.cpp:
1375         (WebCore::XMLTreeViewer::hasNoStyleInformation):
1376         Update for the removal of disconnected frames and text search exclusions concepts.
1377
1378 2012-06-11  Xianzhu Wang  <wangxianzhu@chromium.org>
1379
1380         SVGImageCache leaks image data
1381         https://bugs.webkit.org/show_bug.cgi?id=87792
1382
1383         There are two functions to remove a client from a CachedImage:
1384         - CachedResource::removeClient()
1385         - CachedImage::removeClientForRenderer().
1386         It's easy to make error to call the former which will leak the cached
1387         image buffers in SVGImageCache.
1388
1389         This change combined the two by adding the virtual 
1390         CachedResource::didRemoveClient(). CachedImage will do SVGImageCache
1391         cleanup in the function.
1392
1393         Reviewed by Nikolas Zimmermann.
1394
1395         Test: svg/as-image/svg-image-leak-cached-data.html
1396
1397         * loader/cache/CachedFont.h:
1398         (WebCore::CachedFontClient::resourceClientType): Added 'const'.
1399         * loader/cache/CachedImage.cpp:
1400         (WebCore):
1401         (WebCore::CachedImage::didRemoveClient): Removes the client from SVGImageCache.
1402         (WebCore::CachedImage::lookupOrCreateImageForRenderer):
1403         * loader/cache/CachedImage.h:
1404         (CachedImage):
1405         (WebCore::CachedImageClient::resourceClientType): Added 'const'.
1406         * loader/cache/CachedRawResource.h:
1407         (WebCore::CachedRawResourceClient::resourceClientType): Added 'const'.
1408         * loader/cache/CachedResource.cpp:
1409         (WebCore::CachedResource::removeClient): Added invocation of didRemoveClient().
1410         * loader/cache/CachedResource.h:
1411         (WebCore::CachedResource::didRemoveClient): Added for subclasses to do additional works.
1412         * loader/cache/CachedResourceClient.h:
1413         (WebCore::CachedResourceClient::resourceClientType): Added 'const'.
1414         * loader/cache/CachedSVGDocument.h:
1415         (WebCore::CachedSVGDocumentClient::resourceClientType): Added 'const'.
1416         * loader/cache/CachedStyleSheetClient.h:
1417         (WebCore::CachedStyleSheetClient::resourceClientType): Added 'const'.
1418         * rendering/style/StyleCachedImage.cpp:
1419         (WebCore::StyleCachedImage::removeClient):
1420         * rendering/style/StyleCachedImageSet.cpp:
1421         (WebCore::StyleCachedImageSet::removeClient):
1422         * svg/graphics/SVGImageCache.cpp:
1423         (WebCore::SVGImageCache::~SVGImageCache): Added checking for leaks.
1424         (WebCore::SVGImageCache::removeClientFromCache):
1425         (WebCore::SVGImageCache::setRequestedSizeAndScales): 
1426         (WebCore::SVGImageCache::requestedSizeAndScales):
1427         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForClient):
1428         * svg/graphics/SVGImageCache.h:
1429         (WebCore):
1430         (SVGImageCache):
1431
1432 2012-06-11  Mark Pilgrim  <pilgrim@chromium.org>
1433
1434         [Chromium] Call shared timer functions directly
1435         https://bugs.webkit.org/show_bug.cgi?id=88781
1436
1437         Reviewed by Adam Barth.
1438
1439         Part of a refactoring series. See tracking bug 82948.
1440
1441         * platform/chromium/PlatformSupport.h:
1442         (PlatformSupport):
1443         * platform/chromium/SharedTimerChromium.cpp:
1444         (WebCore::setSharedTimerFiredFunction):
1445         (WebCore::setSharedTimerFireInterval):
1446
1447 2012-06-11  Pravin D  <pravind.2k4@gmail.com>
1448
1449         Relative pos. input fields in columns vanish when you start typing in them
1450         https://bugs.webkit.org/show_bug.cgi?id=76834
1451
1452         Reviewed by Julien Chaffraix.
1453
1454         Test: fast/multicol/multicol-with-child-renderLayer-for-input.html
1455
1456         * page/FrameView.cpp:
1457         (WebCore::updateLayerPositionFlags):
1458         Helper function to prepare the UpdateLayerPositionsFlags based on the input parameters.
1459         If didFullRepaint flag is set, then CheckForRepaints flag is removed from the default flags.
1460         Also during a relayout of a subtree, if the RenderLayer of the subtree root is paginated then updatePagination flag is
1461         included in the flags. 
1462
1463         (WebCore):
1464         (WebCore::FrameView::layout):
1465         Now uses the helper function updateLayerPositionFlags() to get the final set of UpdateLayerPositionsFlags.
1466
1467         * rendering/RenderLayer.h:
1468         (WebCore::RenderLayer::isPaginated):
1469         (RenderLayer):
1470         isPaginated function is made public so that FrameView class can use it prepare UpdateLayerPositionsFlags.
1471
1472 2012-06-11  Mark Pilgrim  <pilgrim@chromium.org>
1473
1474         [Chromium] Remove some dead code in PasteboardChromium
1475         https://bugs.webkit.org/show_bug.cgi?id=88782
1476
1477         Reviewed by Adam Barth.
1478
1479         Part of a refactoring series. See tracking bug 82948.
1480         Leftover detritus from bug 88038.
1481
1482         * platform/chromium/PasteboardChromium.cpp:
1483         (WebCore::Pasteboard::documentFragment):
1484
1485 2012-06-11  Peter Beverloo  <peter@chromium.org>
1486
1487         [Chromium] Theme updates for Android in menu list rendering and selection backgrounds
1488         https://bugs.webkit.org/show_bug.cgi?id=88775
1489
1490         Reviewed by Adam Barth.
1491
1492         For Chrome on Android, use the width of the scrollbar down arrow instead
1493         of the scrollbar's width for determining the arrow padding to apply for
1494         menu list rendering, as WebKit isn't drawing a scrollbar (thus width=0).
1495
1496         Furthermore, change the default active selection background color to be
1497         equal to the tap highlighting color.
1498
1499         These changes should be covered by existing layout tests.
1500
1501         * rendering/RenderThemeChromiumAndroid.cpp:
1502         (WebCore::RenderThemeChromiumAndroid::menuListArrowPadding):
1503         (WebCore): Retrieve the scrollbar down arrow's size via PlatformSupport.
1504         * rendering/RenderThemeChromiumAndroid.h: Override the menuListArrowPadding
1505             and platformActiveSelectionBackgroundColor methods, and add a static
1506             static RGBA32 color for the default active selection bg color.
1507         * rendering/RenderThemeChromiumSkia.cpp:
1508         (WebCore::RenderThemeChromiumSkia::menuListArrowPadding): Default to
1509             the scrollbar thickness, not changing behavior for non-Android.
1510         (WebCore::RenderThemeChromiumSkia::menuListInternalPadding): Instead
1511             of polling the scrollbar thickness, call menuListArrowPadding().
1512         * rendering/RenderThemeChromiumSkia.h: 
1513         (RenderThemeChromiumSkia): Add the menuListArrowPadding() as a protected method.
1514
1515 2012-06-11  David Barr  <davidbarr@chromium.org>
1516
1517         Add css3-images image-resolution (dppx only)
1518         https://bugs.webkit.org/show_bug.cgi?id=85332
1519
1520         Reviewed by Tony Chang.
1521
1522         The css3-images module is at candidate recommendation.
1523         http://www.w3.org/TR/2012/CR-css3-images-20120417/#image-resolution
1524
1525         Test: fast/css/image-resolution.html
1526
1527         * css/CSSComputedStyleDeclaration.cpp:
1528         (WebCore):
1529         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1530         * css/CSSGrammar.y:
1531         * css/CSSParser.cpp:
1532         (WebCore::CSSParser::validUnit):
1533         (WebCore::CSSParser::createPrimitiveNumericValue):
1534         (WebCore::unitFromString):
1535         (WebCore::CSSParser::parseValidPrimitive):
1536         (WebCore::CSSParser::parseValue):
1537         (WebCore):
1538         (WebCore::CSSParser::parseImageResolution):
1539         (WebCore::CSSParser::detectNumberToken):
1540         * css/CSSParser.h:
1541         * css/CSSPrimitiveValue.cpp:
1542         (WebCore::isValidCSSUnitTypeForDoubleConversion):
1543         (WebCore::unitCategory):
1544         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
1545         (WebCore::CSSPrimitiveValue::customCssText):
1546         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
1547         * css/CSSPrimitiveValue.h:
1548         * css/CSSProperty.cpp:
1549         (WebCore::CSSProperty::isInheritedProperty):
1550         * css/CSSPropertyNames.in:
1551         * css/StyleBuilder.cpp:
1552         (WebCore):
1553         (ApplyPropertyImageResolution):
1554         (WebCore::ApplyPropertyImageResolution::applyInheritValue):
1555         (WebCore::ApplyPropertyImageResolution::applyInitialValue):
1556         (WebCore::ApplyPropertyImageResolution::applyValue):
1557         (WebCore::ApplyPropertyImageResolution::createHandler):
1558         (WebCore::StyleBuilder::StyleBuilder):
1559         * css/StyleResolver.cpp:
1560         (WebCore::StyleResolver::collectMatchingRulesForList):
1561         * rendering/RenderImage.cpp:
1562         (WebCore::RenderImage::styleDidChange):
1563         (WebCore::RenderImage::imageDimensionsChanged):
1564         * rendering/style/RenderStyle.cpp:
1565         (WebCore::RenderStyle::diff):
1566         * rendering/style/RenderStyle.h:
1567         * rendering/style/StyleRareInheritedData.cpp:
1568         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
1569         (WebCore::StyleRareInheritedData::operator==):
1570         * rendering/style/StyleRareInheritedData.h:
1571         (StyleRareInheritedData):
1572
1573 2012-06-05  Dana Jansens  <danakj@chromium.org>
1574
1575         [chromium] Free texture from CCIOSurfaceLayerImpl when it is destroyed
1576         https://bugs.webkit.org/show_bug.cgi?id=88371
1577
1578         Reviewed by James Robinson.
1579
1580         Unit test: CCLayerTreeHostImplTest.layersFreeTextures
1581
1582         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
1583         (WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
1584         (WebCore::CCIOSurfaceLayerImpl::willDraw):
1585
1586 2012-06-11  Carlos Garcia Campos  <cgarcia@igalia.com>
1587
1588         Unreviewed. Fix make distcheck issues.
1589
1590         * GNUmakefile.am: Add idl files in editing dir to EXTRA_DIST.
1591         * GNUmakefile.list.am: Add missing header file.
1592
1593 2012-06-11  Dan Bernstein  <mitz@apple.com>
1594
1595         Reverted r119940 because it caused multiple media tests to fail on Lion.
1596
1597         * html/HTMLMediaElement.cpp:
1598         (WebCore::HTMLMediaElement::prepareForLoad):
1599         (WebCore):
1600         (WebCore::HTMLMediaElement::userCancelledLoad):
1601         * html/HTMLMediaElement.h:
1602         (HTMLMediaElement):
1603         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1604         (WebCore::MediaPlayerPrivateQTKit::commonMovieAttributes):
1605
1606 2012-06-11  Zoltan Horvath  <zoltan@webkit.org>
1607
1608         [Qt] Add config tests for WEBP imagedecoder library, modify HAVE(decoderlibrary) to USE(...)$
1609         https://bugs.webkit.org/show_bug.cgi?id=87841
1610
1611         Reviewed by Simon Hausmann.
1612
1613         No new tests were needed.
1614
1615         * Target.pri:
1616         * WebCore.pri:
1617         * platform/image-decoders/ImageDecoder.cpp:
1618         (WebCore::ImageDecoder::create):
1619
1620 2012-06-11  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1621
1622         Add QML api for setting device width and height
1623         https://bugs.webkit.org/show_bug.cgi?id=88777
1624
1625         Reviewed by Simon Hausmann.
1626
1627         Change the default values for deviceWidth/Height to be 0 (unset). The
1628         original values were introduced by Qt and 0 makes it possible to
1629         detect if a value has never been set and therefore fall back.
1630
1631         Only Qt depended on the former values.
1632
1633         * page/Settings.cpp:
1634         (WebCore::Settings::Settings):
1635
1636 2012-06-11  Csaba Osztrogonác  <ossy@webkit.org>
1637
1638         [Qt][Win] Fix UString related build problem in Source/WebCore/bridge/qt/qt_instance.cpp
1639         https://bugs.webkit.org/show_bug.cgi?id=88310
1640
1641         Reviewed by Simon Hausmann.
1642
1643         * bridge/qt/qt_instance.cpp:
1644         (JSC::Bindings::QtInstance::getPropertyNames):
1645
1646 2012-06-11  Michael Brüning  <michael.bruning@nokia.com>
1647
1648         [Qt][WK2] Compute and set cache capacities using the current CacheModel
1649         https://bugs.webkit.org/show_bug.cgi?id=73918
1650
1651         Unreviewed build fix.
1652
1653         No new tests added as this is a build fix.
1654
1655         * platform/qt/FileSystemQt.cpp:
1656
1657 2012-06-11  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1658
1659         Rect-based hittesting doesn't work in tables.
1660         https://bugs.webkit.org/show_bug.cgi?id=86605
1661
1662         Reviewed by Julien Chaffraix.
1663
1664         The existing code only performed a single binary lookup for the central
1665         hit-test point. This meant area-based hit-testing did not work across
1666         table-cell borders. All cells spanned by a hit-test area must be hit
1667         tested.
1668
1669         This patch introduces three auxilary functions to help calculate rows
1670         and columns spanned by an rect. These are intended to also be used by
1671         repaint logic in a later patch.
1672
1673         For point-based hit-testing we maintain unchanged behavior and still
1674         only hit test a single column in a single row.
1675
1676         Test: fast/dom/nodesFromRect-table.html
1677
1678         * rendering/RenderTableSection.cpp:
1679         (WebCore::RenderTableSection::logicalRectForWritingModeAndDirection):
1680         (WebCore::RenderTableSection::spannedRows):
1681         (WebCore::RenderTableSection::spannedColumns):
1682         (WebCore::RenderTableSection::nodeAtPoint):
1683         * rendering/RenderTableSection.h:
1684         (RenderTableSection):
1685
1686 2012-06-11  Min Qin  <qinmin@google.com>
1687
1688         Adding a flag to show fullscreen media controls in chromium
1689         https://bugs.webkit.org/show_bug.cgi?id=88266
1690
1691         Reviewed by Adam Barth.
1692
1693         The default chromium shadow DOM for media element does not contain fullscreen button.
1694         This change adds a flag to display the fullscreen button.
1695         It will be used by the android port.
1696
1697         No new tests needed. We will use the same layout tests as desktop chromium.
1698         However, new test result expections will be added later.
1699
1700         * html/shadow/MediaControlRootElementChromium.cpp:
1701         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
1702         (WebCore::MediaControlRootElementChromium::create):
1703         (WebCore::MediaControlRootElementChromium::setMediaController):
1704         (WebCore::MediaControlRootElementChromium::reset):
1705         (WebCore::MediaControlRootElementChromium::reportedError):
1706         * html/shadow/MediaControlRootElementChromium.h:
1707         (MediaControlRootElementChromium):
1708
1709 2012-06-11  Michael Brüning  <michael.bruning@nokia.com>
1710
1711         [Qt][WK2] Compute and set cache capacities using the current CacheModel
1712         https://bugs.webkit.org/show_bug.cgi?id=73918
1713
1714         Reviewed by Kenneth Rohde Christiansen.
1715
1716         No new tests needed / applicable (using operating system functionality).
1717
1718         Added method to read free file system space for a path to support cache model
1719         implementation in Qt WK 2.
1720
1721         * platform/FileSystem.h:
1722         (WebCore):
1723         * platform/qt/FileSystemQt.cpp:
1724         (WebCore::getVolumeFreeSizeForPath): Added for Qt ports.
1725         (WebCore):
1726
1727 2012-06-11  Peter Wang  <peter.wang@torchmobile.com.cn>
1728
1729         [JSC] Web Inspector: implement breaking from native callback
1730         https://bugs.webkit.org/show_bug.cgi?id=43332
1731
1732         Reviewed by Pavel Feldman.
1733
1734         These test cases were enabled:
1735         LayoutTests/inspector/debugger/dom-breakpoints.html
1736         LayoutTests/inspector/debugger/event-listener-breakpoints.html
1737         LayoutTests/inspector/debugger/step-through-event-listeners.html
1738         LayoutTests/inspector/debugger/xhr-breakpoints.html
1739
1740         * bindings/js/ScriptDebugServer.cpp:
1741         (WebCore::ScriptDebugServer::breakProgram):
1742         * bindings/js/ScriptDebugServer.h:
1743         (WebCore::supportsNativeBreakpoints):
1744
1745 2012-06-11  MORITA Hajime  <morrita@google.com>
1746
1747         Spellchecker crash in async scenario.
1748         https://bugs.webkit.org/show_bug.cgi?id=88617
1749
1750         Reviewed by Tony Chang.
1751
1752         SpellCheckRequest::invokeRequest() can be reached after the frame is detached.
1753         SpellCheckRequest should ignore such a request since TextCheckerClient is not available
1754         for detached Frames.
1755
1756         No new tests. It's hard to reproduce this.
1757
1758         * editing/SpellChecker.cpp:
1759         (WebCore::SpellChecker::invokeRequest):
1760
1761 2012-06-11  Ryuan Choi  <ryuan.choi@samsung.com>
1762
1763         [EFL] Extract CursorMap from WidgetEfl.cpp.
1764         https://bugs.webkit.org/show_bug.cgi?id=88633
1765
1766         Reviewed by Ryosuke Niwa.
1767
1768         In order to share CursorMap in WebKit/efl and UIProcess of WebKit2/Efl,
1769         extract it and expose getEcoreCursor.
1770
1771         No new tests, refactoring only.
1772
1773         * platform/efl/EflScreenUtilities.cpp:
1774         (WebCore):
1775         (CursorMap):
1776         (WebCore::CursorMap::cursor):
1777         (WebCore::CursorMap::CursorMap):
1778         (WebCore::getEcoreCursor):
1779         * platform/efl/EflScreenUtilities.h:
1780         (WebCore):
1781         * platform/efl/WidgetEfl.cpp:
1782         (WebCore::Widget::applyFallbackCursor):
1783
1784 2012-06-10  Sheriff Bot  <webkit.review.bot@gmail.com>
1785
1786         Unreviewed, rolling out r119955.
1787         http://trac.webkit.org/changeset/119955
1788         https://bugs.webkit.org/show_bug.cgi?id=88758
1789
1790         Breaks Chromium compile - Chromium depends on removed API
1791         (Requested by dominicc on #webkit).
1792
1793         * WebCore.exp.in:
1794         * editing/Editor.cpp:
1795         (WebCore::Editor::insideVisibleArea):
1796         (WebCore):
1797         (WebCore::Editor::firstVisibleRange):
1798         (WebCore::Editor::lastVisibleRange):
1799         (WebCore::Editor::nextVisibleRange):
1800         (WebCore::Editor::rangeOfString):
1801         (WebCore::Editor::countMatchesForText):
1802         * editing/Editor.h:
1803         (Editor):
1804         * loader/FrameLoader.cpp:
1805         (WebCore::FrameLoader::findFrameForNavigation):
1806         * page/DOMWindow.cpp:
1807         (WebCore::DOMWindow::parent):
1808         (WebCore::DOMWindow::top):
1809         * page/EventHandler.cpp:
1810         (WebCore::EventHandler::hitTestResultAtPoint):
1811         * page/Frame.cpp:
1812         (WebCore::Frame::Frame):
1813         * page/Frame.h:
1814         (Frame):
1815         (WebCore::Frame::isDisconnected):
1816         (WebCore):
1817         (WebCore::Frame::setIsDisconnected):
1818         (WebCore::Frame::excludeFromTextSearch):
1819         (WebCore::Frame::setExcludeFromTextSearch):
1820         * page/FrameTree.cpp:
1821         (WebCore::FrameTree::parent):
1822         (WebCore::FrameTree::top):
1823         * page/FrameTree.h:
1824         (FrameTree):
1825         * page/Location.cpp:
1826         (WebCore::Location::ancestorOrigins):
1827         * xml/XMLTreeViewer.cpp:
1828         (WebCore::XMLTreeViewer::hasNoStyleInformation):
1829
1830 2012-06-08  Kinuko Yasuda  <kinuko@chromium.org>
1831
1832         Using BlobBuilder should show a deprecation warning message (if it is enabled)
1833         https://bugs.webkit.org/show_bug.cgi?id=88644
1834
1835         Reviewed by Jian Li.
1836
1837         Mac has already disabled BlobBuilder, but Chromium still has it.
1838         We should start showing a warning to let people migrate to using Blob constructor.
1839
1840         Tests: fast/files/blob-builder-crash.html
1841
1842         * fileapi/WebKitBlobBuilder.cpp:
1843         (WebCore):
1844         (WebCore::WebKitBlobBuilder::create):
1845         * fileapi/WebKitBlobBuilder.h:
1846         (WebCore):
1847         (WebKitBlobBuilder):
1848         * fileapi/WebKitBlobBuilder.idl:
1849
1850 2012-06-10  Sam Weinig  <sam@webkit.org>
1851
1852         Remove support for disconnected/excluded from search frames, they are not used by Safari anymore
1853         https://bugs.webkit.org/show_bug.cgi?id=88723
1854
1855         Reviewed by Dan Bernstein.
1856
1857         * WebCore.exp.in:
1858         Update export.
1859         * editing/Editor.cpp:
1860         (WebCore::Editor::rangeOfString):
1861         (WebCore::Editor::countMatchesForText):
1862         * editing/Editor.h:
1863         (Editor):
1864         * loader/FrameLoader.cpp:
1865         (WebCore::FrameLoader::findFrameForNavigation):
1866         * page/DOMWindow.cpp:
1867         (WebCore::DOMWindow::parent):
1868         (WebCore::DOMWindow::top):
1869         * page/EventHandler.cpp:
1870         (WebCore::EventHandler::hitTestResultAtPoint):
1871         * page/Frame.cpp:
1872         (WebCore::Frame::Frame):
1873         * page/Frame.h:
1874         (Frame):
1875         * page/FrameTree.cpp:
1876         (WebCore::FrameTree::parent):
1877         (WebCore::FrameTree::top):
1878         * page/FrameTree.h:
1879         (FrameTree):
1880         * page/Location.cpp:
1881         (WebCore::Location::ancestorOrigins):
1882         * xml/XMLTreeViewer.cpp:
1883         (WebCore::XMLTreeViewer::hasNoStyleInformation):
1884         Update for the removal of disconnected frames and text search exclusions concepts.
1885
1886 2012-06-07  Kinuko Yasuda  <kinuko@google.com>
1887
1888         Move Quota related code out of DOMWindow and into the quota/ folder
1889         https://bugs.webkit.org/show_bug.cgi?id=88512
1890
1891         Reviewed by Adam Barth.
1892
1893         No new tests: no visible changes.
1894
1895         * CMakeLists.txt:
1896         * DerivedSources.cpp:
1897         * DerivedSources.make:
1898         * DerivedSources.pri:
1899         * Modules/quota/DOMWindowQuota.cpp: Added.
1900         * Modules/quota/DOMWindowQuota.h: Added.
1901         * Modules/quota/DOMWindowQuota.idl: Added.
1902         * Modules/quota/StorageInfo.cpp: Renamed from Source/WebCore/storage/StorageInfo.cpp.
1903         * Modules/quota/StorageInfo.h: Renamed from Source/WebCore/storage/StorageInfo.h.
1904         * Modules/quota/StorageInfo.idl: Renamed from Source/WebCore/storage/StorageInfo.idl.
1905         * Modules/quota/StorageInfoErrorCallback.h: Renamed from Source/WebCore/storage/StorageInfoErrorCallback.h.
1906         * Modules/quota/StorageInfoErrorCallback.idl: Renamed from Source/WebCore/storage/StorageInfoErrorCallback.idl.
1907         * Modules/quota/StorageInfoQuotaCallback.h: Renamed from Source/WebCore/storage/StorageInfoQuotaCallback.h.
1908         * Modules/quota/StorageInfoQuotaCallback.idl: Renamed from Source/WebCore/storage/StorageInfoQuotaCallback.idl.
1909         * Modules/quota/StorageInfoUsageCallback.h: Renamed from Source/WebCore/storage/StorageInfoUsageCallback.h.
1910         * Modules/quota/StorageInfoUsageCallback.idl: Renamed from Source/WebCore/storage/StorageInfoUsageCallback.idl.
1911         * Target.pri:
1912         * WebCore.gyp/WebCore.gyp:
1913         * WebCore.gypi:
1914         * WebCore.pri:
1915         * WebCore.vcproj/WebCore.vcproj:
1916         * WebCore.vcproj/WebCoreCommon.vsprops:
1917         * WebCore.vcproj/copyForwardingHeaders.cmd:
1918         * WebCore.xcodeproj/project.pbxproj:
1919         * page/DOMWindow.cpp:
1920         * page/DOMWindow.h:
1921         * page/DOMWindow.idl:
1922
1923 2012-06-10  Hayato Ito  <hayato@chromium.org>
1924
1925         An inheritance of '-webkit-user-modify' does not stop at shadow boundary.
1926         https://bugs.webkit.org/show_bug.cgi?id=88514
1927
1928         Reviewed by Ryosuke Niwa.
1929
1930         In StyleResolver::styleForElement(), we reset '-webkit-user-modify'
1931         CSS property after inheriting a parent style, but that is not
1932         enough.  We also have to reset '-webkit-user-modify' when we use a
1933         cached result in applying matched properties.
1934
1935         Test: fast/dom/shadow/user-modify-inheritance.html
1936
1937         * css/StyleResolver.cpp:
1938         (WebCore::StyleResolver::applyMatchedProperties):
1939         (WebCore::StyleResolver::styleForElement):
1940         * css/StyleResolver.h:
1941         (StyleResolver):
1942         * rendering/style/RenderStyle.cpp:
1943         (WebCore::RenderStyle::inheritFrom):
1944         * rendering/style/RenderStyle.h:
1945
1946 2012-06-10  Yoshifumi Inoue  <yosin@chromium.org>
1947
1948         [Forms] Introduce Decimal behind the InputNumber type
1949         https://bugs.webkit.org/show_bug.cgi?id=88383
1950
1951         Reviewed by Kent Tamura.
1952
1953         This patch introduces decimal arithmetic for steppable input types,
1954         e.g. date, datetime, number, range, and so on, to avoid rounding error
1955         caused by base 2 floating point representation, e.g. C/C++ double type.
1956
1957         Most of decimal arithmetic calculations are implemented in StepRange
1958         class, replacing "double" with "Decimal", InputType::applyStep, and
1959         InputType::stepFromRenderer.
1960
1961         Changes introduced by this patch are still intermediate state.
1962         Following patch will replace InputNumber type to Decimal type for
1963         completion of introducing decimal arithmetic.
1964
1965         Test: fast/forms/range/range-value-rounding.html
1966
1967         * html/BaseDateAndTimeInputType.cpp:
1968         (WebCore::BaseDateAndTimeInputType::serialize): Changed for Decimal type.
1969         (WebCore::BaseDateAndTimeInputType::serializeWithComponents): ditto.
1970         * html/DateInputType.cpp:
1971         (WebCore::DateInputType::createStepRange): Replaced NumberWithDecimalPlaces to InputNumber.
1972         * html/DateTimeInputType.cpp:
1973         (WebCore::DateTimeInputType::createStepRange): Replaced NumberWithDecimalPlaces to InputNumber.
1974         * html/DateTimeLocalInputType.cpp:
1975         (WebCore::DateTimeLocalInputType::createStepRange): Replaced NumberWithDecimalPlaces to InputNumber.
1976         * html/InputType.cpp:
1977         (WebCore::InputType::rangeUnderflow): Changed for Decimal type.
1978         (WebCore::InputType::rangeOverflow): Changed for Decimal type.
1979         (WebCore::InputType::minimum): Changed for Decimal type.
1980         (WebCore::InputType::maximum): ditto.
1981         (WebCore::InputType::isInRange): ditto.
1982         (WebCore::InputType::isOutOfRange): ditto.
1983         (WebCore::InputType::stepMismatch): ditto.
1984         (WebCore::InputType::validationMessage): ditto.
1985         (WebCore::InputType::parseToNumberOrNaN): ditto.
1986         (WebCore::InputType::applyStep): ditto.
1987         (WebCore::InputType::stepUpFromRenderer): ditto.
1988         * html/InputType.h:
1989         (InputType): Removed parseToNumberWIthDecimaplPlaces.
1990         * html/MonthInputType.cpp:
1991         (WebCore::MonthInputType::createStepRange): Changed for Decimal type.
1992         * html/NumberInputType.cpp:
1993         (WebCore::RealNumberRenderSize): Added for calculateRenderSize.
1994         (WebCore::calculateRenderSize): Added. This function replacess lengthBeforeDecimalPoint.
1995         (WebCore::NumberInputType::createStepRange): Changed for Decimal type.
1996         (WebCore::NumberInputType::sizeShouldIncludeDecoration): Changed to use calculateRenderSize.
1997         (WebCore::NumberInputType::parseToNumber): Changed for Decimal type.
1998         (WebCore::NumberInputType::serialize): ditto.
1999         * html/NumberInputType.h:
2000         (NumberInputType): Removed parseToNumberWIthDecimaplPlaces.
2001         * html/RangeInputType.cpp:
2002         (WebCore::RangeInputType::createStepRange): Changed for Decimal type.
2003         (WebCore::RangeInputType::handleKeydownEvent): ditto.
2004         (WebCore::RangeInputType::parseToNumber): ditto.
2005         (WebCore::RangeInputType::serialize): ditto.
2006         * html/StepRange.cpp:
2007         (WebCore::StepRange::StepRange): Removed decimal places and changed for Decimal type.
2008         (WebCore::StepRange::acceptableError): Changed for Decimal type.
2009         (WebCore::StepRange::alignValueForStep): ditto.
2010         (WebCore::StepRange::clampValue): Changed for Decimal type and std::min/max.
2011         (WebCore::StepRange::parseStep): Changed for Decimal type and removed NumberWithDecimalPlaces.
2012         (WebCore::StepRange::stepMismatch): Changed for Decimal type.
2013         (WebCore::convertDoubleToInputNumber): Changed to real implementation.
2014         (WebCore::convertInputNumberToDouble):  Changed to real implementation.
2015         * html/StepRange.h:
2016         (InputNumber): Replacement of NumberWithDecimalPlaces.
2017         (WebCore::StepRange::InputNumber::InputNumber):
2018         * html/TimeInputType.cpp:
2019         (WebCore::TimeInputType::createStepRange): Changed for Decimal type.
2020         * html/WeekInputType.cpp:
2021         (WebCore::WeekInputType::createStepRange): Changed for Decimal type.
2022         * html/parser/HTMLParserIdioms.cpp:
2023         (WebCore::serializeForNumberType): Added Decimal version.
2024         (WebCore::parseToDecimalForNumberType): Added.
2025         * html/parser/HTMLParserIdioms.h: Updated comments for parseToDoubleForNumberType.
2026         * html/shadow/SliderThumbElement.cpp:
2027         (WebCore::sliderPosition): Changed for Decimal type.
2028
2029 2012-06-10  Jason Liu  <jason.liu@torchmobile.com.cn>
2030
2031         [BlackBerry] Possible to clobber httponly cookie.
2032         https://bugs.webkit.org/show_bug.cgi?id=86067
2033
2034         Reviewed by Rob Buis.
2035
2036         If a cookie is set by javaScript and there is already a same httpOnly cookie in cookieManager,
2037         we should reject it. If it has a httpOnly property, we reject it, too.
2038
2039         Test: http/tests/cookies/js-get-and-set-http-only-cookie.html
2040
2041         * platform/blackberry/CookieJarBlackBerry.cpp:
2042         (WebCore::setCookies):
2043         * platform/blackberry/CookieManager.cpp:
2044         (WebCore::CookieManager::setCookies):
2045         (WebCore::CookieManager::checkAndTreatCookie):
2046         (WebCore::CookieManager::addCookieToMap):
2047         (WebCore::CookieManager::setPrivateMode):
2048         * platform/blackberry/CookieManager.h:
2049         * platform/blackberry/CookieMap.cpp:
2050         (WebCore::CookieMap::addOrReplaceCookie):
2051         (WebCore::CookieMap::removeCookie):
2052         * platform/blackberry/CookieMap.h:
2053         (CookieMap):
2054
2055 2012-06-10  Pablo Flouret  <pablof@motorola.com>
2056
2057         Access control allow lists starting with a comma are parsed incorrectly (CORS)
2058         https://bugs.webkit.org/show_bug.cgi?id=88461
2059
2060         Reviewed by Adam Barth.
2061
2062         The parsing algorithm would stop parsing at the first comma (being an
2063         empty entry, of sorts) and bail out, effectively ignoring the whole
2064         header.
2065
2066         Test: http/tests/xmlhttprequest/access-control-allow-lists-starting-with-comma.html
2067
2068         * loader/CrossOriginPreflightResultCache.cpp:
2069         (WebCore::parseAccessControlAllowList):
2070
2071 2012-06-10  Darin Adler  <darin@apple.com>
2072
2073         Some additional tweaks to keep TreeShared code simple/clean
2074         https://bugs.webkit.org/show_bug.cgi?id=88738
2075
2076         Reviewed by Adam Barth.
2077
2078         * platform/TreeShared.h: Make constructor and destructor both protected.
2079         It's slightly dangerous to have a public non-virtual destructor, and there
2080         is no reason it needs to be public.
2081         (WebCore::TreeShared::~TreeShared): Make debug-only destructor non-virtual;
2082         we were getting no value from it being virtual. Now that it's non-virtual,
2083         there is no need to use an #if on it since it's an empty inline destructor
2084         in non-debug builds.
2085
2086 2012-06-06  Jer Noble  <jer.noble@apple.com>
2087
2088         REGRESSION: Setting invalid media "src" does not cause "error" event
2089         https://bugs.webkit.org/show_bug.cgi?id=88423
2090
2091         Reviewed by Eric Carlson.
2092
2093         Test: http/tests/media/video-src-invalid-error.html
2094
2095         Two problems here.  When the loadTimer is scheduled, the m_pendingLoadFlags
2096         variable is set to specify what type of load is scheduled.  It is cleared
2097         when the loadTimer fires. But, when prepareForLoad() stops the loadTimer,
2098         it does not clear the m_pendingLoadFlags variable, so the next time
2099         scheduleLoad() is called (when the src is changed to an invalid URL)
2100         prepareForLoad() is not called again.
2101
2102         Second problem: Due to a bug in QTKit (<rdar://problem/11606415>), the
2103         QTMovieLoadStateChangedNotification is never fired for an invalid http
2104         URL if QTMovieOpenAsyncRequiredAttribute:YES is not passed when creating
2105         the QTMovie.
2106
2107         Add a new utility method which both stops the m_loadTimer and clears the 
2108         m_pendingLoadFlags, and use it in all the places where m_loadTimer was 
2109         stopped explicitly:
2110
2111         * html/HTMLMediaElement.cpp:
2112         (WebCore::HTMLMediaElement::prepareForLoad):
2113         (WebCore::HTMLMediaElement::stopLoadTimer): Added
2114         (WebCore::HTMLMediaElement::userCancelledLoad):
2115         * html/HTMLMediaElement.h:
2116
2117         And pass QTMovieOpenAsyncRequiredAttribute:YES when creating the QTMovie:
2118
2119         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2120         (WebCore::MediaPlayerPrivateQTKit::commonMovieAttributes):
2121
2122 2012-06-06  Jer Noble  <jer.noble@apple.com>
2123
2124         Add logging functions to MediaPlayerPrivateQTKit.
2125         https://bugs.webkit.org/show_bug.cgi?id=88425
2126
2127         Reviewed by Eric Carlson.
2128
2129         No new tests; adds logging functions to aide debugging.
2130
2131         MediaPlayerPrivateQTKit should emit the same kind of logging messages as 
2132         other MediaPlayerPrivate engines to aide in debugging.
2133
2134         Distinguish between loadedRangesChanged() and loadStateChanged() for logging
2135         purposes:
2136         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
2137         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2138         (WebCore::MediaPlayerPrivateQTKit::loadedRangesChanged):
2139         (-[WebCoreMovieObserver loadedRangesChanged:]):
2140
2141         Add LOG messages for each of the following functions:
2142         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2143         (WebCore::MediaPlayerPrivateQTKit::~MediaPlayerPrivateQTKit):
2144         (WebCore::MediaPlayerPrivateQTKit::createQTMovie):
2145         (WebCore::MediaPlayerPrivateQTKit::createQTMovieView):
2146         (WebCore::MediaPlayerPrivateQTKit::detachQTMovieView):
2147         (WebCore::MediaPlayerPrivateQTKit::createQTVideoRenderer):
2148         (WebCore::MediaPlayerPrivateQTKit::destroyQTVideoRenderer):
2149         (WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
2150         (WebCore::MediaPlayerPrivateQTKit::destroyQTMovieLayer):
2151         (WebCore::MediaPlayerPrivateQTKit::setUpVideoRendering):
2152         (WebCore::MediaPlayerPrivateQTKit::tearDownVideoRendering):
2153         (WebCore::MediaPlayerPrivateQTKit::load):
2154         (WebCore::MediaPlayerPrivateQTKit::prepareToPlay):
2155         (WebCore::MediaPlayerPrivateQTKit::play):
2156         (WebCore::MediaPlayerPrivateQTKit::pause):
2157         (WebCore::MediaPlayerPrivateQTKit::seek):
2158         (WebCore::MediaPlayerPrivateQTKit::cancelSeek):
2159         (WebCore::MediaPlayerPrivateQTKit::setVolume):
2160         (WebCore::MediaPlayerPrivateQTKit::setRate):
2161         (WebCore::MediaPlayerPrivateQTKit::setPreservesPitch):
2162         (WebCore::MediaPlayerPrivateQTKit::cancelLoad):
2163         (WebCore::MediaPlayerPrivateQTKit::prepareForRendering):
2164         (WebCore::MediaPlayerPrivateQTKit::updateStates):
2165         (WebCore::MediaPlayerPrivateQTKit::loadStateChanged):
2166         (WebCore::MediaPlayerPrivateQTKit::rateChanged):
2167         (WebCore::MediaPlayerPrivateQTKit::sizeChanged):
2168         (WebCore::MediaPlayerPrivateQTKit::timeChanged):
2169         (WebCore::MediaPlayerPrivateQTKit::didEnd):
2170         (WebCore::MediaPlayerPrivateQTKit::clearMediaCache):
2171         (WebCore::MediaPlayerPrivateQTKit::clearMediaCacheForSite):
2172         (WebCore::MediaPlayerPrivateQTKit::disableUnsupportedTracks):
2173
2174 2012-06-07  Jer Noble  <jer.noble@apple.com>
2175
2176         WebCore should use a single definition of an invalid media time.
2177         https://bugs.webkit.org/show_bug.cgi?id=88572
2178
2179         Reviewed by Eric Carlson.
2180
2181         No new tests; no change in functionality, so covered by existing tests.
2182
2183         Add a new, universal definition for an invalid media time:
2184         * platform/graphics/MediaPlayer.h:
2185         (WebCore::MediaPlayer::invalidTime):
2186
2187         Use this new definition instead of the hodge podge of (identical) local
2188         definitions for an invalid media time:
2189         * html/HTMLMediaElement.cpp:
2190         (WebCore::HTMLMediaElement::HTMLMediaElement):
2191         (WebCore::HTMLMediaElement::invalidateCachedTime):
2192         (WebCore::HTMLMediaElement::currentTime):
2193         (WebCore::HTMLMediaElement::initialTime):
2194         (WebCore::HTMLMediaElement::playbackProgressTimerFired):
2195         (WebCore::HTMLMediaElement::prepareMediaFragmentURI):
2196         (WebCore::HTMLMediaElement::applyMediaFragmentURI):
2197         * html/MediaFragmentURIParser.cpp:
2198         (WebCore::MediaFragmentURIParser::invalidTimeValue):
2199         (WebCore::MediaFragmentURIParser::MediaFragmentURIParser):
2200         (WebCore::MediaFragmentURIParser::startTime):
2201         (WebCore::MediaFragmentURIParser::endTime):
2202         (WebCore::MediaFragmentURIParser::parseTimeFragment):
2203         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2204         (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
2205         (WebCore::MediaPlayerPrivateAVFoundation::duration):
2206         (WebCore::MediaPlayerPrivateAVFoundation::seeking):
2207         (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted):
2208         (WebCore::MediaPlayerPrivateAVFoundation::invalidateCachedDuration):
2209         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
2210         (MediaPlayerPrivateAVFoundation):
2211         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2212         (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration):
2213         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2214         (WebCore::MediaPlayerPrivateQTKit::duration):
2215         (WebCore::MediaPlayerPrivateQTKit::updateStates):
2216         (WebCore::MediaPlayerPrivateQTKit::timeChanged):
2217
2218 2012-06-10  Darin Adler  <darin@apple.com>
2219
2220         Remove unneeded callRemovedLastRef function from TreeShared refactoring
2221         https://bugs.webkit.org/show_bug.cgi?id=88653
2222
2223         Reviewed by Sam Weinig.
2224
2225         * WebCore.exp.in: Updated to remove callRemovedLastRef and add removedLastRef.
2226
2227         * dom/ContainerNode.cpp: Removed callRemovedLastRef, which is no longer
2228         needed and also had a bad cast in it.
2229
2230         * dom/Document.h: Made removedLastRef private and non-virtual and made Node
2231         a friend so it can call the private function.
2232
2233         * dom/Node.cpp:
2234         (WebCore::Node::removedLastRef): Moved here. This should not be an inline
2235         function. Added comments explaining why it should not be inlined. Also added
2236         explicit code to call to Document::removedLastRef, and added a comment why
2237         that's the right thing to do here.
2238         * dom/Node.h: Inherit from TreeShared<Node, ContainerNode>. Made the
2239         removedLastRef function non-virtual and removed it from the header file.
2240         Updated TreeShared using statements. Made the TreeShared template class a
2241         friend so it can call the private removedLastRef.
2242
2243         * html/HTMLFormControlElement.h: Updated TreeShared using statements to specify
2244         Node instead, which accomplishes the same thing.
2245         * html/HTMLObjectElement.h: Ditto.
2246
2247         * platform/TreeShared.h: Made TreeShared take two template arguments for the
2248         node type and the parent node type. Removed the callRemovedLastRef functions and
2249         the extra forward declarations it required. Removed the private unused
2250         removedLastRef function; not sure why it was left in here at all.
2251         (WebCore::TreeShared::deref): Call removedLastRef instead of callRemovedLastRef.
2252         (WebCore::TreeShared::setParent): Use ParentNodeType.
2253         (WebCore::TreeShared::parent): Ditto.
2254         (WebCore::adopted): Updated to have both template arguments.
2255
2256         * svg/SVGElementInstance.cpp:
2257         (WebCore::SVGElementInstance::removedLastRef): Replaced callRemovedLastRef with
2258         this. Moved the body out of the header and added a comment explaining why the
2259         function should not be inlined.
2260         * svg/SVGElementInstance.h: Made removedLastRef non-virtual, non-inline, and
2261         private. Made TreeShared a friend so it can call the private removedLastRef.
2262         Updated TreeShared using statements.
2263
2264 2012-06-10  Darin Adler  <darin@apple.com>
2265
2266         * WebCore.exp.in: Re-sorted and alphabetized the file.
2267
2268 2012-06-10  Balazs Kelemen  <kbalazs@webkit.org>
2269
2270         [Qt][Win] Fix building Source/WebCore/plugins/win/PluginViewWin.cpp
2271         https://bugs.webkit.org/show_bug.cgi?id=88308
2272
2273         Reviewed by Simon Hausmann.
2274
2275         No new tests, just a build fix.
2276
2277         Use ownerWindow() from page client. It has been
2278         introduced for x11 plugins to solve exactly the
2279         same problem.
2280
2281         * plugins/win/PluginViewWin.cpp:
2282         (windowHandleForPageClient):
2283
2284 2012-06-10  Balazs Kelemen  <kbalazs@webkit.org>
2285
2286         [Qt][Win] Fix building ImageQt.cpp
2287         https://bugs.webkit.org/show_bug.cgi?id=88306
2288
2289         Reviewed by Simon Hausmann.
2290
2291         No new tests, this is just a build fix.
2292
2293         * platform/graphics/qt/ImageQt.cpp:
2294         (WebCore):
2295         (WebCore::BitmapImage::create):
2296         Adapt to the "API" changes in Qt.
2297
2298 2012-06-09  Gregg Tavares  <gman@google.com>
2299
2300         Make WebGL mark draws for compositing even if the draw count is zero
2301         https://bugs.webkit.org/show_bug.cgi?id=88718
2302
2303         Reviewed by Kenneth Russell.
2304
2305         No new tests as no new functionality.
2306
2307         * html/canvas/WebGLRenderingContext.cpp:
2308         (WebCore):
2309         (WebCore::WebGLRenderingContext::drawArrays):
2310         (WebCore::WebGLRenderingContext::drawElements):
2311
2312 2012-06-09  Dominic Cooney  <dominicc@chromium.org>
2313
2314         [Chromium] Remove JavaScriptCore dependencies from gyp
2315         https://bugs.webkit.org/show_bug.cgi?id=88510
2316
2317         Reviewed by Adam Barth.
2318
2319         Chromium doesn't support JSC any more and there doesn't seem to be
2320         a strong interest in using GYP as the common build system in other
2321         ports.
2322
2323         No new functionality => No new tests.
2324
2325         * gyp/WebCore.gyp: Removed.
2326         * gyp/copy-forwarding-and-icu-headers.sh: Removed.
2327         * gyp/copy-inspector-resources.sh: Removed.
2328         * gyp/generate-derived-sources.sh: Removed.
2329         * gyp/generate-webcore-export-file-generator.sh: Removed.
2330         * gyp/gtk.gyp: Removed.
2331         * gyp/run-if-exists.sh: Removed.
2332         * gyp/streamline-inspector-source.sh: Removed.
2333         * gyp/update-info-plist.sh: Removed.
2334
2335 2012-06-07  Darin Adler  <darin@apple.com>
2336
2337         Refactor and improve code style in TextResourceDecoder to prepare for buffering improvement
2338         https://bugs.webkit.org/show_bug.cgi?id=88566
2339
2340         Reviewed by Alexey Proskuryakov.
2341
2342         * loader/TextResourceDecoder.cpp:
2343         (WebCore::bytesEqual): Added helper function to make comparing against sequences of bytes
2344         easier to read at the call site.
2345         (WebCore::KanjiCode::judge): Changed to use bytesEqual in a few places, merged multiple if
2346         statements, got rid of else after goto.
2347         (WebCore::TextResourceDecoder::checkForCSSCharset): Changed to use early return instead of
2348         nesting the whole function. Changed to use bytesEqual.
2349         (WebCore::skipComment): Changed to use early return for more cases. Changed to use bytesEqual.
2350         (WebCore::TextResourceDecoder::checkForHeadCharset): Changed to use bytesEqual.
2351         (WebCore::TextResourceDecoder::decode): Changed to use emptyString() instead of "", since
2352         the former is more efficient.
2353
2354 2012-06-09  Sheriff Bot  <webkit.review.bot@gmail.com>
2355
2356         Unreviewed, rolling out r118618 and r119353.
2357         http://trac.webkit.org/changeset/118618
2358         http://trac.webkit.org/changeset/119353
2359         https://bugs.webkit.org/show_bug.cgi?id=88720
2360
2361         Caused at least 30 different crashes on ClusterFuzz (Requested
2362         by inferno-sec on #webkit).
2363
2364         * loader/SubresourceLoader.cpp:
2365         (WebCore::SubresourceLoader::checkForHTTPStatusCodeError):
2366         * loader/cache/CachedCSSStyleSheet.cpp:
2367         (WebCore::CachedCSSStyleSheet::allClientsRemoved):
2368         * loader/cache/CachedFont.cpp:
2369         (WebCore::CachedFont::allClientsRemoved):
2370         * loader/cache/CachedFont.h:
2371         (WebCore::CachedFontClient::resourceClientType):
2372         * loader/cache/CachedImage.cpp:
2373         (WebCore::CachedImage::removeClientForRenderer):
2374         (WebCore):
2375         (WebCore::CachedImage::allClientsRemoved):
2376         (WebCore::CachedImage::lookupOrCreateImageForRenderer):
2377         * loader/cache/CachedImage.h:
2378         (CachedImage):
2379         (WebCore::CachedImageClient::resourceClientType):
2380         * loader/cache/CachedRawResource.cpp:
2381         (WebCore::CachedRawResource::allClientsRemoved):
2382         (WebCore):
2383         * loader/cache/CachedRawResource.h:
2384         (CachedRawResource):
2385         (WebCore::CachedRawResourceClient::resourceClientType):
2386         * loader/cache/CachedResource.cpp:
2387         (WebCore::CachedResource::removeClient):
2388         * loader/cache/CachedResource.h:
2389         (WebCore::CachedResource::allClientsRemoved):
2390         * loader/cache/CachedResourceClient.h:
2391         (WebCore::CachedResourceClient::resourceClientType):
2392         * loader/cache/CachedSVGDocument.h:
2393         (WebCore::CachedSVGDocumentClient::resourceClientType):
2394         * loader/cache/CachedScript.cpp:
2395         (WebCore::CachedScript::allClientsRemoved):
2396         * loader/cache/CachedStyleSheetClient.h:
2397         (WebCore::CachedStyleSheetClient::resourceClientType):
2398         * rendering/style/StyleCachedImage.cpp:
2399         (WebCore::StyleCachedImage::removeClient):
2400         * rendering/style/StyleCachedImageSet.cpp:
2401         (WebCore::StyleCachedImageSet::removeClient):
2402         * svg/graphics/SVGImageCache.cpp:
2403         (WebCore::SVGImageCache::~SVGImageCache):
2404         (WebCore::SVGImageCache::removeRendererFromCache):
2405         (WebCore::SVGImageCache::setRequestedSizeAndScales):
2406         (WebCore::SVGImageCache::requestedSizeAndScales):
2407         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
2408         * svg/graphics/SVGImageCache.h:
2409         (WebCore):
2410         (SVGImageCache):
2411
2412 2012-06-09  Florin Malita  <fmalita@chromium.org>
2413
2414         Fixed-position foreignObject descendants should be relative to the foreignObject viewport
2415         https://bugs.webkit.org/show_bug.cgi?id=88547
2416
2417         Reviewed by Abhishek Arya.
2418
2419         Tests: svg/foreignObject/fO-fixed-position-crash.html
2420                svg/foreignObject/fixed-position-expected.svg
2421                svg/foreignObject/fixed-position.svg
2422
2423         Fixed position elements are currently registered with the top level
2424         RenderView even when embedded within an SVG foreignOject. This patch
2425         changes containingBlock() & container() to return the containing
2426         foreignObject renderer instead.
2427
2428         The new foreignObject fixed position behavior matches that of current
2429         FireFox and Opera versions and is consistent with the spec:
2430         http://www.w3.org/TR/CSS2/visuren.html#fixed-positioning
2431         http://www.w3.org/TR/SVG/coords.html#EstablishingANewViewport
2432
2433         * rendering/RenderObject.cpp:
2434         (WebCore::RenderObject::containingBlock):
2435         (WebCore::RenderObject::container):
2436
2437 2012-06-09  Adam Barth  <abarth@webkit.org>
2438
2439         Can't use eval in iframes sanbdoxed via CSP header
2440         https://bugs.webkit.org/show_bug.cgi?id=88450
2441
2442         Reviewed by Mihai Parparita.
2443
2444         The initial empty document in a frame inherits the security context of
2445         its parent (including the CSP policy).  When we load the real document,
2446         in some cases we'll do a "secure transition" to the new document.  That
2447         means that we leave the global object in place in case the parent
2448         document has created any properties that it expects will be visible to
2449         the new document.
2450
2451         If the parent document has a CSP policy that blocks eval, the "no eval"
2452         bit will be set on the global object of the initial document.  When we
2453         perform a "secure transition" to the new document, we'll keep the bit,
2454         which is wrong.  In this patch, we reset the bit by always enabling
2455         eval when clearing the context, regardless of whether we're performing
2456         a "secure transition".
2457
2458         Test: http/tests/security/contentSecurityPolicy/iframe-inside-csp.html
2459
2460         * bindings/js/ScriptController.cpp:
2461         (WebCore::ScriptController::enableEval):
2462         (WebCore):
2463         * bindings/js/ScriptController.h:
2464         (ScriptController):
2465         * bindings/v8/ScriptController.cpp:
2466         (WebCore::ScriptController::enableEval):
2467         (WebCore):
2468         (WebCore::ScriptController::disableEval):
2469         * bindings/v8/ScriptController.h:
2470         (ScriptController):
2471         * loader/FrameLoader.cpp:
2472         (WebCore::FrameLoader::clear):
2473
2474 2012-06-09  Pablo Flouret  <pablof@motorola.com>
2475
2476         The value in Access-Control-Allow-Origin is not being matched correctly for CORS-enabled requests
2477         https://bugs.webkit.org/show_bug.cgi?id=88139
2478
2479         Reviewed by Adam Barth.
2480
2481         Compare a request's origin with the value given in any
2482         Access-Control-Allow-Origin headers in an exact, case-sensitive manner,
2483         instead of using SecurityOrigin::isSameSchemeHostPort(). Per step 3 of
2484         the resource sharing check algorithm in
2485         http://dvcs.w3.org/hg/cors/raw-file/tip/Overview.html#resource-sharing-check
2486
2487         Test: http/tests/xmlhttprequest/origin-exact-matching.html
2488
2489         * loader/CrossOriginAccessControl.cpp:
2490         (WebCore::passesAccessControlCheck):
2491
2492 2012-06-09  Huang Dongsung  <luxtella@company100.net>
2493
2494         [Qt][Texmap] All layers with backingStore are opaque when using TextureMapperGL.
2495         https://bugs.webkit.org/show_bug.cgi?id=88703
2496
2497         The bug originated from StillImage that is not override
2498         Image::currentFrameHasAlpha(), so it always returns false.
2499         StillImage is used by ImageBuffer, and if Texmap draws contents on ImageBuffer,
2500         TextureMapperBackingStore thinks contents does not have alpha.
2501
2502         Covered by existing compositing tests.
2503
2504         Reviewed by Noam Rosenthal.
2505
2506         * platform/graphics/qt/StillImageQt.cpp:
2507         (WebCore::StillImage::currentFrameHasAlpha):
2508         (WebCore):
2509         * platform/graphics/qt/StillImageQt.h:
2510         (StillImage):
2511
2512 2012-06-09  Victor Carbune  <victor@rosedu.org>
2513
2514         Basic support for timestamps within a TextTrackCue
2515         https://bugs.webkit.org/show_bug.cgi?id=88187
2516
2517         Implemented support for timestamps within a TextTrackCue.
2518         This enables rendering functionality for Karaoke and Paint-on captions.
2519
2520         Reviewed by Eric Carlson.
2521
2522         Test: media/track/track-cue-rendering-inner-timestamps.html
2523
2524         * css/mediaControls.css: Remove the background shadow pseudo-id and
2525         added two others, which can be further used for styling past / future
2526         contents of the cue.
2527         (video::-webkit-media-text-track-past-nodes): Used to style elements
2528         within the cue that are before the current movie time.
2529         (video::-webkit-media-text-track-future-nodes): Used to style elements
2530         within the cue that are after the current movie time.
2531         * html/HTMLMediaElement.cpp:
2532         (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Regardless of whether
2533         the active set changed or not, the current cues need to be informed of the current
2534         movie time.
2535         * html/track/TextTrackCue.cpp:
2536         (WebCore::TextTrackCue::TextTrackCue): Initiliazed past and future containers.
2537         (WebCore::TextTrackCue::getCueAsHTML): Checked whether the current cue text has
2538         inner timestamps or not, in order to render faster if no timestamps are there.
2539         (WebCore::TextTrackCue::updateDisplayTree): Added method that keeps the past and future
2540         containers up to date, given a current movie time.
2541         (WebCore):
2542         (WebCore::TextTrackCue::getDisplayTree): Replaced the cue background container with the
2543         past cues container. The *internal* display tree of the cue now has two containers,
2544         representing past and future elements.
2545         * html/track/TextTrackCue.h: Added several variables to support the new functionality.
2546         (TextTrackCue):
2547         * html/track/WebVTTParser.cpp:
2548         (WebCore::WebVTTParser::constructTreeFromToken): Updated representation for this patch.
2549         * html/track/WebVTTParser.h:
2550         (WebVTTParser): Made public the collectTimeStamp method, as this is required for
2551         parsing timestamps within a cue as well.
2552
2553 2012-06-09  Vsevolod Vlasov  <vsevik@chromium.org>
2554
2555         Web Inspector: Open links in Sources panel by default and fallback to Resources and Network panel otherwise.
2556         https://bugs.webkit.org/show_bug.cgi?id=88710
2557
2558         Reviewed by Pavel Feldman.
2559
2560         * inspector/front-end/inspector.js:
2561         (WebInspector.documentClick.followLink):
2562         (WebInspector.documentClick):
2563         (WebInspector._showAnchorLocation):
2564
2565 2012-06-09  Vsevolod Vlasov  <vsevik@chromium.org>
2566
2567         Web Inspector: Only expand root domain in Sources/Scripts panel
2568         https://bugs.webkit.org/show_bug.cgi?id=88135
2569
2570         Reviewed by Pavel Feldman.
2571
2572         * inspector/front-end/NavigatorView.js:
2573         (WebInspector.NavigatorTreeOutline._treeElementsCompare.compare.typeWeight):
2574         (WebInspector.NavigatorTreeOutline._treeElementsCompare):
2575         (WebInspector.NavigatorFolderTreeElement.prototype.onattach):
2576
2577 2012-06-09  Vsevolod Vlasov  <vsevik@chromium.org>
2578
2579         Web Inspector: Pretty print should respect text editor indent setting.
2580         https://bugs.webkit.org/show_bug.cgi?id=88713
2581
2582         Reviewed by Pavel Feldman.
2583
2584         * inspector/front-end/ScriptFormatter.js:
2585
2586 2012-06-09  Dan Bernstein  <mitz@apple.com>
2587
2588         Fixed the build after r119895.
2589
2590         * WebCore.xcodeproj/project.pbxproj:
2591
2592 2012-06-09  Andrey Kosyakov  <caseq@chromium.org>
2593
2594         Web Inspector: [refactoring] rename TimelineVerticalOverview into TimelineFrameOverview
2595         https://bugs.webkit.org/show_bug.cgi?id=88708
2596
2597         Reviewed by Vsevolod Vlasov.
2598
2599         - rename TimelineVerticalOverview to TimelineFrameOverview;
2600         - rename associated fields, parameters, CSS classes etc;
2601         - rename overview mode designators to match the UI;
2602         - drop unused CSS rules for old-style mode selector;
2603
2604         * inspector/front-end/TimelineOverviewPane.js:
2605         (WebInspector.TimelineOverviewPane):
2606         (WebInspector.TimelineOverviewPane.prototype._showEvents):
2607         (WebInspector.TimelineOverviewPane.prototype._showFrames):
2608         (WebInspector.TimelineOverviewPane.prototype._showMemoryGraph):
2609         (WebInspector.TimelineOverviewPane.prototype._setFrameMode):
2610         (WebInspector.TimelineOverviewPane.prototype._onCategoryVisibilityChanged):
2611         (WebInspector.TimelineOverviewPane.prototype._update):
2612         (WebInspector.TimelineOverviewPane.prototype.addFrame):
2613         (WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
2614         (WebInspector.TimelineOverviewPane.prototype._reset):
2615         (WebInspector.TimelineOverviewPane.prototype._onWindowChanged):
2616         (WebInspector.TimelineFrameOverview):
2617         * inspector/front-end/TimelinePanel.js:
2618         (WebInspector.TimelinePanel):
2619         (WebInspector.TimelinePanel.prototype._shouldShowFrames):
2620         (WebInspector.TimelinePanel.prototype.revealRecordAt):
2621         * inspector/front-end/timelinePanel.css:
2622         (.timeline-frame-overview #timeline-overview-grid):
2623         (.timeline-frame-overview .timeline-overview-window):
2624         (.timeline-frame-overview .timeline-overview-dividers-background):
2625         (.timeline-frame-overview #timeline-overview-memory):
2626         (.timeline-frame-overview-status-bar-item.toggled-on .glyph):
2627         (.timeline-frame-overview-bars):
2628         (.timeline.timeline-frame-overview .resources-divider):
2629         (.sidebar-tree-item .timeline-frame-overview-status-bar-item):
2630
2631 2012-06-08  Vsevolod Vlasov  <vsevik@chromium.org>
2632
2633         IndexedDB: Inspector should handle null, string, and array keyPaths
2634         https://bugs.webkit.org/show_bug.cgi?id=84303
2635
2636         Reviewed by Pavel Feldman.
2637
2638         Supported different key path types and updated tests to cover each case.
2639         Key path strings are now highlighted in the DataGrid column headers.
2640
2641         * inspector/Inspector.json:
2642         * inspector/InspectorIndexedDBAgent.cpp:
2643         (WebCore):
2644         * inspector/front-end/IndexedDBModel.js:
2645         (WebInspector.IndexedDBModel.idbKeyPathFromKeyPath):
2646         (WebInspector.IndexedDBModel.keyPathStringFromIDBKeyPath):
2647         (WebInspector.IndexedDBModel.prototype._loadDatabase.callback):
2648         (WebInspector.IndexedDBModel.prototype._loadDatabase):
2649         (WebInspector.IndexedDBModel.ObjectStore.prototype.get keyPathString):
2650         (WebInspector.IndexedDBModel.Index.prototype.get keyPathString):
2651         * inspector/front-end/IndexedDBViews.js:
2652         (WebInspector.IDBDataView.prototype._createDataGrid):
2653         (WebInspector.IDBDataView.prototype._keyColumnHeaderFragment):
2654         (WebInspector.IDBDataView.prototype._keyPathStringFragment):
2655         (WebInspector.IDBDataGridNode.prototype.createCell):
2656         * inspector/front-end/ResourcesPanel.js:
2657         (WebInspector.IDBObjectStoreTreeElement.prototype._updateTooltip):
2658         (WebInspector.IDBIndexTreeElement.prototype._updateTooltip):
2659
2660 2012-06-08  Vsevolod Vlasov  <vsevik@chromium.org>
2661
2662         Web Inspector: Increase size limits for resource content cached in InspectorResourceAgent.
2663         https://bugs.webkit.org/show_bug.cgi?id=88674
2664
2665         Reviewed by Pavel Feldman.
2666
2667         * inspector/NetworkResourcesData.cpp:
2668
2669 2012-05-25  Vsevolod Vlasov  <vsevik@chromium.org>
2670
2671         Web Inspector: Limit DebuggerAgent.Location use to DebuggerModel only, introduce WebInspector.RawLocation to be used elsewhere.
2672         https://bugs.webkit.org/show_bug.cgi?id=87270
2673
2674         Reviewed by Pavel Feldman.
2675
2676         Introduced WebInspector.RawLocation interface, a generic raw location independent from concrete domain (Styles, Debugger).
2677         Made WebInspector.DebuggerModel.Location implement it and switched all debugger related methods to it.
2678
2679         * inspector/front-end/BreakpointManager.js:
2680         (WebInspector.BreakpointManager.prototype._breakpointResolved):
2681         * inspector/front-end/CompilerScriptMapping.js:
2682         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
2683         * inspector/front-end/DebuggerModel.js:
2684         (WebInspector.DebuggerModel.Location):
2685         (WebInspector.DebuggerModel.prototype.continueToLocation):
2686         (WebInspector.DebuggerModel.prototype.setBreakpointByScriptLocation):
2687         (WebInspector.DebuggerModel.prototype.setBreakpoint.didSetBreakpoint):
2688         (WebInspector.DebuggerModel.prototype.setBreakpoint):
2689         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
2690         (WebInspector.DebuggerModel.prototype._breakpointResolved):
2691         (WebInspector.DebuggerModel.prototype.createRawLocation):
2692         (WebInspector.DebuggerModel.prototype.createRawLocationByURL):
2693         (WebInspector.DebuggerModel.prototype.setSelectedCallFrame):
2694         (WebInspector.DebuggerModel.prototype.createLiveLocation):
2695         (WebInspector.DebuggerModel.CallFrame.prototype.get location):
2696         (WebInspector.DebuggerModel.CallFrame.prototype.createLiveLocation):
2697         * inspector/front-end/DebuggerResourceBinding.js:
2698         (WebInspector.DebuggerResourceBinding.setScriptSource.didEditScriptSource):
2699         (WebInspector.DebuggerResourceBinding.setScriptSource):
2700         (WebInspector.DebuggerResourceBinding.prototype.setContent.get if):
2701         (WebInspector.DebuggerResourceBinding.prototype.setContent):
2702         (WebInspector.DebuggerResourceBinding.prototype._setContentWithInitialContent):
2703         * inspector/front-end/JavaScriptSource.js:
2704         (WebInspector.JavaScriptSource.prototype.uiLocationToRawLocation):
2705         * inspector/front-end/Linkifier.js:
2706         * inspector/front-end/ObjectPopoverHelper.js:
2707         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
2708         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
2709         * inspector/front-end/PresentationConsoleMessageHelper.js:
2710         * inspector/front-end/RawSourceCode.js:
2711         * inspector/front-end/ResourceScriptMapping.js:
2712         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
2713         * inspector/front-end/Script.js:
2714         (WebInspector.Script.prototype.rawLocationToUILocation):
2715         * inspector/front-end/ScriptSnippetModel.js:
2716         (WebInspector.SnippetScriptMapping.prototype.rawLocationToUILocation):
2717         * inspector/front-end/SourceMapping.js:
2718         * inspector/front-end/UISourceCode.js:
2719         (WebInspector.RawLocation):
2720
2721 2012-06-09  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2722
2723         Web Inspector: Add message loop instrumentation to public API and timeline agent
2724         https://bugs.webkit.org/show_bug.cgi?id=88639
2725
2726         Reviewed by Vsevolod Vlasov.
2727
2728         Message loop instrumentation will show when the render thread is busy.
2729         That way developer can discover if a render thread business causes low fps, or not.
2730
2731         * inspector/InspectorClient.h:
2732         (WebCore::InspectorClient::startMessageLoopMonitoring): Starts observer.
2733         (WebCore::InspectorClient::stopMessageLoopMonitoring): Stops observer.
2734         * inspector/InspectorController.cpp:
2735         (WebCore::InspectorController::InspectorController):
2736         Changed timeline agent constructor parameters.
2737         * inspector/InspectorInstrumentation.cpp:
2738         (WebCore::InspectorInstrumentation::willProcessTaskImpl):
2739         Forwards observer notification.
2740         (WebCore):
2741         (WebCore::InspectorInstrumentation::didProcessTaskImpl):
2742         Ditto.
2743         * inspector/InspectorInstrumentation.h:
2744         (InspectorInstrumentation):
2745         (WebCore::InspectorInstrumentation::willProcessTask):
2746         Ditto.
2747         (WebCore):
2748         (WebCore::InspectorInstrumentation::didProcessTask):
2749         Ditto.
2750         * inspector/InspectorTimelineAgent.cpp:
2751         (WebCore::InspectorTimelineAgent::start):
2752         Starts observer.
2753         (WebCore::InspectorTimelineAgent::stop):
2754         Stops observer.
2755         (WebCore::InspectorTimelineAgent::supportsFrameInstrumentation):
2756         Changed result origin.
2757         (WebCore::InspectorTimelineAgent::willProcessTask):
2758         Noop implementqation.
2759         (WebCore):
2760         (WebCore::InspectorTimelineAgent::didProcessTask):
2761         Noop implementqation.
2762         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
2763         Changed constructor parameters.
2764         * inspector/InspectorTimelineAgent.h:
2765         (WebCore::InspectorTimelineAgent::create):
2766         Ditto.
2767         (InspectorTimelineAgent):
2768         * inspector/WorkerInspectorController.cpp:
2769         (WebCore::WorkerInspectorController::WorkerInspectorController):
2770         Changed timeline agent constructor parameters.
2771
2772 2012-06-08  Andrey Kosyakov  <caseq@chromium.org>
2773
2774         Web Inspector: optimize timeline's frame mode overview appearance for 30fps
2775         https://bugs.webkit.org/show_bug.cgi?id=88556
2776
2777         Reviewed by Vsevolod Vlasov.
2778
2779         - adjust frame overview scale to 30fps == full height by default;
2780         - provide a fall-back auto-scale mode when median frame is longer than 1/30s;
2781         - add horizontal lines for 30 and 60fps;
2782         - drive-by fix: always use same order of categories in frame bars.
2783
2784         * inspector/front-end/TimelineOverviewPane.js:
2785         (WebInspector.TimelineVerticalOverview.prototype.update):
2786         (WebInspector.TimelineVerticalOverview.prototype._aggregateFrames):
2787         (WebInspector.TimelineVerticalOverview.prototype._renderBars):
2788         (WebInspector.TimelineVerticalOverview.prototype._drawFPSMarks):
2789         (WebInspector.TimelineVerticalOverview.prototype._renderBar):
2790
2791
2792 2012-06-09  Sukolsak Sakshuwong  <sukolsak@google.com>
2793
2794         Add UNDO_MANAGER flag
2795         https://bugs.webkit.org/show_bug.cgi?id=87908
2796
2797         Reviewed by Tony Chang.
2798
2799         Add undoManager property to document behind the UNDO_MANAGER flag and
2800         add placeholders for some methods of undoManager.
2801
2802         Test: editing/undomanager/document-has-undomanager.html
2803
2804         * CMakeLists.txt:
2805         * Configurations/FeatureDefines.xcconfig:
2806         * DerivedSources.cpp:
2807         * DerivedSources.make:
2808         * DerivedSources.pri:
2809         * GNUmakefile.am:
2810         * GNUmakefile.list.am:
2811         * WebCore.gypi:
2812         * WebCore.xcodeproj/project.pbxproj:
2813         * dom/Document.cpp:
2814         (WebCore::Document::Document):
2815         (WebCore):
2816         (WebCore::Document::undoManager):
2817         * dom/Document.h:
2818         (WebCore):
2819         (Document):
2820         * dom/Document.idl:
2821         * editing/UndoManager.cpp: Added.
2822         (WebCore):
2823         (WebCore::UndoManager::create):
2824         (WebCore::UndoManager::UndoManager):
2825         (WebCore::UndoManager::undo):
2826         (WebCore::UndoManager::redo):
2827         (WebCore::UndoManager::clearUndo):
2828         (WebCore::UndoManager::clearRedo):
2829         * editing/UndoManager.h: Added.
2830         (WebCore):
2831         (UndoManager):
2832         * editing/UndoManager.idl: Added.
2833
2834 2012-06-08  Levi Weintraub  <leviw@chromium.org>
2835
2836         RenderLayer::paintChildLayerIntoColumns doesn't properly pixel snap
2837         https://bugs.webkit.org/show_bug.cgi?id=88554
2838
2839         Reviewed by Darin Adler.
2840
2841         Column handling code in RenderLayer and RenderBlock was improperly clipping and translating
2842         using floats derived from FractionalLayoutUnits without pixel snapping. RenderLayer also
2843         improperly stored render tree offsets in ints instead of LayoutUnits. This corrects this
2844         issue.
2845
2846         Test: fast/sub-pixel/column-clipping.html
2847
2848         * rendering/RenderBlock.cpp:
2849         (WebCore::RenderBlock::paintColumnContents):
2850         * rendering/RenderLayer.cpp:
2851         (WebCore::RenderLayer::paintChildLayerIntoColumns):
2852
2853 2012-06-08  Rakesh KN  <rakesh.kn@motorola.com>
2854
2855         REGRESSION(r116487?): HTMLFormElement::elements['name'] is empty if the form is detached from the document tree
2856         https://bugs.webkit.org/show_bug.cgi?id=88632
2857
2858         Reviewed by Ryosuke Niwa.
2859
2860         Update root node of RadioNodeList when the form element is detached from dom tree.
2861
2862         Test: fast/forms/radionodelist-whose-form-element-detached-from-domtree.html
2863
2864         * dom/Node.cpp:
2865         (WebCore::Node::resetCachedRadioNodeListRootNode):
2866         New function to update the root node of RadioNodeLists to form element from document.
2867         * dom/Node.h: Ditto.
2868         * html/HTMLFormElement.cpp:
2869         (WebCore::HTMLFormElement::removedFrom):
2870         On detach, we update the root node of all RadioNodeLists of this form element.
2871         * html/RadioNodeList.cpp:
2872         (WebCore::RadioNodeList::setRootElement):
2873         Setter for updating root node.
2874         * html/RadioNodeList.h:
2875         (RadioNodeList): Ditto.
2876
2877 2012-06-08  David Reveman  <reveman@chromium.org>
2878
2879         [Chromium] Compositor doesn't support translucent root layers.
2880         https://bugs.webkit.org/show_bug.cgi?id=87821
2881
2882         Reviewed by James Robinson.
2883
2884         Forward the isTransparent WebView setting to WebLayerTreeView,
2885         CCLayerTreeHost and CCLayerTreeHostImpl as hasTransparentBackground.
2886         Use hasTransparentBackground setting to determine how to clear the
2887         root render pass and draw the background. Set opaque flag correctly
2888         on the NonCompositedContentHost's graphics layer to make sure
2889         sub-pixel rendering is not used with a transparent WebView.
2890
2891         Unit tests: CCLayerTreeHostImplTest.hasTransparentBackground
2892                     LayerRendererChromiumTest2.opaqueRenderPass
2893                     LayerRendererChromiumTest2.transparentRenderPass
2894
2895         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
2896         (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
2897         * platform/graphics/chromium/LayerRendererChromium.cpp:
2898         (WebCore::LayerRendererChromium::clearRenderPass):
2899         (WebCore::LayerRendererChromium::drawRenderPass):
2900         (WebCore::LayerRendererChromium::drawBackgroundFilters):
2901         * platform/graphics/chromium/LayerRendererChromium.h:
2902         (LayerRendererChromium):
2903         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
2904         (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
2905         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2906         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
2907         (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
2908         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2909         (WebCore::CCLayerTreeHost::setHasTransparentBackground):
2910         (CCLayerTreeHost):
2911         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2912         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
2913         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2914         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2915         (WebCore::CCLayerTreeHostImpl::hasTransparentBackground):
2916         (WebCore::CCLayerTreeHostImpl::setHasTransparentBackground):
2917         (CCLayerTreeHostImpl):
2918         * platform/graphics/chromium/cc/CCRenderPass.cpp:
2919         (WebCore::CCRenderPass::CCRenderPass):
2920         * platform/graphics/chromium/cc/CCRenderPass.h:
2921         (WebCore::CCRenderPass::hasTransparentBackground):
2922         (WebCore::CCRenderPass::setHasTransparentBackground):
2923         (CCRenderPass):
2924
2925 2012-06-08  Ian Vollick  <vollick@chromium.org>
2926
2927         [chromium] Single thread proxy's animation timer should short circuit if the layer renderer has not been initialized
2928         https://bugs.webkit.org/show_bug.cgi?id=88668
2929
2930         Reviewed by James Robinson.
2931
2932         Unit test: CCSingleThreadProxyTestDidAddAnimationBeforeInitializingLayerRenderer.runSingleThreaded
2933
2934         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2935         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2936
2937 2012-06-08  Shezan Baig  <shezbaig.wk@gmail.com>
2938
2939         Caret is not rendered in empty inline contenteditable elements
2940         https://bugs.webkit.org/show_bug.cgi?id=85793
2941
2942         Reviewed by Ryosuke Niwa.
2943
2944         Override localCaretRect in RenderInline. The implementation was almost
2945         identical to localCaretRect in RenderBlock for empty block elements, so
2946         I refactored RenderBlock::localCaretRect and moved the logic to a new
2947         method 'localCaretRectForEmptyElement' in RenderBoxModelObject. The
2948         implementation of 'localCaretRect' in RenderBlock and RenderInline both
2949         use this helper method in RenderBoxModelObject.
2950
2951         Tests: editing/selection/caret-in-empty-inline-1.html
2952                editing/selection/caret-in-empty-inline-2.html
2953
2954         * rendering/RenderBlock.cpp:
2955         (WebCore::RenderBlock::localCaretRect):
2956         Modified to use RenderBoxModelObject::localCaretRectForEmptyElement.
2957         * rendering/RenderBoxModelObject.cpp:
2958         (WebCore::RenderBoxModelObject::localCaretRectForEmptyElement):
2959         (WebCore):
2960         * rendering/RenderBoxModelObject.h:
2961         (RenderBoxModelObject):
2962         Add localCaretRectForEmptyElement helper method.
2963         * rendering/RenderInline.cpp:
2964         (WebCore::RenderInline::localCaretRect):
2965         (WebCore):
2966         * rendering/RenderInline.h:
2967         (RenderInline):
2968         Override localCaretRect using localCaretRectForEmptyElement.
2969
2970 2012-06-08  Mike West  <mkwst@chromium.org>
2971
2972         Treat blob: and filesystem: URLs generated via secure origins as secure.
2973         https://bugs.webkit.org/show_bug.cgi?id=84054
2974
2975         Loading a blob: or filesystem: URL into an iframe or image that's
2976         contained on an HTTPS page shouldn't generate a mixed content warning.
2977         This change adds a SecurityOrigin::isSecure to check both against a
2978         URLs protocol, and the protocol of it's so-called "inner URL" if it's
2979         the type of URL that has such a thing. These sorts of URLs which are
2980         generated from secure sources will themselves be treated as secure.
2981
2982         Reviewed by Adam Barth.
2983
2984         Tests: http/tests/security/mixedContent/blob-url-in-iframe.html
2985                http/tests/security/mixedContent/filesystem-url-in-iframe.html
2986
2987         * loader/FrameLoader.cpp:
2988         (WebCore::FrameLoader::isMixedContent):
2989         * page/SecurityOrigin.cpp:
2990         (WebCore):
2991         (WebCore::SecurityOrigin::isSecure):
2992         * page/SecurityOrigin.h:
2993         (SecurityOrigin):
2994
2995 2012-06-08  Martin Robinson  <mrobinson@igalia.com>
2996
2997         [Cairo] [TextureMapperGL] Nvidia card does not update WebGL texture when interacting with canvas
2998         https://bugs.webkit.org/show_bug.cgi?id=87797
2999
3000         Reviewed by Philippe Normand.
3001
3002         No new tests. WebGL is already covered by WebGL tests and this
3003         bug is only present on certain hardware.
3004
3005         After resolving multisampling before drawing the texture via the
3006         TextureMapper, first rebind the multisampling framebuffer. This ensures
3007         that the texture isn't active in two framebuffers at a time.
3008
3009         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
3010         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper): Rebind the multisampling
3011         framebuffer.
3012
3013 2012-06-08  Alexey Proskuryakov  <ap@apple.com>
3014
3015         <rdar://problem/11412294> Add appropriate iOS default font settings
3016
3017         Reviewed by Dan Bernstein.
3018
3019         * page/mac/SettingsMac.mm: (WebCore::Settings::initializeDefaultFontFamilies):
3020
3021 2012-06-08  Charles Wei  <charles.wei@torchmobile.com.cn>
3022
3023         IndexedDB: Transactions without any request scheduled should abort itself.
3024         https://bugs.webkit.org/show_bug.cgi?id=88052
3025
3026         Reviewed by Kentaro Hara.
3027
3028         This is needed for indexedDB to make it work for JSC. We need to clean up all the
3029         pending transactions(transactions without any request scheduled) when leaving Javascript context.
3030
3031         Manually tested using the existing test LayoutTests/storage/indexeddb/tutorial.html
3032
3033         * bindings/js/JSMainThreadExecState.cpp:
3034         (WebCore):
3035         (WebCore::JSMainThreadExecState::didLeaveScriptContext):
3036         * bindings/js/JSMainThreadExecState.h:
3037         (WebCore::JSMainThreadExecState::~JSMainThreadExecState):
3038         (JSMainThreadExecState):
3039
3040 2012-06-08  Ryosuke Niwa  <rniwa@webkit.org>
3041
3042         Crash in WebCore::CompositeEditCommand::breakOutOfEmptyListItem
3043         https://bugs.webkit.org/show_bug.cgi?id=88361
3044
3045         Reviewed by Levi Weintraub.
3046
3047         Use RefPtr instead of raw pointers across DOM mutations.
3048
3049         No tests are added for the lack of a reliable reduction.
3050
3051         * editing/CompositeEditCommand.cpp:
3052         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem):
3053
3054 2012-06-08  Sheriff Bot  <webkit.review.bot@gmail.com>
3055
3056         Unreviewed, rolling out r119514.
3057         http://trac.webkit.org/changeset/119514
3058         https://bugs.webkit.org/show_bug.cgi?id=88664
3059
3060         Broke JSFiddle.net (Requested by arv on #webkit).
3061
3062         * bindings/v8/V8DOMWindowShell.cpp:
3063         (WebCore::V8DOMWindowShell::initContextIfNeeded):
3064         * bindings/v8/WorkerContextExecutionProxy.cpp:
3065         (WebCore::WorkerContextExecutionProxy::initIsolate):
3066
3067 2012-06-08  Ryosuke Niwa  <rniwa@webkit.org>
3068
3069         Crash in WebCore::InsertParagraphSeparatorCommand::doApply
3070         https://bugs.webkit.org/show_bug.cgi?id=88108
3071
3072         Reviewed by Levi Weintraub.
3073
3074         Use NodeVector instead of walking through siblings as we mutate the DOM.
3075
3076         No new tests are added since there is no reliable reduction.
3077
3078         * editing/BreakBlockquoteCommand.cpp:
3079         (WebCore::BreakBlockquoteCommand::doApply):
3080         * editing/CompositeEditCommand.cpp:
3081         (WebCore::CompositeEditCommand::moveRemainingSiblingsToNewParent):
3082         (WebCore):
3083         * editing/CompositeEditCommand.h:
3084         (CompositeEditCommand):
3085         * editing/InsertParagraphSeparatorCommand.cpp:
3086         (WebCore::InsertParagraphSeparatorCommand::doApply):
3087
3088 2012-06-08  David Grogan  <dgrogan@chromium.org>
3089
3090         IndexedDB: rename some instances of open to registerFrontendCallbacks
3091         https://bugs.webkit.org/show_bug.cgi?id=88611
3092
3093         We should still make the change in the WebKit API.
3094
3095         Reviewed by Tony Chang.
3096
3097         No new tests, just a method rename.
3098
3099         * Modules/indexeddb/IDBDatabase.cpp:
3100         (WebCore::IDBDatabase::registerFrontendCallbacks):
3101         * Modules/indexeddb/IDBDatabase.h:
3102         (IDBDatabase):
3103         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
3104         (WebCore::IDBDatabaseBackendImpl::registerFrontendCallbacks):
3105         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
3106         (IDBDatabaseBackendImpl):
3107         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
3108         (IDBDatabaseBackendInterface):
3109         * Modules/indexeddb/IDBRequest.cpp:
3110         (WebCore::IDBRequest::onSuccess):
3111
3112 2012-06-08  Dana Jansens  <danakj@chromium.org>
3113
3114         [chromium] Skip willDraw() and didDraw() on fully occluded layers
3115         https://bugs.webkit.org/show_bug.cgi?id=88435
3116
3117         Reviewed by Adrienne Walker.
3118
3119         Current willDraw() is called on all layers with non-empty
3120         visibleLayerRect and non-empty scissorRect. This excludes
3121         layers outside the viewport, but does not exclude occluded
3122         layers. We add a check for occlusion to calculateRenderPasses
3123         in order to avoid willDraw() when it will be culled anyway.
3124
3125         We prevent didDraw() from being called for occluded layers, for
3126         which we did not call didDraw() by holding a vector of layers
3127         for which we did call willDraw(). This lets us avoid storing a
3128         flag on the layers, or computing occlusion again in
3129         didDrawAllLayers.
3130
3131         Unit test: CCLayerTreeHostImplTest.willDrawNotCalledOnOccludedLayer
3132
3133         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3134         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
3135         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
3136         (WebCore::CCLayerTreeHostImpl::didDrawAllLayers):
3137         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3138         (FrameData):
3139         (CCLayerTreeHostImpl):
3140
3141 2012-06-08  Antonio Gomes  <agomes@rim.com>
3142
3143         EventHandler shouldn't schedule the fake mousemove event timer when scrolling on devices that don't have a mouse
3144         https://bugs.webkit.org/show_bug.cgi?id=88379
3145
3146         Reviewed by James Robinson.
3147
3148         Paraphrasing Andy Estes:
3149         "In <http://trac.webkit.org/changeset/119465> we stopped dispatching fake
3150         mousemove events when scrolling on devices that don't support mice. This event
3151         is dispatched on a timer, so one better would be to not even schedule the
3152         timer (rather than scheduling the timer but making it a no-op).
3153
3154         No new tests, as no functionality has changed. We basically do not
3155         start a timer under a given circumstance instead of fire it, it times out,
3156         and we make the callback no-op when under the given circumstance.
3157
3158         It is still possible though that we have the following scenario:
3159         - Setting::deviceSupportsMouse set as true;
3160         - we fire the timer;
3161         - before its callback gets executed (timed out) the setting gets toggled.
3162         So for sakeness, lets keep the check in both places.
3163
3164         * page/EventHandler.cpp:
3165         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
3166         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
3167
3168 2012-06-08  James Robinson  <jamesr@chromium.org>
3169
3170         [chromium] Clean up some unnecessary LayerChromium.h includes
3171         https://bugs.webkit.org/show_bug.cgi?id=88599
3172
3173         Reviewed by Adam Barth.
3174
3175         Reworks test code slightly to use WebCore interfaces.
3176
3177         * testing/Internals.cpp:
3178         (WebCore::Internals::setBackgroundBlurOnNode):
3179
3180 2012-06-08  Erik Arvidsson  <arv@chromium.org>
3181
3182         [V8] Keep TextTrackList alive as long as its owner is alive
3183         https://bugs.webkit.org/show_bug.cgi?id=88541
3184
3185         Reviewed by Adam Barth.
3186
3187         Add a hidden reference from the owner to the text track list.
3188
3189         Covered by existing tests.
3190
3191         * Target.pri: Add V8TextTrackListCustom.cpp.
3192         * UseV8.cmake: Ditto.
3193         * WebCore.gypi: Ditto.
3194         * bindings/v8/V8HiddenPropertyName.h:
3195         (WebCore):
3196         * bindings/v8/custom/V8TextTrackListCustom.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
3197         (WebCore):
3198         (WebCore::toV8): When the wrapper is created add a reference to the owner of the TextTrackList to the TextTrackList.
3199         * html/track/TextTrackList.idl:
3200
3201 2012-06-08  Ian Vollick  <vollick@chromium.org>
3202
3203         [chromium] Accelerated animations should use WebTransformOperations
3204         https://bugs.webkit.org/show_bug.cgi?id=87686
3205
3206         Reviewed by James Robinson.
3207
3208         CCTransformKeyframe new owns a WebTransformOperations rather than a
3209         TransformOperations. LayerChromium's API has been changed so that
3210         LayerChromium::addAnimation should take only a CCActiveAnimation.
3211         GraphicsLayerChromium is new responsible for translating to
3212         WebTransformOperations and creating CCActiveAnimations. Tests that use
3213         the public API (that is, they call addAnimation with KeyframeValueList
3214         and Animation arguments) have been moved to GraphicsLayerChromiumTest.
3215
3216          Unit tests:
3217             GraphicsLayerChromiumTest.createOpacityAnimation
3218             GraphicsLayerChromiumTest.createTransformAnimation
3219             GraphicsLayerChromiumTest.createTransformAnimationWithBigRotation
3220             GraphicsLayerChromiumTest.createTransformAnimationWithSingularMatrix
3221             GraphicsLayerChromiumTest.createReversedAnimation
3222             GraphicsLayerChromiumTest.createAlternatingAnimation
3223             GraphicsLayerChromiumTest.createReversedAlternatingAnimation
3224
3225         * WebCore.gypi:
3226         * platform/graphics/chromium/AnimationTranslationUtil.cpp: Added.
3227         (WebCore):
3228         (WebCore::toWebTransformOperations):
3229         (WebCore::appendKeyframe):
3230         (WebCore::CCKeyframedTransformAnimationCurve):
3231         (WebCore::createActiveAnimation):
3232         * platform/graphics/chromium/AnimationTranslationUtil.h: Added.
3233         (WebCore):
3234         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
3235         (WebCore::GraphicsLayerChromium::addAnimation):
3236         * platform/graphics/chromium/LayerChromium.cpp:
3237         (WebCore::LayerChromium::addAnimation):
3238         * platform/graphics/chromium/LayerChromium.h:
3239         (WebCore):
3240         (WebCore::LayerChromium::bounds):
3241         (LayerChromium):
3242         * platform/graphics/chromium/LinkHighlight.cpp:
3243         (WebCore::LinkHighlight::LinkHighlight):
3244         * platform/graphics/chromium/cc/CCAnimationCurve.h:
3245         (CCTransformAnimationCurve):
3246         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.cpp:
3247         (WebCore::CCTransformKeyframe::create):
3248         (WebCore::CCTransformKeyframe::CCTransformKeyframe):
3249         (WebCore::CCTransformKeyframe::value):
3250         (WebCore::CCTransformKeyframe::clone):
3251         (WebCore::CCKeyframedTransformAnimationCurve::getValue):
3252         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h:
3253         (CCTransformKeyframe):
3254         (CCKeyframedTransformAnimationCurve):
3255         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
3256         (WebCore::CCLayerAnimationController::removeAnimation):
3257         (WebCore):
3258         (WebCore::CCLayerAnimationController::addAnimation):
3259         (WebCore::CCLayerAnimationController::getActiveAnimation):
3260         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
3261         (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
3262         (WebCore::CCLayerAnimationController::tickAnimations):
3263         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
3264         (CCLayerAnimationControllerClient):
3265         (CCLayerAnimationController):
3266         * platform/graphics/chromium/cc/CCLayerImpl.h:
3267         (WebCore::CCLayerImpl::bounds):
3268
3269 2012-06-08  No'am Rosenthal  <noam.rosenthal@nokia.com>
3270
3271         [Texmap] Accelerated versions of drop-shadow and blur filters
3272         https://bugs.webkit.org/show_bug.cgi?id=87695
3273
3274         Reviewed by Kenneth Rohde Christiansen.
3275
3276         Added shaders for blur and drop-shadow effects.
3277         The shaders use sampling of multiple coordinates and averaging them with normal-
3278         distribution to create a fast gaussian blur effect.
3279
3280         Covered by existing tests in css3/filters.
3281
3282         * platform/graphics/texmap/TextureMapperGL.cpp:
3283         (WebCore::TextureMapperGL::drawFiltered):
3284             Call the prepare function explicitly, with a size argument that's used to calculate
3285             some of the uniform values.
3286
3287         * platform/graphics/texmap/TextureMapperLayer.cpp:
3288         (WebCore::TextureMapperLayer::intermediateSurfaceRect):
3289             The outsets of the effect have to be considered when calculating the intermediate rect.
3290             Otherwise the resulting image is scaled instead of outsetted.
3291
3292         (WebCore::applyFilters):
3293         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
3294         (WebCore::StandardFilterProgram::StandardFilterProgram):
3295             Added the new shaders.
3296
3297         (WebCore::StandardFilterProgram::prepare):
3298         (WebCore::TextureMapperShaderManager::getShaderForFilter):
3299         * platform/graphics/texmap/TextureMapperShaderManager.h:
3300         (StandardFilterProgram):
3301
3302 2012-06-08  Dan Bernstein  <mitz@apple.com>
3303
3304         Tried to fix the build after r119844.
3305
3306         * bindings/js/GCController.cpp:
3307         (WebCore::GCController::discardAllCompiledCode):
3308
3309 2012-06-08  Mike West  <mkwst@chromium.org>
3310
3311         Add COMPILE_ASSERT to StyledElement to ensure it doesn't accidentally grow larger.
3312         https://bugs.webkit.org/show_bug.cgi?id=88627
3313
3314         Reviewed by Adam Barth.
3315
3316         No change in user-facing behavior.
3317
3318         * dom/StyledElement.cpp:
3319         (WebCore):
3320
3321 2012-06-08  Vsevolod Vlasov  <vsevik@chromium.org>
3322
3323         Web Inspector: Fix several compiler warnings and errors.
3324         https://bugs.webkit.org/show_bug.cgi?id=88660
3325
3326         Reviewed by Pavel Feldman.
3327
3328         Fixed several compiler warnings and errors.
3329         Removed isEmpty method from Object.prototype and made it static method on Object.
3330
3331         * inspector/InjectedScriptExterns.js:
3332         * inspector/front-end/FileSystemModel.js:
3333         (WebInspector.FileSystemModel.prototype._detachFrame):
3334         * inspector/front-end/HeapSnapshot.js:
3335         (WebInspector.HeapSnapshot.prototype._buildDominatorTree):
3336         * inspector/front-end/utilities.js:
3337         (Object.isEmpty):
3338
3339 2012-06-08  Max Feil  <mfeil@rim.com>
3340
3341         [BlackBerry] Fix assertion failure introduced by bug 87551
3342         https://bugs.webkit.org/show_bug.cgi?id=88659
3343
3344         Reviewed by Antonio Gomes.
3345
3346         The determineRenderSlider() convenience function added in bug
3347         87551 made an assumption that wasn't always true. This didn't
3348         cause a functional error but it caused an assertion failure,
3349         which indicates a problem with the code. PR164142.
3350
3351         No new tests because this case is already covered by ASSERT's.
3352
3353         * platform/blackberry/RenderThemeBlackBerry.cpp:
3354         (WebCore::determineRenderSlider):
3355
3356 2012-06-08  Ion Rosca  <rosca@adobe.com>
3357
3358         Some overlay scrollbar API calls in ScrollAnimatorMac can lead to an assertion in RenderBox::mapAbsoluteToLocalPoint
3359         https://bugs.webkit.org/show_bug.cgi?id=74111
3360
3361         Reviewed by Simon Fraser.
3362
3363         Added zero-delay timer for AppKit scroll notification that can be called during layout.
3364         Manual test: ManualTests/scrollbar-crash-on-hide-scrolled-area.html
3365         This assertion does not fire when running layout tests. It can be easly reproduced using a debug build by loading the manual test page.
3366
3367         * platform/mac/ScrollAnimatorMac.h:
3368         (ScrollAnimatorMac):
3369         * platform/mac/ScrollAnimatorMac.mm:
3370         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
3371         (WebCore::ScrollAnimatorMac::notifyContentAreaScrolled):
3372         (WebCore::ScrollAnimatorMac::sendContentAreaScrolledSoon):
3373         (WebCore):
3374         (WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired):
3375
3376 2012-06-08  Renata Hodovan  <reni@webkit.org>
3377
3378         Adding few already supported features to the FeatureSet in DOMImplementation
3379         https://bugs.webkit.org/show_bug.cgi?id=86482
3380
3381         Text, Filter and View features are already implemented but they
3382         are not added to the SVG11 feature set. This is corrected in this patch.
3383
3384         Reviewed by Nikolas Zimmermann.
3385
3386         No new testcase is needed because we already have one what checks the svg features via
3387         DOMImplementation (svg/custom/svg-features.html).
3388
3389         * dom/DOMImplementation.cpp:
3390         (WebCore::isSVG11Feature):
3391
3392 2012-06-08  Stephen Chenney  <schenney@chromium.org>
3393
3394         WebCore::ImageBuffer.cpp has broken color table code
3395         https://bugs.webkit.org/show_bug.cgi?id=80321
3396
3397         Reviewed by Dirk Schulze.
3398
3399         The code in ImageBuffer::transformColorSpace had two problems that are
3400         fixed by this patch.
3401
3402         First, it was using member variables for data
3403         that is static constant. This is incredibly wasteful, as every
3404         ImageBuffer that is created (and we make a lot of them) gets its own
3405         copy of the LUT and the table is initialized again and again. The
3406         patch replaces this with a static local, with lazy evaluation, in
3407         the method that uses the tables.
3408
3409         Second, the code for filling the table was mapping 255 to 254, thus
3410         reducing the intensity and alpha of every image it pushed through a
3411         color transform.
3412
3413         Test: svg/filters/color-space-conversion.svg
3414
3415         * platform/graphics/ImageBuffer.cpp:
3416         (WebCore::ImageBuffer::transformColorSpace):
3417         * platform/graphics/ImageBuffer.h:
3418         (ImageBuffer):
3419
3420 2012-06-08  Alexei Filippov  <alexeif@chromium.org>
3421
3422         Web Inspector: Better labels positioning on the memory pie chart
3423         https://bugs.webkit.org/show_bug.cgi?id=88652
3424
3425         Reviewed by Vsevolod Vlasov.
3426
3427         * inspector/front-end/NativeMemorySnapshotView.js:
3428         (WebInspector.NativeMemoryPieChart.prototype._paint.paintPercentAndLabel):
3429         (WebInspector.NativeMemoryPieChart.prototype._paint):
3430
3431 2012-06-08  Bryan McQuade  <bmcquade@google.com>
3432
3433         Web Inspector: Annotate timeline records with a frame identifier
3434         https://bugs.webkit.org/show_bug.cgi?id=86406
3435
3436         Reviewed by Vsevolod Vlasov.
3437
3438         Tests: Updated existing layout tests.
3439
3440         * inspector/InspectorController.cpp:
3441         (WebCore::InspectorController::InspectorController):
3442         * inspector/InspectorInstrumentation.cpp:
3443         (WebCore::frameForScriptExecutionContext):
3444         (WebCore):
3445         (WebCore::InspectorInstrumentation::didScheduleResourceRequestImpl):
3446         (WebCore::InspectorInstrumentation::didInstallTimerImpl):
3447         (WebCore::InspectorInstrumentation::didRemoveTimerImpl):
3448         (WebCore::InspectorInstrumentation::willCallFunctionImpl):
3449         (WebCore::InspectorInstrumentation::willChangeXHRReadyStateImpl):
3450         (WebCore::InspectorInstrumentation::willDispatchEventImpl):
3451         (WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
3452         (WebCore::InspectorInstrumentation::willEvaluateScriptImpl):
3453         (WebCore::InspectorInstrumentation::willFireTimerImpl):
3454         (WebCore::InspectorInstrumentation::willLayoutImpl):
3455         (WebCore::InspectorInstrumentation::willLoadXHRImpl):
3456         (WebCore::InspectorInstrumentation::willPaintImpl):
3457         (WebCore::InspectorInstrumentation::willRecalculateStyleImpl):
3458         (WebCore::InspectorInstrumentation::willSendRequestImpl):
3459         (WebCore::InspectorInstrumentation::willReceiveResourceDataImpl):
3460         (WebCore::InspectorInstrumentation::willReceiveResourceResponseImpl):
3461         (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
3462         (WebCore::InspectorInstrumentation::didFailLoadingImpl):
3463         (WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl):
3464         (WebCore::InspectorInstrumentation::loadEventFiredImpl):
3465         (WebCore::InspectorInstrumentation::willWriteHTMLImpl):
3466         (WebCore::InspectorInstrumentation::didRequestAnimationFrameImpl):
3467         (WebCore::InspectorInstrumentation::didCancelAnimationFrameImpl):
3468         (WebCore::InspectorInstrumentation::willFireAnimationFrameImpl):
3469         * inspector/InspectorInstrumentation.h:
3470         (InspectorInstrumentation):
3471         (WebCore::InspectorInstrumentation::didScheduleResourceRequest):
3472         (WebCore::InspectorInstrumentation::didInstallTimer):
3473         (WebCore::InspectorInstrumentation::didRemoveTimer):
3474         (WebCore::InspectorInstrumentation::willCallFunction):
3475         (WebCore::InspectorInstrumentation::willChangeXHRReadyState):
3476         (WebCore::InspectorInstrumentation::willDispatchEvent):
3477         (WebCore::InspectorInstrumentation::willEvaluateScript):
3478         (WebCore::InspectorInstrumentation::willFireTimer):
3479         (WebCore::InspectorInstrumentation::willLayout):
3480         (WebCore::InspectorInstrumentation::willLoadXHR):
3481         (WebCore::InspectorInstrumentation::willPaint):
3482         (WebCore::InspectorInstrumentation::willRecalculateStyle):
3483         (WebCore::InspectorInstrumentation::willReceiveResourceData):
3484         (WebCore::InspectorInstrumentation::willReceiveResourceResponse):
3485         (WebCore::InspectorInstrumentation::willWriteHTML):
3486         (WebCore::InspectorInstrumentation::didRequestAnimationFrame):
3487         (WebCore::InspectorInstrumentation::didCancelAnimationFrame):
3488         (WebCore::InspectorInstrumentation::willFireAnimationFrame):
3489         * inspector/InspectorTimelineAgent.cpp:
3490         (WebCore::InspectorTimelineAgent::pushGCEventRecords):
3491         (WebCore::InspectorTimelineAgent::didBeginFrame):
3492         (WebCore::InspectorTimelineAgent::willCallFunction):
3493         (WebCore::InspectorTimelineAgent::willDispatchEvent):
3494         (WebCore::InspectorTimelineAgent::willLayout):
3495         (WebCore::InspectorTimelineAgent::willRecalculateStyle):
3496         (WebCore::InspectorTimelineAgent::willPaint):
3497         (WebCore::InspectorTimelineAgent::willComposite):
3498         (WebCore::InspectorTimelineAgent::willWriteHTML):
3499         (WebCore::InspectorTimelineAgent::didInstallTimer):
3500         (WebCore::InspectorTimelineAgent::didRemoveTimer):
3501         (WebCore::InspectorTimelineAgent::willFireTimer):
3502         (WebCore::InspectorTimelineAgent::willChangeXHRReadyState):
3503         (WebCore::InspectorTimelineAgent::willLoadXHR):
3504         (WebCore::InspectorTimelineAgent::willEvaluateScript):
3505         (WebCore::InspectorTimelineAgent::didScheduleResourceRequest):
3506         (WebCore::InspectorTimelineAgent::willSendResourceRequest):
3507         (WebCore::InspectorTimelineAgent::willReceiveResourceData):
3508         (WebCore::InspectorTimelineAgent::willReceiveResourceResponse):
3509         (WebCore::InspectorTimelineAgent::didFinishLoadingResource):
3510         (WebCore::InspectorTimelineAgent::didTimeStamp):
3511         (WebCore::InspectorTimelineAgent::didMarkDOMContentEvent):
3512         (WebCore::InspectorTimelineAgent::didMarkLoadEvent):
3513         (WebCore::InspectorTimelineAgent::didRequestAnimationFrame):
3514         (WebCore::InspectorTimelineAgent::didCancelAnimationFrame):
3515         (WebCore::InspectorTimelineAgent::willFireAnimationFrame):
3516         (WebCore::InspectorTimelineAgent::addRecordToTimeline):
3517         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
3518         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
3519         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
3520         (WebCore::InspectorTimelineAgent::appendRecord):
3521         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
3522         (WebCore::InspectorTimelineAgent::pushCancelableRecord):
3523         (WebCore::InspectorTimelineAgent::commitCancelableRecords):
3524         * inspector/InspectorTimelineAgent.h:
3525         (WebCore):
3526         (WebCore::InspectorTimelineAgent::create):
3527         (InspectorTimelineAgent):
3528         (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
3529         (TimelineRecordEntry):
3530         * inspector/WorkerInspectorController.cpp:
3531         (WebCore::WorkerInspectorController::WorkerInspectorController):
3532         * inspector/front-end/TimelinePresentationModel.js:
3533         (WebInspector.TimelinePresentationModel.isEventDivider):
3534         (WebInspector.TimelinePresentationModel.Record):
3535
3536 2012-06-08  Sheriff Bot  <webkit.review.bot@gmail.com>
3537
3538         Unreviewed, rolling out r119821.
3539         http://trac.webkit.org/changeset/119821
3540         https://bugs.webkit.org/show_bug.cgi?id=88648
3541
3542         Seems to have regression on Mac (Requested by kinuko on
3543         #webkit).
3544
3545         * fileapi/File.cpp:
3546         (WebCore::File::File):
3547         (WebCore::File::lastModifiedDate):
3548         (WebCore::File::lastModifiedDateForBinding):
3549         (WebCore):
3550         (WebCore::File::captureSnapshot):
3551         * fileapi/File.h:
3552         (File):
3553         * fileapi/File.idl:
3554         * platform/FileMetadata.h:
3555         (WebCore::FileMetadata::FileMetadata):
3556         * platform/FileSystem.h:
3557         * platform/chromium/support/WebHTTPBody.cpp:
3558         (WebKit::WebHTTPBody::elementAt):
3559         * platform/network/BlobData.cpp:
3560         (WebCore):
3561         * platform/network/BlobData.h:
3562         (BlobDataItem):
3563         (WebCore::BlobDataItem::BlobDataItem):
3564         * platform/network/FormData.cpp:
3565         (WebCore::FormData::appendFile):
3566         * platform/network/cf/FormDataStreamCFNet.cpp:
3567         (WebCore::advanceCurrentStream):
3568         * platform/network/soup/ResourceHandleSoup.cpp:
3569         (WebCore::blobIsOutOfDate):
3570
3571 2012-06-08  Kinuko Yasuda  <kinuko@chromium.org>
3572
3573         Unreviewed, removing duplicated entries in gyp.
3574
3575         * WebCore.gypi:
3576
3577 2012-06-08  Arko Saha  <arko@motorola.com>
3578
3579         Microdata: An element with an empty itemprop='' should not get listed in the .properties list.
3580         https://bugs.webkit.org/show_bug.cgi?id=88235
3581
3582         Reviewed by Ryosuke Niwa.
3583
3584         As per the specification change http://html5.org/r/6854, an element should be listed in .properties
3585         if the elelement has an attribute itemprop specified and the element has one or more property names.
3586
3587         Test: fast/dom/MicroData/element-with-empty-itemprop.html
3588
3589         * html/HTMLPropertiesCollection.cpp:
3590         (WebCore::HTMLPropertiesCollection::itemAfter):
3591
3592 2012-06-07  Kinuko Yasuda  <kinuko@chromium.org>
3593
3594         File::lastModifiedDate should use NaN or separate boolean flag for null Date value
3595         https://bugs.webkit.org/show_bug.cgi?id=87826
3596
3597         Reviewed by Kent Tamura.
3598
3599         Test: http/tests/local/fileapi/file-last-modified-after-delete.html
3600
3601         * fileapi/File.cpp:
3602         (WebCore::File::File):
3603         (WebCore::File::captureSnapshot):
3604         (WebCore::File::lastModifiedDate):
3605         (WebCore::File::lastModifiedDateForBinding): Removed.
3606         * fileapi/File.h:
3607         (File):
3608         * fileapi/File.idl:
3609         * platform/FileMetadata.h:
3610         (WebCore::FileMetadata::FileMetadata):
3611         * platform/FileSystem.h:
3612         * platform/chromium/support/WebHTTPBody.cpp:
3613         (WebKit::WebHTTPBody::elementAt):
3614         * platform/network/BlobData.h:
3615         (WebCore::BlobDataItem::doNotCheckFileChange): Removed.
3616         * platform/network/BlobData.cpp:
3617         * platform/network/cf/FormDataStreamCFNet.cpp:
3618         (WebCore::advanceCurrentStream):
3619         * platform/network/soup/ResourceHandleSoup.cpp:
3620         (WebCore::blobIsOutOfDate):
3621
3622 2012-06-08  Kent Tamura  <tkent@chromium.org>
3623
3624         Move form-related functions of Document to FormController
3625         https://bugs.webkit.org/show_bug.cgi?id=88497
3626
3627         Reviewed by Hajime Morita.
3628
3629         A lot of files depend on Document.h. We had to build many files when we
3630         touched form-related features in Document.h or
3631         CheckedRadioButtons.h. This patch reduces such pain.
3632
3633         No new tests. Just a refactoring.
3634
3635         * CMakeLists.txt: Add FormController.cpp and/or FormController.h.
3636         * GNUmakefile.list.am: ditto.
3637         * Target.pri: ditto.
3638         * WebCore.gypi: ditto.
3639         * WebCore.vcproj/WebCore.vcproj: ditto.
3640         * WebCore.xcodeproj/project.pbxproj: ditto.
3641
3642         * dom/Document.cpp: Removed form-releated features except the followings.
3643         (WebCore::Document::formController): Accessor for a FormController.
3644         (WebCore::Document::formElementsState):
3645         Just returns FormController::formElementsState().
3646         We don't create new FormController.
3647         (WebCore::Document::setStateForNewFormElements):
3648         Just returns FormController::setStateForNewFormElements().
3649         We don't create new FormController if the specified vector is empty.
3650         * dom/Document.h:
3651         Moved form-related functions to FormController.
3652
3653         * html/FormController.cpp: Added. Moved from Document.cpp.
3654         * html/FormController.h: Added. Moved from Document.h
3655
3656         * html/FormAssociatedElement.cpp: Use Document::formController().
3657         (WebCore::FormAssociatedElement::didMoveToNewDocument):
3658         (WebCore::FormAssociatedElement::insertedInto):
3659         (WebCore::FormAssociatedElement::removedFrom):
3660         (WebCore::FormAssociatedElement::formAttributeChanged):
3661         * html/HTMLFormControlElementWithState.cpp: Use Document::formController().
3662         (WebCore::HTMLFormControlElementWithState::HTMLFormControlElementWithState):
3663         (WebCore::HTMLFormControlElementWithState::~HTMLFormControlElementWithState):
3664         (WebCore::HTMLFormControlElementWithState::didMoveToNewDocument):
3665         (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
3666         * html/HTMLFormElement.cpp: Use Document::formController().
3667         (WebCore::HTMLFormElement::didNotifyDescendantInsertions):
3668         (WebCore::HTMLFormElement::removedFrom):
3669         * html/HTMLInputElement.cpp: Use Document::formController().
3670         (WebCore::HTMLInputElement::~HTMLInputElement):
3671         (WebCore::HTMLInputElement::didMoveToNewDocument):
3672         (WebCore::HTMLInputElement::checkedRadioButtons):
3673         * html/HTMLInputElement.h:
3674         Declare CheckedRadioButtons. It was provided by Document.h.
3675         * html/parser/HTMLConstructionSite.h:
3676         Declare HTMLFormElement. It was provided by Document.h
3677
3678 2012-06-08  Taiju Tsuiki  <tzik@chromium.org>
3679
3680         Add FileSystem item to storage tree.
3681         https://bugs.webkit.org/show_bug.cgi?id=72691
3682
3683         Reviewed by Vsevolod Vlasov.
3684
3685         * WebCore.gypi:
3686         * WebCore.vcproj/WebCore.vcproj:
3687         * inspector/compile-front-end.py:
3688         * inspector/front-end/FileSystemModel.js: Added.
3689         * inspector/front-end/Images/fileSystem.png: Added.
3690         * inspector/front-end/ResourcesPanel.js:
3691         (WebInspector.FileSystemListTreeElement):
3692         (WebInspector.FileSystemListTreeElement.prototype.onexpand):
3693         (WebInspector.FileSystemListTreeElement.prototype.onattach):
3694         (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
3695         (WebInspector.FileSystemListTreeElement.prototype._fileSystemAdded):
3696         (WebInspector.FileSystemListTreeElement.prototype._fileSystemRemoved):
3697         (WebInspector.FileSystemListTreeElement.prototype._fileSystemTreeElementByName):
3698         (WebInspector.FileSystemListTreeElement.prototype._refreshFileSystem):
3699         (WebInspector.FileSystemTreeElement):
3700         (WebInspector.FileSystemTreeElement.prototype.get fileSystemName):
3701         (WebInspector.FileSystemTreeElement.prototype.get itemURL):
3702         * inspector/front-end/Settings.js:
3703         (WebInspector.ExperimentsSettings):
3704         * inspector/front-end/WebKit.qrc:
3705         * inspector/front-end/inspector.html:
3706         * inspector/front-end/resourcesPanel.css:
3707         (.file-system-storage-tree-item .icon):
3708         * inspector/front-end/utilities.js:
3709
3710 2012-06-08  Kentaro Hara  <haraken@chromium.org>
3711
3712         REGRESSION r119802: Remove unnecessary ASSERT(!m_deletionHasBegun) from Document.h
3713         https://bugs.webkit.org/show_bug.cgi?id=88528
3714
3715         Reviewed by Ryosuke Niwa.
3716
3717         m_deletionHasBegun should become true just before 'delete this'.
3718
3719         No tests. No change in behavior.
3720
3721         * dom/Document.h:
3722         (WebCore::Document::guardRef):
3723         (WebCore::Document::guardDeref):
3724
3725 2012-06-08  Adam Barth  <abarth@webkit.org>
3726
3727         HTTP 204 No Content responses shouldn't trigger MIME type warnings in the web inspector
3728         https://bugs.webkit.org/show_bug.cgi?id=88603
3729
3730         Reviewed by Pavel Feldman.
3731
3732         A 204 response doesn't have an entity body, so its MIME type is kind of
3733         meaningless.  We shouldn't spam the console with a warning about MIME
3734         types.
3735
3736         * inspector/front-end/NetworkManager.js:
3737         (WebInspector.NetworkDispatcher.prototype._mimeTypeIsConsistentWithType):
3738
3739 2012-06-08  Yoshifumi Inoue  <yosin@chromium.org>
3740
3741         [Forms] Drop StepRange::NumberWithDecimalPlacesOrMissing
3742         https://bugs.webkit.org/show_bug.cgi?id=88621
3743
3744         Reviewed by Kent Tamura.
3745
3746         This patch changes NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
3747         We use NaN as indication of having value or not.
3748
3749         No new tests, because this patch doesn't change behavior.
3750
3751         * html/DateInputType.cpp:
3752         (WebCore::DateInputType::createStepRange): Replace NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
3753         * html/DateTimeInputType.cpp:
3754         (WebCore::DateTimeInputType::createStepRange): ditto.
3755         * html/DateTimeLocalInputType.cpp:
3756         (WebCore::DateTimeLocalInputType::createStepRange): ditto.
3757         * html/MonthInputType.cpp:
3758         (WebCore::MonthInputType::createStepRange): ditto.
3759         * html/NumberInputType.cpp:
3760         (WebCore::NumberInputType::createStepRange): ditto.
3761         * html/RangeInputType.cpp:
3762         (WebCore::RangeInputType::createStepRange): ditto.
3763         * html/StepRange.cpp:
3764         (WebCore::StepRange::StepRange): Checks value is finite or not.
3765         (WebCore::StepRange::parseStep): Replace NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
3766         * html/StepRange.h:
3767         (StepRange): Removed NumberWithDecimalPlacesOrMissing.
3768         * html/TimeInputType.cpp:
3769         (WebCore::TimeInputType::createStepRange):  NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
3770         * html/WeekInputType.cpp:
3771         (WebCore::WeekInputType::createStepRange): ditto.
3772
3773 2012-06-08  Kentaro Hara  <haraken@chromium.org>
3774
3775         Unreviewed. Fixed a comment, pointed out by ap@.
3776
3777         * platform/TreeShared.h:
3778         (WebCore):
3779
3780 2012-06-08  Noel Gordon  <noel.gordon@gmail.com>
3781
3782         [chromium] WEBP image blue and red color channels reversed on Android
3783         https://bugs.webkit.org/show_bug.cgi?id=88613
3784
3785         Reviewed by Kent Tamura.
3786
3787         No new tests. Covered by test fast/images/webp-image-decoding.html though I'm
3788         not sure where/how the Androids run their layout tests.
3789
3790         * platform/image-decoders/webp/WEBPImageDecoder.cpp:
3791         (outputMode): Detect little-endian Skia with a blue pixel shift (aka Android)
3792         which seems to be the way for them per bug 75861.
3793
3794 2012-06-08  Ryosuke Niwa  <rniwa@webkit.org>
3795
3796         Remove the assertion that has been moved to TreeScope after r119802.
3797
3798         * dom/Document.cpp:
3799         (WebCore::Document::removedLastRef):
3800
3801 2012-06-07  Kentaro Hara  <haraken@chromium.org>
3802
3803         Reduce Node object size from 72 byte to 64 byte
3804         https://bugs.webkit.org/show_bug.cgi?id=88528
3805
3806         Reviewed by Ryosuke Niwa.
3807
3808         This patch removes all virtual methods from TreeShared.h,
3809         by which we can remove a virtual method table pointer (8 byte
3810         in a 64bit architechture) from each Node object. Consequently,
3811         this patch reduces the Node object size from 72 byte to 64 byte.
3812
3813         e.g. The HTML spec (http://www.whatwg.org/specs/web-apps/current-work/)
3814         contains 325640 Node objects. Thus this patch saves 325640 * 8 byte = 2.6 MB.
3815
3816         e.g. sizeof(Element) is reduced from 104 byte to 96 byte.
3817
3818         - In multiple inheritance, a virtual method table pointer is allocated
3819         for each base class that has virtual methods. For example, for
3820         'class A : public B, C {};' where B and C have virtual methods,
3821         two virtual method table pointers are allocated for each A object.
3822         In this patch, A = Node, B = EventTarget, and C = TreeShared.
3823         By removing the virtual methods from TreeShared, we can save the virtual
3824         method table pointer for TreeShared. 8 byte saving.
3825
3826         - Node and SVGElementInstance are the only classes that inherit TreeShared.
3827
3828         - This patch removes virtual TreeShared::removeLastRef() and implements
3829         virtual Node::removeLastRef() and virtual SVGElementInstance::removeLastRef().
3830         Node::removeLastRef() calls 'delete this' for 'this' of type Node*,
3831         and SVGElementInstance::removeLastRef() calls 'delete this' for 'this' of type
3832         SVGElementInstance*.
3833
3834         - This patch removes the virtual destructor of TreeShared. This removal is safe
3835         because (1) no one calls 'delete this' for 'this' of type TreeShared*,
3836         and (2) both Node and SVGElementInstance have virtual destructor.
3837
3838         No change in behavior. Confirm no regression in existing tests.
3839
3840         * dom/ContainerNode.cpp:
3841         (WebCore::callRemovedLastRef):
3842         (WebCore):
3843         * dom/Node.h:
3844         (WebCore::Node::removedLastRef):
3845         * platform/TreeShared.h:
3846         (WebCore):
3847         (TreeShared):
3848         (WebCore::TreeShared::deref):
3849         * svg/SVGElementInstance.cpp:
3850         (WebCore::callRemovedLastRef):
3851         (WebCore):
3852         * svg/SVGElementInstance.h:
3853         (WebCore::SVGElementInstance::removedLastRef):
3854
3855         * WebCore.order: Added a symbol for callRemovedLastRef().
3856         * WebCore.exp.in: Ditto.
3857
3858 2012-06-07  Takashi Sakamoto  <tasak@google.com>
3859
3860         ShadowRoot needs resetStyleInheritance
3861         https://bugs.webkit.org/show_bug.cgi?id=84048
3862
3863         Added resetStyleInheritance API to ShadowRoot. The spec URL is
3864         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-root-attributes
3865         To implement the API, modified StyleResolver to use empty style
3866         instead of parent style if resetStyleInheritance is true,
3867         and a node and its parent node are placed in different shadow trees.
3868
3869         Reviewed by Hajime Morita.
3870
3871         Test: fast/dom/shadow/shadow-root-resetStyleInheritance.html
3872               fast/dom/shadow/shadow-root-resetStyleInheritance-expected.html
3873
3874         * css/StyleResolver.cpp:
3875         (WebCore::StyleResolver::initForStyleResolve):
3876         Set m_parentStyle to NULL when resetStyleInheritance.
3877         (WebCore::StyleResolver::documentSettings):
3878         Added a new method to obtain current document's settings.
3879         (WebCore::StyleResolver::initializeFontStyle):
3880         Initialize m_style by using document settings. Its code was move
3881         from the code initializing font style in applyProperty.
3882         (WebCore::StyleResolver::styleForElement):
3883         Initialize font style if m_parentStyle is NULL. The old code just
3884         used style() and don't touch font style. The new code uses the above
3885         initializeFontStyle.
3886         (WebCore::StyleResolver::applyProperty):
3887         Moved a code for initializing font style as "initial" to
3888         a new method: initializeFontStyle and modified to use the method.
3889         Modified to use documentSettings().
3890         (WebCore::StyleResolver::checkForGenericFamilyChange):
3891         Modified to use documentSettings().
3892         * css/StyleResolver.h:
3893         (WebCore::StyleResolver::documentSettings):
3894         (WebCore::StyleResolver::initializeFontStyle):
3895         Added two new methods to class StyleResolver.
3896         * dom/NodeRenderingContext.cpp:
3897         (WebCore::NodeRenderingContext::NodeRenderingContext):
3898         Modified to calculate m_resetStyleInheritance in its constructor.
3899         * dom/NodeRenderingContext.h:
3900         (WebCore::NodeRenderingContext::resetStyleInheritance):
3901         Implemented a new method, just returning m_resetStyleInheritance.
3902         * dom/ShadowRoot.cpp:
3903         (WebCore::ShadowRoot::setResetStyleInheritance):
3904         Modified to force to recalculate children's styles if
3905         resetStyleInheritance is changed.
3906         * dom/ShadowRoot.h:
3907         (ShadowRoot):
3908         Added resetStyleInheritance getter and setter.
3909         * dom/ShadowRoot.idl:
3910         Added an attribute, resetStyleInheritance.
3911         * dom/TreeScope.cpp:
3912         (WebCore::TreeScope::resetStyleInheritance):
3913         * dom/TreeScope.h:
3914         (TreeScope):
3915         Added resetStyleInheritance's default getter.
3916         The getter will be overrided by class ShadowRoot's getter.
3917
3918 2012-06-07  Victor Carbune  <victor@rosedu.org>
3919
3920         addTextTrack should set track mode to HIDDEN
3921         https://bugs.webkit.org/show_bug.cgi?id=88317
3922
3923         Reviewed by Eric Carlson.
3924
3925         Updated existing test.
3926
3927         * html/HTMLMediaElement.cpp:
3928         (WebCore::HTMLMediaElement::addTextTrack): Set the default parameters
3929         for the newly created TextTrack.
3930         * html/track/TextTrack.cpp:
3931         (WebCore::TextTrack::TextTrack):
3932
3933 2012-06-07  Li Yin  <li.yin@intel.com>
3934
3935         FileAPI: Blob should support ArrayBufferView instead of ArrayBuffer for Constructor Parameters
3936         https://bugs.webkit.org/show_bug.cgi?id=88294
3937
3938         Reviewed by Jian Li.
3939
3940         From Spec: http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob
3941         Currently we add the support for ArrayBufferView, while still keeping ArrayBuffer for
3942         backward compatibility. We will remove it in the near future.
3943
3944         Test: fast/files/blob-constructor.html
3945
3946         * bindings/js/JSBlobCustom.cpp:
3947         (WebCore::JSBlobConstructor::constructJSBlob):
3948         * bindings/v8/custom/V8BlobCustom.cpp:
3949         (WebCore::V8Blob::constructorCallback):
3950         * fileapi/WebKitBlobBuilder.cpp:
3951         (WebCore::WebKitBlobBuilder::append):
3952         (WebCore):
3953         * fileapi/WebKitBlobBuilder.h:
3954         (WebCore):
3955         (WebKitBlobBuilder):
3956         * fileapi/WebKitBlobBuilder.idl: Add support for ArrayBufferView in append method
3957
3958 2012-06-07  MORITA Hajime  <morrita@google.com>
3959
3960         A style in an older shadow subtree causes assert when composing with <shadow>
3961         https://bugs.webkit.org/show_bug.cgi?id=88299
3962
3963         Reviewed by Dimitri Glazkov.
3964
3965         InsertionPoint::attach() assumes its distributed content not being attach()-ed.
3966         But this assumption can break. This change added a guard for that.
3967         This can happen for shadow boundaries in general. But ShadowRoot already handles that case.
3968
3969         Test: fast/dom/shadow/insertion-point-shadow-crash.html
3970
3971         * html/shadow/InsertionPoint.cpp:
3972         (WebCore::InsertionPoint::attach):
3973
3974 2012-06-07  Max Feil  <mfeil@rim.com>
3975
3976         [BlackBerry] Show correct fullscreen button image (media controls)
3977         https://bugs.webkit.org/show_bug.cgi?id=88563
3978
3979         Reviewed by Antonio Gomes.
3980
3981         PR159306: Show "exit" fullscreen button image instead of "enter"
3982         fullscreen button image when in fullscreen mode (HTML5 media
3983         controls).
3984
3985         I am not providing a test due to the simplicity of this patch
3986         and the relative difficulty and maintainability issues associated
3987         with testing how an image is rendered.
3988
3989         * platform/blackberry/RenderThemeBlackBerry.cpp:
3990         (WebCore::RenderThemeBlackBerry::paintMediaFullscreenButton):
3991
3992 2012-06-07  Noel Gordon  <noel.gordon@gmail.com>
3993
3994         [chromium] Use WEBPImportPictureRGBX|BGRX to import picture data
3995         https://bugs.webkit.org/show_bug.cgi?id=88218
3996
3997         Reviewed by Kent Tamura.
3998
3999         Stop using the RGBA and RGBA variants of the picture import routines (since
4000         these will import alpha channel data in a future libwebp). Use the RGBX and
4001         BGRX variants to import picture data for encoding to make it clear that the
4002         alpha channel is (and must be) ignored.
4003
4004         Test: fast/canvas/canvas-toDataURL-webp.html
4005
4006         * platform/image-encoders/skia/WEBPImageEncoder.cpp:
4007         (WebCore::rgbPictureImport):
4008         (WebCore::importPictureBGRX): Use WEBPImportPictureBGRX for picture imports
4009         that must ignore the alpha channel. Change the template parameter to be the
4010         premultiplied alpha state of the input image data.
4011         (WebCore::importPictureRGBX): Use WEBPImportPictureRGBX, ditto.
4012         (WebCore::encodePixels): Invert the sense of the template parameter to make
4013         it now indicate the premultiplied alpha state of the input image data.
4014
4015 2012-06-07  Takashi Sakamoto  <tasak@google.com>
4016
4017         Improve the performance of pushScope in StyleResolver
4018         https://bugs.webkit.org/show_bug.cgi?id=88222
4019
4020         Reviewed by Hajime Morita.
4021
4022         As setupScopeStack always sets m_scopeStackParent to be NULL,
4023         m_scopeStack is never reused. m_scopeStackParent should be the last
4024         element of m_scopeStack.
4025
4026         No new tests, because fast/css/style-scoped/ uses pushScope,
4027         popScope and setupScopeStack and checks whether there exists
4028         any crash bug or not. And this patch doesn't change any behavior
4029         of scoped author syltes.
4030
4031         * css/StyleResolver.cpp:
4032         (WebCore::StyleResolver::setupScopeStack):
4033         Modified to set m_scopeSackParent to be the last element of
4034         m_scopeStack.
4035         (WebCore::StyleResolver::popScope):
4036         Modified to remove the last element if m_scopeStack is not empty and
4037         the last element of m_scopeStack has the same scope as the scoping
4038         element given by the argument.
4039
4040 2012-06-07  Mark Pilgrim  <pilgrim@chromium.org>
4041
4042         [Chromium] Move didStartWorkerRunLoop to Platform.h
4043         https://bugs.webkit.org/show_bug.cgi?id=88562
4044
4045         Reviewed by Adam Barth.
4046
4047         Part of a refactoring series.