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