def7e696a6ce2482d4e8824fb1e8ff8ba5f6343f
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-08-23  Kevin Ollivier  <kevino@theolliviers.com>
2
3         [wx] Unreviewed build fix. Add wx to the list of platforms that use CoreText
4         APIs on Mac.
5
6         * platform/graphics/SimpleFontData.h:
7         (SimpleFontData):
8
9 2012-08-23  Kevin Ollivier  <kevino@theolliviers.com>
10
11         [wx] Unreviewed build fix. Don't rely on implicit casts, explicitly use the
12         Cursor constructor that takes a platform cursor for creating native cursors.
13
14         * platform/wx/CursorWx.cpp:
15         (WebCore::pointerCursor):
16         (WebCore::crossCursor):
17         (WebCore::handCursor):
18         (WebCore::iBeamCursor):
19         (WebCore::waitCursor):
20         (WebCore::helpCursor):
21         (WebCore::eastResizeCursor):
22         (WebCore::northResizeCursor):
23         (WebCore::northEastResizeCursor):
24         (WebCore::northWestResizeCursor):
25         (WebCore::columnResizeCursor):
26         (WebCore::rowResizeCursor):
27         (WebCore::notAllowedCursor):
28         (WebCore::zoomInCursor):
29         (WebCore::moveCursor):
30
31 2012-08-23  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
32
33         Remove redundant check for negative values when using WebCore::Color::alpha()
34         https://bugs.webkit.org/show_bug.cgi?id=94811
35
36         Reviewed by Eric Seidel.
37
38         Though alpha() returns a signed value (int), its value is stored on an unsigned
39         typedef (RGBA32) and is safeguarded by alphaChannel() that its value never goes
40         beyond 255, so no integer overflow, thus we can safely remove redundant check
41         for negative values while using it.
42
43         This change does not affect behavior, so no new tests needed.
44
45         * platform/graphics/Image.cpp:
46         (WebCore::Image::fillWithSolidColor):
47         * rendering/RenderBoxModelObject.cpp:
48         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
49         (WebCore::RenderBoxModelObject::boxShadowShouldBeAppliedToBackground): Using hasAlpha() for readibility.
50         * rendering/RenderView.cpp:
51         (WebCore::RenderView::paintBoxDecorations):
52         * rendering/style/RenderStyle.h:
53
54 2012-08-23  Zan Dobersek  <zandobersek@gmail.com>
55
56         [Gtk] Move feature defines processing into a GNUmakefile that's simple to autogenerate
57         https://bugs.webkit.org/show_bug.cgi?id=87127
58
59         Reviewed by Martin Robinson.
60
61         List all the feature defines with their default value in
62         GNUmakefile.features.am and append them to the 'feature_defines_defaults'.
63         variable.
64
65         In GNUmakefile.am, include the GNUmakefile.features.am. When checking the
66         AM conditionals for feature-enabling, append the appropriate define to
67         'feature_defines_overrides'.
68
69         After all such overrides are performed, append the proper define (of which
70         value was possibly overridden) for each feature to the 'feature_defines'
71         variable. Finally, append all these defines to webcore_cppflags in the form
72         of macros for preprocessing.
73
74         No new tests - no new functionality.
75
76         * GNUmakefile.am:
77         * GNUmakefile.features.am: Added.
78
79 2012-08-23  Adam Barth  <abarth@webkit.org>
80
81         [V8] ScheduledAction is ugly and needs a cleanup
82         https://bugs.webkit.org/show_bug.cgi?id=94784
83
84         Reviewed by Eric Seidel.
85
86         This patch updates ScheduledAction to use modern WebKit machinery, like
87         OwnHandle and Vector.
88
89         * bindings/v8/OwnHandle.h:
90         (OwnHandle):
91         * bindings/v8/ScheduledAction.cpp:
92         (WebCore::ScheduledAction::ScheduledAction):
93         (WebCore::ScheduledAction::~ScheduledAction):
94         (WebCore::ScheduledAction::execute):
95         * bindings/v8/ScheduledAction.h:
96         (WebCore):
97         (ScheduledAction):
98         (WebCore::ScheduledAction::ScheduledAction):
99
100 2012-08-23  Andrey Kosyakov  <caseq@chromium.org>
101
102         Web Inspector: dblclick on Timeline overview no longer selects entire timeline range
103         https://bugs.webkit.org/show_bug.cgi?id=94826
104
105         Reviewed by Vsevolod Vlasov.
106
107         Only install a glass pane for drag-n-drop upon first mouseout event -- otherwise, glass pane
108         will interfere with double clicks.
109
110         * inspector/front-end/UIUtils.js:
111         (WebInspector._elementDragStart.onMouseOut):
112         (WebInspector._elementDragStart):
113         (WebInspector._elementDragEnd):
114
115 2012-08-23  Adrienne Walker  <enne@google.com>
116
117         Convert ScrollableArea ASSERT_NOT_REACHED virtuals
118         https://bugs.webkit.org/show_bug.cgi?id=93306
119
120         Reviewed by Darin Adler.
121
122         ASSERT_NOT_REACHED is a bad way to make sure that a virtual function
123         gets an override, because it only fails at run-time in debug builds.
124
125         To fix this, convert the virtuals in ScrollableArea that have
126         ASSERT_NOT_REACHED to be either pure virtual or implemented directly
127         in ScrollableArea. Add implementations where necessary to make derived
128         classes concrete.
129
130         Additionally, consistently add OVERRIDE for virtual functions in
131         derived classes that override ScrollableArea methods.
132
133         * WebCore.exp.in:
134         * page/FrameView.h:
135         (FrameView):
136         * platform/ScrollView.h:
137         (ScrollView):
138         * platform/ScrollableArea.cpp:
139         (WebCore::ScrollableArea::scrollPosition):
140         (WebCore):
141         (WebCore::ScrollableArea::minimumScrollPosition):
142         (WebCore::ScrollableArea::maximumScrollPosition):
143         (WebCore::ScrollableArea::visibleContentRect):
144         * platform/ScrollableArea.h:
145         (ScrollableArea):
146         (WebCore::ScrollableArea::overhangAmount):
147         * platform/chromium/FramelessScrollView.cpp:
148         (WebCore::FramelessScrollView::isOnActivePage):
149         (WebCore):
150         (WebCore::FramelessScrollView::scrollableAreaBoundingBox):
151         * platform/chromium/FramelessScrollView.h:
152         (FramelessScrollView):
153         * platform/win/PopupMenuWin.cpp:
154         (WebCore::PopupMenuWin::visibleHeight):
155         (WebCore):
156         (WebCore::PopupMenuWin::visibleWidth):
157         (WebCore::PopupMenuWin::contentsSize):
158         (WebCore::PopupMenuWin::isOnActivePage):
159         (WebCore::PopupMenuWin::scrollableAreaBoundingBox):
160         * platform/win/PopupMenuWin.h:
161         (PopupMenuWin):
162         * rendering/RenderListBox.cpp:
163         * rendering/RenderListBox.h:
164         (RenderListBox):
165
166 2012-08-23  Alexander Shalamov  <alexander.shalamov@intel.com>
167
168         getComputedStyle returns wrong value for CSS3 2D transformations
169         https://bugs.webkit.org/show_bug.cgi?id=94211
170
171         Reviewed by Simon Fraser.
172
173         When computed style is calculated for CSS3 2D transformation, content
174         box size is used. According to W3C specification, object's bounding
175         box should be used. This patch fixes transformation matrix calculation.
176
177         Layout tests getComputedStyle-transform.html and computed-style-origin.html
178         were modified to test changes.
179
180         * css/CSSComputedStyleDeclaration.cpp:
181         (WebCore::computedTransform):
182         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
183         (WebCore::pixelSnappedSizingBox): Removed unused method
184
185 2012-08-23  Takashi Sakamoto  <tasak@google.com>
186
187         Distributed nodes should not share styles.
188         https://bugs.webkit.org/show_bug.cgi?id=90661
189
190         Reviewed by Hajime Morita.
191
192         styleForElement tries to use previous sibling's style for distributed
193         nodes. However distributed nodes are children of a shadow host, but
194         the nodes are not siblings as the result of distribution.
195         The spec is:
196         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-dom-subtrees
197         So sharing previous sibling's style should be disabled for distrbuted
198         nodes.
199
200         Test: fast/dom/shadow/style-of-distributed-node.html
201
202         * css/StyleResolver.cpp:
203         (WebCore::StyleResolver::StyleResolver):
204         Initialized m_distributedToInsertionPoint. Its initial value is false.
205         (WebCore::StyleResolver::initForStyleResolve):
206         After invoking NodeRenderingContext, if the context returns any
207         insertion point, set m_distributedToInsertionPoint to be true.
208         Otherwise, false. The value is used in styleForElement.
209         (WebCore::StyleResolver::styleForElement):
210         If m_distributedToInsertionPoint is true, disable local sibling style
211         cache.
212         * css/StyleResolver.h:
213         (StyleResolver):
214         Added a new member variable, m_distributedToInsertionPoint.
215         The variable keeps whether the m_element is distributed to an
216         insertion point.
217
218 2012-08-23  John Griggs  <jgriggs@rim.com>
219
220                 Replace access ot HTMLMediaElement from MediaPlayerPrivateBlackBerry with methods in MediaPlayerClient - updated with notes from initial reviews.  https://bugs.webkit.org/show_bug.cgi?id=84291
221
222                 Reviewed by Eric Carlson.
223
224                 Code standard compliance - no functional change, so no new tests required.
225
226                 * html/HTMLMediaElement.cpp:
227                 (WebCore::HTMLMediaElement::mediaPlayerExitFullscreen):
228                 (WebCore):
229                 (WebCore::HTMLMediaElement::mediaPlayerIsVideo):
230                 (WebCore::HTMLMediaElement::mediaPlayerContentBoxRect):
231                 (WebCore::HTMLMediaElement::mediaPlayerSetSize):
232                 (WebCore::HTMLMediaElement::mediaPlayerPause):
233                 (WebCore::HTMLMediaElement::mediaPlayerPlay):
234                 (WebCore::HTMLMediaElement::mediaPlayerIsPaused):
235                 (WebCore::HTMLMediaElement::mediaPlayerHostWindow):
236                 (WebCore::HTMLMediaElement::mediaPlayerWindowClipRect):
237                 * html/HTMLMediaElement.h:
238                 (HTMLMediaElement):
239                 * platform/graphics/MediaPlayer.h:
240                 (WebCore):
241                 (WebCore::MediaPlayerClient::mediaPlayerExitFullscreen):
242                 (WebCore::MediaPlayerClient::mediaPlayerIsVideo):
243                 (WebCore::MediaPlayerClient::mediaPlayerContentBoxRect):
244                 (WebCore::MediaPlayerClient::mediaPlayerSetSize):
245                 (WebCore::MediaPlayerClient::mediaPlayerPause):
246                 (WebCore::MediaPlayerClient::mediaPlayerPlay):
247                 (WebCore::MediaPlayerClient::mediaPlayerIsPaused):
248                 (WebCore::MediaPlayerClient::mediaPlayerHostWindow):
249                 (WebCore::MediaPlayerClient::mediaPlayerWindowClipRect):
250                 * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
251                 (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
252                 (WebCore::MediaPlayerPrivate::load):
253                 (WebCore::MediaPlayerPrivate::paint):
254                 (WebCore::MediaPlayerPrivate::resizeSourceDimensions):
255                 (WebCore::MediaPlayerPrivate::updateStates):
256                 (WebCore::MediaPlayerPrivate::onPauseStateChanged):
257                 (WebCore::MediaPlayerPrivate::onPlayNotified):
258                 (WebCore::MediaPlayerPrivate::onPauseNotified):
259                 (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
260                 (WebCore::MediaPlayerPrivate::showErrorDialog):
261                 (WebCore::MediaPlayerPrivate::platformWindow):
262                 (WebCore::MediaPlayerPrivate::isElementPaused):
263                 (WebCore::MediaPlayerPrivate::isTabVisible):
264                 * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
265                 (MediaPlayerPrivate):
266
267 2012-08-23  John Mellor  <johnme@chromium.org>
268
269         Text Autosizing: Multiply large fonts less, as they are already more legible.
270         https://bugs.webkit.org/show_bug.cgi?id=94227
271
272         Reviewed by Kenneth Rohde Christiansen.
273
274         Rather than uniformly multiplying font sizes by the multiplier (derived
275         from the width of the block), we should multiply fonts that are already
276         large less, since they are already more legible hence there is less need
277         for them to grow.
278
279         However it is still important to maintain differentiation between text
280         that the author specified to be of different sizes.
281
282         This algorithm multiplies text by the multiplier up until a predefined
283         "pleasant" font size; beyond that the computedSize goes up with
284         specifiedSize but at a gradient of less than 1 in order to gradually
285         fade out the size increase; finally for very large specifiedSizes the
286         computedSize will be the same as the specifiedSize.
287
288         For further details, including a graph, please see the bug report.
289
290         Test: fast/text-autosizing/various-font-sizes.html
291
292         * rendering/TextAutosizer.cpp:
293         (WebCore::TextAutosizer::computeAutosizedFontSize):
294
295             Implements the custom multiplication. See comment for details.
296
297         * rendering/style/RenderStyle.cpp:
298         (WebCore::RenderStyle::lineHeight):
299
300             Use computeAutosizedFontSize instead of directly multiplying.
301
302         (WebCore::RenderStyle::setFontSize):
303
304             Use computeAutosizedFontSize instead of directly multiplying.
305
306 2012-08-23  Emil A Eklund  <eae@chromium.org>
307
308         Remove dependency on RenderStyle from FractionalLayoutBoxExtent and LayoutBox
309         https://bugs.webkit.org/show_bug.cgi?id=94146
310
311         Reviewed by Eric Seidel.
312
313         FractionalLayoutBoxExtent and LayoutBox currently have a dependency on
314         RenderStyle to resolve writing mode and text direction.
315         This is undesirable and breaks encapsulation.
316
317         Change FractionalLayoutBoxExtent and LengthBox to take a writing mode
318         parameter, and text direction as needed, instead of a pointer to a
319         RenderStyle object.
320
321         No new tests, no change in functionality.
322
323         * WebCore.gypi:
324         * WebCore.vcproj/WebCore.vcproj:
325         * WebCore.xcodeproj/project.pbxproj:
326         Add new WritingMode.h file.
327         
328         * css/CSSPrimitiveValueMappings.h:
329         * css/CSSProperty.h:
330         * css/CSSToStyleMap.h:
331         Change includes as needed.
332
333         * platform/LengthBox.h:
334         * platform/LengthBox.cpp:
335         (WebCore::LengthBox::logicalLeft):
336         (WebCore::LengthBox::logicalRight):
337         (WebCore::LengthBox::before):
338         (WebCore::LengthBox::after):
339         Change methods to take a WirtingMode parameter instead of a RenderStyle pointer.
340         
341         (WebCore::LengthBox::start):
342         (WebCore::LengthBox::end):
343         Change methods to take WritingMode and TextDirection parameters instead of a RenderStyle pointer.
344         
345         * platform/graphics/FractionalLayoutBoxExtent.h:
346         * platform/graphics/FractionalLayoutBoxExtent.cpp:
347         (WebCore::FractionalLayoutBoxExtent::logicalTop):
348         (WebCore::FractionalLayoutBoxExtent::logicalBottom):
349         (WebCore::FractionalLayoutBoxExtent::logicalLeft):
350         (WebCore::FractionalLayoutBoxExtent::logicalRight):
351         (WebCore::FractionalLayoutBoxExtent::before):
352         (WebCore::FractionalLayoutBoxExtent::after):
353         (WebCore::FractionalLayoutBoxExtent::setBefore):
354         (WebCore::FractionalLayoutBoxExtent::setAfter):
355         (WebCore::FractionalLayoutBoxExtent::mutableLogicalLeft):
356         (WebCore::FractionalLayoutBoxExtent::mutableLogicalRight):
357         (WebCore::FractionalLayoutBoxExtent::mutableBefore):
358         (WebCore::FractionalLayoutBoxExtent::mutableAfter):
359         Change methods to take a WritingMode parameter instead of a RenderStyle pointer.
360
361         (WebCore::FractionalLayoutBoxExtent::start):
362         (WebCore::FractionalLayoutBoxExtent::end):
363         (WebCore::FractionalLayoutBoxExtent::setStart):
364         (WebCore::FractionalLayoutBoxExtent::setEnd):
365         Change methods to take WritingMode and TextDirection parameters instead of a RenderStyle pointer.
366
367         * platform/text/TextDirection.h:
368         (WebCore::isLeftToRightDirection):
369         Add convenience method.
370         
371         * platform/text/WritingMode.h: Added.
372         Move WritingMode enum from RenderStyleConstants to new file.
373         
374         (WebCore::isHorizontalWritingMode):
375         (WebCore::isFlippedLinesWritingMode):
376         (WebCore::isFlippedBlocksWritingMode):
377         Add convenience methods for working with writing modes.
378         
379         * rendering/InlineFlowBox.cpp:
380         * rendering/RenderBox.cpp:
381         * rendering/RenderBox.h:
382         * rendering/style/RenderStyle.h:
383         Update calls to FractionalLayoutBoxExtent/LengthBox to pass WritingMode/
384         TextDirection as needed.
385
386         * rendering/style/RenderStyleConstants.h:
387         Remove WritingMode enum as it is now in a dedicated file.
388
389 2012-08-23  Pavel Feldman  <pfeldman@chromium.org>
390
391         Web Inspector: introduce canFilter on panel (otherwise we check for function existence).
392         https://bugs.webkit.org/show_bug.cgi?id=94820
393
394         Reviewed by Alexander Pavlov.
395
396         Drive-by: fix for network panel sorting null pointer access.
397
398         * inspector/front-end/NetworkPanel.js:
399         (WebInspector.NetworkPanel.prototype.performSearch):
400         (WebInspector.NetworkPanel.prototype.canFilter):
401         * inspector/front-end/Panel.js:
402         (WebInspector.Panel.prototype.replaceAllWith):
403         (WebInspector.Panel.prototype.canFilter):
404         (WebInspector.Panel.prototype.performFilter):
405         * inspector/front-end/SearchController.js:
406         (WebInspector.SearchController.prototype._updateFilterVisibility):
407         (WebInspector.SearchController.prototype._performFilter):
408
409 2012-08-23  Pavel Feldman  <pfeldman@chromium.org>
410
411         Web Inspector: introduce TimelineGrid.Calculator interface.
412         https://bugs.webkit.org/show_bug.cgi?id=94819
413
414         Reviewed by Alexander Pavlov.
415
416         This way we can compile TimelineGrid properly.
417
418         * inspector/front-end/MemoryStatistics.js:
419         (WebInspector.MemoryStatistics.prototype._calculateVisibleIndexes):
420         * inspector/front-end/TimelineGrid.js:
421         (WebInspector.TimelineGrid.prototype.updateDividers):
422         (WebInspector.TimelineGrid.Calculator):
423         (WebInspector.TimelineGrid.Calculator.prototype.computePosition):
424         (WebInspector.TimelineGrid.Calculator.prototype.formatTime):
425         (WebInspector.TimelineGrid.Calculator.prototype.minimumBoundary):
426         (WebInspector.TimelineGrid.Calculator.prototype.maximumBoundary):
427         (WebInspector.TimelineGrid.Calculator.prototype.boundarySpan):
428         * inspector/front-end/TimelineOverviewPane.js:
429         (WebInspector.TimelineOverviewCalculator.prototype.computePosition):
430         (WebInspector.TimelineOverviewCalculator.prototype.computeBarGraphPercentages):
431         (WebInspector.TimelineOverviewCalculator.prototype.setWindow):
432         (WebInspector.TimelineOverviewCalculator.prototype.formatTime):
433         (WebInspector.TimelineOverviewCalculator.prototype.maximumBoundary):
434         (WebInspector.TimelineOverviewCalculator.prototype.minimumBoundary):
435         (WebInspector.TimelineOverviewCalculator.prototype.boundarySpan):
436         * inspector/front-end/TimelinePanel.js:
437         (WebInspector.TimelinePanel.prototype._shouldShowFrames):
438         (WebInspector.TimelineCalculator.prototype.computePosition):
439         (WebInspector.TimelineCalculator.prototype.computeBarGraphPercentages):
440         (WebInspector.TimelineCalculator.prototype.setWindow):
441         (WebInspector.TimelineCalculator.prototype.formatTime):
442         (WebInspector.TimelineCalculator.prototype.maximumBoundary):
443         (WebInspector.TimelineCalculator.prototype.minimumBoundary):
444         (WebInspector.TimelineCalculator.prototype.boundarySpan):
445
446 2012-08-23  David Reveman  <reveman@chromium.org>
447
448         [Chromium] Unnecessary delay when starting to update resources with an inactive vsync timer.
449         https://bugs.webkit.org/show_bug.cgi?id=94719
450
451         Reviewed by James Robinson.
452
453         Replace nextTickTime() with nextTickTimeIfActivated() and return
454         appropriate value when timer is inactive.
455
456         No new tests.
457
458         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
459         (WebCore::CCDelayBasedTimeSource::nextTickTimeIfActivated):
460         (WebCore::CCDelayBasedTimeSource::nextTickTarget):
461         (WebCore):
462         (WebCore::CCDelayBasedTimeSource::postNextTickTask):
463         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:
464         * platform/graphics/chromium/cc/CCFrameRateController.cpp:
465         (WebCore::CCFrameRateController::nextTickTimeIfActivated):
466         * platform/graphics/chromium/cc/CCFrameRateController.h:
467         (CCFrameRateController):
468         * platform/graphics/chromium/cc/CCScheduler.cpp:
469         (WebCore::CCScheduler::processScheduledActions):
470         * platform/graphics/chromium/cc/CCTimeSource.h:
471         (CCTimeSource):
472
473 2012-08-23  Pavel Feldman  <pfeldman@chromium.org>
474
475         Web Inspector: make treeoutline.js compiler-friendly
476         https://bugs.webkit.org/show_bug.cgi?id=94818
477
478         Reviewed by Alexander Pavlov.
479
480         This change declares base methods on TreeElement so that we did not need to check for their existence.
481
482         * inspector/front-end/AdvancedSearchController.js:
483         (WebInspector.FileBasedSearchResultsPane.prototype._appendShowMoreMatchesElement):
484         (WebInspector.FileBasedSearchResultsPane.prototype._addFileTreeElement):
485         * inspector/front-end/ElementsTreeOutline.js:
486         (WebInspector.ElementsTreeElement.prototype.onselect):
487         * inspector/front-end/SidebarPane.js:
488         (WebInspector.SidebarPane.prototype.expand):
489         (WebInspector.SidebarPane.prototype.onexpand):
490         (WebInspector.SidebarPane.prototype.collapse):
491         * inspector/front-end/treeoutline.js:
492         (TreeOutline.prototype._treeKeyDown):
493         (TreeOutline.prototype._searchInputKeyDown):
494         (TreeElement.prototype._fireDidChange):
495         (TreeElement.prototype._attach):
496         (TreeElement.treeElementDoubleClicked):
497         (TreeElement.prototype.collapse):
498         (TreeElement.prototype.expand):
499         (TreeElement.prototype.reveal):
500         (TreeElement.prototype.select):
501         (TreeElement.prototype.deselect):
502         (TreeElement.prototype.onpopulate):
503         (TreeElement.prototype.onenter):
504         (TreeElement.prototype.ondelete):
505         (TreeElement.prototype.onspace):
506         (TreeElement.prototype.onattach):
507         (TreeElement.prototype.onexpand):
508         (TreeElement.prototype.oncollapse):
509         (TreeElement.prototype.ondblclick):
510         (TreeElement.prototype.onreveal):
511         (TreeElement.prototype.onselect):
512
513 2012-08-23  Yury Semikhatsky  <yurys@chromium.org>
514
515         Web Inspector: use temporary directory for modules generated by compile-front-end.py
516         https://bugs.webkit.org/show_bug.cgi?id=94804
517
518         Reviewed by Pavel Feldman.
519
520         Create temporary directory for generated js modules and remove the directory
521         after the compilation.
522
523         * inspector/compile-front-end.py:
524
525 2012-08-23  Simon Hausmann  <simon.hausmann@nokia.com>
526
527         [Qt] Fix make install on Windows
528         https://bugs.webkit.org/show_bug.cgi?id=94816
529
530         Reviewed by Laszlo Gombos.
531
532         This old left-over rule for Windows to add dlltarget to INSTALLS caused
533         various bugs: WebCore's Makefile had an actual install target that
534         tried to install the WebCore static library and it also screwed up
535         api.pri's install rule by overriding what is usually set up for qt
536         modules, i.e. the install path was missing INSTALL_ROOT. We don't need
537         these rules at all, the default qmake features take care of setting up
538         target install rules accordingly.
539
540         * WebCore.pri:
541
542 2012-08-23  Pavel Feldman  <pfeldman@chromium.org>
543
544         Web Inspector: extract ParsedURL into a separate file.
545         https://bugs.webkit.org/show_bug.cgi?id=94817
546
547         Reviewed by Alexander Pavlov.
548
549         * WebCore.gypi:
550         * WebCore.vcproj/WebCore.vcproj:
551         * inspector/compile-front-end.py:
552         * inspector/front-end/AuditRules.js:
553         (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun):
554         (WebInspector.AuditRules.CssInHeadRule.prototype.doRun.externalStylesheetsReceived):
555         (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun.cssBeforeInlineReceived):
556         * inspector/front-end/DefaultTextEditor.js:
557         (WebInspector.TextEditorMainPanel.prototype._rewriteHref):
558         * inspector/front-end/ParsedURL.js: Added.
559         (WebInspector.ParsedURL):
560         (WebInspector.ParsedURL.completeURL):
561         (WebInspector.ParsedURL.prototype.get displayName):
562         (String.prototype.asParsedURL):
563         * inspector/front-end/ResourceUtils.js:
564         (WebInspector.resourceURLForRelatedNode):
565         * inspector/front-end/StylesSidebarPane.js:
566         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.linkifyURL):
567         * inspector/front-end/WebKit.qrc:
568         * inspector/front-end/inspector.html:
569
570 2012-08-23  Pavel Feldman  <pfeldman@chromium.org>
571
572         Web Inspector: register context menu providers for lazily loaded panels.
573         https://bugs.webkit.org/show_bug.cgi?id=94812
574
575         Reviewed by Alexander Pavlov.
576
577         - Panel descriptors now register providers that lazily load panels on demand.
578         - Removed custom profiles context provider infrastructure in favor of generic one.
579
580         * WebCore.gypi:
581         * WebCore.vcproj/WebCore.vcproj:
582         * inspector/compile-front-end.py:
583         * inspector/front-end/NetworkPanel.js:
584         (WebInspector.NetworkPanel):
585         * inspector/front-end/NetworkPanelDescriptor.js: Added.
586         (WebInspector.NetworkPanelDescriptor):
587         (WebInspector.NetworkPanelDescriptor.prototype.appendApplicableItems):
588         * inspector/front-end/ObjectPropertiesSection.js:
589         (WebInspector.ObjectPropertiesSection.prototype._contextMenuEventFired):
590         * inspector/front-end/ProfilesPanel.js:
591         (WebInspector.ProfilesPanel):
592         (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress):
593         (WebInspector.ProfilesPanel.prototype.appendApplicableItems.didReceiveHeapObjectId):
594         (WebInspector.ProfilesPanel.prototype.appendApplicableItems):
595         * inspector/front-end/ScriptsPanel.js:
596         (WebInspector.ScriptsPanel):
597         * inspector/front-end/ScriptsPanelDescriptor.js: Added.
598         (WebInspector.ScriptsPanelDescriptor):
599         (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
600         * inspector/front-end/WebKit.qrc:
601         * inspector/front-end/inspector.html:
602         * inspector/front-end/inspector.js:
603         (WebInspector._panelDescriptors):
604
605 2012-08-23  Carlos Garcia Campos  <cgarcia@igalia.com>
606
607         Unreviewed. Fix make distcheck.
608
609         * GNUmakefile.am: Add idl files in Modules/quota to EXTRA_DIST.
610         * GNUmakefile.list.am: Add missing files to compilation.
611
612 2012-08-23  Carlos Garcia Campos  <cgarcia@igalia.com>
613
614         REGRESSION(r126306): it broke the plugin process
615         https://bugs.webkit.org/show_bug.cgi?id=94797
616
617         Reviewed by Xan Lopez.
618
619         * GNUmakefile.am:
620         * GNUmakefile.list.am:
621
622 2012-08-23  Simon Hausmann  <simon.hausmann@nokia.com>
623
624         Unreviewed trivial build fix for Qt/Mac on OS X 10.6: Avoid using an
625         enum value that clashes with an existing class name that's used in the
626         same file.
627
628         * bridge/qt/qt_runtime.cpp:
629         (JSC::Bindings::valueRealType):
630         (JSC::Bindings::convertValueToQVariant):
631
632 2012-08-22  Patrick Gansterer  <paroga@webkit.org>
633
634         Build fix for WinCE after r126359.
635
636         * rendering/RenderThemeWinCE.cpp:
637
638 2012-08-23  Dominic Cooney  <dominicc@chromium.org>
639
640         Unreviewed, rolling out r126391.
641         http://trac.webkit.org/changeset/126391
642         https://bugs.webkit.org/show_bug.cgi?id=94302
643
644         Breaks Chromium browser_tests AccessibilityFooter,
645         AccessibilityListMarkers, AccessibilityUI
646
647         * accessibility/AccessibilityNodeObject.cpp:
648         * accessibility/AccessibilityNodeObject.h:
649         (AccessibilityNodeObject):
650         * accessibility/AccessibilityObject.cpp:
651         * accessibility/AccessibilityObject.h:
652         (AccessibilityObject):
653         * accessibility/AccessibilityRenderObject.cpp:
654         (WebCore::AccessibilityRenderObject::title):
655         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
656         (WebCore::AccessibilityRenderObject::isDescendantOfElementType):
657         * accessibility/AccessibilityRenderObject.h:
658         (AccessibilityRenderObject):
659
660 2012-08-23  Andrey Adaikin  <aandrey@chromium.org>
661
662         Web Inspector: [WebGL] Allow collecting calls for Resource objects affecting their states
663         https://bugs.webkit.org/show_bug.cgi?id=94686
664
665         Reviewed by Pavel Feldman.
666
667         Allow collecting calls for WebGL Resource objects affecting their states.
668         Clone Call's mutable arguments before pushing it to the log.
669
670         * inspector/InjectedScriptWebGLModuleSource.js:
671         (.):
672
673 2012-08-23  Robin Cao  <robin.cao@torchmobile.com.cn>
674
675         [BlackBerry] draw <video> on <canvas> does not work
676         https://bugs.webkit.org/show_bug.cgi?id=94791
677         PR #195866
678
679         Reviewed by George Staikos.
680
681         Re-implement MediaPlayerPrivate::paintCurrentFrameInContext() in the
682         blackberry port. This method is mainly called from <canvas>, and it
683         is supposed to paint video frames using software rendering path.
684
685         On the other hand, MediaPlayerPrivate::paint() will choose accelerated
686         rendering if possible.
687
688         media/video-canvas-alpha.html covers this.
689
690         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
691         (WebCore::MediaPlayerPrivate::paint):
692         (WebCore):
693         (WebCore::MediaPlayerPrivate::paintCurrentFrameInContext):
694         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
695         (MediaPlayerPrivate):
696
697 2012-08-23  Kentaro Hara  <haraken@chromium.org>
698
699         Unreviewed. Build fix for r126399.
700
701         * bindings/v8/ScriptInstance.cpp:
702
703 2012-08-23  Pavel Feldman  <pfeldman@chromium.org>
704
705         Web Inspector: treat 0 cookies as "no cookies" and render it accordingly in the UI
706         https://bugs.webkit.org/show_bug.cgi?id=94732
707
708         Reviewed by Yury Semikhatsky.
709
710         * inspector/front-end/RequestCookiesView.js:
711         (WebInspector.RequestCookiesView.prototype.get _gotCookies):
712
713 2012-08-23  KwangYong Choi  <ky0.choi@samsung.com>
714
715         [EFL] Use vertical slider theme when the slider is vertical
716         https://bugs.webkit.org/show_bug.cgi?id=93838
717
718         Reviewed by Kenneth Rohde Christiansen.
719
720         Applied vertical slider theme to the vertical sliders. The height
721         of the vertical slider is wrong when it's applied horizontal
722         slider theme.
723
724         And do not resize slider when its size is not specified. It's natural
725         to use the default value of renderer.
726
727         No new tests. It's covered by existing range and datalist tests.
728
729         * platform/efl/RenderThemeEfl.cpp:
730         (WebCore::RenderThemeEfl::adjustSliderTrackStyle):
731
732 2012-08-23  Kentaro Hara  <haraken@chromium.org>
733
734         [V8] Remove almost all #include "V8Proxy.h"
735         https://bugs.webkit.org/show_bug.cgi?id=94777
736
737         Reviewed by Adam Barth.
738
739         No tests. No change in behavior.
740
741         * bindings/v8/NPV8Object.cpp:
742         * bindings/v8/PageScriptDebugServer.cpp:
743         * bindings/v8/ScheduledAction.cpp:
744         * bindings/v8/ScriptController.cpp:
745         * bindings/v8/ScriptInstance.cpp:
746         * bindings/v8/ScriptObject.cpp:
747         * bindings/v8/ScriptRunner.cpp:
748         * bindings/v8/SerializedScriptValue.cpp:
749         * bindings/v8/V8AbstractEventListener.cpp:
750         * bindings/v8/V8Binding.h:
751         (WebCore):
752         * bindings/v8/V8BindingMacros.h:
753         (WebCore):
754         * bindings/v8/V8Collection.h:
755         * bindings/v8/V8DOMWindowShell.cpp:
756         * bindings/v8/V8DOMWrapper.cpp:
757         * bindings/v8/V8EventListener.cpp:
758         * bindings/v8/V8GCController.cpp:
759         * bindings/v8/V8LazyEventListener.cpp:
760         * bindings/v8/V8NPObject.cpp:
761         * bindings/v8/V8NPUtils.cpp:
762         * bindings/v8/V8Proxy.h:
763         (WebCore):
764         * bindings/v8/V8Utilities.cpp:
765         * bindings/v8/WorkerContextExecutionProxy.cpp:
766         * bindings/v8/WorkerScriptController.cpp:
767         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
768         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
769         * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
770         * bindings/v8/custom/V8AudioContextCustom.cpp:
771         * bindings/v8/custom/V8BlobCustom.cpp:
772         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
773         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
774         * bindings/v8/custom/V8ClipboardCustom.cpp:
775         * bindings/v8/custom/V8ConsoleCustom.cpp:
776         * bindings/v8/custom/V8CoordinatesCustom.cpp:
777         * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
778         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
779         * bindings/v8/custom/V8DataViewCustom.cpp:
780         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
781         * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
782         * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
783         * bindings/v8/custom/V8DocumentCustom.cpp:
784         * bindings/v8/custom/V8DocumentLocationCustom.cpp:
785         * bindings/v8/custom/V8EntryCustom.cpp:
786         * bindings/v8/custom/V8EntrySyncCustom.cpp:
787         * bindings/v8/custom/V8EventCustom.cpp:
788         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
789         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
790         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
791         * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
792         * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
793         * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
794         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
795         * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
796         * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
797         * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
798         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
799         * bindings/v8/custom/V8HTMLOutputElementCustom.cpp:
800         * bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
801         * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
802         * bindings/v8/custom/V8HistoryCustom.cpp:
803         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
804         * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
805         * bindings/v8/custom/V8IntentConstructor.cpp:
806         * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
807         * bindings/v8/custom/V8LocationCustom.cpp:
808         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
809         * bindings/v8/custom/V8MessageEventCustom.cpp:
810         * bindings/v8/custom/V8MessagePortCustom.cpp:
811         * bindings/v8/custom/V8MutationCallbackCustom.cpp:
812         * bindings/v8/custom/V8MutationObserverCustom.cpp:
813         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
814         * bindings/v8/custom/V8NodeCustom.cpp:
815         * bindings/v8/custom/V8NodeListCustom.cpp:
816         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
817         * bindings/v8/custom/V8NotificationCustom.cpp:
818         * bindings/v8/custom/V8PopStateEventCustom.cpp:
819         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
820         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
821         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
822         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
823         * bindings/v8/custom/V8ScriptProfileCustom.cpp:
824         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
825         * bindings/v8/custom/V8StorageCustom.cpp:
826         * bindings/v8/custom/V8StyleSheetListCustom.cpp:
827         * bindings/v8/custom/V8TrackEventCustom.cpp:
828         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
829         * bindings/v8/custom/V8WebKitAnimationCustom.cpp:
830         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
831         * bindings/v8/custom/V8WebSocketCustom.cpp:
832         * bindings/v8/custom/V8WorkerContextCustom.cpp:
833         * bindings/v8/custom/V8WorkerCustom.cpp:
834         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
835         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
836         * bindings/v8/custom/V8XSLTProcessorCustom.cpp:
837
838 2012-08-22  Kentaro Hara  <haraken@chromium.org>
839
840         Unreviewed, rolling out r126348.
841         http://trac.webkit.org/changeset/126348
842         https://bugs.webkit.org/show_bug.cgi?id=94588
843
844         We should use v8::String::NewSymbol() for symbols. See
845         https://bugs.webkit.org/show_bug.cgi?id=94574#c10 for more
846         details
847
848         * bindings/scripts/CodeGeneratorV8.pm:
849         (GenerateNormalAttrGetter):
850         (GenerateNormalAttrSetter):
851         (GenerateNamedConstructorCallback):
852         (GenerateNonStandardFunction):
853         (GenerateImplementation):
854         * bindings/scripts/test/V8/V8Float64Array.cpp:
855         (WebCore::ConfigureV8Float64ArrayTemplate):
856         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
857         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
858         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
859         (WebCore::ConfigureV8TestEventTargetTemplate):
860         * bindings/scripts/test/V8/V8TestInterface.cpp:
861         (WebCore::ConfigureV8TestInterfaceTemplate):
862         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
863         (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
864         * bindings/scripts/test/V8/V8TestObj.cpp:
865         (WebCore::ConfigureV8TestObjTemplate):
866         (WebCore::V8TestObj::installPerContextProperties):
867         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
868         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
869         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetter):
870         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
871         * bindings/v8/V8Binding.h:
872         (WebCore):
873
874 2012-08-22  Kentaro Hara  <haraken@chromium.org>
875
876         [V8] Remove V8Proxy from CodeGeneratorV8.pm
877         https://bugs.webkit.org/show_bug.cgi?id=94773
878
879         Reviewed by Adam Barth.
880
881         To kill V8Proxy, we can remove V8Proxy uses from CodeGeneratorV8.pm.
882
883         No tests. No change in behavior.
884
885         * bindings/scripts/CodeGeneratorV8.pm:
886         (GenerateToV8Converters):
887         * bindings/scripts/test/V8/V8Float64Array.cpp:
888         (WebCore::V8Float64Array::wrapSlow):
889         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
890         (WebCore::V8TestActiveDOMObject::wrapSlow):
891         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
892         (WebCore::V8TestCustomNamedGetter::wrapSlow):
893         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
894         (WebCore::V8TestEventConstructor::wrapSlow):
895         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
896         (WebCore::V8TestEventTarget::wrapSlow):
897         * bindings/scripts/test/V8/V8TestException.cpp:
898         (WebCore::V8TestException::wrapSlow):
899         * bindings/scripts/test/V8/V8TestInterface.cpp:
900         (WebCore::V8TestInterface::wrapSlow):
901         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
902         (WebCore::V8TestMediaQueryListListener::wrapSlow):
903         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
904         (WebCore::V8TestNamedConstructor::wrapSlow):
905         * bindings/scripts/test/V8/V8TestNode.cpp:
906         (WebCore::V8TestNode::wrapSlow):
907         * bindings/scripts/test/V8/V8TestObj.cpp:
908         (WebCore::V8TestObj::wrapSlow):
909         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
910         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
911
912 2012-08-22  Sukolsak Sakshuwong  <sukolsak@google.com>
913
914         Implement UndoManager's item() method
915         https://bugs.webkit.org/show_bug.cgi?id=94671
916
917         Reviewed by Ryosuke Niwa.
918
919         This patch implements UndoManager's item() method and its V8 custom binding.
920         We need to use custom binding here because we need to return user objects
921         that are stored in a hidden property of DOMTransaction wrappers, not returning
922         the wrappers themselves.
923
924         Test: editing/undomanager/undomanager-item.html
925
926         * bindings/js/JSUndoManagerCustom.cpp:
927         (WebCore::JSUndoManager::item):
928         (WebCore):
929         * bindings/v8/DOMTransaction.cpp:
930         (WebCore::DOMTransaction::data):
931         (WebCore):
932         (WebCore::DOMTransaction::setData):
933         (WebCore::DOMTransaction::getFunction):
934         * bindings/v8/DOMTransaction.h:
935         * bindings/v8/custom/V8UndoManagerCustom.cpp:
936         (WebCore::V8UndoManager::transactCallback):
937         (WebCore::V8UndoManager::itemCallback):
938         (WebCore):
939         * editing/UndoManager.cpp:
940         (WebCore::UndoManager::item):
941         (WebCore):
942         * editing/UndoManager.h:
943         (UndoManager):
944         * editing/UndoManager.idl:
945
946 2012-08-22  Dominic Mazzoni  <dmazzoni@google.com>
947
948         AX: Focusable elements without a role should not be ignored
949         https://bugs.webkit.org/show_bug.cgi?id=94302
950
951         Reviewed by Chris Fleizach.
952
953         Changes the accessibility logic so that a generic element that's focusable is
954         not ignored for accessibility, and returns its inner text as its title. That way
955         if you Tab to the element, a reasonable accessibility notification is generated.
956
957         One exception is the body element, because focusing the body is equivalent to
958         blurring the current focused element and does not result in a "focus" accessibility
959         notification.
960
961         Also fixes logic that determined if an element was contentEditable by making
962         sure it catches the case with no attribute value (e.g. <div contentEditable>),
963         which also implies contentEditable=true according to the spec.
964
965         Test: accessibility/focusable-div.html
966
967         * accessibility/AccessibilityRenderObject.cpp:
968         (WebCore):
969         (WebCore::nodeHasContentEditableAttributeSet):
970         (WebCore::AccessibilityRenderObject::title):
971         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
972
973 2012-08-22  Kentaro Hara  <haraken@chromium.org>
974
975         Unreviewed, rolling out r126383.
976         http://trac.webkit.org/changeset/126383
977         https://bugs.webkit.org/show_bug.cgi?id=82888
978
979         Chromium win build crash
980
981         * bindings/js/JSClipboardCustom.cpp:
982         (WebCore::JSClipboard::types):
983         * bindings/v8/custom/V8ClipboardCustom.cpp:
984         (WebCore::V8Clipboard::typesAccessorGetter):
985         * dom/Clipboard.h:
986         (Clipboard):
987         * platform/blackberry/ClipboardBlackBerry.cpp:
988         (WebCore::ClipboardBlackBerry::types):
989         * platform/blackberry/ClipboardBlackBerry.h:
990         (ClipboardBlackBerry):
991         * platform/chromium/ChromiumDataObject.cpp:
992         (WebCore::ChromiumDataObject::types):
993         * platform/chromium/ChromiumDataObject.h:
994         (ChromiumDataObject):
995         * platform/chromium/ClipboardChromium.cpp:
996         (WebCore::ClipboardChromium::types):
997         * platform/chromium/ClipboardChromium.h:
998         (ClipboardChromium):
999         * platform/efl/ClipboardEfl.cpp:
1000         (WebCore::ClipboardEfl::types):
1001         * platform/efl/ClipboardEfl.h:
1002         (ClipboardEfl):
1003         * platform/gtk/ClipboardGtk.cpp:
1004         (WebCore::ClipboardGtk::types):
1005         * platform/gtk/ClipboardGtk.h:
1006         (ClipboardGtk):
1007         * platform/mac/ClipboardMac.h:
1008         (ClipboardMac):
1009         * platform/mac/ClipboardMac.mm:
1010         (WebCore::addHTMLClipboardTypesForCocoaType):
1011         (WebCore::ClipboardMac::types):
1012         * platform/qt/ClipboardQt.cpp:
1013         (WebCore::ClipboardQt::types):
1014         * platform/qt/ClipboardQt.h:
1015         (ClipboardQt):
1016         * platform/win/ClipboardWin.cpp:
1017         (WebCore::addMimeTypesForFormat):
1018         (WebCore::ClipboardWin::types):
1019         * platform/win/ClipboardWin.h:
1020         (ClipboardWin):
1021         * platform/wx/ClipboardWx.cpp:
1022         (WebCore::ClipboardWx::types):
1023         * platform/wx/ClipboardWx.h:
1024         (ClipboardWx):
1025
1026 2012-08-22  Kentaro Hara  <haraken@chromium.org>
1027
1028         [V8] Move m_isolatedWorlds and m_isolatedWorldSecurityOrigins from V8Proxy to ScriptController
1029         https://bugs.webkit.org/show_bug.cgi?id=94770
1030
1031         Reviewed by Adam Barth.
1032
1033         Now m_isolatedWorlds and m_isolatedWorldSecurityOrigins of V8Proxy
1034         are used by ScriptController only. We can move them to ScriptController.
1035
1036         No tests. No change in behavior.
1037
1038         * bindings/v8/ScriptController.cpp:
1039         (WebCore::ScriptController::resetIsolatedWorlds):
1040         (WebCore::ScriptController::evaluateInIsolatedWorld):
1041         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
1042         (WebCore::ScriptController::collectIsolatedContexts):
1043         * bindings/v8/ScriptController.h:
1044         (ScriptController):
1045         * bindings/v8/V8Proxy.h:
1046         (V8Proxy):
1047
1048 2012-08-22  Kentaro Hara  <haraken@chromium.org>
1049
1050         [V8] Move evaluate() from V8Proxy to ScriptController
1051         https://bugs.webkit.org/show_bug.cgi?id=94768
1052
1053         Reviewed by Adam Barth.
1054
1055         To kill V8Proxy, we can move evaluate() from V8Proxy to ScriptController.
1056
1057         - Renamed evaluate() to compileAndRunScript() to avoid name conflict
1058         with existing ScriptController::evaluate().
1059
1060         - Removed toV8Proxy() from NPV8Object, as it is no longer used.
1061
1062         No tests. No change in behavior.
1063
1064         * bindings/v8/NPV8Object.cpp:
1065         (_NPN_EvaluateHelper):
1066         * bindings/v8/ScheduledAction.cpp:
1067         (WebCore::ScheduledAction::execute):
1068         * bindings/v8/ScriptController.cpp:
1069         (WebCore::ScriptController::compileAndRunScript):
1070         (WebCore):
1071         (WebCore::ScriptController::evaluate):
1072         (WebCore::ScriptController::evaluateInIsolatedWorld):
1073         * bindings/v8/ScriptController.h:
1074         (ScriptController):
1075         * bindings/v8/V8Proxy.cpp:
1076         * bindings/v8/V8Proxy.h:
1077
1078 2012-08-22  Vineet Chaudhary  <rgf748@motorola.com>
1079
1080         Consider replacing return type of Clipboard::types() from HashSet<String> to Vector<String>.
1081         https://bugs.webkit.org/show_bug.cgi?id=82888
1082
1083         Reviewed by Kentaro Hara.
1084
1085         As part of removing custom bindings of types Array Clipboard::types() needs to return
1086         Vector<String> than HashSet<String>
1087
1088         No new tests. Exixting test should pass with this change as no behavoural changes.
1089
1090         * bindings/js/JSClipboardCustom.cpp: Replace data type from HashSet<> to Vector<>.
1091         (WebCore::JSClipboard::types):
1092         * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
1093         (WebCore::V8Clipboard::typesAccessorGetter):
1094         * dom/Clipboard.h: Ditto.
1095         (Clipboard):
1096         * platform/blackberry/ClipboardBlackBerry.cpp: Ditto.
1097         (WebCore::ClipboardBlackBerry::types):
1098         * platform/blackberry/ClipboardBlackBerry.h: Ditto.
1099         (ClipboardBlackBerry):
1100         * platform/chromium/ChromiumDataObject.cpp: Ditto.
1101         (WebCore::ChromiumDataObject::types):
1102         * platform/chromium/ChromiumDataObject.h: Ditto.
1103         (ChromiumDataObject):
1104         * platform/chromium/ClipboardChromium.cpp: Ditto.
1105         (WebCore::ClipboardChromium::types):
1106         * platform/chromium/ClipboardChromium.h: Ditto.
1107         (ClipboardChromium):
1108         * platform/efl/ClipboardEfl.cpp: Ditto.
1109         (WebCore::ClipboardEfl::types):
1110         * platform/efl/ClipboardEfl.h: Ditto.
1111         (ClipboardEfl):
1112         * platform/gtk/ClipboardGtk.cpp: Ditto.
1113         (WebCore::ClipboardGtk::types):
1114         * platform/gtk/ClipboardGtk.h: Ditto.
1115         (ClipboardGtk):
1116         * platform/mac/ClipboardMac.h: Ditto.
1117         (ClipboardMac):
1118         * platform/mac/ClipboardMac.mm: Ditto.
1119         (WebCore::addHTMLClipboardTypesForCocoaType):
1120         (WebCore::ClipboardMac::types):
1121         * platform/qt/ClipboardQt.cpp: Ditto.
1122         (WebCore::ClipboardQt::types):
1123         * platform/qt/ClipboardQt.h: Ditto.
1124         (ClipboardQt):
1125         * platform/win/ClipboardWin.cpp: Ditto.
1126         (WebCore::addMimeTypesForFormat):
1127         (WebCore::ClipboardWin::types):
1128         * platform/win/ClipboardWin.h: Ditto.
1129         (ClipboardWin):
1130         * platform/wx/ClipboardWx.cpp: Ditto.
1131         (WebCore::ClipboardWx::types):
1132         * platform/wx/ClipboardWx.h: Ditto.
1133         (ClipboardWx):
1134
1135 2012-08-22  James Robinson  <jamesr@chromium.org>
1136
1137         [chromium] Change WebLayer from a concrete type to a pure virtual interface
1138         https://bugs.webkit.org/show_bug.cgi?id=94174
1139
1140         Reviewed by Adrienne Walker.
1141
1142         This updates WebCore code for the WebLayer interface changes. Classes that have ownership of specific layer
1143         types (such as DrawingBufferChromium, Canvas2DLayerBridge and ScrollingCoordinatorChromium) hold ownership
1144         of a specific type and a pointer to the WebLayer to GraphicsLayerChromium to be included in the final layer
1145         tree. GraphicsLayerChromium holds a WebContentLayer and (optionally) a WebImageLayer and WebLayer (for
1146         m_transformLayer) and assembles the final layer tree.
1147
1148         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
1149         (WebCore::ScrollingCoordinatorPrivate::ScrollingCoordinatorPrivate):
1150         (ScrollingCoordinatorPrivate):
1151         (WebCore::ScrollingCoordinatorPrivate::setScrollLayer):
1152         (WebCore::ScrollingCoordinatorPrivate::setHorizontalScrollbarLayer):
1153         (WebCore::ScrollingCoordinatorPrivate::setVerticalScrollbarLayer):
1154         (WebCore::ScrollingCoordinatorPrivate::scrollLayer):
1155         (WebCore::scrollableLayerForGraphicsLayer):
1156         (WebCore):
1157         (WebCore::createScrollbarLayer):
1158         (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
1159         (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
1160         (WebCore::ScrollingCoordinator::setScrollLayer):
1161         (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
1162         (WebCore::ScrollingCoordinator::setWheelEventHandlerCount):
1163         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
1164         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
1165         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
1166         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
1167         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
1168         (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
1169         (WebCore::Canvas2DLayerBridge::prepareForDraw):
1170         (WebCore::Canvas2DLayerBridge::layer):
1171         (WebCore::Canvas2DLayerBridge::contextAcquired):
1172         * platform/graphics/chromium/Canvas2DLayerBridge.h:
1173         (Canvas2DLayerBridge):
1174         * platform/graphics/chromium/DrawingBufferChromium.cpp:
1175         (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
1176         (WebCore::DrawingBufferPrivate::~DrawingBufferPrivate):
1177         (WebCore::DrawingBufferPrivate::layer):
1178         (DrawingBufferPrivate):
1179         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1180         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
1181         (WebCore::GraphicsLayerChromium::~GraphicsLayerChromium):
1182         (WebCore::GraphicsLayerChromium::willBeDestroyed):
1183         (WebCore::GraphicsLayerChromium::updateNames):
1184         (WebCore::GraphicsLayerChromium::removeFromParent):
1185         (WebCore::GraphicsLayerChromium::setSize):
1186         (WebCore::GraphicsLayerChromium::clearBackgroundColor):
1187         (WebCore::GraphicsLayerChromium::setContentsOpaque):
1188         (WebCore::GraphicsLayerChromium::setFilters):
1189         (WebCore::GraphicsLayerChromium::setBackgroundFilters):
1190         (WebCore::GraphicsLayerChromium::setMaskLayer):
1191         (WebCore::GraphicsLayerChromium::setBackfaceVisibility):
1192         (WebCore::GraphicsLayerChromium::setOpacity):
1193         (WebCore::GraphicsLayerChromium::setReplicatedByLayer):
1194         (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
1195         (WebCore::GraphicsLayerChromium::setNeedsDisplay):
1196         (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
1197         (WebCore::GraphicsLayerChromium::setContentsToImage):
1198         (WebCore::GraphicsLayerChromium::setContentsToCanvas):
1199         (WebCore):
1200         (WebCore::GraphicsLayerChromium::setContentsToMedia):
1201         (WebCore::GraphicsLayerChromium::setContentsTo):
1202         (WebCore::GraphicsLayerChromium::addAnimation):
1203         (WebCore::GraphicsLayerChromium::pauseAnimation):
1204         (WebCore::GraphicsLayerChromium::removeAnimation):
1205         (WebCore::GraphicsLayerChromium::suspendAnimations):
1206         (WebCore::GraphicsLayerChromium::resumeAnimations):
1207         (WebCore::GraphicsLayerChromium::platformLayer):
1208         (WebCore::GraphicsLayerChromium::setDebugBackgroundColor):
1209         (WebCore::GraphicsLayerChromium::setDebugBorder):
1210         (WebCore::GraphicsLayerChromium::updateChildList):
1211         (WebCore::GraphicsLayerChromium::updateLayerPosition):
1212         (WebCore::GraphicsLayerChromium::updateLayerSize):
1213         (WebCore::GraphicsLayerChromium::updateAnchorPoint):
1214         (WebCore::GraphicsLayerChromium::updateTransform):
1215         (WebCore::GraphicsLayerChromium::updateChildrenTransform):
1216         (WebCore::GraphicsLayerChromium::updateMasksToBounds):
1217         (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
1218         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
1219         (WebCore::GraphicsLayerChromium::updateLayerBackgroundColor):
1220         (WebCore::GraphicsLayerChromium::updateContentsRect):
1221         (WebCore::GraphicsLayerChromium::updateContentsScale):
1222         (WebCore::GraphicsLayerChromium::setupContentsLayer):
1223         * platform/graphics/chromium/GraphicsLayerChromium.h:
1224         (GraphicsLayerChromium):
1225         (WebCore::GraphicsLayerChromium::hasContentsLayer):
1226         (WebCore::GraphicsLayerChromium::contentLayer):
1227         (WebCore::GraphicsLayerChromium::contentsLayer):
1228         * platform/graphics/chromium/LayerChromium.cpp:
1229         (WebCore::LayerChromium::rootLayer):
1230         * platform/graphics/chromium/LayerChromium.h:
1231
1232 2012-08-22  Kentaro Hara  <haraken@chromium.org>
1233
1234         [V8] Move runScript() from V8Proxy to ScriptRunner
1235         https://bugs.webkit.org/show_bug.cgi?id=94706
1236
1237         Reviewed by Adam Barth.
1238
1239         To kill V8Proxy, we can move runScript() from V8Proxy to ScriptRunner.
1240
1241         - ScriptRunner::runScript() should be a static method.
1242         It should receive ScriptExecutionContext on which the script is evaluated.
1243
1244         - After this patch is landed, I'll remove WorkerContextExecutionContext::runScript()
1245         and ScriptDebugServer::runScript().
1246
1247         No tests. No change in behavior.
1248
1249         * UseV8.cmake:
1250         * WebCore.gypi:
1251         * bindings/v8/ScriptController.cpp:
1252         * bindings/v8/ScriptRunner.cpp: Added.
1253         (WebCore):
1254         (WebCore::ScriptRunner::runScript):
1255         * bindings/v8/ScriptRunner.h: Added.
1256         (WebCore):
1257         (ScriptRunner):
1258         * bindings/v8/V8Binding.cpp:
1259         (WebCore::handleMaxRecursionDepthExceeded):
1260         (WebCore):
1261         * bindings/v8/V8Binding.h:
1262         (WebCore):
1263         * bindings/v8/V8Proxy.cpp:
1264         (WebCore::V8Proxy::evaluate):
1265         * bindings/v8/V8Proxy.h:
1266         (V8Proxy):
1267
1268 2012-08-22  Adam Barth  <abarth@webkit.org>
1269
1270         [V8] OwnHandle doesn't need to support weak handles
1271         https://bugs.webkit.org/show_bug.cgi?id=94760
1272
1273         Reviewed by Kentaro Hara.
1274
1275         No code uses makeWeak(). We can drop support for it and simplify this
1276         class.
1277
1278         * bindings/v8/OwnHandle.h:
1279         (WebCore):
1280         (OwnHandle):
1281         (WebCore::OwnHandle::OwnHandle):
1282         (WebCore::OwnHandle::~OwnHandle):
1283         (WebCore::OwnHandle::get):
1284         (WebCore::OwnHandle::set):
1285         (WebCore::OwnHandle::clear):
1286
1287 2012-08-22  Kentaro Hara  <haraken@chromium.org>
1288
1289         [V8] Remove V8Proxy from getXPathNSResolver()
1290         https://bugs.webkit.org/show_bug.cgi?id=94715
1291
1292         Reviewed by Adam Barth.
1293
1294         - The V8Proxy* argument of getXPathNSResolver(..., V8Proxy* = 0) is not used.
1295           We can remove it.
1296
1297         - We can rename getXPathNSResolver() to toXPathNSResolver().
1298
1299         - We can move toXPathNSResolver() from V8DOMWrapper to V8Binding,
1300           since other toXXX() methods are written in V8Binding.
1301
1302         - Change the return value of toXPathNSResolver() from RefPtr to PassRefPtr.
1303
1304         No tests. No change in behavior.
1305
1306         * bindings/scripts/CodeGeneratorV8.pm:
1307         (JSValueToNative):
1308         * bindings/v8/V8Binding.cpp:
1309         (WebCore::toXPathNSResolver):
1310         (WebCore):
1311         * bindings/v8/V8Binding.h:
1312         (WebCore):
1313         * bindings/v8/V8DOMWrapper.cpp:
1314         * bindings/v8/V8DOMWrapper.h:
1315         (V8DOMWrapper):
1316         * bindings/v8/custom/V8DocumentCustom.cpp:
1317         (WebCore::V8Document::evaluateCallback):
1318
1319 2012-08-22  Kenneth Russell  <kbr@google.com>
1320
1321         Unreviewed, rolling out r126325.
1322         http://trac.webkit.org/changeset/126325
1323         https://bugs.webkit.org/show_bug.cgi?id=94644
1324
1325         Caused subtle but reproducible failure to call onload handler
1326         properly in an SVG layout test in Chromium Mac Debug builds,
1327         indicating potentially larger problem
1328
1329         * css/CSSFontSelector.cpp:
1330         (WebCore::CSSFontSelector::beginLoadTimerFired):
1331         * loader/cache/CachedResourceLoader.cpp:
1332         (WebCore::CachedResourceLoader::decrementRequestCount):
1333
1334 2012-08-22  Victor Carbune  <victor@rosedu.org>
1335
1336         Display a TextTrackCue when snap-to-lines flag is set
1337         https://bugs.webkit.org/show_bug.cgi?id=79751
1338
1339         Reviewed by Tony Chang.
1340
1341         This patch implements rendering functionality for a given text track,
1342         following closer the exact WebVTT specification. There are two new classes
1343         which have been added in order to succesfully cover rendering when of a text
1344         track cue.
1345
1346         RenderTextTrackCue handles the specific rendering algorithm required,
1347         by checking for overlaps with other boxes that are in the same
1348         container (these can be any other boxes, not necessarily other cues,
1349         the video controls, for example).
1350
1351         TextTrackCueBox extends HTMLDivElement and is an intermediate layer
1352         between the renderer class and the actual cue object. Its purpose is
1353         to instantiate the particular renderer and cover all the default CSS
1354         styling that needs to be applied to the cue.
1355
1356         The layout is done in two steps:
1357           - Step 1: Layout the TextTrackCue with default CSS properties set (this is
1358         the TextTrackCueBox decorated with the respective CSS elements)
1359           - Step 2: RenderTextTrackCue adjusts the box position depending on the
1360         parameters of the TextTrackCue object and the overlaps that may occur with
1361         previously positioned cues.
1362
1363         Tests: media/track/track-cue-rendering-horizontal.html
1364                media/track/track-cue-rendering-vertical.html
1365
1366         * CMakeLists.txt: Updated to include RenderTextTrackCue.
1367         * GNUmakefile.list.am: Updated to include RenderTextTrackCue.
1368         * Target.pri: Updated to include RenderTextTrackCue.
1369         * WebCore.gypi: Updated to include RenderTextTrackCue.
1370         * WebCore.vcproj/WebCore.vcproj: Updated to include RenderTextTrackCue.
1371         * WebCore.xcodeproj/project.pbxproj: Updated to include RenderTextTrackCue.
1372         * css/mediaControls.css: Removed unreliable CSS.
1373         (video::-webkit-media-text-track-display): Removed properties.
1374         * html/shadow/MediaControlElements.cpp: Updated to not use the new class.
1375         (RenderTextTrackContainerElement):
1376         (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Simplified
1377         the function by moving the check if track is rendered in TextTrack and used
1378         the TextTrackCueBox for cues.
1379         * html/track/TextTrack.cpp: Added a new method.
1380         (WebCore::TextTrack::isRendered): Method that returns whether the track should
1381         be rendered or not.
1382         (WebCore):
1383         * html/track/TextTrack.h: Added the isRendered method.
1384         (TextTrack):
1385         * html/track/TextTrackCue.cpp: Added several helper methods and
1386         the TextTrackCueBox.
1387         (WebCore):
1388         (WebCore::TextTrackCueBox::TextTrackCueBox): The TextTrackCueBox extends
1389         the HTMLDivElement and represents a bridge class between RenderTextTrackCue
1390         and TextTrackCue. This is required as the layout is done in two steps, as
1391         explained on top of the ChangeLog entry.
1392         (WebCore::TextTrackCueBox::getCue): Returns the associated TextTrackCue object.
1393         (WebCore::TextTrackCueBox::applyCSSProperties): Applies a part of the default CSS
1394         properties, as defined by section 3.5.1 of the WebVTT specification.
1395         (WebCore::TextTrackCueBox::shadowPseudoId): Moved the shadow pseudo id.
1396         (WebCore::TextTrackCueBox::createRenderer): Creates the particular renderer.
1397         (WebCore::TextTrackCue::TextTrackCue): Corrected the internal writing mode map.
1398         (WebCore::TextTrackCue::calculateComputedLinePosition): Updated the compute line
1399         position algorithm. This requires, however, a method to consider only rendered
1400         tracks (and therefore will be addressed completely in subsequent changeset).
1401         (WebCore::TextTrackCue::calculateDisplayParameters): Updated and corrected the
1402         computed display parameters to match the current specification.
1403         (WebCore::TextTrackCue::getDisplayTree): Update to use the TextTrackCueBox class
1404         and moved CSS application to the respective class.
1405         (WebCore::TextTrackCue::getPositionCoordinates): Added comment to specify in which
1406         situation this method is used and change visibility to private.
1407         (WebCore::TextTrackCue::getCSSWritingMode): Returns the CSS writing mode corresponding
1408         to the cue writing mode.
1409         (WebCore::TextTrackCue::getCSSSize): Returns the cue width / height (depending on the
1410         writing direction.
1411         (WebCore::TextTrackCue::getCSSPosition): Returns the default display position, that is
1412         used in the first layout step.
1413         * html/track/TextTrackCue.h:
1414         (WebCore):
1415         (TextTrackCueBox):
1416         (WebCore::TextTrackCueBox::create): Initialization method.
1417         (TextTrackCue):
1418         (WebCore::TextTrackCue::getWritingDirection): Helper method to return the internal
1419         values used to represent the writing direction.
1420         * rendering/RenderTextTrackCue.cpp: Added.
1421         (WebCore):
1422         (WebCore::RenderTextTrackCue::RenderTextTrackCue):
1423         (WebCore::RenderTextTrackCue::layout): The rendering steps, as mentioned in
1424         the WebVTT rendering rules. Currently, this treats only the snap-to-lines set
1425         case. It is implemented following closely the spec, and might be subject to
1426         change as discussions on various bugs evolve.
1427         (WebCore::RenderTextTrackCue::initializeLayoutParameters): Steps 1 - 7.
1428         (WebCore::RenderTextTrackCue::placeBoxInDefaultPosition): Steps 8 - 10.
1429         (WebCore::RenderTextTrackCue::isOutside): Inline method to check if the cue is outside.
1430         (WebCore::RenderTextTrackCue::isOverlapping): Inline method to check if the cue overlaps other boxes.
1431         (WebCore::RenderTextTrackCue::shouldSwitchDirection): Step 12.
1432         (WebCore::RenderTextTrackCue::moveBoxesByStep): Step 13.
1433         (WebCore::RenderTextTrackCue::switchDirection): Steps 15 - 18.
1434         (WebCore::RenderTextTrackCue::repositionCueSnapToLinesSet): Cue repositioning
1435         for text track cue when the snap to lines flag is set.
1436         (WebCore::RenderTextTrackCue::repositionCueSnapToLinesNotSet): Cue repositioning
1437         for text track cue when the snap to lines flag is not set. Not implemented yet.
1438         * rendering/RenderTextTrackCue.h: Added.
1439         (WebCore):
1440         (RenderTextTrackCue): Rendering class, handling the display of cues.
1441
1442 2012-08-21  Kentaro Hara  <haraken@chromium.org>
1443
1444         [V8] Move matchesCurrentContext() from V8Proxy to ScriptController
1445         https://bugs.webkit.org/show_bug.cgi?id=94596
1446
1447         Reviewed by Adam Barth.
1448
1449         To kill V8Proxy:
1450
1451         - We can move matchesCurrentContext() from V8Proxy to ScriptController.
1452         - We can remove V8Proxy::isolatedWorldContext() since it is not used by anybody.
1453         - We can remove V8Proxy::finishedWithEvent() since it is empty.
1454
1455         No tests. No change in behavior.
1456
1457         * bindings/scripts/CodeGeneratorV8.pm:
1458         (GenerateToV8Converters):
1459         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1460         (WebCore::V8TestActiveDOMObject::wrapSlow):
1461         * bindings/scripts/test/V8/V8TestNode.cpp:
1462         (WebCore::V8TestNode::wrapSlow):
1463         * bindings/v8/ScriptController.cpp:
1464         (WebCore::ScriptController::finishedWithEvent):
1465         (WebCore::ScriptController::matchesCurrentContext):
1466         (WebCore):
1467         * bindings/v8/ScriptController.h:
1468         (ScriptController):
1469         * bindings/v8/V8Proxy.cpp:
1470         * bindings/v8/V8Proxy.h:
1471         (V8Proxy):
1472
1473 2012-08-22  Alejandro PiƱeiro  <apinheiro@igalia.com>
1474
1475         [Gtk] Dojo toggle buttons should expose ROLE_TOGGLE_BUTTON not ROLE_PUSH_BUTTON
1476         https://bugs.webkit.org/show_bug.cgi?id=73819
1477
1478         Reviewed by Chris Fleizach.
1479
1480         Added a new role, Toggle Button, based on whether aria-pressed is present.
1481         http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed
1482
1483         Test: platform/gtk/accessibility/aria-toggle-button-role.html
1484
1485         * accessibility/AccessibilityNodeObject.cpp:
1486         (WebCore::AccessibilityNodeObject::determineAccessibilityRole): using buttonRoleType
1487         to classify a button-related role.
1488         (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute): using buttonRoleType
1489         to classify a button-related role.
1490         * accessibility/AccessibilityObject.cpp:
1491         (WebCore::AccessibilityObject::ariaPressedIsPresent): checks if aria-pressed
1492         attribute is present.
1493         (WebCore::AccessibilityObject::buttonRoleType): returns a specific button-related
1494         role if the object is a button-related role.
1495         * accessibility/AccessibilityObject.h:
1496         (AccessibilityObject): added new role ToggleButtonRole.
1497         * accessibility/AccessibilityRenderObject.cpp:
1498         (WebCore::AccessibilityRenderObject::determineAccessibilityRole): using buttonRoleType
1499         to classify a button-related role.
1500         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
1501         (atkRole): added a mapping between ToggleButtonRole and
1502         ATK_ROLE_TOGGLE_BUTTON.
1503         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
1504         (createAccessibilityRoleMap): added a mapping between
1505         ToggleButtonRole and NSAccessibilityButtonRole
1506
1507 2012-08-22  David Grogan  <dgrogan@chromium.org>
1508
1509         IndexedDB: revert int version when version change transaction aborts
1510         https://bugs.webkit.org/show_bug.cgi?id=94662
1511
1512         Reviewed by Tony Chang.
1513
1514         Test: storage/indexeddb/intversion-revert-on-abort.html
1515
1516         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1517         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
1518         (WebCore::IDBDatabaseBackendImpl::resetIntVersion):
1519         One-liner modeled after resetVersion.
1520
1521         (WebCore):
1522         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
1523         (IDBDatabaseBackendImpl):
1524
1525 2012-08-17  Jeffrey Pfau  <jpfau@apple.com>
1526
1527         Allow blocking of Web SQL databases in third-party web workers
1528         https://bugs.webkit.org/show_bug.cgi?id=94170
1529
1530         Reviewed by Adam Barth.
1531
1532         Web workers did not previously know anything about the document that
1533         spawned them. This is undefined for shared workers, but for dedicated
1534         workers, we now pipe the information through.
1535
1536         Tests: http/tests/security/cross-origin-worker-websql-allowed.html
1537                http/tests/security/cross-origin-worker-websql.html
1538
1539         * Modules/webdatabase/WorkerContextWebDatabase.cpp: Pass information about the top origin to canAccessDatabase
1540         (WebCore::WorkerContextWebDatabase::openDatabase):
1541         (WebCore::WorkerContextWebDatabase::openDatabaseSync):
1542         * WebCore.exp.in: Make SecurityOrigin::isolatedCopy const
1543         * page/SecurityOrigin.cpp:
1544         (WebCore::SecurityOrigin::isolatedCopy):
1545         (WebCore::SecurityOrigin::canAccessStorage):
1546         * page/SecurityOrigin.h:
1547         * workers/DedicatedWorkerContext.cpp: Pass topOrigin
1548         (WebCore::DedicatedWorkerContext::create):
1549         (WebCore::DedicatedWorkerContext::DedicatedWorkerContext):
1550         * workers/DedicatedWorkerContext.h:
1551         (DedicatedWorkerContext):
1552         * workers/DedicatedWorkerThread.cpp: Pass topOrigin
1553         (WebCore::DedicatedWorkerThread::create):
1554         (WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
1555         (WebCore::DedicatedWorkerThread::createWorkerContext):
1556         * workers/DedicatedWorkerThread.h:
1557         (DedicatedWorkerThread):
1558         * workers/SharedWorkerContext.cpp: Pass topOrigin
1559         (WebCore::SharedWorkerContext::SharedWorkerContext):
1560         * workers/SharedWorkerThread.cpp:
1561         (WebCore::SharedWorkerThread::SharedWorkerThread):
1562         (WebCore::SharedWorkerThread::createWorkerContext):
1563         * workers/SharedWorkerThread.h:
1564         (SharedWorkerThread): Pass topOrigin
1565         * workers/WorkerContext.cpp:
1566         (WebCore::WorkerContext::WorkerContext):
1567         * workers/WorkerContext.h:
1568         (WebCore::WorkerContext::topOrigin):
1569         (WorkerContext):
1570         * workers/WorkerMessagingProxy.cpp: Pass topOrigin
1571         (WebCore::WorkerMessagingProxy::startWorkerContext):
1572         * workers/WorkerThread.cpp:
1573         (WebCore::WorkerThreadStartupData::create):
1574         (WorkerThreadStartupData):
1575         (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
1576         (WebCore::WorkerThread::WorkerThread):
1577         (WebCore::WorkerThread::workerThread):
1578         * workers/WorkerThread.h:
1579         (WorkerThread):
1580
1581 2012-08-22  Kentaro Hara  <haraken@chromium.org>
1582
1583         [V8] Move context() from V8Proxy to ScriptController
1584         https://bugs.webkit.org/show_bug.cgi?id=94593
1585
1586         Reviewed by Adam Barth.
1587
1588         - This patch removes V8Proxy::context(Frame*).
1589         - This patch moves V8Proxy::context() to ScriptController::context().
1590         - This patch renames ScriptController::context() to ScriptController::currentWorldContext(),
1591         for naming consistency with ScriptController::maintWorldContext().
1592
1593         No tests. No change in behavior.
1594
1595         * bindings/scripts/CodeGeneratorV8.pm:
1596         (GenerateToV8Converters):
1597         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1598         (WebCore::V8TestActiveDOMObject::wrapSlow):
1599         * bindings/scripts/test/V8/V8TestNode.cpp:
1600         (WebCore::V8TestNode::wrapSlow):
1601         * bindings/v8/ScriptController.cpp:
1602         (WebCore::ScriptController::context):
1603         (WebCore):
1604         * bindings/v8/ScriptController.h:
1605         (ScriptController):
1606         * bindings/v8/V8DOMWrapper.cpp:
1607         (WebCore::V8DOMWrapper::setNamedHiddenWindowReference):
1608         * bindings/v8/V8Proxy.cpp:
1609         * bindings/v8/V8Proxy.h:
1610         (V8Proxy):
1611         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1612         (WebCore::WindowSetTimeoutImpl):
1613         (WebCore::V8DOMWindow::eventAccessorGetter):
1614         (WebCore::V8DOMWindow::eventAccessorSetter):
1615         (WebCore::DialogHandler::dialogCreated):
1616         (WebCore::toV8):
1617         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1618         (WebCore::V8HTMLDocument::openCallback):
1619
1620 2012-08-22  Kentaro Hara  <haraken@chromium.org>
1621
1622         [V8] Remove V8Proxy from V8DOMWrapper::instantiateV8Object()
1623         https://bugs.webkit.org/show_bug.cgi?id=94713
1624
1625         Reviewed by Adam Barth.
1626
1627         To kill V8Proxy, V8DOMWrapper::instantiateV8Object() should receive Frame*
1628         instead of V8Proxy*.
1629
1630         No tests. No change in behavior.
1631
1632         * bindings/scripts/CodeGeneratorV8.pm:
1633         (GenerateToV8Converters):
1634         * bindings/scripts/test/V8/V8Float64Array.cpp:
1635         (WebCore::V8Float64Array::wrapSlow):
1636         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1637         (WebCore::V8TestActiveDOMObject::wrapSlow):
1638         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1639         (WebCore::V8TestCustomNamedGetter::wrapSlow):
1640         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1641         (WebCore::V8TestEventConstructor::wrapSlow):
1642         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1643         (WebCore::V8TestEventTarget::wrapSlow):
1644         * bindings/scripts/test/V8/V8TestException.cpp:
1645         (WebCore::V8TestException::wrapSlow):
1646         * bindings/scripts/test/V8/V8TestInterface.cpp:
1647         (WebCore::V8TestInterface::wrapSlow):
1648         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1649         (WebCore::V8TestMediaQueryListListener::wrapSlow):
1650         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1651         (WebCore::V8TestNamedConstructor::wrapSlow):
1652         * bindings/scripts/test/V8/V8TestNode.cpp:
1653         (WebCore::V8TestNode::wrapSlow):
1654         * bindings/scripts/test/V8/V8TestObj.cpp:
1655         (WebCore::V8TestObj::wrapSlow):
1656         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1657         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
1658         * bindings/v8/V8DOMWrapper.cpp:
1659         (WebCore):
1660         (WebCore::V8DOMWrapper::instantiateV8Object):
1661         * bindings/v8/V8DOMWrapper.h:
1662         (V8DOMWrapper):
1663
1664 2012-08-22  Joshua Bell  <jsbell@chromium.org>
1665
1666         IndexedDB: IDBRequest can be destructed during abort
1667         https://bugs.webkit.org/show_bug.cgi?id=94618
1668
1669         Reviewed by Tony Chang.
1670
1671         If there are no script references, an IDBRequest could be kept alive
1672         only by enqueued events. On document destruction, the parent transaction
1673         is aborted, which aborts the request. During the abort, the enqueued events
1674         are deleted, releasing the last reference to the IDBRequest which then
1675         destructs in mid-method call and an "unfinished" state, hitting an assert.
1676
1677         This patch keeps the IDBRequest alive through the completion of the abort()
1678         method, which will enqueue another event. In the document destruction case,
1679         this will end up with the IDBRequest having stop() called on it which will
1680         send the IDBRequest into EarlyDeath state, satisfying the destructor assert.
1681
1682         Addresses existing layout tests that behave flakily in Chromium port.
1683
1684         * Modules/indexeddb/IDBRequest.cpp:
1685         (WebCore::IDBRequest::abort):
1686
1687 2012-08-22  Kentaro Hara  <haraken@chromium.org>
1688
1689         [V8] Move precompileScript() from V8Proxy to ScriptSourceCode
1690         https://bugs.webkit.org/show_bug.cgi?id=94701
1691
1692         Reviewed by Adam Barth.
1693
1694         To kill V8Proxy, we can move precompileScript() from V8Proxy
1695         to ScriptSourceCode.
1696
1697         No tests. No change in behavior.
1698
1699         * bindings/v8/ScriptSourceCode.cpp:
1700         (WebCore::ScriptSourceCode::precompileScript):
1701         (WebCore):
1702         * bindings/v8/ScriptSourceCode.h:
1703         (ScriptSourceCode):
1704         * bindings/v8/V8Proxy.cpp:
1705         (WebCore::V8Proxy::evaluate):
1706         * bindings/v8/V8Proxy.h:
1707         (V8Proxy):
1708
1709 2012-08-22  Nikhil Bhargava  <nbhargava@google.com>
1710
1711         Reduce Font.h includes across project -- improves RenderObject.h compile time
1712         https://bugs.webkit.org/show_bug.cgi?id=93629
1713
1714         Reviewed by Eric Seidel.
1715
1716         RenderStyle.h no longer depends on Font.h. The files that transitively
1717         need to be updated with proper includes are fixed.
1718
1719         No new tests. Functionality should remain the same.
1720
1721         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
1722         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
1723         * bindings/objc/DOM.mm:
1724         * css/CSSComputedStyleDeclaration.cpp:
1725         * css/CSSPrimitiveValue.cpp:
1726         * css/StyleResolver.h:
1727         * dom/CharacterData.cpp:
1728         * dom/ElementRareData.h:
1729         * dom/NodeRenderingContext.cpp:
1730         * dom/Text.cpp:
1731         * editing/TextIterator.cpp:
1732         * editing/mac/EditorMac.mm:
1733         * html/HTMLTitleElement.cpp:
1734         * html/shadow/TextControlInnerElements.cpp:
1735         * inspector/InspectorOverlay.cpp:
1736         * page/ContextMenuController.cpp:
1737         * page/PrintContext.cpp:
1738         * platform/efl/RenderThemeEfl.cpp:
1739         * platform/graphics/FontMetrics.h:
1740         * platform/gtk/RenderThemeGtk.cpp:
1741         * platform/gtk/RenderThemeGtk2.cpp:
1742         * platform/mac/HTMLConverter.mm:
1743         * rendering/EllipsisBox.cpp:
1744         * rendering/FlowThreadController.cpp:
1745         * rendering/InlineBox.cpp:
1746         * rendering/InlineFlowBox.cpp:
1747         * rendering/InlineFlowBox.h:
1748         (WebCore):
1749         * rendering/RenderButton.cpp:
1750         * rendering/RenderCombineText.cpp:
1751         * rendering/RenderCombineText.h:
1752         * rendering/RenderDeprecatedFlexibleBox.cpp:
1753         * rendering/RenderEmbeddedObject.h:
1754         (WebCore):
1755         * rendering/RenderFileUploadControl.cpp:
1756         * rendering/RenderFullScreen.h:
1757         * rendering/RenderImage.cpp:
1758         * rendering/RenderInline.cpp:
1759         * rendering/RenderListItem.cpp:
1760         * rendering/RenderListMarker.cpp:
1761         * rendering/RenderMultiColumnBlock.cpp:
1762         * rendering/RenderRegion.h:
1763         * rendering/RenderRuby.cpp:
1764         * rendering/RenderRubyRun.cpp:
1765         * rendering/RenderScrollbar.cpp:
1766         * rendering/RenderTable.cpp:
1767         * rendering/RenderTableCell.cpp:
1768         * rendering/RenderTableRow.cpp:
1769         * rendering/RenderTableSection.cpp:
1770         * rendering/RenderTextControl.cpp:
1771         * rendering/RenderTextControlMultiLine.cpp:
1772         * rendering/RenderThemeChromiumSkia.cpp:
1773         * rendering/RenderView.cpp:
1774         * rendering/TextAutosizer.cpp:
1775         * rendering/mathml/RenderMathMLBlock.h:
1776         * rendering/style/KeyframeList.h:
1777         * rendering/style/RenderStyle.cpp:
1778         * rendering/style/RenderStyle.h:
1779         (WebCore):
1780         * rendering/style/StyleInheritedData.cpp:
1781         * rendering/svg/RenderSVGBlock.cpp:
1782         * rendering/svg/RenderSVGInlineText.h:
1783         * svg/SVGLengthContext.cpp:
1784         * svg/SVGTRefElement.cpp:
1785
1786 2012-08-22  Alex Christensen  <alex.christensen@flexsim.com>
1787         win64 compile error fix for BinaryPropertyList.cpp
1788         https://bugs.webkit.org/show_bug.cgi?id=94122
1789
1790         Reviewed by Eric Seidel.
1791
1792         Fixed compile errors for MSVC x64 without changing performance
1793
1794         * platform/cf/BinaryPropertyList.cpp:
1795         (WebCore::BinaryPropertyListSerializer::appendStringObject):
1796
1797 2012-08-22  Kwang Yul Seo  <skyul@company100.net>
1798
1799         HTMLTreeBuilder::furthestBlockForFormattingElement should belong to HTMLElementStack
1800         https://bugs.webkit.org/show_bug.cgi?id=93857
1801
1802         Reviewed by Eric Seidel.
1803
1804         HTMLTreeBuilder::furthestBlockForFormattingElement should belong to
1805         HTMLElementStack because it traverses the element stack and finds the
1806         furthest block for the given formatting element.
1807
1808         Currently, it belongs to HTMLTreeBuilder just because
1809         isSpecialNode(const HTMLStackItem*) function used by
1810         furthestBlockForFormattingElement is internal to HTMLTreeBuilder.
1811
1812         Moved isSpecialNode to HTMLStackItem and changed
1813         furthestBlockForFormattingElement to be a method of HTMLElementStack.
1814
1815         No behavior change. Just a refactoring.
1816
1817         * html/parser/HTMLElementStack.cpp:
1818         (WebCore):
1819         (WebCore::HTMLElementStack::popUntilNumberedHeaderElementPopped):
1820         (WebCore::HTMLElementStack::hasNumberedHeaderElementInScope):
1821         (WebCore::HTMLElementStack::furthestBlockForFormattingElement):
1822         * html/parser/HTMLElementStack.h:
1823         (HTMLElementStack):
1824         * html/parser/HTMLStackItem.h:
1825         (WebCore::HTMLStackItem::isInHTMLNamespace):
1826         (HTMLStackItem):
1827         (WebCore::HTMLStackItem::isNumberedHeaderElement):
1828         (WebCore::HTMLStackItem::isTableBodyContextElement):
1829         (WebCore::HTMLStackItem::isSpecialNode):
1830         * html/parser/HTMLTreeBuilder.cpp:
1831         (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
1832         (WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
1833         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
1834         (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
1835         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
1836         (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
1837         (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
1838         * html/parser/HTMLTreeBuilder.h:
1839
1840 2012-08-22  Alexandre Elias  <aelias@google.com>
1841
1842         [chromium] Add software bitmap resources to CCResourceProvider
1843         https://bugs.webkit.org/show_bug.cgi?id=93677
1844
1845         Reviewed by Adrienne Walker.
1846
1847         Second commit after revert.
1848
1849         This adds the ability to CCResourceProvider to use software bitmaps.
1850         They are allocated as plain-old-memory, and exposed as Skia objects.
1851
1852         We want the ResourceProvider to be able to handle different resource
1853         types at the same time.  In practice, a default resource type is
1854         desired for most uses within a single compositor instance, which is
1855         specified by the default resource type.  Default resource types are
1856         expected to be mostly 1-to-1 with CCRenderer types.
1857
1858         New tests added by parametrizing existing CCResourceProvider tests.
1859
1860         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
1861         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
1862         * platform/graphics/chromium/LayerRendererChromium.cpp:
1863         (WebCore::applyFilters):
1864         (WebCore::LayerRendererChromium::drawRenderPassQuad):
1865         (WebCore::LayerRendererChromium::drawTileQuad):
1866         (WebCore::LayerRendererChromium::drawYUVVideoQuad):
1867         (WebCore::LayerRendererChromium::drawTextureQuad):
1868         (WebCore::LayerRendererChromium::getFramebufferTexture):
1869         (WebCore::LayerRendererChromium::bindFramebufferToTexture):
1870         * platform/graphics/chromium/LayerRendererChromium.h:
1871         (DrawingFrame):
1872         * platform/graphics/chromium/cc/CCResourceProvider.cpp:
1873         (WebCore::CCResourceProvider::createResource):
1874         (WebCore):
1875         (WebCore::CCResourceProvider::createGLTexture):
1876         (WebCore::CCResourceProvider::createBitmap):
1877         (WebCore::CCResourceProvider::createResourceFromExternalTexture):
1878         (WebCore::CCResourceProvider::deleteResource):
1879         (WebCore::CCResourceProvider::upload):
1880         (WebCore::CCResourceProvider::flush):
1881         (WebCore::CCResourceProvider::shallowFlushIfSupported):
1882         (WebCore::CCResourceProvider::lockForRead):
1883         (WebCore::CCResourceProvider::unlockForRead):
1884         (WebCore::CCResourceProvider::lockForWrite):
1885         (WebCore::CCResourceProvider::unlockForWrite):
1886         (WebCore::CCResourceProvider::ScopedReadLockGL::ScopedReadLockGL):
1887         (WebCore::CCResourceProvider::ScopedReadLockGL::~ScopedReadLockGL):
1888         (WebCore::CCResourceProvider::ScopedWriteLockGL::ScopedWriteLockGL):
1889         (WebCore::CCResourceProvider::ScopedWriteLockGL::~ScopedWriteLockGL):
1890         (WebCore::CCResourceProvider::populateSkBitmapWithResource):
1891         (WebCore::CCResourceProvider::ScopedReadLockSoftware::ScopedReadLockSoftware):
1892         (WebCore::CCResourceProvider::ScopedReadLockSoftware::~ScopedReadLockSoftware):
1893         (WebCore::CCResourceProvider::ScopedWriteLockSoftware::ScopedWriteLockSoftware):
1894         (WebCore::CCResourceProvider::ScopedWriteLockSoftware::~ScopedWriteLockSoftware):
1895         (WebCore::CCResourceProvider::CCResourceProvider):
1896         * platform/graphics/chromium/cc/CCResourceProvider.h:
1897         (WebCore):
1898         (WebCore::CCResourceProvider::setCreationPolicy):
1899         (WebCore::CCResourceProvider::creationPolicy):
1900         (CCResourceProvider):
1901         (ScopedReadLockGL):
1902         (WebCore::CCResourceProvider::ScopedReadLockGL::textureId):
1903         (ScopedWriteLockGL):
1904         (WebCore::CCResourceProvider::ScopedWriteLockGL::textureId):
1905         (ScopedReadLockSoftware):
1906         (WebCore::CCResourceProvider::ScopedReadLockSoftware::skBitmap):
1907         (ScopedWriteLockSoftware):
1908         (WebCore::CCResourceProvider::ScopedWriteLockSoftware::skCanvas):
1909         (Resource):
1910
1911 2012-08-22  Anna Cavender  <annacc@chromium.org>
1912
1913         Update the TextTrackCue Constructor
1914         https://bugs.webkit.org/show_bug.cgi?id=88583
1915
1916         Reviewed by Eric Carlson.
1917
1918         The TextTrackCue constructor has been changed to:
1919         [Constructor(double startTime, double endTime, DOMString text)]
1920         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttrackcue
1921
1922         No new tests.  Update to media/track/track-add-remove-cue.html
1923
1924         * html/track/TextTrackCue.cpp:
1925         (WebCore::TextTrackCue::TextTrackCue):
1926         * html/track/TextTrackCue.h:
1927         (WebCore::TextTrackCue::create):
1928         (TextTrackCue):
1929         * html/track/TextTrackCue.idl:
1930         * html/track/WebVTTParser.cpp:
1931         (WebCore::WebVTTParser::createNewCue):
1932
1933 2012-08-22  Erik Arvidsson  <arv@chromium.org>
1934
1935         Changing class attribute is not reflected in the classList property
1936         https://bugs.webkit.org/show_bug.cgi?id=93665
1937
1938         Reviewed by Ojan Vafai.
1939
1940         Before this change classAttributeChanged was only called for StyledElement. With this refactoring
1941         it gets called for all Elements when the class attribute changes.
1942
1943         Test: fast/dom/Element/class-list-update.html
1944
1945         * css/StyleResolver.cpp:
1946         (WebCore::StyleResolver::collectMatchingRules): To match the old behavior we only include StyledElements.
1947         * dom/ClassNodeList.cpp:
1948         (WebCore::ClassNodeList::nodeMatches): Ditto.
1949         * dom/Element.cpp:
1950         (WebCore::Element::attributeChanged): Moved the call to parseAttribute here, from StyledElement::attributeChanged.
1951         (WebCore::Element::parseAttribute): Moved from StyledElement.
1952         (WebCore):
1953         (WebCore::Element::classAttributeChanged): Ditto.
1954         * dom/Element.h:
1955         (Element):
1956         (WebCore::Element::classNames): Ditto.
1957         (WebCore):
1958         * dom/StyledElement.cpp:
1959         (WebCore::StyledElement::attributeChanged): Let Element::attributeChanged call parseAttribtue instead.
1960         (WebCore::StyledElement::parseAttribute): Move the class attribute handling to Element::parseAttribute.
1961         * dom/StyledElement.h:
1962         (StyledElement):
1963
1964 2012-08-22  Kentaro Hara  <haraken@chromium.org>
1965
1966         [V8] Replace v8::String::NewSymbol() in CodeGeneratorV8.pm with v8String()
1967         https://bugs.webkit.org/show_bug.cgi?id=94588
1968
1969         Reviewed by Eric Seidel.
1970
1971         v8String() is faster than String::NewSymbol().
1972         This patch implements v8String(char*, Isolate*) and
1973         replaces String::NewSymbol(char*) in CodeGeneratorV8.pm
1974         with v8String(char*, Isolate*).
1975
1976         Performance result:
1977
1978         // 272 nano sec
1979         static v8::Handle<v8::Value> attr3AttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
1980         {
1981             v8::Handle<v8::Value> v1 = v8String(String("foo"));
1982             v8::Handle<v8::Value> v2 = v8String(String("bar"));
1983             if (!v1.IsEmpty() && !v2.IsEmpty())
1984                 return v8Undefined();
1985             return v8::Null(); // Never reach.
1986         }
1987
1988         // 377 nano sec
1989         static v8::Handle<v8::Value> attr4AttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
1990         {
1991             v8::Handle<v8::Value> v1 = v8::String::NewSymbol("foo");
1992             v8::Handle<v8::Value> v2 = v8::String::NewSymbol("bar");
1993             if (!v1.IsEmpty() && !v2.IsEmpty())
1994                 return v8Undefined();
1995             return v8::Null(); // Never reach.
1996         }
1997
1998         No tests. No change in behavior.
1999
2000         * bindings/scripts/CodeGeneratorV8.pm:
2001         (GenerateNormalAttrGetter):
2002         (GenerateNormalAttrSetter):
2003         (GenerateNamedConstructorCallback):
2004         (GenerateNonStandardFunction):
2005         (GenerateImplementation):
2006         * bindings/scripts/test/V8/V8Float64Array.cpp:
2007         (WebCore::ConfigureV8Float64ArrayTemplate):
2008         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2009         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
2010         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2011         (WebCore::ConfigureV8TestEventTargetTemplate):
2012         * bindings/scripts/test/V8/V8TestInterface.cpp:
2013         (WebCore::ConfigureV8TestInterfaceTemplate):
2014         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2015         (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
2016         * bindings/scripts/test/V8/V8TestObj.cpp:
2017         (WebCore::ConfigureV8TestObjTemplate):
2018         (WebCore::V8TestObj::installPerContextProperties):
2019         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2020         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
2021         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetter):
2022         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
2023         * bindings/v8/V8Binding.h:
2024         (WebCore):
2025         (WebCore::v8String):
2026         * html/HTMLDivElement.idl:
2027
2028 2012-08-22  Pratik Solanki  <psolanki@apple.com>
2029
2030         Setting WebKitEnableHTTPPipelining doesn't work if default is true
2031         https://bugs.webkit.org/show_bug.cgi?id=94537
2032
2033         Reviewed by David Kilzer.
2034
2035         * platform/network/cf/ResourceRequestCFNet.cpp:
2036         (WebCore::initializeMaximumHTTPConnectionCountPerHost): Read in the HTTP pipelining pref and
2037         allow it to override the default pipelining behavior if it was actually set.
2038
2039 2012-08-22  W. James MacLean  <wjmaclean@chromium.org>
2040
2041         [chromium] Add touch link highlight animation layers.
2042         https://bugs.webkit.org/show_bug.cgi?id=84487
2043
2044         Reviewed by James Robinson.
2045
2046         Adds support for creating composited touch link highlights in renderer thread. Clipping not yet
2047         implemented for non-composited frames/overflow divs, but scrolling and layout changes are supported.
2048         Transform support currently limited to translation.
2049
2050         Unit tests for LinkHighlight revised.
2051
2052         Tests: platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-clipped.html
2053                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-composite.html
2054                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-noncomposite.html
2055                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled.html
2056                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited.html
2057                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled-clipped.html
2058                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled.html
2059                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe.html
2060                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scroll-clip.html
2061                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scrolled.html
2062                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited.html
2063                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change-2.html
2064                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change.html
2065                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scroll-clip.html
2066                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-composite.html
2067                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-noncomposite.html
2068                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled.html
2069                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div.html
2070                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-inner.html
2071                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-outer.html
2072                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-clipped.html
2073                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-late-composite.html
2074                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner.html
2075                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-clipped.html
2076                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-late-composite.html
2077                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer.html
2078                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe.html
2079                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-inner.html
2080                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-outer.html
2081                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner.html
2082                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-inner.html
2083                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-outer.html
2084                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer.html
2085                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-inner.html
2086                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-outer.html
2087                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div.html
2088                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-rotated.html
2089                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-scaledX.html
2090                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-scaledY.html
2091                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-window-scroll.html
2092                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple.html
2093
2094         * WebCore.gypi:
2095         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2096         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
2097         (WebCore::GraphicsLayerChromium::willBeDestroyed): Adds notification to LinkHighlight when layer goes away.
2098         (WebCore::GraphicsLayerChromium::updateNames): Now sets debug name for LinkHighlight layer.
2099         (WebCore::GraphicsLayerChromium::setSize): Invalidates LinkHighlight if present.
2100         (WebCore::GraphicsLayerChromium::setNeedsDisplay): Invalidates LinkHighlight if present.
2101         (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect): Invalidates LinkHighlight if present.
2102         (WebCore::GraphicsLayerChromium::setLinkHighlight): Registers LinkHighlightClient* with GraphicsLayerChromium.
2103         (WebCore::GraphicsLayerChromium::updateChildList): Now adds LinkHighlight WebLayer if highlight active.
2104         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable): Invalidates LinkHighlight if present.
2105         * platform/graphics/chromium/GraphicsLayerChromium.h:
2106         (WebCore):
2107         (LinkHighlightClient): Abstract interface seen by GraphicsLayerChromium.
2108         (WebCore::LinkHighlightClient::~LinkHighlightClient):
2109         (GraphicsLayerChromium):
2110         (WebCore::GraphicsLayerChromium::linkHighlight):
2111         * platform/graphics/chromium/LinkHighlight.cpp: Removed.
2112
2113 2012-08-22  Beth Dakin  <bdakin@apple.com>
2114
2115         https://bugs.webkit.org/show_bug.cgi?id=94401
2116         Add support for making a web site become paginated using overflow: 
2117         paged-x | paged-y
2118         -and corresponding-
2119         <rdar://problem/11831783> 
2120
2121         Reviewed by Dave Hyatt.
2122
2123         This patch adds two new possible values for overflow-y. They are -
2124         webkit-paged-x and -webkit-paged-y. When you set these as overflow-y 
2125         values on the html or body element, they make the RenderView 
2126         paginated, much like the API on Page.
2127
2128         -webkit-paged-x and -webkit-paged-y are only valid values for 
2129         overflow-y, NOT overflow-x. overflow-x defaults to a value of auto 
2130         (for now) unless it has been set to something else.
2131         * css/CSSParser.cpp:
2132         (WebCore::isValidKeywordPropertyAndValue):
2133         (WebCore::CSSParser::parseValue):
2134
2135         Two new CSS value keywords.
2136         * css/CSSValueKeywords.in:
2137
2138         EOverflow has two new values for pagination. 
2139         * rendering/style/RenderStyleConstants.h:
2140         * css/CSSPrimitiveValueMappings.h:
2141         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2142         (WebCore::CSSPrimitiveValue::operator EOverflow):
2143
2144         A bunch of existing code from StyleResolver::styleForDocument() is 
2145         moved into a helper function so that it can be called from two 
2146         places. 
2147         * css/StyleResolver.cpp:
2148         (WebCore::StyleResolver::collectMatchingRulesForList):
2149
2150         Even though this pagination is very similar to Page::pagination(), it 
2151         is different in one critical way. Page::pagination() will apply to 
2152         all FrameViews, even those in the page cache. For this reason, 
2153         FrameView needs to keep its own Pagination value that just applies to 
2154         this FrameView.
2155         * page/FrameView.cpp:
2156         * page/FrameView.h:
2157         (WebCore):
2158         (FrameView):
2159
2160         Map RenderStyle values to a Pagination::Mode.
2161         (WebCore::paginationModeForRenderStyle):
2162         (WebCore):
2163
2164         Account for paged-x and paged-y here.
2165         (WebCore::FrameView::applyOverflowToViewport):
2166
2167         As is explained in the header, FrameView::pagination() will return 
2168         m_pagination if it has been set. Otherwise, it will return 
2169         Page::pagination() since currently there are no callers that need to 
2170         distinguish between the two.
2171         (WebCore::FrameView::pagination):
2172         (WebCore::FrameView::setPagination):
2173
2174         Generally this means that everywhere in WebCore should ask FrameView 
2175         for the pagination(), not Page. These call sites all look to 
2176         FrameView now.
2177         (WebCore::FrameView::paintContents):
2178         * rendering/RenderView.cpp:
2179         (WebCore::RenderView::requiresColumns):
2180         (WebCore::RenderView::calcColumnWidth):
2181         (WebCore::RenderView::paginationUnit):
2182         (WebCore::RenderView::viewLogicalHeight):
2183
2184         Since we need to define Pagination in Page.h AND FrameView.h, it is 
2185         now in its own header, Pagination.h. And therefore it is no longer 
2186         WebCore::Page::Pagination, but rather it is just WebCore::Pagination.
2187         * page/Page.h:
2188         (Page):
2189         * rendering/Pagination.h: Added.
2190         (WebCore):
2191         (WebCore::Pagination::Pagination):
2192         (Pagination):
2193         (WebCore::Pagination::operator==):
2194         (WebCore::Pagination::operator!=):
2195         * WebCore.exp.in:
2196         * WebCore.xcodeproj/project.pbxproj:
2197         * GNUmakefile.list.am:
2198         * Target.pri:
2199         * WebCore.exp.in:
2200         * WebCore.gypi:
2201
2202         Certain ColumnInfo values are set based on the RenderStyle. So if 
2203         those RenderStyle values change, the ColumnInfo needs to be updated.
2204         * rendering/RenderBlock.cpp:
2205         (WebCore::RenderBlock::updateColumnInfoFromStyle):
2206         (WebCore):
2207         * rendering/RenderBlock.h:
2208         (RenderBlock):
2209
2210         Factor in paged-x and paged-y when determining if a RenderBlock 
2211         requires columns.
2212         (WebCore::RenderBlock::requiresColumns):
2213
2214         RenderStyle::specifiesColumns() is an odd and probably broken 
2215         function. At the very least, it should be re-named, if not removed 
2216         entirely. It does not accurately assess if columns have been 
2217         specified. I had to add this code here because specifiesColumns() 
2218         returns false for paged-x and true for paged-y. We were hitting a 
2219         number of crashes with paged-y because of this, so I chose for the 
2220         time being to limit this check to non-root layers.
2221         * rendering/RenderLayer.cpp:
2222         (WebCore::RenderLayer::shouldBeNormalFlowOnly):
2223
2224         It's just Pagination now, not Page::Pagination.
2225         * testing/InternalSettings.cpp:
2226         (WebCore::InternalSettings::reset):
2227         (WebCore::InternalSettings::setPagination):
2228
2229 2012-08-22  Dean Jackson  <dino@apple.com>
2230
2231         [WebGL] Mac/ATI/AMD systems need to translate built-in GLSL functions
2232         https://bugs.webkit.org/show_bug.cgi?id=94030
2233
2234         Reviewed by Tim Horton.
2235
2236         ATI/AMD GPUs on Apple platforms do not give correct values for some of
2237         the built-in GLSL functions. Add a compile flag that is passed to ANGLE
2238         so that, with this configuration, it will rewrite the shader to emulate
2239         the function in code.
2240
2241         This is exposing some design weaknesses in the way we call ANGLE. We'll
2242         soon need to add more compiler flags; Future bugs will likely clean
2243         this code up. But this approach is satisfactory for the moment.
2244
2245         This change is tested by the Khronos WebGL conformance test suite, in particular:
2246         conformance/glsl/functions/glsl-function-distance.html
2247         conformance/glsl/functions/glsl-function-dot.html
2248         conformance/glsl/functions/glsl-function-length.html
2249
2250         * platform/graphics/ANGLEWebKitBridge.cpp:
2251         (WebCore::ANGLEWebKitBridge::validateShaderSource): Test for ATI cards
2252         on the Mac platform, and pass in an extra flag to the translation step.
2253         * platform/graphics/ANGLEWebKitBridge.h:
2254         (ANGLEWebKitBridge): Add a new parameter to getTranslatedShaderSourceANGLE
2255         that accepts some extra options to pass to ANGLE.
2256         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
2257         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): Pass
2258         the extra options into ANGLE's compile function.
2259
2260 2012-08-22  Tommy Widenflycht  <tommyw@google.com>
2261
2262         [chromium] MediaStream API: Add MockWebRTCPeerConnectionHandler
2263         https://bugs.webkit.org/show_bug.cgi?id=93091
2264
2265         Reviewed by Adam Barth.
2266
2267         Fixing a FIXME that the patch obsoletes.
2268
2269         Covered by existing tests.
2270
2271         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
2272         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
2273
2274 2012-08-22  Eric Penner  <epenner@google.com>
2275
2276         [chromium] Simplify updateContentRect, removing rect parameter, refactor unit tests.
2277         https://bugs.webkit.org/show_bug.cgi?id=94165
2278
2279         Reviewed by Adrienne Walker.
2280
2281         Remove visible rect parameter from TiledLayerChromium functions. Passing a
2282         rect that is not the visible rect wouldn't make sense, and soon we might
2283         need further visibility information.
2284
2285         In refactoring the unit tests, I removed texture manager from all tests
2286         and put it in the test class. I also made some utility functions to 
2287         simulate the commit flow and remove tons of boilerplate code. I refactored
2288         about half the unit tests to use the utility functions.
2289
2290         Refactored tests.
2291
2292         * platform/graphics/chromium/ContentLayerChromium.cpp:
2293         (WebCore::ContentLayerChromium::update):
2294         (WebCore::ContentLayerChromium::needMoreUpdates):
2295         * platform/graphics/chromium/ImageLayerChromium.cpp:
2296         (WebCore::ImageLayerChromium::update):
2297         * platform/graphics/chromium/TiledLayerChromium.cpp:
2298         (WebCore):
2299         (WebCore::TiledLayerChromium::setTexturePriorities):
2300         (WebCore::TiledLayerChromium::resetUpdateState):
2301         (WebCore::TiledLayerChromium::update):
2302         (WebCore::TiledLayerChromium::needsIdlePaint):
2303         (WebCore::TiledLayerChromium::idlePaintRect):
2304         * platform/graphics/chromium/TiledLayerChromium.h:
2305         (TiledLayerChromium):
2306
2307 2012-08-22  Otto Derek Cheung  <otcheung@rim.com>
2308
2309         [BlackBerry] Add a check to filter out cookies that tries to set the 
2310         domain to a top level domain
2311         https://bugs.webkit.org/show_bug.cgi?id=94722
2312
2313         Reviewed by Rob Buis.
2314
2315         Adding conditions to check whether a cookie domain is a top level domain.
2316         If it is, throw it out when parsing.
2317
2318         Manual Testing by trying to insert a cookie with an invalid domain
2319         using web-inspector. (ex: when on news.yahoo.com.hk, try to document.
2320         cookie="test1=seeifthiscookieexist; domain=.com.hk")
2321
2322         PR121622
2323
2324         * platform/blackberry/CookieParser.cpp:
2325         WebCore::CookieParser::parseOneCookie):
2326
2327 2012-08-22  Rob Buis  <rwlbuis@webkit.org>
2328
2329         Remove RenderBlock::paintEllipsisBoxes
2330         https://bugs.webkit.org/show_bug.cgi?id=94709
2331
2332         Reviewed by Eric Seidel.
2333
2334         Remove unused method.
2335
2336         No change in functionality, no new tests.
2337
2338         * rendering/RenderBlock.cpp:
2339         (WebCore::RenderBlock::paintFloats):
2340         * rendering/RenderBlock.h:
2341         (RenderBlock):
2342
2343 2012-08-22  Tommy Widenflycht  <tommyw@google.com>
2344
2345         MediaStream API: Introduce RTCSessionDescription
2346         https://bugs.webkit.org/show_bug.cgi?id=93119
2347
2348         Reviewed by Adam Barth.
2349
2350         This patch introduces RTCSessionDescription together with its
2351         corresponding WebCore/platform representation.
2352
2353         Test: fast/mediastream/RTCSessionDescription.html
2354
2355         * CMakeLists.txt:
2356         * GNUmakefile.list.am:
2357         * Modules/mediastream/DOMWindowMediaStream.idl:
2358         * Modules/mediastream/RTCSessionDescription.cpp: Added.
2359         (WebCore):
2360         (WebCore::RTCSessionDescription::create):
2361         (WebCore::RTCSessionDescription::RTCSessionDescription):
2362         (WebCore::RTCSessionDescription::~RTCSessionDescription):
2363         (WebCore::RTCSessionDescription::type):
2364         (WebCore::RTCSessionDescription::setType):
2365         (WebCore::RTCSessionDescription::sdp):
2366         (WebCore::RTCSessionDescription::setSdp):
2367         (WebCore::RTCSessionDescription::descriptor):
2368         * Modules/mediastream/RTCSessionDescription.h: Added.
2369         (WebCore):
2370         (RTCSessionDescription):
2371         * Modules/mediastream/RTCSessionDescription.idl: Added.
2372         * WebCore.gypi:
2373         * platform/mediastream/RTCSessionDescriptionDescriptor.cpp: Added.
2374         (WebCore):
2375         (WebCore::RTCSessionDescriptionDescriptor::create):
2376         (WebCore::RTCSessionDescriptionDescriptor::RTCSessionDescriptionDescriptor):
2377         (WebCore::RTCSessionDescriptionDescriptor::~RTCSessionDescriptionDescriptor):
2378         * platform/mediastream/RTCSessionDescriptionDescriptor.h: Added.
2379         (WebCore):
2380         (RTCSessionDescriptionDescriptor):
2381         (WebCore::RTCSessionDescriptionDescriptor::type):
2382         (WebCore::RTCSessionDescriptionDescriptor::setType):
2383         (WebCore::RTCSessionDescriptionDescriptor::sdp):
2384         (WebCore::RTCSessionDescriptionDescriptor::setSdp):
2385
2386 2012-08-22  Victor Carbune  <victor@rosedu.org>
2387
2388         DOM manipulation crashes the browser
2389
2390         Creating a DOM track element by script and changing the mode crashes
2391         results in a browser crash.
2392         https://bugs.webkit.org/show_bug.cgi?id=94628
2393
2394         Reviewed by Eric Carlson.
2395
2396         Simple fix that creates the text track cue list in case of mode change.
2397
2398         Test: media/track/track-element-dom-change-crash.html
2399
2400         * html/HTMLMediaElement.cpp:
2401         (WebCore::HTMLMediaElement::textTrackModeChanged):
2402
2403 2012-08-22  Ryosuke Niwa  <rniwa@webkit.org>
2404
2405         Microdata build fix.
2406
2407         * html/HTMLPropertiesCollection.h:
2408         (WebCore::HTMLPropertiesCollection::updatePropertyCache):
2409
2410 2012-08-22  Tommy Widenflycht  <tommyw@google.com>
2411
2412         MediaStream API: Introduce RTCIceCandidate
2413         https://bugs.webkit.org/show_bug.cgi?id=93117
2414
2415         Reviewed by Adam Barth.
2416
2417         This patch introduces RTCIceCandidate together with its corresponding
2418         WebCore/platform representation.
2419
2420         Test: fast/mediastream/RTCIceCandidate.html
2421
2422         * CMakeLists.txt:
2423         * GNUmakefile.list.am:
2424         * Modules/mediastream/DOMWindowMediaStream.idl:
2425         * Modules/mediastream/RTCIceCandidate.cpp: Added.
2426         (WebCore):
2427         (WebCore::RTCIceCandidate::create):
2428         (WebCore::RTCIceCandidate::RTCIceCandidate):
2429         (WebCore::RTCIceCandidate::~RTCIceCandidate):
2430         (WebCore::RTCIceCandidate::candidate):
2431         (WebCore::RTCIceCandidate::sdpMid):
2432         (WebCore::RTCIceCandidate::sdpMLineIndex):
2433         (WebCore::RTCIceCandidate::descriptor):
2434         * Modules/mediastream/RTCIceCandidate.h: Added.
2435         (WebCore):
2436         (RTCIceCandidate):
2437         * Modules/mediastream/RTCIceCandidate.idl: Added.
2438         * WebCore.gypi:
2439         * platform/mediastream/RTCIceCandidateDescriptor.cpp: Added.
2440         (WebCore):
2441         (WebCore::RTCIceCandidateDescriptor::create):
2442         (WebCore::RTCIceCandidateDescriptor::RTCIceCandidateDescriptor):
2443         (WebCore::RTCIceCandidateDescriptor::~RTCIceCandidateDescriptor):
2444         * platform/mediastream/RTCIceCandidateDescriptor.h: Added.
2445         (WebCore):
2446         (RTCIceCandidateDescriptor):
2447         (WebCore::RTCIceCandidateDescriptor::candidate):
2448         (WebCore::RTCIceCandidateDescriptor::sdpMid):
2449         (WebCore::RTCIceCandidateDescriptor::sdpMLineIndex):
2450
2451 2012-08-22  Mark Rowe  <mrowe@apple.com>
2452
2453         <http://webkit.org/b/94679> WebCore scrolling thread leaks objects due to them being autoreleased without any autorelease pool in place
2454
2455         Reviewed by Dan Bernstein.
2456
2457         * page/scrolling/mac/ScrollingThreadMac.mm:
2458         (WebCore::ScrollingThread::threadRunLoopSourceCallback): Ensure that an autorelease pool is in place when
2459         dispatching functions on the scrolling thread.
2460
2461 2012-08-22  Pratik Solanki  <psolanki@apple.com>
2462
2463         Failure to dispatch delegate callbacks if resource load fails synchronously
2464         https://bugs.webkit.org/show_bug.cgi?id=94644
2465
2466         Reviewed by Antti Koivisto.
2467
2468         Resource loads can be triggered by layout after document load is
2469         complete but before we have dispatched didFinishLoadForFrame callback.
2470         In such cases, if the load fails synchronously due to the client
2471         returning 0 from willSendRequest callback, we would fail to call
2472         didFinishLoading. this was fixed for Font resources in r122446 for bug
2473         91018. This fixes it in the general case by having CachedResourceLoader
2474         call FrameLoader::checkLoadComplete() when it is done loading all
2475         resources.
2476
2477         * css/CSSFontSelector.cpp:
2478         (WebCore::CSSFontSelector::beginLoadTimerFired):
2479         * loader/cache/CachedResourceLoader.cpp:
2480         (WebCore::CachedResourceLoader::decrementRequestCount):
2481
2482 2012-08-22  Kenneth Russell  <kbr@google.com>
2483
2484         Unreviewed, rolling out r126319.
2485         http://trac.webkit.org/changeset/126319
2486         https://bugs.webkit.org/show_bug.cgi?id=84487
2487
2488         Broke Chromium Mac build
2489
2490         * WebCore.gypi:
2491         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2492         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
2493         (WebCore::GraphicsLayerChromium::willBeDestroyed):
2494         (WebCore::GraphicsLayerChromium::updateNames):
2495         (WebCore::GraphicsLayerChromium::setSize):
2496         (WebCore::GraphicsLayerChromium::setNeedsDisplay):
2497         (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
2498         (WebCore::GraphicsLayerChromium::addLinkHighlight):
2499         (WebCore::GraphicsLayerChromium::didFinishLinkHighlight):
2500         (WebCore):
2501         (WebCore::GraphicsLayerChromium::updateChildList):
2502         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
2503         * platform/graphics/chromium/GraphicsLayerChromium.h:
2504         (WebCore):
2505         (GraphicsLayerChromium):
2506         * platform/graphics/chromium/LinkHighlight.cpp: Added.
2507         (WebCore):
2508         (WebCore::LinkHighlight::create):
2509         (WebCore::LinkHighlight::LinkHighlight):
2510         (WebCore::LinkHighlight::~LinkHighlight):
2511         (WebCore::LinkHighlight::contentLayer):
2512         (WebCore::LinkHighlight::paintContents):
2513         (WebCore::LinkHighlight::notifyAnimationStarted):
2514         (WebCore::LinkHighlight::notifyAnimationFinished):
2515         * platform/graphics/chromium/LinkHighlight.h: Renamed from Source/WebKit/chromium/src/LinkHighlight.h.
2516         (WebCore):
2517         (LinkHighlight):
2518
2519 2012-08-22  Alexei Svitkine  <asvitkine@chromium.org>
2520
2521         Respect system setting for rubber-banding in ScrollAnimatorMac.
2522         https://bugs.webkit.org/show_bug.cgi?id=94356
2523
2524         Reviewed by James Robinson.
2525
2526         Respects user defaults setting of NSScrollViewRubberbanding,
2527         which controls rubber-banding in other Mac OS X applications.
2528
2529         If NSScrollViewRubberbanding is not set, defaults to enabling
2530         rubber banding. Otherwise, rubber banding is disabled if the
2531         value is 0 and enabled otherwise.
2532
2533         No new tests since the behavior depends on system settings.
2534
2535         * platform/mac/ScrollAnimatorMac.mm:
2536         (WebCore):
2537         (WebCore::rubberBandingEnabledForSystem):
2538         (WebCore::ScrollAnimatorMac::handleWheelEvent):
2539
2540 2012-08-22  James Robinson  <jamesr@chromium.org>
2541
2542         [chromium/mac] Remove unnecessary checks for OS version <= 10.5. We don't support those
2543         https://bugs.webkit.org/show_bug.cgi?id=94658
2544
2545         Reviewed by Tony Chang.
2546
2547         The chromium mac port hasn't supported Leopard for a while now, so remove chromium-specific code that checks
2548         for OS X version <= Leopard.
2549
2550         * platform/graphics/chromium/CrossProcessFontLoading.mm:
2551         (WebCore::FontPlatformData::loadFont):
2552         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
2553         (WebCore::canSetCascadeListForCustomFont):
2554
2555 2012-08-22  W. James MacLean  <wjmaclean@chromium.org>
2556
2557         [chromium] Add touch link highlight animation layers.
2558         https://bugs.webkit.org/show_bug.cgi?id=84487
2559
2560         Reviewed by James Robinson.
2561
2562         Adds support for creating composited touch link highlights in renderer thread. Clipping not yet
2563         implemented for non-composited frames/overflow divs, but scrolling and layout changes are supported.
2564         Transform support currently limited to translation.
2565
2566         Unit tests for LinkHighlight revised.
2567
2568         Tests: platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-clipped.html
2569                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-composite.html
2570                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-noncomposite.html
2571                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled.html
2572                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited.html
2573                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled-clipped.html
2574                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled.html
2575                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe.html
2576                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scroll-clip.html
2577                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scrolled.html
2578                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited.html
2579                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change-2.html
2580                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change.html
2581                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scroll-clip.html
2582                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-composite.html
2583                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-noncomposite.html
2584                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled.html
2585                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div.html
2586                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-inner.html
2587                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-outer.html
2588                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-clipped.html
2589                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-late-composite.html
2590                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner.html
2591                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-clipped.html
2592                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-late-composite.html
2593                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer.html
2594                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe.html
2595                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-inner.html
2596                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-outer.html
2597                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner.html
2598                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-inner.html
2599                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-outer.html
2600                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer.html
2601                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-inner.html
2602                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-outer.html
2603                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div.html
2604                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-rotated.html
2605                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-scaledX.html
2606                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-scaledY.html
2607                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-window-scroll.html
2608                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple.html
2609
2610         * WebCore.gypi:
2611         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2612         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
2613         (WebCore::GraphicsLayerChromium::willBeDestroyed): Adds notification to LinkHighlight when layer goes away.
2614         (WebCore::GraphicsLayerChromium::updateNames): Now sets debug name for LinkHighlight layer.
2615         (WebCore::GraphicsLayerChromium::setSize): Invalidates LinkHighlight if present.
2616         (WebCore::GraphicsLayerChromium::setNeedsDisplay): Invalidates LinkHighlight if present.
2617         (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect): Invalidates LinkHighlight if present.
2618         (WebCore::GraphicsLayerChromium::setLinkHighlight): Registers LinkHighlightClient* with GraphicsLayerChromium.
2619         (WebCore::GraphicsLayerChromium::updateChildList): Now adds LinkHighlight WebLayer if highlight active.
2620         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable): Invalidates LinkHighlight if present.
2621         * platform/graphics/chromium/GraphicsLayerChromium.h:
2622         (WebCore):
2623         (LinkHighlightClient): Abstract interface seen by GraphicsLayerChromium.
2624         (WebCore::LinkHighlightClient::~LinkHighlightClient):
2625         (GraphicsLayerChromium):
2626         (WebCore::GraphicsLayerChromium::linkHighlight):
2627         * platform/graphics/chromium/LinkHighlight.cpp: Removed.
2628
2629 2012-08-22  Gustavo Noronha Silva  <gns@gnome.org>
2630
2631         Unreviewed build fix. Missing PANGO_CFLAGS.
2632
2633         * GNUmakefile.am:
2634
2635 2012-08-22  Pavel Feldman  <pfeldman@chromium.org>
2636
2637         Web Inspector: make "sdk" component compile independently from the rest of the front-end.
2638         https://bugs.webkit.org/show_bug.cgi?id=94705
2639
2640         Reviewed by Vsevolod Vlasov.
2641
2642         This change refactors the way we compile. Running "compile-front-end.py sdk" will compile sdk only.
2643         It also introduces DOMStorageModel and DatabaseModel that are used to split model / UI layers.
2644
2645         * WebCore.gypi:
2646         * WebCore.vcproj/WebCore.vcproj:
2647         * inspector/InjectedScriptExterns.js:
2648         (InjectedScriptHost.prototype.evaluate):
2649         * inspector/Inspector.json:
2650         * inspector/compile-front-end.py:
2651         (dump_module):
2652         * inspector/front-end/CompilerScriptMapping.js:
2653         * inspector/front-end/ConsoleModel.js:
2654         (WebInspector.ConsoleMessage):
2655         (WebInspector.ConsoleMessage.prototype.clone):
2656         (WebInspector.ConsoleMessage.prototype.location):
2657         * inspector/front-end/DOMAgent.js:
2658         * inspector/front-end/DOMStorage.js:
2659         (WebInspector.DOMStorageModel):
2660         (WebInspector.DOMStorageModel.prototype._addDOMStorage):
2661         (WebInspector.DOMStorageModel.prototype._domStorageUpdated):
2662         (WebInspector.DOMStorageModel.prototype.storageForId):
2663         (WebInspector.DOMStorageModel.prototype.storages):
2664         (WebInspector.DOMStorageDispatcher):
2665         (WebInspector.DOMStorageDispatcher.prototype.addDOMStorage):
2666         (WebInspector.DOMStorageDispatcher.prototype.domStorageUpdated):
2667         * inspector/front-end/Database.js:
2668         (WebInspector.Database):
2669         (WebInspector.Database.prototype.executeSql):
2670         (WebInspector.DatabaseModel):
2671         (WebInspector.DatabaseModel.prototype.databases):
2672         (WebInspector.DatabaseModel.prototype.databaseForId):
2673         (WebInspector.DatabaseModel.prototype._addDatabase):
2674         (WebInspector.DatabaseModel.prototype._sqlTransactionSucceeded):
2675         (WebInspector.DatabaseModel.prototype._sqlTransactionFailed):
2676         (WebInspector.DatabaseDispatcher):
2677         (WebInspector.DatabaseDispatcher.prototype.addDatabase):
2678         (WebInspector.DatabaseDispatcher.prototype.sqlTransactionSucceeded):
2679         (WebInspector.DatabaseDispatcher.prototype.sqlTransactionFailed):
2680         * inspector/front-end/DebuggerModel.js:
2681         * inspector/front-end/FileUtils.js:
2682         (WebInspector.OutputStreamDelegate.prototype.onTransferStarted):
2683         (WebInspector.OutputStreamDelegate.prototype.onChunkTransferred):
2684         (WebInspector.OutputStreamDelegate.prototype.onTransferFinished):
2685         (WebInspector.OutputStreamDelegate.prototype.onError):
2686         (WebInspector.OutputStream):
2687         (WebInspector.OutputStream.prototype.startTransfer):
2688         (WebInspector.OutputStream.prototype.transferChunk):
2689         (WebInspector.OutputStream.prototype.finishTransfer):
2690         (WebInspector.OutputStream.prototype.dispose):
2691         * inspector/front-end/HandlerRegistry.js:
2692         * inspector/front-end/HeapSnapshotView.js:
2693         * inspector/front-end/InspectorFrontendHostStub.js:
2694         * inspector/front-end/PresentationConsoleMessageHelper.js:
2695         (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
2696         * inspector/front-end/ResourcesPanel.js:
2697         (WebInspector.ResourcesPanel):
2698         (WebInspector.ResourcesPanel.prototype._reset):
2699         (WebInspector.ResourcesPanel.prototype._databaseAdded):
2700         (WebInspector.ResourcesPanel.prototype._addDatabase):
2701         (WebInspector.ResourcesPanel.prototype._domStorageAdded):
2702         (WebInspector.ResourcesPanel.prototype._addDOMStorage):
2703         (WebInspector.ResourcesPanel.prototype._showDatabase.get if):
2704         (WebInspector.ResourcesPanel.prototype._showDatabase.else.get if):
2705         (WebInspector.ResourcesPanel.prototype._showDatabase):
2706         (WebInspector.ResourcesPanel.prototype._showDOMStorage.get if):
2707         (WebInspector.ResourcesPanel.prototype._showDOMStorage):
2708         (WebInspector.ResourcesPanel.prototype._updateDatabaseTables.get if):
2709         (WebInspector.ResourcesPanel.prototype._updateDatabaseTables.tableNamesCallback):
2710         (WebInspector.DatabaseTreeElement.prototype.onselect):
2711         (WebInspector.DatabaseTableTreeElement.prototype.onselect):
2712         (WebInspector.DOMStorageTreeElement.prototype.onselect):
2713         * inspector/front-end/ScriptsPanel.js:
2714         (WebInspector.ScriptsPanel.prototype.showFunctionDefinition):
2715         * inspector/front-end/SearchController.js:
2716         (WebInspector.SearchController.prototype.disableSearchUntilExplicitAction):
2717         * inspector/front-end/Settings.js:
2718         * inspector/front-end/Spectrum.js:
2719         * inspector/front-end/TextEditorModel.js:
2720         * inspector/front-end/UIString.js: Added.
2721         (WebInspector.UIString):
2722         * inspector/front-end/UIUtils.js:
2723         * inspector/front-end/WebKit.qrc:
2724         * inspector/front-end/externs.js:
2725         (InspectorFrontendHostAPI.prototype.platform):
2726         (InspectorFrontendHostAPI.prototype.port):
2727         (InspectorFrontendHostAPI.prototype.bringToFront):
2728         (InspectorFrontendHostAPI.prototype.closeWindow):
2729         (InspectorFrontendHostAPI.prototype.requestAttachWindow):
2730         (InspectorFrontendHostAPI.prototype.requestDetachWindow):
2731         (InspectorFrontendHostAPI.prototype.requestSetDockSide):
2732         (InspectorFrontendHostAPI.prototype.setAttachedWindowHeight):
2733         (InspectorFrontendHostAPI.prototype.moveWindowBy):
2734         (InspectorFrontendHostAPI.prototype.setInjectedScriptForOrigin):
2735         (InspectorFrontendHostAPI.prototype.loaded):
2736         (InspectorFrontendHostAPI.prototype.localizedStringsURL):
2737         (InspectorFrontendHostAPI.prototype.hiddenPanels):
2738         (InspectorFrontendHostAPI.prototype.inspectedURLChanged):
2739         (InspectorFrontendHostAPI.prototype.documentCopy):
2740         (InspectorFrontendHostAPI.prototype.copyText):
2741         (InspectorFrontendHostAPI.prototype.openInNewTab):
2742         (InspectorFrontendHostAPI.prototype.canSave):
2743         (InspectorFrontendHostAPI.prototype.save):
2744         (InspectorFrontendHostAPI.prototype.canAppend):
2745         (InspectorFrontendHostAPI.prototype.append):
2746         (InspectorFrontendHostAPI.prototype.sendMessageToBackend):
2747         (InspectorFrontendHostAPI.prototype.recordActionTaken):
2748         (InspectorFrontendHostAPI.prototype.recordPanelShown):
2749         (InspectorFrontendHostAPI.prototype.recordSettingChanged):
2750         (InspectorFrontendHostAPI.prototype.loadResourceSynchronously):
2751         (InspectorFrontendHostAPI.prototype.setZoomFactor):
2752         (InspectorFrontendHostAPI.prototype.canInspectWorkers):
2753         (SourceMapV3):
2754         (SourceMapV3.Section):
2755         (SourceMapV3.Offset):
2756         * inspector/front-end/inspector.html:
2757         * inspector/front-end/inspector.js:
2758         (WebInspector.inspect):
2759
2760 2012-08-22  Gustavo Noronha Silva  <gns@gnome.org>
2761
2762         Unreviewed build fix. libWebCore needs include paths
2763         for some bits of WebCoreGtk.
2764
2765         * GNUmakefile.am:
2766
2767 2012-08-22  Koji Ishii  <kojiishi@gmail.com>
2768
2769         FontMetrics.unitsPerEm(), FontPlatformData.orientation(), SimpleFontData::platformBoundsForGlyph are not implemented on Chromium Windows
2770         https://bugs.webkit.org/show_bug.cgi?id=83512
2771
2772         Reviewed by Tony Chang.
2773
2774         Chromium Windows does not implement following 3 functions that are required for bug 51450.
2775         1. FontMetrics.unitsPerEm() always returns the default value (gDefaultUnitsPerEm = 1000).
2776         2. FontPlatformData.orientation() always returns Horizontal.
2777         3. SimpleFontData::platformBoundsForGlyph() always returns FloatRect().
2778         Tony suggested in bug 51450 review to split code that is not behind
2779         #if ENABLE(OPENTYPE_VERTICAL) to a separate patch.
2780
2781         Test: Following 3 existing but skipped tests are now enabled and pass.
2782               fast/text/emphasis-overlap.html
2783               fast/text/emphasis-avoid-ruby.html
2784               fast/repaint/text-emphasis-v.html
2785
2786         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2787         (WebCore::FontCache::createFontPlatformData): Add orientation.
2788         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
2789         (WebCore::FontPlatformData::FontPlatformData): Add orientation.
2790         (WebCore::FontPlatformData::operator=): Add orientation.
2791         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
2792         (FontPlatformData):
2793         (WebCore::FontPlatformData::orientation): Add orientation.
2794         (WebCore::FontPlatformData::setOrientation): Add orientation.
2795         (WebCore::FontPlatformData::operator==): Add orientation.
2796         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
2797         (WebCore::SimpleFontData::platformInit): Set FontMetrics.unitsPerEm.
2798         (WebCore::SimpleFontData::createScaledFontData): Add orientation.
2799         (WebCore::SimpleFontData::platformBoundsForGlyph): Implemented.
2800         * platform/graphics/skia/FontCustomPlatformData.cpp:
2801         (WebCore::FontCustomPlatformData::fontPlatformData): Add orientation.
2802
2803 2012-08-22  Robert Hogan  <robert@webkit.org>
2804
2805         REGRESSION(r125578): fast/regex/unicodeCaseInsensitive.html crash on Linux Debug Chromium
2806         https://bugs.webkit.org/show_bug.cgi?id=94010
2807
2808         Reviewed by Tony Chang.
2809
2810         r125578 inspected the raw text run for word-end but the index it used to do so was for a normalized
2811         version of the run that could be longer than the raw text run. So to allow proper detection of word-end
2812         in complex text (i) do not normalize tabs to plain white-space and (ii) go back to using the normalized version
2813         of the run for detecting word-end. There is a risk that some fonts may create glyphs for the '\t' character 
2814         but this does not turn up in any of our regression tests and the more common risk appears to be the new-line.
2815
2816         Test: fast/regex/unicodeCaseInsensitive.html
2817
2818         * platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
2819         (WebCore::normalizeSpacesAndMirrorChars):
2820
2821 2012-08-22  Andrey Adaikin  <aandrey@chromium.org>
2822
2823         Web Inspector: [WebGL] Support the communication protocol from the injected script
2824         https://bugs.webkit.org/show_bug.cgi?id=94689
2825
2826         Reviewed by Pavel Feldman.
2827
2828         Support the WebGL communication protocol from the injected script module.
2829
2830         * inspector/InjectedScriptWebGLModuleSource.js:
2831         (.):
2832
2833 2012-08-22  Gustavo Noronha Silva  <gns@gnome.org>
2834
2835         [GTK] Split WebCore/platform into a separate library
2836         https://bugs.webkit.org/show_bug.cgi?id=94435
2837
2838         Reviewed by Martin Robinson.
2839
2840         More people have been reporting problems when linking WebCore because
2841         the command line limit is being exceeded. Splitting WebCore a bit more
2842         is in order.
2843
2844         * GNUmakefile.am: add new libWebCorePlatform convenience library.
2845         * GNUmakefile.list.am: move list of platform/* files to its own variable.
2846
2847 2012-08-22  Raphael Kubo da Costa  <rakuco@webkit.org>
2848
2849         [EFL] Build failures with harfbuzz outside standard locations
2850         https://bugs.webkit.org/show_bug.cgi?id=93030
2851
2852         Reviewed by Rob Buis.
2853
2854         Add ${HARFBUZZ_INCLUDE_DIRS} to the list of included paths: so far
2855         it was being implicitly pulled from evas's pkg-config file, and
2856         used to work when WebKit-EFL's dependencies were built with
2857         jhbuild -- in this case, harfbuzz is built before evas, which is
2858         then built with harfbuzz support and adds the required paths to
2859         its .pc file.
2860
2861         We need to include things directly to account for the case of
2862         people not using jhbuild and thus not necessarily having harfbuzz
2863         as an evas dependency.
2864
2865         * PlatformEfl.cmake:
2866
2867 2012-08-22  Raul Hudea  <rhudea@adobe.com>
2868
2869         Crash in WebCore::RenderBlock::removeChild
2870         https://bugs.webkit.org/show_bug.cgi?id=93879
2871
2872         Reviewed by Abhishek Arya.
2873
2874         By adding the lifetime state to the RenderNamedFlowThread (r122556), it become possible for the a RenderRegion object to delete its sibling,
2875         the RenderNamedFlowThread. This is unexpected in the rendering world and cause problems in RenderBlock::removeChild where we retain previous
2876         and next sibling pointers.
2877         So, all the RenderNamedFlowThread are created under a RenderFlowThreadContainer object insted of the RenderView. The new object is created only
2878         when the first named flow is created.
2879
2880         Test: fast/regions/remove-flow-thread-crash.html
2881
2882         * CMakeLists.txt:
2883         * GNUmakefile.list.am:
2884         * Target.pri:
2885         * WebCore.gypi:
2886         * WebCore.vcproj/WebCore.vcproj:
2887         * WebCore.xcodeproj/project.pbxproj:
2888         * rendering/FlowThreadController.cpp:
2889         (WebCore::FlowThreadController::FlowThreadController): Added initialization for the new RenderFlowThreadContainer member
2890         (WebCore::FlowThreadController::ensureRenderFlowThreadWithName): Added the creation of the RenderFlowThreadContainer object and use it as a parent for all RenderNamedFlowThreads
2891         (WebCore::FlowThreadController::styleDidChange): Inform all the RenderNamedFlowThreads that the style changed in regions (initially this code was in RenderView, but now all RenderNamedFlowThreads are children of RenderFlowThreadContainer)
2892         (WebCore):
2893         * rendering/FlowThreadController.h:
2894         (WebCore):
2895         (FlowThreadController):
2896         * rendering/RenderFlowThreadContainer.cpp: Added.
2897         (WebCore):
2898         (WebCore::RenderFlowThreadContainer::RenderFlowThreadContainer):
2899         (WebCore::RenderFlowThreadContainer::layout):
2900         * rendering/RenderFlowThreadContainer.h: Added.
2901         * rendering/RenderObject.cpp:
2902         (WebCore::RenderObject::markContainingBlocksForLayout): Skip to RenderView if the current object is an RenderFlowThreadContainer.
2903         * rendering/RenderObject.h:
2904         (WebCore::RenderObject::isRenderFlowThreadContainer):
2905         * rendering/RenderView.cpp:
2906         (WebCore::RenderView::styleDidChange): Moved the code associated to RenderNamedFlowThreads to FlowThreadController:styleDidChange and call it instead.
2907
2908 2012-08-22  Rob Buis  <rbuis@rim.com>
2909
2910         [BlackBerry] Add RSS content handling support
2911         https://bugs.webkit.org/show_bug.cgi?id=93496
2912
2913         Reviewed by Yong Li.
2914
2915         Cleanup some more.
2916
2917         * platform/network/blackberry/rss/RSSFilterStream.cpp:
2918         (WebCore):
2919         (WebCore::createParser):
2920         (WebCore::defaultEncodingForLanguage):
2921         (WebCore::isTranscodingNeeded):
2922
2923 2012-08-21  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2924
2925         Remove unused TextDrawingMode flags from GraphicsContext
2926         https://bugs.webkit.org/show_bug.cgi?id=21898
2927
2928         Reviewed by Benjamin Poulain.
2929
2930         Remove TextModeClip and TextModeInvisible. These are not used by any port, and
2931         according to https://bugs.webkit.org/show_bug.cgi?id=42110#c2 these were added
2932         just to map CG existing flags, but are not used.
2933
2934         * platform/graphics/GraphicsContext.h:
2935         * platform/graphics/cg/GraphicsContextCG.cpp:
2936         (WebCore::GraphicsContext::setPlatformTextDrawingMode):
2937         * platform/graphics/openvg/PainterOpenVG.cpp:
2938         (WebCore::PainterOpenVG::drawText):
2939         * platform/graphics/skia/PlatformContextSkia.cpp:
2940         (WebCore::PlatformContextSkia::setTextDrawingMode):
2941
2942 2012-08-22  Sheriff Bot  <webkit.review.bot@gmail.com>
2943
2944         Unreviewed, rolling out r126287.
2945         http://trac.webkit.org/changeset/126287
2946         https://bugs.webkit.org/show_bug.cgi?id=94708
2947
2948         It made WK1 layout testing 3.7x slower (>1hours) (Requested by
2949         ossy on #webkit).
2950
2951         * bridge/qt/qt_instance.cpp:
2952         (JSC::Bindings::unusedWeakObjectMapCallback):
2953         (Bindings):
2954         (JSC::Bindings::WeakMapImpl::WeakMapImpl):
2955         (JSC::Bindings::WeakMapImpl::~WeakMapImpl):
2956         (JSC::Bindings::WeakMap::~WeakMap):
2957         (JSC::Bindings::WeakMap::set):
2958         (JSC::Bindings::WeakMap::get):
2959         (JSC::Bindings::WeakMap::remove):
2960         * bridge/qt/qt_instance.h:
2961         (QtInstance):
2962         * bridge/qt/qt_runtime.cpp:
2963         (JSC::Bindings::prototypeForSignalsAndSlots):
2964         (JSC::Bindings::QtRuntimeMethod::~QtRuntimeMethod):
2965         (JSC::Bindings::QtRuntimeMethod::call):
2966         (JSC::Bindings::QtRuntimeMethod::jsObjectRef):
2967         (JSC::Bindings::QtRuntimeMethod::connectOrDisconnect):
2968         * bridge/qt/qt_runtime.h:
2969         (QtRuntimeMethod):
2970
2971 2012-08-22  Pavel Feldman  <pfeldman@chromium.org>
2972
2973         Not reviewed: follow up to r126297, fixing WebCore.gypi.
2974
2975         * WebCore.gypi:
2976
2977 2012-08-22  Carlos Garcia Campos  <cgarcia@igalia.com>
2978
2979         [GTK] Preferred languages and spellchecker APIs are not consistent in WebKit2
2980         https://bugs.webkit.org/show_bug.cgi?id=94683
2981
2982         Reviewed by Alejandro G. Castro.
2983
2984         Use a Vector<String> instead of a comma-separated string to
2985         get/set languages.
2986
2987         * platform/text/gtk/TextCheckerEnchant.cpp:
2988         (TextCheckerEnchant::updateSpellCheckingLanguages):
2989         (TextCheckerEnchant::getSpellCheckingLanguages):
2990         * platform/text/gtk/TextCheckerEnchant.h:
2991         (TextCheckerEnchant):
2992
2993 2012-08-22  Pavel Feldman  <pfeldman@chromium.org>
2994
2995         Web Inspector: move NavigatorView and NavigatorOverlayController to ScriptsPanel module
2996         https://bugs.webkit.org/show_bug.cgi?id=94693
2997
2998         Reviewed by Vsevolod Vlasov.
2999
3000         Loading them via importScript now.
3001
3002         * inspector/compile-front-end.py:
3003         * inspector/front-end/ScriptsPanel.js:
3004         * inspector/front-end/inspector.html:
3005
3006 2012-08-22  KwangYong Choi  <ky0.choi@samsung.com>
3007
3008         [EFL] Support slider tick mark snapping
3009         https://bugs.webkit.org/show_bug.cgi?id=94560
3010
3011         Reviewed by Kenneth Rohde Christiansen.
3012
3013         Increased the threshold for the EFL port. The value is snapped
3014         when it clicked near tick mark.
3015
3016         No new tests. Covered by fast/forms/datalist/range-snap-to-datalist.html.
3017
3018         * platform/efl/RenderThemeEfl.cpp:
3019         (WebCore):
3020         (WebCore::RenderThemeEfl::sliderTickSnappingThreshold):
3021         * platform/efl/RenderThemeEfl.h:
3022         (RenderThemeEfl):
3023
3024 2012-08-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3025
3026         [Qt] Optionally support smooth-scrolling on all platforms
3027         https://bugs.webkit.org/show_bug.cgi?id=74926
3028
3029         Reviewed by Simon Hausmann.
3030
3031         Make GestureAnimations depend on the GESTURE_ANIMATION feature flag,
3032         since GestureAnimations are unused on some platforms.
3033
3034         * Target.pri:
3035         * platform/ScrollAnimatorNone.cpp:
3036         (WebCore::ScrollAnimatorNone::fireUpAnAnimation):
3037         (WebCore::ScrollAnimatorNone::cancelAnimations):
3038         (WebCore::ScrollAnimatorNone::animationTimerFired):
3039         * platform/ScrollAnimatorNone.h:
3040         (ScrollAnimatorNone):
3041
3042 2012-08-22  Simon Hausmann  <simon.hausmann@nokia.com>
3043
3044         [Qt] Port convertQVariantToValue to use the JSC C API
3045         https://bugs.webkit.org/show_bug.cgi?id=93889
3046
3047         Reviewed by Kenneth Rohde Christiansen.
3048
3049         Based on patch by Noam Rosenthal.
3050
3051         This patch is another step towards reducing the use of internal JSC API
3052         in the Qt bridge. Most of the conversion from QVariant to JS values is
3053         straight-forward. The biggest behavioural change is that QVariant lists
3054         are converted on-the-spot instead of lazily. Bug #94691 tracks fixing
3055         that.
3056
3057         * bridge/qt/qt_instance.cpp:
3058         (Bindings):
3059         (JSC::Bindings::QtField::valueFromInstance):
3060         * bridge/qt/qt_runtime.cpp:
3061         (JSC::Bindings::convertQVariantToValue):
3062         (JSC::Bindings::QtRuntimeMethod::call):
3063         (JSC::Bindings::QtConnectionObject::execute):
3064         (JSC::Bindings::::valueAt):
3065         * bridge/qt/qt_runtime.h:
3066         (Bindings):
3067
3068 2012-08-22  Simon Hausmann  <simon.hausmann@nokia.com>
3069
3070         [Qt] REGRESSION(r125428): fast/profiler/nested-start-and-stop-profiler.html fails
3071         https://bugs.webkit.org/show_bug.cgi?id=93897
3072
3073         Reviewed by Kenneth Rohde Christiansen.
3074
3075         Before r125428 run-time methods (wrapped signals, slots or invokable
3076         functions) were subclasses of JSInternalFunction and therefore real
3077         function objects in the JavaScript sense. r125428 changed them to be
3078         just callable objects, but they did not have Function.prototype as
3079         prototype anymore for example nor was their name correct (resulting in
3080         a layout test failure).
3081
3082         This patch changes run-time methods back to being real function objects
3083         that have a correct name and have Function.prototype in their prototype
3084         change
3085
3086         The objects returned by JSObjectMakeFunctionWithCallbackInjected are
3087         light-weight internal function objects that do not support
3088         JSObject{Set/Get}Private. Therefore we inject our own prototype right
3089         before the Function.prototype prototype, which uses private data to
3090         store a pointer to our C++ QtRuntimeMethod object.  This complicates
3091         the retrieval of the pointer to that instance slightly, which is why
3092         this patch introduces the toRuntimeMethod convenience function that
3093         looks up our prototype first and does a check for type-safety.
3094
3095         At the same time the patch removes the length properties from the
3096         run-time method itself as well as connect/disconnect.  The length
3097         property on a function signifies the number of arguments, but in all
3098         three cases that number is actually variable, because of overloading.
3099         That is why we choose not to expose it in the first place.
3100
3101         In QtInstance we cache the JS wrapper objects for QtRuntimeMethod in a
3102         JSWeakObjectMap. JSWeakObjectMap requires the stored objects to be
3103         either the result of JSObjectMake or the global object of a context ref
3104         (AFAICS), which is ensured using an ASSERT. Objects created via
3105         JSObjectMakeFunctionWithCalllback do not fall into the required
3106         category, cause a failing assertion and can therefore not be stored in
3107         the weak object map.
3108
3109         Consequently this patch removes the use of JSWeakObjectMap again and
3110         goes back to the old way of using the internal Weak<> API, for the time
3111         being. In a future patch the storage will be simplified to not require
3112         the use of a weak object map cache for the run-time methods anymore.
3113
3114         * bridge/qt/qt_instance.cpp: Remove unused WeakMap code.
3115         * bridge/qt/qt_instance.h: Remove method cache.
3116         (QtInstance):
3117         * bridge/qt/qt_runtime.cpp:
3118         (JSC::Bindings::prototypeForSignalsAndSlots):
3119         (JSC::Bindings::QtRuntimeMethod::call):
3120         (JSC::Bindings::QtRuntimeMethod::jsObjectRef):
3121         (JSC::Bindings::QtRuntimeMethod::toRuntimeMethod):
3122         (Bindings):
3123         (JSC::Bindings::QtRuntimeMethod::connectOrDisconnect):
3124         * bridge/qt/qt_runtime.h:
3125         (QtRuntimeMethod): Remove unused member variables.
3126
3127 2012-08-22  Christophe Dumez  <christophe.dumez@intel.com>
3128
3129         window.postMessage() / MessagePort.postMessage() throw wrong exception for invalid ports argument
3130         https://bugs.webkit.org/show_bug.cgi?id=94581
3131
3132         Reviewed by Kentaro Hara.
3133
3134         Update JSC and V8 implementations of window.postMessage() and
3135         MessagePort.postMessage() in order to throw an
3136         INVALID_STATE_ERR instead of a DATA_CLONE_ERR when values
3137         in the "ports" argument are invalid. Additionally, we now
3138         check for duplicate ports and throw an exception for this
3139         case as well.
3140
3141         This change was made to comply with the latest HTML5
3142         specification at:
3143         http://www.w3.org/TR/html5/comms.html
3144
3145         No new tests, already tested by:
3146         fast/events/constructors/message-event-constructor.html
3147         fast/events/message-port-clone.html
3148         fast/events/message-port-multi.html
3149         fast/workers/worker-context-multi-port.html
3150         fast/workers/worker-multi-port.html
3151
3152         * bindings/js/JSMessagePortCustom.cpp:
3153         (WebCore::fillMessagePortArray):
3154         * bindings/v8/V8Utilities.cpp:
3155         (WebCore::extractTransferables):
3156         * dom/MessagePort.cpp:
3157         (WebCore::MessagePort::postMessage):
3158
3159 2012-08-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3160
3161         [TouchAdjustment] Adjust to word or selection
3162         https://bugs.webkit.org/show_bug.cgi?id=94449
3163
3164         Reviewed by Antonio Gomes.
3165
3166         Makes each separate word a separate subtarget when context menu triggers
3167         selections, and only the selected part of a partial selected node a 
3168         target when selections are not overridden.
3169
3170         Fix of reverted commit r126026, fix misplaced ASSERT.
3171
3172         Test: touchadjustment/context-menu-text-subtargets.html
3173
3174         * page/TouchAdjustment.cpp:
3175         (TouchAdjustment):
3176         (WebCore::TouchAdjustment::providesContextMenuItems):
3177         (WebCore::TouchAdjustment::appendQuadsToSubtargetList):
3178         (WebCore::TouchAdjustment::appendBasicSubtargetsForNode):
3179         (WebCore::TouchAdjustment::appendContextSubtargetsForNode):
3180         (WebCore::TouchAdjustment::compileSubtargetList):
3181         (WebCore::findBestClickableCandidate):
3182         (WebCore::findBestContextMenuCandidate):
3183
3184 2012-08-22  Andrey Adaikin  <aandrey@chromium.org>
3185
3186         Web Inspector: [WebGL] Generic framework draft for tracking WebGL resources
3187         https://bugs.webkit.org/show_bug.cgi?id=90597
3188
3189         Reviewed by Pavel Feldman.
3190
3191         Wrap WebGL rendering context methods and collect a trace log if we are in capturing mode.
3192         Stubbed code for collecting calls contributing to a WebGL resource state so that we could replay them later.
3193
3194         Typical scenario:
3195         - we wrap a GL context with InjectedScript.wrapWebGLContext() and return a proxy to the inspected page
3196         - the proxy saves all calls necessary to do a replay later - only those that modify a resource's state
3197         - when we turn on capturing mode (InjectedScript.captureFrame), we save all WebGL calls to a trace log
3198
3199         * inspector/InjectedScriptSource.js:
3200         (.):
3201         * inspector/InjectedScriptWebGLModuleSource.js:
3202         (.):
3203
3204 2012-08-22  Andrey Adaikin  <aandrey@chromium.org>
3205
3206         Web Inspector: [WebGL] Add minimum transport protocol from backend to frontend
3207         https://bugs.webkit.org/show_bug.cgi?id=88973
3208
3209         Reviewed by Pavel Feldman.
3210
3211         Added the following protocol methods to communicate with the WebGL injected
3212         module: captureFrame, getTraceLog, dropTraceLog, replayTraceLog.
3213
3214         * inspector/CodeGeneratorInspector.py:
3215         * inspector/InjectedScriptWebGLModule.cpp:
3216         (WebCore::InjectedScriptWebGLModule::captureFrame):
3217         (WebCore):
3218         (WebCore::InjectedScriptWebGLModule::dropTraceLog):
3219         (WebCore::InjectedScriptWebGLModule::getTraceLog):
3220         (WebCore::InjectedScriptWebGLModule::replayTraceLog):
3221         * inspector/InjectedScriptWebGLModule.h:
3222         (InjectedScriptWebGLModule):
3223         * inspector/Inspector.json:
3224         * inspector/InspectorController.cpp:
3225         (WebCore::InspectorController::InspectorController):
3226         * inspector/InspectorWebGLAgent.cpp:
3227         (WebCore::InspectorWebGLAgent::InspectorWebGLAgent):
3228         (WebCore::InspectorWebGLAgent::dropTraceLog):
3229         (WebCore):
3230         (WebCore::InspectorWebGLAgent::captureFrame):
3231         (WebCore::InspectorWebGLAgent::getTraceLog):
3232         (WebCore::InspectorWebGLAgent::replayTraceLog):
3233         * inspector/InspectorWebGLAgent.h:
3234         (WebCore):
3235         (WebCore::InspectorWebGLAgent::create):
3236         (InspectorWebGLAgent):
3237
3238 2012-08-22  Hans Wennborg  <hans@chromium.org>
3239
3240         Remove unused field DeleteEntryRequest::m_type
3241         https://bugs.webkit.org/show_bug.cgi?id=94680
3242
3243         Unreviewed build fix.
3244
3245         Remove this unused field. Clang warns about it and it breaks the
3246         Chromium build.
3247
3248         No change in functionality, no new tests.
3249
3250         * inspector/InspectorFileSystemAgent.cpp:
3251         (WebCore):
3252
3253 2012-08-21  Andrey Kosyakov  <caseq@chromium.org>
3254
3255         Web Inspector: console.time() should use performance.now()
3256         https://bugs.webkit.org/show_bug.cgi?id=94263
3257
3258         Reviewed by Pavel Feldman.
3259
3260         - use monotonicallyIncreasingTime() instead of currentTime() for measuring time intervals
3261             with console.time()/console.timeEnd()
3262         - adjust precision to 3 digits after decimal point (i.e. microseconds) when formatting intervals;
3263
3264         * inspector/InspectorConsoleAgent.cpp:
3265         (WebCore::InspectorConsoleAgent::stopTiming):
3266
3267 2012-08-22  Takashi Sakamoto  <tasak@google.com>
3268
3269         Dynamically styling ShadowDom content on a node distributed to another shadow insertion point fails.
3270         https://bugs.webkit.org/show_bug.cgi?id=92899
3271
3272         Reviewed by Hajime Morita.
3273
3274         Since childNeedsStyleRecalc is not cleared when parent nodes are
3275         attached, setNeedsStyleRecalc flag is not reached Document. So,
3276         document() doesn't run re-layout.
3277
3278         Test: fast/dom/shadow/shadowdom-dynamic-styling.html
3279
3280         * dom/ContainerNode.h:
3281         (ContainerNode):
3282         (WebCore::ContainerNode::detachAsNode):
3283         Removed detachAsNode, because the below change made the method
3284         not-used.
3285         * dom/Element.cpp:
3286         (WebCore::Element::detach):
3287         Modify to invoke ContainerNode::detach when any shadow subtree is
3288         attached. ContainerNode::detach takes care of childNeedsStyleRecalc
3289         flag.
3290         * dom/ElementShadow.cpp:
3291         (WebCore::ElementShadow::invalidateDistribution):
3292         Use SetAttached for lazyAttach instead of DoNotSetAttached, because
3293         it is reuired to invoke ContainerNode::detach. If not, attached() is
3294         false and reattach() invokes only attach(). This causes to leave
3295         shadow host's childNeedsStyleRecalc flag true after
3296         Element::recalcStyle.
3297
3298 2012-08-22  Taiju Tsuiki  <tzik@chromium.org>
3299
3300         Web Inspector: Add deleteEntry command and deletionCompleted event to FileSystemAgent
3301         https://bugs.webkit.org/show_bug.cgi?id=91831
3302
3303         Reviewed by Vsevolod Vlasov.
3304
3305         InspectorAgent-side implementation of deleteEntry command.
3306
3307         Test will be added after JS-side implementation landed.
3308
3309         * inspector/Inspector.json:
3310         * inspector/InspectorFileSystemAgent.cpp:
3311         (WebCore):
3312         (WebCore::InspectorFileSystemAgent::requestFileSystemRoot):
3313         (WebCore::InspectorFileSystemAgent::requestDirectoryContent):
3314         (WebCore::InspectorFileSystemAgent::requestMetadata):
3315         (WebCore::InspectorFileSystemAgent::requestFileContent):
3316         (WebCore::InspectorFileSystemAgent::deleteEntry):
3317         (WebCore::InspectorFileSystemAgent::assertFrontend):
3318         * inspector/InspectorFileSystemAgent.h:
3319         (InspectorFileSystemAgent):
3320         * inspector/front-end/FileSystemModel.js:
3321         (WebInspector.FileSystemDispatcher.prototype.fileContentReceived):
3322         (WebInspector.FileSystemDispatcher.prototype.deletionCompleted):
3323
3324 2012-08-21  Pavel Feldman  <pfeldman@chromium.org>
3325
3326         Web Inspector: TabbedPane: measure tab widths in batches.
3327         https://bugs.webkit.org/show_bug.cgi?id=94484
3328
3329         Reviewed by Vsevolod Vlasov.
3330
3331         - Introduces global batch update schema
3332         - Migrates Toolbar and TabbedPane to the new schema
3333
3334         * inspector/front-end/ScriptsPanel.js:
3335         (WebInspector.ScriptsPanel):
3336         * inspector/front-end/TabbedPane.js:
3337         (WebInspector.TabbedPane.prototype.appendTab):
3338         (WebInspector.TabbedPane.prototype._updateTabElements):
3339         (WebInspector.TabbedPane.prototype._innerUpdateTabElements):
3340         (WebInspector.TabbedPane.prototype._updateWidths):
3341         (WebInspector.TabbedPane.prototype._measureWidths):
3342         (WebInspector.TabbedPaneTab):
3343         (WebInspector.TabbedPaneTab.prototype.width):
3344         (WebInspector.TabbedPaneTab.prototype.setWidth):
3345         * inspector/front-end/Toolbar.js:
3346         (WebInspector.Toolbar):
3347         (WebInspector.Toolbar.prototype._updateDropdownButtonAndHideDropdown):
3348         (WebInspector.Toolbar.prototype._innerUpdateDropdownButtonAndHideDropdown):
3349         * inspector/front-end/UIUtils.js:
3350         (WebInspector.startBatchUpdate):
3351         (WebInspector.invokeOnceAfterBatchUpdate.get if):
3352         (WebInspector.invokeOnceAfterBatchUpdate):
3353         * inspector/front-end/inspector.js:
3354         * inspector/front-end/utilities.js:
3355
3356 2012-08-21  Kentaro Hara  <haraken@chromium.org>
3357
3358         [V8] Move String related code in V8Binding to a separate file
3359         https://bugs.webkit.org/show_bug.cgi?id=94571
3360
3361         Reviewed by Adam Barth.
3362
3363         This patch moves V8Parameter, V8ParameterBase and String related code
3364         in V8Binding to a separate file.
3365
3366         No tests. No change in behavior.
3367
3368         * UseV8.cmake:
3369         * WebCore.gypi:
3370         * bindings/v8/V8Binding.cpp:
3371         * bindings/v8/V8Binding.h:
3372         * bindings/v8/V8StringResource.cpp: Added.
3373         * bindings/v8/V8StringResource.h: Added.
3374         (WebCore):
3375
3376 2012-08-21  Sukolsak Sakshuwong  <sukolsak@google.com>
3377
3378         Implement UndoManager's automatic DOM transactions
3379         https://bugs.webkit.org/show_bug.cgi?id=91812
3380
3381         Reviewed by Ryosuke Niwa.
3382
3383         This patch implements automatic DOM transactions in UndoManager
3384         by recording changes in tree structure, attributes, and character data
3385         of nodes under undo scope host.
3386
3387         Tests: editing/undomanager/automatic-transaction-attribute.html
3388                editing/undomanager/automatic-transaction-data.html
3389                editing/undomanager/automatic-transaction-node.html
3390
3391         * CMakeLists.txt:
3392         * GNUmakefile.list.am:
3393         * WebCore.gypi:
3394         * WebCore.vcproj/WebCore.vcproj:
3395         * WebCore.xcodeproj/project.pbxproj:
3396         * bindings/js/DOMTransaction.h:
3397         (WebCore::DOMTransaction::addTransactionStep):
3398         (DOMTransaction):
3399         * bindings/v8/DOMTransaction.cpp:
3400         (DOMTransactionScope):
3401         (WebCore::DOMTransactionScope::DOMTransactionScope):
3402         (WebCore::DOMTransactionScope::~DOMTransactionScope):
3403         (WebCore):
3404         (WebCore::DOMTransaction::apply):
3405         (WebCore::DOMTransaction::unapply):
3406         (WebCore::DOMTransaction::reapply):
3407         * bindings/v8/DOMTransaction.h:
3408         (WebCore::DOMTransaction::addTransactionStep):
3409         (DOMTransaction):
3410         * css/PropertySetCSSStyleDeclaration.cpp:
3411         (WebCore::PropertySetCSSStyleDeclaration::setCssText):
3412         (WebCore::PropertySetCSSStyleDeclaration::setProperty):
3413         (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
3414         (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
3415         * dom/CharacterData.cpp:
3416         (WebCore::CharacterData::setDataAndUpdate):
3417         * dom/ContainerNode.cpp:
3418         (WebCore::willRemoveChild):
3419         (WebCore::willRemoveChildren):
3420         (WebCore::updateTreeAfterInsertion):
3421         * dom/Element.cpp:
3422         (WebCore::Element::willModifyAttribute):
3423         * editing/DOMTransactionStep.cpp: Added.
3424         (WebCore):
3425         (WebCore::NodeInsertingDOMTransactionStep::NodeInsertingDOMTransactionStep):
3426         (WebCore::NodeInsertingDOMTransactionStep::create):
3427         (WebCore::NodeInsertingDOMTransactionStep::unapply):
3428         (WebCore::NodeInsertingDOMTransactionStep::reapply):
3429         (WebCore::NodeRemovingDOMTransactionStep::NodeRemovingDOMTransactionStep):
3430         (WebCore::NodeRemovingDOMTransactionStep::create):
3431         (WebCore::NodeRemovingDOMTransactionStep::unapply):
3432         (WebCore::NodeRemovingDOMTransactionStep::reapply):
3433         (WebCore::DataReplacingDOMTransactionStep::DataReplacingDOMTransactionStep):
3434         (WebCore::DataReplacingDOMTransactionStep::create):
3435         (WebCore::DataReplacingDOMTransactionStep::unapply):
3436         (WebCore::DataReplacingDOMTransactionStep::reapply):
3437         (WebCore::AttrChangingDOMTransactionStep::AttrChangingDOMTransactionStep):
3438         (WebCore::AttrChangingDOMTransactionStep::create):
3439         (WebCore::AttrChangingDOMTransactionStep::unapply):
3440         (WebCore::AttrChangingDOMTransactionStep::reapply):
3441         * editing/DOMTransactionStep.h: Added.
3442         (WebCore):
3443         (DOMTransactionStep):
3444         (WebCore::DOMTransactionStep::~DOMTransactionStep):
3445         (NodeInsertingDOMTransactionStep):
3446         (NodeRemovingDOMTransactionStep):
3447         (DataReplacingDOMTransactionStep):
3448         (AttrChangingDOMTransactionStep):
3449         * editing/UndoManager.cpp:
3450         (WebCore):
3451         (WebCore::UndoManager::isRecordingAutomaticTransaction):
3452         (WebCore::UndoManager::addTransactionStep):
3453         * editing/UndoManager.h:
3454         (WebCore):
3455         (WebCore::UndoManager::setRecordingDOMTransaction):
3456         (UndoManager):
3457
3458 2012-08-21  Shezan Baig  <sbaig1@bloomberg.net>
3459
3460         Fix cross-direction stretch for replaced elements in row flexbox
3461         https://bugs.webkit.org/show_bug.cgi?id=94237
3462
3463         Reviewed by Ojan Vafai.
3464
3465         When stretching, don't take into account the instrinsic size of child
3466         replaced elements. Only the fixed size, min size, and max size of the
3467         child should be taken into account. The logic that computed this was
3468         moved from RenderBox::computeLogicalHeight to a new helper method
3469         called logicalHeightConstrainedByMinMax.  This helper method is now
3470         used from RenderFlexibleBox::applyStretchAlignmentToChild, instead of
3471         using RenderBox::computeLogicalHeight.
3472
3473         A similar change will need to be made for column-flowing flexboxes.
3474         This will be addressed in https://webkit.org/b/94604.
3475
3476         No new tests.  The existing css3/flexbox/flexitem.html test was
3477         extended to cover this case.
3478
3479         * rendering/RenderBox.cpp:
3480         (WebCore::RenderBox::logicalHeightConstrainedByMinMax): New helper
3481         method that is used by RenderBox::computeLogicalHeight and also by
3482         RenderFlexibleBox::applyStretchAlignmentToChild.
3483         (WebCore):
3484         (WebCore::RenderBox::computeLogicalHeight): Updated to use the new
3485         logicalHeightConstrainedByMinMax helper method.
3486         * rendering/RenderBox.h:
3487         (RenderBox):
3488         * rendering/RenderFlexibleBox.cpp:
3489         (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Use
3490         logicalHeightConstrainedByMinMax instead of computeLogicalHeight.
3491
3492 2012-08-21  Hayato Ito  <hayato@chromium.org>
3493
3494         Make an event object clonable to support an event propagation across seamless iframes.
3495         https://bugs.webkit.org/show_bug.cgi?id=93678
3496
3497         Reviewed by Dimitri Glazkov.
3498
3499         We should clone an event object when a event propagates across
3500         seamless iframes.  Currently Event and MouseEvent are
3501         supported. Support for other kinds of events will be addressed
3502         later.
3503
3504         This is one of the pre-requirements to support an event
3505         propagation across seamless iframes.
3506
3507         No new tests, no behavior change.
3508
3509         * dom/Event.cpp:
3510         (WebCore::Event::cloneFor):
3511         (WebCore):
3512         * dom/Event.h:
3513         (WebCore):
3514         (Event):
3515         * dom/MouseEvent.cpp:
3516         (WebCore::adjustedClinetX):
3517         (WebCore):
3518         (WebCore::adjustedClinetY):
3519         (WebCore::MouseEvent::cloneFor):
3520         * dom/MouseEvent.h:
3521         (MouseEvent):
3522
3523 2012-08-21  Joshua Bell  <jsbell@chromium.org>
3524
3525         IndexedDB: IDBRequest can be GCd during event dispatch
3526         https://bugs.webkit.org/show_bug.cgi?id=94235
3527
3528         Reviewed by Ojan Vafai.
3529
3530         Avoid a "race" where GC may attempt to reclaim IDB objects that are marked
3531         "done" prior to the completion of the event dispatch. The script runtime
3532         may decide to do a GC pass before calling the event handler, releasing the
3533         object and turning the dispatch into a no-op.
3534
3535         This is a partial reversion (with renames, etc) of r123275, r124842,
3536         and r121492. Added a new test, although it does not exercise the "race"
3537         condition directly.
3538
3539         Test: storage/indexeddb/pending-activity.html
3540               storage/indexeddb/pending-activity-workers.html
3541
3542         * Modules/indexeddb/IDBCursor.cpp:
3543         (WebCore::IDBCursor::close): Let the IDBRequest know it this cursor won't
3544         make it fire again.
3545         * Modules/indexeddb/IDBRequest.cpp:
3546         (WebCore::IDBRequest::IDBRequest): Reintroduce "am I done?" flag.
3547         (WebCore::IDBRequest::finishCursor): Cursors may fire events at the same
3548         IDBRequest repeatedly, so we need to know when they're are really done.
3549         (WebCore):
3550         (WebCore::IDBRequest::hasPendingActivity): Test the flag.
3551         (WebCore::IDBRequest::dispatchEvent): Set the flag.
3552         * Modules/indexeddb/IDBRequest.h:
3553         (IDBRequest):
3554         * Modules/indexeddb/IDBTransaction.cpp:
3555         (WebCore::IDBTransaction::IDBTransaction): Reintroduce "am I done?" flag.
3556         (WebCore::IDBTransaction::hasPendingActivity): Test the flag.
3557         (WebCore::IDBTransaction::dispatchEvent): Set the flag.
3558         * Modules/indexeddb/IDBTransaction.h:
3559
3560 2012-08-21  Pavel Feldman  <pfeldman@chromium.org>
3561
3562         Web Inspector: [regression] Settings panel fails to open.
3563         https://bugs.webkit.org/show_bug.cgi?id=94647
3564
3565         Unreviewed: one line JS front-end fix.
3566
3567         * inspector/front-end/ScriptsSearchScope.js:
3568         * inspector/front-end/Settings.js:
3569
3570 2012-08-21  Julien Chaffraix  <jchaffraix@webkit.org>
3571
3572         Crash in RenderTableSection::setCellLogicalWidths
3573         https://bugs.webkit.org/show_bug.cgi?id=94291
3574
3575         Reviewed by Abhishek Arya.
3576
3577         This issue was that splitAnonymousBoxesAroundChild would move a table section
3578         into a newly created table *without* marking it as needing cell recalc. The table
3579         would thus never build its structure to match its sections. The fix is to hop on
3580         the new willBeRemovedFromTree signal so that the section invalidates itself properly.
3581
3582         Test: fast/table/crash-split-table-section-no-cell-recalc.html
3583
3584         * rendering/RenderTableSection.cpp:
3585         (WebCore::RenderTableSection::willBeRemovedFromTree):
3586         * rendering/RenderTableSection.h:
3587         Replaced willBeDestroyed by willBeRemovedFromTree in RenderTableSection. This ensures that it is called
3588         when moving sections in the tree to mark them as needing cell recalc.
3589
3590 2012-08-21  Yoshifumi Inoue  <yosin@chromium.org>
3591
3592         [Forms] multiple fields time input UI should not have two focus ring.
3593         https://bugs.webkit.org/show_bug.cgi?id=94579
3594
3595         Reviewed by Hajime Morita.
3596
3597         This patch adds CSS selectors to override focus style for multiple
3598         fields time input UI.
3599
3600         No new tests. fast/forms/time-multiple-fields/time-multiple-fields-appearance-basic.html
3601         is updated for including focus state appearance.
3602
3603         * css/html.css:
3604         (input::-webkit-datetime-edit-ampm-field:focus): Override default focus appearance.
3605         (input::-webkit-datetime-edit-hour-field:focus): ditto
3606         (input::-webkit-datetime-edit-millisecond-field:focus): ditto
3607         (input::-webkit-datetime-edit-minute-field:focus): ditto
3608         (input::-webkit-datetime-edit-second-field:focus): ditto
3609
3610 2012-08-21  Adam Barth  <abarth@webkit.org>
3611
3612         V8 shouldn't have its own way of printing cross-origin error messages
3613         https://bugs.webkit.org/show_bug.cgi?id=94641
3614
3615         Reviewed by Eric Seidel.
3616
3617         V8 used to re-implement (poorly) the code for printing out an error
3618         message when a same-origin check failed. This patch deletes that code
3619         in favor of just calling the WebCore version of the code. There more to
3620         clean up here, but I had to stop before spidering over the whole
3621         codebase.
3622
3623         * bindings/generic/BindingSecurity.cpp:
3624         (WebCore::canAccessDocument):
3625         * bindings/js/BindingState.cpp:
3626         * bindings/js/BindingState.h:
3627         * bindings/v8/BindingState.cpp:
3628         (WebCore::printErrorMessageForFrame):
3629         * bindings/v8/BindingState.h:
3630         (WebCore):
3631         * bindings/v8/V8DOMWindowShell.cpp:
3632         (WebCore::reportUnsafeJavaScriptAccess):
3633         * bindings/v8/V8Proxy.cpp:
3634         * bindings/v8/V8Proxy.h:
3635         (V8Proxy):
3636
3637 2012-08-21  Shinya Kawanaka  <shinyak@chromium.org>
3638
3639         A shadow element in ShadowDOM of a button element does not work.
3640         https://bugs.webkit.org/show_bug.cgi?id=91486
3641
3642         Reviewed by Dimitri Glazkov.
3643
3644         Since a button element is extended from an HTMLFormControlElement, it creates a UserAgentShadowDOM
3645         just before adding an AuthorShadowDOM. However, actually a button element does not need any UserAgentShadowDOM.
3646         So we have to prevent it from creating UserAgentShadowDOM.
3647
3648         Test: fast/dom/shadow/shadowdom-for-button.html
3649
3650         * html/HTMLButtonElement.cpp:
3651         (WebCore::HTMLButtonElement::willAddAuthorShadowRoot):
3652         (WebCore):
3653         * html/HTMLButtonElement.h:
3654
3655 2012-08-21  Sukolsak Sakshuwong  <sukolsak@google.com>
3656
3657         Remove UndoManager's undoscope content attribute
3658         https://bugs.webkit.org/show_bug.cgi?id=94637
3659
3660         Reviewed by Ryosuke Niwa.
3661
3662         No new tests. Covered by existing tests.
3663
3664         * bindings/v8/DOMTransaction.cpp:
3665         (WebCore::DOMTransaction::callFunction):
3666         * dom/Document.cpp:
3667         (WebCore::Document::undoManager):
3668         * dom/Element.cpp:
3669         (WebCore::Element::~Element):
3670         (WebCore):
3671         * dom/Element.h:
3672         (Element):
3673         * dom/Element.idl:
3674         * dom/ElementRareData.h:
3675         (ElementRareData):
3676         * editing/UndoManager.cpp:
3677         (WebCore::UndoManager::create):
3678         (WebCore::UndoManager::UndoManager):
3679         (WebCore::UndoManager::disconnect):
3680         (WebCore::UndoManager::transact):
3681         (WebCore::UndoManager::undo):
3682         (WebCore::UndoManager::redo):
3683         (WebCore::UndoManager::clearUndo):
3684         (WebCore::UndoManager::clearRedo):
3685         (WebCore):
3686         * editing/UndoManager.h:
3687         (WebCore):
3688         (UndoManager):
3689         (WebCore::UndoManager::document):
3690         (WebCore::UndoManager::ownerNode):
3691         * html/HTMLAttributeNames.in:
3692         * html/HTMLElement.cpp:
3693         (WebCore::HTMLElement::parseAttribute):
3694         (WebCore::HTMLElement::setContentEditable):
3695
3696 2012-08-21  Joanmarie Diggs  <jdiggs@igalia.com>
3697
3698         [Gtk] No accessible caret-moved events found in certain content
3699         https://bugs.webkit.org/show_bug.cgi?id=72811
3700
3701         Reviewed by Chris Fleizach.
3702
3703         Part of the bug is due to objects which should claim to implement AtkText
3704         failed to do so as a result of containing a mixture of inline and block
3705         spans.
3706
3707         An updated unit test was provided.
3708
3709         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
3710         (roleIsTextType): New method to check if a role is one expected to have
3711         implemented the AtkText interface. Currently that is defined as:
3712          - ParagraphRole
3713          - HeadingRole
3714          - DivRole
3715          - CellRole
3716         (getInterfaceMaskFromObject): If a role is one of the text type roles,
3717         automatically add WAI_TEXT to the accessible object's interface mask.
3718
3719 2012-08-21  Tony Chang  <tony@chromium.org>
3720
3721         Force XML comments to maintain whitespace
3722         https://bugs.webkit.org/show_bug.cgi?id=94620
3723
3724         Reviewed by Pavel Feldman.
3725
3726         Fix a typo in XMLViewer.css for white-space formatting. This seems
3727         like the desired behavior so you can see, e.g., code formatted in an
3728         XML comment.
3729
3730         Covered by existing xmlviewer tests in http/tests/xmlviewer/dumpAsText
3731
3732         * xml/XMLViewer.css:
3733         (.comment): Fix typo.
3734         * xml/XMLViewer.js:
3735         (createComment): Add style to comment nodes.
3736
3737 2012-08-21  Sheriff Bot  <webkit.review.bot@gmail.com>
3738
3739         Unreviewed, rolling out r126202.
3740         http://trac.webkit.org/changeset/126202
3741         https://bugs.webkit.org/show_bug.cgi?id=94657
3742
3743         Causes assertion failures on Chromium Linux dbg compositing
3744         layout tests (Requested by dominicc on #webkit).
3745
3746         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
3747         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
3748         * platform/graphics/chromium/LayerRendererChromium.cpp:
3749         (WebCore::applyFilters):
3750         (WebCore::LayerRendererChromium::drawRenderPassQuad):
3751         (WebCore::LayerRendererChromium::drawTileQuad):
3752         (WebCore::LayerRendererChromium::drawYUVVideoQuad):
3753         (WebCore::LayerRendererChromium::drawTextureQuad):
3754         (WebCore::LayerRendererChromium::getFramebufferTexture):
3755         (WebCore::LayerRendererChromium::bindFramebufferToTexture):
3756         * platform/graphics/chromium/LayerRendererChromium.h:
3757         (LayerRendererChromium):
3758         * platform/graphics/chromium/cc/CCResourceProvider.cpp:
3759         (WebCore::CCResourceProvider::createResource):
3760         (WebCore::CCResourceProvider::createResourceFromExternalTexture):
3761         (WebCore::CCResourceProvider::deleteResource):
3762         (WebCore::CCResourceProvider::upload):
3763         (WebCore::CCResourceProvider::lockForWrite):
3764         (WebCore::CCResourceProvider::unlockForWrite):
3765         (WebCore::CCResourceProvider::flush):
3766         (WebCore::CCResourceProvider::shallowFlushIfSupported):
3767         (WebCore::CCResourceProvider::lockForRead):
3768         (WebCore::CCResourceProvider::unlockForRead):
3769         (WebCore::CCResourceProvider::CCResourceProvider):
3770         * platform/graphics/chromium/cc/CCResourceProvider.h:
3771         (WebCore):
3772         (CCResourceProvider):
3773         (WebCore::CCResourceProvider::Resource::Resource):
3774         (Resource):
3775         (CCScopedLockResourceForRead):
3776         (WebCore::CCScopedLockResourceForRead::CCScopedLockResourceForRead):
3777         (WebCore::CCScopedLockResourceForRead::~CCScopedLockResourceForRead):
3778         (WebCore::CCScopedLockResourceForRead::textureId):
3779         (CCScopedLockResourceForWrite):
3780         (WebCore::CCScopedLockResourceForWrite::CCScopedLockResourceForWrite):
3781         (WebCore::CCScopedLockResourceForWrite::~CCScopedLockResourceForWrite):
3782         (WebCore::CCScopedLockResourceForWrite::textureId):
3783
3784 2012-08-21  David Grogan  <dgrogan@chromium.org>
3785
3786         IndexedDB: Fire error at request when abort is called in upgradeneeded
3787         https://bugs.webkit.org/show_bug.cgi?id=94402
3788
3789         Reviewed by Tony Chang.
3790
3791         Tests - updated intversion-abort-in-initial-upgradeneeded-expected.txt
3792
3793         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
3794         (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
3795         (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndCompleteFired):
3796         (WebCore):
3797         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
3798         Now that second-half open calls don't get abandoned on the queue, we
3799         can ASSERT that there's at most one of them at any time.
3800
3801         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
3802         (IDBDatabaseBackendImpl):
3803         * Modules/indexeddb/IDBRequest.cpp:
3804         (WebCore::IDBRequest::dispatchEvent):
3805         Move setting m_didFireUpgradeNeededEvent before dispatching the event.
3806         If abort is called in the event handler an error event will be
3807         enqueued and ASSERT_WITH_MESSAGE(m_readyState == PENDING ||
3808         m_didFireUpgradeNeededEvent, ...) needs to pass.
3809
3810         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
3811         (WebCore::IDBTransactionBackendImpl::abort):
3812         (WebCore::IDBTransactionBackendImpl::commit):
3813
3814 2012-08-21  Sheriff Bot  <webkit.review.bot@gmail.com>
3815
3816         Unreviewed, rolling out r126233.
3817         http://trac.webkit.org/changeset/126233
3818         https://bugs.webkit.org/show_bug.cgi?id=94656
3819
3820         Broke Chromium Mac build (Requested by dominicc on #webkit).
3821
3822         * CMakeLists.txt:
3823         * GNUmakefile.list.am:
3824         * Target.pri:
3825         * WebCore.gypi:
3826         * WebCore.vcproj/WebCore.vcproj:
3827         * WebCore.xcodeproj/project.pbxproj:
3828         * css/mediaControls.css:
3829         (video::-webkit-media-text-track-display):
3830         * html/shadow/MediaControlElements.cpp:
3831         (RenderTextTrackContainerElement):
3832         (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
3833         * html/track/TextTrack.cpp:
3834         * html/track/TextTrack.h:
3835         (TextTrack):
3836         * html/track/TextTrackCue.cpp:
3837         (WebCore::TextTrackCue::TextTrackCue):
3838         (WebCore::TextTrackCue::calculateComputedLinePosition):
3839         (WebCore::TextTrackCue::calculateDisplayParameters):
3840         (WebCore::TextTrackCue::getDisplayTree):
3841         (WebCore::TextTrackCue::getPositionCoordinates):
3842         * html/track/TextTrackCue.h:
3843         (WebCore):
3844         (TextTrackCue):
3845         * rendering/RenderTextTrackCue.cpp: Removed.
3846         * rendering/RenderTextTrackCue.h: Removed.
3847
3848 2012-08-20  Kentaro Hara  <haraken@chromium.org>
3849
3850         [V8] Remove getToStringName() and getToStringTemplate() from V8Binding
3851         https://bugs.webkit.org/show_bug.cgi?id=94573
3852
3853         Reviewed by Adam Barth.
3854
3855         - Remove V8Binding::getToStringName() and V8Binding::getToStringTemplate().
3856
3857         - Replace getToStringName() with String::NewSymbol("toString").
3858
3859         - Fix V8PerIsolateData::getToStringTemplate() so that it caches a persistent
3860         handle of a created FunctionTemplate. Before this patch, a FunctionTemplate
3861         had been created for each toString().
3862
3863         No tests. No change in behavior.
3864
3865         * bindings/v8/V8Binding.cpp:
3866         (WebCore::constructorToString):
3867         * bindings/v8/V8Binding.h:
3868         (WebCore):
3869         * bindings/scripts/CodeGeneratorV8.pm:
3870         (GenerateImplementation):
3871         * bindings/scripts/test/V8/V8Float64Array.cpp:
3872         (WebCore::ConfigureV8Float64ArrayTemplate):
3873         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
3874         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
3875         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
3876         (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
3877         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
3878         (WebCore::ConfigureV8TestEventConstructorTemplate):
3879         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
3880         (WebCore::ConfigureV8TestEventTargetTemplate):
3881         * bindings/scripts/test/V8/V8TestException.cpp:
3882         (WebCore::ConfigureV8TestExceptionTemplate):
3883         * bindings/scripts/test/V8/V8TestInterface.cpp:
3884         (WebCore::ConfigureV8TestInterfaceTemplate):
3885         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
3886         (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
3887         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
3888         (WebCore::ConfigureV8TestNamedConstructorTemplate):
3889         * bindings/scripts/test/V8/V8TestNode.cpp:
3890         (WebCore::ConfigureV8TestNodeTemplate):
3891         * bindings/scripts/test/V8/V8TestObj.cpp:
3892         (WebCore::ConfigureV8TestObjTemplate):
3893         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3894         (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
3895         * bindings/v8/V8PerIsolateData.h:
3896         (V8PerIsolateData):
3897
3898 2012-08-21  Arvid Nilsson  <anilsson@rim.com>
3899
3900         [BlackBerry] WebGL Aquarium fails to render
3901         https://bugs.webkit.org/show_bug.cgi?id=94634
3902
3903         The aquarium leaves with a glColorMask(false, false, false, true) which
3904         caused us to fail to blit the color components of the aquarium to the
3905         EGLImage.
3906
3907         Fixed by setting an appropriate color mask for a blit operation.
3908
3909         Reviewed by Yong Li.
3910
3911         No new tests, tested manually.
3912
3913         * platform/graphics/blackberry/EGLImageLayerWebKitThread.cpp:
3914         (WebCore::EGLImageLayerWebKitThread::blitToFrontBuffer):
3915
3916 2012-08-21  Victor Carbune  <victor@rosedu.org>
3917
3918         Display a TextTrackCue when snap-to-lines flag is set
3919         https://bugs.webkit.org/show_bug.cgi?id=79751
3920
3921         Reviewed by Tony Chang.
3922
3923         This patch implements rendering functionality for a given text track,
3924         following closer the exact WebVTT specification. There are two new classes
3925         which have been added in order to succesfully cover rendering when of a text
3926         track cue.
3927
3928         RenderTextTrackCue handles the specific rendering algorithm required,
3929         by checking for overlaps with other boxes that are in the same
3930         container (these can be any other boxes, not necessarily other cues,
3931         the video controls, for example).
3932
3933         TextTrackCueBox extends HTMLDivElement and is an intermediate layer
3934         between the renderer class and the actual cue object. Its purpose is
3935         to instantiate the particular renderer and cover all the default CSS
3936         styling that needs to be applied to the cue.
3937
3938         The layout is done in two steps:
3939           - Step 1: Layout the TextTrackCue with default CSS properties set (this is
3940         the TextTrackCueBox decorated with the respective CSS elements)
3941           - Step 2: RenderTextTrackCue adjusts the box position depending on the
3942         parameters of the TextTrackCue object and the overlaps that may occur with
3943         previously positioned cues.
3944
3945         Tests: media/track/track-cue-rendering-horizontal.html
3946                media/track/track-cue-rendering-vertical.html
3947
3948         * CMakeLists.txt: Updated to include RenderTextTrackCue.
3949         * GNUmakefile.list.am: Updated to include RenderTextTrackCue.
3950         * Target.pri: Updated to include RenderTextTrackCue.
3951         * WebCore.gypi: Updated to include RenderTextTrackCue.
3952         * WebCore.vcproj/WebCore.vcproj: Updated to include RenderTextTrackCue.
3953         * WebCore.xcodeproj/project.pbxproj: Updated to include RenderTextTrackCue.
3954         * css/mediaControls.css: Removed unreliable CSS.
3955         (video::-webkit-media-text-track-display): Removed properties.
3956         * html/shadow/MediaControlElements.cpp: Updated to not use the new class.
3957         (RenderTextTrackContainerElement):
3958         (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Simplified
3959         the function by moving the check if track is rendered in TextTrack and used
3960         the TextTrackCueBox for cues.
3961         * html/track/TextTrack.cpp: Added a new method.
3962         (WebCore::TextTrack::isRendered): Method that returns whether the track should
3963         be rendered or not.
3964         (WebCore):
3965         * html/track/TextTrack.h: Added the isRendered method.
3966         (TextTrack):
3967         * html/track/TextTrackCue.cpp: Added several helper methods and
3968         the TextTrackCueBox.
3969         (WebCore):
3970         (WebCore::TextTrackCueBox::TextTrackCueBox): The TextTrackCueBox extends
3971         the HTMLDivElement and represents a bridge class between RenderTextTrackCue
3972         and TextTrackCue. This is required as the layout is done in two steps, as
3973         explained on top of the ChangeLog entry.
3974         (WebCore::TextTrackCueBox::getCue): Returns the associated TextTrackCue object.
3975         (WebCore::TextTrackCueBox::applyCSSProperties): Applies a part of the default CSS
3976         properties, as defined by section 3.5.1 of the WebVTT specification.
3977         (WebCore::TextTrackCueBox::shadowPseudoId): Moved the shadow pseudo id.
3978         (WebCore::TextTrackCueBox::createRenderer): Creates the particular renderer.
3979         (WebCore::TextTrackCue::TextTrackCue): Corrected the internal writing mode map.
3980         (WebCore::TextTrackCue::calculateComputedLinePosition): Updated the compute line
3981         position algorithm. This requires, however, a method to consider only rendered
3982         tracks (and therefore will be addressed completely in subsequent changeset).
3983         (WebCore::TextTrackCue::calculateDisplayParameters): Updated and corrected the
3984         computed display parameters to match the current specification.
3985         (WebCore::TextTrackCue::getDisplayTree): Update to use the TextTrackCueBox class
3986         and moved CSS application to the respective class.
3987         (WebCore::TextTrackCue::getPositionCoordinates): Added comment to specify in which
3988         situation this method is used and change visibility to private.
3989         (WebCore::TextTrackCue::getCSSWritingMode): Returns the CSS writing mode corresponding
3990         to the cue writing mode.
3991         (WebCore::TextTrackCue::getCSSSize): Returns the cue width / height (depending on the
3992         writing direction.
3993         (WebCore::TextTrackCue::getCSSPosition): Returns the default display position, that is
3994         used in the first layout step.
3995         * html/track/TextTrackCue.h:
3996         (WebCore):
3997         (TextTrackCueBox):
3998         (WebCore::TextTrackCueBox::create): Initialization method.
3999         (TextTrackCue):
4000         (WebCore::TextTrackCue::getWritingDirection): Helper method to return the internal
4001         values used to represent the writing direction.
4002         * rendering/RenderTextTrackCue.cpp: Added.
4003         (WebCore):
4004         (WebCore::RenderTextTrackCue::RenderTextTrackCue):
4005         (WebCore::RenderTextTrackCue::layout): The rendering steps, as mentioned in
4006         the WebVTT rendering rules. Currently, this treats only the snap-to-lines set
4007         case. It is implemented following closely the spec, and might be subject to
4008         change as discussions on various bugs evolve.