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