[BlackBerry] GraphicsContext: add fillRule parameter to clip() and canvasClip()
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-03-08  Alberto Garcia  <agarcia@igalia.com>
2
3         [BlackBerry] GraphicsContext: add fillRule parameter to clip() and canvasClip()
4         https://bugs.webkit.org/show_bug.cgi?id=111836
5
6         Reviewed by Rob Buis.
7
8         This parameter was added in r139967.
9
10         * platform/graphics/blackberry/PathBlackBerry.cpp:
11         (WebCore):
12         (WebCore::GraphicsContext::clip):
13         (WebCore::GraphicsContext::canvasClip):
14
15 2013-03-08  Vsevolod Vlasov  <vsevik@chromium.org>
16
17         Web Inspector: Get rid of file system ids and use file pathes as uri for file based uiSourceCodes.
18         https://bugs.webkit.org/show_bug.cgi?id=111753
19
20         Reviewed by Pavel Feldman.
21
22         * inspector/front-end/FileSystemMapping.js:
23         (WebInspector.FileSystemMappingImpl):
24         (WebInspector.FileSystemMappingImpl.prototype._loadFromSettings.get this):
25         (WebInspector.FileSystemMappingImpl.prototype._loadFromSettings):
26         (WebInspector.FileSystemMappingImpl.prototype._saveToSettings):
27         (WebInspector.FileSystemMappingImpl.prototype.set addFileSystemMapping):
28         (WebInspector.FileSystemMappingImpl.prototype.removeFileSystemMapping):
29         (WebInspector.FileSystemMappingImpl.prototype.fileSystemPaths):
30         (WebInspector.FileSystemMappingImpl.prototype.fileSystemPathForPrefix):
31         * inspector/front-end/FileSystemProjectDelegate.js:
32         (WebInspector.FileSystemProjectDelegate.projectId):
33         (WebInspector.FileSystemProjectDelegate.prototype.id):
34         (WebInspector.FileSystemProjectDelegate.prototype.fileSystemPath):
35         (WebInspector.FileSystemWorkspaceProvider):
36         (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
37         (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
38         (WebInspector.FileSystemWorkspaceProvider.prototype.fileSystemPath):
39         * inspector/front-end/IsolatedFileSystemManager.js:
40         (WebInspector.IsolatedFileSystemManager.prototype._innerAddFileSystem):
41         (WebInspector.IsolatedFileSystemManager.prototype._fileSystemRemoved):
42         * inspector/front-end/Workspace.js:
43         (WebInspector.Workspace.prototype.uiSourceCodeForURL):
44
45 2013-03-08  Vsevolod Vlasov  <vsevik@chromium.org>
46
47         Web Inspector: Polish TabbedEditorContaner and ScriptsNavigator behavior.
48         https://bugs.webkit.org/show_bug.cgi?id=111732
49
50         Reviewed by Pavel Feldman.
51
52         Resources matching inspectedPageURL are always expanded in NavigatorView now.
53         Snippets tab in scripts navigator is not automatically opened anymore.
54         Cleared saved TabbedEditorContainer history because it might have been corrupted due to errors in earlier versions.
55         Snippets are not revealed in TabbedEditorContainer anymore unless they were actually selected by user or there is no other tabs opened.
56
57         * inspector/front-end/NavigatorView.js:
58         (WebInspector.NavigatorView):
59         (WebInspector.NavigatorView.prototype.addUISourceCode):
60         (WebInspector.NavigatorView.prototype._inspectedURLChanged):
61         (WebInspector.NavigatorView.prototype.revealUISourceCode):
62         (WebInspector.NavigatorView.prototype.removeUISourceCode):
63         (WebInspector.NavigatorFolderTreeElement.prototype.onattach):
64         (WebInspector.NavigatorUISourceCodeTreeNode.prototype.uiSourceCode):
65         (WebInspector.NavigatorUISourceCodeTreeNode.prototype.reveal):
66         * inspector/front-end/ScriptsNavigator.js:
67         (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
68         * inspector/front-end/ScriptsPanel.js:
69         (WebInspector.ScriptsPanel.prototype._showFile):
70         * inspector/front-end/Settings.js:
71         (WebInspector.VersionController.prototype._updateVersionFrom1To2):
72         * inspector/front-end/TabbedEditorContainer.js:
73         (WebInspector.TabbedEditorContainer.prototype.addUISourceCode.tabId.this._tabIds.get this):
74         (WebInspector.TabbedEditorContainer.prototype.addUISourceCode):
75         (WebInspector.TabbedEditorContainer.History.prototype._rebuildItemIndex):
76
77 2013-03-08  Vsevolod Vlasov  <vsevik@chromium.org>
78
79         Web Inspector: Add shortcut for running a snippet.
80         https://bugs.webkit.org/show_bug.cgi?id=111680
81
82         Reviewed by Pavel Feldman.
83
84         Added Ctrl/Cmd+Enter as a shortcut for running a snippet.
85
86         * inspector/front-end/SnippetJavaScriptSourceFrame.js:
87         (WebInspector.SnippetJavaScriptSourceFrame):
88         (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
89         (WebInspector.SnippetJavaScriptSourceFrame.prototype._runSnippet):
90         (WebInspector.SnippetJavaScriptSourceFrame.prototype._onKeyDown):
91
92 2013-03-08  Philip Rogers  <pdr@google.com>
93
94         Prevent infinite loop in SVG use cycle detection
95         https://bugs.webkit.org/show_bug.cgi?id=111822
96
97         Reviewed by Stephen Chenney.
98
99         SVG use cycle detection depended on idForStyleResolution() which differs from
100         getIdAttribute() in quirks mode. During use tree cycle detection, this difference
101         resulted in an infinite loop because idForStyleResolution() used lower-cased id
102         attributes. This patch removes an existing fixme for this and switches to using
103         getIdAttribute().
104
105         Test: svg/custom/use-cycle-detection.html
106
107         * svg/SVGUseElement.cpp:
108         (WebCore::SVGUseElement::hasCycleUseReferencing):
109
110 2013-03-08  Yuki Sekiguchi  <yuki.sekiguchi@access-company.com>
111
112         When we set word-wrap: break-word and xml:space="preserve" to svg text element, the text is collapsed.
113         https://bugs.webkit.org/show_bug.cgi?id=111675
114
115         Reviewed by Stephen Chenney.
116
117         RenderSVGText define its size when it laid out its first line at SVGRootInlineBox::computePerCharacterLayoutInformation().
118
119         In the following spec, SVG don't perform automatic line break or word wrapping.
120         http://www.w3.org/TR/SVG/text.html#Introduction
121         > SVG performs no automatic line breaking or word wrapping.
122         However, when we set word-wrap: break-word and xml:space="preserve" to svg text element, RenderBlock::LineBreaker::nextLineBreak() breaks the text.
123         This make single character lines and make RenderSVGText narrow.
124
125         We must ignore word-wrap property to make the text a single line.
126
127         We always disable break words and break all in nextLineBreak() when the object is SVGInlineText.
128
129         Test: svg/text/preserve-break-word.html
130
131         * rendering/RenderBlockLineLayout.cpp:
132         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Disable break words and break all when we process SVG Text.
133
134 2013-03-08  Allan Sandfeld Jensen  <allan.jensen@digia.com>
135
136         [Qt] HTML5 video - sound volume bar out of widget
137         https://bugs.webkit.org/show_bug.cgi?id=108213
138
139         Reviewed by Jocelyn Turcotte.
140
141         Since we use Safari shadow DOM for media controls, follow
142         the overall layout of Safari media control CSS.
143
144         * css/mediaControlsQt.css:
145         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
146         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
147         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
148         (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
149         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
150         (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
151         (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
152         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
153         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
154         (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button):
155         (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button):
156         (audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button):
157         (audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button):
158         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
159
160 2013-03-08  Allan Sandfeld Jensen  <allan.jensen@digia.com>
161
162         [Qt] Doesn't build with QtMultimedia
163         https://bugs.webkit.org/show_bug.cgi?id=111847
164
165         Reviewed by Jocelyn Turcotte.
166
167         Fix include.
168
169         * platform/graphics/qt/MediaPlayerPrivateQt.h:
170
171 2013-03-08  Huang Dongsung  <luxtella@company100.net>
172
173         [EFL][Qt] REGRESSION(r144787): A fixed element lags when scrolling and wheeling.
174         https://bugs.webkit.org/show_bug.cgi?id=111829
175
176         Reviewed by Noam Rosenthal.
177
178         Currently, flagsChanged deals with all boolean flags. It introduces this bug
179         because when another flag (i.e. preserves3D) is changed, fixedToViewport is set
180         to false. So this patch updates all flags when at least one flag is changed.
181
182         In addition, this patch amends isScrollable code to match other flags.
183
184         This patch can only be tested manually since there is no automated
185         testing facilities for in-motion touch.
186         Test: ManualTests/fixed-position.html
187               ManualTests/nested-fixed-position.html
188
189         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
190         (WebCore::CoordinatedGraphicsLayer::setScrollableArea):
191         (WebCore::CoordinatedGraphicsLayer::syncLayerState):
192         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
193         (WebCore::CoordinatedGraphicsScene::setLayerState):
194         * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
195         (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
196
197 2013-03-07  Dean Jackson  <dino@apple.com>
198
199         Remove dead label code in snapshotted plugin
200         https://bugs.webkit.org/show_bug.cgi?id=111781
201
202         Reviewed by Tim Horton.
203
204         Since ports can use the shadow tree to do label display,
205         there is no need for the hardcoded timers in RenderSnapshottedPlugin.
206
207         * rendering/RenderSnapshottedPlugIn.cpp: Remove label flags and timers.
208         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
209         (WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn):
210         (WebCore::RenderSnapshottedPlugIn::updateSnapshot):
211         (WebCore::RenderSnapshottedPlugIn::handleEvent):
212         * rendering/RenderSnapshottedPlugIn.h:
213         (RenderSnapshottedPlugIn):
214
215 2013-03-07  Dean Jackson  <dino@apple.com>
216
217         Implement a custom appearance for the snapshotted plugin background
218         https://bugs.webkit.org/show_bug.cgi?id=108368
219
220         Reviewed by Tim Horton.
221
222         After https://bugs.webkit.org/show_bug.cgi?id=108284 (r142507), a
223         snapshotted plugin was no longer drawing the background of the
224         label blurred. Since the snapshot content was now a shadow tree,
225         it wasn't feasible to pre-blur a region of the snapshot: the label
226         could be any size and in any location, with ports being able to
227         override the appearance through their UA style sheet.
228
229         Instead we now use one of the elements in the tree, the snapshot-overlay,
230         as a hook where ports can add any effect they want. This could be simply
231         a border, or a transparent mask, or even a CSS filter. We introduce a custom
232         CSS appearance "snapshotted-plugin-overlay", which could be added to the
233         element in the injected UA stylesheet. This calls into RenderTheme in
234         the same way that custom controls do.
235
236         Meanwhile, in RenderThemeMac, we implement the appearance by drawing the
237         content of the plugin snapshot into the background of the element. That
238         way we can add effects in CSS.
239
240         Test: plugins/snapshot-appearance.html
241
242         * css/CSSPrimitiveValueMappings.h:
243         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Handle SnapshottedPluginOverlayPart.
244         * css/CSSValueKeywords.in: New appearance value snapshotted-plugin-overlay.
245         * platform/ThemeTypes.h: New value SnapshottedPluginOverlayPart.
246         * html/HTMLPlugInElement.h:
247         (WebCore::toHTMLPlugInElement): Add safer casting helpers.
248         * html/HTMLPlugInImageElement.h:
249         (WebCore::toHTMLPlugInImageElement): Ditto.
250         * rendering/RenderSnapshottedPlugIn.cpp: Remove the code for handling
251             the blur directly in the renderer.
252         (WebCore::RenderSnapshottedPlugIn::paint): Simplify the paint logic since we're
253             no longer trying to blur here.
254         (WebCore::RenderSnapshottedPlugIn::paintSnapshot): Ditto.
255         * rendering/RenderSnapshottedPlugIn.h: Remove the methods that were trying
256             to blur the image directly.
257         * rendering/RenderTheme.cpp:
258         (WebCore::RenderTheme::paint): Call paintSnapshottedPluginOverlay.
259         * rendering/RenderTheme.h:
260         (WebCore::RenderTheme::paintSnapshottedPluginOverlay): New virtual method with default implementation.
261         * rendering/RenderThemeMacShared.h:
262         (RenderThemeMacShared): Override paintSnapshottedPluginOverlay.
263         * rendering/RenderThemeMacShared.mm:
264         (WebCore::RenderThemeMacShared::paintSnapshottedPluginOverlay): Implement a custom render path
265             that takes the snapshot image from the node's parent, and draws it into the background.
266             Along the way make sure we're actually using the right type of element (an HTMLPlugInImageElement).
267
268 2013-03-08  Sergio Villar Senin  <svillar@igalia.com>
269
270         Improve drag&drop of list items in contentEditable divs
271         https://bugs.webkit.org/show_bug.cgi?id=111556
272
273         Reviewed by Ryosuke Niwa.
274
275         A single fully selected <li> should generate the same markup as if
276         we were selecting some of them, i.e., we should preserve the list
277         structure and appearance.
278
279         Test: editing/selection/drag-list-item.html
280
281         * editing/htmlediting.cpp:
282         (WebCore::isListItem): modified constness.
283         * editing/htmlediting.h:
284         (WebCore): ditto.
285         * editing/markup.cpp:
286         (WebCore::highestAncestorToWrapMarkup):
287
288 2013-03-08  Alberto Garcia  <agarcia@igalia.com>
289
290         [BlackBerry] LayerTiler: rename currentFrameHasAlpha as currentFrameKnownToBeOpaque
291         https://bugs.webkit.org/show_bug.cgi?id=111828
292
293         Reviewed by Carlos Garcia Campos.
294
295         This changed in r141637.
296
297         * platform/graphics/blackberry/LayerTiler.cpp:
298         (WebCore::LayerTiler::updateTextureContentsIfNeeded):
299
300 2013-03-08  Antoine Quint  <graouts@apple.com>
301
302         Fix a couple of typos.
303
304         Unreviewed.
305
306         * inspector/Inspector.json:
307
308 2013-03-08  Carlos Garcia Campos  <cgarcia@igalia.com>
309
310         [BlackBerry] Use OwnPtr for CredentialBackingStore members
311         https://bugs.webkit.org/show_bug.cgi?id=111737
312
313         Reviewed by Rob Buis.
314
315         It simplifies the code a bit.
316
317         * platform/network/blackberry/CredentialBackingStore.cpp:
318         (WebCore::CredentialBackingStore::~CredentialBackingStore):
319         (WebCore::CredentialBackingStore::open):
320         (WebCore::CredentialBackingStore::certMgrWrapper):
321         * platform/network/blackberry/CredentialBackingStore.h:
322         (CredentialBackingStore):
323
324 2013-03-07  Gavin Barraclough  <barraclough@apple.com>
325
326         MemoryPressureHandler should fully flush the WebCore & NS URL caches
327         https://bugs.webkit.org/show_bug.cgi?id=111827
328
329         Rubber Stamped by Geoff Garen
330
331         When the handler is fired we should free as much memory as possible.
332
333         * platform/mac/MemoryPressureHandlerMac.mm:
334         (WebCore::MemoryPressureHandler::releaseMemory):
335             - fully flush the WebCore & NS URL caches
336
337 2013-03-07  Keishi Hattori  <keishi@webkit.org>
338
339         Update calendar picker UI
340         https://bugs.webkit.org/show_bug.cgi?id=109439
341
342         Reviewed by Kent Tamura.
343
344         This patch changes the calendar picker UI.
345
346         Added tests to existing calendar picker tests.
347         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-month-popup.html
348
349         * Resources/pagepopups/calendarPicker.css:
350         (body):
351         (.rtl):
352         (.scroll-view):
353         (.scroll-view-content):
354         (.list-cell):
355         (.list-cell.hidden):
356         (.day-cell):
357         (.week-number-cell):
358         (.day-cell.today):
359         (.day-cell.highlighted):
360         (.day-cell.highlighted.disabled):
361         (.day-cell.selected):
362         (.day-cell.disabled):
363         (.day-cell.current-month):
364         (.calendar-table-view):
365         (.preparing .calendar-table-view:focus):
366         (.week-day-label):
367         (.week-number-label):
368         (.calendar-table-header-view):
369         (.calendar-picker):
370         (.calendar-header-view):
371         (.calendar-title):
372         (.rtl .calendar-title):
373         (.month-popup-button:disabled):
374         (.month-popup-button):
375         (.month-popup-button .disclosure-triangle):
376         (.month-popup-button .disclosure-triangle svg):
377         (.today-button::after):
378         (.calendar-navigation-button):
379         (.year-list-view):
380         (.year-list-cell):
381         (.year-list-cell .label):
382         (.year-list-cell .month-chooser):
383         (.month-buttons-row):
384         (.month-button):
385         (.month-button.highlighted):
386         (.scrubby-scroll-bar):
387         (.scrubby-scroll-thumb):
388         (.month-popup-view):
389         (.year-list-view .scrubby-scroll-bar):
390         (.rtl .year-list-view .scrubby-scroll-bar):
391         * Resources/pagepopups/calendarPicker.js:
392         (setGlobalParams): Sets the global params.
393         (initialize):
394         (openCalendarPicker):
395         (CalendarHeaderView.prototype.onNavigationButtonClick): Fix typo.
396         (CalendarPicker):
397         (CalendarPicker.prototype.onWindowResize): We want to have the "preparing" class applied
398         to cancel css transitions while setting up the calendar picker so we can avoid flaky pixel tests.
399         (CalendarPicker.prototype.onYearListViewDidHide): The user clicked on a month so hide the month popup.
400         (CalendarPicker.prototype.onYearListViewDidSelectMonth): Change the current month in response to the month popup.
401         (CalendarPicker.prototype.attachTo): We want the calendar table focused when the calendar picker first opens.
402         (CalendarPicker.prototype.cleanup): Clean up any event listeners or elements attached to nodes outside of this.element.
403         (CalendarPicker.prototype.onMonthPopupButtonClick): Open the month popup in response to the month popup button being clicked.
404         (CalendarPicker.prototype._setConfig): Configures the calendar picker.
405         (CalendarPicker.prototype.currentMonth): The currently shown month.
406         (CalendarPicker.prototype.setCurrentMonth): Scrolls the calendar table to the given month. Use the navigation behavior param to specify if you want a transition animation.
407         (CalendarPicker.prototype.adjustHeight): Adjusts the height so its just tall enough to fit the current month. If the month picker is open, fit that.
408         (CalendarPicker.prototype.selection): Currently selected date range.
409         (CalendarPicker.prototype.highlight): Currently highlighted date range.
410         (CalendarPicker.prototype.firstVisibleDay): Returns the first visible day ignoring scroll animation (i.e. this is the first visible day when the scroll animation is done).
411         (CalendarPicker.prototype.lastVisibleDay): Returns the last visible day ignoring scroll animation.
412         (CalendarPicker.prototype.selectRangeContainingDay): Sets the selection to the date range containing the given day.
413         (CalendarPicker.prototype.highlightRangeContainingDay): Sets the highlight to the date range containing the given day.
414         (CalendarPicker.prototype.setSelection): Sets the selection to the given date range.
415         (CalendarPicker.prototype._setHighlight): Sets the highlight to the given date range.
416         (CalendarPicker.prototype._stepMismatch): Just moving.
417         (CalendarPicker.prototype._outOfRange): Ditto.
418         (CalendarPicker.prototype.isValid): Returns true if the given date range is a valid selection.
419         (CalendarPicker.prototype.isValidDay): Returns true if the day is part of a valid selection.
420         (CalendarPicker.prototype._moveHighlight): Moves the highlight to the given date range if possible. Returns true if it succeeds.
421         (CalendarPicker.prototype.onCalendarTableKeyDown): Handles the arrow keys, etc.
422         (CalendarPicker.prototype.width):
423         (CalendarPicker.prototype.height):
424         (CalendarPicker.prototype.setHeight):
425         (CalendarPicker.prototype.onBodyKeyDown): Handles esc/m/y/d.
426         * Resources/pagepopups/chromium/calendarPickerChromium.css:
427         (.calendar-table-view:focus):
428         (.preparing .calendar-table-view:focus):
429
430 2013-03-07  Seokju Kwon  <seokju.kwon@gmail.com>
431
432         Web Inspector: Remove unused return value after r122962
433         https://bugs.webkit.org/show_bug.cgi?id=111821
434
435         Reviewed by Pavel Feldman.
436
437         No new tests.
438
439         * inspector/front-end/ConsolePanel.js:
440         (WebInspector.ConsolePanel.prototype.jumpToPreviousSearchResult):
441         * inspector/front-end/ElementsPanel.js:
442         (WebInspector.ElementsPanel.prototype.jumpToPreviousSearchResult):
443         * inspector/front-end/ScriptsPanel.js:
444         (WebInspector.ScriptsPanel.prototype.jumpToPreviousSearchResult):
445
446 2013-03-07  Sheriff Bot  <webkit.review.bot@gmail.com>
447
448         Unreviewed, rolling out r145166.
449         http://trac.webkit.org/changeset/145166
450         https://bugs.webkit.org/show_bug.cgi?id=111819
451
452         build break - no symbol
453         webkit_support::CreateScopedTempDirectory() (Requested by
454         hayato on #webkit).
455
456         * Modules/indexeddb/IDBBackingStore.cpp:
457         (WebCore::IDBBackingStore::IDBBackingStore):
458         (WebCore::IDBBackingStore::~IDBBackingStore):
459         (WebCore::IDBBackingStore::open):
460         * Modules/indexeddb/IDBBackingStore.h:
461         (WebCore):
462         (IDBBackingStore):
463         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
464         (WebCore::IDBFactoryBackendImpl::addIDBBackingStore):
465         (WebCore):
466         (WebCore::IDBFactoryBackendImpl::removeIDBBackingStore):
467         (WebCore::IDBFactoryBackendImpl::openBackingStore):
468         * Modules/indexeddb/IDBFactoryBackendImpl.h:
469         (IDBFactoryBackendImpl):
470
471 2013-03-07  Hajime Morrita  <morrita@google.com>
472
473         Custom Elements: CustomElement constructor shouldn't share function instance
474         https://bugs.webkit.org/show_bug.cgi?id=111807
475
476         Reviewed by Kentaro Hara.
477
478         Adaptor functions of custom elements unintentionally share the instance.
479         This fix gives new one for each.
480
481         Test: Updated fast/dom/custom/document-register-basic.html
482
483         * bindings/v8/V8AdaptorFunction.cpp:
484         (WebCore::V8AdaptorFunction::wrap):
485
486 2013-03-07  Jared Wyles  <wyles@adobe.com>
487
488         Reading border radius from style property returns in wrong order.
489         https://bugs.webkit.org/show_bug.cgi?id=110853
490
491         Reviewed by Ryosuke Niwa
492         
493         Updating the order of border-radius to return in the order specified
494         in http://www.w3.org/TR/css3-background/#the-border-radius
495
496         Tests updated in LayoutTests/fast/borders/border-radius-parsing.html 
497         Changed the expectations in LayoutTests/inspector/elements/elements-panel-styles-expected.txt 
498         
499         Compat information -
500         jQuery's css function favours using getComputedStyle for elements so that should not be impacted.
501         Zepto does check for the element on style first so may be a slight concern there.
502
503         * css/StylePropertyShorthand.cpp:
504         (WebCore::borderRadiusShorthand):
505
506 2013-03-07  Andreas Kling  <akling@apple.com>
507
508         Resizing Cappuccino is very laggy on WebKit since Safari 5.1
509         <http://webkit.org/b/71354>
510         <rdar://problem/10565998>
511
512         Reviewed by Anders Carlsson.
513
514         * WebCore.exp.in: Export FloatPoint(const NSPoint&)
515
516 2013-03-07  Andreas Kling  <akling@apple.com>
517
518         Remove desktop version of -webkit-text-size-adjust property.
519         <http://webkit.org/b/56543>
520         <rdar://problem/9150203>
521
522         Reviewed by Simon Fraser.
523
524         This property existed to support a number of Apple-internal clients of WebKit.
525         We no longer need this property, and since it's clashing with a mobile version of the
526         same property with different meaning, let's remove it altogether from the desktop build.
527
528         * css/CSSComputedStyleDeclaration.cpp:
529         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
530         * css/CSSParser.cpp:
531         (WebCore::isValidKeywordPropertyAndValue):
532         (WebCore::isKeywordPropertyID):
533         (WebCore::CSSParser::parseValue):
534         * css/CSSPrimitiveValue.cpp:
535         (WebCore::CSSPrimitiveValue::computeLengthDouble):
536         * css/CSSProperty.cpp:
537         (WebCore::CSSProperty::isInheritedProperty):
538         * css/CSSPropertyNames.in:
539         * css/StyleBuilder.cpp:
540         (WebCore::ApplyPropertyLineHeight::applyValue):
541         * css/StyleResolver.cpp:
542         (WebCore::StyleResolver::updateFont):
543         (WebCore::StyleResolver::applyProperties):
544         (WebCore::StyleResolver::applyProperty):
545         * css/StyleResolver.h:
546         (StyleResolver):
547         * css/svg.css:
548         * editing/EditingStyle.cpp:
549         * inspector/front-end/inspector.css:
550         (#console-messages):
551         * inspector/front-end/resourcesPanel.css:
552         (.storage-view.query):
553         * rendering/style/RenderStyle.cpp:
554         (WebCore::RenderStyle::diff):
555         * rendering/style/RenderStyle.h:
556         * rendering/style/StyleRareInheritedData.cpp:
557         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
558         (WebCore::StyleRareInheritedData::operator==):
559         * rendering/style/StyleRareInheritedData.h:
560         (StyleRareInheritedData):
561
562 2013-03-07  Joshua Bell  <jsbell@chromium.org>
563
564         IndexedDB: Use WeakPtr for Factory-to-BackingStore reference
565         https://bugs.webkit.org/show_bug.cgi?id=111459
566
567         Reviewed by Adam Barth.
568
569         IDBFactoryBackendImpl maintains a map of backing stores - if another database in the same
570         origin is opened, the backing store instance must be re-used). This was a map to raw
571         pointers so that the backing store can be collected when all database references are
572         dropped. The map was maintained manually by passing the factory to the IDBBackingStore which
573         would add/remove itself on creation/destruction.
574
575         Replace this with a HashMap<WeakPtr<>>. This simplifies the plumbing; map entries
576         "leak" but are purged on subsequent opens.
577
578         Added webkit_unit_test (Chromium port) to verify refcounts.
579
580         * Modules/indexeddb/IDBBackingStore.cpp:
581         (WebCore::IDBBackingStore::IDBBackingStore): No need to notify factory of lifetime.
582         (WebCore::IDBBackingStore::~IDBBackingStore): Ditto.
583         (WebCore::IDBBackingStore::open): Ditto.
584         * Modules/indexeddb/IDBBackingStore.h: No reference to the factory, but...
585         (WebCore::IDBBackingStore::createWeakPtr): Do need to expose weak pointers for the factory to hold.
586         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
587         (WebCore::cleanWeakMap): Helper function to scrub a HashMap<WeakPtr<T>> of empty pointers.
588         May move to WTF when we've learned how general it is, or come up with a dedicated WeakPtrHashMap type.
589         (WebCore::IDBFactoryBackendImpl::openBackingStore): WeakPtr fu.
590         * Modules/indexeddb/IDBFactoryBackendImpl.h:
591         (IDBFactoryBackendImpl): Remove plumbing methods.
592
593 2013-03-07  Otto Derek Cheung  <otcheung@rim.com>
594
595         [BlackBerry] RefCounting ParsedCookie to avoid SegFaults
596         https://bugs.webkit.org/show_bug.cgi?id=111761
597
598         Reviewed by Rob Buis.
599
600         Making necessary changes to ref count the ParsedCookie object.
601
602         Tested using the opera cookie test suite and the BB Browser cookie test suite.
603         Tested using the browser, visiting popular sites such as facebook, reddit, google etc
604         to ensure cookie functionality isn't changed.
605
606         * loader/blackberry/CookieJarBlackBerry.cpp:
607         (WebCore::getRawCookies):
608         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
609         (WebCore::CookieDatabaseBackingStore::insert):
610         (WebCore::CookieDatabaseBackingStore::update):
611         (WebCore::CookieDatabaseBackingStore::remove):
612         (WebCore::CookieDatabaseBackingStore::getCookiesFromDatabase):
613         (WebCore::CookieDatabaseBackingStore::invokeGetCookiesWithLimit):
614         (WebCore::CookieDatabaseBackingStore::invokeSendChangesToDatabase):
615         (WebCore::CookieDatabaseBackingStore::addToChangeQueue):
616         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
617         (CookieDatabaseBackingStore):
618         * platform/blackberry/CookieManager.cpp:
619         (WebCore::cookieSorter):
620         (WebCore::CookieManager::setCookies):
621         (WebCore::CookieManager::getCookie):
622         (WebCore::CookieManager::generateHtmlFragmentForCookies):
623         (WebCore::CookieManager::getRawCookies):
624         (WebCore::CookieManager::checkAndTreatCookie):
625         (WebCore::CookieManager::addCookieToMap):
626         (WebCore::CookieManager::getBackingStoreCookies):
627         (WebCore::CookieManager::findOrCreateCookieMap):
628         (WebCore::CookieManager::removeCookieWithName):
629         (WebCore::CookieManager::cookieLimitCleanUp):
630         * platform/blackberry/CookieManager.h:
631         * platform/blackberry/CookieMap.cpp:
632         (WebCore::CookieMap::addOrReplaceCookie):
633         (WebCore::CookieMap::removeCookieAtIndex):
634         (WebCore::CookieMap::removeCookie):
635         (WebCore::CookieMap::getAllCookies):
636         (WebCore::CookieMap::removeOldestCookie):
637         (WebCore::CookieMap::deleteAllCookiesAndDomains):
638         (WebCore::CookieMap::getAllChildCookies):
639         * platform/blackberry/CookieMap.h:
640         (CookieMap):
641         * platform/blackberry/CookieParser.cpp:
642         (WebCore):
643         (WebCore::CookieParser::parse):
644         (WebCore::CookieParser::parseOneCookie):
645         * platform/blackberry/CookieParser.h:
646         (CookieParser):
647         * platform/blackberry/ParsedCookie.cpp:
648         * platform/blackberry/ParsedCookie.h:
649         (ParsedCookie):
650         (WebCore::ParsedCookie::create):
651
652 2013-03-07  Aaron Colwell  <acolwell@chromium.org>
653
654         Heap-use-after-free in WebCore::HTMLMediaElement::~HTMLMediaElement
655         https://bugs.webkit.org/show_bug.cgi?id=110623
656
657         Reviewed by Kentaro Hara.
658
659         Test: http/tests/misc/delete-frame-during-readystatechange-with-gc-after-video-removal.html
660
661         * bindings/v8/V8GCController.cpp: Fix MinorGCWrapperVisitor so it doesn't collect ActiveDOMObjects
662                                           that have pending activity.
663         * html/HTMLAudioElement.h:
664         (HTMLAudioElement): Removed hasPendingActivity() now that this is handled by the base class.
665         * html/HTMLAudioElement.idl: Removed ActiveDOMObject annotation since HTMLMediaElement now has it.
666         * html/HTMLMediaElement.cpp:
667         (WebCore::HTMLMediaElement::hasPendingActivity): Update implementation to return true if the media
668                                                          has audio and is playing. This brings the code into
669                                                          compliance with the detached element behavior outlined
670                                                          in the HTML5 spec.
671         * html/HTMLMediaElement.idl: Added ActiveDOMObject annotation so that all derived classes are
672                                      considered ActiveDOMObjects.
673
674 2013-03-07  Jeffrey Pfau  <jpfau@apple.com>
675
676         CFNetwork cache partitioning does not work properly on subdomains
677         https://bugs.webkit.org/show_bug.cgi?id=111772
678
679         Reviewed by David Kilzer.
680
681         Ensure that the cache partitioning is done over the top privately-controlled domain for the NSURLRequest.
682
683         Not possible to test with current automated test tools, must be tested manually.
684
685         * loader/cache/MemoryCache.cpp: Remove extraneous calls to partitionName
686         (WebCore):
687         (WebCore::MemoryCache::add):
688         (WebCore::MemoryCache::revalidationSucceeded):
689         (WebCore::MemoryCache::resourceForRequest):
690         (WebCore::MemoryCache::evict):
691         (WebCore::MemoryCache::removeResourcesWithOrigin):
692         * platform/network/cf/ResourceRequest.h: Put top privately-controlled domain reduction code into ResourceRequest::partitionName
693         (ResourceRequest):
694         (WebCore::ResourceRequest::cachePartition):
695         (WebCore::ResourceRequest::setCachePartition): Pre-process the partition name
696         * platform/network/cf/ResourceRequestCFNet.cpp:
697         (WebCore):
698         (WebCore::ResourceRequest::partitionName):
699         * platform/network/mac/ResourceRequestMac.mm:
700         (WebCore::ResourceRequest::doUpdatePlatformRequest): Use a UTF-8 version of the cache partition name
701
702 2013-03-07  Kenneth Russell  <kbr@google.com>
703
704         Compute WebGL context attributes from DrawingBuffer when it is used
705         https://bugs.webkit.org/show_bug.cgi?id=111666
706
707         Reviewed by James Robinson.
708
709         Fixed computation of antialias flag when DrawingBuffer is used.
710
711         No new tests; covered by existing tests. Ran WebGL conformance
712         tests on desktop Linux and Android to test.
713
714         * html/canvas/WebGLRenderingContext.cpp:
715         (WebCore):
716         (WebCore::WebGLRenderingContext::getContextAttributes):
717             Query DrawingBuffer, when used, for antialias flag.
718
719 2013-03-07  Beth Dakin  <bdakin@apple.com>
720
721         Need API to draw custom overhang area
722         https://bugs.webkit.org/show_bug.cgi?id=111679
723         -and corresponding-
724         <rdar://problem/13291415>
725
726         Reviewed by Simon Fraser.
727
728         This will allow clients to put custom images into the top or bottom overhang area.
729
730         New FrameView API takes a bool indicating whether the client wants a top/bottom 
731         overhang layer. If the bool is true, the overhang layer will be returned. 
732         * WebCore.exp.in:
733         * page/FrameView.cpp:
734         (WebCore::FrameView::setWantsLayerForTopOverHangArea):
735         (WebCore::FrameView::setWantsLayerForBottomOverHangArea):
736         * page/FrameView.h:
737         (FrameView):
738
739         Keep member variables for the top and bottom overhang layers. Create them if 
740         necessary, and update them if the root layer changes.
741         * rendering/RenderLayerCompositor.cpp:
742         (WebCore::RenderLayerCompositor::updateRootLayerPosition):
743         (WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
744         (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
745         (WebCore::RenderLayerCompositor::reportMemoryUsage):
746         * rendering/RenderLayerCompositor.h:
747         (RenderLayerCompositor):
748
749 2013-03-07  Gavin Barraclough  <barraclough@apple.com>
750
751         Reduce page cache size on Mac
752         https://bugs.webkit.org/show_bug.cgi?id=111795
753
754         Rubber stamped by Geoff Garen
755
756         5 entries is unnecessarily large; research show 3 should suffice.
757         On a low memory warning we should clear this completely.
758
759         * platform/mac/MemoryPressureHandlerMac.mm:
760         (WebCore::MemoryPressureHandler::releaseMemory):
761             - clear the page cache completely
762
763 2013-03-07  Simon Fraser  <simon.fraser@apple.com>
764
765         Rename Mac's TileCache to TileController, and WebTileCacheLayer to WebTiledBackingLayer
766         https://bugs.webkit.org/show_bug.cgi?id=111779
767
768         Reviewed by Tim Horton.
769         
770         "TileCache" was a name conflict in downstream code, so rename it to TileController.
771         The layer that has a TileController is now a WebTiledBackingLayer (which fits with
772         the TiledBacking API that TileController exposes).
773         
774         Also renamed the flags in PlatformCALayer to match.
775
776         Rename only, no behavior change.
777
778         * WebCore.xcodeproj/project.pbxproj:
779         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
780         (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
781         * platform/graphics/GraphicsLayerClient.h:
782         (WebCore::GraphicsLayerClient::shouldUseTiledBacking):
783         * platform/graphics/ca/GraphicsLayerCA.cpp:
784         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
785         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
786         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter):
787         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
788         (WebCore::GraphicsLayerCA::updateVisibleRect):
789         (WebCore::GraphicsLayerCA::getDebugBorderInfo):
790         (WebCore::GraphicsLayerCA::requiresTiledLayer):
791         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
792         * platform/graphics/ca/GraphicsLayerCA.h:
793         * platform/graphics/ca/PlatformCALayer.h:
794         (WebCore::PlatformCALayer::usesTiledBackingLayer):
795         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
796         (PlatformCALayer::PlatformCALayer):
797         (PlatformCALayer::~PlatformCALayer):
798         (PlatformCALayer::tiledBacking):
799         * platform/graphics/ca/mac/TileController.h: Renamed from Source/WebCore/platform/graphics/ca/mac/TileCache.h.
800         * platform/graphics/ca/mac/WebTileLayer.h:
801         (TileController):
802         * platform/graphics/ca/mac/WebTileLayer.mm:
803         (-[WebTileLayer drawInContext:]):
804         (-[WebTileLayer setTileController:WebCore::]):
805         (-[WebTileLayer logFilledFreshTile]):
806         * platform/graphics/ca/mac/WebTiledBackingLayer.h: Renamed from Source/WebCore/platform/graphics/ca/mac/WebTileCacheLayer.h.
807         * platform/graphics/ca/mac/WebTiledBackingLayer.mm: Renamed from Source/WebCore/platform/graphics/ca/mac/WebTileCacheLayer.mm.
808         * platform/graphics/mac/WebLayer.mm:
809         (drawLayerContents):
810         * rendering/RenderLayerBacking.cpp:
811         (WebCore::RenderLayerBacking::RenderLayerBacking):
812         (WebCore::RenderLayerBacking::shouldUseTiledBacking):
813         (WebCore::RenderLayerBacking::adjustTiledBackingCoverage):
814         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
815         * rendering/RenderLayerBacking.h:
816         (WebCore::RenderLayerBacking::usingTiledBacking):
817         (RenderLayerBacking):
818         (WebCore::RenderLayerBacking::hasTiledBackingFlatteningLayer):
819         * rendering/RenderLayerCompositor.cpp:
820         (WebCore::RenderLayerCompositor::frameViewDidLayout):
821         (WebCore::RenderLayerCompositor::rootFixedBackgroundsChanged):
822         (WebCore::RenderLayerCompositor::supportsFixedRootBackgroundCompositing):
823
824 2013-03-07  Alexey Proskuryakov  <ap@apple.com>
825
826         FormData should allow setting filename to empty
827         https://bugs.webkit.org/show_bug.cgi?id=111687
828
829         Reviewed by Brady Eidson.
830
831         Tests: http/tests/local/formdata/send-form-data-with-empty-blob-filename.html
832                http/tests/local/formdata/send-form-data-with-empty-file-filename.html
833
834         * platform/network/FormData.cpp: (WebCore::FormData::appendKeyValuePairItems):
835         Missing value is a null string. If the string is empty, we should treat is as
836         authoritative.
837
838 2013-03-07  David Hyatt  <hyatt@apple.com>
839
840         REGRESSION: fast/border/border-fit-2.html needs updating
841         https://bugs.webkit.org/show_bug.cgi?id=111776
842
843         Reviewed by Simon Fraser.
844
845         This test is incorrectly shrinking the border image now.
846         We need to apply some clamping to the border-fit like the
847         old code did. The pixel results *are* still changing though,
848         since a layout-time shrinkage will not result in right-aligned
849         boxes in an LTR block when the left edge gets chopped. We'll
850         have to see if this behavioral change ends up being a problem,
851         but for now we'll rebaseline and assume it will be ok.
852
853         * rendering/RenderBlock.cpp:
854         (WebCore::RenderBlock::fitBorderToLinesIfNeeded):
855
856 2013-03-07  Antoine Quint  <graouts@apple.com>
857
858         Web Inspector: provide reasons why a layer was composited in the LayerTreeAgent
859         https://bugs.webkit.org/show_bug.cgi?id=111703
860
861         Introduce a new LayerTree.reasonsForCompositingLayer(layerId) method which returns
862         the list of reasons why the provided layer was composited as an object with an
863         optional property for each possible reason. The RenderLayerCompositor already knows
864         how to provide this information via its own reasonsForCompositing() method, and we
865         process the returned bitmask to populate the object sent to the front-end.
866
867         Reviewed by Timothy Hatcher.
868
869         Test: inspector-protocol/layers/layers-compositing-reasons.html
870
871         * inspector/Inspector.json:
872         * inspector/InspectorLayerTreeAgent.cpp:
873         (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
874         (WebCore):
875         * inspector/InspectorLayerTreeAgent.h:
876         (InspectorLayerTreeAgent):
877
878 2013-03-07  Anders Carlsson  <andersca@apple.com>
879
880         Add a didFocusTextField callback to the injected bundle form client
881         https://bugs.webkit.org/show_bug.cgi?id=111771
882
883         Reviewed by Andreas Kling.
884
885         Export a symbol needed by WebKit2.
886
887         * WebCore.exp.in:
888
889 2013-03-06  James Robinson  <jamesr@chromium.org>
890
891         [chromium] Stop using WebTransformationMatrix on WebLayer
892         https://bugs.webkit.org/show_bug.cgi?id=111635
893
894         Reviewed by Adrienne Walker.
895
896         Switches over to the SkMatrix44 transform setters.
897
898         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
899         (WebCore::transformToSkMatrix44):
900           Utility for convering a WebCore::TransformationMatrix to an SkMatrix44.
901           Will move to a more common location once it gets more callers.
902         (WebCore::GraphicsLayerChromium::updateTransform):
903         (WebCore::GraphicsLayerChromium::updateChildrenTransform):
904
905 2013-03-07  Eric Carlson  <eric.carlson@apple.com>
906
907         [Mac] allow iOS to use CaptionUserPreferencesMac
908         https://bugs.webkit.org/show_bug.cgi?id=111770
909
910         Reviewed by Dean Jackson.
911
912         No new tests, covered by existing tests.
913
914         * page/CaptionUserPreferencesMac.h:
915         * page/CaptionUserPreferencesMac.mm:
916         (WebCore::userCaptionPreferencesChangedNotificationCallback): Respond to notifications on
917             the web thread.
918
919 2013-03-07  Mike West  <mkwst@chromium.org>
920
921         Move side-effects on hover/active state out of hit-testing
922         https://bugs.webkit.org/show_bug.cgi?id=98168
923
924         Reviewed by Julien Chaffraix.
925
926         Original patch by Allan Sandfeld Jensen; I'm just tweaking things.
927
928         Document::updateHoverActiveState is currently called during hit testing
929         to update the hover and active states of elements effected by mouse
930         movements (or their keyboard equivalents). This conflates the hit test
931         algorithm itself with side-effects associated with specific use-cases.
932
933         This conflation makes it very difficult to reuse the hover/active logic
934         for things other than hit testing. 'mouseenter'/'mouseleave' events[1]
935         are one example of a feature that would be simple to implement on top of
936         this existing logic if we split it out from the hit testing path, and
937         instead call it explicitly when necessary. An explicit split between
938         hit testing and its side-effects will also enable us to simplify the
939         logic in future patches with well-named parameters, rather than relying
940         on stuffing properties into HitTestRequest.
941
942         This patch drops the call to Document::updateHoverActiveState from
943         RenderView::hitTest, and adjusts the three call-sites in EventHandler
944         to explicitly call out to it rather than Document::updateStyleIfNeeded.
945         The latter call is still necessary but has been folded into
946         updateHoverActiveState, as the former is never called without calling
947         the latter.
948
949         [1]: http://wkbug.com/18930
950
951         * dom/Document.h:
952         * dom/Document.cpp:
953         (WebCore::Document::updateHoverActiveState):
954             First, this function must now only be called from contexts that were
955             performing a read/write hit-test: the code asserts this
956             precondition.
957
958             Second, rather than accepting a HitTestResult, the function accepts
959             an Element* from which to begin the hover/active chain changes.
960
961             Third, we have to explicitly update the hover/active states for
962             documents between the updated element and the top-level document.
963             The hit-testing logic was taking care of this for us, now we need to
964             take care of it ourselves.
965
966             Fourth, call out to updateStyleIfNeeded rather than making our
967             caller do so. The calls were always paired; now that's explicit.
968         (WebCore::Document::prepareMouseEvent):
969         * page/EventHandler.cpp:
970         (WebCore::EventHandler::hitTestResultAtPoint):
971         (WebCore::EventHandler::sendContextMenuEventForKey):
972         (WebCore::EventHandler::hoverTimerFired):
973             Call out to updateHoverActiveState rather than updateStyleIfNeeded.
974         * rendering/RenderView.cpp:
975         (WebCore::RenderView::hitTest):
976             Drop the call to updateHoverActiveState.
977
978 2013-03-07  Sheriff Bot  <webkit.review.bot@gmail.com>
979
980         Unreviewed, rolling out r145097.
981         http://trac.webkit.org/changeset/145097
982         https://bugs.webkit.org/show_bug.cgi?id=111765
983
984         Triggers an ASSERT in the Chromium port (Requested by abarth
985         on #webkit).
986
987         * html/FileInputType.cpp:
988         (WebCore::FileInputType::appendFormData):
989         * platform/network/FormData.cpp:
990         (WebCore::FormData::appendKeyValuePairItems):
991
992 2013-03-07  Chris Fleizach  <cfleizach@apple.com>
993
994         AX: Can't activate links with VoiceOver in Safari
995         https://bugs.webkit.org/show_bug.cgi?id=111755
996
997         Reviewed by Tim Horton.
998
999         VoiceOver is relying on the press action being the first action in the list. We changed
1000         that order inadvertently recently, which confuses VoiceOver.
1001
1002         Test: platform/mac/accessibility/press-action-is-first.html
1003
1004         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
1005         (-[WebAccessibilityObjectWrapper accessibilityActionNames]):
1006
1007 2013-03-07  Rafael Weinstein  <rafaelw@chromium.org>
1008
1009         Unreviewed, rolling out r145083.
1010         http://trac.webkit.org/changeset/145083
1011         https://bugs.webkit.org/show_bug.cgi?id=110733
1012
1013         caused lots crashes in http/tests/security/xssAuditor/* tests
1014
1015         * html/parser/XSSAuditor.cpp:
1016         (WebCore::XSSAuditor::XSSAuditor):
1017         (WebCore::XSSAuditor::init):
1018         (WebCore::XSSAuditor::filterToken):
1019         * html/parser/XSSAuditor.h:
1020         * html/parser/XSSAuditorDelegate.cpp:
1021         (WebCore::XSSAuditorDelegate::didBlockScript):
1022         * html/parser/XSSAuditorDelegate.h:
1023         (WebCore::XSSInfo::create):
1024         (XSSInfo):
1025         (WebCore::XSSInfo::XSSInfo):
1026
1027 2013-03-07  Michelangelo De Simone  <michelangelo@webkit.org>
1028
1029         [CSS Shaders] Implement hue and saturation non-separable blend modes
1030         https://bugs.webkit.org/show_bug.cgi?id=109464
1031
1032         Added the following GLSL helper functions to the CustomFilterValidatedProgram:
1033
1034             - css_Sat(C): returns the saturation for the color C
1035             - css_SetSat(C, s): sets the saturation s on the color C
1036             - css_SetSatHelper(Cmin, Cmid, Cmax, s): helper function for css_SetSat
1037
1038         The above functions are being used for the "hue" and "saturation" non-separable
1039         blend modes, the relevant spec for such modes is at URL:
1040         https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnonseparable
1041
1042         Reviewed by Dean Jackson.
1043
1044         Tests: css3/filters/custom/custom-filter-nonseparable-blend-mode-hue.html
1045                css3/filters/custom/custom-filter-nonseparable-blend-mode-saturation.html
1046
1047         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
1048         (WebCore::CustomFilterValidatedProgram::blendFunctionString):
1049
1050 2013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
1051
1052         Web Inspector: [ACE] set correct font
1053         https://bugs.webkit.org/show_bug.cgi?id=111747
1054
1055         Reviewed by Pavel Feldman.
1056
1057         No new tests.
1058
1059         Set class "source-code" for the ace editor element.
1060
1061         * inspector/front-end/AceTextEditor.js:
1062         (WebInspector.AceTextEditor):
1063
1064 2013-03-06  Ojan Vafai  <ojan@chromium.org>
1065
1066         Recalculate borders at the beginning of table layout
1067         https://bugs.webkit.org/show_bug.cgi?id=111634
1068
1069         Reviewed by Julien Chaffraix.
1070
1071         Doing it in convertStyleLogicalWidthToComputedWidth missed some dynamic
1072         relayout cases. I confirmed that the new results match the results we
1073         would get if we set the border width initially instead of dynamically.
1074
1075         * rendering/RenderTable.cpp:
1076         (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
1077         (WebCore::RenderTable::layout):
1078
1079 2013-03-07  David Hyatt  <hyatt@apple.com>
1080
1081         border-fit-adjust should happen at layout time rather than paint time
1082         https://bugs.webkit.org/show_bug.cgi?id=111606
1083         <rdar://problem/13101714>
1084
1085         Reviewed by Antti Koivisto.
1086
1087         In order for border-fit-adjust to be accurate in more cases, it needs
1088         to be a layout-time adjustment rather than a paint-time adjustment.
1089         Specifically there are cases where an LTR adjusted box was right-aligned
1090         by its container, and without genuinely shrinking the size of the box,
1091         we end up chopping off the right edge but not shifting the box to the
1092         right to compensate.
1093         
1094         This patch changes border-fit-adjust to now do the adjustment using
1095         the override width mechanism and a second layout pass instead of just
1096         hacking painting.
1097
1098         Test: fast/block/border-fit-with-right-alignment.html
1099
1100         * rendering/RenderBlock.cpp:
1101         (WebCore::RenderBlock::layoutBlock):
1102         Calls fitBorderToLinesIfNeeded at the end of layout to do a second
1103         layout pass if the adjustment needs to be made.
1104
1105         (WebCore::RenderBlock::fitBorderToLinesIfNeeded):
1106         Renamed borderFitAdjust to fitBorderToLinesIfNeeded and made it
1107         non-virtual, since it's no longer called from RenderBox code. Changed it
1108         to do a relayout using override widths if an adjustment is needed.
1109
1110         * rendering/RenderBlock.h:
1111         (RenderBlock):
1112         Renamed borderFitAdjust to fitBorderToLinesIfNeeded and made it
1113         non-virtual.
1114
1115         * rendering/RenderBox.cpp:
1116         (WebCore::RenderBox::paintBoxDecorations):
1117         (WebCore::RenderBox::paintMask):
1118         Removed the paint-time border-fit adjustment.
1119
1120         (WebCore::RenderBox::computeLogicalWidthInRegion):
1121         Use the override width when border-fit is set to lines.
1122
1123         * rendering/RenderBox.h:
1124         (RenderBox):
1125         Remove the virtual borderFitAdjust method.
1126
1127 2013-03-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1128
1129         REGRESSION(r143727): Clicking / selecting inside an <embed> is broken
1130         https://bugs.webkit.org/show_bug.cgi?id=111217
1131
1132         Reviewed by Julien Chaffraix.
1133
1134         Hit-testing into child frames need to happen in RenderPart, otherwise
1135         we will miss frame views in <embed> and <object> elements. 
1136
1137         Test: fast/dom/nodesFromRect/nodesFromRect-embedded-frame-content.html
1138
1139         * rendering/RenderFrameBase.cpp:
1140         * rendering/RenderFrameBase.h:
1141         (RenderFrameBase):
1142         * rendering/RenderPart.cpp:
1143         (WebCore::RenderPart::nodeAtPoint):
1144         * rendering/RenderPart.h:
1145         (RenderPart):
1146
1147 2013-03-07  Alexey Proskuryakov  <ap@apple.com>
1148
1149         FormData should allow setting filename to empty
1150         https://bugs.webkit.org/show_bug.cgi?id=111687
1151
1152         Reviewed by Brady Eidson.
1153
1154         Tests: http/tests/local/formdata/send-form-data-with-empty-blob-filename.html
1155                http/tests/local/formdata/send-form-data-with-empty-file-filename.html
1156
1157         * html/FileInputType.cpp: (WebCore::FileInputType::appendFormData):
1158         Use a Blob for empty file input, not a hacky File with empty path.
1159
1160         * platform/network/FormData.cpp: (WebCore::FormData::appendKeyValuePairItems):
1161         Missing value is a null string. If the string is empty, we should treat is as
1162         authoritative.
1163
1164 2013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
1165
1166         Web Inspector: [CodeMirror] dublicated horizontal scroll
1167         https://bugs.webkit.org/show_bug.cgi?id=111712
1168
1169         Reviewed by Pavel Feldman.
1170
1171         Set a box-sizing css property on all codemirror elements to
1172         "content-box".
1173
1174         No new tests.
1175
1176         * inspector/front-end/cm/cmdevtools.css:
1177         (.CodeMirror *):
1178
1179 2013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
1180
1181         Web Inspector: Styles sidebar pane toolbar disappears in horizontal split mode.
1182         https://bugs.webkit.org/show_bug.cgi?id=111735
1183
1184         Reviewed by Pavel Feldman.
1185
1186         * inspector/front-end/ElementsPanel.js:
1187         (WebInspector.ElementsPanel.prototype._splitVertically):
1188         * inspector/front-end/elementsPanel.css:
1189         (.sidebar-pane.composite .metrics-and-computed .sidebar-pane-toolbar):
1190
1191 2013-03-07  Zan Dobersek  <zdobersek@igalia.com>
1192
1193         [GTK] Limit the supported compilers to GCC >= 4.7 and Clang >= 3.0
1194         https://bugs.webkit.org/show_bug.cgi?id=109932
1195
1196         Reviewed by Martin Robinson.
1197
1198         * GNUmakefile.am: Replace references to SYMBOL_VISIBILITY_INLINES and SYMBOL_VISIBILITY variables with the actual flags.
1199         They are now available by default due to the limited set of supported compilers.
1200         * bindings/gobject/GNUmakefile.am: Ditto.
1201
1202 2013-03-07  Mike West  <mkwst@chromium.org>
1203
1204         XSSAuditor should send only one console error when blocking a page.
1205         https://bugs.webkit.org/show_bug.cgi?id=110733
1206
1207         Reviewed by Daniel Bates.
1208
1209         Currently, we send two console errors when XSSAuditor blocks a page:
1210         "Refused to execute a JavaScript script. Source code of script found
1211         within request.\n", and "Entire page will be blocked.".
1212
1213         We should only send one message, tuning it properly for the context, and
1214         including the URL of the page effected by the XSSAuditor's work.
1215
1216         Covered by rebaselines of all the XSSAuditor and 'reflected-xss' tests.
1217
1218         * html/parser/XSSAuditor.cpp:
1219         * html/parser/XSSAuditor.h:
1220         (WebCore::XSSAuditor::XSSAuditor):
1221             Add two booleans to track the headers used to set the XSSAuditor state.
1222         (WebCore::XSSAuditor::init):
1223             Save a copy of the document's URL even if we're not generating a
1224             report upon violation: we'll need it for the console messages. Also
1225             populate the didSendValidXXXHeader booleans for use later.
1226         (WebCore::XSSAuditor::filterToken):
1227             Add detail about the header status to the constructed XSSInfo object.
1228         * html/parser/XSSAuditorDelegate.cpp:
1229         (WebCore::buildConsoleError):
1230             Move message construction out into a separate inlined function, as
1231             it's becoming complex.
1232         (WebCore::XSSAuditorDelegate::didBlockScript):
1233             Fold the "Entire page will be blocked" message into the main console
1234             error.
1235         * html/parser/XSSAuditorDelegate.h:
1236         (WebCore::XSSInfo::create):
1237         (WebCore::XSSInfo::XSSInfo):
1238             Add detail about header status to XSSInfo in order to correctly
1239             construct the console error.
1240
1241 2013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
1242
1243         Web Inspector: Add some more compilation annotations to NavigatorView
1244         https://bugs.webkit.org/show_bug.cgi?id=111730
1245
1246         Reviewed by Alexander Pavlov.
1247
1248         * inspector/front-end/NavigatorView.js:
1249
1250 2013-03-06  Gustavo Noronha Silva  <gns@gnome.org>
1251
1252         [GTK] Enable translations for WebKit2
1253         https://bugs.webkit.org/show_bug.cgi?id=111398
1254
1255         Reviewed by Martin Robinson.
1256
1257         Build change only, thus no tests.
1258
1259         * GNUmakefile.am: distribute po files.
1260         * platform/gtk/po/POTFILES.in: adjust paths for translatable files.
1261
1262 2013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
1263
1264         Web Inspector: [CodeMirror] update codemirror to version 3.1
1265         https://bugs.webkit.org/show_bug.cgi?id=111711
1266
1267         Reviewed by Vsevolod Vlasov.
1268
1269         Update code mirror experimental editor to version 3.1
1270
1271         No new tests.
1272
1273         * inspector/front-end/cm/codemirror.css:
1274         (.CodeMirror div.CodeMirror-cursor):
1275         (.CodeMirror div.CodeMirror-secondarycursor):
1276         (.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor):
1277         (.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor:not(#nonsense_id)):
1278         (.CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite):
1279         (.CodeMirror-gutters):
1280         (.CodeMirror-linewidget):
1281         (.CodeMirror-widget):
1282         (.CodeMirror-focused div.CodeMirror-cursor):
1283         (@media print):
1284         * inspector/front-end/cm/codemirror.js:
1285         (window.CodeMirror):
1286         (window.CodeMirror.):
1287
1288 2013-03-07  Sergio Correia  <sergio.correia@openbossa.org>
1289
1290         OpenGLShims: fix check for ANGLE GLES2 extensions
1291         https://bugs.webkit.org/show_bug.cgi?id=111656
1292
1293         Reviewed by Simon Hausmann.
1294
1295         The check for ANGLE GLES2 extensions is currently being overriden
1296         with checks for APPLE extensions in lookupOpenGLFunctionAddress().
1297
1298         No new tests. No user visible behavior changed.
1299
1300         * platform/graphics/OpenGLShims.cpp:
1301         (WebCore::lookupOpenGLFunctionAddress):
1302
1303 2013-03-07  David Kilzer  <ddkilzer@apple.com>
1304
1305         Rename visible_units.h to VisibleUnits.h in WebCore.vcxproj.filters
1306         <http://webkit.org/b/111426>
1307
1308         * WebCore.vcxproj/WebCore.vcxproj.filters: Rename visible_units.h
1309         to VisibleUnits.h and re-sort.
1310
1311 2013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
1312
1313         Web Inspector: Support a shortcut for reloading front-end in debug mode.
1314         https://bugs.webkit.org/show_bug.cgi?id=111709
1315
1316         Reviewed by Pavel Feldman.
1317
1318         * inspector/front-end/buildSystemOnly.js:
1319         * inspector/front-end/inspector.js:
1320         (WebInspector.documentKeyDown):
1321
1322 2013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
1323
1324         Web Inspector: Support setting up file system mappings from scripts panel context menu.
1325         https://bugs.webkit.org/show_bug.cgi?id=111583
1326
1327         Reviewed by Pavel Feldman.
1328
1329         Added context menu items to set up network - file system mappings from sources panel.
1330         Implemented mapping add/remove methods on Workspace.
1331         Added a dialog suggesting to reload front-end after making such changes.
1332
1333         * English.lproj/localizedStrings.js:
1334         * inspector/front-end/FileSystemMapping.js:
1335         (WebInspector.FileSystemMappingImpl.prototype.fileSystemPath):
1336         * inspector/front-end/FileSystemProjectDelegate.js:
1337         (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
1338         (WebInspector.FileSystemWorkspaceProvider.prototype.fileSystemPath):
1339         * inspector/front-end/FilteredItemSelectionDialog.js:
1340         (WebInspector.FilteredItemSelectionDialog.prototype.onEnter):
1341         (WebInspector.FilteredItemSelectionDialog.prototype.setQuery):
1342         (WebInspector.SelectUISourceCodeDialog):
1343         (WebInspector.SelectUISourceCodeDialog.prototype.uiSourceCodeSelected):
1344         (WebInspector.SelectUISourceCodeDialog.prototype.filterProject):
1345         (WebInspector.SelectUISourceCodeDialog.prototype.filterUISourceCode):
1346         (WebInspector.SelectUISourceCodeDialog.prototype.selectItem):
1347         (WebInspector.SelectUISourceCodeDialog.prototype._uiSourceCodeAdded):
1348         (WebInspector.OpenResourceDialog):
1349         (WebInspector.OpenResourceDialog.prototype.uiSourceCodeSelected):
1350         (WebInspector.OpenResourceDialog.prototype.filterProject):
1351         (WebInspector.SelectUISourceCodeForProjectTypeDialog):
1352         (WebInspector.SelectUISourceCodeForProjectTypeDialog.prototype.uiSourceCodeSelected):
1353         (WebInspector.SelectUISourceCodeForProjectTypeDialog.prototype.filterProject):
1354         (WebInspector.SelectUISourceCodeForProjectTypeDialog.show):
1355         * inspector/front-end/ScriptsPanel.js:
1356         (WebInspector.ScriptsPanel.prototype._mapFileSystemToNetwork.mapFileSystemToNetwork):
1357         (WebInspector.ScriptsPanel.prototype._mapFileSystemToNetwork):
1358         (WebInspector.ScriptsPanel.prototype._removeNetworkMapping):
1359         (WebInspector.ScriptsPanel.prototype._mapNetworkToFileSystem.mapNetworkToFileSystem):
1360         (WebInspector.ScriptsPanel.prototype._mapNetworkToFileSystem):
1361         (WebInspector.ScriptsPanel.prototype.):
1362         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeMappingItems):
1363         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
1364         * inspector/front-end/SettingsScreen.js:
1365         (WebInspector.WorkspaceSettingsTab):
1366         (WebInspector.WorkspaceSettingsTab.prototype.wasShown):
1367         (WebInspector.WorkspaceSettingsTab.prototype._reset):
1368         * inspector/front-end/ViewportControl.js:
1369         (WebInspector.ViewportControl.prototype.refresh):
1370         * inspector/front-end/Workspace.js:
1371         (WebInspector.Workspace.prototype.addMapping):
1372         (WebInspector.Workspace.prototype.removeMapping):
1373         * inspector/front-end/externs.js:
1374         (WebInspector.suggestReload):
1375         * inspector/front-end/inspector.js:
1376         (WebInspector.suggestReload):
1377
1378 2013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
1379
1380         Web Inspector: Add support for frontend reloading
1381         https://bugs.webkit.org/show_bug.cgi?id=111727
1382
1383         Reviewed by Pavel Feldman.
1384
1385         This patch adds support for frontend reloading including:
1386           - making sure no messages are sent to backend once frontend started reloading
1387           - updating frontend url with up-to-date dockSide query parameter value.
1388
1389         * inspector/front-end/InspectorBackend.js:
1390         (InspectorBackendClass.prototype.sendMessageObjectToBackend):
1391         (InspectorBackendClass.prototype.disconnect):
1392         * inspector/front-end/externs.js:
1393         (WebInspector.reload):
1394         * inspector/front-end/inspector.js:
1395         (WebInspector.reload):
1396
1397 2013-03-07  Alexei Filippov  <alph@chromium.org>
1398
1399         Web Inspector: Change profile start button caption depending on profile type.
1400         https://bugs.webkit.org/show_bug.cgi?id=111698
1401
1402         Change the start profiling button caption to "Snapshot" for
1403         snapshot-like profile types, e.g. JS heap snapshot, native memory snapshot.
1404
1405         Reviewed by Yury Semikhatsky.
1406
1407         * English.lproj/localizedStrings.js:
1408         * inspector/front-end/HeapSnapshotView.js:
1409         (WebInspector.HeapSnapshotProfileType.prototype.isInstantProfile):
1410         * inspector/front-end/NativeMemorySnapshotView.js:
1411         (WebInspector.NativeSnapshotProfileType.prototype.isInstantProfile):
1412         (WebInspector.NativeMemoryProfileType.prototype.isInstantProfile):
1413         * inspector/front-end/ProfileLauncherView.js:
1414         (WebInspector.ProfileLauncherView):
1415         (WebInspector.ProfileLauncherView.prototype.addProfileType):
1416         (WebInspector.ProfileLauncherView.prototype._updateControls):
1417         (WebInspector.MultiProfileLauncherView.prototype._updateControls):
1418         (WebInspector.MultiProfileLauncherView.prototype._profileTypeChanged):
1419         * inspector/front-end/ProfilesPanel.js:
1420         (WebInspector.ProfileType.prototype.isInstantProfile):
1421
1422 2013-03-07  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
1423
1424         [texmap] Remove direct access to clip state from clip stack
1425         https://bugs.webkit.org/show_bug.cgi?id=111630
1426
1427         Reviewed by Allan Sandfeld Jensen.
1428
1429         As we are now monitoring the clip state from
1430         TextureMapperGL/BitmapTextureGL, have direct access to clip state object
1431         would eventually make it dirty without properly setting the
1432         'clipStateDirty' flag. This bug intends to substitute direct access with
1433         auxiliary functions which would set the clip state dirty when necessary.
1434
1435         No new tests. No user visible behavior changed.
1436
1437         * platform/graphics/texmap/TextureMapperGL.cpp:
1438         (WebCore::TextureMapperGL::ClipStack::intersect):
1439         (WebCore::TextureMapperGL::ClipStack::setStencilIndex):
1440         (WebCore::TextureMapperGL::drawBorder):
1441         (WebCore::TextureMapperGL::drawTexture):
1442         (WebCore::TextureMapperGL::beginScissorClip):
1443         (WebCore::TextureMapperGL::beginClip):
1444         Replaced direct access with auxiliary functions.
1445
1446         * platform/graphics/texmap/TextureMapperGL.h:
1447         (ClipStack): Removed ClipStack::current() function.
1448         (WebCore::TextureMapperGL::ClipStack::getStencilIndex): Added.
1449         (WebCore::TextureMapperGL::ClipStack::isCurrentScissorBoxEmpty): Added.
1450
1451 2013-03-07  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
1452
1453         [Texturemapper] transform-style 'flat' value is broken
1454         https://bugs.webkit.org/show_bug.cgi?id=111566
1455
1456         Reviewed by Allan Sandfeld Jensen.
1457
1458         After changes from r144290, the CSS3 'transform-styles' property, when
1459         used with 'flat' value, resulted in non-stenciled rendering inside
1460         clipped area - vide example from Surfin' Safari blog:
1461         https://www.webkit.org/blog-files/3d-transforms/transform-style.html
1462
1463         This patch forces the clip state to be applied when binding the default
1464         surface.
1465
1466         No new tests. No user visible behavior changed.
1467
1468         * platform/graphics/texmap/TextureMapperGL.cpp:
1469         (WebCore::TextureMapperGL::ClipStack::apply):
1470         (WebCore::TextureMapperGL::ClipStack::applyIfNeeded): Added.
1471         Moved state cache check from apply() to applyIfNeeded().
1472
1473         (WebCore::BitmapTextureGL::clearIfNeeded):
1474         (WebCore::BitmapTextureGL::bind):
1475         (WebCore::TextureMapperGL::beginScissorClip):
1476         (WebCore::TextureMapperGL::beginClip):
1477         (WebCore::TextureMapperGL::endClip):
1478         * platform/graphics/texmap/TextureMapperGL.h:
1479         (ClipStack):
1480         Use applyIfNeeded() to check for clip state before clipping.
1481
1482 2013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
1483
1484         Web Inspector: refactoring: move TextEditorModel.Indent enum into TextUtils
1485         https://bugs.webkit.org/show_bug.cgi?id=111715
1486
1487         Reviewed by Pavel Feldman.
1488
1489         Move WebInspector.TextEditorModel.Indent into WebInspector.TextUtils namespace.
1490
1491         No new tests: no change in behaviour.
1492
1493         * inspector/front-end/SettingsScreen.js:
1494         (WebInspector.GenericSettingsTab):
1495         * inspector/front-end/TextEditorModel.js:
1496         (WebInspector.TextEditorModel.endsWithBracketRegex.):
1497         * inspector/front-end/TextUtils.js:
1498
1499 2013-03-07  Ian Vollick  <vollick@chromium.org>
1500
1501         Fix painting phases for composited scrolling
1502         https://bugs.webkit.org/show_bug.cgi?id=107618
1503
1504         Reviewed by Simon Fraser.
1505
1506         With composited scrolling, the scrolling contents layer paints the 
1507         foreground and the main graphics layer paints the background. This 
1508         causes a few problems:
1509
1510           1) If we create a foreground layer, we end up with two layers painting 
1511              the foreground phase.
1512           2) Focus rings / outlines paint into the foreground layer, so they end
1513              up moving around with the scrolling contents.
1514           3) Neg z-order descendants paint in the the main graphics layer and
1515              will therefore not scroll.
1516
1517         To deal with 1) we need to stop painting the foreground into both the
1518         foreground and scrolling contents layers. We also need to ensure that
1519         the foreground layer is the right size and has the right offset from
1520         renderer if we're on the composited scrolling path.
1521
1522         To deal with 2) and 3), I have added a new graphics layer painting phase 
1523         flag -- GraphicsLayerPaintCompositedScroll -- and applied it to two
1524         layers in the subtree created by RenderLayerBacking. This ultimately
1525         affects the paint phase passed to RenderLayer::paintLayerContents and
1526         allows us to paint the focus rings, outlines and negative z-order
1527         descendants into the proper layers.
1528
1529         Tests: compositing/overflow/composited-scrolling-paint-phases.html
1530                compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html
1531                compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer.html
1532
1533         * page/Frame.h:
1534           Added a flag for including painting phases in the layer tree dump.
1535         (WebCore::GraphicsLayer::dumpProperties):
1536           Can now dump painting phase information, but only if requested.
1537         * platform/graphics/GraphicsLayerClient.h:
1538           Added a new entry to GraphicsLayerPaintingPhaseFlags for comp-scroll.
1539         (WebCore::RenderLayer::paintLayerContents):
1540           Updated the logic to account for the new comp-scroll-related paint
1541           phase flag.
1542         * rendering/RenderLayer.h:
1543           Added the RenderLayer painting phase counterpart to
1544           GraphicsLayerPaintCompositedScroll.
1545         * rendering/RenderLayerBacking.cpp:
1546         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1547           Ensures that the foreground layer is sized correctly for comp-scroll.
1548         (WebCore::RenderLayerBacking::updateScrollingLayers):
1549           If we have a foreground layer, the scrolling contents layer no
1550           longer gets assigned the foreground painting phase.
1551         (WebCore::RenderLayerBacking::paintingPhaseForPrimaryLayer):
1552           If we're comp-scrolling, then the primary layer gets the new phase.
1553         (WebCore::RenderLayerBacking::paintIntoLayer):
1554           Simply translates the new graphics layer painting phase to its
1555           render layer counterpart.
1556         (WebCore::RenderLayerCompositor::layerTreeAsText):
1557         * testing/Internals.cpp:
1558         (WebCore::Internals::layerTreeAsText):
1559         * testing/Internals.h:
1560         * testing/Internals.idl:
1561           The above changes are solely plumbing to allow layout tests to
1562           request that paint phase information be included in the layer tree
1563           dump.
1564
1565 2013-03-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1566
1567         [Qt] Use Qt5.1 supportedMimeTypes methods.
1568         https://bugs.webkit.org/show_bug.cgi?id=111185
1569
1570         Reviewed by Jocelyn Turcotte.
1571
1572         Uses the supportedMimeTypes() methods from QImageReader and QImageWriter when available.
1573
1574         * platform/MIMETypeRegistry.cpp:
1575         (WebCore::initializeSupportedImageMIMETypes):
1576         (WebCore::initializeSupportedImageMIMETypesForEncoding):
1577
1578 2013-03-07  Ilya Tikhonovsky  <loislo@chromium.org>
1579
1580         Web Inspector: Flame Chart. Stick item color to the function.
1581         https://bugs.webkit.org/show_bug.cgi?id=111697
1582
1583         Reviewed by Yury Semikhatsky.
1584
1585         Different nodes associated with a single function have to use the same color.
1586         Minor polish: do not filter out (idle) and (program) items. They were big due to an error on v8 side.
1587         Set minimum width to 0 for more precise picture.
1588
1589         * inspector/front-end/FlameChart.js:
1590         (WebInspector.FlameChart):
1591         (WebInspector.FlameChart.prototype._rootNodes):
1592         (WebInspector.FlameChart.prototype.draw):
1593         (WebInspector.FlameChart.prototype._drawNode):
1594         (WebInspector.FlameChart.prototype._drawBar):
1595
1596 2013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
1597
1598         Web Inspector: [ACE] gutter size should be fixed.
1599         https://bugs.webkit.org/show_bug.cgi?id=111576
1600
1601         Reviewed by Pavel Feldman.
1602
1603         Add a custom ace editor build that supports setFixedGutterWidth configuration
1604         parameter and switch this setting on.
1605
1606         No new tests.
1607
1608         * inspector/front-end/AceTextEditor.js:
1609         (WebInspector.AceTextEditor): Switch fixedGutterWidth setting on.
1610         * inspector/front-end/ace/ace.js:
1611         (.):
1612
1613 2013-03-07  Sheriff Bot  <webkit.review.bot@gmail.com>
1614
1615         Unreviewed, rolling out r145059.
1616         http://trac.webkit.org/changeset/145059
1617         https://bugs.webkit.org/show_bug.cgi?id=111707
1618
1619         crash webkit build (Requested by tasak on #webkit).
1620
1621         * CMakeLists.txt:
1622         * GNUmakefile.list.am:
1623         * Target.pri:
1624         * WebCore.gypi:
1625         * WebCore.xcodeproj/project.pbxproj:
1626         * css/CSSAllInOne.cpp:
1627         * css/DocumentRuleSets.cpp:
1628         (WebCore::ShadowDistributedRules::collectMatchRequests):
1629         * css/DocumentRuleSets.h:
1630         * css/ElementRuleCollector.cpp: Removed.
1631         * css/ElementRuleCollector.h: Removed.
1632         * css/PageRuleCollector.cpp: Removed.
1633         * css/PageRuleCollector.h: Removed.
1634         * css/StyleResolver.cpp:
1635         (WebCore::leftToRightDeclaration):
1636         (WebCore):
1637         (WebCore::rightToLeftDeclaration):
1638         (WebCore::StyleResolver::State::ensureRuleList):
1639         (WebCore::StyleResolver::State::clear):
1640         (WebCore::StyleResolver::addMatchedProperties):
1641         (WebCore::StyleResolver::addElementStyleProperties):
1642         (MatchingUARulesScope):
1643         (WebCore::MatchingUARulesScope::MatchingUARulesScope):
1644         (WebCore::MatchingUARulesScope::~MatchingUARulesScope):
1645         (WebCore::MatchingUARulesScope::isMatchingUARules):
1646         (WebCore::StyleResolver::collectMatchingRules):
1647         (WebCore::StyleResolver::collectMatchingRulesForRegion):
1648         (WebCore::StyleResolver::sortAndTransferMatchedRules):
1649         (WebCore::StyleResolver::matchScopedAuthorRules):
1650         (WebCore::StyleResolver::matchHostRules):
1651         (WebCore::StyleResolver::matchAuthorRules):
1652         (WebCore::StyleResolver::matchUserRules):
1653         (WebCore::StyleResolver::matchUARules):
1654         (WebCore::StyleResolver::collectMatchingRulesForList):
1655         (WebCore::compareRules):
1656         (WebCore::StyleResolver::sortMatchedRules):
1657         (WebCore::StyleResolver::matchAllRules):
1658         (WebCore::StyleResolver::State::initForStyleResolve):
1659         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
1660         (WebCore::StyleResolver::styleForElement):
1661         (WebCore::StyleResolver::styleForKeyframe):
1662         (WebCore::StyleResolver::pseudoStyleForElement):
1663         (WebCore::StyleResolver::styleForPage):
1664         (WebCore::StyleResolver::pseudoStyleRulesForElement):
1665         (WebCore::StyleResolver::ruleMatches):
1666         (WebCore::StyleResolver::checkRegionSelector):
1667         (WebCore::comparePageRules):
1668         (WebCore::StyleResolver::matchPageRules):
1669         (WebCore::checkPageSelectorComponents):
1670         (WebCore::StyleResolver::matchPageRulesForList):
1671         (WebCore::StyleResolver::isLeftPage):
1672         (WebCore::StyleResolver::isFirstPage):
1673         (WebCore::StyleResolver::pageName):
1674         * css/StyleResolver.h:
1675         (WebCore::MatchRequest::MatchRequest):
1676         (MatchRequest):
1677         (StyleResolver):
1678         (MatchResult):
1679         (WebCore::StyleResolver::State::State):
1680         (State):
1681         (WebCore::StyleResolver::State::takeRuleList):
1682         (WebCore::StyleResolver::State::setSameOriginOnly):
1683         (WebCore::StyleResolver::State::isSameOriginOnly):
1684         (WebCore::StyleResolver::State::pseudoStyleRequest):
1685         (WebCore::StyleResolver::State::setMode):
1686         (WebCore::StyleResolver::State::mode):
1687         (WebCore::StyleResolver::State::matchedRules):
1688         (WebCore::StyleResolver::State::addMatchedRule):
1689         * inspector/InspectorCSSAgent.cpp:
1690         (WebCore::InspectorCSSAgent::willMatchRule):
1691         * inspector/InspectorCSSAgent.h:
1692         (WebCore):
1693         (InspectorCSSAgent):
1694         * inspector/InspectorInstrumentation.cpp:
1695         (WebCore):
1696         (WebCore::InspectorInstrumentation::willMatchRuleImpl):
1697         * inspector/InspectorInstrumentation.h:
1698         (WebCore):
1699         (InspectorInstrumentation):
1700         (WebCore::InspectorInstrumentation::willMatchRule):
1701
1702 2013-03-07  Kentaro Hara  <haraken@chromium.org>
1703
1704         Unreviewed. Rebaselined run-bindings-tests.
1705
1706         * bindings/scripts/test/V8/V8TestInterface.cpp:
1707         (WebCore):
1708         * bindings/scripts/test/V8/V8TestObj.cpp:
1709         (WebCore):
1710
1711 2013-03-07  Takashi Sakamoto  <tasak@google.com>
1712
1713         [Refactoring] Implement RuleCollector
1714         https://bugs.webkit.org/show_bug.cgi?id=109916
1715
1716         Reviewed by Antti Koivisto.
1717
1718         Implemented rule collector for an element and collector for a page.
1719         Not all members in class State are required entire while resolving
1720         a style.
1721
1722         No new tests, because just refactoring.
1723
1724         * CMakeLists.txt:
1725         * GNUmakefile.list.am:
1726         * Target.pri:
1727         * WebCore.gypi:
1728         * WebCore.xcodeproj/project.pbxproj:
1729         * css/CSSAllInOne.cpp:
1730         Added ElementRuleCollector and PageRuleCollector.
1731         * css/DocumentRuleSets.cpp:
1732         (WebCore::ShadowDistributedRules::collectMatchRequests):
1733         Since behaviorAtBoundary is a state owned by ElementRuleCollector,
1734         removed from here.
1735         * css/DocumentRuleSets.h:
1736         (WebCore::ShadowDistributedRules::isEmpty):
1737         Added to quickly check whether there exist any ShadowDistributedRules
1738         or not.
1739         * css/ElementRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
1740         (WebCore):
1741         (WebCore::ElementRuleCollector::matchedResult):
1742         (WebCore::ElementRuleCollector::matchedRuleList):
1743         (WebCore::ElementRuleCollector::addMatchedRule):
1744         (WebCore::ElementRuleCollector::clearMatchedRules):
1745         (WebCore::ElementRuleCollector::ensureRuleList):
1746         (WebCore::ElementRuleCollector::addElementStyleProperties):
1747         (WebCore::ElementRuleCollector::collectMatchingRules):
1748         (WebCore::ElementRuleCollector::collectMatchingRulesForRegion):
1749         (WebCore::ElementRuleCollector::sortAndTransferMatchedRules):
1750         (WebCore::ElementRuleCollector::matchScopedAuthorRules):
1751         (WebCore::ElementRuleCollector::matchHostRules):
1752         (WebCore::ElementRuleCollector::matchShadowDistributedRules):
1753         (WebCore::ElementRuleCollector::matchAuthorRules):
1754         (WebCore::ElementRuleCollector::matchUserRules):
1755         (WebCore::ElementRuleCollector::matchUARules):
1756         (WebCore::ElementRuleCollector::ruleMatches):
1757         (WebCore::ElementRuleCollector::collectMatchingRulesForList):
1758         (WebCore::ElementRuleCollector::sortMatchedRules):
1759         (WebCore::ElementRuleCollector::matchAllRules):
1760         Moved these methods from StyleResolver to this class.
1761         (WebCore::ElementRuleCollector::hasAnyMatchingRules):
1762         This method is used for checking whether a given element can share
1763         a cache.
1764         * css/ElementRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
1765         (WebCore):
1766         (WebCore::ElementRuleCollector::ElementRuleCollector):
1767         Use styleResolver instance to initialize its member variables, i.e.
1768         SelectorFilter, RuleSets, InspectorCSSOMWrappers, and
1769         StyleScopedResolver.
1770         (ElementRuleCollector):
1771         (WebCore::ElementRuleCollector::setMode):
1772         (WebCore::ElementRuleCollector::setPseudoStyleRequest):
1773         (WebCore::ElementRuleCollector::setSameOriginOnly):
1774         (WebCore::ElementRuleCollector::setRegionForStyling):
1775         Mode, SameOriginOnly, RegionForStyling are only used while collecting
1776         matched rules.
1777         (WebCore::ElementRuleCollector::setMedium):
1778         Need to know which default stylesheet should be looked up.
1779         (WebCore::ElementRuleCollector::document):
1780         * css/PageRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
1781         (WebCore::comparePageRules):
1782         (WebCore::PageRuleCollector::isLeftPage):
1783         (WebCore::PageRuleCollector::isFirstPage):
1784         (WebCore::PageRuleCollector::pageName):
1785         (WebCore::PageRuleCollector::matchAllPageRules):
1786         (WebCore::PageRuleCollector::matchPageRules):
1787         (WebCore::checkPageSelectorComponents):
1788         (WebCore::PageRuleCollector::matchPageRulesForList):
1789         Moved from StyleResolver.
1790         * css/PageRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
1791         (WebCore):
1792         (WebCore::PageRuleCollector::PageRuleCollector):
1793         (PageRuleCollector):
1794         (WebCore::PageRuleCollector::matchedResult):
1795         * css/StyleResolver.cpp:
1796         (WebCore):
1797         (WebCore::StyleResolver::State::clear):
1798         (WebCore::StyleResolver::MatchResult::addMatchedProperties):
1799         (WebCore::StyleResolver::State::initForStyleResolve):
1800         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
1801         (WebCore::StyleResolver::styleForElement):
1802         (WebCore::StyleResolver::styleForKeyframe):
1803         (WebCore::StyleResolver::pseudoStyleForElement):
1804         (WebCore::StyleResolver::styleForPage):
1805         (WebCore::StyleResolver::pseudoStyleRulesForElement):
1806         (WebCore::StyleResolver::applyMatchedProperties):
1807         * css/StyleResolver.h:
1808         (WebCore::MatchRequest::MatchRequest):
1809         Removed behaviorAtBoundary. Instead, ElementRuleCollector have the
1810         state.
1811         (MatchRequest):
1812         (WebCore::StyleResolver::selectorFilter):
1813         Added to obtain SelectorFilter in ElementRuleCollector's constructor.
1814         (StyleResolver):
1815         (MatchResult):
1816         (WebCore::StyleResolver::State::State):
1817         To pass ASSERT in StyleResolver::applyProperties, need to keep
1818         m_regionForStyling.
1819         (State):
1820         (WebCore::StyleResolver::State::regionForStyling):
1821         (WebCore::StyleResolver::State::useSVGZoomRules):
1822         (WebCore::StyleResolver::hasSelectorForId):
1823         (WebCore):
1824         (WebCore::checkRegionSelector):
1825         * inspector/InspectorCSSAgent.cpp:
1826         (WebCore::InspectorCSSAgent::willMatchRule):
1827         Removed StyleResolver from its parameter list. Instead, added
1828         InspectorCSSOMWrappers and DocumentStyleSheetCollection.
1829         * inspector/InspectorCSSAgent.h:
1830         (WebCore):
1831         (InspectorCSSAgent):
1832         * inspector/InspectorInstrumentation.cpp:
1833         (WebCore):
1834         (WebCore::InspectorInstrumentation::willMatchRuleImpl):
1835         * inspector/InspectorInstrumentation.h:
1836         (WebCore):
1837         (InspectorInstrumentation):
1838         (WebCore::InspectorInstrumentation::willMatchRule):
1839
1840 2013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
1841
1842         Web Inspector: [ACE] add experimental breakpoint support
1843         https://bugs.webkit.org/show_bug.cgi?id=111573
1844
1845         Reviewed by Pavel Feldman.
1846
1847         No new tests.
1848
1849         - Implement attributes model for ace editor. Update attribute
1850         locations by handling onTextChange event from editor.
1851         - Implement breakpoints atop of attributes model.
1852
1853         * inspector/front-end/AceTextEditor.js:
1854         (WebInspector.AceTextEditor):
1855         (WebInspector.AceTextEditor.prototype._updateBreakpoints):
1856         (WebInspector.AceTextEditor.prototype._updateLineAttributes):
1857         (WebInspector.AceTextEditor.prototype._onTextChange):
1858         (WebInspector.AceTextEditor.prototype.addBreakpoint):
1859         (WebInspector.AceTextEditor.prototype.removeBreakpoint):
1860         (WebInspector.AceTextEditor.prototype.getAttribute):
1861         (WebInspector.AceTextEditor.prototype.setAttribute):
1862         (WebInspector.AceTextEditor.prototype.removeAttribute):
1863         * inspector/front-end/ace/acedevtools.css:
1864         (.ace-editor-container):
1865         (.ace_gutter-cell.webkit-breakpoint):
1866         (.ace_gutter-cell.webkit-breakpoint-conditional):
1867         (.ace_gutter-cell.webkit-breakpoint-disabled):
1868         (.ace_gutter-cell):
1869
1870 2013-03-07  Antoine Quint  <graouts@apple.com>
1871
1872         Web Inspector: identify layers for CSS generated content in LayerTreeAgent
1873         https://bugs.webkit.org/show_bug.cgi?id=111551
1874
1875         Layers can be associated with pseudo elements, elements that are generated
1876         when ::before or ::after pseudo-classes are used to style an element and
1877         provide additional rendering using the CSS "content" property. In order to
1878         identify that a layer is associated to a pseudo element, we add a new set of
1879         optional properties on the Layer object: "isGeneratedContent", "pseudoElementId"
1880         and "pseudoClass".
1881
1882         We need to provide the "pseudoElementId" for the same reason we provide a
1883         "nodeId" for the Layer. This is so that the front-end can identify that a
1884         layer whose "layerId" may have changed between two layer tree updates is
1885         used to render content for the same pseudo element.
1886
1887         In the instance that a layer is rendering generated content, we also set
1888         the "nodeId" to be the generating node's id. The generating node is the
1889         node in the DOM that the user styled using ::before or ::after pseudo-classes.
1890         We also add the pseudo-class used as the "pseudoClass" property such that the
1891         front-end may provide useful information to the user about what type of
1892         pseudo-class yielded the generation of this layer. We also deal with the
1893         possibility that the layer is a reflection for a pseudo element.
1894     
1895         Since pseudo elements are not part of the user-visible DOM, and thus can't be
1896         pushed to the front-end, we maintain a special ID hash map in the LayerTreeAgent.
1897         In order to be able to unbind a pseudo element id and a pseudo element, we add a
1898         destructor method to PseudoElement and provide a new instrumentation call so that
1899         the LayerTreeAgent may be notified of a PseudoElement being destroyed. This
1900         reflects the principle we use to update the RenderLayer bindings when a
1901         RenderLayer is destroyed, as notified by the RenderLayerCompositor.
1902
1903         Reviewed by Simon Fraser.
1904
1905         Test: inspector-protocol/layers/layers-generated-content.html
1906
1907         * dom/PseudoElement.cpp:
1908         (WebCore::PseudoElement::~PseudoElement): New destructor used to notify
1909         InspectorInstrumentation of a PseudoElement being destroyed, such that
1910         it can eventually be relayed to the InspectorLayerTreeAgent.
1911         (WebCore):
1912         * dom/PseudoElement.h:
1913         (PseudoElement):
1914         * inspector/Inspector.json: Add the new PseudoElementId type used for
1915         the new "pseudoElementId" property on Layer, to which we also add the
1916         "isGeneratedContent" and "pseudoClass" properties.
1917         * inspector/InspectorInstrumentation.cpp:
1918         (WebCore):
1919         (WebCore::InspectorInstrumentation::pseudoElementDestroyedImpl):
1920         * inspector/InspectorInstrumentation.h:
1921         (WebCore):
1922         (InspectorInstrumentation):
1923         (WebCore::InspectorInstrumentation::pseudoElementDestroyed): New method
1924         called in the PseudoElement destructor used to relay the fact that a
1925         PseudoElement was destroyed to the InspectorLayerTreeAgent.
1926         * inspector/InspectorLayerTreeAgent.cpp:
1927         (WebCore::InspectorLayerTreeAgent::reset): Clear the new PseudoElement
1928         identifier maps.
1929         (WebCore::InspectorLayerTreeAgent::pseudoElementDestroyed): Remove any
1930         identifier binding for the provided PseudoElement being destroyed.
1931         (WebCore):
1932         (WebCore::InspectorLayerTreeAgent::buildObjectForLayer): Set the new
1933         "isGeneratedContent", "pseudoElementId" and "pseudoClass" properties on
1934         the Layer object for layers associated with a pseudo element.
1935         (WebCore::InspectorLayerTreeAgent::bind): Use emptyString() instead of "".
1936         (WebCore::InspectorLayerTreeAgent::unbind): Use an iterator instead of a
1937         get() and remove() combination in order to reduce lookups and mimick the
1938         code written for unbindPseudoElement().
1939         (WebCore::InspectorLayerTreeAgent::bindPseudoElement): Binds the provided
1940         PseudoElement to a unique identifier.
1941         (WebCore::InspectorLayerTreeAgent::unbindPseudoElement): Unbinds the
1942         provided PseudoElement from its unique identifier.
1943         * inspector/InspectorLayerTreeAgent.h:
1944         (InspectorLayerTreeAgent):
1945
1946 2013-03-07  Keishi Hattori  <keishi@webkit.org>
1947
1948         Add clear button to date/time input types
1949         https://bugs.webkit.org/show_bug.cgi?id=111319
1950
1951         Reviewed by Kent Tamura.
1952
1953         We want to remove the clear button from the calendar picker (Bug 109439)
1954         so we are adding the clear button to the right side of the input element.
1955
1956         Tests: fast/forms/date-multiple-fields/date-multiple-fields-clearbutton-change-and-input-events.html
1957                fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-clearbutton-change-and-input-events.html
1958                fast/forms/month-multiple-fields/month-multiple-fields-clearbutton-change-and-input-events.html
1959                fast/forms/time-multiple-fields/time-multiple-fields-clearbutton-change-and-input-events.html
1960                fast/forms/week-multiple-fields/week-multiple-fields-clearbutton-change-and-input-events.html
1961
1962         * CMakeLists.txt: Added ClearButtonElement.cpp
1963         * GNUmakefile.list.am: Ditto.
1964         * Target.pri: Ditto.
1965         * WebCore.gypi: Ditto.
1966         * WebCore.vcproj/WebCore.vcproj: Ditto.
1967         * WebCore.vcxproj/WebCore.vcxproj: Ditto.
1968         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
1969         * WebCore.xcodeproj/project.pbxproj: Ditto.
1970         * css/html.css:
1971         (input::-webkit-clear-button): Styles for the clear button.
1972         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
1973         (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged):
1974         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
1975         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
1976         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
1977         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
1978         (WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged):
1979         (WebCore::BaseMultipleFieldsDateAndTimeInputType::requiredAttributeChanged): Hide clear button if the value is required.
1980         (WebCore):
1981         (WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged):
1982         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
1983         (WebCore::BaseMultipleFieldsDateAndTimeInputType::focusAndSelectClearButtonOwner): Called on mouse down on clear button.
1984         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldClearButtonRespondToMouseEvents):
1985         (WebCore::BaseMultipleFieldsDateAndTimeInputType::clearValue):
1986         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateClearButtonVisibility): We want to hide the clear button if the value is required or the value is empty.
1987         * html/BaseMultipleFieldsDateAndTimeInputType.h:
1988         (BaseMultipleFieldsDateAndTimeInputType):
1989         * html/HTMLInputElement.cpp:
1990         (WebCore::HTMLInputElement::updateClearButtonVisibility):
1991         (WebCore):
1992         (WebCore::HTMLInputElement::requiredAttributeChanged):
1993         * html/HTMLInputElement.h:
1994         (HTMLInputElement):
1995         * html/InputType.cpp:
1996         (WebCore::InputType::requiredAttributeChanged): Notifies the InputType that the required attribute has changed.
1997         (WebCore):
1998         (WebCore::InputType::updateClearButtonVisibility):
1999         * html/InputType.h:
2000         (InputType):
2001         * html/shadow/ClearButtonElement.cpp: Added.
2002         (WebCore):
2003         (WebCore::ClearButtonElement::ClearButtonElement):
2004         (WebCore::ClearButtonElement::create):
2005         (WebCore::ClearButtonElement::detach):
2006         (WebCore::ClearButtonElement::releaseCapture): Stop capturing mouse events.
2007         (WebCore::ClearButtonElement::defaultEventHandler):
2008         * html/shadow/ClearButtonElement.h: Added.
2009         (WebCore):
2010         (ClearButtonElement):
2011         (ClearButtonOwner):
2012         (WebCore::ClearButtonElement::ClearButtonOwner::~ClearButtonOwner):
2013         (WebCore::ClearButtonElement::removeClearButtonOwner):
2014         (WebCore::ClearButtonElement::isMouseFocusable):
2015
2016 2013-03-07  Eugene Klyuchnikov  <eustas@chromium.org>
2017
2018         Web Inspector: Refactorings: Prepare SuggestBox for reuse.
2019         https://bugs.webkit.org/show_bug.cgi?id=111301
2020
2021         Reviewed by Alexander Pavlov.
2022
2023         1) Remove userEnteredText from delegate interface.
2024            Pass prefix to updateSuggestions instead.
2025         2) Clarify that suggestions array is never null.
2026
2027         * inspector/front-end/SuggestBox.js:
2028         (WebInspector.SuggestBox): Renamed parameter/member.
2029         (WebInspector.SuggestBox.prototype._updateItems):
2030         Minor readability changes.
2031         (WebInspector.SuggestBox.prototype._canShowBox):
2032         Use userEnteredText parameter.
2033         (WebInspector.SuggestBox.prototype.updateSuggestions):
2034         Pass userEnteredText to _canShowBox.
2035         * inspector/front-end/DatabaseQueryView.js: Fix JSDocs.
2036         * inspector/front-end/RuntimeModel.js: Ditto.
2037         * inspector/front-end/TextPrompt.js: Ditto.
2038         (WebInspector.TextPrompt.prototype._completionsReady):
2039         Pass userEnteredText to updateSuggestions.
2040
2041 2013-03-07  Victor Carbune  <vcarbune@chromium.org>
2042
2043         TextTrackRegion Constructor
2044         https://bugs.webkit.org/show_bug.cgi?id=110511
2045
2046         Reviewed by Adam Barth.
2047
2048         This is an initial patch for implementing the TextTrackRegion
2049         defined in the "WebVTT Extension: Regions for rendering cue groups":
2050         https://dvcs.w3.org/hg/text-tracks/raw-file/default/608toVTT/region.html
2051
2052         The feature components are hidden behind the WEBVTT_REGIONS flag
2053         and is currently disabled by default in all ports and tests skipped.
2054
2055         Test: media/track/regions-webvtt/text-track-region-constructor.html
2056
2057         * WebCore.gypi: Added files to be included for building Chromium with
2058         feature enabled (it is disabled by default).
2059         * html/track/TextTrackRegion.cpp: Added.
2060         (WebCore):
2061         (WebCore::TextTrackRegion::TextTrackRegion):
2062         (WebCore::TextTrackRegion::~TextTrackRegion):
2063         (WebCore::TextTrackRegion::setId): Setter.
2064         (WebCore::TextTrackRegion::setWidth): Setter.
2065         (WebCore::TextTrackRegion::setHeight): Setter.
2066         (WebCore::TextTrackRegion::setRegionAnchorX): Setter.
2067         (WebCore::TextTrackRegion::setRegionAnchorY): Setter.
2068         (WebCore::TextTrackRegion::setViewportAnchorX): Setter.
2069         (WebCore::TextTrackRegion::setViewportAnchorY): Setter.
2070         (WebCore::TextTrackRegion::scroll): Getter. Internally, the scroll
2071         value is stored as a boolean, but when returned is converted to either
2072         the empty string or "up".
2073         (WebCore::TextTrackRegion::setScroll): Setter.
2074         (WebCore::TextTrackRegion::setRegionSettings): Not used yet (see b/109818)
2075         * html/track/TextTrackRegion.h: Added.
2076         (WebCore):
2077         (TextTrackRegion):
2078         (WebCore::TextTrackRegion::create):
2079         (WebCore::TextTrackRegion::track): Getter.
2080         (WebCore::TextTrackRegion::id): Getter.
2081         (WebCore::TextTrackRegion::width): Getter.
2082         (WebCore::TextTrackRegion::height): Getter.
2083         (WebCore::TextTrackRegion::regionAnchorX): Getter.
2084         (WebCore::TextTrackRegion::regionAnchorY): Getter.
2085         (WebCore::TextTrackRegion::viewportAnchorX): Getter.
2086         (WebCore::TextTrackRegion::viewportAnchorY): Getter.
2087         (WebCore::TextTrackRegion::regionSettings): Getter, used only internally (see b/109818).
2088         * html/track/TextTrackRegion.idl: Added.
2089         * page/DOMWindow.idl: Constructor support.
2090
2091 2013-03-07  Dan Carney  <dcarney@google.com>
2092
2093         [v8] remove latin-1 transition flag
2094         https://bugs.webkit.org/show_bug.cgi?id=111692
2095
2096         Reviewed by Jochen Eisinger.
2097
2098         No new tests. No change in functionality.
2099
2100         * bindings/v8/V8ValueCache.cpp:
2101         (WebCore::makeExternalString):
2102
2103 2013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
2104
2105         Web Inspector: NavigatorView should show (program) for uiSourceCodes with empty name.
2106         https://bugs.webkit.org/show_bug.cgi?id=111691
2107
2108         Reviewed by Alexander Pavlov.
2109
2110         Made String.prototype methods return string literal, not String object.
2111
2112         * inspector/front-end/utilities.js:
2113         (String.prototype.escapeCharacters):
2114
2115 2013-03-07  Eugene Klyuchnikov  <eustas@chromium.org>
2116
2117         Web Inspector: Cmd+L (Go-to-Line) masks Go to location bar action
2118         https://bugs.webkit.org/show_bug.cgi?id=111357
2119
2120         Reviewed by Pavel Feldman.
2121
2122         Allow panel shortcut handlers to bubble event.
2123
2124         * inspector/front-end/GoToLineDialog.js:
2125         (WebInspector.GoToLineDialog.install): Minor refactoring, added JSDocs.
2126         (WebInspector.GoToLineDialog._show): Added JSDocs and return value.
2127         * inspector/front-end/Panel.js:
2128         (WebInspector.Panel.prototype.handleShortcut):
2129         Mark event as handled iff handler returned true.
2130         * inspector/front-end/ScriptsPanel.js: Added return values to handlers.
2131         * inspector/front-end/TimelinePanel.js: Ditto.
2132
2133 2013-03-06  Takashi Sakamoto  <tasak@google.com>
2134
2135         Box-shadow displayed improperly with border-radius.
2136         https://bugs.webkit.org/show_bug.cgi?id=111256
2137
2138         Reviewed by Simon Fraser.
2139
2140         RoundedRect::adjustRadii doesn't adjust radii correctly, because
2141         the method compares maxRadiusWidth with maxRadiusHeight. However,
2142         we have to compare maxRadiusWidth / rect.width() with
2143         maxRadiusHeight / rect.height().
2144
2145         Test: fast/borders/border-radius-with-box-shadow-01.html
2146
2147         * platform/graphics/RoundedRect.cpp:
2148         (WebCore::RoundedRect::adjustRadii):
2149         Should check which ratio is smaller.
2150
2151 2013-03-06  Mike West  <mkwst@chromium.org>
2152
2153         [V8] Preprocess constant values to avoid a "static_cast<signed int>" in CodeGeneratorV8.
2154         https://bugs.webkit.org/show_bug.cgi?id=111625
2155
2156         Reviewed by Kentaro Hara.
2157
2158         When processing constants in IDL files, CodeGeneratorV8 currently runs
2159         the values through 'static_cast<signed int>' in the generated code. We
2160         can avoid this miniscule bit of overhead by preprocessing the hex value
2161         in Perl when generating the code.
2162
2163         The FIXME has been in the code since it originally landed in 2009[1].
2164         Now's as good a time as any to take care of it.
2165
2166         [1]: http://trac.webkit.org/browser/trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm?rev=144976#L2933
2167
2168         * bindings/scripts/CodeGeneratorV8.pm:
2169         (GenerateImplementation):
2170             If we're presented with a string which begins with '0x', run it
2171             through some fairly obtuse Perlisms to first convert from a hex
2172             string to an integer ('hex($value)'), "pack" the integer as an
2173             unsigned integer ('pack("I", ...)'), and then "unpack" it as a
2174             signed integer ('unpack("i", ...)'). Because that's _of course_
2175             how you would do things.
2176
2177 2013-03-06  Paweł Forysiuk  <tuxator@o2.pl>
2178
2179         WebKit does not build without accelerated compositing after Changeset 144823
2180         https://bugs.webkit.org/show_bug.cgi?id=111597
2181
2182         Reviewed by Kentaro Hara.
2183
2184         Properly guard functions ifdefed in ScrollingCoordinator.h.
2185         Remove redundant checks and fallback code inside those functions.
2186
2187         * page/scrolling/ScrollingCoordinator.cpp:
2188         (WebCore::ScrollingCoordinator::scrollLayerForScrollableArea):
2189         (WebCore::ScrollingCoordinator::horizontalScrollbarLayerForScrollableArea):
2190         (WebCore::ScrollingCoordinator::verticalScrollbarLayerForScrollableArea):
2191         (WebCore):
2192
2193 2013-03-06  Hajime Morrita  <morrita@google.com>
2194
2195         Custom Elements Refactoring: CustomElementConstructor API shouldn't bound to HTMLElement
2196         https://bugs.webkit.org/show_bug.cgi?id=111678
2197
2198         Reviewed by Kentaro Hara.
2199
2200         The latest Custom Elements standard supports non-HTML custom elements. Even though current implementation
2201         support only HTML, it'd be better off to make API generic enough to support them.
2202
2203         This change
2204
2205         - eliminates HTMLElement from the API signature by replacing it with Element, and
2206         - rename V8HTMLCustomElement to V8CustomElement.
2207
2208         No new tests, just changing signatures and a class name.
2209
2210         * WebCore.gypi:
2211         * bindings/v8/V8CustomElement.cpp: Renamed from Source/WebCore/bindings/v8/V8HTMLCustomElement.cpp.
2212         (WebCore):
2213         (WebCore::findWrapperTypeOf):
2214         (WebCore::V8CustomElement::createWrapper):
2215         * bindings/v8/V8CustomElement.h: Renamed from Source/WebCore/bindings/v8/V8HTMLCustomElement.h.
2216         (WebCore):
2217         (V8CustomElement):
2218         (WebCore::V8CustomElement::toV8):
2219         (WebCore::V8CustomElement::wrap):
2220         (WebCore::HTMLCustomElement::wrap):
2221         * bindings/v8/custom/V8CustomElementConstructorCustom.cpp:
2222         (WebCore::V8CustomElementConstructor::callAsFunctionCallback):
2223         * dom/CustomElementConstructor.cpp:
2224         (WebCore::CustomElementConstructor::createElement):
2225         * dom/CustomElementConstructor.h:
2226         (WebCore):
2227         (CustomElementConstructor):
2228         * dom/CustomElementRegistry.cpp:
2229         (WebCore::CustomElementRegistry::constructorOf):
2230         (WebCore::CustomElementRegistry::createElement):
2231         * dom/CustomElementRegistry.h:
2232         (WebCore):
2233         (CustomElementRegistry):
2234         * dom/Document.cpp: Ensured that the document is an HTML.
2235         (WebCore::Document::registerElement):
2236         * dom/Document.idl:
2237         * dom/make_names.pl:
2238         (printWrapperFactoryCppFile):
2239         * html/HTMLDocument.idl: Moved an API to Document.idl
2240
2241 2013-03-06  Tim Horton  <timothy_horton@apple.com>
2242
2243         TileCache debug minimap should fit inside the intersection of the visible rect and exposed rect
2244         https://bugs.webkit.org/show_bug.cgi?id=111655
2245         <rdar://problem/13355773>
2246
2247         Reviewed by Simon Fraser.
2248
2249         If content clips to the exposed rect, make the TileCache minimap fit in the exposed rect too.
2250
2251         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
2252         (WebCore::ScrollingCoordinatorMac::commitTreeState):
2253         * platform/graphics/TiledBacking.h:
2254         * platform/graphics/ca/mac/TileCache.mm:
2255         (WebCore::TileCache::updateTileCoverageMap):
2256
2257 2013-03-06  Sheriff Bot  <webkit.review.bot@gmail.com>
2258
2259         Unreviewed, rolling out r144726.
2260         http://trac.webkit.org/changeset/144726
2261         https://bugs.webkit.org/show_bug.cgi?id=111681
2262
2263         caused performance regression for Dromaeo attribute tests.
2264         (Requested by arpitab on #webkit).
2265
2266         * dom/Element.h:
2267         (WebCore::ElementData::getAttributeItemIndex):
2268
2269 2013-03-04  Kinuko Yasuda  <kinuko@chromium.org>
2270
2271         File.lastModifiedDate() should return the current date/time if the file date/time is not available
2272         https://bugs.webkit.org/show_bug.cgi?id=111403
2273
2274         Reviewed by Kent Tamura.
2275
2276         Per the recent File API spec change:
2277         http://www.w3.org/TR/2012/WD-FileAPI-20121025/#dfn-lastModifiedDate
2278
2279         Test: http/tests/local/fileapi/script-tests/file-last-modified-after-delete.js:
2280
2281         * fileapi/File.cpp:
2282         (WebCore::File::lastModifiedDate): Changed to return the current date/time instead null if the valid file date/time is not available.
2283         * fileapi/File.h:
2284         (File):
2285
2286 2013-03-06  Philippe Liard  <pliard@chromium.org>
2287
2288         Make RuleData support up to 8191 selectors
2289         https://bugs.webkit.org/show_bug.cgi?id=111663
2290
2291         Reviewed by Andreas Kling.
2292
2293         r125294 made RuleData consume less memory by replacing a pointer with
2294         an index encoded on 12 bits.
2295         This unfortunately breaks Chrome for Android (and others) when a lot of
2296         CSS is used or more precisely when selectorIndex cannot be stored on 12
2297         bits.
2298
2299         Threfore this change decreases the number of bits used to store
2300         m_position by 1 (from 19 to 18) and adds this extra bit to
2301         m_selectorIndex so that values up to 8191 can be stored safely without
2302         overflowing.
2303
2304         * css/RuleSet.h:
2305         (RuleData):
2306
2307 2013-03-06  Seokju Kwon  <seokju.kwon@gmail.com>
2308
2309         Web Inspector: Remove unused code from contextmenu of element panel
2310         https://bugs.webkit.org/show_bug.cgi?id=111658
2311
2312         Reviewed by Pavel Feldman.
2313
2314         No new tests (no functional changes).
2315
2316         * inspector/front-end/ElementsPanel.js:
2317         (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
2318         * inspector/front-end/ElementsTreeOutline.js:
2319         (WebInspector.ElementsTreeOutline.prototype.populateContextMenu):
2320
2321 2013-03-06  Julien Chaffraix  <jchaffraix@webkit.org>
2322
2323         [CSS Grid Layout] Extend our grammar to support 2 positions for grid-{row|column}
2324         https://bugs.webkit.org/show_bug.cgi?id=110777
2325
2326         Reviewed by Tony Chang.
2327
2328         Now that we support all the logical grid properties, we can change grid-{row|column}
2329         into shorthands. That's what this change does along with extending our parsing support
2330         to handle 2 positions.
2331
2332         Tests: fast/css-grid-layout/grid-item-column-row.html
2333                fast/css-grid-layout/grid-item-end-after-get-set.html
2334                fast/css-grid-layout/grid-item-start-before-get-set.html
2335
2336         * css/CSSComputedStyleDeclaration.cpp:
2337         Removed grid-{row|column} from computedProperties as they are shorthands (see comments
2338         at computedProperties definition).
2339
2340         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2341         (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForGridShorthand):
2342         Switched to using the StylePropertyShorthand and reusing the existing longhand code.
2343
2344         * css/CSSComputedStyleDeclaration.h:
2345         Added getCSSPropertyValuesForGridShorthand.
2346
2347         * css/CSSParser.cpp:
2348         (WebCore::CSSParser::parseValue):
2349         (WebCore::CSSParser::parseGridItemPositionShorthand):
2350         Added custom parsing for the shorthand, that builds on top of the longhand code.
2351
2352         * css/CSSParser.h:
2353         Added parseGridItemPositionShorthand.
2354
2355         * css/StyleResolver.cpp:
2356         (WebCore::StyleResolver::applyProperty):
2357         Removed the previous handling as shorthand are expanded at parse time.
2358
2359         * css/StylePropertySet.cpp:
2360         (WebCore::StylePropertySet::getPropertyValue):
2361         Added the new shorthands to the list.
2362
2363         * css/StylePropertyShorthand.cpp:
2364         (WebCore::webkitGridColumnShorthand):
2365         (WebCore::webkitGridRowShorthand):
2366         (WebCore::shorthandForProperty):
2367         * css/StylePropertyShorthand.h:
2368         Registered grid-{row|column} as shorthands.
2369
2370 2013-03-06  Kenneth Russell  <kbr@google.com>
2371
2372         [Chromium] Fix byte ordering bugs reading back WebGL canvases' content on Android
2373         https://bugs.webkit.org/show_bug.cgi?id=111661
2374
2375         Reviewed by James Robinson.
2376
2377         No new tests; covered by existing tests. Ran WebGL conformance
2378         tests on Android and desktop Linux to verify fix.
2379
2380         * platform/chromium/support/GraphicsContext3DChromium.cpp:
2381         (WebCore::GraphicsContext3D::paintRenderingResultsToImageData):
2382             Avoid incorrect byte swap on Android and other OSs which don't
2383             swizzle R and B channels.
2384
2385 2013-03-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2386
2387         [EFL] Improve warning messages when input value is out of range.
2388         https://bugs.webkit.org/show_bug.cgi?id=111534
2389
2390         Reviewed by Laszlo Gombos.
2391
2392         Show input value range when user inputs greater or less value.
2393
2394         * platform/efl/LocalizedStringsEfl.cpp:
2395         (WebCore::validationMessageRangeOverflowText):
2396         (WebCore::validationMessageRangeUnderflowText):
2397
2398 2013-03-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2399
2400         [EFL][WK2] Enable interactive form validation for email and url input type validation
2401         https://bugs.webkit.org/show_bug.cgi?id=111026
2402
2403         Reviewed by Laszlo Gombos.
2404
2405         WebKit EFL can check if input value is valid by enabling this feature.
2406
2407         * platform/efl/LocalizedStringsEfl.cpp: Change validation messages of email and url the same with chromium port.
2408         (WebCore::validationMessageTypeMismatchForEmailText):
2409         (WebCore::validationMessageTypeMismatchForMultipleEmailText):
2410         (WebCore::validationMessageTypeMismatchForURLText):
2411         * platform/efl/RenderThemeEfl.cpp: Add type checking conditions for email and url.
2412         (WebCore::RenderThemeEfl::supportsDataListUI):
2413
2414 2013-03-06  Aaron Colwell  <acolwell@chromium.org>
2415
2416         Remove WebCore::Node::isActiveNode() since it isn't called anywhere.
2417         https://bugs.webkit.org/show_bug.cgi?id=111646
2418
2419         Reviewed by Kentaro Hara.
2420
2421         No new tests. This removes dead code.
2422
2423         * dom/Node.h:
2424         (Node):
2425         * html/HTMLAudioElement.h:
2426
2427 2013-03-06  Abhishek Arya  <inferno@chromium.org>
2428
2429         Crash in SVGViewSpec::viewTarget
2430         https://bugs.webkit.org/show_bug.cgi?id=111648
2431
2432         Reviewed by Philip Rogers.
2433
2434         * svg/SVGViewSpec.cpp:
2435         (WebCore::SVGViewSpec::viewTarget):
2436
2437 2013-03-06  Benjamin Poulain  <benjamin@webkit.org>
2438
2439         WebKitTestRunner needs layoutTestController.elementDoesAutoCompleteForElementWithId
2440         https://bugs.webkit.org/show_bug.cgi?id=42696
2441
2442         Reviewed by Andreas Kling.
2443
2444         Since the method acts directly on a WebCore element and strictly test
2445         HTMLInputElement::shouldAutoComplete(), the test function is moved to internals.
2446
2447         * testing/Internals.cpp:
2448         (WebCore::Internals::elementShouldAutoComplete):
2449         * testing/Internals.h:
2450         * testing/Internals.idl:
2451
2452 2013-03-06  Alexey Proskuryakov  <ap@apple.com>
2453
2454         [Mac] Synthetic ResourceResponses cannot be sent over IPC without losing most information
2455         https://bugs.webkit.org/show_bug.cgi?id=111623
2456
2457         Reviewed by Brady Eidson.
2458
2459         * WebCore.exp.in: Exported functions for building synthetic responses.
2460
2461         * platform/network/ResourceResponseBase.cpp:
2462         * platform/network/ResourceResponseBase.h:
2463         Added a lot of FIXMEs.
2464
2465         * platform/network/cf/ResourceResponse.h:
2466         (WebCore::ResourceResponse::ResourceResponse):
2467         (WebCore::ResourceResponse::platformResponseIsUpToDate):
2468         Track m_platformResponseIsUpToDate flag as well as we can. Currently, it will
2469         be incorrect if a real platform response gets mutated.
2470
2471         * platform/network/cf/ResourceResponseCFNet.cpp:
2472         (WebCore::ResourceResponse::cfURLResponse): Added a FIXME about how useless this
2473         function is when it tries to create a new CFURLResponse.
2474
2475         * platform/network/mac/ResourceResponseMac.mm:
2476         (WebCore::ResourceResponse::initNSURLResponse): Added a FIXME.
2477         (WebCore::ResourceResponse::nsURLResponse): Added a return to make logic more clear.
2478         (WebCore::ResourceResponse::ResourceResponse): Track m_platformResponseIsUpToDate.
2479
2480         * platform/network/blackberry/ResourceResponse.h:
2481         * platform/network/curl/ResourceResponse.h:
2482         * platform/network/qt/ResourceResponse.h:
2483         * platform/network/soup/ResourceResponse.h:
2484         * platform/network/win/ResourceResponse.h:
2485         These platforms do not keep a platform response, so it's never up to date, and
2486         WebCore data needs to be serialized.
2487
2488 2013-03-06  Dana Jansens  <danakj@chromium.org>
2489
2490         [chromium] Remove WebSharedGraphicsContext3D class
2491         https://bugs.webkit.org/show_bug.cgi?id=111492
2492
2493         Reviewed by James Robinson.
2494
2495         Removing dead code, no new tests.
2496
2497         * WebCore.gypi:
2498         * platform/chromium/support/WebSharedGraphicsContext3D.cpp: Removed.
2499
2500 2013-03-06  Dana Jansens  <danakj@chromium.org>
2501
2502         [chromium] Don't get callbacks or create GrContext from unowned WebGraphicsContext3D
2503         https://bugs.webkit.org/show_bug.cgi?id=111638
2504
2505         Reviewed by James Robinson.
2506
2507         If the context is not owned, it's lifetime is not guaranteed, and by the time
2508         the GraphicsContext3D is destroyed, the WGC3D can already be deleted.
2509
2510         When the context is not owned by the GraphicsContext3D, then don't clean it up
2511         in the destructor or set up callbacks, as these are the owner's responsibility.
2512
2513         * platform/chromium/support/GraphicsContext3DPrivate.cpp:
2514         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
2515         (WebCore::GraphicsContext3DPrivate::grContext):
2516         (WebCore::GraphicsContext3DPrivate::setContextLostCallback):
2517         (WebCore::GraphicsContext3DPrivate::setErrorMessageCallback):
2518
2519 2013-02-22  Jer Noble  <jer.noble@apple.com>
2520
2521         Default mouse cursor behavior should be auto-hide for full screen video with custom controls
2522         https://bugs.webkit.org/show_bug.cgi?id=107601
2523
2524         Reviewed by Beth Dakin.
2525
2526         Test: fullscreen/video-cursor-auto-hide.html
2527
2528         To facilitate automatically hiding the mouse cursor after a certain amount of idle mouse
2529         time, add a new CSS property '-webkit-cursor-visibility', and handle that value inside of
2530         EventHandler. When that value is present, the EventHandler will start a timer which, when
2531         fired, will set the view's cursor to the None cursor. Subsequent mouse moves will either
2532         cancel the timer, or reset the auto-hide timer.
2533
2534         Add a new CSS property, '-webkit-cursor-visibility':
2535         * css/CSSComputedStyleDeclaration.cpp:
2536         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2537         * css/CSSParser.cpp:
2538         (WebCore::CSSParser::parseValue):
2539         * css/CSSPrimitiveValueMappings.h:
2540         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2541         (WebCore::CSSPrimitiveValue::operator ECursorVisibility):
2542         * css/CSSProperty.cpp:
2543         (WebCore::CSSProperty::isInheritedProperty):
2544         * css/CSSPropertyNames.in:
2545         * css/CSSValueKeywords.in:
2546         * css/StyleBuilder.cpp:
2547         (WebCore::StyleBuilder::StyleBuilder):
2548         * css/StyleResolver.cpp:
2549         (WebCore::StyleResolver::applyProperty):
2550
2551         Add a rule for video descendants of full screen elements to auto-hide the cursor on hover:
2552         * css/fullscreen.css:
2553         (:-webkit-full-screen video:hover):
2554
2555         Add a new timer, m_autoHideCursorTimer, to control resetting the view's cursor to None after
2556         enough mouse idle time has passed.
2557         * page/EventHandler.cpp:
2558         (WebCore::EventHandler::EventHandler):
2559         (WebCore::EventHandler::~EventHandler):
2560         (WebCore::EventHandler::clear):
2561         (WebCore::EventHandler::selectCursor):
2562         (WebCore::EventHandler::startAutoHideCursorTimer):
2563         (WebCore::EventHandler::cancelAutoHideCursorTimer):
2564         (WebCore::EventHandler::autoHideCursorTimerFired):
2565         * page/EventHandler.h:
2566
2567         Make FrameView::isActive() a public function (like it is in its superclass).
2568         * page/FrameView.h:
2569         (FrameView):
2570
2571         Move the definition for timeWithoutMouseMovementBeforeHidingControls from page->theme()
2572         to page->settings() and allow that setting to be overridden in InternalSettings for 
2573         testing purposes:
2574         * page/Settings.cpp:
2575         (WebCore::Settings::Settings):
2576         * page/Settings.h:
2577         (WebCore::Settings::setTimeWithoutMouseMovementBeforeHidingControls):
2578         (WebCore::Settings::timeWithoutMouseMovementBeforeHidingControls):
2579         * rendering/RenderTheme.h:
2580         * testing/InternalSettings.cpp:
2581         (WebCore::InternalSettings::Backup::Backup):
2582         (WebCore::InternalSettings::Backup::restoreTo):
2583         (WebCore::InternalSettings::setTimeWithoutMouseMovementBeforeHidingControls):
2584         * testing/InternalSettings.h:
2585         (InternalSettings):
2586         * testing/InternalSettings.idl:
2587         * html/shadow/MediaControls.cpp:
2588         (WebCore::MediaControls::startHideFullscreenControlsTimer):
2589
2590         Add support to FeatureObserver for CURSOR_VISIBILITY:
2591         * page/FeatureObserver.h:
2592
2593         Enable the feature flag:
2594         * Configurations/FeatureDefines.xcconfig:
2595
2596 2013-03-06  Jer Noble  <jer.noble@apple.com>
2597
2598         Full screen from an iframe with a z-index style will allow siblings with higher z-index to overlay full screen content.
2599         https://bugs.webkit.org/show_bug.cgi?id=111637
2600
2601         Reviewed by Simon Fraser.
2602
2603         No new tests; updated fullscreen/full-screen-iframe-zIndex.html to expose bug.
2604
2605         Pages with explicit z-index: styles on their iframes will override the default z-index: UA style when
2606         elements within that iframe enter full screen mode. Mark the UA style as !important so as to not allow
2607         iframe siblings with higher z-index styles to overlay the full screen element.
2608
2609         * css/fullscreen.css:
2610         (:-webkit-full-screen):
2611
2612 2013-03-06  Levi Weintraub  <leviw@chromium.org>
2613
2614         InsertUnorderedList can lead to lost content and assertions in moveParagraphs
2615         https://bugs.webkit.org/show_bug.cgi?id=111228
2616
2617         Reviewed by Ryosuke Niwa.
2618
2619         When a list is wrapped in a presentational inline like a b tag, we'd create markup that included
2620         everything up to the b tag from moveParagraphs when intending to only move the contents of the
2621         list item. This could make it impossible to remove content from a list and trigger loss of
2622         editable text.
2623
2624         Test: editing/execCommand/insert-remove-block-list-inside-presentational-inline.html
2625
2626         * editing/EditingStyle.cpp:
2627         (WebCore::elementMatchesAndPropertyIsNotInInlineStyleDecl): Ensure there's an inline style
2628         before calling propertyExistsInStyle.
2629         (WebCore::HTMLElementEquivalent::propertyExistsInStyle): Removing null check for style.
2630         All callers ensure this value isn't null.
2631         * editing/markup.cpp:
2632         (WebCore::highestAncestorToWrapMarkup): Avoid going over RenderBlocks when finding the highest
2633         presentational ancestor to avoid leaving the bounds of the original paragraph.
2634
2635 2013-03-06  Adam Klein  <adamk@chromium.org>
2636
2637         [V8] Use implicit references instead of object groups to keep registered MutationObservers alive
2638         https://bugs.webkit.org/show_bug.cgi?id=111382
2639
2640         Reviewed by Adam Barth.
2641
2642         Two-phase approach to implicit references: after grouping objects
2643         together, add an implicit reference between each registered node's
2644         group and the MutationObserver's group (which includes wrappers from
2645         all worlds).
2646
2647         Also changed many uses of v8::Value to v8::Object where we know we're
2648         dealing with Object and the V8 API expects them.
2649
2650         Test: ManualTests/mutation-observer-leaks-nodes.html
2651
2652         * bindings/v8/V8GCController.cpp:
2653         (WebCore::ImplicitConnection::ImplicitConnection):
2654         (WebCore::ImplicitConnection::wrapper):
2655         (ImplicitConnection):
2656         (WebCore::ImplicitReference::ImplicitReference): Wrapper class holding a parent who should have an implicit reference to a child.
2657         (ImplicitReference):
2658         (WebCore::operator<): Needed for std::sort() call to avoid the overhead of using a HashMap
2659         (WebCore::WrapperGrouper::addObjectWrapperToGroup):
2660         (WebCore::WrapperGrouper::addNodeWrapperToGroup):
2661         (WebCore::WrapperGrouper::addImplicitReference):
2662         (WrapperGrouper):
2663         (WebCore::WrapperGrouper::apply):
2664
2665 2013-03-06  Ankur Taly  <ataly@google.com>
2666
2667         Modify log method in V8DOMActivityLogger so that the apiName and
2668         extraInfo arguments are of type const String& instead of const char*.
2669         This change gets rid of some of the memory ownership issues that arise
2670         with char* pointers.
2671         https://bugs.webkit.org/show_bug.cgi?id=111483
2672
2673         Reviewed by Adam Barth.
2674
2675         There are no new tests as there is no change in behavior.
2676
2677         * bindings/v8/V8DOMActivityLogger.h:
2678         (WebCore::V8DOMActivityLogger::log):
2679
2680 2013-03-06  Mike Reed  <reed@google.com>
2681
2682         Use SkTypeface API directly, rather than (soon to be private) SkFontHost
2683         https://bugs.webkit.org/show_bug.cgi?id=111588
2684
2685         Reviewed by Stephen White.
2686
2687         No new tests, as existing tests in fast/writing-mode exercise this code.
2688
2689         e.g. japanese-rl-text-with-broken-font.html
2690              vertical-subst-font-vert-no-dflt.html
2691
2692         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
2693         (WebCore::FontPlatformData::emSizeInFontUnits):
2694         (WebCore::FontPlatformData::openTypeTable):
2695         * platform/graphics/harfbuzz/HarfBuzzFaceSkia.cpp:
2696         (WebCore::harfBuzzSkiaGetTable):
2697         (WebCore::HarfBuzzFace::createFace):
2698         * platform/graphics/skia/SimpleFontDataSkia.cpp:
2699         (WebCore::SimpleFontData::platformInit):
2700
2701 2013-03-06  Victor Costan <costan@gmail.com>
2702
2703         Cleanup in multipart FormData sending code.
2704         https://bugs.webkit.org/show_bug.cgi?id=111603
2705
2706         Reviewed by Alexey Proskuryakov.
2707
2708         No new tests. This is cleanup.
2709
2710         * platform/network/FormDataBuilder.cpp:
2711         (WebCore::appendQuotedString): use proper types (e.g, size_t instead of
2712         unsigned long)
2713
2714 2013-03-06  Tony Gentilcore  <tonyg@chromium.org>
2715
2716         Threaded HTML parser should use 8 bit strings for attributes
2717         https://bugs.webkit.org/show_bug.cgi?id=111610
2718
2719         Reviewed by Eric Seidel.
2720
2721         This fixes a 27% regression in dromaeo_jslibattrjquery on the threaded HTML parser vs. the main thread parser.
2722
2723         No new tests because no new functionality.
2724
2725         * html/parser/CompactHTMLToken.cpp:
2726         (WebCore::CompactHTMLToken::CompactHTMLToken):
2727
2728 2013-03-06  Alpha Lam  <hclam@chromium.org>
2729
2730         More cleanup in GIFImageReader
2731         https://bugs.webkit.org/show_bug.cgi?id=111137
2732
2733         Reviewed by Stephen White.
2734
2735         Refactor GIFImageReaderReader with the following changes:
2736         + Separate GIFLZWContext for decoding states.
2737         + Replace unsigned char* with Vector<unsigned char>
2738
2739         There is no change in code behavior and just refactoring.
2740
2741         No new tests. This is covered by existing GIFImageReaderTest.
2742         I also did a local testing on a 50k image corpus and showed no regression.
2743
2744         * platform/image-decoders/gif/GIFImageDecoder.cpp:
2745         (WebCore::GIFImageDecoder::haveDecodedRow):
2746         * platform/image-decoders/gif/GIFImageDecoder.h:
2747         (GIFImageDecoder):
2748         * platform/image-decoders/gif/GIFImageReader.cpp:
2749         (GIFImageReader::outputRow):
2750         (GIFImageReader::doLZW):
2751         (GIFImageReader::decodeInternal):
2752         (GIFImageReader::prepareLZWContext):
2753         * platform/image-decoders/gif/GIFImageReader.h:
2754         (GIFFrameContext):
2755         (GIFFrameContext::GIFFrameContext):
2756         (GIFFrameContext::~GIFFrameContext):
2757         (GIFLZWContext):
2758         (GIFLZWContext::GIFLZWContext):
2759         (GIFImageReader):
2760
2761 2013-03-06  Tim Horton  <timothy_horton@apple.com>
2762
2763         Fix typo'd MainThreadScrollingBecauseOfStyleIndictaion
2764         https://bugs.webkit.org/show_bug.cgi?id=111557
2765
2766         Reviewed by Geoff Garen.
2767
2768         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
2769         (WebCore::ScrollingCoordinatorMac::commitTreeState):
2770         * platform/graphics/TiledBacking.h:
2771         * platform/graphics/ca/mac/TileCache.mm:
2772         (WebCore::TileCache::updateTileCoverageMap):
2773
2774 2013-03-05  Geoffrey Garen  <ggaren@apple.com>
2775
2776         Removed some dead code in the page cache
2777         https://bugs.webkit.org/show_bug.cgi?id=111525
2778
2779         Reviewed by Alexey Proskuryakov.
2780
2781         Page cache autorelease doesn't exist anymore, so there's no need to keep
2782         around these olds hacks.
2783
2784         * WebCore.exp.in:
2785         * history/PageCache.cpp:
2786         (WebCore::PageCache::PageCache):
2787         (WebCore):
2788         * history/PageCache.h:
2789         (PageCache):
2790         * page/Settings.cpp:
2791         (WebCore::Settings::setUsesPageCache):
2792         * platform/mac/MemoryPressureHandlerMac.mm:
2793         (WebCore::MemoryPressureHandler::releaseMemory):
2794         * platform/qt/QtTestSupport.cpp:
2795         (WebKit::QtTestSupport::clearMemoryCaches):
2796
2797 2013-03-06  Rafael Weinstein  <rafaelw@chromium.org>
2798
2799         Unreviewed, rolling out r144924.
2800         http://trac.webkit.org/changeset/144924
2801         https://bugs.webkit.org/show_bug.cgi?id=109908
2802
2803         caused multiple crashes in inspector/debugger tests
2804
2805         * bindings/js/JSInjectedScriptHostCustom.cpp:
2806         * bindings/js/ScriptObject.h:
2807         * bindings/v8/ScriptObject.h:
2808         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
2809         * inspector/InjectedScriptHost.cpp:
2810         (WebCore::InjectedScriptHost::create):
2811         (WebCore::InjectedScriptHost::InjectedScriptHost):
2812         (WebCore::InjectedScriptHost::disconnect):
2813         * inspector/InjectedScriptHost.h:
2814         (WebCore):
2815         (InjectedScriptHost):
2816         * inspector/InjectedScriptHost.idl:
2817         * inspector/InjectedScriptManager.cpp:
2818         (WebCore::InjectedScriptManager::InjectedScriptManager):
2819         (WebCore::InjectedScriptManager::discardInjectedScripts):
2820         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
2821         * inspector/InjectedScriptManager.h:
2822         (InjectedScriptManager):
2823         * inspector/InjectedScriptSource.js:
2824         (.):
2825
2826 2013-03-06  Dmitry Zvorygin  <zvorygin@chromium.org>
2827
2828         Introduce new message sources for logging.
2829         https://bugs.webkit.org/show_bug.cgi?id=110968
2830
2831         Reviewed by Pavel Feldman.
2832
2833         Added SecurityMessageSource, RenderingMessageSource, StorageMessageSource, AppCacheMessageSource, CSSMessageSource.
2834         Changed some logging lines to contain more descriptive message source.
2835
2836         * Modules/webdatabase/DatabaseBase.cpp:
2837         (WebCore::DatabaseBase::logErrorMessage):
2838         * Modules/webdatabase/DatabaseManager.cpp:
2839         (WebCore::DatabaseManager::logErrorMessage):
2840         * Modules/websockets/WebSocketChannel.cpp:
2841         (WebCore::WebSocketChannel::fail):
2842         * bindings/ScriptControllerBase.cpp:
2843         (WebCore::ScriptController::canExecuteScripts):
2844         * css/MediaList.cpp:
2845         (WebCore::addResolutionWarningMessageToConsole):
2846         * dom/Document.cpp:
2847         (WebCore::Document::processHttpEquiv):
2848         * dom/ScriptElement.cpp:
2849         (WebCore::ScriptElement::executeScript):
2850         (WebCore::ScriptElement::notifyFinished):
2851         * dom/ViewportArguments.cpp:
2852         (WebCore::reportViewportWarning):
2853         * html/HTMLFormControlElement.cpp:
2854         (WebCore::shouldAutofocus):
2855         * html/HTMLFormElement.cpp:
2856         (WebCore::HTMLFormElement::validateInteractively):
2857         * html/HTMLIFrameElement.cpp:
2858         (WebCore::HTMLIFrameElement::parseAttribute):
2859         * html/canvas/CanvasRenderingContext2D.cpp:
2860         (WebCore::CanvasRenderingContext2D::getImageData):
2861         * html/canvas/WebGLRenderingContext.cpp:
2862         (WebCore):
2863         (WebCore::WebGLRenderingContext::printWarningToConsole):
2864         * html/parser/XSSAuditor.cpp:
2865         (WebCore::XSSAuditor::init):
2866         * html/parser/XSSAuditorDelegate.cpp:
2867         (WebCore::XSSAuditorDelegate::didBlockScript):
2868         * inspector/ConsoleMessage.cpp:
2869         (WebCore::messageSourceValue):
2870         * inspector/Inspector.json:
2871         * loader/FrameLoader.cpp:
2872         (WebCore::FrameLoader::submitForm):
2873         (WebCore::FrameLoader::reportLocalLoadFailed):
2874         (WebCore::createWindow):
2875         * loader/ImageLoader.cpp:
2876         (WebCore::ImageLoader::notifyFinished):
2877         * loader/MainResourceLoader.cpp:
2878         (WebCore::MainResourceLoader::responseReceived):
2879         * loader/MixedContentChecker.cpp:
2880         (WebCore::MixedContentChecker::logWarning):
2881         * loader/TextTrackLoader.cpp:
2882         (WebCore::TextTrackLoader::corsPolicyPreventedLoad):
2883         * loader/appcache/ApplicationCacheGroup.cpp:
2884         (WebCore::ApplicationCacheGroup::abort):
2885         * loader/cache/CachedResourceLoader.cpp:
2886         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
2887         * page/Console.cpp:
2888         (WebCore::printMessageSourceAndLevelPrefix):
2889         * page/ConsoleTypes.h:
2890         * page/ContentSecurityPolicy.cpp:
2891         (WebCore::ContentSecurityPolicy::logToConsole):
2892         * page/DOMWindow.cpp:
2893         (WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
2894         * page/PointerLockController.cpp:
2895         (WebCore::PointerLockController::requestPointerLock):
2896         * svg/SVGDocumentExtensions.cpp:
2897         (WebCore::reportMessage):
2898
2899 2013-03-06  Florin Malita  <fmalita@chromium.org>
2900
2901         SVG pattern to pattern reference does not work if first pattern has a child node
2902         https://bugs.webkit.org/show_bug.cgi?id=111586
2903
2904         Reviewed by Philip Rogers.
2905
2906         SVGPatternElement::collectPatternAttributes should test for child elements, not child nodes.
2907
2908         Tests: svg/custom/pattern-reference-expected.svg
2909                svg/custom/pattern-reference.svg
2910
2911         * svg/SVGPatternElement.cpp:
2912         (WebCore::SVGPatternElement::collectPatternAttributes):
2913
2914 2013-03-06  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2915
2916         [soup] session cookies are not correctly reported in getRawCookies()
2917         https://bugs.webkit.org/show_bug.cgi?id=111584
2918
2919         Reviewed by Martin Robinson.
2920
2921         As per libsoup documentation, SoupCookie->expires is NULL for session cookies.
2922         However, the soup implementation for getRawCookies() does not check for NULL
2923         case before passing the value to soup_date_to_time_t(), which leads to run time
2924         warnings.
2925
2926         We should also pass true for WebCore::Cookie's session argument if
2927         SoupCookie->expires is NULL. The current implementation reports the cookie as a
2928         session one if soup_cookie_jar_is_persistent(jar) returns true, which is
2929         inaccurate.
2930
2931         No new tests, no behavior change for layout tests as Web Inspector currently
2932         ignores the "session" member and uses expires/max-age instead to deduce it.
2933
2934         * platform/network/soup/CookieJarSoup.cpp:
2935         (WebCore::getRawCookies):
2936
2937 2013-03-06  Douglas Stockwell  <dstockwell@chromium.org>
2938
2939         REGRESSION(r111639): delayed animation start can be postponed
2940         https://bugs.webkit.org/show_bug.cgi?id=108582
2941
2942         Query the animation timer directly for the time it will next fire rather than
2943         trying to cache the interval. Previous approach was incorrect -- as time advanced
2944         it was possible for the interval to jump beyond the next service time.
2945
2946         Reviewed by Darin Adler.
2947
2948         Test: animations/animation-delay-changed.html
2949
2950         * page/animation/AnimationController.cpp:
2951         (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
2952         (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
2953         (WebCore::AnimationControllerPrivate::updateAnimationTimer):
2954         * page/animation/AnimationControllerPrivate.h:
2955         (AnimationControllerPrivate): Remove m_previousTimeToNextService
2956
2957 2013-03-06  Andrey Lushnikov  <lushnikov@chromium.org>
2958
2959         Web Inspector: [ACE] show execution line in Ace editor
2960         https://bugs.webkit.org/show_bug.cgi?id=111575
2961
2962         Reviewed by Pavel Feldman.
2963
2964         Highlight execution line by the means of Ace full line markers.
2965
2966         No new tests.
2967
2968         * inspector/front-end/AceTextEditor.js:
2969         (WebInspector.AceTextEditor.prototype.setExecutionLine):
2970         (WebInspector.AceTextEditor.prototype.clearExecutionLine):
2971         (WebInspector.AceTextEditor.prototype.setSelection):
2972         * inspector/front-end/ace/acedevtools.css:
2973         (.ace-editor-container):
2974         (.webkit-execution-line):
2975
2976 2013-03-06  Yury Semikhatsky  <yurys@chromium.org>
2977
2978         Web Inspector: fix closure compiler warnings in the profiler code
2979         https://bugs.webkit.org/show_bug.cgi?id=111581
2980
2981         Reviewed by Vsevolod Vlasov.
2982
2983         Added missing annotations. Replaced NativeProfileLauncherView with
2984         ProfileLauncherView.
2985
2986         * inspector/InjectedScriptExterns.js:
2987         (InjectedScriptHost.prototype.objectId):
2988         (InjectedScriptHost.prototype.releaseObjectId):
2989         * inspector/front-end/FlameChart.js:
2990         (WebInspector.FlameChart.prototype._forEachNode):
2991         * inspector/front-end/ProfileLauncherView.js:
2992         * inspector/front-end/ProfilesPanel.js:
2993
2994 2013-03-06  Carlos Garcia Campos  <cgarcia@igalia.com>
2995
2996         [BlackBerry] Pass String::StrictConversion instead of true to String::utf8()
2997         https://bugs.webkit.org/show_bug.cgi?id=111546
2998
2999         Reviewed by Rob Buis.
3000
3001         String::utf8() API changed in r134173.
3002
3003         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
3004         (WebCore::MediaPlayerPrivate::notifyChallengeResult):
3005
3006 2013-03-06  Julien Chaffraix  <jchaffraix@webkit.org>
3007
3008         Remove the (dead) code for handling shorthands in StyleResolver / StyleBuilder
3009         https://bugs.webkit.org/show_bug.cgi?id=111505
3010
3011         Unreviewed minimal build fix.
3012
3013         * css/StyleResolver.cpp:
3014         (WebCore::StyleResolver::applyProperty):
3015         Put CSSPropertyWebkitWrap under the proper if-guard.
3016
3017 2013-03-06  Vsevolod Vlasov  <vsevik@chromium.org>
3018
3019         Unreviewed follow up to r144928: front-end closure compilation fixes.
3020
3021         * inspector/front-end/FilteredItemSelectionDialog.js:
3022         (WebInspector.JavaScriptOutlineDialog.prototype.dispose):
3023         (WebInspector.OpenResourceDialog.prototype.dispose):
3024         * inspector/front-end/StyleSheetOutlineDialog.js:
3025         (WebInspector.StyleSheetOutlineDialog.prototype.dispose):
3026
3027 2013-03-06  Vsevolod Vlasov  <vsevik@chromium.org>
3028
3029         Web Inspector: Update open resource dialog when new uiSourceCodes are loaded.
3030         https://bugs.webkit.org/show_bug.cgi?id=111327
3031
3032         Reviewed by Pavel Feldman.
3033
3034         * inspector/front-end/FilteredItemSelectionDialog.js:
3035         (WebInspector.FilteredItemSelectionDialog):
3036         (WebInspector.FilteredItemSelectionDialog.prototype.willHide):
3037         (WebInspector.FilteredItemSelectionDialog.prototype._itemsLoaded):
3038         (WebInspector.FilteredItemSelectionDialog.prototype._updateAfterItemsLoaded):
3039         (WebInspector.FilteredItemSelectionDialog.prototype._filterItems.compareFunction):
3040         (WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
3041         (WebInspector.SelectionDialogContentProvider.prototype.dispose):
3042         (WebInspector.JavaScriptOutlineDialog.prototype._didBuildOutlineChunk):
3043         (WebInspector.OpenResourceDialog):
3044         (WebInspector.OpenResourceDialog.prototype.requestItems):
3045         (WebInspector.OpenResourceDialog.prototype._filterUISourceCode):
3046         (WebInspector.OpenResourceDialog.prototype._uiSourceCodeAdded):
3047         (WebInspector.OpenResourceDialog.prototype.dispose):
3048         * inspector/front-end/StyleSheetOutlineDialog.js:
3049         (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
3050         (WebInspector.StyleSheetOutlineDialog.prototype.requestItems.didGetStyleSheet):
3051
3052 2013-03-06  Vladislav Kaznacheev  <kaznacheev@chromium.org>
3053
3054         Web Inspector: Move sidebar-specific styles to a separate file.
3055         https://bugs.webkit.org/show_bug.cgi?id=111173
3056
3057         Reviewed by Pavel Feldman.
3058
3059         * WebCore.gypi:
3060         * inspector/front-end/BreakpointsSidebarPane.js:
3061         (WebInspector.JavaScriptBreakpointsSidebarPane):
3062         (WebInspector.EventListenerBreakpointsSidebarPane):
3063         * inspector/front-end/NativeBreakpointsSidebarPane.js:
3064         (WebInspector.NativeBreakpointsSidebarPane):
3065         * inspector/front-end/SidebarPane.js:
3066         (WebInspector.SidebarPaneTitle):
3067         (WebInspector.SidebarPaneStack):
3068         (WebInspector.SidebarTabbedPane):
3069         * inspector/front-end/WebKit.qrc:
3070         * inspector/front-end/breakpointsList.css: Added.
3071         (.sidebar-pane > .body .breakpoint-condition):
3072         (#breakpoint-condition-input):
3073         (ol.breakpoint-list):
3074         (.breakpoints-list-deactivated):
3075         (.breakpoint-list li):
3076         (.breakpoint-list li:hover):
3077         (.breakpoint-list .checkbox-elem):
3078         (.breakpoint-list .source-text):
3079         (.sidebar-pane .breakpoint-hit):
3080         (li.breakpoint-hit .breakpoint-hit-marker):
3081         (.event-listener-breakpoints .event-category):
3082         (.event-listener-breakpoints.properties-tree .children li):
3083         (.event-listener-breakpoints .checkbox-elem):
3084         * inspector/front-end/elementsPanel.css:
3085         (.panel.elements .sidebar-pane-toolbar > select):
3086         (.panel.elements .sidebar-pane-toolbar > select:hover):
3087         (.panel.elements .sidebar-pane-toolbar > select:active):
3088         (.panel.elements .sidebar-pane-toolbar > select.select-settings):
3089         (.panel.elements .sidebar-pane-toolbar > select.select-filter):
3090         (.panel.elements .sidebar-pane-toolbar > select > option, .panel.elements .sidebar-pane-toolbar > select > hr):
3091         * inspector/front-end/inspector.css:
3092         (.event-bar .event-properties):
3093         * inspector/front-end/scriptsPanel.css:
3094         (.workers-list > li):
3095         (a.worker-item):
3096         (a.worker-item:hover):
3097         * inspector/front-end/sidebarPane.css: Added.
3098         (.sidebar-pane):
3099         (.sidebar-pane > .body):
3100         (.sidebar-pane > .body .info):
3101         (.sidebar-pane > .body .placard + .info):
3102         (.sidebar-pane.visible > .body):
3103         (.sidebar-pane .section .properties):
3104         (.sidebar-tabbed-pane .tabbed-pane-header):
3105         (.sidebar-pane-stack > .sidebar-pane.visible:nth-last-of-type(1)):
3106         (.sidebar-pane-title):
3107         (.sidebar-pane-title + .sidebar-pane-title, .pane:not(.visible) + .sidebar-pane-title, .sidebar-pane-title:first-of-type):
3108         (.sidebar-pane-title:active):
3109         (.sidebar-pane-title::before):
3110         (.sidebar-pane-title.expanded::before):
3111         (.sidebar-pane-toolbar):
3112         (.sidebar-pane-toolbar > *):
3113         (.sidebar-pane-toolbar > .pane-title-button):
3114         (.sidebar-pane-toolbar > .pane-title-button:hover):
3115         (.sidebar-pane-toolbar > .pane-title-button:active, .sidebar-pane-toolbar > .pane-title-button.toggled):
3116         (.sidebar-pane-toolbar > .pane-title-button.add):
3117         (.sidebar-pane-toolbar > .pane-title-button.element-state):
3118         (.sidebar-pane-toolbar > .pane-title-button.refresh):
3119         (.sidebar-pane-subtitle):
3120         (body.platform-windows .sidebar-pane-subtitle):
3121         (.sidebar-pane-subtitle input, .section .header input[type=checkbox]):
3122
3123 2013-03-06  Vladislav Kaznacheev  <kaznacheev@chromium.org>
3124
3125         Web Inspector: Combine style-related panes into a single tab when Elements panel is split horizontally.
3126         https://bugs.webkit.org/show_bug.cgi?id=111550
3127         Reviewed by Pavel Feldman.
3128
3129         Grouping the Elements sidebar panes into two tabbed panes proved to be
3130         confusing and inconvenient. Put all the Elements sidebar panes into a single tabbed pane.
3131         Combined Styles, Computed Style and Metrics into a single pane.
3132
3133         * inspector/front-end/ElementsPanel.js:
3134         (WebInspector.ElementsPanel.prototype._splitVertically):
3135         (WebInspector.ElementsPanel.prototype.addExtensionSidebarPane):
3136         * inspector/front-end/elementsPanel.css:
3137         (.sidebar-pane.composite):
3138         (.sidebar-pane.composite > .body):
3139         (.sidebar-pane.composite .metrics):
3140         (.sidebar-pane.composite .sidebar-pane-toolbar):
3141         (.sidebar-pane.composite .sidebar-pane-toolbar > .sidebar-pane-subtitle):
3142         (.sidebar-pane.composite .styles-section.read-only):
3143
3144 2013-03-05  Yury Semikhatsky  <yurys@chromium.org>
3145
3146         Web Inspector: support stable remote object ids
3147         https://bugs.webkit.org/show_bug.cgi?id=109908
3148
3149         Reviewed by Pavel Feldman.
3150
3151         Introduced a map from javascript object to its id. It guarantees
3152         that object is assined id only once (unless it is explicitely
3153         released). The map is per execution context and is stored in
3154         InjectedScriptManager.
3155
3156         Test: inspector-protocol/persistent-id.html
3157
3158         * bindings/js/JSInjectedScriptHostCustom.cpp:
3159         (WebCore::JSInjectedScriptHost::objectId):
3160         (WebCore):
3161         (WebCore::JSInjectedScriptHost::releaseObjectId):
3162         * bindings/js/ScriptObject.h:
3163         (WTF):
3164         (WTF::ScriptObjectHash::hash):
3165         (WTF::ScriptObjectHash::equal):
3166         (ScriptObjectHash):
3167         * bindings/v8/ScriptObject.h:
3168         (WTF):
3169         (WTF::ScriptObjectHash::hash):
3170         (WTF::ScriptObjectHash::equal):
3171         (ScriptObjectHash):
3172         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3173         (WebCore::V8InjectedScriptHost::objectIdMethodCustom):
3174         (WebCore):
3175         (WebCore::V8InjectedScriptHost::releaseObjectIdMethodCustom):
3176         * inspector/InjectedScriptHost.cpp:
3177         (WebCore::InjectedScriptHost::create):
3178         (WebCore::InjectedScriptHost::InjectedScriptHost):
3179         (WebCore::InjectedScriptHost::disconnect):
3180         (WebCore::InjectedScriptHost::objectId):
3181         (WebCore):
3182         (WebCore::InjectedScriptHost::releaseObjectId):
3183         * inspector/InjectedScriptHost.h:
3184         (WebCore):
3185         (InjectedScriptHost):
3186         * inspector/InjectedScriptHost.idl:
3187         * inspector/InjectedScriptManager.cpp:
3188         (InjectedScriptManager::ObjectIdMap):
3189         (WebCore::InjectedScriptManager::ObjectIdMap::ObjectIdMap):
3190         (WebCore::InjectedScriptManager::ObjectIdMap::objectId):
3191         (WebCore::InjectedScriptManager::ObjectIdMap::releaseObjectId):
3192         (WebCore):
3193         (WebCore::InjectedScriptManager::InjectedScriptManager):
3194         (WebCore::InjectedScriptManager::discardInjectedScripts):
3195         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
3196         (WebCore::InjectedScriptManager::objectId):
3197         (WebCore::InjectedScriptManager::releaseObjectId):
3198         * inspector/InjectedScriptManager.h:
3199         (InjectedScriptManager):
3200         * inspector/InjectedScriptSource.js:
3201         (.):
3202
3203 2013-03-06  Marja Hölttä  <marja@chromium.org>
3204
3205         REGRESSION(r144617): Wrong usage of overwritten variable in toDOMWindow (V8Binding.cpp)
3206         https://bugs.webkit.org/show_bug.cgi?id=111565
3207
3208         Reviewed by Jochen Eisinger.
3209
3210         In toDOMWindow, the variable "global" was first nuked, and then used again. This
3211         change was introduced in r144617.
3212
3213         No new tests (no functional changes).
3214
3215         * bindings/v8/V8Binding.cpp:
3216         (WebCore::toDOMWindow):
3217
3218 2013-03-06  Yury Semikhatsky  <yurys@chromium.org>
3219
3220         Web Inspector: use regular eval instead of injectScript for front-end extension API
3221         https://bugs.webkit.org/show_bug.cgi?id=111529
3222
3223         Reviewed by Pavel Feldman.
3224
3225         Removed InjectedScriptManager::injectScript and replaced all of it calls
3226         except the actual script injection with ScriptController::executeScript.
3227
3228         * inspector/InjectedScriptManager.cpp:
3229         (WebCore::InjectedScriptManager::injectedScriptFor):
3230         * inspector/InjectedScriptManager.h:
3231         (InjectedScriptManager):
3232         * inspector/InspectorAgent.cpp:
3233         (WebCore::InspectorAgent::didClearWindowObjectInWorld):
3234         * inspector/InspectorPageAgent.cpp:
3235         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
3236         * inspector/front-end/DOMAgent.js:
3237         (WebInspector.DOMAgent.prototype._emulateTouchEventsChanged.get if):
3238         * inspector/front-end/ExtensionAPI.js:
3239         (buildExtensionAPIInjectedScript):
3240         * inspector/front-end/ExtensionServer.js:
3241         (WebInspector.ExtensionServer.prototype._onReload):
3242
3243 2013-03-06  Allan Sandfeld Jensen  <allan.jensen@digia.com>
3244
3245         [Qt] Do not disable C++0x
3246         https://bugs.webkit.org/show_bug.cgi?id=111559
3247
3248         Reviewed by Kenneth Rohde Christiansen.
3249
3250         * WebCore.pri:
3251
3252 2013-03-06  Julien Chaffraix  <jchaffraix@webkit.org>
3253
3254         Remove the (dead) code for handling shorthands in StyleResolver / StyleBuilder
3255         https://bugs.webkit.org/show_bug.cgi?id=111505
3256
3257         Reviewed by Alexis Menard.
3258
3259         The CSS parsing code expands shorthands (with the exception of 'font') to their longhands.
3260         This means that all the code in StyleResolver / StyleBuilder to handle shorthands is basically
3261         dead and shouldn't be there. The reason for it to be is that people didn't know about shorthands
3262         expansion and thus copied existing code.
3263
3264         This change addresses both issues by removing the code and adding ASSERTs that should prevent people
3265         from adding more dead code.
3266
3267         Refactoring, covered by existing tests.
3268
3269         * css/StylePropertyShorthand.h: Added isExpandedShorthand.
3270         * css/StylePropertyShorthand.cpp:
3271         (WebCore::isExpandedShorthand):
3272         Added this function that ignores 'font' as it is the only shorthand that is no consistently expanded
3273         to account for system fonts.
3274
3275         * css/StyleBuilder.cpp:
3276         (WebCore::StyleBuilder::StyleBuilder):
3277         Removed the shorthands.
3278
3279         * css/StyleBuilder.h:
3280         (WebCore::StyleBuilder::setPropertyHandler):
3281         Added ASSERTs that people don't add shorthand handling.
3282
3283         * css/StyleResolver.cpp:
3284         (WebCore::isValidVisitedLinkProperty):
3285         Removed all the shorthands (shouldn't be reachable unless the ASSERT in applyProperty
3286         triggers).
3287
3288         (WebCore::StyleResolver::applyProperty):
3289         Removed all shorthand handling code, moved the shorthands together and added some ASSERT
3290         to ensure people don't abuse the code and re-add some of it back by mistake.
3291
3292 2013-03-05  Kent Tamura  <tkent@chromium.org>
3293
3294         Rename WebCore/editing/visible_units.* to VisibleUnits.*
3295         https://bugs.webkit.org/show_bug.cgi?id=111426
3296
3297         Reviewed by Alexey Proskuryakov.
3298
3299         No new tests. Just a refactoring.
3300
3301         * CMakeLists.txt:
3302         * GNUmakefile.list.am:
3303         * Target.pri:
3304         * WebCore.gypi:
3305         * WebCore.vcproj/WebCore.vcproj:
3306         * WebCore.vcxproj/WebCore.vcxproj:
3307         * WebCore.vcxproj/WebCore.vcxproj.filters:
3308         * WebCore.xcodeproj/project.pbxproj:
3309         * accessibility/AccessibilityNodeObject.cpp:
3310         * accessibility/AccessibilityObject.cpp:
3311         * accessibility/AccessibilityRenderObject.cpp:
3312         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
3313         * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
3314         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
3315         * dom/Position.cpp:
3316         * dom/Range.cpp:
3317         * editing/AlternativeTextController.cpp:
3318         * editing/ApplyBlockElementCommand.cpp:
3319         * editing/ApplyStyleCommand.cpp:
3320         * editing/CompositeEditCommand.cpp:
3321         * editing/DeleteSelectionCommand.cpp:
3322         * editing/EditingAllInOne.cpp:
3323         * editing/EditingStyle.cpp:
3324         * editing/Editor.cpp:
3325         * editing/FormatBlockCommand.cpp:
3326         * editing/FrameSelection.cpp:
3327         * editing/IndentOutdentCommand.cpp:
3328         * editing/InsertLineBreakCommand.cpp:
3329         * editing/InsertListCommand.cpp:
3330         * editing/InsertParagraphSeparatorCommand.cpp:
3331         * editing/InsertTextCommand.cpp:
3332         * editing/ReplaceSelectionCommand.cpp:
3333         * editing/SurroundingText.cpp:
3334         * editing/TextCheckingHelper.cpp:
3335         * editing/TextIterator.cpp:
3336         * editing/TypingCommand.cpp:
3337         * editing/VisiblePosition.cpp:
3338         * editing/VisibleSelection.cpp:
3339         * editing/VisibleUnits.cpp: Copied from Source/WebCore/editing/visible_units.cpp.
3340         * editing/VisibleUnits.h: Copied from Source/WebCore/editing/visible_units.h.
3341         * editing/htmlediting.cpp:
3342         * editing/markup.cpp:
3343         * editing/visible_units.cpp: Removed.
3344         * editing/visible_units.h: Removed.
3345         * page/Frame.cpp:
3346         * page/mac/FrameMac.mm:
3347         * platform/win/EditorWin.cpp:
3348
3349 2013-03-06  Alexis Menard  <alexis@webkit.org>
3350
3351         Do not add CSSPropertyBorderImage shorthand part of the property list when parsing CSS border property
3352         https://bugs.webkit.org/show_bug.cgi?id=111481
3353
3354         Reviewed by Julien Chaffraix.
3355
3356         After http://trac.webkit.org/changeset/135848 and more generally we do not 
3357         add shorthand directly into the property list used afterwards to build
3358         StylePropertySet but we rather expand the shorthand to add the
3359         longhands. CSSPropertyBorderImage is a shorthand and it should follow
3360         that rule, so when we successfully parsed CSS border property and we
3361         should reset border-image then we should reset the longhands too.
3362
3363         Test: LayoutTests/inspector/styles/styles-new-API-expected.txt which
3364         reflects the fact that we add longhands instead of the shorthand. All
3365         the other tests should not regress.
3366
3367         * css/CSSParser.cpp:
3368         (WebCore::CSSParser::parseValue):
3369
3370 2013-03-06  Luiz Agostini  <luiz.agostini@nokia.com>
3371
3372         Accelerated overflow scrolling for Coordinated Graphics.
3373         https://bugs.webkit.org/show_bug.cgi?id=110323
3374
3375         Reviewed by Noam Rosenthal.
3376
3377         A scroll offset is applied to individual layers on UI process and the
3378         web process is notified assynchronously.
3379         The new API WKCoordinatedScene may be used to scroll layers in the UI process.
3380
3381         Tests will be added on bug #111140.
3382
3383         Scrolling coordinator is used to provide a ScrollableArea to CoordinatedGraphicsLayer.
3384
3385         * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
3386         (WebCore::ScrollingCoordinatorCoordinatedGraphics::scrollableAreaScrollLayerDidChange):
3387         (WebCore):
3388         (WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea):
3389         * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
3390         (ScrollingCoordinatorCoordinatedGraphics):
3391
3392         GraphicsLayerTextureMapper is responsible for receiving the 'did commit' messages and to pass
3393         them to its TextureMapperLayer on the appropriated time.
3394
3395         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
3396         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
3397         (WebCore::GraphicsLayerTextureMapper::didCommitScrollOffset):
3398         (WebCore):
3399         (WebCore::GraphicsLayerTextureMapper::setIsScrollable):
3400         (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
3401         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
3402         (WebCore::GraphicsLayerTextureMapper::setScrollClient):
3403         (WebCore::GraphicsLayerTextureMapper::setID):
3404         (GraphicsLayerTextureMapper):
3405         (WebCore::GraphicsLayerTextureMapper::isScrollable):
3406
3407         TextureMapperLayer is responsible for applying the requested scroll offset and for
3408         sending the commit messages to web process. It is also able to hittest layers and identify
3409         the ones that are scrollable.
3410
3411         * platform/graphics/texmap/TextureMapperLayer.cpp:
3412         (WebCore::TextureMapperLayer::hitTest):
3413         (WebCore):
3414         (WebCore::TextureMapperLayer::scrollableLayerHitTestCondition):
3415         (WebCore::TextureMapperLayer::findScrollableContentsLayerAt):
3416         (WebCore::TextureMapperLayer::mapScrollOffset):
3417         (WebCore::TextureMapperLayer::commitScrollOffset):
3418         (WebCore::TextureMapperLayer::scrollBy):
3419         (WebCore::TextureMapperLayer::didCommitScrollOffset):
3420         * platform/graphics/texmap/TextureMapperLayer.h:
3421         (TextureMapperLayer):
3422         (ScrollingClient):
3423         (WebCore::TextureMapperLayer::TextureMapperLayer):
3424         (WebCore::TextureMapperLayer::setID):
3425         (WebCore::TextureMapperLayer::id):
3426         (WebCore::TextureMapperLayer::setScrollClient):
3427         (WebCore::TextureMapperLayer::setIsScrollable):
3428         (WebCore::TextureMapperLayer::isScrollable):
3429         (WebCore::TextureMapperLayer::adjustedPosition):
3430
3431         CoordinatedGraphicsLayer receives the commit messages and updates its ScrollableArea.
3432
3433         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
3434         (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
3435         (WebCore::CoordinatedGraphicsLayer::setScrollableArea):
3436         (WebCore):
3437         (WebCore::CoordinatedGraphicsLayer::commitScrollOffset):
3438         (WebCore::CoordinatedGraphicsLayer::resetLayerState):
3439         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
3440         (WebCore):
3441         (CoordinatedGraphicsLayer):
3442         (WebCore::CoordinatedGraphicsLayer::isScrollable):
3443
3444         CoordinatedGraphicsScene receives the commit messages from TextureMapperLayer and
3445         dispatches them on the main thread. It also has a new method that is used to find
3446   &nb